基于奇偶校验的加密算法错误检测与抗DPA设计
奇偶校验并发错误检测(CED)方法
在SPN对称块密码的加密过程中,奇偶校验并发错误检测(CED)方法能够有效地检测出单固定故障导致的错误。该方法依据SPN轮的处理步骤,逐步修改输入的奇偶性,使得在无错误发生时,修改后的输入奇偶性等于该轮输出的奇偶性。
以四个连续处理步骤为例,在步骤1中,输入x被处理为输出y,输入的奇偶性P(x)被修改为P(x)⊕P(x)⊕P(y)=P(y)。假设在步骤2的硬件实现中发生故障f,导致该步骤的输出变为zf而非正确的输出z(zf≠z),此时奇偶性P(y)会被修正为P(y)⊕P(y)⊕P(z) = P(z)。若故障f导致的错误可通过奇偶性检测,那么P(zf)≠P(z)。在步骤3中,错误输入zf被正确处理为输出uf,奇偶性P(z)被修改为P(z)⊕P(zf)⊕P(uf)。步骤4同理,最终将修改后的奇偶性P(z)⊕P(zf)⊕P(vf)与步骤4输出vf的奇偶性P(vf)进行比较,当P(z) ≠ P(zf)时,就能检测到故障f导致的错误。
加密算法通常满足严格雪崩准则,即加密步骤输入的单比特错误会导致后续加密步骤输出出现多个不同的错误比特。但这一特性对所提出的CED方法的错误检测能力并无影响。
SPN对称块密码的处理步骤包括与轮密钥的逐分量异或、置换和非线性S盒变换。对于与轮密钥的异或操作,异或门的任何单(内部或外部)固定故障都会导致单比特错误,可通过奇偶性检测。对于置换操作,单固定故障也会导致单比特错误,同样能被奇偶性检测。对于16个附加奇偶性的S盒(4个输入和5个输出,其中4个为功能输出,1个为奇偶性修改输出),不同的实现方式对错误检测能力有不同影响:
- 若S盒的所有输出独立实
超级会员免费看
订阅专栏 解锁全文
29

被折叠的 条评论
为什么被折叠?



