[go: up one dir, main page]

CN108228138B - 一种sidh中特殊域快速模乘的方法 - Google Patents

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

Info

Publication number
CN108228138B
CN108228138B CN201711467326.5A CN201711467326A CN108228138B CN 108228138 B CN108228138 B CN 108228138B CN 201711467326 A CN201711467326 A CN 201711467326A CN 108228138 B CN108228138 B CN 108228138B
Authority
CN
China
Prior art keywords
mod
calculation
sidh
modular multiplication
register
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
CN201711467326.5A
Other languages
English (en)
Other versions
CN108228138A (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 CN201711467326.5A priority Critical patent/CN108228138B/zh
Publication of CN108228138A publication Critical patent/CN108228138A/zh
Application granted granted Critical
Publication of CN108228138B publication Critical patent/CN108228138B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/722Modular multiplication

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)

Abstract

本发明提出一种SIDH中特殊域快速模乘的方法,该方法对现有的SIDH中特殊域快速模乘计算方法进行了改进,通过构建关系式:
Figure DDA0001528685460000011
将SIDH中单个模乘A·B(mod p)的计算转换为A′·B′(mod p)的计算,在计算过程中大大节省了操作数的数目,从而提高计算速度。

Description

一种SIDH中特殊域快速模乘的方法
技术领域
本发明涉及SIDH中特殊域模乘计算领域,尤其是一种SIDH中特殊域快速模乘的方法。
背景技术
在广泛的后量子技术之中,最新的超奇异同源点Diffie-Hellman(SIDH)密钥交换协议具很多优良特性以及广泛的应用前景。与其他广泛被引用的后量子密钥交换和加密体系相比,如格加密代码加密、哈希加密以及多变量加密,SIDH密钥交换体系所需要的 密钥长度要小得多。2011年,Jao和Deo提出了一种基于SIDH中特殊结构域的快速模 乘算法,该算法中的一个计算瓶颈就是p=f·2a3b-1的模乘运算,在该算法中很难兼 顾资源消耗量和运算吞吐量之间的平衡,即模乘运算所占用的资源较多,但运算吞吐量 并不大。
发明内容
发明目的:为解决上述技术问题,本发明提出一种SIDH中特殊域快速模乘的方法。
技术方案:为解决上述技术问题,在增加较少资源占用率的前提下获得更快的处理 速度,本发明提出一种SIDH中特殊域快速模乘的方法,该方法包括SIDH中单个模乘的计算步骤:
(1)定义SIDH中单个模乘为A·B(modp),其中,p为素数域,A和B为素数域 p中的任意两个元素;p=2·2a3b-1,a,b均为偶数;
(2)将A·B(modp)表示为:
Figure BDA0001528685440000011
式中,A、A′、B、B'分别用以R为基的补码形式表示为:
A=a1R2+a2R+a3
B=b1R2+b2R+b3
A′=a'2R+a′3
B′=b′2R+b′3
其中,R=2a/23b/2,a1、a2、a3、b1、b2、b3、a'2、a′3、b′2、b′3均为系数,符号
Figure BDA0001528685440000023
表示异或;
(3)通过计算A′·B′(modp)得到A·B(modp),包括依次执行步骤(3-1)至(3-8):
(3-1)将A′·B′(modp)的值以基R形式表示为:
A′·B′(modp)=c′1R2+c′2R+c′3
式中,c'1、c′2、c′3为系数变量;
(3-2)初始化c'1=0,c′2=0,c′3=0;
(3-3)计算c'1=c′2c′3[0],[0]表示取最低位;
(3-4)计算
Figure BDA0001528685440000021
(3-5)对c′3进行Barrett约减,约减结果记为r1,即c′3=r1;计算c′2=c′2+r1
(3-6)对c′2进行Barrett约减,约减结果记为r2,即c′2=r2;计算c'1=c'1+r2
(3-7)计算
Figure BDA0001528685440000022
c'1=c'1[0];
(3-8)根据计算得到的c'1、c′2、c′3得到A′·B′(modp)的计算结果,再根据 A′·B′(modp)得到A·B(modp)的计算结果。
有益效果:与现有技术相比,本发明具有以下优势:
本发明可以节省操作数的数目,从而提高计算速度。在硬件实现时可以在增加较少 硬件资源的情况下,将SIDH的吞吐量提高到了原来的6倍以上。
附图说明
图1为本发明的原理图;
图2为Barrett约减算法原理图;
图3为Barrett除法算法原理图;
图4为现有的SIDH中特殊结构域的模乘计算原理图;
图5为本发明的硬件架构图;
图6为本发明中乘法操作的硬件结构图。
具体实施方式
下面结合附图对本发明作更进一步的说明。
一、现有技术说明
图4所示为现有的SIDH中特殊结构域的模乘计算原理图,下面首先介绍现有的SIDH
中特殊结构域的模乘计算原理。
假定p=2·2a3b-1,其中a和b为偶数,通过基R表示法,可以将素数域p中的任 一元素(即所有小于p的非负整数)A表示成如下形式,其中R=2a/23b/2
A=a1R2+a2R+a3,a1∈{0,1},a2,a3∈[0,R) (1)
式中,a1、a2、a3均为系数。
将p中的任意两个元素A和B均通过基R表示,那么A·B(modp)的结果为:
C=a1b1·R4+(a1b2+a2b1)·R3+(a1b3+a2b2+a3b1)·R2+(a2b3+a3b2)·R+a3b3 (2)
由于p=2·2a3b-1,可以得到公式(2)中2a3b亦即R2=2-1(mod p),因此a1b1·R4或是等于0或是等于2-2(mod p),因为a1,b1∈{0,1}所以a1b1∈{0,1}。当选定某个固定不变 的p之后,对应的2-2(mod p)的值也是固定不变的,在算法开始之前就预计算出 2-2(mod p)的值,从而减少算法中的操作。
同样,对于其他项,也可以用类似的方法代替。例如,对于(a1b3+a2b2+a3b1)·R2项,如果该项是偶数,可以得到:
(a1b3+a2b2+a3b1)·R2=(a1b3+a2b2+a3b1)/2(mod p)
反之,若为奇数,则可以写成
(a1b3+a2b2+a3b1)·R2=(a1b3+a2b2+a3b1-1)/2(mod p)+((a1b3+a2b2+a3b1)mod 2)·2a3b将两种情况结合起来考虑便可以得到:
Figure BDA0001528685440000032
其中,符号
Figure BDA0001528685440000031
表示向下取整。
类似的,对于(a1b2+a2b1)·R3项,可以写成
Figure BDA0001528685440000043
因此,公式(2)可以重新写成如下形式:
Figure BDA0001528685440000041
但是在式(3)之中,最后得到的系数c2和c3是在[0,R2)范围之内,而不是在基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)。
毫无疑问,得到这样的q和r必然需进行一次a/b的除法,但是在计算机中,相比 于乘法,除法是代价很大的操作。然而对于常除数而言,Barrett约减却是一种很巧妙的 操作。它可以将一次1/b的除法转化成若干乘法和移位操作。在Barrett约减中,1/b可 以表示成:
Figure BDA0001528685440000042
通常来说,x的取值为
Figure BDA0001528685440000044
其中参数k的取值取决于a。从公式(4)中可以 看出,对1/b作近似化后产生的误差值e=1/b-x/2k。因此,对于商q产生的总误差值 为ae。由于q∈Z+,为了使最终得到的结果正确,需要使误差ae小于1,因此需要满足 条件k=log2(a)。
在对c2和c3进行化简时,需要对c2和c3做关于R的除法操作,得到相对应的商q 和余数r。由于R=2a/22b/2,可以将该除法看成一个先除以2a/2之后再除以3b/2的操作。 而在计算机中,关于2a/2的除法可以用简单的右移操作代替。因此对c2和c3的快速化简, 可以按照以下步骤进行:
1、提取出ci的低a/2位并将它存在变量r1中;
2、对ci右移a/2位得到c′i
3、对c′i作除以3b/2的除法得到商q以及余数r2
4、得到ci=q·2a/23b/2+(r2·2a/2+r2)=q·2a/23b/2+r
然而,步骤3中的关于3b/2的除法操作并不像关于2a/2的除法操作一样能简单实现,由于被除数3b/2一直是固定不变的,因此考虑用Barrett约减算法来完成关于3b/2的除法 操作部分。综上所述,对于c2和c3的完整化简过程,称之为Barrett除法算法,Barrett 除法算法的过程如图3所示。
至此,我们可以得到完成SIDH中一次模乘A·B(modp)的计算过程。
二、本发明技术方案的说明
根据模运算的基本性质,可以得到以下等式:
(p-A)·(p-B)(mod p)=A·B(mod p) (5)
首先,同样设任一元素A∈Fp,Fp为素数域;把A以基R形式表示为:
A=a1R2+a2R+a3,a1∈{0,1},a2,a3∈[0,R)
可以得到元素A′∈Fp
Figure BDA0001528685440000051
当a1=1时,有
a′i=R-ai,i∈{2,3} (7)
则A′的基R形式表达式为:
A′=a‘2R+a’3,a2,a3∈[0,R) (8)
同理,得到B′。
根据公式(5)可以得到算式A·B(modp)和A′·B′(modp)满足以下关系:
Figure BDA0001528685440000061
其中符号
Figure BDA0001528685440000062
表示异或。
通过计算A′·B′(mod p)即可得到A·B(mod p),计算A′·B′(mod p)的步骤为:
(1)将A′·B′(mod p)的值以基R形式表示为:
A′·B′(modp)=c′1R2+c′2R+c′3
式中,c'1、c′2、c′3为系数变量;
(2)初始化c'1=0,c′2=0,c′3=0;
(3)计算c'1=c′2c′3[0],[0]表示取最低位;
(4)计算
Figure BDA0001528685440000063
(5)对c′3进行Barrett约减,约减结果记为r1,即c′3=r1;计算c′2=c′2+r1
(6)对c′2进行Barrett约减,约减结果记为r2,即c′2=r2;计算c'1=c′1+r2
(7)计算
Figure BDA0001528685440000064
c′1=c'1[0];
(8)根据计算得到的c′1、c′2、c′3得到A′·B′(mod p)的计算结果,再根据A′·B′(mod p) 得到A·B(modp)的计算结果。
与现有的SIDH中一次模乘计算方法相比,本发明和现有技术都需要计算4个乘法:原算法的a2×b2,a2×b3,a3×b2以及a3×b3和本发明中的a‘2×b’2,a‘2×b′3,a‘3×b’2以及a‘3×b’3。 不同之处在于,本发明至多需要4个减法来得到参数a‘2,a‘3,b’2以及b’3,而原始算法需要 5个乘法来得到a1×b2×2-2(mod p),a1×b2,a1×b3,b1×a2以及b1×a3。此外,在Barret除 法之前,原始算法需要6至9个加减法,2个右移操作,来计算参数c1,c2和c3,而本发 明只需2个加法操作和1个右移操作。原始算法需要预计算2-2(mod p),而本发明不需要。最重要的是,在本发明中,在表示A′与B′时,权重为R2的这一项已经完全消失了, 这大大节省了操作数的数目。
三、本发明的硬件实现
为进一步说明本发明的技术方案及技术效果,本实施例提供了一个可以用于实现本 发明的硬件结构,如图5所示。该结构主要由N/2比特的乘法器、5N/2比特的加法器 以及2N比特的减法器构成。寄存器_A中存放了A′和B′等初始数据,寄存器_B和寄存 器_C分别存放了计算过程中的中间值以及最后结果。输入位宽的选择是为了保证尽可能 减少算法所需时钟数。整个模乘计算过程由有限状态机控制。N表示位宽长度,P为常 值输入端,即此处输入的为图3中P的值。位于加法器与后级选择器之间的操作代表的 是左移N/2比特操作。
在本发明,存在着3种输入长度的普通乘法操作,它们分别为N×N/2,N×N以 及3N/2×3N/2,而在输入长度为3N/2×3N/2的乘法中,其中一个乘数为常数,并且 高N/2位一直等于2,因此,可以将该乘法转换成一个输入长度为3N/2×N的乘法以 及移位操作。因此对于以上3种乘法操作,可以用同一种流水线结构实现,如图5所示。 根据图5所示结构可得,对于所述任意一种长度的乘法,在第2个时钟便可以得到结果 的最高N/2位;每当下一个时钟到达时,最终结果的下一个低N/2位便可依次得到。 例如,只需要5个时钟,我们便可以得到N×N的完整结果。
本实施例利用Vivado14.6在Virtex 7 FPGA(xc7k325tffg900-2)上构建了上述硬件结构,并选取p=2·23863242-1。
将本实施例的参数结果与现有技术的参数结果进行比对,比对的结果如表1所示:
表1
方法 FFs LUTs DSP48s 频率(MHz) 时钟(s) 总时间(μs)
EFFM 11924 12790 0 31 236 7.61
本发明 9675 16629 122 55 64 1.16
从表中可以看出,本实施例的电路结构频率为55MHz,完成一次完整模乘所需时钟数 为64个,总时间为1.16us。在资源消耗增加不多的情况,吞吐量达到了原来的6倍多。
以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员 来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (1)

1.一种SIDH中特殊域快速模乘的方法,其特征在于,包括寄存器A、寄存器B、寄存器C、N/2比特的乘法器、5N/2比特的加法器和2N比特的减法器;寄存器A中存放了A′和B′,寄存器B和寄存器C分别存放了计算过程中的中间值和最后结果;整个模乘计算过程由有限状态机控制;N表示位宽长度,P为输入的常值;
该方法包括SIDH中单个模乘的计算步骤:
(1)定义SIDH中单个模乘为A·B(mod p),其中,p为素数域,A和B为素数域p中的任意两个元素;p=2·2a3b-1,a,b均为偶数;
(2)将A·B(mod p)表示为:
Figure FDA0003115929920000011
式中,A、A′、B、B′分别用以R为基的补码形式表示为:
A=a1R2+a2R+a3
B=b1R2+b2R+b3
A′=a′2R+a′3
B′=b′2R+b′3
其中,R=2a/23b/2,a1、a2、a3、b1、b2、b3、a′2、a′3、b′2、b′3均为系数,符号
Figure FDA0003115929920000012
表示异或;
(3)通过计算A′·B′(mod p)得到A·B(mod p),包括依次执行步骤(3-1)至(3-8):
(3-1)将A′·B′(mod p)的值以基R形式表示为:
A′·B′(mod p)=c′1R2+c′2R+c′3
式中,c′1、c′2、c′3为系数变量;
(3-2)初始化c′1=0,c′2=0,c′3=0;
(3-3)计算c′1=c′2c′3[0],[0]表示取最低位;
(3-4)计算
Figure FDA0003115929920000013
(3-5)对c′3进行Barrett约减,约减结果记为r1,即c′3=r1;计算c′2=c′2+r1
(3-6)对c′2进行Barrett约减,约减结果记为r2,即c′2=r2;计算c′1=c′1+r2
(3-7)计算
Figure FDA0003115929920000021
c′1=c′1[0];
(3-8)根据计算得到的c′1、c′2、c′3得到A′·B′(mod p)的计算结果,再根据A′·B′(modp)得到A·B(mod p)的计算结果。
CN201711467326.5A 2017-12-28 2017-12-28 一种sidh中特殊域快速模乘的方法 Active CN108228138B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711467326.5A CN108228138B (zh) 2017-12-28 2017-12-28 一种sidh中特殊域快速模乘的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711467326.5A CN108228138B (zh) 2017-12-28 2017-12-28 一种sidh中特殊域快速模乘的方法

Publications (2)

Publication Number Publication Date
CN108228138A CN108228138A (zh) 2018-06-29
CN108228138B true CN108228138B (zh) 2021-12-10

Family

ID=62646613

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711467326.5A Active CN108228138B (zh) 2017-12-28 2017-12-28 一种sidh中特殊域快速模乘的方法

Country Status (1)

Country Link
CN (1) CN108228138B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111064567B (zh) * 2019-09-30 2022-04-08 南京航空航天大学 一种sidh特殊域快速模乘方法
CN113242122B (zh) * 2021-04-15 2022-11-25 哈尔滨工业大学 一种基于dh和rsa加密算法的加密方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101247394A (zh) * 2008-01-10 2008-08-20 赵运磊 一种改进的密钥交换协议
CN102170351A (zh) * 2004-11-11 2011-08-31 塞尔蒂卡姆公司 定制的静态Diffie-Helman群
CN102521211A (zh) * 2011-11-17 2012-06-27 华南理工大学 一种求解有限域上线性方程组的并行装置
US8781110B2 (en) * 2007-06-30 2014-07-15 Intel Corporation Unified system architecture for elliptic-curve cryptography
CN104007953A (zh) * 2014-05-30 2014-08-27 复旦大学 一种基于四操作数Montgomery模乘算法的模乘器电路结构
CN106134128A (zh) * 2014-01-31 2016-11-16 谷歌公司 使用关联私钥部分更快的公钥加密的系统和方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2791784A1 (fr) * 2011-12-15 2014-10-22 Inside Secure Procede de generation de nombres premiers prouves adapte aux cartes a puce

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102170351A (zh) * 2004-11-11 2011-08-31 塞尔蒂卡姆公司 定制的静态Diffie-Helman群
US8781110B2 (en) * 2007-06-30 2014-07-15 Intel Corporation Unified system architecture for elliptic-curve cryptography
CN101247394A (zh) * 2008-01-10 2008-08-20 赵运磊 一种改进的密钥交换协议
CN102521211A (zh) * 2011-11-17 2012-06-27 华南理工大学 一种求解有限域上线性方程组的并行装置
CN106134128A (zh) * 2014-01-31 2016-11-16 谷歌公司 使用关联私钥部分更快的公钥加密的系统和方法
CN104007953A (zh) * 2014-05-30 2014-08-27 复旦大学 一种基于四操作数Montgomery模乘算法的模乘器电路结构

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于250 位模乘平台的Tate对最终模幂算法的改进;王晓静;《计算机与现代化》;20140331;全文 *

Also Published As

Publication number Publication date
CN108228138A (zh) 2018-06-29

Similar Documents

Publication Publication Date Title
Faz-Hernández et al. A faster software implementation of the supersingular isogeny Diffie-Hellman key exchange protocol
Erdem et al. A general digit-serial architecture for Montgomery modular multiplication
CN111813372B (zh) 一种高精度低时延实现32位整数除法的方法及装置
Liu et al. High performance modular multiplication for SIDH
Putranto et al. Depth-optimization of quantum cryptanalysis on binary elliptic curves
Putranto et al. Another concrete quantum cryptanalysis of binary elliptic curves
Pornin Optimized binary gcd for modular inversion
CN111984227A (zh) 一种针对复数平方根的近似计算装置及方法
CN113467752B (zh) 用于隐私计算的除法运算装置、数据处理系统及方法
CN108228138B (zh) 一种sidh中特殊域快速模乘的方法
CN108418687B (zh) 一种适合sm2算法的快速模约减方法和介质
KR20090059265A (ko) 여분 표현을 사용하는 유한체 비트―병렬 곱셈 장치 및방법
Lee et al. Efficient $ M $-ary exponentiation over $ GF (2^{m}) $ using subquadratic KA-based three-operand Montgomery multiplier
CN111064567B (zh) 一种sidh特殊域快速模乘方法
CN108390761B (zh) 一种双域模逆的硬件实现方法
CN113672196B (zh) 一种基于单数字信号处理单元的双乘法计算装置和方法
Molahosseini et al. Efficient MRC-based residue to binary converters for the new moduli sets {2 2n, 2 n-1, 2 n+ 1-1} and {2 2n, 2 n-1, 2 n-1-1}
JP4182226B2 (ja) 剰余系の計算方法及び装置並びにプログラム
JP4223819B2 (ja) べき乗剰余演算装置及びそのプログラム
Nadjia et al. High throughput parallel montgomery modular exponentiation on FPGA
JP4850884B2 (ja) べき乗剰余演算器
CN114706557A (zh) 一种asic芯片及蒙哥马利模乘的实现方法和装置
KR100946256B1 (ko) 다정도 캐리 세이브 가산기를 이용한 듀얼필드상의확장성있는 몽고매리 곱셈기
CN119493547B (zh) 一种模数乘法器、数据处理方法、装置、设备及介质
CN112732219B (zh) 一种ssd主控芯片中乘法运算电路和方法

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