版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二讲对称密钥密码体系1本章导读密码编码是对付各种安全威胁的最强有力的工具,加密技术是信息安全的核心技术。本章介绍密码体系的原理和一些基本概念,介绍对称密钥加密的几种常用算法:数据加密标准(DES)、3DES、IDEA、序列密码A5以及AES。
2内容2.1密码体系的原理和基本概念2.2数据加密标准(DES)2.3高级加密标准(AES)2.4序列密码2.5其它对称密码算法小结32.1密码体系的原理和基本概念
专业术语消息和加密:消息被称为明文。用某种方法伪装消息以隐藏它的内容的过程称为加密,加了密的消息称为密文,而把密文转变为明文的过程称为解密。4加密解密公式
明文用M(消息)或P(明文)表示,密文用C表示。加密函数E作用于M得到密文C,用数学式子表示为:E(M)=C相反地,解密函数D作用于C产生MD(C)=M先加密后再解密消息,原始的明文将恢复出来,下面的等式必须成立:D(E(M))=M52.1密码体系的原理和基本概念
专业术语鉴别:消息的接收者应该能够确认消息的来源;入侵者不可能伪装成他人完整性:消息的接收者应该能够验证在传送过程中消息没有被修改;入侵者不可能用假消息代替合法消息抗抵赖:发送者事后不可能虚假地否认他发送的消息算法:密码算法是用于加密和解密的数学函数。一般情况下,有两个相关的函数:一个用作加密,另一个用作解密62.1密码体系的原理和基本概念
安全密码
如果密码的保密性是基于保持算法的秘密,这种密码算法称为受限制的算法。密钥用K表示.K可以是很多数值里的任意值。密钥K的可能值的范围叫做密钥空间。加密和解密运算都使用这个密钥(即运算都依赖于密钥,并用K作为下标表示),这样,加/解密函数现在变成:EK(M)=CDK(C)=M72.1密码体系的原理和基本概念
安全密码82.1密码体系的原理和基本概念
安全密码算法安全性所有这些算法的安全性都基于密钥的安全性,而不是基于算法的细节的安全性只有公开的算法才是安全的9对称算法有时又叫传统密码算法,就是加密密钥能够从解密密钥中推算出来,反过来也成立在大多数对称算法中,加/解密密钥是相同的对称算法可分为两类分组算法(分组密码)序列算法(序列密码,流密码)2.1密码体系的原理和基本概念
对称密码和非对称密码
10112.1密码体系的原理和基本概念
对称密码和非对称密码非对称算法用作加密的密钥不同于用作解密的密钥,而且解密密钥不能根据加密密钥计算出来(至少在合理假定的有限时间内)
非对称算法也叫做公开密钥算法,是因为加密密钥能够公开,即陌生者能用加密密钥加密信息,但只有用相应的解密密钥才能解密信息12132.1密码体系的原理和基本概念
密码分析密码分析学是在不知道密钥的情况下恢复出明文的科学对密码进行分析的尝试称为密码分析攻击唯密文攻击已知明文攻击选择明文攻击自适应选择明文攻击142.1密码体系的原理和基本概念
密码分析学者LarsKnudsen把破译算法分为不同的类别全部破译:密码分析者找出了密钥全盘推导:密码分析者找到一个代替算法,在不知道密钥的情况下,可用它得到明文实例推导:密码分析者从截获的密文中找出明文信息推导:密码分析者获得一些有关密钥或明文的信息这些信息可能是密钥的几个比特、有关明文格式的信息等等152.1密码体系的原理和基本概念
密码分析几乎所有密码系统在唯密文攻击中都是可破的,只要简单地一个接一个地去试每种可能的密钥,并且检查所得明文是否有意义。这种方法叫做蛮力攻击。不同方式衡量攻击方法的复杂性:数据复杂性:用作攻击输入所需要的数据量时间复杂性:完成攻击所需要的时间存储复杂性:进行攻击所需要的存储量16内容2.1密码体系的原理和基本概念2.2数据加密标准(DES)2.3高级加密标准(AES)2.4序列密码2.5其它对称密码算法小结
172.2数据加密标准(DES)
分组密码数据加密标准DES属于分组密码分组密码将明文消息划分成固定长度的分组,各分组分别在密钥的控制下变换成等长度的密文分组182.2数据加密标准(DES)
分组密码分组密码的工作原理19DES的历史1973年5月15日,NBS开始公开征集标准加密算法,并公布了它的设计要求:
(1)算法必须提供高度的安全性(2)算法必须有详细的说明,并易于理解(3)算法的安全性取决于密钥,不依赖于算法(4)算法适用于所有用户(5)算法适用于不同应用场合(6)算法必须高效、经济(7)算法必须能被证实有效(8)算法必须是可出口的202.2数据加密标准(DES)对称密码算法有两种类型:分组密码(BlockCipher)和流密码(StreamCipher)。分组密码一次处理一块输入,每个输入块生成一个输出块,而流密码对输入元素进行连续处理,同时产生连续单个输出元素。数据加密标准DES属于分组密码。分组密码将明文消息划分成固定长度的分组,各分组分别在密钥的控制下变换成等长度的密文分组。分组密码的工作原理如图2-2所示。21图2-2分组密码的工作原理22DES的历史数据加密标准成为世界范围内的标准已经20多年了。1973年,美国国家标准局(NBS)在认识到建立数据保护标准既明显又急迫需要的情况下,开始征集联邦数据加密标准的方案。1975年3月17日,NBS公布了IBM公司提供的密码算法,以标准建议的形式在全国范围内征求意见。经过两年多的公开讨论之后,1977年7月15日,NBS宣布接受这个建议,作为联邦信息处理标准46号[2],数据加密标准(DataEncryptionStandard),即DES正式颁布,供商业界和非国防性政府部门使用。23DES算法的描述
DES加密算法如图所示,由以下四个部分组成。
1.初始置换函数IPDES对64位明文分组进行操作。首先,64位明文分组x经过一个初始置换函数IP,产生64位的输出x0,再将分组x0分成左半部分L0和右半部分R0,即:
x0=IP(x)=L0R0
置换表如表2-1所示。此表顺序为从上到下,从左至右。如初始置换把明文的第58位换至第1位,把第50位换至第二位,以此类推。24DES的历史1974年8月27日,美国国家标准局(NBS)开始第二次征集,IBM提交了算法LUCIFER,该算法由IBM的工程师在1971~1972年研制。1975年3月17日,NBS公开了全部细节。1976年,NBS指派了两个小组进行评价。1976年11月23日,采纳为联邦标准,批准用于非军事场合的各种政府机构。1977年1月15日,“数据加密标准”FIPSPUB46发布,同年7月15日开始生效。该标准规定每五年审查一次,计划十年后采用新标准。最近的一次评估是在1994年1月,已决定1998年12月以后,DES将不再作为联邦加密标准。252.2数据加密标准(DES)
DES的应用1979年,美国银行协会批准使用1980年,美国国家标准局(ANSI)赞同DES作为私人使用的标准,称之为DEA(ANSIX.392)1983年,国际化标准组织ISO赞同DES作为国际标准,称之为DEA-1262.2数据加密标准(DES)
DES的算法DES加密算法由以下四个部分组成:初始置换函数IP获取子密钥Ki密码函数F末置换函数IP-127282.2数据加密标准(DES)
DES的算法-初始置换函数IP
DES对64位明文分组进行操作。首先,64位明文分组x经过一个初始置换函数IP,产生64位的输出x0,再将分组x0分成左半部分L0和右半部分R0,即:
x0=IP(x)=L0R0
292.2数据加密标准(DES)
DES的算法-初始置换函数IPM20
→M'14IP302.2数据加密标准(DES)
DES的算法-获取子密钥KiDES加密算法的密钥长度为56位,但一般表示为64位,其中,每个第8位用于奇偶校验。在DES加密算法中,将用户提供的64位初始密钥经过一系列的处理得到K1,K2,…,K16,分别作为1~16轮运算的16个子密钥31322.2数据加密标准(DES)
DES的算法-密码函数F函数F的操作步骤
密码函数F的输入是32比特数据和48比特的子密钥332.2数据加密标准(DES)
DES的算法-密码函数F扩展置换(E)。将数据的右半部分Ri从32位扩展为48位。位选择函数(也称E盒)342.2数据加密标准(DES)
DES的算法-密码函数F异或。扩展后的48位输出E(Ri)与压缩后的48位密钥Ki作异或运算S盒替代。将异或得到的48位结果分成八个6位的块,每一块通过对应的一个S盒产生一个4位的输出352.2数据加密标准(DES)
DES的算法-密码函数FS盒的具体置换过程为:某个Si盒的6位输入的第1位和第6位形成一个2位的二进制数(从0~3),对应表中的某一行;同时,输入的中间4位构成4位二进制数(从0~15)对应表中的某一列(注意:行和列均从0开始计数)例如,第6个S盒的输入为110011,前后2位形成的二进制数为11,对应第8个S盒的第3行;中间4位为1001,对应同一S盒的第9列
3637S-盒置换输入6比特:b1b2b3b4b5b6输出4比特:S(b1b6,b2b3b4b5)S1b1b2b3b4b5b60123456789101112131415S101441312151183106125907101574142131106121195382411481362111512973105031512824917511314100613S2015181461134972131205101..........23举例:S1(100110)=1000382.2数据加密标准(DES)
DES的算法-密码函数F-P盒置换将八个S盒的输出连在一起生成一个32位的输出,输出结果再通过置换P产生一个32位的输出即:F(Ri,Ki)。至此,密码函数F的操作就完成了最后,将P盒置换的结果与最初的64位分组的左半部分异或,然后左、右半部分交换,接着开始下一轮计算。39P-盒置换32比特输入,32比特输出123456789303132167202129122817115......11425P-盒的输出:40P盒置换
1672021291228171152326518311028241432273919133062211425412.2数据加密标准(DES)
DES的算法-密码函数F-函数F的设计函数F是DES加密的核心,它依赖于S盒的设计。这也适用于其它的对称分组加密算法F的设计准则
函数F的基本功能就是“扰乱(confusion)”输入,因此,对于F来说,其非线性越高越好,也就是说,要恢复F所做的“扰乱”操作越难越好422.2数据加密标准(DES)
DES的算法-密码函数F-函数F的设计雪崩准则(SAC)
就是要求算法具有良好的雪崩效应,输入当中的一个比特发生变化都应当使输出产生尽可能多的比特变化。严格地说,就是当任何单个输入比特位i发生变换时,一个S盒的第j比特输出位发生变换的概率应为1/2,且对任意的i,j都应成立比特独立准则(BIC)
BIC的意思是当单个输入比特位i发生变化时,输出比特位j,k的变化应当互相独立,且对任意的i,j,k均应成立432.2数据加密标准(DES)
DES的算法-密码函数F-函数F的设计S盒设计本质上S盒的作用就是对输入向量进行处理,使得输出看起来更具随机性,输入和输出之间应当是非线性的,很难用线性函数来逼近S盒的尺寸是一个很重要的特性。一个S盒其输入为n比特,输出为m比特。DES的S盒大小为6×4。S盒越大,就越容易抵制差分和线性密码分析442.2数据加密标准(DES)
DES的算法-密码函数F-函数F的设计Nyberg提出了以下几种S盒的设计和实践原则:
随机性:采用某些伪随机数发生器或随机数表格来产生S盒的各个项
随机测试:随机选择S盒各个项,然后按照不同准则测试其结果
数学构造:根据某些数学原理来产生S盒。其好处就是可以根据数学上的严格证明来抵御差分和线性密码分析,并且可以获得很好的扩散(Diffusion)特性452.2数据加密标准(DES)
DES的算法-末置换函数IP-1末置换是初始置换的逆变换.经过一个末置换函数就可得到64位的密文c,即:
c=IP-1(R16L16)46IPIP-1472.2数据加密标准(DES)
DES的算法-总结子密钥生成:
C[0]D[0]=PC–1(K)for1<=i<=16{C[i]=LS[i](C[i−1])D[i]=LS[i](D[i−1])K[i]=PC–2(C[i]D[i])}482.2数据加密标准(DES)
DES的算法-总结加密过程:
L[0]R[0]=IP(x)for1<=i<=16{L[i]=R[i−1]R[i]=L[i−1]XORf (R[i−1],K[i])}c=IP−1(R[16]L[16])492.2数据加密标准(DES)
DES的算法-总结解密过程:
R[16]L[16]=IP(c)for1<=i<=16{R[i−1]=L[i]L[i−1]=R[i]XORf (L[i],K[i])}x=IP−1(L[0]R[0])502.2数据加密标准(DES)
DES的工作模式电子编码本ECB密码分组链接CBC密码反馈CFB输出反馈OFB51ECB52CBC53OFBCFB54OFB55对DES的攻击典型的DES处理时间(8字节字组)56对DES的攻击目前,最快可用的DES元件需要64ns的时间来完成一个字组的加密。如果有10000个计算模块并行汇集在一起,每个能独立试验密钥空间的一小部分,又假定平均要搜索一半的密钥空间以找到正确的密钥,我们可以算得处理时间如下:572.2数据加密标准(DES)
DES的算法-三重DES三重DES是DES的一种变形的实现方式
加/解密运算为:
加密:c=EK3(DK2(EK1(m)))
解密:m=DK1(EK2(DK3(c)))
其中,K1、K2、K3为56位DES密钥。为了获得更高的安全性,三个密钥应该选择为互不相同。但在某些情况下,如与原来的DES保持兼容,则可以选择K1=K2或K2=K3582.2数据加密标准(DES)
DES的算法-三重DES59内容2.1密码体系的原理和基本概念2.2数据加密标准(DES)2.3高级加密标准(AES)2.4序列密码2.5其它对称密码算法小结60AES背景-i1997年4月15日,(美国)国家标准技术研究所(NIST)发起征集高级加密标准(AdvancedEncryptionStandard)AES的活动,活动目的是确定一个非保密的、可以公开技术细节的、全球免费使用的分组密码算法,作为新的数据加密标准。1997年9月12日,美国联邦登记处公布了正式征集AES候选算法的通告。作为进入AES候选过程的一个条件,开发者承诺放弃被选中算法的知识产权。对AES的基本要求是:比三重DES快、至少与三重DES一样安全、数据分组长度为128比特、密钥长度128/192/256比特。61AES背景-ii1998年8月12日,在首届AES会议上指定了15个候选算法。1999年3月22日第二次AES会议上,将候选名单减少为5个,这5个算法是RC6,Rijndael,SERPENT,Twofish和MARS。2000年4月13日,第三次AES会议上,对这5个候选算法的各种分析结果进行了讨论。2000年10月2日,NIST宣布了获胜者—Rijndael算法,2001年11月出版了最终标准FIPSPUB197。622.3高级加密标准(AES)
Rijndael算法Rijndael算法是比利时的JoanDaemen和VincentRijmen设计的一个算法,该算法的原形是Square算法。它的设计策略是宽轨迹策略。宽轨迹策略是针对差分分析和线性分析提出的一种新的策略,其最大优点是可以给出算法的最佳差分特性的概率及最佳线性逼近的偏差的界。由上述条件可以分析算法抵抗差分密码分析和线性密码分析的能力。63内容2.1密码体系的原理和基本概念2.2数据加密标准(DES)2.3高级加密标准(AES)2.4序列密码2.5其它对称密码算法小结642.4序列密码
一次一密乱码本
序列密码又称流密码,它将明文划分成字符(如单个字母)或其编码的基本单元(如0、1),然后将其与密钥流作用以加密,解密时以同步产生的相同密钥流实现。652.4序列密码
一次一密乱码本序列密码强度完全依赖于密钥流产生器所产生的序列的随机性和不可预测性,其核心问题是密钥流生成器的设计。而保持收发两端密钥流的精确同步是实现可靠解密的关键技术迄今为止,只有一种理论上不可破的加密方案,叫做一次一密乱码本,这是一种序列密码。其基本思想是让密钥和明文一样长,密钥称为
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论