図解!!暗号って何なの?
どーも、TOYOです
今回は暗号について学んでいきます。
目次 [hide]
暗号ってなに?
まず、暗号を学ぶために5つの基本的な用語を紹介します。これをしっかり理解していれば、暗号を学ぶことはそんなに難しいことではありません!
「暗号化」と「復号化」は逆のことをします。「暗号化」は「号」を「暗く」して見えなくする、「復号化」は「号」を「復活」させて見えるようにすることです。「暗号化」は丸見えのものにモザイクをかけて、「復号化」はモザイクをとって丸見えにするイメージです。
そして、上の図のメールが「平文」で、モザイクがかかっているのが「暗号文」です。また、カンタンに説明すると、モザイクのかけ方が「暗号アルゴリズム」で、モザイクのかかり具合が「鍵」といえます。
しかし、これらはあくまでもイメージなので具体的な暗号を例にとってみてみましょう。
古代の暗号!シーザー暗号!
みなさんは「シーザー暗号」という暗号を知っているでしょうか?学生時代に世界史を習った人は「あぁ、あれね!」となるかもしれません。
この暗号は「ブルータス、お前もか!」などで知られるローマの政治家カエサル(シーザー)がよく使っていた暗号です。具体的にどういう暗号なのかご紹介します。
まず、dogという平文があるとします。この平文は味方以外に知られたくありません。なので、暗号化をします。暗号化の方法、つまり暗号アルゴリズムは「文字をずらす」という方法でいきます。そして、どれだけずらすのか、これが「鍵」となります。今回は、4つずらすことにします。
すると、もともとの平文dogは暗号文HSKに暗号化されました。この暗号が意味するdogを知るには、「文字をずらす」という暗号アルゴリズムと「4つずらした」という鍵を知る必要があります。
暗号の鍵は2種類ある
さっきのシーザー暗号の例では文字を4つずらしましたが、4つずらすといっても「左に4つずらす」のか「右に4つずらす」のか、という違いがあります。
実際には、暗号化のときには文字を右に4つずらしました。そして、復号化のときには文字を4つ左にずらしました。
このように、鍵の仕組みは同じでも、暗号化と復号化でははたらきが違ってきます。例えば、皆さんの家の鍵を開けるときと閉めるときを考えてみてください。鍵は同じですが、回す方向が違いますよね!暗号化のときの鍵を「暗号鍵」、復号化のときの鍵を「復号鍵」といいます。
暗号には2種類ある①
暗号には基本的な2種類の暗号があります。
それが、「共通鍵暗号」と「公開鍵暗号」です。違いは、その名の通り、「共通の鍵を使う」か、「公開された鍵を使う」かです。
共通鍵暗号のジレンマ??
共通鍵暗号のしくみはものすごく簡単です。暗号化する人と復号化する人で同じ鍵を持っておこうね!ということです。
まず、男の子は共通鍵で送りたいメッセージを暗号化します。できあがった暗号文は女の子に送られます。そして、女の子は送られてきた暗号文を同じ共通鍵で復号化して、もともとのメッセージを読むことができます。
これが、「共通鍵暗号」のしくみです。意外と簡単ですよね。
しかし、この方式には注意が必要です。もし、この共通鍵を盗まれてしまったときには、暗号文が知らない人に解読される可能性が大です。そのため、この「共通鍵」は男の子がこっそり誰にも見つからないように女の子に渡す必要があります。
でも、考えてみると、その「共通鍵」を誰にも見られないように渡すときに、もとのメッセージも送ってしまえばよくないですか?「共通鍵」をこっそり渡すなら、もう最初からメッセージをこっそり送れよ!という話になります。
このモヤモヤとした状態を「共通鍵のジレンマ」といいます。
公開鍵暗号 鍵を公開しちゃっていいの?
次は、「公開鍵暗号」について見ていきましょう。さっきの「共通鍵暗号」では2人の間でヒミツの「共通鍵」を作る必要がありました。だから、そのヒミツの「共通鍵」がバレるとマズいわけです。
じゃあ、もういっそのこと鍵を公開しちゃえ!!というのが「公開鍵暗号」です。暗号に必要な鍵を不特定多数に公開しちゃっていいのでしょうか?
でも、この「公開鍵暗号」が「共通鍵暗号」と違うのは男の子と女の子で違う鍵を使うということです。
まず、女の子は2つの鍵を用意します。1つは暗号化のための鍵「暗号鍵」、もう1つは復号化のための鍵「復号鍵」です。そして、女の子はダイナミックに「暗号鍵」をみんなに公開しちゃいます。
「みんな、暗号化するときはこの暗号鍵を使ってね!」
でも、復号化に必要な「復号鍵」は誰にも公開せずに持っておきます。すると、男の子を含めた他の不特定多数の人たちはメッセージの暗号化はできますが、復号化はできません。なぜなら、「暗号鍵」は暗号化しかできないように作られているからです。
唯一、復号化できるのは女の子だけです。つまり、暗号文を復号化してメッセージを丸見えにできるのは女の子しかいないということです。
これなら、「暗号鍵」を不特定多数に公開しても大丈夫です。これが「公開鍵暗号」のしくみです。
暗号には2種類ある②
さっきは、暗号を「鍵」で場合分けして2種類あると説明しました。その2種類は「共通鍵暗号」と「公開鍵暗号」ですね。
実はもう1つ、分け方があります。それは、「暗号アルゴリズム」で場合分けする方法です。それが「ブロック暗号」と「ストリーム暗号」です。
これは「共通鍵暗号」や「公開鍵暗号」に比べると、そこまで重要ではありませんが、興味のある方は下のスライドを眺めてみてください。
「ブロック暗号」は平文をいくつかのブロックに区切って、そのブロックごとに同じルールで暗号化するという方法です。
対して、「ストリーム暗号」は平文のそれぞれの細かい要素をランダムに暗号化していくという方法です。
まとめ
一見、「暗号」と聞くとなんかあやしくてなんか難しそうと思いそうですが、実は仕組みはカンタンです。もちろん、暗号化や復号化、暗号アルゴリズムや鍵のカラクリはものすごく複雑です。
この記事を読んでくださったあなたがすこしでも「暗号ってまあまあ面白いじゃん!」と思ってくれれば嬉しい限りです。