皆さん、こんにちは!
今回の連載テーマは「0からわかる、暗号(RSA)の仕組み」です!

インターネットショッピングで自分のパソコンに入力したクレジットカード番号が送られるとき、途中で盗み取られてもいいように、暗号化されます。
暗号化というのは入力したもともと番号がわからなくなるように変換することです。

例えば、「09012345678」と入力した番号が「wef3jio8.-0a」に変更されるといった感じです。
仮に、「wef3jio8.-0a」が盗み見されたところで、元の「09012345678」はわからないので、大丈夫ですよね。

この暗号は何百年も昔から使われてきたのですが、どんなに考え抜かれた暗号もある共通する欠点があるんです。

この連載ではその重要な欠点について解説し、その欠点を克服した夢の暗号(公開鍵暗号)について説明します。


難しそう?

いえいえ、独極のコンセプト通り、ゼロベースの知識でしっかり専門的なことがわかるように、わかりやすく解説しますから、楽しみながら、ゆっくり、まったり読んでください。


気になる方は、紹介ムービーを見てくださいね。



文字をずらすだけで暗号になる!

まずは、これまでの暗号と、その欠陥についてみていきましょう。

パソコンやインターネットが発達する前のはるか昔から、暗号には「決められた数だけ字をずらす」という方法が使われていました。

例えば、「Hello」という言葉を「3文字ずらすと」「Jgnnq」になります。
「Jgnnq」という言葉を見ても、一見、何のことやらわからないですよね。

この暗号を受け取った人は、「3文字ずらす」ということを知っていれば「Jgnnq」の文字を3文字戻して「Hello」ということだとわかります。

とってもシンプルですが、中世では「王族の暗殺計画」といったものにこの暗号方式が使われていました。
(たまに、この暗号化した計画書が敵の手にわたることもありましたが、敵は何を書いているかわからないので、内容はなかなかバレませんでした)


いま紹介したような暗号を「共通鍵暗号」と呼びます。(暗号に使う鍵(先ほどの例では「3」)と、暗号を解除するときに使う鍵が共通だから共通鍵というのです)


文字をずれすだけは、さすがにシンプルすぎる・・・

もしかして皆さんも気づいたかもしれませんが、単純に「●文字ずらす」というだけだと、「鍵」を知らない他人でもがんばれば元の文章が推測できてしまいます。

だって、暗号化された文を1文字ずらす、2文字ずらす・・・と何回か繰り返せばどこかで正解にたどり着くからです。

だから、「共通鍵暗号」は進化してきました。

例えば、「1文字目は3個ずらす、2文字目は5個ずらすといったように文字の場所によってずらす回数を変えたり」「3文字目と5文字目を入れ替えるといったように文字を入れ替えたり」と、複雑なことをするようになりました。

でも、本質的には「暗号化した人の操作(例えば3文字ずらす)を鍵とすると、暗号を解読はその鍵を知ったうえで逆の操作(例えば3文字もとに戻す)をしなければいけない」という点は変わりありません。


進化した共通鍵暗号は現代でも使われていますが、この「暗号化する人と解読する人が同じ鍵を知る必要がある」という点が「共通鍵暗号」の最大の弱点になるのです。

次回はその最大の弱点について解説しましょう。