一种高效的公钥加密引擎制造技术

技术编号:11374852 阅读:130 留言:0更新日期:2015-04-30 12:52
本发明专利技术涉及一种高效的公钥加密引擎,CPU能够在进行公钥运算之前将非易失性存储器中存放的微指令串通过公钥协处理器加载到随机存取存储器中,并在公钥运算过程中将与公钥运算进程相匹配的微指令串分段在随机存取存储器中的存放地址发送给公钥协处理器,使公钥协处理器能够主动从所述随机存取存储器的该存放地址获取与公钥运算进程相匹配的微指令串分段,并将其加载到公钥协处理器设置的指令序列中来执行相应的微指令运算。基于本发明专利技术的公钥加密引擎,公钥运算的速度接近或达到采用硬件电路直接实现的公钥运算,且可以采用微指令灵活实现各种公钥运算算法。

【技术实现步骤摘要】
一种高效的公钥加密引擎
本专利技术涉及公钥运算的相关领域,特别涉及一种高效的公钥加密引擎,采用新型的微指令优化,加载和运算技术,可实现所有已知的公钥运算。
技术介绍
随着移动支付等技术的大规模应用,其面临的信息安全威胁也越来越大,应用环境的日益复杂和黑客技术的提高,使得公钥算法在各种安全相关的领域中的应用越来越重要。为了使公钥协处理器的性能能够满足各种应用的要求,目前多采用微指令技术。典型的采用微指令技术的公钥协处理器的系统构架如图1所示。应用这类公钥协处理器的系统一般包含:非易失存储器ROM/FLASH,CPU,公钥IP控制模块和公钥IP。其中公钥IP控制模块可选,其功能完全可由软件完成。完成某项公钥运算的微指令串存储在非易失存储器中,当要进行这种公钥运算时,因为公钥运算通常比较复杂,其微指令串较长,且公钥IP中的指令序列(即,存放公钥IP当前可以连续执行的最长的微指令串),远小于完成公钥运算的微指令串的长度,因此CPU或公钥IP控制模块要分段将完成公钥运算的微指令加载到公钥IP的指令序列中以完成整个公钥运算。这种方式有以下缺点:1.若没有公钥IP控制模块,则由CPU直接将微指令串分段加载到公钥IP的指令序列中。这种方式下CPU需要实时监控公钥IP的指令序列中的微指令是否执行完以加载新的微指令段,因此公钥IP每执行完指令序列中的微指令段要等待CPU将新的微指令段填入指令序列才能继续执行,对于像ECC点乘运算来说,要执行几百次相同的点加或倍点运算,这就需要反复加载同样的微指令串,严重影响了微指令的执行效率,而且CPU在公钥IP运行时不能执行其他指令。2.若采用公钥IP控制模块,则由CPU将微指令串加载到公钥IP控制模块中,再由公钥IP控制模块分段加载微指令段到指令序列中执行。这种方式虽然在公钥IP运行时可以将CPU部分解放出来,而且减少了一些公钥IP在等待指令序列重新加载的时间,但是不能根本缓解这种问题,在多次执行较长的微指令串时微指令执行效率的问题依然严重,而影响整个公钥运算的速度。而且公钥运算的微指令一般很长,因此公钥IP控制模块中会有很大的内存用来暂存微指令串,增大了面积和功耗。3.一些公钥协处理器为了缓解1和2中的问题,通过将公钥高层次的运算(例如ECC点乘运算),也编成一条微指令,这种方式看似解决了微指令加载运行效率的问题,但是同时带来了其他严重的问题。首先像ECC点乘运算这种公钥算法的核心运算有很多种算法,其速度,安全性和应用环境都不同,将点乘运算编成一条微指令这意味着只能选择某一特定的算法用硬件电路来实现点乘运算,这不但限制了公钥IP的应用领域,而且增大了硬件电路设计的复杂性和面积功耗;其次在公钥协议中仍然需要底层有限域运算,将公钥高层运算编成微指令不会减少对底层运算微指令的需求,因此导致微指令种类增多,单条微指令编码变长,公钥协处理器解析微指令变慢。4.集成这种公钥协处理器非常复杂,需添加额外的硬件接口电路或复杂的软件处理来完成。因此,亟需能够提高微指令运行效率和速度的技术,解决上述公钥协处理器不能兼顾性能和灵活性的问题。
技术实现思路
本专利技术提供一种高效的公钥加密引擎,其采用微指令主动加载技术和微指令优化设计的公钥协处理器,目标在于使采用微指令串实现的公钥运算的速度接近或达到采用硬件电路直接实现的公钥运算,且可以采用微指令灵活实现各种公钥运算算法。为了达到上述目的,本专利技术的一个技术方案是提供一种公钥加密引擎,其包含:随机存取存储器,其在公钥运算的过程中存放微指令串和中间数据;公钥协处理器,通过设置的I/O控制模块主动从所述随机存取存储器存放的微指令串中,将与公钥运算进程相匹配的微指令串分段,加载到公钥协处理器设置的指令序列中运行。优选地,所述公钥加密引擎还包含CPU,其将与公钥运算进程相匹配的微指令串分段在随机存取存储器中的存放地址发送给公钥协处理器,以便所述公钥协处理器根据该存放地址从随机存取存储器获得相应的微指令串分段。优选地,所述公钥加密引擎还包含最初用来存放微指令串的非易失性存储器;所述CPU在进行公钥运算之前,将非易失性存储器中存放的与公钥运算相应的微指令串,通过公钥协处理器的I/O控制模块加载到随机存取存储器中。优选地,所述公钥协处理器还设置有微指令解析模块,将CPU向其发送的与公钥运算进程相匹配的微指令串分段在随机存取存储器中的存放地址,作为使所述公钥协处理器启动公钥运算中相应微指令运算的启动地址。优选地,所述微指令串,是对应有限域上加、减、取模、乘法运算中任意一项的微指令或这些微指令的任意组合。优选地,设有表示公钥运算结束的结束微指令;基于微指令解析模块接收到的结束微指令,使所述公钥协处理器停止从随机存取存储器获取微指令串分段。本专利技术的另一个技术方案是提供一种公钥加密引擎,其包含:非易失性存储器,最初用来存放公钥运算相关的微指令串;随机存取存储器,在公钥运算的过程中存放所述微指令串和中间数据;公钥协处理器,主动从所述随机存取存储器存放的微指令串中,将与公钥运算进程相匹配的微指令串分段,加载到公钥协处理器设置的指令序列中并执行相应的微指令运算;CPU,其在进行公钥运算之前将非易失性存储器中存放的微指令串通过公钥协处理器加载到随机存取存储器中;所述CPU还将与公钥运算进程相匹配的微指令串分段在随机存取存储器中的存放地址发送给公钥协处理器。本专利技术的又一个技术方案是提供一种公钥加密引擎的公钥运算方法,在启动公钥运算之前,CPU将非易失性存储存器中存放微指令串通过公钥协处理器加载到随机存取存储器中;CPU在启动公钥协处理器进行公钥运算后,公钥协处理器将其主动从所述随机存取存储器存放的微指令串中获取的微指令串分段,加载到指令序列中运行;当指令序列中的微指令串分段即将执行完成而公钥运算尚未结束时,所述公钥协处理器将其主动从所述随机存取存储器存放的微指令串中获得的与公钥运算进程相匹配的下一个微指令串分段,加载到指令序列中运行;直到公钥运算结束时,所述公钥协处理器不再从随机存取存储器获取微指令分段;将随机存取存储器中存放公钥运算相关微指令串及中间数据的内存空间释放。优选地,所述CPU将公钥运算相关的微指令串写入随机存取存储器中指定的存放地址,并将与公钥运算进程相匹配的微指令串分段在随机存取存储器中的存放地址发送给公钥协处理器,以便所述公钥协处理器根据该存放地址从随机存取存储器获得相应的微指令串分段来执行相应的微指令运算。优选地,所述公钥协处理器接收到表示公钥运算结束的结束微指令后,不再从随机存取存储器获取微指令串分段。本专利技术提供一款高效的公钥加密引擎,采用新型的微指令优化,加载和运算技术,形成了高效灵活的微指令式的公钥协处理器,解决了性能和灵活性之间的矛盾,并实现RSA,ECC等所有已知的公钥算法的各种运算及公钥协议。与其他采用微指令技术的公钥协处理器相比,本专利技术具有微指令短,微指令加载效率高等特点,性能和灵活性远好于目前已知的同类协处理器。相比现有技术,本专利技术具有以下优点:1.将所有跟公钥运算的模块集成到公钥协处理器中,该公钥协处理器可应用在包括各种类型的CPU,非易失存储器和RAM的公钥加密引擎中,便于把公钥协处理器移植和集成到新的系统中,通用性更好;2.将微指令和公钥运算的本文档来自技高网
...
一种高效的公钥加密引擎

【技术保护点】
一种公钥加密引擎,其特征在于,包含:随机存取存储器,其在公钥运算的过程中存放微指令串和中间数据; 公钥协处理器,通过设置的I/O控制模块主动从所述随机存取存储器存放的微指令串中,将与公钥运算进程相匹配的微指令串分段,加载到公钥协处理器设置的指令序列中运行。

【技术特征摘要】
1.一种公钥加密引擎,其特征在于,包含:随机存取存储器,其在公钥运算的过程中存放微指令串和中间数据;公钥协处理器,通过设置的I/O控制模块主动从所述随机存取存储器存放的微指令串中,将与公钥运算进程相匹配的微指令串分段加载到公钥协处理器设置的指令序列中运行;CPU,其将与公钥运算进程相匹配的微指令串分段在随机存取存储器中的存放地址发送给公钥协处理器,以便所述公钥协处理器根据该存放地址从随机存取存储器获得相应的微指令串分段。2.如权利要求1所述的公钥加密引擎,其特征在于,所述公钥加密引擎还包含最初用来存放微指令串的非易失性存储器;所述CPU在进行公钥运算之前,将非易失性存储器中存放的与公钥运算相应的微指令串,通过公钥协处理器的I/O控制模块加载到随机存取存储器中。3.如权利要求1或2所述的公钥加密引擎,其特征在于,所述公钥协处理器还设置有微指令解析模块,将CPU向其发送的与公钥运算进程相匹配的微指令串分段在随机存取存储器中的存放地址,作为使所述公钥协处理器启动公钥运算中相应微指令运算的启动地址。4.如权利要求3所述的公钥加密引擎,其特征在于,所述微指令串是对应有限域上加、减、取模、乘法运算中任意一项的微指令或这些微指令的任意组合。5.如权利要求4所述的公钥加密引擎,其特征在于,设有表示公钥运算结束的结束微指令;基于微指令解析模块接收到的结束微指令,使所述公钥协处理器停止从随机存取存储器获取微指令串分段。6.一种公钥加密引擎,其特征在于,包含:非易失性存储器,最初用来存放公钥运算相关的微指令串;随机存取存储器,在公钥运算的过程中存放所述微指令串和中间数据;公钥协处理器,主动从所述随机存取存储...

【专利技术属性】
技术研发人员:刘力睿张晨袁世强
申请(专利权)人:聚辰半导体上海有限公司
类型:发明
国别省市:上海;31

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

1