Advanced Encryption Standard
Advanced Encryption Standard (AES) は、アメリカが2001年に標準暗号として定めた共通鍵暗号アルゴリズムである。アメリカ国立標準技術研究所(NIST)が公募し、Rijndael(ラインダール)がAESとして採用された[4]。
The SubBytes step, one of four stages in a round of AES | |
一般 | |
---|---|
設計者 | フィンセント・ライメン, ホァン・ダーメン |
初版発行日 | 1998 |
派生元 | Square |
後継 | Anubis, Grand Cru |
認証 | AES採用, CRYPTREC, NESSIE, NSA |
暗号詳細 | |
鍵長 | 128, 192 or 256 bits[1] |
ブロック長 | 128 bits[2] |
構造 | SPN構造 |
ラウンド数 | 10, 12, 14(鍵長による) |
最良の暗号解読法 | |
完全な総当たり攻撃よりも計算量の多い攻撃が発表されているが、2013年時点では計算量が少ない攻撃は見つかっていない:[3] AES-128については、完全2部グラフ(Biclique)を使用すると2126.1の計算量で鍵を復元することが可能である。AES-192とAES-256に対するBiclique攻撃では、それぞれ2189.7と2254.4の計算複雑度が適用される。関連鍵攻撃では、AES-192とAES-256をそれぞれ2176と299.5の複雑さで破ることができる。 |
概要
編集AES以前の標準暗号であったDESは、次の2点が問題であった。
そこで、新しい標準暗号がアメリカ国立標準技術研究所(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]。
経緯
編集AESの選定
編集旧規格 DES (FIPS 46) の安全性が低下したので、1997年9月にNIST(アメリカ国立標準技術研究所)が後継の暗号標準AES (Advanced Encryption Standard) とすべく共通鍵ブロック暗号を公募した。公募要件には下記のような条件が挙げられた[5]。
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.(それは憶測に過ぎないね)" だった[要出典]。
暗号化の方法
編集AESはSPN構造のブロック暗号で、ブロック長は128ビット、鍵長は128ビット・192ビット・256ビットの3つが利用できる[4]。
暗号化処理では、始めに鍵生成を行う。AES暗号の鍵長によって変換のラウンド数が異なる。次のとおりである。
- 鍵長128ビットのとき、ラウンド数は10回である。
- 鍵長192ビットのとき、ラウンド数は12回である。
- 鍵長256ビットのとき、ラウンド数は14回である。
暗号化は下記の4つの処理から構成される[5]。
- SubBytes - 換字表(Sボックス)による1バイト単位の置換。
- ShiftRows - 4バイト単位の行を一定規則で左シフトする。
- MixColumns - ビット演算による4バイト単位の行列変換。
- AddRoundKey - ラウンド鍵とのXORをとる。
これら4つの処理を1ラウンドとして暗号化を行う。
なお、復号は上記処理の逆変換を逆順で実行する。
- AddRoundKey
- InvMixColumns
- InvShiftRows
- InvSubBytes
安全性
編集関連鍵攻撃により、256ビットのAES暗号の第9ラウンドまでが解読可能である。また、選択平文攻撃により、192ビットおよび256ビットのAES暗号の第8ラウンドまで、128ビットのAES暗号の第7ラウンドまでが解読可能である (Ferguson et al., 2000)。シュナイアーはAESの「代数的単純さに疑問」を感じているが、AESは欧州の暗号規格NESSIEや日本の暗号規格CRYPTRECでも採用された。AESの数学的構造は他のブロック暗号と異なり、きちんとした記述もある[6][7]。
この暗号はまだどんな攻撃にも屈していないが、何人かの研究者がこの数学的な構造を利用した攻撃方法が存在するかもしれないと指摘している[8][9]。
関連項目
編集脚注
編集- ^ 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日時点のオリジナルよりアーカイブ。October 9, 2016閲覧。
- ^ 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。
- 結城浩『暗号技術入門 - 秘密の国のアリス』(第3版)ソフトバンクパブリッシング、2003年。ISBN 4-7973-2297-7。
- 澤田秀樹:「暗号理論と代数学 増補・AES(高度暗号化標準) Kindle版」,(2021年9月16日).
外部リンク
編集- 公式サイト AES Home Page(のアーカイブ) - ウェイバックマシン(2014年7月17日アーカイブ分)
- リファレンスコード
- 解説 AES概説(2009年5月3日時点のアーカイブ)
- 選定過程 AESファイナリストをめぐって - ウェイバックマシン
- Report on the Development of the Advanced Encryption Standard