gpt4 book ai didi

security - 数字签名 VS.信息摘要

转载 作者:行者123 更新时间:2023-12-02 19:34:59 27 4
gpt4 key购买 nike

我有消息(m),我想在通过不安全的方式发送消息后存储一些数据以验证其完整性..

我可以创建数字签名(DSA/RSA)。

  • S(m) = m 的数字签名。

或者我可以计算摘要(哈希)并对其进行加密。

  • H(m) = m 的摘要
  • C( H(m) ) = H(m) 的加密数据

无论如何,当接收者收到消息时应该验证其完整性。

哪种方法更安全 S(m) 或 C( H(m) )?

更新

假设 Alice 想向 Bob 发送消息

使用数字签名:

爱丽丝的部分:

  • 使用她的私钥计算 S(m)
  • 将 m、S(m) 和她的公钥发送给 Bob

鲍勃的部分:

  • Bob 收到 S(m)、m 和 Alice 的公钥
  • Bob 使用 m 和 Alice 的 key 验证 S(m)。

使用摘要:

爱丽丝的部分:

  • 使用 Bob 的公钥计算 C( H(m) )
  • 将 C( H(m) ) 和 m 发送给 Bob

鲍勃的部分:

  • 使用他的私钥 (d) 解密 C( H(m) )
  • 计算 H(m)
  • 验证 m 的完整性 ( H(m) = d )

我看到一个软件使用我发布的第二种方法,但我认为第一种方法更安全,对吗?

更新2

总之,最好的方法是使用第一种方法,以安全的方式与 Bob 共享 Alice 的公钥。

第二种方法根本不提供安全性。

感谢@Perseids

最佳答案

它们都不起作用。

第一个攻击: Eve 发动中间人攻击并拦截 Alice 发送的所有消息。她没有转发 m,而是转发 n。她没有使用 Alice 的私钥在 m 上进行签名,而是使用她的私钥在 n 上转发签名。她向鲍勃发送了她的公钥,而不是爱丽丝的公钥。鲍勃永远不会看到差异,因为他事先不知道爱丽丝的公钥。

攻击第二个:拦截来自 Alice 的所有消息(并将它们扔掉)并创建与 Alice 相同的消息,但使用 n 而不是 。别忘了假装是爱丽丝。

问题的根源在于鲍勃需要对爱丽丝到底是谁有某种了解。如果你只知道“比尔·盖茨”的名字,那么我很容易冒充他。数字签名的标准假设是鲍勃从安全来源知道爱丽丝的公钥,或者他们之前已经通过安全通道交换了公钥。然后鲍勃可以根据爱丽丝的已知良好的公钥检查爱丽丝的签名。

关于security - 数字签名 VS.信息摘要,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25018871/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com