发明名称 一种复杂度可变的任意阶掩码防护方法
摘要 本发明公开了一种复杂度可变的任意阶掩码防护方法,以k’个长度为2<sup>k</sup>比特的逻辑函数配置序列S<sub>t</sub>和d个k比特输入共享因子x<sub>1</sub>,x<sub>2</sub>,…,x<sub>d</sub>为输入,得到d个k比特输出共享因子y<sub>1</sub>,y<sub>2</sub>,…,y<sub>d</sub>;其中,S<sub>t</sub>表示原始加密算法中S盒中第t个输出比特对应的逻辑函数配置序列,1≤t≤k’;输入共享因子满足<img file="DDA0001057285820000011.GIF" wi="419" he="47" />输出共享因子满足<img file="DDA0001057285820000012.GIF" wi="592" he="55" />本发明资源开销相对较低,并且资源开销和运行效率可以根据实际应用环境进行调整;可有效对抗任意阶侧信道攻击,安全性高;本发明实用性强,实现简单,可应用于不同的软硬件载体中,可扩展性强。
申请公布号 CN106209347A 申请公布日期 2016.12.07
申请号 CN201610584188.8 申请日期 2016.07.22
申请人 武汉大学 发明人 唐明;郭志鹏;李煜光;李延斌;王蓬勃
分类号 H04L9/06(2006.01)I;H04L9/00(2006.01)I 主分类号 H04L9/06(2006.01)I
代理机构 武汉科皓知识产权代理事务所(特殊普通合伙) 42222 代理人 魏波
主权项 一种复杂度可变的任意阶掩码防护方法,其特征在于,以k’个长度为2<sup>k</sup>比特的逻辑函数配置序列S<sub>t</sub>和d个k比特输入共享因子x<sub>1</sub>,x<sub>2</sub>,…,x<sub>d</sub>为输入,得到d个k比特输出共享因子y<sub>1</sub>,y<sub>2</sub>,…,y<sub>d</sub>;其中,S<sub>t</sub>表示原始加密算法中S盒中第t个输出比特对应的逻辑函数配置序列,1≤t≤k’;输入共享因子满足<img file="FDA0001057285790000011.GIF" wi="211" he="53" /><img file="FDA0001057285790000012.GIF" wi="206" he="53" />输出共享因子满足<img file="FDA0001057285790000013.GIF" wi="565" he="55" />其具体实现包括以下步骤:步骤1:用整数t作为循环变量,初始值为1;步骤2:将S<sub>t</sub>作为输入进行逻辑函数拆分,得到d个逻辑函数配置序列C<sub>1</sub>,C<sub>2</sub>,...,C<sub>d</sub>;用整数i,k作为循环变量,初始值均为1;步骤3:将C<sub>k</sub>和x<sub>i</sub>作为输入进行逻辑函数调整,得到逻辑函数配置序列C’<sub>k</sub>;将循环变量k增加1,即令k=k+1;若k≤n,重复执行步骤3;步骤4:将步骤3中得到的d个逻辑函数配置序列C’<sub>1</sub>,C’<sub>2</sub>,...,C’<sub>d</sub>作为输入进行逻辑函数刷新,并替换原有的C<sub>1</sub>,C<sub>2</sub>,...,C<sub>d</sub>;将循环变量i增加1,即令i=i+1;若i≤n‑1,重复执行步骤3和步骤4;步骤5:用整数j作为循环变量,初始值为1;步骤6:令y<sub>j</sub>的第k个比特等于逻辑函数配置序列C<sub>j</sub>中第x<sub>d</sub>个比特,即令(y<sub>j</sub>)<sub>k</sub>=(C<sub>j</sub>)<sub>xd</sub>;将循环变量j增加1,即令j=j+1;若j≤k’,重复执行步骤6;步骤7:将循环变量t增加1,即令t=t+1;若t≤k,重复执行步骤2‑步骤6;步骤8:输出y<sub>1</sub>,y<sub>2</sub>,…,y<sub>d</sub>。
地址 430072 湖北省武汉市武昌区珞珈山武汉大学