最初の SHA-1 衝突例

no extension

いやぁ,ついにこの日が来たようです。

This is not a surprise. We've all expected this for over a decade, watching computing power increase. This is why NIST standardized SHA-3 in 2012.

SHA-1 衝突問題については以下を参照のこと。 NIST などでは2014年以降 SHA-1 を電子署名等に使わないよう勧告している。

現時点で主要な CA では証明書に SHA-1 は使っていないはずである。 また,主要なブラウザについても SHA-1 を使う証明書に対して警告を発するようになっている。

もうみんな SHA-1 とはオサラバしてるよね(笑)

追記というか補足

たとえば git の commit hash 値は SHA-1 で付与されるが大丈夫なのか? とかいった意見が散見されるが,当面は問題ない。

今回の件はあくまでも電子署名や hash 値そのものを何かの証明に使おうとする場合に問題となる。 git の commit hash 値はあくまで identity として付与されるものである。 改ざんされたかどうかは commit hash 値ではなく差分情報によって容易に知ることができる。

git による悪意のなりすまし等を警戒する必要があるのなら commit hash 値を気にするのではなく commit にきちんと電子署名を行うことをお勧めする(チームで作業する人は是非習慣化するべきである)。

ただし,かつて標準として使われていた MD5 が危殆化とともに廃れていったように,今後 SHA-1 は電子署名以外でも使われなくなると思われる。 念のため, NIST による現在の SHA アルゴリズムの評価と有効期限を以下に示す。

Security
Strength
Digital Signatures and Other
Applications Requiring Collision
Resistance
HMAC, KMAC,
Key Derivation Functions,
Random Bit Generation
$\le 8$0 SHA-1  
$112$ SHA-224, SHA-512/224, SHA3-224  
$128$ SHA-256, SHA-512/256, SHA3-256 SHA-1, KMAC128
$192$ SHA-384, SHA3-384 SHA-224, SHA-512/224, SHA3-224
$\ge 256$ SHA-512, SHA3-512 SHA-256, SHA-512/256, SHA-384, SHA-512, SHA3-256, SHA3-384, SHA3-512, KMAC256
Maximum security strengths for hash and hash-based functions (via SP 800-57 Part 1 Revision 5 5.6.1.2)
Security Strength Through
2030
2031 and
Beyond
$\lt 112$Applying Disallowed
Processing Legacy use
$112$ Applying AcceptableDisallowed
Processing Legacy use
$128$ Applying/ProcessingAcceptableAcceptable
$192$ AcceptableAcceptable
$256$ AcceptableAcceptable
Security-strength time frames (via SP 800-57 Part 1 Revision 5 5.6.3)

参考図書

photo
暗号技術入門 第3版 秘密の国のアリス
結城 浩 (著)
SBクリエイティブ 2015-08-25 (Release 2015-09-17)
Kindle版
B015643CPE (ASIN)
評価     

SHA-3 や Bitcoin/Blockchain など新しい知見や技術要素を大幅追加。暗号技術を使うだけならこれ1冊でとりあえず無問題。

reviewed by Spiegel on 2015-09-20 (powered by PA-APIv5)