CN111064567B - 一种sidh特殊域快速模乘方法 - Google Patents
一种sidh特殊域快速模乘方法 Download PDFInfo
- Publication number
- CN111064567B CN111064567B CN201910947892.9A CN201910947892A CN111064567B CN 111064567 B CN111064567 B CN 111064567B CN 201910947892 A CN201910947892 A CN 201910947892A CN 111064567 B CN111064567 B CN 111064567B
- Authority
- CN
- China
- Prior art keywords
- mod
- sidh
- bit
- stage
- modular multiplication
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 14
- 238000004364 calculation method Methods 0.000 claims abstract description 26
- 230000009467 reduction Effects 0.000 claims description 22
- 239000000758 substrate Substances 0.000 abstract description 2
- RNAMYOYQYRYFQY-UHFFFAOYSA-N 2-(4,4-difluoropiperidin-1-yl)-6-methoxy-n-(1-propan-2-ylpiperidin-4-yl)-7-(3-pyrrolidin-1-ylpropoxy)quinazolin-4-amine Chemical compound N1=C(N2CCC(F)(F)CC2)N=C2C=C(OCCCN3CCCC3)C(OC)=CC2=C1NC1CCN(C(C)C)CC1 RNAMYOYQYRYFQY-UHFFFAOYSA-N 0.000 description 13
- 238000010586 diagram Methods 0.000 description 8
- 230000008901 benefit Effects 0.000 description 3
- 230000000295 complement effect Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
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
- H04L9/0858—Details about key distillation or coding, e.g. reconciliation, error correction, privacy amplification, polarisation coding or phase coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
- H04L63/061—Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
-
- 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)
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Electromagnetism (AREA)
- Theoretical Computer Science (AREA)
- Complex Calculations (AREA)
Abstract
Description
技术领域
本发明涉及SIDH中特殊域模乘计算领域,尤其是一种SIDH特殊域快速模乘方法。
背景技术
由于量子计算机的研究愈发深入,量子计算机的出现只是时间问题。当量子计算机出现后现有加密方式如RSA加密和ECC(椭圆曲线加密)将失效,因此后量子密码应运而生。
发明内容
发明目的:为解决上述技术问题,本发明提出一种SIDH特殊域快速模乘方法。
技术方案:本发明提出一种SIDH特殊域快速模乘方法,在基本不增加资源的情况下,加快模乘的运算速度和提升模乘的运行频率,该方法包括SIDH单个模乘的计算步骤:
A=a1R+a2
B=b1R+b2
其中,p为素数域,l表示一个小的素数,a和b可以为任意数,用于调节加密等级,f为将p调节为素数的参数,A和B为素数域p中的任意两个元素,a1、a2分别表示用R截取的操作数A的高半段和低半段,b1、b2表示用R截取的操作数B的高半段和低半段;
(2)计算得到A·B(mod p),包括依次执行步骤(2-1)至(2-7):
(2-1)C表示为A和B相乘的积,C用R表示为:
C=c1·R+c2
式中,c1、c2为系数变量;
(2-4)计算c1=q1+(a1b2+a2b1)mod 2a+r1Rmod 2a;
(2-5)对c2进行Barrett约减,约减结果记为r,即c2=r,约减的商记为q,计算c1=c1+q;
(2-6)计算c1=c1 mod 2a;
有益效果:与现有技术相比,本发明具有以下优势:
本发明可以节省计算中加法运算和减法运算的次数,从而提升计算速度。在硬件实现的时候,当硬件资源消耗基本不变的情况下,将SIDH模乘器的吞吐率提升40%且频率提升两倍。
附图说明
图1为本发明的原理图;
图2为Barrett约减算法原理图;
图3为Barrett除法算法原理图;
图4为现有的SIDH中特殊结构域的模乘计算FFM1算法原理图;
图5为现有的SIDH中特殊结构域的模乘计算FFM2算法原理图;
图6为本发明中乘法操作的硬件结构图;
图7为本发明的整体流水线硬件结构图。
具体实施方式
下面结合附图对本发明作更进一步的说明。
一、现有技术说明
图4和图5所示为现有的SIDH中特殊结构域的模乘计算原理图,下面首先介绍现有的SIDH中两种特殊结构域的模乘计算原理。
(1)FFM1算法:假定p=2·2a3b-1,其中a和b为偶数,通过基R′表示法,可以将素数域p中的任一元素(即所有小于p的非负整数)A表示成如下形式,其中R′=2a/23b/2,
A=a1R′2+a2R′+a3,a1∈0,1,a2,a3∈[0,R′) (1)
若a1=1,则A可以表示成A′:
A′=a2′R′+a3′,a2′,a3′∈[0,R) (2)
其中ai′(a2′或a3′)通过计算ai′=R′-1-ai′得到。
式中,a1、a2、a3、a2′、a3′均为系数。
将p中的任意两个元素A和B均通过基R′表示且进行公式(2)变换,那么A′.B′(modp)的结果C′为:
C′=a2′b2′·R′2+(a2′b3′+a3′b2′)·R′+a3′b3′ (3)
由于p=2·2a3b-1,可以得到R′2=2-1(mod p),因为不确定a2′b2′的奇偶性,所以a2′b2′·R′2可表示为如下形式:
则公式(2)可以重新写成如下形式:
由于不能保证A和B同时大于R′2,计算结果需要修正,修正公式如下:
在公式(4)中,最后得到的系数c2′和c3′是在[0,R′2)范围之内,而不是在基R′示法中要求的[0,R′)范围之内,因此,需要对c2′和c3′作进一步化简。
对c2′和c3′的化简采用了Barrett约减算法,Barrett约减算法如图2所示:
由欧几里得除法原理,如果两个正数a和b相除,则存在商q和余数r使a=q·b+r成立,其中r∈[0,b-1],即a=r(mod b)。这样得到余数的方式需要通过一次除法操作,但是在硬件中,除法操作是一个很耗费资源和时间的操作。但是对于除数是一个常数来说,Barrett约减算法是一个很巧妙的方法。Barrett约减算法先将1/b使用移位和多次乘法取代,变换过程如下:
由于近似得到的误差可以由公式e=1/b-x/2k表示。此外,k需要满足公式k=log2(a)以保证最终的结果的正确。
对c2′和c3′的化简需要除以基R′,而R′=2a/23b/2,因此可以将R′分开进行除法。对2a/2的除法只需要进行移位操作即可,而对于3b/2需要使用Barrett约减算法。Barrett除法的具体流程见图3。
FFM2:假定p=f·2a3b-1,由于p+1=f·2a3b,A和B的乘积C对p取余可以表示如下:
C≡q·(p+1)+r≡qp+q+r≡(q+r)mod p (7)
则可以先将A和B的乘积C求出,再利用Barrett除法和公式(7)进行化简。但是(q+r)∈[0,2p),需要对结果进行一次减法操作。
同理假定p=f·2a3b+1,A和B的乘积C对p取余可以表示如下:
C≡q·(p-1)+r≡qp-q+r≡(r-q)mod p (8)
由于(r-q)∈[-p,p),需要对结果进行一次加法操作。具体操作见图5所示。
至此,我们可以得到完成SIDH中模乘A·B(mod p)的两种计算过程。
二、本发明技术方案的说明
若乘数B也满足以上条件,则乘积C表示为:
C=a1b1·R2+(a2b1+a1b2)·R+a1b1 (10)
由于a2b1+a1b2小于2p,通过2a将其分割成两段,可以得到:
同理,a1b1也可以分割成两部分,但是不同的是,a1b1高位分割后的基数是R,低位的基数是R2,低位的基数过大需要进一步处理。令m=(a1b1)(mod 2a)·R2,即a1b1·R2分割后的低位。将R2中的一个因子R与(a1b1)(mod 2a)相乘得到一个新的数,该数不大于2p,可以使用2a继续将其分割成两段。因此,公式(10)可以转换成如下:
此时计算C就可以得到A·B(mod p),计算A·B(mod p)的步骤为:
(1)C表示为A和B相乘的积,C用R表示为:
C=c1·R+c2
式中,c1、c2为系数变量;
(4)计算c1=q1+(a1b2+a2b1)mod 2a+r1R mod 2a;
(5)对c2进行Barrett约减,约减结果记为r,即c2=r,约减的商记为q,计算c1=c1+q;
(6)计算c1=c1 mod 2a;
与现有的SIDH中的特殊域模乘计算方法相比,本发明大量减少了加法和减法操作。此外,本发明将乘法集中,使得其更利于硬件实现。与FFM2算法相比,本发明利用的化简公式与其相同,但是只进行了一次Barrett约减算法,且减少了运算过程中的乘加运算的位数。在输入相同位数的乘数时,本发明所需要的乘加位数仅仅只有FFM2算法的一半。
三、本发明的硬件实现
为进一步说明本发明的技术方案及技术效果,本实施例提供了一个可以用于实现本发明的硬件结构,如图6和图7所示。在本发明中,有9个N/6位乘法器,7个进位保存器加法器(CSA)加法器和2个N位加法器。整个设计由有限状态机控制。K=a为移位操作的位数,将N′取值为a和b中较大数的位数。由于计算一次N位加法的时间延时约等于计算一次N/6×N/6乘法的时间延时,因此将N′增加位数直至其可以整除6,得到N。
本发明完成一次模乘运算需要进行四个阶段的运算。在第一个阶段使用9个位DSP乘法器,7个进位保存器加法器(CSA)加法器和2个N位加法器完成步骤(2)中的a1b1、a1b2、a2b1、a2b2和r1R五次乘法(r1=a1b1mod 2a和在硬件电路中直接截取可得);第二个阶段使用两个N位加法器根据步骤(3)和(4)将第一阶段计算的五个乘法积拆分相加得到未化简的c1和c2;第三个阶段完成步骤(5)中的Barrett约减算法中的两次乘法将c2约减和约减产生的进位q,且使用N位加法器将q与c1相加;最后一个阶段为最终的调整阶段,通过步骤(6)和步骤(7)使用N位加法器对结果进行调整得到最终的结果。
本发明的结构使用所有的器件构成一个N×N乘法器,当乘法器不工作时使用其中的两个N位加法器完成加法操作。本结构使用8个周期计算一次N×N乘法。在第一周期使用9个N/6位乘法器得到一次N/2×N/2乘法的所有部分积。每个乘法器在前四个计算周期内分别输入操作数A和B的六分之一数据,得到其部分积。第二个周期使用一个缓冲层将第一个周期得到9个数据保存,同时将第一周期得到最后一个部分积的后N/6位继续存储以减少CSA加法器的位数;第三个周期使用7个CSA加法器将9个部分积相加,最后输出两个和;第四个周期使用一个N位加法器得到一个N/2×N/2乘法的结果。这样使用四个周期进行一个N/2×N/2乘法。若将前四个周期进行流水线设计,那么在第五个周期时就可以得到第二个N/2×N/2乘法的结果。因此,在后四个阶段只使用一个N位的加法器,该加法器在每个周期内将上周期的加法和与新产生的N/2×N/2乘法结果相加,得到的结果中将不在参与运算的低N/2位结果进行保存,以保证每次加法的位宽都是N。
算法第一阶段需要进行五次N/2×N/2乘法操作,如果将五次乘法操作进行流水线设计将进一步减少运算周期。本发明使用六级流水线设计,使用32个周期完成五次N/2×N/2乘法运算。具体流程见图7。
由于步骤5中的Barrett约减算法的两次乘法结果是相关的,因此乘法的流水线结构不能用于Barrett约减算法。此外,Barrett约减算法中会有两个减法。第一个是2N位的减法,第二个是N位的减法。减法可以由操作数的补码相加来完成,N位减法中的减数是一个常数可以直接预制其补码使用加法器得到相减的结果。2N位的减法中相减得到结果最大位数也小于N位,因此其减数和被减数的高N位是相同的,只需要对后N位进行补码相加。在结构中不再使用减法器也使得资源消耗降低。
本实施例利用Vivado2016.4在Kintex-7FPGA(xc7k325tffg900-2)上构建了上述硬件结构,并选取模数p=2.23863242-1。
将本实施例的参数结果与现有技术的参数结果进行比对,比对的结果如表1所示:
表1
方法 | FFs | LUTs | DSP48s | 频率MHz) | 时钟(s) | 总时间(μs) |
FFM1 | 9675 | 16629 | 122 | 55 | 64 | 1.16 |
FFM2 | 11632 | 33051 | 529 | 25 | 28 | 1.12 |
本发明 | 11201 | 12198 | 144 | 110 | 75 | 0.68 |
从表中可以看出,本实施例的电路结构频率为110MHz,完成一次特殊域模乘所需时钟数为75个,总时间为0.68。在资源消耗基本不增加的情况下,运行时间相比减少了40%,且频率增加了一倍。
以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (1)
1.一种SIDH特殊域快速模乘方法,其特征在于,包括9个N/6位乘法器,7个进位保存器加法器和2个N位加法器;该方法包括:
A=a1R+a2
B=b1R+b2
其中,p为素数域,l表示一个小的素数,a和b可以为任意数,用于调节加密等级,f为将p调节为素数的参数,A和B为素数域p中的任意两个元素,a1、a2分别表示操作数A的前R位和除了前R位以外的后半段,b1、b2表示操作数B的前R位和除了前R位以外的后半段;
使用9个N/6位乘法器、7个进位保存器加法器和2个N位加法器完成a1b1、a1b2、a2b1、a2b2和r1R五次乘法,r1=a1b1mod 2a;
阶段二:使用2个N位加法器将第一阶段计算的五个乘法积拆分相加得到未化简的c1和c2:c1=q1+(a1b2+a2b1)mod 2a+r1R mod 2a, 其中,c1、c2为系数变量,C=c1·R+c2;
阶段三:对c2进行Barrett约减,约减的余数记为r,即c2=r,约减的商记为q,使用其中一个N位加法器将q与c1相加;
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910947892.9A CN111064567B (zh) | 2019-09-30 | 2019-09-30 | 一种sidh特殊域快速模乘方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910947892.9A CN111064567B (zh) | 2019-09-30 | 2019-09-30 | 一种sidh特殊域快速模乘方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111064567A CN111064567A (zh) | 2020-04-24 |
CN111064567B true CN111064567B (zh) | 2022-04-08 |
Family
ID=70297437
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910947892.9A Active CN111064567B (zh) | 2019-09-30 | 2019-09-30 | 一种sidh特殊域快速模乘方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111064567B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117134917B (zh) * | 2023-08-09 | 2024-04-26 | 北京融数联智科技有限公司 | 一种用于椭圆曲线加密的快速模运算方法和装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108228138A (zh) * | 2017-12-28 | 2018-06-29 | 南京航空航天大学 | 一种sidh中特殊域快速模乘的方法 |
-
2019
- 2019-09-30 CN CN201910947892.9A patent/CN111064567B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108228138A (zh) * | 2017-12-28 | 2018-06-29 | 南京航空航天大学 | 一种sidh中特殊域快速模乘的方法 |
Non-Patent Citations (3)
Title |
---|
《Design and Optimization of Modular Multiplication for SIDH》;Chunyang Liu等;《2018 IEEE International Symposium on Circuits and Systems (ISCAS)》;20180530;全文 * |
《Optimized Modular Multiplication for Supersingular Isogeny Diffie-Hellman》;Weiqiang liu;《 IEEE Transactions on Computers》;20190221;全文 * |
《基于SIDH有限域的高校模乘算法的设计和实现》;刘春洋;《中国优秀硕士论文全文库》;20190215(第2期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111064567A (zh) | 2020-04-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110351087B (zh) | 流水线型的蒙哥马利模乘运算方法 | |
Ding et al. | High-speed ECC processor over NIST prime fields applied with Toom–Cook multiplication | |
US8862651B2 (en) | Method and apparatus for modulus reduction | |
KR101326078B1 (ko) | 모듈러 곱셈 방법, 모듈러 곱셈기 및 모듈러 곱셈기를구비하는 암호 연산 시스템 | |
CN115344237B (zh) | 结合Karatsuba和蒙哥马利模乘的数据处理方法 | |
CN110908635A (zh) | 基于同源曲线的后量子密码学的高速模乘器及其模乘方法 | |
Liu et al. | High performance modular multiplication for SIDH | |
Großschädl | A bit-serial unified multiplier architecture for finite fields GF (p) and GF (2 m) | |
Tian et al. | Ultra-fast modular multiplication implementation for isogeny-based post-quantum cryptography | |
CN111064567B (zh) | 一种sidh特殊域快速模乘方法 | |
WO2001076132A1 (en) | Scalable and unified multiplication methods and apparatus | |
Ding et al. | A reconfigurable high-speed ECC processor over NIST primes | |
CN108228138B (zh) | 一种sidh中特殊域快速模乘的方法 | |
Elango et al. | Hardware implementation of residue multipliers based signed RNS processor for cryptosystems | |
Kuang et al. | An efficient radix-4 scalable architecture for Montgomery modular multiplication | |
TWI784406B (zh) | 採用迭代計算的模數運算電路 | |
Kolagatla et al. | Area-time scalable high radix Montgomery modular multiplier for large modulus | |
KR20140089230A (ko) | 중복 형태 리코딩을 이용한 곱셈 방법 및 모듈러 곱셈기 | |
Coliban | Fast Radix-2 Montgomery Modular Multiplication on FPGA Using Ternary Adder | |
KR100946256B1 (ko) | 다정도 캐리 세이브 가산기를 이용한 듀얼필드상의확장성있는 몽고매리 곱셈기 | |
Rezai et al. | Algorithm design and theoretical analysis of a novel CMM modular exponentiation algorithm for large integers | |
JP4223819B2 (ja) | べき乗剰余演算装置及びそのプログラム | |
Zeng et al. | An Efficient Module Arithmetic Logic Unit in Dual Field for Internet of Things Applications | |
CN113434115B (zh) | 一种浮点数尾数域余数运算电路及方法 | |
Kaihara et al. | A hardware algorithm for modular multiplication/division based on the extended Euclidean algorithm |
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 |