版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、计算机网络安全技术,第二章常规加密技术,密码学是一门与数学密切相关的科学,统计学、数论、概率论和代数是密码学的常用工具。密码技术涉及密码设计、密码分析、密钥管理等内容。密码设计的目的保证信息的机密性。基本手段将信息加以伪装,使其在存储和传输过程中不会泄密。通常,密码技术分为常规加密技术和公钥加密技术。本章在给出常规加密模型的基础上,对常规加密的经典技术和现代技术进行讨论。,第二章常规加密技术,第二章常规加密技术,2.1密码技术概述2.2常规加密概述2.3现代常规加密技术2.4其他常规加密算法,2.1密码技术概述,密码技术概述2.1.1密码系统的概念2.1.2密码体制,密码学的起源可以追溯至古埃
2、及的象形文字。密码学是研究如何通过编码来保证信息的机密性和如何对密码进行破译的科学。密码学由密码编码学和密码分析学两部分所构成。一个密码系统通常可以完成信息的加密变换和解密变换。加密变换是采用一种算法将原信息变为一种不可理解的形式,从而起到保密的作用。解密变换则是采用与加密变换相反的过程,利用与加密变换算法相关的算法将不可理解的信息还原为原来的信息。,2.1.1密码系统的概念,基本概念在密码学中,加密变换前的原信息被称为明文(plaintext);加密变换后的信息被称为密文(ciphertext);加密变换时使用的算法被称为加密算法;解密变换时使用的算法被称为解密算法。加密算法和解密算法是相关
3、的,而且解密算法是加密算法的逆过程。加密/解密算法是相对稳定的,而且通常是公开的。,2.1.1密码系统的概念,为了保证在公开算法的前提下仍然能够维持信息的机密性,就必须在加密和解密时引入一个相同或两个不同但相关的参数,该参数被称为密钥(key)。加密时使用的密钥为加密密钥;解密时使用的密钥为解密密钥。为了使密码系统具有足够的安全性,应该经常改变密钥。,2.1.1密码系统的概念,常规加密的安全性取决于以下因素:加密算法必须足够强大,使得仅根据密文就能破译出明文是不现实的;常规加密的安全性取决于密钥的安全性。由于加密算法通常是公开的,因此密钥就直接关系到被加密信息的安全性。如果加密算法满足以下两个
4、准则,则认为加密方案在计算上是安全的:破译该密码的成本超过被加密信息的价值;破译该密码的时间超过该信息有用的生命周期。,2.1.1密码系统的概念,密码系统明文、密文、加密算法、解密算法、加密密钥和解密密钥构成了一个密码系统的基本元素。一个密码系统CS可以用一个六元组来描述:CS=(P,C,E,D,Ke,Kd)其中,P表示明文的集合,C表示密文的集合,E表示加密算法,D表示解密算法,Ke表示加密密钥的集合,Kd表示解密密钥的集合。,2.1.1密码系统的概念,E和D可以视为如下的映射:E:PKeCD:CKdP对于一个给定的明文p和密钥ke,若有密文c=E(p,ke),则p=D(c,kd)。若用E-
5、1表示E的逆函数,用D-1表示D的逆函数,则有D=E-1且E=D-1,2.1.1密码系统的概念,2.1.1密码系统的概念,威胁密码系统安全的是攻击者攻击者首先通过监听等手段截获密文;然后试图通过对密文的分析来得到明文;一旦攻击者获得密钥,就可以在系统更新密钥之前,利用该密钥解密一系列的密文。,加密模型示意图,明文P,加密算法E,密文C,解密算法D,明文P,加密密钥Ke,解密密钥Kd,解密算法D,明文P,密钥Kd,明文P,密码分析,攻击者,加密,攻击,2.1.1密码系统的概念,2.1.2密码体制,密码体制通常指加密/解密过程中所采用方法的种类。根据在加密解密过程中使用的加密密钥和解密密钥是否相同
6、将密码体制分为对称密码体制和非对称密码体制。根据密文数据段是否与明文数据段在整个明文中的位置相关,可以将密码体制分为分组密码体制和序列密码体制。根据加密变换是否可逆,可以将密码体制分为单向函数密码体制和双向变换密码体制。根据在加密过程中是否引入客观随机因素,可以将密码体制分为确定型密码体制和概率密码体制。,对称密码体制对称密码体制又称为常规密钥密码体制、单密钥密码体制或秘密密钥密码体制。对称密码体制的加密算法和解密算法使用相同的密钥,该密钥必须对外保密。对称密码体制的特点加密效率较高;保密强度较高;但密钥的分配难以满足开放式系统的需求。,2.1.2密码体制,非对称密码体制非对称密码体制又称为公
7、开密钥密码体制或双密钥密码体制。非对称密码体制的加密算法和解密算法使用不同但相关的一对密钥,加密密钥对外公开,解密密钥对外保密,而且由加密密钥推导出解密密钥在计算上是不可行的。非对称密码体制的特点密钥分配较方便,能够用于鉴别和数字签名,能较好地满足开放式系统的需求;但由于非对称密码体制一般采用较复杂的数学方法进行加密解密,因此,算法的开销比较大,不适合进行大量数据的加密处理。,2.1.2密码体制,分组密码体制分组密码体制的密文仅与加密算法和密钥有关,而与被加密的明文分组在整个明文中的位置无关。分组密码将固定长度的明文分组加密为相同长度的密文分组。分组密码的分组大小一般为64比特,但有增加到12
8、8比特的趋势。相同的明文分组在相同密钥作用下将产生相同的密文分组。,2.1.2密码体制,序列密码体制序列密码体制的密文不仅与给定的加密算法和密钥有关,而且与当前正被加密的明文部分在整个明文中的位置有关。序列密码体制每次对较小的明文单元进行处理,通常以比特(或字节)为加密单元。加密时以流的形式进行处理,将明文流与密钥流结合,形成密文流。密钥流是与明文流等长的伪随机序列,加密后的密文流也是伪随机序列。如果序列密码是真正随机的和不重复使用的,则为一次一密体制。一次一密是指采用与明文长度相同的随机密钥对其进行加密和解密。,2.1.2密码体制,一次一密密码的原理,密文序列,CnC3C2C1,随机序列Kn
9、K3K2K1,明文序列PnP3P2P1,K1K2K3Kn随机序列,PnP3P2P1明文序列,2.1.2密码体制,单向函数密码体制单向函数可以将明文加密成密文,但却不能将密文转换为明文(或在计算上不可行)。单向函数的目的不在于加密,主要用于密钥管理和鉴别。双向变换密码体制通常的加密解密都属于双向变换密码体制。,2.1.2密码体制,确定型密码体制一旦明文和密钥确定后,也就确定了惟一的密文。概率密码体制若对于给定的明文和密钥,总存在着一个较大的密文集合与之对应,最终的密文根据客观随机因素在密文集中随机选取,则称这种密码体制为概率密码体制。,2.1.2密码体制,2.2常规加密概述,常规加密概述2.2.
10、1常规加密模型密码编码密码分析2.2.2经典加密技术替代技术置换技术,在使用常规加密的通信系统中,安全通信的双方共享同一个秘密密钥K。加密和解密算法公开,密钥保密。由于加密密钥和解密密钥相同,此时的密码系统CS可以表示为:CS=(P,C,E,D,K)对于一个给定的明文p和密钥k,若有c=E(p,k),则p=D(c,k),可简记为c=Ek(p)和p=Dk(c)。,2.2.1常规加密模型,常规加密模型示意图通信的一方产生密钥,明文P,加密算法E,密钥K,密钥产生源,密文C,攻击者,解密算法D,密钥K,明文P,密码分析,明文P,密钥K,信源,信宿,2.2.1常规加密模型,安全通道,共同信赖的第三方产
11、生密钥,明文P,加密算法E,密钥K,密钥产生源,密文C,攻击者,解密算法D,密钥K,明文P,密码分析,明文P,密钥K,信源,信宿,安全通道,共同信赖的第三方,2.2.1常规加密模型,密码编码常规密码体制的安全性取决于加密算法和密钥。算法的强度必须足够高,使得攻击者很难根据密文破译出明文。在算法一定和公开的前提下,密钥就成为密码系统安全的决定性因素。密钥对安全的影响主要包括两个方面密钥的长度密钥越长,系统抗穷举攻击的能力越强;密钥更新的频度密钥更新的频率越高,密码系统的安全性越好。密钥的长度必须足够长;密钥更新的频度必须足够高。常规加密算法的强度通常采用两种方法保证:扩散(diffusion)和
12、扰乱(confusion)。,2.2.1常规加密模型,扩散与扰乱扩散和扰乱是Shannon提出来的,已成为现代分组密码设计的基础。扩散和扰乱主要用于对付基于统计分析的密码破译问题。扩散与扰乱出现的原因通常明文中的信息具有一定的统计特征;若这种统计特征以某种方式反映在密文中,则密码分析者就有可能推测出加密密钥,或部分密钥。,2.2.1常规加密模型,扩散的基本方法让明文和密钥的每个字母影响尽可能多的密文字母的取值(等价于每个密文字母被尽可能多的明文和密钥字母影响),从而使得明文和密钥的统计特征被扩散;密文中各种字母和多字母组合的出现频率比在明文和密钥中出现的频率均匀得多,明文和密钥中原有的统计特征
13、不再反映在密文中。,2.2.1常规加密模型,扩散,明文/密钥,明文/密钥,密文,密文,让明文和密钥的每个字母影响尽可能多的密文字母的取值,每个密文字母被尽可能多的明文和密钥字母影响,2.2.1常规加密模型,扩散的例子M=m1,m2,m3,是由字符组成的一个报文,采用平均操作进行加密:其中,密文字母yn是通过把连续的k个字母相加得到的。可以证明,明文的统计特性消失了,在密文中各种字母的出现频率比在明文中更接近平均。,2.2.1常规加密模型,扰乱机制使密文的统计特征与明文和加密密钥的关系尽可能复杂化,使得攻击者即使掌握了密文的某些统计特征,也很难从中推测出密钥和明文。如果说扩散是使每个密文字母与尽
14、可能多的明文和密钥字母相关的话,那么,扰乱就是使这种相关的等价数学函数足够复杂。,2.2.1常规加密模型,密码分析试图发现明文、密钥或这两者的过程称为密码分析。密码攻击者所使用的策略取决于加密方案的性质与可供密码攻击者使用的信息。通常密码攻击者可能获得的信息有:加密算法(A)待破译的密文(B)由密钥形成的一个或多个明文-密文对(C)由密码破译者选择的明文消息,连同它对应的由其密钥生成的密文(D)由密码破译者选择的猜测性的密文,连同它对应的由密钥生成的已破译的明文(E),2.2.1常规加密模型,根据密码攻击者所获得的信息量,密码分析攻击的类型包括通常假定攻击者已经知道加密算法。,2.2.1常规加
15、密模型,攻击的类型最容易防护的攻击是仅有密文攻击,在这种情况下,攻击者仅有最少量的信息可以利用。已知明文攻击是指在有些情况下,攻击者可以获得一个或多个明文信息,或者事先知道明文具有某种模式。如果攻击者能够设法在源系统插入由该攻击者所选择的信息,则可进行选择明文攻击。选择密文攻击和选择文本攻击则是不太可能发生的攻击,因为攻击者很难随意地获取他们所要求的信息,这两种攻击方法可以用于算法保密强度的测试。,2.2.1常规加密模型,密码分析方法强行攻击利用每个可能的密钥进行测试,直到找到可以解密的密钥。强行攻击只适合于密钥空间不太大的场合。基于统计的分析利用明文、密钥和密文的统计特征破译出明文或密钥。差
16、分密码分析使用循环过程来分析密码。从具有给定差异的两个报文开始,跟踪每次循环后的差值模式,以便产生可能的密文差值模式。,2.2.1常规加密模型,线性密码分析通过对一对明文和相关的密文对的分析,找到分组密码中进行变换的线性近似。代数攻击利用分组密码中的数学结构进行攻击。如果存在这种数学结构,则使用一个密钥进行一次加密的结果有可能等于用两个不同密钥进行两次加密的结果。这一弱点将为攻击者所利用。,2.2.1常规加密模型,对常规密码方案的密码分析基于以下事实明文中结构的痕迹或模式经加密后有可能在密文中仍是可辨认的。对公钥方案的密码分析基于以下前提公钥/私钥密钥对的数学性质可能使得从两个密钥之一推导出另
17、一个是可能的。,2.2.1常规加密模型,算法安全性问题如果一个算法无法抵御仅有密文攻击,则该算法就不是一个好的算法。通常,加密算法应能够抵御已知明文的攻击。如果攻击者无论拥有多少由某一算法所产生的密文,都无法由这些密文中所包含的信息惟一地决定对应的明文,则称此算法是无条件安全的。算法应保证在计算上是安全的。如果加密算法满足以下两个准则,则认为加密方案在计算上是安全的:破译该密码的成本超过被加密信息的价值;破译该密码的时间超过该信息有用的生命周期。,2.2.1常规加密模型,经典加密主要采用的两种加密技术替代替代是将明文中的每个元素(字母、比特、比特组合或字母组合)映射为另一个元素的技术。在经典加
18、密技术中使用的元素一般为字母或数字。置换置换是在不丢失信息的前提下对明文中的元素进行重新排列。,2.2.2经典加密技术,替代技术恺撒密码单字母替代密码多字母密码,2.2.2经典加密技术,恺撒密码凯撒密码将字母表视为一个循环的表,把明文中的字母用表中该字母后面第3个字母进行替代。凯撒密码的明文字母和密文字母的对应关系例如,明文:meetmeaftertheparty密文:PHHWPHDIWHUWKHSDUWB,2.2.2经典加密技术,若让每个字母对应一个数值(a=0,b=1,z=25),则该算法表示的明文字母p和密文字母c可以表示为:c=E(p)=(p+3)mod26将上述算法一般化,密文字母与
19、明文字母的偏移可以是任意值k,则通用的恺撒算法可以表示为:c=E(p)=(p+k)mod26其中,k是加密算法的密钥,可以在1到25之间取值。解密算法可以表示为:p=D(c)=(ck)mod26,2.2.2经典加密技术,对恺撒密码的攻击由于k的取值范围的限制,凯撒密码的密钥空间很小,难以抵御强行攻击。攻击者最多尝试25次,就一定能够破译密码。,2.2.2经典加密技术,单字母替代密码凯撒密码仅有25个可能密钥,非常不安全。若允许字母的任意替代,就能够使密钥空间变得非常大。为了加大凯撒密码的密钥空间,可以采用单字母替代密码。单字母替代密码是将密文字母的顺序打乱后与明文字母对应。这是单字母替代密码的
20、明文字母与密文字母对应关系的例子。单字母替代密码的密钥空间大小为26!,约为41026。,2.2.2经典加密技术,针对单字母替代密码的攻击:如果密码攻击者知道明文的性质(如自然语言文本),则攻击者可以利用该自然语言的统计特性。首先,攻击者能够确定密文中字母的相对频率,然后与自然语言的标准频率分布进行比较。另外,还可以观察双字母组合和三字母组合等。由于单字母替代密码反映了原来字母表的频率特性,因此很容易被攻破。,2.2.2经典加密技术,例如在英语中,字母e出现的频率最高,为12.75%,其次分别为t(9.25%)、r(8.5%)、i(7.75%)、n(7.75%)以及o(7.5%)等。攻击者可以
21、根据密文中字母、双字母组合(如th)甚至三字母组合(如the)出现的相对频率进行猜测,只要密文足够长,攻击者即可由明文推导出密文。,2.2.2经典加密技术,多字母密码多字母密码是指处理明文消息时使用不同的单字母替代。多字母密码具有以下性质:使用一系列相关的单字母替代规则;密钥决定对一个给定的变换选择哪种特定的规则。Vigenre密码是最著名、也是最简单的一种多字母密码。它在处理明文消息时使用了不同的单字母替代。,2.2.2经典加密技术,Vigenre密码Vigenre密码利用一个恺撒方阵来修匀密文中字母的频率。在明文中不同地方出现的同一字母在密文中一般用不同的字母替代。恺撒方阵的形式,在恺撒方
22、阵中,26个密文的每个都是水平排列的,每个密文的左侧为其密钥字母,而对应明文的字母表自顶向下排列。,2.2.2经典加密技术,加密过程为了加密一个消息,需要一个与该消息具有相同长度的密钥。通常,密钥为一重复的关键词。加密时,使用一个通信双方所共享的密钥字符串,将密钥字符串重复书写在明文字母的上方。对要加密的明文字母找到密钥字母,然后由该字母确定恺撒方阵的某一行(以该密钥字母开头的行)。最后利用该行的字母表,使用恺撒密码的加密方法进行替代。给定一个密钥字母x和一个明文字母y,密文字母位于x行y列。,2.2.2经典加密技术,例如:假定密钥为HAPPYTIME密钥:HAPPYTIMEHAPPYTIM明
23、文:pleasesendthedata密文:WLTPQXAQRKTWTBTBMVigenre密码的强度在于每个明文字母由多个密文字母对应;每个明文字母对应于密钥所确定的密文字母;因此该字母的频率信息是模糊的。,2.2.2经典加密技术,针对Vigenre密码的攻击攻击者假定密文使用单字母替代或Vigenre密码加密;若确定是Vigenre密码,则进展取决于对密钥长度的判定。关键在于:如果两个相同的明文字母序列出现在一定的距离内,若该距离为密钥长度的整数倍,它们将产生相同的密文序列。如果密钥长度为N,则该密码实际上是由N个单字母替代密码组成。,2.2.2经典加密技术,攻击者在破解Vigenre密码
24、时可以猜测密钥的长度N,然后按每行N个字母排列密文。如果猜测的密钥长度正确,则排列后每列的所有密文字母都是用恺撒方阵中同一行进行恺撒加密的结果。例如密钥:HAPPYTIME密文:WLTPQXAQRKTWTBTBM,2.2.2经典加密技术,置换技术矩形转置密码图形转置密码,2.2.2经典加密技术,矩形转置密码将明文写成矩形结构,然后通过控制其输出方向和输出顺序来获得密文。例如:明文pleasesendthedata在不同输出顺序下的密文为输出顺序输出顺序输出顺序1234535142AFTERpleaspleaspleasesenesenesendthedthedthedatadatadata密文
25、:ped1destaaehtsneaestasneapedaehtldpedaehtldsneaesta,2.2.2经典加密技术,输入方向,输出方向,输出方向,输入方向,输入方向,输出方向,图形转置密码图形转置密码是矩形转置密码的一般形式。预先选定一种图形,将明文按一定方向输入到该图形中,然后再按另一种方向输出字母便得到了密文。例如,一个三角形转置密码的例子如图所示。明文:howmanybooksdoesharryhave密文:OSYVEBERAYORHNDAASHMKWOOH,ehavharryoksdoeshowmanybo,输入方向,输出方向,2.2.2经典加密技术,现代对称加密技术和经
26、典加密技术的比较:相同点以替代和置换模块作为其基本构件。不同点现代常规加密技术用计算机对信息进行加密解密处理;算法的强度大大提高;密钥长度也大大增加;加密和解密都是对二进制位进行处理;可以对信息进行反复地替代和置换操作。,2.3现代常规加密技术,现代常规加密技术2.3.1Feistel分组密码2.3.2分组密码的操作模式2.3.3数据加密标准DES2.3.4三重DES(TripleDES)练习,2.3现代常规加密技术,Feistel分组密码是当前使用的几乎所有对称加密算法的基础。Feistel分组密码Feistel密码结构的设计动机Feistel密码结构,2.3.1Feistel分组密码,2.
27、3.1Feistel分组密码,Feistel密码结构的设计动机理想分组密码(idealblockcipher)分组密码对于一个n比特的明文分组进行操作产生一个n比特的密文分组,共有2n种不同的明文分组。为了使加密过程可进行逆向操作(即使解密成为可能),每种明文分组都必须产生一个惟一的密文分组,这种变换称为可逆的或非奇异的。对于nbit的输入,其可逆变换的数量为2n!。,例子:当n=2时,非奇异与奇异变换的区别,2.3.1Feistel分组密码,一般的从nbit到nbit分组替代的逻辑(n=4),4到16译码器0123456789101112131415,01234567891011121314
28、1516到4编码器,4bit输入,4bit输出,2.3.1Feistel分组密码,一个4bit的输入产生16种可能输入状态中的一种;这种状态被替代密码映射到16种可能输出状态中的惟一一种;每种输出均用4bit密文表示。替代密码的加密解密表,2.3.1Feistel分组密码,在基于可逆替代的理想分组密码中,与每个明文分组对应的密文分组,惟一地确定了一种可逆映射关系,即密钥。密钥在所有可能的映射关系中惟一地确定了其中的一种可逆映射。若分组的长度为nbits,则密钥的长度为n2nbits。,2.3.1Feistel分组密码,理想分组密码的弱点若分组长度较小,系统等价于古典的替代密码,难以抗击明文的统
29、计分析。其根源在于分组长度太小,而不在于使用了替代密码。若n很大,且允许使用明文和密文之间的任何可逆替代,则明文的统计特性就会被隐藏得很深,难以进行密码分析。,2.3.1Feistel分组密码,然而,从实现和性能的角度看,对于很长的分组采用任意的可逆替代密码是不现实的。明文和密文之间的变换在本质上就是从所有可能的映射中确定特定映射的密钥。一般地,对于nbit的一般替代分组密码,密钥的大小是n2n。例如:64bit的分组长度对于统计攻击而言是必要的,此时的密码长度是64264=2701021bit。可见,理想分组密码系统的密钥长度过长。,2.3.1Feistel分组密码,解决方法Feistel指
30、出,此时真正需要的是在n很大时对该理想分组密码系统的一个近似,该近似要能够用容易实现的部分组合起来。为此,Feistel提出使用乘积密码近似简单的替代密码。乘积密码是以某种方式连续执行两个或多个密码以使得所得到的最终结果或乘积,从密码编码的角度看比其任意一个组成密码都更强。,2.3.1Feistel分组密码,Shannon提出使用扰乱和扩散交替的方式来构造乘积密码。扩散和扰乱是现代分组密码设计的基础。基于Shannon理论,Feistel提出以替代和置换交替的方式构造密码,Feistel方法是Shannon设想的一个实际应用。在二进制分组密码中,可以对数据重复执行某个置换,然后再将函数作用于该
31、置换,从而获得扩散效果。扰乱可以通过执行复杂的替代算法实现。,2.3.1Feistel分组密码,Feistel密码结构当前所使用的几乎所有重要的对称加密算法都是基于Feistel分组密码结构。Feistel密码是一种分组密码,Feistel的安全性与下面几个方面密切相关:分组大小分组越大,安全性越高,加密/解密处理速度也越慢。分组大小通常是64比特。密钥大小密钥长度越长,安全性越高,加密/解密速度也越慢。通常要求能够支持128比特或更长的密钥长度。,2.3.1Feistel分组密码,循环次数循环次数越多,安全性越高,加密/解密速度也越慢。通常采用16次循环。子密钥产生算法在Feistel算法的
32、多轮循环中,需要使用不同的子密钥,产生子密钥的算法越复杂,抵御密码分析的能力就越强。轮函数轮函数的扩散和扰乱功能越强,则抵御密码分析的能力就越强。,2.3.1Feistel分组密码,(C)LW,(C)RW,F,密文分组C(2w比特),明文分组P(2w比特),LD0,RD0,RDn-1,RDn,RDn+1,Kn,Kn-1,K1,LD1,LDn-1,LDn,LDn+1,F,RD1,F,(P)LW,(P)RW,(P)LW,(P)RW,F,明文分组P(2w比特),密文分组C(2w比特),LE0,RE0,REn-1,REn,REn+1,K1,K2,Kn,LE1,LEn-1,LEn,LEn+1,F,RE1
33、,F,(C)LW,(C)RW,Feistel加密/解密算法的结构图,加密算法LE0=(P)LW;RE0=(P)RW;fori=1step1tondoLEi=REi-1;REi=LEi-1F(REi-1,Ki)endforLEn+1=REn;REn+1=LEn;C=LEn+1|REn+1;其中,(P)LW表示明文分组P的长度为w的左边部分,(P)RW表示明文分组的右边部分,|表示连接。,2.3.1Feistel分组密码,解密算法LD0=(C)LW;RD0=(C)RW;fori=1step1tondoLDi=RDi-1;RDi=LDi-1F(RDi-1,Kn-i+1)endforLDn+1=RDn
34、;RDn+1=LDn;P=LDn+1|RDn+1;,2.3.1Feistel分组密码,Feistel密码的特点是模块化程度高加密/解密都采用基本模块经过多轮循环而实现;加密过程和解密过程相同,差异仅仅在子密钥的使用顺序上;非常有利于硬件实现。,2.3.1Feistel分组密码,为了适应不同的应用需求,分组密码定义了四种操作模式电子密码本ECB(ElectronicCodeBook)密码分组链接CBC(CipherBlockChaining)密码反馈CFB(CipherFeedback)输出反馈OFB(OutputFeedback),2.3.2分组密码的操作模式,电子密码本ECB电子密码本是分组
35、密码应用的最基本形式。将明文P划分为长度为w比特的明文分组(P1,P2,Pn),如果必要需要对最后一个分组进行填充。每个明文分组使用同一个密钥K进行加密处理。每个w比特明文分组与w比特密文分组一一对应。,2.3.2分组密码的操作模式,电子密码本模式的示意图,加密,加密,时刻t=1,P1,C1,K,解密,C1,P1,K,加密,时刻t=2,P2,C2,K,加密,时刻t=n,Pn,Cn,K,解密,C2,P2,K,解密,Cn,Pn,K,解密,2.3.2分组密码的操作模式,电子密码本模式的特点相同的明文分组必然产生相同的密文分组。对于传输大量信息(尤其是结构化程度较高的信息),电子密码本模式的安全性并不
36、是太好。电子密码本模式下明文的加密过程与密文无关,因此,可以对明文分组进行并行加密处理,以获得很高的加密速度。电子密码本模式适合于加密传输少量的数据信息。,2.3.2分组密码的操作模式,密码分组链接CBC密码分组链接模式同电子密码本模式一样需要对明文进行分组和填充,且对每个明文分组使用相同的密钥。加密处理当前的明文分组与上一次输出的密文分组进行异或,然后利用基本分组加密算法进行加密处理。引入初始向量IV与第一个明文分组进行异或。IV必须为发送方与接收方共享,且应与密钥一样受到保护。解密处理每个密文分组经过基本解密算法解密,然后将此结果与前一个密文分组按位异或以产生明文分组。初始向量IV用来与解
37、密算法的输出进行异或,以产生第一个明文分组。,2.3.2分组密码的操作模式,密码分组链接模式的示意图,加密,加密,时刻t=1,P1,C1,K,解密,C1,P1,K,加密,时刻t=2,P2,C2,K,加密,时刻t=n,Pn,Cn,K,解密,C2,P2,K,解密,Cn,Pn,K,解密,IV,Cn-1,IV,Cn-1,2.3.2分组密码的操作模式,解密算法正确性的证明Ci=EKCi-1PiDKCi=DKEKCi-1Pi=Ci-1PiCi-1DKCi=Ci-1Ci-1Pi=Pi密码分组链接模式的特点通过将明文分组与前一个密文分组异或,实现了明文模式的隐藏,使得当同一个明文分组重复出现时能够产生不同的密
38、文分组。可以用于大量信息和高结构化信息的加密传输。无法对明文进行并行加密,但可以进行并行解密。,2.3.2分组密码的操作模式,密码反馈模式CFB密码反馈模式将分组密码转化为序列密码。序列密码不要求报文被填充成整数个分组,并可以实时运行。CFB实际上是利用基本分组加密模块来产生密钥流。,2.3.2分组密码的操作模式,加密处理假定传输单位为h比特,通常的取值是h=8。加密函数的输入是一个w比特的移位寄存器,该移位寄存器被初始化为初始向量IV。加密函数输出结果的最左边(最高位)h比特与h比特的明文P1进行异或,以生成h比特密文C1。然后移位寄存器左移h位,并将C1移入移位寄存器的最右边(最低位)h比
39、特中。重复以上过程直至所有的明文都完成加密。在CFB中,伪随机密钥是由基本分组密码模块对移位寄存器的内容加密后选取最高位h比特形成的。,2.3.2分组密码的操作模式,解密处理解密过程与加密过程相同;注意:解密时使用的是加密函数。,2.3.2分组密码的操作模式,密码反馈模式的示意图(加密),P1,K,IV,Cn-1,移位寄存器w-h比特|h比特,加密,选择丢弃h比特|w-h比特,P2,K,移位寄存器w-h比特|h比特,加密,选择丢弃h比特|w-h比特,Pn,K,移位寄存器w-h比特|h比特,加密,选择丢弃h比特|w-h比特,2.3.2分组密码的操作模式,w,w,h,h,h,h,h,h,w,w,C
40、1,C2,Cn,h,h,h,w,w,密码反馈模式的示意图(解密),P1,K,IV,Cn-1,移位寄存器w-h比特|h比特,加密,选择丢弃h比特|w-h比特,P2,K,移位寄存器w-h比特|h比特,加密,选择丢弃h比特|w-h比特,Pn,K,移位寄存器w-h比特|h比特,加密,选择丢弃h比特|w-h比特,w,w,h,h,h,h,h,h,w,w,C1,C2,Cn,h,h,h,w,w,2.3.2分组密码的操作模式,解密算法正确性的证明令Sh(X)表示X的最高h位,MS表示发送方移位寄存器中的值,MR表示接收方移位寄存器中的值,则加密:C1=P1Sh(EKIV)解密:P1=C1Sh(EKIV)=P1S
41、h(EKIV)Sh(EKIV)=P1同理,加密:Ci=PiSh(EKMS)解密:Pi=CiSh(EKMR)=PiSh(EKMS)Sh(EKMR)只要保证发送方与接收方移位寄存器中初始向量IV的值相等,就能保证MS与MR相等(假定未发生传输错误或其他错误)。,2.3.2分组密码的操作模式,由于双方使用了相同的加密函数EK与选择函数Sh,从而使得下式成立:Sh(EKMS)=Sh(EKMR)根据异或运算的性质可得:解密结果为Pi。密码反馈模式的不足之处:若传输中密文出错,则会造成解密错误。由于错误码在被移出移位寄存器之前被多次使用,因而一个密文出错,会造成连续w/h个解密明文的错误。,2.3.2分组
42、密码的操作模式,输出反馈模式OFB输出反馈模式与密码反馈模式在结构上很接近,不同之处在于密码反馈方式将密文单元反馈回移位寄存器,而输出反馈方式将加密函数的输出反馈回移位寄存器。,2.3.2分组密码的操作模式,输出反馈模式的示意图(加密),P1,K,IV,Cn-1,移位寄存器w-h比特|h比特,加密,选择丢弃h比特|w-h比特,P2,K,移位寄存器w-h比特|h比特,加密,选择丢弃h比特|w-h比特,Pn,K,移位寄存器w-h比特|h比特,加密,选择丢弃h比特|w-h比特,w,w,h,h,h,h,h,h,w,w,C1,C2,Cn,h,h,h,w,w,2.3.2分组密码的操作模式,输出反馈模式的示
43、意图(解密),P1,K,IV,Cn-1,移位寄存器w-h比特|h比特,加密,选择丢弃h比特|w-h比特,P2,K,移位寄存器w-h比特|h比特,加密,选择丢弃h比特|w-h比特,Pn,K,移位寄存器w-h比特|h比特,加密,选择丢弃h比特|w-h比特,w,w,h,h,h,h,h,h,w,w,C1,C2,Cn,h,h,h,w,w,2.3.2分组密码的操作模式,输出反馈模式的优点传输中的比特差错不会传播。输出反馈模式的缺点比密码反馈模式更容易受到报文流篡改攻击。,2.3.2分组密码的操作模式,DES的发展历史目前,使用最广泛的加密算法都基于数据加密标准(DES,DataEncryptionStan
44、dard)。在DES中数据以64比特分组进行加密,密钥长度为56比特。加密算法经过一系列的步骤把64比特的输入变换成64比特的输出,解密过程中使用同样的步骤和同样的密钥。1971年,IBM开发了LUCIFER算法,LUCIFER是一种Feistel分组密码,其分组长度为64比特,密钥长度为128比特。随后,IBM开发了LUCIFER改进版本,其抗击密码分析的能力更强,但密钥却缩短至56比特,以便可以在单个芯片上实现。LUCIFER改进版本在1977年被NBS选为数据加密标准。,2.3.3数据加密标准DES,对DES标准的批评主要集中在两个方面:LUCIFER算法的密钥长度为128比特,而DES
45、标准的密钥长度为56比特,批评者担心56比特的密钥长度不足以抵御穷举式攻击。DES的内部结构(即S盒子)的设计标准是保密的,从而用户无法确信DES的内部结构不存在隐藏的弱点,利用该弱点NSA能够在不知道密钥的情况下解密报文。,2.3.3数据加密标准DES,DES加密DES算法具有严格的Feistel结构,由替代与置换经细致而复杂的结合而成,通过反复应用替代与置换技术来提高其强度。DES共使用了16轮替代和置换。,2.3.3数据加密标准DES,DES加密算法的一般描述,DES加密过程分为两条主线:明文分组加密处理,经过了三个阶段第一个阶段为初始置换(IP)。初始置换按照IP表将输入明文分组的64
46、位二进制数重新排列,产生新的64位输出。初始置换后的输出被分为左右各32位的两部分。第二个阶段为标准的Feistel密码结构,循环次数为16轮,每轮循环使用一个48位的子密钥。经过16轮循环后,再将输出的左右两部分进行对换,并合并为64位的输出。第三个阶段完成逆初始置换(IP-1),将64位二进制数进行重新排列,产生的64位输出即为密文。产生子密钥(),2.3.3数据加密标准DES,产生子密钥密钥首先通过一个置换函数;对于16个循环的每一个,都通过一个循环左移操作和一个置换操作的组合产生一个子密钥Ki;对于每个循环来说,置换函数是相同的,但由于密钥比特的重复移位,所产生的子密钥并不相同。,2.
47、3.3数据加密标准DES,明文信息,初始置换IP,第1轮,RE0,LE0,REi-1,LEi-1,扩展置换E,DES加密算法的示意图,替代/选择,置换P,REi,32,48,48,32,32,密钥K,Ci-1,循环左移,置换选择PC-2,Ki,48,循环左移,循环左移,循环左移,置换选择PC-2,第16轮,RE16,LE16,32位对换,逆初始置换IP-1,K16,48,LEi,32,置换选择PC-2,置换选择PC-1,循环左移,Di-1,K1,48,28,C0,D0,56,Ci,Di,64bit分组,第一阶段,第二阶段,第三阶段,F,循环左移,28,初始置换初始置换按照IP表将输入明文分组的
48、64位二进制数进行重新排列,产生新的64位输出。逆初始置换IP-1是第一个阶段初始置换的逆操作,M=IP-1(IP(M)。DES的初始置换与逆初始置换表,2.3.3数据加密标准DES,每个循环的详细过程DES算法的第二阶段包含了16轮循环与一个32位对换。16轮循环完全相同,每个循环利用子密钥对左右两部分进行替代与置换操作。对于每个循环,每个64比特的中间结果的左右两部分被当作两个独立的32比特数值进行处理,分别标记为LE与RE。每个循环的加密处理可以表示为:LEi=REi-1REi=LEi-1F(REi-1,Ki),2.3.3数据加密标准DES,F完成以下操作:将32比特的REi-1通过扩展
49、置换E,扩展为48比特;将扩展后的48比特输出与本轮循环的48比特的子密钥Ki进行异或;利用8个S盒子完成替代选择,结果为32比特;根据置换函数P进行置换操作。,2.3.3数据加密标准DES,扩展置换E与置换函数P扩展置换E将32比特的输入扩展到48比特,扩展操作由扩展置换E表定义,该表包括了一个重复使用输入中16比特的扩展操作与一个置换操作,形成了48比特的输出。置换函数P用于对替代/选择操作(S盒子)的输出进行置换操作,以使得在下一轮中每个S盒子的输出会影响尽可能多的其他S盒子的输出。,2.3.3数据加密标准DES,扩展置换E表与置换函数P,2.3.3数据加密标准DES,替代选择替代选择操
50、作由8个S盒子完成,每个S盒子接受6比特输入并产生4比特输出,8个S盒将48位的输入变为32位输出,在完成代替的同时实现了压缩。替代选择操作的示意图,2.3.3数据加密标准DES,S盒的使用方法S盒的表是一个4行16列的替代表,每一行定义了一个一般的可逆变换。每组中最外面的两个比特选择了4种可能替代中的一种,也就是S盒子的一行,中间4比特的特定输入被替代为4bit的输出。假定48位输入分为8个6位的组,记为B1,B2,B3,B8。S盒S1对B1进行变换,S1盒的定义如下,2.3.3数据加密标准DES,设B1的6位组是blb2b3b4b5b6,取出b1和b6位组成一个2位的二进制数blb6,其取
51、值范围在0-3之间,根据此值选取S1盒中对应的行,再由二进制数b2b3b4b5(其值在0-15之间)确定S1盒中的列,将行列交汇处的值以二进制数输出,得到4比特的替代选择结果。例如,B1=101011时,blb6=11,b2b3b4b5=0101,分别选中S1盒的行3和列5,得到值9,因此输出为1001。,2.3.3数据加密标准DES,密钥的产生56位的密钥通常加上奇偶校验位后以8个字节存放,其中第8,16,24,64位为奇偶校验位,使用时去掉这些不含密钥信息的校验位,得到56位的密钥。56比特密钥首先根据置换选择表PC-1进行置换选择。56比特密钥经置换选择PC-1后,结果被分成两个28比特
52、的部分C0和D0。在每一轮循环中,Ci-1与Di-1分别经过由循环轮数与循环左移位数表确定的1比特或2比特的循环左移,得到Ci与Di,作为下一循环的输入。同时将Ci和Di合并后,作为置换选择PC-2的输入,置换选择后的输出即为该轮循环的48比特子密钥Ki。,2.3.3数据加密标准DES,置换选择PC-1表与置换选择PC-2表,2.3.3数据加密标准DES,循环轮数与循环左移位数表该表确定了当前循环的轮数与循环左移的位数之间的关系,除第1、2、9与16轮为循环左移1位外,其他轮循环皆循环左移2位。,2.3.3数据加密标准DES,DES解密DES解密操作与加密采用相同的算法,与加密相反的顺序使用子
53、密钥,即可由密文解密出明文。,2.3.3数据加密标准DES,简化的DES算法,IP,FK,SW,FK,IP-1,IP,FK,SW,FK,IP-1,P10,移位,P8,P8,移位,8bit明文,8bit密文,8bit明文,8bit密文,10bit密钥,加密,解密,K1,K1,K2,K2,IP,L0,8bit明文,8bit密文,R0,L1,R1,E/P,S0,S1,P4,IP-1,f,K1,K2,f,8,4,4,4,4,8,8,4,4,2,2,4,4,4,4,4,4,8,8,26314857,41357286,41232341,2431,P10,LS-1,10bit密钥,LS-1,LS-2,LS-
54、2,K1,10,5,P8,P8,K2,5,5,5,5,5,8,8,35274101986,637485109,循环左移1位,循环左移2位,S0=,S1=,35274101986,循环左移1位,637485109,K1,循环左移2位,637485109,K2,生成密钥,26314857,41232341,K1,S0,S1,明文,2431,41232341,K2,S0,S1,41357286,密文,2431,26314857,41232341,K2,S0,S1,密文,2431,41232341,K1,S0,S1,41357286,明文,2431,DES的密钥长度只有56比特,易于受到穷举式攻击。D
55、ES算法的改进双重DES双密钥三重DES三密钥三重DES,2.3.4三重DES(TripleDES),双重DES双重DES是利用两个不同的密钥对明文进行两次连续的加密处理。双重DES的处理结构解密时以与加密时相反的顺序使用密钥。加密操作:C=EK2EK1P解密操作:P=DK1DK2C双重DES使用的密钥长度为两个密钥之和,共112位。双重DES算法易受中途攻击(Meet-in-the-MiddleAttack)。,DES加密,DES加密,K1,K2,DES解密,DES解密,K2,K1,P,X,C,C,X,P,2.3.4三重DES(TripleDES),双密钥三重DES双密钥3DES利用两个不同
56、的密钥连续三次对明文进行加密处理,试图用较短的密钥获得较高的安全性。目前的双密钥三重DES加密方案有两种:DES-EEE2和DES-EDE2。DES-EEE2的加密解密过程加密操作:C=EK1EK2EK1P解密操作:P=DK1DK2DK1C,DES加密,DES加密,K1,K2,DES解密,DES解密,K2,K1,P,X,Y,X,P,DES加密,K1,C,DES解密,K1,C,Y,2.3.4三重DES(TripleDES),DES-EDE2的加密解密过程加密操作:C=EK1DK2EK1P解密操作:P=DK1EK2DK1CDES-EDE2模式的好处是可以解密原来单次DES所加密的数据。,DES加密,DES解密,K1,K2,DES加密,DES解密,K2,K1,P,X,Y,X,P,DES加密,K1,C,DES解密,K1,C,Y,2.3.4三重DES(TripleDES),三密钥三重DES研究人员认为三密钥
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 前置胎盘家庭护理指导查房
- 教师资格考试小学音乐面试重点难点精练试题解析
- 中医护理拔罐刮痧课件
- 半失能老人个人卫生护理指南
- 巢湖市2025年四年级数学下学期期中调研试题(含解析)
- 中国护理质量管理的未来趋势
- 教师资格考试初级中学信息技术面试知识点精练试题详解(2026年)
- 卒中康复护理中的辅助器具使用指导
- 高考物理终极押题卷(十一)(学生版)
- 2026届广东省深圳市宝安区重点名校中考物理仿真试卷含解析
- 12、口腔科诊疗指南及技术操作规范
- 赋能:打造应对不确定性的敏捷团队
- 学前儿童行为观察的方法(课堂PPT)
- 神经康复科诊疗指南规范
- 工业机器人技术与应用PPT完整全套教学课件
- dd5e人物卡可填充格式角色卡夜版
- 第五章 马尔可夫过程
- GB/T 35749-2017锦纶66弹力丝
- GB/T 3478.1-2008圆柱直齿渐开线花键(米制模数齿侧配合)第1部分:总论
- GB/T 19247.4-2003印制板组装第4部分:分规范引出端焊接组装的要求
- 坚持好干部20字标准,做人民满意的好干部
评论
0/150
提交评论