在密码学中,我听说可以使用散列消息来检查消息是否被修改来实现完整性。但是那个哈希是怎么发送给对方的呢?也可以更改消息和哈希值,这样对方就会看到消息没有被修改!
问问题
263 次
2 回答
2
为了获得完整性或机密性,您总是需要一些未被篡改的共享数据。该共享数据通常是共享密钥或发送者的公钥。
使用共享密钥,您将使用HMAC,即hmac(message, key)
.
如果接收者拥有发送者的公钥,那么发送者可以使用他们的私钥对消息进行签名(许多可能的方法,DSA、RSA 等),接收者可以使用公钥来确定消息是否来自发送者。
于 2013-10-17T15:17:45.107 回答
1
单独的哈希并不能证明消息没有被篡改,您还应该使用您的私钥对哈希进行签名,然后收件人可以使用您的公钥对其进行验证。或者,如果你们都拥有共享密钥,则可以使用 HMAC 对其进行签名。这不能伪造,因为没有其他人拥有您的私钥/密钥。
于 2013-10-17T10:24:54.637 回答