CN104750455B - 一种基于蒙哥马利模乘的数据处理方法和装置 - Google Patents

一种基于蒙哥马利模乘的数据处理方法和装置 Download PDF

Info

Publication number
CN104750455B
CN104750455B CN201310754369.7A CN201310754369A CN104750455B CN 104750455 B CN104750455 B CN 104750455B CN 201310754369 A CN201310754369 A CN 201310754369A CN 104750455 B CN104750455 B CN 104750455B
Authority
CN
China
Prior art keywords
bit length
memory
modulus
value
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
CN201310754369.7A
Other languages
English (en)
Other versions
CN104750455A (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.)
Shanghai Fudan Microelectronics Group Co Ltd
Original Assignee
Shanghai Fudan Microelectronics Group Co Ltd
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 Shanghai Fudan Microelectronics Group Co Ltd filed Critical Shanghai Fudan Microelectronics Group Co Ltd
Priority to CN201310754369.7A priority Critical patent/CN104750455B/zh
Publication of CN104750455A publication Critical patent/CN104750455A/zh
Application granted granted Critical
Publication of CN104750455B publication Critical patent/CN104750455B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明提供了一种基于蒙哥马利模乘的数据处理方法和装置,其中,所述方法包括:分别获取第一存储器中的第一数A的位长a和第二存储器中的第二数B的位长b;根据所述位长a和b确定模数N,并将所述模数N写入第一运算寄存器,其中,N的位长n大于或等于a与b的和;调用蒙哥马利模乘器来执行第一存储器的值和第二存储器的值之间的模乘运算,所述模乘运算的模数为所述第一运算寄存器的值;将所述模乘运算的结果作为所述第一数A和第二数B的乘积输出。所述方法和装置能够提高加密处理的效率。

Description

一种基于蒙哥马利模乘的数据处理方法和装置
技术领域
本发明涉及数据加密的技术领域,特别涉及一种基于蒙哥马利模乘的数据处理方法和装置。
背景技术
在数据的加密处理过程中,往往会涉及两个长整数的乘积运算,在现有技术中,一般直接通过软件进行乘积运算,然而,由于长整数的位长较大,那么在计算两个位长较大的整数的乘积时将消耗较长的运算时间,这将直接影响加密处理的效率。
因此,需要提出一种新的基于蒙哥马利模乘的数据处理方法和装置,以提高加密处理的效率。
发明内容
本发明解决的问题是提出一种新的基于蒙哥马利模乘的数据处理方法和装置,以提高加密处理的效率。
本发明的实施例提供了一种基于蒙哥马利模乘的数据处理方法,所述方法包括:分别获取第一存储器中的第一数A的位长a和第二存储器中的第二数B的位长b;根据所述位长a和b确定模数N,并将所述模数N写入第一运算寄存器,其中,N的位长n大于或等于a与b的和;调用蒙哥马利模乘器来执行第一存储器的值和第二存储器的值之间的模乘运算,所述模乘运算的模数为所述第一运算寄存器的值;将所述模乘运算的结果作为所述第一数A和第二数B的乘积输出。
可选地,所述第一数A和第二数B分别为RSA加密算法中计算公钥的大素数P和Q。
可选地,所述第一数A和第二数B分别为RSA加密算法中计算欧拉函数的大素数P-1和Q-1。
本发明的实施例还提供了一种基于蒙哥马利模乘的数据处理装置,所述装置包括:位长获取器,用于分别获取第一存储器中的第一数A的位长a和第二存储器中的第二数B的位长b;处理器,用于根据所述位长a和b确定模数N,并将所述模数N写入第一运算寄存器,其中,N的位长n大于或等于a与b的和;蒙哥马利模乘器,用于执行第一存储器的值和第二存储器的值之间的模乘运算,所述模乘运算的模数为所述第一运算寄存器的值;输出单元,用于将所述模乘运算的结果作为所述第一数A和第二数B的乘积输出。
可选地,所述第一数A和第二数B分别为RSA加密算法中计算公钥的大素数P和Q。
可选地,所述第一数A和第二数B分别为RSA加密算法中计算欧拉函数的大素数P-1和Q-1。
与现有技术相比,本发明的实施例具有以下优点:在上述方案中,利用蒙哥马利模乘器执行第一数A和第二数B的模乘运算,以获取所述第一数A和第二数B的乘积,这避免直接通过软件进行乘积运算,减少了获取所述第一数A和第二数B的乘积的时间,从而提高了加密处理的效率。
附图说明
图1是本发明实施例中基于蒙哥马利模乘的数据处理方法的流程图;
图2是本发明实施例中基于蒙哥马利模乘的数据处理装置的结构示意图。
具体实施方式
为详细说明本发明的技术内容、构造特征、所实现目的及效果,下面结合附图对本发明的具体实施方式做详细的说明。在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其他不同于在此描述的其它方式来实施,因此本发明不受下面公开的具体实施例的限制。
图1是本发明实施例中基于蒙哥马利模乘的数据处理方法的流程图。如图1所示,所述方法包括步骤S101至S104。
步骤S101,分别获取第一存储器中的第一数A的位长a和第二存储器中的第二数B的位长b。
在本发明的一个实施例中,所述第一数A和第二数B可以分别为RSA加密算法中计算公钥的大素数P和Q。
在本发明的另一个实施例中,所述第一数A和第二数B也可以分别为RSA加密算法中计算欧拉函数的大素数P-1和Q-1。
步骤S102,根据所述位长a和b确定模数N,并将所述模数N写入第一运算寄存器。
在本发明的实施例中,模数N等于2n-1,所述模数N的位长n可以大于a与b的和,也可以等于a与b的和,例如N=2a+b-1。
需要说明的是,由于A小于或等于2a-1,B小于或等于2b-1,那么当所述模数N的位长n可以大于或等于a和b的和时,A和B的乘积将小于N。
步骤S103,调用蒙哥马利模乘器来执行第一存储器的值和第二存储器的值之间的模乘运算,所述模乘运算的模数为所述第一运算寄存器的值。
在本发明的实施例中,需要计算所述第一存储器的值和第二存储器的值之间的乘积,即所述第一数A和第二数B的乘积,那么可以调用蒙哥马利模乘器来计算A和B的乘积,具体地,所述蒙哥马利模乘运算的模数为所述第一运算寄存器的值,即所述模乘运算的模数为N。
如前所述,当所述模数N的位长n可以大于或等于a和b的和时,A和B的乘积将小于N,那么A和B的乘积对N取模的结果仍为A和B的乘积。
由此可见,调用蒙哥马利模乘器来执行第一存储器的值和第二存储器的值之间的模乘运算所获得的结果实际上就是A和B的乘积。但是,调用蒙哥马利模乘器来获取A和B的乘积相对于现有技术中直接通过软件相乘来获取A和B的乘积效率更高,计算时间更短。
需要说明的是,所述模乘运算的模参数W等于1。具体地,在本发明的实施例中,因为计算大数乘法时,模为全1,对应的N0(N0是模的最低32位)为0xFFFFFFFF,此时模参数W=(-N0-1mod232)=1。
后续可以通过步骤S104将所述模乘运算的结果输出。
具体地,步骤S104,将所述模乘运算的结果作为所述第一数A和第二数B的乘积输出。
本发明的实施例还提供了一种基于蒙哥马利模乘的数据处理装置,请参考图2,所述基于蒙哥马利模乘的数据处理装置200包括:位长获取器210,用于分别获取第一存储器中的第一数A的位长a和第二存储器中的第二数B的位长b;处理器220,用于根据所述位长a和b确定模数N,并将所述模数N写入第一运算寄存器,其中,N的位长n大于或等于a和b的和;蒙哥马利模乘器230,用于执行第一存储器的值和第二存储器的值之间的模乘运算,所述模乘运算的模数为所述第一运算寄存器的值;输出单元240,用于将所述模乘运算的结果作为所述第一数A和第二数B的乘积输出。
在本发明的一个实施例中,所述第一数A和第二数B可以分别为RSA加密算法中计算公钥的大素数P和Q。
在本发明的另一个实施例中,所述第一数A和第二数B也可以分别为RSA加密算法中计算欧拉函数的大素数P-1和Q-1。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。

Claims (6)

1.一种基于蒙哥马利模乘的数据处理方法,其特征在于,包括:
分别获取第一存储器中的第一数A的位长a和第二存储器中的第二数B的位长b;
根据所述位长a和b确定模数N,并将所述模数N写入第一运算寄存器,其中,N的位长n大于或等于a与b的和,模数N等于2n-1;
调用蒙哥马利模乘器来执行第一存储器的值和第二存储器的值之间的模乘运算,所述模乘运算的模数为所述第一运算寄存器的值;
将所述模乘运算的结果作为所述第一数A和第二数B的乘积输出。
2.如权利要求1所述的方法,其特征在于,所述第一数A和第二数B分别为RSA加密算法中计算公钥的大素数P和Q。
3.如权利要求1所述的方法,其特征在于,所述第一数A和第二数B分别为RSA加密算法中计算欧拉函数的大素数P-1和Q-1。
4.一种基于蒙哥马利模乘的数据处理装置,其特征在于,包括:
位长获取器,用于分别获取第一存储器中的第一数A的位长a和第二存储器中的第二数B的位长b;
处理器,用于根据所述位长a和b确定模数N,并将所述模数N写入第一运算寄存器,其中,N的位长n大于或等于a与b的和,模数N等于2n-1;
蒙哥马利模乘器,用于执行第一存储器的值和第二存储器的值之间的模乘运算,所述模乘运算的模数为所述第一运算寄存器的值;
输出单元,用于将所述模乘运算的结果作为所述第一数A和第二数B的乘积输出。
5.如权利要求4所述的装置,其特征在于,所述第一数A和第二数B分别为RSA加密算法中计算公钥的大素数P和Q。
6.如权利要求4所述的装置,其特征在于,所述第一数A和第二数B分别为RSA加密算法中计算欧拉函数的大素数P-1和Q-1。
CN201310754369.7A 2013-12-31 2013-12-31 一种基于蒙哥马利模乘的数据处理方法和装置 Active CN104750455B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310754369.7A CN104750455B (zh) 2013-12-31 2013-12-31 一种基于蒙哥马利模乘的数据处理方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310754369.7A CN104750455B (zh) 2013-12-31 2013-12-31 一种基于蒙哥马利模乘的数据处理方法和装置

Publications (2)

Publication Number Publication Date
CN104750455A CN104750455A (zh) 2015-07-01
CN104750455B true CN104750455B (zh) 2018-03-06

Family

ID=53590215

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310754369.7A Active CN104750455B (zh) 2013-12-31 2013-12-31 一种基于蒙哥马利模乘的数据处理方法和装置

Country Status (1)

Country Link
CN (1) CN104750455B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106681690B (zh) * 2015-11-07 2019-02-26 上海复旦微电子集团股份有限公司 基于蒙哥马利模乘的数据处理方法、模乘运算方法及装置
CN105871552A (zh) * 2016-06-14 2016-08-17 天津大学 双核并行rsa密码处理方法及协处理器
CN108242994B (zh) * 2016-12-26 2021-08-13 阿里巴巴集团控股有限公司 密钥的处理方法和装置
CN112230886B (zh) * 2020-09-11 2022-11-08 清华大学 免除Toom-Cook的处理装置和基于其的模乘获取方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102207847A (zh) * 2011-05-06 2011-10-05 广州杰赛科技股份有限公司 基于蒙哥马利模乘运算的数据加解密处理方法及装置
CN103176768A (zh) * 2013-03-27 2013-06-26 清华大学 计算经典模乘的模乘方法以及可扩展模乘器

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102207847A (zh) * 2011-05-06 2011-10-05 广州杰赛科技股份有限公司 基于蒙哥马利模乘运算的数据加解密处理方法及装置
CN103176768A (zh) * 2013-03-27 2013-06-26 清华大学 计算经典模乘的模乘方法以及可扩展模乘器

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
1024位RSA算法的 FPGA设计研究;葛峰等;《军事通信技术》;20090331;第30卷(第1期);第81-85页 *

Also Published As

Publication number Publication date
CN104750455A (zh) 2015-07-01

Similar Documents

Publication Publication Date Title
Amiet et al. Flexible FPGA-based architectures for curve point multiplication over GF (p)
CN104750455B (zh) 一种基于蒙哥马利模乘的数据处理方法和装置
JP4752313B2 (ja) 暗号処理演算方法、および暗号処理装置、並びにコンピュータ・プログラム
WO2015164996A1 (zh) 椭圆域曲线运算方法和椭圆域曲线运算器
Zhao et al. Ultra high-speed SM2 ASIC implementation
Roy et al. Tile before multiplication: An efficient strategy to optimize DSP multiplier for accelerating prime field ECC for NIST curves
JP2012185517A5 (zh)
CN109145616B (zh) 基于高效模乘的sm2加密、签名和密钥交换的实现方法及系统
JP5977996B2 (ja) サイドチャンネル攻撃に対する抵抗力のあるモジュラー累乗法及び装置
KR102132261B1 (ko) 비교 연산이 필요없이 최종 모듈러 감소를 하는 몽고메리 곱셈 방법 및 곱셈기
CN106681690A (zh) 基于蒙哥马利模乘的数据处理方法、模乘运算方法及装置
Roy et al. Post quantum ecc on fpga platform
Issad et al. Software/hardware co-design of modular exponentiation for efficient RSA cryptosystem
KR101929984B1 (ko) 모듈러 곱셈기 및 그것의 모듈러 곱셈 방법
TWI602119B (zh) 用於蒙哥馬利域的計算方法、計算裝置和電腦軟體產品
Gutub Preference of efficient architectures for GF (p) elliptic curve crypto operations using multiple parallel multipliers
Fournaris et al. Designing and evaluating high speed elliptic curve point multipliers
Howe et al. Compact and provably secure lattice-based signatures in hardware
Zimmermann et al. High-performance integer factoring with reconfigurable devices
Meurice de Dormale et al. Collision search for elliptic curve discrete logarithm over GF (2 m) with FPGA
Cho et al. Faster elliptic curve arithmetic for triple-base chain by reordering sequences of field operations
Verma et al. FPGA implementation of RSA based on carry save Montgomery modular multiplication
CN104750457B (zh) 一种基于模幂运算的数据处理方法和装置
TW201802666A (zh) 非模數乘法器、用於非模數乘法的方法及計算裝置
Alimi et al. On elliptic curve cryptography implementations and evaluation

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant