CN113972980A - 基于数论变换的格密码多项式乘法运算的优化方法及装置 - Google Patents

基于数论变换的格密码多项式乘法运算的优化方法及装置 Download PDF

Info

Publication number
CN113972980A
CN113972980A CN202010724323.0A CN202010724323A CN113972980A CN 113972980 A CN113972980 A CN 113972980A CN 202010724323 A CN202010724323 A CN 202010724323A CN 113972980 A CN113972980 A CN 113972980A
Authority
CN
China
Prior art keywords
transformation
order
factor
twiddle
current
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.)
Granted
Application number
CN202010724323.0A
Other languages
English (en)
Other versions
CN113972980B (zh
Inventor
徐基明
王宇建
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nationz Technologies Inc
Original Assignee
Nationz Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nationz Technologies Inc filed Critical Nationz Technologies Inc
Priority to CN202010724323.0A priority Critical patent/CN113972980B/zh
Publication of CN113972980A publication Critical patent/CN113972980A/zh
Application granted granted Critical
Publication of CN113972980B publication Critical patent/CN113972980B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)

Abstract

本申请公开一种基于数论变换的格密码多项式乘法运算的优化方法及装置。所述优化方法包括:在所述数论变换前,将需要进行变换的多项式系数存储在外部寄存器中;根据所述格密码算法的变换参数,计算初始化旋转因子并在所述外部存储器中进行预存储;在当前阶变换中,读取预存储的所述初始化旋转因子,迭代计算当前阶旋转因子;采用变换算法,对计算的所述当前阶旋转因子和读取的所述多项式系数进行当前阶变换。通过在迭代中动态生成旋转因子,去除了对旋转因子进行预计算的操作,从而节省存储空间,使得算法支持更多不同的参数设置,更加节约芯片面积。

Description

基于数论变换的格密码多项式乘法运算的优化方法及装置
技术领域
本申请涉及密码算法技术领域,具体涉及一种基于数论变换的格密码多项式乘法运算的优化方法、装置及芯片。
背景技术
在基于环上容错学习(Ring Learning With Errors,RLWE)模型的密码算法中,核心运算以多项式代数的形式来实现,其中不可避免地涉及多项式乘法运算。多项式乘法相对于其它多项式代数运算更加复杂,明显需要更多的计算资源,运算时间也更长。因此多项式乘法运算的优化可以显著提升密码设备的性能。
目前,数论变换是多项式乘法运算最常见的优化方式之一,即通过数论变换将多项式乘变换为逐项乘,再通过对逐项乘结果进行逆变换获得多项式乘的最终结果。
发明内容
本申请旨在提供一种基于数论变换的格密码多项式乘法运算的优化方法,通过在变换过程中迭代计算旋转因子,使密码芯片等资源紧张的紧凑型等设备可以在有限资源中支持尽可能多的格密码算法,在约束芯片设备面积和存储资源的前提下,优化算法性能,尽可能地提升算法效率。
根据本申请的第一方面,提供一种基于数论变换的格密码多项式乘法运算的优化方法,包括:
在所述数论变换前,将需要进行变换的多项式系数存储在外部寄存器中;
根据所述格密码算法的变换参数,计算初始化旋转因子并在所述外部存储器中进行预存储;
在当前阶变换中,读取预存储的所述初始化旋转因子,迭代计算当前阶旋转因子;
采用变换算法,对计算的所述当前阶旋转因子和读取的所述多项式系数进行当前阶变换。
根据本申请的一些实施例,所述变换参数,包括:多项式的数量n、有限域的模q、模q域下的n次原根ω、模q域下的2n次原根ψ。
根据本申请的一些实施例,所述优化方法,还包括:在所述数论变换前,读取所述变换参数并确定变换阶数。
根据本申请的一些实施例,所述数论变换包括正向数论变换;所述多项式系数存储在外部寄存器中顺序存储;所述数论变换的算法包括Cooley-Tukey算法。
根据本申请的一些实施例,计算初始旋转因子并在所述外部存储器中进行预存储,包括:
按照以下公式计算当前阶变换的初始旋转因子并进行预存储,
Figure BDA0002601125980000021
其中,ψm为当前阶变换的初始化旋转因子,s为当前阶变换的阶序,1≤s≤log2n。
根据本申请的一些实施例,计算初始化旋转因子并在所述外部存储器中进行预存储,还包括:
按照以下公式计算当前阶变换的迭代因子并进行预存储,
Figure BDA0002601125980000022
其中,ωm为当前阶变换的迭代因子,s为当前阶变换的阶序,1≤s≤log2n。
根据本申请的一些实施例,迭代计算当前阶旋转因子,包括:
按照以下公式迭代计算当前阶旋转因子,
t0=ψm
ti+1=tiωm
其中,ti为当前阶旋转因子序列,0≤i≤2s-1-1
根据本申请的一些实施例,计算初始化旋转因子并在所述外部存储器中进行预存储,还包括:
按照以下公式计算当前阶变换的迭代因子并进行预存储,
Figure BDA0002601125980000031
其中,ωm,s为当前阶蝶形变换的迭代因子,ωm,s+1为后一阶变换的迭代因子。
根据本申请的一些实施例,所述数论变换包括逆向数论变换;所述多项式系数存储在外部寄存器中按反转序存储;所述数论变换的算法包括Gentleman-Sande算法。
根据本申请的一些实施例,计算初始化旋转因子并在所述外部存储器中进行预存储,包括:
按照以下公式计算当前阶变换的初始化旋转因子并进行预存储,
Figure BDA0002601125980000032
其中,ψ-1 m为当前阶变换的初始化旋转因子,s为当前阶变换的阶序,1≤s≤log2n。
根据本申请的一些实施例,计算初始化旋转因子并在所述外部存储器中进行预存储,还包括:
按照以下公式计算当前阶变换的迭代因子并进行预存储,
Figure BDA0002601125980000041
其中,ω-1 m为当前阶变换的迭代因子,s为当前阶变换的阶序,1≤s≤log2n。
根据本申请的一些实施例,迭代计算当前阶旋转因子,包括:
按照以下公式迭代计算当前阶旋转因子:
t-1 0=ψ-1 m
t-1 i+1=t-1 iω-1 m
其中,t-1 i为当前阶旋转因子序列,0≤i≤2s-1-1。
根据本申请的一些实施例,计算初始化旋转因子并在所述外部存储器中进行预存储,还包括:
分别将前一阶变换的初始化旋转因子和迭代因子的乘方运算结果,作为当前阶对应的初始化旋转因子和迭代因子。
根据本申请的第二方面,提供一种基于数论变换的格密码多项式乘法运算的优化装置,包括:
寄存器,用于存储所述多项式系数以及在所述数论变换过程中计算出的初始化旋转因子和迭代因子;正向数论变换模块,与所述寄存器相连,从寄存器中读取所述多项式系数进行正向数论变换;
逆向数论变换模块,与所述寄存器相连,从寄存器中读取所述多项式系数进行逆向数论变换;
运算模块,分别与所述正向数论变换模块和逆向数论变换模块相连,用于计算所述变换参数并传输至所述正向数论变换模块和逆向数论变换模块。
根据本申请的第三方面,提供一种格密码芯片,包括上述优化装置。
本申请提供的基于数论变换的多项式乘法运算的优化方法,能够产生以下有益效果:
在迭代中动态生成旋转因子,去除了对旋转因子进行预计算的操作,无需存储预计算的旋转因子,节省了存储空间,使得算法支持更多不同的参数设置,更加节约了芯片面积;
在NTT和INTT变换中采用两种不同的蝶形算法,从而避免对寄存器的位反转序变换,减少对敏感数据的读写操作。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例。
图1示出根据本申请示例实施例的优化方法流程图。
图2示出根据本申请示例实施例的8阶NTT蝶形变换运算示意图。
图3示出根据本申请示例实施例的最小蝶形变换单元结构示意图。
图4示出根据本申请示例实施例的优化装置示意图。
具体实施方式
现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例。提供这些实施例是为使得本申请更全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本申请的各方面。
本领域技术人员可以理解,附图只是示例实施例的示意图,可能不是按比例的。附图中的模块或流程并不一定是实施本申请所必须的,因此不能用于限制本申请的保护范围。
基于格的密码算法在后量子密码和有后量子安全性的同态加密算法中得到了广泛应用。其中,基于容错学习(Learning With Errors,LWE)模型的格密码在目前最为流行,基于环上LWE(RLWE)模型的格密码是基于LWE密码的一个分支。基于环上LWE模型的格密码可以抵抗量子计算机的攻击,因此目前在后量子密码领域有广泛的应用。此外,环上的运算可以方便地构造同态映射,因此RLWE在同态加密领域也被广泛采用。
在RLWE问题中,各种运算基于多项式进行,多项式的系数定义在有限域
Figure BDA0002601125980000061
上,其中有限域的模q为大于1的整数。运算所涉及的多项式定义在多项式商环
Figure BDA0002601125980000062
上,其中不可约多项式Φ(x)为商环的模。例如,选定Φ(x)=x512+1,q=12289,则a=511x511+510x510+…+x为R上的一个多项式,其中a表示多项式。标准的RLWE模型定义为b=a·s+e,其中e为误差多项式,a和b已知,s和e未知。LWE的问题模型分为两种。一种为搜索问题:攻击者获得若干组(ai,bi),求未知多项式s;另一种为决定问题:攻击者获得若干组(ai,bi),判断bi是否符合bi=ai·s+ei或b是否在R上。其中搜索问题的复杂度等价于理想格上的近似最短向量问题(aSVP)。目前认为,即使对于量子计算机算法来说,aSVP问题也是困难的不确定多项式(Nondeterministic Polynomial,NP)问题。因此基于RLWE的密码在传统计算机和量子计算机的攻击下都可以保证安全。
在进行RLWE模型的多项式乘法运算时,常用的优化方式是通过数论变换(NTT)将多项式乘转变为逐项乘法。NTT运算可以看作是离散傅里叶变换(DFT)在有限域上的拓展。对于多项式
Figure BDA0002601125980000071
其NTT变换为
Figure BDA0002601125980000072
其中
Figure BDA0002601125980000073
参数ω为模q域下的n次原根,即ωn=1 mod q。多项式
Figure BDA0002601125980000074
的逆变换为
Figure BDA0002601125980000075
其中
Figure BDA0002601125980000076
使用
Figure BDA0002601125980000079
表示逐项乘,对于多项式a和b,两者的乘法运算可表示为:
Figure BDA0002601125980000077
若直接使用上述公式计算多项式乘法,则需要将多项式长度补零拓展至2n,否则会因次数溢出导致结果错误。为避免拓展长度,可以采用负包卷积(negative wrappedconvolution)对运算进行转化。令ψ为模q域下的2n次原根,即ψ2=ωmod q,定义向量Ψ=(1,ψ,...,ψn-1),Ψ′=(1,ψ-1,...,ψ-(n-1)),则多项式a和b的乘法运算可表示为:
Figure BDA0002601125980000078
此时无需将多项式长度拓展至2n。
针对DFT的快速傅里叶变换(FFT)也可用于优化NTT运算。格密码实现中常用的优化方法是蝶形网络。为方便在基2FFT上应用蝶形网络,通常选定n为2的幂。常用算法包括按时域抽取的Cooley-Tukey算法和按频域抽取的Gentleman-Sande算法。在使用蝶形网络时,输入和输出中一项为自然序列,另一项为位反转序列,即将原序列下标的比特位反转所得之序列。例如,自然序列a0,a1,a2,a3,a4,a5,a6,a7对应的位反转序列为a0,a4,a2,a6,a1,a5,a3,a7
本发明人发现,在现有的多项式乘法运算中,存在以下问题:
对NTT变换的旋转因子采用预计算的方法,将旋转因子等值预计算后存储于外部存储器中,从而降低运算时间。在NTT变换过程中,根据对应密码参数从外部存储器中读取旋转因子。该种方法需要对给定的密码参数进行预计算,所存储的值在密码采用其它参数时无法应用,且预计算所得值的存储需要较多的空间(尤其是在同态加密的应用场景中),尤其在多项式次数n和模q较大时会占用较多的存储空间。若将其支持的所有参数全部预先存入外部存储器,将造成巨大的存储开销。存储容量需求的增加将导致芯片设备面积的增加。若芯片需要支持多种不同密码参数,那么将更加导致设备面积显著增大。对于密码芯片等对面积和功耗要求较高的紧凑型芯片设备来说,这将严重限制芯片设备的可用场景。
NTT和INTT运算均使用Cooley-Tukey算法,每次变换之前需要对输入数据先进行位反转序列变换,从而在密码芯片上会形成大量读写操作,容易造成侧信道泄露。
针对以上技术问题,本申请提出了基于数论变换的格密码多项式乘法运算的优化方法。所述优化方法采用在数论变换迭代中动态生成旋转因子的操作,替代了在变换中预计算旋转因子的操作。一方面可显著降低对存储空间的需求、节约面积;另一方面,可使设备可以支持更多不同的密码算法参数设置。此外,所述优化方法在NTT、INTT变换中采用两种不同的蝶形算法,从而省去对寄存器的位反转序变换,减少对敏感数据的读写操作。
图1示出根据本申请示例实施例的优化方法流程图。
根据本申请的第一方面,提供一种基于数论变换的格密码多项式乘法运算的优化方法。如图1所示,所述优化方法包括:
在步骤S110,在所述数论变换前,将需要进行变换的多项式系数存储在外部寄存器中。
根据本申请的一些实施例,在数论变换前,将需要进行变换的多项式系数存储在外部寄存器中。存储在外部寄存器中的多项式系数可通过地址进行读写。所述数论变换包括正向数论变换(NTT变换)和逆向数论变换(INTT变换)。对于NTT变换,需要进行变换的多项式系数顺序存储在外部寄存器中。对于INTT变换,需要进行变换的多项式系数按反转序存储在外部寄存器中。
在步骤S120,根据所述格密码算法的变换参数,计算初始化旋转因子并在所述外部存储器中进行预存储。
不同的格密码算法所需要的变换参数不尽相同。因此,在进行数论变换时,需要输入变换参数。所述正向数论变换参数包括多项式的数量n、有限域的模q、模q域下的n次原根ω、模q域下的2n次原根ψ。逆向数论变换参数包括多项式的数量n、有限域的模q、模q域下的n次原根ω-1、模q域下的2n次原根ψ-1
在所述数论变换前,需要确定需要进行数论变换的阶数。所述数论变换的阶数可通过读取所述变换参数来确定变换阶数。根据本申请的一些实施例,NTT变换采用的算法可以是Cooley-Tukey算法,INTT变换采用的算法可以是Gentleman-Sande算法。相应地,采用上述算法,共需进行的变换阶数为log2n。在第s阶蝶形变换初始时(1≤s≤log2n),计算当前阶的初始旋转因子ψm、ψ-1 m和迭代因子ωm、ω-1 m,并将计算结果存储于外部存储器中。
对于NTT变换,根据本申请的一些实施例,可以按照以下公式计算当前阶NTT变换的初始旋转因子ψm
Figure BDA0002601125980000091
其中,ψm为当前阶变换的初始化旋转因子,s为当前阶变换的阶数,1≤s≤log2n。
根据本申请的一些实施例,可以按照以下公式计算当前阶NTT变换的迭代因子ωm
Figure BDA0002601125980000101
其中,ωm为当前阶蝶形变换的迭代因子,s为当前阶蝶形变换的阶数,1≤s≤log2n。
上述ωm和ψm可在蝶形变换开始之前通过预计算存储,在每阶变换过程中直接读取,节约计算时间。在第log2n阶变换中,ωm=ω,且对于任意两个相邻阶,前一阶变换对应的迭代因子ωm,s和后一阶变换对应的迭代因子ωm,s+1满足一下条件:
Figure BDA0002601125980000102
因此,对于各阶蝶形变换,所需要的迭代因子ωm可由ω依次乘方的逆序列获得,即ωn/2,ωn/4,...,ω2,ω。对每一阶的迭代因子ωm的计算,只需在后一阶的迭代因子基础上进行乘方和取模,所得结果序列存储之后在蝶形变换中读取即可。初始旋转因子ψm的预计算与迭代因子ωm的预算具有相同的原理。因此,在所述变换方法中,预计算内容的存储空间复杂度为O(log2n),而直接预计算旋转因子所需要的存储空间复杂度为O(n)。可见,所述变换方面显著降低了对存储空间的需求。
对于INTT变换,根据本申请的一些实施例,可以按照以下公式计算当前阶INTT变换的初始旋转因子ψ-1 m
Figure BDA0002601125980000103
其中,ψ-1 m为当前阶变换的初始化旋转因子,s为当前阶变换的阶数,1≤s≤log2n。
对于INTT变换,根据本申请的一些实施例,可以按照以下公式计算当前阶INTT变换的迭代因子ω-1 m
Figure BDA0002601125980000104
其中,ω-1 m为当前阶变换的迭代因子,s为当前阶变换的阶数,1≤s≤log2n。
根据本申请的另一些实施例,INTT变换中,后一阶变换中的迭代因子和初始旋转因子还可由前一阶变换对应的迭代因子和初始旋转因子乘方直接获得。因此,迭代计算旋转因子相关的运算成本不高,无需通过预计算存储。
在步骤S130,在当前阶变换中,读取预存储的所述初始化旋转因子,迭代计算当前阶旋转因子。
在进行当前阶的NTT变换过程中,可从外部存储器中读取初始旋转因子和迭代因子,并按照以下公式、迭代计算当前阶的旋转因子:
t0=ψm
ti+1=tiωm
其中,ti为当前阶旋转因子序列,0≤i≤2s-1-1。经过迭代计算,当前阶的旋转因子可表示为:
Figure BDA0002601125980000111
在进行当前阶的INTT变换过程中,可按照以下公式、迭代计算当前阶的旋转因子:
t-1 0=ψ-1 m
t-1 i+1=t-1 iω-1 m
其中,t-1 i为当前阶旋转因子序列,0≤i≤2s-1-1。
分别将前一阶变换的初始化旋转因子和迭代因子的乘方运算结果,作为当前阶对应的初始化旋转因子和迭代因子。
在步骤S140,采用变换算法,对计算的所述当前阶旋转因子和读取的所述多项式系数进行当前阶变换。
迭代计算出当前阶的旋转因子后,即可从外部存储器中读取多项式系数进行当前阶变换。
在每一阶NTT蝶形变换中,所对应的系数需要按位反转序读取。在硬件实现中,将地址线反转从而按位反转序读数可以快速实现。采用此算法时输出结果的存储顺序为位反转序。
在每一阶INTT蝶形变换中,在每一阶蝶形变换中,所对应的系数需要按位反转序读取。在硬件实现中,将地址线反转从而按位反转序读数可以快速实现。采用此算法时输出结果为顺序存储。
图2示出根据本申请示例实施例的8阶NTT蝶形变换运算示意图。
图3示出根据本申请示例实施例的最小蝶形变换单元结构示意图。
根据本申请示例实施例,采用Cooley-Tukey算法变换进行NTT变换的算法流程如下所述:
Figure BDA0002601125980000121
Figure BDA0002601125980000131
上述算法流程中,omega_m=omega^(m/2)mod q和twiddle=psi^(m/2)mod q,可通过预计算之后从寄存器中查表读取实现,预计算表内容为(psi^n,psi^(n/2),…,psi)。若设备寄存器资源不足,也可在循环过程中迭代计算。因为m/2为2的幂,所以omega_m和twiddle的计算可以通过log2m/2次乘方和取模来实现,从而减少模乘次数,节约计算时间,并避免计算中数值位数过多而导致溢出。
使用Gentleman-Sande算法进行INTT蝶形变换时,最小蝶形变换单元结构与图3中所示的最小蝶形变换单元结构为镜像反转关系。在算法流程的循环中各变量的意义一致。根据本申请示例实施例的INTT变换算法流程如下所述:
Figure BDA0002601125980000132
Figure BDA0002601125980000141
图4示出根据本申请示例实施例的优化装置示意图。
在密码设备中,本申请提供的优化方法的应用以图4中所示的优化装置200来实现。优化装置200包括寄存器210、正向数论变换模块220、逆向数论变换模块230和运算模块240。
寄存器210,用于存储所述多项式系数以及在所述数论变换过程中计算出的初始化旋转因子和迭代因子。
正向数论变换模块220,与所述寄存器相连,从寄存器中读取所述多项式系数进行正向数论变换。
逆向数论变换模块230,与所述寄存器相连,从寄存器中读取所述多项式系数进行逆向数论变换。
运算模块240,分别与所述正向数论变换模块和逆向数论变换模块相连,用于计算所述变换参数并传输至所述正向数论变换模块和逆向数论变换模块。
在上述优化装置中,NTT和INTT变换分别采用不同的蝶形算法实现,因此采用两个不同的模块,NTT模块220和INTT模块230。需要进行变换的多项式系数保存在寄存器210中。NTT模块220与INTT模块230均可对寄存器210进行读写。运算模块240计算变换过程中需要的相关参数,例如mod q,并将相关变换参数发送至NTT模块220和INTT模块230,从而控制运算。根据本申请的一些实施例,运算模块240可以是外部控制电路。本申请中的寄存器210中无需存储预计算所得的旋转因子,因此占用的存储空间显著减小。
根据本申请的另一方面,还提供一种格密码芯片,包括上述优化装置。在密码芯片中,mod q运算通常可以由相应的硬件优化来实现,在运算中可直接调用相应模块加速计算。例如,针对不同的q值,设计Barrett约减法电路。根据算法输入的q,选择相应的约减电路模块进行mod q运算。因为Barrett约减可以用移位和加减等简单运算实现,所需逻辑电路面积不大,即使支持多种不同的q值也不会对芯片面积产生明显影响。因此,在本申请的基础上,进一步通过优化模运算电路,就可以以较小的成本实现对多种q值的支持。
需要说明的是,以上参照附图所描述的每个实施例仅用以说明本申请而非限制本申请的范围,本领域的普通技术人员应当理解,在不脱离本申请的精神和范围的前提下对本申请进行的修改或者等同替换,均应涵盖在本申请的范围之内。此外,除上下文另有所指外,以单数形式出现的词包括复数形式,反之亦然。另外,除非特别说明,那么任何实施例的全部或一部分可结合任何其它实施例的全部或一部分来使用。

Claims (15)

1.一种基于数论变换的格密码多项式乘法运算的优化方法,其特征在于,包括:
在所述数论变换前,将需要进行变换的多项式系数存储在外部寄存器中;
根据所述格密码算法的变换参数,计算初始化旋转因子并在所述外部存储器中进行预存储;
在当前阶变换中,读取预存储的所述初始化旋转因子,迭代计算当前阶旋转因子;
采用变换算法,对计算的所述当前阶旋转因子和读取的所述多项式系数进行当前阶变换。
2.根据权利要求1所述的优化方法,其特征在于,所述变换参数,包括:
多项式的数量n、有限域的模q、模q域下的n次原根ω、模q域下的2n次原根ψ。
3.根据权利要求2所述的优化方法,其特征在于,还包括:
在所述数论变换前,读取所述变换参数并确定变换阶数。
4.根据权利要求3所述的优化方法,其特征在于,
所述数论变换包括正向数论变换;
所述多项式系数存储在外部寄存器中顺序存储;
所述数论变换的算法包括Cooley-Tukey算法。
5.根据权利要求4所述的优化方法,其特征在于,计算初始旋转因子并在所述外部存储器中进行预存储,包括:
按照以下公式计算当前阶变换的初始旋转因子并进行预存储,
Figure FDA0002601125970000021
其中,ψm为当前阶变换的初始化旋转因子,s为当前阶变换的阶序,1≤s≤log2n。
6.根据权利要求5所述的优化方法,其特征在于,计算初始化旋转因子并在所述外部存储器中进行预存储,还包括:
按照以下公式计算当前阶变换的迭代因子并进行预存储,
Figure FDA0002601125970000022
其中,ωm为当前阶变换的迭代因子,s为当前阶变换的阶序,1≤s≤log2n。
7.根据权利要求6所述的优化方法,其特征在于,迭代计算当前阶旋转因子,包括:
按照以下公式迭代计算当前阶旋转因子,
t0=ψm
ti+1=tiωm
其中,ti为当前阶旋转因子序列,0≤i≤2s-1-1。
8.根据权利要求5所述的优化方法,其特征在于,计算初始化旋转因子并在所述外部存储器中进行预存储,还包括:
按照以下公式计算当前阶变换的迭代因子并进行预存储,
Figure FDA0002601125970000031
其中,ωm,s为当前阶蝶形变换的迭代因子,ωm,s+1为后一阶变换的迭代因子。
9.根据权利要求3所述的优化方法,其特征在于,
所述数论变换包括逆向数论变换;
所述多项式系数存储在外部寄存器中按反转序存储;
所述数论变换的算法包括Gentleman-Sande算法。
10.根据权利要求9所述的优化方法,其特征在于,计算初始化旋转因子并在所述外部存储器中进行预存储,包括:
按照以下公式计算当前阶变换的初始化旋转因子并进行预存储,
Figure FDA0002601125970000032
其中,ψ-1 m为当前阶变换的初始化旋转因子,s为当前阶变换的阶序,1≤s≤log2n。
11.根据权利要求10所述的优化方法,其特征在于,计算初始化旋转因子并在所述外部存储器中进行预存储,还包括:
按照以下公式计算当前阶变换的迭代因子并进行预存储,
Figure FDA0002601125970000033
其中,ω-1 m为当前阶变换的迭代因子,s为当前阶变换的阶序,1≤s≤log2n。
12.根据权利要求11所述的优化方法,其特征在于,迭代计算当前阶旋转因子,包括:
按照以下公式迭代计算当前阶旋转因子:
t-1 0=ψ-1 m
t-1 i+1=t-1 iω-1 m
其中,t-1 i为当前阶旋转因子序列,0≤i≤2s-1-1。
13.根据权利要求12所述的优化方法,其特征在于,计算初始化旋转因子并在所述外部存储器中进行预存储,还包括:
分别将前一阶变换的初始化旋转因子和迭代因子的乘方运算结果,作为当前阶对应的初始化旋转因子和迭代因子。
14.一种基于数论变换的格密码多项式乘法运算的优化装置,其特征在于,包括:
寄存器,用于存储所述多项式系数以及在所述数论变换过程中计算出的初始化旋转因子和迭代因子;
正向数论变换模块,与所述寄存器相连,从寄存器中读取所述多项式系数进行正向数论变换;
逆向数论变换模块,与所述寄存器相连,从寄存器中读取所述多项式系数进行逆向数论变换;
运算模块,分别与所述正向数论变换模块和逆向数论变换模块相连,用于计算所述变换参数并传输至所述正向数论变换模块和逆向数论变换模块。
15.一种格密码芯片,其特征在于,包括根据权利要求14所述的优化装置。
CN202010724323.0A 2020-07-24 2020-07-24 基于数论变换的格密码多项式乘法运算的优化方法及装置 Active CN113972980B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010724323.0A CN113972980B (zh) 2020-07-24 2020-07-24 基于数论变换的格密码多项式乘法运算的优化方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010724323.0A CN113972980B (zh) 2020-07-24 2020-07-24 基于数论变换的格密码多项式乘法运算的优化方法及装置

Publications (2)

Publication Number Publication Date
CN113972980A true CN113972980A (zh) 2022-01-25
CN113972980B CN113972980B (zh) 2024-04-30

Family

ID=79585667

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010724323.0A Active CN113972980B (zh) 2020-07-24 2020-07-24 基于数论变换的格密码多项式乘法运算的优化方法及装置

Country Status (1)

Country Link
CN (1) CN113972980B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116308989A (zh) * 2022-12-09 2023-06-23 杭州后量子密码科技有限公司 一种全同态快速数论变换的gpu加速方法
WO2023236899A1 (zh) * 2022-06-10 2023-12-14 华为技术有限公司 数据处理方法、装置、设备及存储介质
CN117714054A (zh) * 2024-02-01 2024-03-15 山东大学 基于数论变换的密钥封装轻量化方法、系统、介质及设备
CN117971136A (zh) * 2024-03-29 2024-05-03 苏州元脑智能科技有限公司 一种数论变换硬件加速方法、装置、电子设备及存储介质
CN117971136B (zh) * 2024-03-29 2024-06-25 苏州元脑智能科技有限公司 一种数论变换硬件加速方法、装置、电子设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008014007A2 (en) * 2006-07-28 2008-01-31 Brown University Certification and authentication of data structures
CN108234129A (zh) * 2017-09-12 2018-06-29 北京电子科技学院 一种基于格密码的双向认证密钥协商方法与系统
US10097351B1 (en) * 2016-09-15 2018-10-09 ISARA Corporation Generating a lattice basis for lattice-based cryptography

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008014007A2 (en) * 2006-07-28 2008-01-31 Brown University Certification and authentication of data structures
US10097351B1 (en) * 2016-09-15 2018-10-09 ISARA Corporation Generating a lattice basis for lattice-based cryptography
CN108234129A (zh) * 2017-09-12 2018-06-29 北京电子科技学院 一种基于格密码的双向认证密钥协商方法与系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
何永成: "对称密码AES/3DES 及格密码的硬件研究与实现", 中国优秀硕士学位论文全文数据库-自然科学与工程技术类专辑-信息科技辑, pages 47 - 62 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023236899A1 (zh) * 2022-06-10 2023-12-14 华为技术有限公司 数据处理方法、装置、设备及存储介质
CN116308989A (zh) * 2022-12-09 2023-06-23 杭州后量子密码科技有限公司 一种全同态快速数论变换的gpu加速方法
CN116308989B (zh) * 2022-12-09 2023-10-13 杭州后量子密码科技有限公司 一种全同态快速数论变换的gpu加速方法
CN117714054A (zh) * 2024-02-01 2024-03-15 山东大学 基于数论变换的密钥封装轻量化方法、系统、介质及设备
CN117714054B (zh) * 2024-02-01 2024-04-23 山东大学 基于数论变换的密钥封装轻量化方法、系统、介质及设备
CN117971136A (zh) * 2024-03-29 2024-05-03 苏州元脑智能科技有限公司 一种数论变换硬件加速方法、装置、电子设备及存储介质
CN117971136B (zh) * 2024-03-29 2024-06-25 苏州元脑智能科技有限公司 一种数论变换硬件加速方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN113972980B (zh) 2024-04-30

Similar Documents

Publication Publication Date Title
CN113972980B (zh) 基于数论变换的格密码多项式乘法运算的优化方法及装置
US11416638B2 (en) Configurable lattice cryptography processor for the quantum-secure internet of things and related techniques
Sarkis et al. Fast polar decoders: Algorithm and implementation
JP2005512183A (ja) ガロア体乗算システム
Nuyens et al. Fast component-by-component construction, a reprise for different kernels
US5951677A (en) Efficient hardware implementation of euclidean array processing in reed-solomon decoding
CN107204782B (zh) 一种bch译码器及生成该译码器的编译器的实现方法
TW200817999A (en) Multiplying two numbers
US8261176B2 (en) Polynomial division
US20230318829A1 (en) Cryptographic processor device and data processing apparatus employing the same
Ahmed et al. VLSI architectures for soft-decision decoding of Reed–Solomon codes
CN114063973B (zh) 伽罗华域乘法器及纠删编解码系统
US20100138464A1 (en) Digital Signal Processor Having Instruction Set With One Or More Non-Linear Functions Using Reduced Look-Up Table With Exponentially Varying Step-Size
CN109144472B (zh) 一种二元扩域椭圆曲线的标量乘法及其实现电路
US20100138465A1 (en) Digital Signal Processor With One Or More Non-Linear Functions Using Factorized Polynomial Interpolation
US7395293B1 (en) Memory segmentation for fast fourier transform
CN111221501B (zh) 一种用于大数乘法的数论变换电路
CN112799634A (zh) 一种基于基22mdc ntt结构的高性能环多项式乘法器
US6609142B1 (en) Method of performing multiplication with accumulation in a Galois body
CN108347250B (zh) 适用于少量冗余里德-所罗门码的快速编码方法及设备
US6415413B1 (en) Configurable Reed-Solomon controller and method
US11764942B2 (en) Hardware architecture for memory organization for fully homomorphic encryption
D’Anvers One-hot conversion: Towards faster table-based A2B conversion
US10171109B2 (en) Fast encoding method and device for Reed-Solomon codes with a small number of redundancies
JPH06230991A (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
GR01 Patent grant
GR01 Patent grant