本发明涉及计算机,尤其涉及一种基于查找表的a2b掩码转换方法、装置、设备、介质和程序产品。
背景技术:
1、掩码是一种保护密码设备抵御侧信道攻击(sca,side channel attack)的一种常用方法。掩码通常分为算术掩码和布尔掩码两个大类,而在不同的密码算法抗sca实现中,往往需要这两种掩码相互转换,基于查找表的算术运算转换为布尔运算(a2b,arithmeticto boolean)转换方法,由于运算速度较快因此得到了广泛的研究。
2、而现有基于查找表的a2b转换方法往往需要一个进位查找表来保护方法中产生的进位,但是随着转换数据位宽的增大,该进位查找表的尺寸也会随之增大,对于资源受限的设备并不友好。
技术实现思路
1、本发明的主要目的在于提供一种基于查找表的a2b掩码转换方法、装置、设备、介质和程序产品,以解决现有掩码转换方法无法满足内存资源受限设备的需求的技术问题。
2、为实现上述目的,本发明实施例第一方面提供一种基于查找表的a2b掩码转换方法,包括:
3、获取迭代过程中处于布尔掩码域的布尔进位值;
4、将处于所述布尔掩码域的布尔进位值转换为处于所述算术掩码域的算术进位值;
5、将处于所述算术掩码域的算术进位值与处于所述算术掩码域的其它中间变量相加,得到相加结果;
6、利用所述相加结果进行下一次迭代,以实现a2b掩码转换。
7、在本发明一实施例中,所述获取迭代过程中处于布尔掩码域的布尔进位值包括:
8、获取迭代过程中处于所述布尔掩码域的布尔共享值d和布尔共享值r。
9、在本发明一实施例中,所述将处于所述布尔掩码域的布尔进位值转换为处于所述算术掩码域的算术进位值包括:
10、从n′比特均匀分布的数据中随机选择一个随机数η;
11、将所述随机数η与所述布尔共享值d进行异或操作,得到第一异或结果;
12、将所述第一异或结果与所述随机数η进行模数为2n′的模减操作,得到第一模减结果;
13、将所述第一模减结果与所述布尔共享值d进行异或操作,得到第二异或结果;
14、将所述随机数η与所述布尔共享值r进行异或操作,得到第三异或结果;
15、将所述第三异或结果与所述布尔共享值d进行异或操作,得到第四异或结果;
16、将所述第四异或结果与所述第三异或结果进行模数为2n′的模减操作,得到第二模减结果;
17、将所述第二模减结果与所述第二异或结果进行异或操作,得到第五异或结果,所述第五异或结果表示所述布尔共享值d对应的处于算术掩码域的算术进位值temp。
18、在本发明一实施例中,所述将处于所述算术掩码域的算术进位值与处于所述算术掩码域的其它中间变量相加,得到相加结果包括:
19、将预先输入的数据与所述布尔共享值r进行模数为2n的模加操作,得到第一模加结果;
20、将所述第一模加结果与所述算术进位值temp进行模数为2n的模加操作,得到第二模加结果,所述第二模加结果表示所述相加结果。
21、在本发明一实施例中,所述将处于算术掩码域的所述值与处于算术掩码域的其它中间变量相加,得到相加结果之后,还包括:
22、生成一个服从均匀分布的k比特的随机数r;
23、生成一个服从均匀分布的1比特的随机数ρ;
24、从0开始遍历k位临时中间变量m的所有2k个可能取值;
25、在每次的迭代中,将所述中间变量m与所述随机数r的模加结果与所述随机数ρ和所述随机数r的拼接结果进行异或操作,得到第六异或结果,将k+1比特的所述第六异或结果存储在以所述中间变量m的值为地址的查找表t中。
26、在本发明一实施例中,所述利用所述相加结果进行下一次迭代,以实现a2b掩码转换包括:
27、从nk比特均匀分布的数据中随机选择一个输入数;
28、将每次迭代生成的随机数r进行拼接,得到第一拼接结果,并将所述输入数与所述第一拼接结果进行模数为2nk的模减操作,得到第三模减结果,所述第三模减结果和所述布尔共享值r均包括n段数据,每段数据均为k比特,n和k均为不小于0的整数,n=0,1,2,...,n-1;
29、从0开始遍历k位临时中间变量m的所有2k个可能取值;
30、在每次迭代中,将所述第三模减结果中段数最小的段数据和所述布尔共享值r中段数最小的段数据进行模数为2(n-m)k的模加运算,得到第三模加结果,将所述第三模加结果中段数最小的段数据作为所述查找表t的地址输入,得到输出结果,将第k比特的输出结果与所述布尔共享值r中段数最小的段数据进行异或操作,得到第七异或结果,将所述第三模加结果右移k比特,得到右移结果,将所述相加结果加在所述右移结果上,得到本次关于所述第三模加结果的迭代结果,将所述布尔共享值r右移k比特,得到本次关于所述布尔共享值r的迭代结果,本次关于所述第三模加结果的迭代结果作为下一次迭代的第三模加结果进行迭代,本次关于所述布尔共享值r的迭代结果作为下一次迭代的布尔共享值r进行迭代;
31、将n次迭代得到的所述第七异或结果依次拼接,得到第二拼接结果,并将所述第二拼接结果与所述第一拼接结果进行异或操作,得到处于所述算术掩码域的算术共享值。
32、本发明实施例第二方面提供一种基于查找表的a2b掩码转换装置,包括:
33、获取模块,用于获取迭代过程中处于布尔掩码域的布尔进位值。
34、转换模块,用于将处于所述布尔掩码域的布尔进位值转换为处于所述算术掩码域的算术进位值。
35、相加模块,用于将处于所述算术掩码域的算术进位值与处于所述算术掩码域的其它中间变量相加,得到相加结果。
36、迭代模块,用于利用所述相加结果进行下一次迭代,以实现a2b掩码转换。
37、在本发明一实施例中,所述获取模块,具体用于获取迭代过程中处于所述布尔掩码域的布尔共享值d和布尔共享值r。
38、在本发明一实施例中,所述转换模块包括:
39、随机选择模块,用于从n′比特均匀分布的数据中随机选择一个随机数η;
40、第一异或模块,用于将所述随机数η与所述布尔共享值d进行异或操作,得到第一异或结果;
41、第一模减模块,用于将所述第一异或结果与所述随机数η进行模数为2n′的模减操作,得到第一模减结果;
42、第二异或模块,用于将所述第一模减结果与所述布尔共享值d进行异或操作,得到第二异或结果;
43、第三异或模块,用于将所述随机数η与所述布尔共享值r进行异或操作,得到第三异或结果;
44、第四异或模块,用于将所述第三异或结果与所述布尔共享值d进行异或操作,得到第四异或结果;
45、第二模减模块,用于将所述第四异或结果与所述第三异或结果进行模数为2n′的模减操作,得到第二模减结果;
46、第五异或模块,用于将所述第二模减结果与所述第二异或结果进行异或操作,得到第五异或结果,所述第五异或结果表示所述布尔共享值d对应的处于算术掩码域的算术进位值temp。
47、在本发明一实施例中,所述相加模块包括:
48、第一模加模块,用于将预先输入的数据与所述布尔共享值r进行模数为2n的模加操作,得到第一模加结果;
49、第二模加模块,用于将所述第一模加结果与所述算术进位值temp进行模数为2n的模加操作,得到第二模加结果,所述第二模加结果表示所述相加结果。
50、在本发明一实施例中,所述装置还包括:
51、第一生成模块,用于生成一个服从均匀分布的k比特的随机数r;
52、第二生成模块,用于生成一个服从均匀分布的1比特的随机数ρ;
53、第一遍历模块,用于从0开始遍历k位临时中间变量m的所有2k个可能取值;
54、第一迭代模块,用于在每次的迭代中,将所述中间变量m与所述随机数r的模加结果与所述随机数ρ和所述随机数r的拼接结果进行异或操作,得到第六异或结果,将k+1比特的所述第六异或结果存储在以所述中间变量m的值为地址的查找表t中。
55、在本发明一实施例中,所述迭代模块,用于包括:
56、选择模块,用于从nk比特均匀分布的数据中随机选择一个输入数;
57、第三模减模块,用于将每次迭代生成的随机数r进行拼接,得到第一拼接结果,并将所述输入数与所述第一拼接结果进行模数为2nk的模减操作,得到第三模减结果,所述第三模减结果和所述布尔共享值r均包括n段数据,每段数据均为k比特,n和k均为不小于0的整数,n=0,1,2,...,n-1;
58、第二遍历模块,用于从0开始遍历k位临时中间变量m的所有2k个可能取值;
59、第二迭代模块,用于在每次迭代中,将所述第三模减结果中段数最小的段数据和所述布尔共享值r中段数最小的段数据进行模数为2(n-m)k的模加运算,得到第三模加结果,将所述第三模减结果中段数最小的段数据作为所述查找表t的地址输入,得到输出结果,将第k比特的输出结果与所述布尔共享值r中段数最小的段数据进行异或操作,得到第七异或结果,将所述第三模加结果右移k比特,得到右移结果,将所述相加结果加在所述右移结果上,得到本次关于所述第三模加结果的迭代结果,将所述布尔共享值r右移k比特,得到本次关于所述布尔共享值r的迭代结果,本次关于所述第三模加结果的迭代结果作为下一次迭代的第三模加结果进行迭代,本次关于所述布尔共享值r的迭代结果作为下一次迭代的布尔共享值r进行迭代;
60、异或模块,用于将n次迭代得到的所述第七异或结果依次拼接,得到第二拼接结果,并将所述第二拼接结果与所述第一拼接结果进行异或操作,得到处于所述算术掩码域的算术共享值。
61、在本发明一实施例中,该基于查找表的a2b掩码转换装置用于抵御侧信道攻击。
62、本发明的第三方面提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得一个或多个处理器执行上述基于查找表的a2b掩码转换方法。
63、本发明的第四方面还提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行上述基于查找表的a2b掩码转换方法。
64、本发明的第五方面还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述基于查找表的a2b掩码转换方法。
65、根据本发明实施例,本发明提供的基于查找表的a2b掩码转换方法、装置、设备、介质和程序产品,获取迭代过程中处于布尔掩码域的布尔进位值,将处于该布尔掩码域的布尔进位值转换为处于该算术掩码域的算术进位值,将处于该算术掩码域的算术进位值与处于该算术掩码域的其它中间变量相加,得到相加结果,利用该相加结果进行下一次迭代,无需进位查找表来保护产生的进位,从而省去了整个进位查找表,继而避免随着转换数据位宽的增大进位查找表的尺寸也会随之增大,降低了内存开销。