CN112650470A - 用于二进制字的提取和插入的设备和方法 - Google Patents

用于二进制字的提取和插入的设备和方法 Download PDF

Info

Publication number
CN112650470A
CN112650470A CN202011078321.5A CN202011078321A CN112650470A CN 112650470 A CN112650470 A CN 112650470A CN 202011078321 A CN202011078321 A CN 202011078321A CN 112650470 A CN112650470 A CN 112650470A
Authority
CN
China
Prior art keywords
data value
masked
binary data
given
mask
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202011078321.5A
Other languages
English (en)
Inventor
R·佩拉尔
F·罗曼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
STMicroelectronics Rousset SAS
STMicroelectronics Grenoble 2 SAS
Original Assignee
STMicroelectronics Rousset SAS
STMicroelectronics Grenoble 2 SAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by STMicroelectronics Rousset SAS, STMicroelectronics Grenoble 2 SAS filed Critical STMicroelectronics Rousset SAS
Publication of CN112650470A publication Critical patent/CN112650470A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/76Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
    • G06F7/764Masking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/57Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
    • G06F7/575Basic arithmetic logic units, i.e. devices selectable to perform either addition, subtraction or one of several logical operations, using, at least partially, the same circuitry
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/491Computations with decimal numbers radix 12 or 20.
    • G06F7/492Computations with decimal numbers radix 12 or 20. using a binary weighted representation within each denomination
    • G06F7/493Computations with decimal numbers radix 12 or 20. using a binary weighted representation within each denomination the representation being the natural binary coded representation, i.e. 8421-code
    • G06F7/494Adding; Subtracting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/491Computations with decimal numbers radix 12 or 20.
    • G06F7/492Computations with decimal numbers radix 12 or 20. using a binary weighted representation within each denomination
    • G06F7/493Computations with decimal numbers radix 12 or 20. using a binary weighted representation within each denomination the representation being the natural binary coded representation, i.e. 8421-code
    • G06F7/496Multiplying; Dividing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/727Modulo N arithmetic, with N being either (2**n)-1,2**n or (2**n)+1, e.g. mod 3, mod 4 or mod 5
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/04Masking or blinding
    • H04L2209/046Masking or blinding of operations, operands or results of the operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/122Hardware reduction or efficient architectures

Landscapes

  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Error Detection And Correction (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

本公开的实施例涉及用于二进制字的提取和插入的设备和方法。本公开涉及一种被掩码二进制数据值的处理设备和方法,包括:提取第一被掩码二进制数据值的第一部分并且将其插入第二被掩码二进制数据值,其中在整个处理过程中,第一被掩码二进制数据值和第二被掩码二进制数据值保持均被掩码。

Description

用于二进制字的提取和插入的设备和方法
相关申请的交叉引用
本申请要求于2019年10月11日提交的法国申请第1911349号的权益,该申请通过引用并入于此。
技术领域
本公开一般涉及电子系统、电路和方法,并且更具体地涉及被配置为对二进制字执行计算方法和电子设备(诸如例如,处理器)。本公开更具体地涉及被配置为对被掩码的数据值进行处理的方法和设备。
背景技术
在被配置为对二进制字执行计算的各种设备中,处理器是存在于许多电子系统和电路中的电子部件,这些电子系统和电子部件被配置为通过执行来自计算机程序的命令和指令来对数据值进行处理。
在一些情况下,处理器可能必须对秘密数据值进行处理。这些秘密数据值通常例如通过掩码来加密。
希望的是能够至少部分改进被配置为对二进制字执行计算的已知设备的某些方面。
发明内容
存在针对被配置为在二进制字上执行计算的更多可靠设备的需要。
存在针对被配置为在二进制字上执行计算的设备的需要,该二进制值被配置为对被掩码数据值进行处理。
存在针对被配置为在二进制字上执行计算的设备的需要,该二进制值被配置为对被掩码数据值进行处理,而无需实施对这些数据值进行解掩码的操作。
一个实施例解决了被配置为在二进制字上执行计算的已知设备的缺点中的全部缺点或一些缺点。
一个实施例解决了被配置为在被掩码数据值上进行处理的已知处理器的缺点中的全部缺点或一些缺点。
一个实施例提供了一种用于处理被掩码二进制数据值的方法,其由被配置为在二进制数据值上执行计算的设备实现,该方法包括用于提取第一被掩码二进制数据值的第一部分、并且将其插入第二被掩码二进制数据值中的操作,其中第一被掩码二进制数据值和第二被掩码二进制数据值在所有处理过程中都保持被掩码。
根据一个实施例,该方法不包括针对第一被掩码二进制数据值和第二被掩码二进制数据值进行任何解掩码操作。
根据一个实施例,通过仅包括算术运算的掩码操作来掩码第一被掩码二进制数据值和第二被掩码二进制数据值。
根据一个实施例,掩码操作是其中将待掩码的数据值添加到掩码以便获得被掩码数据值的操作。
根据一个实施例,第三二进制数据值是提取和插入操作的结果,第三二进制数据值是由第三掩码所掩码的数据值。
根据一个实施例,第二被掩码二进制数据值是通过对所有位都等于“0”的二进制数据值执行掩码操作来获得的。
根据一个实施例,第二被掩码二进制数据值等于在掩码操作期间所使用的第二掩码。
根据一个实施例,第三被掩码二进制数据值Z_M由以下算式给出:
Z_M[n-1;0]=(Z_M[n-1;p+1]*2p+1+CB(p+m)*2p+B_M[p+m-1;m])mod2n
其中:
-“+”代表加法运算;
-“mod”代表取模运算;
-n代表第三被掩码二进制数据值Z_M的位数目,n为自然整数;
-p为介于0与n-1之间的自然整数;
-m为介于0与n-p之间的自然整数;
-P[i;j]代表二进制数据值P的从第i位到第j位的所有位;i和j为自然整数;
-CB(i)代表在导致第一被掩码数据值的掩码操作期间可以出现的第i位的进位数字;
-B_M代表第一被掩码数据值,
-进位数字CB(i+1)由以下算式给出,i为小于或等于n的自然整数:
Figure BDA0002717312190000031
其中MB代表与第一被掩码二进制数据值相关联的第一掩码,以及
与第三被掩码二进制数据值相关联的第三掩码MZ由以下算式给出:
MZ[n-1;0]=(MZ[n-1;p+1]*2(p+1)+CB(m)+MB[p+m-1;m])mod2n
根据一个实施例,第三被掩码二进制数据值X_M由以下算式给出:
X_M[n-1;0]=(Z_M[n-1;p+1]*2p+1+CB(p+m)*2p+B_M[p+m-1;m]-CB(m))mod2n
其中
-“+”代表加法运算;
-“mod”代表取模运算;
-n代表第三被掩码二进制数据值X_M的位数目,n为自然整数;
-p为介于0与n-1之间的自然整数;
-m为介于0与n-p之间的自然整数;
-P[i;j]代表二进制数据值P的从第i位到第j位的所有位;i和j为自然整数;
-CB(i)代表在导致第一被掩码数据值的掩码操作期间可以出现的第i位的进位数字;
-B_M代表第一被掩码数据值,
-进位数字CB(i+1)由以下算式给出,i为小于或等于n的自然整数:
Figure BDA0002717312190000041
其中MB代表与第一被掩码二进制数据值相关联的第一掩码,以及
与第三掩码二进制数据值相关联的第三掩码MX由以下算式给出:
MX[n-1;0]=(MX[n-1;p+1]*2(p+1)+MB[p+m-1;m])mod2n
根据一个实施例,第三被掩码二进制数据值F_M由以下算式给出:
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
其中:
-“+”代表加法运算;
-“mod”代表取模运算;
-n代表第三被掩码二进制数据值X_M的位数目,n为自然整数;
-p为介于0与n-1之间的自然整数;
-m为介于0与n-p之间的自然整数;
-k为介于0与n-p之间的自然整数;
-P[i;j]代表二进制数据值P的从第i位到第j位的所有位;i和j为自然整数;
-CEF(i)代表第i位的进位数字校正;
-CD(i)代表在导致第一被掩码数据值的掩码操作期间可以出现的第i位的进位数字;
-CD(i)代表导致第二被掩码数据值的、在掩码操作期间可以出现的第i位的进位数字;
-D_M代表第一被掩码数据值;
-MD代表与第一被掩码数据值相关联的掩码;
-E_M代表第二被掩码数据值;以及
-ME代表与第二被掩码数据值相关联的掩码,
进位数字CD(i+1)由以下算式给出:
Figure BDA0002717312190000051
进位数字CE(i+1)由以下算式给出:
Figure BDA0002717312190000052
进位数字校正CEF(i)由以下算式给出:
Figure BDA0002717312190000053
与第三二进制数据值相关联的第三掩码等于与第二被掩码数据值相关联的掩码。
根据权利要求5所述的方法,其中第三被掩码二进制数据值F_M由以下算式给出:
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))*2k+E_M[k-1;0]}mod2n
其中:
-“+”代表加法运算;
-“mod”代表取模运算;
-n代表第三被掩码二进制数据值X_M的位数目,n为自然整数;
-p为介于0与n-1之间的自然整数;
-m为介于0与n-p之间的自然整数;
-k为介于0与n-p之间的自然整数;
-P[i;j]代表二进制数据值P的从第i位到第j位的所有位;i和j为自然整数;
-C(i)代表在导致第一被掩码数据值的掩码操作期间可以出现的第i位的进位数字;
-CD(i)代表导致第二被掩码数据值的、在掩码操作期间可以出现的第i位的进位数字;
-D_M代表第一被掩码数据值;
-MD代表与第一被掩码数据值相关联的掩码;
-E_M代表第二被掩码数据值;以及
-ME代表与第二被掩码数据值相关联的掩码,
进位数字CD(i+1)由以下算式给出:
Figure BDA0002717312190000061
进位数字CE(i+1)由以下算式给出:
Figure BDA0002717312190000062
与第三二进制数据值相关联的第三掩码MF由以下算式给出:
MF[n-1;0]=ME[n-1;0]-CEF(k+p)*2k+p
其中CEF(i)代表由以下算式给出的第i位i的进位数字校正:
Figure BDA0002717312190000063
根据一个实施例,第三被掩码二进制数据值I_M由以下算式给出:
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)*2p)*2k+(H_M[k-1;0]+CH(k)*2k)}mod2n
其中:
-“+”代表加法运算;
-“mod”代表取模运算;
-n代表第三被掩码二进制数据值X_M的位数目,n为自然整数;
-p为介于0与n-1之间的自然整数;
-m为介于0与n-p之间的自然整数;
-k为介于0与n-p之间的自然整数;
-P[i;j]代表二进制数据值P的从第i位到第j位的所有位;i和j为自然整数;
-CG(i)代表在导致第一被掩码数据值的掩码操作期间可以出现的第i位的进位数字;
-CH(i)代表导致第二被掩码数据值的掩码操作期间可以出现的第i位的进位数字;
-G_M代表第一被掩码数据值;
-G_M代表第二被掩码数据值;以及
进位数字CG(i+1)由以下算式给出:
Figure BDA0002717312190000071
进位数字CH(i+1)由以下算式给出:
Figure BDA0002717312190000072
与第三被掩码二进制数据值相关联的第三掩码MI由以下算式给出:
MI[n-1;0]=MH[n-1;k+p]*2p+k+MG[m+p-1;m]*2k+MH[k-1;0]
其中:
-其中MG代表与第一被掩码二进制数据值相关联的掩码;以及
-其中MH代表与第二被掩码二进制数据值相关联的掩码。
根据一个实施例,第三被掩码二进制数据值I_M由以下算式给出:
I_M[n-1;0]={H_M[n-1;k+p]*2(k+p)+(G_M[m+p-1;m]+CG(m+p)*2p)*2k+(H_M[k-1;0]+CH(k)*2k)}mod2n
其中
-“+”代表加法运算;
-“mod”代表取模运算;
-n代表第三被掩码二进制数据值X_M的位数目,n为自然整数;
-p为介于0与n-1之间的自然整数;
-m为介于0与n-p之间的自然整数;
-k为介于0与n-p之间的自然整数;
-P[i;j]代表二进制数据值P的从第i位到第j位的所有位;i和j为自然整数;
-CG(i)代表在导致第一被掩码数据值的掩码操作期间可以出现的第i位的进位数字;
-CH(i)代表导致第二被掩码数据值的掩码操作期间可以出现的第i位的进位数字;
-G_M代表第一被掩码数据值;
-G_M代表第二被掩码数据值;以及
进位数字CG(i+1)由以下算式给出:
Figure BDA0002717312190000081
进位数字CH(i+1)由以下算式给出:
Figure BDA0002717312190000082
与第三被掩码二进制数据值相关联的第三掩码MI由以下算式给出:
MI[n-1;0]=(MH[n-1;k+p]+CH(k+p))*2p+k+(MG[m+p-1;m]+CG(m))*2k+)MH[k-1;0]
其中:
-其中MG代表与第一被掩码二进制数据值相关联的掩码;以及
-其中MH代表与第二被掩码二进制数据值相关联的掩码。
另一实施例提供了一种设备,该设备被配置为对通过先前所公开的掩码操作所掩码的二进制数据值执行计算,该设备被配置为进行先前所公开的方法。
一种电子设备,包括如先前所公开的设备。
附图说明
在对以下参考附图通过示例而非限制的方式给出的特定实施例的描述中,对前述特征和优点以及其他特征进行详细描述,其中
图1以框图形式示意性地示出了处理器的一个实施例;
图2示意性地示出了用于处理被掩码二进制数据值的方法的一个实施例;
图3示意性地示出了用于处理被掩码二进制数据值的方法的另一实施例;
图4示意性地示出了用于处理被掩码二进制数据值的方法的另一实施例;
图5示意性地示出了用于处理被掩码二进制数据值的方法的另一实施例。
具体实施方式
在各个附图中,相似的特征已经由相似的附图标记指定。具体地,各个实施例之间所共有的结构特征和/或功能特征可以具有相同的附图标记并且可以设置相同的结构特性、尺寸特性、以及材料特性。
为了清楚起见,仅对用于理解本文中所描述的实施例的操作和元件进行了说明和描述。
除非另有说明,否则当提及连接在一起的两个元件时,这表示没有导体以外的任何中间元件的直接连接;并且当提及耦合在一起的两个元件时,这表示这两个元件可以连接或者它们可以经由一个或多个其他元件耦合。
在以下公开中,除非另有说明,否则当提及诸如术语“前”、“后”、“顶部”、“底部”、“左”、“右”等之类的绝对位置限定词或诸如术语“上方”、“下方”、“上部”、“下部”等之类的相对位置限定词或诸如“水平”、“垂直”等之类的方位限定词时,参考图中所示的方位。
除非另有说明,否则表达“左右”、“近似”、“基本上”和“大约”表示在10%以内,优选地,在5%以内。
在本公开的其余部分中,考虑了数据值、被掩码数据值和掩码,它们都是例如具有n个位的二进制字,n为自然整数。使用以下记号法:
-P[m;k]指定二进制字P的从第k位到第m位的位集合,m和k为小于或等于n的自然整数,严格上讲,m大于k;
-P[m]指定二进制字P的具有位数为第m位的位。
图1以框图形式非常示意性地图示了处理器10(CPU)的实施例。处理器尤其可以接收数据值,并且将其供应给数据值所属的电子设备的电子部件,例如,存储器。作为变型,处理器10可以是被配置为对二进制字执行计算的任何实体,例如,被配置为执行密码学计算的电子设备。
处理器10尤其被配置为处理数据值,尤其是被掩码数据值。处理器接收被掩码数据值Data_In及其掩码Mask_In作为输入,并且提供被掩码数据值Data_Out及其掩码Mask_Out作为输出。
通过实现算术类型的掩码,输入数据值Data_In或输出数据值Data_Out分别使用掩码Mask_In和Mask_Out进行掩码。算术类型的掩码是仅包括算术运算而非逻辑运算的掩码。在本文中所描述的情况下,算术掩码是其中掩码被添加到待掩码的数据值的加性掩码。作为一个示例,掩码和待掩码的数据值是尺寸相等的二进制字。根据一种变型,掩码和待掩码的数据值是尺寸不同的二进制字。更具体地,被掩码数据值A_M由以下算式给出:
A_M=(A+MA)mod2n
其中:
-A代表要掩码的数据值;
-MA代表掩码;
-“+”代表加法运算;
-“mod”代表取模运算;以及
-n是组成待掩码的数据值A、掩码MA和被掩码数据值A_M的位数目。
处理器10被配置为通过向被掩码数据值Data_In及其掩码Mask_In应用不同操作(例如,加、减、补1运算、或通过提取数据值部分并且将这些部分插入其他数据值来处理数据值的操作)来对它们进行处理。关于图2至图5公开了由处理器10所执行的提取和插入操作的实施例。
图2示意性地图示了处理被掩码数据值的方法的实施例,该方法包括以下操作:提取数据值部分并且将这些部分插入其他数据值中,该操作由关于图1所公开的处理器10进行。关于图2所公开的提取和插入操作是具有“通过掩码补偿”的提取和插入操作。
关于图2所公开的实施例是针对零数据值中的二进制字(也就是说,所有位都等于“0”的二进制字)的一部分的提取和插入操作的特定情况。向零数据值应用关于图1所公开的类型的掩码操作所提供的被掩码数据值等于与所提供的被掩码数据值相关联的掩码。
为了说明该实施例的操作,考虑了两个被掩码数据值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为自然整数。
在提取和插入操作期间,提取一部分数据值(在本文中所图示的情况下,被掩码数据值B_M的一部分B1_M),然后将其插入到第二数据值(在本文中所公开的情况下,数据值Z_M)中。由于数据值B_M是具有掩码MB的被掩码数据值,所以还提取掩码MB的一部分MB1,然后将其插入到掩码MZ中。该部分MB1在掩码MB中具有与被掩码数据值B_M中的部分B1M相同的位置。
更具体地,从被掩码数据值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个位的二进制字。
根据一个实施例,部分B1_M被插入到数据值Z_M中,并且对数据值Z_M的p+1位进行修改。作为示例,对数据值Z_M的低权重的p+1位进行修改,但是作为一个变型,p+1个经修改的位可以在数据值Z_M中的任何位置中。当p+1个经修改的位是低权重的位时,数据值Z_M由以下算式给出:
Z_M[n-1;0]=(Z_M[n-1;p+1]*2p+1+CB(p+m)*2p+B_M[p+m-1:m])mod2n
其中CB(i)代表第i位的进位数字,其可以在导致数据值的、使用掩码MB对数据值B进行的关于图1所公开的掩码操作期间出现,i为介于1与n之间的整数。
进位数字CB(i+1)由以下算式给出:
Figure BDA0002717312190000121
部分MB1被插入到掩码MZ中,并且对掩码MZ的p+1位进行修改。作为示例,对掩码MZ的低权重的p+1个位进行修改,但是作为一个变型,p+1个经修改的位可以在掩码MZ中的任何位置。掩码MZ的p+1个经修改的位位于与数据值Z_M的p+1个经修改的位相同的位置。当p+1个经修改的位为低权重的位时,掩码MZ由以下算式给出:
MZ[n-1;0]=(MZ[n-1;p+1]*2(p+1)+CB(m)+MB[p+m-1;m])mod2n
提取和插入操作具有“通过掩码进行补偿”,由于进位数字CB(m)被添加到掩码MZ,所以进位数字将要由掩码补偿。关于图3公开了一种其中进位数字以不同方式进行补偿的变型。
被掩码数据值Z_M和掩码MZ使得可以再次找到零数据值:
Z[n-1;0]=(Z_M[n-1;0]-MZ[n-1;0])mod2n
然后,数据值Z由以下简化算式给出:
Z[n-1;0]=B[m+p-1;m]
该实施例的一个优点在于,关于图2所公开的提取和插入操作不包括用于对被掩码数据值B_M进行解掩码的步骤。因此,在该操作期间,无法访问数据值B。
该实施例的另一优点在于,它使得可以在用于被掩码数据值的掩码之间增加分集。
图3示意性地图示了被掩码数据值的处理方法的另一实施例,该方法包括由关于图1所公开的处理器10所进行的提取和插入操作。关于图3所公开的提取和插入操作是具有“通过被掩码数据值进行补偿”的提取和插入操作。
关于图3所公开的操作与关于图2所公开的操作类似。不再对两个操作所共享的元件进行描述。
为了说明本实施例的操作,考虑了被掩码数据值B_M及其掩码MB以及被掩码数据值X_M及其掩码MX。被掩码数据值X_M是由掩码MX对零数据值X进行的关于图1所公开的加性掩码操作的结果,因此,数据值X_M最初等于掩码MX。组成被掩码数据值X_M和掩码MX的二进制字是具有n个位的二进制字。
本文中考虑的是,提取被掩码数据值B_M的部分B1_M,然后将其插入到中性数据值X_M中。还提取掩码MB的部分MB1,然后将其插入到掩码MX中。
如图2一样,从被掩码数据值B_M提取的部分B1_M是具有与被掩码数据值B_M从第m位到第m+p-1位的位相对应的p个位的二进制字。同样,从掩码MB提取的部分MB1是具有与掩码MB从第m位到第m+p-1位的位相对应的p个位的二进制字。
本文中所公开的提取和插入操作具有“对被掩码数据值进行补偿”,因此,导致在数据值B_M的使用掩码MB进行的加性掩码操作期间可以出现的位数为第m位的进位数字CB(m)被补偿在被掩码数据值X_M上而不在掩码MX上。
在这种情况下,被掩码数据值X_M由以下算式给出:
X_M[n-1;0]=(X_M[n-1;p]*2p+1+CB(p+m)*2p+B_M[p+m-1;m]-CB(m))mod2n
掩码MX由以下算式给出:
MX[n-1;0]=(MX[n-1;p+1]*2(p+1)+MB[p+m-1;m])mod2n
如图2一样,在插入被掩码数据值B_M及其掩码MB之前,被掩码数据值X_M及其掩码MX相等。在该操作之后,二进制字X_M[n-1;p-1]和MX[n-1;p-1]。在由上文所给出的算式定义的被掩码数据值X_M和掩码MX之后,也就是说,在插入操作之前,可以通过应用以下算式对数据值X_M进行解掩码,来再次找到数据值X:
X[n-1;0]=X_M[n-1;0]-MX[n-1;0]
然后,数据值X由以下算式给出:
X[n-1;0]=B[m+p-1;m]
该实施例的一个优点在于,关于图2所公开的提取和插入操作不包括用于对被掩码数据值B_M进行解掩码的步骤。因此,在该操作期间,无法访问数据值B。
该实施例的另一优点在于,它可以与掩码不是可修改数据值的掩码数据值一起使用。
图4示意性地图示了用于处理被掩码数据值的方法的另一实施例,该方法包括由关于图1所公开的处理器10所进行的提取和插入操作。
关于图4所公开的实施例是比关于图2和图3所公开的情况更一般的情况。的确,在关于图4所公开的情况下,提取了第一被掩码数据值的一部分。然后将其插入到另一被掩码数据值中。
为了说明该实施例的操作,考虑了三个被掩码数据值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个位的二进制字。
在关于图4所公开的提取和插入操作中,提取被掩码数据值D_M的一部分D1_M,然后将其插入到被掩码数据值E_M中,以便形成最终被掩码数据值F_M。根据一个实施例,与被掩码数据值F_M相关联的掩码MF等于与数据值E_M相关联的掩码ME。关于图5公开了其中掩码MF不同的变型。
更具体地,从被掩码数据值D_M提取的部分D1_M是具有与被掩码数据值D_M从第m位到第m+p-1位的位相对应的p个位的二进制字,p为小于或等于n的自然整数,m为介于0与n-p之间的自然整数。
根据一个实施例,将部分D1_M插入到被掩码数据值E_M中,以便形成被掩码数据值F_M,并且更具体地,对被掩码数据值E_M从第k位到第k+p-1位的p个位进行修改,以便形成被掩码数据值F_M,k为从0到n-p的自然整数。如关于图2和图3所公开的,提取和插入操作可以具有“对掩码进行补偿”或“对被掩码数据值进行补偿”。
本文中所公开的提取和插入操作旨在生成被掩码数据值F_M,以使对通过具有掩码MF的被掩码数据值F_M进行解掩码而获得的数据值F等于数据值E,其中在数据值E的第k位和第k+p-1位之间插入数据值D从第m位到第m+p-1位的p个位的数据值。
在具有“对被掩码数据值进行补偿”的提取和插入操作的情况下,被掩码数据值F_M随后由以下算式给出:
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))*2k+E_M[k-1;0]]mod2n
其中:
-CEF(i)代表如下定义的第i位的进位数字校正,i为介于1与n之间的整数;
-CE(i)代表导致被掩码数据值E_M的、在使用掩码ME进行的加性掩码操作期间可以出现的第i位的进位数字;以及
-CD(i)代表导致被掩码数据值D_M的、在使用掩码MD进行的加性掩码操作期间可以出现的第i位的进位数字。
进位数字CE(i+1)由以下算式给出:
Figure BDA0002717312190000161
进位数字CD(i+1)由以下算式给出:
Figure BDA0002717312190000162
进位数字校正CEF(i+1)取决于进位数字CE(i+1)和进位数字CF(i+1),并且由以下算式给出:
Figure BDA0002717312190000163
在具有“对被掩码数据值进行补偿”的操作的情况下,与被掩码数据值F_M相关联的掩码MF严格地等于与数据值E_M相关联的掩码ME。
在提取和插入操作具有“对掩码进行补偿”的情况下,则被掩码数据值F_M由以下算式给出:
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))*2k+E_M[k-1;0])mod2n
掩码MF由以下算式给出:
MF[n-1;0]=ME[n-1;0]-CEF(k+p)*2k+p
在无论是具有“通过掩码进行补偿”还是具有“通过被掩码数据值进行补偿”的提取和插入操作的情况下,上文所定义的算式都可以通过应用以下算式所定义的解掩码操作,来从被掩码数据值F_M和掩码MF中再次找到数据值F:
F[n-1;0]=(F_M[n-1;0]-MF[n-1;0])mod2n
这些实施例的一个优点在于,提取和插入操作无需对被掩码数据值D_M、E_M和F_M进行解掩码操作。因此,在该操作期间,无法访问数据值D、E和F。
图5示意性地图示了用于处理被掩码数据值的方法的另一实施例,该方法包括关于图1所公开的处理器10所进行的提取和插入操作。
关于图5所公开的操作与关于图4所公开的操作类似。不再对两个操作所共有的元件进行描述。
为了说明该实施例的操作,考虑了数据值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个位的二进制字。
在关于图5所公开的提取和插入操作中,提取被掩码数据值G_M的一部分G1_M,然后将其插入到被掩码数据值H_M中,以便形成最终被掩码数据值I_M。根据一个实施例,还提取掩码MG的一部分MG1,然后将其插入到掩码MH中以形成掩码MI。
更具体地,部分G1_M和部分MG1分别是具有与掩码MG的被掩码数据值G_M从第m位到第m+p-1位的位相对应的p个位的二进制字。
根据一个实施例,分别将部分G1_M和部分MG1插入到被掩码数据值H_M和掩码MH中,以分别形成被掩码数据值I_M和掩码MI,并且更具体地,分别对掩码MH的被掩码数据值H_M从第k位到第k+p-1位的p个位进行修改,以分别形成被掩码数据值I_M和掩码MI。如关于图2和图3所公开的,提取和插入操作可以具有“对掩码进行补偿”或“对被掩码数据值进行补偿”。
本文中所公开的提取和插入操作旨在生成被掩码数据值I_M,使得通过对具有掩码MI的被掩码数据值I_M进行解掩码而获得的数据值I等于数据H,其中在第k位与第k+p-1位之间插入数据值G从第m位到第m+p-1位的p个位的数据值。
在具有“对被掩码数据值进行补偿”的提取和插入操作的情况下,被掩码数据值I_M由以下算式给出:
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)*2p)*2n+(H_M[k-1;0]+CH(k)*2k)}mod2n
其中:
-CH(i)代表可能在使用掩码MH进行的、在加性掩码操作期间出现的导致被掩码数据值H_M的第i位的进位数字;以及
-CG(i)代表可能在使用掩码MG进行的、在加性掩码操作期间出现的导致被掩码数据值G_M的第i位的进位数字。
进位数字CH(i+1)由以下算式给出:
Figure BDA0002717312190000181
进位数字CG(i+1)由以下算式给出:
Figure BDA0002717312190000182
在具有“对被掩码数据值进行补偿”的提取和插入操作的情况下,与数据值I_M相关联的掩码MI由以下算式给出:
MI[n-1;0]=MH[n-1;k+p]*2k+p+MG[m+p-1;m]*2k+MH[k-1;0]
在具有“对掩码进行补偿”的提取和插入操作的情况下,被掩码数据值I_M由以下算式给出:
I_M[n-1;0]={H_M[n-1;k+p]*2(k+p)+(G_M[m+p-1;m]+CG(m+p)*2p)*2k+(H_M[k
-1;0]+CH(k)*2k)}mod2n
在这种情况下,掩码MI由以下算式给出:
MI[n-1;0]=(MH[n-1;k+p]+CH(k+p))*2k+p+(MG[m+p-1;m]+CG(m))*2k+MH[p
-1;0]mod2n
在无论是具有“通过掩码进行补偿”还是具有“通过被掩码数据值进行补偿”的提取和插入操作的情况下,上文所定义的算式都使得可以通过应用以下算式所定义的解掩码操作,来再次从被掩码数据值I_M和掩码[sic]MI中找到数据值I:
I[n-1;0]=(I_M[n-1;0]-MI[n-1;0])mod2n
这些实施例的一个优点在于,提取和插入操作无需针对被掩码数据值G_M、H_M和I_M的解掩码操作。因此,在该操作期间,无法访问数据值G,H和I。
已经对各种实施例和变型进行了描述。本领域技术人员应当理解,可以组合这些实施例的某些特征,并且本领域技术人员容易想到其他变型。
最后,基于上文所提供的功能描述,在实践上实现本文中所描述的实施例和变型在本领域技术人员的能力之内。

Claims (26)

1.一种用于处理被掩码二进制数据值的方法,所述方法由设备实现,所述设备被配置为对二进制数据值执行计算,所述方法包括:
提取第一被掩码二进制数据值(B_M;D_M;G_M)的第一部分(B1_M;D1_M;G1_M);
将所述第一被掩码二进制数据值(B_M;D_M;G_M)的所述第一部分(B1_M;D1_M;G1_M)插入第二被掩码二进制数据值(Z_M;X_M;E_M;H_M)中;以及
在整个所述提取和所述插入的过程中,保持所述第一被掩码二进制数据值和所述第二被掩码二进制数据值均被掩码。
2.根据权利要求1所述的方法,还包括:不对所述第一被掩码二进制数据值和所述第二被掩码二进制数据值执行任何解掩码操作。
3.根据权利要求1所述的方法,还包括:通过仅包括算术运算的掩码操作,来掩码所述第一被掩码二进制数据值和所述第二被掩码二进制数据值。
4.根据权利要求3所述的方法,其中所述掩码操作包括:将待掩码数据值(A)添加到掩码(MA),以获得被掩码数据值(A_M)。
5.根据权利要求1所述的方法,其中第三二进制数据值(Z_M;X_M;F_M;I_M)是所述提取和所述插入的结果,并且所述第三二进制数据值是由第三掩码(MZ;MX;MF;MI)掩码的数据值。
6.根据权利要求5所述的方法,还包括:通过对所具有的所有位都等于“0”的二进制数据值(Z;X)执行掩码操作,来获得第二被掩码二进制数据值(Z_M;X_M)。
7.根据权利要求6所述的方法,其中所述第二被掩码二进制数据值(Z_M;X_M)等于在所述掩码操作期间所使用的第二掩码(MZ;MX)。
8.根据权利要求6所述的方法,其中第三被掩码二进制数据值Z_M由以下算式给出:
Z_M[n-1;0]=(Z_M[n-1;p+1]*2p+1+CB(p+m)*2p+B_M[p+m-1;m])mod2n
其中:
-“+”代表加法运算;
-“mod”代表取模运算;
-n代表所述第三被掩码二进制数据值Z_M的位数目,n为自然整数;
-p为介于0与n-1之间的自然整数;
-m为介于0与n-p之间的自然整数;
-P[i;j]代表二进制数据值P的从第i位到第j位的所有位;i和j为自然整数;
-CB(i)代表在导致第一被掩码数据值的所述掩码操作期间可能出现的第i位的进位数字;
-B_M代表所述第一被掩码数据值,
-进位数字CB(i+1)由以下算式给出,i为小于或等于n的自然整数:
Figure FDA0002717312180000021
其中MB代表与所述第一被掩码二进制数据值相关联的第一掩码,以及
与所述第三被掩码二进制数据值相关联的第三掩码MZ由以下算式给出:
MZ[n-1;0]=(MZ[n-1;p+1]*2(p+1)+CB(m)+MB[p+m-1;m])mod2n
9.根据权利要求6所述的方法,其中第三被掩码二进制数据值X_M由以下算式给出:
X_M[n-1;0]=(Z_M[n-1;p+1]*2p+1+CB(p+m)*2p+B_M[p+m-1;m]-CB(m))mod2n
其中:
-“+”代表加法运算;
-“mod”代表取模运算;
-n代表所述第三被掩码二进制数据值X_M的位数目,n为自然整数;
-p为介于0与n-1之间的自然整数;
-m为介于0与n-p之间的自然整数;
-P[i;j]代表二进制数据值P的从第i位到第j位的所有位;i和j为自然整数;
-CB(i)代表在导致第一被掩码数据值的所述掩码操作期间可能出现的第i位的进位数字;
-B_M代表所述第一被掩码数据值,
-进位数字CB(i+1)由以下算式给出,i为小于或等于n的自然整数:
Figure FDA0002717312180000031
其中MB代表与所述第一被掩码二进制数据值相关联的第一掩码,以及
与所述第三被掩码二进制数据值相关联的第三掩码MX由以下算式给出:
MX[n-1;0]=(MX[n-1;p+1]*2(p+1)+MB[p+m-1;m])mod2n
10.根据权利要求5所述的方法,其中第三被掩码二进制数据值F_M由以下算式给出:
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]}mod^2n
其中:
-“+”代表加法运算;
-“mod”代表取模运算;
-n代表第三被掩码二进制数据值X_M的位数目,n为自然整数;
-p为介于0与n-1之间的自然整数;
-m为介于0与n-p之间的自然整数;
-k为介于0与n-p之间的自然整数;
-P[i;j]代表二进制数据值P的从第i位到第j位的所有位;i和j为自然整数;
-CEF(i)代表对于第i位的第一进位数字校正;
-CE(i)代表在导致第一被掩码数据值的掩码操作期间可能出现的第i位的第二进位数字;
-CD(i)代表在导致第二被掩码数据值的掩码操作期间可能出现的第i位的第三进位数字;
-D_M代表所述第一被掩码数据值;
-MD代表与所述第一被掩码数据值相关联的掩码;
-E_M代表所述第二被掩码数据值;以及
-ME代表与所述第二被掩码数据值相关联的掩码,
-进位数字CD(i+1)由以下算式给出:
Figure FDA0002717312180000041
-进位数字CE(i+1)由以下算式给出:
Figure FDA0002717312180000042
-进位数字校正CEF(i)由以下算式给出:
Figure FDA0002717312180000043
-与所述第三二进制数据值相关联的第三掩码等于与所述第二被掩码数据值相关联的所述掩码。
11.根据权利要求5所述的方法,其中第三被掩码二进制数据值F_M由以下算式给出:
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))*2k+E_M[k-1;0]}mod2n
其中:
-“+”代表加法运算;
-“mod”代表取模运算;
-n代表第三被掩码二进制数据值X_M的位数目,n为自然整数;
-p为介于0与n-1之间的自然整数;
-m为介于0与n-p之间的自然整数;
-k为介于0与n-p之间的自然整数;
-P[i;j]代表二进制数据值P的从第i位到第j位的所有位;i和j为自然整数;
-CD(i)代表在导致第一被掩码数据值的掩码操作期间可能出现的第i位的第一进位数字;
-CD(i)代表在导致第二被掩码数据值的掩码操作期间可能出现的第i位的第二进位数字;
-D_M代表所述第一被掩码数据值;
-MD代表与所述第一被掩码数据值相关联的掩码;
-E_M代表所述第二被掩码数据值;以及
-ME代表与所述第二被掩码数据值相关联的掩码,
-进位数字CD(i+1)由以下算式给出:
Figure FDA0002717312180000051
-进位数字CE(i+1)由以下算式给出:
Figure FDA0002717312180000052
-与所述第三二进制数据值相关联的第三掩码MF由以下算式给出:
MF[n-1;0]=ME[n-1;0]-CEF(k+p)*2k+p
其中CEF(i)代表由以下算式给出的对于第i位的进位数字校正:
Figure FDA0002717312180000061
12.根据权利要求5所述的方法,其中第三被掩码二进制数据值I_M由以下算式给出:
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)+CCG(m+p)*2p)*2k+(H_M[k-1;0]+CH(k)*2k)}mod2n
其中:
-“+”代表加法运算;
-“mod”代表取模运算;
-n代表第三被掩码二进制数据值X_M的位数目,n为自然整数;
-p为介于0与n-1之间的自然整数;
-m为介于0与n-p之间的自然整数;
-k为介于0与n-p之间的自然整数;
-P[i;j]代表二进制数据值P的从第i位到第j位的所有位;i和j为自然整数;
-CG(i)代表在导致第一被掩码数据值的掩码操作期间可能出现的第i位的第一进位数字;
-CH(i)代表在导致第二被掩码数据值的掩码操作期间可能出现的第i位的第二进位数字;
-G_M代表所述第一被掩码数据值;
-G_M代表所述第二被掩码数据值;以及
-进位数字CG(i+1)由以下算式给出:
Figure FDA0002717312180000062
-进位数字CH(i+1)由以下算式给出:
Figure FDA0002717312180000063
-与所述第三被掩码二进制数据值相关联的第三掩码MI由以下算式给出:
MI[n-1;0]=MH[n-1;k+p]*2p+k+MG[m+p-1;m]*2k+MH[k-1;0]
其中:
-MG代表与所述第一被掩码二进制数据值相关联的掩码;以及
-MH代表与所述第二被掩码二进制数据值相关联的掩码。
13.根据权利要求5所述的方法,其中第三被掩码二进制数据值I_M由以下算式给出:
I_M[n-1;0]={H_M[n-1;k+p]*2(k+p)+(G_M[m+p-1;m]+CG(m+p)*2p)*2k+(H_M[k-1;0]+CH(k)*2k)}mod2n
其中:
-“+”代表加法运算;
-“mod”代表取模运算;
-n代表第三被掩码二进制数据值X_M的位数目,n为自然整数;
-p为介于0与n-1之间的自然整数;
-m为介于0与n-p之间的自然整数;
-k为介于0与n-p之间的自然整数;
-P[i;j]代表二进制数据值P的从第i位到第j位的所有位;i和j为自然整数;
-CG(i)代表在导致第一被掩码数据值的掩码操作期间可能出现的第i位的第一进位数字;
-CH(i)代表在导致第二被掩码数据值的掩码操作期间可能出现的第i位的第二进位数字;
-G_M代表所述第一被掩码数据值;
-G_M代表所述第二被掩码数据值;以及
-进位数字CG(i+1)由以下算式给出:
Figure FDA0002717312180000071
-进位数字CH(i+1)由以下算式给出:
Figure FDA0002717312180000081
-与所述第三被掩码二进制数据值相关联的第三掩码MI由以下算式给出:
MI[n-1;0]=(MH[n-1;k+p]+CH(k+p))*2p+k+(MG[m+p-1;m]+CG(m))*2k+)MH[k-1;0]
其中:
-MG代表与所述第一被掩码二进制数据值相关联的掩码;以及
-MH代表与所述第二被掩码二进制数据值相关联的掩码。
14.一种设备,被配置为对被掩码二进制数据值执行计算,所述设备包括:
处理器,被配置为:
提取第一被掩码二进制数据值(B_M;D_M;G_M)的第一部分(B1_M;D1_M;G1_M);
将所述第一被掩码二进制数据值(B_M;D_M;G_M)的所述第一部分(B1_M;D1_M;G1_M)插入第二被掩码二进制数据值(Z_M;X_M;E_M;H_M);以及
在整个所述提取和所述插入的过程中,保持所述第一被掩码二进制数据值和所述第二被掩码二进制数据值均被掩码。
15.根据权利要求14所述的设备,所述处理器还被配置为不对所述第一被掩码二进制数据值和所述第二被掩码二进制数据值执行任何解掩码操作。
16.根据权利要求14所述的设备,其中所述处理器被配置为通过仅包括算术运算的掩码操作,来掩码所述第一被掩码二进制数据值和所述第二被掩码二进制数据值。
17.根据权利要求16所述的设备,其中所述掩码操作包括:将所述处理器被配置为将待掩码数据值(A)添加到掩码(MA)以获得被掩码数据值(A_M)。
18.根据权利要求14所述的设备,其中第三二进制数据值(Z_M;X_M;F_M;I_M)是所述提取和所述插入的结果,并且所述第三二进制数据值是由第三掩码(MZ;MX;MF;MI)掩码的数字值。
19.根据权利要求18所述的设备,其中所述处理器被配置为通过对所具有的所有位都等于“0”的二进制数据值(Z;X)执行掩码操作,来获得第二被掩码二进制数据值(Z_M;X_M)。
20.根据权利要求19所述的设备,其中所述第二被掩码二进制数据值(Z_M;X_M)等于在所述掩码操作期间所使用的第二掩码(MZ;MX)。
21.根据权利要求19所述的设备,其中第三被掩码二进制数据值Z_M由以下算式给出:
Z_M[n-1;0]=(Z_M[n-1;p+1]*2p+1CB(p+m)*2p+B_M[p+m-1;m])mod2n
其中:
-“+”代表加法运算;
-“mod”代表取模运算;
-n代表所述第三被掩码二进制数据值Z_M的位数目,n为自然整数;
-p为介于0与n-1之间的自然整数;
-m为介于0与n-p之间的自然整数;
-P[i;j]代表二进制数据值P的从第i位到第j位的所有位;i和j为自然整数;
-CB(i)代表在导致第一被掩码数据值的所述掩码操作期间可能出现的第i位的进位数字;
-B_M代表所述第一被掩码数据值,
-进位数字CB(i+1)由以下算式给出,i为小于或等于n的自然整数:
Figure FDA0002717312180000091
其中MB代表与所述第一被掩码二进制数据值相关联的第一掩码,以及
与所述第三被掩码二进制数据值相关联的第三掩码MZ由以下算式给出:
MZ[n-1;0]=(MZ[n-1;p+1]*2(p+1)+CB(m)+MB[p+m-1;m])mod2n
22.根据权利要求19所述的设备,其中第三被掩码二进制数据值X_M由以下算式给出:
X_M[n-1;0]=(Z_M[n-1;p+1]*2p+1+CB(p+m)*2p+B_M[p+m-1;m]-CB(m))mod2n
其中:
-“+”代表加法运算;
-“mod”代表取模运算;
-n代表所述第三被掩码二进制数据值X_M的位数目,n为自然整数;
-p为介于0与n-1之间的自然整数;
-m为介于0与n-p之间的自然整数;
-P[i;j]代表二进制数据值P的从第i位到第j位的所有位;i和j为自然整数;
-CB(i)代表在导致第一被掩码数据值的所述掩码操作期间可能出现的第i位的进位数字;
-B_M代表所述第一被掩码数据值,
-进位数字CB(i+1)由以下算式给出,i为小于或等于n的自然整数:
Figure FDA0002717312180000101
其中MB代表与所述第一被掩码二进制数据值相关联的第一掩码,以及
与所述第三被掩码二进制数据值相关联的第三掩码MX由以下算式给出:
MX[n-1;0]=(MX[n-1;p+1]*2(p+1)+MB[p+m-1;m])mod2n
23.根据权利要求18所述的设备,其中第三被掩码二进制数据值F_M由以下算式给出:
F_M[n-1;0]={E_M[n-1;k+p](+CEF(k+p))*2(k+p)+(D_X(m+p-1;m]+ME[k+p-1;k]-MD[m+p-1;m]+CE(k)-CD(k))*2k+E_M(k-1;0]}mod2n
其中:
-“+”代表加法运算;
-“mod”代表取模运算;
-n代表第三被掩码二进制数据值X_M的位数目,n为自然整数;
-p为介于0与n-1之间的自然整数;
-m为介于0与n-p之间的自然整数;
-k为介于0与n-p之间的自然整数;
-P[i;j]代表二进制数据值P的从第i位到第j位的所有位;i和j为自然整数;
-CEF(i)代表对于第i位的第一进位数字校正;
-CE(i)代表在导致第一被掩码数据值的掩码操作期间可能出现的第i位的第二进位数字;
-CD(i)代表在导致第二被掩码数据值的掩码操作期间可能出现的第i位的第三进位数字;
-D_M代表所述第一被掩码数据值;
-MD代表与所述第一被掩码数据值相关联的掩码;
-E_M代表所述第二被掩码数据值;以及
-ME代表与所述第二被掩码数据值相关联的掩码,
-进位数字CD(i+1)由以下算式给出:
Figure FDA0002717312180000111
-进位数字CE(i+1)由以下算式给出:
Figure FDA0002717312180000112
-进位数字校正CEF(i)由以下算式给出:
Figure FDA0002717312180000121
-与所述第三二进制数据值相关联的第三掩码等于与所述第二被掩码数据值相关联的所述掩码。
24.根据权利要求18所述的设备,其中第三被掩码二进制数据值F_M由以下算式给出:
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;+CE(k)-CD(k))×2k+E_M[k-1;0]}mod2n
其中:
-“+”代表加法运算;
-“mod”代表取模运算;
-n代表第三被掩码二进制数据值X_M的位数目,n为自然整数;
-p为介于0与n-1之间的自然整数;
-m为介于0与n-p之间的自然整数;
-k为介于0与n-p之间的自然整数;
-P[i;j]代表二进制数据值P的从第i位到第j位的所有位;i和j为自然整数;
-CE(i)代表在导致第一被掩码数据值的掩码操作期间可能出现的第i位的第一进位数字;
-CD(i)代表在导致第二被掩码数据值的掩码操作期间可能出现的第i位的第二进位数字;
-D_M代表所述第一被掩码数据值;
-MD代表与所述第一被掩码数据值相关联的掩码;
-E_M代表所述第二被掩码数据值;以及
-ME代表与所述第二被掩码数据值相关联的掩码,
-进位数字CD(i+1)由以下算式给出:
Figure FDA0002717312180000131
-进位数字CE(i+1)由以下算式给出:
Figure FDA0002717312180000132
-与所述第三二进制数据值相关联的第三掩码MF由以下算式给出:
MF[n-1;0]=ME[n-1;0]-CEF(k+p)*2k+p
其中CEF(i)代表由以下算式给出的对于第i位的进位数字校正:
Figure FDA0002717312180000133
25.根据权利要求18所述的设备,其中第三被掩码二进制数据值I_M由以下算式给出:
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)*2p)*2k+(H_M[k-1;0]+CH(k)-2k)}mod2n
其中:
-“+”代表加法运算;
-“mod”代表取模运算;
-n代表第三被掩码二进制数据值X_M的位数目,n为自然整数;
-p为介于0与n-1之间的自然整数;
-m为介于0与n-p之间的自然整数;
-k为介于0与n-p之间的自然整数;
-P[i;j]代表二进制数据值P的从第i位到第j位的所有位;i和j为自然整数;
-CG(i)代表在导致第一被掩码数据值的掩码操作期间可能出现的第i位的第一进位数字;
-CH(i)代表在导致第二被掩码数据值的掩码操作期间可能出现的第i位的第二进位数字;
-G_M代表所述第一被掩码数据值;
-G_M代表所述第二被掩码数据值;以及
-进位数字CG(i+1)由以下算式给出:
Figure FDA0002717312180000141
-进位数字CH(i+1)由以下算式给出:
Figure FDA0002717312180000142
-与所述第三被掩码二进制数据值相关联的第三掩码MI由以下算式给出:
MI[n-1;0]=MH[n-1;k+p]*2p+k+MG[m+p-1;m]*2k+MH[k-1;0]
其中:
-MG代表与所述第一被掩码二进制数据值相关联的掩码;以及
-MH代表与所述第二被掩码二进制数据值相关联的掩码。
26.根据权利要求18所述的设备,其中第三被掩码二进制数据值I_M由以下算式给出:
I_M[n-1;0]={H_M[n-1;k+p]*2(k+p)+(G_M[m+p-1;m]+CG(m+p)*2p)*2k+(H_M[k-1;0]+CH(k)*2k)}mod2n
其中:
-“+”代表加法运算;
-“mod”代表取模运算;
-n代表第三被掩码二进制数据值X_M的位数目,n为自然整数;
-p为介于0与n-1之间的自然整数;
-m为介于0与n-p之间的自然整数;
-k为介于0与n-p之间的自然整数;
-P[i;j]代表二进制数据值P的从第i位到第j位的所有位;i和j为自然整数;
-CG(i)代表在导致第一被掩码数据值的掩码操作期间可能出现的第i位的第一进位数字;
-CH(i)代表在导致第二被掩码数据值的掩码操作期间可能出现的第i位的第二进位数字;
-G_M代表所述第一被掩码数据值;
-G_M代表所述第二被掩码数据值;以及
-进位数字CG(i+1)由以下算式给出:
Figure FDA0002717312180000151
-进位数字CH(i+1)由以下算式给出:
Figure FDA0002717312180000152
与所述第三被掩码二进制数据值相关联的第三掩码MI由以下算式给出:
MI[n-1;0]=(MH[n-1;k+p]+CH(k+p))*2p+k+(MG[m+p-1;m]+CG(m))*2k+)MH[k-1;0]
其中:
-MG代表与所述第一被掩码二进制数据值相关联的掩码;以及
-MH代表与所述第二被掩码二进制数据值相关联的掩码。
CN202011078321.5A 2019-10-11 2020-10-10 用于二进制字的提取和插入的设备和方法 Pending CN112650470A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1911349 2019-10-11
FR1911349A FR3101981B1 (fr) 2019-10-11 2019-10-11 Extraction et insertion de mots binaires

Publications (1)

Publication Number Publication Date
CN112650470A true CN112650470A (zh) 2021-04-13

Family

ID=69810936

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011078321.5A Pending CN112650470A (zh) 2019-10-11 2020-10-10 用于二进制字的提取和插入的设备和方法

Country Status (3)

Country Link
US (1) US20210109713A1 (zh)
CN (1) CN112650470A (zh)
FR (1) FR3101981B1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3101980B1 (fr) 2019-10-11 2021-12-10 St Microelectronics Grenoble 2 Processeur
FR3101983B1 (fr) 2019-10-11 2021-11-12 St Microelectronics Grenoble 2 Détermination d'un bit indicateur
FR3101982B1 (fr) 2019-10-11 2024-03-08 St Microelectronics Grenoble 2 Détermination d'un bit indicateur

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3683163A (en) * 1968-08-27 1972-08-08 Int Computers Ltd Variable field adder
GB1475962A (en) * 1974-06-03 1977-06-10 Control Data Corp Binary data manipulation network
US20040254966A1 (en) * 2003-05-16 2004-12-16 Daewoo Educational Foundation Bit manipulation operation circuit and method in programmable processor
US20050198474A1 (en) * 2004-03-08 2005-09-08 Arm Limited Bit field manipulation
EP1845442A1 (en) * 2006-04-11 2007-10-17 STMicroelectronics S.r.l. Computation of a modular multiplication with an electronic circuit
EP2634953A1 (en) * 2012-03-02 2013-09-04 Gemalto SA Countermeasure method against side channel analysis for cryptographic algorithms using boolean operations and arithmetic operations
US20140019467A1 (en) * 2011-03-18 2014-01-16 Fujitsu Limited Method and apparatus for processing masked data
CN107196973A (zh) * 2017-07-25 2017-09-22 广东虹勤通讯技术有限公司 一种数据加密、解密方法及装置
CN107689863A (zh) * 2017-09-05 2018-02-13 成都三零嘉微电子有限公司 一种算术加法掩码转布尔异或掩码的防护电路

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3683163A (en) * 1968-08-27 1972-08-08 Int Computers Ltd Variable field adder
GB1475962A (en) * 1974-06-03 1977-06-10 Control Data Corp Binary data manipulation network
US20040254966A1 (en) * 2003-05-16 2004-12-16 Daewoo Educational Foundation Bit manipulation operation circuit and method in programmable processor
US20050198474A1 (en) * 2004-03-08 2005-09-08 Arm Limited Bit field manipulation
EP1845442A1 (en) * 2006-04-11 2007-10-17 STMicroelectronics S.r.l. Computation of a modular multiplication with an electronic circuit
US20140019467A1 (en) * 2011-03-18 2014-01-16 Fujitsu Limited Method and apparatus for processing masked data
EP2634953A1 (en) * 2012-03-02 2013-09-04 Gemalto SA Countermeasure method against side channel analysis for cryptographic algorithms using boolean operations and arithmetic operations
CN107196973A (zh) * 2017-07-25 2017-09-22 广东虹勤通讯技术有限公司 一种数据加密、解密方法及装置
CN107689863A (zh) * 2017-09-05 2018-02-13 成都三零嘉微电子有限公司 一种算术加法掩码转布尔异或掩码的防护电路

Also Published As

Publication number Publication date
US20210109713A1 (en) 2021-04-15
FR3101981A1 (fr) 2021-04-16
FR3101981B1 (fr) 2021-11-12

Similar Documents

Publication Publication Date Title
CN112650470A (zh) 用于二进制字的提取和插入的设备和方法
DE102018113475A1 (de) Rechenwerk zum rechnen mit maskierten daten
US8498411B1 (en) Using multiples above two with running totals and reference values other than 0 and 2 (window size) in elliptic curve cryptography scalar multiplication acceleration tables
CN108897716B (zh) 通过存储器读写操作来缩减计算量的数据处理装置及方法
CN112650471A (zh) 用于处理掩蔽数据的处理器和方法
CN111444521A (zh) 一种基于门限增加的图像秘密共享方法及数字签名系统
Neukirch WITHDRAWN: The Beilinson Conjecture for Algebraic Number Fields
CN115632761A (zh) 基于秘密共享的多用户分布式隐私保护回归方法及装置
Davis The ILLIAC IV processing element
Pan et al. Schur aggregation for linear systems and determinants
US11714604B2 (en) Device and method for binary flag determination
US8732227B2 (en) Method and processor unit for implementing a characteristic-2-multiplication
DE102018126931A1 (de) Vorrichtung und Verfahren auf der Basis direkter anonymer Attestierung
CN112650469A (zh) 用于二进制标志确定的电路和方法
US9313027B2 (en) Protection of a calculation performed by an integrated circuit
Weng et al. Invariant measures of the Milstein method for stochastic differential equations with commutative noise
JP5193358B2 (ja) 多項式データ処理演算
CN108228138B (zh) 一种sidh中特殊域快速模乘的方法
US4879675A (en) Parity generator circuit and method
CN114124107A (zh) 一种循环冗余校验的计算方法和装置
US10366741B2 (en) Bit processing
US20230074513A1 (en) Protection of a cryptographic operation
KR930005426B1 (ko) 캐리/세이브 가산기 승산 유니트에서 감산 절차를 간편하게 하는 장치 및 방법
Kuranishi CR geometry and Cartan geometry
US20240176589A1 (en) Processing Circuit

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination