ビットセキュリティ【bits of security】
概要

暗号の安全性を評価する際、鍵の長さだけを比べても正確な判断はできない。例えば、共通鍵暗号の「AES」と公開鍵暗号の「RSA」では仕組みがまったく異なるため、「どちらが強いか」を単純に比較することは難しい。
ビットセキュリティは暗号の強さを、「解読に必要な平均の計算回数」を基準に表したもので、暗号方式に依らず共通の尺度として比較することができる。どんな暗号も、鍵の候補を総当たりで試してみればいつかは解読することができ(総当たり攻撃)、その際に必要な試行回数を2を底とする対数で表したものがビットセキュリティである。
nビットセキュリティの強度を持つ暗号を解読するには、理論上は2のn乗回の計算量が必要となる。10ビットセキュリティならば 210 = 1024回、20ビットセキュリティならば 220 = 104万8576回の試行で解読できるという意味である。現代ではこのような少ない回数ではすぐに突破されてしまうため、おおむね80ビット以下は脆弱とみなされ、128ビット以上が安全な暗号の一般的な目安とされている。
注意が必要なのは、暗号の種類によってビットセキュリティを達成するために必要な鍵長が大きく異なる点だ。AESでは128ビットの鍵が128ビットセキュリティをほぼそのまま提供するが、RSAでは同等の安全性を得るために3072ビット以上の鍵が必要になる。楕円曲線暗号(ECC)は256ビット程度の鍵で128ビットセキュリティを達成できるとされており、RSAに比べ計算効率の面で有利である。
コンピュータの性能向上によって安全を確保するのに必要なビットセキュリティの値は常に上昇を続けており、現在の基準が将来も安全を保証するとは限らない。公的機関の勧告などを参照して常に安全な方式に更新していくことが重要となる。また、将来的に量子コンピュータが実用化されれば高いビットセキュリティを確保した方式でも安全ではなくなる可能性が示されており、量子計算でも効率的に解読することができない「耐量子暗号」(PQC:Post-Quantum Cryptography)が考案されている。