海外旅行から帰ってきたら、まず何を食べる?

SHA1には初期値が5つあり、バイト列とその初期値で5つの値を出して、それを繋げた物が解になるみたいなのですが、その初期値を変更した方が良いという理由が分かりません。
誰か教えてください!

A 回答 (1件)

初期値を変更したほうがよいというのは、どこの情報でしょうか?


ちょっと調べたんですがわかりませんでした。

ちなみにRFCでは以下の値を使うように明記されており、変更したほうが良いとは
書かれていませんでした。

http://www.ipa.go.jp/security/rfc/RFC3174JA.html
http://www.ietf.org/rfc/rfc3174.txt より引用
H0 = 67452301

H1 = EFCDAB89

H2 = 98BADCFE

H3 = 10325476

H4 = C3D2E1F0.


というか、変更するとダイジェストが変わってしまいませんか?
それはsha-1ダイジェストと呼べるのだろうか。。。

私自身はSHA-1の専門家ではないため、見当違いなことを言っていたら
お詫びいたします。




- ここからはご参考まで -

知人(以下Aさん)で過去にMD5について、初期ベクタの値を意図的に変更している人がいました。
メリットとして、元の文字が簡単なものでもそれのMD5(もどき)ダイジェストと
ばれないことですかね。

一例として、あるサイトではユーザyamadaさんに初期パスワードとしてmd5("yamada")の
先頭8文字53fec4cdを設定するものとします(*1)。
これでは勘の良い人にはばれてしまいますよね?

ところが、AさんのコンパイルしたMD5では、md5_a("yamada")の先頭8文字が608b2c76を示します。
"yamada"から608b2c76が導けるのはAさんのMD5(もどき)だけなので、たぶんばれません。


そういった使い方をSha-1でもやることはできると思います。
しかし、その場合のセキュリティリスクの程度がどのていどであるのか
正確に把握することは逆に困難になりますし、あまりいい方法だとは
言えないと思います。たぶんSaltの方がいいです。
危険ですので真似しないで下さい。


何かの参考になれば幸いです。


(*1)
$ echo -n yamada | md5sum
53fec4cda201806226c4852e4678eaa0 -
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!