【技术实现步骤摘要】
【国外来华专利技术】一种安全散列算法的数据压缩电路和芯片
[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, ...
【技术保护点】
【技术特征摘要】
【国外来华专利技术】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电路连...
【专利技术属性】
技术研发人员:蔡凯,闫超,田佩佳,刘明,张雨生,
申请(专利权)人:声龙新加坡私人有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。