CN106301761B - 一种基于密码杂凑算法的压缩方法及装置 - Google Patents

一种基于密码杂凑算法的压缩方法及装置 Download PDF

Info

Publication number
CN106301761B
CN106301761B CN201610647528.7A CN201610647528A CN106301761B CN 106301761 B CN106301761 B CN 106301761B CN 201610647528 A CN201610647528 A CN 201610647528A CN 106301761 B CN106301761 B CN 106301761B
Authority
CN
China
Prior art keywords
result
compression
variable word
word
initial value
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
CN201610647528.7A
Other languages
English (en)
Other versions
CN106301761A (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.)
State Grid Corp of China SGCC
State Grid Information and Telecommunication Co Ltd
Beijing Smartchip Microelectronics Technology Co Ltd
Beijing Smartchip Semiconductor Technology Co Ltd
Original Assignee
State Grid Corp of China SGCC
State Grid Information and Telecommunication Co Ltd
Beijing Smartchip Microelectronics 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 State Grid Corp of China SGCC, State Grid Information and Telecommunication Co Ltd, Beijing Smartchip Microelectronics Technology Co Ltd filed Critical State Grid Corp of China SGCC
Priority to CN201610647528.7A priority Critical patent/CN106301761B/zh
Publication of CN106301761A publication Critical patent/CN106301761A/zh
Application granted granted Critical
Publication of CN106301761B publication Critical patent/CN106301761B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic 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/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/125Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations

Abstract

本发明涉及一种基于密码杂凑算法的压缩方法及装置,方法包括:获取各变量字的初值和预计算扩展字;对第一变量字、第二变量字、第三变量字的初值进行布尔函数处理;将预计算扩展字、第一变量字的初值、补偿结果以及布尔函数处理后的结果进行压缩加和处理,其中,补偿结果为进行预设位数移位后的常数与预设的补偿值的和;对压缩加和处理后的结果进行选择;对选择后的加和处理后结果进行置换运算,得到当前周期的第一变量字的压缩结果,可以缩短算法中的关键路径,降低关键路径时延,提高电路的吞吐率。

Description

一种基于密码杂凑算法的压缩方法及装置
技术领域
本发明涉及通信技术领域,尤其涉及一种基于密码杂凑算法的压缩方法及装置。
背景技术
随着信息技术和计算机技术的发展和广泛应用,人们对信息数据的可信度要求也越来越高。在高速密码芯片中,密码杂凑算法(Cryptographic Hash Algorithm,缩写:SM3)密码杂凑算法已经越来越多的用于商用密码应用中的数字签名和验证、消息认证码的生成与验证以及随机数的生成。
SM3密码杂凑算法是国家密码管理局于2010年12月公布的一种国产密码算法。SM3密码杂凑算法适用于商用密码应用中的数字签名和认证、消息认证码的生成与验证以及随机数的生成,可以满足多种密码应用的安全需求,同时还可为安全产品生产商提供产品和技术的标准定位以及标准化的参考,提高安全产品的可信性与互操作性。
目前,SM3算法分为消息填充、迭代压缩和杂凑值三步。图1为现有的单周期SM3算法的压缩步骤的结构示意图,请参阅图1,j为待压缩字的序号,范围是0~15,Wj为待压缩的字,A-H为变量字,tj为常量,Wcj为扩展后的字。在每一周期中,通过布尔函数、压缩函数、加法器以及移位,来实现对A-H字寄存器中值的压缩。
但是,这种电路结构造成电路的关键路径比较长,在当前的压缩轮数中,压缩A或E的关键路径需要经过三个加法器,由于加法器的时延较大,会导致电路的时钟频率和吞吐率较低。
公开于该背景技术部分的信息仅仅旨在增加对本发明的总体背景的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域一般技术人员所公知的现有技术。
发明内容
有鉴于此,本发明要解决的技术问题是,如何提供一种高吞吐率的基于密码杂凑算法的压缩方法及装置。
为解决以上技术问题,本发明在第一方面提供一种基于密码杂凑算法的压缩方法,包括:
获取各变量字的初值,所述初值为上一周期各变量字的压缩结果或各变量字的初始值,所述变量字包括:第一变量字、第二变量字、第三变量字、第四变量字;
获取预计算扩展字,其中,所述预计算扩展字为扩展字与所述第四变量字初值的和;
对所述第一变量字、所述第二变量字、所述第三变量字的初值进行布尔函数处理;
将所述预计算扩展字、所述第一变量字的初值、补偿结果以及布尔函数处理后的结果进行压缩加和处理,其中,所述补偿结果为进行预设位数移位后的常数与预设的补偿值的和;
对所述压缩加和处理后的结果进行选择;
对所述选择后的加和处理后结果进行置换运算,得到当前周期的所述第一变量字的压缩结果。
在一种可能的实现方式中,所述变量字还包括:第五变量字;
所述将所述预计算扩展字、所述字寄存器初值、补偿结果以及布尔函数处理后的结果进行压缩加和处理,包括:
获取所述第五变量字的初值,对所述第五变量字的初值进行预设位数的移位;
将所述移位后的第五变量字的初值、所述预计算扩展字、所述第一变量字初值、所述补偿结果以及所述布尔函数处理后的结果,进行三次压缩处理;
对所述三次压缩处理后的结果进行加和。
在一种可能的实现方式中,所述对所述压缩加和处理后的结果进行选择,包括:
获取所述移位后的第五变量字的初值;
将所述移位后的第五变量字的初值、所述第一变量字的初值和所述移位后的常数进行压缩处理;
将所述压缩处理后的结果加和,并记录第一加法器的进位输出位作为第一控制位;
将所述压缩处理后的结果进行预设位数的移位,对移位后的结果进行加和,并记录第二加法器的进位输出位作为第二控制位,
根据所述第一控制位和所述第二控制位,对所述压缩加和处理后的结果进行选择。
在一种可能的实现方式中,所述补偿值包括第一补偿值、第二补偿值、第三补偿值和第四补偿值;
所述补偿结果包括第一补偿结果、第二补偿结果、第三补偿结果、第四补偿结果;
所述第一补偿结果为所述第一补偿值与所述移位后的常数的和;所述第二补偿结果为所述第二补偿值与所述移位后的常数的和;所述第三补偿结果为所述第三补偿值与所述移位后的常数的和;和所述第四补偿结果为所述第四补偿值与所述移位后的常数的和。
在一种可能的实现方式中,所述根据所述第一控制位和所述第二控制位,对所述压缩加和处理后的结果进行选择包括:
建立所述第一控制位、所述第二控制位与所述第一补偿结果、所述第二补偿结果、所述第三补偿结果、所述第四补偿结果之间的对应关系;
根据所述第一控制位、所述第二控制位以及所述对应关系,选择所述压缩加和处理后的结果。
本发明在第二方面提供一种基于密码杂凑算法的压缩装置,包括:
获取模块,用于获取各变量字的初值,所述初值为上一周期各变量字的压缩结果或各变量字的初始值,所述变量字包括:第一变量字、第二变量字、第三变量字、第四变量字;
所述获取模块,还用于获取预计算扩展字,其中,所述预计算扩展字为扩展字与所述第四变量字初值的和;
布尔函数处理模块,用于对所述第一变量字、所述第二变量字、所述第三变量字的初值进行布尔函数处理;
压缩加和处理模块,用于将所述预计算扩展字、所述第一变量字的初值、补偿结果以及布尔函数处理后的结果进行压缩加和处理,其中,所述补偿结果为进行预设位数移位后的常数与预设的补偿值的和;
选择模块,用于对所述压缩加和处理后的结果进行选择;
置换运算模块,用于对所述选择后的加和处理后结果进行置换运算,得到当前周期的所述第一变量字的压缩结果。
在一种可能的实现方式中,所述获取模块中的变量字还包括:第五变量字;
所述压缩加和处理模块,用于获取所述第五变量字的初值,对所述第五变量字的初值进行预设位数的移位;
将所述移位后的第五变量字的初值、所述预计算扩展字、所述第一变量字初值、所述补偿结果以及所述布尔函数处理后的结果,进行三次压缩处理;
对所述三次压缩处理后的结果进行加和。
在一种可能的实现方式中,所述选择模块用于:
获取所述移位后的第五变量字的初值;
将所述移位后的第五变量字的初值、所述第一变量字的初值和所述移位后的常数进行压缩处理;
将所述压缩处理后的结果加和,并记录第一加法器的进位输出位作为第一控制位;
将所述压缩处理后的结果进行预设位数的移位,对移位后的结果进行加和,并记录第二加法器的进位输出位作为第二控制位,
根据所述第一控制位和所述第二控制位,对所述压缩加和处理后的结果进行选择。
在一种可能的实现方式中,所述压缩加和处理模块中的所述补偿值包括第一补偿值、第二补偿值、第三补偿值和第四补偿值;
所述补偿结果包括第一补偿结果、第二补偿结果、第三补偿结果、第四补偿结果;
所述第一补偿结果为所述第一补偿值与所述移位后的常数的和;所述第二补偿结果为所述第二补偿值与所述移位后的常数的和;所述第三补偿结果为所述第三补偿值与所述移位后的常数的和;和所述第四补偿结果为所述第四补偿值与所述移位后的常数的和。
在一种可能的实现方式中,所述选择模块用于:
建立所述第一控制位、所述第二控制位与所述第一补偿结果、所述第二补偿结果、所述第三补偿结果、所述第四补偿结果之间的对应关系;
根据所述第一控制位、所述第二控制位以及所述对应关系,选择所述压缩加和处理后的结果。
本发明提供的基于密码杂凑算法的压缩方法及装置,通过将预计算扩展字、第一变量字的初值、补偿结果以及布尔函数处理后的结果进行压缩加和处理并选择与本轮压缩中对应的压缩加和处理后的结果,可以缩短密码杂凑算法的关键路径,降低关键路径时延,提高电路的吞吐率。
根据下面参考附图对示例性实施例的详细说明,本发明的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本发明的示例性实施例、特征和方面,并且用于解释本发明的原理。
图1为现有的单周期SM3算法的压缩步骤的结构示意图;
图2为电路级优化后的单周期SM3算法的压缩步骤的结构示意图;
图3为本发明实施例一提供的基于密码杂凑算法的压缩方法的流程图;
图4为本发明实施例一提供的基于密码杂凑算法的压缩电路结构示意图;
图5为本发明实施例二提供的基于密码杂凑算法的压缩方法的流程图;
图6为本发明实施例二提供的基于密码杂凑算法的压缩电路结构示意图;
图7为实现压缩加和处理的五输入两输出压缩加法器的结构示意图;
图8示出本发明实施例三提供的基于密码杂凑算法的压缩装置的结构示意图。
具体实施方式
下面结合附图,对本发明的具体实施方式进行详细描述,但应当理解本发明的保护范围并不受具体实施方式的限制。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。除非另有其它明确表示,否则在整个说明书和权利要求书中,术语“包括”或其变换如“包含”或“包括有”等等将被理解为包括所陈述的元件或组成部分,而并未排除其它元件或其它组成部分。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本发明,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本发明同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件未作详细描述,以便于凸显本发明的主旨。
国家密码管理局公布的SM3密码杂凑算法中,规定了SM3的计算方法和计算步骤。SM3密码杂凑算法分为消息填充、迭代压缩和杂凑值三步。其中,消息填充是将长度小于264-bit的消息m,填充为长度为512-bit的整倍数的消息块m’;迭代压缩是SM3算法的核心,把填充后的消息m’按照固定的512-bit进行分组,得到消息分组B(0)B(1)…B(n-1),然后对每个512-bit分组B(i)逐次压缩,最终得到整个消息m’的256-bit的杂凑值(hash value),其中,n=消息m’的长度/512。迭代压缩过程包括迭代过程、消息扩展和压缩函数,其中,消息扩展和压缩函数的具体算法如下:
1、消息扩展
将消息分组B(i)按以下方法扩展生成132个字W0;W1;…W67;W’0;W’1;…W’63,用于压缩函数CF。其中,68个W和64个W’,均是32-bit的字。
a)将消息分组B(i)划分为16个字W0;W1;…W15。
b)FOR j=16TO67
ENDFOR
c)FOR j=0TO63
ENDFOR
2、压缩函数
令A,B,C,D,E,F,G,H为32-bit字寄存器,SS1,SS2,TT1,TT2为32-bit中间变量,压缩函数Vi+1=CF(V(i),B(i)),0≤i≤n-1。
计算消息分组B(i)的杂凑值V(i+1)过程描述如下:
ABCDEFGH=V(i);
FOR j=0TO63;
SS1=((A<<<12)+E+(Tj<<<j))<<<7;
TT1=FFj(A,B,C)+D+SS2+W’j;
TT2=GGj(E,F,G)+H+SS1+Wj;
D=C;
C=B<<<9;
B=A;
A=TT1;
H=G;
G=F<<<19;
F=E;
E=P0(TT2);
ENDFOR;
其中,
32比特异或运算;
32比特非运算;
+:mod232算术加运算;
<<<k:循环左移k比特运算。
在上述计算步骤中,可以看出,针对A、E的路径最长。在实际运算过程中,路径E的计算时间最长,因此称为关键路径。本发明主要针对参数E的计算进行研究,参数A的硬件实现与E基本相同,在此不做赘述。
图2为电路级优化后的单周期SM3算法的压缩步骤的结构示意图,图2与图1相比,是针对参数E的压缩结构示意图,使用压缩器CSA对上一轮中的E和tj进行压缩,压缩后通过加法器,减少了一个加法器的时延。由于经过CSA和加法器的结果需要进行移位,因此无法合并下一个加法器。此时,为不改变算法的前提下,单周期最优的实现电路。
实施例1
图3为本发明实施例一提供的基于密码杂凑算法的压缩方法的流程图,图4为本发明实施例一提供的基于密码杂凑算法的压缩电路结构示意图,如图3、图4所示,该方法包括:
步骤S1,获取各变量字的初值,所述初值为上一周期各变量字的压缩结果或各变量字的初始值,所述变量字包括:第一变量字、第二变量字、第三变量字、第四变量字。
具体地,变量字存储在寄存器中,第一变量字可以对应算法中的E,第二变量字可以对应算法中的F,第三变量字可以对应算法中的G,第四变量字可以对应算法中的H,第五变量字可以对应算法中的A。
步骤S2,获取预计算扩展字,其中预计算扩展字为扩展字与所述第四变量字初值的和。
具体地,扩展字对应Wj,预计算扩展字对应Wj+H。其中,可以通过使用预计算,在上一时钟设置加法器,实现Wj+H运算,并不会增加关键路径的时延,提高工作频率。Wj的计算方法请参阅SM3算法的消息扩展部分。
步骤S3,对所述第一变量字、所述第二变量字、所述第三变量字的初值进行布尔函数处理;
具体地,布尔函数的表达式请参阅下式。
其中,X,Y,Z分别对应本实施例中的E,F,G。
步骤S4,将所述预计算扩展字、所述第一变量字的初值、补偿结果以及布尔函数处理后的结果进行压缩加和处理,其中,所述补偿结果为按照预设位数移位后常数与预设的补偿值的和。
常数对应算法中的Tj,按照预设位数移位后常数对应Tj<<<j,也就是Tj左移j位。Tj计算公式请参阅公式(2)。
步骤S5,对所述压缩加和处理后的结果进行选择;
具体地,可以通过设置选择器,对压缩加和处理后的结果进行选择。
步骤S6,对所述选择后的加和处理后结果进行置换运算,得到当前周期的所述第一变量字的压缩结果。
置换运算函数为P0,请参阅公式3。
其中,X为字,对应步骤6中的对所述选择后的加和处理后结果。
实施例中,通过将预计算扩展字、第一变量字的初值、补偿结果以及布尔函数处理后的结果进行压缩加和处理并选择与本轮压缩中对应的压缩加和处理后的结果,可以缩短密码杂凑算法的关键路径,降低关键路径时延,提高电路的吞吐率。
实施例2
图5为本发明实施例二提供的基于密码杂凑算法的压缩方法的流程图,图6为本发明实施例二提供的基于密码杂凑算法的压缩电路结构示意图,在图5中与图3采用相同附图标记的步骤,均与图3适用于相同的文字说明,在此不再赘述。
本实施例中,变量字还可以包括:第五变量字;
步骤S4可以包括:
步骤S401,获取所述第五变量字的初值,对所述第五变量字的初值进行预设位数的移位;
第五变量字对应算法中的A变量字。
步骤S402,将所述移位后的第五变量字的初值、所述预计算扩展字、所述第一变量字初值、所述补偿结果以及所述布尔函数处理后的结果,进行三次压缩处理;
具体地,对第五变量字的初值进行预设位数的移位,可以为,对上一轮的计算结果A或A的初始值,进行左移12位的位移。第一变量字初值为E变量字初值。
在一种可能的实现方式中,补偿值可以包括第一补偿值、第二补偿值、第三补偿值和第四补偿值;补偿结果包括第一补偿结果、第二补偿结果、第三补偿结果、第四补偿结果;所述第一补偿结果为所述第一补偿值与所述移位后常数的和;所述第二补偿结果为所述第二补偿值与所述移位后常数的和;所述第三补偿结果为所述第三补偿值与所述移位后常数的;和所述第四补偿结果为所述第四补偿值与所述移位后常数的和。
步骤S403,对所述三次压缩处理后的结果进行加和。
其中,本实施例中对实施例一中的压缩加和处理进行进一步限定,压缩加和处理中可以包括三次压缩处理以及一次加和处理。
图7为实现压缩加和处理的五输入两输出压缩加法器的结构示意图。请参阅图7和图6,可以通过分别设置与第一补偿结果、第二补偿结果、第三补偿结果、第四补偿结果对应的四个压缩加法器来实现上述步骤。
更为具体的,第一压缩加法器的输入为移位后的第五变量字的初值、预计算扩展字、第一变量字初值、第一补偿结果以及所述布尔函数处理后的结果;第二压缩加法器的输入为移位后的第五变量字的初值、预计算扩展字、第一变量字初值、第二补偿结果以及所述布尔函数处理后的结果;第三压缩加法器的输入为移位后的第五变量字的初值、预计算扩展字、第一变量字初值、第三补偿结果以及所述布尔函数处理后的结果;第四压缩加法器的输入为移位后的第五变量字的初值、预计算扩展字、第一变量字初值、第四补偿结果以及所述布尔函数处理后的结果。
由此,通过使用五输入三输出的压缩加法器,五输入三输出的压缩加法器包括三个压缩器CSA和一个加法器,可以将加法器的数量降为一个,这样可以将关键路径上的加法器减少,关键路径的缩短可以获取高速的工作频率,从而达到高吞吐率的目的。
相应的,可以通过以下步骤实现对压缩加和处理后的结果进行选择。
步骤S5可以包括:
步骤S501,获取所述移位后的第五变量字的初值;
步骤S502,将所述移位后的第五变量字的初值、所述第一变量字的初值和所述移位后的常数进行压缩处理;
步骤S503,将所述压缩处理后的结果加和,并记录第一加法器的进位输出位作为第一控制位;
具体地,可以通过设置三输入两输出的压缩器和加法器来实现。将所述移位后的第五变量字的初值、所述第一变量字的初值和所述移位后的常数输入三输入两输出的压缩器,将压缩器的输出结果输入第一加法器的输入端,记录第一加法器的进位输出位作为第一控制位。
步骤S504,将所述压缩处理后的结果进行预设位数的移位,对移位后的结果进行加和,并记录第二加法器的进位输出位作为第二控制位,
具体地,将所述移位后的第五变量字的初值、所述第一变量字的初值和所述移位后的常数输入三输入两输出的压缩器后,压缩器的输出结果进行预设位数的移位,左移7位,并记录第二加法器的进位输出位作为第二控制位。
步骤S505,根据所述第一控制位和所述第二控制位,选择所述压缩加和处理后的结果。
在一种可能的实现方式中,步骤S505可以通过以下方式实现。
建立所述第一控制位、所述第二控制位与所述第一补偿结果、所述第二补偿结果、所述第三补偿结果、所述第四补偿结果之间的对应关系;根据所述第一控制位、所述第二控制位以及所述对应关系,选择所述压缩加和处理后的结果。
为了最大化减少关键路径的延时,可以突破算法的限制,即通过改变现有电路中如图1、图2,加数加和再移位的算法约束,减少加法器,后续通过补偿运算保证运算功能的正确。由于电路中存在图2中对CSA和加法器的输出左移7位的限制,现有的电路无法对预计算扩展字、第一变量字初值、补偿结果以及布尔函数处理后的结果先进行压缩,压缩后在使用加法器进行加和。而本发明通过将所有的加数先行相加,经过三次CSA压缩后,再经过一个加法器得出一个结果。但是由于实际上,移位后相加和移位前相加会存在最高位是否存在溢出的情况。即移位后有进位,移位后无进位,移位前有进位,移位前无进位,四种情况,所以可以将这四种情况分别计算出来,最后再进行统一的选择。
具体地,预设关系可以为:设置当第一控制位和第二控制位为00时,对应第一补偿结果,第一补偿结果为0。当第一控制位和第二控制位为01时,对应第二补偿结果,第二补偿结果为FFFFFF80。当第一控制位和第二控制位为10时,对应第三补偿结果,第三补偿结果为1。当第一控制位和第二控制位为11时,对应第四补偿结果,第四补偿结果为FFFFFF81。
请再次参阅图6,第一压缩加法器的输入端为第一补偿结果即移位后的Tj与第一补偿值的和、预计算扩展字即wj+H、布尔函数处理后的结果即GGj(E,F,G),第一变量字初值即E以及移位后的第五变量字的初值即A左移12位后的值。第二压缩加法器、第三压缩加法器、第四压缩加法器的输入端分别为第二补偿结果、第三补偿结果、第四补偿结果,其余四个输入与第一压缩加法器的输入相同,在此不在赘述。
选择器接收上述四个压缩加法器的输出结果。将移位后的Tj、移位后的A、E的值通过CSA压缩,并将压缩后结果经过加法器加和后得到的进位输出端作为第一控制位。将移位后的Tj、移位后的A、E的值通过CSA压缩,压缩后进行移位,将移位后的压缩后结果经过加法器加,得到的进位输出端作为第二控制位。选择器根据第一控制位和第二控制位的值,可以判断出移位前后是否存在溢出位,从而实现对压缩加和结果进行准确选择。
由此,通过将移位后的第五变量字的初值、预计算扩展字、第一变量字初值、所述补偿结果以及布尔函数处理后的结果先行通过压缩加法器进行压缩加和,根据第一控制位、第二控制位以及预先设定的对应关系,选择所述压缩加和处理后的结果。实现了减少关键路径上的加法器各数,提工作频率,从而提高吞吐率。
需要说明的是,本发明实施例中附图给出的只是一种实现方式,并不是对本发明实施例执行先后顺序进行的限定。
实施例3
图8示出本发明实施例三提供的基于密码杂凑算法的压缩装置的结构示意图,如图8所示,该装置10包括:获取模块110、布尔函数处理模块120、压缩加和处理模块130、选择模块140、置换运算模块150。
获取模块110,用于获取各变量字的初值,所述初值为上一周期各变量字的压缩结果或各变量字的初始值,所述变量字包括:第一变量字、第二变量字、第三变量字、第四变量字;
所述获取模块110,还用于获取预计算扩展字,其中,所述预计算扩展字为扩展字与所述第四变量字初值的和;
布尔函数处理模块120,用于对所述第一变量字、所述第二变量字、所述第三变量字的初值进行布尔函数处理;
压缩加和处理模块130,用于将所述预计算扩展字、所述第一变量字的初值、补偿结果以及布尔函数处理后的结果进行压缩加和处理,其中,所述补偿结果为进行预设位数移位后的常数与预设的补偿值的和;
选择模块140,用于对所述压缩加和处理后的结果进行选择;
置换运算模块150,用于对所述选择后的加和处理后结果进行置换运算,得到当前周期的所述第一变量字的压缩结果。
实施例中,通过将预计算扩展字、第一变量字的初值、补偿结果以及布尔函数处理后的结果进行压缩加和处理并选择与本轮压缩中对应的压缩加和处理后的结果,可以压缩第一变量字的关键路径,降低关键路径时延,提高电路的吞吐率。
进一步地,所述获取模块110中的变量字还包括:第五变量字;
所述压缩加和处理模块130,用于获取所述第五变量字的初值,对所述第五变量字的初值进行预设位数的移位;
将所述移位后的第五变量字的初值、所述预计算扩展字、所述第一变量字初值、所述补偿结果以及所述布尔函数处理后的结果,进行三次压缩处理;
对所述三次压缩处理后的结果进行加和。
进一步地,所述压缩加和处理模块130中的所述补偿值包括第一补偿值、第二补偿值、第三补偿值和第四补偿值;
所述补偿结果包括第一补偿结果、第二补偿结果、第三补偿结果、第四补偿结果;
所述第一补偿结果为所述第一补偿值与所述移位后的常数的和;所述第二补偿结果为所述第二补偿值与所述移位后的常数的和;所述第三补偿结果为所述第三补偿值与所述移位后的常数的和;和所述第四补偿结果为所述第四补偿值与所述移位后的常数的和。
由此,通过使用五输入三输出的压缩加法器,五输入三输出的压缩加法器包括三个压缩器CSA和一个加法器,可以将加法器的数量降为一个,这样可以将关键路径上的加法器减少,关键路径的缩短可以获取高速的工作频率,从而达到高吞吐率的目的。
进一步地,所述选择模块140用于:获取所述移位后的第五变量字的初值;
将所述移位后的第五变量字的初值、所述第一变量字的初值和所述移位后的常数进行压缩处理;
将所述压缩处理后的结果加和,并记录第一加法器的进位输出位作为第一控制位;
将所述压缩处理后的结果进行预设位数的移位,对移位后的结果进行加和,并记录第二加法器的进位输出位作为第二控制位,
根据所述第一控制位和所述第二控制位,对所述压缩加和处理后的结果进行选择。
进一步地,所述选择模块140用于:建立所述第一控制位、所述第二控制位与所述第一补偿结果、所述第二补偿结果、所述第三补偿结果、所述第四补偿结果之间的对应关系;
根据所述第一控制位、所述第二控制位以及所述对应关系,选择所述压缩加和处理后的结果。
由此,通过将移位后的第五变量字的初值、预计算扩展字、第一变量字初值、所述补偿结果以及布尔函数处理后的结果先行通过压缩加法器进行压缩加和,根据第一控制位、第二控制位以及预先设定的对应关系,选择所述压缩加和处理后的结果。实现了减少关键路径上的加法器各数,提工作频率,从而提高吞吐率。
前述对本发明的具体示例性实施方案的描述是为了说明和例证的目的。这些描述并非想将本发明限定为所公开的精确形式,并且很显然,根据上述教导,可以进行很多改变和变化。对示例性实施例进行选择和描述的目的在于解释本发明的特定原理及其实际应用,从而使得本领域的技术人员能够实现并利用本发明的各种不同的示例性实施方案以及各种不同的选择和改变。本发明的范围意在由权利要求书及其等同形式所限定。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

Claims (8)

1.一种基于密码杂凑算法的压缩方法,其特征在于,包括:
获取各变量字的初值,所述初值为上一周期各变量字的压缩结果或各变量字的初始值,所述变量字包括:第一变量字、第二变量字、第三变量字、第四变量字;
获取预计算扩展字,其中,所述预计算扩展字为扩展字与所述第四变量字初值的和;
对所述第一变量字、所述第二变量字、所述第三变量字的初值进行布尔函数处理;
将所述预计算扩展字、所述第一变量字的初值、补偿结果以及布尔函数处理后的结果进行压缩加和处理,其中,所述补偿结果为进行预设位数移位后的常数与预设的补偿值的和;
对所述压缩加和处理后的结果进行选择;
对所述选择后的加和处理后结果进行置换运算,得到当前周期的所述第一变量字的压缩结果;
所述变量字还包括:第五变量字;
所述将所述预计算扩展字、所述第一变量字的初值、补偿结果以及布尔函数处理后的结果进行压缩加和处理,包括:
获取所述第五变量字的初值,对所述第五变量字的初值进行预设位数的移位;
将所述移位后的第五变量字的初值、所述预计算扩展字、所述第一变量字初值、所述补偿结果以及所述布尔函数处理后的结果,进行三次压缩处理;
对所述三次压缩处理后的结果进行加和。
2.根据权利要求1所述的压缩方法,其特征在于,所述对所述压缩加和处理后的结果进行选择,包括:
获取所述移位后的第五变量字的初值;
将所述移位后的第五变量字的初值、所述第一变量字的初值和所述移位后的常数进行压缩处理;
将所述压缩处理后的结果加和,并记录第一加法器的进位输出位作为第一控制位;
将所述压缩处理后的结果进行预设位数的移位,对移位后的结果进行加和,并记录第二加法器的进位输出位作为第二控制位,
根据所述第一控制位和所述第二控制位,对所述压缩加和处理后的结果进行选择。
3.根据权利要求2所述的压缩方法,其特征在于,
所述补偿值包括第一补偿值、第二补偿值、第三补偿值和第四补偿值;
所述补偿结果包括第一补偿结果、第二补偿结果、第三补偿结果、第四补偿结果;
所述第一补偿结果为所述第一补偿值与所述移位后的常数的和;所述第二补偿结果为所述第二补偿值与所述移位后的常数的和;所述第三补偿结果为所述第三补偿值与所述移位后的常数的和;和所述第四补偿结果为所述第四补偿值与所述移位后的常数的和。
4.根据权利要求3所述的压缩方法,其特征在于,所述根据所述第一控制位和所述第二控制位,对所述压缩加和处理后的结果进行选择包括:
建立所述第一控制位、所述第二控制位与所述第一补偿结果、所述第二补偿结果、所述第三补偿结果、所述第四补偿结果之间的对应关系;
根据所述第一控制位、所述第二控制位以及所述对应关系,选择所述压缩加和处理后的结果。
5.一种基于密码杂凑算法的压缩装置,其特征在于,包括:
获取模块,用于获取各变量字的初值,所述初值为上一周期各变量字的压缩结果或各变量字的初始值,所述变量字包括:第一变量字、第二变量字、第三变量字、第四变量字;
所述获取模块,还用于获取预计算扩展字,其中,所述预计算扩展字为扩展字与所述第四变量字初值的和;
布尔函数处理模块,用于对所述第一变量字、所述第二变量字、所述第三变量字的初值进行布尔函数处理;
压缩加和处理模块,用于将所述预计算扩展字、所述第一变量字的初值、补偿结果以及布尔函数处理后的结果进行压缩加和处理,其中,所述补偿结果为进行预设位数移位后的常数与预设的补偿值的和;
选择模块,用于对所述压缩加和处理后的结果进行选择;
置换运算模块,用于对所述选择后的加和处理后结果进行置换运算,得到当前周期的所述第一变量字的压缩结果;
所述获取模块中的变量字还包括:第五变量字;
所述压缩加和处理模块,用于获取所述第五变量字的初值,对所述第五变量字的初值进行预设位数的移位;
将所述移位后的第五变量字的初值、所述预计算扩展字、所述第一变量字初值、所述补偿结果以及所述布尔函数处理后的结果,进行三次压缩处理;
对所述三次压缩处理后的结果进行加和。
6.根据权利要求5所述的压缩装置,其特征在于,所述选择模块用于:
获取所述移位后的第五变量字的初值;
将所述移位后的第五变量字的初值、所述第一变量字的初值和所述移位后的常数进行压缩处理;
将所述压缩处理后的结果加和,并记录第一加法器的进位输出位作为第一控制位;
将所述压缩处理后的结果进行预设位数的移位,对移位后的结果进行加和,并记录第二加法器的进位输出位作为第二控制位,
根据所述第一控制位和所述第二控制位,对所述压缩加和处理后的结果进行选择。
7.根据权利要求6所述的压缩装置,其特征在于,所述压缩加和处理模块中的所述补偿值包括第一补偿值、第二补偿值、第三补偿值和第四补偿值;
所述补偿结果包括第一补偿结果、第二补偿结果、第三补偿结果、第四补偿结果;
所述第一补偿结果为所述第一补偿值与所述移位后的常数的和;所述第二补偿结果为所述第二补偿值与所述移位后的常数的和;所述第三补偿结果为所述第三补偿值与所述移位后的常数的和;和所述第四补偿结果为所述第四补偿值与所述移位后的常数的和。
8.根据权利要求7所述的压缩装置,其特征在于,所述选择模块用于:
建立所述第一控制位、所述第二控制位与所述第一补偿结果、所述第二补偿结果、所述第三补偿结果、所述第四补偿结果之间的对应关系;
根据所述第一控制位、所述第二控制位以及所述对应关系,选择所述压缩加和处理后的结果。
CN201610647528.7A 2016-08-09 2016-08-09 一种基于密码杂凑算法的压缩方法及装置 Active CN106301761B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610647528.7A CN106301761B (zh) 2016-08-09 2016-08-09 一种基于密码杂凑算法的压缩方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610647528.7A CN106301761B (zh) 2016-08-09 2016-08-09 一种基于密码杂凑算法的压缩方法及装置

Publications (2)

Publication Number Publication Date
CN106301761A CN106301761A (zh) 2017-01-04
CN106301761B true CN106301761B (zh) 2019-04-09

Family

ID=57667214

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610647528.7A Active CN106301761B (zh) 2016-08-09 2016-08-09 一种基于密码杂凑算法的压缩方法及装置

Country Status (1)

Country Link
CN (1) CN106301761B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108737073B (zh) * 2018-06-22 2021-09-28 北京智芯微电子科技有限公司 分组加密运算中抵抗能量分析攻击的方法和装置
CN109547192B (zh) * 2018-11-08 2020-11-03 北京大学 Sm3密码杂凑算法的并行化优化方法
CN113741972B (zh) * 2021-08-20 2023-08-25 深圳市风云实业有限公司 一种sm3算法的并行处理方法及电子设备
CN116260572B (zh) * 2023-02-21 2024-01-23 成都海泰方圆科技有限公司 数据杂凑处理方法、数据验证方法及电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102761414A (zh) * 2011-04-26 2012-10-31 航天信息股份有限公司 一种sm3密码杂凑算法及确定其中的变量字的方法
CN103457719A (zh) * 2013-07-23 2013-12-18 国家密码管理局商用密码检测中心 一种对sm3密码算法hmac模式的侧信道能量分析方法
CN104092534A (zh) * 2014-07-09 2014-10-08 昆腾微电子股份有限公司 实现sm3密码杂凑算法中的迭代压缩的方法
CN104579656A (zh) * 2014-12-31 2015-04-29 北京时代民芯科技有限公司 一种椭圆曲线公钥密码sm2算法的硬件加速协处理器

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102761414A (zh) * 2011-04-26 2012-10-31 航天信息股份有限公司 一种sm3密码杂凑算法及确定其中的变量字的方法
CN103457719A (zh) * 2013-07-23 2013-12-18 国家密码管理局商用密码检测中心 一种对sm3密码算法hmac模式的侧信道能量分析方法
CN104092534A (zh) * 2014-07-09 2014-10-08 昆腾微电子股份有限公司 实现sm3密码杂凑算法中的迭代压缩的方法
CN104579656A (zh) * 2014-12-31 2015-04-29 北京时代民芯科技有限公司 一种椭圆曲线公钥密码sm2算法的硬件加速协处理器

Also Published As

Publication number Publication date
CN106301761A (zh) 2017-01-04

Similar Documents

Publication Publication Date Title
Dubrova et al. Breaking a fifth-order masked implementation of crystals-kyber by copy-paste
CN106301761B (zh) 一种基于密码杂凑算法的压缩方法及装置
CN101753306B (zh) 运用Montgomery型椭圆曲线的数字签名认证方法
CN109617671B (zh) 加解密、扩展方法及装置、加解密系统、终端
CN106357380B (zh) Sm4算法的掩码方法及装置
CN101674180B (zh) 一种伪随机序列产生方法及加密方法
CN104618091B (zh) 双混沌系统动态密钥与rsa联合的流媒体保密通信方法
Ngo et al. Breaking masked and shuffled CCA secure Saber KEM by power analysis
CN111464308A (zh) 一种实现多种哈希算法可重构的方法和系统
CN115694777A (zh) 基于同态加密的隐私集合求交方法、装置、设备及介质
CN104917608A (zh) 一种密钥抗功耗攻击的方法
Mandal et al. Feedback reconstruction and implementations of pseudorandom number generators from composited de Bruijn sequences
CN108242994A (zh) 密钥的处理方法和装置
Pisarchik et al. Chaotic map cryptography and security
US7191333B1 (en) Method and apparatus for calculating a multiplicative inverse of an element of a prime field
CN109933304B (zh) 适用于国密sm2p256v1算法的快速蒙哥马利模乘器运算优化方法
Song et al. Multi-image reorganization encryption based on SLF cascade chaos and bit scrambling
CN113114462B (zh) 一种应用于ecc安全硬件电路的小面积标量乘电路
CN107885486B (zh) 一种基于查找树的复合有限域求逆装置
CN103780794A (zh) 一种基于混沌系统的图像加密改进方法
CN109543451A (zh) 一种基于模分量同态的隐私保护处理方法
Abdoun et al. Hash function based on efficient chaotic neural network
CN105577362B (zh) 一种应用于aes算法的字节替换方法及系统
CN102394747B (zh) 一种快速嵌入明文到椭圆曲线上一点的方法
CN102546158A (zh) 一种基于奇偶元胞自动机的分组加密方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder

Address after: 100192, room 2, building 66, C District, Zhongguancun Dongsheng Science Park, No. 305 Xiao Dong Road, Beijing, Haidian District

Co-patentee after: STATE GRID INFORMATION & TELECOMMUNICATION GROUP Co.,Ltd.

Patentee after: BEIJING SMARTCHIP MICROELECTRONICS TECHNOLOGY Co.,Ltd.

Co-patentee after: STATE GRID CORPORATION OF CHINA

Address before: 100192, room 2, building 66, C District, Zhongguancun Dongsheng Science Park, No. 305 Xiao Dong Road, Beijing, Haidian District

Co-patentee before: STATE GRID INFORMATION & TELECOMMUNICATION GROUP Co.,Ltd.

Patentee before: BEIJING SMARTCHIP MICROELECTRONICS TECHNOLOGY Co.,Ltd.

Co-patentee before: State Grid Corporation of China

CP01 Change in the name or title of a patent holder
TR01 Transfer of patent right

Effective date of registration: 20191118

Address after: 102299 1st floor, building 12, courtyard 79, Shuangying West Road, science and Technology Park, Changping District, Beijing

Co-patentee after: STATE GRID INFORMATION & TELECOMMUNICATION GROUP Co.,Ltd.

Patentee after: Beijing Smart core semiconductor technology Co.,Ltd.

Co-patentee after: STATE GRID CORPORATION OF CHINA

Address before: 100192, room 2, building 66, C District, Zhongguancun Dongsheng Science Park, No. 305 Xiao Dong Road, Beijing, Haidian District

Co-patentee before: STATE GRID INFORMATION & TELECOMMUNICATION GROUP Co.,Ltd.

Patentee before: BEIJING SMARTCHIP MICROELECTRONICS TECHNOLOGY Co.,Ltd.

Co-patentee before: STATE GRID CORPORATION OF CHINA

TR01 Transfer of patent right