概要
公開鍵暗号方式の具体的なアルゴリズムであるRSA暗号の仕組みと安全性について記載する。
前提知識
以下の初等整数論の知識を用いる。
- 合同式の基礎
- フェルマーの小定理
- 有名な定理 : aとbが互いに素なとき、
となるxが、
の間でただ1つ存在する。
RSA暗号の仕組み
メッセージを受け取る側の準備
大きな素数pとqを生成して、
とする。
と互いに素な整数k1を取る。
となるk2を取る。
※注意
上記の有名な定理により、
とすると、k2は一意に定まる。
また、ここまでの操作は高速にできることが知られている。
- nとk1を公開する(公開鍵)
- k2は非公開にする(秘密鍵)
メッセージを送る側の暗号化方法
送りたいメッセージをm(ただし、
を満たす)とする。
公開鍵を用いて
を計算し、これを暗号文(Cとおく)とする。
メッセージを受け取る側の復号方法
暗号文Cと秘密鍵k2を用いて、
を計算すると、
これが元のメッセージに一致する。(後述)
安全性
暗号文Cと公開鍵n、k1が分かっても、(現実的な時間では)mを復元することはできない。
- 復号できる理由
- 暗号化:

- 復号 :

証明
を証明すればよい。
を証明すれば十分である。(対称性より、
も同様)
mがpの倍数のとき、両辺ともにpの倍数よりOK。
mがpの倍数でないとき、
が
の倍数となるように設定したので、
整数Nを用いて、
とおける。
よって、
となる。
(ただし、途中の
は
であり、フェルマーの小定理を用いた)
RSA暗号の安全性と素因数分解
素因数分解が簡単に(短時間で)計算できれば、RSA暗号は破られる。
- RSA暗号が破られる理由
- 暗号文C、公開鍵k1、nは誰でも見ることができる。
- ここで、nを素因数分解することでpとqが求まる。
- すると、"メッセージを受け取る側の準備"と同じ方法で秘密鍵k2が求まり、元のメッセージMを復号できる。