web-dev-qa-db-ja.com

受信者の公開鍵を使用してデジタル署名を作成できますか?

私の質問は、受信者の公開鍵を使用してデジタル署名を作成してから、受信者に秘密鍵を使用して署名を検証させることはできますか?

デジタル署名を作成するには、秘密鍵を使用する必要があり、受信者は送信者の公開鍵を使用して検証する必要があるといつも思っていました。ただし、このペーパーの4ページで、著者は、受信者の公開鍵を使用して署名を作成し、受信者が自分の秘密鍵を使用して署名を検証できると述べています(ステップ4および5を参照)。それは送信者が彼がそうであると主張する人であるという証拠を提供しません。

これは論文のURLです。

http://web.archive.org/web/20120916202812/http://www.msba.ca/web/images/mue09-2d-barcode-mobile-payment-final-1.pdf

4
Matthew

はい、可能ですが、ポイントは何でしょうか?ドキュメントについては何も検証しません。署名(わずかに簡略化された)は、ペアのキーの1つを使用した、ドキュメントの安全なハッシュの暗号化にすぎません。秘密鍵は、秘密鍵の所有者だけが署名できることを証明するために使用されます。公開鍵で署名する場合、誰でもドキュメントを変更して署名できるため、何も証明されません。それだけでなく、「署名」を検証できるのは秘密鍵の所有者だけなので、それを使用することは絶対にありません。

論文を読んでも、彼らがプロセスがどのように機能することを期待しているかはわかりませんし、署名という用語が誤って使用されているようです。彼らが説明している可能性が高いのは、公開鍵で暗号化し、サーバーで秘密鍵を使用して復号化することにより、セッションIDを安全なトークンとして保護することです。署名という用語の使用は正しくなく、それらの使用例では必要なセキュリティを提供しません。論文はあまり上手く書かれておらず、他の不適切な言葉のセクションがいくつかあります。台湾出身の著者が1人いるため、英語が原文ではなかったため、翻訳が不十分な論文ではないかと思います。米国の共著者はそれを校正するべきですが、私はその論文をあまり信用しません。

更新:さらに読んで、私は今彼らが論文で言っていることを理解しています。それは非常に言葉の乏しい要約です。彼らは、商人と購入者の両方が鍵ペアを持っているシステムを使用しています。マーチャントは、クライアントがマーチャントからのものであることを確認できる署名付きの請求書を提供します。次に、注文する請求書を含む注文書に署名します。次に、商人はクライアントが購入リクエストに署名したことを確認し、請求書が変更されていないことを確認します。必要と思われるよりも少し複雑ですが、公開キーと秘密キーの適切なインスタンスを取得すると正確です。

6
AJ Henderson