三重DES(3DES)加密步骤
3DES 本质是DES 算法三次迭代,标准模式为 DES-EDE(加密-解密-加密),分组长度64bit,密钥分双密钥(128bit)、三密钥(192bit) 两种,下面分整体流程、分步操作、核心规则说明。
一、基础前提
- 分组:明文按 64比特(8字节) 分组,不足则填充补齐。
- 密钥规则(主流两种):
- 3密钥模式:(各56bit有效密钥,总192bit)
- 2密钥模式:(总128bit,最常用)
- 运算顺序:E(加密) → D(解密) → E(加密)(DES-EDE 标准)
二、完整加密步骤(单组64bit明文)
设:
- :64bit 明文分组
- :最终64bit 密文分组
- :用密钥对做DES加密
- :用密钥对做DES解密
步骤1:第一次 DES 加密
使用密钥 对明文 加密:
步骤2:第二次 DES 解密
使用密钥 对中间结果 解密:
步骤3:第三次 DES 加密
使用密钥 对中间结果 加密,得到最终密文:
合并公式:
三、两种常用密钥组合写法
-
三密钥 3DES(192bit) 互不相同,执行上述三步。
-
双密钥 3DES(128bit,工业主流) 强制 ,公式简化为:
四、完整数据加密全流程(多组明文)
-
明文预处理 原始明文按 8字节(64bit) 切分分组,最后一组长度不足时,按 PKCS7/PKCS5 规则填充。
-
逐组执行 3DES-EDE 对每一个64bit分组,依次执行「加密→解密→加密」三步运算。
-
拼接输出 将所有分组的密文按顺序拼接,得到最终整体密文(常转十六进制/Base64 输出)。
五、补充:对应解密步骤(反向)
解密是加密逆过程,顺序反转、加解密互换:
六、关键说明
- 为什么用 E-D-E 而非 E-E-E? 保证向下兼容单DES:令 ,3DES 等价于标准 DES。
- 每个DES子过程内部,仍遵循DES原生规则:初始置换、16轮Feistel迭代、逆初始置换。
- 3DES 只是多次调用DES,未改变DES分组结构与轮函数。
注意:本文归作者所有,未经作者允许,不得转载