CN107404380B - 一种基于异步数据通路的rsa算法 - Google Patents

一种基于异步数据通路的rsa算法 Download PDF

Info

Publication number
CN107404380B
CN107404380B CN201710523078.5A CN201710523078A CN107404380B CN 107404380 B CN107404380 B CN 107404380B CN 201710523078 A CN201710523078 A CN 201710523078A CN 107404380 B CN107404380 B CN 107404380B
Authority
CN
China
Prior art keywords
module
click
shift
register
cyclic
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
CN201710523078.5A
Other languages
English (en)
Other versions
CN107404380A (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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to CN201710523078.5A priority Critical patent/CN107404380B/zh
Publication of CN107404380A publication Critical patent/CN107404380A/zh
Application granted granted Critical
Publication of CN107404380B publication Critical patent/CN107404380B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Advance Control (AREA)

Abstract

本发明公开了一种基于异步数据通路的RSA算法,包括三级模块Montgeory_moudle的实现步骤和二级LR_moudle模块的实现步骤。该算法采用异步微流水控制结构,无时钟信号,这样将会提高运行速度,最终提高解密难度。Pipeline控制电路严格控制各个模块的运算时序,异步电路由于采用握手协议产生各流水段局部时钟,取代了同步集成电路中的全局时钟,不需要庞大的时钟分布网络,从而自然的解决了同步集成电路中时钟漂移、功耗偏高等问题,并且可以获得平均情况下的性能,具有较好的可重用性和鲁棒性。

Description

一种基于异步数据通路的RSA算法
技术领域
本发明涉及一种公钥加密RSA算法,具体地说,涉及一种基于异步数据通路的RSA算法。
背景技术
RSA是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的绝大多数密码攻击,已被ISO推荐为公钥数据加密标准。今天只有短的RSA钥匙才可能被强力方式解破。到2008年为止,世界上还没有任何可靠的攻击RSA算法的方式。只要其钥匙的长度足够长,用RSA加密的信息实际上是不能被解破的。但在分布式计算和量子计算机理论日趋成熟的今天,RSA加密安全性受到了挑战。
现有的RSA算法的硬件实现都是时钟信号控制,由于每次都要受到时钟沿的触发,则存在等待时间,这样将会浪费大量的时间。
发明内容
本发明的目的在于提供一种基于异步数据通路的RSA算法。该算法采用异步微流水控制结构,无时钟信号,这样将会提高运行速度,最终提高解密难度。Pipeline控制电路严格控制各个模块的运算时序,异步电路由于采用握手协议产生各流水段局部时钟,取代了同步集成电路中的全局时钟,不需要庞大的时钟分布网络,从而自然的解决了同步集成电路中时钟漂移、功耗偏高等问题,并且可以获得平均情况下的性能,具有较好的可重用性和鲁棒性。
其具体技术方案为:
三级模块Montgeory_moudle的实现步骤为:
使能In_R为1;开始整个过程;
Click0~Click3:整个实现过程的准备阶段;
Click5~Click14:循环For_0模块和循环For_1模块准备阶段,移位寄存器Shift_b实现对输入数b的移位;
Click15~Click29:在循环For_1模块,移位寄存器Shift_a实现对输入数a的移位,利用加法器Add128,Add64,乘法器Mul_64,移位寄存器Shift_t,实现(C,S):=t[j]+a[j]×b[i]+C;并储存到缓冲寄存器T(Shift_s0)和进位寄存器C,直到循环结束;
Click30~Click45:退出循环For_1模块;在/r模块中,移位寄存器Shift_t把进位寄存器C的值移入寄存器(Shift),并调用乘法器Mul_64实现m:=T[0]×n’[0],准备进入循环For_2模块;
Click46~Click56:在循环For_2模块中,移位寄存器Shift_n实现对输入数N的移位,利用加法器Add128,Add64,乘法器Mul_64,移位寄存器Shift_t,实现(C,S):=t[j]+m×n[j]+C;并储存到缓冲寄存器T(Shift_s1),直至循环结束;
Click57~Click73:退出循环For_2模块;在/R模块中,移位寄存器Shift_t把进位寄存器C的值移入寄存器(Shift),实现T[j]:=t[j+1];
Click74~Click77:结束For_0模块,实现循环For_3模块的准备阶段;
Click78~Click83:在循环For_3模块中,移位寄存器Shift_n0实现对输入数N的移位,移位寄存器Shift_s1实现对缓冲数的移位,利用加法器Add64,实现:(B,D):=t[i]–n[i]–B(只需判断最高借位,为1输出T,为0输出结果),直至循环结束;
Click84~Click86:输出整个模块(ABR-1modN)运算结果和结束标志位;
二级LR_moudle模块的实现步骤:
使能In_R为1;开始整个过程;
Click6~Click9:整个过程的准备阶段;
Click5~Click14:计算M=M*R mod N=Mont(M*R2 mod N);
Click10~Click20:for准备阶段;
Click21~Click26:计算C=Mont(C*C);
Click27~Click31:计算C=Mont(C*M mod N);
Click32~Click39计算C=Mont(C*1)。
与现有技术相比,本发明的有益效果:
本发明的算法采用异步信号控制,消去时钟信号,这样将会提高运行速度,最终提高解密难度。
附图说明
图1是本发明基于异步数据通路的RSA算法的原理图。
图2是异步微流水直通pipelin;
图3是异步微流水跳跃pipeline,其中图3(a)是click[i]触发组合模块,图3(b)是取反触发器;
图4是计数器和移位器使能电路;
图5是0和1交替使能模块;
图6是0和1选择电路;
图7是for循环控制电路;
图8是微流水控制模块;
图9是For_0模块结构;
图10是For_1模块内部结构;
图11是Modr模块内部结构;
图12是For_2模块内部结构;
图13是/R模块内部结构;
图14是Me mod N硬件实现内部结构。
具体实施方式
下面结合附图和具体实施方案对本发明的技术方案作进一步详细地说明。
本发明设计过程所用到的衔接模块:
基于Click的异步直通Pipeline控制电路如图2所示,在异步电路中的时钟信号都被两个锁存器之间的握手信号(即两个Click之间的握手信号)代替。锁存器对于异步电路控制是最重要的部分,每个Click都控制一个锁存器,用来控制上一级CL[i]的数据流往下一级组合电路CL[i+1]。我们可以看到每两个相邻锁存器R[i]和R[i+1]之间都有组合电路CL[i],用来处理R[i]流出的数据(即上一级处理的数据),然后输出CL[i]已处理数据。异步微流水控制单元Click最重要的作用就是在正确的时间打开寄存器R[i],让上一级CL[i]已处理的数据流入下一级组合电路CL[i+1]。如果Click[i]单元接收到请求信号R[i]到产生触发信号的时间小于上一级组合电路CL[i-1]的处理时间,那么下一级CL[i]得到数据就不是所希望得到的正确数据。
基于Click的异步跳跃Pipeline控制电路如图3所示,当一个组合功能模块电路(CL[i])时延较大时,两个Click之间的流水间隔时间会很大,为了避免hold time过短,导致功能模块出错。所以我们考虑换角度下手,前提是每个Click是固定的,重点是把组合模块CL[i]可控化,给组合模块CL[i]构造一个运算结束标志位(CL_flag)。如图3(a)在上一个Click[i]触发组合模块CL[i]后,一当CL_flag出现上升沿,则触发取反触发器D~(图3(b)),D~触发器的功能是:一当clk上升沿到来,Q=~Q。然后触发Click[i+1],继续往下流水。
计数器和移位器使能电路如图4,由于在异步循环电路中需要对多计数器和移位器进行多次进行使能清零。由于没有时钟,电路是不允许多条使能信号接到计数器和移位器的使能端。所以我们设计适用与异步控制的使能电路,电路由2个D触发器,一个异或门和一个或门组成。D触发器做取反功能使用,Fire信号(图中的Fire0、Fire1)一触发,输出取反。假设初始化,全部赋值0。工作过程如下:
对于计数器:
初始化En1=0,En2=0,out_En=En1^En2+En=0;
En=1,计数器使能端为0,计数器执行计数功能。
Fire0被触发,~En1=1,out_En=~En1^En2+En=1,计数器使能端为1,计数器执行清零功能。
Fire1被触发,~En2=1,out_En=En1^~En2+En=0;计数器使能端为0,计数器执行计数功能。
对于移位器:
初始化En1=0,En2=0,out_En=En1^En2+En=0;
En=1,移位器使能端为0,移位器执行赋值功能。
Fire0被触发,~En1=1,out_En=~En1^En2+En=1;移位器使能端为1,移位器执行移位功能。
Fire1被触发,~En2=1,out_En=En1^~En2+En=0;移位器使能端为0,移位器执行赋值功能。
0和1交替使能模块如图5所示,电路由4个D触发器和一个四位的异或门组成本文使用的Click模块和设计的ABR-1modn模块,使能信号为0和1交替使能。由于在异步循环电路中需要对计数器和移位器进行多次进行使能清零。由于没有时钟,电路是不允许多条使能线接到计数器和移位器的使能端。工作过程如下:
初始化,a=En1=0,b=En2=0,c=En3=0,d=En4=0,out_En=a^b^c^d=0;
Fire0被触发,a=~En1=1,out_En=a^b^c^d=1;Montgeory_moudle模块运算一次;
Fire1被触发,a=~En2=1,out_En=a^b^c^d=0;Montgeory_moudle模块运算一次;
Fire2被触发,a=~En3=1,out_En=a^b^c^d=1;Montgeory_moudle模块运算一次;
Fire3被触发,a=~En4=1,out_En=a^b^c^d=0;Montgeory_moudle模块运算一次;
Montgeory_moudle模块置于循环过程中,可重复此过程。
0和1选择电路如图6所示,该电路用做2路选择器的选择端,由2个D触发器和一个二路的异或门组成。工作过程如下:
初始化,a=En1=0,b=En2=0,out_En=a^b=0;
Fire0被触发,a=~En1=1,out_En=a^b=1。
Fire1被触发,a=~En2=1,out_En=a^b=0。
基于Click的for循环控制电路如图7所示,该电路由Click电路,寄存器(reg),组合功能模块(combinational circuit--CC),计数器(COUNT),判断电路(judge circuit--JC),计数器使能电路(COUNT_EN)。假设需要循环8次,初始化inR,inA,outR,outA,clr,En1,En2都为0。使能inR,Pipeline微流水控制开始工作,Click0触发COUNT开始计数,当流水到Click56,Click56的outR继续触发Click0,开始进入循环模式。COUNT计数到8的时候且Click56被触发。JC禁止Click0,循环终止,然后使能Click57跳出循环。Click57使能D0,打开count的清零端。Click58触发count,使能count计数为0。Click59使能COUNT_EN,关闭COUNT清零端。
一种基于异步数据通路的RSA算法,如图1所示,该系统有一级模块RSA_moudle,二级模块LR_moudle和PRO_moudle,三级模块Montgeory_moudle组成。In_R使能,开始对明文M加密,输出端的out_R判断是否加密完成。
三级模块Montgeory_moudle主要采用CIOS硬件实现算法。
CIOS算法如下:
Figure GDA0002594232120000071
Figure GDA0002594232120000081
//下面是Montgomery算法最后(-n)的运算;
Figure GDA0002594232120000082
对CIOS算法硬件结构如图8所示,大体结构有由微流水控制模块(For_0_fire,For_3_fire)和功能模块循环模块(For_0,For_3)组成。微流水控制模块用来控制功能模块的有序进行。功能模块用来实现CIOS算法,For_0用来是实现ab mod r,For_3用来实现减功能.
For_0模块大体结构如图9所示,在大for循环模块For_0中有内嵌了2个for循环模块(For_1,For_2),2个功能模块/r、/R和一个移位模块shift,并且还有微流水控制模块(For_1_fire,For_2_fire,Modr_fire,/R_fire)。微流水控制模块用来控制功能模块的有序进行。For_1模块用来是实现CIOS算法中大循环For_0中第一个小循环For_1,For_2模块用来是实现CIOS算法中大循环For_0中第一个小循环For_2。modr模块,/R模块用来实现对缓冲数据的修正功能。
For_1模块用来是实现CIOS算法中大循环For_0中第一个小循环For_1,内部大体结构如图10,模块功能主要实现:(C,S):=t[j]+a[j]×b[i]+C,t[j]:=S。
其由功能模块64位的乘法器Mul_64,128位的加法器Add128,64位的加法器Add64,和1024位的移位寄存器shift_a,1151位的移位寄存器shift_t,进位寄存器C,共同来实现。
Modr模块如图11,由一个64位的乘法器Mul实现。实现m:=t[0]×n’[0]mod 2w。
For_2模块如图12,模块用来是实现CIOS算法中大循环For_0中第二个小循环For_2,内部其由功能模块64位的乘法器Mul,128位的加法器Add128,64为的加法器Add64,和1024位的移位寄存器shift_a,1151位的移位寄存器shift_t,进位寄存器C,共同来实现。模块功能主要实现:(C,S):=t[j]+m×n[j]+C,t[j]:=S。
/R模块如图13,由一个1151位的移位寄存器shift_t实现:T[j]:=t[j+1]。
二级模块LR_moudle的实现算法的硬件实现:
Me mod N算法如下:
Figure GDA0002594232120000091
Figure GDA0002594232120000101
对Me mod N硬件实现算法硬件实现,如图14,大体结构有由微流水控制模块(Ready_fire,For_fire,out_fire)和功能模块模块(预处理模块,循环模块,修正模块)组成。微流水控制模块用来控制功能模块的有序进行。预处理模块用来实现对输入数的预处理,中央处理模块用来是实现循环,修正模块用来实现对数据的修正。
预处理模块由微流水控制模块(Ready_fire)控制工作,实现算法Me mod N的第一步功能。循环模块由微流水控制模块(For_fire)控制工作,实现算法Me mod N的第二步功能。修正模块由微流水控制模块(out_fire))控制工作,实现算法Me mod N的第三步功能。
以上所述,仅为本发明较佳的具体实施方式,本发明的保护范围不限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可显而易见地得到的技术方案的简单变化或等效替换均落入本发明的保护范围内。

Claims (1)

1.一种基于异步数据通路的RSA算法,其特征在于,包括以下步骤:有一级模块RSA_moudle,二级模块LR_moudle和PRO_moudle,三级模块Montgeory_moudle组成,In_R使能,开始对明文M加密,输出端的out_R判断是否加密完成;
三级模块Montgeory_moudle的实现步骤为:
使能In_R为1;开始整个过程;
Click0~Click3:整个实现过程的准备阶段;
Click5~Click14:循环For_0模块和循环For_1模块准备阶段,移位寄存器Shift_b实现对输入数b的移位;
Click15~Click29:在循环For_1模块,移位寄存器Shift_a实现对输入数a的移位,利用加法器Add128,Add64,乘法器Mul_64,移位寄存器Shift_t,实现(C,S):=t[j]+a[j]×b[i]+C;并储存到缓冲寄存器T Shift_s0和进位寄存器C,直到循环结束;
Click30~Click45:退出循环For_1模块;在/r模块中,移位寄存器Shift_t把进位寄存器C的值移入寄存器Shift,并调用乘法器Mul_64实现m:=T[0]×n’[0],准备进入循环For_2模块;
Click46~Click56:在循环For_2模块中,移位寄存器Shift_n实现对输入数N的移位,利用加法器Add128,Add64,乘法器Mul_64,移位寄存器Shift_t,实现(C,S):=t[j]+m×n[j]+C;并储存到缓冲寄存器T Shift_s1,直至循环结束;
Click57~Click73:退出循环For_2模块;在/R模块中,移位寄存器Shift_t把进位寄存器C的值移入寄存器Shift,实现T[j]:=t[j+1];
Click74~Click77:结束For_0模块,实现循环For_3模块的准备阶段;
Click78~Click83:在循环For_3模块中,移位寄存器Shift_n0实现对输入数N的移位,移位寄存器Shift_s1实现对缓冲数的移位,利用加法器Add64,实现:(B,D):=t[i]–n[i]–B,只需判断最高借位,为1输出T,为0输出结果,直至循环结束;
Click84~Click86:输出整个模块ABR-1modN运算结果和结束标志位;
二级LR_moudle模块的实现步骤:
使能In_R为1;开始整个过程;
Click6~Click9:整个过程的准备阶段;
Click5~Click14:计算M=M*R mod N=Mont(M*R2 mod N);
Click10~Click20:for准备阶段;
Click21~Click26:计算C=Mont(C*C);
Click27~Click31:计算C=Mont(C*M mod N);
Click32~Click39计算C=Mont(C*1)。
CN201710523078.5A 2017-06-30 2017-06-30 一种基于异步数据通路的rsa算法 Active CN107404380B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710523078.5A CN107404380B (zh) 2017-06-30 2017-06-30 一种基于异步数据通路的rsa算法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710523078.5A CN107404380B (zh) 2017-06-30 2017-06-30 一种基于异步数据通路的rsa算法

Publications (2)

Publication Number Publication Date
CN107404380A CN107404380A (zh) 2017-11-28
CN107404380B true CN107404380B (zh) 2020-09-11

Family

ID=60404571

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710523078.5A Active CN107404380B (zh) 2017-06-30 2017-06-30 一种基于异步数据通路的rsa算法

Country Status (1)

Country Link
CN (1) CN107404380B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113407239B (zh) * 2021-06-09 2023-06-13 中山大学 一种基于异步单轨的流水线处理器
CN116842880A (zh) * 2022-03-24 2023-10-03 华为技术有限公司 一种芯片、信号处理方法以及电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1379375A (zh) * 2001-04-11 2002-11-13 北京国芯安集成电路设计有限公司 智能化、全硬件的rsa加解密处理器
CN101782846A (zh) * 2009-01-15 2010-07-21 夏普株式会社 用于蒙哥马利乘法的运算电路及密码电路
CN101866278A (zh) * 2010-06-18 2010-10-20 广东工业大学 一种异步迭代的多位整型乘法器及其计算方法
CN106528046A (zh) * 2016-11-02 2017-03-22 上海集成电路研发中心有限公司 长位宽时序累加乘法器

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9432482B2 (en) * 2011-08-31 2016-08-30 Google Inc. Asynchronous and synchronous resource links

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1379375A (zh) * 2001-04-11 2002-11-13 北京国芯安集成电路设计有限公司 智能化、全硬件的rsa加解密处理器
CN101782846A (zh) * 2009-01-15 2010-07-21 夏普株式会社 用于蒙哥马利乘法的运算电路及密码电路
CN101866278A (zh) * 2010-06-18 2010-10-20 广东工业大学 一种异步迭代的多位整型乘法器及其计算方法
CN106528046A (zh) * 2016-11-02 2017-03-22 上海集成电路研发中心有限公司 长位宽时序累加乘法器

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Young Sae Kim;Woo Seok Kang;Jun Rim Choi.IMPLEMENTATION OF 1024-BIT MODULAR PROCESSOR FOR RSA CRYPTOSYSTEM.《Proceedings of Second IEEE Asia Pacific Conference on ASICs. AP-ASIC 2000 (Cat. No.00EX434)》.2000, *
基于CIOS算法的RSA芯片设计与实;陈韬;《中国优秀硕士学位论文全文数据库》;20050228;全文 *

Also Published As

Publication number Publication date
CN107404380A (zh) 2017-11-28

Similar Documents

Publication Publication Date Title
EP1044405B1 (en) Power signature attack resistant cryptography
CN106100844B (zh) 基于点盲化方法的优化自动双线性对加密方法及装置
CN103916236B (zh) 面向aes算法的抗功耗攻击方法及电路实现
EP1789869A2 (en) Method and apparatus for performing modular exponentiations
US8085931B2 (en) Computation method, computing device and computer program
US10721056B2 (en) Key processing method and device
CN104917608B (zh) 一种密钥抗功耗攻击的方法
CN112202568A (zh) 软硬件协同设计sm9数字签名通信方法和系统
CN107404380B (zh) 一种基于异步数据通路的rsa算法
CN101630244B (zh) 一种流水线型椭圆曲线双标量乘法系统及方法
US7539718B2 (en) Method and apparatus for performing Montgomery multiplications
CN113114462B (zh) 一种应用于ecc安全硬件电路的小面积标量乘电路
CN103107879B (zh) 一种rsa加速器
CN102291240B (zh) Sm2签名的认证方法及系统
Zhang et al. Ultra high-performance ASIC implementation of SM2 with power-analysis resistance
KR20040048471A (ko) 직렬 유한체 승산기
CN107302432B (zh) 一种基于异步数据通路的密码芯片
CN112988235B (zh) 一种高效率第三代安全散列算法的硬件实现电路及方法
CN105024806A (zh) 一种基于可逆逻辑门的加密系统的模逆电路
CN102135871B (zh) 利用混沌原理产生随机数的装置及其动态口令牌
CN105373366B (zh) 一种生成大素数的方法及装置
CN114238205A (zh) 一种抗功耗攻击的高性能ecc协处理器系统
CN102739396A (zh) 一种应用于信息安全的协处理器
KR100406139B1 (ko) 대칭 및 비대칭키 암호 연산 처리 시스템 및 그 처리 방법
Leung et al. A low power asynchronous GF (2ˆ173) ALU for elliptic curve crypto-processor

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