随着时代的发展,我们越来越看重信息安全。我们今天就来了解一下数据加密的手段及它的原理。
首先,在网络上传输数据,想要保证数据的安全,就要对数据进行加密。最基本的,我们能想到的,可能就是电视上侦探片常见的拿一本书,约定好哪个数字对应哪页的哪个个字,通过一串数字就可以传递信息。
那么问题来了,在互联网上,两端的人互相不认识,也不可能千里迢迢的跑到一起专门去约定一下用哪本书,哪个数字代表书上的哪个字,有那个的时间,可以直接面对面的交流嘛,还需要什么加密。那你可能又疑惑,那直接通过网络去沟通密码啊,那问题又回来了,怎么保证你们沟通的过程不被人窃取呢?今天我就来说说要在互联网两端进行安全的信息传输,所使用的常见的加密技术。
我先介绍一下对称加密与非对称加密。顾名思义,对称加密是指密钥在加密端与解密端相同的加密方法,只需将加密过程倒着执行一遍即可得到明文。非对称加密就是加密端与解密端密钥不同的加密方法,明文也不是倒着执行一遍就可以得到的。
常见的对称加密算法有DES、三重DES等,其中DES已经可以通过暴力来破解,虽然也是需要很长时间。但是,有一种加密方法,经证明是无条件安全的,在理论上无法破译。那就是一次性密码本。根据明文长度,产生跟明文长度一样的比特序列(也就是随机的0/1序列),与明文进行异或操作,解密就可以根据密文和随机的比特序列也就是密钥解出密文。一次性密码本是无法被暴力破解的,因为是随机序列,一个个去比对,先不说耗时问题,即使得到正确的明文,你也无法确定它是正确的。
一次性密码本,因为是随机的,会得出很多乱序的内容,也会得出一些看起来正常的内容,你无法确定得到的哪一个是正确的明文。但是一次性密码本这种加密方式无法被实际应用。第一,明文假如有100M,同样的密钥也会有100M大小。并且既然叫一次性密码本,那这个随机序列是不能重用的。因为如果知道了这个随机序列,那之前所有用这个随机序列加密的