解説
公開鍵暗号では、鍵が2つ一組になります。公開鍵は誰に見せてもよく暗号化に使い、秘密鍵は本人だけが持ち復号に使います。
ここではRSAを小さな数でまねます。2つの素数 p, q から n を作り、公開鍵 e と秘密鍵 d を決めます。暗号化は m の e 乗を n で割った余り、復号は c の d 乗を n で割った余りです。
鍵が違うのに元に戻るのが鍵ペアの魔法。実際のRSAは桁が非常に大きく、素因数分解の難しさが安全性を支えています。
書き方
pow(底, 指数, 法) — 底の指数乗を法で割った余り(剰余べき乗)を返す。 ・n = p*q、phi = (p-1)*(q-1) で鍵を作る。 ・while (e * d) % phi != 1: で秘密鍵 d を探す。 ・暗号化 pow(m, e, n)、復号 pow(c, d, n)。
書いて動かす
この回の課題
小さな素数からRSA風の鍵ペアを作り、公開鍵で暗号化・秘密鍵で復号して元に戻ることを確かめてみよう。
コードはあなたの端末の中だけで動きます(サーバーには送られません)。進み具合もこのブラウザに保存されます。
もっと本格的に使うなら
Windows版 InsightPy なら、書いたコードを保存して業務の自動化まで進められます。学習センターはずっと無料です。