在密码学中,我听说可以使用散列消息来实现完整性,以检查消息是否被修改。但是哈希是如何发送给另一方的呢?也可以更改消息和哈希值,以便其他方看到消息未被修改!!
答案 0 :(得分:1)
单独的哈希不能证明消息没有被篡改,您应该使用您的私钥对哈希进行签名,然后收件人可以使用您的公钥对其进行验证。或者,如果您有共享密钥,则可以使用HMAC对其进行签名。这不能伪造,因为没有其他人拥有您的私钥/密钥。
答案 1 :(得分:1)
为了获得完整性或机密性,您始终需要一些未被篡改的共享数据。此共享数据通常是共享密钥或发件人的公钥。
使用共享密钥,您使用的是HMAC,即hmac(message, key)
。
如果接收方具有发送方公钥,则发送方可以使用其私钥对消息进行签名(许多可能的方法,DSA,RSA等),接收方可以使用公钥来确定消息是否来自发件人。