整数論と暗号 ― RSA暗号はなぜ安全なのか
フェルマー・オイラー・拡張ユークリッドが RSA 暗号の各パーツに対応することを明らかにし,鍵生成・暗号化・復号の仕組みと安全性の根拠(素因数分解の困難性)を解説します.シリーズの総括としてすべての定理の繋がりを振り返ります.
整数論は「数学の女王」と呼ばれ,長い間純粋数学の象徴でした.しかし 1977 年,Rivest・Shamir・Adleman の 3 人が整数論の定理を組み合わせて公開鍵暗号を構成し,世界を変えました.このシリーズで学んだ定理が,RSA 暗号のどのパーツに対応しているかを見ていきましょう.
1 公開鍵暗号のアイデア
2 RSA 暗号の仕組み
大きな素数 をランダムに選び, を計算します
を計算します(オイラーの関数)
をみたす を選びます(通常 )
をみたす を計算します(拡張ユークリッドの互除法)
素数(第3回): の選択
オイラーの関数(第4回): の計算
拡張ユークリッドの互除法(第2回): の計算
暗号化:(公開鍵 で暗号化)
復号:(秘密鍵 で復号)
3 復号の正当性 ― オイラーの定理が鍵
なぜが成り立つのでしょうか?
4 安全性の根拠 ― 素因数分解の困難性
掛け算: は (多倍長乗算)で一瞬
素因数分解:最速の古典アルゴリズム(一般数体篩法)でも という準指数時間
2048 ビットの の素因数分解は,現在の計算機では数千年以上かかると推定されています
5 各パーツとシリーズの対応
第1回(mod 演算):すべての計算が の世界で行われる
第2回(ユークリッドの互除法):秘密鍵 の計算( の逆元)
第3回(算術の基本定理):素因数分解の一意性が安全性の前提
第4回(フェルマー・オイラーの定理):復号の正当性の証明
第5回(中国剰余定理): と で別々に復号して合成する高速化(CRT-RSA)
第6回(二次剰余):Rabin 暗号(RSA の変種)の理論的基盤
第7回(連分数):小さな秘密鍵 への攻撃(Wiener の攻撃は連分数を使う)
6 RSA の具体例
鍵生成:,,
()
拡張ユークリッド: → ()
暗号化: →
復号:(繰り返し二乗法で計算)
7 現代の展望
8 シリーズの総括
mod 演算:情報を捨てる射影. の環構造
ユークリッドの互除法:不変量に基づく のアルゴリズム.ベズーの等式
算術の基本定理:素因数分解の一意性.ユークリッドの補題が鍵
フェルマーの小定理: の群構造.逆元
中国剰余定理:分割統治の代数版.
二次剰余: の 2:1 性.相互法則の驚き
連分数:互除法の別の顔.最良有理近似とペル方程式
RSA 暗号:すべての定理が合流する応用