初期化ベクトル
初期化ベクトル(英: initialization vector、IV)はビット列であり、ストリーム暗号またはブロック暗号を任意の暗号利用モードで実行するとき、同じ暗号鍵でストリームを生成しても毎回異なるストリームを生成するのに必要とされる。これにより、毎回暗号鍵を替えるといった時間のかかる作業を省くことができる。
IVの大きさは使用する暗号化アルゴリズムと暗号プロトコルに依存し、通常は暗号のブロックサイズと同じか暗号鍵と同じサイズである。IVは受信者がその暗号を解読する際に必須である。IVを渡す方法としては、鍵交換やハンドシェイクの際に合意した上でパケットと共にIVを送るか、IVの計算方法を共有しておくか、現在時間のようなインクリメンタルな測定値(RSA SecurID、VASCO Digipassなどのハードウェア認証トークン)や、送信者または受信者のID、ファイルID、パケット、セクタ番号やクラスタ番号などをパラメータとして使う。プロトコルに従い、複数の変数を組み合わせたり、ハッシュ関数を使う。IVをランダムに選択した場合、衝突の可能性を考慮する必要があり、インクリメンタルなIVをnonceとして使う場合、関連IV攻撃への耐性を考慮しておく必要がある。