暗号と署名

15.7.1. 暗号と署名

安全な通信のためには、通信の暗号化だけではなく、通信相手の認証、偽造の防止など、さまざまな観点で危険を排除することが必要です。 ユーザのインターネット利用時の安全を支えている HTTPS も、これらの技術の組合せで安全を担保しています。

基本の技術として以下の二つの技術があり,できることは大まかに次の通りです

電子署名
署名時点から文補の内容が書き換わっていないことを検証できる
暗号化と復号
暗号化後に正当な受信者だけが復号できる

電子署名 #

電子署名を使うストーリーとして,推薦状の署名を考えます. 電子署名は,公開鍵暗号アルゴリズムの発展とともに実用化されました. 公開鍵暗号アルゴリズムは 公開鍵 秘密鍵 のペアを使います (あとで詳しく学びます).

推薦状を書いた人 は, 秘密鍵 を使うアルゴリズムを使って,推薦状に署名 を付加します.

推薦状を受け取った人 は,署名に使った 秘密鍵とペア になる公開鍵を用いて,検証 します.

以下の時に検証は失敗します

  • 署名後に文章が改竄された
  • 丸ごと別の推薦状と署名に差し替えられた
  • ペアをなさない公開鍵と秘密鍵が使われた

つまり,検証成功は,秘密鍵が漏洩していなければ 本人の正しい署名です.

このとき,受け取った人 のイラストに沢山の公開鍵 が描かれていることに注意してください.典型的には複数の知り合いがいるので,それぞれの署名を検証するには,対応する公開鍵をを持っている必要があります. つまり, \(N\) 人のコミュニティで全員の署名の検証には,全員が \(N\) 個の公開鍵 (自分のものを含めて) を持ちます.

実用的には,電子署名を施す際に暗号化を同時に行うことも多いですが,まずは分けて理解します.

暗号化と復号 #

暗号アルゴリズムは、データを秘匿するために暗号化と復号を提供する手順です。歴史では,電子署名より前から,暗号は使われてきました. 秘密のデータをコンピュータに保存したり、通信で送る際に暗号化しておけば、盗聴されても盗聴者が復号できない、できてもとても時間がかかるといった効果を期待できます。

暗号化とは、情報を規則に従って変換して、特別な情報がないと元の情報に復元できないようにすることです。 暗号化された情報をもとの情報に戻すことを復号と呼びます。名称に対称性がありませんが、 を復号にはつけない慣習です。

このような暗号化を施す目的は,たとえば,盗聴の防止です.企業・自治体などで,秘密の情報を長期保存する場合も役立つかもしれません.

目的に応じて様々なアルゴリズムが使われますが,大別すると2種類に分けられます.

共通鍵暗号
暗号化の鍵と復号の鍵が共通です.そのため,鍵を秘密にします.AES256 などが有名です
公開鍵暗号
暗号化の鍵 (公開鍵) と復号の鍵 (秘密鍵) のペアを使います.公開鍵は暗号化だけができ,復号はできません. 秘密鍵だけが復号でます.公開鍵を多くの人に知ってもらって,秘密鍵だけを秘匿します. RSA楕円曲線暗号 が有名です。

公開鍵暗号で暗号文を送るときの流れを,下のイラストで示します. 電子署名の時と同じで,右の鳥 は,左の さんの公開鍵を持っています. 文章の伝達は先ほどと逆で,右の鳥 から,左の さんに送ります. 鳥 は,想定する受信者の公開鍵 で暗号化し,送ります.受信した 左の は,自分 だけ が持つ秘密鍵で復号して中身を読みます.

公開鍵は暗号化専用で復号できないということは、慣れないと戸惑うかもしれません。 たとえば電子メールでは、送信したコピーを取っておくと便利ですが、公開鍵で暗号化した場合はそのコピーを送信者は読めません。 また複数人に同報することも電子メールでは多いですが、公開鍵暗号を使う場合は、受信者毎に別々に暗号化して送付する必要があります。
暗号化と電子署名 previous page 15.7.1. 暗号と署名 next page 共通鍵暗号
このサイトは開発版の はいぱーワークブック です.