用于二进制字的提取和插入的设备和方法与流程

文档序号:24648583发布日期:2021-04-13 16:30阅读:61来源:国知局
用于二进制字的提取和插入的设备和方法与流程
用于二进制字的提取和插入的设备和方法
1.相关申请的交叉引用
2.本申请要求于2019年10月11日提交的法国申请第1911349号的权益,该申请通过引用并入于此。
技术领域
3.本公开一般涉及电子系统、电路和方法,并且更具体地涉及被配置为对二进制字执行计算方法和电子设备(诸如例如,处理器)。本公开更具体地涉及被配置为对被掩码的数据值进行处理的方法和设备。


背景技术:

4.在被配置为对二进制字执行计算的各种设备中,处理器是存在于许多电子系统和电路中的电子部件,这些电子系统和电子部件被配置为通过执行来自计算机程序的命令和指令来对数据值进行处理。
5.在一些情况下,处理器可能必须对秘密数据值进行处理。这些秘密数据值通常例如通过掩码来加密。
6.希望的是能够至少部分改进被配置为对二进制字执行计算的已知设备的某些方面。


技术实现要素:

7.存在针对被配置为在二进制字上执行计算的更多可靠设备的需要。
8.存在针对被配置为在二进制字上执行计算的设备的需要,该二进制值被配置为对被掩码数据值进行处理。
9.存在针对被配置为在二进制字上执行计算的设备的需要,该二进制值被配置为对被掩码数据值进行处理,而无需实施对这些数据值进行解掩码的操作。
10.一个实施例解决了被配置为在二进制字上执行计算的已知设备的缺点中的全部缺点或一些缺点。
11.一个实施例解决了被配置为在被掩码数据值上进行处理的已知处理器的缺点中的全部缺点或一些缺点。
12.一个实施例提供了一种用于处理被掩码二进制数据值的方法,其由被配置为在二进制数据值上执行计算的设备实现,该方法包括用于提取第一被掩码二进制数据值的第一部分、并且将其插入第二被掩码二进制数据值中的操作,其中第一被掩码二进制数据值和第二被掩码二进制数据值在所有处理过程中都保持被掩码。
13.根据一个实施例,该方法不包括针对第一被掩码二进制数据值和第二被掩码二进制数据值进行任何解掩码操作。
14.根据一个实施例,通过仅包括算术运算的掩码操作来掩码第一被掩码二进制数据值和第二被掩码二进制数据值。
15.根据一个实施例,掩码操作是其中将待掩码的数据值添加到掩码以便获得被掩码数据值的操作。
16.根据一个实施例,第三二进制数据值是提取和插入操作的结果,第三二进制数据值是由第三掩码所掩码的数据值。
17.根据一个实施例,第二被掩码二进制数据值是通过对所有位都等于“0”的二进制数据值执行掩码操作来获得的。
18.根据一个实施例,第二被掩码二进制数据值等于在掩码操作期间所使用的第二掩码。
19.根据一个实施例,第三被掩码二进制数据值z_m由以下算式给出:
20.z_m[n-1;0]=(z_m[n-1;p+1]*2
p+1
+cb(p+m)*2
p
+b_m[p+m-1;m])mod2
n
[0021]
其中:
[0022]
-“
+”代表加法运算;
[0023]
-“
mod”代表取模运算;
[0024]-n代表第三被掩码二进制数据值z_m的位数目,n为自然整数;
[0025]-p为介于0与n-1之间的自然整数;
[0026]-m为介于0与n-p之间的自然整数;
[0027]-p[i;j]代表二进制数据值p的从第i位到第j位的所有位;i和j为自然整数;
[0028]-cb(i)代表在导致第一被掩码数据值的掩码操作期间可以出现的第i位的进位数字;
[0029]-b_m代表第一被掩码数据值,
[0030]-进位数字cb(i+1)由以下算式给出,i为小于或等于n的自然整数:
[0031][0032]
其中mb代表与第一被掩码二进制数据值相关联的第一掩码,以及
[0033]
与第三被掩码二进制数据值相关联的第三掩码mz由以下算式给出:
[0034]
mz[n-1;0]=(mz[n-1;p+1]*2
(p+1)
+cb(m)+mb[p+m-1;m])mod2
n
[0035]
根据一个实施例,第三被掩码二进制数据值x_m由以下算式给出:
[0036]
x_m[n-1;0]=(z_m[n-1;p+1]*2
p+1
+cb(p+m)*2
p
+b_m[p+m-1;m]-cb(m))mod2
n
[0037]
其中
[0038]
-“
+”代表加法运算;
[0039]
-“
mod”代表取模运算;
[0040]-n代表第三被掩码二进制数据值x_m的位数目,n为自然整数;
[0041]-p为介于0与n-1之间的自然整数;
[0042]-m为介于0与n-p之间的自然整数;
[0043]-p[i;j]代表二进制数据值p的从第i位到第j位的所有位;i和j为自然整数;
[0044]-cb(i)代表在导致第一被掩码数据值的掩码操作期间可以出现的第i位的进位数字;
[0045]-b_m代表第一被掩码数据值,
[0046]-进位数字cb(i+1)由以下算式给出,i为小于或等于n的自然整数:
[0047][0048]
其中mb代表与第一被掩码二进制数据值相关联的第一掩码,以及
[0049]
与第三掩码二进制数据值相关联的第三掩码mx由以下算式给出:
[0050]
mx[n-1;0]=(mx[n-1;p+1]*2
(p+1)
+mb[p+m-1;m])mod2
n
[0051]
根据一个实施例,第三被掩码二进制数据值f_m由以下算式给出:
[0052]
f_m[n-1;0]={(e_m[n-1;k+p]+cef(k+p))*2^((k+p))+(d_m[m+p-1;m]+me[k+p-1;k]-md[m+p-1;m]+ce(k)-cd(k))*2^k+e_m[k-1;0]}mod2^n
[0053]
其中:
[0054]
-“
+”代表加法运算;
[0055]
-“
mod”代表取模运算;
[0056]-n代表第三被掩码二进制数据值x_m的位数目,n为自然整数;
[0057]-p为介于0与n-1之间的自然整数;
[0058]-m为介于0与n-p之间的自然整数;
[0059]-k为介于0与n-p之间的自然整数;
[0060]-p[i;j]代表二进制数据值p的从第i位到第j位的所有位;i和j为自然整数;
[0061]-cef(i)代表第i位的进位数字校正;
[0062]-cd(i)代表在导致第一被掩码数据值的掩码操作期间可以出现的第i位的进位数字;
[0063]-cd(i)代表导致第二被掩码数据值的、在掩码操作期间可以出现的第i位的进位数字;
[0064]-d_m代表第一被掩码数据值;
[0065]-md代表与第一被掩码数据值相关联的掩码;
[0066]-e_m代表第二被掩码数据值;以及
[0067]-me代表与第二被掩码数据值相关联的掩码,
[0068]
进位数字cd(i+1)由以下算式给出:
[0069][0070]
进位数字ce(i+1)由以下算式给出:
[0071][0072]
进位数字校正cef(i)由以下算式给出:
[0073][0074]
与第三二进制数据值相关联的第三掩码等于与第二被掩码数据值相关联的掩码。
[0075]
根据权利要求5所述的方法,其中第三被掩码二进制数据值f_m由以下算式给出:
[0076]
f_m[n-1;0]
[0077]
={e_m[n-1;k+p]*2
(k+p)
+(d_m[m+p-1;m]+me[k+p-1;k]-md[m+p-1;m]+ce(k)-cd(k))*2
k
+e_m[k-1;0]}mod2
n
[0078]
其中:
[0079]
-“
+”代表加法运算;
[0080]
-“
mod”代表取模运算;
[0081]-n代表第三被掩码二进制数据值x_m的位数目,n为自然整数;
[0082]-p为介于0与n-1之间的自然整数;
[0083]-m为介于0与n-p之间的自然整数;
[0084]-k为介于0与n-p之间的自然整数;
[0085]-p[i;j]代表二进制数据值p的从第i位到第j位的所有位;i和j为自然整数;
[0086]-c(i)代表在导致第一被掩码数据值的掩码操作期间可以出现的第i位的进位数字;
[0087]-cd(i)代表导致第二被掩码数据值的、在掩码操作期间可以出现的第i位的进位数字;
[0088]-d_m代表第一被掩码数据值;
[0089]-md代表与第一被掩码数据值相关联的掩码;
[0090]-e_m代表第二被掩码数据值;以及
[0091]-me代表与第二被掩码数据值相关联的掩码,
[0092]
进位数字cd(i+1)由以下算式给出:
[0093][0094]
进位数字ce(i+1)由以下算式给出:
[0095][0096]
与第三二进制数据值相关联的第三掩码mf由以下算式给出:
[0097]
mf[n-1;0]=me[n-1;0]-cef(k+p)*2
k+p
[0098]
其中cef(i)代表由以下算式给出的第i位i的进位数字校正:
[0099][0100]
根据一个实施例,第三被掩码二进制数据值i_m由以下算式给出:
[0101]
i_m[n-1;0]={(h_m[n-1;k+p]-ch(k+p))*2
(k+p)
+(g_m[m+p-1;m]-cg(m)+cg(m+p)*2
p
)*2
k
+(h_m[k-1;0]+ch(k)*2
k
)}mod2
n
[0102]
其中:
[0103]
-“
+”代表加法运算;
[0104]
-“
mod”代表取模运算;
[0105]-n代表第三被掩码二进制数据值x_m的位数目,n为自然整数;
[0106]-p为介于0与n-1之间的自然整数;
[0107]-m为介于0与n-p之间的自然整数;
[0108]-k为介于0与n-p之间的自然整数;
[0109]-p[i;j]代表二进制数据值p的从第i位到第j位的所有位;i和j为自然整数;
[0110]-cg(i)代表在导致第一被掩码数据值的掩码操作期间可以出现的第i位的进位数字;
[0111]-ch(i)代表导致第二被掩码数据值的掩码操作期间可以出现的第i位的进位数字;
[0112]-g_m代表第一被掩码数据值;
[0113]-g_m代表第二被掩码数据值;以及
[0114]
进位数字cg(i+1)由以下算式给出:
[0115][0116]
进位数字ch(i+1)由以下算式给出:
[0117][0118]
与第三被掩码二进制数据值相关联的第三掩码mi由以下算式给出:
[0119]
mi[n-1;0]=mh[n-1;k+p]*2
p+k
+mg[m+p-1;m]*2
k
+mh[k-1;0]
[0120]
其中:
[0121]-其中mg代表与第一被掩码二进制数据值相关联的掩码;以及
[0122]-其中mh代表与第二被掩码二进制数据值相关联的掩码。
[0123]
根据一个实施例,第三被掩码二进制数据值i_m由以下算式给出:
[0124]
i_m[n-1;0]={h_m[n-1;k+p]*2
(k+p)
+(g_m[m+p-1;m]+cg(m+p)*2
p
)*2
k
+(h_m[k-1;0]+ch(k)*2
k
)}mod2
n
[0125]
其中
[0126]
-“
+”代表加法运算;
[0127]
-“
mod”代表取模运算;
[0128]-n代表第三被掩码二进制数据值x_m的位数目,n为自然整数;
[0129]-p为介于0与n-1之间的自然整数;
[0130]-m为介于0与n-p之间的自然整数;
[0131]-k为介于0与n-p之间的自然整数;
[0132]-p[i;j]代表二进制数据值p的从第i位到第j位的所有位;i和j为自然整数;
[0133]-cg(i)代表在导致第一被掩码数据值的掩码操作期间可以出现的第i位的进位数字;
[0134]-ch(i)代表导致第二被掩码数据值的掩码操作期间可以出现的第i位的进位数字;
[0135]-g_m代表第一被掩码数据值;
[0136]-g_m代表第二被掩码数据值;以及
[0137]
进位数字cg(i+1)由以下算式给出:
[0138][0139]
进位数字ch(i+1)由以下算式给出:
[0140][0141]
与第三被掩码二进制数据值相关联的第三掩码mi由以下算式给出:
[0142]
mi[n-1;0]=(mh[n-1;k+p]+ch(k+p))*2
p+k
+(mg[m+p-1;m]+cg(m))*2
k
+)mh[k-1;0]
[0143]
其中:
[0144]-其中mg代表与第一被掩码二进制数据值相关联的掩码;以及
[0145]-其中mh代表与第二被掩码二进制数据值相关联的掩码。
[0146]
另一实施例提供了一种设备,该设备被配置为对通过先前所公开的掩码操作所掩码的二进制数据值执行计算,该设备被配置为进行先前所公开的方法。
[0147]
一种电子设备,包括如先前所公开的设备。
附图说明
[0148]
在对以下参考附图通过示例而非限制的方式给出的特定实施例的描述中,对前述特征和优点以及其他特征进行详细描述,其中
[0149]
图1以框图形式示意性地示出了处理器的一个实施例;
[0150]
图2示意性地示出了用于处理被掩码二进制数据值的方法的一个实施例;
[0151]
图3示意性地示出了用于处理被掩码二进制数据值的方法的另一实施例;
[0152]
图4示意性地示出了用于处理被掩码二进制数据值的方法的另一实施例;
[0153]
图5示意性地示出了用于处理被掩码二进制数据值的方法的另一实施例。
具体实施方式
[0154]
在各个附图中,相似的特征已经由相似的附图标记指定。具体地,各个实施例之间所共有的结构特征和/或功能特征可以具有相同的附图标记并且可以设置相同的结构特性、尺寸特性、以及材料特性。
[0155]
为了清楚起见,仅对用于理解本文中所描述的实施例的操作和元件进行了说明和描述。
[0156]
除非另有说明,否则当提及连接在一起的两个元件时,这表示没有导体以外的任何中间元件的直接连接;并且当提及耦合在一起的两个元件时,这表示这两个元件可以连接或者它们可以经由一个或多个其他元件耦合。
[0157]
在以下公开中,除非另有说明,否则当提及诸如术语“前”、“后”、“顶部”、“底部”、“左”、“右”等之类的绝对位置限定词或诸如术语“上方”、“下方”、“上部”、“下部”等之类的相对位置限定词或诸如“水平”、“垂直”等之类的方位限定词时,参考图中所示的方位。
[0158]
除非另有说明,否则表达“左右”、“近似”、“基本上”和“大约”表示在10%以内,优选地,在5%以内。
[0159]
在本公开的其余部分中,考虑了数据值、被掩码数据值和掩码,它们都是例如具有n个位的二进制字,n为自然整数。使用以下记号法:
[0160]-p[m;k]指定二进制字p的从第k位到第m位的位集合,m和k为小于或等于n的自然整数,严格上讲,m大于k;
[0161]-p[m]指定二进制字p的具有位数为第m位的位。
[0162]
图1以框图形式非常示意性地图示了处理器10(cpu)的实施例。处理器尤其可以接收数据值,并且将其供应给数据值所属的电子设备的电子部件,例如,存储器。作为变型,处理器10可以是被配置为对二进制字执行计算的任何实体,例如,被配置为执行密码学计算的电子设备。
[0163]
处理器10尤其被配置为处理数据值,尤其是被掩码数据值。处理器接收被掩码数据值data_in及其掩码mask_in作为输入,并且提供被掩码数据值data_out及其掩码mask_out作为输出。
[0164]
通过实现算术类型的掩码,输入数据值data_in或输出数据值data_out分别使用掩码mask_in和mask_out进行掩码。算术类型的掩码是仅包括算术运算而非逻辑运算的掩码。在本文中所描述的情况下,算术掩码是其中掩码被添加到待掩码的数据值的加性掩码。作为一个示例,掩码和待掩码的数据值是尺寸相等的二进制字。根据一种变型,掩码和待掩码的数据值是尺寸不同的二进制字。更具体地,被掩码数据值a_m由以下算式给出:
[0165]
a_m=(a+ma)mod2
n
[0166]
其中:
[0167]-a代表要掩码的数据值;
[0168]-ma代表掩码;
[0169]
-“
+”代表加法运算;
[0170]
-“
mod”代表取模运算;以及
[0171]-n是组成待掩码的数据值a、掩码ma和被掩码数据值a_m的位数目。
[0172]
处理器10被配置为通过向被掩码数据值data_in及其掩码mask_in应用不同操作
(例如,加、减、补1运算、或通过提取数据值部分并且将这些部分插入其他数据值来处理数据值的操作)来对它们进行处理。关于图2至图5公开了由处理器10所执行的提取和插入操作的实施例。
[0173]
图2示意性地图示了处理被掩码数据值的方法的实施例,该方法包括以下操作:提取数据值部分并且将这些部分插入其他数据值中,该操作由关于图1所公开的处理器10进行。关于图2所公开的提取和插入操作是具有“通过掩码补偿”的提取和插入操作。
[0174]
关于图2所公开的实施例是针对零数据值中的二进制字(也就是说,所有位都等于“0”的二进制字)的一部分的提取和插入操作的特定情况。向零数据值应用关于图1所公开的类型的掩码操作所提供的被掩码数据值等于与所提供的被掩码数据值相关联的掩码。
[0175]
为了说明该实施例的操作,考虑了两个被掩码数据值b_m和z_m及其掩码mb和mz。被掩码数据值b_m是由掩码mb对数据值b进行的关于图1所公开的加性掩码操作的结果。被掩码数据值z_m是由掩码mz对数据值z进行的关于图1所公开的加性掩码操作的结果,因此,数据值z_m最初等于掩码mz。在本文中所公开的情况下,构成数据值b_m、b、z_m以及掩码mb和mz的二进制字全部是具有n个位的二进制字,n为自然整数。
[0176]
在提取和插入操作期间,提取一部分数据值(在本文中所图示的情况下,被掩码数据值b_m的一部分b1_m),然后将其插入到第二数据值(在本文中所公开的情况下,数据值z_m)中。由于数据值b_m是具有掩码mb的被掩码数据值,所以还提取掩码mb的一部分mb1,然后将其插入到掩码mz中。该部分mb1在掩码mb中具有与被掩码数据值b_m中的部分b1m相同的位置。
[0177]
更具体地,从被掩码数据值b_m中提取的部分b1_m是具有与被掩码数据值b_m从第m位到第m+p-1位的位相对应的p个位的二进制字,p为小于或等于n的自然整数,m为介于0与n-p之间的自然整数。同样,从掩码mb提取的部分mb1是具有与掩码mb从第m位到第m+p-1位的位相对应的p个位的二进制字。
[0178]
根据一个实施例,部分b1_m被插入到数据值z_m中,并且对数据值z_m的p+1位进行修改。作为示例,对数据值z_m的低权重的p+1位进行修改,但是作为一个变型,p+1个经修改的位可以在数据值z_m中的任何位置中。当p+1个经修改的位是低权重的位时,数据值z_m由以下算式给出:
[0179]
z_m[n-1;0]=(z_m[n-1;p+1]*2
p+1
+cb(p+m)*2
p
+b_m[p+m-1:m])mod2
n
[0180]
其中cb(i)代表第i位的进位数字,其可以在导致数据值的、使用掩码mb对数据值b进行的关于图1所公开的掩码操作期间出现,i为介于1与n之间的整数。
[0181]
进位数字cb(i+1)由以下算式给出:
[0182][0183]
部分mb1被插入到掩码mz中,并且对掩码mz的p+1位进行修改。作为示例,对掩码mz的低权重的p+1个位进行修改,但是作为一个变型,p+1个经修改的位可以在掩码mz中的任何位置。掩码mz的p+1个经修改的位位于与数据值z_m的p+1个经修改的位相同的位置。当p+1个经修改的位为低权重的位时,掩码mz由以下算式给出:
[0184]
mz[n-1;0]=(mz[n-1;p+1]*2
(p+1)
+cb(m)+mb[p+m-1;m])mod2
n
[0185]
提取和插入操作具有“通过掩码进行补偿”,由于进位数字cb(m)被添加到掩码mz,所以进位数字将要由掩码补偿。关于图3公开了一种其中进位数字以不同方式进行补偿的变型。
[0186]
被掩码数据值z_m和掩码mz使得可以再次找到零数据值:
[0187]
z[n-1;0]=(z_m[n-1;0]-mz[n-1;0])mod2
n
[0188]
然后,数据值z由以下简化算式给出:
[0189]
z[n-1;0]=b[m+p-1;m]
[0190]
该实施例的一个优点在于,关于图2所公开的提取和插入操作不包括用于对被掩码数据值b_m进行解掩码的步骤。因此,在该操作期间,无法访问数据值b。
[0191]
该实施例的另一优点在于,它使得可以在用于被掩码数据值的掩码之间增加分集。
[0192]
图3示意性地图示了被掩码数据值的处理方法的另一实施例,该方法包括由关于图1所公开的处理器10所进行的提取和插入操作。关于图3所公开的提取和插入操作是具有“通过被掩码数据值进行补偿”的提取和插入操作。
[0193]
关于图3所公开的操作与关于图2所公开的操作类似。不再对两个操作所共享的元件进行描述。
[0194]
为了说明本实施例的操作,考虑了被掩码数据值b_m及其掩码mb以及被掩码数据值x_m及其掩码mx。被掩码数据值x_m是由掩码mx对零数据值x进行的关于图1所公开的加性掩码操作的结果,因此,数据值x_m最初等于掩码mx。组成被掩码数据值x_m和掩码mx的二进制字是具有n个位的二进制字。
[0195]
本文中考虑的是,提取被掩码数据值b_m的部分b1_m,然后将其插入到中性数据值x_m中。还提取掩码mb的部分mb1,然后将其插入到掩码mx中。
[0196]
如图2一样,从被掩码数据值b_m提取的部分b1_m是具有与被掩码数据值b_m从第m位到第m+p-1位的位相对应的p个位的二进制字。同样,从掩码mb提取的部分mb1是具有与掩码mb从第m位到第m+p-1位的位相对应的p个位的二进制字。
[0197]
本文中所公开的提取和插入操作具有“对被掩码数据值进行补偿”,因此,导致在数据值b_m的使用掩码mb进行的加性掩码操作期间可以出现的位数为第m位的进位数字cb(m)被补偿在被掩码数据值x_m上而不在掩码mx上。
[0198]
在这种情况下,被掩码数据值x_m由以下算式给出:
[0199]
x_m[n-1;0]=(x_m[n-1;p]*2
p+1
+cb(p+m)*2
p
+b_m[p+m-1;m]-cb(m))mod2
n
[0200]
掩码mx由以下算式给出:
[0201]
mx[n-1;0]=(mx[n-1;p+1]*2
(p+1)
+mb[p+m-1;m])mod2
n
[0202]
如图2一样,在插入被掩码数据值b_m及其掩码mb之前,被掩码数据值x_m及其掩码mx相等。在该操作之后,二进制字x_m[n-1;p-1]和mx[n-1;p-1]。在由上文所给出的算式定义的被掩码数据值x_m和掩码mx之后,也就是说,在插入操作之前,可以通过应用以下算式对数据值x_m进行解掩码,来再次找到数据值x:
[0203]
x[n-1;0]=x_m[n-1;0]-mx[n-1;0]
[0204]
然后,数据值x由以下算式给出:
[0205]
x[n-1;0]=b[m+p-1;m]
[0206]
该实施例的一个优点在于,关于图2所公开的提取和插入操作不包括用于对被掩码数据值b_m进行解掩码的步骤。因此,在该操作期间,无法访问数据值b。
[0207]
该实施例的另一优点在于,它可以与掩码不是可修改数据值的掩码数据值一起使用。
[0208]
图4示意性地图示了用于处理被掩码数据值的方法的另一实施例,该方法包括由关于图1所公开的处理器10所进行的提取和插入操作。
[0209]
关于图4所公开的实施例是比关于图2和图3所公开的情况更一般的情况。的确,在关于图4所公开的情况下,提取了第一被掩码数据值的一部分。然后将其插入到另一被掩码数据值中。
[0210]
为了说明该实施例的操作,考虑了三个被掩码数据值d_m、e_m和f_m。被掩码数据值d_m、e_m、f_m分别是分别由掩码md、me、mf分别对数据值d、e、f进行的关于图1所公开的加性掩码操作的结果。数据值d_m、d、e_m、e、f_m、f和掩码md、me和mf全部都是具有n个位的二进制字。
[0211]
在关于图4所公开的提取和插入操作中,提取被掩码数据值d_m的一部分d1_m,然后将其插入到被掩码数据值e_m中,以便形成最终被掩码数据值f_m。根据一个实施例,与被掩码数据值f_m相关联的掩码mf等于与数据值e_m相关联的掩码me。关于图5公开了其中掩码mf不同的变型。
[0212]
更具体地,从被掩码数据值d_m提取的部分d1_m是具有与被掩码数据值d_m从第m位到第m+p-1位的位相对应的p个位的二进制字,p为小于或等于n的自然整数,m为介于0与n-p之间的自然整数。
[0213]
根据一个实施例,将部分d1_m插入到被掩码数据值e_m中,以便形成被掩码数据值f_m,并且更具体地,对被掩码数据值e_m从第k位到第k+p-1位的p个位进行修改,以便形成被掩码数据值f_m,k为从0到n-p的自然整数。如关于图2和图3所公开的,提取和插入操作可以具有“对掩码进行补偿”或“对被掩码数据值进行补偿”。
[0214]
本文中所公开的提取和插入操作旨在生成被掩码数据值f_m,以使对通过具有掩码mf的被掩码数据值f_m进行解掩码而获得的数据值f等于数据值e,其中在数据值e的第k位和第k+p-1位之间插入数据值d从第m位到第m+p-1位的p个位的数据值。
[0215]
在具有“对被掩码数据值进行补偿”的提取和插入操作的情况下,被掩码数据值f_m随后由以下算式给出:
[0216]
f_m[n-1;0]=((e_m[n-1;k+p]+cef(k+p)*2(
k+p)
+d_m[m+p-1;m]+me[k+p-1;k]-md[m+p-1;m]+ce(k)-cd(k))*2
k
+e_m[k-1;0]]mod2
n
[0217]
其中:
[0218]-cef(i)代表如下定义的第i位的进位数字校正,i为介于1与n之间的整数;
[0219]-ce(i)代表导致被掩码数据值e_m的、在使用掩码me进行的加性掩码操作期间可以出现的第i位的进位数字;以及
[0220]-cd(i)代表导致被掩码数据值d_m的、在使用掩码md进行的加性掩码操作期间可以出现的第i位的进位数字。
[0221]
进位数字ce(i+1)由以下算式给出:
[0222][0223]
进位数字cd(i+1)由以下算式给出:
[0224][0225]
进位数字校正cef(i+1)取决于进位数字ce(i+1)和进位数字cf(i+1),并且由以下算式给出:
[0226][0227]
在具有“对被掩码数据值进行补偿”的操作的情况下,与被掩码数据值f_m相关联的掩码mf严格地等于与数据值e_m相关联的掩码me。
[0228]
在提取和插入操作具有“对掩码进行补偿”的情况下,则被掩码数据值f_m由以下算式给出:
[0229]
f_m[n-1;0]={e_m[n-1;k+p]*2
(k+p)
+(d_m[m+p-1;m]+me[k+p-1;k]-md[m+p-1;m]+ce(k)-cd(k))*2
k
+e_m[k-1;0])mod2
n
[0230]
掩码mf由以下算式给出:
[0231]
mf[n-1;0]=me[n-1;0]-cef(k+p)*2
k+p
[0232]
在无论是具有“通过掩码进行补偿”还是具有“通过被掩码数据值进行补偿”的提取和插入操作的情况下,上文所定义的算式都可以通过应用以下算式所定义的解掩码操作,来从被掩码数据值f_m和掩码mf中再次找到数据值f:
[0233]
f[n-1;0]=(f_m[n-1;0]-mf[n-1;0])mod2
n
[0234]
这些实施例的一个优点在于,提取和插入操作无需对被掩码数据值d_m、e_m和f_m进行解掩码操作。因此,在该操作期间,无法访问数据值d、e和f。
[0235]
图5示意性地图示了用于处理被掩码数据值的方法的另一实施例,该方法包括关于图1所公开的处理器10所进行的提取和插入操作。
[0236]
关于图5所公开的操作与关于图4所公开的操作类似。不再对两个操作所共有的元件进行描述。
[0237]
为了说明该实施例的操作,考虑了数据值g_m、h_m和i_m及其掩码mg、mh和mi。被掩码数据值g_m、h_m、i_m分别是分别由掩码mg、mh、mi分别对数据值g、hi进行的关于图1所公开的算术掩码操作的结果。组成数据值g_m、g、h_m、h、i_m、i和掩码mg、mh和mi的二进制字全部都是具有n个位的二进制字。
[0238]
在关于图5所公开的提取和插入操作中,提取被掩码数据值g_m的一部分g1_m,然后将其插入到被掩码数据值h_m中,以便形成最终被掩码数据值i_m。根据一个实施例,还提取掩码mg的一部分mg1,然后将其插入到掩码mh中以形成掩码mi。
[0239]
更具体地,部分g1_m和部分mg1分别是具有与掩码mg的被掩码数据值g_m从第m位
到第m+p-1位的位相对应的p个位的二进制字。
[0240]
根据一个实施例,分别将部分g1_m和部分mg1插入到被掩码数据值h_m和掩码mh中,以分别形成被掩码数据值i_m和掩码mi,并且更具体地,分别对掩码mh的被掩码数据值h_m从第k位到第k+p-1位的p个位进行修改,以分别形成被掩码数据值i_m和掩码mi。如关于图2和图3所公开的,提取和插入操作可以具有“对掩码进行补偿”或“对被掩码数据值进行补偿”。
[0241]
本文中所公开的提取和插入操作旨在生成被掩码数据值i_m,使得通过对具有掩码mi的被掩码数据值i_m进行解掩码而获得的数据值i等于数据h,其中在第k位与第k+p-1位之间插入数据值g从第m位到第m+p-1位的p个位的数据值。
[0242]
在具有“对被掩码数据值进行补偿”的提取和插入操作的情况下,被掩码数据值i_m由以下算式给出:
[0243]
i_m[n-1;0]={h_m[n-1;k+p]-ch(k+p))*2
(k+p)
+(g_m[m+p-1;m]-cg(m)+cg(m+p)*2
p
)*2
n
+(h_m[k-1;0]+ch(k)*2
k
)}mod2
n
[0244]
其中:
[0245]-ch(i)代表可能在使用掩码mh进行的、在加性掩码操作期间出现的导致被掩码数据值h_m的第i位的进位数字;以及
[0246]-cg(i)代表可能在使用掩码mg进行的、在加性掩码操作期间出现的导致被掩码数据值g_m的第i位的进位数字。
[0247]
进位数字ch(i+1)由以下算式给出:
[0248][0249]
进位数字cg(i+1)由以下算式给出:
[0250][0251]
在具有“对被掩码数据值进行补偿”的提取和插入操作的情况下,与数据值i_m相关联的掩码mi由以下算式给出:
[0252]
mi[n-1;0]=mh[n-1;k+p]*2
k+p
+mg[m+p-1;m]*2
k
+mh[k-1;0]
[0253]
在具有“对掩码进行补偿”的提取和插入操作的情况下,被掩码数据值i_m由以下算式给出:
[0254]
i_m[n-1;0]={h_m[n-1;k+p]*2
(k+p)
+(g_m[m+p-1;m]+cg(m+p)*2
p
)*2
k
+(h_m[k
[0255]-1;0]+ch(k)*2
k
)}mod2
n
[0256]
在这种情况下,掩码mi由以下算式给出:
[0257]
mi[n-1;0]=(mh[n-1;k+p]+ch(k+p))*2
k
+p+(mg[m+p-1;m]+cg(m))*2
k
+mh[p
[0258]-1;0]mod2
n
[0259]
在无论是具有“通过掩码进行补偿”还是具有“通过被掩码数据值进行补偿”的提取和插入操作的情况下,上文所定义的算式都使得可以通过应用以下算式所定义的解掩码操作,来再次从被掩码数据值i_m和掩码[sic]mi中找到数据值i:
[0260]
i[n-1;0]=(i_m[n-1;0]-mi[n-1;0])mod2
n
[0261]
这些实施例的一个优点在于,提取和插入操作无需针对被掩码数据值g_m、h_m和i_m的解掩码操作。因此,在该操作期间,无法访问数据值g,h和i。
[0262]
已经对各种实施例和变型进行了描述。本领域技术人员应当理解,可以组合这些实施例的某些特征,并且本领域技术人员容易想到其他变型。
[0263]
最后,基于上文所提供的功能描述,在实践上实现本文中所描述的实施例和变型在本领域技术人员的能力之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1