CN117155546B - 分组密码类立方攻击的搜索方法、装置、电子设备及介质 - Google Patents
分组密码类立方攻击的搜索方法、装置、电子设备及介质 Download PDFInfo
- Publication number
- CN117155546B CN117155546B CN202311412003.1A CN202311412003A CN117155546B CN 117155546 B CN117155546 B CN 117155546B CN 202311412003 A CN202311412003 A CN 202311412003A CN 117155546 B CN117155546 B CN 117155546B
- Authority
- CN
- China
- Prior art keywords
- block cipher
- variable
- attack
- cubic
- cube
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 79
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 192
- 230000014509 gene expression Effects 0.000 claims abstract description 67
- 238000012545 processing Methods 0.000 claims abstract description 26
- 238000009792 diffusion process Methods 0.000 claims abstract description 16
- 230000014759 maintenance of location Effects 0.000 claims description 18
- 238000010276 construction Methods 0.000 claims description 12
- 230000004044 response Effects 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 10
- 238000004364 calculation method Methods 0.000 claims description 5
- 238000004458 analytical method Methods 0.000 abstract description 35
- 230000008569 process Effects 0.000 description 16
- 238000006243 chemical reaction Methods 0.000 description 8
- 230000001902 propagating effect Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 4
- 238000007781 pre-processing Methods 0.000 description 4
- 238000010187 selection method Methods 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 230000001149 cognitive effect Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000011835 investigation Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000004575 stone Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 238000011282 treatment Methods 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/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
-
- 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
-
- 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/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请提供了一种分组密码类立方攻击的搜索方法、装置、电子设备及介质。所述方法包括:针对类sponge结构的分组密码算法,根据变量选择模式,选择所述分组密码算法对应的辅助变量;基于所述辅助变量对所述分组密码算法进行编码填充处理,得到填充分组密码信息;在对所述填充分组密码信息进行一轮扩散之后,计算得到每个比特位上的布尔表达式;根据类立方攻击的需求对所述布尔表达式进行处理,构建得到混合整数线性规划模型;对所述混合整数线性规划模型进行搜索处理,得到所述分组密码算法对应的相关密钥比特和立方变量,及最小相关密钥数量。本申请可以提高分组密码算法分析的效率和准确率,节省了分析时间和人力成本。
Description
技术领域
本申请涉及密码算法技术领域,尤其涉及一种分组密码类立方攻击的搜索方法、装置、电子设备及介质。
背景技术
密码学为信息安全提供了理论基础,可谓是信息安全的理论基石。密码分析可以发现、纠正密码算法本身的弱点,并根据这些弱点对密码进行破译,还有助于设计更好的密码算法,因此密码分析技术的发展极大地推动了密码算法的迭代升级。一直以来,针对类立方的密码分析更依赖于密码分析人员对密码算法深刻的理解进行人工分析,虽然在发展过程中,也有针对类立方密码分析中的复杂情况,提出借助计算机辅助寻找相关密钥和立方变量的方法。目前不管是人工手动分析还是已提出的搜索方法,均存在以下不足:
1、人工手动分析方法则完全依赖于人对密码算法的结构理解来进行密码分析,如果人工对所有可能选择情况进行遍历,人工耗时过长,效率低下,而且过程繁琐、出错率较高。
2、对于已经提出寻找相关密钥和立方变量的方法,虽然能借助计算机搜索相关密钥比特,但相同的密钥比特出现重复计算问题,存在误差,导致找出来的最优解不准确,要不直接引用不准确结果;要不需要手动确定排查一下,但排查之后依然不能保证结果的准确性。
发明内容
本申请实施例提供一种分组密码类立方攻击的搜索方法、装置、电子设备及介质,以解决相关技术中人工对所有可能选择情况进行遍历,人工耗时过长,效率低下,而且过程繁琐、出错率较高,且出来的最优解不准确的问题。
为了解决上述技术问题,本申请实施例是这样实现的:
第一方面,本申请实施例提供了一种分组密码类立方攻击的搜索方法,所述方法包括:
针对类sponge结构的分组密码算法,根据变量选择模式,选择所述分组密码算法对应的辅助变量;
基于所述辅助变量对所述分组密码算法进行编码填充处理,得到填充分组密码信息;
在对所述填充分组密码信息进行一轮扩散之后,计算得到每个比特位上的布尔表达式;
根据类立方攻击的需求对所述布尔表达式进行处理,构建得到混合整数线性规划模型;
对所述混合整数线性规划模型进行搜索处理,得到所述分组密码算法对应的相关密钥比特和立方变量,及最小相关密钥数量。
可选地,在所述针对类sponge结构的分组密码算法,根据变量选择模式,选择所述分组密码算法对应的辅助变量之前,还包括:
确定所述分组密码算法的结构是否为类sponge结构;
响应于所述分组密码算法的结构为非类sponge结构,确定所述分组密码算法是否满足转化为类sponge结构的条件;
响应于所述分组密码算法满足转化为类sponge结构的条件,将所述分组密码算法的结构转化为类sponge结构。
可选地,所述根据变量选择模式,选择所述分组密码算法对应的辅助变量,包括:
获取所述分组密码算法的密码算法规则;
基于所述密码算法规则和所述变量选择模式,选择所述辅助变量。
可选地,所述基于所述密码算法规则和所述变量选择模式,选择所述辅助变量,包括:
基于所述密码算法规则,确定所述分组密码算法中可替换的比特位;
基于变量选择模式,选择所述比特位对应的辅助变量。
可选地,所述基于变量选择模式,选择所述比特位对应的辅助变量,包括:
基于下述变量选择模式中的至少一种选择所述比特位对应的辅助变量:
抵消传播同一列上设置辅助变量的模式;
抵消传播多列上组合设置辅助变量的模式;
同一比特位上设置多辅助变量的模式;
不抵消传播随机设置的辅助变量的模式。
可选地,所述根据类立方攻击的需求对所述布尔表达式进行处理,构建得到混合整数线性规划模型,包括:
根据所述类立方攻击的需求和所述布尔表达式中的立方变量,确定所述混合整数线性规划模型的第一约束条件;
根据所述类立方攻击的需求和所述布尔表达式中的密钥比特,确定所述混合整数线性规划模型的第二约束条件;
基于所述第一约束条件和所述第二约束条件,构建得到所述混合整数线性规划模型。
可选地,所述根据所述类立方攻击的需求和所述布尔表达式中的立方变量,确定所述混合整数线性规划模型的第一约束条件,包括:
根据所述类立方攻击的需求确定线性约束需求,并根据所述立方变量将所述线性约束需求刻画为所述混合整数线性规划模型的线性保持约束条件;
根据所述类立方攻击的需求确定变量数量需求,并根据所述立方变量将所述变量数量需求刻画为所述混合整数线性规划模型的的变量数量约束条件;
将所述线性保持约束条件和所述变量数量约束条件作为所述第一约束条件。
可选地,所述根据所述立方变量将所述线性约束需求刻画为所述混合整数线性规划模型的线性保持约束条件,包括:
通过下述公式表示所述线性保持约束条件:
上述公式中,和分别表示两个立方变量的位置,表示立方变量的标识。
可选地,所述根据所述立方变量将所述变量数量需求刻画为所述混合整数线性规划模型的的变量数量约束条件,包括:
通过下述公式表示所述变量数量约束条件:
上述公式中,分别表示立方变量的位置,表示立方变量的标识,表示类立方攻击的轮数。
可选地,所述根据所述类立方攻击的需求和所述布尔表达式中的密钥比特,确定所述混合整数线性规划模型的第二约束条件,包括:
根据所述类立方攻击需求、所述密钥比特和所述立方变量,确定所述混合整数线性规划模型的相关密钥比特约束条件;
根据所述类立方攻击需求和所述密钥比特,确定所述混合整数线性规划模型的最小数量相关密钥约束条件;
将所述相关密钥比特约束条件和所述最小数量相关密钥约束条件作为所述第二约束条件。
可选地,所述根据所述类立方攻击需求、所述密钥比特和所述立方变量,确定所述混合整数线性规划模型的相关密钥比特约束条件,包括:
通过下述公式表示所述相关密钥比特约束条件:
上述公式中,分别表示立方变量的位置,表示立方变量的标识,、、表示密钥比特的坐标,表示密钥比特的标识。
可选地,所述根据所述类立方攻击需求和所述密钥比特,确定所述混合整数线性规划模型的最小数量相关密钥约束条件,包括:
通过下述公式表示所述最小数量相关密钥约束条件:
上述公式中,、、表示密钥比特的坐标,表示密钥比特的标识。
可选地,所述对所述混合整数线性规划模型进行搜索处理,得到所述分组密码算法对应的相关密钥比特和立方变量,及最小相关密钥数量,包括:
将所述混合整数线性规划模型放入到开源的混合整数线性规划求解器;
基于所述混合整数线性规划求解器运行所述混合整数线性规划模型,以搜索到满足条件的所述分组密码算法对应的相关密钥比特和立方变量,及最小相关密钥数量。
可选地,在所述对所述混合整数线性规划模型进行搜索处理,得到所述分组密码算法对应的相关密钥比特和立方变量,及最小相关密钥数量之后,还包括:
基于类立方攻击方式和最小相关密钥数量,对所述相关密钥比特和所述立方变量进行类立方攻击,得到类立方攻击数据;
基于所述类立方攻击数据对所述相关密钥比特的信息进行恢复。
第二方面,本申请实施例提供了一种分组密码类立方攻击的搜索装置,所述装置包括:
辅助变量选择模块,用于针对类sponge结构的分组密码算法,根据变量选择模式,选择所述分组密码算法对应的辅助变量;
填充信息获取模块,用于基于所述辅助变量对所述分组密码算法进行编码填充处理,得到填充分组密码信息;
布尔表达式计算模块,用于在对所述填充分组密码信息进行一轮扩散之后,计算得到每个比特位上的布尔表达式;
规划模型构建模块,用于根据类立方攻击的需求对所述布尔表达式进行处理,构建得到混合整数线性规划模型;
密钥信息获取模块,用于对所述混合整数线性规划模型进行搜索处理,得到所述分组密码算法对应的相关密钥比特和立方变量,及最小相关密钥数量。
可选地,所述装置还包括:
类sponge结构确定模块,用于确定所述分组密码算法的结构是否为类sponge结构;
转化条件确定模块,用于响应于所述分组密码算法的结构为非类sponge结构,确定所述分组密码算法是否满足转化为类sponge结构的条件;
类sponge结构转化模块,用于响应于所述分组密码算法满足转化为类sponge结构的条件,将所述分组密码算法的结构转化为类sponge结构。
可选地,所述辅助变量选择模块包括:
算法规则获取单元,用于获取所述分组密码算法的密码算法规则;
辅助变量选择单元,用于基于所述密码算法规则和所述变量选择模式,选择所述辅助变量。
可选地,所述辅助变量选择单元包括:
比特位确定子单元,用于基于所述密码算法规则,确定所述分组密码算法中可替换的比特位;
辅助变量选择子单元,用于基于变量选择模式,选择所述比特位对应的辅助变量。
可选地,所述辅助变量选择子单元包括:
基于下述变量选择模式中的至少一种选择所述比特位对应的辅助变量:
抵消传播同一列上设置辅助变量的模式;
抵消传播多列上组合设置辅助变量的模式;
同一比特位上设置多辅助变量的模式;
不抵消传播随机设置的辅助变量的模式。
可选地,所述规划模型构建模块包括:
第一约束条件确定单元,用于根据所述类立方攻击的需求和所述布尔表达式中的立方变量,确定所述混合整数线性规划模型的第一约束条件;
第二约束条件确定单元,用于根据所述类立方攻击的需求和所述布尔表达式中的密钥比特,确定所述混合整数线性规划模型的第二约束条件;
规划模型构建单元,用于基于所述第一约束条件和所述第二约束条件,构建得到所述混合整数线性规划模型。
可选地,所述第一约束条件确定单元包括:
线性约束条件获取子单元,用于根据所述类立方攻击的需求确定线性约束需求,并根据所述立方变量将所述线性约束需求刻画为所述混合整数线性规划模型的线性保持约束条件;
数量约束条件获取子单元,用于根据所述类立方攻击的需求确定变量数量需求,并根据所述立方变量将所述变量数量需求刻画为所述混合整数线性规划模型的的变量数量约束条件;
第一约束条件获取子单元,用于将所述线性保持约束条件和所述变量数量约束条件作为所述第一约束条件。
可选地,所述线性约束条件获取子单元包括:
通过下述公式表示所述线性保持约束条件:
上述公式中,和分别表示两个立方变量的位置,表示立方变量的标识。
可选地,所述数量约束条件获取子单元包括:
通过下述公式表示所述变量数量约束条件:
上述公式中,分别表示立方变量的位置,表示立方变量的标识,表示类立方攻击的轮数。
可选地,所述第二约束条件确定单元包括:
比特约束条件确定子单元,用于根据所述类立方攻击需求、所述密钥比特和所述立方变量,确定所述混合整数线性规划模型的相关密钥比特约束条件;
最小数量条件确定子单元,用于根据所述类立方攻击需求和所述密钥比特,确定所述混合整数线性规划模型的最小数量相关密钥约束条件;
第二约束条件获取子单元,用于将所述相关密钥比特约束条件和所述最小数量相关密钥约束条件作为所述第二约束条件。
可选地,所述比特约束条件确定子单元包括:
通过下述公式表示所述相关密钥比特约束条件:
上述公式中,分别表示立方变量的位置,表示立方变量的标识,、、表示密钥比特的坐标,表示密钥比特的标识。
可选地,所述最小数量条件确定子单元包括:
通过下述公式表示所述最小数量相关密钥约束条件:
上述公式中,、、表示密钥比特的坐标,表示密钥比特的标识。
可选地,所述密钥信息获取模块包括:
规划模型放入单元,用于将所述混合整数线性规划模型放入到开源的混合整数线性规划求解器;
密钥信息搜索单元,用于基于所述混合整数线性规划求解器运行所述混合整数线性规划模型,以搜索到满足条件的所述分组密码算法对应的相关密钥比特和立方变量,及最小相关密钥数量。
可选地,所述装置还包括:
攻击数据获取模块,用于基于类立方攻击方式和最小相关密钥数量,对所述相关密钥比特和所述立方变量进行类立方攻击,得到类立方攻击数据;
密钥比特信息恢复模块,用于基于所述类立方攻击数据对所述相关密钥比特的信息进行恢复。
第三方面,本申请实施例提供了一种电子设备,包括:
存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述任一项所述的分组密码类立方攻击的搜索方法。
第四方面,本申请实施例提供了一种可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行上述任一项所述的分组密码类立方攻击的搜索方法。
在本申请实施例中,通过针对类sponge结构的分组密码算法,根据变量选择模式,选择分组密码算法对应的辅助变量。基于辅助变量对分组密码算法进行编码填充处理,得到填充分组密码信息。在对填充分组密码信息进行一轮扩散之后,计算得到每个比特位上的布尔表达式。根据类立方攻击的需求对布尔表达式进行处理,构建得到混合整数线性规划模型。对混合整数线性规划模型进行搜索处理,得到分组密码算法对应的相关密钥比特和立方变量,及最小相关密钥数量。本申请实施例通过辅助变量对分组密码算法进行编码填充,能够分组密码分析的复杂度。同时MILP模型是根据每个比特位的布尔表达式构建得到的之前模型中重复计算导致出现误差,提高准确度。并且,通过MILP模型可以自动搜索得到分组密码算法对应的相关密钥比特和立方变量,及最小相关密钥数量,无需人工参与,可以避免人工分析时繁琐且易出错的问题,提高了密码分析的效率,而且计算的自动搜索能够遍历所有可能性去求解最优解,使得查找更全面。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
图1为本申请实施例提供的一种分组密码类立方攻击的搜索方法的步骤流程图;
图2为本申请实施例提供的一种类sponge结构转化方法的步骤流程图;
图3为本申请实施例提供的一种辅助变量选择方法的步骤流程图;
图4为本申请实施例提供的另一种辅助变量选择方法的步骤流程图;
图5为本申请实施例提供的一种规划模型构建方法的步骤流程图;
图6为本申请实施例提供的一种第一约束条件获取方法的步骤流程图;
图7为本申请实施例提供的一种第二约束条件获取方法的步骤流程图;
图8为本申请实施例提供的一种密钥信息搜索方法的步骤流程图;
图9为本申请实施例提供的一种类立方攻击方法的步骤流程图;
图10为本申请实施例提供的一种分组密码类立方分析的自动化搜索流程的示意图;
图11为本申请实施例提供的一种sponge结构的示意图;
图12为本申请实施例提供的一种分组密码类立方攻击的搜索装置的结构示意图;
图13为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
参照图1,示出了本申请实施例提供的一种分组密码类立方攻击的搜索方法的步骤流程图。如图1所示,该分组密码类立方攻击的搜索方法可以包括:步骤101、步骤102、步骤103、步骤104和步骤105。
步骤101:针对类sponge结构的分组密码算法,根据变量选择模式,选择所述分组密码算法对应的辅助变量。
本申请实施例可以应用于将填充的分组密码信息构建混合整数线性规划模型,以自动搜索分组密码算法的相关密钥比特和立方变量的场景中。
分组密码是将明文消息经过二进制编码后的序列分割为固定长度的组,用同一密钥和算法对每一组加密,且通常情况是密文、明文等长。
分组密码算法可以应用于消息加密、消息认证和数据完整性的保护、构造伪随机数生成器、构造流密码、构造其它密码协议的基础模块(如密码管理协议、身份认证协议等)。
sponge结构为迭代结构,通过固定长度的内部状态和置换函数将不定长度的消息压缩成固定长度的输出。对于sponge结构可以如图11所示。在本示例中,类sponge结构即为sponge结构以及基于sponge结构进行改动的结构。
在具体实现中,针对需要进行分析的分组密码算法,首先需要判断该分组密码算法是否为类sponge结构的密码算法,若非类sponge结构的密码算法则需要进行转化,若不能转化为类sponge结构,则结束搜索流程。对于该实现过程可以结合图2进行如下详细描述。
参照图2,示出了本申请实施例提供的一种类sponge结构转化方法的步骤流程图。如图2所示,该类sponge结构转化方法可以包括:步骤201、步骤202、步骤203和步骤204。
步骤201:确定所述分组密码算法的结构是否为类sponge结构。
在本申请实施例中,在对分组密码算法进行类立方攻击的搜索时,可以先判断该分组密码算法的结构是否为类sponge结构。
在确定分组密码算法的结构为类sponge结构时,则直接执行步骤101。
在确定分组密码算法的结构为非类sponge结构时,执行步骤202。
步骤202:响应于所述分组密码算法的结构为非类sponge结构,确定所述分组密码算法是否满足转化为类sponge结构的条件。
在确定分组密码算法的结构为非类sponge结构时,则可以响应于分组密码算法的结构为非类sponge结构,判断分组密码算法是否满足转化为类sponge结构的条件。具体地判断过程可以结合现有技术的类sponge结构转化流程对分组密码算法进行判断,本实施例对此不加以限制。
在确定分组密码算法满足转化为类sponge结构的条件时,执行步骤203。
在确定分组密码算法不满足转化为类sponge结构的条件时,执行步骤204。
步骤203:响应于所述分组密码算法满足转化为类sponge结构的条件,将所述分组密码算法的结构转化为类sponge结构。
在确定分组密码算法满足转化为类sponge结构的条件时,则可以将分组密码算法的结构转化为类sponge结构。具体地转化过程可以根据现有技术常用的类sponge结构转化方式,本实施例对于分组密码算法的具体转化方式不加以限制。
在确定出分组密码算法不满足转化为类sponge结构的条件时,则可以响应于分组密码算法不满足转化为类sponge结构的条件,结束分组密码算法的搜索流程,即结束搜索分组密码算法的相关密钥比特和立方变量的流程,终止对分组密码算法的分析。
本申请实施例通过类sponge结构的判断及转化,可以实现对具有类sponge体结构或者能转化成类sponge结构的分组密码进行类立方攻击所需的相关密钥比特和立方变量的搜索。
在具体地搜索流程中,可以针对类sponge结构的分组密码算法,根据变量选择模式选择分组密码算法对应的辅助变量。
辅助变量可以为人为定义的明文变量,该辅助变量可以用于替换分组密码算法中可替换的变量。
在进行辅助变量选择时,可以根据分组密码算法的规则进行辅助变量的选择。对于该实现过程可以结合图3进行如下详细描述。
参照图3,示出了本申请实施例提供的一种辅助变量选择方法的步骤流程图。如图3所示,该辅助变量选择方法可以包括:步骤301和步骤302。
步骤301:获取所述分组密码算法的密码算法规则。
在本实施例中,分组密码算法的密码算法规则定义了分组密码算法中可以动(即可被替换)的变量。例如,在分组密码算法的某一列中存在5个变量,密码算法规则即定义了这5个变量中可被替换的变量等。
可以理解地,上述示例仅是为了更好地理解本申请实施例的技术方案而列举的示例,不作为对本实施例的唯一限制。
在获取到分组密码算法的密码算法规则之后,执行步骤302。
步骤302:基于所述密码算法规则和所述变量选择模式,选择所述辅助变量。
在获取到分组密码算法的密码算法规则之后,则可以基于密码算法规则和变量选择模式,选择辅助变量。
在具体实现中,可以基于密码算法规则确定分组密码算法中可替换的比特位,进而可以根据变量选择模式选择比特位对应的辅助变量。对于该实现过程可以结合图4进行如下详细描述。
参照图4,示出了本申请实施例提供的另一种辅助变量选择方法的步骤流程图。如图4所示,该辅助变量选择方法可以包括:步骤401和步骤402。
步骤401:基于所述密码算法规则,确定所述分组密码算法中可替换的比特位。
在本实施例中,在获取到分组密码算法的密码算法规则之后,则可以基于密码算法规则,确定出分组密码算法中可替换的比特位,每个比特位均存放着分组密码算法的变量。
在基于密码算法规则确定出分组密码算法中可替换的比特位之后,执行步骤402。
步骤402:基于变量选择模式,选择所述比特位对应的辅助变量。
在基于密码算法规则确定出分组密码算法中可替换的比特位之后,则可以基于变量选择模式选择比特位对应的辅助变量,即针对每个比特位,依次选择进行替换的辅助变量。
在现有技术中,对已存在的所有类立方分析,都只是将辅助变量用作同一列抵消,没有考虑其他的辅助变量选择方式,限制了选择空间。本申请实施例设计了多种变量选择模式,具体可以包括:
1、抵消传播同一列上设置辅助变量的模式;
2、抵消传播多列上组合设置辅助变量的模式;
3、同一比特位上设置多辅助变量的模式;
4、不抵消传播随机设置的辅助变量的模式。
由于本实施例在密码算法编码填充初始化时,提供了更丰富的辅助变量选择,开阔了一个新的思路,扩大了新的选择空间, 可以广泛的应用于使用辅助变量的类立方攻击密码分析中,提高了密码分析的结果。
在根据变量选择模式选择到分组密码算法对应的辅助变量之后,执行步骤102。
步骤102:基于所述辅助变量对所述分组密码算法进行编码填充处理,得到填充分组密码信息。
在根据变量选择模式选择到分组密码算法对应的辅助变量之后,则可以基于辅助变量对分组密码算法进行编码填充处理,得到填充分组密码信息。即将辅助变量替换分组密码算法中对应比特位的变量,从而完成填充,得到填充分组密码信息。
本申请实施例通过辅助变量对分组密码算法进行编码填充,可以有利于搜索类立方攻击所需的立方变量,降低了搜索立方变量的复杂度。
在基于辅助变量对分组密码算法进行编码填充处理得到填充分组密码信息之后,执行步骤103。
步骤103:在对所述填充分组密码信息进行一轮扩散之后,计算得到每个比特位上的布尔表达式。
布尔表达式是一段代码声明,它最终只有tru和false两个取值。从最基本的层次来说,所有的布尔表达式,不论它的长短如何,其值只能是true或false。最简单的布尔表达式是等式。这种布尔表达式用来测试一个值是否与另一个值相同。
在基于辅助变量对分组密码算法进行编码填充处理得到填充分组密码信息之后,则可以填充分组密码信息进行一轮扩散。扩散是指让填充分组密码信息的密文中的每一位受明文中的尽可能多位的影响,如果明文变化一个比特时,密文中有些比特不可能发生变化,则这个明文与这些密文无关。
在对填充分组密码信息进行一轮扩散之后,则可以计算得到每个比特位上的布尔表达式。布尔表达式上可能带有密钥比特、立方变量、辅助变量以及可能出现的填充比特。
其中,立方变量是指类立方攻击的原理,用于求密钥变量的值。
填充比特是指用于限制某个或多个比特不可用的比特。
在对填充分组密码信息进行一轮扩散后计算得到每个比特位上的布尔表达式之后,执行步骤104。
步骤104:根据类立方攻击的需求对所述布尔表达式进行处理,构建得到混合整数线性规划模型。
混合整数线性规划模型(Mixed integer linear programming,MILP)是指目标函数是线性的,所有约束也是线性的,最后,决策变量可以取任何的实数。
在对填充分组密码信息进行一轮扩散后计算得到每个比特位上的布尔表达式之后,则可以类立方攻击的需求对布尔表达式进行处理,构建得到混合整数线性规划模型。具体地,可以根据类立方攻击的需求和布尔表达式中的立方变量、密钥比特,刻画MILP的约束条件,并结合约束条件构建MILP模型。对于该实现过程可以结合图5进行如下详细描述。
参照图5,示出了本申请实施例提供的一种规划模型构建方法的步骤流程图。如图5所示,该规划模型构建方法可以包括:步骤501、步骤502和步骤503。
步骤501:根据所述类立方攻击的需求和所述布尔表达式中的立方变量,确定所述混合整数线性规划模型的第一约束条件。
在本申请实施例中,在得到每个比特位的布尔表达式之后,可以根据类立方攻击的需求和布尔表达式中的立方变量,确定MILP模型的第一约束条件。在本示例中,第一约束条件包含了线性保持的约束条件和变量数量的约束条件。对于第一约束条件的确定过程可以结合图6进行如下详细描述。
参照图6,示出了本申请实施例提供的一种第一约束条件获取方法的步骤流程图。如图6所示,该第一约束条件获取方法可以包括:步骤601、步骤602和步骤603。
步骤601:根据所述类立方攻击的需求确定线性约束需求,并根据所述立方变量将所述线性约束需求刻画为所述混合整数线性规划模型的线性保持约束条件。
在本申请实施例中,可以根据类立方攻击的需求确定线性约束需求,并根据立方变量将线性约束需求刻画为模型的线性保持约束条件。具体地,根据类立方攻击的要求,立方变量在第一轮之后的输出依然保持线性。对于这个要求,可以将立方变量标记为和,和分别表示两个立方变量的位置,表示立方变量的标识。此时,可以将该要求刻画为MILP的约束条件,即线性保持约束条件,如下公式(1)所示:
(1)
上述公式(1)中,意味着一旦两个立方变量相乘破坏了线性,最多只会选择两者中的一个作为立方变量。
步骤602:根据所述类立方攻击的需求确定变量数量需求,并根据所述立方变量将所述变量数量需求刻画为所述混合整数线性规划模型的的变量数量约束条件。
在具体实现中,可以根据类立方攻击的需求,确定变量数量需求,并根据立方变量将该变量数量需求刻画为MILP模型的变量数量约束条件。具体地,根据类立方攻击的要求,立方变量的数目必须要满足对应轮数攻击。对于基于n轮的类立方攻击,立方变量的数量必须满足,那么可以将这个要求刻画成MILP模型的约束条件,即变量数量约束条件,如下公式(2)所示:
(2)
上述公式中,分别表示立方变量的位置,表示立方变量的标识,表示类立方攻击的轮数。
通过上述公式(2)可以确定,针对n轮的类立方攻击,需要在能控制的自由空间里找到满足条件的个立方变量。
步骤603:将所述线性保持约束条件和所述变量数量约束条件作为所述第一约束条件。
在刻画出线性保持约束条件和变量数量约束条件之后,则可以将线性保持约束条件和变量数量约束条件作为第一约束条件。
步骤502:根据所述类立方攻击的需求和所述布尔表达式中的密钥比特,确定所述混合整数线性规划模型的第二约束条件。
在得到每个比特位的布尔表达式之后,可以根据类立方攻击的需求和布尔表达式中的密钥比特,确定出MILP模型的第二约束条件。在本示例中,第二约束条件可以包含相关密钥比特的约束条件和最小数量相关密钥比特的约束条件。对于第二约束条件的确定过程可以结合图7进行如下详细描述。
参照图7,示出了本申请实施例提供的一种第二约束条件获取方法的步骤流程图。如图7所示,该第二约束条件获取方法可以包括:步骤701、步骤702和步骤703。
步骤701:根据所述类立方攻击需求、所述密钥比特和所述立方变量,确定所述混合整数线性规划模型的相关密钥比特约束条件。
在本实施例中,在计算到每个比特位上的布尔表达式之后,则可以根据类立方攻击需求、布尔表达式上的密钥比特和立方变量,确定出MILP模型的相关密钥比特约束条件。其中,相关密钥比特是指在一轮扩散后与立方变量相乘的密钥比特。
在具体实现中,根据类立方攻击的要求,相关密钥比特需要被标记出来。对于这个要求,可以将密钥比特标记成,、、表示密钥比特的坐标,表示密钥比特的标识。
此时,可以将这个要求刻画为MILP的约束条件,即相关密钥比特约束条件,如下公式(3)所示:
(3)
上述公式中,分别表示立方变量的位置,表示立方变量的标识。
上述公式(3)意味着如果相乘的立方变量被标记成1,那么密钥比特,密钥比特将变成被标记的相关密钥比特。
步骤702:根据所述类立方攻击需求和所述密钥比特,确定所述混合整数线性规划模型的最小数量相关密钥约束条件。
在具体实现中,可以根据类立方攻击需求和布尔表达式中的密钥比特,确定MILP模型的最小数量相关密钥约束条件。具体地,据类立方攻击的要求,越小数量的密钥比特可以带来越低的复杂度,因此本实施例的目标是寻找最少数量的相关密钥比特。对于这个要求,可以将密钥比特标记为,此时,可以将这个要求刻画成MILP模型的约束条件,即最小数量相关密钥约束条件。如下公式(4)所示:
(4)
上述公式中,、、表示密钥比特的坐标,表示密钥比特的标识。
上述公式意味着MILP求解器会根据这个目标以及相应的刻画规则,优化求解得到的最优解,找到最少数量的相关密钥比特。
步骤703:将所述相关密钥比特约束条件和所述最小数量相关密钥约束条件作为所述第二约束条件。
在刻画得到相关密钥比特约束条件和最小数量相关密钥约束条件之后,则可以将相关密钥比特约束条件和最小数量相关密钥约束条件作为第二约束条件。
步骤503:基于所述第一约束条件和所述第二约束条件,构建得到所述混合整数线性规划模型。
在通过上述步骤确定第一约束条件和第二约束条件之后,则可以基于第一约束条件和第二约束条件,构建得到MILP模型。
本申请实施例通过使相关密钥比特和立方变量的寻找用MILP模型刻画出来,使得搜索得以用计算机根据刻画规则自动搜索出来,因此避免了人工分析方法依赖于密码分析者认知经验的问题,避免了人工分析时繁琐且易出错的问题,提高了密码分析的效率,而且计算的自动搜索能够遍历所有可能性去求解最优解,使得查找更全面。同时,本实施例使用的MILP模型是根据确定性的布尔表达式构建的,可以避免之前模型中重复计算导致出现误差,提高准确度,改进了分析结果,在使用该方法自动搜索Ketje算法、带密钥模式下的Keccak-MAC的类立方攻击的相关密钥比特时,给出了目前最好的分析结果。
在根据类立方攻击的需求对布尔表达式进行处理构建得到混合整数线性规划模型之后,执行步骤105。
步骤105:对所述混合整数线性规划模型进行搜索处理,得到所述分组密码算法对应的相关密钥比特和立方变量,及最小相关密钥数量。
在根据类立方攻击的需求对布尔表达式进行处理构建得到混合整数线性规划模型之后,则可以对MILP模型进行搜索处理,以得到分组密码算法对应的相关密钥比特,以及最小相关密钥数量。具体地,可以将该MILP模型放入到开源的求解器中运行,以搜索满足条件的相关密钥比特和最小相关密钥数量。对于该实现过程可以结合图8进行如下详细描述。
参照图8,示出了本申请实施例提供的一种密钥信息搜索方法的步骤流程图。如图8所示,该密钥信息搜索方法可以包括:步骤801和步骤802。
步骤801:将所述混合整数线性规划模型放入到开源的混合整数线性规划求解器。
在本申请实施例中,混合整数线性规划求解器可以为但不限于Gurobi求解器。
在构建得到MILP模型之后,则可以将该MILP模型放入到开源的MILP求解器中。
步骤802:基于所述混合整数线性规划求解器运行所述混合整数线性规划模型,以搜索到满足条件的所述分组密码算法对应的相关密钥比特和立方变量,及最小相关密钥数量。
进而,可以在MILP求解器中运行该MILP模型,以搜索到满足条件的分组密码算法对应的相关密钥比特和立方变量,以及最小相关密钥数量。
如果能找到满足条件的立方变量和最小密钥比特,则说明存在该轮数的类立方分析,并可以恢复出相关密钥比特的信息;否则不存在该轮数的类立方分析。
本申请实施例通过将相关密钥比特和立方变量的寻找用MILP模型刻画出来,使得搜索得以用计算机根据刻画规则自动搜索出来,因此避免了人工分析方法依赖于密码分析者认知经验的问题,避免了人工分析时繁琐且易出错的问题,提高了密码分析的效率,而且计算的自动搜索能够遍历所有可能性去求解最优解,使得查找更全面。
在搜索到相关密钥比特、立方变量和最小相关密钥数量之后,即可以进行类立方攻击,以对分组密码算法进行分析。对于该实现过程可以结合图9进行如下详细描述。
参照图9,示出了本申请实施例提供的一种类立方攻击方法的步骤流程图。如图9所示,该类立方攻击方法可以包括:步骤901和步骤902。
步骤901:基于类立方攻击方式和最小相关密钥数量,对所述相关密钥比特和所述立方变量进行类立方攻击,得到类立方攻击数据。
在本申请实施例中,立方攻击是一种代数攻击方法,旨在寻找密码算法的低次方程以恢复密钥或进行区分攻击.它吸收了饱和攻击及高阶差分分析的思想。
类立方攻击即可以为与立方攻击相似的一种攻击行为。
可以基于类立方攻击方式和最小相关密钥数量,对相关密钥比特和立方变量进行类立方攻击,以得到类立方攻击数据。
在具体实现中,针对标记出的立方变量和相关密钥比特,类立方攻击将攻击阶段分为预处理阶段、在线阶段。
在类立方攻击的预处理阶段,可以在线下对相关密钥比特和立方变量进行预处理,以生成预处理的相关密钥比特和立方变量。
在线阶段,可以基于最小相关密钥数量,对相关密钥比特和立方变量进行类立方攻击,得到类立方攻击数据。
可以理解地,类立方攻击是一种常见的攻击方式,本实施例对于类立方攻击的具体实现过程不再做详细描述。
步骤902:基于所述类立方攻击数据对所述相关密钥比特的信息进行恢复。
在得到类立方攻击数据之后,则可以基于类立方攻击数据对相关密钥比特的信息进行恢复。在具体实现中,在经过预处理阶段和在线阶段的类立方攻击的过程中,只需要遍历相关密钥比特,就可以将相关密钥比特的信息进行恢复。
通过上述类立方攻击的流程,即可以对分组密码算法的安全性进行分析,本申请实施例提供的上述方案可以应用于SSD(Solid State Disk,固态硬盘)中用于分析SSD上非标准密码算法模块的安全性。
接下来,结合图10对本申请实施例的实现过程进行如下完整性描述。
参照图10,示出了本申请实施例提供的一种分组密码类立方分析的自动化搜索流程的示意图。如图10所示,该流程可以包括以下步骤:
一、判断分组密码算法的结构是否为类sponge结构,若是,则直接执行下一步骤,若否,则判断该分组密码算法的结构能否转化为sponge结构,若能则执行下一步骤,若不能,则结束流程。
二、根据密码算法规则以及辅助变量的多种选择模式进行编码填充初始化。
三、计算布尔表达式。具体地,可以计算对应分组密码算法在一轮后,每个比特位上对应的布尔表达式,布尔表达式上可能带有密钥变量、立方变量、辅助变量以及可能出现的填充比特。
四、根据类立方攻击的需要,在布尔表达式的基础上,建立MILP模型。具体地,可以根据类立方攻击的需要刻画MILP模型的约束条件,进而构建得到相应的MILP模型。
五、据类立方攻击的要求,针对布尔表达式建立的MILP模型,将其放到开源的MILP求解器中进行求解,如Gurobi求解器等等。如果能找到满足条件的立方变量和最小密钥比特,则说明存在该轮数的类立方分析,并可以恢复出相关密钥比特的信息;否则不存在该轮数的类立方分析。
六、在有求解结果时,则可以进行类立方攻击。即针对标记出的立方变量和相关密钥比特,类立方攻击将攻击阶段分为预处理阶段、在线阶段,只需要遍历相关密钥比特,就可以将相关密钥比特的信息进行恢复。
本申请实施例提供的分组密码类立方攻击的搜索方法,通过针对类sponge结构的分组密码算法,根据变量选择模式,选择分组密码算法对应的辅助变量。基于辅助变量对分组密码算法进行编码填充处理,得到填充分组密码信息。在对填充分组密码信息进行一轮扩散之后,计算得到每个比特位上的布尔表达式。根据类立方攻击的需求对布尔表达式进行处理,构建得到混合整数线性规划模型。对混合整数线性规划模型进行搜索处理,得到分组密码算法对应的相关密钥比特和立方变量,及最小相关密钥数量。本申请实施例通过辅助变量对分组密码算法进行编码填充,能够分组密码分析的复杂度。同时MILP模型是根据每个比特位的布尔表达式构建得到的之前模型中重复计算导致出现误差,提高准确度。并且,通过MILP模型可以自动搜索得到分组密码算法对应的相关密钥比特和立方变量,及最小相关密钥数量,无需人工参与,可以避免人工分析时繁琐且易出错的问题,提高了密码分析的效率,而且计算的自动搜索能够遍历所有可能性去求解最优解,使得查找更全面。
参照图12,示出了本申请实施例提供的一种分组密码类立方攻击的搜索装置的结构示意图。如图12所示,该分组密码类立方攻击的搜索装置1200可以包括以下模块:
辅助变量选择模块1210,用于针对类sponge结构的分组密码算法,根据变量选择模式,选择所述分组密码算法对应的辅助变量;
填充信息获取模块1220,用于基于所述辅助变量对所述分组密码算法进行编码填充处理,得到填充分组密码信息;
布尔表达式计算模块1230,用于在对所述填充分组密码信息进行一轮扩散之后,计算得到每个比特位上的布尔表达式;
规划模型构建模块1240,用于根据类立方攻击的需求对所述布尔表达式进行处理,构建得到混合整数线性规划模型;
密钥信息获取模块1250,用于对所述混合整数线性规划模型进行搜索处理,得到所述分组密码算法对应的相关密钥比特和立方变量,及最小相关密钥数量。
可选地,所述装置还包括:
类sponge结构确定模块,用于确定所述分组密码算法的结构是否为类sponge结构;
转化条件确定模块,用于响应于所述分组密码算法的结构为非类sponge结构,确定所述分组密码算法是否满足转化为类sponge结构的条件;
类sponge结构转化模块,用于响应于所述分组密码算法满足转化为类sponge结构的条件,将所述分组密码算法的结构转化为类sponge结构。
可选地,所述辅助变量选择模块包括:
算法规则获取单元,用于获取所述分组密码算法的密码算法规则;
辅助变量选择单元,用于基于所述密码算法规则和所述变量选择模式,选择所述辅助变量。
可选地,所述辅助变量选择单元包括:
比特位确定子单元,用于基于所述密码算法规则,确定所述分组密码算法中可替换的比特位;
辅助变量选择子单元,用于基于变量选择模式,选择所述比特位对应的辅助变量。
可选地,所述辅助变量选择子单元包括:
基于下述变量选择模式中的至少一种选择所述比特位对应的辅助变量:
抵消传播同一列上设置辅助变量的模式;
抵消传播多列上组合设置辅助变量的模式;
同一比特位上设置多辅助变量的模式;
不抵消传播随机设置的辅助变量的模式。
可选地,所述规划模型构建模块包括:
第一约束条件确定单元,用于根据所述类立方攻击的需求和所述布尔表达式中的立方变量,确定所述混合整数线性规划模型的第一约束条件;
第二约束条件确定单元,用于根据所述类立方攻击的需求和所述布尔表达式中的密钥比特,确定所述混合整数线性规划模型的第二约束条件;
规划模型构建单元,用于基于所述第一约束条件和所述第二约束条件,构建得到所述混合整数线性规划模型。
可选地,所述第一约束条件确定单元包括:
线性约束条件获取子单元,用于根据所述类立方攻击的需求确定线性约束需求,并根据所述立方变量将所述线性约束需求刻画为所述混合整数线性规划模型的线性保持约束条件;
数量约束条件获取子单元,用于根据所述类立方攻击的需求确定变量数量需求,并根据所述立方变量将所述变量数量需求刻画为所述混合整数线性规划模型的的变量数量约束条件;
第一约束条件获取子单元,用于将所述线性保持约束条件和所述变量数量约束条件作为所述第一约束条件。
可选地,所述线性约束条件获取子单元包括:
通过下述公式表示所述线性保持约束条件:
上述公式中,和分别表示两个立方变量的位置,表示立方变量的标识。
可选地,所述数量约束条件获取子单元包括:
通过下述公式表示所述变量数量约束条件:
上述公式中,分别表示立方变量的位置,表示立方变量的标识,表示类立方攻击的轮数。
可选地,所述第二约束条件确定单元包括:
比特约束条件确定子单元,用于根据所述类立方攻击需求、所述密钥比特和所述立方变量,确定所述混合整数线性规划模型的相关密钥比特约束条件;
最小数量条件确定子单元,用于根据所述类立方攻击需求和所述密钥比特,确定所述混合整数线性规划模型的最小数量相关密钥约束条件;
第二约束条件获取子单元,用于将所述相关密钥比特约束条件和所述最小数量相关密钥约束条件作为所述第二约束条件。
可选地,所述比特约束条件确定子单元包括:
通过下述公式表示所述相关密钥比特约束条件:
上述公式中,分别表示立方变量的位置,表示立方变量的标识,、、表示密钥比特的坐标,表示密钥比特的标识。
可选地,所述最小数量条件确定子单元包括:
通过下述公式表示所述最小数量相关密钥约束条件:
上述公式中,、、表示密钥比特的坐标,表示密钥比特的标识。
可选地,所述密钥信息获取模块包括:
规划模型放入单元,用于将所述混合整数线性规划模型放入到开源的混合整数线性规划求解器;
密钥信息搜索单元,用于基于所述混合整数线性规划求解器运行所述混合整数线性规划模型,以搜索到满足条件的所述分组密码算法对应的相关密钥比特和立方变量,及最小相关密钥数量。
可选地,所述装置还包括:
攻击数据获取模块,用于基于类立方攻击方式和最小相关密钥数量,对所述相关密钥比特和所述立方变量进行类立方攻击,得到类立方攻击数据;
密钥比特信息恢复模块,用于基于所述类立方攻击数据对所述相关密钥比特的信息进行恢复。
本申请实施例提供的分组密码类立方攻击的搜索装置,通过针对类sponge结构的分组密码算法,根据变量选择模式,选择分组密码算法对应的辅助变量。基于辅助变量对分组密码算法进行编码填充处理,得到填充分组密码信息。在对填充分组密码信息进行一轮扩散之后,计算得到每个比特位上的布尔表达式。根据类立方攻击的需求对布尔表达式进行处理,构建得到混合整数线性规划模型。对混合整数线性规划模型进行搜索处理,得到分组密码算法对应的相关密钥比特和立方变量,及最小相关密钥数量。本申请实施例通过辅助变量对分组密码算法进行编码填充,能够分组密码分析的复杂度。同时MILP模型是根据每个比特位的布尔表达式构建得到的之前模型中重复计算导致出现误差,提高准确度。并且,通过MILP模型可以自动搜索得到分组密码算法对应的相关密钥比特和立方变量,及最小相关密钥数量,无需人工参与,可以避免人工分析时繁琐且易出错的问题,提高了密码分析的效率,而且计算的自动搜索能够遍历所有可能性去求解最优解,使得查找更全面。
另外地,本申请实施例还提供了一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述分组密码类立方攻击的搜索方法。
图13示出了本发明实施例的一种电子设备1300的结构示意图。如图13所示,电子设备1300包括中央处理单元(CPU)1301,其可以根据存储在只读存储器(ROM)1302中的计算机程序指令或者从存储单元1308加载到随机访问存储器(RAM)1303中的计算机程序指令,来执行各种适当的动作和处理。在RAM1303中,还可存储电子设备1300操作所需的各种程序和数据。CPU1301、ROM1302以及RAM1303通过总线1304彼此相连。输入/输出(I/O)接口1305也连接至总线1304。
电子设备1300中的多个部件连接至I/O接口1305,包括:输入单元1306,例如键盘、鼠标、麦克风等;输出单元1307,例如各种类型的显示器、扬声器等;存储单元1308,例如磁盘、光盘等;以及通信单元1309,例如网卡、调制解调器、无线通信收发机等。通信单元1309允许电子设备1300通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
上文所描述的各个过程和处理,可由处理单元1301执行。例如,上述任一实施例的方法可被实现为计算机软件程序,其被有形地包含于计算机可读介质,例如存储单元1308。在一些实施例中,计算机程序的部分或者全部可以经由ROM1302和/或通信单元1309而被载入和/或安装到电子设备1300上。当计算机程序被加载到RAM1303并由CPU1301执行时,可以执行上文描述的方法中的一个或多个动作。
在本示例中,电子设备可以为计算机设备,计算机设备执行上述分组密码类立方攻击的搜索方法可以应用于SSD以分析SSD上非标准密码算法模块的安全性。
本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述分组密码类立方攻击的搜索方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(RandomAccess Memory,简称RAM)、磁碟或者光盘等。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (16)
1.一种分组密码类立方攻击的搜索方法,其特征在于,所述方法包括:
针对类sponge结构的分组密码算法,根据变量选择模式,选择所述分组密码算法对应的辅助变量;所述辅助变量为人为定义的明文变量,所述辅助变量用于替换所述分组密码算法中可替换的变量,所述变量选择模式包括:抵消传播同一列上设置辅助变量的模式、抵消传播多列上组合设置辅助变量的模式、同一比特位上设置多辅助变量的模式和不抵消传播随机设置的辅助变量的模式;
基于所述辅助变量对所述分组密码算法进行编码填充处理,得到填充分组密码信息;
在对所述填充分组密码信息进行一轮扩散之后,计算得到每个比特位上的布尔表达式;
根据类立方攻击的需求对所述布尔表达式进行处理,构建得到混合整数线性规划模型;
对所述混合整数线性规划模型进行搜索处理,得到所述分组密码算法对应的相关密钥比特和立方变量,及最小相关密钥数量。
2.根据权利要求1所述的方法,其特征在于,在所述针对类sponge结构的分组密码算法,根据变量选择模式,选择所述分组密码算法对应的辅助变量之前,还包括:
确定所述分组密码算法的结构是否为类sponge结构;
响应于所述分组密码算法的结构为非类sponge结构,确定所述分组密码算法是否满足转化为类sponge结构的条件;
响应于所述分组密码算法满足转化为类sponge结构的条件,将所述分组密码算法的结构转化为类sponge结构。
3.根据权利要求1所述的方法,其特征在于,所述根据变量选择模式,选择所述分组密码算法对应的辅助变量,包括:
获取所述分组密码算法的密码算法规则;
基于所述密码算法规则和所述变量选择模式,选择所述辅助变量。
4.根据权利要求3所述的方法,其特征在于,所述基于所述密码算法规则和所述变量选择模式,选择所述辅助变量,包括:
基于所述密码算法规则,确定所述分组密码算法中可替换的比特位;
基于变量选择模式,选择所述比特位对应的辅助变量。
5.根据权利要求1所述的方法,其特征在于,所述根据类立方攻击的需求对所述布尔表达式进行处理,构建得到混合整数线性规划模型,包括:
根据所述类立方攻击的需求和所述布尔表达式中的立方变量,确定所述混合整数线性规划模型的第一约束条件;
根据所述类立方攻击的需求和所述布尔表达式中的密钥比特,确定所述混合整数线性规划模型的第二约束条件;
基于所述第一约束条件和所述第二约束条件,构建得到所述混合整数线性规划模型。
6.根据权利要求5所述的方法,其特征在于,所述根据所述类立方攻击的需求和所述布尔表达式中的立方变量,确定所述混合整数线性规划模型的第一约束条件,包括:
根据所述类立方攻击的需求确定线性约束需求,并根据所述立方变量将所述线性约束需求刻画为所述混合整数线性规划模型的线性保持约束条件;
根据所述类立方攻击的需求确定变量数量需求,并根据所述立方变量将所述变量数量需求刻画为所述混合整数线性规划模型的变量数量约束条件;
将所述线性保持约束条件和所述变量数量约束条件作为所述第一约束条件。
7.根据权利要求6所述的方法,其特征在于,所述根据所述立方变量将所述线性约束需求刻画为所述混合整数线性规划模型的线性保持约束条件,包括:
通过下述公式表示所述线性保持约束条件:
上述公式中,和分别表示两个立方变量的位置,表示立方变量的标识。
8.根据权利要求6所述的方法,其特征在于,所述根据所述立方变量将所述变量数量需求刻画为所述混合整数线性规划模型的变量数量约束条件,包括:
通过下述公式表示所述变量数量约束条件:
上述公式中,分别表示立方变量的位置,表示立方变量的标识,表示类立方攻击的轮数。
9.根据权利要求5所述的方法,其特征在于,所述根据所述类立方攻击的需求和所述布尔表达式中的密钥比特,确定所述混合整数线性规划模型的第二约束条件,包括:
根据所述类立方攻击需求、所述密钥比特和所述立方变量,确定所述混合整数线性规划模型的相关密钥比特约束条件;
根据所述类立方攻击需求和所述密钥比特,确定所述混合整数线性规划模型的最小数量相关密钥约束条件;
将所述相关密钥比特约束条件和所述最小数量相关密钥约束条件作为所述第二约束条件。
10.根据权利要求9所述的方法,其特征在于,所述根据所述类立方攻击需求、所述密钥比特和所述立方变量,确定所述混合整数线性规划模型的相关密钥比特约束条件,包括:
通过下述公式表示所述相关密钥比特约束条件:
上述公式中,分别表示立方变量的位置,表示立方变量的标识,、、表示密钥比特的坐标,表示密钥比特的标识。
11.根据权利要求9所述的方法,其特征在于,所述根据所述类立方攻击需求和所述密钥比特,确定所述混合整数线性规划模型的最小数量相关密钥约束条件,包括:
通过下述公式表示所述最小数量相关密钥约束条件:
上述公式中,、、表示密钥比特的坐标,表示密钥比特的标识。
12.根据权利要求1所述的方法,其特征在于,所述对所述混合整数线性规划模型进行搜索处理,得到所述分组密码算法对应的相关密钥比特和立方变量,及最小相关密钥数量,包括:
将所述混合整数线性规划模型放入到开源的混合整数线性规划求解器;
基于所述混合整数线性规划求解器运行所述混合整数线性规划模型,以搜索到满足条件的所述分组密码算法对应的相关密钥比特和立方变量,及最小相关密钥数量。
13.根据权利要求1所述的方法,其特征在于,在所述对所述混合整数线性规划模型进行搜索处理,得到所述分组密码算法对应的相关密钥比特和立方变量,及最小相关密钥数量之后,还包括:
基于类立方攻击方式和最小相关密钥数量,对所述相关密钥比特和所述立方变量进行类立方攻击,得到类立方攻击数据;
基于所述类立方攻击数据对所述相关密钥比特的信息进行恢复。
14.一种分组密码类立方攻击的搜索装置,其特征在于,所述装置包括:
辅助变量选择模块,用于针对类sponge结构的分组密码算法,根据变量选择模式,选择所述分组密码算法对应的辅助变量;
填充信息获取模块,用于基于所述辅助变量对所述分组密码算法进行编码填充处理,得到填充分组密码信息;所述辅助变量为人为定义的明文变量,所述辅助变量用于替换所述分组密码算法中可替换的变量,所述变量选择模式包括:抵消传播同一列上设置辅助变量的模式、抵消传播多列上组合设置辅助变量的模式、同一比特位上设置多辅助变量的模式和不抵消传播随机设置的辅助变量的模式;
布尔表达式计算模块,用于在对所述填充分组密码信息进行一轮扩散之后,计算得到每个比特位上的布尔表达式;
规划模型构建模块,用于根据类立方攻击的需求对所述布尔表达式进行处理,构建得到混合整数线性规划模型;
密钥信息获取模块,用于对所述混合整数线性规划模型进行搜索处理,得到所述分组密码算法对应的相关密钥比特和立方变量,及最小相关密钥数量。
15.一种电子设备,其特征在于,包括:
存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至13中任一项所述的分组密码类立方攻击的搜索方法。
16.一种可读存储介质,其特征在于,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行权利要求1至13任一项所述的分组密码类立方攻击的搜索方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311412003.1A CN117155546B (zh) | 2023-10-27 | 2023-10-27 | 分组密码类立方攻击的搜索方法、装置、电子设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311412003.1A CN117155546B (zh) | 2023-10-27 | 2023-10-27 | 分组密码类立方攻击的搜索方法、装置、电子设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117155546A CN117155546A (zh) | 2023-12-01 |
CN117155546B true CN117155546B (zh) | 2024-02-09 |
Family
ID=88906420
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311412003.1A Active CN117155546B (zh) | 2023-10-27 | 2023-10-27 | 分组密码类立方攻击的搜索方法、装置、电子设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117155546B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107124264A (zh) * | 2017-03-06 | 2017-09-01 | 北京航空航天大学 | 一种基于仿射变换字节替换盒的轻量级杂凑方法 |
CN113078997A (zh) * | 2021-03-24 | 2021-07-06 | 华北电力大学 | 一种基于轻量级密码算法的终端保护方法 |
CN116938437A (zh) * | 2023-08-10 | 2023-10-24 | 桂林电子科技大学 | 一种基于最小猜测基的密钥恢复方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9418046B2 (en) * | 2014-05-14 | 2016-08-16 | International Business Machines Corporation | Price-and-branch algorithm for mixed integer linear programming |
-
2023
- 2023-10-27 CN CN202311412003.1A patent/CN117155546B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107124264A (zh) * | 2017-03-06 | 2017-09-01 | 北京航空航天大学 | 一种基于仿射变换字节替换盒的轻量级杂凑方法 |
CN113078997A (zh) * | 2021-03-24 | 2021-07-06 | 华北电力大学 | 一种基于轻量级密码算法的终端保护方法 |
CN116938437A (zh) * | 2023-08-10 | 2023-10-24 | 桂林电子科技大学 | 一种基于最小猜测基的密钥恢复方法 |
Non-Patent Citations (1)
Title |
---|
分组密码基于自动化搜索的安全性分析;刘宗甫;中国优秀硕士学位论文全文数据库信息科技辑;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN117155546A (zh) | 2023-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113127931B (zh) | 基于瑞丽散度进行噪声添加的联邦学习差分隐私保护方法 | |
CN112527273A (zh) | 一种代码补全方法、装置以及相关设备 | |
US20240062072A1 (en) | Federated learning system and federated learning method | |
CN102571357A (zh) | 一种签名的实现方法和装置 | |
CN111628866B (zh) | 神经网络校验方法、装置、设备及可读存储介质 | |
CN111756521A (zh) | 基于Feistel-SP结构的密码S盒设计方法 | |
CN116137564A (zh) | 密文解密方法及相关设备 | |
CN110299988B (zh) | 轻量级分组密码算法抗攻击能力的检测方法及检测装置 | |
CN111934852A (zh) | 一种基于神经网络的aes密码芯片电磁攻击方法及系统 | |
CN116681141A (zh) | 隐私保护的联邦学习方法、终端及存储介质 | |
Niemiec et al. | Quantum cryptography protocol simulator | |
CN117155546B (zh) | 分组密码类立方攻击的搜索方法、装置、电子设备及介质 | |
Wang et al. | Single-Trace Side-Channel Attacks on CRYSTALS-Dilithium: Myth or Reality? | |
CN117744123A (zh) | 隐私数据的安全保护方法、系统、电子设备及存储介质 | |
CN116094850B (zh) | 基于系统状态追踪图引导的网络协议漏洞检测方法及系统 | |
Stankovski et al. | Improved distinguishers for HC-128 | |
CN115174237B (zh) | 一种物联网系统恶意流量的检测方法、装置和电子设备 | |
CN112398638B (zh) | 一种零相关线性密码分析方法、系统、介质及电子设备 | |
CN107239693A (zh) | 一种基于口令编码规则的分析方法及系统 | |
CN112134679B (zh) | 针对sm4的组合高阶侧信道攻击方法、装置、设备及介质 | |
CN113971296A (zh) | 一种id模糊化的数据处理系统 | |
CN114003939A (zh) | 一种用于纵向联邦场景的多重共线性分析方法 | |
CN112507366A (zh) | 一种智能电网中多维数据高效数据聚合的方法和系统 | |
CN113554476B (zh) | 信用度预测模型的训练方法、系统、电子设备及存储介质 | |
CN106161004B (zh) | 一种hmac-sm3密码算法的侧信道能量分析方法及装置 |
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 |