暗号化
様々な脅威から情報を守るセキュリティ技術を紹介しよう。 最初に紹介するのは、暗号化である。 暗号化の目的は、「情報漏えい」という脅威を防ぐことである。 ネットワークで伝達されるデータは、その通信経路上で物理的に盗まれてしまうことを防げない。ただし、 盗まれたデータが暗号化されていれば、内容を読めないので、 情報漏えいしたことにならない。
暗号化する前のデータを平文(ひらぶん)と呼び、暗号化されたデータを暗号文と呼ぶ。 暗号文を平文に戻すことを復号と呼ぶ。 暗号化と復号化で使われる数値を鍵と呼ぶ。下図にシンプルな暗号化と復号の例を示す。 ここでは、鍵の値だけ文字をずらして暗号化している。 逆方向 文字をずらせば、復号できる。

鍵の使い方によって、共通鍵暗号方式と公開鍵暗号方式がある。
共通鍵暗号方式では、1つの共通鍵を用意して、 同じ鍵で暗号化と復号を行う。 公開鍵暗号方式では、2つの鍵のペアを用意して、一方を暗号化の公開鍵、もう一方を復号の秘密鍵とする。

共通鍵暗号方式の仕組み
歴史的には、 共通鍵暗号方式が先に作られました。 例えば、 古代ローマの政治家であるシーザーが使っていたと言われるシーザー暗号では、平文のアルファベットを3文字ずらして暗号化し、暗号文を逆に3文字ずらして復号していた。
これは「シンプルな暗号化と復号の例」の図に示した方式である。 もしも、 共通鍵の値を変えたい場合は、 手紙を運ぶ使者に依頼して、受取人に口頭で伝えてもらえばよいだろう。
共通鍵暗号方式は、シンプルで効率的だが、そのままネットワークで使うことはできない。
なぜなら、 ネットワークには、口頭で鍵の値を知らせる使者がいないからである。
もしも、暗号文と鍵とネットワークで送ったら、それが一緒に盗まれて、暗号文を復号されてしまう。
公開鍵暗号方式の仕組み
近代になって考案された公開鍵暗号方式では、鍵をネットワークで送ることができる。 顧客が Webショップで買い物をする場合を例にして、公開鍵暗号方式の手順を説明しよう。顧客が、 送付先やクレジットカード番号などの情報を暗号化して、Webショップに送るとする。
【手順1】データの受信者であるWebショップが、 鍵のペアを作る。 この鍵のペアは、異なる値であり、一方で暗号化すると他方で復号できるという性質がある。 例えば、鍵のペアが3と7なら(実際には、もっと桁数が多い値を使う)、 3で暗号化すれば7で復号でき、7で暗号化すれば3で復号できる。
【手順2】 Webショップが、一方の鍵を、 データの送信者である顧客にネット ワークで送る。 ネットワークで送るので、 公開しているのも同然である。 そのため公開鍵と呼ぶ。 もう一方の鍵は、 Webショップだけが知る秘密の値として保持する。 そのため秘密鍵と呼ぶのである。
【手順3】顧客は、Webページに入力した情報を、 公開鍵で暗号化して、 Web ショップにネットワークで送る。 ネットワークで伝送される公開鍵と暗号文は、途中で盗まれる恐れがあるが、 秘密鍵を知っているのはWebショップだけなので、 暗号文が復号されることはない。
【手順4】暗号文を受け取ったWebショップは、秘密鍵を使って暗号文を復号し、顧客がWeb ページに入力した情報を読み、 商品の販売に関する処理を行う。

公開鍵暗号方式では、2つの鍵のペアを使う。 送信者と受信者のどちらが鍵のペアを作り、 公開鍵と秘密鍵のどちらを使って暗号化と復号を行うかをしっかり覚えよう。
ハイブリッド暗号
何事にも言えることだが、 同じ目的のために複数の技法がある場合には、それぞれに長所と短所がある。 共通鍵暗号方式には、鍵をネットワークで送れないという短所があるが、処理が速いという長所がある。公開鍵暗号方式には、鍵をネットワークで送れるという長所があるが、処理が遅いという短所がある。
インターネットでは、多くの場面で、 共通鍵暗号方式と公開鍵暗号方式それぞれの長所を組み合わせた技法が使われていて、 ハイブリッド暗号と呼ぶ。 ハイブリッド (hybrid) とは、 「合成された」 という意味である。
例えば、Webページを閲覧したときに、Webブラウザのアドレス欄が http://ではなく、https://となっているWebページを見たことがあるだろう。 このhttps:// は、HTTP Secure (セキュリティのかかったHTTP) という意味である。これは、SSL/TLS (Secure Sockets Layer/Transport Layer Security) というハイブリッド暗号のプロトコルの上でHTTPを使うものである。 手順の部分だけを、下図に示す。 基本的に、 処理の速い共通鍵暗号方式を使うが、共通鍵はネットワークで送れない。 そこで、共通鍵を暗号化して送るために、処理の遅い公開鍵暗号方式を使う。
ハイブリッド暗号の手順の例
(1) 送信者は,電子メールの本文を共通鍵暗号方式で暗号化し (暗号文) その 共通鍵を受信者の公開鍵を用いて公開鍵暗号方式で暗号化する (共通鍵の暗号化データ)。
(2)送信者は、暗号文と共通鍵の暗号化データを電子メールで送信する。
(3)受信者は、受信した電子メールから取り出した共通鍵の暗号化データを、自 自分の秘密鍵を用いて公開暗号方式で復号し, 得た共通鍵で暗号文を復号する。
ディジタル署名
ディジタル署名は、 「なりすまし」 および 「改ざん」 という脅威の対策となる技術である。
ディジタル署名にはいくつかの技法があるが、試験には、公開鍵暗号方式を応用した技法がよく出題される。
AさんがBさんに契約書を送る場合を例にして、ディジタル署名の手順を説明しよう。
契約書にディジタル署名を添付することで、 送信者がAさん本人であることと、 契約書の内容に改ざんがないことを示す。ここでは、契約書の内容は、 暗号化しない。
【手順1】 契約書の送信者であるAさんが、 鍵のペアを作り、 一方を公開鍵として、あらかじめネットワークで受信者のBさんに送っておく。
もう一方は、Aさんだけが知る秘密鍵とする。
【手順2】送信者のAさんは、契約書を構成するすべての文字の文字コードを使って、その契約書に固有の値を求める。 これをハッシュ値 (hash) やメッセージダイジェスト (message digest) と呼ぶ。 ハッシュ値は、 改ざんを検出する手段になる。 もしも契約書の内容が改ざんされると、 ハッシュ値の値が変わってしまうからである。 ハッシュ値を求める方法は、 秘密ではないので、 受信者のBさんも知っている。
【手順3】 送信者のAさんは、手順2で求めたハッシュ値を、自分しか知らない秘密鍵で暗号化する。 これが、ディジタル署名になる。 A さんは、契約書の本文とディジタル署名を、 ネットワークでBさんに送る。
【手順4】 受信者のBさんは、受け取った契約書の本文から、ハッシュ値を求めまる。 仮に、123456になったとしよう。 さらに、ディジタル署名 (暗号化したハッシュ値)を、Aさんの公開鍵で復号する。仮にこれも123456になったとしよう。 両者が一致したので、A さんが送ったものであること(なりすましがないこと)と、改ざんがないことが確認できた。 なぜなら、 ディジタル署名をAさんの公開鍵で復号できたのは、Aさんしか知らない秘密鍵で暗号化されているからである。 契約書の本文から求めたハッシュ値と、Aさんが暗号化して送ってきたハッシュ値が一致したのは、契約書の内容に改ざんがないからである。

ディジタル署名でも、2つの鍵のペアを使うが、 送信者と受信者のどちらが鍵のペアを作り、公開鍵と秘密鍵のどちらを使って暗号化と復号を行うかが、公開鍵暗号方式と逆になるので、混乱しないように注意しよう。
認証局の役割
先ほど説明したディジタル署名の例で、もしも、悪意のある人によって、 契約書の内容が改ざんされ、 それに合わせて秘密鍵、公開鍵、およびディジ タル署名が作り直されたら、どうなるだろう。契約書とディジタル署名の受信者は、なりすましと改ざんを検出できない。
このような脅威を防ぐために、実際のディジタル署名では、信頼できる認証局 (CA: Certificate Authority) が発行するディジタル証明書 (公開鍵証明書とも呼ぶ)を添付している。 これは、 実印を押した紙の契約書を提出するときに、信頼できる役所が発行する印鑑証明書を添付することに似ている。実印がディジタル署名に相当し、役所が認証局に相当する。 ディジタル署名を使いたい企業は、 認証局に依頼して、 ディジタル証明書を発行してもらう。
認証局には、ディジタル証明書を発行すること以外にも、重要な役割がある。それは、企業から無効化の依頼を受けたディジタル証明書や、有効期限の過ぎたディジタル証明書を、 失効させることである。一度発行したディジタル証明書は、永久に有効というわけにはいかないからである。 認証局は、失効したディジタル証明書のリストを公開する。
(参考)情報処理教科書 出るとこだけ!基本情報技術者[科目A][科目B]2025年


コメント