CN115840936A - 数论变换的低开销侧信道保护 - Google Patents
数论变换的低开销侧信道保护 Download PDFInfo
- Publication number
- CN115840936A CN115840936A CN202210882223.XA CN202210882223A CN115840936A CN 115840936 A CN115840936 A CN 115840936A CN 202210882223 A CN202210882223 A CN 202210882223A CN 115840936 A CN115840936 A CN 115840936A
- Authority
- CN
- China
- Prior art keywords
- butterfly
- ntt
- polynomial
- input
- series
- 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/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3093—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme
-
- 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/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
- G06F17/141—Discrete Fourier transforms
- G06F17/144—Prime factor Fourier transforms, e.g. Winograd transforms, number theoretic transforms
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- 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/3006—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
- H04L9/3026—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters details relating to polynomials generation, e.g. generation of irreducible polynomials
-
- 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/08—Randomization, e.g. dummy operations or using noise
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- Algebra (AREA)
- Computational Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Discrete Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Storage Device Security (AREA)
Abstract
提出了数论变换的低开销侧信道保护。一种装置包括:包括输入多项式的输入寄存器;处理数据路径,该处理数据路径通信地耦合到输入寄存器,该输入寄存器包括多个计算节点以对输入多项式执行数论变换NTT算法以生成NTT格式的输出多项式。多个计算节点至少包括对输入数据执行一系列蝶形计算的第一蝶形电路和用于随机化系列蝶形计算的顺序的随机化电路。
Description
技术领域
本文描述的主题大体上涉及计算机安全领域,并且更具体地涉及用于后量子密码学的签名设施。
背景技术
Dilithium是一种数字签名方案,它基于在选定消息攻击下是安全的模块格(module lattices)上的格问题的困难。有权访问签名数据库(oracle)的攻击者既不能生成具有攻击者尚未看到的数字签名的消息的签名,也不能生成已签名的消息的不同签名。
Dilithium部分依赖于使用秘密多项式的多项式乘法,这增加了侧信道攻击获取签名方案中使用的秘密信息的可能性。因此,保护Dilithium运算免受侧信道窥探攻击的技术可以在例如基于计算机的通信系统和方法中找到实用性。
发明内容
提出了一种装置,包括:输入寄存器,包括输入多项式;处理数据路径,通信地耦合到包括多个计算节点的所述输入寄存器,以对所述输入多项式执行数论变换NTT算法以生成NTT格式的输出多项式,所述多个计算节点包括:至少第一蝶形电路,对输入数据执行一系列蝶形计算;以及随机化电路,对所述一系列蝶形计算的顺序进行随机化。
还提出了相应的计算机实施的方法以及电子设备。
附图说明
参考附图来进行详细描述。
图1是根据实施例的签名设备和验证设备的示意图。
图2是根据实施例的用于实施数论变换(NTT)的处理数据路径的示意图。
图3A是根据实施例的拒绝采样算法的示意图。
图3B是根据实施例的模归约算法(modular reduction algorithm)的示意图。
图4是示出根据实施例的用于实施模归约算法的方法中的运算的流程图。
图5是根据一些示例的可以适于实施硬件加速的计算架构的示意图。
具体实施方式
本文描述了为数论变换(NTT)运算实现低开销侧信道保护的示例性系统和方法。在以下描述中,描述了许多具体细节以提供对各种示例的透彻理解。然而,本领域技术人员将理解,可以在没有具体细节的情况下实施各种示例。在其他情况下,没有详细说明或描述众所周知的方法、程序、部件和电路,以免导致示例不清楚。
图1是根据一些示例的包括第一设备110和第二设备150的安全环境100的高级架构的示意图。参考图1,第一设备110和第二设备150中的每一个可以实施为能够执行本文描述的功能的任何类型的计算设备。例如,在一些实施例中,第一设备110和第二设备150中的每一个可以实施为膝上型计算机、平板电脑、笔记本电脑、上网本、UltrabookTM、智能手机、蜂窝电话、可穿戴计算设备、个人数字助理、移动互联网设备、台式计算机、路由器、服务器、工作站和/或任何其他计算/通信设备。
第一设备110包括一个或多个处理器120和用于存储私钥124的存储器122。处理器120可以实施为能够执行本文描述的功能的任何类型的处理器。例如,一个或多个处理器120可以实施为一个或多个单核或多核处理器、数字信号处理器、微控制器或其他处理器或处理/控制电路。类似地,存储器122可以实施为能够执行本文描述的功能的任何类型的易失性或非易失性存储器或数据存储装置。在操作中,存储器122可以存储在第一设备110的操作期间使用的各种数据和软件,诸如操作系统、应用、程序、库和驱动程序。存储器122通信地耦合到一个或多个处理器120。在一些示例中,私钥124可以驻留在可以是存储器122的一部分或者可以与存储器122分离的安全存储器中。
第一设备110进一步包括签名设施130,签名设施130包括一个或多个硬件安全模块131,该硬件安全模块131包括存储器122、签名逻辑134和验证逻辑136。签名逻辑134可以被配置为生成要发送的签名(即,发送的签名)和/或验证签名。
密码逻辑140被配置为代表签名设备110执行各种密码和/或安全功能。在一些实施例中,密码逻辑140可以实施为密码引擎、签名设备110的独立安全协处理器、并入一个或多个处理器120中的密码加速器或独立软件/固件。在一些实施例中,密码逻辑140可以生成和/或利用各种密码密钥(例如,对称/非对称密码密钥)以促进加密、解密、签名和/或签名验证。此外,在一些实施例中,密码逻辑140可以促进通过通信链路与远程设备建立安全连接。应当进一步理解,在一些实施例中,密码模块140和/或第一设备110的另一模块可以建立可信执行环境或安全飞地(secure enclave),其中可以存储本文描述的数据的一部分和/或可以执行本文描述的若干功能。
在生成签名之后,然后可以由第一设备110例如经由通信逻辑142将消息M和签名经由网络通信链路190发送到第二设备150。在一个实施例中,消息M在传输之前可以不被加密。在另一个实施例中,消息M可以在传输之前被加密。例如,消息M可以由密码逻辑140加密以产生加密的消息。
第二设备150还可以包括一个或多个处理器160和存储公钥164的存储器162。如上所述,一个或多个处理器160可以实施为能够执行本文所述功能的任何类型的处理器。例如,一个或多个处理器160可以实施为一个或多个单核或多核处理器、数字信号处理器、微控制器或其他处理器或处理/控制电路。类似地,存储器162可以实施为能够执行本文描述的功能的任何类型的易失性或非易失性存储器或数据存储装置。在操作中,存储器162可以存储在第二设备150的操作期间使用的各种数据和软件,诸如操作系统、应用、程序、库和驱动程序。存储器162通信地耦合到一个或多个处理器160。
第二设备150进一步包括签名设施170,签名设施170包括一个或多个硬件安全模块171,该硬件安全模块171包括签名逻辑174和验证逻辑176。在第二设备是验证设备的情况下,硬件安全模块171被配置为至少部分地基于从第一设备接收到的签名并且至少部分地基于接收到的消息表示(m’)来生成验证签名。
环境100的各种模块可以实施为硬件、软件、固件或其组合。例如,环境100的各种模块、逻辑和其他部件可以形成第一设备110的一个或多个处理器120或第二设备150的一个或多个处理器160或设备的其他硬件部件的一部分,或者由其建立。因此,在一些实施例中,环境100的一个或多个模块可以实施为电子设备的电路或集合(例如,认证电路、密码电路、通信电路、签名电路和/或验证电路)。此外,在一些实施例中,一个或多个说明性模块可以形成另一模块的一部分和/或一个或多个说明性模块可以彼此独立。
如上所述,现有的公钥数字签名算法,如Rivest-Shamir-Adleman(RSA)和椭圆曲线数字签名算法(ECDSA),预计不能安全地抵御使用量子计算机的基于如Shor算法的算法的暴力攻击。另一方面,基于格的签名算法有望抵御量子计算机的攻击。基于格的签名方案的一个示例是Dilithium签名方案。
Dilithium签名过程依赖于利用秘密多项式的多个多项式乘法运算,这增加了侧信道窥探攻击以获取有关运算的秘密信息的机会。本文描述的是解决这些和其他问题的系统和方法。在一些示例中,签名设施可以包括处理数据路径以实现数论变换(NTT)运算以将输入多项式从其原始格式变换为促进处理的NTT格式。签名设施可以进一步包括随机化电路以对在NTT运算中执行的蝶形运算(butterfly operation)的顺序进行随机化。
更具体地,可以使用数论变换(NTT)算法计算Dilithium中的多项式乘法。NTT算法将多项式a(x)转换为其NTT形式。然后,NTT形式的多项式之间的乘法对应于NTT形式的多项式之间的系数乘法(coefficient-wise multiplication)。因此,可以将a(x)和b(x)之间的乘积计算为INTT(NTT(a(x)).NTT(b(x))),其中INTT表示逆NTT(即,INTT(NTT(a))=a)并且x.y表示x和y之间的系数乘法。
NTT算法的一个关键元素是蝶形运算。该运算接收两个系数和一个常数值并输出系数的新值。蝶形运算的实现遵循用于正向NTT的Cooley-Tukey(CT)算法和用于逆NTT的Gentleman-Sande(GS)算法。这是可能的,因为逆NTT算法与正向NTT算法非常相似,主要区别在于蝶形运算。NTT对一个多项式的所有系数进行多次运算。在对所有系数(每次重复使用不同的对)进行蝶形运算八次重复之后(因为Dilithium中的多项式有256个系数),就会产生NTT结果。因此,NTT函数由128/n(其中n是蝶形单元的数量)个循环的块组成,其中块中的每个循环都包含独立的运算,即一次运算的结果不依赖于同一块中的任何其他计算的结果。
图2是根据实施例的用于实施数论变换(NTT)的处理数据路径200的示意图。参考图2,数据路径200包括输入寄存器210以接收原始输入多项式。数据路径200进一步包括在图中由220A、220B、220C、…220H指示的多个计算节点。如上所述,在一个实施例中,数据路径200包括八个计算节点,它们可以用附图标记220统称。每个计算节点220包括至少一个蝶形电路以执行一系列蝶形计算。在一个实施例中,每个计算节点包括第一蝶形电路222A、222B、222C、…222H和第二蝶形电路224A、224B、224C、…224H。这些蝶形电路在本文中可以用附图标记222和224统称。数据路径200进一步包括输出寄存器230以接收NTT格式的多项式。
在一些示例中,可以通过随机化可能引起侧信道泄漏的运算来保护数据路径200免受侧信道攻击。实现此目的的一种技术称为置乱(shuffling),其包括以随机顺序重新排序不同的运算。有几种算法可以生成随机置乱,Fisher-Yates算法是最安全的算法中的一种。
在本文描述的一些示例中,数据路径200的每个蝶形电路222、224内的64次计算的顺序可以是随机化的。这产生64!个(大约2295个)不同的配置,因此有64!个不同的电源/EM迹线。这可以通过改变在有限状态机中更新状态的方式来实现。为了计算64个元素的排列,我们使用了Fisher-Yates算法的由内而外的版本,它需要64个随机数在1到64之间的不同区间内,即需要64个随机数,其中第i个数在区间{0,…,i-1}中是均匀随机的。
在一些实施例中,置乱可以直接在硬件中实现,而不是让外部方传递置乱作为输入。这提供了额外的安全性,因为攻击者既不能篡改流程,也不能生成可用于训练机器学习模型以构建攻击的特定置乱(或完全禁用置乱)。
在一些实施例中,可以通过对输入种子进行散列来生成随机数。可以使用基于Keccak的散列,因为Dilithium算法已经需要Keccak内核。然而,结果在二的幂(power-of-two)范围内是均匀随机的。这导致了一个问题,因为1到64之间的大多数数字都不是二的幂,因此我们需要找到一种方法来使用这种随机性来生成正确范围内的随机数。一些实现方式可以实现拒绝采样以保证正确的范围,如图3A所示。在拒绝抽样技术中,不属于正确范围的数字将被拒绝和忽略。因此,寻求使用生成0到2n之间数字的算法来生成[0,q]范围内的随机序列数字的采样技术简单地拒绝并忽略位于q到2n之间的结果。
如本文所述,在一些实施例中,可以使用模归约运算来将值的范围减小到期望的范围。这会导致分布有偏差,但分析表明随机化的熵约为2293,即仅比理想熵低3位。这在图3B中进行了说明。使用这种方法,置乱生成需要更少的随机位,使用更简单的算法,并保证恒定时间执行。此外,在硬件中计算随机置乱可以提高对复杂攻击的抵抗力并具有更高的安全性。
在一些实施例中,相同的随机化可以用于数据路径200的蝶形运算中的所有八(8)个计算节点。但是,可以通过对每个计算节点使用不同的随机化,或通过对多个NTT使用相同的随机化来实现安全性和性能之间的不同权衡。可以应用其他技术来进一步增加噪声,从而增加实施的安全性。例如,请注意并行使用两个蝶形单元。因此可以随机化哪个单元对哪个数据集进行运算。这仅需要64位随机性,并且不需要模归约或拒绝采样,因为每个步骤只需要一个随机位,即集合{0,1}中的随机数。此外,可以将多个NTT并行组合以进一步增加噪声。也可以使用不同的蝶形运算(一个用于正向NTT,一个用于反向NTT)并且并行计算两个这样的运算。Dilithium算法需要计算多个正向和反向NTT,因此它非常适合并行化此类任务。类似地,Fisher-Yates算法使用的输入种子可能是特定输入,或者可能是从其他输入派生的,可能使用域分离,即将常数值附加到Keccak输入。
图4是示出根据实施例的用于实施模归约算法的方法中的运算的流程图。参考图4,在运算410中,计数器变量(i)被初始化为零并且64个元素的数组(c)被初始化为一系列的零。在运算415中,变量(j)被设置为随机数。如果在运算420中,数字j大于数字i,则控制进行到运算425并且数字j被设置为j模i(j modulo i)。
相反,如果在运算420中,数字j不大于数字i,则控制绕过运算425并进行到运算430,其中数组元素c(i)设置为数组元素c(j)的值并且数组元素c(j)的值设置为i。在运算435中,计数器i递增。如果在运算440中,计数器i小于64,则控制返回到运算415并且变量j再次被设置为随机值。因此,运算415-440定义了一个循环,按照该循环,数组c的值以随机顺序填充有64个唯一数字。相反,如果在运算440中,计数器i小于64,则控制进行到运算415并且返回64个值的数组(c)以用作数据路径200中蝶形电路222、224要执行的运算的顺序。
在一些示例中,可以使用秘密共享技术来计算蝶形运算。秘密共享的伪代码如下:
在其他示例中,可以实施盲运算(blinding operation)来计算盲多项式(blindedpolynomial)。例如,可以使用单个随机盲值,它可以使用NTT的属性以很少的计算开销来实现,与全盲(full blinding)相比侧信道鲁棒性略低:
属性1:NTT是线性的,即NTT(x+y)=NTT(x)+NTT(y)
属性2:NTT([r,r,r…,r])=[c0,…c0,c1,…c1]*r(其中c0和cl是已知常数)
为了以盲的方式计算NTT,可以将随机值r添加到输入,并且可以计算该盲多项式的NTT。在计算结束时,可以从结果的前半部分和后半部分中减去r*c0和r*c1。计算开销是计算r*c0和r*c1的成本,其可以使用蝶形电路中的两个乘法器在1个时钟周期内完成。硅面积开销包括在第一次/最后一次迭代中添加/减去这些值的控制逻辑以及保存这些值的一些寄存器。
图5示出了示例性计算架构的实施例,该计算架构可以适用于实施如前所述的各种实施例。在各种实施例中,计算架构500可以包括电子设备或被实施为电子设备的一部分。在一些实施例中,计算架构500可以代表例如实现上述运算环境的一个或多个部件的计算机系统。在一些实施例中,计算架构500可以代表实现本文描述的一种或多种技术的数字签名签名系统的一个或多个部分或部件。各实施例不限于此场景。
如在本申请中使用的,术语“系统”和“部件”和“模块”旨在指代计算机相关实体,可以是硬件、硬件和软件的组合、软件或执行中的软件,其示例由示例性计算架构500提供。例如,部件可以是但不限于在处理器上运行的进程、处理器、硬盘驱动器、多个存储驱动器(光和/或磁存储介质的)、对象、可执行文件、执行线程、程序和/或计算机。举例来说,在服务器上运行的应用和服务器都可以是部件。一个或多个部件可以驻留在一个进程和/或执行线程内,并且部件可以位于一个计算机上和/或分布在两个或更多个计算机之间。此外,部件可以通过各种类型的通信介质彼此通信耦合以协调操作。协调可能涉及单向或双向信息交换。例如,部件可以以通过通信介质传送的信号的形式传送信息。该信息可以被实现为分配给各种信号线的信号。在这样的分配中,每条消息都是一个信号。然而,另外的实施例可替代地采用数据消息。此类数据消息可以通过各种连接发送。示例性连接包括并行接口、串行接口和总线接口。
计算架构500包括各种常见的计算元件,诸如一个或多个处理器、多核处理器、协处理器、存储单元、芯片组、控制器、外围设备、接口、振荡器、定时设备、视频卡、音频卡、多媒体输入/输出(I/O)部件、电源等。然而,实施例不限于由计算架构500实现。
如图5所示,计算架构500包括一个或多个处理器502和一个或多个图形处理器508,并且可以是单处理器桌面系统、多处理器工作站系统或具有大量处理器502或处理器内核507的服务器系统。在一个实施例中,系统500是结合在用于移动、手持或嵌入式设备的片上系统(SoC或SOC)集成电路内的处理平台。
系统500的一个实施例可以包括基于服务器的游戏平台、游戏控制台(包括游戏和媒体控制台)、移动游戏控制台、手持游戏控制台或在线游戏控制台或结合在其内。在一些实施例中,系统500是移动电话、智能电话、平板计算设备或移动互联网设备。数据处理系统500还可以包括、耦合或集成在可穿戴设备中,诸如智能手表可穿戴设备、智能眼镜设备、增强现实设备或虚拟现实设备中。在一些实施例中,数据处理系统500是具有一个或多个处理器502和由一个或多个图形处理器508生成的图形界面的电视机或机顶盒设备。
在一些实施例中,一个或多个处理器502各自包括一个或多个处理器内核507以处理指令,当被执行时,该指令执行系统和用户软件的操作。在一些实施例中,一个或多个处理器内核507中的每一个被配置为处理特定指令集509。在一些实施例中,指令集509可以促进复杂指令集计算(CISC)、精简指令集计算(RISC)或经由超长指令字(VLIW)的计算。多个处理器内核507可以各自处理不同的指令集509,指令集709可以包括促进其他指令集的仿真的指令。处理器内核507还可以包括其他处理器件,诸如数字信号处理器(DSP)。
在一些实施例中,处理器502包括高速缓存存储器504。根据架构,处理器502可以具有单个内部高速缓存或多级内部高速缓存。在一些实施例中,高速缓存存储器在处理器502的各种部件之间共享。在一些实施例中,处理器502还使用外部高速缓存(例如,1级(L1)高速缓存或末级高速缓存(LLC))(未示出),其可以使用已知的高速缓存一致性技术在处理器内核507之间共享。寄存器文件506另外包括在处理器502中,其可以包括用于存储不同类型数据的不同类型的寄存器(例如,整数寄存器、浮点寄存器、状态寄存器和指令指针寄存器)。一些寄存器可以是通用寄存器,而其他寄存器可以专用于处理器502的设计。
在一些实施例中,一个或多个处理器502与一个或多个接口总线510耦合以在处理器502和系统中的其他部件之间传送诸如地址、数据或控制信号的通信信号。在一个实施例中,接口总线510可以是处理器总线,诸如直接媒体接口(DMI)总线的一种版本。然而,处理器总线不限于DMI总线,还可以包括一个或多个外围部件互连总线(例如PCI、PCIExpress)、存储器总线或其他类型的接口总线。在一个实施例中,一个或多个处理器502包括集成的存储器控制器516和平台控制器集线器510。存储器控制器516促进存储器器件和系统500的其他部件之间的通信,而平台控制器集线器(PCH)510经由本地I/O总线提供到I/O器件的连接。
存储器器件520可以是动态随机存取存储器(DRAM)器件、静态随机存取存储器(SRAM)器件、闪存器件、相变存储器器件或具有用作过程存储器的合适性能的一些其他存储器器件。在一个实施例中,存储器器件520可以作为系统500的系统存储器操作,以存储数据522和指令521以供当一个或多个处理器502执行应用或进程时使用。存储器控制器集线器516还与可选的外部图形处理器512耦合,外部图形处理器512可以与处理器502中的一个或多个图形处理器508通信以执行图形和媒体操作。在一些实施例中,显示设备511可以连接到一个或多个处理器502。显示设备511可以是内部显示设备(如在移动电子设备或膝上型设备中)或者经由显示接口(例如,DisplayPort等)附接的外部显示设备中的一种或多种。在一个实施例中,显示设备511可以是头戴式显示器(HMD),诸如用于虚拟现实(VR)应用或增强现实(AR)应用中的立体显示设备。
在一些实施例中,平台控制器集线器510使外围设备能够经由高速I/O总线连接到存储器器件520和处理器502。I/O外围设备包括但不限于音频控制器546、网络控制器514、固件接口528、无线收发器526、触摸传感器525、数据存储器件524(例如,硬盘驱动器、闪存等)。数据存储器件524可以经由存储接口(例如,SATA)或经由外围总线(诸如外围部件互连总线(例如,PCI、PCI Express))来连接。触摸传感器525可以包括触摸屏传感器、压力传感器或指纹传感器。无线收发器526可以是Wi-Fi收发器、蓝牙收发器或诸如1G、4G、长期演进(LTE)收发器的移动网络收发器。固件接口528实现与系统固件的通信,并且可以是例如统一可扩展固件接口(UEFI)。网络控制器514可以实现到有线网络的网络连接。在一些实施例中,高性能网络控制器(未示出)与接口总线510耦合。在一个实施例中,音频控制器546是多通道高清晰度音频控制器。在一个实施例中,系统500包括可选的传统I/O控制器540,用于将传统(例如,个人系统2(PS/2))设备耦合到系统。平台控制器集线器510还可以连接到一个或多个通用串行总线(USB)控制器542以连接输入设备,诸如键盘和鼠标541组合、摄像头544或其他USB输入设备。
以下涉及进一步的示例。
示例1是一种装置,包括:包括输入多项式的输入寄存器;通信地耦合到输入寄存器的处理数据路径,该输入寄存器包括多个计算节点以对输入多项式执行数论变换(NTT)算法以生成NTT格式的输出多项式,该多个计算节点包括:至少第一蝶形电路以对输入数据执行一系列蝶形计算;以及随机化电路以随机化一系列蝶形计算的顺序。
在示例2中,示例1的主题可以可选地包括一种布置,其中,处理数据路径包括串联通信耦合的八个计算节点。
在示例3中,示例1-2中的任一个的主题可以可选地包括一种布置,其中,多个计算节点包括与第一蝶形电路并行操作的第二蝶形电路。
在示例4中,示例1-3中的任一个的主题可以可选地包括输出寄存器以接收NTT格式的输出多项式。
在示例5中,示例1-4中的任一个的主题可以可选地包括一种布置,其中,随机化电路实施模归约运算以生成用于一系列蝶形计算的运算序列。
在示例6中,示例1-5中的任一个的主题可以可选地包括一种布置,其中,蝶形运算是使用秘密共享运算来计算的。
在示例7中,示例1-6中的任一个的主题可以可选地包括一种布置,其中,计算节点实施盲运算以计算盲多项式。
示例8是一种计算机实施的方法,包括:在输入寄存器中接收输入多项式;在通信地耦合到包括多个计算节点的输入寄存器的处理数据路径中,对输入多项式执行数论变换(NTT)算法以生成NTT格式的输出多项式,该NTT算法包括在至少一个第一个蝶形电路中,对输入数据进行一系列蝶形计算;并且在随机化电路中随机化一系列蝶形计算的顺序。
在示例9中,示例8中的任一项的主题可以可选地包括一种布置,其中,处理数据路径包括串联通信耦合的八个计算节点。
在示例10中,示例8-9中的任一个的主题可以可选地包括一种布置,其中,多个计算节点包括与第一蝶形电路并行操作的第二蝶形电路。
在示例11中,示例8-10中的任一个的主题可以可选地包括输出寄存器以接收NTT格式的输出多项式。
在示例12中,示例8-11中的任一个的主题可以可选地包括一种布置,其中,随机化电路实施模归约运算以生成用于一系列蝶形计算的运算序列。
在示例13中,示例8-12中的任一个的主题可以可选地包括一种布置,其中,蝶形运算是使用秘密共享运算来计算的。
在示例14中,示例8-13中的任一个的主题可以可选地包括一种布置,其中,计算节点实施盲运算以计算盲多项式。
示例15是一种电子设备,包括:处理器;包括输入多项式的输入寄存器;通信地耦合到输入寄存器的处理数据路径,该输入寄存器包括多个计算节点以对输入多项式执行数论变换(NTT)算法以生成NTT格式的输出多项式,该多个计算节点至少包括第一蝶形电路以对输入数据执行一系列蝶形计算;以及随机化电路以随机化一系列蝶形计算的顺序。
在示例16中,示例15的主题可以可选地包括一种布置,其中,处理数据路径包括串联通信耦合的八个计算节点。
在示例17中,示例15-16中的任一个的主题可以可选地包括一种布置,其中,多个计算节点包括与第一蝶形电路并行操作的第二蝶形电路。
在示例18中,示例15-17中的任一个的主题可以可选地包括输出寄存器以接收NTT格式的输出多项式。
在示例19中,示例15-18中的任一个的主题可以可选地包括一种布置,其中,随机化电路实施模归约运算以生成用于一系列蝶形计算的运算序列。
在示例20中,示例15-19中的任一个的主题可以可选地包括一种布置,其中,蝶形运算是使用秘密共享运算来计算的。
在示例21中,示例15-20中的任一个的主题可以可选地包括一种布置,其中,计算节点实施盲运算以计算盲多项式。
上面的详细描述包括对附图的引用,这些附图形成了详细描述的一部分。附图通过说明的方式示出了可以实施的特定实施例。这些实施例在本文中也称为“示例”。这样的示例可以包括除了所示出或描述的元件之外的元件。然而,也可以设想包括所示或描述的元件的示例。此外,还针对特定示例(或其一个或多个方面)或针对本文显示或描述的其他示例(或其一个或多个方面)设想了使用所示出或描述的那些元件(或其一个或多个方面)的任何组合或排列的示例。
本文献中提及的出版物、专利和专利文献通过引用整体并入本文,如同单独通过引用并入一样。如果本文献与以引用方式并入的那些文献之间的用法不一致,则所并入的参考文献中的用法是对本文献的补充;对于不可调和的不一致,以本文献中的用法为准。
在本文献中,如在专利文献中常见的,术语“一”用于包括一个或不止一个,这与“至少一个”或“一个或多个”的任何其他情况或用法无关。此外,“一组”包括一个或多个元件。在本文中,术语“或”用于表示非排他性的或,使得“A或B”包括“A但不是B”、“B但不是A”和“A和B”,除非另有说明。在所附权利要求中,术语“包括”和“在……中”用作相应术语“包含”和“其中”的普通语言等同物。而且,在以下权利要求中,术语“包括”和“包含”为开放式的;即包括除了权利要求中在该术语之后列出的元件之外的元件的系统、设备、物品或过程仍然被视为落在本权利要求的范围内。此外,在所附权利要求中,术语“第一”、“第二”、“第三”等仅用作标签,并不旨在暗示它们的对象的数字顺序。
如本文所指的术语“逻辑指令”涉及可由一台或多台机器理解用于执行一个或多个逻辑运算的表达。例如,逻辑指令可以包括可由处理器编译器解释用于对一个或多个数据对象执行一个或多个运算的指令。然而,这仅仅是机器可读指令的示例并且示例不限于此方面。
如本文所指的术语“计算机可读介质”涉及能够保持可由一台或多台机器感知的表达的介质。例如,计算机可读介质可以包括一个或多个用于存储计算机可读指令或数据的存储设备。这样的存储设备可以包括存储介质,诸如例如光、磁或半导体存储介质。然而,这仅仅是计算机可读介质的示例并且示例不限于这方面。
如本文所指的术语“逻辑”涉及用于执行一个或多个逻辑运算的结构。例如,逻辑可以包括基于一个或多个输入信号提供一个或多个输出信号的电路。这种电路可以包括接收数字输入并提供数字输出的有限状态机,或响应于一个或多个模拟输入信号而提供一个或多个模拟输出信号的电路。这种电路可以在专用集成电路(ASIC)或现场可编程门阵列(FPGA)中提供。此外,逻辑可以包括存储在存储器中的机器可读指令以及执行这样的机器可读指令的处理电路。然而,这些仅仅是可以提供逻辑的结构的示例,并且示例不限于这方面。
本文描述的一些方法可以实施为计算机可读介质上的逻辑指令。当在处理器上执行时,逻辑指令使处理器被编程为实现所述方法的专用机器。当由逻辑指令配置为执行本文所述的方法时,处理器构成用于执行所述方法的结构。可替代地,本文描述的方法可简化为例如现场可编程门阵列(FPGA)、专用集成电路(ASIC)等上的逻辑。
在描述和权利要求中,可以使用术语耦合和连接以及它们的派生词。在特定示例中,连接可用于指示两个或更多个元件彼此直接物理或电接触。耦合可能意味着两个或多个元件直接物理或电接触。然而,耦合也可能意味着两个或多个元件可能彼此不直接接触,但仍可能彼此协作或交互。
在说明书中对“一个示例”或“一些示例”的引用意味着结合示例描述的特定特征、结构或特性被包括在至少一种实现方式中。说明书中各处出现短语“在一个示例中”可以或可以不是指同一个示例。
上面的描述旨在为说明性的,而不是限制性的。例如,上述示例(或其一个或多个方面)可以结合其他示例使用。在回顾以上描述之后,诸如可以由本领域的普通技术人员使用其他实施例。摘要用于允许读者快速确定技术公开的本质。提交摘要时应了解其不会用于解释或限制权利要求的范围或含义。另外,在以上详细描述中,各种特征可以被聚集在一起以简化本公开。然而,权利要求书可能并未阐述本文公开的每个特征,因为实施例可以以所述特征的子集为特征。此外,实施例可以包括比特定示例中公开的特征更少的特征。因此,所附权利要求并入具体实施方式中,其中每个权利要求自身作为单独的实施例。因此,本文公开的实施例的范围应该参考所附权利要求以及这些权利要求所赋予的等同物的全部范围来确定。
尽管已经以特定于结构特征和/或方法行为的语言描述了示例,但是应当理解,要求保护的主题可能不限于所描述的特定特征或行为。相反,具体特征和动作被公开为实现要求保护的主题的示例形式。
Claims (21)
1.一种装置,包括:
输入寄存器,包括输入多项式;
处理数据路径,通信地耦合到包括多个计算节点的所述输入寄存器,以对所述输入多项式执行数论变换NTT算法以生成NTT格式的输出多项式,所述多个计算节点包括:
至少第一蝶形电路,对输入数据执行一系列蝶形计算;以及
随机化电路,对所述一系列蝶形计算的顺序进行随机化。
2.根据权利要求1所述的装置,其中,所述处理数据路径包括通信地串联耦合的八个计算节点。
3.根据权利要求1所述的装置,其中,多个计算节点包括与所述第一蝶形电路并行运算的第二蝶形电路。
4.根据权利要求1所述的装置,进一步包括输出寄存器,以接收NTT格式的输出多项式。
5.根据权利要求1所述的装置,其中,所述随机化电路实施模归约运算以生成用于所述一系列蝶形计算的运算序列。
6.根据权利要求1所述的装置,其中,所述蝶形运算是使用秘密共享运算来计算的。
7.根据权利要求1所述的装置,其中,所述计算节点实施盲运算以计算盲多项式。
8.一种计算机实施的方法,包括:
在输入寄存器中接收输入多项式;
在通信地耦合到包括多个计算节点的所述输入寄存器的处理数据路径中,对所述输入多项式执行数论变换NTT算法以生成NTT格式的输出多项式,所述NTT算法包括:
在至少第一蝶形电路中,对输入数据执行一系列蝶形计算;以及
在随机化电路中对所述一系列蝶形计算的顺序进行随机化。
9.根据权利要求8所述的方法,其中,所述处理数据路径包括通信地串联耦合的八个计算节点。
10.根据权利要求8所述的方法,其中,多个计算节点包括与所述第一蝶形电路并行运算的第二蝶形电路。
11.根据权利要求8所述的方法,进一步包括在输出寄存器中接收NTT格式的输出多项式。
12.根据权利要求8所述的方法,其中,所述随机化电路实施模归约运算以生成用于所述一系列蝶形计算的运算序列。
13.根据权利要求8所述的方法,其中,所述蝶形运算是使用秘密共享运算来计算的。
14.根据权利要求8所述的方法,其中,所述计算节点实施盲运算以计算盲多项式。
15.一种电子设备,包括:
处理器;
包括输入多项式的输入寄存器;
处理数据路径,通信地耦合到包括多个计算节点的所述输入寄存器,以对所述输入多项式执行数论变换NTT算法以生成NTT格式的输出多项式,所述多个计算节点包括:
至少第一蝶形电路,对输入数据执行一系列蝶形计算;以及
随机化电路,对所述一系列蝶形计算的顺序进行随机化。
16.根据权利要求15所述的电子设备,其中,所述处理数据路径包括通信地串联耦合的八个计算节点。
17.根据权利要求15所述的电子设备,其中,多个计算节点包括与所述第一蝶形电路并行运算的第二蝶形电路。
18.根据权利要求15所述的电子设备,进一步包括输出寄存器,以接收NTT格式的输出多项式。
19.根据权利要求15所述的电子设备,其中,所述随机化电路实施模归约运算以生成用于所述一系列蝶形计算的运算序列。
20.根据权利要求15所述的电子设备,其中,所述蝶形运算是使用秘密共享运算来计算的。
21.根据权利要求15所述的电子设备,其中,所述计算节点实施盲运算以计算盲多项式。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/480,360 | 2021-09-21 | ||
US17/480,360 US12058261B2 (en) | 2021-09-21 | 2021-09-21 | Low overhead side channel protection for number theoretic transform |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115840936A true CN115840936A (zh) | 2023-03-24 |
Family
ID=79167113
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210882223.XA Pending CN115840936A (zh) | 2021-09-21 | 2022-07-26 | 数论变换的低开销侧信道保护 |
Country Status (3)
Country | Link |
---|---|
US (1) | US12058261B2 (zh) |
EP (1) | EP4152681A1 (zh) |
CN (1) | CN115840936A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118337366A (zh) * | 2024-05-11 | 2024-07-12 | 华中科技大学 | 应用于后量子密码算法的抗侧信道攻击的乱序ntt电路 |
US12058261B2 (en) | 2021-09-21 | 2024-08-06 | Intel Corporation | Low overhead side channel protection for number theoretic transform |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023055377A1 (en) * | 2021-09-30 | 2023-04-06 | Pqsecure Technologies, Llc | An area efficient architecture for lattice based key encapsulation and digital signature generation |
US20240031127A1 (en) * | 2022-07-22 | 2024-01-25 | Intel Corporation | Lightweight side-channel protection for polynomial multiplication in post-quantum signatures |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA3034597C (en) * | 2017-04-11 | 2021-10-12 | The Governing Council Of The University Of Toronto | A homomorphic processing unit (hpu) for accelerating secure computations under homomorphic encryption |
WO2020172234A1 (en) * | 2019-02-19 | 2020-08-27 | Massachusetts Institute Of Technology | Configurable lattice cryptography processor for the quantum-secure internet of things and related techniques |
US20210073316A1 (en) * | 2019-09-09 | 2021-03-11 | Facebook, Inc. | Number-theoretic transform hardware |
CN114816334A (zh) * | 2021-01-19 | 2022-07-29 | 阿里巴巴集团控股有限公司 | 加速单元、相关装置和方法 |
US12058261B2 (en) | 2021-09-21 | 2024-08-06 | Intel Corporation | Low overhead side channel protection for number theoretic transform |
-
2021
- 2021-09-21 US US17/480,360 patent/US12058261B2/en active Active
-
2022
- 2022-07-26 CN CN202210882223.XA patent/CN115840936A/zh active Pending
- 2022-08-03 EP EP22188584.1A patent/EP4152681A1/en active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12058261B2 (en) | 2021-09-21 | 2024-08-06 | Intel Corporation | Low overhead side channel protection for number theoretic transform |
CN118337366A (zh) * | 2024-05-11 | 2024-07-12 | 华中科技大学 | 应用于后量子密码算法的抗侧信道攻击的乱序ntt电路 |
Also Published As
Publication number | Publication date |
---|---|
US12058261B2 (en) | 2024-08-06 |
US20220006630A1 (en) | 2022-01-06 |
EP4152681A1 (en) | 2023-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11917053B2 (en) | Combined SHA2 and SHA3 based XMSS hardware accelerator | |
US11770262B2 (en) | Odd index precomputation for authentication path computation | |
US11405213B2 (en) | Low latency post-quantum signature verification for fast secure-boot | |
EP4152681A1 (en) | Low overhead side channel protection for number theoretic transform | |
US20220006611A1 (en) | Side-channel robust incomplete number theoretic transform for crystal kyber | |
US20230066955A1 (en) | Efficient post-quantum secure software updates tailored to resource-constrained devices | |
US11575515B2 (en) | Post-quantum secure remote attestation for autonomous systems | |
EP3758290A1 (en) | Parallel processing techniques for hash-based signature algorithms | |
CN113839781A (zh) | 用于对受保护的签名操作和密钥交换操作的侧信道攻击的对策 | |
WO2023107776A1 (en) | Efficient hybridization of classical and post-quantum signatures | |
EP4311158A1 (en) | Efficient low-overhead side-channel protection for polynomial multiplication in post-quantum encryption | |
US20230185905A1 (en) | Protection of authentication tag computation against power and electromagnetic side-channel attacks | |
US20240113888A1 (en) | Post-quantum lattice-based signature latency reduction | |
WO2023107775A1 (en) | Computation of xmss signature with limited runtime storage | |
US20220123949A1 (en) | Side channel protection for xmss signature function | |
CN117581504A (zh) | 用于解决随机化散列和联邦信息处理标准的xmss管理 | |
US20240031127A1 (en) | Lightweight side-channel protection for polynomial multiplication in post-quantum signatures | |
US20220416998A1 (en) | Side channel protection for sha3 cryptographic functions | |
US20240220640A1 (en) | Combined protection of symmetric-key primitives against side-channel and fault attacks | |
US20240007266A1 (en) | Reconfigurable side-channel resistant double-throughput aes accelerator |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |