暗号
対称鍵暗号
別称: 共通鍵暗号, 秘密鍵暗号
定義
暗号化と復号に同じ秘密鍵を使う暗号方式で、鍵を安全に共有できれば高速で強力な機密性を提供する。
対称鍵暗号(共通鍵暗号、共有鍵暗号)は、通信当事者全員が共有する単一の鍵を、平文の暗号化と暗号文の復号の両方に用います。主な分類はブロック暗号(AES、3DES、Blowfish など、固定長ブロック単位で処理)とストリーム暗号(ChaCha20、Salsa20 など、鍵ストリームを生成して平文と XOR)で構成されます。現代の標準は AES-128 と AES-256 を GCM や OCB といった認証付きモードで用いる方式で、AES-NI などのハードウェア支援により高速かつ安全です。弱点は鍵配送にあり、各当事者間で秘密を共有する必要があるため、TLS のようにディフィー・ヘルマン鍵交換などの非対称暗号と組み合わせて解決します。
例
- TLS 1.3 では AES-GCM や ChaCha20-Poly1305 によりレコードを対称暗号化する。
- BitLocker や LUKS などのフルディスク暗号化は対称鍵暗号に基づく。
関連用語
暗号化
アルゴリズムと鍵を用いて平文を暗号文に変換し、認可された当事者のみが元のデータを復元できるようにする処理。
AES(Advanced Encryption Standard)
NIST が標準化した 128 ビットブロック暗号で、鍵長は 128・192・256 ビット。Daemen と Rijmen が設計し、世界で最も広く使われている対称暗号。
ブロック暗号
固定長の平文ブロックを秘密鍵で暗号化する対称暗号で、任意長のデータを扱うために通常は暗号利用モードと組み合わせて使う。
ストリーム暗号
鍵とナンスから導出した擬似乱数の鍵ストリームを平文とビットまたはバイト単位で XOR して暗号化する対称暗号。
非対称鍵暗号
数学的に対応した鍵ペア(暗号化用の公開鍵と復号用の秘密鍵)を用い、事前の秘密共有なしに安全な通信を可能にする暗号方式。
セッション鍵
1 回の通信セッションを保護するために使われ、終了後に破棄される短命の対称鍵。