CN114978516A - 一种数论变换素数下的模乘运算方法 - Google Patents

一种数论变换素数下的模乘运算方法 Download PDF

Info

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
Application number
CN202210570987.5A
Other languages
English (en)
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.)
Shanghai Qianfang Technology Co ltd
Original Assignee
Shanghai Qianfang Technology Co ltd
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 Shanghai Qianfang Technology Co ltd filed Critical Shanghai Qianfang Technology Co ltd
Priority to CN202210570987.5A priority Critical patent/CN114978516A/zh
Priority to PCT/CN2022/104837 priority patent/WO2023226173A1/zh
Publication of CN114978516A publication Critical patent/CN114978516A/zh
Withdrawn legal-status Critical Current

Links

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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public 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/3033Public 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
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3093Public 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
    • 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
    • H04L9/0852Quantum 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;
Figure BDA0003660284830000031
其中,
Figure BDA0003660284830000032
表示向上取整;并且,采用Karatsuba分治算法和多步Montgomery约减算法进行素数域上的模乘运算ab mod p。
应用于上述技术方案,所述的数论变换素数下的模乘运算方法中,Karatsuba分治算法和多步Montgomery约减算法互相分开为两个独立的计算部分。
应用于各个上述技术方案,所述的数论变换素数下的模乘运算方法中,Karatsuba分治算法的步骤包括:步骤A1:记
Figure BDA0003660284830000033
计算满足: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的具体值见下;以上参数满足如下关系:
0≤a<p,0≤b<p;2K-1<p<2K;2W整除p-1;
Figure BDA0003660284830000061
这里
Figure BDA0003660284830000062
表示向上取整,例如
Figure BDA0003660284830000063
子算法A,即Karatsuba分治算法步骤:
1)记
Figure BDA0003660284830000064
计算满足:a=a1×2h+a0,b=b1×2h+b0的a0,a1,b0,b1
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分治算法步骤:
1)记
Figure BDA0003660284830000081
根据a=a1×2h+a0,b=b1×2h+b0分别计算出a0=37831,a1=62730,b0=55125,b1=35603;
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;
5)计算[E+(2W-Emod 2W)×p]/2W并将结果重新赋值给E,重复执行
Figure BDA0003660284830000091
次;第一次为585486321929392,第二次为39177866342,第三次为3464401978,
6)判断E的大小,可知E=3464401978并不大于p=4293836801,最终返回结果3464401978;
对比可知,我们的方法下运算得出的结果与正确结果相同,均为3464401978。
以上具体方法,充分探究了模乘的结构,采用了Karatsuba分治和多步Montgemory约减相互结合的方式,一定程度上降低快速数论变换素数上的模乘运算算法的复杂度,进而节约了一定计算资源。
以上仅为本发明的较佳实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (5)

1.一种数论变换素数下的模乘运算方法,其特征在于,
模乘算法输入:模数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;
Figure FDA0003660284820000011
其中,
Figure FDA0003660284820000012
表示向上取整;
并且,采用Karatsuba分治算法和多步Montgomery约减算法进行素数域上的模乘运算ab mod p。
2.根据权利要求1所述的数论变换素数下的模乘运算方法,其特征在于:Karatsuba分治算法和多步Montgomery约减算法互相分开为两个独立的计算部分。
3.根据权利要求2所述的数论变换素数下的模乘运算方法,其特征在于,Karatsuba分治算法的步骤包括:
步骤A1:记
Figure FDA0003660284820000013
计算满足: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。
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约减算法中的首次约减运算。
CN202210570987.5A 2022-05-24 2022-05-24 一种数论变换素数下的模乘运算方法 Withdrawn CN114978516A (zh)

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)

* Cited by examiner, † Cited by third party
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 北京智芯微电子科技有限公司 处理数据的方法、装置和设备

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