第三者に知られたくない情報を別のメッセージに置き換えることで漏洩しにくくする――。これが暗号である。暗号は、誰でもアクセスできるインターネットなどで通信するために欠かせない技術だ。 暗号には、複数の方式や様々な規格・プロトコルが存在し、その名称が何を指すのか、どんな仕組みで動いているか、混乱しやすく正確に理解するのは難しい。そこで本特集では、暗号の基本から実際どのような場面で使われているのか、インターネットや無線LANで使う暗号の技術や規格を解説していく。
コンピュータネットワークで安全に通信するために暗号は欠かせない。インターネットアクセスや無線LANの通信、企業ネットワークでは拠点間で通信するVPNなどに使われる。暗号の目的は、通信経路上で情報が漏洩しないようにするためだ。
誰もがアクセスできるインターネットや目に見えない電波で通信する無線LANは、悪意を持った第三者(攻撃者)に通信を盗聴されやすい。しかし通信を暗号化していれば、たとえ第三者が盗聴したとしても、解読されない限り通信に含まれる情報は盗まれない。暗号化によって通信の秘密を守るのだ。
コンピュータネットワークの通信では、HTTPS(TLS/SSL)やIPsec、WPA2といった、暗号を使った様々な通信プロトコルを利用する。こうしたプロトコルで使う暗号には多くの種類があるが、大きく「共通鍵暗号」と「公開鍵暗号」の2種類に分類できる。
暗号の肝となるのは「暗号鍵」である。共通鍵暗号と公開鍵暗号の大きな違いは、利用する暗号鍵の数だ。
暗号鍵とは、暗号化や復号に必要な情報を指す。
古典的な暗号の例として、「シーザー暗号」(カエサル暗号)がある。古代ローマ時代に使われたとされるこの暗号は、暗号文を作るとき、元のメッセージの各文字をアルファベット順に数文字ずらす。復号するときは同じ文字数を戻す。この場合の暗号鍵は、「ずらす文字数」である。
スキュタレー暗号やシーザー暗号はそれぞれ、暗号化でも復号でも同じ暗号鍵を使う。こうした一つの暗号鍵で暗号化と復号を実行する暗号方式を共通鍵暗号、その暗号鍵を「共通鍵」と呼ぶ。
一方の公開鍵暗号では、復号するときの暗号鍵が、暗号化するときに使う暗号鍵とは異なる。つまり、ペアとなる二つの暗号鍵が必要になる。やり取りする相手に渡す暗号鍵を「公開鍵」、手元に残す暗号鍵を「秘密鍵」と呼ぶ。