Rijndael CBC モードを使用している場合、なぜソルトが必要なのかわかりません。パスワードを知っていても、IV なしではデータを取得できないというのが私の理解です。したがって、私の観点からは、パスワード + IV は十分に安全であるように思われます。
何か間違っていますか?
Rijndael CBC モードを使用している場合、なぜソルトが必要なのかわかりません。パスワードを知っていても、IV なしではデータを取得できないというのが私の理解です。したがって、私の観点からは、パスワード + IV は十分に安全であるように思われます。
何か間違っていますか?
はい、これらすべてが必要です。
ソルト (および「反復カウント」) は、パスワードからキーを導出するために使用されます。詳細については、PKCS #5 を参照してください。キーの派生に使用されるソルトと反復回数は、秘密である必要はありません。ただし、ソルトは予測不能であるべきであり、ランダムに選択するのが最適です。
CBC モードには、初期化ベクトルが必要です。これは、暗号乱数ジェネレーターによってメッセージごとに生成されるランダム データのブロックです。これは、暗号文のダミーの最初のブロックとして機能します。鍵導出ソルトと同様に、秘密にする必要はなく、通常は暗号文とともに送信されます。
パスワードと、それから派生したキーは秘密にしておく必要があります。攻撃者が鍵の導出と暗号化のパラメーター、および暗号文を持っていたとしても、鍵がなければ何もできません。
アップデート:
パスワードはランダムに選択されません。一部のパスワードは、他のパスワードよりも可能性が高いです。したがって、攻撃者は、指定された長さの考えられるすべてのパスワードを生成する (徹底的なブルート フォース検索) のではなく、確率の低い順に並べられたパスワードのリストを維持します。
パスワードからの暗号化キーの導出は、(キー導出アルゴリズムの繰り返しのため) 比較的時間がかかります。数百万のパスワードのキーを導出するには、数か月かかる場合があります。これにより、攻撃者は、最も可能性の高いパスワードのリストからキーを一度取得し、結果を保存するようになります。このようなリストを使用すると、キーを再度導出するために数か月の計算時間を費やすのではなく、リスト内の各キーを使用してすばやく復号化を試みることができます。
ただし、塩の各ビットは、派生したキーを格納するために必要なスペースと、可能性のあるパスワードごとにキーを派生するのにかかる時間を 2 倍にします。数バイトのソルトで、そのようなリストを作成して保存することはすぐに不可能になります。
ソルトは、事前計算攻撃を防ぐために必要です。
IV (またはカウンター モードのノンス) は、同じプレーン テキストで異なる暗号テキストを生成します。は、攻撃者がプレーン テキストのパターンを悪用して、一連の暗号化されたメッセージから情報を収集するのを防ぎます。
メッセージ内のパターンを非表示にするには、初期化ベクトルが必要です。
1 つはキーのセキュリティを強化し、もう 1 つはそのキーで暗号化された各メッセージのセキュリティを強化します。両方一緒に必要です。
まず最初に、Rijndael は CBC モードで「パスワード」を持っていません。CBC モードの Rijndael は、暗号化または復号化するためのバッファ、キー、および IV を取ります。
通常、「ソルト」はパスワードの暗号化に使用されます。ソルトは、暗号化されたパスワードに追加され、暗号化された値とともに保存されます。これにより、すべてのパスワードがどのように暗号化されているかについて誰かが辞書を作成するのを防ぐことができます。すべてのパスワードがすべてのソルトに対してどのように暗号化されているかについての辞書を作成する必要があります。これは、12 ビットのソルトのみを使用する古い Unix パスワード暗号化アルゴリズムで実際に可能でした。(作業係数が 4096 増加しました)。128 ビットのソルトでは不可能です。
もちろん、暗号化されたパスワードを取得できれば、誰かが特定のパスワードに対してブルート フォース攻撃を実行できます。
ただし、ソルトとほぼ同じことを行う IV があります。両方は必要ありません。または、むしろ、IVはあなたの塩です。
ところで、最近では「Rijndael」AES と呼んでいます。
ソルトは、ハッシュ アルゴリズムを使用する場合に一般的に使用されます。Rijndael はハッシュではなく、双方向の暗号化アルゴリズムです。したがって、データの暗号化にソルトは必ずしも必要ではありません。そうは言っても、パスワードのソルト付きハッシュは、データを暗号化するためのキーとして使用できます。探しているものについては、ハイブリッド暗号システムを見たいと思うかもしれません。
IV は暗号化されたデータと一緒に送信される場合がありますが、キーは非公開であり、暗号化されたデータと一緒に送信されることはありません。