《《分组密码理论》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《分组密码理论》PPT课件.ppt(45页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第3章章 分组密码理论分组密码理论3.1 分组密码概述分组密码概述3.2 DES3.3 分组密码的设计原理分组密码的设计原理3.4 分组密码的工作模式分组密码的工作模式3.1 分组密码概述分组密码概述分组密码,就是一个明文分组被当作一分组密码,就是一个明文分组被当作一个整体来产生一个等长(通常)的密文个整体来产生一个等长(通常)的密文分组的密码,通常使用的是分组的密码,通常使用的是128位分组大位分组大小。小。分组密码的实质是,设计一种算法,能分组密码的实质是,设计一种算法,能在密钥控制下,把在密钥控制下,把n比特明文简单而又迅比特明文简单而又迅速地置换成唯一速地置换成唯一n比特密文,并且这
2、种变比特密文,并且这种变换是可逆的(解密)。换是可逆的(解密)。3.1 分组密码概述分组密码概述(Cont.)分组密码的设计思想(分组密码的设计思想(C.E.Shannon):扩散扩散(diffusion)将明文及密钥的影响尽可能迅速地散布到将明文及密钥的影响尽可能迅速地散布到较多个输出的密文中(将明文冗余度分散较多个输出的密文中(将明文冗余度分散到密文中)。产生扩散的最简单方法是通到密文中)。产生扩散的最简单方法是通过过“置换置换(Permutation)”(比如:重新排(比如:重新排列字符)。列字符)。分组密码的设计思想分组密码的设计思想(Cont.)混淆混淆(confusion)其目的在
3、于使作用于明文的密钥和密文之其目的在于使作用于明文的密钥和密文之间的关系复杂化,是明文和密文之间、密间的关系复杂化,是明文和密文之间、密文和密钥之间的统计相关特性极小化,从文和密钥之间的统计相关特性极小化,从而使统计分析攻击不能奏效。通常的方法而使统计分析攻击不能奏效。通常的方法是是“代换(代换(Substitution)”(回忆恺撒密(回忆恺撒密码)。码)。3.1 分组密码概述分组密码概述(Cont.)分组密码设计的要求:分组密码设计的要求:分组长度足够大(分组长度足够大(64128比特)比特)密钥量要足够大(密钥量要足够大(64128)算法足够复杂(包括子密钥产生算法)算法足够复杂(包括子
4、密钥产生算法)加密、解密算法简单,易软、硬件实现加密、解密算法简单,易软、硬件实现便于分析(破译是困难的,但算法却简便于分析(破译是困难的,但算法却简洁清晰洁清晰)3.23.2数据加密标准(数据加密标准(DES)DES)DES的历史的历史1971 IBM,由,由Horst Feistel 领导的密码研领导的密码研究项目组研究出究项目组研究出LUCIFER算法。并应用于算法。并应用于商业领域。商业领域。1973美国标准局征求标准,美国标准局征求标准,IBM提交结果,提交结果,在在1977年,被选为数据加密标准。年,被选为数据加密标准。3.23.2数据加密标准(数据加密标准(Cont.)Cont.
5、)4.2.1 4.2.1 简化的简化的DESDES Simplified DES方案,简称方案,简称S-DES方案。它方案。它是一个供教学而非安全的加密算法,它与是一个供教学而非安全的加密算法,它与DES的特性和结构类似,但参数小。的特性和结构类似,但参数小。注:注:1.*加密算法涉及五个函数:加密算法涉及五个函数:(1)初始置换初始置换IP(initial permutation)(2)复合函数复合函数fk1,它是由密钥它是由密钥K确定的,具有置换确定的,具有置换和代换的运算。和代换的运算。(3)置换函数置换函数SW(4)复合函数复合函数fk2(5)初始置换初始置换IP的逆置换的逆置换IP-
6、1 加密加密10bit密钥 解密解密8bit明文P108bit明文IP移位IP-1P8fkfkSWSW移位P8fkfkIPIP-18bit密文8bit密文K2K2K1K1S-DES方方案案示示意意图图2*.加密算法的数学表示:加密算法的数学表示:IP-1*fk2*SW*fk1*IP也可写为也可写为密文密文=IP-1(fk2(SW(fk1(IP(明文明文)其中其中 K1=P8(移位移位(P10(密钥密钥K)K2=P8(移位移位(移位移位(P10(密钥密钥K)解密算法的数学表示:解密算法的数学表示:明文明文=IP-1(fk1(SW(fk2(IP(密文密文)对对S-DES的深入描述的深入描述(1)S
7、-DES的密钥生成:的密钥生成:设设10bit的密钥为(的密钥为(k1,k2,k10)置换置换P10是这样定义的是这样定义的P10(k1,k2,k10)=(k3,k5,k2,k7,k4,k10,k1,k9,k8,k6)P8=(k1,k2,k10)=(k6,k3,k7,k4,k8,k5,k10,k9)LS-1为循环左移为循环左移1位,位,LS-2为循环左移为循环左移2位位按照上述条件按照上述条件,若若K选为选为(1010000010),产生的两产生的两个子密钥分别为个子密钥分别为K1=(1 0 1 0 0 1 0 0),K2=(0 1 0 0 0 0 1 1)S-DES的密钥生成的密钥生成10-
8、bit密钥密钥P10LS-1LS-1LS-2LS-2P8P8K18K255558(2)S-DES的加密运算的加密运算:初始置换用初始置换用IP函数函数:IP=1 2 3 4 5 6 7 8 2 6 3 1 4 8 5 7 末端算法的置换为末端算法的置换为IP的逆置换的逆置换:IP-1=1 2 3 4 5 6 7 8 4 1 3 5 7 2 8 6 易见易见IP-1(IP(X)=X S-DES加密图加密图8-bit 明文明文IPE/P+S0S1P4+LR4K1844fkF4S-DES加密图加密图(续续)E/P+S0S18K2P4+IP-18-bit 密文密文4844fkF44228SW函数函数f
9、k,是加密方案中的最重要部分,它可表示为:,是加密方案中的最重要部分,它可表示为:fk(L,R)=(L F(R,SK),R)其其中中L,R为为8位位输输入入,左左右右各各为为4位位,F为为从从4位位集集到到4位位集的一个映射集的一个映射,并不要求是并不要求是1-1的。的。SK为子密钥。为子密钥。对映射对映射F来说:来说:首首先先输输入入是是一一个个4-位位数数(n1,n2,n3,n4),第第一一步步运运算算是是扩张扩张/置换(置换(E/P)运算:)运算:E/P 4 1 2 3 2 3 4 1 事实上,它的直观表现形式为:事实上,它的直观表现形式为:n4 n1 n2 n3n2 n3 n4 n18
10、-bit子密钥:子密钥:K1=(k11,k12,k13,k14,k15,k16,k17,k18),然然后与后与E/P的结果作异或运算得:的结果作异或运算得:n4+k11 n1+k12 n2+k13n3+k14n2+k15 n3+k16 n4+k17n1+k18把它们重记为把它们重记为8位:位:P0,0 P0,1 P0,2 P0,3 P1,0 P1,1 P1,2 P1,3上上述述第第一一行行输输入入进进S-盒盒S0,产产生生2-位位的的输输出出;第第二二行行的的4位位输输入入进进S盒盒S1,产产生生2-位的输出。位的输出。两个两个S盒按如下定义:盒按如下定义:S盒按下述规则运算:盒按下述规则运算
11、:将将第第1和和第第4的的输输入入比比特特做做为为2-bit数数,指指示示为为S盒盒的的一一个个行行;将将第第2和和第第3的的输输入入比比特特做做为为S盒盒的的一一个个列列。如此确定为如此确定为S盒矩阵的(盒矩阵的(i,j)数。)数。例如:(例如:(P0,0,P0,3)=(00),并且并且(P0,1,P0,2)=(1 0)确确定定了了S0中中的的第第0行行2列列(0,2)的的系系数数为为3,记记为为(1 1)输出。)输出。由由S0,S1输输出出4-bit经经置置换换 P4 2 4 3 1它的输出就是它的输出就是F函数的输出。函数的输出。作业试证明S-DES的加密、解密是互逆的,即:D(E(M,
12、K),K)M。Feistel 密码结构Feistel 密码设计原则分组大小分组大小 increasing size improves security,but slows cipher 密钥长度密钥长度 increasing size improves security,makes exhaustive key searching harder,but may slow cipher 轮次数轮次数 increasing number improves security,but slows cipher 子密钥生成子密钥生成 greater complexity can make analysi
13、s harder,but slows cipher 轮函数轮函数 greater complexity can make analysis harder,but slows cipher 快速软件加密快速软件加密/解密解密are more recent concerns for practical use and testingFeistel 密码解密3.2 DES的描述的描述DES利用利用56比特串长度的密钥比特串长度的密钥K来加密长度为来加密长度为64位的明文,位的明文,得到长度为得到长度为64位的密文位的密文该算法分三个阶段实现:该算法分三个阶段实现:1.给定明文给定明文X,通过一个固定
14、的初始置换,通过一个固定的初始置换IP来排列来排列X中的位,中的位,得到得到X0。X0=IP(X)=L0R0其中其中L0由由X0前前32位组成,位组成,R0由由X0的后的后32位组成。位组成。2.计算函数计算函数F的的16次迭代次迭代,根据下述规则来计算根据下述规则来计算LiRi(1=i=16)Li=Ri-1,Ri=Li-1 F(Ri-1,Ki)其中其中Ki是长为是长为48位的子密钥。子密钥位的子密钥。子密钥K1,K2,K16是是作为密钥作为密钥K(56位)的函数而计算出的。位)的函数而计算出的。3.3.对比特串对比特串R R1616L L1616使用逆置换使用逆置换IPIP-1-1得到密文得
15、到密文Y Y。Y=IPY=IP-1-1(R R1616L L1616)DES 算法的一般描述一轮加密的简图一轮加密的简图 Li-1 Ri-1F+Li RiKi对对F F函数的说明:函数的说明:(类比于(类比于S-DESS-DES)F F(R Ri-1i-1,K,Ki i)函数函数F F以长度为以长度为3232的比特串的比特串A=RA=R(32bits32bits)作第一个输入,)作第一个输入,以长度为以长度为4848的比特串变元的比特串变元J=K(48bits)J=K(48bits)作为第二个输入。产作为第二个输入。产生的输出为长度为生的输出为长度为3232的位串。的位串。(1)(1)对第一个
16、变元对第一个变元A A,由给定的扩展函数,由给定的扩展函数E E,将其扩展成,将其扩展成4848位位串,串,E E(A A)(2)(2)计算计算E E(A A)+J+J,并把结果写成连续的,并把结果写成连续的8 8个个6 6位串位串,B=b B=b1 1b b2 2b b3 3b b4 4b b5 5b b6 6b b7 7b b8 8(3)(3)使用使用8 8个个S S盒,每个盒,每个SjSj是一个固定的是一个固定的4 4 1616矩阵,它的元矩阵,它的元素取素取015015的整数。给定长度为的整数。给定长度为6 6个比特串,如个比特串,如B Bj j=b=b1 1b b2 2b b3 3b
17、 b4 4b b5 5b b6 6计算计算Sj(Bj)如下:如下:b1b6两个比特确定了两个比特确定了Sj的行数的行数,r(0=r=3);而而b2b3b4b5四个比特确定了四个比特确定了Sj的列数的列数c(0=c=15)。最后)。最后Sj(Bj)的值为的值为S-盒矩阵盒矩阵Sj中中r行行c列的列的元素(元素(r,c),得得Cj=Sj(Bj)。(4)最后,最后,P为固定置换。为固定置换。A=R(32 bits)J=K(48 bits)EE(A)为48 bits+B1 B2 B3 B4 B5 B6 B7 B8 S1S2S3S4S5S6S7S8C1 C2 C3 C4 C5 C6 C7 C8P32 b
18、its F(A,J)B写成8个6比特串DES 的的F函数函数DES中使用的其它特定函数:中使用的其它特定函数:初始置换初始置换IP:从表:从表3.2中看出中看出X的第的第58个比特是个比特是IP(X)的第一个比特;的第一个比特;X的第的第50个比特是个比特是IP(X)的第二个比)的第二个比特特逆置换逆置换IP-1;扩展函数;扩展函数E;置换函数;置换函数P。从密钥从密钥K计算子密钥:计算子密钥:实际上,实际上,K是长度为是长度为64的位串,其中的位串,其中56位是密钥,位是密钥,8位是奇偶校验位(为了检错),在密钥编排的计算中,位是奇偶校验位(为了检错),在密钥编排的计算中,这些校验位可略去。
19、这些校验位可略去。(1).给定给定64位的密钥位的密钥K,放弃奇偶校验位(,放弃奇偶校验位(8,16,64)并根据固定置换)并根据固定置换PC-1(见(见144页图页图4-4-9)来排)来排列列K中剩下的位。我们写中剩下的位。我们写 PC-1(K)=C0D0其中其中C0由由PC-1(K)的前)的前28位组成;位组成;D0由后由后28位组成。位组成。(2)对对1=i=16,计算,计算Ci=LSi(Ci-1)Di=LSi(Di-1)LSi表示循环左移表示循环左移2或或1个位置,取决于个位置,取决于i的的值。的的值。i=1,2,9和和16 时移时移1个位置,否则移个位置,否则移2位置。位置。Ki=P
20、C-2(CiDi),PC-2为固定置。为固定置。注:注:一共一共16轮,每一轮使用轮,每一轮使用K中中48位组成一个位组成一个48比特密比特密钥。可算出钥。可算出16个表,第个表,第i个表中的元素可对应上第个表中的元素可对应上第i轮密轮密钥使用钥使用K中第几比特!如:中第几比特!如:第第7轮的表轮的表7:K7取取K中的比特情况:中的比特情况:52 57 11 1 26 59 10 34 44 51 25 199 41 3 2 50 35 36 43 42 33 60 1828 7 14 29 47 46 22 5 15 63 61 394 31 13 38 53 62 55 20 23 37
21、30 6图表(密钥生成图表(密钥生成Ki)KPC-1C0 D0LS1LS1C1 D1LS2LS2LS16LS16C16 D16PC-2PC-2K1K16 DES加密的一个例子加密的一个例子取取16进制明文进制明文X:0123456789ABCDEF密钥密钥K为:为:133457799BBCDFF1IP,我们得到:,我们得到:L01=R0然后进行然后进行16轮加密。轮加密。最后对最后对L16,R16使用使用IP-1得到密文:得到密文:85E813540F0AB4053.2.3 DES的争论的争论DES的核心是的核心是S盒,除此之外的计算是属盒,除此之外的计算是属线性的。线性的。S盒作为该密码体制
22、的非线性组盒作为该密码体制的非线性组件对安全性至关重要。件对安全性至关重要。S盒的设计准则:盒的设计准则:1.S盒不是它输入变量的线性函数盒不是它输入变量的线性函数2.改变改变S盒的一个输入位至少要引起两位盒的一个输入位至少要引起两位的输出改变的输出改变3.对任何一个对任何一个S盒,如果固定一个输入比盒,如果固定一个输入比特,其它输入变化时,输出数字中特,其它输入变化时,输出数字中0和和1的总数近于相等。的总数近于相等。公众仍然不知道公众仍然不知道S盒的构造中是否还使用盒的构造中是否还使用了进一步的设计准则(有陷门?)。了进一步的设计准则(有陷门?)。密钥长度是否足够?密钥长度是否足够?迭代的
23、长度?(迭代的长度?(8、16、32?)?)3.3 分组密码的设计原理分组密码的设计原理可变密钥长度可变密钥长度混合操作混合操作依赖数据的循环移位依赖数据的循环移位依赖于密钥的循环移位依赖于密钥的循环移位依赖密钥的依赖密钥的S盒子盒子冗长的密钥调度算法冗长的密钥调度算法可变的可变的F函数和可变的明文函数和可变的明文/密文长度密文长度可变的循环次数可变的循环次数在每次循环中都对两半数据进行操作在每次循环中都对两半数据进行操作分组密码的工作模式分组密码加密固定长度的数据分组需要使用一些实际的方法来加密任意数量的明文 五种工作模式Electronic Codebook Book(ECB)电码本模式电
24、码本模式ECB的优势与局限相同的明文对于相同的密文 结构化明文 消息有重复部分 主要用于发送少数量的分组数据 Cipher Block Chaining(CBC)密码分组链接模式密码分组链接模式Advantages and Limitations of CBCeach ciphertext block depends on all message blocks thus a change in the message affects all ciphertext blocks after the change as well as the original block need Initial
25、 Value(IV)known to sender&receiver however if IV is sent in the clear,an attacker can change bits of the first block,and change IV to compensate hence either IV must be a fixed value(as in EFTPOS)or it must be sent encrypted in ECB mode before rest of message at end of message,handle possible last s
26、hort block by padding either with known non-data value(eg nulls)or pad last block with count of pad size eg.b1 b2 b3 0 0 0 0 5-3 data bytes,then 5 bytes pad+count Cipher FeedBack(CFB)密码反馈模式密码反馈模式Advantages and Limitations of CFBappropriate when data arrives in bits/bytes most common stream mode limi
27、tation is need to stall while do block encryption after every n-bits note that the block cipher is used in encryption mode at both ends errors propogate for several blocks after the error Output FeedBack(OFB)输出反馈模式输出反馈模式Advantages and Limitations of OFBused when error feedback a problem or where nee
28、d to encryptions before message is available superficially similar to CFB but feedback is from the output of cipher and is independent of message a variation of a Vernam cipher hence must never reuse the same sequence(key+IV)sender and receiver must remain in sync,and some recovery method is needed to ensure this occurs originally specified with m-bit feedback in the standards subsequent research has shown that only OFB-64 should ever be usedCounter(CTR)计算器模式计算器模式Advantages and Limitations of CTR效率可并行加密预处理吞吐量仅受可使用并行数量的限制加密数据块的随机访问可证明安全简单性(只要求实现加密算法)