第1章分组密码概述
1.1分组密码的发展历程
随着科学技术的不断进步,计算机和通信等已经得到了广泛的应用和发展,人们正享受着网络带来的巨大利益.然而,也同样是因为科学技术的不断进步,人们对信息的安全存储、安全处理和安全传输的需要越来越迫切.特别在互联网和物联网的应用中,个人通信、办公自动化、电子自动转账支付系统和自动零售业务网的建立与实现等很多方面,信息的安全保护问题已经显得十分突出.当前,信息安全问题对国家安全、社会安全、经济安全和军事安全都已经构成很大的威胁,人们正面临着信息安全的巨大挑战.
密码技术作为一项基本技术是通信安全的基石,也是各类信息安全技术的基础.它由各种各样的密码算法来具体实施,以尽量小的代价提供尽量大的安全保护.密码技术应用于保护军事和外交通信的历史可以追溯到数千年前,我国著名兵书《六韬》中就有姜太公将钓鱼竿折成不同长度表示不同信息的记载.另外,在公元前1世纪,据说凯撒大帝就曾用过极简单的代换式密码,在这种密码中,每个字母都由其后的第三个字母(按字母顺序)所代替.比如对“block cipher”加密得到的密文就是“eorfa flskhu”.这个简单的代换密码系统就是著名的凯撒密码.尽管密码技术有着悠久的历史,但是密码真正成为一门科学的时间并不长.1949年,信息论之父Shannon发表的论文aCommunicationTheory of Secrecy Systems”[341为密码学建立了数学基础,而微电子学的发展又为实现当时的密码学思想提供了实际手段,从此,密码学成为一门科学.为解决通信网络中的信息安全问题,Diffie与Heilman在1976年发表了“New Directions in Cryptography”[13],该论文提出的非对称(公钥)密码思想直接引发了密码学史上的一场革命,为密码学提供了新的理论和技术基础.1977年,随着美国DES算法(Data Encryption Standard)的颁布,人们开始公开研究各种密码算法的安全性.自此,现代密码学理论研究和工程应用都进入了疾驰的快道,密码理论得到了长足的发展,序列密码、分组密码、公钥密码和量子密码等现代密码新理论与新方法不断涌现,密码学进入了一个薪新的时代.
分组密码是对称密码学中的一个重要分支,在信息安全领域发挥着极其重要的作用.分组密码的主要研究内容包括算法设计和算法分析这两个既相互对立,又相互统一的方面.一方面,针对已有的密码分析手段,密码设计者总希望设计出可以抵抗所有已知攻击的密码算法;另一方面,对于一个密码算法,密码分析者总希望可以找到算法的安全缺陷并试图破译这些算法.这两个方面共同促进了分组密码相关领域的发展.
分组密码的设计理念主要来源于Shannon的**论文“CommunicationTheory of Secrecy Systems”[34],对分组密码的公开研究则始于20世纪70年代末数据加密标准DES算法的颁布,分组密码理论及应用的发展则得益于20世纪90年代末美国的高级加密标准(Advanced Encryption Standard,AES)丨3计划和21世纪初欧洲的NESSIE(New European Schemes for Signatures,Integnity and Encryption)计划.
1949年,Shannon从抵抗统计攻击的角度出发,提出了设计对称密码算法的“混淆”与“扩散”准则网,这一准则至今仍是设计分组密码所要遵循的重要原则之一.除此之外,他还创造性地从信息论的角度构建数学模型来研究密码,提出了“完善保密性”“唯一解距离”和“随机密码”等诸多概念,从而将密码学提升到了科学的范畴.尽管如此,但是在20世纪70年代以前,民间对分组密码的研究很少,分组密码的研究文献微乎其微,其理论研究相对滞后.
1977年,美国国家标准局(National Bureau of Standards,NBS)公布了著名的数据加密标准DES算法.尽管DES算法正逐步退出历史舞台,但它对分组密码理论的发展起到了举足轻重的作用:*先,DES算法的公布促使了民间对分组密码理论的研究,揭开了分组密码设计与分析神秘的面纱,从此分组密码的发展步入了快车道;其次,通过对DES算法安全性的研究,分组密码的安全评估理论日渐成熟,*突出的成果包括差分密码分析和线性密码分析两个方面的成果.
1990年在国际密码学会议(CRYPTO,简称“美密会”)上,Biham等发表了对DES算法差分分析的论文R这篇文章发表后,密码学界用差分密码分析的方法对几乎所有已知的密码算法进行了安全性分析;1993年在欧洲密码学会议(EUROCRYPT,简称“欧密会”)上,Matsui公布了对DES算法线性密码分析的结果随后利用各种技巧,人们改进了对DES算法的差分和线性密码分析的结果,指出完整的16轮DES算法对差分和线性密码分析都是不免疫的.
计算机技术的发展是促使密码学不断进步的又一重要因素.计算机技术,特别是并行计算和分布式计算的发展使得穷举搜索DES算法的56比特密钥成为可能,加上差分密码分析和线性密码分析技术的出现,DES算法逐渐不能满足人们的安全需求.1997年,美国国家标准与技术研究院(National Institute of Standards and Technology,NIST)发起了一场用于保护敏感联邦信息的对称密码算法的征集活动,即AES计划[气1998年,NIST宣布接受来自全球不同国家和地区的十五个候选分组密码算法并邀请全球密码界协助评估这些候选算法.NIST考察了这些初步的研究结果,选定MARS[5],RC6[33],Rijndael,SerpentW和Twofish五个算法进入决赛.经过公众对决赛算法的进一步分析和评论,2000年,NIST决定**Rijndael作为高级加密标准.
欧洲于2000年启动了NESSIE计划以适应21世纪信息安全发展的全面需求.该计划为期三年,总投资264万欧元,主要目的就是通过公开征集和进行公开透明的测试与评估,提出一套髙效的密码标准,以保持欧洲工业界在密码学研究领域的领先地位.2003年,NESSIE工作组公布了包括分组密码、公钥密码、认证码、Hash函数和数字签名等在内的十七个标准算法,其中MISTY1,Camellia,SHACAL-2三个分组密码算法连同AES算法一起作为欧洲新世纪的分组密码标准算法.
在AES计划和NESSIE计划中,密码学界对分组密码的设计与分析理论都进行了广泛而深刻的研究,分组密码理论日趋完善,人们对设计出安全高效的分组密码算法较有信心.正因如此,在SHA-3计划W中,超过半数的Hash函数都采用了分组密码的设计理念,甚至直接采用分组密码的组件.随着SHA-3计划的实施,分组密码的设计与分析理论得到了更进一步的发展.
近年来,随着物联网技术的发展,很多特殊场合要求密码算法具有低面积、低功耗和低延迟等性质,因此轻量级密码算法的设计是近年来的研究热点问题.另外,在安全多方计算、零知识计算等场景下,基于二元域设计的密码算法可能并非*佳选择,因此在奇特征域上设计安全分组密码算法也是近年的研究热点.
1.2分组密码的设计模型
记F2为二元有限域,和分别为上的和维向量空间,则一个以为明文和密文空间、为密钥空间的分组密码可以表示为如下两个映射:
上述两个映射满足对任意和均为上的置换,且这两个
置换互逆.此时,和分别被称为密k控制的加密算法和解密算法,有时也被记作和.
1.2.1分组密码的设计原则
分组密码的设计通常兼顾安全性原则和实现原则.
安全性原则主要包含混淆原则、扩散原则和抗己知攻击原则.混淆原则是指所设计密码的明文、密文和密钥三者之间的依赖关系非常复杂以至于攻击者无法理出相互之间的关系,从而这种依赖性对密码分析者来说是无法利用的;扩散原则是指所设计密码应该使得明文和密钥的每一位比特影响到每一位密文比特,从而便于隐蔽明文的统计特性,该准则强调的是输入比特的微小改变将导致输出比特的多比特变化;抗已知攻击原则是指所设计密码应该抵抗已有的各种攻击方法.
实现原则是指算法具体实现时,应该在不同的软硬件平台上均要有良好的性能表现.因此为使密码算法在软件平台具备较好的实现性能,应尽可能使用块运算和简单的运算,比如采用8,16和32位的字进行模加运算、循环移位运算和异或运算等;为了使密码算法在各类硬件平台具备较好的实现性能,则会采用拉线实现等等.
1.2.2什么是一个好的密码
分组密码的设计就是找到一种算法,能在密钥控制下从一个足够大且足够好的置换子集中简单且迅速地选出一个置换,用来对当前的明文进行加密变换.如前文所述,一个好的分组密码应该是既难破译又容易软硬件实现.即是说,给定明文;或密文,以及密钥k时,加密算法和解密算法容易计算.密码算法难破译主要是指在特定条件下,难以获取密码算法的密钥或者伪造密文.比如在已知的情况下,根据和求解计算不可行;或者在已知若干明密文对的前提下,无法以明显概率优势预测出某个明文对应的正确密文.
粗略地讲,若算法E能够将具有特定规律的字符串变换为“看似”随机的字符串,则称该算法为一个好的密码算法.比如我们知道,在英文中,字母e的出现频率相比较于其他字母要明显高出很多.如前文所述,当我们用凯撒密码加密时,由于加密仅为字母的一一对应,因此从统计的角度看,必然有另一个字母出现的频率明显高于其他字母,从而可以猜测出凯撒密码中的字母对应关系.故从现代密码学的角度看,凯撒密码并不是一个好的密码算法,因为该算法保留了“某个字母频率明显高于其他字母”的统计特征.
设五是由控制的分组密码.若对任意具有某种统计规律P的集合不存在与k无关的统计规律,则称是一个好的分组密码.
反之,设是任意随机置换,是一个具有统计规律P的集合.若对任意的,针对与密钥无关的性质统计可区分,则E不是一个好的分组密码,称为算法E的一个区分器.
通俗地讲,密码分析的一个主要任务就是研究的性质,构造具有某种统计规律的集合使得集合存在与密钥无关且与随机置换可区分的某种统计规律.
展开