キー、IV、ノンスの主な違いは何ですか?

キー、IV、ノンスの主な違いは何ですか?

問題

nonce、key、IVの主な違いは何ですか?鍵は間違いなく秘密にされるべきです。しかし、ナンスとIVはどうですか?それらとその目的の主な違いは何ですか?文献において、そして実際には、IVが一意であるべきブロック暗号化暗号化モードの「イニシエーター」として使用されているのはそれだけですか?同じプロパティがnonceにも当てはまるはずですが、インスタンス化しないのでnonceと呼んでいますか?つまり、AES-CTRモードでは、IVはnonce + counterです。そして、どちらも暗号文の最初にプレーンテキスト形式で入れられます。

 

答える

キーは、文脈の中で対称暗号、あなたが秘密に保つものです。あなたの鍵を知っている(または推測できる)誰もが、あなたがそれを使って暗号化したすべてのデータを復号化できます(またはあなたがそれを使って計算した認証コードを偽造するなど)。

(「非対称」または公開鍵暗号化もあり、鍵には2つの部分があります。復号化や署名を許可する秘密鍵と、暗号化や署名を許可する公開鍵(対応する秘密鍵から派生)です。検証。)

IVまたは初期化ベクトルは、その最も広い意味で、単に初期値は、いくつかの反復プロセスを開始するために使用される、です。この用語は2つの異なるコンテキストで使用され、それぞれに異なるセキュリティ要件を意味します。たとえば、暗号化ハッシュ関数には通常、固定IVがあり、これはハッシュ関数の仕様に含まれる任意の定数であり、データが入力される前の初期ハッシュ値として使用されます。

ウィキペディアのMerkle-Damgårdハッシュ関数の図

逆に、ほとんどのブロック暗号化操作モードでは、ランダムで予測不可能なIV、または特定のキーで暗号化された各メッセージに対して少なくとも一意のIVが必要です。(もちろん、各キーが1つのメッセージの暗号化にのみ使用される場合は、固定IVを使用して回避できます。)このランダムIVにより、各メッセージが異なる方法で暗号化されるため、同じキーで暗号化された複数のメッセージを確認できません。 t単一の長いメッセージを表示するだけでなく、攻撃者に詳細な情報を提供します。特に、同じメッセージを2回暗号化する2つの完全に異なる暗号文が生成されることが保証されます。これは、暗号化スキームを意味的に安全にするために必要です。

いずれにせよ、IVを秘密にしておく必要は決してありません。秘密にしておけば、IVではなくキーになります。実際、ほとんどの場合、IVを秘密にしておくことは、たとえデータを復号化(またはハッシュを検証するなど)するために受信者が知る必要があるため、たとえ望んでも実用的ではありません。

ナンスは、広い意味では、単に「一度しか使用数」です。nonceに一般的に要求される唯一のことは、(特定のキーによる暗号化などの関連する範囲内で)2回使用してはならないことです。ブロック暗号の暗号化に使用される固有のIVはノンスとして認定されていますが、他のさまざまな暗号化スキームでもノンスを使用しています。

「IV」と「ノンス」のどちらの用語が異なるブロック暗号モードで使用されるかについては、いくつかのバリエーションがあります。作成者によっては、どちらか一方のみを使用する場合もあれば、区別する場合もあります。特に、CTRモードの場合、一部の作成者はnonceと初期カウンター値(通常はすべて0ビットのブロック)の連結によって形成される完全な暗号入力ブロック用に「IV」という用語を予約しますが、他の作成者は「IV」という用語は、CTRモードを意味します。CTRモードでメッセージと共に送信されるnonce / IVが実際に初期ブロック暗号入力にマッピングされる方法にはいくつかのバリエーションがあるため、これはすべて複雑です。

逆に、CTR以外のモード(またはEAXやGCMなどの関連モード)の場合、「IV」という用語は「ノンス」よりもほとんど普遍的に優先されます。ノンスに期待される一意性の通常の要件を超えるIV(具体的には、それらが予測不可能である)に関する要件があるため、これは特にCBCモードに当てはまります。

 

おすすめ

転載: www.cnblogs.com/chucklu/p/12712335.html