2

背景: AES暗号化/復号化用の.NET関数のペアを作成しました。

ここで説明するのと同様に、暗号文を含むIVを単一のbase64エンコード文字列に格納します。

彼がハッシュバイトの最後にソルトバイトを追加し、base64が新しい配列をエンコードするこの例をハッシュするのを見てきました。次に、ハッシュを検証するときに、base64文字列をデコードし、ソルトバイトとハッシュバイトを分割します。

私の質問は、base64でエンコードされたデータを他のプログラムで解析および復号化できるように、連結を実行する方法を説明する定義済みの標準がありますか?それとも、私が適切だと思うようにデータを解析するために暗号化/復号化関数を書くのはプログラマーとしての私次第ですか?

標準は次のような質問に答えます:暗号文バイトにIVバイトを追加または追加しますか?

私の理想的な関数シグネチャは次のようになります。

// returns base64encodedCiphertextAndIV
string encrypt(string plaintext, string base64encodedKey)  

// returns plaintext
string decrypt(string base64encodedCiphertextAndIV, string base64encodedKey)
4

1 に答える 1

2

暗号文の前にIVを追加することは、まったく問題なく、ほぼ標準です。IVは秘密にしておく必要はなく、鍵だけを秘密にしておく必要があります。CTRモードを使用している場合は、特定のキー内でIVが一意であることが非常に重要です。CBCモードを使用している場合は、一意のIVを使用すると便利ですが、それほど重要ではありません。

于 2012-04-08T20:52:33.757 に答える