【技术实现步骤摘要】
基于FPGA安全哈希算法的数据加密方法及系统
[0001]本专利技术涉及信息加密及安全管理
,具体地说是一种基于FPGA安全哈希算法的数据加密方法及系统。
技术介绍
[0002]随着物联网的发展和AI技术的普及,对于算力和算法的要求越来越高。同时,对于信息的可控性和可验证性而言,无疑提出了更高的标准,因此,更加高级的加密方式,亦或者更加低的功耗,更多的应用场景,是当前信息安全研究的主流。
[0003]安全哈希算法(Secure Hash Algorithm)SHA1主要适用于数字签名标准(Digital Signature Standard DSS)里面定义的数字签名算法(Digital SignatureAlgorithm DSA)。对于长度小于2^64位的消息,SHA1会产生一个160位的消息摘要。当接收到消息时,这个消息摘要可以用来验证数据的完整性。在传输的过程中,数据很可能会发生变化,那么此时就会产生不同的消息摘要。SHA1有如下特性:不可以从消息摘要中复原信息;两个不同的消息不会产生同样的消息摘要。
[0004]哈希算法又被称为杂凑运算,是一种单向散列变换,其通过单向散列函数把输入消息映射为固定长度的输出字符串。当输入消息发生变化时,生成的哈希值相应的也会发生变化。相关理论研究已证明由哈希值计算出输入消息是极其困难的,哈希算法在公钥密码体制及消息完整性验证方面发挥着重要作用。自1989Ronald Rivest设计了MD2、MD4、SHA256以及我国自行制定的SM3后,各种哈希算法纷 ...
【技术保护点】
【技术特征摘要】
1.一种基于FPGA安全哈希算法的数据加密方法,其特征在于,该方法是通过FPGA的运算,实现安全哈希算法中的SHA
‑
1算法,并对多条信息进行编程,接触单条哈希安全算法的长度限制,同时采用FPGA并行流水线的特性,实现快速的数据运算,使得消息解密能够快速并行;具体如下:数据进入和数据拆解;数据分类;数据加工和数据求和;将处理后的数据输出给上位机,完成SHA
‑
1安全哈希算法。2.根据权利要求1所述的基于FPGA安全哈希算法的数据加密方法,其特征在于,数据进入和数据拆解具体如下:将多端数据输入需要加密的哈希安全系统中,通过后续的数据处理完毕结果控制DDR4数据存储读写模块的数据输出,完成数据处理后,拉高DDR4数据存储读写模块的ready信号,让下一个需要加密的信息输入进来,同时通过位宽和限制和FIFO缓存模块;数据通过FIFO缓存模块交替进入,控制FIFO缓存模块深度为512bits,让其匹配SHA
‑
1加密要求;进入DDR4数据存储读写模块进行锁存和输出;DDR4数据存储读写模块的输出结果随着counter计数器的控制,依次放于FIFO0
‑
FIFO15寄存器当中进行初步的数据分类,位宽为32bits,每一个FIFO缓存模块中的32bits单元数计为M[k]。3.根据权利要求1或2所述的基于FPGA安全哈希算法的数据加密方法,其特征在于,数据分类是分配80个寄存器,将原有的数据经过处理依次放入,具体如下:将fifo0
‑
15的数据放于reg0
‑
15,后续对于reg16
‑
79的数据X,将基于W[x]=RegX=(W[x
‑
3]
⊕
W[x
‑
8]
⊕
W[x
‑
14]
⊕
W[x
‑
16])的关系,通过异或器和加法器的运算单元实现;其中,x为对应寄存器且15<x<80;数据处理完成后,将初步加密完成的数据放于reg0
‑
reg79中。4.根据权利要求3所述的基于FPGA安全哈希算法的数据加密方法,其特征在于,数据加工和数据求和具体如下:将reg0
‑
reg79的数据依通过计算迭代模块,SHA1有4轮运算,每一轮包括20个步骤,一共80步,当第1轮运算中的第1步骤开始处理时,A、B、C、D、E五个链接变量中的值先赋值到另外5个记录单元A,B,C,D,E,记录单元A,B,C,D,E的5个值将保留,用于在第4轮的最后一个步骤完成后,与链接变量A,B,C,D,E进行求和操作;其中,SHA1的4轮运算,共80个步骤使用同一个操作程序,具体如下:A,B,C,D,E
←
[(A<<<5)+fx(B,D,C))+E+Wx+Kx],A,(B<<<30),C,D;其中,fx(B,D,C)为逻辑函数;Wx为子明文分组W[t];Kx为固定常数;该作程序的意义为:
①
、将[(A<<<5)+fx(B,D,C)+E+Wx+Kx]的结果赋值给链接变量A;
②
、将链接变量A初始值赋值给链接变量B;
③
、将链接变量B初始值循环左移30位赋值给链接变量C;
④
、将链接变量C初始值赋值给链接变量D;
⑤
、将链接变量D初始值赋值给链接变量E;同时设定ABCDE初始值分别为A=0x67452301;B=0xEFCDAB89;C=0x98BADC FE;D=0x10325476;E=0xC3D2E1F0;通过仲裁操作依次进入计算迭代模块进行数据的再加密,加工后输出的值为H0,H1,H2,H3,H4,后与初始值ABCDE分别相加,得到S0,S1,S2,S3,S4;fx(B,C,D)及Kx四轮逻辑函数具体如下:<...
【专利技术属性】
技术研发人员:李炳坤,赵鑫鑫,姜凯,李锐,
申请(专利权)人:山东浪潮科学研究院有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。