CN113032797A - 在处理设备中执行加密操作的方法 - Google Patents
在处理设备中执行加密操作的方法 Download PDFInfo
- Publication number
- CN113032797A CN113032797A CN202011553619.7A CN202011553619A CN113032797A CN 113032797 A CN113032797 A CN 113032797A CN 202011553619 A CN202011553619 A CN 202011553619A CN 113032797 A CN113032797 A CN 113032797A
- Authority
- CN
- China
- Prior art keywords
- operand
- value
- register
- storing
- word
- 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
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]
-
- 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/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- 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/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- 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
- H04L2209/046—Masking or blinding of operations, operands or results of the operations
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Optimization (AREA)
- Algebra (AREA)
- Mathematical Analysis (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
Abstract
本公开的各实施例涉及一种在处理设备中执行加密操作的方法。使用密钥执行在由给定数目的字形成的第一操作数与的第二操作数之间的迭代操作。对于密钥中的每个位,迭代操作包括:根据位的值将第一操作集合和第二操作集合中的一个操作集合施加到第一操作数和第二操作数,并且基于控制位值有条件地交换第一操作数和第二操作数的字,控制位值通过将逻辑异或函数施加到随机位而被获取。
Description
技术领域
本描述涉及用于在处理设备中对数据执行加密操作的技术。
可以应用各种实施例,诸如使用加密或数字签名方案的智能卡、 微控制器、机顶盒等。
背景技术
加密协议是抽象的或具体的协议,它们执行与安全相关的功能并 且应用加密方法,通常作为加密原语的序列。
在使用加密算法的设备(例如,实现加密算法(诸如,ECC或 RSA)的微控制器)的侧信道攻击(Side Channel Attacks)的防护领 域中,已知竖直侧信道攻击(SCA),其中攻击者可以使用设备对任 意数据(输入)进行加密,以获取由加密算法使用的加密密钥。攻击者在已知输入数据的加密期间记录侧信道信息,该侧信道由功耗、电 磁辐射或其它类似的量表示。
侧信道与由设备处理的数据链接,这些数据是加密密钥并且攻击 者的数据作为输入,因此表示已知数据。
攻击者利用不同的已知输入数据和恒定的未知密钥记录许多“踪 迹(traces)”,对一部分加密密钥的值进行假设,并且使用统计方 法使用踪迹来验证这种假设。为了施加这种统计方法,攻击者需要使 用许多踪迹,每个踪迹具有不同的已知输入数据和恒定密钥。
然而,在非对称加密术中,尽管在计算期间使用的数据发生了变 化,但是还是有数学方法可以为每次执行修改密钥,使得操作结果不 会发生变化。因此,由于密钥不再是恒定的,攻击者无法收集许多踪 迹。
因此,当攻击者需要在单个踪迹上工作时,攻击者会部署所谓的 水平攻击(Horizontal Attack)。
在要保护的设备(例如,处理单元或微控制器)中,通常有:存 储器,存储输入/输出数据和中间值;控制器,从RAM存储器读取字 并且将其存储到寄存器中,然后“调用(call)”寄存器上的乘法器 (例如,对存储在寄存器中的操作数执行乘法操作的乘法器单元)。 乘法器将操作数相乘并且将结果写入RAM存储器。在这种情况下, 超过95%的计算是在乘法器内完成的。
为此,在图1中示出了处理单元或设备10,处理单元或设备10 包括控制器单元或电路11,控制器单元或电路11从存储器13(例如, RAM存储器)读取图1中以a和b表示的字,并且将它们存储到设 置在控制器单元11中的寄存器中,然后对寄存器的内容(字a、b) 调用乘法器单元12。乘法器单元12对存储在控制器11的寄存器中的 操作数a、b执行乘法操作。乘法器12将操作数相乘,例如执行模n 乘法R=a·b mod n,并且将结果R写入RAM存储器13。
参考常规处理设备架构,控制器单元11和乘法器12可以对应于 控制器单元和处理器单元(诸如CPU)的ALU,而存储器13可以相 对于处理设备10在外部。应当注意,在变型实施例中,这种元件11、 12、13可以是实现的硬件或软件或其各种组合。
在非对称加密术中,可以使用例如涉及实现模幂的循环的RSA (里夫斯特-沙米尔-阿德曼(Rivest-Shamir-Adleman))加密术,或 涉及实现椭圆曲线标量乘法的循环的ECC(椭圆曲线加密术(Elliptic Curve Cryptography))。
在ECC加密术中,使用了主循环迭代地实现给定操作数P与标 量k(密钥)的标量乘法。首先,在这种循环之外,将第一操作数Q0初始化为无穷大点,并且将第二操作数Q1设置为给定的操作数P。
在主循环中处理完密钥k的所有位之后,将第一操作数Q0作为 k*P的结果返回。如以下指令组(1)中所示,实现了这种循环,该 循环表示密钥位值ki的迭代:
L1.if ki=0:
L2.Q1=Add(Q1,Q0)
L3.Q0=Double(Q0)
L4.else:
L5.Q0=Add(Q0,Q1)
L6.Q1=Double(Q1) (1)
其中ki是密钥k的第i个位,Q0、Q1是从存储器13或从控制器单元 11的对应的寄存器读取的第一操作数和第二操作数,将椭圆曲线点加 法和椭圆曲线点加倍操作相加并加倍。Q1、Q0是以投影格式(X,Y,Z) 表示的点,例如(x,y)=X/Z,Y/Z。在变型实施例中,可以使用其 它类型的投影坐标,诸如(x,y)=X/Z2,Y/Z3。
因此,点乘法的主循环(1)包括:
对于密钥k的每个位ki,特别是(如果该位的长度为1位) 每个位i,
如果这种位Ki为零,则将第二操作数Q1(例如写在存储器 13的相同的地址中)对应于操作数变量设置为等于两个操作数Q1、 Q0的总和并且第一操作数Q0乘以2,
否则,第一操作数Q0等于两个操作数Q1、Q0的总和并且第 二操作数Q1乘以2。
而且,以RSA为例,主循环由以下指令组(2)实现,它们表示 每个密钥位ki的迭代:
M1.if ki=0:
M2.q1=s*q1
M3.s=s*s
M4.else:
M5.q0=s*q0
M6.s=s*s (2)
其中s是被称为平方的值,q0或q1是从存储器13读取的操作数,q0通常表示模幂的基数,q1是伪整数值。
因此,点乘法的RSA主循环包括:
对于密钥k的每个位ki,特别是每个位ki,
如果这种位ki为零,则将第二操作数q1设置为等于第二操 作数q1乘以平方s,s*q1,并且将平方s设置为等于平方乘以其本身 s*s,
否则,将第一操作数s*q0设置为等于第一操作数q0乘以平 方s,s*q0,并且平方s被设置为等于平方乘以其本身,s*s。
通常会确定三个水平攻击族:
对秘密位操纵的攻击
对地址的攻击
对数据的攻击
例如,如果攻击者可以理解,则基于读/写模式,对于具有乘法循 环(1)的ECC非对称加密术,
·在加倍操作期间是否读取或写入ECC操作数Q0或Q1, 或者
·在加法操作期间是否写入ECC操作数Q0或Q1。
然后攻击者可以恢复密钥位ki。
例如,基于读取/写入模式,对于具有乘法循环(2)的RSA非对 称加密术,如果攻击者可以了解在乘法期间是读取还是写入了RSA 操作数q0或q1,则攻击者可以恢复密钥位ki。
在地址水平攻击(HA)的攻击中,此攻击族依赖于单个踪迹并 将单个踪迹拆分为子踪迹,每个循环迭代一次,然后攻击者尝试在具 有相同(或不同)的密钥位ki的值的子踪迹中查找相似性(或差异)。
通过统计方法,可以识别所谓的“泄漏点(leakage point)”, 从中可以提取密钥位ki。
从Johann Heyszl、Stefan Mangard、Benedikt Heinz、Frederic Stumpf 和GeorgSigl出版的出版物“加密实现的局部电磁分析”中,已知在 使用算术有条件地交换(或者cswap)的情况下免受水平侧信道攻击 的保护方法,由指令(3)定义如下:
I1.def cswap(Q0,Q1,c):
I2.T=Q0+Q1
I3.Q0=T-Q1-c//Q0=Q0 if c=0 else Q0=Q1
I4.Q1=T-Qc//Q1=Q1 if c=1 else Q1=Q0 (3)
其中T是操作数的值的总和,c是控制位值,Q1-c和Qc是分别地取决 于控制值c的值的对应于操作数Q0或Q1的减法值,该值确定操作数 Q0和Q1的值是否相互被交换,或者不交换。
总体上,包括以下主乘法循环、ECC循环(1)的标量乘法操作 通过以下指令组(4)实现。
通常,N0将掩码变量swap初始化为置零,swap=0,然后对于每 个位ki,对于i=1到len,len是密钥k的位数
N2 Q1=Add(Q1,Q0)
N3 Q0=Double(Q0)
N4 else:
N5 Q0=Add(Q0,Q1)
N6 Q1=Double(Q1)
N7 r=random_bit()
N9 swap=r
N10 end for (4)
可以看出,在执行迭代之前将变量swap设置为零,然后将其与 密钥ki的第i位进行异或(N1步骤)以形成掩码的控制位该值确定两个不同的方程组N2、N3或N5、N6中的哪个方程组在循 环(1)中实现。然后在步骤N7中,通过施加随机生成函数random_bit() 来设置随机位r值,该随机位r值可以是逻辑0或逻辑1。然后将随 机位r与掩码变量swap进行异或操作,以确定针对cswap函数的控 制位c值,然后执行该操作(步骤N8,例如对应于指令(3))。然 后,在下一次迭代之前,在步骤N9中,将变量swap设置为随机位r 值。可以看出,对密钥ki的每个位执行了迭代,然而,也可以逐字地 执行密钥k的读取操作,以从存储器获取这样的位。
步骤N1-N6对应于上文所示的ECC标量乘法循环(1),该ECC 标量乘法循环(1)可以等效地由RSA模幂循环(2)代替。
因此,该方法利用了软件开发中的一种已知的技术来避免缓存定 时问题,该问题提供了基于位值有条件地交换两个大整数的问题。
发明内容
本描述涉及用于在处理设备中对数据执行加密操作的技术,该执 行包括施加非对称加密过程,该非对称加密过程包括使用密钥执行在 由给定数目的字形成的第一操作数与第二操作数之间的迭代操作,
对于密钥中的每个位,迭代操作至少包括以下步骤:
根据密钥的位的函数值,向第一操作数和第二操作数施加两 个不同的操作集合,以执行数学操作,
基于控制位值对第一操作数和第二操作数的字执行有条件 地交换,该控制位值通过向随机位施加逻辑异或(XOR)函数而被获 取。
一个或多个实施例有利于提供一种用于在处理设备中对数据进 行加密操作的方法,该方法包括执行解决现有技术的缺点并且特别是 更能抵抗组合的水平攻击。
一个或多个实施例可以涉及执行该方法的对应的处理设备以及 计算机程序产品,该计算机程序产品可以被加载到至少一个计算机的 存储器中并且包括当产品在至少一个计算机上运行时能够执行该方 法的步骤的软件代码部分。如本文所使用的,对这种计算机程序产品 的引用被理解为包括对计算机可读装置的引用,该计算机可读装置包 含用于控制处理系统的指令,以便协调根据实施例的方法的实现。提 及“至少一个计算机”显然旨在强调以模块化和/或分布式形式实现本 实施例的可能性。
在实施例中,用于在处理设备中对数据进行加密操作的方法包 括:
在处理设备中对数据进行加密操作,包括施加非对称加密过 程,包括使用密钥执行在由给定数目的字形成的第一操作数与第二操 作数之间的迭代操作,
对于密钥中的每个位,迭代操作至少包括以下步骤:
根据密钥的位的函数值,对第一操作数和第二操作数施 加两个不同的操作集合,以执行数学操作,
根据控制位值对第一操作数和第二操作数的字执行有 条件地交换,该控制位值通过随机位施加逻辑异或函数而被获取,
其中有条件地交换包括:
在第一寄存器中存储第一操作数的字,在第二寄存器中 存储第二操作数的对应的字,
然后根据控制位值将第一寄存器或第二寄存器的值存 储为第一操作数的字,以及
根据控制位值将第二寄存器或第一寄存器的值存储为 第二操作数的对应的字。
在变型实施例中,有条件地交换包括:
在第一寄存器中存储第一操作数的字并且在第二寄存器中 存储第二操作数的对应的字之后,
通过在其中存储的相应的重写值来重写第一操作数和第二 操作数,
然后根据控制位值将第一寄存器或第二寄存器的值存储为 第一操作数的字,并且
根据控制字值将第二寄存器或第一寄存器的值存储为第二 操作数的对应的字。
在变型实施例中,重写步骤包括相应的重写值为零或恒定值。
在变型实施例中,重写步骤包括相应的值为随机生成的值。
在变型实施例中,重写步骤包括相应的值是彼此不同的值。
在变型实施例中,加密操作包括在非对称加密迭代过程之前,初 始化掩码变量,并且该迭代过程包括:
对于密钥中的每个位,
设置随机位,
通过在随机位与密钥的当前位之间执行逻辑异或操作来获 取随机密钥,
使用掩码变量与随机位之间的逻辑异或操作的结果作为控 制位来执行有条件地交换,
将掩码变量设置为随机位值,
根据随机密钥值的值选择要施加到第一操作数和第二操作 数的操作集合来执行非对称加密乘法迭代。
在变型实施例中,该方法包括在处理单元中提供:
第一掩码寄存器,以存储随机位,
第二寄存器,以存储随机密钥位,
第三掩码寄存器和第四掩码寄存器,以分别地存储第一掩码 寄存器的内容的补码和第二掩码寄存器的内容的补码。
在变型实施例中,非对称加密操作是ECC标量乘法或RSA模幂 操作。
在此描述的实施例还涉及被配置为执行前述实施例中的任何实 施例的方法的步骤的处理设备的实施例。
在此描述的实施例还涉及计算机程序产品,该计算机程序产品可 以被加载到至少一个计算机的存储器中,并且包括当产品在至少一个 计算机上运行时能够执行前述实施例中的任何实施例的方法的步骤 的部分软件代码。
在实施例中,方法包括:在处理设备中对数据执行加密操作,该 执行包括使用密钥施加包括在由给定数目的字形成的第一操作数与 第二操作数之间的迭代操作的非对称加密过程,对于密钥中的每个 位,该迭代操作包括:根据密钥的位向第一操作数和第二操作数施加 第一操作集合和第二操作集合中的一个操作集合;并且基于控制位值 有条件地交换第一操作数的字和第二操作数的字,该控制位值通过向 随机位施加逻辑异或函数而被获取,其中该有条件地交换包括:在第 一寄存器中存储第一操作数的字;在第二寄存器中存储第二操作数的 对应的字;根据控制位值,在第一操作数的字中存储第一寄存器的值或第二寄存器的值;以及根据控制位值,在第二操作数的对应的字中 存储第二寄存器或第一寄存器的值。在实施例中,有条件地交换包括: 在第一寄存器中存储第一操作数的字并且在第二寄存器中存储第二 操作数的对应的字之后:通过在第一操作数和第二操作数中存储相应 的重写值来重写第一操作数和第二操作数;然后根据控制位值在第一 操作数的字中存储第一寄存器的值或第二寄存器的值;并且根据控制 字值在第二操作数的对应的字中存储第二寄存器的值或第一寄存器 的值。在实施例中,相应的重写值为零或恒定值。在实施例中,相应 的重写值是随机生成的值。在实施例中,相应的重写值彼此不同。在 实施例中,非对称加密过程是乘法操作,包括在迭代过程之前初始化 掩码变量,并且该迭代过程包括:对于密钥的每个位:设置随机位; 通过对随机位和密钥的当前位执行逻辑异或操作来获取随机的密钥 值;使用掩码变量和随机位的逻辑异或操作的结果作为控制位来执行 有条件地交换;将掩码变量设置为随机位值;并且根据随机的密钥值 的值选择要施加到第一操作数的当前字和第二操作数的对应的字的 操作集合来执行非对称加密乘法的循环。在实施例中,该方法包括: 在第一掩码寄存器中存储随机位;在第二掩码寄存器中存储随机的密 钥值;在第三掩码寄存器中存储第一掩码寄存器中存储的值的补码; 并且在第四掩码寄存器中存储第二掩码寄存器中存储的值的补码。在 实施例中,迭代操作包括椭圆曲线加密术(ECC)标量乘法循环或里 夫斯特-沙米尔-阿德曼(RSA)模幂操作循环。
在实施例中,装置包括:多个寄存器;以及耦合到多个寄存器的 逻辑电路装置,其中在操作中,该逻辑电路装置使用密钥执行在由多 个字形成的第一操作数与第二操作数之间的迭代操作,对于密钥的每 个位,该迭代操作包括:根据密钥的位,将向第一操作数和第二操作 数施加第一操作集合和第二操作集合;并且基于控制位值有条件地交 换第一操作数的字和第二操作数的字,该控制位值是通过将逻辑异或 函数施加到随机位而获取的,其中该有条件地交换包括:在多个寄存 器中的第一寄存器中存储第一操作数的字;在多个寄存器中的第二寄 存器中存储第二操作数的对应的字;根据控制位值在第一操作数的字中存储第一寄存器的值或第二寄存器的值;并且根据控制位值在第二 操作数的对应的字中存储第二寄存器的值或第一寄存器的值。在实施 例中,有条件地交换包括:在第一寄存器中存储第一操作数的字,并 且在第二寄存器中存储第二操作数的对应的字之后:通过在第一操作 数和第二操作数中存储重写值来重写第一操作数和第二操作数;根据 控制位值在第一操作数的字中存储第一寄存器的值和第二寄存器的 值;并且根据控制字值在第二操作数的对应的字中存储第二寄存器的 值和第一寄存器的值。在实施例中,相应的重写值为零或恒定值。在 实施例中,相应的重写值是随机生成的值。在实施例中,相应的重写 值彼此不同。在实施例中,迭代过程是包括乘法操作的非对称加密过 程的一部分,并且在操作中,逻辑电路装置在迭代过程之前初始化掩 码变量,该迭代过程包括:对于密钥的每个位:设置随机位;通过对 随机位和密钥的当前位执行逻辑异或操作来获取随机的密钥值;使用 掩码变量和随机位的逻辑异或操作的结果作为控制位来执行有条件 地交换;并且将掩码变量设置为随机位值,其中执行非对称加密乘法 的循环包括:根据随机的密钥值,选择要施加到第一操作数的当前字 和第二操作数的对应的字的操作集合。在实施例中,逻辑电路装置在 操作中:在多个寄存器中的第一掩码寄存器中存储随机位;在多个寄 存器中的第二掩码寄存器中存储随机的密钥值;在多个寄存器中的第 三掩码寄存器中存储第一掩码寄存器中存储的值的补码;并且在多个 寄存器中的第四掩码寄存器中存储第二掩码寄存器中存储的值的补 码。在实施例中,迭代操作包括椭圆曲线加密(ECC)标量乘法循环或里夫斯特-沙米尔-阿德曼(RSA)模幂操作循环。
在实施例中,系统包括:乘法器;随机存取存储器;以及控制器, 包括:多个寄存器;以及耦合到多个寄存器的逻辑电路装置,其中在 操作中,该逻辑电路装置使用密钥执行在由多个字形成的第一操作数 与第二操作数之间的迭代操作,对于密钥中的每个位,该迭代操作包 括:根据密钥的位,向第一操作数和第二操作数施加第一操作集合和 第二操作集合中的一个操作集合;并且基于控制位值有条件地交换第 一操作数的字和第二操作数的字,该控制位值通过向随机位施加逻辑 异或函数而被获取,其中有条件地交换包括:在多个寄存器中的第一 寄存器存储第一操作数的字;在多个寄存器中的第二寄存器存储第二 操作数的对应的字;根据控制位值在第一操作数的字中存储第一寄存 器或第二寄存器的值;并且根据控制位值在第二操作数的对应的字中 存储第二寄存器或第一寄存器的值。在实施例中,有条件地交换包括: 在第一寄存器中存储第一操作数的字并且在第二寄存器中存储第二 操作数的对应的字之后:通过在第一操作数和第二操作数中存储相应 的重写值来重写第一操作数和第二操作数;根据控制位值在第一操作 数的字中存储第一寄存器的值或第二寄存器的值;并且根据控制字值 在第二操作数的对应的字中存储第二寄存器的值或第一寄存器的值。 在实施例中,迭代过程是包括乘法操作的非对称加密过程的一部分, 在操作中,该乘法操作由乘法器执行,并且逻辑电路装置在操作中在 迭代过程之前初始化掩码变量,该迭代过程包括对于密钥的每个位: 设置随机位;通过对随机位和密钥的当前位执行逻辑异或操作来获取 随机的密钥值;使用掩码变量和随机位的逻辑异或操作的结果作为控 制位来执行有条件地交换;并且将掩码变量设置为随机位值,其中执行非对称加密乘法的循环包括:根据随机的密钥值的值选择要施加到 第一操作数的当前字和第二操作数的对应的字的操作集合。在实施例 中,在操作中,逻辑电路装置:在多个寄存器的第一掩码寄存器中存 储随机位;在多个寄存器的第二掩码寄存器中存储随机的密钥值;在 多个寄存器的第三掩码寄存器中存储第一掩码寄存器中存储的值的 补码;并且在多个寄存器的第四掩码寄存器中存储第二掩码寄存器中 存储的值的补码。
在实施例中,非暂时性计算机可读介质的内容使得计算设备执行 包括迭代操作的非对称加密过程,使用密钥执行对由给定数目的字形 成的第一操作数和第二操作数的迭代操作,对于密钥的每个位,该迭 代操作包括:根据密钥的位向第一操作集合和第二操作集合中的一个 操作集合施加第一操作数和第二操作数;并且基于控制位值有条件地 交换第一操作数的字和第二操作数的字,该控制位值通过向随机位施 加逻辑异或函数而被获取,其中该有条件地交换包括:在第一寄存器 中存储第一操作数的字;在第二寄存器中存储第二操作数的对应的 字;根据控制位值在第一操作数的字中存储第一寄存器的值或第二寄 存器的值;并且根据控制位值在第二操作数的对应的字中存储第二寄 存器的值或第一寄存器的值。在实施例中,迭代操作包括:在第一掩 码寄存器中存储随机位;在第二掩码寄存器中存储随机的密钥值;在 第三掩码寄存器中存储第一掩码寄存器中存储的值的补码;并且在第 四掩码寄存器中存储第二掩码寄存器中存储的值的补码。在实施例 中,内容包括由计算设备执行的指令。
附图说明
现在将仅通过非限制性示例参考附图来描述本公开,其中:
图1示出了一种常规处理单元或设备;
图2表示实现本文描述的方法的处理设备的实施例的框图;
图3表示本文描述的方法的实施例的流程图。
具体实施方式
随后的描述示出了旨在深入理解实施例的各种具体细节。可以在 没有一个或多个特定细节的情况下,或在其它方法、部件、材料等的 情况下实现实施例。在其它情况下,未详细示出或描述已知的结构、 材料或操作,从而不会模糊实施例的各个方面。
在本说明书的框架中对“实施例”或“一个实施例”的引用旨在 指示相对于该实施例描述的特定配置、结构或特性被包括在至少一个 实施例中。同样,在本说明书的各个方面中可能出现的诸如“在实施 例中”或“在一个实施例中”的短语不一定指一个实施例和相同的实 施例。此外,在一个或多个实施例中,可以适当地组合特定的构象、 结构或特性。
本文所使用的参考仅出于方便的目的,因此不限定保护范围或实 施例的范围。
本文描述的实施例涉及一种用于在处理设备中对数据进行加密 操作的方法,该方法包括执行在包括给定数目的字的第一操作数与第 二操作数之间的一系列操作,其中一系列操作(如Heyszl等人的出版 物中所示的方法)包括根据控制位值对第一操作数和第二操作数执行 有条件地交换,控制位值由于随机位的异或函数而被获取。
有条件地交换cswap的第一实施例可以如下:
C是控制位,并且len是操作数A、B的字长。
通常,操作数A、B(或Q0、Q1或q0、q1)是大整数或大整数数 组,因此通常将它们分为字,j是字索引,并且对于操作逐字读取。 字长可以是1位。
因此,本文提出的方法的实施例包括乘法操作,该乘法操作通常 可以对应于指令组(3),并且可以对应于以下描述的实施例,该实 施例包括基于控制位值c对第一操作数A和第二操作数B执行有条 件地交换,
其中对于操作数的所有字(步骤C2),从1到长度len,
在步骤C3中,第一寄存器reg[0]存储在控制器11的相应的 寄存器处写入的第一操作数A的字A[j],
第二寄存器reg[1]存储C4第二操作数的字B[j]
然后根据控制位值c将第一操作数的字设置C5为第一寄存 器reg[0]或第二寄存器reg[1]的值,并且
根据控制位值c将第二操作数的字设置C6为第二寄存器 reg[1]或第一寄存器reg[0]的值。
在该第一实施例中,如果控制位c为0,则将操作数A写在操作 数A之上,在相同的寄存器地址处,存储器内容不变,因此可以识别 功耗。
便于解决该问题的cswap函数的第二实施例如下:
在这种情况下,在第一寄存器存储D3第一操作数的字并且第二 寄存器存储D4第二操作数的对应的字之后,操作数A[j]和B[j]的字 被设置为零(步骤D5、D6)。
cswap函数的第三实施例如下:
在第一操作数A[j]和第二操作数B[j]的地址中写入不同于零的值 (步骤E5、E6)。
cswap函数的第四实施例如下:
在第一操作数A[j]和第二操作数B[j]的地址中写入不为零且彼此 不同的值(步骤F5、F6)。
cswap函数的第五实施例如下:
A[j]和B[j]被设置为随机值random 1。
cswap函数的第六实施例如下:
H1.def cswap(A,B,c,len):
H2.for j in range(len):
H3.reg[0]=A[j]
H4.reg[1]=B[j]
H5.A[j]=random1
H6.B[j]=random2
H7.A[j]=reg[c]
H8.B[j]=reg[1-c]
在步骤H5、H6中,A[j]和B[j]被设置为两个不同的随机值random 1 和random 2。
因此,根据本文描述的实施例的有条件地交换包括:
在第一寄存器reg[0]中存储第一操作数A的当前字A[j]并且 在第二寄存器reg[1]中存储第二操作数B的对应的字B[j]之后,
通过在第一操作数A和第二操作数B中存储相应的重写值 (例如,零、或恒定值、或随机值、彼此相等或彼此不同的值)来(诸 如,在步骤C5、C6或D5、D6或E5、E6或F5、F6或G5、G6或 H5、H6中)重写第一操作数A的字A[i]和第二操作数B的字B[j]。
然后,根据控制位c值将第一寄存器reg(0)的值或第二寄存 器reg(1)的值存储为第一操作数A的字A(j),并且
根据控制位值(诸如,在步骤C7、C8或D7、D8或E7、E8 或F7、F8或G7、G8或H7、H8中)将第二寄存器reg(1)的值或第一 寄存器reg(0)的值存储为第二操作数B的对应的字B[j]。
这种重写步骤可以包括:如在第二实施例中相应的重写值为零, 或者如在第三实施例中重写值为恒定值。
这种重写步骤可以包括:如在第五实施例和第六实施例中这种相 应的重写值为随机生成的值。
这种重写步骤可以包括:如在第四实施例和第六实施例中这种相 应的重写值彼此不同。
现在,本文描述该方法的实施例,该实施例包括例如如下的有条 件地交换:
这种有条件地交换基本上对应于第六实施例,步骤R7-R13阐明 了步骤H7、H8。
因此,cswap函数针对操作数Q0的所有字定义了对应于在cswap 的先前的实施例中的reg[0]、reg[1]的两个寄存器变量regWordQ0、 regWordQ1,该寄存器变量存储在寄存器的字中。
然后,非对称加密操作循环的实施例如下被实现,由指令组(5) 指示:
n-1对应于数字len,从密钥k的最后一位ki开始执行以步骤S2的for 指令开始的下一个周期。在变型实施例中,这种步骤也可以从密钥k 的第一位ki开始。
注意,在这种情况下,在执行乘法循环(S7-S12)之前在步骤S4 处获取随机位r,使得自第一迭代以来,随机的密钥值mki就已经是 随机位r的函数。
因此,如图3的流程图所示,与加密操作循环的迭代相对应的方 法300包括:初始化掩码变量swap 302,并且该迭代包括:
对于从n-1到0的密钥k的每个第i个位ki,从步骤304处 开始循环,
设置306这种随机位r,
通过在密钥k的第i个位ki与随机位r之间执行异或逻辑操 作来获取308随机的密钥位;
使用掩码变量swap与随机位之间的异或作为控制位c对操 作数Q0、Q1执行310有条件地交换,例如可以根据步骤R1-R13执行 该有条件地交换。可以使用本文描述的有条件地交换的其它实施例中 的任何实施例,C1-C8;D1-D8;E1-E8;F1-F8;G1-G8;H1-H8;
将掩码变量swap设置为随机位r值;
根据随机的密钥值mki的位的值选择314第一操作集合316 (例如,S8、S9)或第二操作集合318(例如,S11、S12)以施加到 第一操作数Q0和对应的第二操作数Q1来执行数学操作。
如上所述,另一种类型的攻击可以利用与秘密位操纵相关的信 息,即使用密钥ki的位。
特别地,乘法循环中的if/else使得FSM/多路复用器输出中的状 态不同,这可能会泄漏。可以安装水平攻击以找到FSM的不同状态。 如果在主循环迭代中使用了密钥位,则攻击者可以了解采用了哪个分 支并导出密钥位。
密钥位ki的加载还意味着控制单元或电路11需要寄存器中的密 钥k的位ki,因此该密钥位ki从存储器加载。可以安装模板攻击来了 解加载到寄存器中的密钥位ki。攻击者可以模板化字加载,以尝试识 别字或其汉明(hamming weight)权重。
类似地,由于循环在每次迭代时都需要密钥的单个位以便决定施 加哪个操作集合,因此模板攻击可以被安装在密钥位的提取上。随着 寄存器的移位和一位被占用,移位后的寄存器的汉明权重可以减小还 是不减小,因此攻击者可以知道其是否减小并且恢复密钥。
最后,可以安装故障攻击,攻击者可以在其中使包含密钥的寄存 器中的一部分故障,以修改执行并获取有关密钥的信息(安全错误或 ECDSA HNP)。如果攻击者可以使寄存器的一部分故障,则将不会 检测到该错误。
为了避免这种问题,一种用于在处理设备中执行非对称加密过程 的方法的实施例,该方法包括对密钥的一位或几位进行迭代的迭代过 程,其中在每次迭代中:
根据密钥的位的函数的值,对不同的第一操作数集合和第二 操作数集合执行一系列数学操作,
基于控制位值对第一操作数和第二操作数的字执行有条件 地交换,可以在处理单元10中(如图2所示,特别地在控制器11中) 进一步提供由于随机位的异或函数而被获取的控制位值,
第一掩码寄存器MR1,以存储随机位r
第二掩码寄存器MR2,以存储随机的密钥值mki
第三掩码寄存器M3和第四掩码寄存器M4,以分别地存储 第一掩码寄存器和第二掩码寄存器的补码r’和mk’,其中’表示按位补 码操作。
处理单元或设备10被配置为操作以使得密钥位ki从RAM 13被 加载,并且利用在寄存器MR2中被注册为随机的密钥值mki之前的 随机位r,在控制单元或电路11中由11a指示的逻辑块中被异或。因 此,在乘法期间密钥ki永远不会被存储在控制单元11的寄存器中。
而且,第三掩码寄存器和第四掩码寄存器的规定确定,从掩码寄 存器提取的一个位循环第一掩码寄存器或第二掩码寄存器,以及对应 的第三补充寄存器和第四补充寄存器。因此,不再有移位。
根据本文描述的各种实施例的解决方案有助于获取以下优点。
该解决方案有利地采用了以相同的顺序使用地址的cswap。以这 种方式,寄存器选择具有显著较低的泄漏。
地址不再取决于密钥,而仅取决于随机密钥。
第一迭代受到保护,因为随机位r在cswap操作之前被生成。
写入Q0=Q0与写入Q0=Q1并没有显著差异,因为在最终写入之前, 所有内容均被随机字覆盖。
而且,通过仅将寄存器用于随机位和随机的密钥以及互补的寄存 器,不会直接存储密钥,汉明权重由具有补码值的寄存器复制和用于 位提取而不是位移位的字循环来平衡。通过检查寄存器和补充寄存器 的一致性来检测单个位故障。
当然,在不损害实施例的原理的情况下,构造和实施例的细节可 以相对于仅通过示例的方式在本文中描述和示出的内容而广泛地变 化,而不脱离如随后的权利要求定义的本发明的实施例的范围。
一些实施例可以采取计算机程序产品的形式或包括计算机程序 产品。例如,根据一个实施例,提供了一种计算机可读介质,该计算 机可读介质包括适于执行上述方法或功能中的一个或多个方法或功 能的计算机程序。介质可以是物理存储介质,诸如只读存储器(ROM) 芯片,也可以是磁盘,诸如数字多功能盘(DVD-ROM)、光盘 (CD-ROM)、硬盘、存储器、网络、或由适当的驱动器或经由适当 的连接读取的便携式媒体物品,包括被编码为存储在一个或多个这种 计算机可读介质上并且由适当的读取器设备读取的一个或多个条形 码或其它相关代码。
此外,在一些实施例中,可以以其它方式来实现或提供方法和/ 或功能中的一些或全部方法和/或功能,诸如至少部分地以固件和/或 硬件,包括但不限于一个或多个专用集成电路(ASIC)、数字信号处 理器、分立电路装置、逻辑门、标准集成电路、控制器(例如,通过 适当的指令执行,并且包括微控制器和/或嵌入式控制器)、现场可编 程门阵列(FPGA)、复杂可编程逻辑设备(CPLD)等,以及采用 RFID技术的设备及其各种组合。
可以将上述各种实施例组合以提供进一步的实施例。
可以根据以上详细描述对实施例进行这些和其它改变。通常,在 以下权利要求中,所使用的术语不应被解释为将权利要求限制为说明 书和权利要求中公开的特定实施例,而是应被解释为包括所有可能的 实施例以及这些权利要求所享有的等同物的全部范围。因此,权利要 求不受公开内容的限制。
Claims (23)
1.一种方法,包括:
在处理设备中对数据执行加密操作,所述执行包括施加非对称加密过程,所述非对称加密过程包括使用密钥在由给定数目的字形成的第一操作数与第二操作数之间的迭代操作,
对于所述密钥中的每个位,所述迭代操作包括:
根据所述密钥的所述位,向所述第一操作数和所述第二操作数施加第一操作集合和第二操作集合中的一个操作集合;以及
基于控制位值有条件地交换所述第一操作数的字和所述第二操作数的字,所述控制位值通过向随机位施加逻辑异或函数而被获取,
其中所述有条件地交换包括:
在第一寄存器中存储所述第一操作数的所述字;
在第二寄存器中存储所述第二操作数的对应的字;
根据所述控制位值,在所述第一操作数的所述字中存储所述第一寄存器的值或所述第二寄存器的值;以及
根据所述控制位值,在所述第二操作数的所述对应的字中存储所述第二寄存器的值或所述第一寄存器的值。
2.根据权利要求1所述的方法,其中所述有条件地交换包括:
在所述第一寄存器中存储所述第一操作数的所述字,并且在所述第二寄存器中存储所述第二操作数的对应的字之后:
通过在所述第一操作数和所述第二操作数中存储相应的重写值来重写所述第一操作数和所述第二操作数;
然后根据所述控制位值,在所述第一操作数的所述字中存储所述第一寄存器的所述值或所述第二寄存器的所述值;以及
根据所述控制字值,在所述第二操作数的所述对应的字中存储所述第二寄存器的所述值或所述第一寄存器的所述值。
3.根据权利要求2所述的方法,其中所述相应的重写值为零或恒定值。
4.根据权利要求2所述的方法,其中所述相应的重写值是随机生成的值。
5.根据权利要求2所述的方法,其中所述相应的重写值彼此不同。
6.根据权利要求1所述的方法,其中所述非对称加密过程是乘法操作,乘法操作包括在所述迭代过程之前初始化掩码变量,并且所述迭代过程包括:
对于所述密钥中的每个位:
设置所述随机位;
通过对所述随机位和所述密钥的当前位执行逻辑异或操作来获取随机的密钥值;
使用对所述掩码变量和所述随机位的逻辑异或操作的结果作为控制位来执行所述有条件地交换;
将所述掩码变量设置为所述随机位值;以及
根据所述随机的密钥值的值选择要施加到所述第一操作数的当前字和所述第二操作数的对应的字的所述操作集合来执行所述非对称加密乘法的循环。
7.根据权利要求6所述的方法,包括:
在第一掩码寄存器中存储所述随机位;
在第二掩码寄存器中存储所述随机的密钥值;
在第三掩码寄存器中存储所述第一掩码寄存器中存储的值的补码;以及
在第四掩码寄存器中存储所述第二掩码寄存器中存储的值的补码。
8.根据权利要求1所述的方法,其中所述迭代操作包括椭圆曲线加密术(ECC)标量乘法循环或里夫斯特-沙米尔-阿德曼(RSA)模幂操作循环。
9.一种装置,包括:
多个寄存器;以及
逻辑电路装置,耦合到所述多个寄存器,其中在操作中,所述逻辑电路装置使用密钥执行在由多个字形成的第一操作数与第二操作数之间的迭代操作,对于所述密钥中的每个位,所述迭代操作包括:
根据所述密钥的所述位,向所述第一操作数和所述第二操作数施加第一操作集合和第二操作集合中的一个操作集合;以及
基于控制位值有条件地交换所述第一操作数的字和所述第二操作数的字,所述控制位值通过向随机位施加逻辑异或函数而被获取,
其中所述有条件地交换包括:
在所述多个寄存器的第一寄存器中存储所述第一操作数的所述字;
在所述多个寄存器的第二寄存器中存储所述第二操作数的对应的字;
根据所述控制位值,在所述第一操作数的所述字中存储所述第一寄存器的值或所述第二寄存器的值;以及
根据所述控制位值,在所述第二操作数的所述对应的字中存储所述第二寄存器的值或所述第一寄存器的值。
10.根据权利要求9所述的装置,其中所述有条件地交换包括:
在所述第一寄存器中存储所述第一操作数的所述字,并且在所述第二寄存器中存储所述第二操作数的所述对应的字之后:
通过在所述第一操作数和所述第二操作数中存储相应的重写值来重写所述第一操作数和所述第二操作数;
根据所述控制位值,在所述第一操作数的所述字中存储所述第一寄存器的所述值或所述第二寄存器的所述值;以及
根据所述控制位值,在所述第二操作数的所述对应的字中存储所述第二寄存器的所述值或所述第一寄存器的所述值。
11.根据权利要求10所述的装置,其中所述相应的重写值为零或恒定值。
12.根据权利要求10所述的装置,其中所述相应的重写值为随机生成的值。
13.根据权利要求10所述的装置,其中所述相应的重写值彼此不同。
14.根据权利要求9所述的装置,其中所述迭代过程是包括乘法操作的非对称加密过程的一部分,并且在操作中,所述逻辑电路装置在所述迭代过程之前初始化掩码变量,所述迭代过程包括:
对于所述密钥中的每个位:
设置所述随机位;
通过对所述随机位和所述密钥的当前位执行逻辑异或操作来获取随机的密钥值;
使用对所述掩码变量和所述随机位的逻辑异或操作的结果作为控制位来执行所述有条件地交换;以及
将所述掩码变量设置为所述随机位值,其中执行所述非对称加密乘法的循环包括根据所述随机的密钥值的值选择要施加到所述第一操作数的当前字和所述第二操作数的对应的字的所述操作集合。
15.根据权利要求14所述的装置,其中在操作中,所述逻辑电路装置:
在所述多个寄存器中的第一掩码寄存器中存储所述随机位;
在所述多个寄存器中的第二掩码寄存器中存储所述随机的密钥值;
在所述多个寄存器中的第三掩码寄存器中存储所述第一掩码寄存器中存储的值的补码;并且
在所述多个寄存器中的第四掩码寄存器中存储所述第二掩码寄存器中存储的值的补码。
16.根据权利要求9所述的装置,其中所述迭代操作包括椭圆曲线加密术(ECC)标量乘法循环或里夫斯特-沙米尔-阿德曼(RSA)模幂操作回路。
17.一种系统,包括:
乘法器;
随机存取存储器;以及
控制器,包括:
多个寄存器;以及
逻辑电路装置,耦合到所述多个寄存器,其中在操作中,所述逻辑电路装置使用密钥执行在由多个字形成的第一操作数与第二操作数之间的迭代操作,对于所述密钥中的每个位,所述迭代操作包括:
根据所述密钥的所述位,向所述第一操作数和所述第二操作数施加第一操作集合和第二操作集合中的一个操作集合;以及
基于控制位值有条件地交换所述第一操作数的字和所述第二操作数的字,所述控制位值通过向随机位施加逻辑异或函数而被获取,
其中所述有条件地交换包括:
在所述多个寄存器中的第一寄存器中存储所述第一操作数的所述字;
在所述多个寄存器中的第二寄存器中存储所述第二操作数的对应的字;
根据所述控制位值,在所述第一操作数的所述字中存储所述第一寄存器的值或所述第二寄存器的值;以及
根据所述控制位值,在所述第二操作数的所述对应的字中存储所述第二寄存器的值或所述第一寄存器的值。
18.根据权利要求17所述的系统,其中所述有条件地交换包括:
在所述第一寄存器中存储所述第一操作数的所述字,并且在所述第二寄存器中存储所述第二操作数的所述对应的字之后:
通过在所述第一操作数和所述第二操作数中存储相应的重写值来重写所述第一操作数和所述第二操作数;
根据所述控制位值,在所述第一操作数的所述字中存储所述第一寄存器的所述值或所述第二寄存器的所述值;并且
根据所述控制位值,在所述第二操作数的所述对应的字中存储所述第二寄存器的所述值或所述第一寄存器的所述值。
19.根据权利要求17所述的系统,其中所述迭代操作是包括乘法操作的非对称加密过程的一部分,其中在操作中,由所述乘法器执行所述乘法操作,并且在操作中,所述逻辑电路装置在所述迭代过程之前初始化掩码变量,所述迭代过程包括:
对于所述密钥中的每个位:
设置所述随机位;
通过对所述随机位和所述密钥的当前位执行逻辑异或操作来获取随机的密钥值;
使用对所述掩码变量和所述随机位的逻辑异或操作的结果作为控制位来执行所述有条件地交换;以及
将所述掩码变量设置为所述随机位值,其中执行所述非对称加密乘法的循环包括根据所述随机的密钥值的值选择要施加到所述第一操作数的当前字和所述第二操作数的对应的字的所述操作集合。
20.根据权利要求17所述的系统,其中在操作中,所述逻辑电路装置:
在所述多个寄存器中的第一掩码寄存器中存储所述随机位;
在所述多个寄存器中的第二掩码寄存器中存储所述随机的密钥值;
在所述多个寄存器中的第三掩码寄存器中存储所述第一掩码寄存器中存储的值的补码;并且
在所述多个寄存器中的第四掩码寄存器中存储所述第二掩码寄存器中存储的值的补码。
21.一种非暂时性计算机可读介质,具有使得计算设备执行包括迭代操作的非对称加密过程的内容,使用密钥执行在由给定数目的字形成的第一操作数和第二操作数的所述迭代操作,对于所述密钥中的每个位,所述迭代操作包括:
根据所述密钥的所述位,向所述第一操作数和所述第二操作数施加第一操作集合和第二操作集合中的一个操作集合;以及
基于控制位值有条件地交换所述第一操作数的字和所述第二操作数的字,所述控制位值通过向随机位施加逻辑异或函数而被获取,
其中所述有条件地交换包括:
在第一寄存器中存储所述第一操作数的所述字;
在第二寄存器中存储所述第二操作数的对应的字;
根据所述控制位值,在所述第一操作数的所述字中存储所述第一寄存器的值或所述第二寄存器的值;以及
根据所述控制位值,在所述第二操作数的所述对应的字中存储所述第二寄存器的值或所述第一寄存器的值。
22.根据权利要求21所述的非暂时性计算机可读介质,其中所述迭代操作包括:
在第一掩码寄存器中存储所述随机位;
在第二掩码寄存器中存储所述随机的密钥值;
在第三掩码寄存器中存储所述第一掩码寄存器中存储的值的补码;以及
在第四掩码寄存器中存储所述第二掩码寄存器中存储的值的补码。
23.根据权利要求21所述的非暂时性计算机可读介质,其中所述内容包括由所述计算设备执行的指令。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IT102019000025567 | 2019-12-24 | ||
IT102019000025567A IT201900025567A1 (it) | 2019-12-24 | 2019-12-24 | Procedimento per eseguire operazioni di crittografia in un dispositivo di elaborazione, corrispondenti dispositivo di elaborazione e prodotto informatico |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113032797A true CN113032797A (zh) | 2021-06-25 |
Family
ID=70009323
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011553619.7A Pending CN113032797A (zh) | 2019-12-24 | 2020-12-24 | 在处理设备中执行加密操作的方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11582039B2 (zh) |
CN (1) | CN113032797A (zh) |
IT (1) | IT201900025567A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
IT202000006475A1 (it) * | 2020-03-27 | 2021-09-27 | St Microelectronics Srl | Procedimento per eseguire operazioni di crittografia su dati in un dispositivo di elaborazione, corrispondenti dispositivo di elaborazione e prodotto informatico |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120207298A1 (en) * | 2011-02-11 | 2012-08-16 | Infineon Technologies Ag | Apparatus and method for calculating a result in a scalar multiplication |
CN105409158A (zh) * | 2013-08-08 | 2016-03-16 | 英特尔公司 | 提供安全密码散列回合功能的指令和逻辑 |
CN109791517A (zh) * | 2016-12-21 | 2019-05-21 | 密码研究公司 | 保护并行乘法运算免受外部监测攻击 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7346159B2 (en) * | 2002-05-01 | 2008-03-18 | Sun Microsystems, Inc. | Generic modular multiplier using partial reduction |
US8102998B2 (en) | 2007-05-02 | 2012-01-24 | King Fahd University Of Petroleum And Minerals | Method for elliptic curve scalar multiplication using parameterized projective coordinates |
US8781110B2 (en) * | 2007-06-30 | 2014-07-15 | Intel Corporation | Unified system architecture for elliptic-curve cryptography |
FR3001315B1 (fr) | 2013-01-18 | 2016-05-06 | Inside Secure | Procede de cryptographie comprenant une operation de multiplication par un scalaire ou une exponentiation |
US9391773B2 (en) | 2014-04-04 | 2016-07-12 | Qualcomm Incorporated | Elliptic curve point multiplication procedure resistant to side-channel information leakage |
WO2015199675A1 (en) | 2014-06-25 | 2015-12-30 | Umm Al-Qura University | System and method for securing scalar multiplication against differential power attacks |
JP2021501426A (ja) * | 2017-10-30 | 2021-01-14 | ユーエヌエム レインフォレスト イノベーションズUNM Rainforest Innovations | 動的部分再構成を用いた暗号アルゴリズムのためのサイドチャネル電力耐性システム及び方法 |
EP3503460A1 (en) * | 2017-12-22 | 2019-06-26 | Secure-IC SAS | System and method for boolean masked arithmetic addition |
DE102018113475A1 (de) * | 2018-06-06 | 2019-12-12 | Infineon Technologies Ag | Rechenwerk zum rechnen mit maskierten daten |
WO2020146285A1 (en) * | 2019-01-07 | 2020-07-16 | Cryptography Research, Inc. | Protection of cryptographic operations by intermediate randomization |
FR3095709B1 (fr) * | 2019-05-03 | 2021-09-17 | Commissariat Energie Atomique | Procédé et système de masquage pour la cryptographie |
DE102020102453A1 (de) | 2020-01-31 | 2021-08-05 | Infineon Technologies Ag | Integrierte Schaltung zum modularen Multiplizieren von zwei ganzen Zahlen für ein kryptographisches Verfahren und Verfahren zur kryptographischen Verarbeitung von Daten basierend auf modularer Multiplikation |
-
2019
- 2019-12-24 IT IT102019000025567A patent/IT201900025567A1/it unknown
-
2020
- 2020-12-21 US US17/129,688 patent/US11582039B2/en active Active
- 2020-12-24 CN CN202011553619.7A patent/CN113032797A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120207298A1 (en) * | 2011-02-11 | 2012-08-16 | Infineon Technologies Ag | Apparatus and method for calculating a result in a scalar multiplication |
CN105409158A (zh) * | 2013-08-08 | 2016-03-16 | 英特尔公司 | 提供安全密码散列回合功能的指令和逻辑 |
CN109791517A (zh) * | 2016-12-21 | 2019-05-21 | 密码研究公司 | 保护并行乘法运算免受外部监测攻击 |
Also Published As
Publication number | Publication date |
---|---|
US20210194689A1 (en) | 2021-06-24 |
IT201900025567A1 (it) | 2021-06-24 |
US11582039B2 (en) | 2023-02-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11190337B2 (en) | Execution unit for calculations with masked data | |
US11983280B2 (en) | Protection of cryptographic operations by intermediate randomization | |
US6820105B2 (en) | Accelerated montgomery exponentiation using plural multipliers | |
CN107040362B (zh) | 模乘设备和方法 | |
CN114270352A (zh) | 用于密码运算的协处理器 | |
US8532286B2 (en) | System and method for reducing the computation and storage requirements for a montgomery-style reduction | |
US20130301826A1 (en) | System, method, and program for protecting cryptographic algorithms from side-channel attacks | |
US10025559B2 (en) | Protection of a modular exponentiation calculation | |
TWI403144B (zh) | 隨機化模數減化方法及其硬體 | |
Hutter et al. | NaCl’s crypto_box in hardware | |
US20070100926A1 (en) | Device and method for calculating a multiplication addition operation and for calculating a result of a modular multiplication | |
US11502836B2 (en) | Method for performing cryptographic operations on data in a processing device, corresponding processing device and computer program product | |
US10229264B2 (en) | Protection of a modular exponentiation calculation | |
JP4378479B2 (ja) | カバート・チャネル攻撃に対して安全な整数除算法 | |
CN113032797A (zh) | 在处理设备中执行加密操作的方法 | |
US8364737B2 (en) | Device and method for calculating a result of a sum with a calculating unit with limited word length | |
CN109299621B (zh) | 对迭代计算的防范水平攻击的保护 | |
US10209961B2 (en) | Verification of the sensitivity of an electronic circuit executing a modular exponentiation calculation | |
CN116318660B (zh) | 一种消息扩展与压缩方法及相关装置 | |
US11811906B2 (en) | Method for performing cryptographic operations on data in a processing device, corresponding processing device and computer program product | |
US20150234750A1 (en) | Method and apparatus for addressing a memory containing different bit-length field variables | |
JP2007520729A (ja) | 改良された低減計算 | |
Nedjah et al. | Four hardware implementations for the m-ary modular exponentiation | |
US11329796B2 (en) | Protection of an iterative calculation | |
JP6735870B2 (ja) | マルチワード乗算器回路及び電力解析攻撃を防止する方法 |
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 |