用于实现高性能SM3算法的系统及高性能SM3算法实现方法技术方案

技术编号:21095581 阅读:136 留言:0更新日期:2019-05-11 12:17
本发明专利技术公开了一种用于实现高性能SM3算法的系统及高性能SM3算法实现方法,该系统包括配置寄存器、接口总线装置、数据管理装置和加密核,通过配置寄存器配置待压缩数据的有效数据长度和源地址信息;接口总线装置接收配置寄存器发送的配置信息,选取出待压缩的数据,并发送到数据管理装置中;数据管理装置接收接口总线装置发送的数据,根据配置寄存器发送的配置信息,判断最后一笔数据是否需要将数据补充成两笔,若不需要,则将数据补充成一笔数据,并将补数操作后的数据进行缓存;若需要,则将数据补充成两笔笔数据,并将补数操作后的数据进行缓存;加密核从数据管理装置中读取待压缩的数据进行迭代压缩处理。

System for Implementing High Performance SM3 Algorithms and Implementation Method of High Performance SM3 Algorithms

【技术实现步骤摘要】
用于实现高性能SM3算法的系统及高性能SM3算法实现方法
本专利技术涉及数据处理领域,具有涉及一种提升SM3算法处理性能的用于实现高性能SM3算法的系统及高性能SM3算法实现方法。
技术介绍
SM3算法主要用于数字签名及验证、消息认证码生成及验证、随机数生成等。现有的SM3算法基本上都是用CPU来操做数据输入,CPU从存储中将数据读回,然后CPU再将已读回的数据写入加密核,读写各一次,而且CPU需要监控SM3状态,等待下一笔数据写入。这样会增加不必要的数据处理时间,而且会占用CPU。还有的采用软处理的方式即用软代码实现SM3算法,这样处理起来更慢,远没有硬件处理速度快。综上所述,目前如何提升SM3算法处理性能的问题,尚缺乏有效的解决方案。
技术实现思路
为了克服上述现有技术的不足,本公开提供了一种用于实现高性能SM3算法的系统及高性能SM3算法实现方法,有效提升SM3算法压缩处理性能,减少CPU参与数据处理的时间,减少数据输入不必要的等待时间。本公开所采用的技术方案是:一种用于实现高性能SM3算法的系统,该系统包括:配置寄存器,用于配置待压缩数据的有效数据长度和源地址信息,并将配置的信息发送给接口总线装置和数据管理装置;还接收加密核反馈回的处理后的数据,并进行缓存;接口总线装置,用于接收配置寄存器发送的配置信息,从相应的存储地址中选取出待压缩的数据,并发送到数据管理装置中;数据管理装置,用于接收接口总线装置发送的数据,根据配置寄存器发送的配置信息,判断最后一笔待压缩数据是否需要补充成两笔数据,若不需要,则将最后一笔待压缩数据补充成一笔数据,并将补数操作后的数据进行缓存;若需要,则将数据补充成两笔数据,并将补数操作后的数据进行缓存;加密核,用于从数据管理装置中读取待压缩的数据,采用SM3算法对数据进行迭代压缩处理,将处理后的数据反馈给配置寄存器;并产生相应的中断发送给CPU。进一步的,所述接口总线装置包括依次连接的接口、总线和存储器,所述接口分别与配置寄存器、数据管理装置连接,接收配置寄存器发送的配置信息,通过总线从存储器中将对应的地址存储的待压缩数据取出,并将获取的待压缩数据发送到数据管理装置中。进一步的,所述数据管理装置包括FIFO、补数控制器和缓存器,所述FIFO接收接口发送的数据,并进行缓存,判断待压缩的数据是否为最后一笔待压缩的数据,若不是,则将待压缩数据直接传输给缓存器;若是,则根据配置寄存器发送的配置信息,判断最后一笔待压缩数据是否需要补充成两笔数据,若不需要,则将最后一笔待压缩数据补充成一笔数据再将数据存储到缓存器中;若需要,则将最后一笔待压缩数据补充成两笔数据再将数据存储到缓存器中;所述补数控制器对最后一笔待压缩数据进行补数操作,并将补数操作后的数据存储到缓存器中。一种高性能SM3算法实现方法,该方法基于如上所述的用于实现高性能SM3算法的系统实现的,该方法包括以下步骤:配置待压缩数据的有效数据长度和源地址;根据配置的源地址从存储器中读取待压缩的数据,并缓存;判断是否为最后一笔待压缩的数据;若不是,则直接对待压缩数据进行迭代压缩处理;若是,则判断最后一笔待压缩数据是否需要补充成两笔数据,若不需要,则将最后一笔待压缩数据补充成一笔数据,并对补数操作后的数据进行迭代压缩处理,若需要,则将最后一笔待压缩数据补充成两笔数据,并对补数操作后的数据进行迭代压缩处理。进一步的,所述对最后一笔待压缩数据进行补数操作的步骤包括:根据配置的有效数据长度,取出最后一笔待压缩数据的有效数据,根据有效数据的长度产生相应的补充数据,再将有效数据与补充数据一起写入到加密核中进行迭代压缩处理。进一步的,所述补充数据的产生方法为:若最后一笔待压缩数据的有效数据长度小于448比特,在有效数据之后补1,最后64比特写有效数据长度,中间填充若干个零;若最后一笔待压缩数据的有效数据长度大于等于448比特,小于512比特,则置换成两笔数据,在第一笔数据有效位后补1,并补0凑够512比特;第二笔数据由448比特0和最后64比特的有效数据长度组成;若最后一笔待压缩数据的有效数据长度等于512比特,则在该有效数据之后再加上一笔1比特1、447比特0和64比特的有效数据有效长度。进一步的,在迭代压缩处理的过程中,接口总线装置将下一次待迭代压缩的数据存入到数据管理装置的FIFO缓存器中;数据管理装置的缓存器从FIFO中缓存器取出16个字数据,作为下一次待压缩数据,待当前这笔数据压缩结束后,将下一次待压缩数据写入到加密核中。进一步的,所述对待压缩数据进行迭代压缩处理的步骤包括:采用32比特寄存器存取缓存器发送的待压缩数据,并进行位移操作,得到多个32比特的扩展字Wj;采用寄存器计算动态消息扩展字Wj';采用控制器来计算轮数。进一步的,还包括:待最后一笔压缩数据处理完后,将处理后的数据存储到配置寄存器的缓存器中。通过上述技术方案,本公开的有益效果是:(1)本公开通过接口直接将存储器存储的数据读取出来,减少CPU操作,能够有效的提升SM3迭代压缩处理较大批量数据的性能;(2)本公开通过数据管理装置中的补数控制器对数据进行补数操作,根据寄存器中配置的有效数据长度,取出最后一笔的有效数据,根据有效数据产生相应的补充数据,再将这部分有效数据与填充数据一起写入到加密核中,能够有效减少CPU参与数据操作处理,为加密核节省时间;(3)本公开通过配置寄存器配置数据长度和源地址信息,减轻CPU负担,一次配置好后,只需要处理中断就好,不需要监控加密核状态。附图说明构成本公开的一部分的说明书附图用来提供对本公开的进一步理解,本公开的示意性实施例及其说明用于解释本申请,并不构成对本公开的不当限定。图1是用于实现高性能SM3算法的系统的结构图;图2是高性能SM3算法实现方法的流程图。具体实施方式下面结合附图与实施例对本公开作进一步说明。应该指出,以下详细说明都是例示性的,旨在对本公开提供进一步的说明。除非另有指明,本公开使用的所有技术和科学术语具有与本公开所属
的普通技术人员通常理解的相同含义。需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。一种或多种实施例提供一种用于实现高性能SM3算法的系统,有效提升SM3算法压缩处理性能,减少CPU参与数据处理的时间,减少数据输入不必要的等待时间。如图1所示,该系统包括配置寄存器、接口总线装置、数据管理装置和加密核,所述加密核分别与配置寄存器、数据管理装置连接,所述配置寄存器分别与接口总线装置、数据管理装置连接,所述接口总线装置还与数据管理装置连接。具体地,所述配置寄存器,用于配置数据长度和源地址信息,将配置的信息发送给接口总线装置和数据管理装置;还接收加密核反馈回的数据,并进行缓存。所述接口总线装置,用于接收配置寄存器发送的配置信息,从相应的地址选取待压缩的数据,发送到数据管理装置中。在本实施例中,所述接口总线装置包括依次连接的接口、总线和存储器,所述接口分别与配置寄存器本文档来自技高网
...

【技术保护点】
1.一种用于实现高性能SM3算法的系统,其特征是,该系统包括:配置寄存器,用于配置待压缩数据的有效数据长度和源地址信息,并将配置的信息发送给接口总线装置和数据管理装置;还接收加密核反馈回的处理后的数据,并进行缓存;接口总线装置,用于接收配置寄存器发送的配置信息,从相应的存储地址中选取出待压缩的数据,并发送到数据管理装置中;数据管理装置,用于接收接口总线装置发送的数据,根据配置寄存器发送的配置信息,判断最后一笔待压缩数据是否需要将数据补充成两笔,若不需要,则将最后一笔待压缩数据补充成一笔数据,并将补数操作后的数据进行缓存;若需要,则将最后一笔待压缩数据补充成两笔数据,并将补数操作后的数据进行缓存;加密核,用于从数据管理装置中读取待压缩的数据,采用SM3算法对数据进行迭代压缩处理,将处理后的数据反馈给配置寄存器;并产生相应的中断发送给CPU。

【技术特征摘要】
1.一种用于实现高性能SM3算法的系统,其特征是,该系统包括:配置寄存器,用于配置待压缩数据的有效数据长度和源地址信息,并将配置的信息发送给接口总线装置和数据管理装置;还接收加密核反馈回的处理后的数据,并进行缓存;接口总线装置,用于接收配置寄存器发送的配置信息,从相应的存储地址中选取出待压缩的数据,并发送到数据管理装置中;数据管理装置,用于接收接口总线装置发送的数据,根据配置寄存器发送的配置信息,判断最后一笔待压缩数据是否需要将数据补充成两笔,若不需要,则将最后一笔待压缩数据补充成一笔数据,并将补数操作后的数据进行缓存;若需要,则将最后一笔待压缩数据补充成两笔数据,并将补数操作后的数据进行缓存;加密核,用于从数据管理装置中读取待压缩的数据,采用SM3算法对数据进行迭代压缩处理,将处理后的数据反馈给配置寄存器;并产生相应的中断发送给CPU。2.根据权利要求1所述的用于实现高性能SM3算法的系统,其特征是,所述接口总线装置包括依次连接的接口、总线和存储器,所述接口分别与配置寄存器、数据管理装置连接,接收配置寄存器发送的配置信息,通过总线从存储器中将对应的地址存储的待压缩数据取出,并将获取的待压缩数据发送到数据管理装置中。3.根据权利要求1所述的用于实现高性能SM3算法的系统,其特征是,所述数据管理装置包括FIFO、补数控制器和缓存器,所述FIFO接收接口发送的数据,并进行缓存,判断待压缩的数据是否为最后一笔待压缩的数据,若不是,则将待压缩数据直接传输给缓存器;若是,则根据配置寄存器发送的配置信息,判断最后一笔待压缩数据是否需要将数据补充成两笔,若不需要,则将最后一笔待压缩数据发送给补数控制器将数据补充成一笔数据,再发送到缓存器中;若需要,则将最后一笔待压缩数据发送给补数控制器将数据补充成两笔数据,再发送到缓存器中;所述补数控制器对最后一笔待压缩数据进行补数操作,并将补数操作后的数据存储到缓存器中。4.一种高性能SM3算法实现方法,该方法基于权利要求1-3中任一项所述的用于实现高性能SM3算法的系统实现的,其特征是,该方法包括以下步骤:配置待压缩数据的有效数据长度和源地址;根据配置的源地址...

【专利技术属性】
技术研发人员:张洪柳张鹏程刘田明
申请(专利权)人:青岛方寸微电子科技有限公司
类型:发明
国别省市:山东,37

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

1