Advanced Encryption Standard

Advanced Encryption Standard (AES) は、DESに代わる新しい標準暗号となる共通鍵暗号アルゴリズムである。アメリカ国立標準技術研究所（NIST）の主導により公募され、Rijndael（ラインダール）がAESとして採用された。 以前の標準暗号であった「DES」は、 時代の経過による相対的な強度の低下 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種類に限られた。。 旧規格 DES (FIPS 46) の安全性が低下したため、1997年9月にNIST（アメリカ国立標準技術研究所）が後継の暗号標準AES (Advanced Encryption Standard) とすべく共通鍵ブロック暗号を公募した。公募要件には下記のような条件が挙げられた。 米国に限らず世界中で、制限なく無料で利用できなければならないこと。 詳細なアルゴリズム仕様を公開すること。 ANSI C及びJavaによる実装を行うこと。 暗号強度評価を公開すること。 世界から応募された21方式から、公募要件を満たした15方式に対する評価が行われ、安全性と実装性能に優れた5方式が最終候補として残った。最終候補および設計者は以下の通りである。 Rijndael - ホァン・ダーメン（英語版）、フィンセント・ライメン Serpent（サーペント、または、サーパン）- ロス・アンダーソン（英語版）、エリ・ビーハム、ラーズ・ヌードセン RC6 - ロナルド・リヴェスト、マット・ロブショー、レイ・シドニー、イーチュン・リサ・イン Twofish - ブルース・シュナイアー、ジョン・ケルシー、ダグ・ホワイティング、デーヴィッド・ワグナー、クリス・ホール、ニールス・ファーガソン Mars（英語版） - カロリン・バーウィック、ドン・カッパースミス、エドワード・ダヴィニョン、ロザリオ・ジェンナロ、シャイ・ハレヴィ、チャランジット・ジュトラ、ステファン・マテリアス Jr.、ルーク・オコーナー、モハンマド・ペイラヴィアン、デヴィド・サフォード、ネヴェンコ・ズニコフ 最終選考の結果、あらゆる実装条件で優れた実装性能を発揮したベルギーのルーヴェン・カトリック大学の研究者ホァン・ダーメン（英語版） (Joan Daemen) と フィンセント・ライメン (Vincent Rijmen) が設計した Rijndael （ラインダール）が2000年10月に採用された。 ちなみに、Rijndaelという名称のうち、RijnはRijmen、daeはDaemenから取られたことは明白だが、lはどこから来たのかが不明だった。指導教授だったバート・プレネル (Bart Preneel)（英語版） から取ったのではという説があり、Rijmenが講演した際に質問を受けたが、その答えは "It's a conjecture.（それは憶測に過ぎないね）" だった。 AESはSPN構造のブロック暗号で、ブロック長は128ビット、鍵長は128ビット・192ビット・256ビットの3つが利用できる。 暗号化処理は始めに鍵生成を行う。AES暗号の鍵長によって変換のラウンド数が異なる。次の通りである。 鍵長128ビットのとき、ラウンド数は10回である。 鍵長192ビットのとき、ラウンド数は12回である。 鍵長256ビットのとき、ラウンド数は14回である。 暗号化は下記の４つの処理から構成される。 SubBytes - 換字表（Sボックス）による１バイト単位の置換。 ShiftRows - 4バイト単位の行を一定規則で左シフトする。 MixColumns - ビット演算による４バイト単位の行列変換。 AddRoundKey - ラウンド鍵とのXORをとる。 これら４つの処理を１ラウンドとして暗号化を行う。 なお、復号は上記処理の逆変換を逆順で実行する。 AddRoundKey InvMixColumns InvShiftRows InvSubBytes 関連鍵攻撃により、256ビットのAES暗号の第9ラウンドまでが解読可能である。また、選択平文攻撃により、192ビットおよび256ビットのAES暗号の第8ラウンドまで、128ビットのAES暗号の第7ラウンドまでが解読可能である (Ferguson et al., 2000)。シュナイアーはAESの「代数的単純さに疑問」を感じているが、AESは欧州の暗号規格NESSIEや日本の暗号規格CRYPTRECでも採用された。AESの数学的構造は他のブロック暗号と異なり、きちんとした記述もある。 この暗号はまだどんな攻撃にも屈していないが、何人かの研究者がこの数学的な構造を利用した攻撃方法が存在するかもしれないと指摘している。 ブロック暗号 有限体 Transport Layer Security - 暗号化として128ビットおよび256ビットのAES-CBC、AES-GCM、AES-CCMを使用可能 ディスク暗号化 HFS+ - セキュリティ機能「FileVault」が128ビットAES暗号を使用 BitLocker Wii - 暗号化に128ビットAESを使用 アーカイブファイル形式 ZIP - 256ビットAESを使用可能 7z - 256ビットAESを使用可能 RAR - 256ビットAESを使用可能 CCMP - WEPで用いられていたRC4、WPAで用いられていたTKIP（本質的にRC4と同等）に代わり、WPA2で採用された暗号化プロトコル。128ビットAESをCCMモードで利用 AACS - 128ビットAESを使用 CRYPTREC NESSIE CPUの命令セット AES-NI CLMUL instruction set ^ Rijndaelでは128, 160, 192, 224, 256 bitsが選択可能。AESのスペックに合わせて3つに限定 ^ Rijndaelでは128, 160, 192, 224, 256 bitsが選択可能。AESのスペックに合わせて128 bitsのみに限定 ^ “Biclique Cryptanalysis of the Full AES (PDF)” (英語). 2016年3月6日時点のオリジナルよりアーカイブ。2016年10月9日閲覧。 ^ a b 岡本 暗号理論入門 第2版(2002:51-52) ^ a b c d 結城 暗号技術入門 第3版(2003: 69-71) ^ A simple algebraic representation of Rijndael (Niels Ferguson, Richard Schroeppel, and Doug Whiting)（2003年6月6日時点のアーカイブ） ^ Sean Murphy （英語） ^ 角尾幸保 , 久保博靖, 茂真紀, 辻原悦子, 宮内宏, "S-boxにおけるキャッシュ遅延を利用したAESへのタイミング攻撃 (PDF) ", SCIS2003 ^ Cache-timing attacks on AES (PDF) （英語） - (Daniel J. Bernstein) FIPS 197 (PDF) 、NIST発行、2001年 （英語） Daemen and Rijmen, Rijndael 仕様書（補追版） (PDF) 、1999年発行-2003年補追 （英語） 岡本栄司 『"暗号理論入門 第2版"』 共立出版、2002年。ISBN 4-320-12044-2。 結城浩 『"暗号技術入門 - 秘密の国のアリス 第３版"』 ソフトバンクパブリッシング、2003年。ISBN 4-7973-2297-7。 公式サイト AES Home Page（のアーカイブ） - ウェイバックマシン（2014年7月17日アーカイブ分） （英語） リファレンスコード （英語） 解説 AES概説（2009年5月3日時点のアーカイブ） 選定過程 AESファイナリストをめぐって - ウェイバックマシン （日本語） Report on the Development of the Advanced Encryption Standard （英語）