デジタル署名とは、文書に添付される数値です。例えば、公開鍵暗号を使用する認証システムでは、デジタル署名は証明書への署名のために使用されます。
デジタル署名は 2 段階で作成されます。 最初の段階では、文書を大きな数値に抜き出します。 この数値はダイジェスト・コードまたはフィンガー・プリントと呼ばれます。 ダイジェスト・コードはその後暗号化され、デジタル署名になります。 デジタル署名はダイジェスト・コードの生成元の文書に追加されます。
ダイジェスト・コードの生成には、いくつかのオプションが使用可能です。 このプロセスは暗号化ではなく、極めて複雑なチェックサムです。 メッセージは結果のダイジェスト・コードから再生成することはできません。 文書を数値に抜き出すという側面から見て大変重要なのは、メッセージが変われば、それがわずかな変更であったとしても、 異なるダイジェスト・コードが生成される点です。 受信者がメッセージを受信し、再計算によりダイジェスト・コードを確認すると、文書に何らかの変更が加えられた場合、本来のダイジェスト・コードと計算されたダイジェスト・コードは異なるものになります。
第三者によるメッセージの代行受信、改ざん、ダイジェスト・コードの再計算、改ざんしたメッセージとコードの再送を避けるには、ダイジェスト・コードを検証する手段も必要です。 ダイジェスト・コードを検証するには、公開鍵と秘密鍵を逆に使用します。 私信の場合、秘密鍵を使ってメッセージを暗号化する意味はありません。 これらの鍵はユーザーの公開鍵さえあれば誰にでも復号できるためです。 この技術はメッセージの出どころが自分であることを証明するのに役立ちます。 秘密鍵は本人以外入手できないため、第三者がそれを作成することはできません。 他人の公開鍵を使用して文書を復号した結果として、何らかの意味のあるメッセージが得られたとしても、 復号処理によって、対応する秘密鍵の所有者がメッセージを暗号化した本人であるかどうかが確認されます。
デジタル署名作成の第 2 段階では、この公開鍵と秘密鍵のリバース・アプリケーションを活用します。 ある文書でダイジェスト・コードが計算された後、そのダイジェスト・コードは送信者の秘密鍵で暗号化されます。 その結果がデジタル署名であり、メッセージの最後に添付されます。