CN108241481B - 一种适用于rsa算法的部分求余乘法器设备 - Google Patents

一种适用于rsa算法的部分求余乘法器设备 Download PDF

Info

Publication number
CN108241481B
CN108241481B CN201611217714.3A CN201611217714A CN108241481B CN 108241481 B CN108241481 B CN 108241481B CN 201611217714 A CN201611217714 A CN 201611217714A CN 108241481 B CN108241481 B CN 108241481B
Authority
CN
China
Prior art keywords
bits
data
multiplier
bit
modulo
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
CN201611217714.3A
Other languages
English (en)
Other versions
CN108241481A (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.)
Aisino Corp
Original Assignee
Aisino Corp
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 Aisino Corp filed Critical Aisino Corp
Priority to CN201611217714.3A priority Critical patent/CN108241481B/zh
Publication of CN108241481A publication Critical patent/CN108241481A/zh
Application granted granted Critical
Publication of CN108241481B publication Critical patent/CN108241481B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/727Modulo N arithmetic, with N being either (2**n)-1,2**n or (2**n)+1, e.g. mod 3, mod 4 or mod 5
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/302Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Complex Calculations (AREA)
  • Error Detection And Correction (AREA)

Abstract

本发明公开了一种适用于RSA算法的部分求余乘法器设备,所述乘法器设备包括:乘法器,用于为乘数和被乘数进行乘法计算;模N寄存器,用于存储模N数据,并且将所述模N数据传递给累加器;累加器,对模N数据进行累加,将溢出的比特位作为随机存储器的数据总线;随机存储器,用于存储k阶模N数据,将溢出的比特位和累加器的比特位作为随机存储器的数据线的高2054位并且低6位补零;以及加法器,用于对乘法器输出的乘积、随机存储器输出的2054位数据以及所述随机存储器输出的2054位数据左移6位所获得的2048位数据进行加法运算,以及输出部分余数。本发明由于提高了求余功能的乘法器的执行效率而提高RSA算法的效率。

Description

一种适用于RSA算法的部分求余乘法器设备
技术领域
本发明涉及数学运算电路领域,更具体地,涉及一种适用于RSA算法的部分求余乘法器设备。
背景技术
随着计算机运算速度的迅速提高和Internet分布式计算能力的日益强大,经典的RSA公钥密码体制在密钥长度为1024bit下已经越来越不安全。目前为了保证用户的安全,增加RSA密钥长度是必然趋势。但是随着密钥长度从1024bit向2048bit,甚至4096bit方向发展的过程中,安全系统能增加其固有的安全性,但是加密/解密效率会越来越低,同时对计算机系统的要求也会提高。为此我们需要研制具有更高执行效率的RSA硬件系统来提高加解密系统的效率。
因此,需要一种技术,以提高RSA加密/解密算法的效率。
发明内容
本发明提供了一种适用于RSA算法的部分求余乘法器设备,以解决高于1024比特位密钥长度RSA加密/解密算法的效率低的问题。
为了解决上述问题,本发明提供了一种适用于RSA算法的部分求余乘法器设备,所述乘法器设备包括:
乘法器,用于为乘数和被乘数进行乘法计算;
模N寄存器,用于存储模N数据,并且将所述模N数据传递给累加器;
累加器,对模N数据进行累加,将溢出的比特位作为随机存储器的数据总线;
随机存储器,用于存储k阶模N数据,将溢出的比特位和累加器的比特位作为随机存储器的数据线的高2054位并且低6位补零;以及
加法器,用于对乘法器输出的乘积、随机存储器输出的2054位数据以及所述随机存储器输出的2054位数据左移6位所获得的2048位数据进行加法运算,以及输出部分余数。
优选地,所述随机存储器的地址线为所述加法器溢出位的前7比特。
优选地,所述加法器每个时钟周期进行一次2060比特位的加法和一次2060比特位的减法。
优选地,所述乘法器每个时钟周期进行一次2048比特位与6比特位数据的完全乘法,并求部分余数。
优选地,所述加法器比特位为2055,其最高7位为所述乘法器高6位加64位。
本发明的有益效果:
本发明是将部分余数引入到RSA加密/解密算法中。在RSA加密/解密算法中,具有求余功能的乘法器是硬件算法设计的关键。由于部分余数在加解密算法中的作用等价于余数,而部分余数乘法器在硬件实现上可最大限度的简化乘积求模,因此提高RSA算法的效率。利用本发明的方案可以最大限度的简化设备的硬件设计,降低功耗,提高设备运算速度和设备稳定性。
附图说明
通过参考下面的附图,可以更为完整地理解本发明的示例性实施方式:
图1为根据本发明实施方式的一种适用于RSA算法的部分求余乘法器结构图。
具体实施方式
现在参考附图介绍本发明的示例性实施方式,然而,本发明可以用许多不同的形式来实施,并且不局限于此处描述的实施例,提供这些实施例是为了详尽地且完全地公开本发明,并且向所属技术领域的技术人员充分传达本发明的范围。对于表示在附图中的示例性实施方式中的术语并不是对本发明的限定。在附图中,相同的单元/元件使用相同的附图标记。
除非另有说明,此处使用的术语(包括科技术语)对所属技术领域的技术人员具有通常的理解含义。另外,可以理解的是,以通常使用的词典限定的术语,应当被理解为与其相关领域的语境具有一致的含义,而不应该被理解为理想化的或过于正式的意义。
图1为根据本发明实施方式的一种适用于RSA算法的部分求余乘法器设备结构图。本发明的实施方式一种适用于RSA算法的部分求余乘法器设备是将部分余数引入到RSA加密/解密算法中。在RSA加密/解密算法中,具有求余功能的乘法器是硬件算法设计的关键。由于部分余数在加解密算法中的作用等价于余数,而部分余数乘法器在硬件实现上可最大限度的简化乘积求模。利用本发明的方案可以最大限度的简化设备的硬件设计,降低功耗,提高设备运算速度和设备稳定性。如图1所示,设备100包括:乘法器101,模N寄存器102,累加器103,随机存储器104,加法器105。其中,乘法器101,用于为乘数和被乘数进行乘法计算,其中被乘数为2048比特,乘数为6比特。乘法器101每个时钟周期进行一次2048比特位与6比特位数据的完全乘法,并求部分余数。模N寄存器102,用于存储模N数据,并且将所述模N数据传递给累加器。累加器103,对模N数据进行累加,将溢出的比特位作为随机存储器的数据总线。累加器自动开始累加数据,累加器的溢出比特位作为RAM模块的数据总线,溢出比特位和累加器比特位作为随机存储器104数据线的高2054位。随机存储器104,用于存储k阶模N数据,将溢出的比特位和累加器的比特位作为随机存储器的数据线的高2054位并且低6位补零。随机存储器104内存储的数据为k阶模N数据,将溢出的比特位和累加器的比特位作为随机存储器的数据线的高2054位并且低6位补零,对数据进行存储。加法器105,用于对乘法器输出的乘积、随机存储器104输出的2054位数据以及所述随机存储器输出的2054位数据左移6位所获得的2048位数据进行加法运算,以及输出部分余数。加法器为2060比特位,随机存储器104的地址线为加法器105溢出位的前7比特。本发明的实施方式中,加法器每个时钟周期进行一次2060比特位的加法和一次2060比特位的减法。加法器比特位为2060,其最高7位为所述乘法器高6位加64位。
由于余数是指整数除法中被除数未被除尽部分,且余数的取值范围为0到除数之间(不包括除数)的整数。部分余数是指整数除法中的余数和K个除数的和,即没有计算完整的余数。
部分余数在RSA算法中和余数是等价的。现论证如下:
设datam(m为0…n)为各次运算的余数,则kN+datam为各次运算的部分余数,其中N为模值。
将部分余数带入公式可得:
Figure BDA0001192081770000041
由此可知,利用带部分余数乘法器可实现RSA算法,其结果与利用余数实现RSA算法等价。而部分余数乘法器可利用本发明实施方式的一种适用于RSA算法的部分求余乘法器设备快速实现。
本发明实施方式是通过构建正确的随机存储器104。并且通过论证可知,经过带部分余数乘法器101,其最大值比模值N高1比特。因此在数据迭代时,6比特乘数的乘法器101要有7比特的随机存储器104查询地址,即随机存储器104空间为128×2060。同时为了最大效率的执行该随机存储器104,随机存储器104内存中存储的数据是2054比特(与2048位RSA加密算法相对应)左移6位,低6位补零后的2060比特数据。本发明的实施方式经过上述处理后,一个时钟周期就可完成一次2048比特与6比特数据的完全乘法并求部分余数。加法器105的位数为2060比特,其最高7位为乘法器高6位加64,即运算结果的高7位,不会超过127,随机存储器104的地址空间最大值为127,满足设计要求。
通过本发明实施方式的一种适用于RSA算法的部分求余乘法器设备一个时钟周期可实现6×2048比特的乘-累加-求部分余数操作。完成一次2048×2048运算,需342个时钟周期。2048位RSA加密算法,最多需要683次2048×2048运算,共需233586个时钟周期。对于100M主时钟系统来说约需2.4ms,一秒可实现416次加密/解密运算。通过公用多个模块,可极大的提高RSA算法的执行效率。
已经通过参考少量实施方式描述了本发明。然而,本领域技术人员所公知的,正如附带的专利权利要求所限定的,除了本发明以上公开的其他的实施例等同地落在本发明的范围内。
通常地,在权利要求中使用的所有术语都根据他们在技术领域的通常含义被解释,除非在其中被另外明确地定义。所有的参考“一个/所述/该[装置、组件等]”都被开放地解释为所述装置、组件等中的至少一个实例,除非另外明确地说明。这里公开的任何方法的步骤都没必要以公开的准确的顺序运行,除非明确地说明。

Claims (5)

1.一种适用于RSA算法的部分求余乘法器设备,所述乘法器设备包括:
乘法器,用于为乘数和被乘数进行乘法计算;
模N寄存器,用于存储模N数据,并且将所述模N数据传递给累加器;
累加器,对模N数据进行累加,将溢出的比特位作为随机存储器的数据总线;
随机存储器,用于存储k阶模N数据,将溢出的比特位和累加器的比特位作为随机存储器的数据线的高2054位并且低6位补零;以及
加法器,用于对乘法器输出的乘积、随机存储器输出的2054位数据以及所述随机存储器输出的2054位数据左移6位所获得的2048位数据进行加法运算,以及输出部分余数。
2.根据权利要求1所述的设备,所述随机存储器的地址线为所述加法器溢出位的前7比特。
3.根据权利要求1所述的设备,所述加法器每个时钟周期进行一次2060比特位的加法和一次2060比特位的减法。
4.根据权利要求1所述的设备,所述乘法器每个时钟周期进行一次2048比特位与6比特位数据的完全乘法,并求部分余数。
5.根据权利要求1所述的设备,所述加法器比特位为2055,其最高7位的数值为所述乘法器高6位加64。
CN201611217714.3A 2016-12-26 2016-12-26 一种适用于rsa算法的部分求余乘法器设备 Active CN108241481B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611217714.3A CN108241481B (zh) 2016-12-26 2016-12-26 一种适用于rsa算法的部分求余乘法器设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611217714.3A CN108241481B (zh) 2016-12-26 2016-12-26 一种适用于rsa算法的部分求余乘法器设备

Publications (2)

Publication Number Publication Date
CN108241481A CN108241481A (zh) 2018-07-03
CN108241481B true CN108241481B (zh) 2022-08-23

Family

ID=62703754

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611217714.3A Active CN108241481B (zh) 2016-12-26 2016-12-26 一种适用于rsa算法的部分求余乘法器设备

Country Status (1)

Country Link
CN (1) CN108241481B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5144574A (en) * 1989-01-30 1992-09-01 Nippon Telegraph And Telephone Corporation Modular multiplication method and the system for processing data
CN1702613A (zh) * 2004-03-02 2005-11-30 三星电子株式会社 蒙哥马利模乘法器
CN1731345A (zh) * 2005-08-18 2006-02-08 上海微科集成电路有限公司 可扩展高基蒙哥马利模乘算法及其电路结构
CN103294448A (zh) * 2013-05-28 2013-09-11 福建升腾资讯有限公司 一种实现rsa密码体制的大数求模方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8898215B2 (en) * 2007-06-28 2014-11-25 King Fahd University Of Petroleum And Minerals High-radix multiplier-divider

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5144574A (en) * 1989-01-30 1992-09-01 Nippon Telegraph And Telephone Corporation Modular multiplication method and the system for processing data
CN1702613A (zh) * 2004-03-02 2005-11-30 三星电子株式会社 蒙哥马利模乘法器
CN1731345A (zh) * 2005-08-18 2006-02-08 上海微科集成电路有限公司 可扩展高基蒙哥马利模乘算法及其电路结构
CN103294448A (zh) * 2013-05-28 2013-09-11 福建升腾资讯有限公司 一种实现rsa密码体制的大数求模方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
RSA算法研究及速度改进;赵黎黎;《中国优秀硕士学位论文全文数据库-信息科技辑》;20070531;第2007年卷(第5期);第I136-367页 *
基于余数系统的RSA加密运算电路的设计;李成冬;《中国优秀硕士学位论文全文数据库-信息科技辑》;20151215;第2015年卷(第12期);第I136-140页 *

Also Published As

Publication number Publication date
CN108241481A (zh) 2018-07-03

Similar Documents

Publication Publication Date Title
US8392494B2 (en) Method and apparatus for performing efficient side-channel attack resistant reduction using montgomery or barrett reduction
CN103226461B (zh) 一种用于电路的蒙哥马利模乘方法及其电路
WO2007012179A2 (en) Karatsuba based multiplier and method
CN103793199B (zh) 一种支持双域的快速rsa密码协处理器
Asif et al. High‐throughput multi‐key elliptic curve cryptosystem based on residue number system
CN108108614A (zh) 安全处理器以及安全处理器的操作方法
KR102581403B1 (ko) 공유 하드웨어 로직 유닛 및 그것의 다이 면적을 줄이는 방법
KR101925868B1 (ko) 모듈러 계산 유닛 및 그것을 포함하는 보안 시스템
Hossain et al. Efficient fpga implementation of modular arithmetic for elliptic curve cryptography
Li et al. A Novel and High-Performance Modular Square Scheme for Elliptic Curve Cryptography Over GF (${p} $)
CN108241481B (zh) 一种适用于rsa算法的部分求余乘法器设备
Wang et al. Area-efficient and ultra-low-power architecture of RSA processor for RFID
Will et al. Computing mod without mod
US10659224B2 (en) Apparatus and method for performing operation being secure against side channel attack
Ravi et al. Low power and efficient dadda multiplier
WO2019117758A1 (ru) Способ и устройство для вычисления хэш-функции
KR102241252B1 (ko) 모듈러 연산 방법, 장치 및 시스템
CN114594925A (zh) 适用于sm2加密运算的高效模乘电路及其运算方法
Ambrose et al. DARNS: A randomized multi-modulo RNS architecture for double-and-add in ECC to prevent power analysis side channel attacks
US8868634B2 (en) Method and apparatus for performing multiplication in a processor
Addabbo et al. Efficient implementation of pseudochaotic piecewise linear maps with high digitization accuracies
Wang et al. A word-based RSA crypto-processor with enhanced pipeline performance
KR102348797B1 (ko) Rsa 암호화 시스템의 rsa 회로 모듈
US9900154B2 (en) Optimized hardward architecture and method for ECC point addition using mixed affine-jacobian coordinates over short weierstrass curves
US20240168713A1 (en) Processing circuit

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