背景1949年,香农的《通信的数学理论》[9]是现代密码学的理论基础,也标志着密码算法的重心向应用数学转移。论文提出分组密码算法应遵循混淆(Confusion)和扩散(Diffusion)两个原则,密码体制的完美保密性,以及“产品”密码体制。其中,“乘积”密码体系对Feistel提出的Feistel密码结构具有指导意义。Kerckhoffs原则[7]是由Kerckhoffs在19世纪提出的:即使知道密码系统的任何细节,只要密钥(key,也称为秘钥或秘钥)不泄露,就应该是安全的。香农有一句类似的话:敌人知道系统,这叫做香农公理。在密码学中,公钥密码学和对称密码学被用于保护数据的机密性,如图1所示。图1密码学公钥密码学:Whitefield和MartinHellman提出了Diffie-Hellman密钥交换协议/算法(Diffie-HellmanKeyExchange/AgreementAlgorithm)于1976年[4],公钥密码学开始发展。公钥密码术是一种加密密钥公开而解密密钥保密的密码术。公钥密码学安全性的理论基础是计算复杂度理论。公钥密码学的安全性是指计算安全性,通常是根据具体数学问题的计算难度来设计的,主要包括大整数因式分解的难度、有限域上离散对数的难度、椭圆的加法群等。曲线。上离散对数的难解性等。第一个比较完善的公钥密码算法是Rivest、Shamir和Adleman于1978年提出的RSA[8]公钥密码算法,其安全性是基于大整数因式分解的难度.对称加密:与公钥密码体制相比,对称加密算法简单高效,适用于加密大量数据。对称加密算法使用相同的密钥进行加密和解密。对称加密算法的安全性取决于加密密钥的安全性。对称加密算法的优点在于加解密速度快,使用长密钥时破解难度大。对称密码根据对明文加密的方式不同,可分为流密码和分组密码。分组密码(blockcipher)的数学模型是将明文消息按照分组密码的块长度划分成固定长度的信息块,每个信息块在钥匙。对称加密算法的轮函数f包括子密钥运算、线性运算和非线性运算三部分。其中,非线性运算主要是混淆,线性运算主要是扩散。通过多次迭代轮函数f来实现高安全强度(图2)。分组密码易于在软件和硬件上实现,不需要同步,因此在现代密码产品和分组交换网络中得到广泛应用。图2BlockCipherAlgorithm对称密码算法基于以下两种原语操作:1.混淆:是一种使密钥与密文之间的关系尽可能模糊的加密操作;2.扩散):是一种加密操作,将一个明文符号的影响力扩散到多个密文符号,以隐藏明文的统计特性。根据算法结构的不同,分组密码可以分为两大类:Feistel结构和SPN结构。FeistelstructureBlockcipherwithFeistelstructure:令F为轮函数;设K1,K2,...,Kn分别为第1,2,...,n轮的子密钥。那么基本的构造过程如下:1.将明文信息分成两块:(L0,R0);2.在每一轮中,执行以下计算(对于当前轮数):Li+1=Ri;Ri+1=Li⊕F(Ri,Ki);Feistel结构(图3)一次只有一半的数据进入F函数。以不同的方式使用它。Feistel结构的优点是加解密方式相同,节省资源;缺点是扩散速度慢,通常需要更多的迭代才能达到一定的安全级别。Feistel结构的代表算法有DES算法、ISO/IEC国际标准算法Camellia、Blowfish、NTT公司的DES算法在软件应用中的FEAL算法、我国商用分组密码标准SM4等。图3Feistel结构DES(DataEncryptionStandard,DataEncryptionStandard)是一种使用密钥加密的分组密码算法。它被用于非机密的政府通信,然后该算法在国际上广为流传。DES设计中使用了密码算法设计的两个原则:混淆和扩散,并使用乘积密码的概念来近似理想的分组密码。目的是抵抗对手对密码系统的统计分析[10],包括卡西斯基测试法和重复指数法。由于其DES包相对短、密钥短、运算速度慢等自身原因,以及计算机计算能力的提高,线性分析[5]、差分分析[1]等分析方法的发展,DES的安全性受到很大影响。威胁。3DES(TripleDES)是一种从DES过渡到AES的加密算法。它使用两个56位的密钥对数据进行三次加密,密钥长度变为112位。加密过程是加密-解密-加密,解密过程是解密-加密-解密。与原来的DES相比,3DES更安全。图4DES算法置换-置换网络(Substitution-PermutationNetwork,SPN)结构SPN结构(图5)的密码算法一次处理所有数据。与相同长度的分组密码算法相比,SPN结构与Feistel结构的F轮函数相比,Feistel结构的F函数处理的数据长度是SPN的F函数的一半结构。与Feistel结构相比,SPN结构具有更好的扩散性;但是加解密的不对称性造成了一定程度的执行资源浪费。SPN结构的代表算法有AES、Serpent、韩国加密标准ARIA等。图5Substitution-PermutationNetwork(SPN)结构EBiham和AShamir于1991年提出差分分析[1],Matsui于1994年提出线性分析后[5],同时也伴随着计算机计算能力的不断提高,组长64bit、16轮异或、置换、置换、移位Feistel结构的DES无法保证足够的安全性。1997年4月15日,美国ANSI推出了AES(高级加密标准)集合[3][11],旨在寻找一种对称加密算法来替代DES。比利时密码学家JoanDaemen和VincentRijmen提出的Rijndael成为获胜者,Rijndael采用了SPN结构,它是基于宽径策略(widetrailstrategy)设计的,可以很好的抵抗差分密码分析和线性密码分析。AES的非线性分量是一个8位的S-box,具有较好的差分传播特性,线性分量通过小MDS矩阵和置换的组合实现大MDS矩阵的最佳扩散。高级加密标准(AES)[2]由美国国家标准技术研究院(NIST)于2001年11月26日在FIPSPUB197[6]中发布,并于2002年5月26日生效的标准。2006年,高级加密标准成为对称密钥密码学中最流行的算法之一。AES可以在软件和硬件上快速加解密,实现简单,占用内存小。图6SPN结构的密码算法注意事项:(1)乘积密码是指两个或多个基本密码系统依次执行,使得最终结果的密码强度高于每个基本密码系统产生的结果.(2)乘积密码是指将两个或多个基本密码体制依次执行,使得最终结果的密码强度高于各个基本密码体制产生的结果。(3)KerckhoffsPrinciple指出密码系统的安全性必须仅取决于其密钥的选择;其他所有内容(包括算法本身)都应视为公共知识。(4)Kasiski测试方法[10]的思想是确定一个用周期性多表密码加密的密文中所有重复的字母串,计算它们之间的距离,并对这些距离进行因式分解,出现频率最高的因子很可能是密钥的长度。(5)重复索引法[10]利用随机文本与英文文本的统计概率差异来分析密钥长度。参考文献:[1]EliBiham和AdiShamir。des-like密码系统的差分密码分析。InAdvancesinCryptology-CRYPTO’90,第10届年度国际密码学会议,美国加利福尼亚州圣巴巴拉,1990年8月11日至15日,会议记录,1991年[2]J戴门。Aes提案:Rijndael,aes算法提交。http://www.nist.gov/CryptoToolkit,1999。[3]JoanDaemen、VincentRijmen和KatholiekeUniversiteitLeuven。AES提议:Rijndael。1998.[4]W.Diffie和M.Hellman。密码学的新方向。IEEE信息论汇刊,22(6):644–654,1976.[5]松井充。descipher(iii)的线性密码分析方法。在加密技术的理论和应用研讨会上,密码学进展,1995.[6]美国国家标准技术研究院。高级加密标准(aes)。https://csrc.nist.gov/publications/detail/fips/197/final,2001.[7]FabienA.P.Petitcolas。Kerckhoffs的;原理,第675-675页。斯普林格美国,波士顿,马萨诸塞州,2011.[8]R.L.Rivest、A.Shamir和L.Adleman。一种获取数字签名和公钥密码系统的方法。ACM通讯,21(2):120–126,1978.[9]C.E.香农。通信的数学理论。贝尔实验室技术期刊,3(9):31–32,1950.[10]M邮票和R低。应用密码分析:在现实世界中破解密码。Wiley-Interscience,2007.[11]山姆·特伦霍姆。aes加密算法。https://www.samiam.org/rijndael.html。
