关于防止DPA攻击的des算法

最近工作上需要改进des算法,以达到防止DPA攻击的目的。网上找到了一篇相关的文章,于是就按照这篇文章去修改,但是修改之后des算法,加解密结果一直不对,很是纳闷,明明是严格按照文章上讲的流程来修改的。后来纠结了好久,才发现原来有个地方文章讲错了,改了这个地方就能得到正确的加解密结果,看来有时候不能完全相信别人,要有自己的思考与理解才行。现把文章中错误的地方记录如下。
文章中所说的修改流程如下图所示,这是完全没有问题的。文章中对下图中的一些数据作这样的注释:
(1)X为8字节的随机数;
(2)X1 = IP(X),其中IP为初始置换;
(3)X10-31为X的低32 bits,X132-63为X的高32 bits;
(4)X2 = EP(X132-63),其中EP为扩展置换;
(5)SM-box(A) = S-box(A^X2) ^ P-1(X10-31^X132-63)。
上述的5点说明,错在第3点,其实应该是这样:X10-31为X1的低32 bits,X132-63为X1的高32 bits。只有这样才能得出正确的加解密结果。从以下流程图上分析,也很容易得出这个结论:X10-31和X132-63都是X经过IP置换之后得到的,而不是IP置换之前。

关于防止DPA攻击的des算法
在这里插入图片描述

posted @ 2020-07-30 20:23  萌萌哒程序猴  阅读(54)  评论(0编辑  收藏  举报