Skip to main content

数据加密算法

3DES介绍

  • 3DES(或称为Triple DES)是三重数据加密算法(TDEA,Triple Data Encryption Algorithm)块密码的通称。它相当于是对每个数据块应用三次DES加密算法。由于计算机运算能力的增强,原版DES密码的密钥长度变得容易被暴力破解;3DES即是设计用来提供一种相对简单的方法,即通过增加DES的密钥长度来避免类似的攻击,而不是设计一种全新的块密码算法。

加解密过程

  • 设Ek()和Dk()代表DES算法的加密和解密过程,K代表DES算法使用的密钥,M代表明文,C代表密文,这样:
  • 3DES加密过程为:C=Ek3(Dk2(Ek1(M)))
  • 3DES解密过程为:M=Dk1(EK2(Dk3(C)))
  • K1、K2、K3决定了算法的安全性,易百采用K1等于K3,并且使用ECB/NoPadding填充模式。

加密举例

设pinKey为: 9D93D15D6A3913AB4151C456A80841EF,则:

K1 = 9D93D15D6A3913AB
K2 = 4151C456A80841EF
K3 = 9D93D15D6A3913AB

原始数据M表示HEX为:3132333435363738,加密如下:

DES1_RESULT = Ek(M,K1)
DES2_RESULT = Dk(DES1_RESULT,K2)
C = Ek(DES2_RESULT,K3)

最终加密结果C为:C63AABF759BDE968

解密举例

设pinKey为: 9D93D15D6A3913AB4151C456A80841EF,则:

K1 = 9D93D15D6A3913AB
K2 = 4151C456A80841EF
K3 = 9D93D15D6A3913AB

密文数据C表示HEX为:C63AABF759BDE968,解密如下:

DES1_RESULT = Dk(C,K3)
DES2_RESULT = Ek(DES1_RESULT,K2)
M = Dk(DES2_RESULT,K1)

最终解密结果M为:3132333435363738