クイックノート

ちょっとした発見・アイデアから知識の発掘を

暗号のしくみ~公開鍵暗号~

暗号化は、不特定多数が繋がるインターネット上の通信において、
ログイン時のパスワード入力などのやり取りを安全に行うために必要な技術です。

暗号通信を行う際には、 通信相手と自分の間で暗号の決め事(鍵)を用意することが重要です。
これがないと、暗号化したり、それを読み解いたり(復号化)することできません。

ところが、共通鍵暗号のように、
鍵が暗号化と復号化のどちらにも使われる場合、
その鍵を見た人が全員暗号を復号化できてしまいます。

そうなると、どうやって、誰にも見られずに、
通信相手とだけ鍵を共有するのかが難しい問題となります。

その問題を解決してくれるのが公開鍵暗号と呼ばれる暗号です。
この記事では、この公開鍵暗号についてまとめていきます。

公開鍵暗号とは

公開鍵暗号とは、その名前の通り、
公開してもいい鍵を持っている暗号です。

身近な例で、暗号の鍵というと、「たぬき」の"た"の文字のように、

せたいたかたい たぬき

暗号文を作るときにも利用し、
暗号文を解読するときにも利用します。

ところが、暗号化の鍵と、復号化の鍵が異なっているとどうでしょう。
暗号化の鍵を持っているだけでは、暗号化はできるけど復号化ができません。
つまり、暗号化の鍵を持っていても、暗号文の解読はできないのです。

そのため、この暗号化の鍵は誰が持っていたとしても、
暗号文の秘密は守られます。
暗号化の鍵は公開していい鍵になります。
この鍵は、公開鍵と呼ばれます。

メッセージを受け取りたい人は、公開鍵をみんなに知らせます。
そして、メッセージを送る人が公開鍵を使って暗号化します。
暗号文を受け取ると、公開鍵とは別の解読用の鍵(秘密鍵)を使って復号化します。
他の人は、公開鍵しか持っていないので、解読することができません。

f:id:u874072e:20180328121101p:plain

このように、暗号化と復号化の鍵を分けることで、
内密に鍵を共有する必要がなくなり、
単純に、みんなに暗号化の鍵を知らせることで、
暗号化通信ができることが公開鍵暗号の特徴です。

公開鍵と秘密鍵

それでは公開鍵と秘密鍵とはどのようなものでしょうか。

公開鍵で暗号化した文章と、
秘密鍵で復号化して元の文章に戻るので、
公開鍵と秘密鍵は全く無関係というわけにはいきません。

公開鍵と秘密鍵には何らかの関係性が存在します。

ここで注意しないといけないのは、
この関係を使って、公開鍵から秘密鍵を簡単に推測できてはいけないということです。

公開鍵は皆に公開されるものなので、
もし、公開鍵から秘密鍵を推測できてしまうと、
誰でも暗号文の解読ができてしまい、暗号の意味を成さなくなります。

そこで、公開鍵と秘密鍵は共通した要素を持ちつつも、
公開鍵側にはその共通の要素が何であるかが分からないように、
逆算の難しい処理を加えることが一般的です。

公開鍵暗号として有名なRSA暗号では、
共通の要素として、素数を、
公開鍵としては、その素数の積を用いることで、
その逆算、つまり素因数分解が難しいことを利用して、
公開鍵から暗号鍵が推測されないようにしています。

プライバシーポリシー