是否有完全安全的加密算法?

信息安全 加密
2021-08-09 19:32:49

是否有一种完全安全且不基于复杂计算算法的加密算法?

如果存在这样的算法,为什么我们不在SSL / SSH中使用它?

4个回答

是的,它被称为One Time Pad,我们不在 SSL/TLS 中使用它,因为密钥交换在规模上存在问题。

我要指出的是,随着各种类型存储设备价格的快速下降,One Time Pad 用于电子邮件等小型通信现在比以往任何时候都更加实用,这仅仅是因为给某人一个大容量的东西的成本几年前,实际上并不存在带有大“垫”的 USB 闪存驱动器。尽管如此,随着价格接近零,这变得微不足道。随着存储成本继续接近于零,这对于未来的各种用途可能会变得更加有用,但密钥交换问题仍然存在。

唯一可以实现的理论算法是OTP,一次性填充。

请参阅问题One Time Pad (OTP) 如何完全安全?.

由于以下几个原因,我们不会在任何常见的事情上使用它:

  • 它的安全性取决于我们要传输的数据一样多的真正随机数据,并且随机数据已经安全地发送给双方,并且永远不会被重复使用。

    • 这是不可能的,因为我们实际上并没有真正的随机数据。

    • 即使使用几乎随机的数据,这很难获得并且需要以尽可能公正的方式对现实世界的某些方面进行采样,这也是非常昂贵的——4 GB 的密钥来观看 4 GB 的安全视频。

    • 每个发送器/接收器对都应该有独立的随机数据。

  • 它本身不提供任何数据完整性功能,而我们的许多其他算法和实现却提供。

    • @CodesInChaos 提到多项式 MAC 可以与 OTP 结合使用以提供此功能

我们确实在一些罕见的情况下使用 OTP,但通常只为一种更常见的算法发送密钥。

事实上,一次性密本 (OTP) 加密技术是唯一经过验证的牢不可破的加密系统。它使用简单,只使用XOR操作,而且非常安全,如果操作正确,密文实际上是不可破解的。

不利的一面是,它需要大量预共享数据,这些数据会在您加密数据时用完。当你用完时,如果你想继续与那个人交流,你必须分享更多的这些数据。

该预共享数据是用于加密和解密的密钥。如果有人要拦截您和目标人之间的消息,他们可能无法获取您的明文,但如果他们可以阻止该消息到达您的目标,并且以您不知道的方式这样做的,他们可以彻底打断你的沟通渠道。

作为一次性密钥的扩展,目前很少使用但可能会流行的未来技术是量子密钥分发

基本思想是,您可以通过量子通道发送一次性垫,其中任何测量都会影响信号,因此可以检测到任何窃听。因此,如果您没有检测到异常读数,则说明没有人在窃听并且通信通道是安全的。这仍然不能解决识别问题,因此在单独使用时很容易受到中间人攻击,但如果双方已经共享秘密,则可以用来生成任意大的一次性密码。