一种摘要计算器及摘要计算方法与流程

文档序号:36011613发布日期:2023-11-17 05:55阅读:30来源:国知局
一种摘要计算器及摘要计算方法与流程

本技术涉及数字电路,特别是涉及一种摘要计算器及摘要计算方法。


背景技术:

1、随着网络信息技术的发展,数据传输的安全性也越来越重要。哈希算法(又称为摘要算法)是一种单向散列算法,用于将任意长度的消息输入转换成固定长度的摘要输出,广泛地应用于数字签名,密码保护以及数据完整性检验等领域,是信息安全相关芯片的重要功能部分。

2、哈希算法的实现方式包括软件实现和硬件实现两种方式。对于软件实现,使用软件实现哈希算法的灵活性较高,但是运算速率较慢,安全性较低,无法满足高性能的需求。对于硬件实现,现有的研究主要包括两个方面,一是对单一哈希算法的硬件结构进行速度优化,二是对集成多种哈希算法硬件结构的可重构研究。

3、传统的单个哈希算法实现形式固定且资源开销大,只能实现单个算法的加密,不能灵活配置。而对于集成多种哈希算法硬件结构的可重构实现,目前存在寄存器复用不充分,重构算法数量少,可重构层次不够深入等问题。


技术实现思路

1、本技术实施例的目的在于提供一种摘要计算器及摘要计算方法,以实现多种摘要算法的计算。具体技术方案如下:

2、第一方面,本技术实施例提供了一种摘要计算器,所述摘要计算器包括多个寄存器、数据拓展迭代电路和迭代压缩电路;所述多个寄存器分别与所述数据拓展迭代电路和迭代压缩电路连接;

3、所述多个寄存器,用于存储消息的摘要数据;

4、所述数据拓展迭代电路,用于获取算法选择指令,所述算法选择指令包括当前摘要算法和所述当前摘要算法对应的摘要数据的位置符;从所述数据拓展迭代电路连接的每个寄存器中所述位置符指示的位置处读取摘要数据,并按照所述当前摘要算法对所述摘要数据进行数据拓展和迭代压缩,得到第一摘要数据,将所述第一摘要数据更新至数据拓展迭代电路连接的每个寄存器;

5、所述迭代压缩电路,用于获取算法选择指令,所述算法选择指令包括当前摘要算法和所述当前摘要算法对应的摘要数据的位置符;从所述迭代压缩电路连接的每个寄存器中所述位置符指示的位置处读取摘要数据,并按照所述当前摘要算法对所述摘要数据进行迭代压缩,得到第二摘要数据,将所述第二摘要数据更新至所述迭代压缩电路连接的每个寄存器。

6、可选的,每个寄存器的存储位分为第一高存储位和第一低存储位,所述第一高存储位和第一低存储位的位宽相同;

7、所述第一高存储位和第一低存储位分别用于存储第一类摘要算法对应的摘要数据;所述第一类摘要算法为摘要计算的位宽小于等于一个寄存器的位宽一半的摘要算法;

8、所述第一高存储位和第一低存储位共同用于存储第二类摘要算法对应的摘要数据;所述第二类摘要算法为摘要计算的位宽大于一个寄存器的位宽一半的摘要算法。

9、可选的,所述多个寄存器中,关联摘要算法最少的存储位和关联摘要算法最多的存储位之间关联摘要算法数量差值小于等于预设差值。

10、可选的,所述数据拓展迭代电路和迭代压缩电路分别包括加法器;

11、所述加法器对应第一划分规则和第二划分规则;

12、所述第一划分规则与所述第一类摘要算法关联,所述第一划分规则为:所述加法器的存储位划分为第二高存储位、隔离位和第二低存储位,所述第二高存储位和第二低存储位通过隔离位进行隔离,所述第二高存储位存储所述第一高存储位中的摘要数据,所述第二低存储位存储所述第一低存储位中的摘要数据,所述第二高存储位、第二低存储位、第一高存储位和第一低存储位的位宽相同;

13、所述第二划分规则与所述第二类摘要算法关联,所述第二划分规则为:所述加法器的存储位划分为空置位和数据位,所述数据位存储所述寄存器中的摘要数据,所述空置位位于高位或低位。

14、可选的,所述算法选择指令包括算法分类位、高位算法指示位和低位算法指示位;

15、所述算法分类位,用于指示所述当前摘要算法是否为所述第二类摘要算法;

16、所述高位算法指示位,用于在所述当前摘要算法不是所述第二类摘要算法时,指示所述第一高存储位中的摘要数据对应的第一类摘要算法;

17、所述低位算法指示位,用于在所述当前摘要算法不是所述第二类摘要算法时,指示所述第一低存储位中的摘要数据对应的第一类摘要算法。

18、第二方面,本技术实施例提供了一种摘要计算方法,应用于摘要计算器,所述方法包括:

19、获取算法选择指令,所述算法选择指令包括当前摘要算法和所述当前摘要算法对应的摘要数据的位置符;

20、从每个寄存器中所述位置符指示的位置处读取摘要数据;

21、按照所述当前摘要算法对所述摘要数据进行数据拓展和/或迭代压缩,得到摘要数据;将所述摘要数据更新至每个寄存器。

22、可选的,每个寄存器的存储位分为第一高存储位和第一低存储位,所述第一高存储位和第一低存储位的位宽相同;

23、所述第一高存储位和第一低存储位分别用于存储第一类摘要算法对应的摘要数据;所述第一类摘要算法为摘要计算的位宽小于等于一个寄存器的位宽的一半的摘要算法;

24、所述第一高存储位和第一低存储位共同用于存储第二类摘要算法对应的摘要数据;所述第二类摘要算法为摘要计算的位宽大于一个寄存器的位宽的一半的摘要算法。

25、可选的,所述当前摘要算法包括第一摘要算法和第二摘要算法,所述第一摘要算法和第二摘要算法属于所述第一类摘要算法,且所述第一摘要算法对应的位置符指示第一高存储位,所述第二摘要算法对应的位置符指示第一低存储位;

26、所述按照所述当前摘要算法对所述摘要数据进行数据拓展和/或迭代压缩,得到摘要数据的步骤,包括:

27、按照所述第一摘要算法,对所述第一高存储位中的摘要数据进行数据拓展和/或迭代压缩,得到第一目标摘要数据;按照所述第二摘要算法,对所述第一低存储位中的摘要数据进行数据拓展和/或迭代压缩,得到第二目标摘要数据;

28、所述将所述摘要数据更新至每个寄存器的步骤,包括:

29、将所述第一目标摘要数据更新至每个寄存器中的所述第一高存储位,将所述第二目标摘要数据更新至每个寄存器中的所述第一低存储位。

30、可选的,所述算法选择指令包括算法分类位、高位算法指示位和低位算法指示位;所述方法还包括:

31、根据所述算法分类位,确定当前摘要算法是否为所述第二类摘要算法;

32、在所述当前摘要算法不是所述第二类摘要算法时,根据所述高位算法指确定所述第一高存储位中的摘要数据对应的第一摘要算法;根据所述低位算法指示位,确定所述第一低存储位中的摘要数据对应的第二摘要算法。

33、可选的,所述从每个寄存器中所述位置符指示的位置处读取摘要数据,包括:

34、根据所述第一摘要算法对应的位置符,确定所述寄存器中的第一高存储位,从所述第一高存储位处读取所述第一摘要算法对应的摘要数据;

35、根据所述第二摘要算法对应的位置符,确定所述寄存器中的第一低存储位,从所述第一低存储位处读取所述第二摘要算法对应的摘要数据。

36、本技术实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的摘要计算方法。

37、本技术实施例有益效果:

38、本技术实施例提供的一种摘要计算器,将摘要计算器分为数据拓展迭代电路和迭代压缩电路,通过数据拓展迭代电路实现需要进行数据拓展和迭代压缩的摘要算法,通过迭代压缩电路实现只需要进行迭代压缩的摘要算法。相较于以前的摘要计算器,对现有的摘要计算器进行了更深层次的重构,在现有摘要计算电路的基础上,既可以实现需要进行数据拓展和迭代压缩的摘要算法,也可以实现只需要进行迭代压缩的摘要算法,因此,本技术实施例提供的摘要计算器实现了多种哈希算法,最大化的重复利用加法器和寄存器资源,极大减小了硬件面积。数据拓展迭代电路和迭代压缩电路灵活可配置,可以实现对多种摘要算法的计算。在多种需要摘要计算的场景,在摘要计算器启动的同时,算法选择指令指明当前运算采用何种摘要算法以及摘要数据,实现某一摘要算法时完成加法器及数据通路的选择,并根据选择的摘要算法以及摘要数据来完成摘要计算。

39、当然,实施本技术的任一产品或方法并不一定需要同时达到以上所述的所有优点。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1