“对称加密算法”,这是一种相对应用得比较早的加密算法之一,其技术也是比较成熟的。
在执行对称加密时,数据发出方将需要明文(之前的文章中有解释)和加密密钥一起输入至加密算法中进行处理,使之变成更为复杂的加密密文,之后再将密文发布出去。
如果接收密文的一方需要解读接收到的密文,则需要使用与密文发出方一样的加密密钥,并通过加密的逆运算(解密)验证,才能得到原始的明文数据。
在此过程中,加密和解密使用的密钥是相同的,所以这就是“对称加密算法”名称的由来。
对称加密算法有很多优点,比如加/解密效率较高,加密强度非常可靠等。
当然,它也有着自己的缺点,比如,若他人得到了本该只有发送方和接收方才应该持有的加密密钥,则意味着这种加密方式原有的安全性受到了破坏;并且不得不再设计一套新的加密密钥。
另外,每次使用该加密算法时,用户都需要使用其他人所不知道的唯一密钥,那么如何管理那些曾经使用过的密钥将至关重要,因为随着密钥数量的增加,必然会导致存储上的负担相应的增加。
在区块链中,对称加密算法主要有两种形式:分组加密和序列加密。
虽然都是对称加密算法,但是它们的不同之处在于分组加密会先将明文数据分为几段固定长度的数据块作为基本加密单位,然后再依次对这些数据块进行加密。而序列加密则每次只对一个字节或字符进行加密,且使用的密钥也会不断地发生变化。
在这两种形式的对称加密算法中,有一些比较典型的算法,比如:DES、3DES、IDEA、AES等。
下面,对这几个加密算法进行一个理解:
DES(Data Encryption Standard)采用的是分组加密形式,由美国的IBM公司于1972年研发成功,并于1977年成为了美国数据加密标准。DES是将明文数据按照64bits的方式进行分组,使用长度为64bits的密钥。
虽然DES很经典,但是对于现在的科技是完全可以利用现代的硬件设备和解密算法,通过暴力搜索的方式可以轻易得到经过DES加密前的明文数据。
3DES(Triple),这个就很好理解了,它是将64bits长的数据块进行3次DES加密。虽然进行了3次加密,但是以当下的条件,这种加密方式也被认为不安全了。
IDEA(International Data Encryption Algorithm),这种加密算法是由中国学者朱学嘉博士和著名的密码学家James Massey于1990年联合提出的,之后经过一些修改之后于1992年最后完成。IDEA参考了3DES,其明文数据块和密文数据块的长度都是64bits,只是将密钥的长度增加到了128位。可以是在3DES上的一个升级。
AES(Advance Encryption Standard),算法是由比利时密码学家Joan Daemon和Vincent Rijmen发明的,其最初的名字是Rijindael。这种算法也属于分组算法,其有128bits、192bits和256bits三种长度的分组。这种加密算法的优势就是处理速度快,并且目前尚未找到有效的破解手段。
2000年,NIST(National Institute of Standard and Technology,美国国家标准研究所)经过层层筛选,于15个优秀的加密算法中评出来Rijindael作为AES,标准为EPS-17。随后,NIST取代了DES作为实现对称加密算法中的最新标准。
对称加密算法适用于大量数据的加密和解密过程,但不适用于一些需要签名的场景使用,并且对称加密还需要提前分发好密钥,所以大部分区块链系统中惯用的加密算法都是非对称的。