Advanced Encryption Standard

Advanced Encryption Standard
(Rijndael)
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
ブロック長 128 bits
構造 SPN構造
ラウンド数 10, 12, 14(鍵長による)
最良の暗号解読法
完全な総当たり攻撃よりも計算量の多い攻撃が発表されているが、2013年時点では計算量が少ない攻撃は見つかっていない: AES-128については、完全2部グラフ(Biclique)を使用すると2126.1の計算量で鍵を復元することが可能である。AES-192とAES-256に対するBiclique攻撃(英語版)では、それぞれ2189.7と2254.4の計算複雑度が適用される。関連鍵攻撃では、AES-192とAES-256をそれぞれ2176と299.5の複雑さで破ることができる。

Advanced Encryption Standard (AES) は、アメリカ国立標準技術研究所(NIST)が2001年に連邦情報処理標準(FIPS 197)として制定した、128ビットのブロック長を持つ共通鍵ブロック暗号である。鍵長56ビットのDESに代わる標準暗号として公開公募により選定された。

AESは、ベルギーの暗号研究者 Joan Daemen とフィンセント・ライメン(Vincent Rijmen)が設計した暗号方式 Rijndael の128ビットブロック長仕様が標準化されたものであり、鍵長128・192・256ビットを規定する。

現在ではTLSなどの通信暗号化をはじめ、政府機関および民間の情報システムで利用されている。

概要

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種類に限られた。

経緯

AESの選定

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

AESの最終候補

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

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つが利用できる。

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

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

  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の数学的構造は他のブロック暗号と異なり、きちんとした記述もある。

この暗号は暗号化方式としてはまだどんな攻撃にも屈していないが、実装によってはサイドチャネル攻撃が成功する場合がある。

耐量子コンピューター

NISTは、今後量子コンピューターの技術が進化してもAES-128が解読される恐れは無いとしている。

関連項目

脚注

[脚注の使い方]
  1. ↑ Rijndaelでは128, 160, 192, 224, 256 bitsが選択可能。AESのスペックに合わせて3つに限定
  2. ↑ Rijndaelでは128, 160, 192, 224, 256 bitsが選択可能。AESのスペックに合わせて128 bitsのみに限定
  3. ↑ “Biclique Cryptanalysis of the Full AES” (PDF) (英語). 2016年3月6日時点のオリジナルよりアーカイブ。2016年10月9日閲覧。
  4. 1 2 岡本 暗号理論入門 第2版(2002:51-52)
  5. 1 2 3 4 結城 暗号技術入門 第3版(2003: 69-71)
  6. ↑ A simple algebraic representation of Rijndael (Niels Ferguson, Richard Schroeppel, and Doug Whiting)(2003年6月6日時点のアーカイブ)
  7. ↑ Sean Murphy (英語)
  8. ↑ 角尾幸保, 久保博靖, 茂真紀, 辻原悦子, 宮内宏, "S-boxにおけるキャッシュ遅延を利用したAESへのタイミング攻撃 (PDF) ", SCIS2003
  9. ↑ Cache-timing attacks on AES (PDF) (英語) - (Daniel J. Bernstein)
  10. ↑ “量子コンピューターを使っても解読が難しい暗号とは?”. GIGAZINE. 2026年4月23日閲覧。

参考文献

外部リンク