トップQs
タイムライン
チャット
視点

Advanced Encryption Standard

ウィキペディアから

Advanced Encryption Standard
Remove ads

Advanced Encryption Standard (AES) は、アメリカ2001年に標準暗号として定めた共通鍵暗号アルゴリズムである。アメリカ国立標準技術研究所(NIST)が公募し、Rijndael(ラインダール)がAESとして採用された[4]

概要 一般, 設計者 ...
Remove ads

概要

AES以前の標準暗号であったDESは、次の2点が問題であった。

  • コンピュータの能力とネットワーク技術の上昇による相対的な強度の低下
  • NSAの関与がある設計の不透明性(詳細はDESの記事を参照)

そこで、新しい標準暗号がアメリカ国立標準技術研究所(NIST)の主導によって公募され、AESが選出された。2001年3月に FIPS PUB 197 として公表された。

厳密には「AES」は、選出されなかった暗号も含む、手続き期間中から使われた「新しい標準暗号」の総称であり、選出された暗号方式自体の名はRijndael(ラインダール)である。

AESはSPN構造ブロック暗号である。ブロック長は128ビットであり、鍵長には128ビット・192ビット・256ビットの3種類が選択できる(鍵長が大きいほうが暗号強度が高い)。これに対し、AESの元となった Rijndael では、ブロック長と鍵長が可変であり、128ビットから256ビットまでの32ビットの倍数が選べる。NISTが公募した際のスペックに従い、米国標準となったAESではブロック長は128ビットに固定され、鍵長も3種類に限られた[5]

Remove ads

経緯

AESの選定

旧規格 DES (FIPS 46) の安全性が低下したので、1997年9月にNIST(アメリカ国立標準技術研究所)が後継の暗号標準AES (Advanced Encryption Standard) とすべく共通鍵ブロック暗号を公募した。公募要件には下記のような条件が挙げられた[5]

  • 米国に限らず世界中で、制限なく無料で利用できなければならないこと。
  • 詳細なアルゴリズム仕様を公開すること。
  • ANSI C及びJavaによる実装を行うこと。
  • 暗号強度評価を公開すること。

AESの最終候補

世界から応募された21方式から、公募要件を満たした15方式に対する評価が行われ、安全性と実装性能に優れた5方式が最終候補として残った。最終候補および設計者は下記のとおりである[5]

  • Rijndael - ホァン・ダーメン英語版フィンセント・ライメン
  • Serpent(サーペント、または、サーパン)- ロス・アンダーソンエリ・ビーハムラーズ・ヌードセン
  • RC6 - ロナルド・リヴェストマット・ロブショーレイ・シドニーイーチュン・リサ・イン
  • Twofish - ブルース・シュナイアージョン・ケルシーダグ・ホワイティングデーヴィッド・ワグナークリス・ホールニールス・ファーガソン
  • Mars - カロリン・バーウィックドン・カッパースミスエドワード・ダヴィニョンロザリオ・ジェンナロシャイ・ハレヴィチャランジット・ジュトラステファン・マテリアス Jr.ルーク・オコーナーモハンマド・ペイラヴィアンデヴィド・サフォードネヴェンコ・ズニコフ

AESの決定

最終選考の結果、あらゆる実装条件で優れた実装性能を発揮したベルギールーヴェン・カトリック大学の研究者ホァン・ダーメン英語版 (Joan Daemen) と フィンセント・ライメン (Vincent Rijmen) が設計した Rijndael (ラインダール)が2000年10月に採用された。

Rijndaelという名称のうち、RijnはRijmen、daeはDaemenから取られたことは明白だが、lはどこから来たのかが不明だった。指導教授だったバート・プレネル (Bart Preneel)英語版 から取ったのではという説があり、Rijmenが講演した際に質問を受けたが、その答えは "It's a conjecture.(それは憶測に過ぎないね)" だった[要出典]

Remove ads

暗号化の方法

AESはSPN構造ブロック暗号で、ブロック長は128ビット、鍵長は128ビット・192ビット・256ビットの3つが利用できる[4]

暗号化処理では、始めに鍵生成を行う。AES暗号の鍵長によって変換のラウンド数が異なる。次のとおりである。

  • 鍵長128ビットのとき、ラウンド数は10回である。
  • 鍵長192ビットのとき、ラウンド数は12回である。
  • 鍵長256ビットのとき、ラウンド数は14回である。

暗号化は下記の4つの処理から構成される[5]

  1. SubBytes - 換字表(Sボックス)による1バイト単位の置換。
  2. ShiftRows - 4バイト単位の行を一定規則で左シフトする。
  3. MixColumns - ビット演算による4バイト単位の行列変換。
  4. AddRoundKey - ラウンド鍵とのXORをとる。

これら4つの処理を1ラウンドとして暗号化を行う。

なお、復号は上記処理の逆変換を逆順で実行する。

  1. AddRoundKey
  2. InvMixColumns
  3. InvShiftRows
  4. InvSubBytes

安全性

関連鍵攻撃により、256ビットのAES暗号の第9ラウンドまでが解読可能である。また、選択平文攻撃により、192ビットおよび256ビットのAES暗号の第8ラウンドまで、128ビットのAES暗号の第7ラウンドまでが解読可能である (Ferguson et al., 2000)。シュナイアーはAESの「代数的単純さに疑問」を感じているが、AESは欧州の暗号規格NESSIEや日本の暗号規格CRYPTRECでも採用された。AESの数学的構造は他のブロック暗号と異なり、きちんとした記述もある[6][7]

この暗号はまだどんな攻撃にも屈していないが、何人かの研究者がこの数学的な構造を利用した攻撃方法が存在するかもしれないと指摘している[8][9]

関連項目

Remove ads

脚注

参考文献

Loading content...

外部リンク

Loading content...
Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads