AES(Advanced Encryption Standard)とは:仕組み・歴史・用途をわかりやすく解説
AES(Advanced Encryption Standard)の仕組み・歴史・用途を初心者向けに図解でわかりやすく解説。暗号の基本から実用例、導入ポイントまで丁寧に紹介。
暗号技術において、AES(Advanced Encryption Standard)は、2001年にNIST(National Institute of Standards and Technology)によって選定された共通鍵ブロック暗号アルゴリズムである。データを暗号化するために選定され、世界中で広く利用されている。Advanced Encryption Standardは、Data Encryption Standard (DES)に取って代わり、より強力で効率的な代替として採用された。
2008年現在、AESは共通鍵暗号方式で最もよく使われるアルゴリズムの一つであり、プログラマーや一般市民が様々なソフトウェアやハードウェアで利用できるようになっている。
概要と特徴
AESは以下の特徴を持つ:
- ブロック長:128ビット(固定)
- 鍵長:128、192、256ビット(3種類)
- ラウンド数:鍵長により10、12、14ラウンド
- 設計:Rijndael(リジェンダール)という置換-置換ネットワーク(SPN)に基づく構造
- 用途:通信(TLS/SSL)、ディスク暗号化、VPN、無線LAN(WPA2)など多岐にわたる
歴史と選定プロセス
1997年、NISTはDESの置き換えとなる公的暗号標準を求めて公募を開始した。2000年にベルギーの暗号設計者Joan DaemenとVincent Rijmenが設計したRijndaelが勝者に選ばれ、2001年にAESとして正式に採用された。選定では安全性・性能・実装の容易さ・特許状況などが評価基準となった。
内部構造と基本操作
AESの処理はブロック(128ビット)を4x4のバイト行列(ステート)として扱い、各ラウンドで以下の主要な変換を行う:
- SubBytes:各バイトに対する非線形置換(Sボックス)
- ShiftRows:行ごとの循環シフトで拡散を促進
- MixColumns:列ごとの線形変換(多項式演算)でさらに拡散
- AddRoundKey:ラウンドごとの鍵(ラウンドキー)とのXOR
最終ラウンドではMixColumnsが省かれる。ラウンドキーは鍵スケジュールで元鍵から導出される。
暗号モード(運用方法)
AESはブロック暗号なので、そのままでは複数ブロックの利用や整列の問題を扱えない。実運用では以下のようなモードが一般的に使われる:
- ECB(電子コードブック) — 単純だが同一平文ブロックが同一暗号文になりやすく推奨されない
- CBC(暗号ブロック連鎖) — 初期化ベクトル(IV)を用いて隠蔽性を高める
- CTR(カウンタ) — ストリーム暗号的に並列処理可能で高速
- GCM(Galois/Counter Mode) — 認証付き暗号(AEAD)、整合性検証と暗号化を同時に提供
安全性と既知の攻撃
AES自体は設計上強力で、公開鍵解析による実用的な全体破壊は知られていない(一般的な構成の下で)。ただし次の点に注意が必要である:
- 理論的な弱点やラウンド削減攻撃が研究されているが、実用的な鍵全体の破壊には至っていない。
- サイドチャネル攻撃(電力解析、時間差攻撃など)は実装に依存するため、ハードウェアやソフトウェア側で対策が必要。
- 量子コンピュータの影響:Groverのアルゴリズムにより総当たり探索のコストが平方根に低下する理論的な影響があるため、将来を見越しては鍵長256ビットの採用が推奨されることがある。
実装と性能最適化
AESはソフトウェア・ハードウェア両面で最適化が進んでいる。近年のCPUにはAES-NI(Intel/AMDなど)と呼ばれるハードウェア命令が搭載され、AES処理を大幅に高速化する。組み込み機器やスマートカード向けにはメモリや処理負荷を抑えた実装が用いられる。
用途と標準・採用例
AESは多数のプロトコルや標準で採用されている。代表的なもの:
- TLS/SSL(インターネット通信の暗号化)
- IPsec / VPN(ネットワークトンネリング)
- ディスク暗号化(BitLocker、FileVault等)
- 無線LAN(WPA2ではAES-CCMPが用いられる)
- 各種暗号ライブラリやセキュリティ製品
また、政府や企業のセキュリティ基準(例:FIPS 140-2/3)でもAESが認定・推奨されている場合が多い。
運用上の注意点
- 適切なモードとIV/カウンタ管理:同じIVやカウンタを再利用すると安全性が大きく損なわれる。
- キー管理:鍵の生成・保管・ローテーションを適切に行うことが最も重要。
- 認証付き暗号の利用:可能であればGCMや他のAEADモードを使い、暗号化と同時に整合性を確保する。
- 実装のセキュリティ:サイドチャネル対策や安全なライブラリの利用を優先する。
まとめ
AESは現代の共通鍵暗号における事実上の標準であり、安全性・性能のバランスに優れる。正しいモード選択、鍵管理、実装対策を行えば、多くの用途で信頼できる暗号手段となる。将来の量子コンピュータへの備えや実装上の脆弱性には引き続き注意が必要である。

VeraCryptは、暗号化にAESを使用するオプションを提供するプログラムです
歴史
AESは、ベルギー人プログラマーVincent RijmenとJoan Daemenによって開発されたRijndael(発音:rɛindaː)ブロック暗号の一種である。
米国国立標準技術研究所は、一般に利用可能な共通鍵暗号アルゴリズムのコンペを開催し、1997年に作品の募集を開始した。
1998年に開催された第1回AES会議では、15種類のアルゴリズムが選定されました。NISTはコメントを求めた後、第2回AES会議を開催し、MARS、RC6、Rijndael、Serpent、Twofishの5つのアルゴリズムが上位に選ばれた。
2000年、第3回AES会議の終了までに、NISTはAESの提案にRijndaelを選択した。NISTはAESのために、Rijndaelファミリーの中から、ブロックサイズは128ビットだが、鍵長は128、192、256ビットの3種類を選択した。
AES(Advanced Encryption Standard)は、2001年11月26日に連邦情報処理規格として発行された。
詳細
AESのブロックサイズは128ビット固定で、鍵のサイズは128、192、256ビットの3値。
「AESアルゴリズムのすべての鍵長(すなわち128、192、256)の設計と強度は、SECRETレベルまでの機密情報を保護するのに十分である。トップシークレットの情報には、192または256の鍵長のいずれかを使用する必要があります。国家安全保障システムおよび/または情報の保護を目的とした製品への AES の実装は、その取得および使用前に NSA による審査および認定を受ける必要があります。"
標準
AES(Advanced Encryption Standard)は、次のように定義されています。
- FIPS PUB 197:AES(Advanced Encryption Standard:高度暗号化規格)
- ISO/IEC 18033-3:ブロック暗号
関連ページ
- DES-X
- データ暗号化規格(DES)
- トリプルDES(TDES)
質問と回答
Q: AES(Advanced Encryption Standard)とは何ですか。A: Advanced Encryption Standardは、データの暗号化に使用される共通鍵ブロック暗号アルゴリズムです。
Q: AESはいつ、誰が選んだのですか?
A: AESは2001年に米国国立標準技術研究所(NIST)によって選定されました。
Q: AESは何に取って代わったのですか?
A: AESはデータ暗号化標準(DES)に取って代わりました。
Q: AES が共通鍵暗号方式で最も人気のあるアルゴリズムになったのはいつですか?
A: 2008年の時点で、AESは共通鍵暗号方式で最もよく使われるアルゴリズムの1つになりました。
Q: 誰がAESにアクセスできますか?
A: AESは様々なソフトウェア・パッケージでプログラマーや一般の人々が利用できます。
Q: AES はどのような暗号アルゴリズムですか?
A: AES は共通鍵ブロック暗号アルゴリズムです。
Q: AESの主な目的は何ですか?
A: AESの主な目的はデータの暗号化です。
百科事典を検索する