欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    现代对称密钥密码.ppt

    • 资源ID:5367183       资源大小:2.07MB        全文页数:145页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    现代对称密钥密码.ppt

    1,信息安全原理与应用第三章 现代对称密码,对称密钥密码,概念:指的是这样一种密码体制,在这种密码系统里,加密和解密过程使用相同的密钥。即信息的发送方和接收方用同一个密钥去加密和解密数据。它的优势是加密/解密的速度快,适用于 对大量数据进行加密/解密,但劣势是对密钥的管理困难。本章将要讨论两类对称密钥密码:分组密码和流密码。,对称密钥密码,分组密码:明文消息按照一定长度(如64bit、128bit等)进行分组,每组都使用完全相同的密钥进行加密,产生相应的密文。一个明文分组被当作一个整体来产生一个等长的密文分组。相同的明文分组不管处在明文序列的什么位置,总是对应相同的密文分组。即密文仅与给定的密码算法和密钥有关,而与被处理的明文数据段(明文分组)在明文中所处的位置无关。,对称密钥密码,流密码:又称为序列密码,是一种针对比特流的重要加密方法,这种密码每次只对二进制序列的一个比特(即一位)进行加密。流密码的核心是:创建密钥流的随机比特串,然后将明文比特和密钥流比特逐位组合在一起,最后生成的比特串就是密文。加密时,将密钥流S与明文P逐位做异或(XOR)运算,生成密文C;解密时,将密文C与密钥流S逐位做异或(XOR)运算,恢复成明文P。,5,内容提要,对称分组密码的设计原理与方法数据加密标准DES其它现代对称分组密码分组密码的操作模式加密的位置流密码,6,三个安全设计原则,对称分组密码先将明文消息用二进制编码表示,然后再将编码后的数字序列划分成若干个长度为n的分组(简称“明文分组”),每个分组分别在相同的密钥控制下按照一定的算法变换成等长的输出数字序列(简称“密文分组”)。分组加密算法本质上体现了n位明文分组和n位密文分组的一一映射。分组大小n的选择 1)如果n较小,则得到的明文空间和密文空间有限,容易受到“统计分析”方法的攻击。2)如果n充分大,则由于得到的明文空间和密文空间足够大,明文的统计特征将被掩盖,可以抵抗“统计分析”方法的攻击;但同时也将导致密钥数目的急剧增加和密钥空间的急剧增大,这会给密钥的分配、管理和存储带来很大的困难。,一般的,对于n位分组的对称分组密码,不同变换的总数为(2n)!,也就是说,密钥的个数为(2n)!个。,7,对称分组密码设计的安全原则,分组长度足够大。使明文分组的个数足够多,以抵抗“统计分析”攻击。密钥数量足够多。能抵抗“穷举密钥”攻击,但又不能过长,以利于密钥管理。还要尽量消除弱密钥,使各个密钥的出现等概率。密码算法要足够复杂。充分实现明文与密钥的“混淆”和“扩散”,以抵抗各种已知攻击。,8,两个基本设计方法,由于对称分组密码的缺点是不善于隐藏明文的统计特性,因而对“统计分析”攻击方式的抵御能力不强,故Shannon提出了两个抵抗“统计分析”的方法:混淆和扩散。混淆:目的是为了隐藏明文和密文之间的关系,增加密钥和密文之间关系的复杂性。可以使用“代替”的方法来实现。扩散:目的是让密文没有统计特征,也就是将明文中的统计信息散布到整个密文中,增加密文与明文之间关系的复杂性,以挫败推测出密钥的尝试。可以使用“置换”的方法来实现。,两个基本设计方法,代替置换网络(S-P网络)结构1949年,Shannon提出了“代替置换网络”的思想,这是构成现代分组密码的基础。S-P网络基于密码学的两个基本操作:代替和置换。代替被称为S盒(S-box),提供了信息的混淆;置换被称为P盒(P-box),提供了信息的扩散 在对称分组密码中,同时运用了“混淆”和“扩散”的设计方法。,分组密码的发展历史,1973年5月,美国联邦政府提出征求在传输和存储数据中保护计算机数据安全的密码算法的建议;1975年3月,美国国家标准局(NBS)首次公布IBM公司提出的算法Lucifer中选;1977年1月,NBS正式向社会公布,采纳IBM公司设计的方案作为非机密数据的数据加密标准(Data Encryption Standard)。DES正式成为美国联邦政府信息处理标准,即FIPS-46标准,同年7月开始生效。1983年,国际标准化组织(ISO)也将DES作为数据加密标准,称为DEA-1。此后,每隔5年美国国家保密局(NSA)对DES作新的评估,并重新审定它是否继续作为联邦加密标准。最近的一次评估是在1994年1月,决定从1998年12月以后,DES将不再作为联邦数据加密标准。,11,内容提要,对称分组密码的设计原理与方法数据加密标准DES其它现代对称分组密码分组密码的操作模式流密码,12,内容提要,DES的产生与应用Feistel密码结构对DES的描述对DES的讨论,13,DES的产生,1973年5月15日,NBS开始公开征集标准加密算法,并公布了它的设计要求:(1)算法必须提供高度的安全性(2)算法必须有详细的说明,并易于理解(3)算法的安全性取决于密钥,不依赖于算法(4)算法适用于所有用户(5)算法适用于不同应用场合(6)算法必须高效、经济(7)算法必须能被证实有效(8)算法必须是可出口的,DES的应用,1979年,美国银行协会批准使用DES。1980年,美国国家标准协会(ANSI)将DES作为私人使用的标准,称为DEA。1983年,国际化标准组织(ISO)将DES作为国际数据加密标准,称为DEA-1。,15,内容提要,DES的产生与应用Feistel密码结构对DES的描述对DES的讨论,DES算法的整体结构 Feistel密码结构,Feistel密码结构是由Horst Feistel在设计Lucifer分组密码时发明的,并因DES的使用而流行。Feistel密码结构是分组密码设计的一个原则,而不是一种特殊的密码。许多分组密码都采用了Feistel结构。对一个分组长度为2w比特的n轮Feistel密码结构(对DES算法,分组长度为64bit,轮数是16轮)其加密过程如下:,DES算法的整体结构 Feistel密码结构,(1)给定明文分组P,将P分为长度相等的左右两部分,分别记为L0和R0。即P=L0R0。(2)进行完全相同的n轮迭代运算。(3)n轮迭代运算后,先将左右两部分互换得到Rn和Ln,再将这两部分组合生成密文分组C,即C=RnLn。,Feistel密码结构,Ln+1=RnRn+1=Ln,DES算法的整体结构 Feistel密码结构,每一轮的迭代算法 加密:对于每一轮 i=1,2,.,n,新的左右部分根据如下规则重新计算:Li=Ri-1 Ri=Li-1F(Ri-1,Ki)解密:对于每一轮 i=n,n-1,.,1,新的左右部分根据如下规则重新计算:Ri-1=Li Li-1=RiF(Li,Ki),DES算法的整体结构 Feistel密码结构,说明:F是轮函数 F(Ri-1,Ki)=p_box(S_boxes(Expand(Ri-1),Ki)F(Li,Ki)=p_box(S_boxes(Expand(Li),Ki)其中:p_box:P盒 S_boxes:S盒 Expand:扩展置换,DES算法的整体结构 Feistel密码结构,说明:Ki是第i轮的子密钥(subkey)。子密钥是由种子密钥K通过密钥扩展算法产生的。对于DES来说,种子密钥K为64bit,由K产生的子密钥Ki为48bit,在16轮迭代运算中,每一轮的子密钥Ki均不同。Feistel密码结构的优点在于所有密码的安全性问题可以转化为轮函数F的问题,故分析的重点可以集中在轮函数F上。,DES算法的整体结构 Feistel密码结构,基于Feistel结构的分组密码算法的特点(1)分组长度(2w):分组长度越大安全性越高,但会导致加密/解密速度下降,故应选择合理的分组长度。(2)密钥位数(K):密钥位数越大安全性越高,但会导致加密/解密速度下降。现在通常使用的密钥长度是128bit。(DES使用的密钥长度为64bit)(3)循环次数/轮数(n):多轮加密可以提高安全性。(DES轮函数的迭代次数为16次)(4)子密钥产生算法(Ki):算法越复杂,就越增加密码分析的难度。(5)轮函数(F):轮函数越复杂,越增加密码分析的难度。,DES算法的整体结构 Feistel密码结构,分组密码算法设计上的特点(1)能够用软件快速实现加密算法和解密算法。(2)易于分析,便于掌握算法的保密强度以及密钥的扩展方法。,24,内容提要,DES的产生与应用Feistel密码结构对DES的描述对DES的讨论,DES(Data Encryption Standard)是“数据加密标准”的缩写。DES是基于Lucifer密码设计的,Lucifer密码是IBM公司提出的一种基于Feistel密码结构的密码。从Lucifer转变成DES的过程(1)密钥长度从原来的128位减少到64位,并且64位密钥中的8位在实际使用中是没有作用的,只是用来进行奇偶校验。如果采用“穷举搜索”密钥 的攻击方法进行破译,虽然工作量从2128减少到256,但实际56位密钥的DES的强度与拥有更长密钥的 Lucifer的强度是相当的。(2)对S盒进行置换,即S盒的改变。对于S盒的改变增强了DES算法抵抗密码攻击的能力。,DES密码的特点(1)DES是一种对二进制数据进行加密/解密的算法。(2)DES的明文分组长度为64bit,得到的密文分组长度也为64bit。(3)使用的密钥长度为64bit。其中有效密钥长度为56bit,有8bit用于奇偶校验。(4)DES的加密过程与解密过程相似,但子密钥Ki的使用顺序正好相反。加密时,使用顺序为K1,K2,.,K16;解密时,使用顺序为K16,K15,.,K1。(5)DES整个密码体制是公开的,系统的安全性完全取决于密钥的保密。(6)DES同时使用了“混淆”和“扩散”两种分组密码设计的基本方法。,DES每一轮使用48位的子密钥Ki,每个子密钥都是由56位密钥构成的集合中的子集构成的。DES是基于Feistel结构的密码,因此它的加密/解密过程与Feistel密码结构一样。对于轮函数F的要求:(1)通常是一个多阶段的乘积变换;(2)与子密钥Ki相关;(3)是非线性变换,且不要求可逆;(4)实现对密码分析的扰乱,是密码设计 安全性的关键。,对于DES的轮函数F,可以写成如下形式:F(Ri-1,Ki)=p_box(S_boxes(Expand(Ri-1)Ki)其中:p_box:P盒 S_boxes:S盒 Expand:扩展置换 DES的分组长度是64位,所以每个Li和Ri都是32位。扩展置换将32位的输入扩展为48位,扩展后的结果与48位的子密钥按位进行XOR运算。然后S盒将这48位的输入压缩成32位再输出。最后对S盒的输出结果进行P置换。P置换的输出(即得到的轮函数F)再与上一轮的左半部分按位进行XOR运算,最终得到新一轮的右半部分。,DES的加密过程 64bit的明文分组经过初始置换IP后,被分成相等的左右两部分各32bit,记为L0和R0。在子密钥的控制下经过16轮迭代的乘积变换(也是轮函数F的具体实现),得到L16和R16。先交换左右两部分,再将交换后的两部分连接起来形成64bit的预输出。64bit的预输出经过初始逆置换IP-1,得到64bit的密文分组。,将上图细化后得到如图所示DES加密流程图。,初始置换IP和初始逆置换IP-1在密码意义上作用是:打乱原来输入的明文分组中ASCII码字的划分关系,第一步:初始置换IP对于给定的64位的明文p,通过初始置换IP获得64位的p0,并将p0分为左右两部分,前面32位记为L0,后面32位记为R0,即p0=IP(p)=L0R0。IP置换如图所示。,置换表中的数字164代表的仅仅是明文分组中元素所处的位置,而非元素的值!,第四步:初始逆置换IP-1应用初始逆置换IP-1对最后一轮迭代之后得到的R16L16进行置换,得到密文C。即C=IP-1(R16L16)。初始逆置换IP-1如图所示。,33,初始置换IP和IP-1,IP,IP-1,M1M40,M40M1,初始置换IP和初始逆置换IP-1互为逆运算,轮函数,第二步:16轮迭代变换轮函数F(Ri-1,Ki)=p_box(S_boxes(Expand(Ri-1)Ki),在每轮的开始将经过初始置换IP后输入的64bit数据分为长度相等的左右两部分。将右半部分原封不动作为本轮要输出的64bit数据的左半部分。即Li=Ri-1。对右半部分进行一系列变换,即用轮函数作用于右半部分和子密钥,然后将所得结果(32bit数据)与初始输入数据的左半部分进行逐位模2加。最后将所得数据作为本轮要输出的64bit数据的右半部分。即Ri=Li-1F(Ri-1,Ki)。,第三步:交换左右32bit经过16轮迭代后得到的64bit数据为L16R16。必须将左右部分进行交换得到R16L16后,才能作为初始逆置换IP-1的输入。,37,DES加解密过程,令i表示迭代次数,表示逐位模2求和,f为加密函数。DES的加密和解密过程表示如下。加密过程:解密过程:,轮函数F的使用轮函数由扩展置换运算E、与子密钥的异或运算、选择压缩变换S盒和置换运算P盒组成。F(Ri-1,Ki)=p_box(S_boxes(Expand(Ri-1)Ki),轮函数的内部结构,扩展置换运算E扩展置换运算E将输入的32bit数据扩展为48bit数据输出,变换表如图所示。它的作用有三个:1、产生与子密钥长度相同的数据进行异或运算。2、它产生的48bit的输出数据,使得在进行S盒代替运算时能进行压缩。3、输入的1位将影响2个替换,使得输出对输入的依赖性传播的更快,产生“雪崩效应”。,40,扩展置换,扩展,Ri-1(32bit),选择压缩变换S盒 选择压缩变换S盒将输入的48bit数据从左到右分成8组,每组6bit。将8个分组的数据分别输入8个S盒中的一个,每个S盒为一非线性变换,得到4bit输出。如图所示。,S盒的使用 8个S盒的使用方法相同。对每个S盒:都可以看成是一个4*16的矩阵。每一行都是015的一个置换。6bit输入中的第1和第6比特位组成的二进制数用于确定S盒的行。中间4个比特位组成的二进制数用于确定S盒的列。将对应S盒的行列交叉处的十进制数转换成4位二进制数,作为输出。,43,S-盒的构造,S盒是许多密码算法的唯一非线性部件,它的安全强度决定了整个密码算法的安全强度。S盒提供了密码算法所必须的“混淆”作用。DES的每一轮都使用相同的8个S盒。,置换运算P盒P置换的目的是提供“雪崩效应”,使明文或密钥的一点小变动都会引起密文的大变动。如图所示。,46,P-盒置换,P置换,M1M9,M22M29,子密钥的生成子密钥的产生过程如图所示。,48,子密钥的产生,(1)给定64bit的种子密钥K,在置换选择1(PC-1)的作用下,去掉了输入的第8,16,24,32,40,48,56,64比特位(即:去掉8个字节中,每个字节的第8比特位)(2)将得到的56bit数据分成左右相等的两部分,各28bit,分别记为C0和D0。(3)对1i16,计算Ci=LSi(Ci-1)和Di=LSi(Di-1)。其中,LS表示循环左移,每轮循环左移的位数为:,(4)将循环左移后的Ci和Di重新组合成56bit数据,在置换选择2(PC-2)的 作用下,去掉了第9,18,22,25,35,38,43,54比特位,同时,重新排列了剩下的48bit数据并将其输出,作为第i轮的子密钥Ki。置换选择1(PC-1)和置换选择2(PC-2)如图所示。,51,子密钥的产生,DES的解密1)DES的解密算法和加密算法完全相同,只是各子密钥的使用顺序相反,即为K16,K15,K14,.,K2,K1。2)在每一轮的子密钥Ki产生过程中,使用的是循环右移。每一轮的右移位数如表所示。,53,内容提要,DES的产生与应用Feistel密码结构对DES的描述对DES的讨论,54,对DES的讨论,弱密钥与半弱密钥互补密钥DES的破译密钥长度的争论DES的轮数,55,弱密钥,概念:初始密钥被分成两部分,每部分都单独做移位。如果每一部分的每一位都是0或都是1,则每一圈的子密钥都相同。这样的密钥被称为弱密钥。DES存在4个弱密钥基于弱密钥的加密过程和解密过程是相同的,加密两次就恢复成明文。,56,半弱密钥,概念:有些成对的密钥会将明文加密成相同的密文,即一对密钥中的一个能用来解密由另一个密钥加密的消息,这种密钥称作半弱密钥。DES至少有12个半弱密钥,形成6对。每个半弱密钥在16轮迭代中不是产生16个不同的子密钥,而是产生2种不同的子密钥,每一种出现8次。,半半弱密钥,概念:这种密钥在16轮迭代中只产生4种子密钥,每种子密钥出现4次。DES有48个半半弱密钥。小结:弱密钥、半弱密钥和半半弱密钥共有4+12+48=64个,而DES可能的密钥数为256个。因此,随机选择密钥,能落在这64个中的概率很小,而且可以在密钥产生器产生种子密钥时进行检查,以避免这些密钥。,58,对DES的讨论,弱密钥与半弱密钥互补密钥DES的破译密钥长度的争论DES的轮数,59,互补密钥,概念:将密钥的0换成1,1换成0,就得到该密钥的补密钥。该密钥与其补密钥称为“互补密钥”。如果用原密钥加密一组明文,则用其补密钥可以将该明文的补码加密成原密文的补码。设X表示X的补码,则 Ek(M)=C Ek(M)=C,60,对DES的讨论,弱密钥与半弱密钥互补密钥DES的破译密钥长度的争论DES的轮数,61,DES的破译,根据攻击者所掌握的信息,可将对“对称分组密码”的攻击分为:(1)唯密文攻击(2)已知明文攻击(3)选择明文攻击 攻击复杂度:可以从两个方面衡量(1)数据复杂度:即实施该攻击所需输入 的数据量。(2)处理复杂度:即处理这些数据所需要 的计算量。,DES的破译,对DES最可靠的攻击方法是“强力攻击”。攻击复杂度依赖于分组长度和密钥长度。强力攻击分为:强力密钥搜索攻击,字典攻击,查表攻击和时间-存储攻击。(1)强力密钥搜索攻击:设k是密钥长度,在唯密文攻击下,攻击者依次尝试密钥空间中所有的2k个密钥来解密密文,直到得到一个有意义的明文。这种攻击的复杂度平均为2k-1。,DES的破译,(2)字典攻击:攻击者搜集明文-密文对,并把它们编成字典。当截获密文时,对照该字典进行查找。设n为分组长度,则攻击者需要2n个明文-密文对才能在不知道密钥的情况下解密任何消息。(3)查表攻击:是一种选择明文攻击。设k是密钥长度,对给定的明文用所有2k个密钥预先算出密文,这样,对于给定的密文就可以从存储表中找到相应的密钥。(4)时间-存储攻击:是一种选择明文攻击。由“强力密钥搜索攻击”和“查表攻击”两种方法混合而成。它以时间换取空间,它比“强力密钥搜索攻击”的时间复杂度小,比“查表攻击”的空间复杂度小。,64,对DES的讨论,弱密钥与半弱密钥互补密钥DES的破译密钥长度的争论DES的轮数,65,密钥长度,DES的实际密钥长度为56bit,构成的密钥数量为256个。对于80年代电脑的计算速度来说,这个密钥长度是安全的。但随着计算机的发展,其计算能力越来越强,计算速度越来越快,这使得DES的密钥长度逐渐失去了安全保证。现在通用的密钥长度是128bit。,66,对DES的讨论,弱密钥与半弱密钥互补密钥DES的破译密钥长度的争论DES的轮数,67,DES的轮数,对于DES,56比特密钥决定了密钥空间是固定的,为什么说循环越多则安全性越高?为什么DES是16轮,而不是32轮?一般来说,循环次数越多进行密码分析的难度就越大。一般来说,循环次数的选择准则是要使已知的密码分析的工作量大于简单的穷举式密钥搜索的工作量。对于16轮循环的DES来说,差分密码分析的运算次数为255.1,而穷举式搜索要求255,前者比后者效率稍低,如果DES有15次循环,那么差分密码分析比穷举式搜索的工作量要小。,68,内容提要,乘积密码分组密码的设计原理与方法数据加密标准DES其它现代对称分组密码分组密码的操作模式流密码,69,其它现代对称分组密码,一种是对DES进行复合,强化它的抗攻击能力;另一种是开辟新的方法,即象DES那样加解密速度快,又具有抗差分攻击和其他方式攻击的能力。,70,其它现代对称分组密码,1.Double DES(双重DES)2.Triple DES(三重DES),71,双重DES(Double DES),给定明文P和加密密钥K1,K2,则密文C=EK2(EK1(P);解密要求密钥以相反的次序使用,则明文P=DK1(DK2(C)。双重DES的密钥长度为112位,密钥数目可达到2112个。,72,中间相遇攻击,双重DES可能会受到“基于观察的中间相遇攻击”。(1)根据C=EK2(EK1(P),则有中间结果X=EK1(P)=DK2(C)。给定明文-密文对(P,C)。(2)先用所有256个密钥加密P,对结果排序。(3)再用所有256个密钥解密C,对结果排序。(4)然后逐个比较两个运算的结果,可以找到使得EK1(P)=DK2(C)的K1和K2。,73,其它现代对称分组密码,1.Double DES(双重DES)2.Triple DES(三重DES),74,Triple-DES的四种模型,三重DES使用3个(或2个)不同的密钥对明文分组进行三次加密。具体有4 种加密模式:(1)DES-EEE3:使用3个不同的密钥,顺序进行加密-加密-加密变换。(2)DES-EDE3:使用3个不同的密钥,依次进行加密-解密-加密变换。(3)DES-EEE2:使用3个密钥,其中K1=K3,顺序进行加密-加密-加密变换。(4)DES-EDE2:使用3个密钥,其中K1=K3,依次进行加密-解密-加密变换。,75,双密钥的三重DES,Tuchman建议使用双密钥进行加密-解密-加密(EDE)方案。加密过程为:C=EK1(DK2(EK1(P)解密过程为:P=DK1(EK2(DK1(C),双密钥的三重DES,第二个步骤使用“解密”并没有密码编码上的考虑,因为该算法可以与常规加密算法DES兼容,所以这样做的唯一好处是可以使三重DES的用户能够解密原来用DES加密的数据。三重DES交替使用K1和K2,可以抵抗“中间相遇攻击”。到目前为止,还没有人给出攻击双密钥的三重DES的有效方法。三重DES的密钥长度为112位,密钥数目可以达到2112个。,77,三密钥的三重DES,许多研究人员认为具有3个密钥的三重DES的安全性更高。其加密、解密过程为:加密:C=EK3(DK2(EK1(P)解密:P=DK1(EK2(DK3(C)密钥的有效长度为168位。与DES兼容可以通过令K3=K2或K1=K2得到。与DES的兼容性可以通过令K3=K2或K1=K2得到。许多基于Internet的应用用到:PGP(邮件加密软件),78,内容提要,乘积密码分组密码的设计原理与方法数据加密标准DES其它现代对称分组密码分组密码的操作模式流密码,79,分组密码的操作模式,为什么要定义DES的工作模式?分组密码在加密/解密时,分组长度是固定不变的,但在实际应用中,待加密/解密消息的数据量是不定的,所使用的数据格式也多种多样。为了能在不同的应用场合使用DES,定义了DES的工作模式。概念:分组密码的工作模式就是以某种分组密码算法为基础(DES或AES),解决对任意大小的文本进行加密/解密所采用的方式。,80,分组密码的操作模式,电码本ECB(electronic codebook mode)密码分组链接CBC(cipher block chaining)密码反馈CFB(cipher feedback)输出反馈OFB(output feedback)计数器 CTR(counter),电码本(ECB),是最简单的分组密码的工作模式。在该模式下,将明文消息分成长度相同的明文分组,对每个明文分组独立地进行加密。如图所示,设明文为q个分组P1,P2,.,Pq所组成的序列,每个分组都是b位,密钥为K,对应的密文为q个分组C1,C2,.,Cq所组成的序列,每个分组也是b位,82,电码本(ECB),ECB模式的加密和解密方式描述为:加密:Ci=EK(Pi)解密:Pi=DK(Ci)(i=1,2,3,.q),83,ECB特点,优点:1)简单、有效。2)可以并行实现。尤其是硬件实现时速度很快,这对于需要随机访问和处理的数据、文件来说是方便的。比如:处理数据库的记录,就要求任何一条记录的增加、删除、修改、加密和解密都可以独立于其他记录。3)ECB模式适合于传输短信息。缺点:1)不能隐藏明文的模式信息。对于使用同一个密钥K加密,相同的明文分组如果在明文消息中重复出现的话,总是被加密成相同的密文分组。2)对明文采取“主动攻击”。,电码本(ECB),传输错误分析 1)如果收到的一个密文分组中的1位或多位发生错误,则只会影响到发生错误的那一个分组的解密。2)如果密文分组的长度被增加或减少1位,则会影响到剩余密文分组的解密。,密码分组链接(CBC),采用“密码分组链接”工作模式,可以使输出的信息不仅与当前输入有关,而且与以前输入和输出有关。概念:每次加密使用同一密钥,加密算法的输入是当前明文分组与前一次密文分组的异或,加密算法的输出则是当前的密文分组。因此,加密算法的输入与明文分组之间不再有固定的关系,所以重复出现的明文分组不会在密文中暴露其统计特性。,86,密码分组链接(CBC),对第一个明文分组进行加密:C1=EK(P1IV)对其他分组加密:Ci=EK(Ci-1Pi)(i=2,3,.q)对第一个密文分组进行解密:P1=DK(C1)IV对其他分组解密:Pi=DK(Ci)Ci-1(i=2,3,.q),密码分组链接(CBC),初始化向量IV 为了产生第一个密文分组,需要一个初始化向量IV与第一个明文分组异或。解密时,IV与解密算法的第一次输出进行异或以恢复第一个明文分组。IV对于收发双方都应是已知的。为使安全性程度最高,IV应像密钥一样被保护。可以使用ECB模式来传送IV。,88,CBC特点,优点:1)能够把相同的明文分组加密成不同的密文分组,从而隐藏明文的模式信息。2)对明文的“主动攻击”是不容易的。3)适合于传输长度大于分组长度的报文。4)可以进行用户鉴别(身份认证),是很多网络加密的标准,如SSL,IPsec。缺点:1)不能实现并行处理。每个数据分组(明文分组或密文分组)的处理都要依赖于前面的数据分组。,密码分组链接(CBC),传输错误分析 1)在CBC方式中,如果收到的一个密文分组中的1位或多位发生错误,仅会影响它对应的那个明文分组的解密以及随后的一个明文分组的解密。再后面的明文分组不受影响,均能正确解密。2)如果一个密文分组中增加或减少1位,则会影响它后面所有的密文分组,在解密时会出现连续的、无意义的信息。,不是分组长度整数倍的报文的处理,在ECB和CBC模式中,还涉及一个问题:大多数信息不可能被恰好分成若干分组,最后一部分通常不够一组,对此,必须采用“填充”的方式来解决。填充就是采用全0、全1、或0与1组合的方式来填充最后一个分组,使其成为一个完整的分组填充方法:(1)如果明文信息采用的是二进制表示,就填入与数据最后1位相反的比特。若数据的最后一位是0,则将最后一个分组中的剩余比特位全部填充为1;若数据的最后一位是1,则将最后一个分组中的剩余比特位全部填充为0。,不是分组长度整数倍的报文的处理,填充方法:(2)如果明文信息采用的是ASCII码表示,就往最后一个分组的剩余位置填入随机字节。并将填充的比特数目写入最后一个字节,总共凑齐64bit的分组。(3)为了能自动进行数据处理,通常总是要进行填充(即使是对于分组长度是整数倍的报文)。解密后,最后一个分组的最后一个字节用于确定必须被删除的填充的比特数目。因此,不允许0字节的填充。,密码反馈CFB,如果待加密的明文消息必须按字符(电传电报)处理时,可以采用CFB模式。这样做,实际上是将分组密码DES当作流密码使用,这样,明文长度就不需要一定是分组长度的整数倍,也不需要填充,且可以实时进行操作。因此,如果传送字符流,可以使用流密码对每个字符直接加密并传送,最后得到的密文序列与明文序列等长。如图所示,设明文为q个变量P1,P2,.,Pq所组成的序列,每个输入变量(单元)都是s位,密钥为K,初始化向量IV为b位,Ri为移位寄存器,宽度为b位,对应的密文为q个单元C1,C2,.,Cq所组成的序列,每个单元是s位。(因为1个字符/单元为8bit,所以通常s取8位。),93,密码反馈CFB,加密工作模式:Ci=Pi(EK(Ri)的高s位),Ri+1=(Ris)|Ci 其中R1=IV,|是连接函数,Ris表示Ri左移s位,密码反馈CFB,解密工作模式:Pi=Ci(EK(Ri)的高s位),Ri+1=(Ris)|Ci 其中R1=IV,|是连接函数,Ris表示Ri左移s位,密码反馈CFB,算法描述 1)加密时,加密函数的输入是b位移位寄存器的值,移位寄存器中的初始值是IV。2)选择加密函数的输出最左边的s位,将其与s位的明文异或,得到第一个密文单元C1。3)将C1发送出去,接着移位寄存器左移s位,然后将C1填入寄存器最右边的s位。4)按此操作,直到所有的明文单元被加密。,密码反馈CFB,算法描述5)解密时,移位寄存器中的初始值也是IV,解密过程中使用的函数仍然是加密函数。将收到的第一个密文单元与加密函数输出的高s位异或,得到第一个明文单元。6)接着移位寄存器左移s位,然后将上一轮的密文单元填入该寄存器最右边的s位,共同组成b位的数据,作为本轮加密函数的输入。7)选择加密函数的输出最左边的s位,将其与本轮s位的密文异或,得到本轮的明文单元Pi。8)按此操作,直到所有的密文单元被解密。,97,CFB特点,1)用每个密文单元反馈到(填充)移位寄存器。2)隐藏了明文的模式信息。3)需要共同的移位寄存器初始值IV,且IV必须保密。4)消息被看作比特流,无须分组填充;适合数据以比特或字节为单位的文本进行加密/解密。5)只使用加密算法,且所有加密和解密都使用同一密钥。6)密文块需按顺序逐一解密。,密码反馈CFB,缺点 1)不能实现并行处理。2)加密效率低。传输错误分析 1)解密过程中,1位的密文错误首先导致被解密的明文的1位错误,然后,该错误被输入到移位寄存器中,又会引起后面被解密的明文错误,直到这个错误被移出寄存器为止。,99,输出反馈OFB,OFB模式也是一种将分组密码作为流密码运行的工作模式,针对的也是字符流,对字符流中的每个字符直接加密并传送,最后得到的密文序列与明文序列等长。OFB模式采用加密函数输出的高s位反馈到(填充)移位寄存器。如图所示。设明文为q个变量P1,P2,.,Pq所组成的序列,每个输入变量(单元)都是s位,密钥为K,初始化向量IV为b位,Ri为移位寄存器,宽度为b位,对应的密文为q个单元C1,C2,.,Cq所组成的序列,每个单元是s位。(因为1个字符/单元为8bit,所以通常s取8位。),Ci=Pi(EK(Ri)的高s位),Ri+1=(Ris)|(EK(Ri)的高s位)其中,R1=IV,|是连接函数。,OFB模式的加密方式,OFB模式的解密方式,Pi=Ci(EK(Ri)的高s位),Ri+1=(Ris)|(EK(Ri)的高s位)其中,R1=IV,|是连接函数。,102,OFB特点,1)用加密函数的输出反馈到(填充)移位寄存器。2)隐藏了明文的模式信息。3)需要共同的移位寄存器初始值IV,且IV必须保密。4)消息被看作比特流,无须分组填充;适合数据以比特或字节为单位的文本进行加密/解密。5)只使用加密算法,且所有加密和解密都使用同一密钥。6)可以脱机进行操作。在密文没有到达前先计算EK(Ri),当密文到达后只需进行异或运算就能得到明文。,输出反馈OFB,缺点:1)不能实现并行处理。2)可以对明文采取“主动攻击”。如果将密文中的某位取反,则恢复出的明文中的相应位也取反,因此攻击者有可能通过对数据部分和校验部分同时进行篡改,导致纠错码无法检测到密文被篡改。故其安全性比CFB差。传输错误分析 1)OFB模式的传输错误不会扩散。1位密文的错误只导致对应的1位明文的错误。相应的,1位明文的错误只导致对应的1位密文的错误。,几种工作模式的比较和选用,ECB模式,简单、高速,但最易受重发和代替攻击,一般不采用。CBC模式适用于文件加密,但较ECB慢。CFB模式和OFB模式较CBC慢许多。每次迭代只有少数bit位完成加密。CFB模式多用在以字符为单元的流密码中,有错误扩展。OFB模式用于高速同步系统,传输过程中的比特错误不会被传播。传播误差:CBC CFB ECB OFB,105,Counter(CTR),计数器模式(CTR)也是将分组密码当作流密码使用的一种工作模式。加密函数的输入是不同的计数器值。必须对每个明文使用一个不同的计数器值。,Counter(CTR),加密:Ci=PiOi(取Oi与Pi长度相同的位数),Oi=EK(IV+i-1),IV为计数器的初始值。解密:Pi=CiOi(取Oi与Ci长度相同的位数),Oi=EK(IV+i-1),IV为计数器的初始值。,107,CTR特点,1)高效。体现在:可以实现并行处理。每块数据的处理不依赖于前面的数据,可以独立处理。加密算法的执行不依赖于明文或密文的输入。当给出明文或密文时,只需进行异或运算。2)适用于高速网络加密。3)由于每个明文之间以及每个密文之间没有联系,故可以随机访问加密/解密的数据单元,每个单元都可以独立加密/解密,而不用按顺序进行操作。4)隐藏了明文的模式信息。5)可以处理任意长度的信息。但对于每次加密/解密,需要使用不同的计数器值。6)从误差传递上说,1个单元的错误只影响对应的单元。,108,内容提要,乘积密码分组密码的设计原理与方法数据加密标准DES其它现代对称分组密码分组密码的操作模式流密码,流密码,定义:又称为序列密码,是一种针对比特流的重要加密方法,这种密码使用非常简单的规则,每次只对二进制串的一个比特(即一位)进行编码。流密码的原则是创建密钥流的随机比特串,并且将明文比特和密钥流比特组合在一起,生成的比特串就是密文。优点 1)相对于分组密码,在硬件实施上,流密码加密/解密速度更快,且需要编写的代码更少。2)密钥长度灵活可变。3)密文传输中没有传输差错。即:某1位的错误只会影响相应1位的加密/解密,而对其他任何位没有影响。4)流密码较分组密码能更好地隐藏明文的统计特征。,流密码,应用 1)主要应用在保密强度要求高的场合。如大量军事密码系统,仍多采用流密码,美军的核心密码仍是“一次一密”的流密码体制。2)鉴于流密码的分析和设计在军事和外交保密通信中有重要价值,故流密码的设计基本上都是保密的。国内外少有专门论述流密码的著作,公开的文献也不多。3)目前应用比较广泛的流密码是A5和RC4。其中,A5/1是一种基于硬件实现的流密码,它在GSM(全球移动通信系统)中被使用;RC4是一种基于软件实现的流密码,由于它的软件实现效率非常高,因此在SSL协议(安全套接字协议)等许多地方被广泛采用,流密码的工作原理,(1)在流密码中,明文按一定长度分组后(分组长度较小,通常按照位或字节分组)被表示成一个序列,称为明文流,序列中的每一项称为一个明文字。(2)加密时,先由种子密钥K通过密钥流生成器产生一个密钥流序列,该序列的每一项和明文字具有相同的比特长度,称为一个密钥字。(3)然后依次把明文流和密钥流中的对应项输入加密函数,产生相应的密文字。(4)最后由所有的密文字构成密文流输出。即:设明文流为:M=m1m2mi 密钥流为:K=k1k2ki 则,加密为:C=c1c2ci=Ek1(m1)Ek2(m2)Eki(mi)解密为:M=m1m2mi=Dk1(c1)Dk2(c2)Dki(ci),流密码的工作原理,加密时:ci=miki 解密时:mi=ciki流密码体制模型如图:,流密码,流密码只采用了香农通信理论中的混淆的原则。流密码类似于“一次一密”。不同的是:“一次一密”采用的密钥流是真正的随机密钥流,称为“真随机序列”。而流密码的密钥流不是独立随机选取的,而是由一个共同的、较短的种子密钥按某个算法被扩展为长的二进制比特流(即长的二进制串),称为“伪随机序列

    注意事项

    本文(现代对称密钥密码.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开