暗号技術の基本構成まず、暗号の基本について冒頭でおさらいしておこう(図表1)。暗号技術は「セキュリティ対策に役立つ重要技術」の1つで、元々の意味としては、そのまま読んで意味がわかる平文を、そのまま読んでも全く意味がわからない暗号文に変換することを「暗号化」といい、暗号化したデータを元の平文のデータに戻すことを「復号化」という。
図表1 暗号技術とは? |
本稿ではこの2つの技術をまとめて「暗号技術」と呼んでいる。この技術の中で、暗号化するための仕組みや手順のことは「暗号アルゴリズム」と呼ばれている。
図表1は、「シーザー暗号」という紀元前に考案された暗号アルゴリズムを使って平文を暗号化したときの例だ。これを見ると、シーザー暗号についての知識がなければ、「RIXASVO」を解読し、「NETWORK」という意味であることを突き止めるのは難しい。
しかし、時が経つにつれ人々の間にシーザー暗号のアルゴリズムが知られるようになると、次第に暗号文が解読されてしまうケースが増えていったと容易に想像できる。
なぜなら、シーザー暗号は「文字を別の文字に変換する」という簡単な仕組み(アルゴリズム)だけで成り立っている暗号アルゴリズムであり、図表1では「アルファベットを右に4文字ずらす」という変換ルールを適用しているだけにすぎないからだ(図表2)。
図表2 変換ルールの一例 |
従って、変換ルールを1つ1つ順番に試していけば(総当り攻撃)、時間はかかるが、いつか必ず解読できるときがやってくる。このように簡単なアルゴリズムしか使っていない暗号文では、コンピュータを使えば、あっという間に解読されてしまうようになった。
「文字のコード化」で暗号技術が更に進化コンピュータの登場は暗号文の解読に手を貸すことになったが、その反面、コンピュータの仕組みそのものは、もっと複雑な方法で暗号化するきっかけを与えてくれた。それは「文字のコード化」である。
コンピュータの世界では、取り扱う情報はすべて数値化する必要がある。例えば、ひらがなや漢字、アルファベットなどの文字は、シフトJISやUnicodeなどの文字コードによって数値化されている。そのため、文字情報についても「数値を別の数値に変換する」という方法で暗号化できるようになり、次々と解読困難な新しい変換数式が考案されるようになった。
さらに、暗号化の対象も文字情報だけでなく、音声、写真、サウンド、動画など、あらゆるコンテンツに広がっていくようになった。