生成哈希值的装置和方法

文档序号:9865737阅读:1743来源:国知局
生成哈希值的装置和方法
【技术领域】
[0001] 本发明设及计算机技术领域,特别设及一种生成哈希值的装置和方法。
【背景技术】
[0002] 目前,哈希算法应用在诸如计算机或者存储等众多领域中,哈希算法能够将任意 长度的消息映射成一个固定长度的哈希值,并且,一个消息唯一映射出一个哈希值,即使改 变该消息中的一个字符,该消息的哈希值也会发生变化,从而能够抵抗哈希碰撞。
[0003] 为了提高生成哈希值的系统带宽,目前生成哈希值的装置包括m个生成哈希值的 生成通道,m是大于或等于2的整数;每个生成通道包括数据输入通道,数据分块模块,运算 资源通道和数据输出通道,并且,数据输入通道,数据分块模块,运算资源通道和数据输出 通道依次连接;其中,运算资源通道用于存储运算资源。
[0004] 数据输入通道用于接收待计算哈希值的数据,并将该数据传输给数据分块模块; 数据分块模块用于对该数据进行分块,得到多个数据块,并将该多个数据块传输给运算资 源通道;运算资源通道用于通过该运算资源和哈希算法,对该多个数据块进行哈希运算,得 到该数据的哈希值,并将该哈希值传输给数据输出通道;数据输出通道用于将该哈希值输 出。
[0005] 现有技术至少存在W下问题:
[0006] 现有技术中m个生成通道需要m份运算资源,从而增加了运算资源的开销。

【发明内容】

[0007] 为了解决现有技术的问题,本发明实施例提供了一种生成哈希值的装置和方法。 技术方案如下:
[000引第一方面,本发明实施例提供了一种生成哈希值的装置,所述装置包括:m个数据 输入通道,m个数据分块模块,一个运算资源通道和m个数据输出通道,m是大于或等于2的整 数;
[0009] 所述m个数据输入通道分别连接所述m个数据分块模块,一个数据输入通道连接一 个数据分块模块;
[0010] 所述m个数据分块模块分别连接所述运算资源通道,所述运算资源通道分别连接 所述m个数据输出通道;
[0011] 所述m个数据输入通道,用于接收m路数据,并将所述m路数据传输给m个数据分块 模块,一个数据输入通道用于接收一路数据;
[0012] 所述m个数据分块模块,用于对所述m路数据进行分块处理,得到m组数据块,并将 所述m组数据块传输给所述运算资源通道,一个数据分块模块用于对一路数据进行分块处 理;
[0013] 所述运算资源通道,用于复用相同的第一运算资源对所述m组数据块进行哈希运 算得到m个哈希值,并将所述m个哈希值传输给所述m个数据输出通道,一组数据块对应一个 哈希值;
[0014] 所述m个数据输出通道,用于输出所述m个哈希值,一个输出通道输出一个哈希值。
[0015] 在本发明实施例提供的生成哈希值的装置中,通过对时间进行分片,复用相同的 第一运算资源分别计算m路数据的哈希值,从而节省了运算资源的开销。
[0016] 在一种可能的设计中,所述装置还包括:第一决策模块;
[0017] 所述m个数据分块模块分别连接所述第一决策模块,所述第一决策模块连接所述 运算资源通道;
[0018] 所述第一决策模块,用于对所述m组数据块进行排序;
[0019] 所述运算资源通道,还用于根据所述m组数据块的顺序,复用相同的第一运算资源 对所述m组数据块进行哈希运算得到m个哈希值。
[0020] 在一种可能的设计中,第一决策模块可W对m组数据块进行排序,将排序后的m组 数据块传输给运算资源通道,从而实现有序处理,可W对该m组数据块进行有效控制。
[0021 ]在另一种可能的设计中,所述第一决策模块包括第一选择器和m个第一决策器;
[0022] 所述m个数据分块模块分别连接所述m个第一决策器,一个数据分块模块连接一个 第一决策器;
[0023] 所述m个第一决策器分别连接所述第一选择器;所述第一选择器连接所述运算资 源通道;
[0024] 所述m个第一决策器,用于从所述m组数据块中筛选出有效数据块,得到m组有效数 据块,并将所述m组有效数据块传输给所述第一选择器;
[0025] 所述第一选择器,用于对所述m组有效数据块进行排序。
[0026] 在另一种可能的设计中,m个第一决策器可W将从m组数据块中筛选出m组有效数 据块,第一选择器可W对m组有效数据块进行排序,从而运算资源通道可W仅对有效数据块 进行处理,节省了第一运算资源,同时提高了处理效率。
[0027] 在另一种可能的设计中,所述装置还包括:数据寄存器;
[0028] 所述第一选择器连接所述数据寄存器,所述数据寄存器连接所述运算资源通道;
[0029] 所述数据寄存器用于存储排序后的m组有效数据块。
[0030] 在另一种可能的设计中,第一选择器将排序后的m组有效数据块存储在数据寄存 器中,运算资源通道依次从数据寄存器中读取有效数据块,并对该有效数据块进行哈希运 算。从而运算资源模块每次读取数据块时,不需要进行选择,直接读取即可,从而提高了处 理效率。
[0031 ]在另一种可能的设计中,所述运算资源通道包括计算模块和第二决策模块;
[0032] 所述m个数据分块模块分别连接所述计算模块,所述计算模块连接所述第二决策 模块,所述第二决策模块分别连接所述m个数据输出通道;
[0033] 所述m个数据分块模块,还用于在所述m组数据块中的每组数据块的最后一个数据 块中添加结束标志;
[0034] 所述计算模块,还用于复用相同的第一运算资源,通过迭代哈希算法对所述m组数 据块进行哈希运算得到m个哈希值,并将所述m个哈希值传输给所述第二决策模块;
[0035] 所述第二决策模块,用于从所述m路数据的哈希值中选择包括结束标志的数据块 的哈希值,将所述选择的哈希值传输给数据输出通道,将所述m个哈希值中未选择的哈希值 传输给所述计算模块。
[0036] 在另一种可能的设计中,通过迭代哈希算法能够提高哈希值的抵抗哈希碰撞性, 提高了哈希值的准确性。
[0037] 在另一种可能的设计中,所述第二决策模块包括第二选择器和m个第二决策器;
[0038] 所述计算模块连接所述第二选择器,所述第二选择器分别连接所述m个第二决策 器;
[0039] 所述m个第二决策器分别连接所述m个数据输出通道,一个第二决策器连接一个数 据输出通道;
[0040] 所述计算模块,还用于将所述m个哈希值传输给所述第二选择器;
[0041] 所述第二选择器,用于将所述m个哈希值传输给所述m个第二决策器,一个哈希值 对应一个第二决策器.
[0042] 所述m个第二决策器,用于从所述m路数据的哈希值中选择包括结束标志的数据块 的哈希值,将所述选择的哈希值传输给数据输出通道,将所述未选择的哈希值传输给所述 计算模块。
[0043] 在另一种可能的设计中,通过迭代哈希算法能够提高哈希值的抵抗哈希碰撞性, 提高了哈希值的准确性。
[0044] 在另一种可能的设计中,所述第二决策模块,还包括:m个哈希存储模块;
[0045] 所述第二选择器分别连接所述m个哈希存储模块;
[0046] 所述m个哈希存储模块分别连接所述m个第二决策器,一个哈希存储模块连接一个 第二决策器;
[0047] 所述m个哈希存储模块,用于存储所述未选择的哈希值。
[0048] 在另一种可能的设计中,哈希存储模块用于存储未选择的哈希值,从而计算模块 可W从哈希存储模块中读取未选择的哈希值,从而根据未选择的哈希值,计算数据块的哈 希值,提高了哈希值的准确性。
[0049] 在另一种可能的设计中,所述计算模块包括η级计算单元,η是大于或等于2的整 数;
[0050] 所述η级计算单元,用于复用相同的第一运算资源,通过迭代哈希算法对所述m组 数据块中的每个数据块进行哈希运算。
[0051] 在另一种可能的设计中,通过η级计算单元,可W提高系统带宽。
[0052] 在另一种可能的设计中,所述装置还包括:哈希寄存器;
[0053] 所述运算资源通道连接所述哈希寄存器,所述哈希寄存器分别连接所述m个数据 输出通道;
[0054] 所述哈希寄存器用于存储所述m路数据的哈希值。
[0055] 在另一种可能的设计中,哈希寄存器用于存储m组数据块中的每个数据块的哈希 值,从而暂存该哈希值能够实现对该哈希值的有效控制。
[0056] 在另一种可能的设计中,所述装置还包括:m个数据存储模块;
[0057] 所述m个数据分块模块分别连接所述m个数据存储模块,一个数据分块模块连接一 个数据存储模块;
[0058] 所述m个数据存储模块分别连接所述运算资源通道;
[0059] 所述m个数据存储模块,用于存储所述m组数据块。
[0060] 在另一种可能的设计中,数据存储模块用于存储数据分块模块传输的该组数据 块,还用于该组数据块的运算指令,该运算指令可W为开始、暂停和/或结束等指令。从而可 W实现对每路数据进行独立控制。
[0061] 在另一种可能的设计中,所述装置还包括:随路计算通道;
[0062] 所述m个数据分块模块分别连接所述随路计算通道,所述随路计算通道分别连接 所述m个数据输出通道;
[0063] 所述m个数据分块模块,还用于将所述m组数据块传输给所述随路计算通道;
[0064] 所述随路计算通道,用于复用相同的第二运算资源对所述m组数据块进行随路运 算,得到m个随路值,并将所述m个随路值传输给所述m个数据输出通道,一组数据块对应一 个随路值;
[0065] 所述m
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1