CN104052595B - 密码算法定制方法 - Google Patents
密码算法定制方法 Download PDFInfo
- Publication number
- CN104052595B CN104052595B CN201410221416.6A CN201410221416A CN104052595B CN 104052595 B CN104052595 B CN 104052595B CN 201410221416 A CN201410221416 A CN 201410221416A CN 104052595 B CN104052595 B CN 104052595B
- Authority
- CN
- China
- Prior art keywords
- cryptographic algorithm
- algorithm
- cryptographic
- function
- unit
- 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
Landscapes
- Storage Device Security (AREA)
Abstract
本发明公开了一种密码算法定制方法。其核心包含:提供可定制的密码算法功能要素、可变的密码算法数据处理结构、密码算法设计约束规则和密码算法安全性评估方法四个部分,基于密码算法设计约束规则,用户对密码算法功能要素和密码算法数据处理结构进行具体配置,从而获得自定制的密码算法,并采用一套密码算法安全性评估方法对所自定制的密码算法进行安全性评估,如果评估结果满足算法设计要求,则所获得密码算法即为目标密码算法;否则调整配置信息,重新产生新的自定制的密码算法并评估其安全性,直至所定制的密码算法满足设计要求。该方法能够使用户高效地设计出安全的自定制密码算法。
Description
技术领域
本发明属于信息安全领域,涉及一种密码算法定制方法。
背景技术
随着信息技术的快速发展,人们对信息的安全存储、安全传输的需求日益增强。特别在移动及嵌入式设备中存在着数据隐私性以及知识产权保护的强烈需求。例如嵌入式系统的防盗版,用户隐私数据的保护等。保护数据隐私性最有效的办法就是对信息进行加密处理。目前虽然有AES、3DES等的公开密码算法供用户选择,但公开密码算法种类有限,而且大多数加密算法的安全性只是说能够抵抗已知的攻击方法,不能保证可以抵抗新的攻击方法。随着密码分析理论和计算机技术的快速发展,新的密码分析技术不断涌现,如代数攻击、旁路攻击等,破解密码的能力将得到极大的提高,甚至超乎我们的预测。现阶段认为安全的密码算法无法保证可以抵抗未来的密码分析方法。一旦新的有效密码分析方法出现,将给所有使用这种公开加密方法的用户带来严重的威胁。因此,存在着不断推出新密码算法的迫切需求。此外,信息安全的最大特点就是自主性。人们无法保证别人提供的密码算法没有后门,进而无法完全信任别人提供的密码算法的软件或硬件。因此,密码算法的设计存在着本地化和多样化的需求。
如果用户使用自定义的密码算法,将可以实现“算法机密性+密钥机密性”的双重保护作用,极大地提高破解成本,从而保护隐私数据的安全性。如果用户对加密算法本身进行保密,那么攻击者将无法知道所使用密码算法的细节,从而导致无法有效地使用相应的密码分析技术。即使密码算法被对手获知,此时仅相当于由一个保密密码算法变成了一个公开密码算法。只要所定制的密码算法具有足够的安全特性,当对手不知道密钥时,他同样难以破解出明文或密钥。因此,采用自定义密码算法,将在以密钥为保密手段的基础上,增加了一层算法保密的安全防护措施。总之,实现让用户自定义所使用的密码算法具有现实的应用意义。
现有的支持可变结构的密码算法中,最多只是由密钥改变其中某个功能部件的功能,如Twofish密码,其S盒由密钥控制。这种设计所能构造的密码算法种类有限。虽然有些研究如Feistel结构,提供了一种密码算法的通用结构模型,但偏重数学模型。对普通用户而言,采用目前方法开发出一个安全性较高的自定制密码算法并非一件容易的事。
发明内容
本发明的目的是为了满足密码算法定制化设计的需求,克服普通用户难以开发出有效的加密算法的困境,提供一种密码算法定制方法。利用该方法可以使用户高效地开发出自定义密码算法。使用该方法进行密码算法定制开发时,不需要用户具备专业的密码学设计相关知识背景。
为实现上述目的,本发明采取以下技术方案:
向用户提供一套具有配置能力的密码算法功能要素、具有可变结构的密码算法数据处理结构、相应的密码算法设计约束规则以及一套密码算法安全性评估方法。用户根据密码算法设计约束规则对密码算法功能要素和密码算法数据处理结构进行具体配置,从而获得自定制的密码算法。然后利用密码算法安全性评估方法评估所生成的密码算法的安全性。如果评估结果不满足设计目标要求,则调整算法配置信息,重新生成密码算法并评估,直至所产生的密码算法满足设计目标要求。一种密码算法定制方法,其特征在于:包含一套密码算法功能要素、密码算法数据处理结构、密码算法设计约束规则和密码算法安全性评估方法,具体按以下步骤进行:
(1)用户根据密码算法设计约束规则,设置密码算法功能要素和密码算法数据处理结构中的具体配置信息,从而获得自定制的密码算法;
(2)利用密码算法安全性评估方法对所生成的自定制的密码算法进行安全性评估;
(3)如果评估结果不满足设计目标要求,则调整密码算法功能要素和密码算法数据处理结构中的具体配置信息,重新生成自定制的密码算法并评估,直至所产生的自定制的密码算法满足设计目标要求。
所述的密码算法功能要素是实现密码算法自定义设计所需的基本功能组件或基本运算单元,包括但不限于轮密钥加单元、混淆单元、扩散单元、对合运算单元、轮函数、扩展单元、压缩单元。本发明所述的密码算法功能要素是指用于完成密码算法设计的基本的功能操作模块或函数;相当于定义了一个操作集合,如何组合连接这些单元或函数形成密码算法,是由密码算法数据处理结构来指定完成;数据处理结构相当集合中的这些元素的组合连接形式。所述的密码算法功能要素的具体功能通过配置相应的配置信息而改变,具有可配置特征;
所述的轮密钥加单元是一种将轮密钥与涉及明文或密文的变量进行某种运算而得一个新变量的功能单元或函数;
所述的混淆单元是一种采用非线性变换函数对输入数据进行某些非线性变换并输出变换结果的功能单元或函数;混淆单元将使得输入与输出之间具有复杂的映射关系,进而混淆输入与输出之间的统计特性;
所述的扩散单元是一种具有扩散效应的功能单元或函数;具有如下的特性:当输入数据中有局部的微小的改变时,对应输出数据中却会出现较大变化;
所述的对合运算单元是一种具有对合性质的功能单元或函数;
所述的轮函数是指在迭代密码算法中重复使用的功能单元或函数;
所述的扩展单元是一种能够将长度较短的输入数据串变换成具有长度较大输出数据串的功能单元或函数;其输出数据串中的某些部分将作为轮密钥或消息扩展字使用;
所述的压缩单元是一种能够将较大长度输入数据串变换成固定长度数据串的功能单元或函数。
所述的密码算法数据处理结构具有可变结构的特征,所述的密码算法数据处理结构是指密码算法内部数据经过一个算法功能要素流向下一个算法功能要素的先后顺序或算法功能要素之间互联结构或调用关系,也包括密码算法中执行流程的循环或/和跳转控制方法;用户能够通过配置具体的密码算法数据处理结构,形成具有特定密码算法结构类型的密码算法;
所述的密码算法数据处理结构包括但不限于密码功能要素之间的执行顺序,密码功能要素之间互联结构,密码功能要素之间调用形式,以及用于描述密码算法执行流控制的密码算法参数要素;
所述的密码算法参数要素为数据分组长度、密钥长度、执行轮数、消息摘要长度中一种或二种以上任意组合。
所述的密码算法结构类型为Feistel型、广义feistel型、SPN型或L‐M型密码算法的结构形式。
所述的密码算法设计约束规则定义一套密码算法定制设计时需要遵守的设计约束规则,以保证所产生的密码算法具有正确性和安全性;所述的密码算法设计约束规则包括但不限于下述约束规则中一种或二种以上任意组合:
(1)密码算法在数学形式上需要满足的设计约束规则;
(2)设计各密码算法功能要素时需要遵守的设计约束规则;
(3)设计密码算法数据处理结构时需要遵守的设计约束规则。
不同的类型的密码算法的设计约束规则可以并不相同。
加密算法的设计约束规则包含但不限于如下规则:
(1)加密算法存在对应的解密算法,加密算法具有可逆映射函数形式;
(2)加密密码算法可以表示成由多个子函数通过函数复合而得的一种数学表达形式。
(3)中所述的子函数的具体功能可以由自定义配置信息决定,且具有如下性质:
a、从函数形式上具有两个输入变量,一个是代表着密钥,另一个代表着明文或密文。
b、对于每个子函数,当密钥固定时,该子函数是一个关于明文到密文的单射函数。
散列算法的设计约束规则包含但不限于如下规则:
(1)散列算法是一个可以将任意长度的数据串映射到固定长度数据串的函数h;
(2)对任意y,找到使得h(x)=y成立的x是非常困难;
(3)对给定x1,找到使得h(x1)=h(x2)成立的x2是非常困难;
(4)找到使得h(x1)=h(x2)的一对x1,x2是非常困难。
所述的密码算法安全性评估方法能够对密码算法进行安全性评估,并给出一种或多种类型的定量或定性的评估结果,用于指导自定义密码算法的甄选和优化;所述的密码算法评估方法包含但不限于统计检测评估方法、机器证明评估方法两大类评估方法中的一种或二种的组合。
所述的统计检测评估方法是指利用一套随机性统计检测工具,对所定制密码算法的密文特性进行统计检测分析,以检测其密文随机性特性、明密文独立特性、明文雪崩特性、密钥雪崩特性、碰撞概率等密码算法的安全性指标。
所述的机器证明评估方法是利用软件程序自动计算并给出密码算法的相关密码算法安全性指标,所述的密码算法安全性指标包括但不限于下述指标中的一种或二种任意组合:相关密码功能要素的非线性度、差分均匀性、代数次数、最大差分特征概率、最大线性逼近概率。
应用所述的密码算法定制方法能产生的密码算法包括但不限于对称密码算法或散列算法等密码算法。
同一类型的密码算法之间一般都具有通用操作或通用框架等共同点。因此,可以给出每类密码算法的基本操作和基本结构,及其相应的设计规则和评估方法。例如分组密码算法中均会使用到混淆单元、扩散单元和密钥加单元,其结构主要有Feistel型和SPN型等基本类型。在散列算法中,主要会用到扩展单元和压缩单元,其中扩展单元通常采用对分组数据进行循环移动处理的结构形式,压缩单元通常采用多轮迭代,采用代数运算将扩展单元产生的扩展消息字与压缩单元的中间变量进行混淆,最后输出一个固定长度的结果。
本发明由于采取以上技术方案,其具有以下优点:
1.利用本发明提供的密码算法定制方法进行密码算法设计时,不需要用户具备专业的密码学相关知识背景,就可以开发出安全有效的密码算法。相比传统的聘用密码专家进行密码算法定制化开发,本发明能够有效地降低定制密码算法的开发成本以及难度。
2.利用本发明开发的密码算法容易实现一种“密码算法+密钥”的双重加密保护机制,易于实现一人一密、一次一密的效果,从而极大地提高破解成本,并降低每次破解所获得的信息价值。
3.本发明提供的密码算法定制方法可以为密码专家进行密码算法设计时提供参考。利用本发明可以产生大量的密码算法,并提供相应的密码算法的安全性评价指标。密码专家可以从中选出优秀密码算法进行深入的研究,有助于帮助密码专家找到新的优秀密码算法。
附图说明
图1是基于密码算法定制方法的密码算法开发流程图。
具体实施方式
本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤外,均可以以任何方式组合。
下面结合附图,对本发明作进一步详细的描述。
如图1所示,给出了基于本发明所提供方法的密码算法开发流程。进行密码算法定制设计时,提供密码算法定制设计所需的具有可配置的密码算法功能要素和可变结构的密码算法数据处理结构、密码算法设计约束规则、密码算法安全性评估方法。基于密码算法设计约束规则,用户对密码算法功能要素和密码算法数据处理结构进行具体的配置,从而获得所定制的密码算法;然后利用一套安全性评估方法对所生成密码算法的安全性进行评估,并给出相应的评估结果。如果评估结果不满足设计要求,则调整输入的算法配置信息,并重新生成密码算法,并进行安全性评估,直至产生满足目标要求的密码算法。
实施例1:
下面给出一种支持分组密码算法定制设计的具体实例。通过配置其中密码算法功能要素和密码算法数据处理结构,可以实现自定制的Feistel型分组密码。
密码算法功能要素:
本实施实例中密码算法功能要素包括混淆单元、扩散单元、对合运算单元、密钥加单元、密钥扩展单元、轮函数。
所述的混淆单元可以由一个或多个子函数(如f1,f2,…,fk)来构造,提供非线性变换的能力。所述子函数可以是一个或多个SBox,或者是由SBox与代数运算复合构成的函数。所述的代数运算可以包括:加、减、乘、除、移位、与、或、非、异或等运算中的一种或多种。其中SBox和子函数具体形式均可以由用户配置成不同的形式。
所述的扩散单元可以由可逆子块置换网络来实现,置换网络的置换规则可以用户配置。
所述的对合运算单元由异或运算构成,其一次运算的数据宽度可以由用户自定义。
所述的密钥加单元由异或运算构成,其一次运算的数据宽度可以由用户自定义。
所述的密钥扩展单元用于将密钥扩展成多个轮密钥。密钥扩展单元中可以基于由SBox及代数运算构成的函数来实现。用户可以自定义其中的SBox及函数具体形式。
所述的轮函数是指在迭代密码算法中重复使用的功能单元或函数。所述的轮函数是指在迭代密码算法中重复使用的功能单元或函数,其具体功能可以由用户自定义。
密码算法数据处理结构:
本实施实例中密码算法数据处理结构是指密码算法内部数据经过一个算法功能要素流向下一个算法功能要素的先后顺序或算法功能要素之间互联结构或调用关系,以及影响的算法中执行流程的密码算法参数要素。用户能够通过配置具体的密码算法数据处理结构,可以得到Feistel型或广义Feistel型密码算法。可配置部分包括如下部分:
(1)密码功能要素之间互联结构或密码功能要素之间调用关系;具体包括:
a)各SBox的输入数据来源和输出数据将给哪个单元使用的定义;
b)各子函数f1,f2,…,fk的输入数据来源和输出数据将给哪个单元使用的定义;
c)由SBox和代数运算构建来各子函数f1,f2,…,fk的连接或调用规则;
d)数据在密钥加单元、混淆单元、扩散单元等之间的先后处理顺序;
e)每轮运算中密钥加单元、混淆单元、扩散单元的使用次数;
(2)轮函数的执行次数;
(3)密码算法参数要素,包括数据分组长度、密钥长度、轮数,它们的大小可以由用户配置;
(4)数据分组的子块细分规则。一个长度为n的数据分组可以划分为m个子块,依次是m1,m2,…mi,各子块的长度可以由用户配置;
约束规则:
1、密码算法在数学形式上需要满足的设计约束规则:
1)整个密码算法从数学描述形式上可以表示成一个从输入空间到输出空间的可逆映射。
2)一个密码算法可以表示成由多个子函数通过函数复合而形成,且各子函数具有如下性质:
a)从函数形式上有两个输入变量,一个是代表着密钥,另一个代表着明文或密文。
b)对于每个子函数当密钥固定时,该子函数是一个关于明文或密文的单射函数。
2、设计各密码算法功能要素时需要遵守的设计约束规则:
1)密钥加单元必须是对合运算;
2)混淆单元必须是提供非线性变换的能力,可以包含一个或多个混淆子函数fi;
3)扩散单元必须是可逆线性变换,可以由子块置换网络实现;
4)密钥扩展单元的输出轮密钥的个数不小于轮函数中的需求个数,且每轮的轮密钥尽量不相同。
3、设计密码算法数据处理结构时需要遵守的设计约束规则:
1)在构建Feistel型密码时,分组数据块可以细分为m个子块,并将它们分成保留类和替换类两类。其中保留类的数据子块不经过混淆单元的处理,而替换类的数据需经过混淆单元的处理;
2)混淆子函数fi的输入参数只能来自保留类的数据子块和轮密钥;各混淆子函数fi的输入参数个数可以是一个或多个;各混淆子函数fi可以是任意的非线性函数,fi函数中可以包含Sbox;
3)每轮处理中必须使用轮密钥。这可以由密钥加单元来实现,也可以直接将轮密钥作为混淆单元的一个独立输入参数来实现;
4)密钥加单元可以包含在混淆单元使用中,也可以在混淆单元之前或之后使用,但数据进入扩散单元之前必须存在相应的轮密钥混淆处理过程;
5)轮函数中需要将2)中各混淆子函数的输出与替换类中子块进行对合运算;
6)需将对合运算的结果和保留类子块一起作为扩散单元的输入;
7)最后一轮的扩散单元可以与前面轮数的扩散单元不同;
密码算法安全性评估方法:
密码算法安全性评估方法是对密码算法的安全性进行评估,并给出包含但不限于定性和定量的安全指标。所述的安全性评估方法包括统计检测评估和机器证明评估两大类评估方法。
统计检测评估是利用现有的随机数统计检测工具NIST STS,对由特定密钥和明文生成的密文进行随机性统计检测。
首先提供一套基准的测试输入向量集合,并利用所生成的密码算法对集合中提供的明文和密钥进行加密,得到相应的密文。然后利用随机性检测工具密文数据进行包含但不限于可以进行如下类型检测:频数检测、块内频数检测、游程检测、块内最大游程检测、二元矩阵秩检测、离散傅里叶变换检测、非重叠块匹配检测、重叠模块匹配检测、线性复杂度检测、序列检测和近似熵检测。如上述检测的P‐value值在用户设定的可信范围内,就可以认为所定制的密码算法通过了统计安全检测。
机器证明评估是利用程序迭代运算,自动分析设计的密码算法中关键功能部件的安全指标,本实施案例中将计算Sbox的非线性度、代数次数、最大差分特征概率、最大线性逼近概率。
实施例2:
下面给出一种支持散列算法定制设计的具体实例。通过配置其中密码算法功能要素和密码算法数据处理结构,可以实现自定制的散列密码算法。
密码算法功能要素:
本实施实例中密码算法功能要素包括消息填充单元、扩展单元、压缩单元。
所述的消息填充单元是一种能够将某一长度的数据串,按某一填充规则在数据串的后面补上一些数据,使得填充后的数据串长度为消息分组长度整数倍的功能单元或函数。所述的填充规则可以由用户自定义,所述的消息分组长度的大小可以由用户自定义。
所述的扩展单元是一种能够将长度较短的输入数据串变换成具有长度较大的输出数据串的功能单元或函数。其输出数据串中的部分或全部可以作为消息扩展字使用。在本实施例中,所述的扩展单元可以由一个移位寄存器组和扩展运算单元来构成。
所述的移位寄存器组可以由多个指定宽度的寄存器串联而构成,也可以用一组变量来表示。
所述的扩展运算单元是一种由代数运算构成的函数或功能单元,它能够对输入的数据进行某种变换得到输出数据。所述的代数运算可以包括:加、减、乘、除、移位、与、或、非、异或等运算中的一种或多种。
其中寄存器或变量的宽度可以由用户自定义,移位寄存器组中包含的移位寄存器个数或变量个数可以由用户自定义,扩展运算单元的具体功能形式可以由用户配置成不同的形式。
所述的压缩单元是一种能够将较大长度输入数据串变换成固定长度数据串的功能单元或函数。在本实施例中,所述的压缩单元可以由一组中间变量或存储中间变量的寄存器、一组散列值变量或存储散列值变量的寄存器、以及压缩运算单元等构成。
所述的压缩运算单元可以由一个或多个子函数(如f1,f2,…,fk)来构造。
其中中间变量和散列值变量个数可以由用户自定义,中间变量和散列值变量数据宽度可以由用户自定义;压缩运算单元中各子函数的具体功能可以由用户配置成不同的形式。
密码算法数据处理结构:
本实施实例中密码算法数据处理结构是指散列算法内部数据经过一个算法功能要素流向下一个算法功能要素的先后顺序或算法功能要素之间互联结构或调用关系,以及影响的算法中执行流程的密码算法参数要素。用户能够通过配置具体的密码算法数据处理结构,可以得到不同的散列算法。可配置部分包括如下部分:
1)密码功能要素之间互联结构或密码功能要素之间调用关系;具体包括:
a)扩散单元输入数据来源和输出数据将给哪个单元使用的定义;
b)压缩单元中各子函数f1,f2,…,fk的输入数据来源和输出数据将给哪个单元使用的定义;
c)数据在消息填充单元、扩散单元、压缩单元等之间的先后处理顺序;
2)密码算法参数要素,包括消息摘要长度、数据分组长度、压缩运算单元迭代轮数,它们的大小可以由用户配置;
所述的消息摘要长度是指散列算法输出数据的长度;
所述的消息分组长度是指扩展单元每次处理输入数据的总宽度;
所述的压缩运算单元迭代轮数是指每运行一次压缩单元时,其内部压缩运算单元被迭代运行的次数;
3)数据分组的子块细分规则。一个长度为n的数据分组可以划分为m个子块,依次是m1,m2,…mi,各子块的长度可以由用户配置;
约束规则:
1、密码算法在数学形式上需要满足的设计约束规则:
1)散列算法是一个可以将任意长度的数据串映射到固定长度数据串的函数h;
2)对任意y,找到使得h(x)=y成立的x是非常困难;
3)对给定x1,找到使得h(x1)=h(x2)成立的x2是非常困难;
4)找到使得h(x1)=h(x2)的一对x1,x2是非常困难。
2、设计各密码算法功能要素时需要遵守的设计约束规则:
1)消息填充单元使用的分组长度等于扩展单元中使用的分组长度;
2)扩展单元输出数据的个数不小于压缩单元中需要使用数据的个数;
3)压缩单元中所有散列值变量的数据宽度不小于消息摘要的长度;
3、设计密码算法数据处理结构时需要遵守的设计约束规则:
1)扩散单元中移位寄存器组合扩展运算单元构成一个反馈移位寄存器链的结构形式;
2)扩展运算单元的输入可以来自移位寄存器组中任意一个或多个寄存器的输出;
3)扩散单元对每个分组数据进行处理时,移位寄存器组的初始必须等于输入的消息分组;
4)扩展运算单元的输出必须作为移位寄存器组的反馈输入;
5)每处理一个新的消息时,压缩单元中的中间变量和散列值变量必须指定初始值,具体初始值可以由用户自定义;当处理一个消息的后续分组时,每轮压缩运算时,中间变量的初值等于上一个消息分组的散列值变量的值;
6)在压缩运算中,每个消息分组处理完成后,将中间变量的值与前一个消息分组的散列值变量的值进行混淆运算后,并作为下一个消息分组的散列值变量初始值。
密码算法安全性评估方法:
密码算法安全性评估方法是对密码算法的安全性进行评估,并给出包含但不限于定性和定量的安全指标。本实施实例中使用的安全性评估方法为统计检测评估,主要进行雪崩效应评估和碰撞概率评估。
雪崩效应评估。首先随机地产生一个初始消息,然后对初始消息向量中各比特逐一取反,得到多个与初始消息的汉明距离为1的生成消息,形成测试消息集合。接着将所得到的消息集合中的各个消息依次作为散列算法输入,得到相应的消息摘要集合。统计消息摘要集合中各消息摘要与初始消息的消息摘要之间的汉明距离。如果所得到汉明距离均大于某一个可信值,就可以认为所定制的散列算法具有较好的雪崩效应。
碰撞概评估。首先提供大量的随机产生测试消息,然后利用所生成的散列算法对集合中提供的消息进行处理,得到相应的消息摘要。然后利用统计并计算消息摘要的碰撞概率。如上述检测的在大量样本下的碰撞概率低于用户设定的可信值,就可以认为所定制的散列算法通过了统计安全检测。
Claims (9)
1.一种密码算法定制方法,其特征在于:包含一套可配置的密码算法功能要素、可变的密码算法数据处理结构、密码算法设计约束规则和密码算法安全性评估方法,具体按以下步骤进行:
(1)用户根据密码算法设计约束规则,设置密码算法功能要素和密码算法数据处理结构中的具体配置信息,从而获得自定制的密码算法;
(2)利用密码算法安全性评估方法对所生成的自定制的密码算法进行安全性评估;
(3)如果评估结果不满足设计目标要求,则调整密码算法功能要素和密码算法数据处理结构中的具体配置信息,重新生成自定制的密码算法并评估,直至所产生的自定制的密码算法满足设计目标要求;
所述的密码算法功能要素是实现密码算法自定义设计所需的基本功能组件或基本运算单元,包括轮密钥加单元、混淆单元、扩散单元、对合运算单元、轮函数、扩展单元、压缩单元;所述的密码算法功能要素的具体功能通过配置相应的配置信息而改变,具有可配置特征;
所述的轮密钥加单元是一种将轮密钥与涉及明文或密文的变量进行某种运算而得一个新变量的功能单元或函数;
所述的混淆单元是一种采用非线性变换函数对输入数据进行某些非线性变换并输出变换结果的功能单元或函数;混淆单元将使得输入与输出之间具有复杂的映射关系,进而混淆输入与输出之间的统计特性;
所述的扩散单元是一种具有扩散效应的功能单元或函数;具有如下的特性:当输入数据中有局部的微小的改变时,对应输出数据中却会出现较大变化;
所述的对合运算单元是一种具有对合性质的功能单元或函数;
所述的轮函数是指在迭代密码算法中重复使用的功能单元或函数;
所述的扩展单元是一种能够将长度较短的输入数据串变换成具有长度较大输出数据串的功能单元或函数;其输出数据串中的某些部分将作为轮密钥或消息扩展字使用;
所述的压缩单元是一种能够将较大长度输入数据串变换成固定长度数据串的功能单元或函数。
2.根据权利要求1所述的密码算法定制方法,其特征在于:所述的密码算法数据处理结构具有可变结构的特征,所述的密码算法数据处理结构是指密码算法内部数据经过一个算法功能要素流向下一个算法功能要素的先后顺序或算法功能要素之间互联结构或调用关系,也包括密码算法中执行流程的循环或/和跳转控制方法;用户能够通过配置具体的密码算法数据处理结构,形成具有特定密码算法结构类型的密码算法;
所述的密码算法数据处理结构包括但不限于密码功能要素之间的执行顺序,密码功能要素之间互联结构,密码功能要素之间调用形式,以及用于描述密码算法执行流控制的密码算法参数要素。
3.根据权利要求2所述的密码算法定制方法,其特征在于:所述的密码算法参数要素为数据分组长度、密钥长度、执行轮数、消息摘要长度中一种或二种以上任意组合。
4.根据权利要求2所述的密码算法定制方法,其特征在于:所述的密码算法结构类型为Feistel型、广义feistel型、SPN型或L-M型密码算法的结构形式。
5.根据权利要求1所述的密码算法定制方法,其特征在于:所述的密码算法设计约束规则定义一套密码算法定制设计时需要遵守的设计约束规则,以保证所产生的密码算法具有正确性和安全性;所述的密码算法设计约束规则包括但不限于下述约束规则中一种或二种以上任意组合:
(1)密码算法在数学形式上需要满足的设计约束规则;
(2)设计各密码算法功能要素时需要遵守的设计约束规则;
(3)设计密码算法数据处理结构时需要遵守的设计约束规则。
6.根据权利要求1所述的密码算法定制方法,其特征在于:所述的密码算法安全性评估方法能够对密码算法进行安全性评估,并给出一种或多种类型的定量或定性的评估结果,用于指导自定义密码算法的甄选和优化;所述的密码算法评估方法包含但不限于统计检测评估方法、机器证明评估方法两大类评估方法中的一种或二种的组合。
7.根据权利要求6所述的密码算法定制方法,其特征在于:所述的统计检测评估方法是指利用一套随机性统计检测工具,对所定制密码算法的密文特性进行统计检测分析,以检测其密文随机性特性、明密文独立特性、明文雪崩特性、密钥雪崩特性或碰撞概率密码算法的安全性指标。
8.根据权利要求6所述的密码算法定制方法,其特征在于:所述的机器证明评估方法是利用软件程序自动计算并给出密码算法的相关密码算法安全性指标,所述的密码算法安全性指标包括但不限于下述指标中的一种或二种任意组合:相关密码功能要素的非线性度、差分均匀性、代数次数、最大差分特征概率、最大线性逼近概率。
9.应用权利要求1中所述的密码算法定制方法能产生的密码算法包括但不限于对称密码算法或散列密码算法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410221416.6A CN104052595B (zh) | 2014-05-23 | 2014-05-23 | 密码算法定制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410221416.6A CN104052595B (zh) | 2014-05-23 | 2014-05-23 | 密码算法定制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104052595A CN104052595A (zh) | 2014-09-17 |
CN104052595B true CN104052595B (zh) | 2017-02-08 |
Family
ID=51504981
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410221416.6A Active CN104052595B (zh) | 2014-05-23 | 2014-05-23 | 密码算法定制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104052595B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102014016548A1 (de) * | 2014-11-10 | 2016-05-12 | Giesecke & Devrient Gmbh | Verfahren zum Testen und zum Härten von Softwareapplikationen |
JP6368047B2 (ja) * | 2015-06-09 | 2018-08-01 | 日本電信電話株式会社 | 鍵交換方法、鍵交換システム、鍵配送装置、代表通信装置、一般通信装置、およびプログラム |
CN107425963B (zh) * | 2017-05-09 | 2024-08-20 | 谢新勇 | 一种密码墙的构建方法及系统 |
CN107395347B (zh) * | 2017-08-04 | 2021-06-15 | 桂林电子科技大学 | 对称密码系统代数次数评估方法 |
CN110728290B (zh) * | 2018-07-17 | 2020-07-31 | 阿里巴巴集团控股有限公司 | 检测数据模型安全性的方法及装置 |
CN112564891B (zh) * | 2020-12-11 | 2022-06-21 | 清华大学无锡应用技术研究院 | 一种基于反馈移位寄存器阵列的序列密码算法计算系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002281018A (ja) * | 2001-03-19 | 2002-09-27 | Toshiba Corp | 受信端末装置及び暗号方式更新方法 |
CN101420427A (zh) * | 2007-09-28 | 2009-04-29 | 东芝解决方案株式会社 | 密码加密模块选择设备 |
CN102185692A (zh) * | 2011-04-25 | 2011-09-14 | 北京航空航天大学 | 基于aes加密算法的多模式可重构加密方法 |
CN103763701A (zh) * | 2014-01-02 | 2014-04-30 | 深圳市共进电子股份有限公司 | 一种基于无线网络实现通信安全的方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8401179B2 (en) * | 2008-01-18 | 2013-03-19 | Mitsubishi Electric Corporation | Encryption parameter setting apparatus, key generation apparatus, cryptographic system, program, encryption parameter setting method, and key generation method |
-
2014
- 2014-05-23 CN CN201410221416.6A patent/CN104052595B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002281018A (ja) * | 2001-03-19 | 2002-09-27 | Toshiba Corp | 受信端末装置及び暗号方式更新方法 |
CN101420427A (zh) * | 2007-09-28 | 2009-04-29 | 东芝解决方案株式会社 | 密码加密模块选择设备 |
CN102185692A (zh) * | 2011-04-25 | 2011-09-14 | 北京航空航天大学 | 基于aes加密算法的多模式可重构加密方法 |
CN103763701A (zh) * | 2014-01-02 | 2014-04-30 | 深圳市共进电子股份有限公司 | 一种基于无线网络实现通信安全的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104052595A (zh) | 2014-09-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104052595B (zh) | 密码算法定制方法 | |
Kumar et al. | Development of modified AES algorithm for data security | |
US11362802B2 (en) | Cryptographic device arranged to compute a target block cipher | |
CN106788974A (zh) | 掩码s盒、分组密钥计算单元、装置及对应的构造方法 | |
Muir | A tutorial on white-box AES | |
EP3469762B1 (en) | Device and method to compute a block cipher | |
Lee et al. | A masked white-box cryptographic implementation for protecting against differential computation analysis | |
EP2293487A1 (en) | A method of diversification of a round function of an encryption algorithm | |
Sasdrich et al. | White-Box Cryptography in the Gray Box: –A Hardware Implementation and its Side Channels– | |
RU2603550C2 (ru) | Устройство обработки данных, способ обработки данных и программа | |
CN101009554A (zh) | 一种抗功耗攻击的字节替换电路 | |
Aldaya et al. | AES T-Box tampering attack | |
Battistello et al. | A note on the security of CHES 2014 symmetric infective countermeasure | |
CN104301095A (zh) | Des轮运算方法和电路 | |
JP5184659B2 (ja) | 秘密鍵を伴う電子暗号アセンブリを安全に守る方法 | |
CN104410490A (zh) | 非线性挤压保护密码s盒的方法 | |
KR102327771B1 (ko) | 테이블 기반 구현에서의 차수 2 이상의 dca 공격에 대응하는 방법 | |
Zhang et al. | Securing the AES cryptographic circuit against both power and fault attacks | |
Riyadi et al. | The Dynamic Symmetric Four-Key-Generators System for Securing Data Transmission in the Industrial Control System. | |
CN102158338A (zh) | 一种针对Twofish加密芯片的DFA分析方法及系统 | |
Disina et al. | All-or-Nothing Key Derivation Function Based on Quasigroup String Transformation | |
Yang et al. | LWED: Lightweight white-box encryption communication system for drones over CARX algorithm | |
Kim et al. | DES with any reduced masked rounds is not secure against side-channel attacks | |
Bucci et al. | Testing power-analysis attack susceptibility in register-transfer level designs | |
Liu et al. | Detecting side channel vulnerabilities in improved rotating S-box masking scheme—Presenting four non-profiled attacks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |