よろしくお願いしまぁぁぁすっ!!

WebAssemblyを使って健二くんの凄さを体感しよう!

健二くんが解いた暗号と多分同じ種類のRSA暗号を解読してみましょう

※普通のPCじゃ絶対解けないのでブラウザーがクラッシュしそうになったらすぐにタブを閉じましょう※

nの素因数分解にはポラード・ロー素因数分解法を使ってます
ですが、ご家庭のPCでは性能的に絶対解けないのであらかじめ素数pに限りなく近づいている状態を初期値とする数学オリンピックチートを用意しました

d(秘密鍵)の計算の手順はRSA暗号をご参照ください

これらの計算はwasm-bindgenを使ってWasmで計算処理をさせるようにしてますが、Rustなんてほとんど書かないので無駄がいっぱいあると思います

計算結果はconsole logに出てきますので、F12から開発者ツールを開くと計算している様子が楽しめると思います

※本ホームページの利用により発生した利用者の損害全てに対し、いかなる責任をも負わないものとし、損害賠償をする一切の義務はないものとします
public exponent(公開指数)
適当な正の整数を指定。公開鍵に入れて暗号化の際という具合で暗号化文字列を作るよ


cypher (暗号文字列)
暗号化された文字列。こんなの見ても何にもわからないね!!


RSA-module(法)
2つの巨大な素数, の積だよ。これだけの桁数になると君たちのゲーミングPCを持っても計算できないくらいの計算量になってしまうのでOZのパスワードも安心だね
都合(数学オリンピックチート機能)によりnは固定とさせていただいております。ただtextareaをreadonlyにしているだけなのでハックしたい人は開発者ツールからどうぞ






結果
p=0
p: nを構成していた素数の片割れその1
q=0
q: nを構成していた素数の片割れその2
d=0
d: で算出することのできる秘密鍵でここでは拡張ユークリッド互除法を使って求めてます (注) を表しておりはaとbの最小公倍数を示してます
m=0
m: 平文が数列になったやつ。本当はASCII換字で置き換えていくが作者がめんどくさくなってASCIIの内、大文字英字と半角スペースのみの対応となりました
plainText=
plainText: OZの管理権限パスワード。重要なシステムならもっと推測されにくい文字列使ってください!!!!

おまけ: 暗号化ツール

平文から暗号文を作ることができます
ですが、作者の怠慢から文字列の指定は大文字英字+半角スペースのみです。
色々遊んでみてください。

平文(大文字英字+半角スペース)



数値化
m=0
暗号文
c=0

©tubone24