4

在 .NET 加密 API 中,我注意到 CspParameters 对象具有KeyNumber可用于指定密钥应该是签名密钥还是交换密钥的属性。

就 RSA 密钥而言,两者之间有什么真正的区别吗?具体来说,如果我使用交换密钥进行签名,生成的密钥是否会使其不适合或不安全地用于该用途?

4

1 回答 1

1

您不应使用交换密钥进行签名。根据MSDN,交换密钥会分发给其他人,以便他们可以加密内容以发送给您。如果他们想对消息进行签名以表明他们发送了它,那么他们将使用自己的私钥(签名密钥)进行签名,并使用您的公钥进行加密。用 Diffie-Hellman 术语来说,如果你用你的公钥签署东西,然后与其他人分发/交换它,他们将能够签署消息,使它们看起来来自你。只需将交换密钥视为您的公共密钥,将签名密钥视为您的私有密钥。

于 2013-03-22T15:02:53.617 回答