サマーウォーズのあの暗号を解こう!(その3)

こちらの続き。
秘密鍵N(=pq)がとある数字で割り切れた。大きな方の値(前の記事ではqとした)が素数なのかどうか、という件。

ミラー・ラビン素数判定法をググったらPythonの実装サンプルが見つかったのでありがたく使わせていただくことにする。

Miller–Rabin(ミラーラビン)素数判定法について理解したい
https://qiita.com/zu_rin/items/25521b5870389e0f85bf

続きを読む

サマーウォーズのあの暗号を解こう!(その2)

こちらの続き。
残念ながら期待通りには暗号化できなかった。
E(公開鍵の片割れ)が間違っているのか、M(平文)が間違っているのか…

となると、N(=pq)を素因数分解するしかないだろう。
ある意味正攻法。しかし、3777ビットの整数の素因数分解…

できないよね…

やってみた。

続きを読む

サマーウォーズのあの暗号を解こう!

RSA-129は無事解けた暗号化できたので、次は映画「サマーウォーズ」のあの暗号を解いて暗号化してみよう。

「サマーウォーズ」の暗号は暗号文Cと公開鍵の片割れN(=pq)のみが示されていて、公開鍵のもう一つの片割れであるE(暗号化の時の指数)は明示されていないそうだ。
困ったな。ダメ元で3、9007、65537あたりを試すしかないか。

続きを読む