公开/公告号CN115664637A
专利类型发明专利
公开/公告日2023-01-31
原文格式PDF
申请/专利权人 中国人民解放军国防科技大学;
申请/专利号CN202211313869.2
申请日2022-10-25
分类号H04L9/06;H04L9/00;
代理机构北京超凡宏宇专利代理事务所(特殊普通合伙);
代理人梁韬
地址 410000 湖南省长沙市开福区福园路1号
入库时间 2023-06-19 18:29:06
法律状态公告日
法律状态信息
法律状态
2023-01-31
公开
发明专利申请公布
技术领域
本申请涉及信息安全领域,尤其涉及一种分组密码算法的结构动态可调的方法、装置、设备及介质。
背景技术
数据加密技术是网络安全的基石,其是以加密算法为载体进行具体实现。分组密码具有速度快、易于标准化和便于软硬件实现等特点,通常是信息与网络安全中实现数据加密的核心体制之一。
目前,密码算法大多是迭代型密码算法,且每轮的轮函数几乎一样,这类算法在实际场景应用中的算法初始化过程中,严重地限制了算法的使用。
分组密码算法的设计是建立在具备优良密码学性质的密码组件上进行设计的,例如具备最优差分均匀度、线性度的S盒,最优差分分支数、线性分支数的线性层等多项密码学指标。设计过程较为繁琐,且不易扩展到新的密码算法。也就是说,如果将密码部件应用于新密码算法设计时,仍然需要重新评估算法整体的安全性。
发明内容
为了解决上述技术问题,本申请实施例提供了一种分组密码算法的结构动态可调的方法。
第一方面,本申请实施例提供了一种分组密码算法的结构动态可调的方法,所述方法包括:
输入主密钥、主控制参数和待加密明文,其中,待加密明文长度为128比特,主密钥长度为256比特,主控制参数长度为256比特;
迭代执行32轮利用所述主密钥和所述主控制参数对所述待加密明文进行迭代加密操作,直至获取128比特的密文;
其中,利用所述主密钥和所述主控制参数对所述待加密明文进行加密操作的步骤,包括:
根据所述256比特的主密钥获取各轮的64比特的轮密钥,并根据所述256比特的主控制参数获取各轮的68比特的轮函数控制参数,其中,所述68比特的轮函数控制参数包括64比特的S盒控制参数和4比特的P盒控制参数;
根据各轮的轮函数对所述128比特的待加密明文进行运算。
根据本申请公开的一种具体实施方式,所述迭代执行32轮利用所述主密钥和所述主控制参数对所述待加密明文进行迭代加密操作,直至获取128比特的密文的步骤,包括:
将所述256比特的主密钥分为8个32比特的密钥,提取所述256比特的主密钥的第一个32比特的密钥和第五个32比特的密钥作为第1轮的64比特的轮密钥;
将所述256比特主密钥执行密钥扩展算法,至获取第2~32轮的64比特的轮密钥。
根据本申请公开的一种具体实施方式,所述迭代执行32轮利用所述主密钥和所述主控制参数对所述待加密明文进行迭代加密操作,直至获取128比特的密文的步骤,包括:
将所述256比特的主控制参数经过参数扩展算法获取第1~32轮的S盒控制参数;
将所述256比特的主控制参数分为8个32比特,将第四个32比特的主控制参数和第八个32比特的主控制参数作为第1轮的64比特的S盒控制参数;
根据S盒参数扩展算法获得第2~32轮的S盒控制参数。
根据本申请公开的一种具体实施方式,所述根据S盒参数扩展算法获得第2~32轮的S盒控制参数的步骤后,还包括:
将所述第1轮的64比特的S盒控制参数分为16个4比特,依次作为第1~16轮的4比特的P盒控制参数;
将所述第1轮的64比特的S盒控制参数执行P盒参数扩展算法,依次作为第17~32轮的P盒控制参数。
根据本申请公开的一种具体实施方式,所述迭代执行32轮利用所述主密钥和所述主控制参数对所述待加密明文进行迭代加密操作,直至获取128比特的密文的步骤,包括:
将所述128比特的明文作为第1轮的128比特输入变量;
将所述第1轮的128比特输入变量、第1轮的64比特的轮密钥以及第1轮的64比特的轮函数控制参数执行第一轮的轮函数,得到第2轮的128比特输入变量。
根据本申请公开的一种具体实施方式,所述将所述第1轮的128比特输入变量、第1轮的64比特的轮密钥以及第1轮的64比特的轮函数控制参数执行第一轮的轮函数,得到第2轮的128比特输入变量的步骤,包括:
所述轮函数所使用的动态组件包括动态混淆层和动态扩散层。
根据本申请公开的一种具体实施方式,所述根据各轮的轮函数控制参数对所述128比特的待加密明文进行运算的步骤,包括:
第32轮的轮函数不执行左分支和右分支的交换操作。
第二方面,本申请实施例提供了一种分组密码算法的结构动态可调的装置,包括:
输入模块,用于输入主密钥、主控制参数和待加密明文,其中,待加密明文长度为128比特,主密钥长度为256比特,主控制参数长度为256比特;
迭代模块,用于迭代执行32轮利用所述主密钥和所述主控制参数对所述待加密明文进行迭代加密操作,直至获取128比特的密文;其中,利用所述主密钥和所述主控制参数对所述待加密明文进行加密操作的步骤,包括:
根据所述256比特的主密钥获取各轮的64比特的轮密钥,并根据所述256比特的主控制参数获取各轮的68比特的轮函数控制参数,其中,所述68比特的轮函数控制参数包括64比特的S盒控制参数和4比特的P盒控制参数;根据各轮的轮函数对所述128比特的待加密明文进行运算。
第三方面,本申请实施例提供了一种电子设备,包括存储器以及处理器,所述存储器用于存储计算机程序,所述计算机程序在所述处理器运行时执行第一方面提供的分组密码算法的结构动态可调的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,其存储有计算机程序,所述计算机程序在处理器上运行时执行第一方面提供的分组密码算法的结构动态可调的方法。
上述本申请提供的一种分组密码算法的结构动态可调的方法,输入主密钥、主控制参数和待加密明文,其中,待加密明文长度为128比特,主密钥长度为256比特,主控制参数长度为256比特;迭代执行32轮利用所述主密钥和所述主控制参数对所述待加密明文进行迭代加密操作,直至获取128比特的密文;其中,利用所述主密钥和所述主控制参数对所述待加密明文进行加密操作的步骤,包括:根据所述256比特的主密钥获取各轮的64比特的轮密钥,并根据所述256比特的主控制参数获取各轮的68比特的轮函数控制参数,其中,所述68比特的轮函数控制参数包括64比特的S盒控制参数和4比特的P盒控制参数;根据各轮的轮函数对所述128比特的待加密明文进行运算。通过添加参数调控的方式,使得密码算法结构动态可调,可以通过调整参数生成不同结构的轮函数,同时保证算法对差分攻击的抵抗能力,提高了算法的可调性和安全性。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对本申请保护范围的限定。在各个附图中,类似的构成部分采用类似的编号。
图1示出了本申请实施例提供的一种分组密码算法的结构动态可调的方法的流程示意图;
图2示出了本申请实施例提供的一种分组密码算法的结构动态可调的方法的加密流程示意图;
图3示出了本申请实施例提供的一种分组密码算法的结构动态可调的方法的轮函数结构示意图;
图4示出了本申请实施例提供的一种分组密码算法的结构动态可调的装置结构示意图。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。
通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
在下文中,可在本申请的各种实施例中使用的术语“包括”、“具有”及其同源词仅意在表示特定特征、数字、步骤、操作、元件、组件或前述项的组合,并且不应被理解为首先排除一个或更多个其它特征、数字、步骤、操作、元件、组件或前述项的组合的存在或增加一个或更多个特征、数字、步骤、操作、元件、组件或前述项的组合的可能性。
此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
除非另有限定,否则在这里使用的所有术语(包括技术术语和科学术语)具有与本申请的各种实施例所属领域普通技术人员通常理解的含义相同的含义。所述术语(诸如在一般使用的词典中限定的术语)将被解释为具有与在相关技术领域中的语境含义相同的含义并且将不被解释为具有理想化的含义或过于正式的含义,除非在本申请的各种实施例中被清楚地限定。
实施例1
本公开实施例提供了一种分组密码算法的结构动态可调的方法。
具体的,参见图1,分组密码算法的结构动态可调的方法包括:
步骤S101:输入主密钥、主控制参数和待加密明文,其中,待加密明文长度为128比特,主密钥长度为256比特,主控制参数长度为256比特;
具体地,通过控制参数对每轮所使用的轮函数进行结构动态调整。所述主密钥是指256比特初始密钥,利用密钥扩展算法获得每轮的轮密钥,进而执行轮函数操作。所述主控制参数用于获取轮函数的控制参数。通过添加参数调控的方式,生成不同结构的轮函数,使得分组加密过程中结构动态可调,同时,保证加密过程中对差分攻击的抵抗能力,且动态可调算法加解密过程一致,结构动态可调,增加了安全性。
具体地,输入主密钥、主控制参数和待加密明文,基于所述主密钥通过密钥参数扩展算法获取每轮的轮密钥,利用所述主控制参数经过参数扩展算法获取第1轮的轮函数的控制参数,对所述待加密明文迭代加密32次最终输出加密后的128比特的密文信息。
DSTP动态加密算法是一个迭代型分组密码算法,基于广义Feistel结构,每轮所使用的轮函数是由密钥加层、动态混淆层和动态扩散层构成。每轮参与轮函数运算的轮密钥和控制参数分别由密钥扩展算法、参数扩展算法生成。
步骤S102:迭代执行32轮利用所述主密钥和所述主控制参数对所述待加密明文进行迭代加密操作,直至获取128比特的密文;
其中,利用所述主密钥和所述主控制参数对所述待加密明文进行加密操作的步骤,包括:
根据所述256比特的主密钥获取各轮的64比特的轮密钥,并根据所述256比特的主控制参数获取各轮的68比特的轮函数控制参数,其中,所述68比特的轮函数控制参数包括64比特的S盒控制参数和4比特的P盒控制参数;
根据各轮的轮函数对所述128比特的待加密明文进行运算。
在一实施方式中,所述迭代执行32轮利用所述主密钥和所述主控制参数对所述待加密明文进行迭代加密操作,直至获取128比特的密文的步骤,包括:
将所述256比特的主密钥分为8个32比特的密钥,提取所述256比特的主密钥的第一个32比特的密钥和第五个32比特的密钥作为第1轮的64比特的轮密钥;
将所述256比特的主密钥执行密钥扩展算法,至获取第2~32轮的64比特的轮密钥。
具体地,参见图2,将所述256比特主密钥存储在一个密钥寄存器MK中,表示为8个32比特,即MK=K
进一步地,将所述存储在密钥寄存器中的256比特的主密钥分为8个32比特的密钥,即MK=K
具体实施时,所述迭代执行32轮利用所述主密钥和所述主控制参数对所述待加密明文进行迭代加密操作,直至获取128比特的密文的步骤,包括:
将所述256比特的主控制参数经过参数扩展算法获取第1~32轮的S盒控制参数;
将所述256比特主控制参数分为8个32比特,将第四个32比特的主控制参数和第八个32比特的主控制参数作为第1轮的64比特的S盒控制参数;
根据S盒参数扩展算法获得第2~32轮的S盒控制参数。
所述主控制参数存储在参数寄存器中,表示为8个32位的控制参数。参数寄存器先执行参数扩展算法,再提取第i轮的68比特轮函数控制参数,其中1≤i≤32。所述参数扩展算法包括S盒参数扩展算法、P盒参数扩展算法。所述S盒指动态扩散层,所述P盒是指动态混淆层,所述S盒参数扩展算法是指应用于动态扩散层的控制参数的一种扩展算法,所述P盒参数扩展算法是指应用于动态混淆层的控制参数的一种扩展算法。
具体实施时,所述根据S盒参数扩展算法获得第2~32轮的S盒控制参数的步骤后,还包括:
将所述第1轮的64比特S盒控制参数分为16个4比特,依次作为第1~16轮的4比特P盒控制参数;
将所述第1轮的64比特S盒控制参数执行P盒参数扩展算法,依次作为第17~32轮的P盒控制参数。
具体地,将256比特的主控制参数存储在参数寄存器MT中,表示为8个32比特的控制参数,即MT=T
将所述第1轮的64比特S盒控制参数T
所述P盒扩展算法包括:
具体实施时,所述迭代执行32轮利用所述主密钥和所述主控制参数对所述待加密明文进行迭代加密操作,直至获取128比特的密文的步骤,包括:
将所述128比特的明文作为第1轮的128比特输入变量;
将所述第1轮的128比特输入变量、第1轮的64比特轮密钥以及第1轮的64比特轮控制参数执行所述第一轮的轮函数,得到第2轮的128比特输入变量。
具体地,所述128比特的待加密明文分为2个64比特的信息进行轮函数的更新加密。
具体地,参见图3,第i轮的轮函数的动态混淆层和动态扩散层分别由该轮对应的S盒控制参数和P盒控制参数所确定。其中,L指迭代过程中的左分支,R指迭代过程中的右分支,K指每轮的轮密钥,F指每轮的轮函数。
在一具体实施方式中,所述根据各轮的轮函数控制参数对所述128比特的待加密明文进行运算的步骤,包括:
第32轮的轮函数不执行左分支和右分支的交换操作。
具体地,为了确保DSTP算法的加解密一致性,第32轮的轮函数不包含执行左分支和右分支的交换操作,即F函数的输出信息与右分支执行异或后的输出信息作为右分支的输出信息R
具体地,将所述128比特的待加密明文分为两个64比特的明文信息,分别表示为L
R
第i轮左分支的64比特输入信息L
具体实施时,所述将所述第1轮的128比特输入变量、第1轮的64比特轮密钥以及第1轮的64比特轮控制参数执行所述第一轮的轮函数,得到第2轮的128比特输入变量的步骤,包括:
所述轮函数所使用的动态组件包括动态混淆层和动态扩散层。
具体地,X作为动态混淆层的输入信息,将其表示为8个字节的形式,即X=x
其中8个8比特动态S盒中所需要的64比特控制参数是由所述参数扩展算法生成的。对于动态S盒的输入输出变量的计算实例为:当t
表1 AES算法中的S盒
进一步地,对动态混淆层的密码学性质进行评估:遍历可调参数c
表2 256个S盒的差分均匀度分布
参见表2,256个S盒的差分均匀度最大值是22,且只有2个S盒能够达到这个最大差分均匀度,即常数t
表3 8比特S盒
具体地,动态扩散层P是由线性变换操作和列混淆操作构成。首先输入状态的8个字节执行基于字节的线性变换操作,然后利用AES算法的列混合矩阵左乘状态矩阵的每列。
进一步地,对动态扩散层进行密码学性质评估:F函数的动态扩散层P是由线性变换操作和列混淆操作构成。线性变换层不同的参数下执行不同的线性变换操作,打破了轮函数之间对称性。而列混淆操作采用的是AES算法的MDS矩阵,差分分支数、线性分支数均为5,具备良好的扩散性质。
具体地,将L
具体地,将所述256比特主密钥根据密钥扩展算法获得第1~32轮的64比特轮密钥。所述256比特主控制参数根据参数扩展算法获得第1~32轮的64比特S盒控制参数和4比特P盒控制参数。将128比特明文信息以及第1~32轮的轮密钥、控制参数执行32轮的迭代加密操作,最后第32轮输出的128比特信息即为加密得到的密文信息。
进一步地,评估DSTP动态可调算法抗差分攻击的能力。通常利用差分活跃S盒的最小数目来评估密码算法的抗差分的安全性证明。利用自动化搜索工具构造差分特征的搜索模型,固定一些可调参数,搜索DSTP动态可调算法的最小差分活跃S盒数目,结果显示第11轮的最小活跃S盒数目是20个,由此22轮的最小活跃S盒最少有40个。此时,根据宽轨迹策略可知,只要S盒的最大差分概率不小于2
本申请提供的一种分组密码算法的结构动态可调的方法,包括:输入主密钥、主控制参数和待加密明文,其中,待加密明文长度为128比特,主密钥长度为256比特,主控制参数长度为256比特;迭代执行32轮利用所述主密钥和所述主控制参数对所述待加密明文进行迭代加密操作,直至获取128比特的密文;其中,利用所述主密钥和所述主控制参数对所述待加密明文进行加密操作的步骤,包括:根据所述256比特的主密钥获取各轮的64比特的轮密钥,并根据所述256比特的主控制参数获取各轮的68比特的轮函数控制参数,其中,所述68比特的轮函数控制参数包括64比特的S盒控制参数和4比特的P盒控制参数;根据各轮的轮函数对所述128比特的待加密明文进行运算。通过添加参数调控的方式,使得密码算法结构动态可调,可以通过调整参数生成不同结构的轮函数,同时保证算法对差分攻击的抵抗能力,提高了算法的可调性和安全性。通过添加参数调控的方式,使得密码算法结构动态可调,可以通过调整参数生成不同结构的轮函数,同时保证算法对差分攻击的抵抗能力,提高了算法的可调性和安全性。
实施例2
此外,本公开实施例提供了一种分组密码算法的结构动态可调的装置。
具体的,如图4所示,分组密码算法的结构动态可调的装置400包括:
输入模块401,用于输入主密钥、主控制参数和待加密明文,其中,待加密明文长度为128比特,主密钥长度为256比特,主控制参数长度为256比特;
迭代模块402,用于迭代执行32轮利用所述主密钥和所述主控制参数对所述待加密明文进行迭代加密操作,直至获取128比特的密文;其中,利用所述主密钥和所述主控制参数对所述待加密明文进行加密操作的步骤,包括:
根据所述256比特的主密钥获取各轮的64比特轮密钥,并根据所述256比特的主控制参数获取各轮的68比特轮函数控制参数,其中,所述轮密钥为64比特,所述68比特轮函数控制参数包括64比特S盒控制参数和4比特P盒控制参数;根据各轮的轮函数对所述128比特的待加密明文进行运算。
本实施例提供的分组密码算法的结构动态可调的装置400可以实施例1所示的分组密码调节方法,为避免重复,在此不再赘述。
上述本申请提供的一种分组密码算法的结构动态可调的装置,输入主密钥、主控制参数和待加密明文,其中,待加密明文长度为128比特,主密钥长度为256比特,主控制参数长度为256比特;迭代执行32轮利用所述主密钥和所述主控制参数对所述待加密明文进行迭代加密操作,直至获取128比特的密文;其中,利用所述主密钥和所述主控制参数对所述待加密明文进行加密操作的步骤,包括:根据所述256比特的主密钥获取各轮的64比特的轮密钥,并根据所述256比特的主控制参数获取各轮的68比特的轮函数控制参数,其中,所述68比特的轮函数控制参数包括64比特的S盒控制参数和4比特的P盒控制参数;根据各轮的轮函数对所述128比特的待加密明文进行运算。通过添加参数调控的方式,使得密码算法结构动态可调,可以通过调整参数生成不同结构的轮函数,同时保证算法对差分攻击的抵抗能力,提高了算法的可调性和安全性。通过添加参数调控的方式,使得密码算法结构动态可调,可以通过调整参数生成不同结构的轮函数,同时保证算法对差分攻击的抵抗能力,提高了算法的可调性和安全性。
实施例3
此外,本公开实施例提供一种电子设备,包括存储器以及处理器,所述存储器存储有计算机程序,所述计算机程序在所述处理器上运行时执行实施例1所提供的分组密码算法的结构动态可调的方法。
本发明实施例提供的电子设备,可以实现实施例1所提供的分组密码算法的结构动态可调的方法,为避免重复,在此不再赘述。
本实施例提供的电子设备,通过添加参数调控的方式,使得密码算法结构动态可调,可以通过调整参数生成不同结构的轮函数,同时保证算法对差分攻击的抵抗能力,丰富了分组密码算法结构的多样性,提高了算法的安全性。
实施例4
本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如下步骤:
在本实施例中,计算机可读存储介质可以为只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等。
本实施例提供的计算机可读存储介质可以实施实施例1所示的密码算法结构动态的调控方法,为避免重复,在此不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者终端中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。
机译: 用于在分组密码算法中使用的密钥更新的设备和方法
机译: 用于在分组密码算法中使用的密钥更新的设备和方法
机译: 用于分组密码算法中的密钥更新的设备和方法