RSA暗号で実はpが素数でなかったら?
RSA暗号では「2つの素数の積N」が出てくるけど、現在の実装上、実際には素数でない確率がごくごくごく僅か存在する。その時の影響について考察した多分少々マニアックなネタ。
- angel_p_57
- 10902
- 21
- 2
- 0
angel (as ㌵㌤の猫)
@angel_p_57
ちょっと分かりにくいけど、暗号化→復号によってできた mdec の16進ダンプで、先頭の 0002、そこから続く "00" までの "6f48c4621049cf3031193b30fe522ade1c20" が埋め込まれたランダムデータと見ることで、復号データの16進ダンプが 8958168f… と、openssl の結果と整合するということだ。
2022-10-16 22:53:47
angel (as ㌵㌤の猫)
@angel_p_57
この実行例は、オンラインIDEのこのページ ideone.com/bz5dK7 でも確認できる。ただ不思議なことに、元が同じデータのはずなのに結果にブレが出る。( ちゃんと "hoge" に復号できるパターン、エラーになるパターンも出る )
2022-10-16 22:54:23
angel (as ㌵㌤の猫)
@angel_p_57
復号処理にランダム要素はないはずなのに…? という謎は残っているけど、まあ取り敢えずこの点の追及は止めておく。
2022-10-16 22:55:00
angel (as ㌵㌤の猫)
@angel_p_57
ということで。もちろん現実には、そんな都合のいい擬素数が出てきて、なおかつ針の孔を通すようにミラー・ラビン法で誤判定して…なんて確率はほぼゼロなんだけど。もしあれば「破綻」しかもエラー・誤復号両方が実現できることが確認できた、というお話でした。
2022-10-16 22:56:44