この方法で暗号のランダムなバイナリ文字列の強度が保持されないかどうかはわかりません。暗号強度の高い文字列のバイトをハッシュして強度を弱める
私はランダムなバイナリ文字列を生成しました。たとえば、それは48バイトですが、次にsha384アルゴリズムを使用してハッシュしますが、これは暗号強度を弱めるのでしょうか?
この方法で暗号のランダムなバイナリ文字列の強度が保持されないかどうかはわかりません。暗号強度の高い文字列のバイトをハッシュして強度を弱める
私はランダムなバイナリ文字列を生成しました。たとえば、それは48バイトですが、次にsha384アルゴリズムを使用してハッシュしますが、これは暗号強度を弱めるのでしょうか?
SHA-384は本質的にSHA-512 +トランケーションです。あなたの入力はわずか384ビットなので、SHA-512でハッシュすると、多くても384ビットのエントロピーを持つ結果が得られます。切り捨てステージSHA-512→SHA-384を実行すると、メッセージダイジェスト関数に対応して、最大128ビットのエントロピーがストリッピングされることがあります。このため、余分なハッシュ・ステップで弱める可能性があります。
私はあなたの声明が真実であるとは思わないと思います。多くのセキュリティプリミティブおよびアルゴリズムは、安全なハッシュ関数を用いてハッシュした後のエントロピーが出力ビットにわたって均一に分散されるという仮定を立てる。 –
さて、それでも。 384ビットが512ビットMDに均等に分配される場合、4つの出力ビットのブロック(または単に0.75b/b)ごとに3つのエントロピービットが存在する。例:末尾の128ビットを512-> 384にすると、128 * .75 = 96ビットが削除されます。しかし、最悪の場合を見ても完了する必要があります:) –
@jørgensenそれはそのように動作しません。そうであれば、384ビットに切り捨てられた仮想1024ビットのハッシュは、元の文字列からのエントロピーが、384ビットのハッシュよりも少ないものになります。しかし、これは理想的な安全なハッシュ関数の場合ではありません。 –
もちろん、SHA-384は完璧ではないので、あなたの力は抜群です。言われたように、ユースケースがなければ、どれくらいの違いがあるかを予測することは困難です。あなたはあまり失ってはいけません。
一般的に、これはかなり安全な操作であると考えています。多くのキー導出スキームは、H(マスターキーマテリアル|カウンタ)と同様のものを使用し、最後に不要なバイトを切り捨てます。
しかし、CodeInChaosがコメントしたように、すべてがユースケースに依存します。
新しいキー派生スキームでは、ハッシュの代わりにMACが使用されることに注意してください。これはHMACでもかまいません。ほとんどのSHA-3候補では、ハッシュを直接使用しても問題はありません。以前のハッシュはMACと比較していくつかの暗号特性を見逃しているため、実際の攻撃はわかりませんがKDFにはあまり使用できません。 –
あなたの質問はあまり意味がありません。ランダムなバイナリ文字列の意味がわからない。そして、あなたがそれを使うか、なぜあなたがハッシュ関数を適用したいのか。 – CodesInChaos