米国国家基準暗号 - DESとAES
『暗号技術のすべて』第3章を参考にしました。 共通鍵暗号のDESやAESについての章ですが、アルゴリズムは様々なサイトで詳細な説明がされているので、私が興味を持ったことのみ書いていきます。
DES
- Data Ecryption Standard(データ暗号化標準)の略
- 米国の旧国家標準のブロック暗号(Feistel構造)
- ブロック長64ビット、鍵長64ビット(実質56ビット)
実質56ビットの理由
56ビットの鍵を7ビットずつ8つに分け、それぞれにパリティビット(誤り検出符号)を付け、64ビットとしている。このことから、当時のインターネット通信では、誤りが起こりやすい不完全な環境だったことが予想される。現在では、誤り検出の機能は、暗号方式ではなくインターネットが担っているため、後続のAESには、パリティビットは付けられていない。
DESの弱点
DESには、構造上の弱点(ビット数が少ない、弱鍵等)が多々あります。DESの解読手法の中の線形解読法という方法は、1993年に三菱電機の松井充氏によって発明された解読法です。
なんと、日本人によって、DESが解読可能であることが示されたのです!
このことがきっかけで、米国国立標準技術研究所(NIST)はAESを公募することになりました。
AES
- Advanced Encryption Standard(高度暗号化標準)の略
- 米国の新国家基準のブロック暗号(SPN構造)
- DESの安全性が懸念されたため、2001年に採用
- ブロック長128ビット、鍵長128、196、256ビット
DESとの比較
- SPN構造を用いていることにより、ラウンド数が少なく、並列処理に向いている。
- AESは、鍵長によって3つのタイプに分類されるが、どれもDESよりも長いので、安全性が高い。
- DESの設計にはNSA(米国国家安全保障局)が深く関わっており、NSAの都合の良い要件が仕様に組み込まれているのではないかという疑惑があったが、AESはコンペティションによって、選定された。
ブロック暗号の安全性
- ブロック暗号の安全性を確実に保証する理論的な手法は存在しない。
- 現時点で知られている攻撃に対して、耐性を持つかでしか判断できない。
- 将来的に新しい攻撃手法が提案されると安全性が破られる可能性もある。
- セキュリティマージン
- 未知の攻撃手法に対してブロック暗号がどの程度の耐性を持つかを評価する概念
まとめ
- 共通鍵暗号方式:暗号化と復号に共通の鍵を用いる
- ブロック暗号:共通鍵暗号方式の暗号化アルゴリズムのうち、平文をある一定のまとまり(ブロック)ごとに暗号化するもの
- DES:旧米国国家基準のブロック暗号
- AES:新米国国家基準のブロック暗号
感想
こちらのサイトに記載されてあるように、2023年には3DES(DESを三層に拡張した暗号)の使用が禁止される。これまでDESで暗号化されていたものがAESに置き換わっているのかとても気になる。