CN112650471A - 用于处理掩蔽数据的处理器和方法 - Google Patents
用于处理掩蔽数据的处理器和方法 Download PDFInfo
- Publication number
- CN112650471A CN112650471A CN202011079492.XA CN202011079492A CN112650471A CN 112650471 A CN112650471 A CN 112650471A CN 202011079492 A CN202011079492 A CN 202011079492A CN 112650471 A CN112650471 A CN 112650471A
- Authority
- CN
- China
- Prior art keywords
- mask
- masking
- data
- processor
- masked
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 31
- 230000000873 masking effect Effects 0.000 claims abstract description 180
- 238000010586 diagram Methods 0.000 description 21
- 230000008901 benefit Effects 0.000 description 16
- 230000000295 complement effect Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000014509 gene expression Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 229910052760 oxygen Inorganic materials 0.000 description 1
- 229910052717 sulfur Inorganic materials 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
- H04L9/003—Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/57—Arithmetic 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/57—Arithmetic 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/575—Basic 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/76—Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
- G06F7/764—Masking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/04—Masking or blinding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Image Processing (AREA)
- Advance Control (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Executing Machine-Instructions (AREA)
Abstract
本公开的实施例涉及一种用于处理掩蔽数据的处理器和方法。该方法用于使用包括算术和逻辑单元的处理器来处理掩蔽数据,其中在算术和逻辑单元中对掩蔽数据进行的处理期间,掩蔽数据保持被掩蔽。
Description
相关申请的交叉引用
本申请要求于2019年10月11日提交的法国申请No.1911348的权益,该申请在此通过引用并入本文。
技术领域
本公开总体上涉及电子系统、电路和方法,并且更具体地涉及处理器和方法。本公开更具体地涉及被配置为处理掩蔽数据的处理器及其操作方法。
背景技术
处理器是一种存在于很多电子系统和电路中的电子组件,处理器被配置为通过执行来自计算机程序的命令和指令来处理数据。
在某些情况下,处理器可能必须处理秘密数据。这些秘密数据通常例如通过掩蔽来进行加密。
期望能够至少部分改善已知处理器的某些方面。
发明内容
在本领域中需要更可靠的处理器。
在本领域中需要被配置为处理掩蔽数据的处理器。
在本领域中需要被配置为处理掩蔽数据而不对这些掩蔽数据实现非掩蔽操作的处理器。
一个实施例解决了已知处理器的全部或一些缺点。
一个实施例提供了一种用于使用包括算术和逻辑单元的处理器来处理掩蔽数据的方法,其中在在算术和逻辑单元中对掩蔽数据进行的处理期间,掩蔽数据保持被掩蔽。
根据一个实施例,处理器还包括地址生成单元,其中在地址生成单元中对掩蔽数据进行的处理期间,掩蔽数据保持被掩蔽。
根据一个实施例,处理器还包括寄存器组,其中掩蔽数据被存储在寄存器组中,并且掩蔽数据在其整个存储中保持被掩蔽。
根据一个实施例,寄存器组包括用于数据的至少一个寄存器组和用于数据的掩码的至少一个寄存器组。
根据一个实施例,处理器还包括用于存储掩蔽指针的寄存器。
根据一个实施例,寄存器存储至少一个掩蔽寄存器指针和至少一个掩蔽程序指针。
根据一个实施例,寄存器包括引用数据的指针和指针掩码。
根据一个实施例,掩蔽数据可以根据第一掩蔽类型和第二掩蔽类型来被掩蔽。
根据一个实施例,第一掩蔽类型仅使用算术运算。
根据一个实施例,被第一掩蔽类型掩蔽的数据等于将待被掩蔽的数据与掩码相加。
根据一个实施例,第二掩蔽类型仅使用逻辑运算。
根据一个实施例,被第二掩蔽类型掩蔽的数据等于在待被掩蔽的数据与掩码之间应用按位“异或”运算。
根据一个实施例,算术和逻辑单元包括掩蔽电路,该掩蔽电路被配置为修改掩蔽数据的掩蔽类型。
另一实施例提供了一种被配置为执行前述方法的处理器。
附图说明
在以下通过示例而非限制的方式给出的对特定实施例的描述中,将详细描述上述特征和优点以及其他特征和优点,在附图中:
图1以框图形式示意性地示出了处理器的实施例;
图2以框图形式示意性地示出了用于生成图1的处理器的地址的算术和逻辑单元的实施例;
图3示出了说明图2的单元的操作流程图;
图4示出了说明图2的单元的另一操作流程图;
图5以框图形式示意性地示出了加法逻辑电路的实施例;
图6以框图形式示意性地示出了用于计算补数的逻辑电路的另一实施例;
图7以框图形式示意性地示出了用于在二进制字中进行位移位的逻辑电路的另一实施例;
图8以框图形式示意性地示出了乘法逻辑电路的实施例;
图9以框图形式示意性地示出了乘法逻辑电路的另一实施例;
图10以框图形式示意性地示出了乘法逻辑电路的另一实施例;
图11以框图形式示意性地示出了用于计算按位“与”逻辑的逻辑电路的另一实施例;
图12以框图形式示意性地示出了用于计算按位“或”逻辑的逻辑电路的实施例;以及
图13以框图形式示意性地示出了用于计算按位“异或”逻辑的逻辑电路的实施例。
具体实施方式
在各个附图中,相似的特征已经由相似的附图标记表示。特别地,在各个实施例之间共有的结构和/或功能特征可以具有相同的附图标记并且可以设置相同的结构、尺寸和材料特性。
为了清楚起见,仅详细示出和描述了对理解本文中描述的实施例有用的操作和元件。这里将不公开处理器的完整操作,下面公开的实施例与处理器的大多数典型操作方法兼容。
除非另有说明,否则当提及连接在一起的两个元件时,表示没有导体以外的任何中间元件的直接连接;而当提及耦合在一起的两个元件时,表示这两个元件可以连接或者它们可以经由一个或多个其他元件耦合。
在以下公开中,除非另有说明,否则当提及绝对位置限定词(诸如术语“前面”、“后面”、“顶部”、“底部”、“左侧”、“右侧”等),或相对位置限定词(诸如术语“上方”、“下方”、“上部”、“下部”等),或取向限定词(诸如“水平”、“垂直”等)时,参考图中所示的方向。
除非另有说明,否则表述“大约”、“近似”、“基本上”和“约”表示在10%以内,优选地在5%以内。
图1以框图形式示意性地示出了处理器100(CPU)的实施例的结构体系。
处理器100是被配置为处理掩蔽数据和掩蔽指令的处理器。更具体地,处理器100接收掩蔽数据Data_M及其掩码Mask_D、以及掩蔽指令Instr_M及其掩码Mask_I作为输入。处理器提供掩蔽地址Add_M及其掩码Mask_A、掩蔽结果数据Result_M及其掩码Mask_R作为输出,并且还可以提供处理器存储的掩蔽数据Data_S及其掩码Mask_S。根据一个实施例变型,处理器100可以直接提供未掩蔽地址作为输出。
处理器100由以下各项之中的几种电子电路组成:
-寄存器组101(DATA REG),被配置为存储掩蔽数据;
-寄存器组102(MASK REG),被配置为存储在寄存器组101中
所存储的掩蔽数据掩码;
-电路103(INSTRUCTION DECODE EXECUTE),用于解码和执
行指令;
-算术和逻辑及地址生成单元104(ALU AGU);
-寄存器105(SP/PC DATA),被配置为存储数据和程序指针;以及
-寄存器106(SP/PC MASK),被配置为存储指针掩码。
寄存器组101接收掩蔽数据Data_M或掩蔽结果Result_M作为输入,并且提供掩蔽数据Data_S作为输出。寄存器组101被配置为在由处理器100对掩蔽数据Data_M和掩蔽结果Result_M进行的处理期间,存储掩蔽数据Data_M和掩蔽结果Result_M。
寄存器组102接收数据掩码Mask_D和结果掩码Mask_R作为输入,并且提供掩码Mask_S作为输出。寄存器组102被配置为在处理器100对数据掩码Mask_D和结果掩码Mask_R进行的处理期间,存储数据掩码Mask_D和结果掩码Mask_R。
解码和指令执行电路103接收掩蔽指令Instr_M和指令掩码Mask_I作为输入,并且提供操作码Opcode作为输出。操作码Opcode未被掩蔽。电路103去掩蔽指令Instr_M,以便确定操作码Opcode。
算术和逻辑及地址生成单元104接收掩蔽数据Data_S、掩码Mask_S、掩蔽数据指针Point_D、指针掩码Mask_P和操作码Opcode作为输入。单元104提供掩蔽地址Add_M、地址掩码Mask_A、掩蔽结果数据Result_M和结果掩码Mask_R作为输出。单元104具有两个功能。第一功能是通过对掩蔽数据Data_S和掩码Mask_S应用算术和/或逻辑运算来执行操作码Opcode,以提供掩蔽结果数据Result_M及其掩码Mask_R。第二功能是执行操作码Opcode以便计算地址Add_M及其掩码Mask_A。根据一种变型,单元104可以由算术和逻辑单元和地址生成单元组成。
寄存器105接收掩蔽结果数据Result_M作为输入,并且提供掩蔽数据指针Point_D作为输出。寄存器105例如由存储掩蔽寄存器指针或掩蔽堆栈指针(SP)的寄存器、以及存储掩蔽程序指针(PC)的另一寄存器组成。堆栈指针是引用寄存器中最后存储的基准的地址、或引用存储在寄存器中的下一基准的地址的指针。程序指针是引用所使用的最后操作码的地址、或引用待被使用的下一操作码的地址的指针。在这里描述的情况下,掩蔽数据指针Point_D由以下指针组成:引用写入存储器中的最后数据的地址的掩蔽寄存器指针,以及引用由单元104使用的最后操作码Opcode的地址的掩蔽程序指针。
寄存器106接收结果掩码Mask_R作为输入,并且提供指针掩码Mask_P作为输出。寄存器106类似于寄存器105,但是与掩码相关联。因此,寄存器106例如由存储寄存器指针掩码的寄存器和存储程序指针掩码的另一寄存器组成。在这里描述的情况下,指针掩码Mask_P是被存储在寄存器105中的掩蔽数据指针Point_D的掩码。
处理器100的操作模式如下。处理器100接收指令Instr_M和待被处理的掩蔽数据Data_M及其掩码Mask_I和Mask_M作为输入。指令Instr_M未被掩蔽,然后由电路103转换以提供操作码Opcode。掩蔽数据Data_M及其掩码Mask_M分别被存储在寄存器组101和102中。单元104接收操作码Opcode和待被处理的掩蔽数据Data_S及其掩码Mask_S、以及掩蔽数据指针Point_D及其掩码Mask_P。单元104执行不同的算术和/或逻辑运算以提供掩蔽结果数据Result_M及其掩码Mask_R、以及地址Add_M及其掩码Mask_A。单元104执行其所有操作,而无需对所有操作所处理的掩蔽数据执行去掩蔽操作。换言之,掩蔽数据在由单元104对其进行的整个处理中保持被掩蔽。将结合图2更详细地公开单元104。掩蔽结果数据Result_M可以被存储在数据寄存器组101中,并且被用于获取掩蔽数据指针Point_D。结果掩码Mask_R可以被存储在寄存器组102中,并且被用于获取指针掩码Mask_P。
图2以框图形式示意性地示出了关于图1所公开的单元104(ALU AGU)的结构体系的一部分示例的更多细节。这里公开的部分被配置为对掩蔽数据Data_S和被提供给单元104的掩码Mask_S应用算术和/或逻辑运算。
单元104包括:
-两个掩蔽电路1041和1044(TRANSMASKING);
-电路1042(ARITH OPERATIONS),被配置为执行算术运算;
以及
-电路1043(LOGIC OPERATIONS),被配置为执行逻辑运算。
掩蔽电路1041是被配置为修改掩蔽类型的电路,该掩蔽类型被用于掩蔽掩蔽数据Data_S。实际上,掩蔽数据Data_S可以以两种不同的方式来被掩蔽。掩蔽掩蔽数据Data_S的第一种方法是使用一个或几个算术运算来组合基准及其掩码,并且从而获取掩蔽基准。作为示例,通过使用加法运算,更具体地,通过将掩码与希望掩蔽的基准相加,来掩蔽掩蔽数据Data_S。掩蔽掩蔽数据Data_S的第二种方法是使用一个或几个逻辑运算来组合基准及其掩码,并且从而获取掩蔽基准。作为示例,通过使用按位“异或”运算,更具体地,通过在数据及其掩码之间执行按位“异或”运算,来掩蔽掩蔽数据Data_S。
根据一个优选实施例,被存储在寄存器组101中的掩蔽数据优选地具有相同的掩蔽类型。根据一个实施例,所使用的掩蔽类型是算术掩蔽。作为变型,这些掩蔽的数据可以具有不同的掩蔽类型。
掩蔽电路1041被具体配置为根据随后将被应用于掩蔽基准Data_S的运算,来修改所使用的掩蔽类型以使其适应掩蔽基准Data_S的掩蔽类型。更具体地,电路1041被配置为执行两个掩码转换操作,第一操作使得可以将逻辑类型的掩码转换成算术类型的掩码,并且第二操作使得可以将算术类型的掩码转换为逻辑类型的掩码。这两个掩码转换操作不包括对掩蔽数据的去掩蔽操作。在这里公开的示例中,这两个掩码转换操作不会修改所使用的掩码;它们只能修改掩蔽数据。作为变型,掩码转换操作可以修改与掩蔽数据相关联的掩码。结合图3和4公开了掩码转换操作的示例。因此,电路1041接收掩蔽数据Data_S和掩码Mask_S作为输入,并且提供掩蔽数据Data_A及其掩码Mask_S、以及掩蔽数据Data_L及其掩码Mask_S作为输出。掩蔽数据Data_A被算术类型的掩码掩蔽。掩蔽数据Data_L被逻辑类型的掩码掩蔽。
掩蔽电路1044是具有类似于电路1041的功能的电路。掩蔽电路1044与电路1041的不同之处在于,掩蔽电路1044接收掩蔽数据作为输入,并且在电路1042和1043的输出处接收其掩码。掩蔽电路1044使得可以调适其接收的掩蔽数据的掩蔽类型,以用于将来将掩蔽数据存储在寄存器组101的寄存器中。电路1044提供掩蔽结果数据Result_M及其掩码Mask_R作为输出。
应当注意,如果到达电路1041或电路1044的数据已经具有与接着被请求的运算相对应的掩蔽类型,则电路1041和1044不会修改其掩蔽类型。
电路1042接收掩蔽数据Data_A及其掩码Mask_S作为输入,并且提供掩蔽结果数据ResultA_M及其掩码Mask_RA作为输出。电路1042是实现诸如加法、补数的计算、乘法、位移位运算等算术运算的电路。关于图5至10公开了允许实现这些运算的电路示例。
电路1043接收掩蔽数据Data_L及其掩码Mask_S作为输入,并且提供掩蔽结果数据ResultL_M及其掩码Mask_RL作为输出。电路1043是实现诸如按位“与”、按位“或”、按位“异或”(XOR)等逻辑运算的电路。关于图11至13公开了允许实现这些运算的电路示例。
在某些情况下,可以应用逻辑运算和算术运算来执行相同的指令,因此掩蔽结果数据ResultA_M和ResultL_M可以在同一循环内被重复使用,同时被重新发送给掩蔽电路1041或掩蔽电路1044,以便根据将被应用于它们的运算来调节其掩蔽类型。
图3和4是图示在关于图2公开的电路1041中使用的掩蔽转换操作的示例流程图。
掩蔽基准A_M表示被掩码MA掩蔽的基准A。数据A和A_M以及掩码MA都是包括n位的二进制字,n是自然整数。作为变型,数据A、A_M和掩码MA是具有不同位数的二进制字。
在图3和4的示例中,算术掩蔽是加法类型的掩蔽,其中掩码与待被掩蔽的基准相加。更具体地,掩蔽基准A_M通过以下公式给出:
A_M=(A+MA)mod2n
其中:
-“+”表示加法运算;以及
-“mod”表示取模运算。
逻辑掩蔽是使用按位“异或”运算的掩蔽。更具体地,掩蔽基准A_M由以下公式给出:
A_M=A xor MA
其中“xor”表示按位“异或”运算。
图3示出了由算术掩蔽运算产生的掩蔽基准到由逻辑掩蔽运算产生的掩蔽基准的掩蔽转换操作ArithToLogic。
数据B_M表示利用算术掩蔽运算被掩码MB掩蔽的数据B。数据B和B_M以及掩码MB都是包括n位的二进制字,n是自然整数。
操作ArithToLogic将掩蔽基准B_M及其掩码MB用作输入,并且提供新的掩蔽基准B_M'作为输出。数据B_M表示利用逻辑掩蔽运算被掩码MB掩蔽的数据B。
在步骤21(Comp)中,计算掩蔽基准B_M的补数!B_M。该步骤不需要使用基准B;结合图6公开实现该运算的示例性电路。
在步骤22(Carry)中,根据掩蔽基准B_M和掩码MB计算进位数字CarryB。更具体地,进位数字CarryB由以下公式给出:
其中:
-“i”是从0到n-1的自然整数;
-“x[i]”表示二进制字x的等级i的位;
-“.”表示按位“与”逻辑运算;以及
-“!x”表示二进制字x的补数。
步骤22不需要使用未遮蔽的基准B。关于图5至13公开了被配置为执行由该公式所使用的运算的电路示例。作为示例,步骤21和22可以同时进行。
在步骤23(XOR)中,通过执行以下运算来计算新的掩蔽基准B_M':
B_M′=!B_M xor CarryB
关于图13公开了执行按位“异或”运算的示例性电路。
ArithToLogic操作的一个优点是,它不使用未掩蔽的基准B来将基准B_M转换为基准B_M'。
图4示出了利用逻辑掩码被掩蔽的数据到利用算术掩码被掩蔽的数据的掩蔽转换操作ArithToLogic。
基准C_M表示通过逻辑掩蔽运算被掩码MC掩蔽的基准C。数据C和C_M以及掩码MC都是包括n位的二进制字。
操作LogicToArith使用掩蔽基准C_M及其掩码MC作为输入,并且提供新的掩蔽基准C_M'作为输出。基准C_M表示通过算术掩蔽运算被掩码MC掩蔽的基准C。
在步骤31(Carry)中,根据掩蔽基准C_M和掩码MC计算进位数字CarryC。更具体地,进位数字CarryC由以下公式给出:
在步骤32(XOR)中,通过按位执行以下运算来计算新的掩蔽基准C_M':
C_M′=C_M xor CarryC
LogicToArith操作的一个优点是,它不使用未掩蔽的基准C来将基准C_M转换为基准C_M'。
图5至10示出了被配置为执行关于图2所公开的电路1042的算术运算的电路示例。
在这些图中公开的示例中,算术掩蔽运算与关于图3和4公开的相同。
图5以框图形式示意性地示出了被配置为实现由框41(+)表示的附加运算的逻辑电路。
在图5所示的示例中,附加运算使用两个掩蔽数据D_M和E_M、及其掩码MD和ME作为输入,并且提供掩蔽基准F_M及其掩码MF作为输出。基准D_M(分别为E_M、F_M)是通过掩码MD(分别为ME、MF)对数据D(分别为E、F)进行算术掩蔽的结果。掩蔽基准F_M和掩码MF由以下关系式给出:
作为变型,加法运算可以包括更多的输入数据。
该运算的一个优点是,数据D和E对于计算掩蔽基准F_M不是必需的。
图6以框图形式示意性地示出了逻辑电路42(Comp),该逻辑电路42(Comp)被配置为实现用于计算1的补数的运算。
在图6所示的示例中,用于计算1的补数的运算包括掩蔽基准G_M及其掩码MG作为输入,并且提供掩蔽基准H_M及其掩码MH作为输出。基准(分别为G_M、H_M)是通过掩码(分别为MG、MH)对基准(分别为G、H)进行算术掩蔽的结果。掩蔽基准H_M和掩码MH由以下关系式给出:
该操作的一个优点是,基准G对于计算掩蔽基准H_M不是必需的。
根据一个实施例变型,通过以下关系式给出掩蔽基准H_M和掩码MH:
其中“-”表示减法运算。
图7以框图形式示意性地示出了被配置为实现位移位运算的逻辑电路43(Shift)。
在图7所示的示例中,位移位运算包括掩蔽基准I_M及其掩码MI作为输入,并且提供掩蔽基准J_M及其掩码MJ作为输出。基准(分别为I_M、J_M)是通过掩码(分别为MI、MJ)对数据(分别为I、J)进行算术掩蔽的结果。二进制字I_M、J_M、I、J、MI、MJ例如是具有n位的二进制字,n是自然整数。位移位运算还使用二进制字SelectLR作为输入,以向其指示所执行的运算是向右还是向左进行位移位。在向左进行位位移的情况下,掩蔽基准J_M和掩码MJ由以下关系式给出:
其中“*”表示乘法运算。
其中m是作为输入的掩蔽基准的位的期望移位,m是小于或等于n的自然整数。
该运算的一个优点是,数据I对于计算掩蔽基准J_M不是必需的。
图8和9以框图形式示意性地示出了被配置为实现乘法运算的逻辑电路的实施例。
乘法运算使用两个掩蔽数据K_M和L_M及其相应掩码MK和ML作为输入,并且提供掩蔽基准M_M及其掩码MM作为输出。基准K_M(分别为L_M、M_M)是通过掩码MK(分别为ML、MM)对基准K(分别为L,M)进行算术掩蔽的结果。二进制字K_M、L_M、M_M、K、L、M、MK、ML和MM是具有n位的二进制字,n是自然整数。掩蔽基准M_M和掩码MM例如由以下公式给出:
可以考虑掩蔽基准M_M和掩码MM的其他表达式。
图8示出了实现乘法运算的电路51。电路51包括:
-四个乘法电路511、512、513和514(X);以及
-两个加法电路515和516(+)。
乘法电路511接收掩蔽基准K_M和掩蔽基准L_M作为输入,并且提供这些数据的乘法K_M*L_M作为输出。
乘法电路512接收掩蔽基准K_M和掩码ML作为输入,并且提供该乘法的结果K_M*ML作为输出。
乘法电路513接收掩蔽基准L_M和掩码MK作为输入,并且提供该乘法的结果L_M*MK作为输出。
乘法电路514接收掩码MK和掩码ML作为输入,并且提供该乘法的结果MK*ML作为输出。
加法电路515接收电路511的乘法的结果K_M*L_M和电路514的乘法的结果MK*ML作为输入,并且提供掩蔽基准M_M作为输出。
加法电路516接收电路512的乘法的结果K_M*ML和电路513的乘法的结果M_L*MK作为输入,并且提供掩码MM作为输出。
电路51的一个优点是,它不使用未掩蔽的数据K和L来计算掩蔽基准M_M及其掩码MM。
电路51的另一优点是,它使得可以在单个时钟周期内对两个掩蔽数据进行乘法运算。
图9示出了实现乘法运算的电路52。电路52包括:
-三个选择器521、522和523;
-一个乘法电路524(X);
-一个加法电路525(+);
-切换电路526;以及
-寄存器527(REG)。
选择器521接收掩蔽基准K_M和掩码MK作为输入,并且提供第一二进制字select1作为输出。
选择器522接收掩蔽基准L_M和掩码ML作为输入,并且提供第二二进制字select2作为输出。
乘法电路524接收两个二进制字select1和select2作为输入,并且提供该乘法的结果Prod作为输出。
选择器523接收与零(0)相对应的二进制字(接下来称为零基准)和时间延迟基准Temp作为输入,并且提供第三二进制字select3作为输出。
加法电路525接收乘法的结果Prod和二进制字select3作为输入,并且提供该加法的结果Sum作为输出。
切换电路526接收加法电路525的结果Sum作为输入,并且使用该结果Sum形成掩蔽基准M_M、掩码MM或时间延迟基准Temp作为输出。
寄存器527接收时间延迟基准Temp作为输入,并且提供相同的时间延迟基准Temp作为输出。寄存器527使得可以在运算的不同周期之间存储时间延迟基准Temp。
电路52使得可以通过使用四个时钟周期来执行乘法运算。在四个时钟周期内使用的计算步骤的示例如下。
在第一时钟周期中,选择器521选择掩蔽基准K_M,并且因此二进制字select1等于掩蔽基准K_M。选择器522选择掩蔽基准L_M,并且因此二进制字select2等于掩蔽基准L_M。乘法电路524提供二进制字select1和select2的乘积的结果Prod。因此,结果Prod等于掩蔽基准K_M与掩蔽基准L_M的乘积。选择器523选择零基准,并且因此二进制字select3等于零基准。加法电路525提供乘积Prod和二进制字select3之和的结果Sum。因此,结果Sum等于掩蔽基准K_M与掩蔽基准L_M的乘积。切换电路526将结果Sum提供给时间延迟基准Temp,以便将结果Sum存储在寄存器527中。
在第二时钟周期中,选择器521选择掩码MK,并且因此二进制字select1等于掩码MK。选择器522选择掩码ML,并且因此二进制字select2等于掩码ML。乘法电路524提供二进制字select1和select2的乘积的结果Prod。因此,结果Prod等于掩码MK和掩码ML的乘积。选择器523从寄存器527选择时间延迟基准Temp,并且因此二进制字select3等于时间延迟基准Temp。加法电路525提供乘积Prod和二进制字select3之和的结果Sum。因此,结果Sum等于:
Sum=K_M*L_M+MK*ML
切换电路526将结果Sum提供给掩蔽基准M_M。
在第三时钟周期中,选择器521选择掩蔽基准K_M,并且因此二进制字select1等于掩蔽基准K_M。选择器522选择掩码ML,并且因此二进制字select2等于掩码ML。乘法电路524提供二进制字select1和select2的乘积的结果Prod。因此,结果Prod等于掩蔽基准K_M与掩码ML的乘积。选择器523选择零基准,并且因此二进制字select3等于零基准。加法电路525提供乘积Prod和二进制字select3之和的结果Sum。因此,结果Sum等于掩蔽基准K_M与掩码ML的乘积。切换电路526将结果Sum提供给时间延迟基准Temp,以便将结果Sum存储在寄存器527中。
在第四时钟周期中,选择器521选择掩蔽基准L_M,并且因此二进制字select1等于掩蔽基准L_M。选择器522选择掩码MK,并且因此二进制字select2等于掩码MK。乘法电路524提供二进制字select1和select2的乘积的结果Prod。结果Prod等于掩蔽基准L_M和掩码MK的乘积。选择器523选择时间延迟基准Temp,并且因此二进制字select3等于时间延迟基准Temp。加法电路525提供乘积Prod和二进制字select3之和的结果Sum。然后结果Sum等于:
Sum=K_M*ML+L_M*MK
切换电路526将结果Sum提供给掩码MM。
电路52的一个优点是,可以通过使用单个乘法电路和单个加法电路来实现乘法运算。这样,电路52可以具有较小的体积。
图10以框图形式示意性地示出了被配置为实现乘法累加运算(MAC)的加法逻辑电路的实施例。图10更具体地示出了电路53。
乘法累加运算使用两个掩蔽数据K_M和L_M及其相应掩码MK和ML、以及掩蔽基准N_M及其掩码MN作为输入。该运算提供掩蔽基准M_M及其掩码MM作为输出。基准N_M是通过掩码MN对基准N进行算术掩蔽的结果。二进制字N_M、N和MN是例如具有n位的二进制字,n是自然整数。乘法累加运算由以下公式定义:
M=K*L+N
基准M_M和掩码MM由以下公式给出:
可以考虑掩蔽基准M_M和掩码MM的其他表达式。
图10的电路53包括与图9的电路52共用的元件。在下文中,将不再详细描述这些类似的元件,并且将仅强调两个电路52和53之间的差异。电路52包括:
-四个选择器521、522、523和531;
-乘法电路524;
-加法电路525;
-切换电路526;以及
-寄存器527。
电路53与电路52之间的差异在于,在电路53中,选择器523不接收零基准,而是接收二进制字select4和时间延迟基准Temp。
二进制字select4是选择器531的输出。选择器531接收掩蔽基准N_M及其掩码MN作为输入。
电路53使得可以通过使用四个时钟周期来执行乘法累加运算。在四个时钟周期期间所使用的计算步骤的示例如下。
在第一时钟周期中,选择器521选择掩蔽基准K_M,并且因此二进制字select1等于掩蔽基准K_M。选择器522选择掩蔽基准L_M,并且因此二进制字select2等于掩蔽基准L_M。乘法电路524提供二进制字select1和select2的乘积的结果Prod。因此,结果Prod等于掩蔽基准K_M与掩蔽基准L_M的乘积。选择器531选择掩蔽基准N_M,并且因此二进制字select4等于掩蔽基准N_M。选择器523选择二进制字select4,并且因此二进制字select3等于掩蔽基准N_M。加法电路525提供乘积Prod和二进制字select3之和的结果Sum。因此,结果Sum由以下公式给出:
Sum=K_M*L_M+N_M
切换电路526通过将结果Sum存储在寄存器527中来将结果Sum提供给时间延迟基准Temp。
在第二时钟周期中,选择器521选择掩码MK,并且因此二进制字select1等于掩码MK。选择器522选择掩码ML,并且因此二进制字select2等于掩码ML。乘法电路524提供二进制字select1和select2的乘积的结果Prod。因此,结果Prod等于掩码MK和掩码ML的乘积。选择器523选择被存储在寄存器527中的时间延迟基准Temp,并且因此二进制字select3等于时间延迟基准Temp。加法电路525提供乘积Prod和二进制字select3之和的结果Sum。然后结果Sum等于:
Sum=K_M*L_M+MK*ML+N_M
切换电路526将结果Sum提供给掩蔽基准M_M。
在第三时钟周期中,选择器521选择掩蔽基准K_M,并且因此二进制字select1等于掩蔽基准K_M。选择器522选择掩码ML,并且因此二进制字select2等于掩码ML。乘法电路524提供二进制字select1和select2的乘积的结果Prod。因此,结果Prod等于掩蔽基准K_M与掩码ML的乘积。选择器531选择掩码MN,并且因此二进制字select4等于掩码MN。选择器523选择二进制字select4,并且因此二进制字select3等于掩码MN。加法电路525提供乘积Prod和二进制字select3之和的结果Sum。然后结果Sum等于:
Sum=K_M*ML+MN
切换电路526将结果Sum提供给时间延迟基准Temp。
在第四时钟周期中,选择器521选择掩蔽基准L_M,并且因此二进制字select1等于掩蔽基准L_M。选择器522选择掩码MK,并且因此二进制字select2等于掩码MK。乘法电路524提供二进制字select1和select2的乘积的结果Prod。结果Prod等于掩蔽基准L_M和掩码MK的乘积。选择器523选择时间延迟基准Temp,并且因此二进制字select3等于时间延迟基准Temp。加法电路525提供乘积Prod和二进制字select3之和的结果Sum。然后结果Sum等于:
Sum=K_M*ML+L_M*MK+MN
切换电路526将结果Sum提供给掩码MM。
作为变型,选择器523还可以接收零基准,以使得能够执行与关于图9所公开的相似的乘法运算。
电路53的一个优点是,可以通过使用单个乘法电路和单个加法电路来实现乘法累加运算。然后,电路53可以具有较小的体积。
电路53的另一优点是,它可以执行乘法累加运算而无需使用未掩蔽的数据K、L和N。
图11至13示出被配置为执行关于图2所公开的电路1043的逻辑运算的电路示例。
在这些附图中所公开的示例中,逻辑掩蔽运算与关于图3和4公开的相同。
图11以框图形式示意性地示出了被配置为实现按位“或”逻辑运算的逻辑电路61(OR)。
在图11所示的示例中,按位“或”逻辑运算使用两个掩蔽数据O_M和P_M及其相应掩码MO和MP作为输入,并且提供掩蔽基准Q_M及其掩码MQ作为输出。掩蔽基准O_M(分别为P_M、Q_M)是通过掩码MO(分别为MP、MQ)对数据O(分别为P、Q)进行逻辑掩蔽的结果。掩蔽基准Q_M及其掩码MQ由以下关系式给出,按位执行:
其中“或”表示按位“或”逻辑运算。
电路61可以通过使用例如具有四个输入的“或”门和具有三个输入的四个“与”门来实现。
电路61的一个优点是,它不使用未掩蔽的数据O和P来计算掩蔽基准Q_M。
图12以框图形式示意性地示出了被配置为实现按位“与”逻辑运算的逻辑电路62(AND)。
在图12所示的示例中,按位“与”逻辑运算使用两个掩蔽数据R_M和S_M及其相应掩码MR和MS作为输入,并且提供掩蔽基准T_M及其掩码MT作为输出。掩蔽基准R_M(分别为S_M、T_M)是通过掩码MR(分别为MS、MT)对数据R(分别为S、T)进行逻辑掩蔽的结果。掩蔽基准T_M和掩码MT由以下关系式给出:
电路62可以通过使用例如具有四个输入的“或”门和具有三个输入的四个“与”门来实现。作为示例,图11和12的电路61和62可以由类似的电路实现。
电路62的一个优点是,它不使用未掩蔽的数据R和S来计算掩蔽基准T_M。
图13以框图形式示意性地示出了被配置为实现按位“异或”逻辑运算的逻辑电路63(XOR)。
在图13所示的示例中,按位“异或”逻辑运算使用两个掩蔽数据U_M和V_M及其相应掩码MU和MV作为输入,并且提供掩蔽基准W_M及其掩码MW作为输出。掩蔽基准U_M(分别为V_M、W_M)是通过掩码MU(分别为MV、MW)对数据U(分别为V、W)进行逻辑掩蔽的结果。掩蔽基准W_M和掩码MW由以下关系式给出:
电路62的一个优点是,它不使用未掩蔽的数据U和V来计算掩蔽基准W_M。
已经描述了各种实施例和变型。本领域技术人员将理解,可以组合这些实施例的某些特征,并且本领域技术人员将容易想到其他变型。特别地,可以考虑其他算术和逻辑运算。另外,在本公开中提及的逻辑和算术掩蔽的示例仅是示例,并且可以考虑其他掩蔽运算。
此外,算术和逻辑单元104的结构体系的一部分的另一示例可以包括在实现逻辑运算的电路之前的第一掩蔽电路和在实现算术运算的电路之前的第二掩蔽电路,每个掩蔽电路都使得可以在所请求的操作之前调适掩蔽类型。
最后,基于上文中提供的功能描述,本文中描述的实施例和变型的实际实现在本领域技术人员的能力范围内。
Claims (26)
1.一种方法,包括:
由处理器的算术和逻辑单元处理掩蔽数据;以及
在所述算术和逻辑单元对所述掩蔽数据进行的整个处理中,由所述处理器的所述算术和逻辑单元保持所述掩蔽数据被掩蔽。
2.根据权利要求1所述的方法,还包括:
由所述处理器的地址生成单元处理所述掩蔽数据;以及
在所述地址生成单元对所述掩蔽数据进行的整个处理中,由所述处理器的所述地址生成单元保持所述掩蔽数据被掩蔽。
3.根据权利要求1所述的方法,还包括:将所述掩蔽数据存储在所述处理器的寄存器组中;以及
在所述掩蔽数据在所述寄存器组中的整个存储中,保持所述掩蔽数据被掩蔽。
4.根据权利要求3所述的方法,其中所述寄存器组包括用于所述掩蔽数据的至少一个第一寄存器组、以及用于所述掩蔽数据的掩码的至少一个第二寄存器组。
5.根据权利要求1所述的方法,还包括:将掩蔽指针存储在所述处理器的寄存器中。
6.根据权利要求5所述的方法,还包括:将至少一个掩蔽寄存器指针以及至少一个掩蔽程序指针存储在所述寄存器中。
7.根据权利要求5所述的方法,其中被存储在所述寄存器中的所述掩蔽指针包括引用数据的指针和指针掩码。
8.根据权利要求1所述的方法,其中所述掩蔽数据根据第一掩蔽类型和/或第二掩蔽类型被掩蔽。
9.根据权利要求8所述的方法,其中所述第一掩蔽类型仅使用算术运算。
10.根据权利要求9所述的方法,其中被所述第一掩蔽类型掩蔽的掩蔽基准等于待被掩蔽的基准与掩码相加。
11.根据权利要求8所述的方法,其中所述第二掩蔽类型仅使用逻辑运算。
12.根据权利要求11所述的方法,其中被所述第二掩蔽类型掩蔽的掩蔽基准等于在待被掩蔽的基准与掩码之间应用按位“异或”运算。
13.根据权利要求8所述的方法,还包括:通过所述算术和逻辑单元的掩蔽电路来修改所述掩蔽数据的掩蔽类型。
14.一种处理器,包括:
算术和逻辑单元,被配置为在所述算术和逻辑单元中对掩蔽数据进行的整个处理中,保持所述掩蔽数据被掩蔽。
15.根据权利要求14所述的处理器,其中所述处理器还包括地址生成单元,所述地址生成单元被配置为在所述地址生成单元中对所述掩蔽数据进行的整个处理中,保持所述掩蔽数据被掩蔽。
16.根据权利要求14所述的处理器,其中所述处理器还包括寄存器组,所述寄存器组被配置为在所述掩蔽数据在所述寄存器组中的整个存储中,保持所述掩蔽数据被掩蔽。
17.根据权利要求16所述的处理器,其中所述寄存器组包括用于所述掩蔽数据的至少一个第一寄存器组、以及用于所述掩蔽数据的掩码的至少一个第二寄存器组。
18.根据权利要求14所述的处理器,其中所述处理器还包括寄存器,所述寄存器被配置为存储掩蔽指针。
19.根据权利要求18所述的处理器,其中所述寄存器被配置为存储至少一个掩蔽寄存器指针和至少一个掩蔽程序指针。
20.根据权利要求18所述的处理器,其中被存储在所述寄存器中的所述掩蔽指针包括引用数据的指针和指针掩码。
21.根据权利要求14所述的处理器,其中所述掩蔽数据根据第一掩蔽类型和/或第二掩蔽类型被掩蔽。
22.根据权利要求21所述的处理器,其中所述第一掩蔽类型仅使用算术运算。
23.根据权利要求22所述的处理器,其中被所述第一掩蔽类型掩蔽的掩蔽基准等于待被掩蔽的基准与掩码相加。
24.根据权利要求21所述的处理器,其中所述第二掩蔽类型仅使用逻辑运算。
25.根据权利要求24所述的处理器,其中被所述第二掩蔽类型掩蔽的掩蔽基准等于在待被掩蔽的基准与掩码之间应用按位“异或”运算。
26.根据权利要求21所述的处理器,其中所述算术和逻辑单元包括掩蔽电路,所述掩蔽电路被配置为修改所述掩蔽数据的掩蔽类型。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1911348 | 2019-10-11 | ||
FR1911348A FR3101980B1 (fr) | 2019-10-11 | 2019-10-11 | Processeur |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112650471A true CN112650471A (zh) | 2021-04-13 |
Family
ID=69810935
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011079492.XA Pending CN112650471A (zh) | 2019-10-11 | 2020-10-10 | 用于处理掩蔽数据的处理器和方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11922133B2 (zh) |
CN (1) | CN112650471A (zh) |
FR (1) | FR3101980B1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
FR3129011B1 (fr) * | 2021-11-10 | 2023-11-10 | St Microelectronics Rousset | Multiplication |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6173393B1 (en) * | 1998-03-31 | 2001-01-09 | Intel Corporation | System for writing select non-contiguous bytes of data with single instruction having operand identifying byte mask corresponding to respective blocks of packed data |
US20050114610A1 (en) * | 2003-11-26 | 2005-05-26 | Robinson Scott H. | Accessing private data about the state of a data processing machine from storage that is publicly accessible |
US20050198474A1 (en) * | 2004-03-08 | 2005-09-08 | Arm Limited | Bit field manipulation |
US20070071235A1 (en) * | 2005-09-29 | 2007-03-29 | Kabushiki Kaisha Toshiba | Encryption/decryption appararus |
US20140019467A1 (en) * | 2011-03-18 | 2014-01-16 | Fujitsu Limited | Method and apparatus for processing masked data |
CN103959237A (zh) * | 2011-11-30 | 2014-07-30 | 英特尔公司 | 用于提供向量横向比较功能的指令和逻辑 |
CN105027136A (zh) * | 2012-12-29 | 2015-11-04 | 英特尔公司 | 用于集成电路的安全密钥推导和密码逻辑 |
CN106575217A (zh) * | 2014-09-25 | 2017-04-19 | 英特尔公司 | 位置乱处理器、方法、系统和指令 |
US20180183576A1 (en) * | 2016-12-22 | 2018-06-28 | Shenzhen State Micro Technology Co Ltd | Mask s-box, block ciphers algorithm device and corresponding construction process |
CN108604987A (zh) * | 2016-03-03 | 2018-09-28 | 密码研究公司 | 将布尔掩码值转换为用于加密操作的算术掩码值 |
CN109255967A (zh) * | 2018-09-12 | 2019-01-22 | 三星电子(中国)研发中心 | 用于发布信息的方法和装置 |
WO2019046651A2 (en) * | 2017-08-30 | 2019-03-07 | Inpher, Inc. | EVALUATION OF REAL-VALUE FUNCTION PRESERVING HIGH PRECISION CONFIDENTIALITY |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2820914A1 (fr) | 2001-02-15 | 2002-08-16 | Bull Cp8 | Procede de securisation d'un ensemble electronique mettant en oeuvre en algorithme cryptographique utilisant des operations booleennes et des operations arithmetiques, et systeme embarque correspondant |
US20040254966A1 (en) | 2003-05-16 | 2004-12-16 | Daewoo Educational Foundation | Bit manipulation operation circuit and method in programmable processor |
US8050402B2 (en) * | 2004-12-01 | 2011-11-01 | Telecom Italia S.P.A. | Method and related device for hardware-oriented conversion between arithmetic and boolean random masking |
US20100281092A1 (en) | 2006-08-09 | 2010-11-04 | Thomas Kuenemund | Standard cell for arithmetic logic unit and chip card controller |
US7921148B2 (en) | 2006-08-09 | 2011-04-05 | Infineon Technologies Ag | Standard cell for arithmetic logic unit and chip card controller |
KR101566408B1 (ko) | 2009-03-13 | 2015-11-05 | 삼성전자주식회사 | 불 마스크와 산술 마스크의 변환 회로 및 변환 방법 |
US8392494B2 (en) | 2009-06-26 | 2013-03-05 | Intel Corporation | Method and apparatus for performing efficient side-channel attack resistant reduction using montgomery or barrett reduction |
US9588764B2 (en) | 2011-12-23 | 2017-03-07 | Intel Corporation | Apparatus and method of improved extract instructions |
US9542154B2 (en) | 2013-06-25 | 2017-01-10 | Intel Corporation | Fused multiply add operations using bit masks |
EP2884387B1 (en) | 2013-12-13 | 2016-09-14 | Thomson Licensing | Efficient modular addition resistant to side-channel attacks |
US9898623B2 (en) * | 2014-03-31 | 2018-02-20 | Stmicroelectronics S.R.L. | Method for performing an encryption with look-up tables, and corresponding encryption apparatus and computer program product |
EP3503460A1 (en) | 2017-12-22 | 2019-06-26 | Secure-IC SAS | System and method for boolean masked arithmetic addition |
EP3557813A1 (en) * | 2018-04-17 | 2019-10-23 | Gemalto Sa | Method secured against side-channel attacks performing an arithmetic operation of a cryptographic algorithm mixing boolean and arithmetic operations |
DE102018113475A1 (de) * | 2018-06-06 | 2019-12-12 | Infineon Technologies Ag | Rechenwerk zum rechnen mit maskierten daten |
US11507699B2 (en) * | 2019-09-27 | 2022-11-22 | Intel Corporation | Processor with private pipeline |
FR3101983B1 (fr) | 2019-10-11 | 2021-11-12 | St Microelectronics Grenoble 2 | Détermination d'un bit indicateur |
FR3101981B1 (fr) | 2019-10-11 | 2021-11-12 | St Microelectronics Grenoble 2 | Extraction et insertion de mots binaires |
FR3101982B1 (fr) | 2019-10-11 | 2024-03-08 | St Microelectronics Grenoble 2 | Détermination d'un bit indicateur |
-
2019
- 2019-10-11 FR FR1911348A patent/FR3101980B1/fr active Active
-
2020
- 2020-09-30 US US17/038,774 patent/US11922133B2/en active Active
- 2020-10-10 CN CN202011079492.XA patent/CN112650471A/zh active Pending
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6173393B1 (en) * | 1998-03-31 | 2001-01-09 | Intel Corporation | System for writing select non-contiguous bytes of data with single instruction having operand identifying byte mask corresponding to respective blocks of packed data |
US20050114610A1 (en) * | 2003-11-26 | 2005-05-26 | Robinson Scott H. | Accessing private data about the state of a data processing machine from storage that is publicly accessible |
US20050198474A1 (en) * | 2004-03-08 | 2005-09-08 | Arm Limited | Bit field manipulation |
US20070071235A1 (en) * | 2005-09-29 | 2007-03-29 | Kabushiki Kaisha Toshiba | Encryption/decryption appararus |
US20140019467A1 (en) * | 2011-03-18 | 2014-01-16 | Fujitsu Limited | Method and apparatus for processing masked data |
CN103959237A (zh) * | 2011-11-30 | 2014-07-30 | 英特尔公司 | 用于提供向量横向比较功能的指令和逻辑 |
CN105027136A (zh) * | 2012-12-29 | 2015-11-04 | 英特尔公司 | 用于集成电路的安全密钥推导和密码逻辑 |
CN106575217A (zh) * | 2014-09-25 | 2017-04-19 | 英特尔公司 | 位置乱处理器、方法、系统和指令 |
CN108604987A (zh) * | 2016-03-03 | 2018-09-28 | 密码研究公司 | 将布尔掩码值转换为用于加密操作的算术掩码值 |
US20180183576A1 (en) * | 2016-12-22 | 2018-06-28 | Shenzhen State Micro Technology Co Ltd | Mask s-box, block ciphers algorithm device and corresponding construction process |
WO2019046651A2 (en) * | 2017-08-30 | 2019-03-07 | Inpher, Inc. | EVALUATION OF REAL-VALUE FUNCTION PRESERVING HIGH PRECISION CONFIDENTIALITY |
CN109255967A (zh) * | 2018-09-12 | 2019-01-22 | 三星电子(中国)研发中心 | 用于发布信息的方法和装置 |
Non-Patent Citations (1)
Title |
---|
PIETER PHILIPPAERTS ET AL.: "Code pointer masking: hardening applications against code injection attacks", ASSOCIATION FOR COMPUTING MACHINERY, pages 194 * |
Also Published As
Publication number | Publication date |
---|---|
FR3101980B1 (fr) | 2021-12-10 |
FR3101980A1 (fr) | 2021-04-16 |
US11922133B2 (en) | 2024-03-05 |
US20210109711A1 (en) | 2021-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI804200B (zh) | 執行複數的熔合乘-加指令的系統與方法 | |
CN106575215B (zh) | 处理指令的系统、设备、方法、处理器、介质和电子设备 | |
JP4980834B2 (ja) | 算術プロセッサ | |
CN112650471A (zh) | 用于处理掩蔽数据的处理器和方法 | |
US7725520B2 (en) | Processor | |
JP6744913B2 (ja) | 浮動小数点数の丸め処理 | |
KR20170097018A (ko) | 벡터 브로드캐스트 및 xorand 로직 명령어를 위한 장치 및 방법 | |
CN102231102B (zh) | 基于余数系统的rsa密码处理方法及协处理器 | |
US20060149804A1 (en) | Multiply-sum dot product instruction with mask and splat | |
CN113791820B (zh) | 位矩阵乘法 | |
JP2015158940A (ja) | ベクトルフレンドリ命令フォーマット及びその実行 | |
WO2020146285A1 (en) | Protection of cryptographic operations by intermediate randomization | |
US7895417B2 (en) | Select-and-insert instruction within data processing systems | |
EP3716049B1 (en) | Apparatuses, methods, and systems for hashing instructions | |
CN117707622A (zh) | 用于具有可变精度输入操作数的融合乘-加操作的指令 | |
EP3238022B1 (en) | Method and apparatus for performing big-integer arithmetic operations | |
CN107851016B (zh) | 向量算术指令 | |
CN109144472B (zh) | 一种二元扩域椭圆曲线的标量乘法及其实现电路 | |
CN114579078A (zh) | 一种加速器、加速方法和电子设备 | |
US11714604B2 (en) | Device and method for binary flag determination | |
CN109643235B (zh) | 用于多源混合操作的装置、方法和系统 | |
CN112650469A (zh) | 用于二进制标志确定的电路和方法 | |
JP5193358B2 (ja) | 多項式データ処理演算 | |
JP3556252B2 (ja) | オフセット合計を計算するデータ処理システムとその方法 | |
CN110914800A (zh) | 基于寄存器的复数处理 |
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 |