CN107395347A - 对称密码系统代数次数评估新方法 - Google Patents

对称密码系统代数次数评估新方法 Download PDF

Info

Publication number
CN107395347A
CN107395347A CN201710659243.XA CN201710659243A CN107395347A CN 107395347 A CN107395347 A CN 107395347A CN 201710659243 A CN201710659243 A CN 201710659243A CN 107395347 A CN107395347 A CN 107395347A
Authority
CN
China
Prior art keywords
monomial
variable
module
function
array
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
CN201710659243.XA
Other languages
English (en)
Other versions
CN107395347B (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.)
Guilin University of Electronic Technology
Original Assignee
Guilin University of Electronic Technology
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 Guilin University of Electronic Technology filed Critical Guilin University of Electronic Technology
Priority to CN201710659243.XA priority Critical patent/CN107395347B/zh
Publication of CN107395347A publication Critical patent/CN107395347A/zh
Application granted granted Critical
Publication of CN107395347B publication Critical patent/CN107395347B/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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • 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/002Countermeasures against attacks on cryptographic mechanisms
    • 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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • 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/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Complex Calculations (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种对称密码系统代数次数评估新方法,利用对对称密码系统代数次数的迭代评估,扩展了一种新的对代数次数精确评估的优化算法。基于这个算法框架,提出一种寻找代数次数下界并且具体有效的算法。该算法不仅可以快速评估计算,而且可以对分析轮数进行准确评估,也是第一个用于有效精确评估对称密码系统代数次数的下界。若取值适当,不仅可以计算出布尔函数代数次数的下界,甚至可以输出布尔函数的最大项。它也可应用于密钥恢复攻击和更多的加密基元。因此,代数次数的精确评估对设计或分析对称密码系统均有十分重要的意义。

Description

对称密码系统代数次数评估新方法
技术领域
本发明涉及信息安全领域,具体是一种对称密码系统代数次数评估新方法。
背景技术
布尔函数的代数次数在密码基元的安全中扮演着十分重要的角色,例如:对称密码系统包括基于NFSR的加密系统、分组密码,流密码可以通过包含秘密变量(key bits)和公开变量(plaintext bits or IV bits)的弱密钥布尔函数表示;分组密码将输入的明文视为变量。而事实上,低代数次数的密码基元容易被许多密码分析方法进行分析。
对于现代的对称密码系统,准确计算其代数次数是非常困难的,虽然,现在有一些理论工具已经用于估计迭代置换的代数次数的上界,并且现在已经应用于分析迭代密码算法,但仍有很大的改善空间。例如:积分区分器可以由代数次数评估进行构建,这种方法经常应用于高阶差分分析,代数次数可以通过算法的布尔函数进行评估。
若一个加密算法的布尔函数表达式或其代数次数可知,便可以利用这一条件建立区分器,进而恢复密钥。已有的许多攻击方法都直接或间接的利用了布尔函数的代数表达式,如:代数攻击、高阶差分攻击、Cube攻击、积分攻击等。
1994年,Knudsen提出积分区分器可以由普遍用于高阶差分的代数次数评估构建,并且代数次数可以通过ANF进行评估。2002年,Canteaut和Videau为了改善迭代分组密码的安全,抵抗线性分析,展示了可以找到的布尔部件的积的上界的函数的一些性质。2009年,Dinur和Shamir提出立方攻击解决类似防碰撞散列函数的多项式,是相对于已经发表的同类攻击的一个重大改进。只要满足作为黑匣子提供的(即使不知道其内部结构)、至少一个输出位可以由(未知)秘密变量和公共变量相对较低的代数次数的多项式表示,立方体攻击就可以应用于任何分组密码,流密码或MAC。2011年,Dinur和Shamir在理论上利用动态立方攻击对全轮的Grain-128进行分析,动态立方攻击可以用较低的代数次数表示给定的密码算法,这使得可以攻击所有先前抵抗已知攻击的方案。2012年,Boura和Canteaut提出了一个关于迭代排列的代数程度被看作多元多项式的研究,结果表明阶数取决于迭代的逆置换的代数次数。2015年,Todo提出一种利用可分性构建积分区分器的算法,而可分性是以考虑双射函数(如双射S盒)的代数度估计为基础的,然而,因为代数次数被高估,算法不能确定是否存在其他的积分区分器。2016年,Todo和Morii将可分性应用于SIMON,并在理论上证明了SIMON32积分区分器的正确性。同时,对于分组长度大于32的算法,文中也给出了区分器上界的评估。2017年,刘美成提出一种利用数字映射对基于NFSR密码算法代数次数的上界进行评估的算法。
目前,在对称密码的分析中,所使用的最多的布尔函数的性质为代数次数,也已经出现了许多或直接、或间接的利用布尔函数及其代数次数的分析方法。利用这些对对称密码系统代数次数评估的方法,可以改进现有的分析方法,例如:代数攻击、高阶差分攻击、Cube攻击、积分攻击等,与此同时,对对称密码算法进行分析,也可以得到更好的分析结果。但是,这些方法对代数次数的评估都不够精确,目前还没有对代数次数精确评估的方法,所以,迫切需要一种可以对对称密码系统代数次数精确评估的方法。
发明内容
针对上述不足,本发明所要解决的技术问题是提供一种对称密码系统代数次数评估的新方法,引入对称密码系统的输出布尔函数,深入研究对称密码系统的算法结构,提出一种对对称密码系统代数次数评估的新方法。
为解决上述问题,本发明对称密码系统代数次数评估新方法,包括算法分析模块、初态预置模块、输出函数产生模块、重复变量检测模块、排序模块、重复项检测模块、状态更新模块,评估方法包括以下步骤:
S1:利用算法分析模块对具体的密码算法进行分析,根据其初始变量及更新函数进行具体的算法操作;
S2:利用密钥和初始化向量预置初始化阶段的初态,变量用xi表示,变量函数用s(xi)表示(即初始变量经过运算或更新后的变量),初态预置模块产生一个3维数组存储所有的变量,将其定义为B;
S3:利用输出函数产生模块产生一个数组f,在计算的过程中,需先计算中间状态t1与t2,其中t1与t2中含有的单项式项数不一定相等,且0<k;输出函数是根据密码算法的输出函数进行计算,表示为f,若输出函数f不参与更新函数,则设置为二维数组,数组大小根据具体的算法进行确定,其中中间状态t1、t2及输出函数f表达式如下:
t1(S)=(g1,g2,…,gk)
t2(S)=(g1,g2,…,gk)
fn(S)=[g1(s),g2(s),…,gi(s)]
S4:将数组f输入到重复变量检测模块;
每次经过数学运算(加、乘)或逻辑运算(异或运算)合并后,重复变量检测模块对每个单项式gi(s)都进行重复变量检测,对单项式中含有的重复的变量xi,则只保留一个xi变量,经过重复变量检测模块的结果仍用数组f表示;
S5:将数组f输入到排序模块;
根据输出函数f中单项式的代数次数deg[gi(s)]的由大到小进行排序,排序后,根据具体的算法,如果算法结构较复杂,布尔函数较复杂,则可只取前k项进行下一步操作;经过排序模块的结果用数组f表示,如果运行到第n轮结束,那么将在排序模块排序的过程中将代数次数最大的单项式的代数次数maxdeg[gi(s)]输出;若运算过程中取前k项,其输出布尔函数表达式如下:
fn(S)=[g1(s),g2(s),…,gk(s)]
S6:将数组f输入到重复项检测模块;
根据排序模块得到的数组f中的任意两个单项式进行重复项检测模块操作,若单项式出现的次数为偶数,则将该项单项式删除(根据异或运算的性质),若次数为奇数,则只保留一个该项单项式,将多余的单项式删除;
在重复项检测的过程中,若已经存储了前l项代数次数较高的单项式maxdeg[gi(s)],则停止检测,将其余的单项式删除,经过重复项检测模块操作后的结果仍用数组f表示;
如果运行到第n轮结束,那么将在重复项检测模块的排序的过程中将代数次数最大的单项式maxdeg[gi(s)]的代数次数输出,此处如果布尔函数系统较大,则可以先取前m项,再进行重复项检测;
若运算过程中取前l项,其输出布尔函数表达式如下:
fn(S)=[g1(s),g2(s),…,gl(s)]
S7:将与更新函数相关的数组输入到状态更新模块;
在状态更新的过程中,由于NFSR的运算性质及密码算法的结构,一些变量函数需进行更新移位,将更新后的变量函数update[si]替换si代入S3-S6进行下一轮输出函数的运算,直到运行到第n轮;
S8:根据排序模块对输出函数f的操作后,即可得到输出函数f的最大项及其评估的代数次数maxdeg[gi(s)],如果对于重复项检测模块选择的项数不理想,则输出的结果可视为输出函数f的代数次数的下界;如果选择的项数合适,则最终的运行结果可视为是输出函数f的代数次数,几乎没有误差;说明代数次数的评估结果更加精确。
对于S2,若密码算法为分组密码,则所有的变量若是基于NFSR的密码算法,则非线性移位寄存器(NFSR)的初态Bm,秘密变量为ki,公开变量为IVi,均视为变量xi;若密码算法为分组密码,则将输入明文视为变量。
对于S3,在计算过程中如果有乘法运算,且参与运算的值含有常数项(0或1),则需要对变量函数与常数项相乘时的运算结果进行判断,例如:如果单项式f[i](即gi(s))与0相乘,则将单项式f[i]去除,如果单项式f[i]与1相乘,则保持单项式f[i]不变。
与现有的代数次数评估方法相比,本发明对称密码系统代数次数评估新方法,对对称密码系统代数次数进行精确评估。这种新的评估方法应用到对称密码系统的设计或分析中,一方面将会加强密码算法设计的安全性,另一方面也可以应用于一些现有的密码分析方法中。避免无法评估代数次数的缺陷,对对称密码系统的设计与分析都有很重要的意义。
附图说明
图1为实施例基于NFSR简化的密码算法代数次数精确评估方法的流程框图。
图2为实施例中S1步骤的流程框图。
图3为实施例中S4步骤的流程框图。
图4为实施例中S5步骤的流程框图。
图5为实施例中S6步骤的流程框图。
具体实施方式
下面结合实施例和附图对本发明内容作进一步的说明,但不是对本发明的限定。
实施例
参照图1,基于NFSR简化的密码算法代数次数评估方法的流程框图,以基于NFSR简化的密码算法为例,评估方法包括如下的步骤:
S1:利用算法分析模块对具体的算法进行分析,实施例中为简化版的基于NFSR密码算法,密码算法的初始状态bit变量如下:
(s1,s2,s3,s4)=(K1,K2,0,0)
(s5,s6,s7,s8)=(IV1,IV2,0,1)
更新函数如下:
(s1,s2,s3,s4)=(t2,s1,s2,s3)
(s5,s6,s7,s8)=(t1,s5,s6,s7)
具体算法结构参照图2;
S2:利用初态预置模块产生一个三维数组B[8][20][10];
S2.1:在这个模块中,首先,根据具体算法的变量个数,设置三维数组的长度,而在运算的过程中产生三维数组B[8][20][10],因为实施例中的算法NFSR部件中的变量个数为8,20为该变量函数中含有的单项式个数,而10表示的是每个单项式中含有的变量个数;
S2.2:判断数组长度后,先将数组置为空值,以便其他模块运算过程中进行变量存储,在这里不区分公开变量(IVi)及秘密变量(ki),均视为变量xi,而变量的状态函数用s(xi)表示。
S3:利用输出函数产生模块产生一个数组f[20][10];
S3.1:在这个模块中,首先,将运算过程中用到的数组置空。根据NFSR部件的内部状态、抽头位置及反馈函数,计算中间状态并将其存储到两个数组中t1[20][10]与t2[20][10],将中间状态的运算结果输入S4、S5及S6模块进行检测操作,检测结果仍用t1[20][10]与t2[20][10]表示;
S3.2:再利用经过S4、S5及S6检测操作后的中间状态t1[20][10]与t2[20][10]进行运算,计算输出函数并将结果存储到数组f[20][10]。
S4:将数组t1[20][10],t2[20][10]及f[20][10]输入到重复变量检测模块,具体流程框图参照图3;
S4.1:在这个模块中,首先,对中间状态t1[20][10]与t2[20][10]中的每个单项式都进行重复变量检测,对每个单项式中含有的重复的变量xi,则只保留一个xi变量,使每个单项式中不存在重复变量,以降低运算复杂度及存储复杂度,经过重复变量检测模块的结果仍用t1[20][10]与t2[20][10]表示;
S4.2:再将f[20][10],每个单项式都进行重复变量检测,使每个单项式中不存在重复变量,经过重复变量检测模块的结果仍用f[20][10]表示。
S5:将中间状态t1[20][10]与t2[20][10]及输出数组f[20][10]分别输入到排序模块,具体流程框图参照图4;
S5.1:在这个模块中,首先,根据中间状态t1[20][10]与t2[20][10]中单项式的代数次数deg[gi(s)]进行排序(由大到小),经过排序模块操作的结果仍用t1[20][10]与t2[20][10]表示中间状态;
S5.2:再将f[20][10]中单项式的代数次数deg[gi(s)]进行排序(由大到小),经过重复项检测模块的结果仍用f[20][10]表示;
S5.3:若是评估第n轮的代数次数,则运行到第n轮结束,第n轮在排序模块排序的过程中,将代数次数最大的单项式的代数次数maxdeg[gi(s)]输出,即为degree[fn(S)]=maxdeg[gi(s)]。
S6:将数组t1[20][10],t2[20][10]及f[20][10]输入到重复项检测模块,具体流程框图参照图5;
S6.1:在这个模块中,首先,对中间状态t1[20][10]与t2[20][10]中任意两个单项式都进行重复项检测,若出现任意两个单项式完全相同,则将这两个单项式均删除,对每个单项式中含有的重复的变量xi,则只保留一个xi变量,使两个中间状态表达式中不存在重复的单项式,即若单项式出现的频率为偶数,则将该单项式删除,若为奇数,则只该单项式保留一次;
S6.2:经过重复项检测模块检测后,对中间状态的数组t1[20][10]与t2[20][10]只保留前10项即可(根据单项式代数次数的大小进行排序的前10项单项式),这项操作降低运算复杂度及存储复杂度。经过重复项检测模块的结果仍用t1[20][10]与t2[20][10]表示;
S6.3:再将f[20][10],每个单项式都进行重复项检测,使输出数组f[20][10]中不存在重复项;
S6.4:经过重复项检测模块检测后,对出数组f[20][10]只保留前10项即可(根据单项式代数次数的大小进行排序的前10项单项式),经过重复项检测模块的结果仍用f[20][10]表示。
S7:将中间状态t1[20][10]与t2[20][10]输入到状态更新模块;
S7.1:在计算输出函数数组f[20][10]的过程中,由于NFSR的运算性质及密码算法的结构,一些变量函数需进行更新移位,将更新后的变量函数update[si]替换si代入S2-S6进行下一轮输出函数的运算,直到运行到第n轮;
S7.2:在这个模块中,首先,将a1[20][10]与a2[20][10]赋空值。在运算过程中出现乘法运算,则用数组a1[20][10]与a2[20][10]表示变量函数相乘后的结果,并将用数组a1[20][10]与a2[20][10]均输入S4、S5及S6模块进行检测操作,检测结果仍用a1[20][10]与a2[20][10]表示;
S7.3:再计算更新后的中间状态update_t1[20][10]与update_t2[20][10],对两个数组赋空值,将中间状态t1[20][10]与t2[20][10]输入,根据算法状态更新函数进行运算,运算结果用数组update_t1[20][10]与update_t2[20][10]表示,即更新后的中间状态;
S7.4:再将数组update_t1[20][10]与update_t2[20][10]输入S4、S5及S6模块进行检测操作,检测结果仍用update_t1[20][10]与update_t2[20][10]表示;
S7.5:再将更新后的中间状态输入移位寄存器(NFSR)进行移位操作,根据算法移位规则进行移位,移位规则如下:
(s1,s2,s3,s4)=(t2,s1,s2,s3)
(s5,s6,s7,s8)=(t1,s5,s6,s7)
变量函数每一轮均根据NFSR移位规则进行移位,并将更新后的中间状态的函数赋值给变量函数s1,经过更新的变量函数输入S3-S6进行下一轮的操作。
S8:根据排序模块对输出函数f[20][10]进行操作后,对输出函数fn(S)的代数次数进行评估。具体项数的选择需要根据已知算法的变量个数及更新函数进行最优选择,既能对输出函数的代数次数进行准确评估,也能降低运算过程中的计算复杂度及存储复杂度。如果对于重复项检测模块选择的项数不理想,则输出的结果可视为输出函数fn(S)的代数次数的下界;如果选择的项数合适,则最终的运行结果可视为是输出函数fn(S)的代数次数,几乎没有误差;说明代数次数的评估结果非常精确。
每经过一轮的运算,变量函数得到更新,用Bi表示更新后的变量函数,则根据运算规则及递推关系对其进行下一轮运算。
对于S3,如果在计算变量函数相乘时,相乘的项中含有常数项0或1时,需对其运行结果进行判断,如果参与相乘运算的两个单项式中有一项为0,则将相乘的这两项均删除;如果参与相乘运算的两个单项式中有1,则只需存储另外一个单项式,再增加变量或常数项1;这个操作不仅增加了评估的准确性,也降低了运算的复杂度。
通过以上的算法,对基于NFSR密码算法的代数次数进行评估,利用输出的结果,即得到基于NFSR密码算法输出函数的代数次数maxdeg[gi(s)]。在运算过程中通过选择合适的较大项的项数,来提高对密码算法的代数次数进行评估的准确性。如果选择的项数合适,则最终的运行结果可视为是输出函数f的代数次数,几乎没有误差;说明代数次数的评估结果非常精确。所以,本发明提出的基于NFSR密码算法代数次数精确评估新方法,同样适用于分组密码,对于今后对称密码系统的设计与分析均具有很大的参考价值。
下面通过对基于NFSR简化的密码算法进行代数次数精确评估,对本发明进行进一步详细的说明:
利用本发明的评估方法,对基于NFSR简化的密码算法的代数次数进行精确评估,具体步骤如下:
步骤一:分析算法结构,NFSR部件的抽头位置及反馈函数、更新函数;
步骤二:按照算法中的初始变量,利用初态预置模块产生一个三维数组B;
步骤三:按照评估方法中S3,计算输出函数,产生一个数组f;
步骤四:按照评估方法中S4,将计算过程中出现的数组t1,t2及输出数组f分别进行重复变量检测,计算过程中计算得出的数组进行重复变量检测后,再进行下一步操作;
步骤五:按照评估方法中S5,将中间状态t1,t2及输出数组f分别输入到排序模块,可以根据算法结构或变量的数目取代数次数最大的前k项进行下一步操作,如果运行到第n轮结束,第n轮在排序模块排序的过程中,即可将代数次数最大的单项式的代数次数maxdeg[gi(s)]打印,即运算结束,反之,则继续运算;
步骤六:按照评估方法中S6,将中间状态t1,t2及输出数组f分别输入到重复项检测模块,此处如果布尔函数系统较大,则可以先取前m项,再进行重复项检测;
步骤七:按照评估方法中S7,将中间状态t1,t2输入到状态更新模块;
步骤八:利用评估方法中S6对得到的数组进行测试,选取的项数直接影响最后评估的准确性。通过保留单项式数目的不同对评估方法的准确性进行测试,运算得到的结果为表1-1。
表1-1
保留单项式数目 含IV1·IV2 含k1·k2 含全部变量
所有单项式 5 6 8
保留10项 5 6 8
保留5项 5 6 8
保留4项 5 6 8
保留3项 5 6 8
保留2项 5 6 9
注:保留单项式数目即步骤S6中经过重复项检测模块后,保留的单项式的个数,而含IV1·IV2、含k1·k2、含全部变量(x1-x4)即为单项式中含有变量的个数,且在对算法进行代数次数评估的时候,不区分公开变量(IV1·IV2)、秘密变量(k1·k2),均将其视为变量(x1~x4)。
通过测试,可以发现保留所有的单项式时,输出布尔函数的代数次数为8;保留10、5、4、3项单项式时,输出布尔函数的代数次数均为8;保留2项单项式时,输出布尔函数的代数次数均为9。实际计算的代数次数(即保留所有的单项式的情况)与测试中经过处理的布尔函数的代数次数几乎没有误差。结果说明如果选取保留单项式合适的数目,评估结果与实际计算的结果可视为是完全相同的(算法结构简单及变量较少时,当算法结构复杂时,则存在可以忽略的误差)。经过对算法的输出布尔函数代数次数的精确评估,有利于现有分析方法的改进,并有利于对算法进行设计及分析。

Claims (3)

1.对称密码系统代数次数评估新方法,包括算法分析模块、初态预置模块、输出函数产生模块、重复变量检测模块、排序模块、重复项检测模块、状态更新模块,其特征在于,评估方法包括以下步骤:
S1:利用算法分析模块对具体的密码算法进行分析,根据其初始变量及更新函数进行具体的算法操作;
S2:利用密钥和初始化向量预置初始化阶段的初态,变量用xi表示,变量函数用s(xi)表示,初态预置模块产生一个3维数组存储所有的变量,将其定义为B;
S3:利用输出函数产生模块产生一个数组f,在计算的过程中,需先计算中间状态t1与t2,其中t1与t2中含有的单项式项数不一定相等,且0<k;输出函数是根据密码算法的输出函数进行计算,表示为f,若输出函数f不参与更新函数,则设置为二维数组,数组大小根据具体的算法进行确定,其中中间状态t1、t2及输出函数f表达式如下:
t1(S)=(g1,g2,…,gk)
t2(S)=(g1,g2,…,gk)
fn(S)=[g1(s),g2(s),…,gi(s)]
S4:将数组f输入到重复变量检测模块;
每次经过加、乘数学运算或异或逻辑运算合并后,重复变量检测模块对每个单项式gi(s)都进行重复变量检测,对单项式中含有的重复的变量xi,则只保留一个xi变量,经过重复变量检测模块的结果仍用数组f表示;
S5:将数组f输入到排序模块;
根据输出函数f中单项式的代数次数deg[gi(s)]的由大到小进行排序,排序后,根据具体的算法,如果算法结构较复杂,布尔函数较复杂,则可只取前k项进行下一步操作;经过排序模块的结果用数组f表示,如果运行到第n轮结束,那么将在排序模块排序的过程中将代数次数最大的单项式的代数次数maxdeg[gi(s)]输出;若运算过程中取前k项,其输出布尔函数表达式如下:
fn(S)=[g1(s),g2(s),…,gk(s)]
S6:将数组f输入到重复项检测模块;
根据排序模块得到的数组f中的任意两个单项式进行重复项检测模块操作,若单项式出现的次数为偶数,则将该项单项式根据异或运算的性质删除,若次数为奇数,则只保留一个该项单项式,将多余的单项式删除;
在重复项检测的过程中,若已经存储了前l项代数次数较高的单项式maxdeg[gi(s)],则停止检测,将其余的单项式删除,经过重复项检测模块操作后的结果仍用数组f表示;
如果运行到第n轮结束,那么将在重复项检测模块的排序的过程中将代数次数最大的单项式maxdeg[gi(s)]的代数次数输出,此处如果布尔函数系统较大,则可以先取前m项,再进行重复项检测;
若运算过程中取前l项,其输出布尔函数表达式如下:
fn(S)=[g1(s),g2(s),…,gl(s)]
S7:将与更新函数相关的数组输入到状态更新模块;
在状态更新的过程中,由于NFSR的运算性质及密码算法的结构,一些变量函数需进行更新移位,将更新后的变量函数update[si]替换si代入S3-S6进行下一轮输出函数的运算,直到运行到第n轮;
S8:根据排序模块对输出函数f的操作后,即可得到输出函数f的最大项及其评估的代数次数maxdeg[gi(s)],如果对于重复项检测模块选择的项数不理想,则输出的结果可视为输出函数f的代数次数的下界;如果选择的项数合适,则最终的运行结果可视为是输出函数f的代数次数,几乎没有误差;说明代数次数的评估结果更加精确。
2.根据权利要求1所述的对称密码系统代数次数评估新方法,其特征在于:
所述S2,若密码算法为分组密码,则所有的变量若是基于NFSR的密码算法,则非线性移位寄存器的初态Bm,秘密变量为ki,公开变量为IVi,均视为变量xi;若密码算法为分组密码,则将输入明文视为变量。
3.根据权利要求1所述的对称密码系统代数次数评估新方法,其特征在于:
所述S3,在计算过程中如果有乘法运算,且参与运算的值含有0或1常数项,则需要对变量函数与常数项相乘时的运算结果进行判断;如果单项式f[i]与0相乘,则将单项式f[i]去除,如果单项式f[i]与1相乘,则保持单项式f[i]不变。
CN201710659243.XA 2017-08-04 2017-08-04 对称密码系统代数次数评估方法 Active CN107395347B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710659243.XA CN107395347B (zh) 2017-08-04 2017-08-04 对称密码系统代数次数评估方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710659243.XA CN107395347B (zh) 2017-08-04 2017-08-04 对称密码系统代数次数评估方法

Publications (2)

Publication Number Publication Date
CN107395347A true CN107395347A (zh) 2017-11-24
CN107395347B CN107395347B (zh) 2021-06-15

Family

ID=60344740

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710659243.XA Active CN107395347B (zh) 2017-08-04 2017-08-04 对称密码系统代数次数评估方法

Country Status (1)

Country Link
CN (1) CN107395347B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110417732A (zh) * 2019-06-20 2019-11-05 中国人民解放军战略支援部队信息工程大学 用于对称密码设计的布尔函数代数次数获取方法及装置
CN113343175A (zh) * 2021-05-31 2021-09-03 中国电子科技集团公司第三十研究所 一种自动化搜索spn型轻量级分组密码活跃s盒的快速方法
CN114514569A (zh) * 2019-10-10 2022-05-17 日本电信电话株式会社 秘密多重迭代计算装置、方法以及程序

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103634101A (zh) * 2013-12-03 2014-03-12 中国电子器材总公司 加密处理方法及设备
US20140129604A1 (en) * 2012-11-07 2014-05-08 Inside Secure Cryptographic method comprising a modular exponentiation operation
CN104052595A (zh) * 2014-05-23 2014-09-17 戴葵 密码算法定制方法
CN106788979A (zh) * 2016-12-30 2017-05-31 桂林电子科技大学 密码s盒评估新方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140129604A1 (en) * 2012-11-07 2014-05-08 Inside Secure Cryptographic method comprising a modular exponentiation operation
CN103634101A (zh) * 2013-12-03 2014-03-12 中国电子器材总公司 加密处理方法及设备
CN104052595A (zh) * 2014-05-23 2014-09-17 戴葵 密码算法定制方法
CN106788979A (zh) * 2016-12-30 2017-05-31 桂林电子科技大学 密码s盒评估新方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
莫钊,韦永壮: "《简化轮LBlock的密钥中比特检测及分析》", 《计算机工程》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110417732A (zh) * 2019-06-20 2019-11-05 中国人民解放军战略支援部队信息工程大学 用于对称密码设计的布尔函数代数次数获取方法及装置
CN110417732B (zh) * 2019-06-20 2021-07-06 中国人民解放军战略支援部队信息工程大学 用于对称密码设计的布尔函数代数次数获取方法及装置
CN114514569A (zh) * 2019-10-10 2022-05-17 日本电信电话株式会社 秘密多重迭代计算装置、方法以及程序
CN114514569B (zh) * 2019-10-10 2024-03-01 日本电信电话株式会社 秘密多重迭代计算装置、方法以及记录介质
CN113343175A (zh) * 2021-05-31 2021-09-03 中国电子科技集团公司第三十研究所 一种自动化搜索spn型轻量级分组密码活跃s盒的快速方法
CN113343175B (zh) * 2021-05-31 2022-05-27 中国电子科技集团公司第三十研究所 一种自动化搜索spn型轻量级分组密码活跃s盒的快速方法

Also Published As

Publication number Publication date
CN107395347B (zh) 2021-06-15

Similar Documents

Publication Publication Date Title
Qayyum et al. Chaos-based confusion and diffusion of image pixels using dynamic substitution
Zhou et al. Multi-image encryption scheme with quaternion discrete fractional Tchebyshev moment transform and cross-coupling operation
Fornasini et al. Observability, reconstructibility and state observers of Boolean control networks
Fouda et al. A fast chaotic block cipher for image encryption
Li et al. Conditional cube attack on round-reduced ASCON
Zeng et al. More balanced Boolean functions with optimal algebraic immunity and good nonlinearity and resistance to fast algebraic attacks
Barbosa A coevolutionary genetic algorithm for constrained optimization
CN103167213A (zh) 基于Cat映射与超混沌Lorenz系统的数字图像加密方法
CN107395347A (zh) 对称密码系统代数次数评估新方法
Hu et al. Quantum image encryption scheme based on 2d s ine 2-l ogistic chaotic map
CN106656459A (zh) 一种针对sm3‑hmac的侧信道能量分析方法和装置
Liu et al. Chaos-based color image encryption using one-time keys and Choquet fuzzy integral
Zhou et al. Deep binarized convolutional neural network inferences over encrypted data
Song et al. A bitwise design and implementation for privacy-preserving data mining: from atomic operations to advanced algorithms
Das et al. Generating cryptographically suitable non-linear maximum length cellular automata
Alwan et al. FCNN Model for Diagnosis and Analysis of Symmetric Key Cryptosystem
Bao et al. More insight on deep learning-aided cryptanalysis
Liu et al. Hiding multiple solutions in a hard 3-SAT formula
Fateri et al. A new method for image encryption via standard rules of CA and logistic map function
CN106301756B (zh) 用于sm2签名的大数模幂求逆功耗检测方法及其系统
Ye Chaotic image encryption algorithm using multi-generalized logistic maps
Wang et al. Federated cf: Privacy-preserving collaborative filtering cross multiple datasets
Jalalinour et al. Noisy-Defense Variational Auto-Encoder (ND-VAE): An Adversarial Defense Framework to Eliminate Adversarial Attacks
Ghafoori et al. PNB based differential cryptanalysis of Salsa20 and Chacha
Liu et al. A BP neural network‐oriented henon hyperchaotic system for image encryption

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
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20171124

Assignee: Guangxi Sujian Technology Co.,Ltd.

Assignor: GUILIN University OF ELECTRONIC TECHNOLOGY

Contract record no.: X2023980046272

Denomination of invention: A Method for Evaluating the Algebraic Degree of Symmetric Cryptosystems

Granted publication date: 20210615

License type: Common License

Record date: 20231108

Application publication date: 20171124

Assignee: Guangxi Guilin Yunchen Technology Co.,Ltd.

Assignor: GUILIN University OF ELECTRONIC TECHNOLOGY

Contract record no.: X2023980045796

Denomination of invention: A Method for Evaluating the Algebraic Degree of Symmetric Cryptosystems

Granted publication date: 20210615

License type: Common License

Record date: 20231108

EE01 Entry into force of recordation of patent licensing contract