計算機システム論レポート

暗号システムについて

情報科学科3回生166番 小谷 真知子

1 暗号とは

他人に内容を知られないように、情報を伝達する為の手段。これは、人間が 社会生活を営むようになってから、今まで、暗号はあらゆる場所で使われてき ました。例えば、「敵が来た」と知らせる為の「のろし」なども暗号のひとつ です。もっと、一般的に知られている例で言えば、推理小説などに出てくる 「ダイイングメッセージ」もそのひとつです。つまり、第三者にその意味がわ からなくて、伝えたい相手にだけ、その内容を伝えることができればよいとい うものです。

簡単で有名な暗号でいうなら、「山」「川」の暗号です。「山」と尋ねたら、 「川」と答えることの出来る者だけが、味方と言うわけです。しかし、この暗 号には欠点があります。というのは、敵のAさんがそのやりとりをみていたと します。するとそのAさんはその暗号を使えるというわけです。誰かに「山」 と尋ねられると「川」と答え味方になりすますかもしれません。また、Aさん から「山」と尋ねられると、味方にとってはそれを敵だと判断する手段はない わけです。このような理由より、実際に今となってはあまり使われません。

上記の暗号が少し改善された有名な「シーザー暗号」があります。 「さやごちさ」(1) いきなりこんなこといわれても、何かわかりませんよね?これは、シーザー暗 号を使って暗号化した後の暗号文です。この元の文(平文)はどのようなもの かというと、 「きみがすき」(2) なのです。シーザー暗号ではどのような暗号化を行なっているのでしょうか。 それは、「各文字を何文字かずらす」と言う方法です。この場合4文字先送り にして暗号化しています。(1)の文章をそれぞれ4文字ずつ後に戻してみて 下さい。(2)の文章が現れたと思います。このように暗号の仕組み・鍵(こ こでいう4文字を鍵といいます。この鍵は変動してほかの数字じゃ意味をなし ません。そういう変数を鍵というのです)を知っていて元の文章に戻すことを 復号化する、といいます。 基本的に利用した暗号方式を周囲に知られたとしても、鍵さえ知らなければ 解読されることはなく、平文も知られません。ただ、ひらがなの50音を利用し たシーザー暗号には、鍵が1文字ずらす(あ → い にする)・2文字ずらす (あ → う にする)というように、50文字しかないので、50個しか鍵が 存在しないわけです。つまり、全パターンを試してみるということが現実的に 行なえる為、解読される可能性が極めて高いといえます。したがって、本当に 内容を知られては困る軍事機密などで実際に使うことはありません。

しかし、もしもこの鍵が何億パターンも存在したとすれば、「シーザー暗号 で暗号化しました」と周囲に言ってしまったとしても全てのパターンを試して みることが不可能になり、鍵を知らずに解読することは現実的には困難となり ます。一方、大勢がより安全な暗号化を行ないたいとすれば、おのずと全員が 安全だと言われる同じ暗号方式を利用することになるでしょう。これは実質的 に暗号方式を公開してしまっているのと同じことになります。その上、大勢で 同じ暗号鍵を使ったら、鍵が足りなくなってしまう可能性が出てきます。

従って、現在の暗号には鍵が地球上の全ての人が固有に持てるほど存在し、 またどのような暗号方式を利用したかを知っても、鍵さえ知らなければ解読で きないほどの安全性があることが要求されているのです。

2 公開暗号方式

1976年、新しい暗号方式の概念が発表されました。従来の暗号方式では 暗号化する鍵と、復号化する鍵は同一のものでした。しかし、この方式では鍵 を2つ(A・B)使用します。暗号化には、一方の鍵(A)を使って行なうの ですが、こうして暗号化した暗号文は(A)を使っては復号できず、もう一方 の鍵(B)を使わないと復号化できないのです。逆に(B)を使って暗号化す れば、(A)を使わないと復号化できないのです。

この概念を導入することができれば、周囲に秘密にして自分に文を送って欲 しい時には、一方の鍵(A)を世界に公開してしまい、送信者にはその鍵を使っ て暗号化して送ってもらえば自分の手元にあるもう一方の鍵(B)を使って復 号化すればいいので、事前に当事者間で秘密の共通の鍵を伝え合っておくとい う必要がなくなるのです。さらに、逆に(A)を復号鍵として使うようにする 時もあります。それは、暗号化が逆に自分だけの秘密の鍵(B)を使って行な われた場合です。従って、ある文は自分が書いたものだと周囲に証明(認証) したい場合には、(B)を使って暗号化し、この暗号文を公開します。周囲の 人間は(A)を使って正しく復号できれば、本当に自分が書いた文だと証明さ れるのです。

さらに、その翌年の1977年、公開暗号方式の発表をうけて、それを満た す初めての実際の数値上での変換方法が発明されました。この暗号方式はその 発明者の3人(Rivest,Shamir,Adleman)の頭文字をとって、RSA暗号と名 付けられました。その後、色々な公開暗号方式が発表されましたが、現在まで 実際に広く実用化されているのはこのRSA暗号だけです。

このRSA暗号は、2つの素数によってなりたっています。2つの素数(P・ Q)をかけた数を法とする世界では、全ての数が自分自身に戻る”べき乗数” を持っています。(法とする世界とは、その数で割ったあまりの数をとる世界 のことです)そして、それが何乗なのかは、最初の2つの素数(P・Q)によっ て決まります。それは、PとQからそれぞれ1をひいたPー1とQー1の最小 公倍数に1足した数です。全ての数は、この数の回数だけ”べき乗”した時、 必ず元の数にもどるのです。そして、そのようになる”べき乗数”は、一定の ペースでまたやってきます。そのペースとは、Pー1とQー1の最小公倍数で す。従って、PxQを法とする世界で、全ての数が自分自身に戻る”べき乗数” は、(Pー1とQー1の最小公倍数)の倍数+1と表すことができます。ちな みに(Pー1)x(Qー1)という式はは必ず(Pー1とQー1の最小公倍数) の倍数になりますので、この”べき乗数”の一部は簡単にn x(Pー1)x(Qー 1)+1(但し、nは任意の正の整数)として、求めることができます。 さて、これをどのように暗号化に利用するのでしょう。RSA暗号ではこのよ うに適当な素数P・Qを掛けた数PxQを法とする世界を考え、暗号化したい 平文の数値(但し、PxQ未満)を、ある適当な数分だけ”べき乗”してしま うのです。ここで、何乗するかというのが1つ目の鍵(E)となります。する と、あらゆる数は予想のつかない数に変換されます。これが暗号文となるので す。そして、復号を行なう時には、暗号の際、”べき乗”した数(E乗)の部 分から、全体として自分自身に戻るような”べき乗数”になるよう、さらに” べき乗”してやればいいのです。この”べき乗数”が鍵(E)に対応するもう ひとつの鍵(D)となります。

3 デジタル署名と電子印鑑

インターネット上で、商取り引きがさかんに行なわれる現在で必要とされてく るのが、デジタル署名ならびに電子印鑑です。これらは、今までの取り引きの 場では必須であった、署名や印鑑をインターネット上で成立させようというも のです。なぜ、署名や印鑑がそもそも必要なのかといえば、もちろん、その書 類が正当なものであることの証明みたいなものです。 さて、ここでそのデジタル署名、電子印鑑なるものをどのようにつくるのか? という問題です。できるなら、全てを暗号化してしまえばいい。しかし、それ ではいちいち計算しなければならない。もっと簡単にできないだろうか? そ れでは、印鑑にあたる部分だけを暗号のような形にすればいい。そうして開発 されました。 ここで使われるのが、前章にも記述した「公開暗号鍵」そして「認証」の考え です。「公開暗号鍵」というのは暗号化には、一方の鍵(A)を使って行なう のですが、こうして暗号化した暗号文は(A)を使っては復号できず、もう一 方の鍵(B)を使わないと復号化できず、逆に(B)を使って暗号化すれば、 (A)を使わないと復号化できないというものです。 従って、ある文は自分が書いたものだと周囲に証明(認証)したい場合には、 (B)を使って暗号化し、この暗号文を公開します。周囲の人間は(A)を使っ て正しく復号できれば、本当に自分が書いた文だと証明されるのです。この考 えのもとで、行なうと(A)を取り引きしている相手に渡せば、自分は(B) を使って暗号化した印鑑をはりつけて送ればいいことになります。そして、相 手側では(A)を使って復号化を行ない承認されるかどうかを確認すればいい のです。 さて、この電子印鑑を手軽にさせてくれるアイテムが存在しています。それが 「ICカード」です。見かけはただのテレホンカードかキャッシュカードです が、ICカードはそれらよりも優れており、500行程度のプログラムが組み 込むことができ、それによって暗号化された電子印鑑をインターネット上の書 類に押してくれるのです。

4 暗号が解読される時

全ての暗号は万能ではありません。解読する手段は必ず存在するのです。た とえば、こんなに普及しているRSA暗号といえど、解読する手段は存在しま す。公開している鍵から求めることができるのです。公開している鍵というの は2つの素数を掛け合わせた n と”べき乗”のEです。ここで、n を素因数 分解してPとQを求めることができればPとQとEから秘密の鍵Dは求めるこ とができるわけです。 ではなぜRSA暗号は使われているのか? それは、ひとえに素因数分解は難 しいという事実でしかありません。RSA暗号で使われる数というのは n で 155桁が現在主流といわれています。その素因数分解をしようと思ったら、 ひとりの人間が一生かかってもできません。もしくは莫大な数のコンピュータ を使わなければできません。というくらい、時間とコストが必要となります。 そこで、それだけコストをかけるだけの価値があるのかということなのです。 たとえ、ひとつの暗号が解読できたとしても、暗号を使ってる側からすれば鍵 を変えることなど造作もないことなのです。 それでは、RSA暗号は素因数分解の決定的な解法がでないかぎり安全なのか といわれるとそうでもないのです。もとの2つの素数を求めなくても解読でき るといわれている”ふりおとし法”なども今開発途中です。このように、素因 数分解以外の方法でのアプローチからの解読方法も存在するのです。 しかし、この他からのアプローチによる解読方法を突破した暗号を日本が開発 していたりなど、解読をしようとする人が多ければ多いほど、暗号技術は発展 していくのです。