CN112667994A - 一种面向计算机的对称密码形式化描述方法及系统 - Google Patents

一种面向计算机的对称密码形式化描述方法及系统 Download PDF

Info

Publication number
CN112667994A
CN112667994A CN202011435351.7A CN202011435351A CN112667994A CN 112667994 A CN112667994 A CN 112667994A CN 202011435351 A CN202011435351 A CN 202011435351A CN 112667994 A CN112667994 A CN 112667994A
Authority
CN
China
Prior art keywords
node
bit
input
variable
component function
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
Application number
CN202011435351.7A
Other languages
English (en)
Other versions
CN112667994B (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.)
Shandong University
Original Assignee
Shandong University
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 Shandong University filed Critical Shandong University
Priority to CN202011435351.7A priority Critical patent/CN112667994B/zh
Publication of CN112667994A publication Critical patent/CN112667994A/zh
Application granted granted Critical
Publication of CN112667994B publication Critical patent/CN112667994B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

本发明公开了一种面向计算机的对称密码形式化描述方法及系统,包括:将对称密码分解为多个组件函数;根据第i个组件函数中单个操作的输入比特变量,调用级联语句将第i个组件函数的输入级联为输入n1比特变量;根据第i个组件函数中单个操作的输出比特变量,调用分解语句将输出比特变量分解为n2个1比特变量;根据输入n1比特变量和输出比特变量,对第i个组件函数的单个操作进行形式化描述;将n2个1比特变量与第i+1个组件函数进行比特置换后,依次得到对称密码中每个组件函数的形式化描述。提高使用计算机辅助分析对称密码的算法安全性和适用性,解决手动分析对称密码算法实现效率低的问题。

Description

一种面向计算机的对称密码形式化描述方法及系统
技术领域
本发明涉及信息安全分组密码设计与分析技术领域,特别是涉及一种面向计算机的对称密码形式化描述方法及系统。
背景技术
本部分的陈述仅仅是提供了与本发明相关的背景技术信息,不必然构成在先技术。
对称密码(symmetricciphers)是指加密和解密使用同一密钥的密码算法,主要用于数据加密;对称密码包括分组密码(block cipher)、消息杂凑函数(hash function)、消息认证码(message authentication code)和认证加密算法(authentication encryptionalgorithm)等。
对称密码算法具有多种类型,例如SPN(substitution-permutation network,替换-置换网络)结构与Feistel结构等;对称密码算法由非线性操作和线性(仿射)操作组成。
对于非线性层操作,有的分组密码算法使用“S盒”,S盒本质上是一个向量布尔函数:
Figure BDA0002828372350000011
Figure BDA0002828372350000012
是n比特0、1的集合;通常S盒由一个表给出其映射规则;
有的分组密码算法使用“模加”组件,模加是整数的加法,但是和模掉一个数,这个数一般是2的幂次,例如
Figure BDA0002828372350000013
模加之后
Figure BDA0002828372350000014
那么c=a+b mod 232
尽管加法在整数操作中是线性操作,但是在对称密码算法的操作中,一般作为非线性组件使用。
还有的对称密码算法使用按位“与”作为非线性操作,例如
Figure BDA0002828372350000021
按位与之后得到
Figure BDA0002828372350000022
那么c[i]=a[i]&b[i],0≤i<32,a[i]是a的第i个比特。
对于线性操作,有的分组密码算法采用比特置换操作P,例如输入是a,输出是b,那么b=P(a),和S盒类似,P一般也使用置换表表示。
有的对称密码算法使用和比特置换类似的字的置换,置换的输入和输出都是字而不再是比特。
有的对称密码算法使用复杂的矩阵乘操作,设该线性操作的输入是
Figure BDA0002828372350000023
输出是
Figure BDA0002828372350000024
Figure BDA0002828372350000025
则b=M·a;矩阵M具有多种类型,例如高级加密标准算法(AES)采用域上的MDS矩阵:
Figure BDA0002828372350000026
而SKINNY算法采用:
Figure BDA0002828372350000027
除了上述介绍的非线性和线性操作之外,构成对称密码算法的组件还可能是异或、向左移位、向右移位、向左循环移位、向右循环移位等;总之,在实践中密码算法的种类和样式是多种多样的。
由于对称密码算法种类繁多,结构复杂,通过手动分析对称密码算法,在安全性和实现效率上存在缺陷,所以采用计算机辅助分析的的需求越来越大;但是目前没有很好的面向计算机的形式化描述对称密码算法的方法,限制分析人员使用计算机辅助分析对称密码算法的安全性和实现代价。
其次,目前存在使用多变量方程组描述对称密码算法的方法,这种方法将对称密码算法中的输入和输出看成是许多多变量函数的输入和输出,最终通过联立这些方程,达到将密码算法转换成方程组的目的;但是这种方法存在不够直观、难以通用的缺陷,在实践中不易使用。
发明内容
为了解决上述问题,本发明提出了一种面向计算机的对称密码形式化描述方法及系统,兼容对称密码算法的非线性操作和线性操作,描述所有常见的对称密码算法,新增级联语句和分解语句用于描述大变量和小变量间存在的级联和分解关系,提高使用计算机辅助分析对称密码的算法安全性和适用性,解决手动分析对称密码算法实现效率低的问题。
为了实现上述目的,本发明采用如下技术方案:
第一方面,本发明提供一种面向计算机的对称密码形式化描述方法,包括:
将对称密码分解为多个组件函数;
根据第i个组件函数中单个操作的输入比特变量,调用级联语句将第i个组件函数的输入级联为输入n1比特变量;
根据第i个组件函数中单个操作的输出比特变量,调用分解语句将输出比特变量分解为n2个1比特变量;
根据输入n1比特变量和输出比特变量,对第i个组件函数的单个操作进行形式化描述;
将n2个1比特变量与第i+1个组件函数进行比特置换后,依次得到对称密码中每个组件函数的形式化描述。
第二方面,本发明提供一种面向计算机的对称密码形式化描述系统,包括:
分解模块,用于将对称密码分解为多个组件函数;
级联模块,用于根据第i个组件函数中单个操作的输入比特变量,调用级联语句将第i个组件函数的输入级联为输入n1比特变量;
分解模块,用于根据第i个组件函数中单个操作的输出比特变量,调用分解语句将输出比特变量分解为n2个1比特变量;
描述模块,用于根据输入n1比特变量和输出比特变量,对第i个组件函数的单个操作进行形式化描述;
迭代描述模块,用于将n2个1比特变量与第i+1个组件函数进行比特置换后,依次得到对称密码中每个组件函数的形式化描述。
第三方面,本发明提供一种电子设备,包括存储器和处理器以及存储在存储器上并在处理器上运行的计算机指令,所述计算机指令被处理器运行时,完成第一方面所述的方法。
第四方面,本发明提供一种计算机可读存储介质,用于存储计算机指令,所述计算机指令被处理器执行时,完成第一方面所述的方法。
与现有技术相比,本发明的有益效果为:
本发明提供一种面向计算机的形式化描述对称密码算法的方法,提高使用计算机辅助分析对称密码的算法安全性和适用性,解决手动分析对称密码算法实现效率低的问题。
本发明方法兼容对称密码算法的非线性操作和线性操作,可以描述目前所有常见的对称密码算法,且根据大变量和小变量间存在的级联和分解关系,本发明新增级联语句和分解语句,同时为了精准描述算法组件的性质,根据不同的描述需求,新增相匹配的描述语句,如针对S盒的代数次数,线性操作的分支数等,新增代数次为d的S盒操作描述语句和分支数为b的线性操作描述语句,本发明方法具备通用性。
本发明在组件描述之外,引入PARAMETER和ENDPAMETER字段,写入具体的S盒和矩阵的定义,通过名字被SBOX和PL描述语句引用,实现描述的连贯性。
本发明附加方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
构成本发明的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。
图1为本发明实施例1提供的面向计算机的对称密码形式化描述方法流程图;
图2为本发明实施例1提供的4轮对称密码算法示意图。
具体实施方式:
下面结合附图与实施例对本发明做进一步说明。
应该指出,以下详细说明都是示例性的,旨在对本发明提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本发明所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本发明的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
如背景中所述,现有非线性层操作中,分组密码算法使用“S盒”,S盒由一个表给出其映射规则,如表1中给出一个4比特输入4比特输出S盒的映射规则;
表1:4比特输入4比特输出S盒的映射规则表
Figure BDA0002828372350000061
对于线性操作,分组密码算法采用比特置换操作P,P一般也使用置换表来表示,如表2为一个64比特的比特置换;
表2:64比特输入64比特输出置换P规则表
Figure BDA0002828372350000062
现有的对称密码算法种类繁多,结构复杂,手动分析其安全性和实现效率极其耗时费力,但是目前还没有很好的面向计算机的形式化描述对称密码算法的方法。故本发明为了方便使用计算机处理对称密码算法,提供一种面向计算机的形式化描述对称密码算法的方法,该方法可以描述目前所有常见的对称密码算法。
实施例1
如图1所示,本实施例提供一种面向计算机的对称密码形式化描述方法,包括:
S1:将对称密码分解为多个组件函数;
S2:根据第i个组件函数中单个操作的输入比特变量,调用级联语句将第i个组件函数的输入级联为输入n1比特变量;
S3:根据第i个组件函数中单个操作的输出比特变量,调用分解语句将输出比特变量分解为n2个1比特变量;
S4:根据输入n1比特变量和输出比特变量,对第i个组件函数的单个操作进行形式化描述;
S5:将n2个1比特变量与第i+1个组件函数进行比特置换后,依次得到对称密码中每个组件函数的形式化描述。
所述步骤S1中,定义整个对称密码算法为E,则E为各个组件函数的复合:
Figure BDA0002828372350000071
其中,Oi表示各个组件函数,如非线性组件的S盒操作、模2n加操作、n比特变量的按位与操作;或线性组件的比特置换或字置换操作、矩阵乘操作等;或按位异或操作、向左移位操作、向右移位操作、向左循环移位操作、向右循环移位操作等。
在本实施例中,定义各个组件函数的输入变量和输出变量为node_i_j_k,其中i,j,k可以变化,可以理解的,也可以使用其他命名方式;node_i_j_k具有长度属性,表示其是一个多长的比特串;例如,node_i_j_k表示一个
Figure BDA0002828372350000081
中的变量,则node_i_j_k的长度为4;
变量名字和其长度成对出现,例如node_i_j_k,4;需要注意的是,对于相邻的两个操作
Figure BDA0002828372350000083
的输出变量名应该是Oi的输入变量名,也就是Oi+1→node_i_j_k→Oi,这样使用node_i_j_k变量连接Oi+1与Oi两个组件。
进一步,本实施例规定各组件Oi为各种具体函数时所需使用的描述方法;如,当Oi是一个S盒时,
Figure BDA0002828372350000082
时,使用式(1)的语句描述S:
SBOX(node_0_0_0,n,node_0_0_1,m,$sbox) (1)
其中,node_0_0_0,n是S盒操作(SBOX)的输入变量,node_0_0_1,m是输出变量。
在实际的算法中,这两个变量名需要根据需要变化,$sboxname是一个字符串,表示S盒操作(SBOX)使用的具体S盒;而S盒的定义应单独放在描述文件的头部,即(PARAMETER,ENDPARAMETER)字段内。
当Oi是一个模2n加操作时,使用式(2)的语句描述该模加操作:
MODADD(node_0_0_0,n,node_0_0_1,n,node_0_0_2,n) (2)
这个描述表示为:
node_0_0_2=node_0_0_0+node_0_0_1 mod 2n
显然,node_0_0_0,node_0_0_1,node_0_0_2长度必须是相同的。
当Oi是一个n比特变量的按位与操作时,使用式(3)的语句描述该按位与操作:
ADD(node_0_0_0,n,node_0_0_1,n,node_0_0_2,n) (3)
这个描述表示为:
node_0_0_2[i]=node_0_0_0[i]&node_0_0_1[i],0≤i<n
显然,node_0_0_0,node_0_0_1,node_0_0_2长度必须是相同的。
当Oi是一个比特置换或者字置换操作时,输入的某些比特或者字将和输出的某些比特或字相等,为了描述这种相等关系,使用式(3)的语句进行表示:
EQ(node_0_0_0,n,node_0_0_1,n) (4)
这个描述表示为:
node_0_0_1=node_0_0_0
显然,node_0_0_0和node_0_0_1长度必须是相同的;如果是比特置换时,n=1;如果是字的置换时,n是该字的长度。
当Oi是一个矩阵乘操作时,n比特的输入被一个矩阵
Figure BDA0002828372350000091
乘得到m比特的输出,使用式(5)的语句:
PL(node_0_0_0,n,node_0_0_1,m,$matrix) (5)
这个描述表示为:
node_0_0_1=matrix·node_0_0_1
当Oi是一个按位异或操作时,使用式(6)的语句:
XOR(node_0_0_0,n,node_0_0_1,n,node_0_0_2) (6)
这个描述表示为:
Figure BDA0002828372350000101
显然,node_0_0_0,node_0_0_1,node_0_0_2具有相同的长度。
当Oi是一个向左移位操作时,使用式(7)的语句:
LS(node_0_0_0,n,node_0_0_1,n,m) (7)
这个描述表示为:
node_0_0_1=node_0_0_0<<m
为了保证移位的有效性,本实施例保证m<n;在移位之后,node_0_0_1的低m比特为0。
当Oi是一个向右移位操作时,使用式(8)的语句:
RS(node_0_0_0,n,node_0_0_1,n,m) (8)
这个描述表示为:
node_0_0_1=node_0_0_0>>m
为了保证移位的有效性,本实施例保证m<n;在移位之后,node_0_0_1的高m比特为0。
当Oi是一个向左循环移位操作时,使用式(9)的语句:
RLS(node_0_0_0,n,node_0_0_1,n,m) (9)
这个描述表示为:
node_0_0_1=node_0_0_0<<<m
为了保证循环移位的有效性,本实施例保证m<n。
当Oi是一个向右循环移位操作时,使用式(10)的语句:
RRS(node_0_0_0,n,node_0_0_1,n,m) (10)
这个描述表示为:
node_0_0_1=node_0_0_0>>>m
为了保证循环移位的有效性,本实施例保证m<n。
由于有时需要将多个小的变量级联成一个大的变量,有时又需要将一个大的变量分解为许多小的变量,所以本实施例引入级联和分解操作。
当Oi是一个级联操作时,使用式(11)的语句:
CASCADE(n,node_0_0_0,n0,node_0_0_1,n1,…,node_0_0_n,m) (11)
这个描述表示为:
node_0_0_n=node_0_0_0||node_0_0_1||…||node_0_0_n-1;
因为是级联操作,所以级联之后的变量长度应该为参与级联操作的各变量的长度之和,也就是:m=n0+n1+…+nn-1
当Oi是一个分解操作时,使用式(12)的语句:
DECOMPOSE(node_0_0_0,m,n,node_0_0_1,n1,…,node_0_0_n,n_n) (12)
这个描述表示为:
node_0_0_0=node_0_0_1||node_0_0_2||…||node_0_0_n;
因为是分解操作,所以分解之前的变量的长度应该为分解之后变量的长度之和,也就是:m=n1+n2+…+nn
在更多实施例中,本实施例不希望刻画精确的算法组件,而只需要刻画组件的一些性质,例如S盒的代数次数,线性操作的分支数等信息,所以本实施例额外引入两个语句;具体地:
当Oi是一个代数次为d的S盒操作,并且只刻画代数次数时,使用式(13)的语句:
INTSBOX(node_0_0_0,n,node_0_0_1,m,d) (13)
这个描述表示为:
node_0_0_1=[node_0_0_0/d]
其中,node_0_0_0和node_0_0_1是表示该S盒输入和输出的变量代数次数的整数,分别可以被n和m比特的向量表示。
当Oi是一个分支数为b的线性操作时,只刻画分支数,使用式(14)的语句;
BRANCHNUM(b,n,node_0_0_0,l,…,node_0_0_n-1,l,m,node_0_1_0,l,…,node_0_1_m-1,1)
(14)
这个描述表示node_0_0_0到node_0_1_m-1这个n+m变量中,要么全不活跃,要么活跃的变量的个数至少为b个。
语句(1)-(14)足够描述绝大多数的对称密码算法,本实施例中根据各组件函数中操作类型选择相匹配的描述方法进行形式化描述。
语句(1)和(5)中SBOX和PL操作需要具体的S盒和矩阵的表达式,由于S盒和矩阵的表达式占据一定的篇幅,为了描述的连贯性,本实施例在组件描述之外,引入一个PARAMETER和ENDPAMETER字段,写入具体的S盒和矩阵的定义,通过名字被SBOX和PL描述语句引用。
如图2所示,对称密码算法E由4轮的迭代构成,每一轮的函数都由4个同样的输入是4比特、输出是4比特的S盒组成,S盒是:
[0xC,0x6,0x9,0x0,0x1,0xA,0x2,0xB,0x3,0x8,0x5,0xD,0x4,0xE,0x7,0xF],
在S盒之后是一个比特置换的线性层,为了描述E,首先给出S盒的相信信息和各个组件指定输入输出变量;
(1)在PARAMETER字段给出S盒的定义,
PARAMETER
sbox=[0xC,0x6,0x9,0x0,0x1,0xA,0x2,0xB,0x3,0x8,0x5,0xD,0x4,0xE,0x7,0xF]
ENDPARAMETER
sbox作为一个名字,在SBOX描述中可以通过$sbox引用。
(2)如步骤S2中,对于第i轮的从左到右第j个S盒的4比特输入,指定其输入变量为:
node_i_0_4×j node_i_0_4×j+1 node_i_0_4×j+2 node_i_0_4×j+3
由于SBOX语句的输入是4比特,所以首先使用式(11)中的级联语句将输入级联成一个4比特的变量node_i_1_j,即:
CASCADE(4,node_i_0_4×j,1,node_i_0_4×j+1,1,node_i_0_4×j+2,1,\node_i_0_4×j+3,1,node_i_1_j,4)
其中,“\”表示换行。
如步骤S3中,对于第i轮的第j个S盒的4比特输出,依次指定其输出变量为:node_i_3_4×j node_i_3_4×j+1 node_i_3_4×j+2 node_i_3_4×j+3
由于SBOX语句的直接输出是4比特,记为node_i_2_j,所以首先使用式(12)中的分解语句将这个直接输出分解成4个1比特的变量,即:
DECOMPOSE(node_i_2_j,4,4,node_i_3_4×j,1,node_i_3_4×j+1,1,node_i_3_4×j+2,1,node_i_0_4×j+3,1)
继而,使用式(1)中的语句描述第i轮的第j个S盒,即:
SBOX(node_i_1_j,4,node_i_2_j,4,$sbox)
(3)如步骤S5中,第i轮S盒的输出是第i轮比特置换的输入,使用式(4)中EQ语句进行描述;比特置换的第1个输入比特传播到输出的第1个比特,而输出的比特就是第i+1轮的输入比特,故采用:
EQ(node_i_3_0,1,node_i+1_0_0,1)
而比特置换的第2个输入比特传播到输出的第5个比特,所以语句为:
EQ(node_i_3_1,1,node_i+1_0_4,1)
依次类推,得到其他的输入和输出的关系。
(4)对每一轮进行描述,得到E的形式化描述。
实施例2
本实施例提供一种面向计算机的对称密码形式化描述系统,包括:
分解模块,用于将对称密码分解为多个组件函数;
级联模块,用于根据第i个组件函数中单个操作的输入比特变量,调用级联语句将第i个组件函数的输入级联为输入n1比特变量;
分解模块,用于根据第i个组件函数中单个操作的输出比特变量,调用分解语句将输出比特变量分解为n2个1比特变量;
描述模块,用于根据输入n1比特变量和输出比特变量,对第i个组件函数的单个操作进行形式化描述;
迭代描述模块,用于将n2个1比特变量与第i+1个组件函数进行比特置换后,依次得到对称密码中每个组件函数的形式化描述。
此处需要说明的是,上述模块对应于实施例1中的步骤S1至S5,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为系统的一部分可以在诸如一组计算机可执行指令的计算机系统中执行。
在更多实施例中,还提供:
一种电子设备,包括存储器和处理器以及存储在存储器上并在处理器上运行的计算机指令,所述计算机指令被处理器运行时,完成实施例1中所述的方法。为了简洁,在此不再赘述。
应理解,本实施例中,处理器可以是中央处理单元CPU,处理器还可以是其他通用处理器、数字信号处理器DSP、专用集成电路ASIC,现成可编程门阵列FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据、存储器的一部分还可以包括非易失性随机存储器。例如,存储器还可以存储设备类型的信息。
一种计算机可读存储介质,用于存储计算机指令,所述计算机指令被处理器执行时,完成实施例1中所述的方法。
实施例1中的方法可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器、闪存、只读存储器、可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
本领域普通技术人员可以意识到,结合本实施例描述的各示例的单元即算法步骤,能够以电子硬件或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。

Claims (10)

1.一种面向计算机的对称密码形式化描述方法,其特征在于,包括:
将对称密码分解为多个组件函数;
根据第i个组件函数中单个操作的输入比特变量,调用级联语句将第i个组件函数的输入级联为输入n1比特变量;
根据第i个组件函数中单个操作的输出比特变量,调用分解语句将输出比特变量分解为n2个1比特变量;
根据输入n1比特变量和输出比特变量,对第i个组件函数的单个操作进行形式化描述;
将n2个1比特变量与第i+1个组件函数进行比特置换后,依次得到对称密码中每个组件函数的形式化描述。
2.如权利要求1所述的一种面向计算机的对称密码形式化描述方法,其特征在于,第i个组件函数的输出是第i轮比特置换的输入,第i轮比特置换的第i个输入比特是第1+n2*(i-1)个的输出比特,即第i+1轮的输入比特。
3.如权利要求1所述的一种面向计算机的对称密码形式化描述方法,其特征在于,所述n2个1比特变量与第i+1个组件函数的比特置换还包括字的置换或矩阵乘操作的线性操作。
4.如权利要求1所述的一种面向计算机的对称密码形式化描述方法,其特征在于,所述级联语句为:
CASCADE(n,node_0_0_0,n0,node_0_0_1,n1,…,node_0_0_n,m),
所述输入n1比特变量为:
node_0_0_n=node_0_0_0||node_0_0_1||…||node_0_0_n-1。
5.如权利要求1所述的一种面向计算机的对称密码形式化描述方法,其特征在于,所述分解语句为:
DECOMPOSE(node_0_0_0,m,n,node_0_0_1,n1,…,node_0_0_n,n,
所述1比特变量为:
node_0_0_0=node_0_0_1||node_0_0_2||…||node_0_0_n。
6.如权利要求1所述的一种面向计算机的对称密码形式化描述方法,其特征在于,所述操作的类型包括非线性操作,所述非线性操作包括代数次为d的S盒操作时,形式化描述语句为:
INTSBOX(node_0_0_0,n,node_0_0_1,m,d)
所述非线性操作表示为:
Figure FDA0002828372340000021
其中,node_0_0_0和node_0_0_1是表示S盒输入变量和输出变量代数次数的整数,分别被n比特变量和m比特变量表示。
7.如权利要求1所述的一种面向计算机的对称密码形式化描述方法,其特征在于,所述操作的类型包括线性操作,所述线性操作包括分支数为b的线性操作时,形式化描述语句为:
BRANCHNUM(b,n,node_0_0_0,l,…,node_0_0_n-1,l,m,node_0_1_0,l,…,node_0_1_m-1,l)
表示node_0_0_0到node_0_1_m-1的n+m比特变量中,活跃的比特变量的个数至少为b个或全不活跃。
8.一种面向计算机的对称密码形式化描述系统,其特征在于,包括:
分解模块,用于将对称密码分解为多个组件函数;
级联模块,用于根据第i个组件函数中单个操作的输入比特变量,调用级联语句将第i个组件函数的输入级联为输入n1比特变量;
分解模块,用于根据第i个组件函数中单个操作的输出比特变量,调用分解语句将输出比特变量分解为n2个1比特变量;
描述模块,用于根据输入n1比特变量和输出比特变量,对第i个组件函数的单个操作进行形式化描述;
迭代描述模块,用于将n2个1比特变量与第i+1个组件函数进行比特置换后,依次得到对称密码中每个组件函数的形式化描述。
9.一种电子设备,其特征在于,包括存储器和处理器以及存储在存储器上并在处理器上运行的计算机指令,所述计算机指令被处理器运行时,完成权利要求1-7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,用于存储计算机指令,所述计算机指令被处理器执行时,完成权利要求1-7任一项所述的方法。
CN202011435351.7A 2020-12-10 2020-12-10 一种面向计算机的对称密码形式化描述方法及系统 Active CN112667994B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011435351.7A CN112667994B (zh) 2020-12-10 2020-12-10 一种面向计算机的对称密码形式化描述方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011435351.7A CN112667994B (zh) 2020-12-10 2020-12-10 一种面向计算机的对称密码形式化描述方法及系统

Publications (2)

Publication Number Publication Date
CN112667994A true CN112667994A (zh) 2021-04-16
CN112667994B CN112667994B (zh) 2023-01-20

Family

ID=75401770

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011435351.7A Active CN112667994B (zh) 2020-12-10 2020-12-10 一种面向计算机的对称密码形式化描述方法及系统

Country Status (1)

Country Link
CN (1) CN112667994B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114117416A (zh) * 2021-09-16 2022-03-01 山东大学 基于sat的对称密码自动化分析平台可视化方法及系统

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1120933A2 (en) * 2000-01-26 2001-08-01 Fujitsu Limited A method and apparatus for designing cipher logic, and a computer product
US20070110232A1 (en) * 2005-11-15 2007-05-17 Koichiro Akiyama Encryption apparatus, decryption apparatus, and method
WO2008026622A1 (en) * 2006-09-01 2008-03-06 Sony Corporation Encryption device, encryption method, and computer program
US20100125728A1 (en) * 2008-11-17 2010-05-20 Shay Gueron Method of implementing one way hash functions and apparatus therefor
US20100220853A1 (en) * 2009-02-27 2010-09-02 Red Hat, Inc. Method and Apparatus for Compound Hashing Via Iteration
CA2695255A1 (en) * 2010-02-26 2011-08-26 Research In Motion Limited Variable table masking for cryptographic processes
CA2754370A1 (en) * 2011-10-07 2013-04-07 Revere Security Corporation Method and device for data encryption and decryption
CN109150833A (zh) * 2018-07-19 2019-01-04 华东交通大学 一种基于模型检测的安全协议形式化验证方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1120933A2 (en) * 2000-01-26 2001-08-01 Fujitsu Limited A method and apparatus for designing cipher logic, and a computer product
US20070110232A1 (en) * 2005-11-15 2007-05-17 Koichiro Akiyama Encryption apparatus, decryption apparatus, and method
WO2008026622A1 (en) * 2006-09-01 2008-03-06 Sony Corporation Encryption device, encryption method, and computer program
US20100125728A1 (en) * 2008-11-17 2010-05-20 Shay Gueron Method of implementing one way hash functions and apparatus therefor
US20100220853A1 (en) * 2009-02-27 2010-09-02 Red Hat, Inc. Method and Apparatus for Compound Hashing Via Iteration
CA2695255A1 (en) * 2010-02-26 2011-08-26 Research In Motion Limited Variable table masking for cryptographic processes
CA2754370A1 (en) * 2011-10-07 2013-04-07 Revere Security Corporation Method and device for data encryption and decryption
CN109150833A (zh) * 2018-07-19 2019-01-04 华东交通大学 一种基于模型检测的安全协议形式化验证方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
丁林: "基于NLFSR的序列密码算法的分析方法研究", 《中国博士学位论文全文数据库 信息科技辑》 *
雷新锋: "计算可靠的密码协议形式化分析综述", 《计算机学报》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114117416A (zh) * 2021-09-16 2022-03-01 山东大学 基于sat的对称密码自动化分析平台可视化方法及系统
CN114117416B (zh) * 2021-09-16 2024-04-12 山东大学 基于sat的对称密码自动化分析平台可视化方法及系统

Also Published As

Publication number Publication date
CN112667994B (zh) 2023-01-20

Similar Documents

Publication Publication Date Title
Andem A cryptanalysis of the tiny encryption algorithm
Biryukov et al. Block ciphers and systems of quadratic equations
US8787563B2 (en) Data converter, data conversion method and program
Journault et al. Improving the security and efficiency of block ciphers based on LS-designs
Lu A methodology for differential-linear cryptanalysis and its applications
JP2001324924A (ja) 暗号化装置及び暗号化方法、復号装置及び復号方法並びに演算装置
Wu et al. LHash: A lightweight hash function
Küçük The hash function Hamsi
Jeong et al. Weakness of lightweight block ciphers mCrypton and LED against biclique cryptanalysis
Sajadieh et al. Efficient recursive diffusion layers for block ciphers and hash functions
Elgeldawi et al. A comparative analysis of symmetric algorithms in cloud computing: a survey
Panchami et al. A substitution box for lightweight ciphers to secure internet of things
CN112667994B (zh) 一种面向计算机的对称密码形式化描述方法及系统
JP6052166B2 (ja) 暗号化方法、暗号化装置および暗号化プログラム
US20150163051A1 (en) Encryption device, encryption method and program
Biryukov et al. The secret structure of the S-box of Streebog, Kuznechik and Stribob
CN109033847B (zh) Aes加密运算单元、aes加密电路及其加密方法
CN109033893B (zh) 基于合成矩阵的aes加密单元、aes加密电路及其加密方法
Algazy et al. Differential cryptanalysis of new Qamal encryption algorithm
Lu et al. The higher-order meet-in-the-middle attack and its application to the Camellia block cipher
Abdulwahed Chaos-Based Advanced Encryption Standard
CN113691364A (zh) 一种基于位片技术的动态s盒分组密码的加密及解密方法
CN112287333A (zh) 一种轻量级可调分组密码实现方法、系统、电子设备以及可读存储介质
De Canniere et al. Hash function Luffa: specification
Lu et al. A key selected s-box mechanism and its investigation in modern block cipher design

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