アカウント名:
パスワード:
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
ソースを見ろ -- ある4桁UID
組み合わせてはいけないの? (スコア:3, すばらしい洞察)
たとえば,MD5で同じハッシュ値の出る二つのデータ列は何とか得られるでしょうが,これらのデータ列のSHA-1のハッシュ値も一致するものを探すのは,さすがに無理だと思うのですが。
ハッシュ値の長さが倍になるのは,各種の暗号化仕様にとってそんなに致命的なんでしょうか?
Re:組み合わせてはいけないの? (スコア:0)
セキュリティ分野に関して素人考えは百害あって一利なし。
Re:組み合わせてはいけないの? (スコア:2, 興味深い)
AからMD5でハッシュ値を計算して、それが既知のハッシュ値Xと等しければ本物のAだ、と言えたのが、BからもXが計算されるのでは、ハッシュ値は計算前データの証明にならなくなってしまう、と。
しかし、AからMD5で計算し、かつAからSHA-1で計算し、それぞれ既知のX、Yと等しいもの、とすればどうでしょう?
MD5(B)=X , SHA-1(B)=Y を同時に満たすBが存在する確率は、片方の時の比ではないと思います。
…という素人考えですがいかがでしょうか。
Re:組み合わせてはいけないの? (スコア:2, 興味深い)
単独のハッシュ関数では安全なのに、複数組み合わせると安全性が低下してしまう
簡単な例を示してみます。
a,bの2数からなるデータのハッシュ値を作る関数として、以下の2つがあるとします。
hash1(a,b)= a+b
hash2(a,b)= a-b
この場合、どちらか片方のハッシュ関数の値からは元の値を求めることは不可能ですが、
両方のハッシュ値があると、
(hash1(a,b)+hash2(a,b))/2=a
(hash1(a,b)-hash2(a,b))/2=b
となり、元の値を求めることが出来てしまいます。
実用されているハッシュ関数では上記の例のように簡単にはいきませんが、
複数のハッシュ関数で求めた値を提供する場合安全性が低下する可能性があります。
なので、複数のハッシュ値を提供するには、慎重な検討が必要です。
#素人考えでレスしてるのでAC
Re:組み合わせてはいけないの? (スコア:2, すばらしい洞察)
でも今は「2つ使うと強衝突耐性の低さをカバーできるんじゃないか」、という話題ですよね?
脱線 (スコア:2, 参考になる)
先のコメントを書きつつ、「MD5は死んだ」と言われる意味がようやく飲み込めました。
つまり”関数単独で弱・強両方が高度である事が出来ない”点でもう使えないと言われてるわけですね。
当然ひとつの関数で両方達成できたほうが良いに決まってるし、最近までMD5はそういう関数だと期待されていたわけですから。
ハッシュ関数はこうして”死んで”いくのだなあ、と初歩的な事をしみじみ考えてしまいました。