CN111064567B - 一种sidh特殊域快速模乘方法 - Google Patents

一种sidh特殊域快速模乘方法 Download PDF

Info

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
Application number
CN201910947892.9A
Other languages
English (en)
Other versions
CN111064567A (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.)
Nanjing University of Aeronautics and Astronautics
Original Assignee
Nanjing University of Aeronautics and Astronautics
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 Nanjing University of Aeronautics and Astronautics filed Critical Nanjing University of Aeronautics and Astronautics
Priority to CN201910947892.9A priority Critical patent/CN111064567B/zh
Publication of CN111064567A publication Critical patent/CN111064567A/zh
Application granted granted Critical
Publication of CN111064567B publication Critical patent/CN111064567B/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
    • H04L9/0852Quantum cryptography
    • H04L9/0858Details about key distillation or coding, e.g. reconciliation, error correction, privacy amplification, polarisation coding or phase coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/061Network 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
    • 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/0819Key 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)
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/122Hardware 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

本发明提出一种SIDH中特殊域快速模乘方法,该方法通过设置基数
Figure DDA0002223509220000011
将乘数A和B表示成以R为基数的展开式;将运算A·B(mod p)转化为计算:
Figure DDA0002223509220000012
Figure DDA0002223509220000013
本发明多次使用对2移位操作,再利用数学公式将大数化小,简化运算步骤,使得运算速度相较于之前大大提高。

Description

一种SIDH特殊域快速模乘方法
技术领域
本发明涉及SIDH中特殊域模乘计算领域,尤其是一种SIDH特殊域快速模乘方法。
背景技术
由于量子计算机的研究愈发深入,量子计算机的出现只是时间问题。当量子计算机出现后现有加密方式如RSA加密和ECC(椭圆曲线加密)将失效,因此后量子密码应运而生。
在现有的后量子密码中,主要有格加密、代码加密、哈希加密和超奇异同源点Diffie-Hellman(SIDH)等。相对比其他的加密方式,SIDH密钥交换协议有着公钥秘钥长度短的优势。2011年,Jao和Deo等人首先提出了SIDH密钥交换协议。该协议中的建议使用模数为
Figure GDA0003389909160000013
但是由于同源计算的方便,主流的实现方案中采用模数为p=f·2alb-1。SIDH密钥交换协议一直存在计算速度慢和占用资源较大的缺点。而作为算法最底层的模乘算法若对于速度和资源有所提升会对整个SIDH密钥交换协议的实现进行提升。
发明内容
发明目的:为解决上述技术问题,本发明提出一种SIDH特殊域快速模乘方法。
技术方案:本发明提出一种SIDH特殊域快速模乘方法,在基本不增加资源的情况下,加快模乘的运算速度和提升模乘的运行频率,该方法包括SIDH单个模乘的计算步骤:
(1)记SIDH中单个模乘计算公式为:A·B(mod p),设置基数
Figure GDA0003389909160000011
将乘数A和B表示成以R为基数的展开式:
A=a1R+a2
B=b1R+b2
其中,p为素数域,
Figure GDA0003389909160000012
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-2)计算a1b1、a1b2、a2b1、a2b2,计算中间变量r1=a1b1mod 2a
Figure GDA0003389909160000021
再计算r1R;
(2-3)计算
Figure GDA0003389909160000022
(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
(2-7)计算
Figure GDA0003389909160000023
从而得到A·B(mod p)的结果。
有益效果:与现有技术相比,本发明具有以下优势:
本发明可以节省计算中加法运算和减法运算的次数,从而提升计算速度。在硬件实现的时候,当硬件资源消耗基本不变的情况下,将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可表示为如下形式:
Figure GDA0003389909160000031
其中,符号
Figure GDA0003389909160000032
表示向下取整。
则公式(2)可以重新写成如下形式:
Figure GDA0003389909160000033
由于不能保证A和B同时大于R′2,计算结果需要修正,修正公式如下:
Figure GDA0003389909160000034
在公式(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使用移位和多次乘法取代,变换过程如下:
Figure GDA0003389909160000041
由于近似得到的误差可以由公式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)的两种计算过程。
二、本发明技术方案的说明
假定
Figure GDA0003389909160000042
设置基数
Figure GDA0003389909160000043
将乘数A表示成以R为基数的展开式:
Figure GDA0003389909160000044
若乘数B也满足以上条件,则乘积C表示为:
C=a1b1·R2+(a2b1+a1b2)·R+a1b1 (10)
由于a2b1+a1b2小于2p,通过2a将其分割成两段,可以得到:
Figure GDA0003389909160000045
同理,a1b1也可以分割成两部分,但是不同的是,a1b1高位分割后的基数是R,低位的基数是R2,低位的基数过大需要进一步处理。令m=(a1b1)(mod 2a)·R2,即a1b1·R2分割后的低位。将R2中的一个因子R与(a1b1)(mod 2a)相乘得到一个新的数,该数不大于2p,可以使用2a继续将其分割成两段。因此,公式(10)可以转换成如下:
Figure GDA0003389909160000051
此时计算C就可以得到A·B(mod p),计算A·B(mod p)的步骤为:
(1)C表示为A和B相乘的积,C用R表示为:
C=c1·R+c2
式中,c1、c2为系数变量;
(2)计算a1b1、a1b2、a2b1、a2b2,计算中间变量r1=a1b1mod 2a
Figure GDA0003389909160000052
且计算r1R;
(3)计算
Figure GDA0003389909160000053
(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
(7)计算
Figure GDA0003389909160000054
从而得到A·B(mod p)的结果。
与现有的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个
Figure GDA0003389909160000061
位DSP乘法器,7个进位保存器加法器(CSA)加法器和2个N位加法器完成步骤(2)中的a1b1、a1b2、a2b1、a2b2和r1R五次乘法(r1=a1b1mod 2a
Figure GDA0003389909160000062
在硬件电路中直接截取可得);第二个阶段使用两个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位加法器;该方法包括:
阶段一:记SIDH中单个模乘计算公式为:C=A·B(mod p),设置基数
Figure FDA0003389909150000015
将乘数A和B表示成以R为基数的展开式:
A=a1R+a2
B=b1R+b2
其中,p为素数域,
Figure FDA0003389909150000011
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
Figure FDA0003389909150000012
Figure FDA0003389909150000013
其中,c1、c2为系数变量,C=c1·R+c2
阶段三:对c2进行Barrett约减,约减的余数记为r,即c2=r,约减的商记为q,使用其中一个N位加法器将q与c1相加;
阶段四:使用另一个N位加法器计算c1=c1 mod 2a;最后计算
Figure FDA0003389909150000014
从而得到结果C:C=c1·R+c2
CN201910947892.9A 2019-09-30 2019-09-30 一种sidh特殊域快速模乘方法 Active CN111064567B (zh)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117134917B (zh) * 2023-08-09 2024-04-26 北京融数联智科技有限公司 一种用于椭圆曲线加密的快速模运算方法和装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108228138A (zh) * 2017-12-28 2018-06-29 南京航空航天大学 一种sidh中特殊域快速模乘的方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108228138A (zh) * 2017-12-28 2018-06-29 南京航空航天大学 一种sidh中特殊域快速模乘的方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
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