8.2.3 公開鍵暗号方式

公開鍵暗号方式 は別名 非対称暗号鍵方式とも呼ばれています。 その理由は、この方式では暗号鍵と復号鍵が異なっているからで、このような 方式は20世紀になって初めて発見されました。

非対称暗号方式 $K \ne K^{-1}$

このために、暗号鍵を知られても、復号鍵が分からない限り暗号は解けません。また、 最初に述べたように、復号鍵を使って暗号化したメッセージは逆に暗号鍵でないと 解けないという構造になっています。この性質がネットワーク上でこの暗号システムを 利用するのに非常に適している原因です。

一般には、暗号鍵、復号鍵という言葉を使うと混乱するので、2つのペアの鍵の内 片方を 公開鍵 と呼び、他方を 秘密鍵と呼びます。 そして、公開鍵を誰もが読めるように公開しておき、2者の間で秘密の通信をしたい 場合には以下のようにします。

\epsfile{file=auth-pubkey}

まず、送信者 A は、Bの公開鍵BKを使ってメッセージ文を暗号化します。すると、 この暗号化文はBの秘密鍵BPでしか解読出来ないものですので、この暗号化文は 誰に見られても構いません。同じようにBがA にメッセージを送る場合には、逆にAの公開鍵AKを取得し、それを使ってメッセージを 暗号化して送れば良いわけです。

また、公開鍵暗号方式で2つの鍵は対称な関係にあることを利用して、逆方向に利用する ことで電子認証などに利用することも可能です。

公開鍵暗号方式の代表は RSAです。RSAは開発者の名前を取って名付けられたものです( Ronald Rivest, Adi Shamir, Len Adleman)。 RSAは非常に大きな数を素因数分解するのが大変であるという事実に基づいています。 実際、Rivestはこのために少しばかり小さな(それでも実は途方もない数ですが) $2^{429}$ を使ったRSA暗号の解読の懸賞を公開しましたが、この暗号は17年間 解読出来ませんでした。そして、1993年に1600台ほどのコンピュータと8ヶ月の時間を 費やして、ようやく解読出来たのです。しかし、現在RSAの鍵に使っている数字は 大体 $2^{1024}$ 程度を用いていますので、大体$10^15$倍強力だと言われています。 勿論、素因数分解のうまい方法が見つかれば、この限りではありませんが、多くの数学者 が長年かかっても、今のところ良い方法は見つかっていませんので、当面は安心して 良いでしょう。

なお、RSAは非常に強力ですが、そのために計算コストも大きく全てをRSAで行うのは 大変であると言われています。このために、多くの場合最初のやり取りのみ公開鍵 方式を使い、そこで秘密鍵を交換して、その後は秘密鍵を使うのが一般的です。 その意味で、秘密鍵暗号方式も重要なので、先のAESにも意味はあるのです。 (ちなみに、VPNなどではDESあるいはDESを3回用いる 3DESなどが使われますが、 全てのパケットにこうした暗号を用いるのはDESであっても、かなりの計算コストが 伴います。つまり、VPNでは結構この計算に時間がかかるために、スピードが出ない 傾向にあります。)



Noriyo Kanayama