假设我有一个4096位的RSA密钥,当我对数据进行签名时,我通常使用SHA-512。据我理解,用于签名/验证消息的哈希算法在消息中指定。如果哈希算法容易发生冲突,那么不管我的RSA密钥有多大,签名都可以伪造。
那么,通过选择MD5作为用于“签名”消息的哈希算法,如何防止某人伪造签名呢?
发布于 2016-02-10 16:35:27
要使用哈希冲突伪造消息,您需要生成一个签名(使用该哈希函数对“好”消息进行签名);然后,该签名也是“坏”消息的有效签名。
因此,为了避免这种情况,您永远不要使用MD5作为您的哈希函数来对消息进行签名。是的,攻击者可以使用相同的MD5哈希生成“好”和“坏”消息,但除非他能够说服您使用MD5签署“好”消息,否则这对他没有帮助。如果您在签名消息时总是使用SHA-512,这意味着攻击者必须在SHA-512哈希函数中找到冲突;我们认为这是不可行的。
https://crypto.stackexchange.com/questions/32638
复制相似问题