アカウント名:
パスワード:
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
UNIXはシンプルである。必要なのはそのシンプルさを理解する素質だけである -- Dennis Ritchie
組み合わせてはいけないの? (スコア: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はそういう関数だと期待されていたわけですから。
ハッシュ関数はこうして”死んで”いくのだなあ、と初歩的な事をしみじみ考えてしまいました。
Re:組み合わせてはいけないの? (スコア:0)
MD5とSHA-1のハッシュ値を載せておけば、それを捏造することは難しいという話でしょ。
Re:組み合わせてはいけないの? (スコア:0)
元の値a,bが求まったところで、
hash1(a,b)=hash1(a',b')
hash2(a,b)=hash2(a',b')
となるa'、b'は見つかりますか(1つの関数だった場合に比べて見つかりやすくなりますか)、
という事でしょ。
今回は弱衝突耐性じゃなくて強衝突耐性の話なんだから。
その例でいけば、a,bが2,3で、hash1だけを使った場合、
簡単に1,4という別の値が求まってしまう。
hash2も使うと、少なくともそう簡単には求まらない。
#てか俺の頭ではお手上げだった orz
Re:組み合わせてはいけないの? (スコア:1, すばらしい洞察)
Re:組み合わせてはいけないの? (スコア:0)
ハッシュ値が肥大するという無駄をどのように受け止めるか次第です。
MD5とSHA-1の連結は288bitハッシュ。hexで記述すれば72文字
$ echo "hello world" | md5sum
6f5902ac237024bdd0c176cb93063dc4 -
$ echo "hello world" | sha1sum
22596363b3de40b06f981fb85d82312e8c0ed511 -
$ echo "hello world" | md5sha1sum
6f5902ac237024bdd0c176cb93063dc422596363b3de40b06f981fb85d82312e8c0ed511 -
長いです。この長さを許容するシーンもあるでしょうけれど、