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=65Outputc=2790Encrypting 65 → 2790
よくあるエラー
- Using keys that are too short (<2048 bits)
- Use at least 2048 bits; 3072 or 4096 recommended
関連用語
AES
AES(Advanced Encryption Standard)は NIST が 2001 年に確立した対称ブロック暗号であり、128/192/256 ビット鍵をサポートし、現代暗号化の事実上の標準である。 用語集
PKI
PKI(公開鍵基盤)はデジタル証明書と公開鍵を管理する体系であり、CA、登録局、証明書リポジトリ、失効機構から構成され、TLSと電子署名を支える。 用語集
X.509 Certificate
X.509 証明書は、公開鍵を識別情報に紐付けるものであり、検証のために CA が署名し、有効期間、発行者、サブジェクト、拡張フィールドを含む。 用語集
CA
CA(認証局)とは、公開鍵を識別情報に紐付けるデジタル証明書を発行する信頼された第三者であり、PKI の信頼の根拠を担う。 用語集