読む前にチェック!もふねこ辞書
この記事は「数字の計算」がメインだよ!基本的な用語の意味を忘れちゃったら、別のタブで辞書を開きながら読んでみてね🐾

ここから先は「数字」が主役!アルファベットの文字も、コンピュータの中ではすべて数字に変換されて計算されるんだよ。
RSA暗号の鍵が、裏側でどんな「数字のペア」になっているのか、具体的な計算で確かめてみよう🐾
厳密には、RSAの鍵は「1つの数」ではなく2つの数のペアです。
・公開鍵 = (E, N):暗号化の指数 E と法 N のセット
・秘密鍵 = (D, N):復号の指数 D と法 N のセット
E だけでも D だけでも意味をなさず、N と組み合わせて初めて使える鍵になります🐾
RSA暗号の全体プロセス(鍵生成〜暗号化〜復号)
🔧 1. 鍵の生成
まず目標を確認しましょう。私たちは「誰でも閉められる箱(公開鍵:E)」と「自分しか開けられない鍵(秘密鍵:D)」という、絶対に離れないペアを探し出す必要があります。
そのための手順がこちらです。
- ランダムな2つの異なる大きな素数(p, q)を選ぶ
- 掛け算して N = p × q を作る(これが暗号のベース「法」になります)
- 秘密のペア(EとD)を計算するための「内緒の設計図(L)」を作る
計算式:L = (p−1)(q−1)
※数学用語ではトーシェント関数と呼びますが、ここでは単なる「秘密の補助計算」だと思って大丈夫です。 - L と相性の良い数 E(暗号化用の数字) を適当に選ぶ
- 内緒の設計図(L)を使って、E とペアになる D(復号用の数字) を逆算する
※ E × D ≡ 1 (mod L) という数式を使いますが、パソコンが自動計算してくれます。
これで鍵ペアの完成です!
・公開鍵 = (E, N)(みんなに配る箱)
・秘密鍵 = (D, N)(自分だけが持つ鍵)
📬 2. 暗号化の式
⚠️ 重要ルール:「mod(モッド)」って何?
modとは「特殊な時計のルール」です。
例えば「mod 33」なら、「数字が33になったら0に戻る、33時間時計」だと考えてください。35なら、33を2つオーバーしているので「2」になります(35 mod 33 = 2)。
このルールのおかげで、どれだけ掛け算をしても数字がN(今回は33)より大きくなることはありません!🐾
🔓 3. 復号の式

アルファベットの式だと、ちょっと難しそうに見えるよね?
でも大丈夫!次のセクションで、アリスとボブと一緒に実際の「数字」を当てはめて計算してみるよ。数字を入れるとパズルみたいにスッキリわかるからね🐾
具体例:アリスとボブのメッセージ交換
1. [受信者] ボブが鍵ペアを作る
- 素数p=3, q=11 → N=33
- E=3(公開鍵)
- L=(3-1)(11-1)=20
- D=7(秘密鍵。3×7≡1 mod 20。計算後、素数pとqは絶対に秘密にするか破棄する)
2. [送信者] アリスがボブの公開鍵で暗号化
試しに、秘密のメッセージ「2」を暗号化してみましょう👇
※RSAのルールで、暗号化する数字は必ず「N(今回は33)」より小さく設定する必要があります。
2^3 mod 33
= (2 × 2 × 2) mod 33
= 8 mod 33
= 8
→ メッセージ「2」が、暗号文「8」に変換されました!
これなら、ハッカーが通信を盗み見ても「8」としか認識できません。
3. [受信者] ボブが自分の秘密鍵で復号
ボブは受け取った暗号文「8」を、自分だけが知っている秘密鍵(D=7)で復号します。
8^7 mod 33
= 2097152 mod 33
= 2
→ 見事、元のメッセージ「2」に戻りました!
(※実際の通信では、いくつもの数字を同じように順番に計算していきます)
今回計算した方法は「教科書的RSA」と呼ばれる基本の形だよ。でも、現実の通信でこのまま使うと、「同じメッセージを送ったら毎回同じ暗号文になってしまう」という弱点があるんだ。
だから実際は、暗号化する前にランダムなデータ(パディング)をメッセージに混ぜてから計算しているんだよ🐾
🚀 発展編:どうやって「巨大な数」を高速計算しているの?
実際のRSA暗号では、「100桁以上の数字」を何千回も掛け算します。普通に計算したらスーパーコンピュータでも何年もかかってしまいます。
これを一瞬で終わらせるための魔法のアルゴリズムが「バイナリ法(繰り返し二乗法)」です。興味がある方は、こちらの発展編も読んでみてください!
💡 補足:RSA暗号の「限界」と未来
ここまでRSA暗号の素晴らしい仕組みを学んできましたが、実はRSA暗号にも「弱点」があります。それは計算に時間がかかる(重い)ということです。
そのため現在では、スマートフォンなどでもサクサク動く「ECC(楕円曲線暗号)」という、より計算が軽くて安全な次世代の方式が主流になりつつあります(ビットコイン等もECCの一種を使用しています)。
さらに将来的には「量子コンピュータ」によってRSA暗号が破られる可能性もあるため、世界中で新しい暗号への移行準備が進められています。
とはいえ、RSA暗号が「公開鍵暗号の歴史を切り開いた最強の基礎」であることは間違いありません。この基礎を知っているだけで、最新の暗号技術のニュースもずっと深く理解できるようになりますよ🐾
🔍まとめ:暗号化と復号のしくみがわかると安心できる!
📌 暗号化とは「隠す」ことで、復号とは「元に戻す」ことです
📌 RSAは「公開鍵で暗号化」「秘密鍵で復号」します
📌 計算の裏には、「mod」や「バイナリ法」などの数学的な工夫が詰まっています!

技術の裏にあるアイデアを知ると、暗号の世界がちょっと面白く感じるでしょ?

うん!仕組みがわかると安心してネットも使えるし、ちょっと賢くなれた気がする!
🧮 数学が好きなあなたへ
RSA暗号の基礎となる「素因数分解の困難性」や、現代暗号に欠かせない「乱数」「ハッシュ関数」についてもっと深く知りたい方は、こちらの記事もおすすめです!
👉 現代暗号を支える3つの応用数学 を読む