暗号
初期化ベクトル(IV)
別称: IV, 暗号化初期ベクトル
定義
ブロック暗号モードに与えるランダムな初期値で、同じ鍵で同じ平文を暗号化しても異なる暗号文になるようにする。
初期化ベクトル(Initialization Vector、IV)は、ブロック暗号モードで鍵と組み合わせて使用される公開・一度限りの入力で、同じ平文を 2 回暗号化しても異なる暗号文を得るために必要です。要求条件はモードによって異なり、AES-CBC は CPA 安全性のために予測不可能(暗号学的乱数)な IV が必要、AES-CTR と AES-GCM は一意(重複しない)IV が必要で秘匿は不要(AES-GCM では nonce とも呼ばれる)です。サイズは CBC ではブロック長(AES は 128 ビット)、GCM では 96 ビット、ストリーム/CTR モードでは 64〜128 ビットが一般的で、IV は暗号文とともに送信されます。CBC で予測可能な IV を用いる(BEAST 攻撃)、GCM でノンスを再利用するなど IV の扱いを誤ると、機密性と認証性が深刻に損なわれます。
例
- AES-CBC の実装は、各暗号文の先頭に 16 バイトのランダム IV を付与する。
- AES-GCM は 96 ビットの IV を使用し、(鍵, メッセージ)ペアごとに一意でなければならない。
関連用語
ノンス
暗号アルゴリズムに与える一度しか使ってはならない値で、新鮮性を保証し、リプレイや鍵・IV の再利用を防ぐ。
対称鍵暗号
暗号化と復号に同じ秘密鍵を使う暗号方式で、鍵を安全に共有できれば高速で強力な機密性を提供する。
AES(Advanced Encryption Standard)
NIST が標準化した 128 ビットブロック暗号で、鍵長は 128・192・256 ビット。Daemen と Rijmen が設計し、世界で最も広く使われている対称暗号。
ブロック暗号
固定長の平文ブロックを秘密鍵で暗号化する対称暗号で、任意長のデータを扱うために通常は暗号利用モードと組み合わせて使う。
ストリーム暗号
鍵とナンスから導出した擬似乱数の鍵ストリームを平文とビットまたはバイト単位で XOR して暗号化する対称暗号。
TLS (Transport Layer Security)
TLS (Transport Layer Security) — definition coming soon.