🔐 RSA暗号のしくみ
3桁の素数を使って、暗号の魔法を体験しよう!
💡
RSA暗号とは?
素数の特性を生かした、「公開鍵」と「秘密鍵」という2つの鍵を使う暗号です。 南京錠(公開鍵)は誰でも使えるけど、開ける鍵(秘密鍵)は自分だけが持っています!
素数の特性を生かした、「公開鍵」と「秘密鍵」という2つの鍵を使う暗号です。 南京錠(公開鍵)は誰でも使えるけど、開ける鍵(秘密鍵)は自分だけが持っています!
👨🏫RSA暗号の基本的な流れ
→
→
モトさん
1
秘密の素数を選ぶ
3桁の素数を2つ選びます(秘密!)
素数1 (p): 101
素数2 (q): 103
素数2 (q): 103
この2つは絶対に秘密にします!
2
公開する数を作る
2つの素数をかけ算します:
101 × 103 = 10403
公開鍵 (n): 10403
暗号化指数 (e): 7
暗号化指数 (e): 7
この数字はみんなに教えてOK!
3
秘密鍵を持つ
秘密鍵 (d): 8743
※特別な計算で求めた魔法の数
※特別な計算で求めた魔法の数
この数字で暗号を解読できます!
カズさん
1
公開鍵を受け取る
モトさんの公開鍵をもらいます:
公開鍵 (n): 10403
暗号化指数 (e): 7
暗号化指数 (e): 7
2
メッセージを暗号化
送りたい数字を暗号化します:
3
暗号文を送る
暗号化された数字をモトさんに送ります。
この数字は他の人が見ても、元の数字は分かりません!
🎯
なぜ安全なの?
10403という数字から元の素数(101と103)を見つけるのはとても難しい!
でも、最初から素数を知っているモトさんは簡単に暗号を解読できます。
10403という数字から元の素数(101と103)を見つけるのはとても難しい!
でも、最初から素数を知っているモトさんは簡単に暗号を解読できます。
⚠️ 実際のRSA暗号では、もっとずっと大きな素数(100桁以上!)を使います
🔒 なぜこれが安全につながるの?
間違った暗号文を送るとどうなる?
💡
安全性のポイント
1. たった1違うだけでも全然違う結果に!
正しい:295 → 42 間違い:296 → 6923
2. 推測が不可能
近い数字を試しても、正解に近づいているか分からない
3. 正確な暗号文を知らないと無意味
悪い人が適当に数字を送っても、元のメッセージは得られない
1. たった1違うだけでも全然違う結果に!
正しい:295 → 42 間違い:296 → 6923
2. 推測が不可能
近い数字を試しても、正解に近づいているか分からない
3. 正確な暗号文を知らないと無意味
悪い人が適当に数字を送っても、元のメッセージは得られない
🧮 暗号化と復号化の計算
暗号化の計算:
暗号文 = (メッセージ ^ e) mod n
例:42^7 mod 10403 = 295
例:42^7 mod 10403 = 295
復号化の計算:
元のメッセージ = (暗号文 ^ d) mod n
例:295^8743 mod 10403 = 42
例:295^8743 mod 10403 = 42
✨ 魔法のように元の数字に戻ります!