対称鍵暗号 各モードの IV の扱いをまとめてみた

【個人ブログ】開発過程と学習記録

投稿日:

対称鍵暗号では、モードごとに IV(初期化ベクトル)の扱いが違います。
これについて学んだので各モードごとにまとめてみました。

参考資料:
NIST SP 800-38A Recommendation for Block Cipher Modes of Operation

CBC

このモードでは、最初のブロックで前の暗号文が存在しないため代わりに IV を使う。
そのため、同じ平文でも IV が違えば暗号文も異なる。
IV は秘密にする必要はないが、予測できない乱数である必要がある。

CFB

このモードでは、IV を暗号化してから、その出力を平文と XOR する。
IV は秘密にする必要はないが、予測できない乱数である必要がある。

CTR

このモードでは、各ブロックに nonce と counter を組み合わせた値を暗号化し、その出力を平文と XOR する。
IV は使用しない。
同じ鍵で同じ nonce / counter の組み合わせを再利用してはいけない。

ECB

このモードでは、各平文ブロックをそのまま暗号化する。
IV は使用しない。
同じ平文で暗号化すると、暗号文は毎回同じになるため推奨されていない。

OFB

このモードでは、IV を暗号化し、その出力をさらに次の入力として使う。
そして、生成された出力を平文と XOR する。
同じ鍵で 同じ IV は再利用してはいけない。

まとめ

TPM での対称鍵暗号による暗号化を理解するために各モードの処理方法を学んでみました。
ちなみに、復号時には暗号化時と同じ IV や nonce / counter が必要になります。


TPM での対称鍵暗号は鍵の保護やパラメーターの暗号化などに使用され、CFB がよく使われています。
CFB はパディングが不要なため、短いデータやブロックサイズに満たないデータを扱いやすいのがメリットです。

コメント

タイトルとURLをコピーしました