署名

ここで、次のような状況について考えてみます。

  1. メッセージを暗号化し、ハッシュ付きで送信します。
  2. そのメッセージをハッカーが傍受し、意図された受信者に届かないようにします。
  3. ハッカーは元の送信者になりすまし、暗号化された新しいメッセージをハッシュ付きで送信します。
  4. 受信者は暗号化を解読し、ハッシュが計算したハッシュと一致するため、元の送信者から破損していないメッセージを受け取ったと思い込みます。

これは、中間者攻撃と呼ばれています。

これに対する解決策は、ソフトウェアでハッシュも暗号化して送信することです。ただし、ハッシュの暗号化には独自のプライベート キーを使用します。パブリック キーは公開しているため、受信者のソフトウェアでハッシュを解読して使用できます。パブリック キーと一致するプライベート キーを知っているのは送信元のソフトウェアだけであるため、受信者はその送信元からのメッセージであると確信できます。

プライベート キーで暗号化されたハッシュをデジタル署名と呼びます。

したがって、この方法で署名されたメッセージを送信すると、受信者に送信元が認識されます。これが、上記で SSL の利点として 3 つ目に挙げた認証です。

実際、デジタル署名があれば、受信者は送信元を特定できます。送信元が否定しようとしても、それはできません。これが、上記の 4 つ目の利点である否認防止です。世界には、デジタル署名に従来の手書きの署名と同等の法的な効力が認められている地域もあります。

ただし、デジタル署名は添付されたメッセージのハッシュを暗号化したものであり、手書きの署名とは違って毎回異なることに注意してください。

これと似た概念にメッセージ認証コード (MAC) があります。これは、対称アルゴリズムのシークレット キーで暗号化されたハッシュです。一部のシステムでは、デジタル署名の代わりに MAC を使用して、整合性、認証、および否認防止を提供しています。