关于 3DES算法 以及 CBC模式 的加密过程原理图,可参考书籍:图解密码技术 - 结城浩(她的个人网站)
需要注意的是,这里有两个更底层的过程没拿出来讲,那就是 DES 单元运算(加密 和 解密),后面会另发一篇文章专门展示。
加密数据 111111111111111122222222222222223333333333333333
秘钥 112233445566778899887766554433221234567887654321
一
ICV 0000000000000000
DATA 1111111111111111
ICV 异或 DATA = A
密文分组一
DATA A
KEY 1122334455667788
KEY 加密 DATA = B( 05 E9 DC D7 52 67 84 26 )
密文分组二
DATA B
KEY 9988776655443322
KEY 解密 DATA = C( D6 1E 81 FE 78 52 12 1E )
密文分组三
DATA C
KEY 1234567887654321
KEY 加密 DATA = D( 93 C7 17 C3 7D 4F 46 E6 )
结论一:D = 最终加密结果的密文分组一
二
ICV D
DATA 2222222222222222
ICV 异或 DATA = E
密文分组一
DATA E
KEY 1122334455667788
KEY 加密 DATA = F( 8C 3E D7 6A A7 91 75 A2 )
密文分组二
DATA F
KEY 9988776655443322
KEY 解密 DATA = G( CE 2F 78 06 11 09 B1 A5 )
密文分组三
DATA G
KEY 1234567887654321
KEY 加密 DATA = H( D6 35 94 E2 27 28 92 27 )
结论二:H = 最终加密结果的密文分组二
三
ICV H
DATA 3333333333333333
ICV 异或 DATA = Y
密文分组一
DATA Y
KEY 1122334455667788
KEY 加密 DATA = J( AE 40 E5 C3 47 23 17 0E )
密文分组二
DATA J
KEY 9988776655443322
KEY 解密 DATA = K( 34 F5 49 7E A3 9F AE F3 )
密文分组三
DATA K
KEY 1234567887654321
KEY 加密 DATA = L( 75 B5 F9 1F 8E D7 80 AA )
结论三:L= 最终加密结果的密文分组三
最终,输出结果为:结论一的密文分组 拼上 结论二的密文分组 拼上 结论三的密文分组
即 93C717C37D4F46E6D63594E22728922775B5F91F8ED780AA