漫游对称加密算法( 三 )
四、对称加密算法 3DES
三重 DES (triple-DES) 是为了增加 DES 强度,所以将 DES 重复 3 次得到的一种算法 。也称为 TDEA (Triple Data Encryption Algorithm),通常缩写为 3DES 。
(一) 加密
3DES 加密就是进行 3 次 DES 加密 。DES 密钥长度为 56 位,所以 3DES 密钥长度为 56 * 3 = 168 位 。

文章插图
不过 3DES 有一个“奇怪”的地方,并不是用 DES 加密 3 次,而是加密-解密-加密,中间有一次解密的过程 。IBM 公司之所以这么设计,目的是为了让三重 DES 能兼容普通的 DES 。如果三重加密中密钥都完全相同,那么就退化成了普通的 DES 了 。(加密一次解密一次就抵消了)所以也就具备了向下兼容性 。

文章插图
- 如果 3 次都用相同的密钥,则退化成了 DES 。
- 如果第一次和第三次用相同的密钥,第二次用不同的密钥,这种三重 DES 称为 DES-EDE2。EDE 是加密(Encryption) -> 解密(Decryption) -> 加密(Encryption) 的缩写 。
- 如果 3 次都用不同的密钥,则称 DES-EDE3 。

文章插图
(二) 解密
3DES 解密的过程和加密的过程正好相反,按照密钥的逆序解密 。

文章插图
(三) 缺点
3DES 由于处理速度不高,除了兼容之前的 DES 以外,目前基本不再使用它了 。
五、对称加密算法 AES 和 Rijndael
AES (Advanced Encrytion Standard) 是取代前任标准 DES 而成为新标准的一种对称密码算法 。在全世界的范围内征集 AES 加密算法,最终于 2000 年从候选中选出了 Rijndael 算法,确定它为新的 AES 。
1997 年开始征集 AES,1998 年满足条件并最终进入评审的有 15 个算法:CAST-256、Crypton、DEAL、DFC、E2、Frog、HPC、LOK197、Magenta、MARS、RC6、Rijndael、SAFER+、Serpent、Twofish 。2000 年 10 月 2 日,Rijndael 并定位 AES 标准 。AES 可以免费的使用 。
Rijndael 的分组长度和密钥长度可以分别以 32 位比特为单位在 128 比特到 256 比特的范围内进行选择 。不过在 AES 的规范中,分组长度被固定在 128 比特,密钥长度只有 128、192 和 256 比特三种 。
(一) 加密
AES 的加密也是由多个轮组成的,分为 4 轮,SubBytes、ShiftRows、MixColumns、AddRoundKey 这 4 步,即 SPN 网络 。
1. SubBytes 字节变换
Rijndael 的输入分组默认为 128 比特,也就是 16 字节 。第一步需要对每个字节进行 SubBytes 处理 。以每个字节的值(0-255之间的任意值)为索引,从一张拥有 256 个值的替换表 S-Box 中查找出对应的值进行处理 。

文章插图
经过 SubBytes 变换以后,左边 16 个字节(128 个比特)都变换成右边的 16 个字节 。
2. ShiftRows 移行操作
这一步以 4 字节为单位的行 row 进行左移操作,且每一行平移的字节数不同 。

文章插图
移动以后,每一行都“错位”了 。
3. MixColumns 混行操作
这一步以 4 字节为单位的列 column 进行矩阵运算 。

文章插图
经过这一步变换以后,每一列和之前的列都不同了 。
4. AddRoundKey 异或运算
将上一步的输出与轮密钥进行 XOR,即进行 AddRoundKey 处理 。

文章插图
如上图,左边 16 字节每个字节一次与轮密钥对应位置上的字节进行异或运算,计算完成以后得到最终的密文 。
到这里为止,是一轮 Rijndael 结束 。
完成的一轮解密如下图:

文章插图
一般整个算法要进行 10-14 轮计算 。
推荐阅读
- 华为WLAN无线漫游配置
- 对称密码——DES加密算法
- RSA加密原理&密码学&HASH
- 简述对称加密和非对称加密
- 周杰伦|周杰伦300多万NFT被黑客盗走 上链加密艺术就这?
- 在电脑上直接生成MD5值
- 接口数据使用了RSA加密和签名?
- shell脚本明文不安全,这样做,两步安全加密
- 对称加密算法之王 AES
- 通信安全:哈希、加密、证书、签名、密钥协商、ECDH、TLS、DTLS