公開鍵と秘密鍵の仕組みについて理解を深めようとしています。送信者が自分の秘密鍵を使用して文書にデジタル署名を追加し、基本的に文書のハッシュを取得することは理解していますが、公開鍵を使用してその署名を検証する方法がわかりません。
私の理解では、公開鍵は暗号化し、秘密鍵は復号化するのですが、誰か理解を助けてくれませんか?
ベストアンサー1
データ/メッセージの暗号化については、「公開鍵は暗号化し、秘密鍵は復号化する」というあなたの理解は正しいです。デジタル署名の場合は逆です。デジタル署名では、あなたが署名した文書があなたから来たものであることを証明しようとします。そのためには、あなただけが持っているもの、つまり秘密鍵を使用する必要があります。
デジタル署名を最も簡単に説明すると、データ (ファイル、メッセージなど) のハッシュ (SHA1、MD5 など) であり、その後署名者の秘密鍵で暗号化されます。これは署名者だけが持つ (または持つべき) ものであるため、そこから信頼が生まれます。署名者の公開鍵には誰でもアクセスできます (またはアクセスできるはずです)。
したがって、デジタル署名を検証するには、受信者は
- 同じデータ(ファイル、メッセージなど)のハッシュを計算します。
- 送信者の公開鍵を使用してデジタル署名を復号化し、
- 2 つのハッシュ値を比較します。
一致した場合、署名は有効であるとみなされます。一致しない場合は、署名に別のキーが使用されたか、データが変更(意図的または意図せずに)されたことを意味します。