《计算机网络安全防护技术(第二版)》 课件 第3章-任务3.1.2 探究DES加密技术_第1页
《计算机网络安全防护技术(第二版)》 课件 第3章-任务3.1.2 探究DES加密技术_第2页
《计算机网络安全防护技术(第二版)》 课件 第3章-任务3.1.2 探究DES加密技术_第3页
《计算机网络安全防护技术(第二版)》 课件 第3章-任务3.1.2 探究DES加密技术_第4页
《计算机网络安全防护技术(第二版)》 课件 第3章-任务3.1.2 探究DES加密技术_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第3章数据加密技术3.1.2DES加密技术编著:

秦燊劳翠金

3.1.2DES加密技术

DES(DataEncryptionStandard,数据加密标准)算法,是由IBM公司为非机密数据加密所设计的方案,1977年被美国政府采纳,后被国际标准局采纳为国际标准。DES算法是一种对称加密算法,输入的明文被分成64位的块;密钥长度是64位,其中56位为有效位,8位用于奇偶校验。加密大致分为初始排列、16轮加密和翻转初始排列等三个过程。

如图3-1-1所示,整个算法的主流程图如下:图3-1-1des算法流程图DES加密的大致过程如下:将64位的明文经初始排列打乱顺序,得到左边32位L0和右边32位R0两部分;经过第一轮加密后,变成左边L1和右边R1;经过第二轮加密后,变成左边L2和右边R2;……如此循环,总共经过十六个不同子密钥的16轮加密,得到左边L16和右边R16,将左右合并、翻转初始排列后,最终得到64位密文。1.将64位的明文顺序打乱,生成32位的左边L0、32位的右边R0两部分;2.第一轮加密:1)新的左边L1,直接取自原来的右边R0;2)新的右边R1,由原来的右边R0、第一轮的子密钥、原来的左边L0,经过加密运算,而生成。3.第二~第十六轮加密,与第一轮加密类似。4.翻转初始排列。

下面以密钥为OVERSEAS,明文为FOOTBALL为例,解释DES的加密过程:一、通过查询ASCII码表,将明文和密钥转换成二进制。表3-3是节选的ASCII码表。表3-4是二进制与十六进制的对应关系表。八进制十六进制十进制字符1004064@1014165A1024266B1034367C1044468D1054569E1064670F1074771G1104872H1114973I1124a74J1134b75K1144c76L1154d77M1164e78N1174f79O1205080P1215181Q1225282R1235383S1245484T1255585U1265686V1275787W1305888X1315989Y1325a90Z表3-3ASCII码表(节选)

如:通过查询ASCII码表,得到字符’F’的ASCII码的16进制是:46,转成二进制是:01000110通过查表,可得:明文FOOTBALL的ASCII码的二进制是:0100011001001111010011110101010001000010010000010100110001001100密钥OVERSEAS的ASCII码的二进制是:0100111101010110010001010101001001010011010001010100000101010011二进制十六进制000000001100102001130100401015011060111710008100191010A1011B1100C1101D1110E1111F表3-4二进制与十六进制的对应关系表二、明文的处理

按置换规则表,打乱明文的顺序,并平分为左边32位的L0和右边32位的R0。一)概述:1.将64位的明文顺序打乱,并平分为左边32位的L0和右边32位的R0;2.把右边32位R0赋值给下一轮左边L1;3.把左边32位的L0、右边32位R0(扩展成48位)、第一轮子密钥进行加密运算,生成下一轮的R1。4.相关表格:1)置换规则表:其功能是把输入的64位数据块按位重新组合,并把输出分为L0、R0两部分,每部分各长32位。表3-5所示的是置换规则表:表3-5置换规则表置换规则是将输入的第58位换到第一位,第50位换到第2位,...,依此类推,输入的第7位置换到最后一位。L0、R0则是换位输出后的两部分,L0是输出的左32位,R0是右32位,例:设置换前的输入值为D1D2D3......D64,则经过初始置换后的结果为:L0=D58D50...D8;R0=D57D49...D7。585042342618102605244362820124625446383022146645648403224168574941332517915951433527191136153453729211356355473931231572)扩展排列表:用于把右边32位R0扩展为48位。表3-6所示的是扩展排列表:表3-6扩展排列表3212345456789891011121312131415161716171819202120212223242524252627282928293031321二)详细过程1.明文FOOTBALL的ASCII码的二进制是:0100011001001111010011110101010001000010010000010100110001001100表3-7是明文FOOTBALL的ASCII码的二进制。表3-8是在表3-7的基础上,进行编号。表3-7明文FOOTBALL的ASCII码的二进制0100011001001111010011110101010001000010010000010100110001001100表3-8为明文FOOTBALL的ASCII码的二进制编号序12345678910111213141516码0100011001001111序17181920212223242526272829303132码0100111101010100序33343536373839404142434445464748码0100001001000001序49505152535455565758596061626364码01001100010011002.表3-9是置换规则表,需将明文按置换规则表进行初始变换。表3-10是明文经过初始变换后,得到的结果。即:1111111100001000110011110010011000000000000000001100011000010111表3-9置换规则表58504234261810260524436282012462544638302214664564840322416857494133251791595143352719113615345372921135635547393123157表3-10初始变换后的结果11111111000010001100111100100110000000000000000011000110000101113.把经过初始变换后的明文分成左32位和右32位,得到:L0(32)=11111111000010001100111100100110R0(32)=000000000000000011000110000101114.生成新的左边L1。把R0(32)赋值给L1(32),即L1(32)=R0(32)=000000000000000011000110000101115.把R0(32)按扩展排列表扩展为48位。表3-11是扩展排列表,表3-12是32位的R0按扩展排列表扩展成48位的结果。说明:新的右边R1,由原来的右边R0、原来的左边L0、第一轮的子密钥,经过加密运算,而生成。为了进行上述加密运算,要先将R0扩展成48位。即:R0(48)=100000000000000000000001011000001100000010101110表3-11扩展排列表3212345456789891011121312131415161716171819202120212223242524252627282928293031321表3-12R0扩展为48位100000000000000000000001011000001100000010101110三、密钥的处理分析:密钥要对明文进行16次加密处理1)明文:前面的明文打乱了顺序,平分成了左边32位,右边32位;右边32位扩展成了48位的R0(48);2)密钥:一个密钥将生成十六个子密钥,十六个不同子密钥的长度都是48位。3)加密:明文需经过十六个不同子密钥的十六轮加密,才能产生密文。第一轮加密产生新的左边32位,新的右边32位。其中,新的左边32位,直接取自原来的右边32位;新的右边32位,由原来的右边32位扩展成48位与第一轮的子密钥加密运算,再转换成32位,再与原来的左边32位,经过加密运算,而生成。2.以生成第一轮48位的子密钥为例1)把64位密钥删除8、16、24、32、40、48、56、64位,变成56位即,把8*8的表格,删除最后一列。表3-13是将密钥从64位变成56位的方法说明。得到64位的密钥OVERSEAS的ASCII码的二进制:0100111101010110010001010101001001010011010001010100000101010011表3-14用于将64位的密钥ASCII码值代入,生成56位有效值。得到56位有效值:01001110101011010001001010010101001010001001000000101001表3-13删除64位表格最后一列变成56位12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364表3-14将密钥代入删除最后一列01001111010101100100010101010010010100110100010101000001010100112)将56位的密钥按下表(置换选择1)进行置换(1)将表3-13的第1列、第2列、第3列、第4列的一半,从下往上取,从左往右写到表3-15的第1行、第2行、第3行、第4行的一半(即上表的一半顺时针转90度);(2)将表3-13的第7列、第6列、第5列、第4列的一半,从下往上取,从左往右写到表3-15的第4行的一半、第5行、第6行、第7行:按表3-15的方式,可将表3-14的56位密钥转换成表3-16所示的新的56位密钥:表3-15置换选择1表57494133251791585042342618102595143352719113605044366355473931231576254463830221466153453729211352820124表3-1656位密钥代入置换选择1表000000001111111100000000100110011011001001110000000110103)将转换后的56位的密钥分成左、右两部分C0=0000000011111111000000001001D0=10011011001001110000000110104)表3-17是各轮移位次数表。根据各轮移位次数表,将左、右两部分都循环左移LSi位。现在是第一轮,LSi=1,左右半部各循环左移一位后得:C1=0000000111111110000000010010D1=0011011001001110000000110101表3-17各轮移位次数表LSi·LS1LS2LS3LS4LS5LS6LS7LS8LS9LS10LS11LS12LS13LS14LS15LS16位数11222222122222215)表3-18是置换选择2表。C1、D1拼接后得56位,按置换选择2表进行置换,生成48位的第一个子密钥K1(其中,第9、18、22、25、35、38、43、54位被剔除)。表3-19是C1、D1拼接后的56位表。表3-20是置换后的得到的48位K1表。表3-18置换选择2表1417112415328156211023191242681672720132415231374755304051453348444939563453464250362932表3-19C1与D1拼接为56位123456780000000191011121314151611111110171819202122232400000001252627282930313200100011333435363738394001100100414243444546474811100000495051525354555600110101置换后,得48位K1。K1=101100001001001001001010111000001000000110010001表3-20置换后的48位K11417112415328101100001562110231912410010010268167272013201001010415231374755304011100000514533484449395610000001345346425036293210010001四、加密处理1)将R0(48)与K1进行异或,得到A值:R0(48)=100000000000000000000001011000001100000010101110K1=101100001001001001001010111000001000000110010001异或后得A=0011000010010010010010111000000001000001001111112)将上面的A分为8组A1=001100A2=001001A3=001001A4=001011A5=100000A6=000100A7=000100A8=111111取A1的第1和第6位,作为数组的第一个数;取中间4位,作为数组的第二个数,得S1(00,0110),转换为十进制得S1(0,6)。同样方法,得:S2(1,4)、S3(1,4),S4(1,5),S5(2,0),S6(0,2),S7(0,2),S8(3,15)3)表3-21是S盒数据变换表。查S盒数据变换表得:S1(0,6)=11转成2进制是:1011S2(1,4)=15转成2进制是:1111S3(1,4)=3转成2进制是:0011S4(1,5)=15转成2进制是:1111S5(2,0)=4转成2进制是:0100S6(0,2)=10转成2进制是:1010S7(0,2)=2转成2进制是:0010S8(3,15)=11转成2进制是:1011合并S1~S8,得:B=10111111001111110100101000101011表3-21S盒数据变换表

0123456789101112131415S1:01441312151183106125907101574142131106121195382411481362111512973105031512824917511314100613S2:01518146113497213120510131347152814120110691152014711104131581269321531381013154211671205149S3:01009146315511312711428113709346102851413111512136498153011121251014731101306987415143115212S4:07131430691012851112415113811561503472121101492106901211713151314528433150610113894511127214S5:02124171011685315130149114112124713150151039862421111013781591256301431181271142136150910453S6:01211015926801334147511110154271295611314011382914155281237041011311634321295151011141760813S7:04112141508133129751061113011749110143512215862141113123714101568059236111281410795015142312S8:01328461511110931450127111513810374125611014922711419121420610131535832114741081315129035611

4)表3-22是Permutation置换位置表。表2-23是B值的列表。表3-24是对B值列表进行Permutation置换位置表变换后得到的X0值表。查Permutation置换位置表,对B值进行Permutation置换,得到X0值。可见,经过P置换后得到X0=110111001110111001011110010101105)L0(32)与X0按位异或,可得R1(32)L0(32)=11111111000010001100111100100110X0=11011100111011100101111001010110R1(32)=00100011111001101001000101110000表3-22Permutation置换位置表1672021291228171152326518311028241432273919133062211425

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论