安全协议分析与设计课件第1章-下密码算法.ppt

安全协议分析与设计课件第1章-下密码算法.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
安全协议分析与设计 第一章 (下) 卫剑钒 密码算法基础知识 在详细讨论安全协议之前,简略介绍有关密码算法方面的基础知识将会有助于读者对后续章节的理解。 序列加密 分组加密(DES,AES) Hash函数 公钥算法(RSA,DSA,DH算法) 密码算法 如果密码算法的安全性依赖于算法的保密,那么,称之为受限制的密码算法。历史上,这类加密算法曾经十分流行,然而,由于不能对这类算法进行质量控制和标准化,它们已经远远不能满足今天的要求。 现代密码算法利用密钥解决了这个问题,密码算法可以公开,密码系统的安全性仅依赖于密钥的保密,攻击者即便得知密码算法,在不知道密钥的情况下,也很难获得明文。 基于密钥的密码算法可以分为两大类,对称密码算法和公开密钥算法。 对称密码算法 对称密码算法(Symmetric Key Cryptography),又被称为传统密码算法,指的是解密密钥可由加密密钥推导出来的密码算法。 即若已知加密密钥K,则可以通过公开的算法推算出解密密钥K?1。在大多数的对称密码算法中,解密密钥和加密密钥相同。 参与通信的双方,首先在通信之前商定好一个密钥K(加密密钥和解密密钥均为K),然后在后面的通信过程中,双方利用密钥K对来自对方的消息进行加密或者解密,进行保密通信。 对称密码算法的加密过程可以表示为: EK (M) = C 其中,M代表明文,C为相应的密文,加密密钥和解密密钥都为K。 解密过程可以表示为: DK (C) = M 对称密码算法的安全性依赖于对称密钥的保密,对称密钥K一旦被泄漏,系统就无安全性可言,因为任何得到K的人都可以加密明文并解密密文。 根据加密明文的形式,可将对称密码算法分为两类:序列密码算法和分组密码(也称为块密码)算法。 序列密码算法指的是每次对明文的一位或一个字节用对称密钥进行加密。 分组密码算法则是将明文分组,每次以组为单位对明文加密。 序列密码算法 序列密码算法每次加密明文的一位或者一个字节,通常的方法是,先产生一个位序列,即密钥序列,然后将密钥序列与明文序列逐位进行异或运算,得到密文的位序列。 密钥序列的随机性越好,密码分析者对其进行破解的难度就越大。 密钥序列生成器(Key Stream Generation)的设计十分关键,生成器包含有限状态机(Finite State Machine)和输出函数(Output Function),通常依靠一个密钥K来产生密钥序列。 分组密码算法DES DES(Data Encryption Standard)是一个分组加密的对称密码算法,1977年正式成为美国联邦信息处理标准(FIPS-46)。DES正式公布以来,它的安全性就一直是争论的主题,但无论如何,DES的出现极大地推动了密码学领域的研究,它的设计思想仍具有重要的参考价值。 DES对64位的明文分组实施16轮加密,输出64位的密文。加密和解密使用相同的密钥和相同的算法。不过,加密和解密的子密钥(由加密密钥变换而得16个子密钥)顺序不同,若加密子密钥顺序为K1,K2,…,K16,那么解密的子密钥顺序为K16,K15,…,K1。 密钥长度为56位,使用时要求输入的密钥为64位,但只用56位,另外8位做奇偶校验或随意设置。 DES加密过程 对于一个输入的64位明文分组m,DES整个加密过程由3个阶段组成:初始置换、迭代过程(乘积变换)和末置换。 首先,DES对m进行初始置换,通过查表的方法,将m中64位的顺序打乱,如将第1位放到第58位,而将第58位放到第55位等。 经过置换后得到m。将m分为左、右两半:L0、R0,每边各32位。 然后进行16轮完全相同的变换。每一轮迭代中使用的子密钥Ki都是由密钥K变换而得,子密钥长度为48位。 DES加密过程 16轮的操作可以表示为如下的循环赋值操作,其中,⊕为模2加运算: for ( i =1 to 16 ) { Li=Ri-1 Ri=Li-1⊕f (Ri-1,Ki) } 其中,函数f(x,y)较为复杂,首先将32位的x扩展为48位,然后将其和48位的y异或,得到的结果输入给8个S盒子,每个盒子处理6位数据,将其变换为4位数据。这样8个S盒子共输出32位数据,再将这32位结果进行一个置换。 最后,对R16和L16应用初始置换的逆置换,便得到对m进行DES加密后的密文。 DES解密过程 DES算法的解密和加密使用相同的算法。 二者唯一不同之处在于子密钥的使用顺序。解密时子密钥的使用顺序依次为:K16,K15,…,K1。 注意解密一开始时,得到的输入是密文,通过初始置换并将其分为两半:L0和R0,然后经过16轮运算后,得到L16和R16,再将其进行初始置换的逆置换,就可得到解密后的明文。 DES安全性的讨论 密钥:DES的安全争议中,密钥长度偏短是

您可能关注的文档

文档评论(0)

autohhh + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档