暗号化と署名は 2 つの異なるシステムです。いくつかの点で、それらは反対方向に機能します。
公開鍵暗号では、誰でも公開鍵でデータを暗号化できます。暗号化されたメッセージを復号化してデータを回復できるのは、秘密鍵の所有者だけです。
署名を使用すると、秘密鍵の所有者のみがメッセージに署名できます。誰でも公開鍵を使用して、メッセージの署名を検証できます。
公開/秘密鍵についての私の理解では、データは常にベンダーの公開鍵で暗号化され、秘密鍵を使用して復号化されます。
そのとおりです。ただし、これは公開鍵暗号化のみを対象としており、署名などの公開鍵暗号化の他の用途については対象外です。
ただし、メッセージが本当に私からのものであることを検証するために、メッセージのハッシュを計算し、秘密鍵でハッシュを暗号化します (このプロセスは署名とも呼ばれます)。
実際には、このプロセスは署名としてのみ知られるべきです。それを「自分の秘密鍵で暗号化する」と呼ぶのは非常に誤解を招きます。それは実際の動作ではありません。署名と暗号化の両方に使用できる一般的なタイプの鍵 (RSA) が 1 つありますが、RSA でも署名と復号化のメカニズムは異なります。
メッセージが私からのものであることを確認するために、ベンダーは私の公開鍵を使用してハッシュを復号化し、暗号化されていないハッシュと比較します。それらが一致する場合、ベンダーはそれが私からのものであると確信できます。
それはあまり正しくありません。多くの署名アルゴリズムは決定論的ではありません。署名の検証は、署名プロセスを逆にすることによって行われるのではなく、署名、メッセージ、および鍵を含む若干異なる計算を行うことによって行われます。
では、なぜ私の秘密鍵がメッセージの暗号化に使用され、公開鍵はどのようにメッセージを復号化できるのでしょうか? 非対称キーではそれができないと思いました..! つまり、公開鍵は常に暗号化し、秘密鍵は常に復号化します。どんな説明でも大歓迎です..!
秘密鍵は、メッセージを暗号化するためではなく、署名するために使用されます。公開鍵は、署名されたメッセージを復号化するためではなく、検証するために使用されます。