暗号の安全性

暗号の強度

暗号を使う際には,鍵を知らない第三者によって解読される可能性はないかどうか調べることが重要になる.ここでいう「解読」とは,傍受した平文や暗号文のデータから暗号化に使われた鍵(あるいは等価な情報)を得ることも,別の暗号文に対する元の平文のどんな情報も得ることもできないという意味である.

暗号の安全性の観点からは,暗号の強度は次のように分類される.

最も安全な暗号は,攻撃者に適応的選択暗号文攻撃を許したとしても,強秘匿でありかつ頑強性を保持した方式である.

暗号の安全性評価には暗号文のランダム性や暗号の構造を調べるほか,これまでに知られている攻撃法に対する強度を調べる必要がある.

総当り攻撃に対する安全性

共通鍵暗号の安全性

共通鍵暗号の安全性は,以下を前提に考えられている.

共通鍵暗号の安全性を確保するための対処には次の2つの観点がある.

共通鍵ブロック暗号の攻撃法は全ての鍵をしらみつぶしに探索するBrute-force Attackと暗号アルゴリズムを解析し,統計的特性を利用して鍵の探索範囲を限定するShort-cut Attackに分類できる.

現在のところ,ある共通鍵ブロック暗号が全ての攻撃に対して安全であると証明できる実用的な方法は知られていないので,これまで知られている暗号攻撃法に対して個別に,解読に必要な計算量を評価する必要がある.

DESの解読については,次のような例が報告されている.
RSA Security社が主催した DES解読コンテスト(1997~)の第4回(1999.1)に米国の非営利団体 EFF(Electronic Frontier Foundation)が全数探索により約22時間15分で解読した. 25万ドルで開発したDES解読器とインターネット上の約10万台のPCを用いて1秒間に鍵約2,450億個を検証したといわれている.

また,DES暗号に対し暗号攻撃にかけるコストと暗号の解読時間を計算した例を表に示す.ここで,計算機の処理能力は,Mooreの法則に従い1.5年で2倍 (10倍/5年)になると仮定している.

総当り法によるDES解読時間
攻撃者 個人 企業 国家
予算 100万円 10億円 1兆円
解読時間 PC1000台 FPGA/ASIC ASIC
1995年 1.5年 6分 0.4秒
1998年 135日 90秒 0.1秒
2001年 34日 23秒 23m秒
2004年 8.4日 6.0秒 6.0m秒
2007年 2.1日 1.5秒 1.5m秒
2010年 12.6時間 0.4秒 0.4m秒
2013年 3.1時間 0.1秒 0.1m秒
2016年 47分 25m秒 25μ秒
2019年 12分 6.0m秒 6.0μ秒
2022年 3分 1.5m秒 1.5μ秒

このように,DESの56ビットの鍵に対しては,総当り攻撃法に対しても安全とは言えなくなってきている.現状,一般的なセキュリティに対する共通鍵暗号の鍵長は128ビットあれば十分と考えられている.

公開鍵暗号の安全性

鍵サイズと解読計算量

公開鍵暗号では,攻撃の難しさが素因数分解問題や離散対数問題といった数学上の問題を解く難しさに対応している.

暗号方式による解読計算量の相違を計算した例を表に示す.同じ解読計算量に相当する鍵長を比較したものである. 1024ビットの RSA暗号と 160ビットの楕円暗号が解読計算量的には同等であることを示している.同じ安全性を保つために必要な DSA/RSA暗号のビット長が急激に増大するのが分かる.(暗号化処理の性能が低下する).

鍵サイズの比較(攻撃演算量ベース(SEC1 より)
セキュリティレベル (bits) 共通鍵暗号 鍵サイズ(bits) 楕円暗号 nサイズ(bits) DSA/RSA 法サイズ(bits)
56 56 112 512
80 80 160 1024
112 112 224 2048
128 128 256 3072
192 192 264 7680
256 256 512 15360

また,RSA暗号に対し,暗号攻撃にかけるコストと暗号の解読時間を以下の前提の基に計算した例を表に示す.

暗号解読時間の推定
攻撃コスト 100万円 10億円 1兆円
RSA暗号 512 1024 512 1024 512 1024
1999年 30年 3 x 10 8 11日 3 x 105 16分 3 x 102
2004年 3年 3 x 10 7 1.1日 3 x 10 4 1.6分 30年
2009年 110日 3 x 10 6 2.6時間 3 x 10 3 9.5秒 3年
2014年 11日 3 x 105 16分 3 x 102 0.95秒 110日
2019年 1.1日 3 x 104 1.6分 30年 0.095秒 11日
2024年 2.6時間 3 x 103 9.5秒 3年 0.0095秒 1.1日

512ビットのRSA暗号に対しては,2009年時点で企業レベルの攻撃者を想定すると数時間のオーダで解読される可能性があることを示している.1024ビットであれば,今後10年程度は企業レベルの攻撃者に対しても解読は困難である.

Brentの予測式

Brent[*1]は,1960 年代から現在までに素因数分解された合成数のサイズと年次推移を調査した結果,それらのサイズの年次増加曲線は,新アルゴリズムの開発とMoore の法則 (半導体素子の集積度が 18 か月ごとに2倍という経験則) の両方に依存していることを確認した.そこで,このような傾向が今後も継続するであろうという仮定のもとでこの曲線を外挿し,将来その時点で現実的に素因数分解可能な合成数(またはその合成数の最小素因数) のサイズを与える予想式(実験式) を導出している.

これによると,ビット数と素体離散対数問題が解かれる年の関係は次のようになる.

 1024ビット: 2019年

 2048ビット: 2042年

 4096ビット: 2070年

&bnsp;[*1] R. P. Brent, "Recent progress and prospects for integer factorisation algorithms," Proc. COCOON 2000, LNCS 1858, Springer-Verlag, pp.3-22, 2000.

公開鍵暗号の評価

情報処理進行事業協会/通信・放送機構の暗号技術評価報告書(CRYPTREC Report) の評価によれば,RSAとDSAの評価は次のようになっている.

inserted by FC2 system