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

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

Info

Publication number
CN104750455A
CN104750455A CN201310754369.7A CN201310754369A CN104750455A CN 104750455 A CN104750455 A CN 104750455A CN 201310754369 A CN201310754369 A CN 201310754369A CN 104750455 A CN104750455 A CN 104750455A
Authority
CN
China
Prior art keywords
long
memory
modular multiplication
modulus
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.)
Granted
Application number
CN201310754369.7A
Other languages
English (en)
Other versions
CN104750455B (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 Co Ltd
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

Landscapes

  • Storage Device Security (AREA)

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的和;
调用蒙哥马利模乘器来执行第一存储器的值和第二存储器的值之间的模乘运算,所述模乘运算的模数为所述第一运算寄存器的值;
将所述模乘运算的结果作为所述第一数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的和;
蒙哥马利模乘器,用于执行第一存储器的值和第二存储器的值之间的模乘运算,所述模乘运算的模数为所述第一运算寄存器的值;
输出单元,用于将所述模乘运算的结果作为所述第一数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 true CN104750455A (zh) 2015-07-01
CN104750455B 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)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105871552A (zh) * 2016-06-14 2016-08-17 天津大学 双核并行rsa密码处理方法及协处理器
CN106681690A (zh) * 2015-11-07 2017-05-17 上海复旦微电子集团股份有限公司 基于蒙哥马利模乘的数据处理方法、模乘运算方法及装置
CN108242994A (zh) * 2016-12-26 2018-07-03 阿里巴巴集团控股有限公司 密钥的处理方法和装置
CN112230886A (zh) * 2020-09-11 2021-01-15 清华大学 免除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设计研究", 《军事通信技术》 *

Cited By (6)

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

Also Published As

Publication number Publication date
CN104750455B (zh) 2018-03-06

Similar Documents

Publication Publication Date Title
Sasdrich et al. Efficient elliptic-curve cryptography using Curve25519 on reconfigurable devices
Kumar et al. Are standards compliant elliptic curve cryptosystems feasible on RFID
JP4752313B2 (ja) 暗号処理演算方法、および暗号処理装置、並びにコンピュータ・プログラム
WO2015164996A1 (zh) 椭圆域曲线运算方法和椭圆域曲线运算器
Kudithi An efficient hardware implementation of the elliptic curve cryptographic processor over prime field
TW202040354A (zh) 計算機資料處理方法及裝置
Zhao et al. Ultra high-speed SM2 ASIC implementation
KR102132261B1 (ko) 비교 연산이 필요없이 최종 모듈러 감소를 하는 몽고메리 곱셈 방법 및 곱셈기
CN106681690B (zh) 基于蒙哥马利模乘的数据处理方法、模乘运算方法及装置
CN104750455A (zh) 一种基于蒙哥马利模乘的数据处理方法和装置
CN102571342B (zh) 一种rsa算法数字签名方法
CN104065478A (zh) 基于格密码体系的多项式模乘协处理器
CN115936133A (zh) 利用重新定义的多项式运算的组合后量子安全
WO2017012351A1 (zh) 一种并行计算的方法及终端
CN106681691B (zh) 基于蒙哥马利模乘的数据处理方法、模乘运算方法和装置
CN109144472B (zh) 一种二元扩域椭圆曲线的标量乘法及其实现电路
US11502836B2 (en) Method for performing cryptographic operations on data in a processing device, corresponding processing device and computer program product
CN103888246A (zh) 低功耗小面积的数据处理方法及其数据处理装置
CN104506316A (zh) 一种基于sm2基点的点乘运算方法
CN106371803B (zh) 用于蒙哥马利域的计算方法和计算装置
Roy et al. A parallel architecture for Koblitz curve scalar multiplications on FPGA platforms
CN111786775A (zh) 基于基转换的sm4算法s盒的实现方法及系统
US8626811B2 (en) Method and apparatus for providing flexible bit-length moduli on a block Montgomery machine
KR101418686B1 (ko) 유한체에서 타입 4 가우시안 정규기저를 이용한 이차 미만의 공간 복잡도를 갖는 병렬 곱셈 연산방법 및 그 연산장치
Baktır et al. A state-of-the-art elliptic curve cryptographic processor operating in the frequency domain

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