Link

リンク

サルにも分かるRSA暗号

暗号方式とかぎ

次に、現代暗号の概念と基本的な用語についてお話しします。 暗号化するためには、まず暗号化したい元の文を用意します。 つまり、周囲には秘密にして、目的の相手にだけ意味を伝えたい文です。 この暗号化される前の文を 平文(「ひらぶん」と読みます)と呼びます。 そして、どのような 暗号方式 を用いて平文を暗号文に暗号化するか決めます。

ここでは例として、先ほど紹介したシーザー暗号を使って暗号化することにしましょう。 「シーザー暗号を使う」と決めることは「平文の各文字を五十音順で何文字か後ろにずらす」ということです。 そして、シーザー暗号で暗号化するとして、五十音順で 何文字分ずらすのか を決める必要もあります。 これで初めて平文を暗号化し、暗号文 を得られるようになります。

この暗号文を相手に伝えます。 その際、この暗号文が周囲に盗聴されても、暗号化されているので本当の意味(平文)は知られずに済みます。 正当な受信者は暗号文を得て、そこから平文を得る作業を行ないます。 この作業を 復号 と呼びます。 なお、正当ではない受信者が暗号文から平文を得ようとする行為は 解読 と呼ばれ、復号とは区別されます。 正当な受信者は、周囲の人たちと異なり、暗号化で平文を何文字ずらしたかを知っているため、暗号文をその文字数分だけ五十音順で逆の方向にずらせば元の平文の文字を得られ、復号できます。

ここで重要なのは、復号には暗号化で 何文字 ずらしたかという情報が必要になることです。 この「ずらした数」が分からなければ、シーザー暗号を利用したことが分かっていても復号できないのです。 言い換えれば、このずらす「数」を変えれば、同じシーザー暗号(=五十音順で何文字かずらすタイプの暗号)を使ったとしても様々なパターンの暗号文ができるため、大勢が同じ暗号方式を利用できることになるのです。

このように、暗号方式が決まっていても「ある数値」を決定しなければ暗号化できなかったり、「ある数値」が分からなければ復号できない時、このような数値を と呼びます。

利用した暗号方式自体は周囲に知られてしまっても、鍵さえ知られなければ基本的に平文は分かりません。 しかし、シーザー暗号には、鍵が一文字( "あ" を "い" にする)の場合、二文字( "あ" を "う" にする)の場合…、五十文字( "あ" を "ん" にする)の場合というように、せいぜい五十パターン程度しかないため、全ての鍵パターンで暗号文を逆にずらした文を求めてみて、何らかの意味を持つ文が得られるかどうか試すことが現実的に行なえることから、この方式では解読されてしまう可能性が高いといえます。

しかし、この鍵が何億何兆パターンも存在したとすれば「シーザー暗号で暗号化しました」と周囲に言っても全ての鍵パターンで元の文を得ようとする作業が不可能となり、鍵を知らずに解読することが困難になります (※1) 。 一方、大勢が安全な暗号化を行いたいとなれば、おのずと全員が「最も安全」と言われる同じ暗号方式を使うでしょう。 これは、実質的には「使った暗号方式を公開すること」と同義になります。 このように大勢が同じ暗号方式を使うとなると、意図せず同じ鍵を使ってしまう人同士が発生してしまうなど、鍵が足りなくなってしまう可能性も出てきます。

従って、現代暗号には鍵が地球上の全ての人が固有にもてるほど存在し、どの暗号方式を利用したかを周囲に知られても、鍵が知られなければ解読されない安全性があることが要求されるのです。 「暗号化の手順自体は公開」しても安全が保て、当事者同士で秘密にしなければならない情報を「鍵」に限定することで、鍵を「ある数」だけに絞り込むのが現代の暗号のトレンドです。

※1 攻撃法

実際には効率よく解読するための様々な方法が研究されており、 単純に鍵が多く存在していてもその道のプロには解読されてしまいます。 このような方法を「攻撃法」(アタック)と呼びます。

戻る
進む
ページ上部へ