AES
暗号化と復号に同じ鍵を使い、データを128ビットのまとまりで処理する共通鍵ブロック暗号である。
イマシルちゃんの解説
通信内容や保存したファイルを、鍵を持つ相手だけが読める形にしたいことがあるよね。
AESは、データを決まった大きさに区切って暗号化する仕組みだよ。
一度に処理するまとまりは128ビットで、元に戻す側も同じ秘密の鍵を使うんだ。
鍵を長くしても、このまとまりの大きさが変わるわけではないよ。
Webの通信や無線LANなど、身近な仕組みの中でも使われているの。
ただしAESという名前だけで、改ざんの検知や相手の確認まで全部できるわけではないよ。
鍵の扱い方や、長いデータを処理する方法も組み合わせて使うんだ。
この解説はわかりやすかったですか?
より深い解説
データの区切りと鍵の長さ
AESはNISTがFIPS 197で定めた暗号である。暗号化と復号に同じ鍵を使うため、公開鍵暗号ではなく共通鍵暗号に分類する。一度に処理するデータの長さをブロック長という。
| 種類 | 鍵の長さ | ブロック長 |
|---|---|---|
| AES-128 | 128ビット | 128ビット |
| AES-192 | 192ビット | 128ビット |
| AES-256 | 256ビット | 128ビット |
例えばAES-256の「256」は鍵の長さであり、データを256ビットずつ処理するという意味ではない。ブロックを変換するAES本体と、複数ブロックをどのようにつなげて扱うかを決める利用モードも区別する。
通信で使うときの組合せ
TLSのAES-GCMでは、AESを使った暗号化に認証タグを組み合わせ、内容の秘匿と改ざん検知を行う。AESそのものを選ぶだけで、相手の証明書の検証や鍵共有まで自動的に済むわけではない。
WPA2の標準的なデータ保護では、AESを用いるCCMPを使う。CCMPはカウンターモードによる暗号化とCBC-MACによる完全性保護を組み合わせる方式である。WEPで使われたRC4のようなストリーム暗号とは、暗号の種類と利用方法が異なる。
実装では、プロトコルが定める鍵の更新、ノンスやカウンターの一意性、認証タグの検証なども守る必要がある。アルゴリズムの選択だけでなく、その利用条件が通信全体の安全性を左右する。