您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 安徽工程大学 信息安全原理及应用 第3讲 对称密钥密码体制(下)
1第3讲对称密钥密码体制——分组密码网络与信息安全Ⅰ主要内容原理与设计原则12Feistel密码结构3数据加密标准DES4其他分组密码5分组密码工作模式信息与网络安全的目标进不来拿不走看不懂改不了跑不了因特网加密解密AliceBob密文传输举例:假设Alice与Bob进行保密通信,过程如下:按加解密采用的密钥不同按密码出现的时间不同古典密码现代密码密码学(Cryptology)(Symmetriccipher)(Asymmetriccipher)分组密码流密码公钥密码按加密的方式对称密码非对称密码(Classicalcipher)(Moderncipher)(Blockcipher)(Streamcipher)(Public-Keycipher)对称密码和公钥密码对称密码公钥密码一般要求一般要求安全性要求安全性要求①加密和解密使用相同的密钥②收发双方必须共享密钥①同一算法用于加密和解密,但加密和解密使用不同密钥②发送方拥有加密或解密密钥,而接收方拥有另一密钥①密钥必须是保密的②若没有其他信息,则解密消息是不可能或自少是不可行的③直到算法和若干密文不足以确定密钥①两个密钥之一必须是保密的②若没有其他信息,则解密消息是不可能或至少是不可行的③知道算法和其中一个密钥以及若干不足以确定另一密钥3.3数据加密标准DES(DataEncryptionStandard)DES(DataEncryptionStandard)算法于1977年得到美国政府的正式许可,是一种用56位密钥来加密64位数据的方法,其密文的长度也为64位。DES算法在ATM、磁卡及智能卡(IC卡)、加油站、高速公路收费站等领域被广泛应用,以此来实现关键数据的保密。DES的生命周期1975年,NBS最终采纳了IBM的LUCIFER方案,公开发表DES。1977年正式颁布为数据加密标准(DES-DataEncryptionStandard)。1979年,美国银行协会批准使用DES。1980年,DES成为美国标准化协会(ANSI)标准。1984年,ISO开始在DES基础上制定数据加密的国际标准。1994年,决定1998年12月之后不再使用DES。现已经确定了选用Rijndael算法作为高级加密算法AES。DES算法具有以下特点:(1)DES算法是分组加密算法:以64位为分组。(2)DES算法是对称算法:加密和解密用同一密钥。(3)DES算法的有效密钥长度为56位。(4)换位和置换。(5)易于实现。1.DES的特点2.DES算法要点算法设计中采用的基本变换和操作:置换(P):重新排列输入的比特位置。交换(SW):将输入的左右两部分的比特进行互换。循环移位:将输入中的比特进行循环移位,作为输出。一个复杂变换(fK)通常是一个多阶段的乘积变换;与密钥Key相关;必须是非线性变换;实现对密码分析的扰乱;是密码设计安全性的关键。3.DES的加密过程第一步:初始置换IP。对于给定的明文m,通过初始置换IP获得,并将分为两部分,前面32位记为,后面32位记为,即第二步:乘积变换(16轮)。在每一轮中依据下列方法计算()(16轮中的计算方法相同):,其中,为第i轮使用的子密钥,各均为的一个置换选择,所有构成密钥方案。函数中的变量为32位字符串,为48位字符串,函数输出的结果为32位字符串。0m0m0L0R000)(RLmIPmiiRL161i1iiRL),(11iiiiKRfLRiKiKKiK),(21XXf1X2X),(21XXfDES的加密过程第三步:初始置换的逆置换。应用初始置换的逆置换对进行置换,得到密文c,即。IP1IP1IP1616RL)(16161RLIPcIPLi-1Ri-1LiRikif+一轮DES加密过程IPL0R0L1=R0R1=L0⊕f(R0,K1)R2=L1⊕f(R1,K2)L2=R1明文L15=R14R16=L15⊕f(R15,K16)R15=L14⊕f(R14,K15)L16=R15IP-1密文fK1fK2fK16DES加密流程图(1)IP置换表和IP-1逆置换表输入的64位数据按IP表置换进行重新组合,并把输出分为L0和R0两部分,每部分各32位,其IP表置换如表3-1所示表3-1IP置换表58504234261810260524436282012462544638302214664564840322416857494133251791595143352719113615345372921135635547393123157置换过程12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364585042342618102置换过程1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636458504234261810258504234261810260524436282012462544638302214664564840322416857494133251791595143352719113615345372921135635547393123715将输入的64位明文的第58位换到第1位,第50位换到第2位,依此类推,最后一位是原来的第7位。L0和R0则是换位输出后的两部分,L0是输出的左32位,R0是右32位。比如:置换前的输入值为D1D2D3…D64,则经过初始置换后的结果为:L0=D58D50…D8,R0=D57D49…D7表3-2IP-1逆置换表逆置换正好是初始置的逆运算,例如,第1位经过初始置换后,处于第40位,而通过逆置换IP-1,又将第40位换回到第1位,其逆置换IP-1规则表如3-2所示。40848165624643239747155523633138646145422623037545135321612936444125220602835343115119592734242105018582633141949175725初始置换IP和IP-12014'MM1420'''MMIPIP-1(2)函数f的内部流程Ri-1(32bit)ES1S2S8PKi(48bit)48bit32bitf(Ri-1,ki)(32bit)E变换的算法是从Ri-1的32位中选取某些位,构成48位,即E将32位扩展为48位。变换规则根据E位选择表,如表3-3所示。表3-3E位选择表1234567891011121314151617181920212223242526272829303132324812162024285913172125291每个S盒输出4位,共32位,S盒的工作原理将在第4步介绍。S盒的输出作为P变换的输入,P的功能是对输入进行置换,P换位表如表3-4所示。Ki是由密钥产生的48位比特串,具体的算法是:将E的选位结果与Ki作异或操作,得到一个48位输出。分成8组,每组6位,作为8个S盒的输入。表3-4P换位表如表1672021291228171152326518311028241432273919133062211425(3)DES的密钥Ki计算DES在各轮中所用的密钥均为由初始密钥(即种子密钥)导出的48位密钥。初始密钥为64位,其中第8、16、24、32、40、48、56、64位均为校验位。如此设置校验位的目的是使每8个字节所含的字符“1”个数为奇数,以便能够检测出每个字节中的错误。子密钥ki产生流程图PC-1C0D0LS1LS1C1D1LS2LS2C2D2LS16LS16C16D16PC-2PC-2PC-2K(64bit)K1(48bit)K2(48bit)K16(48bit)假设初始密钥为K,长度为64位,但是其中第8,16,24,32,40,48,64作奇偶校验位,实际密钥长度为56位。K下标i的取值范围是1到16,用16轮来构造。构造过程如图所示。产生子密钥Ki具体描述为:首先,对于给定的密钥K,应用PC1变换进行选位,选定后的结果是56位,设其前28位为C0,后28位为D0。PC1选位如表3-5所示。表3-5PC-1选位表57494133251791585042342618102595143352719113605244366355473931231576254463830221466153453729211352820124第1轮:对C0作左移LS1得到C1,对D0作左移LS1得到D1,对C1D1应用PC2进行选位,得到K1。其中LS1是左移的位数,如表3-6所示。第2轮:对C1和D1作左移LS2得到C2和D2,进一步对C2D2应用PC2进行选位,得到K2。如此继续,分别得到K3,K4,…,K16。。。。。。。。。。。。。。。。。。。。表3-6LS移位表轮数循环左移位数轮数循环左移位数轮数循环左移位数轮数循环左移位数115291132216210214232721121524282122161表3-7PC-2选位表1417112415328156211023191242681672720132415231374755304051453348444939563453464250362932(4)S盒的工作原理S盒以6位作为输入,而以4位作为输出,现在以S1为例说明其过程。假设输入为A=a1a2a3a4a5a6,则a2a3a4a5所代表的数是0到15之间的一个数,记为:k=a2a3a4a5;由a1a6所代表的数是0到3间的一个数,记为h=a1a6。在S1的h行,k列找到一个数B,B在0到15之间,它可以用4位二进制表示,为B=b1b2b3b4,这就是S1的输出。S盒由8张数据表组成,如教材P84-85所示。S-盒的构造DES加密范例已知明文m=computer,密钥k=program。m=0110001101101111011011010111000001110101011101000110010101110010k=01110000011100100110111101100111011100100110000101101101这里k只有56bit,必须插入第8,16,24,32,40,48,56,64这8个奇偶校验位成为64比特。k=0111000*0011100*1001101*1110110*0111011*1001001*1000010*1101101*m经过IP置换后得L0=11111111101110000111011001010111R0=00000000111111110000011010000011密钥k经PC-1置换得C0=1110110010011001000110111011D0=1011010001011000100011100111C0和D0各循环左移一位后通过PC-2得到48bit的子密钥k1。C1=1101100100110010001101110111D1=0110100010110001000111001111k1=001111011000111111001101001101110011111101001000DES加密范例R0经过E变换后扩展为48bit。100000000001011111111110100000001101010000000110再和k1作异或运算,得101111011001100000110011101101111110101101001110分成8组101111011001100000110011101101111110101101001110经过S盒后输出32bit01110110110
本文标题:安徽工程大学 信息安全原理及应用 第3讲 对称密钥密码体制(下)
链接地址:https://www.777doc.com/doc-5521885 .html