分组密码体制简介
- 格式:doc
- 大小:91.50 KB
- 文档页数:3
DES分组密码体制数据加密算法(DES)是由IBM公司于19世纪70年代早期开发的,后来在1977年由“美国国家标准局(NBS)”,即现在的“国家标准化和技术协会(NIST)”所采纳,并批准把它作为飞机要部门使用的资料加密标准。
自公布以来,DES便成为国际上商用保密通信盒计算机通信的最常用的加密算法。
当时规定DES的使用期限为10~15年,后来美国政府宣布延长它的使用期限,其原因有两条:一是DES当时尚未受到严重的威胁;二是一直没有新的资料加密算法问世。
DES在被采用后,大约每5年被评审一次。
DES的最后一次评审在1999年1月;这时它的一个替代品高级加密标准(Advanced Encryption Standand)已经开始使用了,这标志着DES即将退出历史舞台。
这样DES在国际通信保密的舞台上活跃了20余年的时间。
一、DES的特点描述DES的结构闪烁着人类设计思想的精华,其优点和缺点被密码学界淋漓尽致的讨论,以供后人借鉴。
可以说DES是当今研究的最彻底,理论最成熟的密码算法。
(1)DES在硬件中能比在软件中更有效地执行。
(2)DES使用了S盒,而S盒现在已经是几乎所有分组密码算法不可缺少的部分。
(3)DES轮函数结构是Feistel网络,这种结构现在已经是轮函数的经典结构之一。
(4)迭代分组密码是分组密码的主流设计。
(5)DES算法的第一个和最后一个部件都是公开的块置换,在已知明文攻击之下不起任何安全性作用。
以后设计的分组密码都纠正的这一缺点。
(6)DES的S盒设计细节始终没有公布,因此被人们怀疑设有陷门(即密码设计者为自己预留的破译信道)。
这种不透明的设计显然会影响其商业使用前景。
这一缺点引出了商用分组密码设计的一个准则——透明性,即密码的使用者能够确知该密码的安全强度。
二、DES算法描述1977年1月15日的联邦信息处理标准版46中(FIPS PUB46)给出了DES的完整描述。
DES 是一种特殊类型的迭代密码,称为Feistel型密码。
分组密码加密算法的常见算法结构随着计算机技术的不断发展,信息安全问题也越来越受到关注。
在信息传输过程中,数据的加密是保障信息安全的重要手段之一。
分组密码加密算法是一种常见的加密算法,它将明文数据分成若干个固定长度的分组,通过对每个分组进行加密来实现整个消息的加密。
本文将介绍分组密码加密算法的常见算法结构,以及它们的优缺点和应用场景。
1. 基本结构分组密码加密算法的基本结构由两个部分组成:明文分组和密文分组。
明文分组是指明文数据被分割成固定长度的块,每个块长度通常为64位或128位。
密文分组是指加密后的明文分组,长度与明文分组一致。
加密算法的核心是将明文分组转换为密文分组,这个过程称为加密。
解密的过程是将密文分组转换为明文分组。
分组密码加密算法的常见算法结构包括:ECB、CBC、CFB和OFB。
这些算法结构在加密和解密过程中采用不同的方式来处理明文和密文分组。
2. ECB模式ECB(Electronic Codebook)模式是最简单的分组密码加密算法结构,它将每个明文分组单独加密,得到对应的密文分组。
每个明文分组之间是独立的,因此ECB模式无法处理明文分组之间的关系。
这种模式的缺点是,它容易受到重放攻击,即攻击者可以拦截并重复发送相同的密文分组,从而获得明文数据。
ECB模式的优点是加密和解密过程简单,可以并行处理多个分组。
它适用于每个明文分组的安全性要求不高的情况,例如对称密钥的传输和存储。
3. CBC模式CBC(Cipher Block Chaining)模式是一种常见的分组密码加密算法结构,它采用前一个密文分组来加密当前的明文分组。
具体地,在加密过程中,首先将前一个密文分组和当前明文分组进行异或运算,得到一个新的数据块,然后对这个新数据块进行加密。
解密过程与加密过程相反,将密文分组解密后再与前一个密文分组进行异或运算,得到对应的明文分组。
CBC模式的优点是可以处理明文分组之间的关系,提高安全性。
分组密码的工作模式及其特点第一章分组密码1.1节分组密码的简述分组密码是将明文编码表示后的数字序列划分成长为m组,各组分别在密码的控制下加密成密文。
在相同的密钥下,通常得到的是与明文等长的密文分组,所以只需要研究任一祖的明文数字的变换规则。
这种密码实质上是字长为m的数字序列的代换密码。
1.2节分组密码简单模型1.3节分组密码的工作模型分类根据不同的应用环境,需要对分组密码的加密方式做一些修改,用来增强密码的安全性和适应性。
常见的工作模式包括:分组模式:电码本模式(EBC)密码分组连接模式(CBC)序列模式:输出反馈模式(OFB)密码反馈模式(CFB)计数器模式(CTR)1.4节分组密码的特点分组密码加解密速度较快。
明文,密文组长度为m,密文长度为t,密钥量为2 。
密文中的任意一位数字与该组明文所有数字均有关。
每组明文使用相同的密钥加密。
1.5节分组密码算法的问题和对策分组长度足够大问题:代换网络十分复杂,难以控制与实现。
对策:将分组划分为几个小段,分别设计这些小段的代换网络。
密钥量足够大问题:密码系统十分复杂,同样难以控制与实现。
对策:概率加权法:设计多个子系统,使用时随机抽取。
乘积密码法:设计多个子系统,对明文进行多次加密。
密码变换足够复杂问题:抗统计破译法的要求,难以简单实现。
对策:扩散法:将每一位明文和密钥数字的影响扩散到每一位密文数字。
混淆法:使明文与密文、密钥的统计特性复杂化。
第二章分组密码的工作模式2.1节分组密码的工作模式的简述分组模式的工作模式是指以某个分组密码算法为基础,来解决任意长度的明文的加密问题的方法。
从本质上来说,为了使算法更适应具体的应用的一种技术。
分组密码的工作模式:电码本模式(EBC);密码分组连接模式(CBC);输出反馈模式(OFB);密码反馈模式(CFB);计数器模式(CTR)这五种工作模式适用于不同的应用需求。
电码本模式(EBC)1.定义:ECB模式是将明文的各个分组独立地使用同一密钥加密,互不影响,最后统一拼接在一起,2.优点:(1)最简单,最直接的分组密码工作模式。
分组密码体制简介
分组密码体制也具有简捷、快速的特点,并且容易标准化,使其成为软硬件加密的主流算法。
目前主流的分组密码有:DES、IDEA…… .
1.分组密码的特点
与序列密码不同,分组密码是将明文序列划分成等长的分组(Block),对每一组用同一加密算法和同一密钥进行加密。
分组密码有其自身的优点,首先分组密码容易被标准化,因为在今天的数据网络通信中,信息通常是被成块的处理和传输的。
其次,使用分组赌东道密码容易实现同步,因为一个密码组的传输错误不会影响到其它的分组,丢失一个密文组不会对随后组的解密产生影响。
这就是说,传输错误不会扩散。
而这些方面恰恰是序列密码的最大缺点。
分组密码与序列密码相比的一个缺点就是算法庞大一些,需要更多的计算资源。
分组密码的另一大缺点是其安全性很难被证明。
尽管“可证明安全性”的研究发展很快,但目前的分组密码大多是“看来安全的”,还没有一个分组密码被证明是真正安全的,至多证明了局部安全性。
这其中的原因是:因商业化而要求分组密码算法的细节全部暴露,因此对分组密码的攻击类型很多,安全性概念也就很多,有人为了统一这些安全性概念,甚至引入了伪随机性和超伪随机性,它们是用概率图灵机来描述的,在实际设计和分析中很难应用。
2.分组密码的设计准则
一、安全性准则
对以下的安全性的描述总是基于以下的假设:加密体制(包括算法的细节)是公开的;安全性完全依赖于密钥;信道是不安全的,即攻击者可以任意的截取密文;攻击者有时也可以截取一些“废弃”的明文。
(1)分组长度和密钥长度:当明文分组长度为n比特时,至多需要2n个明文-密文对就可以彻底破解密钥。
同理当密钥长度为n比特时,对一个截获的密文,至多需要试验2n个密钥就可以破解了密文。
因此从安全性角度来考虑,明文分组长度的密钥长度因尽可能的大。
(2)混淆性:所设计的密码应使得明文、密文、密钥之间的依赖关系相当复杂,以至于这种依赖关系对密码分析者来说是无法利用的。
密码分析者利用这种依赖关系的方法非常多,比如差分密码分析、线性密码分析等,因此混淆性也是一个非常重要的原则。
(3)扩散性:所设计的密码应使得密钥的每一位数字影响密文的许多位数字,以防止对密钥的逐段破解;明文的每一位数字也影响密文的许多位数字,以便最充分的隐藏明文的统计特征。
对扩散性可以有许多种理解,比如“粘连性”指的是明文、密文、密钥每一位都互相依赖;“不连续性”或“雪崩性”指的是当改变明文的任何一个比特时,对应密文改变的比特的个数应是一个随机变量,其平均值是分组长度的一半。
(4)非线性度(抗线性密码分析强度):这一项属于混淆性。
有一个基本数学原理:如果明文和密文的关系是n维线性关系,且系数是密钥,则n个明文-密文对(而不是2n个)就可以破解密钥;如果明文与密文的关系是n维r次函数关系,且系数是密钥,则n r个明文-密文对就可以破解密钥;如果虽然次数r较大,但明文与密文的关系“非常逼近”一个n
维线性关系,则n个明文-密文对就可以“基本上”破解密钥。
这就是线性密码分析的思想,抗线性密码分析的强度就是非线性度。
(5)抗差分密码分析强度:这一项也属于混淆性。
如果明文差分与密文差分的关系比较简单,则可以进行差分密码分析,这种分析或许能部分的解密密钥。
(6)安全强度的稳定性:
还可以给出许多有关安全性的概念。
概括地说安全性就是从任何角度都难以攻破。
其中两个最重要的角度是:①对于一个正在使用的加密算法,即使攻击者获得“许多”精心选择的明文-密文对,他仍无法“接近”密钥,即可以抵抗选择明文攻击。
②即使攻击者获得“许多”精心选择的明文-密文对,他仍无法“接近”任一个新密文所对应的明文。
这里使用的“明文、密文、密码之间的依赖关系”这个术语,传统上的依赖关系是指函数关系和统计关系。
从安全性出发,希望函数关系尽可能复杂,其含义是使得精确破译尽可能困难;希望统计关系尽可能复杂,其含义是使得逼近破译尽可能困难。
二、简捷性准则
简捷性指的是分组密码算法在满足安全性要求的同时尽可能的简单快速。
如果分组密码算法用软件来实现,则要求子块长度尽可能自然的适应软件编程,比如8,16,32,64比特等。
在软件实现中,按比特置换通常是难以实现的,因此应该尽量避免使用它。
子块上的运算应该是易于软件实现的运算,最好使用一些标准的处理器所具有的一些基本指令,比如加法、乘法、移位等。
如果分组密码算法用硬件来实现,则尽量使用规则结构,以便用超大规模集成电路(VLSI)来实现。
三、有效性准则
四、透明性和灵活性准则
透明性即要求算法是可证明安全的。
如果使用迭代分组密码,其安全强度于迭代次数的关系尽可能明确和容易分析。
这就要求算法尽可能使用通用的部件,避免黑盒。
灵活性即要求算法的实现可以适应多种计算环境;明文分组长度可以伸缩;算法可以移植和变形。
五、加解密相似性准则
加解密相似即加密算法和解密算法相同,仅仅密钥的编排不同。
这就是说,如果记E(·,k)和D(·,k)为使用密钥k的加密算法和加密算法,则对于任意密钥k,存在密钥k*,使得D(·,k)=E(·,k*)。
加解密相似性的好处是大大节省存储空间和其它计算资源,并大幅降低成本。
这也是分组密码设计所追求的一个方向。
六、关于密钥的长度
对于密钥长度的各种要求是相互矛盾的。
安全性要求长的密钥,特别是多轮迭代分组密码需要很长的密钥;而简捷性和密钥本身的保密性要求密钥尽量的短。
在分组密码算法中通常的做法是:通信双方共享一个短密钥,成为密钥种子,实际加密时用一个公开的扩散算法将种子扩散成足够长的密钥。
因此有以下的考虑:
①对手未知的只是密钥种子,过短的密钥会使穷举密钥攻击成为可能;
②一个密钥扩散算法实际上是一个伪随机序列发生器,改发生器的优劣对分组密码的安全性优一定的影响。
一般认为只要分组密码算法本身足够坚强,密钥扩散算法并不太重要。
不过仍有针对密钥扩散算法的弱点进行的攻击,称为“密钥相关攻击”。
通常的密钥扩散算法是附属于密钥算法的,利用分组密码算法的某些运算部件简单的搭建而成,当然不能指望所生成的密钥具有序列密码一样的安全性,但为抵抗密钥的相关性攻击,希望所生成的密钥的任一个比特依赖于密钥种子的每一个比特
总之,以上的各设计准则中,安全性是第一位的。