さいふぁーとは?

一般に、元あるデータ(Horikita Maki)を権限を持っている人にしか分からないような形(4971bede3667bf46a3501d004aecf8f9)にすることを「暗号化」と言います。

また、暗号化されたデータを元の認識できる形に戻すことを「復号」と言います。

人々は大昔から様々な暗号手段を編み出して、相手に情報を届けていました。

「トラトラトラ」「ニイタカヤマノボレ1208」なども、暗号の一種です。っていうか立派な暗号です。

最近のデジタルハイビジョンでPentium3なユビキタスとクラウドコンピューティングのご時世(←おまえ意味分かってないだろ)では、通信における秘匿性というものが大きく取りざたされ、もはや暗号化されていない通信はその価値をゼロにしてしまうほどに重要な要素となりました。

これは、電線や電波を通じて行われている情報のやりとりを、実は盗み取ろうと思えば簡単にできることを一般大衆が認識し始めたからに他ならず、また、傍受されうる危険性を(そんな危険はないよと)否定する技術者もいないことから、結果として個人情報を含めた通信の安全性への意識がごく自然に高まり、各種法律の整備と共に、暗号化された通信がサービスの最低条件になってきたと言えます。

もっとも法律はいつの世も後手後手ですが。(多方面から考えた場合それで良いとは思いますが・・・。)

 

話は元に戻りますが「暗号化」された情報を「復号」するためには、何らか「鍵」になるものが必要です。

当たり前と言っては当たり前なのですが、これは非常に重要な前提です。

 

 

暗号化の概念

実は通信における暗号化の概念は大まかに分けて2つしか存在しません。

ひとつは共通鍵暗号方式、もうひとつは公開鍵暗号方式です。

 

 

①共通鍵暗号方式

1975年頃まではこの考え方しかありませんでした。

もちろん今でも使われています。

具体的に言うと無線LANなどでたまに目にするAES・DESなどがそれです。

この方式は、玄関を開ける鍵と閉める鍵が同じ(共通)というものです。

 

ん?別に問題ないんじゃないのか?と思われるかもしれません。

ところが通信においては大きな危険性を秘めています。

それは、鍵を盗まれた瞬間にアウトであるという点です。

家族全員が同じ鍵を持っているので、誰かの鍵が盗まれてしまえば家の中に入られてしまいます。

現実世界においては、鍵を拾われても住所がわかるわけでもなく、泥棒に侵入されるという可能性は低いのですが、インターネットの世界においてはアクセスするたびにIPアドレスなどの足跡がサーバーに残るため、比較的簡単に家の住所を特定できてしまいます。

 

しかしながら、この共通鍵暗号は処理が軽く、端末に極端な負荷をかけないメリットを持っています。

 

 

②公開鍵暗号方式

さて、1976年以降はデフィーさんとヘルマンさんの登場です。

この二人はかの有名なDeffieHellman公開鍵暗号共有を作りだした天才です。

具体的には、ショッピングサイトなどで使われているRSA方式などがそれです。

それはSSLじゃねぇのか?というツッコみは後で説明しますのでスルーします。

この方式は「暗号化」するための鍵と「復号」するための鍵が異なります

 

例えると、玄関を開けられる鍵(秘密鍵)はお父さんしか持っていません。

玄関を閉められる鍵(共通鍵)は家族全員が持っています。

共通鍵は庭にもポロっと落ちていますし、玄関の前にも落ちている状態です。

ですが、玄関を開けられるのはお父さんしかいないので、家財は安全というわけです。

 

えぇ。皆さんの言いたいことはよーく分かりますよ?

それじゃ、お父さん残業したらずっと外で待ってろと言うのか?と。

 

その通りです。

でも家の中のものは盗まれようにないし、安全だとは思いませんか?

この窮屈な概念がインターネットの世界では非常に効果的なんです。

 

普通は誰かが家の中にいるんだから、現実にはありえないよ、とか。

う る さ い よ 。

 

 

③ハイブリッドな暗号方式

①と②を組み合わせた暗号方式。お互いの長所を組み合わせたエグい仕様です。

ショッピングサイトなどのSSLなどがこれに当たります。

さて、どうしても説明をする際に現実の生活と照らし合わせてしまいますが、ネットワークの世界ではその暗号も玄関を開ける鍵もすべてがデータとして扱われます。

たとえば、鍵はデータなので手で持つことはできません。

では、鍵がデータなのであれば、通信によって鍵を渡さなければならない場合、鍵そのものも暗号化する必要があるとは思いませんか?

さらに、この鍵をどのようにして相手へ安全に渡しますか?

暗号化だけでいいのですか?

相手は本当に鍵を渡したい人ですか?

誰がそれを保証しますか?

ということも、重要な要素となります。

この辺はSSLの仕組みの類になってきますが、話をすると夜が明けること必至、かつ、自分も文章にする自信がないので割愛です。

 

暗号の簡単な仕組み

話は変わりますが、暗号ってどういう仕組みなのか、具体的な内容を知りたいという人も多いと思いますが、筆者は数学の時間は十字キーとA・Bボタンを軽快に連打しまくっていたもので・・・。

でも、簡単な話は出来ます。(というか習いました。)

キーワードは『素数』です。2・3・5・7・11・13・・・的な?その数字でしか割れない数字のことです。記憶が正しければ・・・

もう一つのキーワードは中学校でやった?『素因数分解』です。因数分解をするときに素数だけでやるアレです。

突然ですが!

22を素因数分解してください!

お、やるね。2と11だね。

じゃあ、4343を素因数分解してくださいな。

 

えーーーー?できない?!?!

43と101だよ。

まったく、何のために中学校卒業したんだか・・・

 

しかし!実は、出来なくていいんです。

なぜかと言ったら、このデジタルハイビジョンな世の中にも関わらず、コンピューターもいちばん苦手とする計算は素因数分解だからです。

理由は片っ端から手当たり次第計算を行うしか無いから。

しかも数学者でさえ素因数分解の手っ取り早い計算方法を現代まで確立できていません。

…っていうか無理でしょ。

リーマン予想的なのもありますが、、、まだムリです。

要するにアレです、円周率と同じで一生やっても答えは出ないってやつです。

人間が扱えるのは1・2・3~指の数までと相場が決まっているのです。

 

種明かしをすると、43と101はあらかじめ二つの素数を筆者が知っていたから、すぐに出せたんです。

っていうか、43と101ありきで掛けただけです。

少しだけ、言いたいことが分かってきたのではないでしょうか?

これらの「性質」をもっと膨大な数字にして鍵に組み込むわけです。

素数だけを掛け合わせるなら猿にでもできる。

でも逆算するのに何万年もかかる桁数にしてしまえば、事実上解読できないでしょ?って寸法です。

もしも解読できるコンピューターが開発される頃には、その情報は何の役にも立たなくなっているでしょうし、その頃にはまた新しい強固な暗号が開発されているはずです。

ん??…

ということは、裏を返すと解けない暗号はないってこと?!って話になると思いますが、実際のところ10万年くらいかければ解けない暗号はないと言われています。

これらのもっと複雑なすごい計算式で、もう何が何だか訳分からなくした仕組みがRSAなどです。

素因数分解の他には、離散対数・行列分解・格子・楕円離散対数、を使った暗号があるらしいです。

ウィキ先生に書いてありました。

いわゆる研究者レベルの内容です。

でも、これらの仕組みは、誰も分からず人知れず、いつの間にか様々なサービスに仕込まれるのです・・・。

 

あぁ、なんて恐ろしい・・・。

 

 

要するに暗号とは、『如何にして解読者を諦めさせるか。大切な一生の中で割りに合わないと思わせるのか。』

ということだと思います。

 

自分の知っとること、ぜ~~んぶ話してしもうたぶぁい。

 

 

コメントを追加(どなたでも投稿できます)
  • コメントはありません