CN117353923A - 轻量级哈希加密算法的演练方法及相关设备 - Google Patents
轻量级哈希加密算法的演练方法及相关设备 Download PDFInfo
- Publication number
- CN117353923A CN117353923A CN202311661186.0A CN202311661186A CN117353923A CN 117353923 A CN117353923 A CN 117353923A CN 202311661186 A CN202311661186 A CN 202311661186A CN 117353923 A CN117353923 A CN 117353923A
- Authority
- CN
- China
- Prior art keywords
- key
- bit
- box
- bits
- target 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 55
- 238000004422 calculation algorithm Methods 0.000 title claims abstract description 31
- 238000002347 injection Methods 0.000 claims abstract description 98
- 239000007924 injection Substances 0.000 claims abstract description 98
- 238000010972 statistical evaluation Methods 0.000 claims abstract description 35
- 238000009792 diffusion process Methods 0.000 claims abstract description 28
- 230000006870 function Effects 0.000 claims description 46
- 238000006467 substitution reaction Methods 0.000 claims description 29
- 239000011159 matrix material Substances 0.000 claims description 24
- 238000004364 calculation method Methods 0.000 claims description 13
- 238000003860 storage Methods 0.000 claims description 12
- 238000011084 recovery Methods 0.000 claims description 10
- 230000004044 response Effects 0.000 claims description 10
- 238000002360 preparation method Methods 0.000 claims description 6
- 230000007704 transition Effects 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 4
- 238000012549 training Methods 0.000 claims description 3
- 238000005553 drilling Methods 0.000 abstract description 6
- 230000008569 process Effects 0.000 description 12
- 238000004891 communication Methods 0.000 description 11
- 238000012545 processing Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 239000000243 solution Substances 0.000 description 5
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000004088 simulation Methods 0.000 description 3
- 238000005336 cracking Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 102100037651 AP-2 complex subunit sigma Human genes 0.000 description 1
- 101000806914 Homo sapiens AP-2 complex subunit sigma Proteins 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
- H04L9/004—Countermeasures against attacks on cryptographic mechanisms for fault attacks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/20—Manipulating the length of blocks of bits, e.g. padding or block truncation
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Power Engineering (AREA)
- Storage Device Security (AREA)
Abstract
本申请提供一种轻量级哈希加密算法的演练方法及相关设备;该方法包括:将状态比特块划分多个S盒,并将每个S盒的后2个比特作为中间目标值;对每个S盒的中间目标值多次利用不同的故障值进行故障注入,并利用注入故障的状态比特块对预设的明文数据进行加密,得到每次故障注入下的标签;通过对全部标签各自进行线性扩散的逆运算,确定每个S盒在故障注入前的中间目标值,利用故障注入前的中间目标值构建对应S盒的多个候选中间密钥;根据中间目标值和故障值构建统计评价函数,利用统计评价函数从全部候选中间密钥中确定目标中间密钥,利用各个S盒的目标中间密钥确定状态比特块中预置的原始密钥,完成该次演练。
Description
技术领域
本申请的实施例涉及数据安全的技术领域,尤其涉及一种轻量级哈希加密算法的演练方法及相关设备。
背景技术
相关的关于ASCON算法的故障注入攻击情景的演练中,其攻击复杂度都非常大,在时间上复杂度往往在264左右,难以模拟当下的实际环境中的攻击,进而在模拟演练中没有应用价值。
此外相关的故障注入的演练方案是基于无效的故障注入进行统计的,这往往会浪费许多实验数据,从而降低演练的效率。
发明内容
有鉴于此,本申请的目的在于提出一种轻量级哈希加密算法的演练方法及相关设备。
基于上述目的,本申请提供了轻量级哈希加密算法的演练方法,包括:
在每次演练中,将预置的状态比特块划分多个相同长度比特字,将各个比特字组合为多个置换盒,并将每个置换盒的后2个比特作为中间目标值;
对每个置换盒的所述中间目标值多次利用不同的故障值进行故障注入,并利用注入故障的状态比特块对预设的明文数据进行加密,得到每次故障注入下的标签;
通过对全部标签各自进行线性扩散的逆运算,确定每个置换盒在故障注入前的中间目标值,利用所述故障注入前的中间目标值构建对应置换盒的多个候选中间密钥;
根据中间目标值和故障值构建统计评价函数,利用所述统计评价函数从全部候选中间密钥中确定目标中间密钥,利用各个置换盒的目标中间密钥确定所述状态比特块中预置的原始密钥,完成该次演练。
进一步地,状态比特块为320比特的比特块;
所述将预置的状态比特块划分多个相同长度比特字,将各个比特字组合为多个置换盒,包括:
将所述状态比特块划分为5个长度为64比特的比特子;
将所述各个比特字位置相同的比特组合为1个置换盒,得到多个置换盒,其中,各个置换盒中相同位置的比特来自同一比特子。
进一步地,状态比特块中包括有128比特的密钥数据;
进一步地,利用注入故障的状态比特块对预设的明文数据进行加密,得到每次故障注入下的标签,包括:
对于任意置换盒,在每次进行故障注入后,按照预设的置换函数,对注入故障的状态比特块整体执行12轮置换,得到初始化后的状态比特块;
将预设的附加数据与初始化后的状态比特块结合,并按照所述置换函数体执行6轮置换,得到带有附加数据的状态比特块;
将所述明文数据与带有附加数据的状态比特块结合,并按照所述置换函数体执行6轮置换,得到对所述明文数据加密的密文比特块;
按照所述置换函数,对所述密文比特块进行12轮置换,并将置换后的密文比特的最后128比特与所述密钥数据进行异或运算,得到对应该置换盒在该次故障注入下的长度为128比特的标签。
进一步地,通过对全部标签各自进行线性扩散的逆运算,确定每个置换盒在故障注入前的中间目标值,包括:
对于每个标签,按照如下所示的中间目标值公式,构建每个置换盒在故障注入前的目标值,
;
其中,s3 (j)表示第j个置换盒的中间目标值的第1个比特,s4 (j)表示第j个置换盒的中间目标值的第2个比特,T0,m表示该标签的前64比特中的第m个比特,T1,m表示该标签的后64比特中的第m个比特,km表示所述密钥数据的第m个比特,lj,m (3)表示第一线性扩散逆矩阵L3 -1的第j行的第m个比特,lj,m (4)表示第二线性扩散逆矩阵L4 -1的第j行的第m个比特;
其中,所述第一线性扩散逆矩阵L3 -1表示第4个比特子的逆运算,所述第二线性扩散逆矩阵L4 -1表示第5个比特子的逆运算。
进一步地,候选中间密钥为2比特;
所述利用所述故障注入前的中间目标值构建对应置换盒的多个候选中间密钥,包括:
按照如下所示的过渡公式,构建每个置换盒各自的候选中间密钥,
;
将所述中间目标值公式与所述过渡公式结合,构建如下所示的候选中间密钥公式,
;
其中,K0 (j)表示第j个置换盒对应的候选中间密钥的一个比特,K1 (j)表示第j个置换盒对应的候选中间密钥的另一个比特,所述候选中间密钥中的每个比特的取值为0和1两种;
对两个比特按照不同顺序和取值进行排列组合,将得到的4种结果分别作为4个不同的一组候选中间密钥。
进一步地,利用所述统计评价函数从全部候选中间密钥中确定目标中间密钥,包括:
利用所述密钥数据对所述密文比特块解密,响应于确定解密正确,则确定对应的标签为正确标签,响应于确定解密错误,则确定对应的标签为错误标签;
响应于确定利用正确标签计算所述目标中间密钥,则当每组的4个候选中间密钥对应的标签为正确标签时,利用如下所示的第一统计评价函数,对该组的4个候选中间密钥进行计算,
;
其中,x表示中间目标值的取值,k表示4个候选中间密钥中的第k个候选中间密钥,n表示中间目标值的长度为n比特,pi,k x表示在全部无效攻击的结果中,利用第k个候选中间密钥确定出的目标中间值为x时所占的比例,qi z表示在全部无效攻击的结果中,中间目标值被注入故障值后,结果为z的比例;
将所述4个候选中间密钥的计算结果中最小的作为目标中间密钥;
响应于确定利用错误标签计算所述目标中间密钥,则当每组的4个候选中间密钥对应的标签为错误标签时,利用如下所示的第二统计评价函数,对该组的4个候选中间密钥进行计算,
;
其中,pe,k x表示在全部有效攻击的结果中,利用第k个候选中间密钥确定出的目标中间值为x时所占的比例,qe z表示在全部有效攻击的结果中,中间目标值被注入故障值后,结果为z的比例;
将所述4个候选中间密钥的计算结果中最小的作为目标中间密钥;
响应于确定利用全部标签计算所述目标中间密钥,则利用如下所示的第三统计评价函数,对该组的4个候选中间密钥进行计算,
;
将所述4个候选中间密钥的计算结果中最小的作为目标中间密钥;
其中,所述无效攻击表示进行故障注入后,利用所述密钥数据对所述密文比特块解密正确,所述有效攻击表示进行故障注入后,利用所述密钥数据对所述密文比特块解密错误。
进一步地,利用各个置换盒的目标中间密钥确定所述状态比特块中预置的原始密钥,包括:
将每个置换盒对应的目标中间密钥中第1个比特组成第一行向量,并将每个置换盒对应的目标中间密钥中第2个比特组成第二行向量;
利用所述第一行向量计算密钥确定所述密钥数据的前64位比特,并利用所述第二行向量计算密钥确定所述密钥数据的后64位比特;
将前64位比特和后64位比特结合,恢复出所述密钥数据。
基于同一发明构思,本申请还提供了一种轻量级哈希加密算法的演练装置,包括:S盒预备模块、标签生成模块、逆运算模块和密钥恢复模块;
其中,所述S盒预备模块,被配置为,在每次演练中,将预置的状态比特块划分多个相同长度比特字,将各个比特字组合为多个置换盒,并将每个置换盒的后2个比特作为中间目标值;
所述标签生成模块,被配置为,对每个置换盒的所述中间目标值多次利用不同的故障值进行故障注入,并利用注入故障的状态比特块对预设的明文数据进行加密,得到每次故障注入下的标签;
所述逆运算模块,被配置为,通过对全部标签各自进行线性扩散的逆运算,确定每个置换盒在故障注入前的中间目标值,利用所述故障注入前的中间目标值构建对应置换盒的多个候选中间密钥;
所述密钥恢复模块,被配置为,根据中间目标值和故障值构建统计评价函数,利用所述统计评价函数从全部候选中间密钥中确定目标中间密钥,利用各个置换盒的目标中间密钥确定所述状态比特块中预置的原始密钥,完成该次演练。
基于同一发明构思,本申请还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上任意一项所述的轻量级哈希加密算法的演练方法。
基于同一发明构思,本申请还提供了一种非暂态计算机可读存储介质,其中,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上述轻量级哈希加密算法的演练方法。
从上面所述可以看出,本申请提供的轻量级哈希加密算法的演练方法及相关设备,基于将状态比特块划分为多个置换盒,可以在每次演练中,依次对每置换盒分别进行故障注入,以实现单置换盒的故障注入,并基于此来确定出对应故障注入下的标签;通过对标签的逆运算,可以确定出该次故障注入下的多个候选中间密钥,综合考虑了正确标签和错误标签来进行统计评价函数的计算,使得能够有效恢复出密钥数据,并且其恢复过程中的复杂程度低,从而实现演练的过程和结果更加贴近实际情况。
附图说明
为了更清楚地说明本申请或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例的轻量级哈希加密算法的演练方法的流程图;
图2为本申请实施例的加密流程图;
图3为本申请实施例的轻量级哈希加密算法的演练方法的S盒示意图;
图4为本申请实施例的轻量级哈希加密算法的演练装置结构示意图;
图5为本申请实施例的电子设备结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本申请进一步详细说明。
需要说明的是,除非另外定义,本申请的实施例使用的技术术语或者科学术语应当为本申请所属领域内具有一般技能的人士所理解的通常意义。本申请的实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
如背景技术部分所述,相关的轻量级哈希加密算法的演练方法还难以满足实际工作中对数据安全的需要。
申请人在实现本申请的过程中发现,相关的轻量级哈希加密算法的演练方法存在的主要问题在于:在相关的关于ASCON算法的故障注入攻击情景的演练中,其攻击复杂度都非常大,在时间上复杂度往往在264左右,难以模拟当下的实际环境中的攻击,进而在模拟演练中没有应用价值。
此外相关的故障注入的演练方案是基于无效的故障注入进行统计的,这往往会浪费许多实验数据,从而降低演练的效率。
基于此,本申请中的一个或多个实施例提供了轻量级哈希加密算法的演练方法。
在本申请的实施例实施例中,具体的实施场景为,利用已知的密钥对预置的明文数据进行加密,得到标签,并通过逆运算,来对密钥进行破解,以完成破解恢复密钥的模拟演练。
需要说明的是,本方案中的场景和方法是基于密钥已知,且明文数据已知的情况下进行的虚拟模拟演练,并不适用于密钥未知,且明文未知情况下的密钥破解场景。
以下结合附图详细说明本申请的实施例。
参考图1,本申请一个实施例的轻量级哈希加密算法的演练方法,包括以下步骤:
步骤S101、在每次演练中,将预置的状态比特块划分多个相同长度比特字,将各个比特字组合为多个置换盒,并将每个置换盒的后2个比特作为中间目标值。
在本申请的实施例中,在每次演练中,如图2所示,预置的状态比特共有320比特块,并具体由64比特的初始向量IV、128比特的密钥K和128比特的nonce(新限值)N组成。
进一步地,可以将320比特的状态比特块划分为5个比特字,每个比特字的长度均为64比特。
如图2所示,可以将每个比特字作为一个行向量,并将5个比特字排列为5行,分别记为X0、X1、X2、X3和X4。
在本实施例中,图3示出了5个比特字的排列,其中,每个比特子包含有64个比特,并分别记为第0比特至第63比特。
进一步地,如图3所示,在每次演练中,将5个比特字划分为64个S盒(置换盒),每个S盒中包含有5个比特。
具体地,在将5个比特字排列为图3的5行后,可以将每个比特字中相同位置的比特作为组成为1个S盒,可以得到64个S盒,并分别记为第0个至第63个。
可以看出,在各个S盒中位置相同的比特均来自同一比特字,也即,每个S盒中的第0个比特均来自第0个比特字,每个S盒中的第1个比特均来自第1个比特字,每个S盒中的第2个比特均来自第2个比特字,每个S盒中的第3个比特均来自第3个比特字,每个S盒中的第4个比特均来自第4个比特字,并将每个S盒中的5个比特分别记为x0、x1、x2、x3和x4。
基于此,可以选择每个S盒中的后两个比特作为中间目标值。
如图3所示,可以选择每个S盒中的第4个比特和第5个比特作为该S盒的中间目标值。
步骤S102、对每个置换盒的所述中间目标值多次利用不同的故障值进行故障注入,并利用注入故障的状态比特块对预设的明文数据进行加密,得到每次故障注入下的标签。
在本申请的实施例中,在每次演练中,对每个S盒中的中间目标值进行故障注入,利用在故障注入下的状态比特块对预置的明文进行加密,并生成对应的标签。
其中,在对每个S盒进行加密的过程中,可以对该S盒进行多次故障注入,并在每次故障注入后进行加密,生成对应该次故障注入生的标签。
具体地,在对任意一个S盒进行的每次故障注入时,可以预先设置一个与中间目标值长度相同的故障值,例如设置2比特的故障值。
进一步地,可以将中间目标值与故障值进行与操作,然后将与操作的结果重新写入到该S盒的x3和x4位置来代替原先的中间目标值。
在本实施例中,故障注入过程可以利用时钟影响,或者电压扰动,以及激光干涉等方式实现。
基于此,可以认为该S盒完成故障注入,并可以在任意S盒在完成故障注入后进行图2中示出的初始化、处理附加数据、加密明文数据和生成标签的操作。
具体地,如图2所示,在进行初始化时,首先对当前的状态比特快进行a轮置换,也即图2中的Pa,以完成初始化。
其中,a轮置换表示进行12轮P置换,其中P置换可以是指ASCON(一种轻量级哈希加密算法)中的置换函数P。
在本实施例中,置换函数。
其中,pC表示进行轮常数加操作,pS表示进行S盒置换,pL表示进行线性扩散混淆。
具体地,在每次进行pC操作时,利用预设的一个8比特的常数,与比特字X2的最后8比特进行异或加操作。
进一步地,在每次进行pC操作时,在各个比特字的相同位置提取出1比特,组成一个5比特的数,并将该5比特的数作为S盒的输入,并将S盒的输出再映射回上述5比特的各个比特在比特字中的位置。
进一步地,在每次进行pL操作时,按照如下所示的函数来对各个比特字进行操作:
执行操作:Σ0(X0) = X0⊕(X0≥19)⊕(X0≥28),并将Σ0(X0)代替原先的X0;
执行操作:Σ1(X1) =X1⊕(X1≥61)⊕(X1≥39),并将Σ1(X1)代替原先的X1;
执行操作:Σ2(X2) =X2⊕(X2≥1)⊕(X2≥6),并将Σ2(X2)代替原先的X2;
执行操作:Σ3(X3)=X3⊕(X3≥10)⊕(X3≥17),并将Σ3(X3)代替原先的X3;
执行操作:Σ4(X4)=X4⊕(X4≥7)⊕(X4≥41),并将Σ4(X4)代替原先的X4。
其中,⊕表示异或运算,≥表示循环右移操作。
在本实施例中,线性扩散过程还可以表示为如下所示的矩阵形式:
其中,Xi表示第i个比特字的横向量形式,矩阵Li表示第i个比特字对应的线性扩散后的矩阵形式,矩阵Li的第一行在各个循环右移值的位置上设为1,其他位设为0。
例如,对应Σ0(X0) = X0⊕(X0≥19)⊕(X0≥28),比特字X0的循环右移的位置为第0、第19和第28的位置,则矩阵L0的第一行在第0、第19和第28的位置上为1,其他位置均为0,剩余其他行的比特排列均按照上一行的比特排列方式,并向右循环移动一个比特获得,以此得到64行的矩阵L0。
进一步地,如图2所示,其中预设的附加数据块表示为{A1……Am},在处理附加数据时,可以将附加数据快按照预定的规则进行填充,在填充之后,将其划分为若干个r比特的数据块,其中,每个数据块被状态比特字的前r个比特吸收,并对状态比特块进行b轮置换,也即图2中的Pb,以完对附加数据的处理。
其中,b轮置换包括进行6轮P置换。
进一步地,如图2所示,其中预设的明文数据块表示为{P1……Pn},在对明文数据进行加密时,也可以按照预定的规则先对明文数据进行填充,并同样将其划分为若干个r比特的数据块,其中,每个数据块被处理附加数据后的状态比特块的前r个比特吸收,如图2所示的,得到对应的r比特的密文数据块{C1……Cn}。
基于此,可以对当前的状态比特块进行b轮置换,直至处理完成所有的明文数据块。
进一步地,如图2所示,生成标签时,首先对完成明文数据加密的状态比特块进行a轮置换,并将其中的密钥与状态比特块的最后128比特进行异或操作,并将得到的128比特作为标签,可以看出,该标签是基于某一S盒的一次故障注入后得到的,也就是说,一个S盒的每次故障注入对应一个标签。
步骤S103、通过对全部标签各自进行线性扩散的逆运算,确定每个置换盒在故障注入前的中间目标值,利用所述故障注入前的中间目标值构建对应置换盒的多个候选中间密钥。
在本申请的实施例中,可以对128比特的密钥数据以w比特为单位划分为多组,并将划分出的每组作为一个中间密钥数据,标记中间密钥为K,其中,K={K0,K1,K2……Ks-1},s=128/w,也即,将原始密钥分为s组,并可以将每组在中间密钥的全部比特以一个比特表示。
在本实施例中,可以令w取64,也即,将完整的密钥数据划分为两部分,此时中间密钥K=(K0,K1),K0和K1都是1个比特。
基于此,在假设中间密钥的具体值未知的情况下,可以通过对各个标签进行线性扩散的逆运算,来确定出多个候选中间密钥。
具体地,在对任一S盒进行的每次故障注入后,可以根据线性扩散的逆运算来确定出上述的线性扩散的矩阵形式的逆矩阵,并表示为Li -1。
具体地,xi为任意比特字中的第i个比特,将xi和Σi作为线性扩散时的输入,则线性扩散的逆运算可以表示如下所示:
;
其中,逆矩阵Li -1可以表示为如下所示的公式:
;
其中,lj (i)T表示线性扩散中与xi对应的逆矩阵Li -1的第j行,上标T表示矩阵的转置。
基于此,将第j个S盒的第4个比特和第5个比特可以按照如下中间目标值公式计算得到:
;
其中,s3 (j)表示第j个S盒的第3个比特,也即该S盒的中间目标值的第1个比特,s4 (j)表示第j个S盒的第5个比特,也即该S盒的中间目标值的第2个比特,T0,m表示该标签的前64比特中,也即标签的前半部分中的第m个比特,T1,m表示该标签的后64比特中,也即标签的后半部分的第m个比特,km表示密钥数据的第m个比特,lj,m (3)表示第一线性扩散逆矩阵L3 -1的第j行的第m个比特,lj,m (4)表示第二线性扩散逆矩阵L4 -1的第j行的第m个比特。
进一步地,如前所述,在该次故障注入后,基于中间密钥K中包含有2个比特,每个S盒均对应有一个中间密钥,则第j个S盒对应的中间密钥K可以按照如下所示的过渡公式计算得到:
;
其中, K0 (j)表示第j个S盒对应的候选中间密钥中的一个比特,K1 (j)表示第j个S盒对应的同一候选中间密钥中的另一个比特。
基于此,可以通过将上述的过渡公式和中间目标值公式结合,得到如下所示的中间密钥公式:
;
在本实施例中,候选中间密钥中的每个比特的取值为0和1两种,因此,通过排列组合,可以得到4中不同的组合方式,并将每种组合方式作为一组候选中间密钥,基于此,可以得到4组候选中间密钥。
步骤S104、根据中间目标值和故障值构建统计评价函数,利用所述统计评价函数从全部候选中间密钥中确定目标中间密钥,利用各个置换盒的目标中间密钥确定所述状态比特块中预置的原始密钥,完成该次演练。
在本申请的实施例中,可以构建统计评价函数,在每次故障注入后,可以从上述得到的4组候选中间密钥中确定出目标中间密钥。
具体地,选定的中间目标值为X,具备n个比特,每次进行故障注入的故障值为Y,也具备n个比特,进行故障注入的过程可以描述为将故障值Y注入到中间目标值X的过程,并将其表示为AX Y,将该故障注入后的结果表示为Z。
进一步地,当X遭受Y的故障注入后,X的取值并非一定会发生改变,将X的取值未发生改变的情况视为Y的无效攻击,并将X的取值发生改变的情况视为Y的有效攻击。
基于此,中间目标值X的取值为x,故障值Y的取值为y时,则注入故障值y后无效攻击的比例px i可以表示为:
;
进一步地,中间目标值X的取值为x,故障值Y的取值为y时,注入故障值y后有效攻击的比例px e可以表示为:
;
进一步地,在所有无效攻击中,中间目标值X的取值为x的比例pi x可以表示为:
;
进一步地,在所有有效攻击中,中间目标值X的取值为x的比例pe x可以表示为:
;
进一步地,在所有无效攻击中,中间目标值x被注入故障值y之后,其结果Z的取值为z的比例qi z可以表示为:
进一步地,在所有有效攻击中,中间目标值x被注入故障值y之后,其结果Z的取值为z的比例qe z可以表示为:
;
在具体的示例中,若X为2比特,则其遭遇2比特随机数Y注入的所有情形如表1所示。
表1. 2比特与故障模型值分布表
其中,若X为00,则不论Y的值是什么,结果依然会是00,此时Y无法对X产生干扰;若X为01,则当Y为00和10时,X会被改变为00,而Y为01和11时则不会产生影响;若X为10,则当Y为00和01时,其会被改变为00,当Y为10和11时不会被改变;若X为11,则当Y为00时X会被改变成00,当Y为01时X会被改变成01,当Y为10时X会被改变成10,当Y为11时X保持不变。
进一步地,基于上述表1,上述的各项比例的统计结果如下表2所示。
表2. 比例统计表
基于此,可以根据上述有效攻击和无效攻击相关的各项比例,构建出如下所示的第一统计评价函数、第二统计评价函数和第三统计评价函数。
在本实施例中,在恢复密钥的过程中,通过逆运算,每个候选密钥k可以得到对应的一组中间目标值,将该组中间目标值的分布记为dk(x),将dk(x)输入到统计评分函数SSF()中,进而可以确定出候选密钥k对应的中间目标值分布dk(x)的评分SSF(dk(x))。
具体地,在本实施例中,可以基于全部的无效攻击来构建如下所示的第一统计评价函数:
。
其中,x表示中间目标值的取值,k表示4个候选中间密钥中的第k个候选中间密钥,n表示中间目标值的长度为n比特,pi,k x表示在全部无效攻击的结果中,利用第k个候选中间密钥确定出的目标中间值为x时所占的比例,qi z表示在全部无效攻击的结果中,中间目标值被注入故障值后,结果为z的比例。
在本申请的另一实施例中,还可以基于全部的有效攻击,来构建如下所示的第二统计评价函数:
。
其中,pe,k x表示在全部有效攻击的结果中,利用第k个候选中间密钥确定出的目标中间值为x时所占的比例,qe z表示在全部有效攻击的结果中,中间目标值被注入故障值后,结果为z的比例。
在本申请的另一实施例中,还可以基于全部的攻击结果,来构建如下所示的第三统计评价函数:
。
基于上述构建的统计评价函数,在对于每个S盒的每次故障注入,可以得到对应该次故障注入的标签,利用预设的密钥数据对其中的密文数据也即密文比特块进行解密,当可以正确解密时,则认为该标签为正确标签,该次的故障注入为无效攻击,而当不可以正确解密时,则认为该标签为错误标签,该次的故障注入为有效攻击。
基于此,可以将所有正确标签及其故障注入相关的数据列为正确列表中的数据,并将所有错标签及其故障注入相关的数据列为错误列表中的数据。
进一步地, 可以利用全部正确标签所对应的故障注入结果和故障值,来进行第一统计评价函数的计算,并得到关于任意标签对应的4个不同候选中间密钥的评分结果。
基于此,可以将评分结果中最小的作为对应该标签在该次故障注入时的目标中间密钥。
在本申请的另一实施例中,还可以利用全部错误标签所对应的故障注入结果和故障值,来进行第二统计评价函数的计算,并得到关于任意标签对应的4个不同候选中间密钥的评分结果。
基于此,可以将评分结果中最小的作为对应该标签在该次故障注入时的目标中间密钥。
在本申请的另一实施例中,还可以利用全部标签所对应的故障注入结果和故障值,来进行第三统计评价函数的计算,并得到关于任意标签对应的4个不同候选中间密钥的评分结果。
基于此,可以将评分结果中最小的作为对应该标签在该次故障注入时的目标中间密钥。
在本实施例中,基于上述确定出的对应各个S盒的目标中间密钥,可以进一步确定出状态比特块中预置的原始密钥。
具体地,对应图1中的64个S盒,可以确定出64个2比特的目标中间密钥,可以将其表示为如下所示的序列:
{(K0 (0),K1 (0)), (K0 (1),K1 (1)), ……, (K0 (63),K1 (63))};
基于此,分别抽取每个正确中间密钥的第1个比特得到行向量K0={K0 (0), K0 (1),……, K0 (63)},抽取每个正确中间密钥的第2个比特得到行向量K1={K1 (0), K0 (1), ……, KK1 (63)};并定义密钥数据的前64位为KEY0,后64位为KEY1。
进一步地,可以确定如下矩阵关系:
;
进一步地,对矩阵关系进行如下所示的乘法变换:
;
可以确定出KEY0和KEY1,通过将KEY0和KEY1进行拼接结合可以回复出原始密钥的密钥数据。
进一步地,在进行多次密钥恢复后,可以完成该次演练,通过统计密钥恢复的准确度,可以对演练的有效性进行评估。
在本申请的实施例中,一次完整的攻击需要对64个S盒分别进行故障注入,对每个S盒需要重复n次故障注入情况下的加密,因此一次攻击消耗的数据量大约为64n。
进一步地,在攻击过程中最耗时的是加密过程和枚举中间密钥的过程,若调用一次加密算法的时间是Tencrypt,处理1条加密标签的时间是Ttag,则一次完整的攻击消耗的时间大约为,因此,本方案在时间上的复杂度在215左右,在演练中的效率上具有大幅度提升。
可见,本申请的实施例的轻量级哈希加密算法的演练方法,基于将状态比特块划分为多个置换盒,可以在每次演练中,依次对每置换盒分别进行故障注入,以实现单置换盒的故障注入,并基于此来确定出对应故障注入下的标签;通过对标签的逆运算,可以确定出该次故障注入下的多个候选中间密钥,综合考虑了正确标签和错误标签来进行统计评价函数的计算,使得能够有效恢复出密钥数据,并且其恢复过程中的复杂程度低,从而实现演练的过程和结果更加贴近实际情况。
需要说明的是,本申请的实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本申请的实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。
需要说明的是,上述对本申请的一些实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于上述实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
基于同一发明构思,与上述任意实施例方法相对应的,本申请的实施例还提供了一种轻量级哈希加密算法的演练装置。
参考图4,所述轻量级哈希加密算法的演练装置,包括:S盒预备模块401、标签生成模块402、逆运算模块403和密钥恢复模块404;
其中,所述S盒预备模块401,被配置为,在每次演练中,将预置的状态比特块划分多个相同长度比特字,将各个比特字组合为多个置换盒,并将每个置换盒的后2个比特作为中间目标值;
所述标签生成模块402,被配置为,对每个置换盒的所述中间目标值多次利用不同的故障值进行故障注入,并利用注入故障的状态比特块对预设的明文数据进行加密,得到每次故障注入下的标签;
所述逆运算模块403,被配置为,通过对全部标签各自进行线性扩散的逆运算,确定每个置换盒在故障注入前的中间目标值,利用所述故障注入前的中间目标值构建对应置换盒的多个候选中间密钥;
所述密钥恢复模块404,被配置为,根据中间目标值和故障值构建统计评价函数,利用所述统计评价函数从全部候选中间密钥中确定目标中间密钥,利用各个置换盒的目标中间密钥确定所述状态比特块中预置的原始密钥,完成该次演练。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本申请的实施例时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
上述实施例的装置用于实现前述任一实施例中相应的轻量级哈希加密算法的演练方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,与上述任意实施例方法相对应的,本申请的实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上任意一实施例所述的轻量级哈希加密算法的演练方法。
图5示出了本实施例所提供的一种更为具体的电子设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本申请实施例所提供的技术方案。
存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备、动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本申请实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入/输出模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本申请实施例方案所必需的组件,而不必包含图中所示的全部组件。
上述实施例的装置用于实现前述任一实施例中相应的轻量级哈希加密算法的演练方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,与上述任意实施例方法相对应的,本申请还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上任一实施例所述的轻量级哈希加密算法的演练方法。
本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上任一实施例所述的轻量级哈希加密算法的演练方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本申请的范围(包括权利要求)被限于这些例子;在本申请的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本申请的实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
另外,为简化说明和讨论,并且为了不会使本申请的实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本申请的实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本申请的实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本申请的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本申请的实施例。因此,这些描述应被认为是说明性的而不是限制性的。
尽管已经结合了本申请的具体实施例对本申请进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
本申请的实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本申请的实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种轻量级哈希加密算法的演练方法,其特征在于,包括:
在每次演练中,将预置的状态比特块划分多个相同长度比特字,将各个比特字组合为多个置换盒,并将每个置换盒的后2个比特作为中间目标值;
对每个置换盒的所述中间目标值多次利用不同的故障值进行故障注入,并利用注入故障的状态比特块对预设的明文数据进行加密,得到每次故障注入下的标签;
通过对全部标签各自进行线性扩散的逆运算,确定每个置换盒在故障注入前的中间目标值,利用所述故障注入前的中间目标值构建对应置换盒的多个候选中间密钥;
根据中间目标值和故障值构建统计评价函数,利用所述统计评价函数从全部候选中间密钥中确定目标中间密钥,利用各个置换盒的目标中间密钥确定所述状态比特块中预置的原始密钥,完成该次演练。
2.根据权利要求1所述的方法,其特征在于,所述状态比特块为320比特的比特块;
所述将预置的状态比特块划分多个相同长度比特字,将各个比特字组合为多个置换盒,包括:
将所述状态比特块划分为5个长度为64比特的比特子;
将所述各个比特字位置相同的比特组合为1个置换盒,得到多个置换盒,其中,各个置换盒中相同位置的比特来自同一比特子。
3.根据权利要求1所述的方法,其特征在于,所述状态比特块中包括有128比特的密钥数据;
所述利用注入故障的状态比特块对预设的明文数据进行加密,得到每次故障注入下的标签,包括:
对于任意置换盒,在每次进行故障注入后,按照预设的置换函数,对注入故障的状态比特块整体执行12轮置换,得到初始化后的状态比特块;
将预设的附加数据与初始化后的状态比特块结合,并按照所述置换函数体执行6轮置换,得到带有附加数据的状态比特块;
将所述明文数据与带有附加数据的状态比特块结合,并按照所述置换函数体执行6轮置换,得到对所述明文数据加密的密文比特块;
按照所述置换函数,对所述密文比特块进行12轮置换,并将置换后的密文比特的最后128比特与所述密钥数据进行异或运算,得到对应该置换盒在该次故障注入下的长度为128比特的标签。
4.根据权利要求1所述的方法,其特征在于,所述通过对全部标签各自进行线性扩散的逆运算,确定每个置换盒在故障注入前的中间目标值,包括:
对于每个标签,按照如下所示的中间目标值公式,构建每个置换盒在故障注入前的目标值,
;
其中,s3 (j)表示第j个置换盒的中间目标值的第1个比特,s4 (j)表示第j个置换盒的中间目标值的第2个比特,T0,m表示该标签的前64比特中的第m个比特,T1,m表示该标签的后64比特中的第m个比特,km表示所述密钥数据的第m个比特,lj,m (3)表示第一线性扩散逆矩阵L3 -1的第j行的第m个比特,lj,m (4)表示第二线性扩散逆矩阵L4 -1的第j行的第m个比特;
其中,所述第一线性扩散逆矩阵L3 -1表示第4个比特子的逆运算,所述第二线性扩散逆矩阵L4 -1表示第5个比特子的逆运算。
5.根据权利要求4所述的方法,其特征在于,所述候选中间密钥为2比特;
所述利用所述故障注入前的中间目标值构建对应置换盒的多个候选中间密钥,包括:
按照如下所示的过渡公式,构建每个置换盒各自的候选中间密钥,
;
将所述中间目标值公式与所述过渡公式结合,构建如下所示的候选中间密钥公式,
;
其中,K0 (j)表示第j个置换盒对应的候选中间密钥的一个比特,K1 (j)表示第j个置换盒对应的候选中间密钥的另一个比特,所述候选中间密钥中的每个比特的取值为0和1两种;
对两个比特按照不同顺序和取值进行排列组合,将得到的4种结果分别作为4个不同的一组候选中间密钥。
6.根据权利要求3所述的方法,其特征在于,所述利用所述统计评价函数从全部候选中间密钥中确定目标中间密钥,包括:
利用所述密钥数据对所述密文比特块解密,响应于确定解密正确,则确定对应的标签为正确标签,响应于确定解密错误,则确定对应的标签为错误标签;
响应于确定利用正确标签计算所述目标中间密钥,则当每组的4个候选中间密钥对应的标签为正确标签时,利用如下所示的第一统计评价函数,对该组的4个候选中间密钥进行计算,
;
其中,x表示中间目标值的取值,k表示4个候选中间密钥中的第k个候选中间密钥,n表示中间目标值的长度为n比特,pi,k x表示在全部无效攻击的结果中,利用第k个候选中间密钥确定出的目标中间值为x时所占的比例,qi z表示在全部无效攻击的结果中,中间目标值被注入故障值后,结果为z的比例;
将所述4个候选中间密钥的计算结果中最小的作为目标中间密钥;
响应于确定利用错误标签计算所述目标中间密钥,则当每组的4个候选中间密钥对应的标签为错误标签时,利用如下所示的第二统计评价函数,对该组的4个候选中间密钥进行计算,
;
其中,pe,k x表示在全部有效攻击的结果中,利用第k个候选中间密钥确定出的目标中间值为x时所占的比例,qe z表示在全部有效攻击的结果中,中间目标值被注入故障值后,结果为z的比例;
将所述4个候选中间密钥的计算结果中最小的作为目标中间密钥;
响应于确定利用全部标签计算所述目标中间密钥,则利用如下所示的第三统计评价函数,对该组的4个候选中间密钥进行计算,
;
将所述4个候选中间密钥的计算结果中最小的作为目标中间密钥;
其中,所述无效攻击表示进行故障注入后,利用所述密钥数据对所述密文比特块解密正确,所述有效攻击表示进行故障注入后,利用所述密钥数据对所述密文比特块解密错误。
7.根据权利要求3所述的方法,其特征在于,所述利用各个置换盒的目标中间密钥确定所述状态比特块中预置的原始密钥,包括:
将每个置换盒对应的目标中间密钥中第1个比特组成第一行向量,并将每个置换盒对应的目标中间密钥中第2个比特组成第二行向量;
利用所述第一行向量计算密钥确定所述密钥数据的前64位比特,并利用所述第二行向量计算密钥确定所述密钥数据的后64位比特;
将前64位比特和后64位比特结合,恢复出所述密钥数据。
8.一种轻量级哈希加密算法的演练装置,其特征在于,包括:S盒预备模块、标签生成模块、逆运算模块和密钥恢复模块;
其中,所述S盒预备模块,被配置为,在每次演练中,将预置的状态比特块划分多个相同长度比特字,将各个比特字组合为多个置换盒,并将每个置换盒的后2个比特作为中间目标值;
所述标签生成模块,被配置为,对每个置换盒的所述中间目标值多次利用不同的故障值进行故障注入,并利用注入故障的状态比特块对预设的明文数据进行加密,得到每次故障注入下的标签;
所述逆运算模块,被配置为,通过对全部标签各自进行线性扩散的逆运算,确定每个置换盒在故障注入前的中间目标值,利用所述故障注入前的中间目标值构建对应置换盒的多个候选中间密钥;
所述密钥恢复模块,被配置为,根据中间目标值和故障值构建统计评价函数,利用所述统计评价函数从全部候选中间密钥中确定目标中间密钥,利用各个置换盒的目标中间密钥确定所述状态比特块中预置的原始密钥,完成该次演练。
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可由所述处理器执行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7中任意一项所述的方法。
10.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使计算机执行根据权利要求1至7中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311661186.0A CN117353923B (zh) | 2023-12-06 | 2023-12-06 | 轻量级哈希加密算法的演练方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311661186.0A CN117353923B (zh) | 2023-12-06 | 2023-12-06 | 轻量级哈希加密算法的演练方法及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117353923A true CN117353923A (zh) | 2024-01-05 |
CN117353923B CN117353923B (zh) | 2024-02-02 |
Family
ID=89371497
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311661186.0A Active CN117353923B (zh) | 2023-12-06 | 2023-12-06 | 轻量级哈希加密算法的演练方法及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117353923B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090262925A1 (en) * | 2008-04-21 | 2009-10-22 | Natarajan Vijayarangan | Method for designing a secure hash function and a system thereof |
CN107124264A (zh) * | 2017-03-06 | 2017-09-01 | 北京航空航天大学 | 一种基于仿射变换字节替换盒的轻量级杂凑方法 |
CN107769911A (zh) * | 2017-11-30 | 2018-03-06 | 西安理工大学 | 一种基于Sponge结构的轻量级哈希函数构造方法 |
KR20210049412A (ko) * | 2019-10-25 | 2021-05-06 | 주식회사 제이에스전자 | Cbc 암호화 및 복호화를 통한 통신 방법 및 시스템 |
US20220058022A1 (en) * | 2014-11-28 | 2022-02-24 | Michael Stephen Fiske | Hiding Stable Machine Instructions in Noise |
CN116321129A (zh) * | 2023-03-23 | 2023-06-23 | 广东电力交易中心有限责任公司 | 一种轻量级的基于动态密钥的电力交易专网通信加密方法 |
-
2023
- 2023-12-06 CN CN202311661186.0A patent/CN117353923B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090262925A1 (en) * | 2008-04-21 | 2009-10-22 | Natarajan Vijayarangan | Method for designing a secure hash function and a system thereof |
US20220058022A1 (en) * | 2014-11-28 | 2022-02-24 | Michael Stephen Fiske | Hiding Stable Machine Instructions in Noise |
CN107124264A (zh) * | 2017-03-06 | 2017-09-01 | 北京航空航天大学 | 一种基于仿射变换字节替换盒的轻量级杂凑方法 |
CN107769911A (zh) * | 2017-11-30 | 2018-03-06 | 西安理工大学 | 一种基于Sponge结构的轻量级哈希函数构造方法 |
KR20210049412A (ko) * | 2019-10-25 | 2021-05-06 | 주식회사 제이에스전자 | Cbc 암호화 및 복호화를 통한 통신 방법 및 시스템 |
CN116321129A (zh) * | 2023-03-23 | 2023-06-23 | 广东电力交易中心有限责任公司 | 一种轻量级的基于动态密钥的电力交易专网通信加密方法 |
Non-Patent Citations (2)
Title |
---|
BENARDI WIDHIARA等: "RM70 : A Lightweight Hash Function", IAENG INTERNATIONAL JOURNAL OF APPLIED MATHEMATICS, pages 1 - 10 * |
王安等: "基于持续性故障的分组密码算法S盒表逆向分析", 电子学报, pages 537 - 551 * |
Also Published As
Publication number | Publication date |
---|---|
CN117353923B (zh) | 2024-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200366460A1 (en) | Homomorphic data decryption method and apparatus for implementing privacy protection | |
JP6058245B2 (ja) | 乱数拡大装置、乱数拡大方法及び乱数拡大プログラム | |
CN1677917B (zh) | 用于流式密码中的循环存储单元的方法和系统 | |
KR102447476B1 (ko) | 암복호 장치, 그것을 포함하는 저장 장치 및 그것의 암복호 방법 | |
US20200364377A1 (en) | Determining cryptographic operation masks for improving resistance to external monitoring attacks | |
CN108352981B (zh) | 被布置用于计算目标块加密的密码设备 | |
CN107104783A (zh) | 使电路免受侧信道分析的方法 | |
CN106850221A (zh) | 信息加密、解密方法及装置 | |
CN107579813A (zh) | 信息加密、解密方法及装置 | |
US20200396068A1 (en) | Protection of the execution of cipher algorithms | |
KR101623503B1 (ko) | Lea 블록암호의 화이트박스 암호 구현 장치 및 방법 | |
US11392725B2 (en) | Security processor performing remainder calculation by using random number and operating method of the security processor | |
JP6044738B2 (ja) | 情報処理装置、プログラム及び記憶媒体 | |
Brenner et al. | How practical is homomorphically encrypted program execution? an implementation and performance evaluation | |
CN114221766B (zh) | 数据加密方法、解密方法及装置 | |
EP3488553A1 (en) | Device and method for performing obfuscated arithmetic | |
CN105814833A (zh) | 安全的数据变换 | |
JP7060115B2 (ja) | 秘密配列アクセス装置、秘密配列アクセス方法、およびプログラム | |
CN117353923B (zh) | 轻量级哈希加密算法的演练方法及相关设备 | |
CN116318660B (zh) | 一种消息扩展与压缩方法及相关装置 | |
Moghadam et al. | Designing a random number generator with novel parallel LFSR substructure for key stream ciphers | |
CN109150494A (zh) | 移动端中构造加解密算法的方法、存储介质、设备及系统 | |
CN113475034B (zh) | 电路编译设备和电路评估设备 | |
US9842086B2 (en) | Calculation device, calculation method, and program | |
CN108370311A (zh) | 计算设备和方法 |
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 |