← エントランス

第5展示室 曲線の間

🏠 ホーム

これまでの暗号は「同じ鍵をどうやって安全に相手と共有するか」という問題を 残していました。ここで見るのは、盗聴者に全部見られていても秘密を 共有できてしまう、鍵交換の仕組みです。

A幕: 公開の場で秘密を共有する

アリスとボブは、公開されているg=5・p=23だけを共有した状態から始めます。

アリス

秘密の数 a(誰にも見せない):

公開する A = g^a mod p =

計算した共有の秘密:

ボブ

秘密の数 b(誰にも見せない):

公開する B = g^b mod p =

計算した共有の秘密:

B幕: 曲線の上の足し算

この曲線(y²=x³+x+1 mod 97)の上の点をタップすると、もう1点との「足し算」の結果が見えます。

1点目をタップしてください。

C幕: 実物大の曲線(X25519)

アリスとボブが、実際のX25519(255bitのモンゴメリラダー)で鍵交換します。 公開されるのは32バイトの公開鍵だけです。

ラダーの進み具合:

アリスの公開鍵

ボブの公開鍵

両者が独立に計算した共有の秘密(一致するはず)

この値がそのまま 第2展示室 のAESの鍵になります。

D幕: httpsの南京錠の中身

このページを開いた0.1秒足らずの間に、いま見てきた計算が本当に実行されました。

    なぜECCは鍵が短くて済むのか

    RSAの安全性は「大きな数の素因数分解の困難さ」に基づき、既知の効率的な攻撃法 (数体篩法等)があるため2048bit以上の鍵が必要です。楕円曲線暗号の安全性は 「離散対数問題」に基づき、既知の最良の攻撃法がより非効率(平方根オーダー)なため、 256bit程度の鍵でRSA-2048相当の強度が得られます。Curve25519(X25519)はTLS・SSH・ Signalなど広く使われています。