CN112486457B - 一种实现改进的fios模乘算法的硬件系统 - Google Patents

一种实现改进的fios模乘算法的硬件系统 Download PDF

Info

Publication number
CN112486457B
CN112486457B CN202011319638.3A CN202011319638A CN112486457B CN 112486457 B CN112486457 B CN 112486457B CN 202011319638 A CN202011319638 A CN 202011319638A CN 112486457 B CN112486457 B CN 112486457B
Authority
CN
China
Prior art keywords
module
modular multiplication
multiplier
algorithm
calculation
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
CN202011319638.3A
Other languages
English (en)
Other versions
CN112486457A (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.)
Hangzhou Dianzi University
Original Assignee
Hangzhou Dianzi University
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 Hangzhou Dianzi University filed Critical Hangzhou Dianzi University
Priority to CN202011319638.3A priority Critical patent/CN112486457B/zh
Publication of CN112486457A publication Critical patent/CN112486457A/zh
Application granted granted Critical
Publication of CN112486457B publication Critical patent/CN112486457B/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/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/722Modular 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

本发明公开了一种实现改进的FIOS模乘算法的硬件系统。本发明采用硬件实现模乘电路,通过寄存器复用,减少逻辑资源消耗;重新排布流水线和整个算法时序,将关键路径的加法操作拆解为多级流水的加法树操作,使得运行速率最高达到600MHz;通过并行化处理无依赖的操作,提高单个时钟周期内的操作个数;使用基128的乘法器作为基本计算单元,完成4096位的模乘只需要3463个周期,耗时约5.75us,显著的减少计算过程中的循环次数,减少运算所需时钟数,提高单位时间内的计算吞吐率。本发明对部分积生成电路进行改进,进一步减少了逻辑门的使用。本发明通过改进降低了蒙哥马利模乘算法中的代码长度,提高了模乘过程的运行效率。

Description

一种实现改进的FIOS模乘算法的硬件系统
技术领域
本发明涉及数据加解密领域,具体设计一种实现改进的FIOS模乘算法的硬件系统。
背景技术
随着互联网技术的飞速发展,信息物联已经渗透到社会生活的方方面面,而信息安全技术的发展却相对滞后,大数据时代给人们带来便利的同时,也带来了许多的安全问题,如何保障网络信息安全成为了人们研究的热点问题。
保障网络信息安全的关键技术之一就是加解密技术,目前,广泛使用的加密形式有两种:传统加密和公钥加密。1978年期间,R.Rivest、A.Shamir及L.Adleman提出了RSA算法,RSA公钥加密算法也是目前理论上最成熟完善和应用最广泛的加解密算法机制。大整数因子分解的困难性决定了RSA加密的安全性,因此模乘运算是RSA算法中最核心的运算。
RSA加解密算法,主要有软件实现和硬件实现两种方式。与传统的软件实现加密相比,硬件实现的方式可以使加密更加稳定,速度更快且兼容性更好,安全性更高。而提高模乘运算速度是改善RSA性能的关键,目前运用最多的算法是蒙哥马利算法。在蒙哥马利算法中,由于运算数据和中间结果的位数很大,需要消耗很多硬件资源,运行效率也会降低。
发明内容
针对现有技术的不足,本发明提出了一种实现改进的FIOS模乘算法的硬件系统,通过复用寄存器和重新排布流水线等方式,减少硬件资源消耗的同时,有效减少计算过程中的循环次数,减少运算所需时钟数,达到提高单位时间内计算吞吐率即提高RSA加密算法速度的目的。
一种实现改进的FIOS模乘算法的硬件系统,包括存储模块、模乘算法模块、booth乘法器模块以及模乘参数n’[0]选取模块。
所述存储模块包括RAM1与RAM2两个存储器,其中RAM1用于存储输入的被乘数A、乘数B和模数N,RAM2用于存储输出结果。
作为优选,RAM1的大小为96*128bit,RAM2的大小为40*128bit。
所述模乘算法模块在现有的蒙哥马利模乘器的基础上增加了一组寄存器,实现预计算环节与进位计算环节的并行计算,然后再计算迭代环节。模乘算法模块用于将4096bit的被乘数A、乘数B和模数N分为等长的若干字段,完成A*BmodN的模乘计算,输出保持在0~2N之间。
所述booth乘法器模块包括部分积产生模块、部分积压缩模块及向量相加模块。将现有的乘法器部分积产生模块的后续电路替换为多路选择器。部分积压缩模块将输入向量压缩至两行,采用CSA压缩器完成十级压缩,并在最后一级电路前插入了一级寄存器,优化时序。向量相加模块通过超前进位加法器将部分积压缩模块输出的两行向量进行相加。完成模乘计算过程中的乘法操作。
所述模乘参数n’[0]选取模块包括一个输入口、一个输出口、一个循环移位模块、两个D触发器、一个加法器和一个二选一选择器。所述循环移位模块的输入与模乘参数n’[0]选取模块的输入口相连,输出端与第一D触发器的D端相连;所述加法器的一个输入端与第一D触发器的Q端相连,另一个输入端输入乘数B,加法器的输出端与第二D触发器的D端相连。第二D触发器的Q端通过二选一选择器与模乘参数n’[0]选取模块的输出口相连,输出被乘数A。
基于上述硬件系统的模乘计算过程为:系统从输入读取4096bit的被乘数A、乘数B和模数N,并将其存储在RAM1中。模乘参数n’[0]选取模块读取RAM1中存储的模数N,预计算得到模数N的低128位n'[0]。模乘算法模块读取RAM1中存储的被乘数A与乘数B以及模乘参数n’[0]选取模块计算得到的n'[0],通过调用booth乘法器完成乘法操作,将最后得到的结果存储到RAM2中,完成整个模乘运算过程。
本发明具有以下有益效果:
1、通过在原有的蒙哥马利模乘器的基础上增加一组寄存器以及寄存器复用,重新排布流水线与算法时序,实现预计算环节与进位计算环节的并行计算,降低了代码长度,以及硬件资源的消耗,减少了s2-s次的字加、2s2-s次的读和2s2-s次的写,使模乘器的最大运行速率可以达到600MHz。
2、改进了booth乘法器,在关键路径插入一级寄存器,减少逻辑门的使用,提高了乘法器的计算位宽与计算速度,同时降低了硬件面积消耗,减少了模乘计算过程中的循环次数,从而减少运算周期。
3、模乘算法模块通过调用booth乘法器完成乘法部分的计算,提高了单位时间内的处理量级,实现4096位的模乘只需要3463个周期,耗时约5.75us,提高了单位时间内的处理量级。
附图说明
图1为本发明的原理框图;
图2为本发明改进后的模乘计算过程;
图3为本发明模乘计算过程的数据转移图;
图4为本发明部分积编解码方案的电路逻辑;
图5为本发明部分积编解码方案的优化电路逻辑;
图6为本发明部分积压缩过程;
图7为本发明模乘参数n’[0]选取模块的电路图。
具体实施方式
以下结合附图对本发明作进一步的解释说明;
如图1所示,一种实现改进的FIOS模乘算法的硬件系统,包括存储模块、模乘算法模块、booth乘法器模块以及模乘参数n’[0]选取模块。
所述存储模块包括96*128bit的RAM1与40*128bit的RAM2两个存储器,其中RAM1用于存储输入的被乘数A、乘数B和模数N,RAM2用于存储输出结果。
现有技术中的蒙哥马利模乘算法为:
Figure BDA0002792460240000031
所述模乘算法模块,增加了一组寄存器,通过并行化处理预计算环节1与进位计算环节3,压缩了流水线级数,将原算法的关键路径在一个循环中进行三个数连接的地方,拆解为两步完成连接计算。模乘算法模块的数据转移如图3所示,算法为:
Figure BDA0002792460240000041
所述booth乘法器,包括部分积产生模块、部分积压缩模块及向量相加模块。将现有的乘法器部分积产生模块的后续电路替换为多路选择器,根据编码逻辑关系与部分积生成表达式,可以得到图4所示的编解码方案电路逻辑图,部分积产生模块的电路逻辑图如图5所示。部分积压缩模块将输入部分积产生模块产生的向量通作为Wallace树形结构的输入,经过CSA压缩器进行十级压缩,压缩至两项。在部分积压缩模块的最后一级电路前插入了一级寄存器,保证电路的保持时间,使电路可以达到更高的时钟频率。将压缩得到的两行向量输入到向量相加模块,通过超前进位加法器将部分积压缩模块输出的两行向量进行相加,得到最终的乘法运算结果。
所述模乘参数n’[0]选取模块包括一个输入口、一个输出口、一个循环移位模块、两个D触发器、一个加法器和一个二选一选择器,电路结构如图7所示,输入模数N的低128位n,n的位宽与booth乘法器的位宽相关;通过循环移位模块对n进行左循环移位处理,经过第一个D触发器后与乘数B通过加法器相加,通过第二个D触发器暂存输出进行B+n[0]的计算,最终通过二选一选择器输出被乘数A,经过八次循环输出后得到一个完整字节,即完成n’[0]的计算,n’[0]的算法为:
Figure BDA0002792460240000042
Figure BDA0002792460240000051
系统从输入读取4096bit的被乘数A、乘数B和模数N,并将其存储在RAM1中。模乘参数n’[0]选取模块读取RAM1中存储的模数N,预计算得到模数N的低128位n'[0]。模乘算法模块读取RAM1中存储的被乘数A与乘数B以及模乘参数n’[0]选取模块计算得到的n'[0],通过调用booth乘法器完成乘法操作,将最后得到的结果存储到RAM2中,完成整个模乘运算过程。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员,在不脱离本发明构思的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明保护范围内。

Claims (2)

1.一种实现改进的FIOS模乘算法的硬件系统,其特征在于:包括存储模块、模乘算法模块、booth乘法器模块以及模乘参数n’[0]选取模块;
所述存储模块包括RAM1与RAM2两个存储器,其中RAM1用于存储输入的被乘数A、乘数B和模数N,RAM2用于存储输出结果;
所述模乘算法模块增加了一组寄存器,通过并行化处理预计算环节1与进位计算环节3,压缩了流水线级数,将蒙哥马利模乘的关键路径在一个循环中进行三个数连接的地方,拆解为两步完成连接计算;模乘算法模块用于将4096bit的被乘数A、乘数B和模数N分为等长的若干字段,完成A*BmodN的模乘计算;
所述booth乘法器模块包括部分积产生模块、部分积压缩模块及向量相加模块;将现有的乘法器部分积产生模块的后续电路替换为多路选择器;部分积压缩模块采用CSA压缩器完成十级压缩,并在最后一级电路前插入了一级寄存器,实现将输入向量压缩至两行;向量相加模块通过超前进位加法器将部分积压缩模块输出的两行向量进行相加;完成模乘计算过程中的乘法操作;
所述模乘参数n’[0]选取模块包括一个输入口、一个输出口、一个循环移位模块、两个D触发器、一个加法器和一个二选一选择器;所述循环移位模块的输入与模乘参数n’[0]选取模块的输入口相连,输出端与第一D触发器的D端相连;所述加法器的一个输入端与第一D触发器的Q端相连,另一个输入端输入乘数B,加法器的输出端与第二D触发器的D端相连;第二D触发器的Q端通过二选一选择器与模乘参数n’[0]选取模块的输出口相连,输出被乘数A;
系统从输入读取4096bit的被乘数A、乘数B和模数N,并将其存储在RAM1中;模乘参数n’[0]选取模块读取RAM1中存储的模数N,预计算得到模数N的低128位n'[0];模乘算法模块读取RAM1中存储的被乘数A与乘数B以及模乘参数n’[0]选取模块计算得到的n'[0],通过调用booth乘法器完成乘法操作,将最后得到的结果存储到RAM2中,完成整个模乘运算过程。
2.如权利要求1所述一种实现改进的FIOS模乘算法的硬件系统,其特征在于:所述RAM1的大小为96*128bit,所述RAM2的大小为40*128bit。
CN202011319638.3A 2020-11-23 2020-11-23 一种实现改进的fios模乘算法的硬件系统 Active CN112486457B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011319638.3A CN112486457B (zh) 2020-11-23 2020-11-23 一种实现改进的fios模乘算法的硬件系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011319638.3A CN112486457B (zh) 2020-11-23 2020-11-23 一种实现改进的fios模乘算法的硬件系统

Publications (2)

Publication Number Publication Date
CN112486457A CN112486457A (zh) 2021-03-12
CN112486457B true CN112486457B (zh) 2022-12-20

Family

ID=74932876

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011319638.3A Active CN112486457B (zh) 2020-11-23 2020-11-23 一种实现改进的fios模乘算法的硬件系统

Country Status (1)

Country Link
CN (1) CN112486457B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113361687B (zh) * 2021-05-31 2023-03-24 天津大学 适用于卷积神经网络训练加速器的可配置加法树
CN115202616A (zh) * 2022-06-24 2022-10-18 上海途擎微电子有限公司 模乘器、安全芯片、电子设备及加密方法
CN118211277B (zh) * 2024-05-22 2024-08-09 山东航天人工智能安全芯片研究院 一种非对称加解密协处理器的设计电路及设计方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020172355A1 (en) * 2001-04-04 2002-11-21 Chih-Chung Lu High-performance booth-encoded montgomery module
KR100458031B1 (ko) * 2003-03-14 2004-11-26 삼성전자주식회사 몽고메리 유형의 모듈라 곱셈 장치 및 방법
JP2004326112A (ja) * 2003-04-25 2004-11-18 Samsung Electronics Co Ltd マルチプルモジュラス選択器、累算器、モンゴメリー掛け算器、マルチプルモジュラス発生方法、部分掛け発生方法、累算方法、掛け算方法、モジュラス選択器、およびブースレコーダ
JP4180024B2 (ja) * 2004-07-09 2008-11-12 Necエレクトロニクス株式会社 乗算剰余演算器及び情報処理装置
CN100435090C (zh) * 2005-08-18 2008-11-19 上海微科集成电路有限公司 可扩展高基蒙哥马利模乘算法及其电路结构
CN101625634A (zh) * 2008-07-09 2010-01-13 中国科学院半导体研究所 一种可重构的乘法器
CN102999313B (zh) * 2012-12-24 2016-01-20 飞天诚信科技股份有限公司 一种基于蒙哥马利模乘的数据处理方法
CN103226461B (zh) * 2013-03-26 2016-07-06 中山大学 一种用于电路的蒙哥马利模乘方法及其电路
CN103761068B (zh) * 2014-01-26 2017-02-01 上海交通大学 优化的蒙哥马利模乘硬件
KR102132261B1 (ko) * 2014-03-31 2020-08-06 삼성전자주식회사 비교 연산이 필요없이 최종 모듈러 감소를 하는 몽고메리 곱셈 방법 및 곱셈기

Also Published As

Publication number Publication date
CN112486457A (zh) 2021-03-12

Similar Documents

Publication Publication Date Title
CN112486457B (zh) 一种实现改进的fios模乘算法的硬件系统
KR100834178B1 (ko) Mac 연산 방법과 mac 연산을 포함하는 장치, 시스템 및 머신 판독가능한 매체
CN115344237B (zh) 结合Karatsuba和蒙哥马利模乘的数据处理方法
CN112540743B (zh) 面向可重构处理器的有无符号乘累加器及方法
CN103761068A (zh) 优化的蒙哥马利模乘方法、模平方方法和模乘硬件
CN113628094A (zh) 一种基于gpu的高吞吐量sm2数字签名计算系统及方法
Lee et al. Subquadratic Space-Complexity Digit-Serial Multipliers Over $ GF (2^{m}) $ Using Generalized $(a, b) $-Way Karatsuba Algorithm
CN101304312B (zh) 一种适用于精简指令集处理器的加密单元
CN114895870B (zh) 基于fpga实现的高效可重构sm2点乘方法及系统
CN115048076B (zh) 一种基于sm2特定域的快速模乘芯片实现装置及方法
Cilardo Exploring the potential of threshold logic for cryptography-related operations
CN109284085B (zh) 一种基于fpga的高速模乘和模幂运算方法及装置
CN113872608B (zh) 一种基于Xilinx FPGA原语的Wallace树压缩器
Mekhallalati et al. Novel radix finite field multiplier for GF (2 m)
Gutub Merging GF (p) elliptic curve point adding and doubling on pipelined VLSI cryptographic ASIC architecture
Lee et al. Efficient $ M $-ary exponentiation over $ GF (2^{m}) $ using subquadratic KA-based three-operand Montgomery multiplier
Lee Super Digit-Serial Systolic Multiplier over GF (2^ m)
Raghuram et al. A programmable processor for cryptography
CN114089949A (zh) 一种可直接支持多操作数加法运算的数字信号处理器
Leung et al. A low power asynchronous GF (2ˆ173) ALU for elliptic curve crypto-processor
CN112068800B (zh) 阵列压缩器及具有其的大数乘法器
Jayasanthi Implementation of Power Efficient Multiply Accumulate Unit for DSP Applications
CN115658007A (zh) 一种高带宽可配流水级的并行乘法器运算方法
CN115421791A (zh) 一种素数域椭圆曲线密码协处理器
Wu et al. A fully-pipeline linear systolic architecture for modular multiplier in public-key crypto-systems

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