密码体制可以用一个七元组来表示:(M,C,K,K',ζ,ε,ν)。其中:
●C表示密文消息空间,所有可能的密文消息集合。
●K为加密密钥空间,K'为解密密钥空间。
●有效的密钥生成算法ς:N→K×K'。
●有效的加密算法ε:M×K→C。
●有效的解密算法υ:C×K'→M。
对于整数1l,ς(1l)输出长为l的密钥对(ke,kd)∈K×K',对于ke∈K和m∈M,将加密变换表示为c=εke(m),称为m在密钥ke下加密得到c;将解密变换表示为m=υkd(c),称为c在密钥kd下解密得到m。对于所有的m∈M和所有的ke∈K,一定存在kd∈K':υkd(εke(m))=m。
在密码体制的定义中,如果kd=ke,即加密密钥与解密密钥相同,称为对称密码体制(Symmetric Cryptosystem)或单钥密码体制(One-key Cryptosystem)。如果加密和解密使用不同的密钥,即对于每一个ke∈K,存在kd∈K',这两个密钥是不同的并且互相匹配;加密密钥ke公开,称为公钥,ke的拥有者可以使用相匹配的私钥kd来解密在ke下加密过的密文。kd≠ke的密码体制称为非对称密码体制(Asymmetric Cryptosystem)或公钥密码体制(Public Key Cryptosystem),亦称双钥密码体制(TwoKey Cryptosystem)。
在单钥密码体制下,必须通过安全可靠的途径将密钥送至接收端,系统的保密性取决于密钥的安全性。因此,在单钥密码体制下,密钥的产生和管理是一个重要的研究课题,即如何产生满足保密要求的密钥以及将密钥安全可靠地分配给通信对方。密钥的产生、分配、存储、销毁等都是密钥管理的范畴。再好的密码算法,一旦密钥管理出现问题,就很难保证系统的安全性。
按照对明文消息进行加密的方式,单钥密码体制可分为两类,即流密码和分组密码。流密码(Stream Cipher)是明文消息按字符进行逐位加密,分组密码(Block Cipher)是将明文消息分组(如128位一组)进行加密。在无线网络安全技术中,流密码(如RC4)和分组密码(如DES和AES)都是重要的加密技术。在这里,重点介绍几种常用的分组密码算法。
1.分组密码的基本原理
分组密码及其应用的研究始于20世纪70年代中期,至今已有几十年的历史。其间,各国学者对分组密码的理论、技术和应用进行了大量的探讨和研究,提出了众多的分组密码算法,如IDEA、FEAL、RC-5、GOST等,使分组密码的理论与技术日臻完善,为分组密码的应用开辟了广阔的前景。
分组密码是将明文消息编码表示后的数字序列x0,x1,…,xi,…划分成长为n的组x=(x0,x1,…,xn−1),各组长为n的矢量分别在密钥k=(k0,k1,…,kt−1)的控制下变换成长度为m的输出数字序列y=(y0,y1,…,ym−1),如图2-5所示。
图2-5 分组密码示意(www.xing528.com)
分组密码与流密码的不同之处在于输出的每一位数字不是只与相应时刻输入明文数字有关,而是与一组长为n的明文数字有关。在相同密钥下,分组密码对长为n的输入明文组所实施的变换是相同的,所以只需研究对任意一组明文数字的变换规则。这种密码实质上是对字长为n的数字序列的代换密码。
2.分组密码的安全性
在分组密码发展的几十年间,密码分析和密码设计始终是相互竞争和相互推动的,对分组密码安全性的讨论也越来越多。一些在当时被认为是安全的算法,随着时间的推移和密码攻击方法、能力的提高,已被攻破。例如已广泛使用了几十年的数据加密标准DES,在1997年6月18日,被美国科罗拉多州的一个以Rocke Verser为首的工作组破译,该破译小组成员利用美国和加拿大联网于Internet上的数万台个人微机的空闲CPU时间,采用“穷举搜索”技术进行破译。本次破译成功宣布了DES的不安全性,同时促使NIST推出新的高级加密标准——AES。目前对分组密码算法安全性的讨论包括差分分析、线性分析、穷举搜索等几个方面。从理论上讲,差分分析和线性分析是目前攻击分组密码的最有效的方法;而从实际上说,穷举搜索等强力攻击是攻击分组密码的最可靠方法。截止到现在,已有大量文献对分组密码的设计和测试进行研究,并归纳出许多有价值的设计和安全性准则。
目前常见的对分组密码的技术攻击方法如下。
(1)强力攻击
在唯密文攻击中,密码分析者依次使用密钥空间中的所有密钥来解释一个或多个截获的密文,直至得到一个或多个有意义的明文块。在已知(选择)明文攻击下,密码攻击者试用密钥空间中的所有可能的密钥对一个已知明文加密,将加密结果同该明文相应的已知密文比较,直至二者相符,然后再利用其他几个已知明密文对来验证该密钥的正确性。实际上,强力攻击适合于任何分组密码。
(2)线性攻击(也称线性分析)
线性分析是一种已知明文攻击方法,最早由Matsui在1993年提出,该攻击主要利用了明文、密文和密钥的若干位之间的线性关系。它用于攻击DES的复杂度约为243。
(3)差分攻击(也称差分分析)
差分攻击是一种选择明文攻击方法,最早由Biham和Shamir在1990年引入,该算法主要是利用了明文对的特殊差分对相应的密文对差分的影响,通过分析某个(些)最大概率差分来确定可能密钥的概率并找出最可能的密钥。差分攻击是目前用于攻击分组密码最强有力的方法之一。它用于攻击DES的复杂度约为247。
(4)相关密钥攻击(也称相关密钥密码分析)
类似于差分分析,这种方法利用密钥的差分来攻击分组密码,这是因为Biham证明了许多分组密码的密钥编排算法明显保持了密钥间的关系。显然,这种攻击的方法与分组密码的迭代轮数和加密函数无关。
(5)中间相遇攻击(Meet-in-the-middleAttack)
中间相遇攻击是一种适用于多重加密下的已知明文攻击。已知P1,C1=EK2(EK1(P1)),P2,C2=EK2(EK1(P2)),遍历所有的K(K1或K2),密码攻击者分别计算EK(P1)并存储加密结果,计算DK(C1),在存储表中搜索与之相同的结果。此时,当前密钥很可能是K2,而存储表中的相应密钥很可能是K1。最后再用可能的K1、K2加密P2,若加密结果为C2,则认为K1、K2就是当前密钥。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。