一种在芯片中防差分功率分析攻击的实现方法及装置制造方法及图纸

技术编号:24169789 阅读:46 留言:0更新日期:2020-05-16 02:34
本发明专利技术公开一种在芯片中防差分功率分析攻击的实现方法及装置,该方法包括芯片判断是否存在待处理数据,是则判断第二存储区中的数据长度是否小于预设长度,否则对第二存储区中的数据进行填充,对第二存储区中的数据进行压缩运算,根据压缩运算结果更新第一存储区;当判断第二存储区中的数据长度小于预设长度时将待处理数据存储到第二存储区,返回芯片判断是否存在待处理数据;当判断第二存储区中的数据长度等于预设长度则对第二存储区中的数据进行压缩运算,根据压缩运算结果更新第一存储区,返回芯片判断是否存在待处理数据。该方法可以有效地达到防差分功率分析攻击的目的。

A method and device to prevent differential power analysis attack in chip

【技术实现步骤摘要】
一种在芯片中防差分功率分析攻击的实现方法及装置
本专利技术涉及一种在芯片中防差分功率分析攻击的实现方法及装置。
技术介绍
DPA(DifferentialPowerAnalysis,差分功率分析)攻击技术具有很强的攻击性和解密效率。当芯片在执行不同指令进行各种运算时,对应的功率消耗也相应变化。通过使用特殊的电子测量仪和数学统计技术,来检测和分析这些变化,从而得到芯片中的特定关键信息,攻击者可利用指令的电流变化来分析密码算法和密码,进而达到攻击的效果。
技术实现思路
本专利技术的目的是为了克服现有技术的不足,提供一种在芯片中防差分功率分析攻击的实现方法及装置。本专利技术提供了一种在芯片中防差分功率分析攻击的实现方法,包括:步骤S1:芯片判断是否存在待处理数据,是则执行步骤S2,否则执行步骤S5;步骤S2:所述芯片判断第二存储区中的数据长度是否小于预设长度,是则执行步骤S3,否则执行步骤S4;步骤S3:所述芯片将所述待处理数据存储到第二存储区,返回步骤S1;步骤S4:所述芯片对所述第二存储本文档来自技高网...

【技术保护点】
1.一种在芯片中防差分功率分析攻击的实现方法,其特征在于,包括:/n步骤S1:芯片判断是否存在待处理数据,是则执行步骤S2,否则执行步骤S5;/n步骤S2:所述芯片判断第二存储区中的数据长度是否小于预设长度,是则执行步骤S3,否则执行步骤S4;/n步骤S3:所述芯片将所述待处理数据存储到第二存储区,返回步骤S1;/n步骤S4:所述芯片对所述第二存储区中的数据进行压缩运算,根据压缩运算结果更新第一存储区,返回步骤S1;/n步骤S5:所述芯片对所述第二存储区中的数据进行填充,对所述第二存储区中的数据进行压缩运算,根据压缩运算结果更新所述第一存储区;/n所述对所述第二存储区中的数据进行压缩运算,根据...

【技术特征摘要】
1.一种在芯片中防差分功率分析攻击的实现方法,其特征在于,包括:
步骤S1:芯片判断是否存在待处理数据,是则执行步骤S2,否则执行步骤S5;
步骤S2:所述芯片判断第二存储区中的数据长度是否小于预设长度,是则执行步骤S3,否则执行步骤S4;
步骤S3:所述芯片将所述待处理数据存储到第二存储区,返回步骤S1;
步骤S4:所述芯片对所述第二存储区中的数据进行压缩运算,根据压缩运算结果更新第一存储区,返回步骤S1;
步骤S5:所述芯片对所述第二存储区中的数据进行填充,对所述第二存储区中的数据进行压缩运算,根据压缩运算结果更新所述第一存储区;
所述对所述第二存储区中的数据进行压缩运算,根据压缩运算结果更新第一存储区包括:
步骤R1:所述芯片将符合预设长度的数据存储到所述第二存储区的第一子存储区的前十六个数据中,生成四分之预设长度个数的硬件随机数存储到所述第二存储区的第二子存储区中,将第一子存储区中的前十六个数据分别和与其对应的一个硬件随机数进行异或运算,并将异或运算结果分别更新至所述第一子存储区的前十六个数据中;
步骤R2:所述芯片根据第一子存储区和第二子存储区前十六个数据进行预设操作将结果存储到第一子存储区和第二子存储区的第十七到第六十八个数据中;
步骤R3:所述芯片随机生成八分之预设长度个数的掩码,将所述第一存储区的第一数据至第八数据更新到第一寄存器至第八寄存器中,将所述第一寄存器至第八寄存器中的数据分别和与其对应的一个掩码进行异或运算,并将异或运算结果分别更新至所述第一寄存器至第八寄存器中;
步骤R4:所述芯片更新中间变量,对所述中间变量、第一寄存器至第八寄存器中的数据和各个掩码进行循环移位操作;
步骤R5:所述芯片将所述第一存储区的第一数据、所述第一寄存器中的数据和所述第一掩码进行运算,将结果更新到所述第一存储区的第一数据,按顺序执行上述操作直至将第一存储区的第八数据、第八寄存器中的数据和第八掩码进行运算,将结果更新到第一存储区的第八数据。


2.如权利要求1所述的方法,其特征在于,所述步骤S1之前还包括:所述芯片将第一存储区初始化为第一预设值,将第二存储区初始化为零。


3.如权利要求1所述的方法,其特征在于,所述步骤R2具体包括:
步骤M1:所述芯片将第一计数器的初始值设为17,作为当前计数值j;
步骤M2:所述芯片将第一子存储区的第j-3数据循环左移15位、与第一子存储区的第j-16数据和第j-9数据进行异或运算得到第一运算结果;
步骤M3:所述芯片将所述第一运算结果、所述第一运算结果循环左移15位和所述第一运算结果循环左移23位进行异或运算得到第二运算结果;
步骤M4:所述芯片将所述第二运算结果、第一子存储区的第j-13数据循环左移7位和第一子存储区的第j-6数据进行异或运算得到第j数据,将第j数据存储在第一子存储区的第j位;
步骤M5:所述芯片将第二子存储区的第j-3数据循环左移15位、与第二子存储区的第j-16数据和第j-9数据进行异或运算得到第三运算结果;
步骤M6:所述芯片将所述第三运算结果、所述第三运算结果循环左移15位和所述第三运算结果循环左移23位进行异或运算得到第四运算结果;
步骤M7:所述芯片将所述第四运算结果、第二子存储区的第j-13数据循环左移7位和第二子存储区的第j-6数据进行异或运算得到第j数据,将第j数据存储在第二子存储区的第j位;
步骤M8:所述芯片对当前计数值j进行加1运算,判断当前计数值j是否小于第二预设值,是则返回步骤M2,否则执行步骤R3。


4.如权利要求3所述的方法,其特征在于,所述步骤R4具体包括:
步骤R4-1:所述芯片将第二计数器的初始值设为0,作为当前计数值i;
步骤R4-2:所述芯片将第一寄存器中的数据循环左移12位得到第一临时计算结果,将第一掩码循环左移12位得到第二临时计算结果,使用第一函数对所述第一临时计算结果和所述第二临时计算结果进行运算得到第一中间变量,将所述第二临时计算结果作为掩码形式的第一中间变量;
步骤R4-3:所述芯片使用所述第一函数对第五寄存器中的数据和第五掩码进行运算得到的结果与所述第一中间变量进行算数加运算,将结果更新到所述第一中间变量,将所述掩码形式的第一中间变量与所述第五掩码进行算数加运算,将结果更新到所述掩码形式的第一中间变量;
步骤R4-4:所述芯片将常量Ti左移i位与所述第一中间变量进行算数加运算,将结果更新到所述第一中间变量;
步骤R4-5:所述芯片使用第二函数对所述第一中间变量和所述掩码形式的第一中间变量进行运算得到第三临时计算结果,将所述掩码形式的第一中间变量作为第四临时计算结果,将所述第三临时计算结果循环左移7位更新到所述第一中间变量,将所述第四临时计算结果循环左移7位更新到所述掩码形式的第一中间变量,使用所述第一函数对所述第一中间变量和所述掩码形式的第一中间变量进行运算,将结果更新到所述第一中间变量;
步骤R4-6:所述芯片使用所述第二函数对所述第一中间变量和所述掩码形式的第一中间变量进行运算得到第二中间变量,将所述掩码形式的第一中间变量作为掩码形式的第二中间变量,将所述第二中间变量与所述第一临时计算结果进行与运算,将结果更新到所述第二中间变量,将所述掩码形式的第二中间变量与所述第二临时计算结果进行与运算,将结果更新到所述掩码形式的第二中间变量;
步骤R4-7:所述芯片将所述第一子存储区的第i+1数据和第i+5数据进行与运算得到第五临时计算结果,将所述第二子存储区的第i+1数据和第i+5数据进行与运算得到第六临时计算结果,使用所述第一函数对所述第五临时计算结果和所述第六临时计算结果进行运算,将结果更新到第三中间变量,将所述第六临时计算结果作为掩码形式的第三中间变量;
步骤R4-8:所述芯片使用所述第一函数对所述第二中间变量和所述掩码形式的第二中间变量进行运算,将结果与所述第三中间变量进行算数加运算,将结果更新到所述第三中间变量,将所述掩码形式的第二中间变量与所述掩码形式的第三中间变量进行算数加运算,将结果更新到所述掩码形式的第三中间变量,使用所述第一函数对第四寄存器中的数据和第四掩码进行运算,将结果与所述第三中间变量进行算数加运算,将结果更新到所述第三中间变量,将所述第四掩码与所述掩码形式的第三中间变量进行算数加运算,将结果更新到所述掩码形式的第三中间变量;
步骤R4-9:所述芯片使用第一布尔函数对所述第一寄存器、所述第二寄存器和第三寄存器中的数据进行运算得到第七临时计算结果,使用所述第一布尔函数对所述第一掩码、第二掩码和第三掩码进行运算得到第八临时计算结果,所述芯片使用所述第一函数对所述第七临时计算结果和所述第八临时计算结果进行运算,将结果与所述第三中间变量进行算数加运算,将结果更新到所述第三中间变量,将所述第八临时计算结果与所述掩码形式的第三中间变量进行算数加运算,将结果更新到所述掩码形式的第三中间变量;
步骤R4-10:所述芯片使用第二布尔函数对所述第五寄存器、第六寄存器和第七寄存器中的数据进行运算得到第九临时计算结果,使用所述第二布尔函数对所述第五掩码、第六掩码、第七掩码进行运算得到第十临时计算结果,使用所述第一函数对所述第九临时计算结果和所述第十临时计算结果进行运算,将运算结果作为第四中间变量,将所述第十临时计算结果作为掩码形式的第四中间变量;
步骤R4-11:所述芯片使用所述第一函数对所述第八寄存器中的数据和所述第八掩码进行计算,将结果与所述第四中间变量进行算数加运算,将结果更新到所述第四中间变量,将所述第八掩码与所述掩码形式的第四中间变量进行算数加运算,将结果更新到所述掩码形式的第四中间变量;
步骤R4-12:所述芯片将所述第一中间变量与所述第四中间变量进行算数加运算,将结果更新到所述第四中间变量,将所述掩码形式的第一中间变量与所述掩码形式的第四中间变量进行算数加运算,将结果更新到所述掩码形式的第四中间变量;
步骤R4-13:所述芯片使用所述第一函数将所述第一子存储区的第i+1数据与所述第二子存储区的第i+1数据进行运算,将结果与所述第四中间变量进行算数加运算,将结果更新到所述第四中间变量,将所述第二子存储区的第i+1数据与所述掩码形式的第四中间变量进行算数加运算,将结果更新到所述掩码形式的第四中间变量;
步骤R4-14:所述芯片进行循环移位操作;
步骤R4-15:所述芯片将计数值i进行加1运算,判断当前计数值是否小于第三预设值,是则返回步骤R4-2,否则执行步骤R5。


5.如权利要求4所述的方法,其特征在于,所述使用第一函数对所述第一临时计算结果和所述第二临时计算结果进行运算得到第一中间变量具体包括:
步骤1:所述芯片使用提取随机数函数对安全参数的地址进行运算得到第五运算结果,将所述第五运算结果作为第一参数;
步骤2:所述芯片将所述第一临时计算结果与所述第一参数进行与运算得到第六运算结果,将所述第六运算结果作为第二参数;
步骤3:所述芯片将所述第二参数与所述第一参数相减得到第七运算结果,将所述第七运算结果更新到所述第二参数;
步骤4:所述芯片将所述第二参数和所述第一临时计算结果进行与运算得到第八运算结果,将所述第八运算结果更新到所述第二参数;
步骤5:所述芯片将所述第一参数与所述第二临时计算结果进行与运算得到第九运算结果,将所述第九运算结果更新到所述第一参数;
步骤6:所述芯片将所述第一临时计算结果与所述第一参数进行与运算得到第十运算结果,将所述第十运算结果作为第三参数;
步骤7:所述芯片将所述第三参数与所述第一参数相减得到第十一运算结果,将所述第十一运算结果更新到所述第三参数;
步骤8:所述芯片将所述第三参数与所述第二参数进行与运算得到第十二运算结果,将所述第十二运算结果更新到所述第三参数,将所述第三参数作为第一中间变量。


6.如权利要求5所述的方法,其特征在于,所述芯片使用第二函数对所述第一中间变量和所述掩码形式的第一中间变量进行运算得到第三临时计算结果具体包括:
步骤A:所述芯片使用所述提取随机数函数对所述安全参数的地址进行运算得到第十三运算结果,将所述第十三运算结果作为所述第一参数;
步骤B:所述芯片将所述第一参数循环左移1位得到第十四运算结果,将所述第十四运算结果作为所述第二参数;
步骤C:所述芯片将所述第一参数和所述掩码形式的第一中间变量进行与运算得到第十五运算结果,将所述第十五运算结果作为第五参数;
步骤D:所述芯片将所述第一参数和所述第五参数进行与运算得到第十六运算结果,将所述第十六运算结果作为第四参数;
步骤E:所述芯片将所述第二参数与第一中间变量进行与运算得到第十七运算结果,将所述第十七运算结果更新到所述第五参数;
步骤F:所述芯片将所述第一参数与所述第五参数进行与运算得到第十八运算结果,将所述第十八运算结果更新到所述第一参数;
步骤G:所述芯片将所述第一参数与所述掩码形式的第一中间变量进行与运算得到第十九运算结果,将所述第十九运算结果更新到所述第一参数;
步骤H:所述芯片将所述第四参数与所述第一参数进行与运算得到第二十运算结果,将所述第二十运算结果更新到所述第四参数;
步骤I:所述芯片将所述第二参数与第一中间变量进行与运算得到第二十一运算结果,将所述第二十一运算结果更新到所述第一参数;
步骤J:所述芯片将所述第四参数和所述第一参数进行与运算得到第二十二运算结果,将所述第二十二运算结果更新到所述第四参数;
步骤K:所述芯片将第三计数器的初始值设为1,作为当前计数值k;
步骤L:所述芯片判断计数值k是否小于31,是则执行步骤M,否则执行步骤S;
步骤M:所述芯片将所述第二参数和所述掩码形式的第一中间变量进行与运算得到第二十三运算结果,将所述第二十三运算结果更新到所述第一参数;
步骤N:所述芯片将所述第一参数和所述第四参数进行与运算得到第二十四运算结果,将所述第二十四运算结果更新到所述第一参数;
步骤O:所述芯片将所述第二参数和第一中间变量进行与运算得到第二十五运算结果,将所述第二十五运算结果更新到所述第二参数;
步骤P:所述芯片将所述第一参数与所述第二参数进行与运算得到第二十六运算结果,将所述第二十六运算结果更新到所述第一参数;
步骤Q:所述芯片将所述第一参数循环左移1位得到第二十七运算结果,将所述第二十七运算结果更新到所述第二参数;
步骤R:所述芯片将计数值k加1,返回步骤L;
步骤S:所述芯片将所述第五参数与所述第二参数进行与运算得到第二十八运算结果,将所述第二十八运算结果更新到所述第五参数,将所述第五参数作为所述第三临时计算结果。


7.如权利要求6所述的方法,其特征在于,所述芯片使用第一布尔函数对所述第一寄存器、所述第二寄存器和第三寄存器中的数据进行运算得到第七临时计算结果具体为:
当计数值i大于等于0且小于等于15时,将所述第一寄存器、所述第二寄存器和所述第三寄存器中的数据进行异或运算得到第七临时计算结果;
当计数值i大于等于16且小于等于63时,将所述第一寄存器与所述第二寄存器中的数据进行与运算的结果、所述第一寄存器与所述第三寄存器中的数据进行与运算的结果和所述第二寄存器与所述第三寄存器中的数据进行与运算的结果进行或运算得到第七临时计算结果。


8.如权利要7所述的方法,其特征在于,所述使用所述第一布尔函数对所述第一掩码、第二掩码和第三掩码进行运算得到第八临时计算结果具体为:
当计数值i大于等于0且小于等于15时,将所述第一掩码、所述第二掩码和所述第三掩码进行异或运算得到第八临时计算结果;
当计数值i大于等于16且小于等于63时,将所述第一掩码与所述第二掩码进行与运算的结果、所述第一掩码与所述第三掩码进行与运算的结果和所述第二掩码与所述第三掩码进行与运算的结果进行或运算得到第八临时计算结果。


9.如权利要求8所述的方法,其特征在于,所述芯片使用第二布尔函数对所述第五寄存器、第六寄存器和第七寄存器中的数据进行运算得到第九临时计算结果具体为:
当计数值i大于等于0且小于等于15时,将所述第五寄存器、所述第六寄存器和所述第七寄存器中的数据进行异或运算得到第九临时计算结果;
当计数值i大于等于16且小于等于63时,将所述第五寄存器与所述第六寄存器中的数据进行与运算的结果;所述第五寄存器中的数据进行非运算与所述第七寄存器中的数据进行与运算的结果,将两个结果进行或运算得到第九临时计算结果。


10.如权利要求9所述的方法,其特征在于,所述使用所述第二布尔函数对所述第五掩码、第六掩码、第七掩码进行运算得到第十临时计算结果具体为:
当计数值i大于等于0且小于等于15时,将所述第五掩码、所述第六掩码和所述第七掩码进行异或运算得到第十临时计算结果;
当计数值i大于等于16且小于等于63时,将所述第五掩码与所述第六掩码进行与运算的结果、所述第五掩码进行非运算与所述第七掩码进行与运算的结果,将两个结果进行或运算得到第十临时计算结果。


11.如权利要求10所述的方法,其特征在于,所述步骤R4-14具体包括:
步骤R4-14-1:所述芯片将所述第三寄存器中的数据更新到所述第四寄存器中,所述第二寄存器中的数据循环左移9位更新到所述第三寄存器中,所述第一寄存器中的数据更新到所述第二寄存器中,所述第三掩码作为所述第四掩码,所述第二掩码循环左移9位后作为所述第三掩码,所述第一掩码作为所述第二掩码;
步骤R4-14-2:所述芯片使用所述第二函数对所述第三中间变量和所述掩码形式的第三中间变量进行运算,将结果更新到所述第一寄存器中,将所述掩码形式的第三中间变量作为所述第一掩码;
步骤R4-14-3:所述芯片将所述第七寄存器中的数据更新到所述第八寄存器中,所述第六寄存器中的数据循环左移19位更新到所述第七寄存器中,所述第五寄存器中的数据更新到所述第六寄存器中,所述第七掩码作为所述第八掩码,所述第六掩码循环左移19位后作为所述第七掩码,所述第五掩码作为所述第六掩码;
步骤R4-14-4:所述芯片使用所述第二函数对所述第四中间变量和所述掩码形式的第四中间变量进行运算得到第二十九运算结果,将所述第二十九运算结果、所述第二十九运算结果循环左移9位的结果和所述第二十九运算结果循环左移17位的结果进行异或运算,将结果更新到所述第五寄存器中,将所述掩码形式的第四中间变量、所述掩码形式的第四中间变量循环左移9位的结果、所述掩码形式的第四中间变量循环左移17位的结果进行异或运算,将结果更新到所述第五掩码。


12.一种在芯片中防差分功率分析攻击的装置,其特征在于,包括:
第一判断模块,用于判...

【专利技术属性】
技术研发人员:陆舟于华章
申请(专利权)人:飞天诚信科技股份有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1