CN110113170B - 一种sha256值生成系统 - Google Patents
一种sha256值生成系统 Download PDFInfo
- Publication number
- CN110113170B CN110113170B CN201910322170.4A CN201910322170A CN110113170B CN 110113170 B CN110113170 B CN 110113170B CN 201910322170 A CN201910322170 A CN 201910322170A CN 110113170 B CN110113170 B CN 110113170B
- Authority
- CN
- China
- Prior art keywords
- data
- processed
- unique
- processing module
- expansion
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
Abstract
本发明公开了一种SHA256值生成系统,包括数据分段模块,用于接收待处理数据,将每条待处理数据分成独有数据和共有数据,发送所述独有数据至待处理数据对应的独有数据处理模块,发送所述共有数据至共有数据处理模块;至少两个独有数据处理模块,用于对独有数据进行扩展和压缩处理,输出中间数据并发送至待处理数据对应的融合处理模块;共有数据处理模块,用于对共有数据进行扩展处理,输出第二扩展数据并发送至待处理数据对应的融合处理模块;至少两个融合处理模块,用于对所述第二扩展数据和所述中间数据进行压缩处理,生成待处理数据的SHA256值。该HA256值生成系统能够降低硬件的个数,进而降低计算功耗,节省电能。
Description
技术领域
本发明属于信息安全领域,尤其涉及一种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所示:
表1
M值 | 1 | 2 | 3 | 4 | 8 | 16 | 32 |
节省比率(%) | 0% | 12.5% | 16.7% | 18.75% | 21.9% | 23.4% | 24.2% |
以上所述的具体实施方式对本发明的技术方案和有益效果进行了详细说明,应理解的是以上所述仅为本发明的最优选实施例,并不用于限制本发明,凡在本发明的原则范围内所做的任何修改、补充和等同替换等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种SHA256值生成系统,其特征在于,包括:
数据分段模块,用于接收待处理数据,将每条待处理数据分成独有数据和共有数据,发送所述独有数据至待处理数据对应的独有数据处理模块,发送所述共有数据至共有数据处理模块;
至少两个独有数据处理模块,用于接收独有数据,对独有数据进行扩展和压缩处理,输出中间数据并发送至待处理数据对应的融合处理模块;
共有数据处理模块,用于接收共有数据,对每条待处理数据相同的共有数据仅进行一次扩展处理,输出第二扩展数据并发送至待处理数据对应的融合处理模块;
至少两个融合处理模块,用于接收所述中间数据和所述第二扩展数据,对所述第二扩展数据和所述中间数据进行压缩处理,生成待处理数据的SHA256值。
2.如权利要求1所述的SHA256值生成系统,其特征在于,所述独有数据处理模块包括:
扩展处理子模块,用于接收独有数据,对独有数据进行扩展处理,输出第一扩展数据并发送至压缩处理子模块;
压缩处理子模块,用于接收所述第一扩展数据和常量数据,对所述第一扩展数据和所述常量数据进行压缩处理,生成中间数据并发送至待处理数据对应的融合处理模块。
3.如权利要求1或2所述的SHA256值生成系统,其特征在于,待处理数据为1024bit数据,前512bit为独有数据,后512bit为共有数据。
4.如权利要求1或2所述的SHA256值生成系统,其特征在于,扩展处理包括:
将独有数据扩展为每个字节为32bit的64字节数据。
5.如权利要求3所述的SHA256值生成系统,其特征在于,扩展处理包括:
将独有数据扩展为每个字节为32bit的64字节数据。
6.如权利要求1或2所述的SHA256值生成系统,其特征在于,扩展处理包括:
将共有数据扩展为每个字节为32bit的64字节数据。
7.如权利要求3所述的SHA256值生成系统,其特征在于,扩展处理包括:
将共有数据扩展为每个字节为32bit的64字节数据。
8.如权利要求4所述的SHA256值生成系统,其特征在于,扩展处理的具体步骤包括:
对输入的512bit进行移位和异或运算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910322170.4A CN110113170B (zh) | 2019-04-22 | 2019-04-22 | 一种sha256值生成系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910322170.4A CN110113170B (zh) | 2019-04-22 | 2019-04-22 | 一种sha256值生成系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110113170A CN110113170A (zh) | 2019-08-09 |
CN110113170B true CN110113170B (zh) | 2021-09-14 |
Family
ID=67486224
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910322170.4A Active CN110113170B (zh) | 2019-04-22 | 2019-04-22 | 一种sha256值生成系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110113170B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006048702A1 (en) * | 2004-11-05 | 2006-05-11 | Synaptic Laboratories Limited | A method of and apparatus for encoding a signal in a hashing primitive |
CN101741560A (zh) * | 2008-11-14 | 2010-06-16 | 北京石油化工学院 | 基于整数非线性映射的散列函数构造方法 |
CN104823198A (zh) * | 2012-10-05 | 2015-08-05 | 微软技术许可有限责任公司 | 计算装置的安全识别和安全识别方法 |
CN105827394A (zh) * | 2016-03-10 | 2016-08-03 | 浙江亿邦通信科技股份有限公司 | 一种基于FPGA的Hash算法硬件实现装置 |
CN106202173A (zh) * | 2016-06-26 | 2016-12-07 | 厦门天锐科技股份有限公司 | 一种文件仓库存储的智能排重方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9960909B2 (en) * | 2014-12-08 | 2018-05-01 | Open-Silicon Inc. | High speed and low power hashing system and method |
-
2019
- 2019-04-22 CN CN201910322170.4A patent/CN110113170B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006048702A1 (en) * | 2004-11-05 | 2006-05-11 | Synaptic Laboratories Limited | A method of and apparatus for encoding a signal in a hashing primitive |
CN101741560A (zh) * | 2008-11-14 | 2010-06-16 | 北京石油化工学院 | 基于整数非线性映射的散列函数构造方法 |
CN104823198A (zh) * | 2012-10-05 | 2015-08-05 | 微软技术许可有限责任公司 | 计算装置的安全识别和安全识别方法 |
CN105827394A (zh) * | 2016-03-10 | 2016-08-03 | 浙江亿邦通信科技股份有限公司 | 一种基于FPGA的Hash算法硬件实现装置 |
CN106202173A (zh) * | 2016-06-26 | 2016-12-07 | 厦门天锐科技股份有限公司 | 一种文件仓库存储的智能排重方法及系统 |
Non-Patent Citations (1)
Title |
---|
《SHA一2(256,384,512)系列算法的硬件实现》;刘政林等;《微电子学与计算机》;20121231;正文第51-54页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110113170A (zh) | 2019-08-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102137956B1 (ko) | 블록 마이닝 방법 및 장치 | |
CN107592116B (zh) | 一种数据压缩方法、装置及存储介质 | |
CN107766529B (zh) | 一种用于污水处理行业的海量数据存储方法 | |
CN101022552A (zh) | 一种实现霍夫曼译码的方法和装置 | |
EP4276598A1 (en) | Computing apparatus for proof of work, and asic chip and computing method for proof of work | |
CN101872338A (zh) | 一种改进的sha-1哈希算法 | |
Zamanov et al. | ASIC-resistant hash functions | |
CN110674364B (zh) | 一种利用fpga实现的滑动字符串匹配的方法 | |
Xiao-hui et al. | Design of SHA-1 algorithm based on FPGA | |
CN107612891B (zh) | 一种数据压缩加密电路 | |
CN110113170B (zh) | 一种sha256值生成系统 | |
CN116205244B (zh) | 一种数字信号处理结构 | |
JP2022048930A (ja) | データ圧縮方法、データ圧縮装置、データ圧縮プログラム、データ伸長方法、データ伸長装置およびデータ伸長プログラム | |
CN109672524B (zh) | 基于粗粒度可重构架构的sm3算法轮迭代系统及迭代方法 | |
CN111259013A (zh) | 一种存储数据的方法和装置 | |
US9288041B2 (en) | Apparatus and method for performing compression operation in hash algorithm | |
CN114826560B (zh) | 一种轻量级分组密码cref实现方法及系统 | |
CN107769911B (zh) | 一种基于Sponge结构的轻量级哈希函数构造方法 | |
CN112737777B (zh) | 基于密钥的门限签名和验签方法、装置、设备和介质 | |
CN111897513B (zh) | 一种基于反向极性技术的乘法器及其代码生成方法 | |
Baik et al. | A High-Throughput and Energy-Efficient SHA-256 Design using Approximate Arithmetic | |
KR100473449B1 (ko) | 병렬 연산구조를 갖는 엠디5 해쉬함수 연산 방법 | |
CN117714030A (zh) | 一种高效sm3国密算法的硬件实现方法及系统 | |
Lamberger et al. | Optimal covering codes for finding near-collisions | |
CN113721888B (zh) | 一种Equihash算法的数据处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |