[发明专利]基于片上内存的SHA512全流水电路及其实现方法有效
申请号: | 201810587475.3 | 申请日: | 2018-06-06 |
公开(公告)号: | CN108959168B | 公开(公告)日: | 2020-09-18 |
发明(设计)人: | 李晓潮;张琪;林少宇;黄鹭;王炫榕 | 申请(专利权)人: | 厦门大学 |
主分类号: | G06F15/78 | 分类号: | G06F15/78 |
代理公司: | 厦门南强之路专利事务所(普通合伙) 35200 | 代理人: | 马应森 |
地址: | 361005 *** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 内存 sha512 流水 电路 及其 实现 方法 | ||
1.基于片上内存的SHA512全流水电路,其特征在于设有消息填充模块、Wt值生成模块、BRAM数据存储模块、全流水哈希运算模块和加法器模块,所述消息填充模块、Wt值生成模块、BRAM数据存储模块、全流水哈希运算模块和加法器模块按顺序连接;所述Wt值生成模块将读取扩充后的原始数据,依次生成5组共80个Wt值,所述读取扩充后的原始数据构成SHA-512运算所需要的5组数据,其中第1组是消息填充模块的输出数据,剩余4组是通过Wt值生成模块输出的数据,所述5组数据均存储至BRAM数据存储模块中;所述全流水哈希运算模块设有5个哈希运算组,每组16轮哈希运算,整个模块共将实现80轮哈希运算的全流水运算过程,除第一轮哈希运算会读取8个初始哈希值a~h外,后续每轮哈希运算将会读取BRAM存储中的数据和上一轮的哈希运算数据进行计算;
基于片上内存的SHA512全流水的实现方法包括以下步骤:
1)消息填充模块对原始输入数据进行读取,并将消息数据转化为二进制,在消息的结束位置加上结束标志“1”,填充多个“0”,最后加上128位的消息长度信息进行填充,使消息长度为1024的整数倍数,则之后进入SHA-512算法进行运算的数据,位数均为1024的整数倍数;
2)Wt值生成模块将读取填充后的原始数据,将这1024位数据分为每块64位的16个小块,即第一组哈希运算所需的Wt值W0~W15,之后经过移位、异或的非线性函数计算依次生成后续4组Wt值,即W16~W31、W32~W47、W48~W63、W64~W79;
3)Wt值生成模块生成的Wt值将存入BRAM数据存储模块;
4)全流水哈希运算模块实现80轮哈希循环运算过程;
5)加法器模块的一个输入为哈希运算的最后输出,加法器模块的另一个输入为原始输入数据中的8个初始哈希值a~h,两者相加,即得到了SHA-512算法电路的最终512位信息摘要输出。
2.如权利要求1所述基于片上内存的SHA512全流水电路,其特征在于所述消息填充模块读取原始输入数据,并将消息数据填充至1024位的整数倍数。
3.如权利要求1所述基于片上内存的SHA512全流水电路,其特征在于所述加法器模块的一个输入与哈希运算的输出连接,加法器模块的另一输入为原始输入数据中的8个初始哈希值a~h,将两者相加后得到SHA-512算法的512位信息摘要输出。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于厦门大学,未经厦门大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810587475.3/1.html,转载请声明来源钻瓜专利网。