CN110865794A - 用于数据安全通信的并行模乘方法 - Google Patents
用于数据安全通信的并行模乘方法 Download PDFInfo
- Publication number
- CN110865794A CN110865794A CN201911005389.8A CN201911005389A CN110865794A CN 110865794 A CN110865794 A CN 110865794A CN 201911005389 A CN201911005389 A CN 201911005389A CN 110865794 A CN110865794 A CN 110865794A
- Authority
- CN
- China
- Prior art keywords
- modular multiplication
- parallel
- multiplication
- bit
- data
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 62
- 238000004891 communication Methods 0.000 title claims abstract description 26
- 238000004364 calculation method Methods 0.000 claims description 16
- 238000013461 design Methods 0.000 claims description 4
- 230000008707 rearrangement Effects 0.000 claims 1
- 238000011161 development Methods 0.000 abstract description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000005457 optimization Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 239000004575 stone Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
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)
- Multi Processors (AREA)
Abstract
本发明属于据安全通信技术领域,具体涉及一种用于数据安全通信的并行模乘方法。与现有技术相比较,本发明在保持有限域基本运算逻辑完整的情况下,相比于传统的蒙哥马利算法,理论速度得到了很大的提升。随着密码安全的发展,越来越需要并行的速度、更快的方法来实现有限域基本运算,本方案给出的并行模乘方法可以充分发挥出软硬件密码应用平台的性能。这对基于本方法构建的密码实现方案有极大的性能提升,尤其是在密码算法需要硬件实现的场景下,越来越多的方案对速度有较高的要求,所以如何利用好硬件实现平台,提高效率越来越重要的。而本方法将是一个很好的选择,将会为密码安全软硬件实现发展提供更好的保障。
Description
技术领域
本发明属于据安全通信技术领域,具体涉及一种用于数据安全通 信的并行模乘方法。
背景技术
在数据通信领域,密码安全技术能够保证数据的完整性和真实 性,并影响着整个通信系统的执行效率。有限域下的基本运算是构成 数据安全通信加解密技术的基石,其中大整数乘法取模(模乘)运算, 形如c≡a×b mod p,是基数据安全通信双方加解密操作的核心运算技 术,针对模乘的优化特别是效率优化对数据安全通信系统的构建意义 重大。
1985年美国数学家蒙哥马利最早提出了一种规避除法运算的模 乘方法:蒙哥马利模乘。该方法的设计思路是通过一个易于计算的剩 余系,将模乘中对特定模数(即有限域的特征值p)的取模转换成对 蒙哥马利常数r的取模。当蒙哥马利常数r设定为2的n次方时,取模操 作就转换为了容易实现的移位操作,加快了模乘的运行速度。其计算 输入为乘数A,B,模数N,蒙哥马利系数r-1,其中,r=2k,其中, k=log2N,算法能够计算出蒙哥马利模乘结果A*B*r-1mod N。
蒙哥马利模乘中A,B,N皆为k比特的二进制数,运行过程只包 括加减、乘法操作和移位取模操作。移位操作的实现非常简单,而且 几乎不占用硬件资源,相较于使用除法,蒙哥马利算法的运算复杂度 大大降低。
但是由于蒙哥马利模乘的预计算包括了模逆运算的步骤,其结果 比直接模乘多了个r-1的乘积项:R≡A×B×r-1mod N。因此利用 Montgomery算法实现模乘还需对操作数进行转换,即进行蒙哥马利 域的转换,对输入参数A,B,N,t,其中t=r2modN,需要计算 A'=Mont(A,t,N),B'=Mont(B,t,N),R'=Mont(A',B',N),最后需要多计 算一步R=Mont(R',1,N),将结果转换出蒙哥马利域。
因此,在提高数据安全通信运算中有限域下大整数模乘运算实现 速度,充分发挥软硬件实现方案中的计算资源提高系统计算能力方 面,目前还存在较大的提升需求。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是:为了提高数据安全通信运算中有限 域下大整数模乘运算实现速度,为了充分发挥软硬件实现方案中的计 算资源提高系统计算能力,如何提供一种基于蒙哥马利模乘的并行模 乘方法。要求该方法在保证模乘正确性的情况下,通过优化模乘运算 步骤和方法提高算法的并行性,以满足日益增长的数据安全通信对密 码安全应用方案的速度需求。
(二)技术方案
为解决上述技术问题,本发明提供一种用于数据安全通信的并行 模乘方法,所述并行模乘方法将两个操作乘数输入A,B都拆分为 (w0,w2,……wr)多比特位的表示形式,进行逐字扫描运算;将乘法和 约减操作分布在同一内循环之内,模乘运算就被分解为r-bit×r-bit乘 法器能够实现的操作。
其中,所述并行模乘方法针对256位的大数模乘,其模乘运算被 分解为r-bit×r-bit乘法器能够实现的操作,其中r取值为64。
其中,所述并行模乘方法包括如下步骤:
步骤1:设置存放模乘结果的数R=0,将操作数A拆分为 (A0,A1,A2,A3),操作数B拆分为(B0,B1,B2,B3),模数N也拆分为 (N0,N1,N2,N3);
步骤2:拆分出四个无数据依赖的乘法,t0到t3分别存放计算结 果:t0=B0A0mod2r,t1=B1A0mod2r,t2=B2A0mod2r,t3=B3A0mod2r;
步骤3:对于计数值i从0到3执行以下步骤,Pi0到Pi3存放计算 结果:{Pi0=A0Bi,Pi1=A1Bi,Pi2=A2Bi,Pi3=A3Bi};
同样本步骤的四个乘法操作无数据依赖,可进行全部并行化运 行;
步骤4:对于计数值i从0到3执行以下步骤,si0到si3存放计算 结果:{si0=N0ti,si1=N1ti,si2=N2ti,si3=N3ti};
同样本步骤的四个乘法操作无数据依赖,可进行全部并行化运 行;
步骤5:计算临时计算结果变量的累加和:R=∑(pij+sij)2(i+j)r;
其中,i=0,1,2,3;j=0,1,2,3;
步骤6:如果R>N,则进行计算R=R-N;
步骤7:最后,得到模乘运算的结果:R。
其中,所述步骤2中,四个乘法可进行并行化运算,64位乘法 运算的并行能够将运算时间减少为之前1/4。
其中,所述方法通过将蒙哥马利模乘的操作数进行拆分重排,避 免了原模乘运算各步间的数据依赖。
其中,所述方法中,每步运算均可由4个64-bit乘法器并行执行, 运算的结果作为模乘的部分积在步骤5中统一进行压缩。
其中,该方法同时也兼顾了系统对256-bit大数乘法和大数加法 的运算需求,对于非取模运算同样能通过数据拆分并行执行。
其中,该基于蒙哥马利模乘的并行模乘方法,能够设计出具有较 高并行性的密码加解密应用产品加速器,满足加密系统运算单元对计 算速度和硬件资源的要求。
(三)有益效果
与现有技术相比较,本发明提出一种用于数据安全通信的并行模 乘方法,在保持有限域基本运算逻辑完整的情况下,相比于传统的蒙 哥马利算法,理论速度得到了很大的提升。随着密码安全的发展,越 来越需要并行的速度、更快的方法来实现有限域基本运算,本方案给 出的并行模乘方法可以充分发挥出软硬件密码应用平台的性能。这对 基于本方法构建的密码实现方案有极大的性能提升,尤其是在密码算 法需要硬件实现的场景下,越来越多的方案对速度有较高的要求,所 以如何利用好硬件实现平台,提高效率越来越重要的。而本方法将是 一个很好的选择,将会为密码安全软硬件实现发展提供更好的保障。
由此,为了提高数据安全通信运算中有限域下大整数模乘运算实 现速度,为了充分发挥软硬件实现方案中的计算资源提高系统计算能 力,本发明提供一种基于蒙哥马利模乘的并行模乘方法。该方法在保 证模乘正确性的情况下,通过优化模乘运算步骤和方法提高算法的并 行性,以满足日益增长的数据安全通信对密码安全应用方案的速度需 求。
具体实施方式
为使本发明的目的、内容、和优点更加清楚,下面结合实施例, 对本发明的具体实施方式作进一步详细描述。
加解密系统的速度由模乘技术的性能决定。因此,针对大数乘法 取模运算进一步优化蒙哥马利模乘方法并使其能够在有限的硬件资 源条件下运行就成了模乘方法优化的重要方向。蒙哥马利模乘已经衍 生出了许多改进的版本。这些方法大都是以原始蒙哥马利模乘为基 础,通过相应的优化策略而得出。
本方法提出的所述并行模乘方法将两个操作乘数输入A,B都拆 分为(w0,w2,……wr)多比特位的表示形式,进行逐字扫描运算;将乘 法和约减操作分布在同一内循环之内,模乘运算就被分解为r-bit× r-bit乘法器能够实现的操作。(本方法的方法为256位大数模乘,所 以r取值为64),具有明显的速度和面积上的优势。所述并行模乘方 法针对256位的大数模乘,其模乘运算被分解为r-bit×r-bit乘法器能 够实现的操作,其中r取值为64。
所述的用于数据安全通信的并行模乘方法,可通过软硬件技术实 现部署于数据安全通信系统中。
所述并行模乘方法包括如下步骤:
步骤1:设置存放模乘结果的数R=0,将操作数A拆分为 (A0,A1,A2,A3),操作数B拆分为(B0,B1,B2,B3),模数N也拆分为 (N0,N1,N2,N3);
步骤2:拆分出四个无数据依赖的乘法,t0到t3分别存放计算结 果:t0=B0A0mod2r,t1=B1A0mod2r,t2=B2A0mod2r,t3=B3A0mod2r,此 步骤中四个乘法可进行并行化运算,64位乘法运算的并行能够将运 算时间减少为之前1/4;
步骤3:对于计数值i从0到3执行以下步骤,Pi0到Pi3存放计算 结果:{Pi0=A0Bi,Pi1=A1Bi,Pi2=A2Bi,Pi3=A3Bi};
同样本步骤的四个乘法操作无数据依赖,可进行全部并行化运 行;
步骤4:对于计数值i从0到3执行以下步骤,si0到si3存放计算 结果:{si0=N0ti,si1=N1ti,si2=N2ti,si3=N3ti};
同样本步骤的四个乘法操作无数据依赖,可进行全部并行化运 行;
步骤5:计算临时计算结果变量的累加和:R=∑(pij+sij)2(i+j)r;
其中,i=0,1,2,3;j=0,1,2,3;
步骤6:如果R>N,则进行计算R=R-N;
步骤7:最后,得到模乘运算的结果:R。
所述方法通过将蒙哥马利模乘的操作数进行拆分重排,避免了原 模乘运算各步间的数据依赖。所述方法中,每步运算均可由4个64-bit 乘法器并行执行,运算的结果作为模乘的部分积在步骤5中统一进行 压缩。
该方法同时也兼顾了系统对256-bit大数乘法和大数加法的运算 需求,对于非取模运算同样能通过数据拆分并行执行。
该基于蒙哥马利模乘的并行模乘方法,能够设计出具有较高并行 性的密码加解密应用产品加速器,满足加密系统运算单元对计算速度 和硬件资源的要求。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领 域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以 做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
Claims (8)
1.一种用于数据安全通信的并行模乘方法,其特征在于,所述并行模乘方法将两个操作乘数输入A,B都拆分为(w0,w2,……wr)多比特位的表示形式,进行逐字扫描运算;将乘法和约减操作分布在同一内循环之内,模乘运算就被分解为r-bit×r-bit乘法器能够实现的操作。
2.如权利要求1所述的用于数据安全通信的并行模乘方法,其特征在于,所述并行模乘方法针对256位的大数模乘,其模乘运算被分解为r-bit×r-bit乘法器能够实现的操作,其中r取值为64。
3.如权利要求1所述的用于数据安全通信的并行模乘方法,其特征在于,所述并行模乘方法包括如下步骤:
步骤1:设置存放模乘结果的数R=0,将操作数A拆分为(A0,A1,A2,A3),操作数B拆分为(B0,B1,B2,B3),模数N也拆分为(N0,N1,N2,N3);
步骤2:拆分出四个无数据依赖的乘法,t0到t3分别存放计算结果:t0=B0A0 mod 2r,t1=B1A0 mod 2r,t2=B2A0 mod 2r,t3=B3A0 mod 2r;
步骤3:对于计数值i从0到3执行以下步骤,Pi0到Pi3存放计算结果:{Pi0=A0Bi,Pi1=A1Bi,Pi2=A2Bi,Pi3=A3Bi};
同样本步骤的四个乘法操作无数据依赖,可进行全部并行化运行;
步骤4:对于计数值i从0到3执行以下步骤,si0到si3存放计算结果:{si0=N0ti,si1=N1ti,si2=N2ti,si3=N3ti};
同样本步骤的四个乘法操作无数据依赖,可进行全部并行化运行;
步骤5:计算临时计算结果变量的累加和:R=∑(pij+sij)2(i+j)r;
其中,i=0,1,2,3;j=0,1,2,3;
步骤6:如果R>N,则进行计算R=R-N;
步骤7:最后,得到模乘运算的结果:R。
4.如权利要求1所述的用于数据安全通信的并行模乘方法,其特征在于,所述步骤2中,四个乘法可进行并行化运算,64位乘法运算的并行能够将运算时间减少为之前1/4。
5.如权利要求1所述的用于数据安全通信的并行模乘方法,其特征在于,所述方法通过将蒙哥马利模乘的操作数进行拆分重排,避免了原模乘运算各步间的数据依赖。
6.如权利要求1所述的用于数据安全通信的并行模乘方法,其特征在于,所述方法中,每步运算均可由4个64-bit乘法器并行执行,运算的结果作为模乘的部分积在步骤5中统一进行压缩。
7.如权利要求1所述的用于数据安全通信的并行模乘方法,其特征在于,该方法同时也兼顾了系统对256-bit大数乘法和大数加法的运算需求,对于非取模运算同样能通过数据拆分并行执行。
8.如权利要求1所述的用于数据安全通信的并行模乘方法,其特征在于,该基于蒙哥马利模乘的并行模乘方法,能够设计出具有较高并行性的密码加解密应用产品加速器,满足加密系统运算单元对计算速度和硬件资源的要求。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911005389.8A CN110865794A (zh) | 2019-10-22 | 2019-10-22 | 用于数据安全通信的并行模乘方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911005389.8A CN110865794A (zh) | 2019-10-22 | 2019-10-22 | 用于数据安全通信的并行模乘方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110865794A true CN110865794A (zh) | 2020-03-06 |
Family
ID=69652476
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911005389.8A Pending CN110865794A (zh) | 2019-10-22 | 2019-10-22 | 用于数据安全通信的并行模乘方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110865794A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112070222A (zh) * | 2020-11-10 | 2020-12-11 | 深圳致星科技有限公司 | 用于联邦学习的处理架构、加速器及方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102207847A (zh) * | 2011-05-06 | 2011-10-05 | 广州杰赛科技股份有限公司 | 基于蒙哥马利模乘运算的数据加解密处理方法及装置 |
CN105871552A (zh) * | 2016-06-14 | 2016-08-17 | 天津大学 | 双核并行rsa密码处理方法及协处理器 |
-
2019
- 2019-10-22 CN CN201911005389.8A patent/CN110865794A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102207847A (zh) * | 2011-05-06 | 2011-10-05 | 广州杰赛科技股份有限公司 | 基于蒙哥马利模乘运算的数据加解密处理方法及装置 |
CN105871552A (zh) * | 2016-06-14 | 2016-08-17 | 天津大学 | 双核并行rsa密码处理方法及协处理器 |
Non-Patent Citations (1)
Title |
---|
郝中源: ""双线性对密码算法研究及其FPGA实现",", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112070222A (zh) * | 2020-11-10 | 2020-12-11 | 深圳致星科技有限公司 | 用于联邦学习的处理架构、加速器及方法 |
CN112070222B (zh) * | 2020-11-10 | 2021-01-29 | 深圳致星科技有限公司 | 用于联邦学习的处理装置、加速器及方法 |
US11521129B2 (en) | 2020-11-10 | 2022-12-06 | Clustar Technology Co., Ltd. | Processing device, accelerator, and method for federated learning |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Bisheh-Niasar et al. | Cryptographic accelerators for digital signature based on Ed25519 | |
Zhang et al. | Pipezk: Accelerating zero-knowledge proof with a pipelined architecture | |
CN110351087B (zh) | 流水线型的蒙哥马利模乘运算方法 | |
Pornin et al. | More efficient algorithms for the NTRU key generation using the field norm | |
US20070198824A1 (en) | Cryptography system and elliptic curve operation method | |
US20100011047A1 (en) | Hardware-Based Cryptographic Accelerator | |
CN113628094A (zh) | 一种基于gpu的高吞吐量sm2数字签名计算系统及方法 | |
Bisheh Niasar et al. | Efficient hardware implementations for elliptic curve cryptography over Curve448 | |
US20220166614A1 (en) | System and method to optimize generation of coprime numbers in cryptographic applications | |
CN107992283B (zh) | 一种基于降维实现有限域乘法的方法和装置 | |
Tan et al. | High-speed modular multiplier for lattice-based cryptosystems | |
Bajard et al. | RNS arithmetic approach in lattice-based cryptography: Accelerating the" rounding-off" core procedure | |
CN102393812A (zh) | 椭圆曲线密码体制中的快速点乘算法的实现方法 | |
Hossain et al. | Efficient fpga implementation of modular arithmetic for elliptic curve cryptography | |
CN114895870A (zh) | 基于fpga实现的高效可重构sm2点乘方法及系统 | |
Awaludin et al. | A high-performance ecc processor over curve448 based on a novel variant of the karatsuba formula for asymmetric digit multiplier | |
CN110865794A (zh) | 用于数据安全通信的并行模乘方法 | |
De Oliveira et al. | High performance of hash-based signature schemes | |
US9025766B2 (en) | Efficient hardware architecture for a S1 S-box in a ZUC cipher | |
CN104572012A (zh) | 一种基于aop的多项式基gf(2227)高速模乘法器 | |
CN117155572A (zh) | 一种基于gpu并行实现密码技术中大整数乘法的方法 | |
Takaki et al. | An optimized implementation of aes-gcm for fpga acceleration using high-level synthesis | |
Martins et al. | Programmable RNS lattice-based parallel cryptographic decryption | |
Valencia et al. | The design space of the number theoretic transform: A survey | |
De Stefani | Communication-optimal parallel standard and karatsuba integer multiplication in the distributed memory model |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200306 |