密码学系列 | 3.3 执行与安全问题

admin 2022年7月8日17:12:53评论51 views字数 1523阅读5分4秒阅读模式

3.3 Implementation and Security Issues

  本书中我们的主要关注现代密码学背后的数学难题,但我们还是需要简要地提及一些与实现相关的安全问题。这里我们只是简单地描述一些例子,以表明构建一个安全的通信系统远不止是简单地使用基于数学难题的密码系统。

例3.13中间人攻击)。假设 Eve 不仅仅是一个窃听者,她还完全控制着 Alice 和 Bob 的通信网络。在这种情况下,她可以发起所谓的中间人攻击。我们描述了 Diffie-Hellman 密钥交换协议中的这种攻击,但它存在于大多数基于公钥密码的密钥协商协议中。(见练习3.12。)

  回顾一下 Diffie-Hellman 密钥交换协议(见表 2.2),Alice 给 Bob 发送了 ,Bob 给 Alice 发送了 ,其中都是在有限域 下进行的计算。Eve 所需要做的就是先选择自己的秘密指数 ,并计算 。随即他干扰 Alice 和 Bob 间的通信,使得 不能传递到 Bob, 不能传递给 Alice。取而代之的是,他将 发送给两人。注意到此时,Eve 和 Alice 协商的密钥是 ,和 Bob 协商的密钥是 ,并且此时 Alice 和 Bob 都以为自己是在和对方通信。中间人攻击可以简要的用下图说明

密码学系列 | 3.3 执行与安全问题

Figure 3.1: “Man-in-the-middle” attack on Diffie–Hellman key exchange

  假设 Alice 和 Bob 随后使用他们假定的协商密钥作为对称密码的密钥,并相互发送消息。例如,Alice 使用 作为对称密码密钥加密明文消息 。Eve 截获了这条消息,并能够使用 作为对称密码密钥对其进行解密,因此她可以读取 Alice 的消息。然后,她使用 作为对称密钥对其进行加密,并将其发送给 Bob。由于Bob随后能够使用 作为对称密码密钥对其进行解密,因此他不知道存在安全漏洞。

  请注意此攻击的阴险性质。Eve 没有解决底层的数学难题(在本例中,是离散对数问题或Diffie-Hellman问题),但她能够获取 Alice 和Bob的通信内容,并且他们也没有意识到 Eve 的攻击成功。

例 3.14 (RSA Oracle Attack)假设 Eve 能够说服 Alice 使用她的(Alice的)私钥解密 “随机” RSA 消息。这是一个合理的场景,因为 Alice 验证自己作为公钥 所有者身份的一种方法就是表明她知道如何解密消息。(换个场景就是说 Eve 可以访问 RSA oracle。)那么 Eve 就可以利用 Alice 的慷慨来获取所有使用 Alice 公钥加密的消息。流程如下所示。假设 Eve 接收到 Bob 发送给 Alice 的密文 。Eve选择一个随机值 并向Alice发送“消息”

  Alice 解密 并将结果明文 发送给 Eve

  于是 Eve 知道了 的值,并且由于他知道 ,于是他可以立刻计算出 Bob 的明文消息

  有两个重要的结果。首先,Eve 解密了 Bob 的信息,但并不知道如何分解 ,因此与数学问题的难度是无关紧要的。其次,由于 Eve 使用 来影响了 Bob 的密文,Alice 无法判断 Eve 的消息是否与 Bob 的消息有任何关联。因为Alice只看到值 ,与 相比,这两个值至少看起来是随机的。

例 3.15 (共模攻击)假设 Alice 公开了两个不同的公钥指数 ,并使用同一个模数 。并且 Bob 使用两个公钥指数加密了相同的明文 。如果此时 Eve 截获了两段密文,即:

  那么他可以通过解等式

  并用于计算

  如果此时 ,那么 Eve 就恢复明文了(数值示例见练习 3.13)更一般地,如果 Bob 使用多个指数 对单个消息进行加密,如果,则 Eve 可以恢复明文。因此对于给定的模数,Alice 应该最多只能使用一个加密指数对同一个消息进行加密。

原文始发于微信公众号(山石网科安全技术研究院):密码学系列 | 3.3 执行与安全问题

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年7月8日17:12:53
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   密码学系列 | 3.3 执行与安全问题https://cn-sec.com/archives/1166621.html

发表评论

匿名网友 填写信息