聞いたところでは、bitcoin はビットコインアドレスの生成に 160 ビットハッシュの 1 つを使っている。
SHA-1 ファミリーのハッシュアルゴリズムは最も広く使われているものの 1 つだ。SHA-1 は 160 ビットハッシュだ。
2^52 の暗号操作で SHA-1 の衝突を見つけられるという論文がある。最適に安全なハッシュなら 2^80 の操作が必要だ。2^52 の時間はまだ大きいが、クラスターやボットネットの射程圏内に入りつつある。
http://www.ictlex.net/wp-content/iacrhash.pdf
MD5 ハッシュはすでにラップトップで数秒でクラッシュ(衝突)できる。これが証明書ベースの署名から廃止された理由だ。
そして、私の理解では、公開鍵は数学的に結合された 2 つの秘密の数と考えることができ、秘密鍵はそれらの 2 つの数を別々に保持したものだ。システムを安全にするためには、2 つの秘密の数が本当に大きな素数である必要がある。
しかし、本当に大きな非素数であっても結合の数学はまだ動く。ただ、アルゴリズムを破るのがはるかに速くなるだけだ。
もう少し調べて、自分の主張を裏付けられるか見てみる。誰かが即座に否定してくれることを期待していたのだが。