CN111488627B - 一种安全散列算法的消息拓展电路 - Google Patents

一种安全散列算法的消息拓展电路 Download PDF

Info

Publication number
CN111488627B
CN111488627B CN202010286833.4A CN202010286833A CN111488627B CN 111488627 B CN111488627 B CN 111488627B CN 202010286833 A CN202010286833 A CN 202010286833A CN 111488627 B CN111488627 B CN 111488627B
Authority
CN
China
Prior art keywords
clock
latch
circuit
selector
clk
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
Application number
CN202010286833.4A
Other languages
English (en)
Other versions
CN111488627A (zh
Inventor
方晗
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Dewang Information Technology Co ltd
Original Assignee
Hangzhou Dewang Information Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou Dewang Information Technology Co ltd filed Critical Hangzhou Dewang Information Technology Co ltd
Priority to CN202010286833.4A priority Critical patent/CN111488627B/zh
Publication of CN111488627A publication Critical patent/CN111488627A/zh
Application granted granted Critical
Publication of CN111488627B publication Critical patent/CN111488627B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Manipulation Of Pulses (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种安全散列算法的消息拓展电路,所述消息拓展电路包括包含64级流水线电路;每级流水线电路包含16组锁存器以及一个组合逻辑电路;所述组合逻辑电路包含4个选择器、2个移位异或电路和1个加法器;每级流水线电路除了主时钟外,还产生了16组相位依次相差为1的分频时钟,该16组分频时钟分别作为16组锁存器的触发时钟,分频时钟的时钟频率为主时钟的1/16,即分频时钟分别在主时种的0~15时刻分别触发对应的锁存器;相邻两级流水线电路中同一组锁存器时钟相位差保持15。该安全散列算法的消息拓展电路将时序逻辑电路的时钟和翻转率降为传统实现的1/16,可以很大的降低SHA256消息扩展电路的功耗。

Description

一种安全散列算法的消息拓展电路
技术领域
本发明属于数字集成电路技术领域,具体涉及一种安全散列算法的消息拓展电路。
背景技术
安全散列算法(Secure Hash Algorithm,缩写为SHA)是一个密码散列函数家族,是FIPS所认证的安全散列算法。能计算出一个数字消息所对应到的,长度固定的字符串(又称消息摘要)的算法。且若输入的消息不同,它们对应到不同字符串的机率很高。当今物联网发展迅速,越来越多对功耗敏感的终端加入到网络中,SHA算法的应用越来越广泛,传统的SHA算法是通过软件方式实现的,其缺点是运算速度慢,占用CPU,通过硬件电路实现SHA算法可以克服这些缺点,但硬件电路实现同样带来了严峻的功耗问题,在对功耗敏感的应用环境中,对硬件电路的功耗提出了较高的要求。
SHA家族的五个算法,分别是SHA-1、SHA-224、SHA-256、SHA-384,和SHA-512,由美国国家安全局(NSA)所设计,并由美国国家标准与技术研究院(NIST)发布;是美国的政府标准。SHA-224、SHA-256、SHA-384,和SHA-512并称为SHA-2(SHA第二代)。
SHA-256作为第二代安全散列算法之一,是比特币网络的POW核心算法。SHA256需要64轮运算,每轮运算可分为消息扩展和消息压缩两部分。SHA256算法中对于第t轮消息扩展Wt产生的描述如下:
Wt=Mt 0≤t≤15(1)
Wt=S1(Wt-2)+Wt-7+S0(Wt-15)+Wt-16 16≤t≤63(2)
其中Mt为用户输入的需要进行哈希运算的512比特数据。S0和S1为SHA256算法定义的移位异或运算。W0-W15已经在消息M写入的时候有了,那么第1轮运算W16,第2轮运算W17,以此类推,在第48轮时,W63已经运算出来了,在第49轮到64轮中,公式(2)不再需要运算,但是实现公式(2)所需要的运算逻辑电路输入依然会翻转。产生了不必要的动态功耗。64轮中有16轮运算是无效的,多产生了接近33.3%的动态功耗。因此,当SHA-256并应用到区块区块链网络时,全球区块链网络所消耗的电量可以堪比一个中等规模国家的耗电量,而其中主要的消耗为比特币网络。因此研究低功耗的SHA256电路具有很强的现实意义。
申请公布号为CN110430040A的发明专利申请公开了一种低功耗SHA256算法中的消息扩展电路,该消息扩展电路包括一组512bit的消息与移位复用寄存器M,四组三态门Gate1、Gate2、Gate3和Gate4,一组运算逻辑电路和一组6bit的比较器P1构成。该消息扩展电路作用于64级业务处理任务的前16级,前16级不需要组合逻辑运算,采用四组三态门将组合逻辑隔开,从而节省1/4的功耗。
发明内容
本发明的目的是提供一种安全散列算法的消息拓展电路,以解决安全散列算法运算造成的功耗大问题。
为实现上述发明目的,本发明提供的技术方案为:
一种安全散列算法的消息拓展电路,所述消息拓展电路包括包含64级流水线电路;
每级流水线电路包含16组锁存器以及一个组合逻辑电路;
所述组合逻辑电路包含4个选择器、2个移位异或电路和1个加法器,4个选择器的输入为16组锁存器的任意四路输出,任意2个选择器的输出经过2个移位异或电路输入至加法器,剩下2个选择器的输出直接输入至加法器,加法器对4路输入数据进行处理后输出至1个锁存器;
每级流水线电路除了主时钟外,还产生了16组相位依次相差为1的分频时钟,该16组分频时钟分别作为16组锁存器的触发时钟,分频时钟的时钟频率为主时钟的1/16,即分频时钟分别在主时种的0~15时刻分别触发对应的锁存器;
相邻两级流水线电路中同一组锁存器时钟相位差保持15。
优选地,所述16组锁存器依顺序依次标识为W0、W1~W15;所述分频时钟根据相位依次标识为clk_p0、clk_p1~clk_p15;每级流水线电路的16个锁存器分别连接到16个不同相位的分频时钟上;若锁存器W0时钟连接分频时钟clk_p0,则锁存器Wi时钟连接分频时钟clk_pi,i=1~15;若W0由clk_p1驱动,则锁存器Wi时钟连接分频时钟clk_pi+1,i=1~14,锁存器W15时钟连接分频时钟clk_p0。
优选地,所述相邻两级流水线电路中同一组锁存器时钟相位差保持15;若前一级锁存器W0时钟驱动为clk_pi,那么后一级锁存器W0的时钟驱动为clk_pj,当i=0时,j=i+15,当j=1~15时,j=i+15-16。
优选地,所述4个选择器WSEL0、WSEL1、WSEL9、WSEL14的4路输入会在不同的时钟相位选择不同的输入,针对每级流水线电路,具体选择方法为:
第一个时钟周期,选择器WSEL0的输入选择锁存器W0,选择器WSEL1选择锁存器W1,选择器WSEL9选择锁存器W9,选择器WSE14选择锁存器W14;
第二个时钟周期,选择器WSEL0须切换至锁存器W1,选择器WSEL1须切换至锁存器W2,选择器WSEL9须切换至锁存器W10,选择器WSEL14须切换至锁存器W15;
第三个时钟周期,选择器WSEL0须切换至锁存器W2,选择器WSEL1须切换至锁存器W3,选择器WSEL9须切换至锁存器W11,选择器WSEL14须切换至锁存器W0;
其它时钟周期中其他时钟相位各选择器WSEL依照第一个时钟周期~第三个时钟周期呈现的规律,循环往复选择。
其中,所述安全散列算法包括SHA-224、SHA-256、SHA-384,和SHA-512。
所述安全散列算法的消息拓展电路被应用在FPGA、通用处理器,加密解密芯片。
一种上述安全散列算法的消息拓展电路在区块链网络的应用。
在所述的安全散列算法的消息拓展电路在区块链网络的应用,中,所述安全散列算法的消息拓展电路被应用在区块链网络的ASIC。
与现有技术相比,本发明具有的有益效果为:
本发明提供的安全散列算法的消息拓展电路通过在后48级流水线电路中少量增加组合逻辑电路的情况下,将时序逻辑电路的时钟和翻转率降为传统实现的1/16,可以很大的降低SHA256消息扩展电路的功耗。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动前提下,还可以根据这些附图获得其他附图。
图1是实施例提供的SHA256流水线结构示意图;
图2是实施例提供的SHA256消息扩展电路;
图3是实施例提供的16相时钟示意图;
图4是实施例提供的SHA256消息扩展组合逻辑电路;
图5是SHA256消息扩展组合逻辑输入相位选择示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例对本发明进行进一步的详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不限定本发明的保护范围。
为了解决安全散列算法运算造成的功耗大问题。本实施例提供了一种安全散列算法的消息拓展电路。以下实施例以SHA256为例,说明SHA256的消息拓展电路。
在比特币专用芯片中为了得到更快的频率和吞吐量,通常的做法是采用全流水方式实现。因为SHA256为64轮运算,所以总共为64级流水。每级处理一轮信息,如图1所示,每一级流水线电路对应一个时钟周期,包括一个寄存器阵列FFs和逻辑电路Combinationlogic。
如图2和图4所示,本实施例提供的消息拓展电路包括包含64级流水线电路;每级流水线电路包含16组32位的锁存器W0-W15以及一个组合逻辑电路,组合逻辑电路包含4个32位的选择器WSEL0、WSEL1、WSEL9、WSEL14、2个32位移位异或电路S1和S1和1个32位的加法器ADDER。4个选择器WSEL0、WSEL1、WSEL9、WSEL14的输入为16组锁存器W0-W15的任意四路输出,任意2个选择器的输出经过2个移位异或电路输入至加法器,剩下2个选择器的输出直接输入至加法器ADDER,加法器ADDER对4路输入数据进行处理后输出至1个锁存器。
可见对于每个时钟周期,每个锁存器(W0-W15)都会触发。如图3所示,为此除了主时钟以外,电路里还需额外产生16路相位不同的分频时钟,该16组分频时钟分别作为16组锁存器的触发时钟,分频时钟的时钟频率为主时钟的1/16,即分频时钟分别在主时种的0~15时刻分别触发对应的锁存器。
对于同一级电路的锁存器W0到W15,每个W依次连接一个相位差为1的时钟。如果W0由clk_p0驱动,相应的W1则由clk_p1驱动,W15由clk_p15驱动。如果W0由clk_p1驱动,则W1由clk_p2驱动,依此类推,W14由clk_p15驱动,W15由clk_p0驱动。
对于相邻的前后两级,后一级和前一级的时钟相位差保持为15。如果前一级W0的时钟为clk_p0,那么后一级W0的时钟为clk_p15,后一级W1的时钟为clk_p0,后一级W2的时钟为clk_p1,其它的W依此类推。
对于单级电路来说,假设以clk_p0为phase=0的起始点,在phase=0时,只有clk_p0触发,W0锁存器写入新数据。在phase=1时,clk_p1触发,W1写入新数据,如此循环往复。可见在每个时钟周期,每级电路16个W锁存器只有一个相位时钟触发,只有一个W锁存器被写入新数据。
如图4所示,对于消息扩展电路中的组合逻辑,其四路输入WSEL0、WSEL1、WSEL9、WSEL14需在不同的时钟相位从选择不同的输入来做运算以保持整个电路的吞吐量不变。额外的代价是消息扩展电路的输入端口上需要增加一些十六选一的选择器电路。
具体选择方法为,对于每级电路,在第一个时钟周期,phase=0时,消息扩展电路的WSEL0输入选择为W0,WSEL1选择W1,WSEL9选择W9,WSE14选择W14。那么在第二个时钟周期,phase=1时,WSEL0须切换至W,WSEL1须切换至W2,WSEL9须切换至W10,WSEL14须切换至W15。在第三个时钟周期,phase=2时,WSEL0须切换至W2,WSEL1须切换至W3,WSEL9须切换至W11,WSEL14须切换至W0。其它的时钟相位依照上述规律,循环往复选择。
上述安全散列算法的消息拓展电路不仅仅限制于SHA256算法,同样也可用于采用相同电路结构的其它哈希算法,如SHA1、SHA224、SHA384、SHA512等。
上述安全散列算法的消息拓展电路不仅仅限制于区块链网络的ASIC实现,同样也可应用于其他的SHA256硬件实现,例如FPGA和通用处理器,加密解密芯片等。
在传统电路中,采用的是流水线结构,在每个时钟周期,每个锁存器时钟都会打开以锁存上一级传递来的数据。而采用上述的时钟架构,可以看到,对于每个锁存器,其输入时钟频率降为了常用结构的1/16,相应的翻转率也降之为常用结构的1/16。对于SHA256算法,其消息扩展电路所占的锁存器为整个电路锁存器的2/3。因此该结构可以很大的降低SHA256电路中时序逻辑的功耗。
以上所述的具体实施方式对本发明的技术方案和有益效果进行了详细说明,应理解的是以上所述仅为本发明的最优选实施例,并不用于限制本发明,凡在本发明的原则范围内所做的任何修改、补充和等同替换等,均应包含在本发明的保护范围之内。

Claims (7)

1.一种安全散列算法的消息拓展电路,其特征在于,所述消息拓展电路包括包含64级流水线电路;
每级流水线电路包含16组锁存器以及一个组合逻辑电路;
所述组合逻辑电路包含4个选择器、2个移位异或电路和1个加法器,4个选择器的输入为16组锁存器的任意四路输出,任意2个选择器的输出经过2个移位异或电路输入至加法器,剩下2个选择器的输出直接输入至加法器,加法器对4路输入数据进行处理后输出至1个锁存器;
每级流水线电路除了主时钟外,还产生了16组相位依次相差为1的分频时钟,该16组分频时钟分别作为16组锁存器的触发时钟,分频时钟的时钟频率为主时钟的1/16,即分频时钟分别在主时种的0~15时刻分别触发对应的锁存器;
相邻两级流水线电路中同一组锁存器时钟相位差保持15。
2.如权利要求1所述的安全散列算法的消息拓展电路,其特征在于,所述16组锁存器依顺序依次标识为W0、W1~W15;所述分频时钟根据相位依次标识为clk_p0、clk_p1~clk_p15;每级流水线电路的16个锁存器分别连接到16个不同相位的分频时钟上;若锁存器W0时钟连接分频时钟clk_p0,则锁存器Wi时钟连接分频时钟clk_pi,i=1~15;若W0由clk_p1驱动,则锁存器Wi时钟连接分频时钟clk_pi+1,i=1~14,锁存器W15时钟连接分频时钟clk_p0。
3.如权利要求1所述的安全散列算法的消息拓展电路,其特征在于,所述相邻两级流水线电路中同一组锁存器时钟相位差保持15;若前一级锁存器W0时钟驱动为clk_pi,那么后一级锁存器W0的时钟驱动为clk_pj,当i=0时,j=i+15,当j=1~15时,j=i+15-16。
4.如权利要求1所述的安全散列算法的消息拓展电路,其特征在于,所述4个选择器WSEL0、WSEL1、WSEL9、WSEL14的4路输入会在不同的时钟相位选择不同的输入,针对每级流水线电路,具体选择方法为:
第一个时钟周期,选择器WSEL0的输入选择锁存器W0,选择器WSEL1选择锁存器W1,选择器WSEL9选择锁存器W9,选择器WSE14选择锁存器W14;
第二个时钟周期,选择器WSEL0须切换至锁存器W1,选择器WSEL1须切换至锁存器W2,选择器WSEL9须切换至锁存器W10,选择器WSEL14须切换至锁存器W15;
第三个时钟周期,选择器WSEL0须切换至锁存器W2,选择器WSEL1须切换至锁存器W3,选择器WSEL9须切换至锁存器W11,选择器WSEL14须切换至锁存器W0;
其它时钟周期中其他时钟相位各选择器WSEL依照第一个时钟周期~第三个时钟周期呈现的规律,循环往复选择。
5.如权利要求1所述的安全散列算法的消息拓展电路,其特征在于,所述安全散列算法包括SHA-224、SHA-256、SHA-384,和SHA-512。
6.如权利要求1~5任一项所述的安全散列算法的消息拓展电路,其特征在于,所述安全散列算法的消息拓展电路被应用在FPGA、通用处理器,加密解密芯片。
7.一种区块链网络,其特征在于,权利要求1-6所述的消息拓展电路被应用在区块链网络的ASIC。
CN202010286833.4A 2020-04-13 2020-04-13 一种安全散列算法的消息拓展电路 Active CN111488627B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010286833.4A CN111488627B (zh) 2020-04-13 2020-04-13 一种安全散列算法的消息拓展电路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010286833.4A CN111488627B (zh) 2020-04-13 2020-04-13 一种安全散列算法的消息拓展电路

Publications (2)

Publication Number Publication Date
CN111488627A CN111488627A (zh) 2020-08-04
CN111488627B true CN111488627B (zh) 2023-04-07

Family

ID=71810937

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010286833.4A Active CN111488627B (zh) 2020-04-13 2020-04-13 一种安全散列算法的消息拓展电路

Country Status (1)

Country Link
CN (1) CN111488627B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114528246A (zh) * 2020-11-23 2022-05-24 深圳比特微电子科技有限公司 运算核、计算芯片和加密货币矿机
CN113642725B (zh) * 2021-10-13 2022-03-08 清华大学 用于消息散列算法的消息扩展的光电集成电路
TWI785954B (zh) * 2021-12-30 2022-12-01 新唐科技股份有限公司 節省進位加法器、安全加法器以及執行安全節省進位加法的方法
US20240015005A1 (en) * 2022-07-06 2024-01-11 Block, Inc. Computing architecture for energy-efficient hash computation

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106533653A (zh) * 2016-08-22 2017-03-22 深圳市华曦达科技股份有限公司 加密芯片、加密方法及加密系统

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108427575B (zh) * 2018-02-01 2022-03-15 深圳市安信智控科技有限公司 全流水结构sha-2消息扩展优化方法
US10979214B2 (en) * 2018-07-24 2021-04-13 Martin Spence Denham Secure hash algorithm implementation
US10928847B2 (en) * 2018-09-29 2021-02-23 Intel Corporation Apparatuses and methods for frequency scaling a message scheduler data path of a hashing accelerator
CN110430040B (zh) * 2019-07-31 2024-01-30 武汉芯昌科技有限公司 一种低功耗sha256算法中的消息扩展电路

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106533653A (zh) * 2016-08-22 2017-03-22 深圳市华曦达科技股份有限公司 加密芯片、加密方法及加密系统

Also Published As

Publication number Publication date
CN111488627A (zh) 2020-08-04

Similar Documents

Publication Publication Date Title
CN111488627B (zh) 一种安全散列算法的消息拓展电路
US10928847B2 (en) Apparatuses and methods for frequency scaling a message scheduler data path of a hashing accelerator
US8918442B2 (en) Reducing bias in hardware generated random numbers
CN109314506B (zh) 低时钟功率数据门控触发器
Zhang et al. A high-performance parallel computation hardware architecture in ASIC of SHA-256 hash
JP2008116856A (ja) Sha演算方法およびsha演算装置
TWI784457B (zh) 時鐘電路系統、計算晶片、算力板和資料處理設備
CN111600699A (zh) 用于实现散列算法的电路和方法
CN110430040B (zh) 一种低功耗sha256算法中的消息扩展电路
JP4068427B2 (ja) データインバージョン回路及び半導体装置
CN212160484U (zh) 时钟电路系统、计算芯片、算力板和数字货币挖矿机
CN111612622A (zh) 用于实现散列算法的电路和方法
Tran et al. BCA: A 530-mW multicore blockchain accelerator for power-constrained devices in securing decentralized networks
Ao et al. A compact hardware implementation of SM3 hash function
CN109936441B (zh) 一种基于数据存储的流水sha256硬件实现方法
Kim et al. Efficient hardware architecture of SHA-256 algorithm for trusted mobile computing
Farmani et al. Hardware implementation of 128-Bit AES image encryption with low power techniques on FPGA
Wong et al. Lightweight and high performance SHA-256 using architectural folding and 4-2 adder compressor
CN212515801U (zh) 时钟树、哈希引擎、计算芯片、算力板和加密货币挖矿机
CN112988235B (zh) 一种高效率第三代安全散列算法的硬件实现电路及方法
CN112003603A (zh) 一种消息扩展电路、方法、芯片、家用电器以及存储介质
Shimada et al. High-speed and energy-efficient crypto-processor for post-quantum cryptography CRYSTALS-Kyber
CN111651403A (zh) 时钟树、哈希引擎、计算芯片、算力板和数字货币挖矿机
CN210225429U (zh) 一种低功耗sha256算法中的消息扩展电路
JP2011197981A (ja) I/o拡張回路

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