一种增强SHA256算法运行速度、安全性的方法及其系统技术方案

技术编号:37242847 阅读:22 留言:0更新日期:2023-04-20 23:23
本发明专利技术提供一种增强SHA256算法运行速度、安全性的方法及其系统,方法应用于SHA256加密电路;对所述消息块依次进行逻辑运算中任意消息的逻辑运算的过程具体为,用计数控制单元对任意消息块的循环压缩处理次数进行计数判断并确定数据流向;在对任意消息块进行前十六次循环压缩处理时,消息块内对应的数据由所述消息预处理模块传输至循环压缩模块进行循环压缩并输出循环压缩结果。本发明专利技术的有益效果:通过改变数据流向,将传统SHA算法的线性结构改为叉状树结构;通过减少数据流经的路径来提升算法的运行速度;将消息拓展和循环压缩的计数控制置于上级模块,通过减少使用的寄存器和占用的内存来提升算法的运行速度。用的内存来提升算法的运行速度。用的内存来提升算法的运行速度。

【技术实现步骤摘要】
一种增强SHA256算法运行速度、安全性的方法及其系统


[0001]本专利技术涉及安全领域应用密码学的
,尤其涉及增强SHA256算法运行速度、安全性方法及其系统。

技术介绍

[0002]SHA256是SHA

2下细分出的一种算法。SHA

2,名称来自于安全散列算法2(英语:Secure Hash Algorithm 2)的缩写,一种密码散列函数算法标准,由美国国家安全局研发,属于SHA算法之一,是SHA

1的后继者。SHA

2下又可再分为六个不同的算法标准,包括了:SHA

224、SHA

256、SHA

384、SHA

512、SHA

512/224、SHA

512/256。这些变体除了生成摘要的长度、循环运行的次数等一些微小差异,算法的基本结构是一致的。
[0003]SHA256的算法应用的层面很广,安全领域很多地方都需要用到SHA256算法,而因为使用的场景太多对该算法的攻击手段也有了很多,对SHA256的应用属于比较底层并且基础的,经常需要大量的重复使用,并且每一次最小单位运算也至少需要48次拓展计算和64次循环压缩,所以就算是很小的改动也能使整个运算过程加快速度。而运算中的逻辑函数和公式是很难改进的,改进的结果和原来的效率提升也很难观察,所以现有的SHA256算法的加速过程只能从结构上的改进入手,而只要能在每一次运算中提升微小的运算速度,就能产生较大的影响。

技术实现思路

[0004]本部分的目的在于概述本专利技术的实施例的一些方面以及简要介绍一些较佳实施例。在本部分以及本申请的说明书摘要和专利技术名称中可能会做些简化或省略以避免使本部分、说明书摘要和专利技术名称的目的模糊,而这种简化或省略不能用于限制本专利技术的范围。
[0005]鉴于上述现有存在的问题,提出了本专利技术。
[0006]因此,本专利技术解决的技术问题是:一是解决SHA256算法的增加运行速度的问题,二是安全性问题。
[0007]为解决上述技术问题,本专利技术提供如下技术方案:一种增强SHA256算法运行速度的方法,所述方法应用于SHA256加密电路;包括以下步骤,初始数据在消息预处理模块中进行数据分组并形成消息块;对若干所述消息块依次进行逻辑运算,生成256位的哈希值;对若干所述消息块依次进行逻辑运算中任意消息的逻辑运算的过程具体为,用计数控制单元对任意消息块的循环压缩处理次数进行计数判断并确定数据流向;在对任意消息块进行前十六次循环压缩处理时,消息块内对应的数据由所述消息预处理模块传输至循环压缩模块进行循环压缩并输出循环压缩结果;在对任意消息块进行前十七次到第六十四次循环压缩处理时,将消息块传输至所述消息拓展模块进行消息拓展,然后将消息拓展结果传输至所述循环压缩模块进行循环压缩并输出循环压缩结果;在对任意消息块进行第十六次循环压缩处理时,进行循环压缩的同时进行第十七次循环压缩前将消息块传输至所述消息拓展模块进行消息拓展。
[0008]优选的,还包括对所述计数控制单元的改进步骤,将所述计数控制单元设置于所述消息预处理模块内;将所述消息拓展模块和所述循环压缩模块统一使用所述计数控制单元中的同一组计数用寄存器;删除原SHA256算法中哈希值的8组寄存器,并修改数据传输路径来代替这一步的储存行为;所述消息拓展模块和所述循环压缩模块同时和所述消息预处理模块相连。
[0009]优选的,所述计数控制单元确定数据流向包括以下步骤,在单个消息块中,所述计数控制单元在前十五次的计数中,此阶段内所述消息预处理模块仅向所述循环压缩模块传输数据;在所述计数控制单元的第十六次计数的阶段中,所述消息预处理模块同时向所述消息拓展模块和所述循环压缩模块传输数据;在所述计数控制单元的第十七次计数到第六十四次计数的阶段中,所述消息预处理模块仅向所述消息拓展模块传递数据。
[0010]优选的,所述计数控制单元计数判断包括以下步骤,从0开始计数,即计数为0时是第一次;若计数小于等于15,则将16组32位数据数据输入到所述循环压缩模块,进行多个步骤的循环压缩处理;若计数大于等于15,则对数据块进行消息拓展处理,形成48组32位数据,然后再将数据传输到所述循环压缩模块进行循环压缩处理。
[0011]优选的,所述消息拓展模块的消息拓展过程包括如下拓展步骤,将所述16组32位数据拓展成为48组32位数据,逻辑运算过程中每次运算中都对多组32位的数据进行逻辑运算并最终输出一组32位字节函数;然后对48组32位数据分别进行循环压缩处理,并将结果存入8组32位寄存器;所述循环压缩模块每次从消息拓展模块获得一组32位数据,并对一组数据进行运算。
[0012]优选的,对消息块依次进行逻辑运算还包括以下步骤,每个消息块完成全部处理后输出的最后一组数据参与下一个消息块的处理中前十六次处理的循环压缩运算;当只有一个消息块则将其完成全部处理后输出的最后一组数据输出为最终的由8组32位数据组成的256位哈希值。
[0013]优选的,输入不定长初始数据的实际运行过程,包括以下步骤,S1:对初始数据进行消息预处理得到若干个16组32位消息块;S2:对任意的16组32位消息块进行计数判断,并根据判断结果进行相应的循环压缩或循环压缩和消息拓展处理;进行64次处理,得到最后的8组32位数据并存入8组32位寄存器;S3:若步骤S1只产生单个消息块就执行步骤S4,若步骤S1产生多个消息块,就将S2得到的8组32位数据参与步骤S2的循环压缩运算并继续重复步骤S2,直至所有消息块处理完毕;S4:输出8组32位寄存器的储存值,即加密得到的256位哈希值。
[0014]优选的,所述初始数据的消息预处理包括以下步骤,对不定长的初始数据分块,并对每个数据块附加填充比特值,直到数据长度满足对512取模后的余数是448,多余的数据放入下一个数据块;对处理后的若干组数据块附加64位的长度信息使其形成若干组16组32位消息块。
[0015]本专利技术还提供一种增强SHA256算法运行速度的系统,包括消息预处理模块、消息拓展模块和循环压缩模块,所述消息拓展模块和所述循环压缩模块两个模块同时和所述消息预处理模块相连,其中每个模块都包括数据输入单元和数据输出单元,且所述消息预处理模块包括数据处理单元,所述消息拓展模块和所述循环压缩模块均包括逻辑运算单元;所述消息预处理模块的数据输出单元中还包括计数控制单元,其用于消息块循环压缩次数
的计数判断,并根据判断结果控制数据流向;所述消息预处理模块用于对输入的初始数据进行预处理,并用于将处理的数据传输至所述消息拓展模块和所述循环压缩模块;所述消息拓展模块用于接收所述消息预处理模块传输的数据并进行消息拓展;所述循环压缩模块用于接收所述消息预处理模块传输的数据并进行循环压缩。
[0016]本专利技术还提供一种增强SHA256算法安全性的方法,包括如上本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种增强SHA256算法运行速度的方法,所述方法应用于SHA256加密电路;包括以下步骤,初始数据在消息预处理模块中进行数据分组并形成消息块;对所述消息块依次进行逻辑运算,生成256位的哈希值;其特征在于:对若干所述消息块依次进行逻辑运算中任意消息的逻辑运算的过程具体为,用计数控制单元对任意消息块的循环压缩处理次数进行计数判断并确定数据流向;在对任意消息块进行前十六次循环压缩处理时,消息块内对应的数据由所述消息预处理模块传输至循环压缩模块进行循环压缩并输出循环压缩结果;在对任意消息块进行前十七次到第六十四次循环压缩处理时,将消息块传输至所述消息拓展模块进行消息拓展,然后将消息拓展结果传输至所述循环压缩模块进行循环压缩并输出循环压缩结果;在对任意消息块进行第十六次循环压缩处理时,进行循环压缩的同时进行第十七次循环压缩前将消息块传输至所述消息拓展模块进行消息拓展。2.如权利要求1所述的增强SHA256算法运行速度的方法,其特征在于:还包括对所述计数控制单元的改进步骤,将所述计数控制单元设置于所述消息预处理模块内;将所述消息拓展模块和所述循环压缩模块统一使用所述计数控制单元中的同一组计数用寄存器;删除原SHA256算法中哈希值的8组寄存器,并修改数据传输路径来代替这一步的储存行为;所述消息拓展模块和所述循环压缩模块同时和所述消息预处理模块相连。3.如权利要求1所述的增强SHA256算法运行速度的方法,其特征在于:所述计数控制单元确定数据流向包括以下步骤,在单个消息块中,所述计数控制单元在前十五次的计数中,此阶段内所述消息预处理模块仅向所述循环压缩模块传输数据;在所述计数控制单元的第十六次计数的阶段中,所述消息预处理模块同时向所述消息拓展模块和所述循环压缩模块传输数据;在所述计数控制单元的第十七次计数到第六十四次计数的阶段中,所述消息预处理模块仅向所述消息拓展模块传递数据。4.如权利要求1所述的增强SHA256算法运行速度的方法,其特征在于:所述计数控制单元计数判断包括以下步骤,从0开始计数,即计数为0时是第一次;若计数小于等于15,则将16组32位数据数据输入到所述循环压缩模块,进行多个步骤的循环压缩处理;若计数大于等于15,则对数据块进行消息拓展处理,形成48组32位数据,然后再将数据传输到所述循环压缩模块进行循环压缩处理。5.如权利要求4所述的增强SHA256算法运行速度的方法,其特征在于:所述消息拓展模块的消息拓展过程包括如下拓展步骤,
将所述16组32位数据拓展成为48组32位数据,逻辑运算过程中每次运算中都对多组32位的数据进行逻辑运算并最终输出一组32位字节函数;然后对48组32位数据分别进行循环压缩处理,并将结果存入...

【专利技术属性】
技术研发人员:杨鸿伟刘宏伟
申请(专利权)人:芯光智网集成电路设计无锡有限公司
类型:发明
国别省市:

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

1