暗号強度 【cipher strength】
現代の暗号方式では原文(平文)を計算・加工して暗号文を求める手順(暗号アルゴリズム)自体は秘匿できない前提で設計されており、計算時に暗号鍵(cipher key)と呼ばれる一定の長さの秘密のデータを用いることにより解読を困難にしている。
暗号鍵を持たない攻撃者が暗号を解読する場合、最も単純な方法として、鍵の候補を順番に総当たりで計算してみれば、いつかは正しい鍵を見つけ出すことができる。
このとき、例えば鍵が16ビット(実用上はこんな短い鍵は使わないが)ならば候補は65,536(216)通りだが、これを32ビットに伸ばせば約42億(232)通りとなり、解読の試行にかかる時間は65,536(232-16)倍に増大する。
実際には、鍵に適したビットパターンがより限定されていたり、暗号方式によっては総当たりより効率的な探索方式が考案されている場合もあるため、このように単純には行かないが、鍵長を増やせば指数関数的に安全性を高めることができる。
また、暗号方式ごとの計算手順の違いによる探索効率の違いなどから、同じ鍵長でも方式が異なれば強度に差が生じることが知られている。例えば、同じ公開鍵暗号方式でも、楕円曲線暗号はRSA暗号よりも同じ鍵長でより高い安全性を得られるとされる。
ただし、鍵長を伸ばすほど暗号化や復号にかかる処理時間や装置への負荷は増大するため、実用上は必要な安全性と処理負荷のバランスを取って鍵の長さが決定される。
(2019.6.4更新)