CN114978516A - 一种数论变换素数下的模乘运算方法 - Google Patents
一种数论变换素数下的模乘运算方法 Download PDFInfo
- Publication number
- CN114978516A CN114978516A CN202210570987.5A CN202210570987A CN114978516A CN 114978516 A CN114978516 A CN 114978516A CN 202210570987 A CN202210570987 A CN 202210570987A CN 114978516 A CN114978516 A CN 114978516A
- Authority
- CN
- China
- Prior art keywords
- algorithm
- modular multiplication
- prime number
- modulus
- multiplication operation
- 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.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 title claims abstract description 33
- 230000009466 transformation Effects 0.000 title claims abstract description 16
- 230000009467 reduction Effects 0.000 claims abstract description 28
- 238000004364 calculation method Methods 0.000 claims description 11
- 239000000126 substance Substances 0.000 claims description 2
- 230000001131 transforming effect Effects 0.000 claims description 2
- 230000008569 process Effects 0.000 description 8
- 238000006243 chemical reaction Methods 0.000 description 5
- 230000006872 improvement Effects 0.000 description 3
- 238000005457 optimization Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007429 general method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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/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/3033—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 pseudo-prime or prime number generation, e.g. primality test
-
- 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/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
Landscapes
- Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Algebra (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Complex Calculations (AREA)
Abstract
本发明公开了一种数论变换素数下的模乘运算方法,采用Karatsuba分治算法和多步Montgomery约减算法相结合的方式来进行素数域上的模乘运算ab mod p,使用了Karatsuba分治技巧之后,使用使得数乘的运算复杂度降低为原来的四分之三左右;并且,Montgomery约减算法的核心算法思想是“以乘代除”,通过在原数E的基础上加上模数p的某一个倍数k×p,使其在模意义下不变的前提下转化为一个比特表示尾部全为0的数,然后直接通过舍弃尾端的0来实现数值的约减;可以节约一定的计算资源,同时一定程度上提升模乘速度。
Description
技术领域
本发明涉及计算机软件领域,尤其涉及的是一种数论变换素数下的模乘运算方法。
背景技术
随着量子计算技术的快速发展,现代密码学界普遍相信目前所广泛使用的基于大整数分解和群上离散对数问题的传统公钥密码体制具有被量子计算机攻破而失效的风险。近年来,国内外均针对能够抵御量子计算攻击因而被称为“后量子密码”的全新公钥密码体制展开了积极研究,其中引入了几何结构的格密码为最受学术界和工业界关注的后量子密码之一[1]。
格密码体制的结构基础可以概括为以整数环(或域)为基底的多维线性空间,其具有数学理论清晰、便于计算机实现等诸多优点。为了最大程度地加速其数学结构上的运算速度而同时不会损失其密码体制的安全性,格密码在具体应用时经常会采用循环格,也就是以Xn+1为商多项式的多项式环。对于这一类型的多项式环,多项式间乘法的运算速度可以通过快速数论变换的方法来进行大幅提升,而使用快速数论变换的前提则是其基础素数域上存在n次单位根[2]。
[1]杨妍玲.后量子密码在信息安全中的应用与分析[J]信息与电脑(理论版),2020,32(08):177-181.
[2]El Bansarkhani R,Buchmann J.Improvement and efficientimplementation of a lattice-based signature scheme[C].InternationalConference on Selected Areas in Cryptography.Springer,Berlin,Heidelberg,2013:48-67。
在使用循环格结构的格密码方案中,多项式上的乘法运算是占比最繁重的操作之一,为了提升其计算机实现速度,以在具体的格密码应用场景中达到更为可观的性能,在方案参数选取阶段一般都会限定构成该多项式环的素数域模数p满足p-1可以被商多项式次数的两倍2n整除,也就是说p的比特表示形式的尾部包含若干个连续的0(最后一个比特除外),其原因在于这样便可利用快速数论变换来将多项式乘法的计算复杂度由O(n2)降低至O(nlogn)。然而快速数论变换算法的使用与否仅会影响素数域Zp上的模乘次数,而与系数级的模乘本身的运算实现无关。
在目前已有的循环格密码方案的实现成果中,研究重点一般都集中于对快速数论变换过程的高性能实现,包括系数数据传送、中转、缓存等,而对于更加底层、基础的素数域模乘的实现关注度较少。可能的原因在于:格密码中素数的比特位宽较小(一般在64bit以内),不涉及大整数的相关运算,在大多数的软件计算环境下不涉及复杂的数组储存,因此大部分的模乘实现都是通过一步标准数乘加上一步取余操作来完成的[3]。
[3]Roma C,Tai C E A,Hasan M A.Energy consumption of round 2submissions for NIST PQC standards[C].Second PQC StandardizationConference.2019。
对于现有的格密码实现而言,为了利用快速数论变换算法进行加速,在选取方案参数时,要求素数域模数p满足p的比特表示形式的尾部包含若干个连续的0。目前现有的格密码方案实现和应用成果中,仅考虑了快速数论变换层面的高性能实现,而没有考虑到素数域模数的特殊形式对底层模乘运算本身所提供的优化可能性。
因此,现有技术存在缺陷,需要改进。
发明内容
本发明所要解决的技术问题是:提供一种运算复杂度降低、可以节约一定的计算资源,同时一定程度上提升模乘速度的数论变换素数下的模乘运算方法。
本发明的技术方案如下:一种数论变换素数下的模乘运算方法,模乘算法输入:模数p为一素数,模数的比特长度K,模数比特表示下尾数0…01的比特长度w,模乘操作数a,b;模乘算法输出:模乘结果r=a×b×d mod p;并且,其满足关系:0≤a<p,0≤b<p;2K-1<p<2K;2W整除p-1;其中,表示向上取整;并且,采用Karatsuba分治算法和多步Montgomery约减算法进行素数域上的模乘运算ab mod p。
应用于上述技术方案,所述的数论变换素数下的模乘运算方法中,Karatsuba分治算法和多步Montgomery约减算法互相分开为两个独立的计算部分。
应用于各个上述技术方案,所述的数论变换素数下的模乘运算方法中,Karatsuba分治算法的步骤包括:步骤A1:记计算满足:a=a1×2h+a0,b=b1×2h+b0的a0,a1,b0,b1;步骤A2:根据步骤A1的a0,a1,b0,b1的分别计算:
L=a0×b0,H=a1×b1,M=(a0+a1)×(b0+b1)-L-H;步骤A3:根据步骤A2得到的L、H和M,计算D=H×22h+M×2h+L。
应用于各个上述技术方案,所述的数论变换素数下的模乘运算方法中,多步Montgomery约减算法的步骤包括:步骤B1:记E=D;步骤B2:计算[E+(2W-E mod 2W)×p]/2W并将结果重新赋值给E;步骤B3:判断E的大小,将其中多余的p的倍数减去,返回最终结果。
应用于各个上述技术方案,所述的数论变换素数下的模乘运算方法中,当参数额外满足w≤h时,在Karatsuba分治算法中步骤A2完成L的计算之后,立刻开始进行多步Montgomery约减算法中的首次约减运算。
本发明的有益效果为:
本发明通过使用了Karatsuba分治技巧之后,原本的K比特乘K比特的数乘运算被转化为三个h+1比特乘h+1比特的数乘运算加上一些相较于数乘而言成本极低的加减运算,由于数乘的复杂度为乘数比特长度的平方级别,因此分治的使用使得数乘的运算复杂度降低为原来的四分之三左右。
Montgomery约减算法的核心算法思想是“以乘代除”,通过在原数E的基础上加上模数p的某一个倍数k×p,使其在模意义下不变的前提下转化为一个比特表示尾部全为0的数,然后直接通过舍弃尾端的0来实现数值的约减。对于一般的模数p而言,确定k的过程是:k=E×p′mod 2W,这里的p′为一满足p′×p+1能被2W整除的常数,即确定k的过程需要乘法运算,然而对于可以使用快速数论变换算法的素数p而言,因为满足2W整除p-1,便有p′=2W-1成立,那么确定k的过程便不需要乘法,这对于约减算法而言可以节约一定的计算资源,同时有望一定程度上提升模乘速度。
具体实施方式
以下具体实施例,对本发明进行详细说明。
本实施例提供了一种数论变换素数下的模乘运算方法,模乘运算方法的核心优化思想是采用Karatsuba分治算法和多步Montgomery约减算法相结合的方式来进行素数域上的模乘运算ab mod p。这里为了便于描述,我们这里先只进行算法上的方法描述,将Karatsuba分治算法和多步Montgomery约减算法互相分开为两个较为独立的部分,在后续内容中再对二者相结合的情况进行进一步的讨论。
模乘算法输入:模数p为一素数,模数的比特长度K,模数比特表示下尾数0…01的比特长度w,模乘操作数a,b;其中,0…01表示为前导0不定长度的“1”,可以是01,001,0001,00001,0000000001,…等等。
模乘算法输出:模乘结果r=a×b×d mod p;这里常数d的具体值见下;以上参数满足如下关系:
子算法A,即Karatsuba分治算法步骤:
2)计算L=a0×b0,H=a1×b1,M=(a0+a1)×(b0+b1)-L-H;
3)计算D=H×22h+M×2h+L;
子算法B,即多步Montgomery约减算法步骤:
4)记E=D;
5)计算[E+(2W-E mod 2W)×p]/2W并将结果重新赋值给E;
6)判断百的大小,将其中多余的p的倍数减去,返回最终结果;
下面对以上方法进行适当的分析与解释。
使用了Karatsuba分治技巧之后,原本的K比特乘K比特的数乘运算被转化为三个h+1比特乘h+1比特的数乘运算加上一些相较于数乘而言成本极低的加减运算,由于数乘的复杂度为乘数比特长度的平方级别,因此分治的使用使得数乘的运算复杂度降低为原来的四分之三左右。
Montgomery约减算法的核心算法思想是“以乘代除”,通过在原数E的基础上加上模数p的某一个倍数k×p,使其在模意义下不变的前提下转化为一个比特表示尾部全为0的数,然后直接通过舍弃尾端的0来实现数值的约减。对于一般的模数p而言,确定k的过程是:k=E×p′mod 2W,这里的p′为一满足p′×p+1能被2W整除的常数,即确定k的过程需要乘法运算,然而对于可以使用快速数论变换算法的素数p而言,因为满足2W整除p-1,便有p′=2W-1成立,那么确定k的过程便不需要乘法,这对于约减算法而言可以节约一定的计算资源,同时有望一定程度上提升模乘速度。
以上两个子过程从算法本身的层面出发,是相互独立没有太多紧密联系的,然而在具体实现时,有时可以起到相互辅助的效果。以硬件实现为例,若是采用一般的方法,数乘和约减必须按照顺序执行,总的时钟周期消耗数量便是两者的加和;然而若是采用如上所述的方法,首先可以节省乘法器资源的使用量(因为确定k的过程不再需要乘法),其次如果参数额外满足w≤h时,在2)中完成L的计算之后便可以立刻开始进行5)中的首次约减运算(因为在mod2W意义下仅需D的低比特位),即可以一定程度上缩短硬件流水线的长度。
下面给出一个本申请中所介绍的数论变换素数下的模乘运算方法的具体应用实例。
我们针对如下数据进行实例化:p=4293836801(二进制表示为11111111111011101100000000000001共32比特),K=32,w=14,a=4111111111,b=2333333333,此时d的值为3050289822,正确的模乘输出a×b×d mod p的值理应为4111111111×2333333333×3050289822mod 4293836801=3464401978。
子算法A,即Karatsuba分治算法步骤:
2)再计算得L=a0×b0=2085433875,H=a1×b1=2233376190,M=(a0+a1)×(b0+b1)-L-H=4804888343;
3)然后计算D=H×22h+M×2h+L=9592592590962962963;
子算法B,即多步Montgomery约减算法步骤:
4)记E=D=9592592590962962963;
6)判断E的大小,可知E=3464401978并不大于p=4293836801,最终返回结果3464401978;
对比可知,我们的方法下运算得出的结果与正确结果相同,均为3464401978。
以上具体方法,充分探究了模乘的结构,采用了Karatsuba分治和多步Montgemory约减相互结合的方式,一定程度上降低快速数论变换素数上的模乘运算算法的复杂度,进而节约了一定计算资源。
以上仅为本发明的较佳实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (5)
2.根据权利要求1所述的数论变换素数下的模乘运算方法,其特征在于:Karatsuba分治算法和多步Montgomery约减算法互相分开为两个独立的计算部分。
4.根据权利要求3所述的数论变换素数下的模乘运算方法,其特征在于,多步Montgomery约减算法的步骤包括:
步骤B1:记E=D;
步骤B2:计算[E+(2w-E mod 2w)×p]/2w并将结果重新赋值给E;
步骤B3:判断E的大小,将其中多余的p的倍数减去,返回最终结果。
5.根据权利要求4所述的数论变换素数下的模乘运算方法,其特征在于,当参数额外满足w≤h时,在Karatsuba分治算法中步骤A2完成L的计算之后,立刻开始进行多步Montgomery约减算法中的首次约减运算。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210570987.5A CN114978516A (zh) | 2022-05-24 | 2022-05-24 | 一种数论变换素数下的模乘运算方法 |
PCT/CN2022/104837 WO2023226173A1 (zh) | 2022-05-24 | 2022-07-11 | 一种数论变换素数下的模乘运算方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210570987.5A CN114978516A (zh) | 2022-05-24 | 2022-05-24 | 一种数论变换素数下的模乘运算方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114978516A true CN114978516A (zh) | 2022-08-30 |
Family
ID=82956139
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210570987.5A Withdrawn CN114978516A (zh) | 2022-05-24 | 2022-05-24 | 一种数论变换素数下的模乘运算方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114978516A (zh) |
WO (1) | WO2023226173A1 (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105068784B (zh) * | 2015-07-16 | 2018-02-16 | 清华大学 | 实现基于蒙哥马利模乘的Tate对算法的电路 |
CN108804075A (zh) * | 2018-06-12 | 2018-11-13 | 信阳师范学院 | 一种基于特殊五项式的高效蒙哥马利乘法器构造方法 |
CN110908635A (zh) * | 2019-11-04 | 2020-03-24 | 南京大学 | 基于同源曲线的后量子密码学的高速模乘器及其模乘方法 |
CN114510217A (zh) * | 2020-11-17 | 2022-05-17 | 北京智芯微电子科技有限公司 | 处理数据的方法、装置和设备 |
-
2022
- 2022-05-24 CN CN202210570987.5A patent/CN114978516A/zh not_active Withdrawn
- 2022-07-11 WO PCT/CN2022/104837 patent/WO2023226173A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2023226173A1 (zh) | 2023-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Bailey et al. | Efficient arithmetic in finite field extensions with application in elliptic curve cryptography | |
CN110519058B (zh) | 一种对于基于格的公钥加密算法的加速方法 | |
Ding et al. | High-speed ECC processor over NIST prime fields applied with Toom–Cook multiplication | |
WO2007012179A2 (en) | Karatsuba based multiplier and method | |
US8862651B2 (en) | Method and apparatus for modulus reduction | |
Bos et al. | High-performance scalar multiplication using 8-dimensional GLV/GLS decomposition | |
TW200822664A (en) | Modular reduction using folding | |
CN114666038B (zh) | 一种大位宽数据处理方法、装置、设备及存储介质 | |
CN115801244A (zh) | 用于资源受限处理器的后量子密码算法实现方法及系统 | |
Ni et al. | A high-performance SIKE hardware accelerator | |
Abdulrahman et al. | New regular radix-8 scheme for elliptic curve scalar multiplication without pre-computation | |
JP4351987B2 (ja) | モンゴメリ変換装置、演算装置、icカード、暗号装置、復号装置及びプログラム | |
US6847986B2 (en) | Divider | |
CN113467754A (zh) | 一种基于分解约简的格加密模乘运算方法及架构 | |
CN116679905A (zh) | 一种基于bram的迭代型ntt交错存储系统 | |
Chung et al. | Low-weight polynomial form integers for efficient modular multiplication | |
CN116893797A (zh) | 一种基于fifo存储的迭代型ntt系统 | |
CN114978516A (zh) | 一种数论变换素数下的模乘运算方法 | |
Parhami | On equivalences and fair comparisons among residue number systems with special moduli | |
US11368303B2 (en) | System and method for calculating faster ECC scalar multiplication on FPGA | |
US11210067B1 (en) | Architecture for small and efficient modular multiplication using carry-save adders | |
CN111064567B (zh) | 一种sidh特殊域快速模乘方法 | |
JP4202701B2 (ja) | 多項式剰余系演算装置、方法及びプログラム | |
Ke et al. | High-performance montgomery modular multiplier with NTT and negative wrapped convolution | |
Sanu et al. | Parallel montgomery multipliers |
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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20220830 |
|
WW01 | Invention patent application withdrawn after publication |