《第三章分组密码DESppt课件.ppt》由会员分享,可在线阅读,更多相关《第三章分组密码DESppt课件.ppt(37页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统第第3章章 分组密码理论分组密码理论3.1 分组密码概述分组密码概述3.2 DES3.3 分组密码的设计原理分组密码的设计原理3.4 分组密码的工作模式分组密码的工作模式篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统3.1 分组密码概述分组密码概述分组密码,就是一个明文分组被当作一分组密码,就是一个明文分组被当作一个整体来产生一个等长(通常)的密文个整体来产生一个等长(通常)的密文分组的密码,通常使用的是分组的密码,通常使用的
2、是128位分组大位分组大小。小。分组密码的实质是,设计一种算法,能分组密码的实质是,设计一种算法,能在密钥控制下,把在密钥控制下,把n比特明文简单而又迅比特明文简单而又迅速地置换成唯一速地置换成唯一n比特密文,并且这种变比特密文,并且这种变换是可逆的(解密)。换是可逆的(解密)。篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统3.1 分组密码概述分组密码概述(Cont.)分组密码的设计思想(分组密码的设计思想(C.E.Shannon):扩散扩散(diffusion)将明文及密钥的影响尽可能迅速地散布到将明文及密钥的影响尽可能迅速地散布
3、到较多个输出的密文中(较多个输出的密文中(让每个明文数字尽让每个明文数字尽可能地影响多个密文数字可能地影响多个密文数字)。)。篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统分组密码的设计思想分组密码的设计思想(Cont.)混淆混淆(confusion)其目的在于让密文和加密密钥间的统计关其目的在于让密文和加密密钥间的统计关系更加复杂。可以使用一些复杂的代换算系更加复杂。可以使用一些复杂的代换算法来实现,法来实现,简单的线性代换几乎增加不了简单的线性代换几乎增加不了混淆。混淆。篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的
4、,因此,篮球比赛的计时计分系统是一种得分类型的系统3.1 分组密码概述分组密码概述(Cont.)分组密码设计的要求:分组密码设计的要求:分组长度足够大(分组长度足够大(64128比特)比特)密钥量要足够大(密钥量要足够大(64128)算法足够复杂(包括子密钥产生算法)算法足够复杂(包括子密钥产生算法)加密、解密算法简单,易软、硬件实现加密、解密算法简单,易软、硬件实现便于分析(破译是困难的,但算法却简便于分析(破译是困难的,但算法却简洁清晰洁清晰)篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统3.23.2数据加密标准(数据加密标准(
5、DES)DES)DES的历史的历史1971 IBM,由,由Horst Feistel 领导的密码研领导的密码研究项目组研究出究项目组研究出LUCIFER算法。并应用于算法。并应用于商业领域。商业领域。1973美国标准局征求标准,美国标准局征求标准,IBM提交结果,提交结果,在在1977年,被选为数据加密标准。年,被选为数据加密标准。篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统3.23.2数据加密标准(数据加密标准(Cont.)Cont.)4.2.1 4.2.1 简化的简化的DESDES Simplified DES方案,简称方案,
6、简称S-DES方案。它方案。它是一个供教学而非安全的加密算法,它与是一个供教学而非安全的加密算法,它与DES的特性和结构类似,但参数小。的特性和结构类似,但参数小。注:注:1.*加密算法涉及五个函数:加密算法涉及五个函数:(1)初始置换初始置换IP(initial permutation)(2)复合函数复合函数fk1,它是由密钥它是由密钥K确定的,具有置换确定的,具有置换和代换的运算。和代换的运算。(3)置换函数置换函数SW(4)复合函数复合函数fk2(5)初始置换初始置换IP的逆置换的逆置换IP-1篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种
7、得分类型的系统 加密加密10bit密钥 解密解密8bit明文P108bit明文IP移位IP-1P8fk1fk2SWSW移位P8fk2fk1IPIP-18bit密文8bit密文K2K2K1K1S-DES方方案案示示意意图图篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统 加密加密10bit密钥 解密解密8bit明文P108bit明文IP移位IP-1P8fk1fk2SWSW移位P8fk2fk1IPIP-18bit密文8bit密文K2K2K1K1S-DES方方案案示示意意图图加密篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因
8、此,篮球比赛的计时计分系统是一种得分类型的系统 加密加密10bit密钥 解密解密8bit明文P108bit明文IP移位IP-1P8fk1fk2SWSW移位P8fk2fk1IPIP-18bit密文8bit密文K2K2K1K1S-DES方方案案示示意意图图解密篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统2*.加密算法的数学表示:加密算法的数学表示:IP-1*fk2*SW*fk1*IP也可写为也可写为密文密文=IP-1(fk2(SW(fk1(IP(明文明文)其中其中 K1=P8(移位移位(P10(密钥密钥K)K2=P8(移位移位(移位移
9、位(P10(密钥密钥K)解密算法的数学表示:解密算法的数学表示:明文明文=IP-1(fk1(SW(fk2(IP(密文密文)篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统对对S-DES的深入描述的深入描述(1)S-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为循环左移为循环左移
10、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-bit密钥密钥P10LS-1LS-1LS-2LS-2P8P8K18K255558篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统(2)S-DES的加密运算的加密
11、运算:初始置换用初始置换用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+LR4K1844fk14篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统S-DES加密图加密
12、图(续续)E/P+S0S18K2P4+IP-18-bit 密文密文4844fk244228SW函数函数fk,是加密方案中的最重要部分,它可表示为:,是加密方案中的最重要部分,它可表示为: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
13、 事实上,它的直观表现形式为:事实上,它的直观表现形式为:n4 n1 n2 n3n2 n3 n4 n18-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,产
14、产生生2-位的输出。位的输出。篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统两个两个S盒按如下定义:盒按如下定义:S盒按下述规则运算:盒按下述规则运算:将将第第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)的的系系数数为
15、为3,记记为为(1 1)输出。)输出。P4运算:由运算:由S0,S1输出输出4-bit经过经过置换。它的输出就是置换。它的输出就是F函数的输函数的输出。出。P42 4 3 1篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统3.2 DES的描述的描述DES利用利用56比特串长度的密钥比特串长度的密钥K来加密长度来加密长度为为64位的明文,得到长度为位的明文,得到长度为64位的密文位的密文该算法分三个阶段实现:该算法分三个阶段实现:1.给定明文给定明文X,通过一个固定的初始置换,通过一个固定的初始置换IP来排列来排列X中的位,得到中的位,
16、得到X0。X0=IP(X)=L0R0其中其中L0由由X0前前32位组成,位组成,R0由由X0的后的后32位组位组成。成。篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统3.2 DES的描述的描述DES利用利用56比特串长度的密钥比特串长度的密钥K来加密长度为来加密长度为64位位的明文,得到长度为的明文,得到长度为64位的密文位的密文该算法分三个阶段实现:该算法分三个阶段实现:2.计算函数计算函数F的的16次迭代次迭代,根据下述规则来计算根据下述规则来计算LiRi(1=i=16)Li=Ri-1,Ri=Li-1 F(Ri-1,Ki)其中其
17、中Ki是长为是长为48位的子密钥。子密钥位的子密钥。子密钥K1,K2,K16是作为密钥是作为密钥K(56位)的函数而计算出的。位)的函数而计算出的。3.3.对比特串对比特串R R1616L L1616使用逆置换使用逆置换IPIP-1-1得到密文得到密文Y Y。Y=IPY=IP-1-1(R R1616L L1616)篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统DES 算法的一般描述篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统一轮加密的简图一轮加密的简图 Li-1 Ri-
18、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)对第一个变元对第一个变元A A,由给定
19、的扩展函数,由给定的扩展函数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
20、个比特串,如个比特串,如B Bj j=b=b1 1b b2 2b b3 3b 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
21、=K(48 bits)EE(A)为48 bits+B1 B2 B3 B4 B5 B6 B7 B8 S1S2S3S4S5S6S7S8C1 C2 C3 C4 C5 C6 C7 C8P32 bits F(A,J)B写成8个6比特串DES 的的F函数函数篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统DES中使用的其它特定函数:中使用的其它特定函数:初始置换初始置换IP:从表:从表3.2中看出中看出X的第的第58个个比特是比特是IP(X)的第一个比特;)的第一个比特;X的第的第50个比特是个比特是IP(X)的第二个比特)的第二个比特逆置换逆置
22、换IP-1;扩展函数;扩展函数E;置换函数;置换函数P。篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统从密钥从密钥K计算子密钥:计算子密钥:实际上,实际上,K是长度为是长度为64的位串,其中的位串,其中56位是密钥,位是密钥,8位是奇偶校验位(为了检位是奇偶校验位(为了检错),在密钥编排的计算中,这些校验错),在密钥编排的计算中,这些校验位可略去。位可略去。(1).给定给定64位的密钥位的密钥K,放弃奇偶校验位,放弃奇偶校验位(8,16,64)并根据固定置换)并根据固定置换PC-1(见(见144页图页图4-4-9)来排列)来排列K中
23、剩下的中剩下的位。我们写位。我们写 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=PC-2(CiDi),PC-2为固定置。为固定置。篮球比赛是根据运动队在规定的比赛时间里得分
24、多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统注:注:一共一共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
25、20 23 37 30 6篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统图表(密钥生成图表(密钥生成Ki)KPC-1C0 D0LS1LS1C1 D1LS2LS2LS16LS16C16 D16PC-2PC-2K1K16 篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统DES加密的一个例子加密的一个例子取取16进制明文进制明文X:0123456789ABCDEF密钥密钥K为:为:133457799BBCDFF1去掉奇偶校验位以二进制形式表示的密钥是去掉奇偶校验位以二进制形式表示
26、的密钥是00010010011010010101101111001001101101111011011111111000应用应用IP,我们得到:,我们得到:L0=11001100000000001100110011111111L1=R0=11110000101010101111000010101010然后进行然后进行16轮加密。轮加密。最后对最后对L16,R16使用使用IP-1得到密文:得到密文:85E813540F0AB405篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统3.2.3 DES的争论的争论DES的核心是的核心是S盒,除
27、此之外的计算是属盒,除此之外的计算是属线性的。线性的。S盒作为该密码体制的非线性组盒作为该密码体制的非线性组件对安全性至关重要。件对安全性至关重要。S盒的设计准则:盒的设计准则:1.S盒不是它输入变量的线性函数盒不是它输入变量的线性函数2.改变改变S盒的一个输入位至少要引起两位盒的一个输入位至少要引起两位的输出改变的输出改变3.对任何一个对任何一个S盒,如果固定一个输入比盒,如果固定一个输入比特,其它输入变化时,输出数字中特,其它输入变化时,输出数字中0和和1的总数近于相等。的总数近于相等。篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统公众仍然不知道公众仍然不知道S盒的构造中是否还使用盒的构造中是否还使用了进一步的设计准则(有陷门?)。了进一步的设计准则(有陷门?)。密钥长度是否足够?密钥长度是否足够?迭代的长度?(迭代的长度?(8、16、32?)?)篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统本周作业用C或者Java调用程序库中的DES算法,实现DES加密和解密。