DES加密课设.docx

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
DES加密课设

DES加密报告本文介绍DES加密算法的流程并用MFC实现图形化的加密程序目录1DES算法介绍12DES算法流程12.1产生秘钥12.1.1Pc-1置换12.1.2C0,D0初始化22.1.3循环左移22.1.4Pc-2置换22.1.5流程图32.2加密数据42.2.1初始IP置换42.2.2L0,R0初始化42.2.3E盒置换(R0拓展)42.2.4异或运算42.2.5S盒置换42.2.6P盒置换62.2.7异或运算62.2.8左右交换位置62.2.9进行迭代62.2.10生成密文72.2.11流程图82.3解密93C++实现93.1基本数据结构93.2基本函数声明93.3基本常量声明104MFC实现104.1加密按钮事件114.2解密按钮事件114.3弹窗选择目录124.4文件加密解密12DES算法介绍DES( Data Encryption Standard)算法,于1977年得到美国政府的正式许可,是一种用56位密钥来加密64位数据的方法。虽然56位密钥的DES算法已经风光不在,而且常有用Des加密的明文被破译的报道,但是了解一下昔日美国的标准加密算法总是有益的,而且目前DES算法得到了广泛的应用,在某些场合,仍然发挥着余热。DES (Data Encryption Standard),是IBM在上个世纪70年代开发的单密钥对称加解密算法。该算法利用一个56+8奇偶校验位(第8, 16, 24, 32, 40, 48, 56, 64位)=64位的密钥对以64位为单位的块数据进行加解密。DES算法流程产生秘钥Pc-1置换秘钥为64位,通过置换后为56位,其中秘钥的8*i位剔除。置换规则为按照pc-1表中的位置进行置换,56位秘钥k1的第一位为旧秘钥的第57位,第二位为旧秘钥的49位。PC-157494133251791585042342618102595143352719113605244366355473931231576254463830221466153453729211352820124C0,D0初始化产生的56位秘钥k1的前半部分为C0,后半部分为D0。循环左移按照循环左移表进行顺序循环左移,C1和D1分别为C0和D0左移1位……C3和D3分别为C2和D2左移2位……C16和D16分别为C15和D15左移1位。循环左移表迭代顺序12345678910111213141516左移位数1122222212222221Pc-2置换同Pc-1置换,在每次循环左移后得到的数据经过Pc-2置换后就可以得到秘钥。PC-2PC-21417112415328156211023191242681672720132415231374755304051453348444939563453464250362932最终得到16组秘钥key={key1,key2…..key16}流程图加密数据初始IP置换操作方法同Pc-1,Pc-2置换,将64位明文置换后打乱顺序IP58504234261810260524436282012462544638302214664564840322416857494133251791595143352719113615345372921135635547393123157L0,R0初始化将初始ip置换后的比特串被分为32位的左半部分L0和32位的右半部分R0两部分,用于后面的16轮迭代运算的首次迭代的初始输入。E盒置换(R0拓展)通过E盒置换,达到将R0从32位变为48位的作用,以便于产生的秘钥集合进行异或运算。异或运算将上一步经过E盒变换后的R0与key1进行异或操作,结果保存进行下一步操作。S盒置换将异或运算得到的48位结果数据分成8个6位的块,将每一块通过对应的一个S盒产生一个4位的输出,S盒接收6位的输入,经过置换输出4位的数据。其具体置换过程为:将6位输入中的第1位和第6位取出来形成一个2位的二进制数x,将其转化为十进制作为行数,然后将中间4位构成另一个二进制数y,将其转化为十进制作为列数,然后查出相应S盒的x行y列所对应的整数,将该整数置换为一个4位的二进制数,即为S盒的输出。例如,假设输入数据中的第一个6位数字块为010111,则需要通过查S1盒,先取出010111的第1位和第6位,得x=01,其对应的十进制数为1;然后取出中间的4位1011,得y=1011,其对应的十进制数为11,在S1盒中,第1行第11列的整数为11,将其转换为二进制为1011,则输出1011,即用4位的1011代替6位的010111。将8个6位数据的置换结果连在一起,形成一个32位的输出。S盒P盒置换将S盒的输出结果再通过一个P盒置换产生一个32位的输出。P盒P167202129122817115232651831102824

文档评论(0)

整理王 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档