本实用新型涉及数字集成电路技术领域,尤其涉及一种低功耗sha256算法中的消息扩展电路。
背景技术:
安全散列算法sha(securehashalgorithm)是美国国家安全局(nsa)设计,美国国家标准与技术研究院(nist)发布的一系列密码散列函数,包括sha-1、sha-224、sha-256、sha-384和sha-512等变体。主要适用于数字签名标准(digitalsignaturestandarddss)里面定义的数字签名算法(digitalsignaturealgorithmdsa)。sha算法的特点是很难从消息摘要中复原消息,两个不同的消息不会产生同样的消息摘要。
sha的应用:文件校验、密码加密、工作量证明等。
sha256是安全散列算法中较为常用的一种。sha256对于长度小于2^64位的消息,sha256会产生一个256位的消息摘要。
当今物联网发展迅速,越来越多对功耗敏感的终端加入到网络中,sha算法的应用越来越广泛,传统的sha算法是通过软件方式实现的,其缺点是运算速度慢,占用cpu,通过硬件电路实现sha算法可以克服这些缺点,但硬件电路实现同样带来了严峻的功耗问题,在对功耗敏感的应用环境中,对硬件电路的功耗提出了较高的要求。
在区块链应用中核心算法是sha256算法,其中较为突出的比特币网络,美国能源学术杂志《焦耳》刊登的一项新研究表明,到2018年年底,整个比特币网络的耗电水平可能占到全球总量的0.5%。而比特币网络中主要的耗电来自于sha256运算,到2019年7月15日,整个比特币网络每秒运算13620.00p次sha256运算,可见对sha256运算进行低功耗设计的重要意义。
sha256算法中,对扩展的消息wt的产生的描述如下:
sha256需要64轮运算,每一轮的运算参数wt依次从w0-w63。
其中,w0-w15已经在消息m写入的时候有了,那么第1轮运算w16,第2轮运算w17,以此类推,在第48轮时,w63已经运算出来了,在第49轮到64轮中,公式②不再需要运算,但是实现公式②所需要的运算逻辑电路输入依然会翻转。产生了不必要的动态功耗。64轮中有16轮运算是无效的,多产生了接近33.3%的动态功耗。
在sha256算法越来越普遍、越来越偏向于硬件实现的情况下,节省功耗的电路设计具有重要意义。
技术实现要素:
本实用新型的目的在于提供了一种低功耗sha256算法中的消息扩展电路,在sha256算法的64轮迭代运算的49-64轮无效运算中,通过关断三态门gate1-gate4切断运算逻辑的输入,从而使得运算逻辑电路不产生逻辑翻转而引起的动态功耗,在64轮迭代运算中16轮不运算,节省了大约25%的动态功耗。
本实用新型是通过如下措施实现的:一种低功耗sha256算法中的消息扩展电路,其中,所述消息扩展电路包括一组512bit的消息与移位复用寄存器m,四组三态门gate1、gate2、gate3和gate4,一组运算逻辑电路和一组6bit的比较器p1构成。
作为本实用新型提供的一种低功耗sha256算法中的消息扩展电路进一步优化方案,所述一组512bit的消息与移位复用寄存器m具体内容为:在需要输入新消息时,m的值来自于消息输入m_in;在sha256算法的64轮运算中,每一轮运算消息寄存器m右移动32位,其最高的32位,即m[511:480]来自于运算逻辑的输出,其最低32位,即m[31:0]是消息扩展电路的结果输出wt。
作为本实用新型提供的一种低功耗sha256算法中的消息扩展电路进一步优化方案,所述三态门gate1的输入端连接到消息寄存器的479-488位,输出到运算逻辑;三态门gate2的输入端连接到消息寄存器的319-288位,输出到运算逻辑;三态门gate3的输入端连接到消息寄存器的63-32位,输出到运算逻辑;三态门gate4的输入端连接到消息寄存器的31-0位,输出到运算逻辑;gate1、gate2、gate3和gate4的使能端共同连接到比较器p1的输出en,在en信号为1时,gate1、gate2、gate3和gate4打开,它们的输出等于输入,在en信号为0时,它们的输出为高阻态,输出与输入无关。这四组三态门是低功耗设计的重要组成部分。
作为本实用新型提供的一种低功耗sha256算法中的消息扩展电路进一步优化方案,所述运算逻辑电路的四组输入分别是三态门gate1、gate2、gate3和gate4的输出,其内部由异或门与加法器构成,其输出为32bit数据,连接到消息寄存器m的最高32位。考虑到加法器的延时较高,是整个电路的关键路径所在,所以采用速度较快的保留进位加法器。
作为本实用新型提供的一种低功耗sha256算法中的消息扩展电路进一步优化方案,所述比较器p1的两组输入分别是当前运算轮数round和常数48,当round小于等于48时,比较器p1输出en信号为1,三态门使能,当round大于48时,比较器p1输出en信号为0,三态门关闭。
本实用新型在实际使用时:在一次sha256运算开始时,消息从m_in输入到消息寄存器m中,在sha256内部轮运算中,每一个时钟周期m寄存器右移32bit,扩展的消息wt从m的最低32bit输出,基于过去wt运算出来的新的wt从运算逻辑电路输出并存入m寄存器的最高32bit;节省功耗的原理,在sha256内部运算轮数1-48轮时,运算逻辑电路正常运算,在sha256内部运算轮数大于48轮时,关断运算逻辑电路的输入,从而节省了25%左右的动态功耗。
本实用新型的有益效果为:本实用新型是利用比较器和三态门关断运算电路输入从而节省功耗,为达到节省功耗的目的,本实用新型需要在第49轮到64轮运算时,关断运算逻辑的输入来避免产生不必要的动态功耗,通过比较器p1在轮数输入round小于等于48时,p1输出en=1,三态门使能开启,使得运算逻辑正常运算;在round大于48时,p1输出en=0,三态门关闭,逻辑运算电路的输入不再变化,逻辑运算电路内部不再翻转,从而节省了大约25%的动态功耗;与常规sha256算法中消息扩展电路设计相比,增加了对轮数的判断,在不必要运算的时候关闭运算电路的输入,节省了功耗,在大量密集的sha256运算中,节约了能源开支、延长了电池寿命、同时减少了芯片发热、能增加芯片的使用寿命。
附图说明
图1是本实用新型的总体结构框图;
图2是本实用新型的消息寄存器m原理框图;
图3是本实用新型的三态门电路原理框图;
图4是本实用新型的运算逻辑原理框图。
具体实施方式
为能清楚说明本方案的技术特点,下面通过具体实施方式,对本方案进行阐述。
参见图1至图4,本实用新型是:一种低功耗sha256算法中的消息扩展电路,其中,所述消息扩展电路包括一组512bit的消息与移位复用寄存器m,四组三态门gate1、gate2、gate3和gate4,一组运算逻辑电路和一组6bit的比较器p1构成。
具体地,所述一组512bit的消息与移位复用寄存器m具体内容为:在需要输入新消息时,m的值来自于消息输入m_in;在sha256算法的64轮运算中,每一轮运算消息寄存器m右移动32位,其最高的32位,即m[511:480]来自于运算逻辑的输出,其最低32位,即m[31:0]是消息扩展电路的结果输出wt。
如图2所示,所述的消息与移位复用寄存器m的输入信号m_in用来写入一个新的消息,输入信号m[511:480]用来在sha256轮运算时间,把运算逻辑电路的输出写入到消息寄存器m的最高32位,输出信号m[479:448]连接m寄存器的479-448位的输出端,并连接到运算逻辑的其中一个输入端,输出信号m[319:288]连接m寄存器的319-288位的输出端,并连接到运算逻辑的其中一个输入端,输出信号m[63:32]连接m寄存器的63-32位的输出端,并连接到运算逻辑的其中一个输入端,输出信号m[31:0]连接m寄存器的31-0位的输出端,并连接到运算逻辑的其中一个输入端,在新消息写入时m寄存器从m_in写入新值,在轮运算中,m寄存器每个时钟周期右移32位。
具体地,所述三态门gate1的输入端连接到消息寄存器的479-488位,输出到运算逻辑;三态门gate2的输入端连接到消息寄存器的319-288位,输出到运算逻辑;三态门gate3的输入端连接到消息寄存器的63-32位,输出到运算逻辑;三态门gate4的输入端连接到消息寄存器的31-0位,输出到运算逻辑;gate1、gate2、gate3和gate4的使能端共同连接到比较器p1的输出en,在en信号为1时,gate1、gate2、gate3和gate4打开,它们的输出等于输入,在en信号为0时,它们的输出为高阻态,输出与输入无关。这四组三态门是低功耗设计的重要组成部分。
本实用新型所述的四组三态门gate1、gate2、gate3和gate4,电路如图3所示,共有四组三态门,一组三态门由32个三态门组成,其中gate1组三态门的输入端连接到寄存器m的447-448位,其中gate2组三态门的输入端连接到寄存器m的319-288位,其中gate3组三态门的输入端连接到寄存器m的63-32位,其中gate4组三态门的输入端连接到寄存器m的31-0位,每个三态门的使能端是比较器的输出,四组三态门的输出连接到运算逻辑电路的四组输入输入,在en=1时,三态门输出等于输入;在en=0时,三态门输出高阻态。
具体地,所述运算逻辑电路的四组输入分别是三态门gate1、gate2、gate3和gate4的输出,其内部由异或门与加法器构成,其输出为32bit数据,连接到消息寄存器m的最高32位。
所述运算逻辑电路内部由异或门和加法器构成:
所述异或电路逻辑描述如下:
c0(x)=rotr7^rotr18(x)^shr3(x)
c1(x)=rotr17^rotr19(x)^shr10(x)
其中x是32bit输入,rotr是循环右移,shr是右移,上标是移位位数,″^″代表异或运算。移位运算在硬件设计中通过更改32bit信号的顺序完成,不产生多余的组合逻辑,在c0和c1中,内部结构是三组32bit的异或门。
所述三组加法器逻辑描述如下:
y=x1+x2+c0+c1
所述运算逻辑电路包含的三组加法器,考虑到加法器的延时较高,是整个电路的关键路径所在,所以采用速度较快的保留进位加法器。
本实用新型所述的运算逻辑电路,如图4所示,四个输入端分别是组三态门gate1、gate2、gate3和gate4的输出。输出连接到m寄存器的最高32bit。在sha轮运算49-64轮输入被关断。
具体地,所述两组输入分别是当前运算轮数round和常数48,当round小于等于48时,比较器p1输出en信号为1,三态门使能,当round大于48时,比较器p1输出en信号为0,三态门关闭。
所述比较器p1,输入端1是轮数信号round,输入端2是常数48,输出端en连接到四组三态门gate1、gate2、gate3和gate4的使能端,在round小于等于48时,en=1;在round大于48时,en=0。
本实用新型的具体工作过程为:在一次sha256运算开始时,消息从m_in输入到消息寄存器m中,在sha256内部轮运算中,每一个时钟周期m寄存器右移32bit,扩展的消息wt从m的最低32bit输出,基于过去wt运算出来的新的wt从运算逻辑电路输出并存入m寄存器的最高32bit;节省功耗的原理,在sha256内部运算轮数1-48轮时,运算逻辑电路正常运算,在sha256内部运算轮数大于48轮时,关断运算逻辑电路的输入,从而节省了25%左右的动态功耗。
本实用新型未经描述的技术特征可以通过或采用现有技术实现,在此不再赘述,当然,上述说明并非是对本实用新型的限制,本实用新型也并不仅限于上述举例,本技术领域的普通技术人员在本实用新型的实质范围内所做出的变化、改型、添加或替换,也应属于本实用新型的保护范围。
1.一种低功耗sha256算法中的消息扩展电路,其特征在于,所述消息扩展电路包括一组512bit的消息与移位复用寄存器m,四组三态门gate1、gate2、gate3和gate4,一组运算逻辑电路和一组6bit的比较器p1构成;
所述一组512bit的消息与移位复用寄存器m具体内容为:在需要输入新消息时,m的值来自于消息输入m_in;在sha256算法的64轮运算中,每一轮运算消息寄存器m右移动32位,其最高的32位,m[511:480]来自于运算逻辑的输出,其最低32位,m[31:0]是消息扩展电路的结果输出wt;
所述三态门gate1的输入端连接到消息寄存器的479-488位,输出到运算逻辑;三态门gate2的输入端连接到消息寄存器的319-288位,输出到运算逻辑;三态门gate3的输入端连接到消息寄存器的63-32位,输出到运算逻辑;三态门gate4的输入端连接到消息寄存器的31-0位,输出到运算逻辑;gate1、gate2、gate3和gate4的使能端共同连接到比较器p1的输出en,在en信号为1时,gate1、gate2、gate3和gate4打开,它们的输出等于输入,在en信号为0时,它们的输出为高阻态。
2.根据权利要求1所述的低功耗sha256算法中的消息扩展电路,其特征在于,所述运算逻辑电路的四组输入分别是三态门gate1、gate2、gate3和gate4的输出,其内部由异或门与三组加法器构成,运算逻辑输出为32bit数据,连接到消息寄存器m的最高32位,三组加法器为保留进位加法器。
3.根据权利要求1所述的低功耗sha256算法中的消息扩展电路,其特征在于,所述比较器p1的两组输入分别是当前运算轮数round和常数48,当round小于等于48时,比较器p1输出en信号为1,三态门使能,当round大于48时,比较器p1输出en信号为0,三态门关闭。
技术总结