一种安全散列算法的数据压缩电路和芯片制造技术

技术编号:38283067 阅读:14 留言:0更新日期:2023-07-27 10:30
一种SHA

【技术实现步骤摘要】
【国外来华专利技术】一种安全散列算法的数据压缩电路和芯片


[0001]本公开实施例涉及但不限于安全散列算法,更具体地,涉及一种安全散列算法的实现方法、数据压缩电路和芯片。

技术介绍

[0002]SHA

2(Security Hash Algorithm

2)安全散列算法一种密码散列算法,用于实现数据间的单向映射,它可以将任意长度的消息映射成固定长度的消息摘要,并且映射过程不可逆。根据不同的输出消息摘要的长度,SHA

2分为SHA

224、SHA

256、SHA

384、SHA

512等算法,主要用于数字签名、指纹验证以及网络安全协议等领域。其中,SHA

256是一种单向哈希算法,能够将任意长度小于2
64
位的输入消息转换为长度为256位的消息摘要,安全性高,在芯片中应用SHA

256算法时,其性能还有待提高。
[0003]专利技术概述
[0004]以下是对本文详细描述的主题的概述。本概述并非是为了限制权利要求的保护范围。
[0005]本公开实施例提供了一种安全散列算法SHA

256的数据压缩电路,其中的第n级单级压缩电路为带中间变量的迭代电路,n=n1,n1+1,n1+2,

,n2,n2>n1≥3,所述迭代电路包括:
[0006]8个输入侧寄存器A,B,C,J,E,F,G,I,其中,A,B,C,D分别输出经n

2次迭代的变量a,b,c,j的数据,E,F,G,I分别输出经n次迭代的变量e,f,g,i的数据;
[0007]8个输出侧寄存器A

,B

,C

,J

,E

,F

,G

,I

,其中,A

,B

,C

,J

分别保存经n

1次迭代的变量a,b,c,j的数据,E

,F

,G

,I

分别保存经n+1次迭代的变量e,f,g,i的数据;
[0008]第一预处理电路,设置为基于输入的消息字和A,G的输出执行1次变量i的迭代运算,得到i
n+1
或且满足i
n+1
=a
n
‑2+g
n
+K
n+1
+W
n+1

[0009]变量e的运算电路,设置为基于I,E,F,G的输出执行1次变量e的迭代运算,得到e
n+1
或且满足e
n+1
=i
n
+∑1e
n
+Ch(e
n
,f
n
,g
n
);
[0010]第二预处理电路,设置为基于E,C的输出执行1次变量j的迭代运算,得到j
n
‑1或且满足j
n
‑1=e
n

c
n
‑2;
[0011]变量a的运算电路,设置为基于A,B,C,J的输出执行1次变量a的迭代运算,得到a
n
‑1或且满足a
n
‑1=∑
0 a
n
‑2+Maj(a
n
‑2,b
n
‑2,c
n
‑2)+j
n
‑2;
[0012]其中,A和B

、B和C

、E和F

、及F和G

之间直接连接;
[0013]其中,x
m
表示变量x经m次迭代的值,x为a,b,c,j,e,f,g,i;K
n+1
是第n+1个固定消息字,W
n+1
是对输入的消息块分组或扩展得到的第n+1个消息字。
[0014]本公开上述实施例SHA

256算法的数据压缩电路和芯片,可以缩短SHA

256运算的关键路径,无需增加寄存器,提供更高的性能,更小的功耗,且使芯片面积更小。
[0015]在阅读并理解了附图和详细描述后,可以明白其他方面。
[0016]附图概述
[0017]附图用来提供对本公开实施例的理解,并且构成说明书的一部分,与本公开实施例一起用于解释本公开的技术方案,并不构成对本公开技术方案的限制。
[0018]图1A是SHA

256中消息填充的示意图;
[0019]图1B是本公开实施例的可实现SHA

256的一种芯片的结构框图;
[0020]图2是本公开实施例的数据压缩部分和数据扩展部分的电路的结构图;
[0021]图3是用于实现原始的单轮迭代函数的压缩结构的逻辑框图;
[0022]图4是用于实现本公开实施例单轮迭代函数的压缩结构的示意图;
[0023]图5是用于实现本公开实施例单轮迭代函数的另一种压缩结构的示意图;
[0024]图6是用于实现本公开实施例单轮迭代函数的另一种压缩结构的示意图;
[0025]图7是本公开一实施例用于实现单轮迭代函数的一种单级压缩电路的逻辑框图;
[0026]图8是本公开一实施例用于实现单轮迭代函数的另一种单级压缩电路的逻辑框图;
[0027]图9A是本公开一实施例输出变量的按位取反值时的单级压缩电路的逻辑框图;
[0028]图9B是本公开一实施例输出变量的按位取反值时的两级压缩电路的逻辑框图;
[0029]图10是CSA的示意图;
[0030]图11是本公开实施例CSN中的FAIN模块的示意图;
[0031]图12是本公开一实施例基于CSN实现的两级压缩结构的逻辑框图;
[0032]图13是图12中第一级压缩结构的另一种结构的逻辑框图;
[0033]图14是本公开一实施例第0级和第1级的压缩电路的逻辑框图;
[0034]图15是本公开一实施例第2级和第3级的压缩电路的逻辑框图;
[0035]图16是本公开一实施例第63级至第64级的压缩电路的逻辑框图;
[0036]图17是本公开一实施例第65级的压缩电路的逻辑框图。
[0037]详述
[0038]本公开描述了多个实施例,但是该描述是示例性的,而不是限制性的,并且对于本邻域的普通技术人员来说显而易见的是,在本公开所描述的实施例包含的范围内可以有更多的实施例和实现方案。
[0039]本公开的描述中,“示例性本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种安全散列算法SHA

256的数据压缩电路,其特征在于,其中的第n级单级压缩电路为带中间变量的迭代电路,n=n1,n1+1,n1+2,

,n2,n2>n1≥3,所述迭代电路包括:8个输入侧寄存器A,B,C,J,E,F,G,I,其中,A,B,C,D分别输出经n

2次迭代的变量a,b,c,j的数据,E,F,G,I分别输出经n次迭代的变量e,f,g,i的数据;8个输出侧寄存器A

,B

,C

,J

,E

,F

,G

,I

,其中,A

,B

,C

,J

分别保存经n

1次迭代的变量a,b,c,j的数据,E

,F

,G

,I

分别保存经n+1次迭代的变量e,f,g,i的数据;第一预处理电路,设置为基于输入的消息字和A,G的输出执行1次变量i的迭代运算,得到i
n+1
或且满足i
n+1
=a
n
‑2+g
n
+K
n+1
+W
n+1
;变量e的运算电路,设置为基于I,E,F,G的输出执行1次变量e的迭代运算,得到e
n+1
或且满足e
n+1
=i
n
+∑1e
n
+Ch(e
n
,f
n
,g
n
);第二预处理电路,设置为基于E,C的输出执行1次变量j的迭代运算,得到j
n
‑1或且满足j
n
‑1=e
n

c
n
‑2;变量a的运算电路,设置为基于A,B,C,J的输出执行1次变量a的迭代运算,得到a
n
‑1或且满足a
n
‑1=∑0a
n
‑2+Maj(a
n
‑2,b
n
‑2,c
n
‑2)+j
n
‑2;其中,A和B

、B和C

、E和F

、及F和G

之间直接连接;其中,x
m
表示变量x经m次迭代的值,x为a,b,c,j,e,f,g,i;K
n+1
是第n+1个固定消息字,W
n+1
是对输入的消息块分组或扩展得到的第n+1个消息字。2.如权利要求1所述的数据压缩电路,其特征在于:所述数据压缩电路包括第0级至第65级共66级压缩电路,所述66级压缩电路为流水结构,n1大于或等于3,n2小于或等于62;所述66级压缩电路中的每一级压缩电路均包括8个输入侧寄存器和8个输出侧寄存器,每一级压缩电路的输出侧寄存器组即下一级压缩电路的输入侧寄存器组。3.如权利要求1所述的数据压缩电路,其特征在于:所述迭代电路包括第一迭代电路;所述第一迭代电路的A,B,C,J,E,F,G,I分别输出a
n
‑2,b
n
‑2,c
n
‑2,j
n
‑2,e
n
,f
n
,g
n
,i
n
;所述第一迭代电路的A

,B

,C

,J

,E

,F

,G

,I

分别保存a
n
‑1,b
n
‑1,c
n
‑1,j
n
‑1,e
n+1
,f
n+1
,g
n+1
i
n+1
。4.如权利要求3所述的数据压缩电路,其特征在于:所述第一迭代电路中:所述第一预处理电路包括输入端与A和G的输出端连接并接收W
n+1
,输出端连接到I

的第一加法电路;所述第一预处理电路设置为执行1次变量i的迭代运算i
n+1
=a
n
‑2+g
n
+K
n+1
+W
n+1
得到i
n+1
;所述第二预处理电路包括输入端与C和E的输出端连接,输出端连接到J

的第一减法电路;所述第二预处理电路设置为执行1次变量j的迭代运算j
n
‑1=e
n

c
n
‑2得到j
n
‑1;所述变量e的运算电路包括输入端与E的输出端连接的∑1算子,输入端与E,F和G的输出端连接的Ch算子,及输入端与∑1算子、Ch算子和I的输出端连接的第二加法电路,所述第二加法电路的输出端连接到E

的输入端;所述变量e的运算电路设置为执行1次变量e的迭代运算e
n+1
=i
n
+∑1e
n
+Ch(e
n
,f
n
,g
n
)得到e
n+1
;所述变量a的运算电路包括输入端与A,B和C的输出端连接的Maj算子,输入端与A的输
出端连接的∑0算子,及输入端与Maj算子、∑0算子和J的输出端连接的第三加法电路,所述第三加法电路的输出端连接到A

的输入端;所述变量a的运算电路设置为执行1次变量a的迭代运算a
n
‑1=∑0a
n
‑2+Maj(a
n
‑2,b
n
‑2,c
n
‑2)+j
n
‑2得到a
n
‑1;所述A和B

、B和C

、E和F

、及F和G

之间的直接连接设置为分别将a
n
‑2,b
n
‑2,e
n
,f
n
打一拍得到b
n
‑1,c
n
‑1,f
n+1
,g
n+1
。5.如权利要求4所述的数据压缩电路,其特征在于:所述第一加法电路包括依次串联的第一进位保留加法器CSA、第二CSA和带进位加法器CPA;所述第二加法电路和第三加法电路均包括串联的CSA和CPA。6.如权利要求3所述的数据压缩电路,其特征在于:所述迭代电路还包括第二迭代电路;所述第二迭代电路的A,B,C,J,E,F,G,I分别输出所述第二迭代电路的A,B,C,J,E,F,G,I分别输出所述第二迭代电路的A

,B

,C

,J

,E

,F

,G

,I

分别保存为7.如权利要求6所述的数据压缩电路,其特征在于:所述第二迭代电路中:所述第一预处理电路包括输入端与A的输出端连接的第一非门,输入端与G和第一非门的输出端连接并接收W
n+1
的第一减法电路,所述第一减法电路的输出端与I

的输入端连接;所述第一预处理电路设置为执行1次变量i的迭代运算所述第一预处理电路设置为执行1次变量i的迭代运算得到所述第二预处理电路包括输入端与C输出端连接的第二非门,输入端与第二非门和E的输出端连接的加法电路,所述加法电路的输出端与J

的输入端连接;所述第二预处理电路设置为执行1次变量j的迭代运算得到所述变量e的运算电路包括输入端与I输出端连接的第三非门,输入端与E的输出端连接的∑1算子,输入端与E,F和G的输出端连接的Ch算子,输入端与∑1算子的输出端连接的第四非门,及输入端与Ch算子、第三非门和第四非门的输出端连接的第二减法电路,所述第二减法电路的输出端与E

的输入端连接;所述变量e的运算电路设置为执行1次变量e的迭代运算得到所述变量a的运算电路包括所述第一非门,输入端与J的输出端连接的第五非门,输入端与A,B和C的输出端连接的Maj算子,输入端与第一非门的输出端连接的∑0算子,及输入端与Maj算子、∑0算子和第五非门的输出端连接的第三减法电路,所述第三减法电路的输出端与A

的输入端连接;所述变量a的运算电路设置为执行1次变量a的迭代运算得到所述A和B

、B和C

、E和F

、及F和G

之间的直接连接设置为分别将之间的直接连接设置为分别将打一拍后得到8.如权利要求7所述的数据压缩电路,其特征在于:所述第一减法电路、第二减法电路和第三减法电路中的部分或全部使用进位保留减法器CSS实现3个操作数减法到2个操作数减法的化简;
所述CSS设置为将3个输入操作数x,y,z的减法运算x

y

z简化为2个输出操作数的减法运算s

c,其中,9.如权利要求3所述的数据压缩电路,其特征在于:所述第n级压缩电路中的输入侧寄存器和输出侧寄存器是输出与输入相同的寄存器,所述迭代电路均为所述第一迭代电路。10.如权利要求6所述的数据压缩电路,其特征在于:所述第n级压缩电路中的输入侧寄存器和输出侧寄存器是输出为输入取反的寄存器;相邻的两个所述迭代电路中,一个为所述第一迭代电路,另一个为所述第二迭代电路。11.如权利要求1所述的数据压缩电路,其特征在于:所述迭代电路包括第三迭代电路;所述第三迭代电路的A,B,C,J,E,F,G,I分别输出所述第三迭代电路的A

,B

,C

,J

,E

,F

,G

,I

分别保存12.如权利要求11所述的数据压缩电路,其特征在于:所述第三迭代电路中:所述第一预处理电路包括输入端与A和G的输出端连接并接收W
n+1
的数据的第一运算电路,所述第一运算电路的输出端与I

的输入端连接;所述第一预处理电路设置为基于以及K
n+1
,W
n+1
的数据执行1次变量i的迭代运算得到i
n+1
;所述第二预处理电路的输入端与C和E的输出端连接,输出端连接到J

;所述第二预处理电路设置为执行1次变量j的迭代运算得到所述变量e的运算电路包括输入端与E的输出端连接的∑
n1
算子,输入端与E,F和G的输出端连接的Chn算子,及输入端与∑
n1
算子、Chn算子和I的输出端连接的第二运算电路,所述第二运算电路的输出端与E

的输入端连接;所述变量e的运算电路设置为基于和i
n
为执行1次变量e的迭代运算得到所述变量a的运算电路包括输入端与A,B和C的输出端连接的Majn算子,输入端与A的输出端连接的∑
n0
算子,及输入端与Majn算子、∑
n0
算子和J的输出端连接的第三运算电路,所述第三运算电路的输出端与A

的输入端连接;所述变量a的运算电路设置为基于执行1次变量a的迭代运算得到a
n
‑1;所述A和B

、B和C

、E和F

、及F和G

之间的直接连接设置为分别将打一拍得到13.如权利要求11所述的数据压缩电路,其特征在于:所述迭代电路还包括第四迭代电路;所述第四迭代电路的A,B,C,J,E,F,G,I分别输出所述第四迭代电路的A

,B

,C

,J

,E

,F

,G

,I

分别保存14.如权利要求13所述的数据压缩电路,其特征在于:所述第四迭代电路中:
所述第一预处理电路包括输入端与A和G的输出端连接并接收W
n+1
的数据的第四运算电路,所述第四运算电路的输出端与I

的输入端连接;所述第一预处理电路设置为基于以及K
n+1
,W
n+1
的数据执行1次变量i的迭代运算得到所述第二预处理电路的输入端与C和E的输出端连接,输出端连接到J

;所述第二预处理电路设置为执行1次变量j的迭代运算得到j
n
‑1;所述变量e的运算电路包括输入端与E的输出端连接的∑
n1
算子,输入端与E,F和G的输出端连接的Chn算子,及输入端与∑
n1
算子、Chn算子和I的输出端连接的第三运算电路,所述第三运算电路的输出端与E

的输入端连接;所述变量e的运算电路设置为基于e
n
,f
n
,g
n
和为执行1次变量e的迭代运算得到e
n+1
;所述变量a的运算电路包括输入端与A,B和C的输出端连接的Majn算子,输入端与A的输出端连接的∑
n0
算子,及输入端与Majn算子、∑
n0
算子和J的输出端连接的第二运算电路,所述第二运算电路的输出端与A

的输入端连接;所述变量a的运算电路设置为基于执行1次变量a的迭代运算得到所述A和B

、B和C

、E和F

、及F和G

之间的直接连接设置为分别将打一拍得到15.如权利要求14所述的数据压缩电路,其特征在于:所述第二运算电路包括CSN电路和与所述CSN电路连...

【专利技术属性】
技术研发人员:蔡凯闫超田佩佳刘明张雨生
申请(专利权)人:声龙新加坡私人有限公司
类型:发明
国别省市:

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

1