当前位置: 首页 > 专利查询>吴尽昭专利>正文

一种基于异步数据通路的RSA算法制造技术

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

【技术实现步骤摘要】
一种基于异步数据通路的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实现对输入数in_b的移位;Click15~Click29:在循环FOR_1模块,Shift_a实现对输入数in_a的移位,利用加法器ADD_128,ADD_64,乘法器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的值移入寄存器T(Shift),并调用乘法器mul_64实现m:=T[0]×n’[0],准备进入循环FOR_2模块;Click46~Click56:在循环FOR_2模块中,Shift_n实现对输入数in_n的移位,利用加法器ADD_128,ADD_64,乘法器mul_64,移位寄存器Shift_t,实现(C,S):=t[j]+m×n[j]+C;并储存到缓冲寄存器T(Shift_s1),直至循环结束;Click57~Click73:退出循环FOR_2模块;在/R模块中,Shift_t把进位寄存器C的值移入寄存器T(Shift),实现T[j]:=t[j+1];Click74~Click77:结束FOR_0模块,实现循环FOR_3模块的准备阶段;Click78~Click83:在循环FOR_3模块中,Shift_n0实现对输入数in_n的移位,Shift_s1实现对缓冲数Shift_s1的移位,利用加法器add_64,实现:(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*RmodN=Mont(M*R2modN);Click10~Click20:FOR准备阶段;Click21~Click26:计算C=Mont(C*C);Click27~Click31:计算C=Mont(C*MmodN);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是MemodN硬件实现内部结构。具体实施方式下面结合附图和具体实施方案对本专利技术的技术方案作进一步详细地说明。本专利技术设计过程所用到的衔接模块:基于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]单元接收到请求信号REQ[i]到产生触发信号FIRE[i]的时间小于上一级组合电路CL[i-1]的处理时间,那么下一级CL[i]得到数据就不是所希望得到的正确数据。基于click的异步跳跃Pipeline控制电路如图3所示,当一个组合功能模块电路(CC[i])时延较大时,两个click之间的流水间隔时间会很大,为了避免holdtime过短,导致功能模块出错。所以我们考虑换角度下手,前提是每个click是固定的,重点是把组合模块CC[i]可控化,给组合模块CC[i]构造一个运算结束标志位(CC_flag)。如图3(a)在上一个click[i]触发组合模块CC[i]后,一当CC_flag出现上升沿,则触发取反触发器D~(图3(b)),D~触发器的功能是:一当clk上升沿到来,Q=~Q。然后触发click[i+1],继续往下流水。计数器和移位器使能电路如图4,由于在异步循环电路中需要对多计数器和移位器进行多次进行使能清零。由于没有时钟,电路是不允许多条使能信号接到计数器和移位器的使能端。所以我们设计适用与异步控制的使能电路,电路由2个D触发器,一个异或门和一个或门组成。D触发器做取反功能使用,Fire信号一触发,输出取反。假设初始化,全部赋值0。工作过程如下:对于计数器:初始化a=en1=0,b=en2=0,c=a^b,out_en=c+en=0;en=1,计数器使能端为0,计数器执行计数功能。Fire0被触发,a=~en1=1,c=a^b=1,out_en=c+en=1,计数器使能端为1,计数器执行清零功能。Fire1被触发,b=~en2=1,c=a^b=0,out_en=c+en=0;计数器使能端为0,计数器执行计数功能。对于移位器:初始化a=en1=0,b=en2=0,c=a^b,out_本文档来自技高网...
一种基于异步数据通路的RSA算法

【技术保护点】
一种基于异步数据通路的RSA算法,其特征在于,包括以下步骤:三级模块Montgeory_moudle的实现步骤为:使能in_R为1;开始整个过程;Click0~Click3:整个实现过程的准备阶段;Click5~Click14:循环FOR_0模块和循环FOR_1模块准备阶段,Shift_b实现对输入数in_b的移位;Click15~Click29:在循环FOR_1模块,Shift_a实现对输入数in_a的移位,利用加法器ADD_128,ADD_64,乘法器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的值移入寄存器T(Shift),并调用乘法器mul_64实现m:=T[0]×n’[0],准备进入循环FOR_2模块;Click46~Click56:在循环FOR_2模块中,Shift_n实现对输入数in_n的移位,利用加法器ADD_128,ADD_64,乘法器mul_64,移位寄存器Shift_t,实现(C,S):=t[j]+m×n[j]+C;并储存到缓冲寄存器T(Shift_s1),直至循环结束;Click57~Click73:退出循环FOR_2模块;在/R模块中,Shift_t把进位寄存器C的值移入寄存器T(Shift),实现T[j]:=t[j+1];Click74~Click77:结束FOR_0模块,实现循环FOR_3模块的准备阶段;Click78~Click83:在循环FOR_3模块中,Shift_n0实现对输入数in_n的移位,Shift_s1实现对缓冲数Shift_s1的移位,利用加法器add_64,实现:(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*R2mod 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算法,其特征在于,包括以下步骤:三级模块Montgeory_moudle的实现步骤为:使能in_R为1;开始整个过程;Click0~Click3:整个实现过程的准备阶段;Click5~Click14:循环FOR_0模块和循环FOR_1模块准备阶段,Shift_b实现对输入数in_b的移位;Click15~Click29:在循环FOR_1模块,Shift_a实现对输入数in_a的移位,利用加法器ADD_128,ADD_64,乘法器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的值移入寄存器T(Shift),并调用乘法器mul_64实现m:=T[0]×n’[0],准备进入循环FOR_2模块;Click46~Click56:在循环FOR_2模块中,Shift_n实现对输入数in_n的移位,利用加法器ADD_128,ADD_64,乘法器mul_64,移位寄存器Shift_t,实现(C,S):=t[j]+m×n[j]+C;并储存到缓冲寄存器...

【专利技术属性】
技术研发人员:吴尽昭何安平郭慧波冯广博刘晓庆熊菊霞王娟
申请(专利权)人:吴尽昭何安平
类型:发明
国别省市:广西,45

相关技术
    暂无相关专利
网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1