128ビットセキュリティ
128ビットセキュリティとは
異なる技術分類の暗号アルゴリズムについて同程度の安全性を持つかどうかを判断する目安として、“ビットセキュリティ(等価安全性ということもある)”という指標がある。
具体的には、評価対象とする暗号アルゴリズムに対してもっとも効率的な攻撃手法を用いたときに、どの程度の計算量があれば解読できるか(解読計算量[ 13])で表現され、鍵長[ 14]とは別に求められる。表記上、解読計算量が 2x である場合に“x ビットセキュリティ”という。例えば、共通鍵暗号においては、全数探索する際の鍵空間の大きさで 2x(x は共通鍵のビット長)、ハッシュ関数の例としては、一方向性で 2x、衝突困難性で 2(x/2)(x はハッシュ長)が解読計算量の(最大)理論値である。
“ビットセキュリティ”による評価では、技術分類に関わらず、どの暗号アルゴリズムであっても、解読計算量が大きければ安全性が高く、逆に小さければ安全性が低い。また、解読計算量が実現可能と考えられる計算量を大幅に上回っていれば、少なくとも現在知られているような攻撃手法ではその暗号アルゴリズムを破ることは現実的に不可能であると予測される。
そこで、暗号アルゴリズムの選択においては、“x ビットセキュリティ”の“x ビット”に着目して、長期的な利用期間の目安とする使い方ができる。
とりあえず覚えておいた方がいい表
エンジニアとして意識しておいた方がいい事
今後の新規構築は128 ビットセキュリティ以上のアルゴリズムで作成した方がいい。
※RSA-2048は特に注意
表にはないけど、RSAでの128ビット相当はRSA-3072になる。
同じ署名系だとECDSA(ECC)(楕円曲線)ならEDCSA-256。