加密技术是衡量安全能力的重要指标。我们现有的加密技术在很大程度上能够抵御外界的暴力破解问题,但是在计算机计算能力不断增长的今天,这些加密手段足够安全吗?

现有加密技术介绍

我们在计算机上进行加密的原理和古代对信息加密的原理相同,它们都涉及到密钥这个概念,原始的消息通过密钥处理,得到加密的消息。与加密对应的关系是解密,即将加密后的消息反转还原的过程。在古代,密钥往往是信息传输双方共同约定的文字,而外界如果想得到这些消息,要么获得密钥信息,要么选择暴力破解。暴力破解意味着第三方需要尝试所有可能的密钥,直到找出正确的那个。

现代的计算机技术将密钥定义为随机的字符串,每个字符占8个比特(这里的比特不是比特币,而是计算机信息量的单位)。例如,一个8字符随机的密钥占64个比特,而一个16字符的密钥占128个比特。和古代破解密钥的方式不同,密钥信息是难以被外界获取的,所以仅存唯一的办法——暴力破解。

打开网易新闻 查看精彩图片

暴力破解密钥的能力

首先,很多破解程序的功能往往被夸大了,这是因为无论程序的计算能力有多强,它都受到数学的约束。事实上,我们每增加一位密钥,就会使暴力破解可能的密钥数量增加一倍,被使得破解所花费的时间加倍,这直接证明,只要密钥足够复杂,就会为暴力破解带来巨大的工作量。

但是,为了保险起见,我们还是从暴力破解的角度分析这个问题。目前,计算速度最快的计算机可以达到每秒300万亿次的计算(被用来挖掘比特币,评估哈希函数)。考虑到挖掘比特币的任务难度远远小于暴力破解的难度,我们假设破解者每秒可以测试一百万兆个密钥。

打开网易新闻 查看精彩图片

现在我们来分析一个64比特的密钥,它可能的排序方式相当于64个2相乘,也约等于一百万兆。因此,现有的高速计算机可以在一秒钟之内暴力破解一个64比特的密钥,这可能会让我们感觉,密钥似乎在现有条件下也不安全。

不过,在上文中我们提过,只要密钥足够复杂,就可以为暴力破解带来巨大的工作量。我们以128比特的密钥为例,一年有3200万秒,3200万是25个2相乘的数值。因此,在计算机一秒破解64比特的密钥的前提下,89比特密钥需要一年时间破解(64和25相加得到89,因为多了25位,所以破解时间会翻25倍)。而一百万年时间,也只能破解109比特密钥(在89比特的基础上再加20位,也就是再翻20倍,而20个2相乘约为一百万)。

打开网易新闻 查看精彩图片

根据这种方式计算,一个常见的128比特密钥需要5000亿年就可以完成暴力破解,而128比特大约是16个字符。尽管考虑摩尔定律,即计算机的速度每两年时间提高一倍,我们也足够保证在2100年之前的这80年中,密钥是很安全的,对现在的加密技术我们不需要过多担心。