一种SHA256值生成系统的制作方法

文档序号:18406112发布日期:2019-08-10 00:24阅读:1210来源:国知局
一种SHA256值生成系统的制作方法
本发明属于信息安全领域,尤其涉及一种sha256值生成系统。
背景技术
:区块链本质上是一个去中心化的分布式账本数据库,其本身是一串使用密码学相关联所产生的数据块,具体来讲:一个随机哈希算法的结果,它唯一做的事情就是获得一些输入然后进行计算,并得到一串256位的随机数字和字母的字符串,每一个数据块中包含了多次比特币网络交易有效确认信息,区块链就是由一连串、不重复、的数据块组成的,此应用领域需要大量的重复计算功能模块。sha256是构造区块链所用的主要密码哈希函数,无论是区块的头部信息还是交易数据,都使用这个哈希函数去计算相关数据的哈希值,以保证数据的完整性。同时,在数字货币系统中,基于寻找给定前缀的sha256哈希值,设计了工作量证明的共识机制;sha256也被用于构造数字货币地址,即用来识别不同的用户。sha256是一个merkle-damgard结构的迭代哈希函数,其计算过程分为两个阶段:消息的预处理和主循环。在消息的预处理阶段,主要完成消息的填充和扩展填充,将所输入的原始消息转化为n个512比特的消息块,之后对每个消息块利用sha256压缩函数进行处理。这个计算流程是一个迭代计算的过程,当最后1个消息块(第n块)处理完毕以后,最终的输出值就是所输入的原始消息的sha256值。申请公布号cn108512647a的发明专利申请公开了一种安全哈希算法sha256值的生成装置,包括预处理模块和数据处理模块,其中,所述预处理模块,用于接收第一待处理数据,对第一待处理数据进行补位、补长度处理得到第二待处理数据,并发送第二待处理数据至所述数据处理模块;所述数据处理模块,用于接收所述第二待处理数据,并生成所述第二待处理数据的sha256值。当同时处理多条第一待处理数据时,需要多个这样的生成装置,这样多的生成装置会造成耗电量很大,即计算功耗很大,且运算速率较慢。现有的双sha256算法的过程如图1所示,即每条待处理数据分成a部分和b部分两部分,针对a部分数据利用第一sha256算法计算获得中间数据;针对b部分数据,结合中间数据并利用第二sha256算法计算获得待处理数据的sha256,该方法中,针对每条待处理数据均要采用两次sha256算法,这样极大地增加了实现sha256算法的硬件个数,增加了计算功耗。技术实现要素:本发明的目的是提供一种ha256值生成系统,该ha256值生成系统能够降低硬件的个数,进而降低计算功耗,节省电能。为实现上述发明目的,本发明提供以下技术方案:一种ha256值生成系统,包括:数据分段模块,用于接收待处理数据,将每条待处理数据分成独有数据和共有数据,发送所述独有数据至待处理数据对应的独有数据处理模块,发送所述共有数据至共有数据处理模块;至少两个独有数据处理模块,用于接收独有数据,对独有数据进行扩展和压缩处理,输出中间数据并发送至待处理数据对应的融合处理模块;共有数据处理模块,用于接收共有数据,对共有数据进行扩展处理,输出第二扩展数据并发送至待处理数据对应的融合处理模块;至少两个融合处理模块,用于接收所述中间数据和所述第二扩展数据,对所述第二扩展数据和所述中间数据进行压缩处理,生成待处理数据的sha256值。与现有技术相比,本发明具有的有益效果为:该sha256值生成系统将待处理数据分段成两部分,针对独有数据,单独用sha256算法计算获得中间数据,针对共有数据,仅进行一次扩展运算,然后再对中间数据和获得的第二扩展数据进行多次压缩,获得待处理数据的sha256值。这样能够节省多个实现第二扩展运算的硬件,进而降低计算功耗,节省电能。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动前提下,还可以根据这些附图获得其他附图。图1是
背景技术
中现有的双sha256算法的实现过程示意图;图2是本发明提供的sha256值生成系统的结构示意图;图3是本发明提供的独有数据处理模块的结构示意图。具体实施方式为使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例对本发明进行进一步的详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不限定本发明的保护范围。本实施例提供了一种sha256值生成系统,该sha256值生成系统主要基于双sha256算法生成sha256值,如图2所示,包括数据分段模块,n个独有数据处理模块、共有数据处理模块以及n个融合处理模块,其中,独有数据处理模块与融合处理模块的个数相同。数据分段模块主要用于接收待处理数据,将每条待处理数据分成独有数据和共有数据,发送所述独有数据至待处理数据对应的独有数据处理模块,发送所述共有数据至共有数据处理模块。待处理数据一般是一条待处理的消息或任务,在比特币计算任务中,这样的待处理数据具有一个共性,即包含一部分与其他待处理数据不同的独有数据,还包含一部分与其他待处理数据相同的共有数据。一般情况下,1024bit数据,前512bit为独有数据,后512bit为共有数据。在双sha256算法中,针对每条待处理数据都需要进行两次计算,这样在集成电路中极大地增加了电子元件的个数,进而增加了计算功耗,为了降低计算功耗,本实施例将待处理数据分成独有部分和共有部分,针对共有部分仅需要计算一次,这样大大降低了计算量。独有数据处理模块主要用于接收独有数据,对独有数据进行扩展和压缩处理,输出中间数据并发送至待处理数据对应的融合处理模块。具体地,如图3所示,独有数据处理模块包括:扩展处理子模块,用于接收独有数据,对独有数据进行扩展处理,输出第一扩展数据并发送至压缩处理子模块;压缩处理子模块,用于接收所述第一扩展数据和常量数据,对所述第一扩展数据和所述常量数据进行压缩处理,生成中间数据并发送至待处理数据对应的融合处理模块。其中,扩展处理包括将独有数据扩展为每个字节为32bit的64字节数据,扩展处理的具体步骤包括:对输入的512bit进行移位和异或运算。示例性地,扩展器代码描述如下:其中,idata[i]=idata[0:15]为512比特的输入数据,即可以是独有数据或共有数据;w[i]=w[0:63]为64个字,每字为32bit,即可以为第一扩展数据或第二扩展数据。示例性地,压缩器代码描述如下:其中,压缩器压缩运算时作了64轮运算,每轮运算示意图如图3所示。共有数据处理模块主要用于接收共有数据,对共有数据进行扩展处理,输出第二扩展数据并发送至待处理数据对应的融合处理模块。对共有数据进行扩展处理步骤与对独有数据进行扩展处理步骤相同,即将共有数据扩展为每个字节为32bit的64字节数据。融合处理模块主要用于接收所述中间数据和所述第二扩展数据,对所述第二扩展数据和所述中间数据进行压缩处理,生成待处理数据的sha256值。融合处理模块中的压缩处理与独有数据处理模块中的压缩处理相同。在实施例中,独有数据处理模块可以看成是sha256算法a,如图3所示的压缩算法中,其初始数据和k都为常量数据,w为第一扩展数据。共有数据处理模块与融合处理模块可以看成是sha256算法b,如图3所示的压缩算法中,其初始数据为sha256算法a产生的中间数据,k为常量数据,w为第二扩展数据。经实验验证,本发明与图1所示的现有技术方法相比,采用本发明方法节省了m-1扩展器,从逻辑资源和功耗看节省比率如表1所示:表1m值123481632节省比率(%)0%12.5%16.7%18.75%21.9%23.4%24.2%以上所述的具体实施方式对本发明的技术方案和有益效果进行了详细说明,应理解的是以上所述仅为本发明的最优选实施例,并不用于限制本发明,凡在本发明的原则范围内所做的任何修改、补充和等同替换等,均应包含在本发明的保护范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1