CN115936133A - 利用重新定义的多项式运算的组合后量子安全 - Google Patents
利用重新定义的多项式运算的组合后量子安全 Download PDFInfo
- Publication number
- CN115936133A CN115936133A CN202211017764.2A CN202211017764A CN115936133A CN 115936133 A CN115936133 A CN 115936133A CN 202211017764 A CN202211017764 A CN 202211017764A CN 115936133 A CN115936133 A CN 115936133A
- Authority
- CN
- China
- Prior art keywords
- polynomial
- circuit
- coefficients
- multiplication
- ntt
- 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/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/0852—Quantum cryptography
-
- 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/60—Methods 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/72—Methods 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/724—Finite field arithmetic
-
- 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/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/3236—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 using cryptographic hash functions
-
- 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
-
- 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
- H04L2209/122—Hardware reduction or efficient architectures
Abstract
描述了利用重新定义的多项式运算的组合后量子安全。设备的示例包括:第一电路,用于密钥封装操作;第二电路,用于数字签名操作;和NTT(数论变换)乘法器电路,其中NTT乘法器电路为第一电路和第二电路二者提供多项式乘法,其中设备用于:将用于第一电路的多项式的系数重新映射到用于第二电路的质数模数,并且利用用于第一电路的多项式的重新映射的系数来执行用于第一电路的多项式乘法。
Description
技术领域
本文中描述的实施例一般涉及电子装置的领域,并且更具体地,涉及利用重新定义的多项式运算的组合后量子安全。
背景技术
预期量子计算使攻击者能够解决以前尝试起来不切实际的问题,包括密码数学的求解。攻击可利用侧信道(side channel)来从密码计算获得信号,并且应用量子计算以确定秘密值。作为结果,任何已有密码方法可能被破解。
Crystals-Dilithium是基于格的后量子数字签名协议,它是国家标准和技术研究所(NIST)后量子密码术(PQC)标准化竞争中的最终入围者。另外,用于公钥封装/KEM的Saber也基于格运算。这种技术的基本运算是多项式运算。例如,为了秘密共享(TLS)密钥封装生成密文并且在不安全信道上传输密文,需要一方利用数字签名。
然而,对这种数字签名和公钥封装技术的要求是不一致的,并且因此,在传统实现中,这种操作中的每个操作需要被单独支持。
附图说明
在附图的图中通过示例的方式而非通过限制的方式示出这里描述的实施例,附图中相似的附图标记指代类似的元件。
图1是根据一些实施例的用于提供数字签名和密钥封装操作的系统或设备的高级图示;
图2是根据一些实施例的可在数字签名和密钥封装操作二者中利用的NTT算法操作的图示;
图3是根据一些实施例的将用于Saber密钥封装过程的系数重新映射以用于利用基于NTT的乘法器的操作的图示;
图4是根据一些实施例的用于密钥封装的过程的图示;
图5是根据一些实施例的用于密钥封装的过程的细节的图示;和
图6示出根据一些实施例的用于操作的示例性计算架构的实施例,操作包括利用重新定义的多项式运算的组合后量子安全。
具体实施方式
本文中描述的实施例涉及利用重新定义的多项式运算的组合后量子安全。
公钥密码术(也被称为非对称密码术)通常是将密钥对用于加密的密码系统,密钥对包括可公知的公钥和被安全地维护并且仅由密钥所有者知道的私钥。利用基于难的数学问题的密码算法来生成密钥对。
预期经典的公钥密码术(诸如,椭圆曲线密码术(ECC)、椭圆曲线数字签名算法(ECDSA)、Diffie-Hellman(DH)、Rivest Shamir Adleman(RSA)、数字签名算法(DSA))将会被量子计算机破解,量子计算机指代运用量子态的性质来执行计算的计算机。另外,对手可能当前正在从密码操作挖掘数据以在足够的量子计算技术可用时实现。
由于这个原因,后量子密码术(PQC)标准化是由国家标准和技术研究所(NIST)提出的计划和竞争以更新它们的标准从而包括后量子密码术。NIST PQC最终入围者候选即用于数字签名的Dilithium(Dilithium-Lattice)和用于密钥封装机制(KEM)的Saber基于格技术。格技术中的基本计算是多项式乘法(包括超过50%的计算时间),其中利用质数模数来定义多项式系数。
对这种数字签名和公钥封装技术的要求是不一致的,并且因此,在传统实现中,这种操作中的每个操作需要被单独支持。Dilithium包括23比特的质数模数,用于Dilithium的质数模数是q=223-213+1,而Saber利用非质数模数n=213来操作。
更具体地,如相关协议所指定的,Dilithium需要基于NTT(数论变换)的乘法器。NTT算法将多项式a(x)变换成它的NTT形式。在这种变换之后,具有NTT形式的多项式之间的乘法对应于具有NTT形式的多项式之间的按系数(coefficient-wise)乘法。因此,将a(x)和b(x)之间的乘积计算为INTT(NTT(a(x))×NTT(b(x)))是可能的,其中INTT表明逆NTT(即,INTT(NTT(a))=a)并且x×y表明x和y之间的按系数乘法。
在一些实施例中,设备、系统或过程用于通过应用基于NTT的处理来提供对诸如利用Dilithium的数字签名技术和诸如利用Saber的密钥封装技术二者的支持。在这方面(inthis matter),实施例允许减少需要的电路元件,同时对两种安全过程都保持足够的准确性。
图1是根据一些实施例的用于提供数字签名和密钥封装操作的系统或设备的高级图示。设备或系统100可包括处理器、处理加速器或其它电路模块(circuitry)以能够实现安全操作,并且特别地,以能够实现后量子安全技术。
在一些实施例中,设备或系统100至少包括:用于数字签名操作的电路模块110,其可具体地包括一个或多个电路块以提供Dilithium数字签名操作;和用于密钥封装操作的电路模块120,其可具体地包括一个或多个电路块以提供Saber密钥封装操作。
在一些实施例中,设备或系统100包括用于NTT和INTT操作的电路模块130,其中设备或系统100用于应用NTT/INTT乘法器电路以既支持数字签名电路模块110的操作又支持密钥封装电路模块120的操作。在一些实施例中,设备或系统或过程用于将基于NTT的乘法器电路模块(指代包括NTT和INTT操作的乘法器)既应用于诸如Dilithium技术中的数字签名操作又应用于诸如Saber技术中的密钥封装操作。
在一些实施例中,密钥封装电路模块120通过利用更大模数将系数重新映射以防止错误来适应于基于NTT的乘法器。如本文中进一步所述,使用带符号逻辑可将需要的模数大小减小到24比特。在一些实施例中,利用23比特的Dilithium模数q=223-213+1的基于NTT的乘法器以极其可忽略的概率(在安全级别3,p=2-2045)计算错误结果,并且基于NTT的乘法器130在所述设备或系统中既被应用于诸如Dilithium技术中的数字签名操作又被应用于诸如Saber技术中的密钥封装。按照这种方式,同一多项式乘法器被用于两种协议,因此意味着不需要专用电路来支持模数约简或其它协议特定的任务。
图2是根据一些实施例的可在诸如Dilithium技术中的数字签名操作和诸如Saber技术中的密钥封装操作二者中利用的NTT算法操作的图示。在NTT算法的核心是蝴蝶操作,蝴蝶操作接收两个系数和一个常数值并且输出系数的新值。蝴蝶操作的实现通常遵循用于前向NTT的Cooley-Tukey(CT)算法和用于逆NTT的Gentleman-Sande(GS)算法。这是可能的,因为逆NTT算法非常类似于前向NTT算法,主要差别是蝴蝶操作。NTT对一个多项式的所有系数进行若干次操作。在八次重复(由于Dilithium中的多项式具有256个系数)对所有系数的蝴蝶操作(在每次重复时具有不同的对)之后,产生NTT结果。因此,NTT功能由128/n(其中n是蝴蝶单元的数量)个周期(cycle)的块230组成,其中块中的每个周期含有独立操作,即一次操作的结果不取决于同一块中的任何其它计算的结果。
在图2中总结这种操作。如图中所示,NTT算法包括块230(示出为块1至块8)。在操作中,NTT算法用于接收原始多项式210以由块230处理从而生成可被用在多项式的乘法中的、所获得的具有NTT形式的多项式220。
在用于密码操作的格KEM中,一个秘密多项式乘以另一公共多项式。乘法由秘密多项式的每个系数乘以公共多项式的相应元素组成。在后量子实现中,多项式可以是256次多项式。两个这种多项式之间的乘法是用于密钥生成、封装和解封装的主要计算密集型操作。数学操作利用模算术,模算术指代用于整数的算术的系统,其中当达到称为模数的某个值时数字绕回(wrap around)。
在一些实施例中,设备、系统或过程用于将基于NTT的乘法器电路模块既用于诸如Dilithium技术中的数字签名生成又用于诸如Saber的密钥封装。在一些实施例中,为了将基于NTT的乘法器(诸如,图1中示出的基于NTT的乘法器130)用于Saber,利用更大模数将系数重新映射以防止错误,诸如图3中所示。
图3是根据一些实施例的将用于Saber密钥封装过程的系数重新映射以用于利用基于NTT的乘法器的操作的图示。在一些实施例中,重新映射操作300被应用于Saber的密钥封装系数,310,密钥封装系数传统上利用模数n=213,将要被重新映射到更大的质数值,320。更具体地,为了利用基于NTT的乘法器来计算Saber密钥封装中的乘法,模数213的元素被提升(raise)到更大的质数
q',以使得在整数环中存在2
n次(2
n-th )单位根。
为了确保操作的正确性,质数
q'被确立为足够大以至于不需要模数约简的值。通常,人们将会需要
q'大于34比特,因为SABER中的两个多项式的乘积中的系数的最大绝对值由256×213×213(=234)给出,这因此将会需要34比特。
然而,在实施例中可能的是:通过考虑到一个操作数即秘密多项式在Saber中具有-4和4之间的小系数,提供更加高效的解决方案。为了实现这一点,需要带符号操作以表示元素,诸如利用3比特(加符号)表示-4,而非利用13比特(比如
q-4)。因此,按照这种方式,将公共多项式系数表示为在[-212,212-1]之间是可能的。注意,这种操作不需要任何变换动作,而是系数比特值可被读取为二的补码(two's complement)格式,而非读取为正数。
在一些实施例中,这种过程允许减小质数
q'的大小,因为两个多项式的乘积中的系数的最大绝对值随后是256×4×212。然而,注意,对于任何质数
q',≠。因此,因为实施例正在利用中心模数约简(centered modularreduction),所以希望质数
q'满足。
然而,Dilithium质数
q=223-213+1几乎满足这个目标,。存在某些多项式,对于这些多项式,如果Dilithium模数被用在Saber运算中,则修改的算法将会返回不正确的结果。然而,这种多项式是极其罕见的,并且因此,不会极大地影响运算的准确性。
例如,可假设最坏情况的场景,在该场景中,的所有系数具有绝对值212。可随后考虑到:
s(
x)的单个系数是四的概率是2-8。在这种操作中,仅当系数的大数(high number)是四或负四时,计算失败。因此,秘密多项式是这种多项式的概率在数学上是可忽略的,并且能够估计这种概率小于2-1778。
注意,确切的情形随着不同的安全级别变体(variant)而变化。在FireSABER中,秘密系数的范围在-3和3之间,因此乘法总是正确的。在LightSABER中,秘密系数落在集合[-5,5]中,因此失败的概率高于在SABER中失败的概率。然而,假设公共多项式中的最大系数,失败的概率的下界由2-1407给出。
图4是根据一些实施例的用于密钥封装的过程的图示。在一些实施例中,过程400包括接收对密钥封装的请求,405,其中密钥封装技术包括后量子技术中的用于KEM的Saber技术。密钥封装可包括利用基于NTT的乘法器的操作以能够实现既支持Dilithium数字签名处理又支持Saber密钥封装处理。
在一些实施例中,该过程前进至将用于密钥封装的多项式系数重新映射以用于新模数,410,其中将系数重新映射可包括图3中示出的操作以应用用于Dilithium的质数模数并且执行带符号操作以表示小系数值。在重新映射之后,利用基于NTT的乘法器电路模块来执行多项式乘法,415,其中该电路模块可包括设备或系统中的基于NTT的乘法器电路模块130以在混合或组合单元中支持数字签名和密钥封装协议二者,如图1中所示出的。
在一些实施例中,过程400可前进至获得乘法的结果,420;针对密钥封装协议利用原始模数来执行模数约简,425;并且输出密钥封装的结果,430。
图5是根据一些实施例的用于密钥封装的过程的细节的图示。在一些实施例中,用于诸如Saber KEM技术中的密钥封装的过程可包括接收输入:具有0和213之间的系数的两个多项式(510和530),其中这两个多项式可包括公共多项式和私有多项式。对于每个系数
a,通过确定
a是否大于212来修改值(512和532),并且如果确定
a大于212,则将
a设置为
a减213(514和536)。然后,结果是具有-212和+212之间的系数的两个多项式(516和536)。然后,系数可被视为在-(q-1)/2和+(q-1)/2之间(518和538)。
在一些实施例中,随后将这两个系数相乘,取模q(modulus
q),相乘遵循用于Dilithium操作的乘法,该乘法使用基于NTT的乘法器,550。随后利用原始模数213来约简乘法的结果(552),并且因此,生成这两个多项式的输出,取模213(554)。
图6示出根据一些实施例的用于操作的示例性计算架构的实施例,操作包括利用重新定义的多项式运算的组合后量子安全。在如上所述的各种实施例中,计算架构600可包括或被实现为电子装置的一部分。在一些实施例中,计算架构600可例如代表实现上述操作环境的一个或多个组件的计算机系统。计算架构600可被用于提供诸如图1-5中所述的利用重新定义的多项式运算的组合安全。在一些实施例中,计算架构可包括组合技术以支持数字签名和密钥封装技术,计算架构可包括基于NTT的乘法器电路模块。
如本申请中所使用的,术语“系统”和“组件”和“模块”旨在指代计算机相关实体:硬件、硬件和软件的组合、软件或执行的软件,其示例由示例性计算架构600提供。例如,组件能够是但不限于是在处理器上运行的进程、处理器、硬盘驱动器或固态驱动器(SSD)、(光存储介质和/或磁存储介质的)多个存储驱动器、对象、可执行文件(executable)、执行线程、程序和/或计算机。作为举例说明,在服务器上运行的应用和服务器都能够是组件。一个或多个组件能够驻留在执行线程和/或进程内,并且组件能够位于一个计算机上和/或分布在两个或更多个计算机之间。另外,组件可通过各种类型的通信介质以通信方式彼此耦合以协调操作。协调可涉及信息的单向或双向交换。例如,组件可传输具有在通信介质上传输的信号的形式的信息。信息能够被实现为分配给各种信号线的信号。在这种分配中,每个消息是信号。然而,另外的实施例可备选地采用数据消息。可跨越各种连接发送这种数据消息。示例性连接包括并行接口、串行接口和总线接口。
计算架构600包括各种常见计算元件,诸如一个或多个处理器、多核处理器、协处理器、存储器单元、芯片集、控制器、外围设备、接口、振荡器、定时装置、视频卡、音频卡、多媒体输入/输出(I/O)组件、电源以及诸如此类。然而,实施例不限于由计算架构600来实现。
如图6中所示,计算架构600包括一个或多个处理器602和一个或多个图形处理器608,并且可以是单处理器台式系统、多处理器工作站系统或者具有大量处理器602或处理器核607的服务器系统。在一个实施例中,系统600是被并入用在移动、手持式或嵌入式装置中的片上系统(SoC或SOC)集成电路内所包含的处理平台。
系统600的实施例能够包括基于服务器的游戏平台、游戏控制台,或者被包含在基于服务器的游戏平台、游戏控制台内,游戏控制台包括游戏和媒体控制台、移动游戏控制台、手持式游戏控制台或在线游戏控制台。在一些实施例中,系统600是移动电话、智能电话、平板计算装置或移动互联网装置。数据处理系统600还能够包括诸如智能手表可穿戴装置、智能眼镜装置、增强现实装置或虚拟现实装置的可穿戴装置,与所述可穿戴装置耦合,或集成在所述可穿戴装置内。在一些实施例中,数据处理系统600是电视或机顶盒装置,电视或机顶盒装置具有一个或多个处理器602和由一个或多个图形处理器608生成的图形界面。
在一些实施例中,一个或多个处理器602各自包括一个或多个处理器核607以处理指令,当指令被执行时,指令执行用于系统和用户软件的操作。在一些实施例中,一个或多个处理器核607中的每个处理器核607被配置为处理特定指令集609。在一些实施例中,指令集609可促进复杂指令集计算(CISC)、精减指令集计算(RISC)或经由超长指令字(VLIW)的计算。多个处理器核607可各自处理不同的指令集609,指令集609可包括用于促进其它指令集的仿真的指令。处理器核607还可包括其它处理装置,诸如数字信号处理器(DSP)。
在一些实施例中,处理器602包括高速缓存存储器604。取决于架构,处理器602能够具有单个内部高速缓存或多级内部高速缓存。在一些实施例中,在处理器602的各种组件之中共享高速缓存存储器604。在一些实施例中,处理器602还使用外部高速缓存(例如,3级(L3)高速缓存或末级高速缓存(LLC))(未示出),可使用已知高速缓存一致性技术而在处理器核607之中共享外部高速缓存。寄存器堆606被另外包括在处理器602中,处理器602可包括用于存储不同类型的数据的不同类型的寄存器(例如,整数寄存器、浮点寄存器、状态寄存器和指令指针寄存器)。一些寄存器可以是通用寄存器,而其它寄存器可特定于处理器602的设计。
在一些实施例中,一个或多个处理器602与一个或多个接口总线610耦合以在处理器602和系统中的其它组件之间传送通信信号,诸如地址、数据或控制信号。在一个实施例中,接口总线610能够是处理器总线,诸如直接媒体接口(DMI)总线的版本。然而,处理器总线不限于DMI总线,并且可包括一种或多种外围组件互连总线(例如,PCI、PCI快速(Express))、存储器总线或其它类型的接口总线。在一个实施例中,(一个或多个)处理器602包括集成存储器控制器616和平台控制器集线器630。存储器控制器616促进存储器装置和系统600的其它组件之间的通信,而平台控制器集线器(PCH)630经由本地I/O总线提供到I/O装置的连接。
存储器装置620能够是动态随机存取存储器(DRAM)装置、静态随机存取存储器(SRAM)装置、诸如闪存装置或相变存储器装置的非易失性存储器装置或具有合适的性能以用作进程存储器的某种其它存储器装置。存储器装置620还可包括用于存储固件的非易失性存储器元件。在一个实施例中,存储器装置620能够作为用于系统600的系统存储器来操作,以存储当一个或多个处理器602执行应用或进程时使用的数据622和指令621。存储器控制器集线器616还与可选的外部图形处理器612耦合,可选的外部图形处理器612可与处理器602中的一个或多个图形处理器608通信以执行图形和媒体操作。在一些实施例中,显示器装置611能够连接到(一个或多个)处理器602。显示器装置611能够是以下装置中的一个或多个:如移动电子装置或膝上型装置中的内部显示器装置,或者经由显示器接口(例如,DisplayPort等)附连的外部显示器装置。在一个实施例中,显示器装置611能够是头戴式显示器(HMD),诸如用于虚拟现实(VR)应用或增强现实(AR)应用中的立体显示器装置。
在一些实施例中,平台控制器集线器630使外围设备能够经由高速I/O总线连接到存储器装置620和处理器602。I/O外围设备包括但不限于音频控制器646、网络控制器634、固件接口628、无线收发器626、触摸传感器625、数据存储装置624(例如,硬盘驱动器、闪存等)。数据存储装置624能够经由存储接口(例如,SATA)或经由外围总线(诸如,外围组件互连总线(例如,PCI、PCI快速(Express))连接。触摸传感器625能够包括触摸屏传感器、压力传感器或指纹传感器。无线收发器626能够是Wi-Fi收发器、蓝牙(Bluetooth)收发器或移动网络收发器,诸如3G、4G、长期演进(LTE)或5G收发器。固件接口628能够实现与系统固件的通信,并且能够是例如统一可扩展固件接口(UEFI)。网络控制器634能够实现到有线网络的网络连接。在一些实施例中,高性能网络控制器(未示出)与接口总线610耦合。在一个实施例中,音频控制器646是多声道高清晰度音频控制器。在一个实施例中,系统600包括用于将传统(例如,个人系统2(PS/2))装置耦合到系统的可选的传统I/O控制器640。平台控制器集线器630还能够连接到一个或多个通用串行总线(USB)控制器642以连接输入装置,诸如键盘和鼠标643组合、照相机644或其它USB输入装置。
在以上描述中,为了解释的目的,阐述许多特定细节以便提供对描述的实施例的透彻的理解。然而,对于本领域技术人员而言将会清楚的是,可在没有这些特定细节中的一些特定细节的情况下实施实施例。在其它实例中,按照方框图形式示出公知的结构和装置。在示出的组件之间可存在中间结构。本文中描述或示出的组件可具有未示出或描述的另外的输入或输出。
各种实施例可包括各种过程。这些过程可由硬件组件执行,或者可被体现在计算机程序或机器可执行指令中,计算机程序或机器可执行指令可被用于使利用指令编程的通用或专用处理器或逻辑电路执行过程。备选地,可由硬件和软件的组合来执行过程。
各种实施例的部分可被作为计算机程序产品来提供,计算机程序产品可包括计算机可读介质,计算机可读介质上存储有计算机程序指令,计算机程序指令可被用于对计算机(或其它电子装置)进行编程以由一个或多个处理器执行从而执行根据某些实施例的过程。计算机可读介质可包括但不限于磁盘、光盘、只读存储器(ROM)、随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁卡或光卡、闪存或适合存储电子指令的其它类型的计算机可读介质。此外,实施例还可被作为计算机程序产品来下载,其中可将程序从远程计算机传递到请求计算机。
在不脱离本公开的实施例的基本范围的情况下,按照方法中的许多方法的最基本的形式来描述它们,但能够将过程添加到方法中的任何方法或从方法中的任何方法删除过程,并且能够将信息添加到描述的消息中的任何描述的消息或从描述的消息中的任何描述的消息减去信息。对于本领域技术人员而言将会清楚的是,能够进行许多另外的修改和调整。提供特定实施例不是为了限制概念,而是为了举例说明概念。实施例的范围不应该由以上提供的特定示例确定,而是应该仅由以下的权利要求书确定。
如果说元件“A”耦合到元件“B”或与元件“B”耦合,则元件A可直接耦合到元件B或通过例如元件C间接地耦合。当说明书或权利要求书陈述组件、特征、结构、过程或特性A“引起”组件、特征、结构、过程或特性B时,这意味着:“A”至少是“B”的部分原因,但也可存在帮助引起“B”的至少一个其它组件、特征、结构、过程或特性。如果说明书指示“可”、“可能”或“能够”包括组件、特征、结构、过程或特性,则不需要包括该特定组件、特征、结构、过程或特性。如果说明书或权利要求提及“一”或“一个”元件,则这并不意味着仅存在描述的元件中的一个描述的元件。
实施例是实现或示例。在说明书中对“实施例”、“一个实施例”、“一些实施例”或“其它实施例”的提及意味着:结合实施例描述的特定特征、结构或特性被包括在至少一些实施例中,但不一定被包括在所有实施例中。“实施例”、“一个实施例”或“一些实施例”的各种出现不一定全都指代相同的实施例。应该理解,在对示例性实施例的前面的描述中,为了使本公开简化并且帮助理解各种新颖方面中的一个或多个新颖方面的目的,有时在单个实施例、附图或其描述中将各种特征聚集在一起。然而,这种公开方法不应该被解释为反映这样的意图:要求保护的实施例需要比在每个权利要求中明确记载的特征多的特征。相反地,如下面的权利要求书所反映的,新颖方面在于比单个前面的公开的实施例的所有特征少。因此,权利要求书由此被明确包含到本描述中,每个权利要求作为单独的实施例独立存在。
应该在说明性的而非限制性的意义上看待前面的描述和附图。本领域技术人员将会理解,在不脱离在所附权利要求书中阐述的特征的更广泛的精神和范围的情况下,可对本文中描述的实施例进行各种修改和改变。
下面的示例涉及某些实施例:
在示例1中,一种设备包括:第一电路,用于密钥封装操作;第二电路,用于数字签名操作;和NTT(数论变换)乘法器电路,其中所述NTT乘法器电路为所述第一电路和所述第二电路二者提供多项式乘法,其中所述设备用于:将用于所述第一电路的多项式的系数重新映射到用于所述第二电路的质数模数,并且利用用于所述第一电路的所述多项式的重新映射的系数来执行用于所述第一电路的多项式乘法。
在示例2中,将所述系数重新映射包括带符号操作以表示用于所述第一电路的所述系数。
在示例3中,按照二的补码格式来表示用于所述第一电路的所述系数。
在示例4中,用于所述第一电路和所述第二电路的所述多项式乘法包括私有多项式与公共多项式的乘法。
在示例5中,执行用于所述第一电路的多项式乘法还包括通过用于所述第一电路的原始模数来约简运算的结果。
在示例6中,所述第一电路是包括非质数模数n=213的Saber密钥封装电路。
在示例7中,所述第二电路是包括23比特的质数模数q=223-213+1的Dilithium数字签名电路。
在示例8中,一种方法包括:将用于第一操作的多项式的系数重新映射到用于第二操作的质数模数,所述第一操作用于密钥封装处理,所述第二操作用于数字签名处理;并且利用用于所述第一操作的所述多项式的重新映射的系数来执行用于所述第一操作的多项式乘法,其中执行用于所述第一操作的多项式乘法包括使用NTT(数论变换)乘法器电路,其中所述NTT乘法器电路为所述第一操作和所述第二操作二者提供多项式乘法。
在示例9中,将所述系数重新映射包括带符号操作以表示用于所述第一操作的所述系数。
在示例10中,按照二的补码格式来表示用于所述第一操作的所述系数。
在示例11中,执行用于所述第一操作和所述第二操作的多项式乘法包括执行私有多项式与公共多项式的乘法。
在示例12中,其中执行用于所述第一操作的多项式乘法还包括通过用于所述第一操作的原始模数来约简运算的结果。
在示例13中,所述第一操作是包括23比特的质数模数q=223-213+1的Dilithium数字签名操作。
在示例14中,所述第二操作是包括非质数模数n=213的Saber密钥封装操作。
在示例15中,一种或多种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质上存储有可执行计算机程序指令,当所述可执行计算机程序指令由一个或多个处理器执行时,所述可执行计算机程序指令使所述一个或多个处理器执行操作,所述操作包括:将用于第一操作的多项式的系数重新映射到用于第二操作的质数模数,所述第一操作用于密钥封装处理,所述第二操作用于数字签名处理;并且利用用于所述第一操作的所述多项式的重新映射的系数来执行用于所述第一操作的多项式乘法,其中执行用于所述第一操作的多项式乘法包括使用NTT(数论变换)乘法器电路,其中所述NTT乘法器电路为所述第一操作和所述第二操作二者提供多项式乘法。
在示例16中,将所述系数重新映射包括带符号操作以表示用于所述第一操作的所述系数。
在示例17中,按照二的补码格式来表示用于所述第一操作的所述系数。
在示例18中,执行用于所述第一操作和所述第二操作的多项式乘法包括执行私有多项式与公共多项式的乘法。
在示例19中,其中执行用于所述第一操作的多项式乘法还包括通过用于所述第一操作的原始模数来约简运算的结果。
在示例20中,所述第一操作是包括23比特的质数模数q=223-213+1的Dilithium数字签名操作,并且所述第二操作是包括非质数模数n=213的Saber密钥封装操作。
在示例21中,一种系统包括:一个或多个处理器;存储器,用于数据的存储;第一电路,用于密钥封装操作;第二电路,用于数字签名操作;和NTT(数论变换)乘法器电路,其中所述NTT乘法器电路为所述第一电路和所述第二电路二者提供多项式乘法,其中所述设备用于:将用于所述第一电路的多项式的系数重新映射到用于所述第二电路的质数模数,并且利用用于所述第一电路的所述多项式的重新映射的系数来执行用于所述第一电路的多项式乘法。
在示例22中,将所述系数重新映射包括带符号操作以表示用于所述第一电路的所述系数。
在示例23中,按照二的补码格式来表示用于所述第一电路的所述系数。
在示例24中,用于所述第一电路和所述第二电路的所述多项式乘法包括私有多项式与公共多项式的乘法。
在示例25中,执行用于所述第一电路的多项式乘法还包括通过用于所述第一电路的原始模数来约简运算的结果。
在示例26中,所述第一电路是包括非质数模数n=213的Saber密钥封装电路。
在示例27中,所述第二电路是包括23比特的质数模数q=223-213+1的Dilithium数字签名电路。
在示例28中,一种设备包括:用于将用于第一操作的多项式的系数重新映射到用于第二操作的质数模数的部件,所述第一操作用于密钥封装处理,所述第二操作用于数字签名处理;和用于利用用于所述第一操作的所述多项式的重新映射的系数来执行用于所述第一操作的多项式乘法的部件,其中所述用于执行用于所述第一操作的多项式乘法的部件包括使用NTT(数论变换)乘法器电路,其中所述NTT乘法器电路为所述第一操作和所述第二操作二者提供多项式乘法。
在示例29中,所述用于将所述系数重新映射的部件包括带符号操作以表示用于所述第一操作的所述系数。
在示例30中,按照二的补码格式来表示用于所述第一操作的所述系数。
在示例31中,所述用于执行用于所述第一操作和所述第二操作的多项式乘法的部件包括用于执行私有多项式与公共多项式的乘法的部件。
在示例32中,所述用于执行用于所述第一操作的多项式乘法的部件还包括用于通过用于所述第一操作的原始模数来约简运算的结果的部件。
在示例33中,所述第一操作是包括23比特的质数模数q=223-213+1的Dilithium数字签名操作,并且所述第二操作是包括非质数模数n=213的Saber密钥封装操作。
在以上描述中,为了解释的目的,阐述许多特定细节以便提供对描述的实施例的透彻的理解。然而,对于本领域技术人员而言将会清楚的是,可在没有这些特定细节中的一些特定细节的情况下实施实施例。在其它实例中,按照方框图形式示出公知的结构和装置。在示出的组件之间可存在中间结构。本文中描述或示出的组件可具有未示出或描述的另外的输入或输出。
各种实施例可包括各种过程。这些过程可由硬件组件执行,或者可被体现在计算机程序或机器可执行指令中,计算机程序或机器可执行指令可被用于使利用指令编程的通用或专用处理器或逻辑电路执行过程。备选地,可由硬件和软件的组合来执行过程。
各种实施例的部分可被作为计算机程序产品来提供,计算机程序产品可包括计算机可读介质,计算机可读介质上存储有计算机程序指令,计算机程序指令可被用于对计算机(或其它电子装置)进行编程以由一个或多个处理器执行从而执行根据某些实施例的过程。计算机可读介质可包括但不限于磁盘、光盘、只读存储器(ROM)、随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁卡或光卡、闪存或适合存储电子指令的其它类型的计算机可读介质。此外,实施例还可被作为计算机程序产品来下载,其中可将程序从远程计算机传递到请求计算机。
在不脱离本公开的实施例的基本范围的情况下,按照方法中的许多方法的最基本的形式来描述它们,但能够将过程添加到方法中的任何方法或从方法中的任何方法删除过程,并且能够将信息添加到描述的消息中的任何描述的消息或从描述的消息中的任何描述的消息减去信息。对于本领域技术人员而言将会清楚的是,能够进行许多另外的修改和调整。提供特定实施例不是为了限制概念,而是为了举例说明概念。实施例的范围不应该由以上提供的特定示例确定,而是应该仅由以下的权利要求书确定。
如果说元件“A”耦合到元件“B”或与元件“B”耦合,则元件A可直接耦合到元件B或通过例如元件C间接地耦合。当说明书或权利要求书陈述组件、特征、结构、过程或特性A“引起”组件、特征、结构、过程或特性B时,这意味着:“A”至少是“B”的部分原因,但也可存在帮助引起“B”的至少一个其它组件、特征、结构、过程或特性。如果说明书指示“可”、“可能”或“能够”包括组件、特征、结构、过程或特性,则不需要包括该特定组件、特征、结构、过程或特性。如果说明书或权利要求提及“一”或“一个”元件,则这并不意味着仅存在描述的元件中的一个描述的元件。
实施例是实现或示例。在说明书中对“实施例”、“一个实施例”、“一些实施例”或“其它实施例”的提及意味着:结合实施例描述的特定特征、结构或特性被包括在至少一些实施例中,但不一定被包括在所有实施例中。“实施例”、“一个实施例”或“一些实施例”的各种出现不一定全都指代相同的实施例。应该理解,在对示例性实施例的前面的描述中,为了使本公开简化并且帮助理解各种新颖方面中的一个或多个新颖方面的目的,有时在单个实施例、附图或其描述中将各种特征聚集在一起。然而,这种公开方法不应该被解释为反映这样的意图:要求保护的实施例需要比在每个权利要求中明确记载的特征多的特征。相反地,如下面的权利要求书所反映的,新颖方面在于比单个前面的公开的实施例的所有特征少。因此,权利要求书由此被明确包含到本描述中,每个权利要求作为单独的实施例独立存在。
应该在说明性的而非限制性的意义上看待前面的描述和附图。本领域技术人员将会理解,在不脱离在所附权利要求书中阐述的特征的更广泛的精神和范围的情况下,可对本文中描述的实施例进行各种修改和改变。
Claims (20)
1.一种设备,包括:
第一电路,用于密钥封装操作;
第二电路,用于数字签名操作;和
NTT(数论变换)乘法器电路,其中所述NTT乘法器电路为所述第一电路和所述第二电路二者提供多项式乘法;
其中所述设备用于:
将用于所述第一电路的多项式的系数重新映射到用于所述第二电路的质数模数,并且
利用用于所述第一电路的所述多项式的重新映射的系数来执行用于所述第一电路的多项式乘法。
2.如权利要求1所述的设备,其中,将所述系数重新映射包括带符号操作以表示用于所述第一电路的所述系数。
3.如权利要求2所述的设备,其中,按照二的补码格式来表示用于所述第一电路的所述系数。
4.如权利要求1所述的设备,其中,用于所述第一电路和所述第二电路的所述多项式乘法包括私有多项式与公共多项式的乘法。
5.如权利要求1所述的设备,其中,执行用于所述第一电路的多项式乘法还包括通过用于所述第一电路的原始模数来约简运算的结果。
6.如权利要求1所述的设备,其中,所述第一电路是包括非质数模数n=213的Saber密钥封装电路。
7.如权利要求1所述的设备,其中,所述第二电路是包括23比特的质数模数q=223-213+1的Crystals-Dilithium数字签名电路。
8.一种方法,包括:
将用于第一操作的多项式的系数重新映射到用于第二操作的质数模数,所述第一操作用于密钥封装处理,所述第二操作用于数字签名处理;并且
利用用于所述第一操作的所述多项式的重新映射的系数来执行用于所述第一操作的多项式乘法;
其中执行用于所述第一操作的多项式乘法包括使用NTT(数论变换)乘法器电路,其中所述NTT乘法器电路为所述第一操作和所述第二操作二者提供多项式乘法。
9.如权利要求8所述的方法,其中,将所述系数重新映射包括带符号操作以表示用于所述第一操作的所述系数。
10.如权利要求9所述的方法,其中,按照二的补码格式来表示用于所述第一操作的所述系数。
11.如权利要求8所述的方法,其中,执行用于所述第一操作和所述第二操作的多项式乘法包括执行私有多项式与公共多项式的乘法。
12.如权利要求8所述的方法,其中,执行用于所述第一操作的多项式乘法还包括通过用于所述第一操作的原始模数来约简运算的结果。
13.如权利要求8所述的方法,其中,所述第一操作是包括非质数模数n=213的Saber密钥封装操作。
14.如权利要求8所述的方法,其中,所述第二操作是包括23比特的质数模数q=223-213+1的Dilithium数字签名操作。
15.一种或多种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质上存储有可执行计算机程序指令,当所述可执行计算机程序指令由一个或多个处理器执行时,所述可执行计算机程序指令使所述一个或多个处理器执行操作,所述操作包括:
将用于第一操作的多项式的系数重新映射到用于第二操作的质数模数,所述第一操作用于密钥封装处理,所述第二操作用于数字签名处理;并且
利用用于所述第一操作的所述多项式的重新映射的系数来执行用于所述第一操作的多项式乘法;
其中执行用于所述第一操作的多项式乘法包括使用NTT(数论变换)乘法器电路,其中所述NTT乘法器电路为所述第一操作和所述第二操作二者提供多项式乘法。
16.如权利要求15所述的存储介质,其中,将所述系数重新映射包括带符号操作以表示用于所述第一操作的所述系数。
17.如权利要求15所述的存储介质,其中,按照二的补码格式来表示用于所述第一操作的所述系数。
18.如权利要求15所述的存储介质,其中,执行用于所述第一操作和所述第二操作的多项式乘法包括执行私有多项式与公共多项式的乘法。
19.如权利要求15所述的存储介质,其中,执行用于所述第一操作的多项式乘法还包括通过用于所述第一操作的原始模数来约简运算的结果。
20.如权利要求15所述的存储介质,其中,所述第一操作是包括非质数模数n=213的Saber密钥封装操作,并且所述第二操作是包括23比特的质数模数q=223-213+1的Crystals-Dilithium数字签名操作。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/484820 | 2021-09-24 | ||
US17/484,820 US20220014363A1 (en) | 2021-09-24 | 2021-09-24 | Combined post-quantum security utilizing redefined polynomial calculation |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115936133A true CN115936133A (zh) | 2023-04-07 |
Family
ID=79173221
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211017764.2A Pending CN115936133A (zh) | 2021-09-24 | 2022-08-24 | 利用重新定义的多项式运算的组合后量子安全 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20220014363A1 (zh) |
EP (1) | EP4156595A1 (zh) |
CN (1) | CN115936133A (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11804968B2 (en) * | 2021-09-30 | 2023-10-31 | Pqsecure Technologies, Llc | Area efficient architecture for lattice based key encapsulation and digital signature generation |
CN115412241B (zh) * | 2022-07-25 | 2024-02-06 | 华中科技大学 | 实现后量子密码算法Kyber和Saber的融合密码安全处理器 |
CN116865979B (zh) * | 2023-09-05 | 2023-11-10 | 南京航空航天大学 | 一种基于后量子数字签名的mdc-ntt装置 |
CN117714054B (zh) * | 2024-02-01 | 2024-04-23 | 山东大学 | 基于数论变换的密钥封装轻量化方法、系统、介质及设备 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11416638B2 (en) * | 2019-02-19 | 2022-08-16 | Massachusetts Institute Of Technology | Configurable lattice cryptography processor for the quantum-secure internet of things and related techniques |
US11764942B2 (en) * | 2021-06-01 | 2023-09-19 | Huawei Technologies Co., Ltd. | Hardware architecture for memory organization for fully homomorphic encryption |
DE102021120010B3 (de) * | 2021-08-02 | 2022-10-13 | Infineon Technologies Ag | Kryptografische verarbeitungsvorrichtung und verfahren zur durchführung einer gitterbasierten kryptografieoperation |
-
2021
- 2021-09-24 US US17/484,820 patent/US20220014363A1/en not_active Abandoned
-
2022
- 2022-07-13 EP EP22184609.0A patent/EP4156595A1/en active Pending
- 2022-08-24 CN CN202211017764.2A patent/CN115936133A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US20220014363A1 (en) | 2022-01-13 |
EP4156595A1 (en) | 2023-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11917053B2 (en) | Combined SHA2 and SHA3 based XMSS hardware accelerator | |
CN115936133A (zh) | 利用重新定义的多项式运算的组合后量子安全 | |
CN112152809A (zh) | 用于计算环境中经典和后量子数字签名方案的统一加速器 | |
US11405213B2 (en) | Low latency post-quantum signature verification for fast secure-boot | |
CN109479003B (zh) | 用于安全椭圆曲线密码指令的处理器、系统、方法和设备 | |
EP4156597A1 (en) | Low-latency digital-signature processing with side-channel security | |
CN108228137B (zh) | 蒙哥马利乘法处理器、方法、系统和指令 | |
US20220006611A1 (en) | Side-channel robust incomplete number theoretic transform for crystal kyber | |
US20220131708A1 (en) | Efficient hybridization of classical and post-quantum signatures | |
CN114579078A (zh) | 一种加速器、加速方法和电子设备 | |
EP3930252A1 (en) | Countermeasures for side-channel attacks on protected sign and key exchange operations | |
US20190319787A1 (en) | Hardware acceleration of bike for post-quantum public key cryptography | |
US20220255757A1 (en) | Digital signature verification engine for reconfigurable circuit devices | |
US20230185905A1 (en) | Protection of authentication tag computation against power and electromagnetic side-channel attacks | |
US20230244445A1 (en) | Techniques and devices for efficient montgomery multiplication with reduced dependencies | |
US20220100873A1 (en) | Computation of xmss signature with limited runtime storage | |
US11792004B2 (en) | Polynomial multiplication for side-channel protection in cryptography | |
US20230087297A1 (en) | Modulus reduction for cryptography | |
WO2023141935A1 (en) | Techniques, devices, and instruction set architecture for balanced and secure ladder computations | |
US11954487B2 (en) | Techniques, devices, and instruction set architecture for efficient modular division and inversion | |
US11985221B2 (en) | Efficient masking of secure data in ladder-type cryptographic computations | |
WO2023141934A1 (en) | Efficient masking of secure data in ladder-type cryptographic computations |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |