消息认证码之所以无法防止否认,是因为消息认证码需要在发送者Alice和接收者Bob两者之间共享同一个密钥。正是因为密钥是共享的,所以能够使用消息认证码计算出正确MAC值的并不只有发送者Alice,接收者Bob也可以计算出正确的MAC值。由于Alice和Bob双方 都能够计算出正确的MAC值,因此对于第三方来说,我们无法证明这条消息的确是Alice生成的。
数字签名对签名密钥和验证密钥进行了区分,使用验证密钥是无法生成签名的。
数字签名和公钥密码有着非常紧密的联系,简而言之,数字签名就是通过将公钥密码“反过来用”而实现的。
RSA
中间人攻击
对数字签名的中间人攻击,具体来说就是主动攻击者Mallory介入发送者和接收者的中间,对发送者伪装成接收者,对接收者伪装成发送者,从而能够在无需破解数字签名算法的前提下完成攻击。
大多数情况下都是计算机程序之间来进行公钥的认证,这个时候就需要使用公钥的“证书”。
2020-05-20