CN108228138B - 一种sidh中特殊域快速模乘的方法 - Google Patents
一种sidh中特殊域快速模乘的方法 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods 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/72—Methods 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/722—Modular 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
Description
技术领域
本发明涉及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)表示为:
式中,A、A′、B、B'分别用以R为基的补码形式表示为:
A=a1R2+a2R+a3
B=b1R2+b2R+b3
A′=a'2R+a′3
B′=b′2R+b′3
(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-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-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将两种情况结合起来考虑便可以得到:
类似的,对于(a1b2+a2b1)·R3项,可以写成
因此,公式(2)可以重新写成如下形式:
但是在式(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可 以表示成:
通常来说,x的取值为其中参数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:
当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)满足以下关系:
通过计算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]表示取最低位;
(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;
(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)表示为:
式中,A、A′、B、B′分别用以R为基的补码形式表示为:
A=a1R2+a2R+a3
B=b1R2+b2R+b3
A′=a′2R+a′3
B′=b′2R+b′3
(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-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-8)根据计算得到的c′1、c′2、c′3得到A′·B′(mod p)的计算结果,再根据A′·B′(modp)得到A·B(mod p)的计算结果。
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)
| 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)
| 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)
| 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 |
-
2017
- 2017-12-28 CN CN201711467326.5A patent/CN108228138B/zh active Active
Patent Citations (6)
| 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)
| 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 |