基于FPGA安全哈希算法的数据加密方法及系统技术方案

技术编号:37416159 阅读:15 留言:0更新日期:2023-04-30 09:40
本发明专利技术公开了一种基于FPGA安全哈希算法的数据加密方法及系统,属于信息加密及安全管理技术领域,本发明专利技术要解决的技术问题为如何解除单条哈希安全算法的长度限制,同时能够更快速的实现数据运算,确保更快速的对消息进行解密,采用的技术方案为:该方法是通过FPGA的运算,实现安全哈希算法中的SHA

【技术实现步骤摘要】
基于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所示。
[0005]故如何解除单条哈希安全算法的长度限制,同时能够更快速的实现数据运算,确保更快速的对消息进行解密是目前亟待解决的技术问题。

技术实现思路

[0006]本专利技术的技术任务是提供一种基于FPGA安全哈希算法的数据加密方法及系统,来解决如何解除单条哈希安全算法的长度限制,同时能够更快速的实现数据运算,确保更快速的对消息进行解密的问题。
[0007]本专利技术的技术任务是按以下方式实现的,一种基于FPGA安全哈希算法的数据加密方法,该方法是通过FPGA的运算,实现安全哈希算法中的SHA

1算法,并对多条信息进行编程,接触单条哈希安全算法的长度限制,同时采用FPGA并行流水线的特性,实现快速的数据运算,使得消息解密能够快速并行;具体如下:
[0008]数据进入和数据拆解;
[0009]数据分类;
[0010]数据加工和数据求和;
[0011]将处理后的数据输出给上位机,完成SHA

1安全哈希算法。
[0012]作为优选,数据进入和数据拆解具体如下:
[0013]通过DDR4的大容量储存和高速传输的特点,将多端数据输入需要加密的哈希安全系统中,通过后续的数据处理完毕结果控制DDR4数据存储读写模块的数据输出,完成数据处理后,拉高DDR4数据存储读写模块的ready信号,让下一个需要加密的信息输入进来,同时通过位宽和限制和FIFO缓存模块,保证进行操作的数据都是符合加密的格式要求的;
[0014]数据通过FIFO缓存模块交替进入,控制FIFO缓存模块深度为512bits,让其匹配SHA

1加密要求;
[0015]进入DDR4数据存储读写模块进行锁存和输出;
[0016]DDR4数据存储读写模块的输出结果随着counter计数器的控制,依次放于FIFO0

FIFO15寄存器当中进行初步的数据分类,位宽为32bits,每一个FIFO缓存模块中的32bits单元数计为M[k]。
[0017]更优地,数据分类是分配80个寄存器,将原有的数据经过处理依次放入,具体如下:
[0018]将fifo0

15的数据放于reg0

15,后续对于reg16

79的数据X,
[0019]将基于的关系,通过异或器和加法器的运算单元实现;其中,x为对应寄存器且15<x<80;
[0020]数据处理完成后,将初步加密完成的数据放于reg0

reg79中。
[0021]更优地,数据加工和数据求和具体如下:
[0022]将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进行求和操作;
[0023]其中,SHA1的4轮运算,共80个步骤使用同一个操作程序,具体如下:
[0024]A,B,C,D,E

[(A<<<5)+fx(B,D,C))+E+Wx+Kx],A,(B<<<30),C,D;
[0025]其中,fx(B,D,C)为逻辑函数;Wx为子明文分组W[t];Kx为固定常数;该作程序的意义为:
[0026]①
、将[(A<<<5)+fx(B,D,C)+E+Wx+Kx]的结果赋值给链接变量A;
[0027]②
、将链接变量A初始值赋值给链接变量B;
[0028]③
、将链接变量B初始值循环左移30位赋值给链接变量C;
[0029]④
、将链接变量C初始值赋值给链接变量D;
[0030]⑤
、将链接变量D初始值赋值给链接变量E;
[0031]同时设定ABCDE初始值分别为A=0x67452301;B=0xEFCDAB89;C=0x98BADCFE;D=0x10325476;E=0xC3D2E1F0;通过仲裁操作依次进入计算迭代模块进行数据的再加密,加工后输出的值为H0,H1,H2,H3,H4,后与初始值ABCDE分别相加,得到S0,S1,S2,S3,S4;
[0032]fx(B,C,D)及Kx四轮逻辑函数具体如下:
[0033]①
、步骤0≤x≤19:函数定义fx(B,C,D)=(B
·
C)V(

B
·
D);
[0034]函数定义Kx=5A827999;
[0035]②
、步骤20≤t≤39:函数定义fx(B,C,D)=B

C

D;
[0036]函数定义Kx=ED9EBA1;
[0037]③
、步骤40≤x≤59:函数定义fx(B,C,D)=本文档来自技高网
...

【技术保护点】

【技术特征摘要】
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四轮逻辑函数具体如下:<...

【专利技术属性】
技术研发人员:李炳坤赵鑫鑫姜凯李锐
申请(专利权)人:山东浪潮科学研究院有限公司
类型:发明
国别省市:

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

1