|
|
情報社会を支えるコア技術として広く用いられている暗号。その安全性は様々な数学問題の困難性によって保証されており、将来にわたり安全に利用するためには困難性の正確な評価が重要となる。安全性評価の観点で、現在広く活用されているRSA暗号や楕円曲線暗号から、近年注目を集める耐量子計算機暗号まで紹介する。
まえがき
1 現代暗号基本技術
1.1 公開鍵暗号とディジタル署名
1.2 安全性モデル
1.3 安全性証明可能方式
1.4 その他の基本暗号技術
1.4.1 ハッシュ関数
1.4.2 ワンタイム署名
1.4.3 秘密分散
2 RSA暗号
2.1 整数の剰余環
2.2 RSA暗号
2.2.1 RSA暗号の安全性
2.2.2 RSA署名
2.2.3 冪乗算
2.2.4 Euclid互除法
2.3 素数生成法
2.3.1 Fermat素数判定法
2.3.2 Miller-Rabin素数判定法
2.4 素因数分解法
2.4.1 Pollard ρ法
2.4.2 Pollard p-1法
2.4.3 ランダム2乗法
2.4.4 数体篩法
2.4.5 安全な桁長評価
2.5 高速実装アルゴリズム
2.5.1 Montgomery乗算
2.5.2 Sliding Window法
2.5.3 中国剰余定理法(RSA-CRT)
2.6 RSA暗号のさらなる安全性評価
2.6.1 gcd(m, n)>1 の確率
2.6.2 再暗号化攻撃
2.6.3 低暗号化冪攻撃
2.6.4 低秘密鍵冪攻撃
2.6.5 RSA暗号に対する実装攻撃
2.6.6 最下位ビットの安全性
2.7 分散署名と準同型暗号
2.7.1 分散署名
2.7.2 準同型暗号
3 離散対数問題ベース暗号
3.1 DH鍵共有方式とElGamal暗号
3.1.1 ElGamal署名
3.1.2 高速冪乗算
3.1.3 乱数kの安全性
3.1.4 否認不可署名
3.2 離散対数問題の困難性
3.2.1 Pohlig-Hellman法
3.2.2 Baby-step-Giant-step(BSGS)法
3.2.3 Pollard ρ法
3.2.4 指数計算法
3.2.5 数体篩法
3.3 楕円曲線暗号
3.3.1 楕円曲線暗号の安全性
3.3.2 効率的な計算座標
3.3.3 符号付きバイナリ法
3.3.4 実装攻撃に対するランダム化
3.4 IDベース暗号
3.4.1 IDベース暗号の安全性と数学問題
3.4.2 双線形ペアリング写像の計算法
3.4.3 高機能暗号
4 耐量子計算機暗号
4.1 耐量子性を有する数学問題
4.2 NIST PQC標準化プロジェクト
4.3 格子暗号
4.4 多変数多項式暗号
4.5 同種写像暗号
4.6 符号暗号
4.7 ハッシュ関数署名
5 格子暗号
5.1 格子の基本性質
5.1.1 格子基底と基底行列
5.1.2 Gram-Schmidt直交化と格子の体積
5.1.3 最短/最近ベクトル問題
5.2 SVP/CVPの解法
5.2.1 Gauss基底縮約法
5.2.2 LLL基底縮約アルゴリズム
5.2.3 Babai最近平面法
5.2.4 列挙法
5.2.5 BKZアルゴリズム
5.2.6 篩法
5.2.7 SVP解読チャレンジ
5.3 LWE問題ベース格子暗号
5.3.1 LWE問題
5.3.2 埋め込み法
5.3.3 鍵共有方式と安全性評価
5.3.4 安全なパラメータの導出
参考文献
索 引