暗号化・証明書

共通鍵暗号(AES) きょうつうかぎあんごう(えーいーえす)

AES共通鍵対称暗号ブロック暗号暗号化NIST
共通鍵暗号(AES)について教えて

簡単に言うとこんな感じ!

暗号化と復号に「同じ鍵」を使う仕組みで、AESはその代表格だよ。同じ合鍵を持つ二人だけが宝箱を開けられるイメージ。速くて強いから、ファイル暗号化やWi-Fiのパスワード保護など、身近なところで大活躍してるんだ!


共通鍵暗号(AES)とは

共通鍵暗号(対称暗号) とは、データの暗号化と復号に同一の鍵を使う暗号方式です。送り手と受け手が事前に同じ鍵を共有しておく必要があります。

AES(Advanced Encryption Standard) は、現在最も広く使われている共通鍵暗号アルゴリズムです。2001年にNIST(米国立標準技術研究所)が標準として採用し、前規格のDESを置き換えました。ベルギーの暗号研究者Vincent RijmenとJoan Daemenが開発した「Rijndael(ライニダール)」アルゴリズムが選出されています。

AESはブロック暗号の一種で、データを128ビット(16バイト)のブロックに分割して処理します。鍵長は128/192/256ビットの3種類があり、現在はAES-256が最も高いセキュリティとして推奨されています。


AESの主なパラメータと動作モード

項目内容
ブロックサイズ128ビット(固定)
鍵長128 / 192 / 256ビット
ラウンド数10 / 12 / 14(鍵長に応じて)
処理速度非常に高速(ハードウェア支援あり)

主な動作モード

モード特徴主な用途
ECB同じブロックは同じ暗号文(危険)現在は非推奨
CBC前ブロックの結果をXORして連鎖ファイル暗号化
CTRカウンターをXORで暗号化するストリームモード高速・並列処理向け
GCMCTRモード+認証タグ付き(認証付き暗号)TLS 1.3、APIトークン

歴史と背景

  • 1977年:DES(56ビット鍵)がNISTの前身NBS標準に。優れた暗号だったが鍵が短すぎた
  • 1997年:NISTがDES後継の公募「AES競争」を開始。15候補がエントリー
  • 2000年:Rijndaelが最優秀候補として選出される
  • 2001年:FIPS PUB 197としてAESが正式採用
  • 2003年:米NSAがAES-128/192/256を機密情報の保護に採用(AES-256はTop Secret対応)
  • 現在TLS、Wi-Fi(WPA2/WPA3)、BitLocker、ZIP暗号化など、あらゆる場面で使用

共通鍵暗号と公開鍵暗号の比較

共通鍵暗号(AES等) 暗号化と復号に同じ鍵を使用 ✔ 高速(大量データ向き) ✔ 実装が簡単 ✘ 鍵共有が課題 用途: ファイル暗号化・通信 代表: AES, DES, ChaCha20 公開鍵暗号(RSA等) 暗号化と復号に異なる鍵を使用 ✔ 鍵共有不要(公開鍵で暗号化) ✔ 電子署名に使える ✘ 低速(小さなデータ向き) 用途: 鍵交換・署名 代表: RSA, ECC, DSA

実際のTLS通信では、最初に公開鍵暗号で「共通鍵」を安全に交換し、その後はAESで高速通信するというハイブリッド方式が使われています。


関連する規格・RFC

規格・RFC番号内容
FIPS PUB 197AESの仕様書(2001年制定)
NIST SP 800-38AAESの動作モード(CBC, CTR等)の仕様
NIST SP 800-38DGCMモード(認証付き暗号)の仕様
RFC 3602TLSでのAES-CBCの使い方

関連用語