はじめに:暗号化と復号ってなんのこと?

暗号って、安全な通信のために使われてるよね。でも、”暗号化”と”復号”の違い、説明できる?

えっ…たしか、暗号化は情報を隠すことで、復号は戻すってこと…?
その通り!
でも、実際には「どうやって」「どんな鍵を使って」「どんな計算をして」いるのか、知らないとピンとこない人も多いはず。
そこで今回は、
✅ 暗号化と復号の基本的な違い
✅ RSA暗号を例にした計算の流れ
✅ 実際にどのように鍵を作って使うのか
✅ バイナリ法による計算の効率化
について、やさしく解説していきます!
暗号化と復号の基本
● 暗号化とは?
誰かに秘密のメッセージを送るとき、そのまま送ると盗み見られる危険があります。
そこで、第三者に読まれないように情報を変換するのが「暗号化」です。
● 復号とは?
受け取った人が、暗号化された情報を元の内容に戻すことが「復号」です。
復号できるのは、特定の鍵(秘密鍵)を持っている人だけです。
鍵のしくみ:公開鍵と秘密鍵の関係

RSA暗号では、“ペアの鍵”を使うんだよ!

ペア?ひとつの鍵じゃないの?
RSAでは以下の2つの鍵を使います👇
- 🔓 公開鍵(みんなに配る):暗号化に使用
- 🔐 秘密鍵(自分だけが持つ):復号に使用
公開鍵で暗号化したメッセージは、そのペアの秘密鍵でしか復号できません。
RSA暗号の基本プロセスを図解!
🔧 鍵の生成
- ランダムな2つの大きな素数(p, q)を選ぶ
- それを掛け算して N = p × q を作る(これが鍵のベース)
- オイラー関数 L = (p−1)(q−1) を計算
- L と互いに素な数 E を選ぶ(例:65537)
- E × D ≡ 1 (mod L) を満たすように D を計算 → 秘密鍵 D の完成!
📬 暗号化の式
C = P*E mod N
- P:平文
- E:公開鍵の指数
- N:公開鍵のモジュロ(p×q)
- C:暗号文
🔓 復号の式
P = C*D mod N
- D:秘密鍵の指数
- C:暗号文
- N:同じくp×qのモジュロ
具体例:アリスとボブのメッセージ交換
1. ボブが鍵を作る
- 素数P=3, Q=11 → N=33
- E=3(公開鍵)
- L=(3-1)(11-1)=20
- D=7(秘密鍵。3×7≡1 mod 20)
2. アリスが暗号化
平文「2, 9, 17, 31」を暗号化するよ👇
2*3 mod 33 = 8
9*3 mod 33 = 3
17*3 mod 33 = 20
31*3 mod 33 = 25
→ 暗号文は【8, 3, 20, 25】
3. ボブが復号
8*7 mod 33 = 2
3*7 mod 33 = 9
20*7 mod 33 = 17
25*7 mod 33 = 31
元のメッセージ【2, 9, 17, 31】に戻った!
バイナリ法で高速化!

でもさ、大きな数のべき乗って、計算にすっごく時間がかかるよね…

たしかに、100桁とか…ムリムリ!
そこで登場するのがバイナリ法(指数演算の効率化アルゴリズム)です。
✅ バイナリ法の仕組み
- 指数を2進数に変換する(例:13→1101)
- ビットごとに処理を分ける
- 「0」なら2乗だけ
- 「1」なら2乗+元の数を掛ける - 途中で毎回「mod N」を取って、数を小さく保つ!
これで大きな数でもサクサク計算できるようになるんです✨
🔍まとめ:暗号化と復号のしくみがわかると安心できる!
📌 暗号化とは「隠す」ことで、復号とは「元に戻す」こと
📌 RSAは「公開鍵で暗号化」「秘密鍵で復号」する
📌 計算の裏では、「mod」や「バイナリ法」などの数学的な工夫がいっぱい!

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

うん!仕組みがわかると安心してネットも使えるし、ちょっと賢くなれた気がする!
コメント