密码学加密算法概述
1、DES加密
DES全称Data Encryption Standard,即数据加密标准,是一种使用密钥加密的块算法。DES算法中密钥key为8个字节64位,但每一个第8位为校验位,不参与运算,所以有效密钥只有56位,Date为8个字节64位,是要被加密或解密的数据;DES采用16轮运算,每轮产生一个轮密钥参与到运算中。密钥与明文运算时采用的是按位异或的方法,而每一位存放的数据只有0和1,因此DES的密钥空间只有2^56。
2、3DES加密
由于密钥太短,DES被破解的可能性非常的大,于是产生了3DES算法。3DES算法也叫三重数据加密算法,使用了48轮运算,安全性更高,但同时3DES完成加密和解密的时间要比DES长3倍,严重影响其性能。3DES的密钥大小为168位,增加了其密钥的长度,空间相比DES提升巨大。
3、AES加密
全称Advanced Encryption Standard,即高级加密标准,又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。AES标准要求分组长度为128位,这个标准用来替代原先的DES,已经被多方分析且广泛被全世界所使用。AES是由所谓的层组成,每一层操纵数据路径对应的所有128位,称为算法状态。AES总共有三种不同类型的层。除了第一轮以外,其他三轮都是由三层组成:明文用X表示,密文用夕表示,轮数用nr表示。此外,最后一轮nr并没有使用MixColumn变换,而这种方式使得解密方案和加密方案正好对称。
4、IDEA加密
全称International Data Encryption Algorithm,即国际数据加密算法,是一种分组密码,它处理了64位数据分组。
5、Blowfish加密
6、RC5加密
7、5.8.RC6加密
8、SM4加密
2006年我国公布了SM4加密算法。这是我国第一次公布自己的商用密码算法。国产SM4算法在计算过程中增加了非线性变换,理论上能大大提高其算法的安全性。
9、SM1加密
尚未公开,仅知密钥长度为128位,其加密强度与AES相当。调用该算法时,需要通过加密芯片的接口进行调用。SM1加密与硬件相关,密钥随机数从硬件计算得来。常用来做国内小额支付/门禁等。
类别 | DES算法 | AES算法 | SM1算法 | SM4算法 |
---|---|---|---|---|
计算基础 | 2进制 | 16进制 | 未公开 | 2进制 |
算法结构 | 使用标准的算法和逻辑运算,先代替后置换,S盒非线性变换 | 字节替换、行代换、列代换、S盒非线性变换 | 未公开 | 基本轮函数加迭代、含非线性迭代 |
加解密算法是否相同 | 是 | 是 | 未公开 | 是 |
计算轮数 | 16轮 | 10轮 | 未公开 | 32轮 |
分组长度 | 64位 | 128位 | 128位 | 128位 |
密钥长度 | 64位 | 128位 | 128位 | 128位 |
有效密钥长度 | 56位 | 128位 | 未公开 | 128位 |
实现难度 | 易于实现 | 易于实现 | 未公开 | 易于实现 |
实现性能 | 软件实现慢 、硬件实现快 | 较高 ,解密比加密效率高 | 未公开 | 软件和硬件实现都快 |
安全性 | 较低 | 较高 | 与AES相当 | 算法较新,国内应用标配 |