コンテンツへスキップ
uencoder

RSA

RSA は 1977 年に Rivest、Shamir、Adleman が発表した公開鍵暗号アルゴリズムであり、大きな整数の素因数分解の困難さに基づき、暗号化とデジタル署名に使われる。

目的

公開鍵暗号とデジタル署名を実現し、事前共有鍵なしに二者が安全に通信し認証できるようにする。

メカニズム

鍵生成では素数 p と q を選び、n = pq、φ = (p-1)(q-1) とし、φ と互いに素な e を選び、d = e^{-1} mod φ とする。暗号化は c = m^e mod n、復号は m = c^d mod n である。安全性は n の素因数分解の困難さに基づく。

ユースケース

  • TLS 証明書の鍵交換とデジタル署名
  • SSH の公開鍵認証
  • PGP/GPG の鍵
  • コード署名の証明書

例

  • 入力
    n=3233, e=17, m=65
    Output
    c=2790

    Encrypting 65 → 2790

よくあるエラー

Using keys that are too short (<2048 bits)
Use at least 2048 bits; 3072 or 4096 recommended

関連用語

関連ツール

References