答え:暗号は「数学的問題」に基づいています
TLSにも使われている公開鍵暗号では、公開鍵と秘密鍵のペアを作成して使用する。ペアの片方で暗号化したデータは、対となる鍵でしか復号できない。公開鍵と秘密鍵の数学的な関係はわかっているのに、公開鍵からは秘密鍵を求めらない──。このような巧みさを実現できるのは、「公開鍵から秘密鍵を求めることは困難で、秘密鍵と公開鍵を生成するのは容易」という、非常に都合のよい一方向性を備えた数学理論(数学的問題)を基にしているからだ。
現在使用されている公開鍵暗号は、「素因数分解問題」「離散対数問題」「楕円曲線上の離散対数問題」のいずれかに基づいている(図9)。素因数分解問題は、桁数の大きな合成数▼を素因数分解する問題だ。RSAなどがこれに基づいている。2つの素数 p 、q を作った人は、その積 n を容易に求められるが、n から p と q それぞれを求めるのは困難である。そのため、 p と q から秘密鍵を作れば公開鍵暗号に利用できる。
図9の式(2)で y 、g 、p が与えられた場合に、整数 x を求めるのが離散対数問題▼である。整数 x が秘密鍵に対応する。DH▼やDSA▼などが使っている。
▼合成数
素数の積。
素数の積。
▼離散対数問題
図9の式(2)中の「mod」は剰余を表す。
図9の式(2)中の「mod」は剰余を表す。
▼DH
Diffie-Hellmanの略。ディッフィー・ヘルマンともいう。
Diffie-Hellmanの略。ディッフィー・ヘルマンともいう。
▼DSA
Digital Signature Algorithmの略。
Digital Signature Algorithmの略。