3DES

来源:互联网 发布:arm linux gcc 编辑:程序博客网 时间:2024/05/16 02:43

前言

从CSDN上找了个3DES的C实现, 学学算法识别.
好像3DES的实现没有公版实现,看了几个3DES实现,都不相同. 有的人进行了优化.
也有些特征.

看加密算法,不要往下深挖,最好在最上面的接口实现内识别出特征.

3DES实现用了3次DES, 这特征在顶层接口上看的最明显.

加密时:
des_ecb_encrypt(pt, ct, &skey1);
des_ecb_decrypt(ct, pp, &skey2);
des_ecb_encrypt(pp, ct, &skey1);

解密时
des_ecb_decrypt(pt, ct, &skey1);
des_ecb_encrypt(ct, pp, &skey2);
des_ecb_decrypt(pp, ct, &skey1);

如果猜测是3DES, 再去单个DES加密,解密中找DES特征.
看了几个DES实现和3DES实现,实现有优化,不一定相同.
DES优化后,连16轮也不容易看出来.
但是DES的PC1和PC2是有相同特征的.

为了证实是3DES, 可以将Key弄对了,去比对加密解密的结果是否和手头的3DES实现是否相同.

如果和手头的3DES加密解密结果不同,那就不是3DES实现,只能还原算法了.
真心想找到正宗的3DES实现.

试验

srcCipher3DES.zip

0 0
原创粉丝点击