🔐暗号化・復号の基本と例|仕組みと計算のやさしい解説

暗号
スポンサーリンク
スポンサーリンク

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

もふねこ
もふねこ

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

読者
読者

えっ…たしか、暗号化は情報を隠すことで、復号は戻すってこと…?

その通り!
でも、実際には「どうやって」「どんな鍵を使って」「どんな計算をして」いるのか、知らないとピンとこない人も多いはず。

そこで今回は、
✅ 暗号化と復号の基本的な違い
✅ RSA暗号を例にした計算の流れ
✅ 実際にどのように鍵を作って使うのか
✅ バイナリ法による計算の効率化
について、やさしく解説していきます!


暗号化と復号の基本

● 暗号化とは?

誰かに秘密のメッセージを送るとき、そのまま送ると盗み見られる危険があります。
そこで、第三者に読まれないように情報を変換するのが「暗号化」です。

● 復号とは?

受け取った人が、暗号化された情報を元の内容に戻すことが「復号」です。
復号できるのは、特定の鍵(秘密鍵)を持っている人だけです。


鍵のしくみ:公開鍵と秘密鍵の関係

もふねこ
もふねこ

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

読者
読者

ペア?ひとつの鍵じゃないの?

RSAでは以下の2つの鍵を使います👇

  • 🔓 公開鍵(みんなに配る):暗号化に使用
  • 🔐 秘密鍵(自分だけが持つ):復号に使用

公開鍵で暗号化したメッセージは、そのペアの秘密鍵でしか復号できません


RSA暗号の基本プロセスを図解!

🔧 鍵の生成

  1. ランダムな2つの大きな素数(p, q)を選ぶ
  2. それを掛け算して N = p × q を作る(これが鍵のベース)
  3. オイラー関数 L = (p−1)(q−1) を計算
  4. L と互いに素な数 E を選ぶ(例:65537)
  5. 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桁とか…ムリムリ!

そこで登場するのがバイナリ法(指数演算の効率化アルゴリズム)です。

✅ バイナリ法の仕組み

  1. 指数を2進数に変換する(例:13→1101)
  2. ビットごとに処理を分ける
     - 「0」なら2乗だけ
     - 「1」なら2乗+元の数を掛ける
  3. 途中で毎回「mod N」を取って、数を小さく保つ!

これで大きな数でもサクサク計算できるようになるんです✨


🔍まとめ:暗号化と復号のしくみがわかると安心できる!

📌 暗号化とは「隠す」ことで、復号とは「元に戻す」こと
📌 RSAは「公開鍵で暗号化」「秘密鍵で復号」する
📌 計算の裏では、「mod」や「バイナリ法」などの数学的な工夫がいっぱい!

もふねこ
もふねこ

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

読者
読者

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

コメント

タイトルとURLをコピーしました