実験 03
インターネットは、途中の回線をだれかに見られているかもしれない道です。 それなのに、はじめて通信する相手と秘密の話ができます。 鍵を 2 本に分けると、なぜそれが成り立つのか。実際に計算を動かして確かめます。
ボブに秘密のメッセージを届けたい。ボブとは今日はじめて通信する。
鍵を 2 本つくる。1 本は世界中に配り、もう 1 本は誰にも渡さない。
2 人のあいだの回線を、ぜんぶ見ることができる。配られた鍵ももちろん持っている。
もとになるのは、2 つの素数です。かけ算はすぐできるのに、かけ算の答えから もとの 2 つに戻すのは急に難しくなる — この差が鍵になります。
ボブが世界中に配る。イヴも持っている。
誰にも渡さない。回線にも流さない。
24 文字まで。1 文字ずつ数字に直して計算します。
✓ もとのメッセージに戻りました
✗ 公開鍵ではカギを開けられません
カギをかける鍵と開ける鍵が別なので、 かける方の鍵は配ってしまってかまいません。イヴは公開鍵も暗号文も持っていますが、 それだけでは中身に戻せません。
秘密鍵は n を素数 2 つに分解できれば計算で求まります。
このページの n は 7 桁しかないので、イヴのパソコンは一瞬で分解できます。
桁がこれだけ増えると、いまのコンピュータを総動員しても分解し終わりません。 公開鍵暗号の安全は「解けない」ではなく「解くのに時間がかかりすぎる」で成り立っています。 なお本物の通信では、1 文字ずつ暗号にする方法は使いません (同じ文字がいつも同じ数字になり、手がかりを与えてしまうため)。 公開鍵は最初の鍵の受け渡しにだけ使い、本文はそこで共有した別の鍵で暗号化します。
小さい数でやると、電卓でも追えます。素数を 5 と 11 にすると
n = 55、公開鍵の数は 3、秘密鍵の数は 27 になります。
3 乗して 55 で割った余りを取り、それをさらに 27 乗して 55 で割った余りを取ると、
もとの数にきちんと戻ります。3 × 27 = 81 が
(5-1) × (11-1) = 40 で割ると余り 1 になる、という関係がこれを支えています。
電波に時刻を乗せて届ける、身近な技術のしくみです。
戻せる計算と、戻せない現象。一方通行のちがいを見てください。