聞いたところでは、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つの秘密の数が本当に大きな素数である必要がある。
しかし、本当に大きな非素数であっても結合の数学はまだ動く。ただ、アルゴリズムを破るのがはるかに速くなるだけだ。
もう少し調べて、自分の主張を裏付けられるか見てみる。誰かが即座に否定してくれることを期待していたのだが。