RSA
鍵生成
素数二つ生成
オイラー関数使って$ \phi(n)を出す
$ \phi(n)と互いに素な公開鍵$ eを生成
拡張ユークリッド互除法で秘密鍵$ dを生成
暗号化と復号はべき剰余なので省く
TypeScriptでの実装
実装がこれ
巨大な整数をBigInt型で扱う
JSのMathオブジェクト含めて通常の整数型とは相性が良くない
Miller-Rabin素数判定なども含めて全て自作した