欢迎来到第壹文秘! | 帮助中心 分享价值,成长自我!
第壹文秘
全部分类
  • 幼儿/小学教育>
  • 中学教育>
  • 高等教育>
  • 研究生考试>
  • 外语学习>
  • 资格/认证考试>
  • 论文>
  • IT计算机>
  • 法律/法学>
  • 建筑/环境>
  • 通信/电子>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 第壹文秘 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    2009252班 20093475 李行DES数据加密算法.docx

    • 资源ID:1187416       资源大小:178.76KB        全文页数:28页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,如果您不填写信息,系统将为您自动创建临时账号,适用于临时下载。
    如果您填写信息,用户名和密码都是您填写的【邮箱或者手机号】(系统自动生成),方便查询和重复下载。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2009252班 20093475 李行DES数据加密算法.docx

    上海电力学院实验报告课程名称.信息安全/计算机安全.实验项目实验二.DES数据加密舜法1.学号20093475班级20()9252当业值息安全同组人姓名指导教师姓名.贰为民.实验口期胆.I冬且月瀛月一、实验目的通过本实验的学习.深刻理解DES加密标准,提高算法设计能力,为今后继续学习密码技术和数字签名典定基础.二、实验内容根据DES加密标准,用C+设计编写符合DES髓法思想的加、解诙程序,能够实现时字符申和数组的加密和解密.三、实耽步1 .在操作系统环境卜启动VC+集成环境(MicrosoftVisua1.C+6.0,其中6.0为版本号,也可为其它版本),则产生如图I所示界面。图1VC+集成环境界面2 .选择“文件”菜单下的“新建”命令,出现如图2所示界面(不可宜接按“新建”按钮.此按钮是新建一个文本文件).此界面缺省标签是要为新程序设定工程项目,但端轮小的源程序也可以不建立项目,可以百.接选择其左上用的“文件”标签,产生如图3所示界面。3 .在图3所示的界面中左边选定文件类里为“C+-SourceFi1.e",右边填好文件名并选定文件存放目录,然后单击“确定”按钿,出现如图4所示编程界面,开始输入程序。1.输入完源程序后,按.编译”菜单下的娘译命令,对源程序进行编译.系统将在下方的窗口中显示编译估息.如枭无此窗口,可按F1.t+2.键或执行"查看"菜单下的"输Hr命令.如果编译后已无提示错误则可按“编译“菜单下的"构件"命令来生成相应的可执行文件.随后可按"编译"菜单下的执行.命令运行的程序,图2新建VC+工程项目界面图3新建YC源程序文件界面图4YC+源程序编辑界面四、DES算法的过程1 .处理密钥I1.1 从用户处荻得64位密WKey.(每第8位为校脸位.为使密W有正确的奇偶校验.每个字节要为奇数个“1”位.1.2 处理过程:1.2.1 时密钥实旗变换,经过子密切换位表Pe-I的变换后,Key的位数由61位变成了56位。1.2.2 把变换后的密钥等分成两部分.曲28位记为CO.后28位记为D0.1.2.3 计算子密蜴(共16个),从i=1.开始.1.2.3.1分别对Ci-1、DiT作循环左移来生成Ci、Di(共16次).1.2.3.2串联Ci、Di,得到一个56位数,然后对此数作子密钥换位表PC-2变换以产牛.48位子密钥Ki。1. 2.3.3按以上方法计算出16个子密的.2.对64位敷福块的处理:2. 1把数据分成64位的数据块,不城64位的以适当方式填补。2. 2对数据块利用初始变换IP表作变换”2. 3将变换后的数据块等分成前后两部分,前32位记为1.0,后32位记为R0.2. 4用16个子密的对数据加密.2. 4.1利用扩展祝换E,将32位R(i-D数据扩展成48位。2. 4.2用ER(卜1»与子密钥K(i)作按位异成运算.2. 4.3把所得的48位数分成8个6位数组.16位为Z1.712位为Z2,43-48位为Z82. 4.I从j=1.开始,用S食里的值自换Zj.S盒里的值为4位数,共8个S盒,输出32位数.2. 4.4.1取出Zj的第I和第6位申联起来成一个2位数,记为.m即是Sj盒里用来皆换Zj的数所在的行数.2. 4.4.2取出Zj的第2至第5位串联起来成一个4位数.记为n.n却是Sj盒里用来替换Zj的数所在的列数.2.4.九3用坐标(m,n)在S盒中查找出相应的值作为S食的输出,2. 4.5八个选择函数SjaWjW8)的输电拼接为32位;进制数据,把它作为P盘置换的输入,褥到输出2. 1.6把得到的结果与1.(i-1.)作异或运算.把计算结果赋给R(i).2. 4.7把R(iT)的值St给1.(i>.完成1轮乘积变换,2. 4.8从2.4.1起循环执行16次,直到K(16)也被用到。3. 5把R(16)和1.(16)顺序串联起来得到一个64位数.对这个数实版2.2变换的逆变换IP1.五.算法实现(1)源程序ttpr<g11aonce钵inc1.ude<cstri11>nineIude<strin>Rinc1.udc<aIgorith11>&inc1.ude<nssert.h>IiJangaesac<*std:c1.ossBigInteger(IyPedefUnfdCdCbarbyte:pub1.ic:BigInteger(Void);BigInteeer(int6-1.va1.ue);BigInteer(unsigned_intMva1.ue);Big1.ntrgcr(constBig1.nt<gcribi);BigInteger(stringva1.ue,intradix);BigInteger(byteinDatatintin1.en):BiKInteger(unsuncdiniinDaia().intin1.en);Big1.ntrgcr11pcratr-(constBig1.ntrgcrAh;BigIntegeroperator(constBig1.rHOgGrAbi2>:BieIntegeroperator-O:BigIniejscrmxiPv(Bi#InIdger<x.Big1.nICgern);intbitCountO;BigIntegerBarrettRe<Jction(BigInteg«rx,BigIntegern,Big1.ntegerconstant);boo1.operator>=(BigIntegerbi2)return(<*thix)-=bi2(thix)>bi2);)boo1.operatorMBigIn1.egorbi2>boo1.operator=(BiIntegerbi2):Big1.ntrgcroperator%(Big1.ntcgcrbi2):voidsing1.eByteDivi<te(BigIntegerftbi1.vBigInUger1.bi2.BigInteeer4outQuotient>BigInteeerfcoutRe11inder);voidIiuItIByuDivide(Big1.ntegerbi1.BigInteerftbi2,Big1.ntrgcr(MitQuticnt.Big1.n1.egerKnutRrnaindrr);intShiftRight(unsignedintbuffer,intbuf1.en,intshiftVa1.);BigIntegeroperator<<(intshiftVaD:Intshift1.ft(unsignedinibuffer).intbut'1.en,intshifVa1.);boo1.operator<<BigInteerbi2>Bg1.nieeroperator+=(BiIrteerbi2):Big1.11tr-gcrprrator/(Big1.n1.rgcrbi2);BigIntegeroperator-s(Big1.nteeerbi2);BigInteeeroperator-(BigIntegerbi2);siringUec1.o1.iex(unsire<iiniva1.ue,stringfor11a);stringToHcxStringO;pub1.ic:vBigInteger(Void):>ub1.ic:Big1.ntegcroperntr*(BigIntcgcrbi2);private:pub1.ic:xtnticconstintprinesBc1.v20O01J;/PrimSsnn1.Ierthan2000toIgStthegeneratedPrinOnurberintdata1.ength;/nun1.rofactua1.CharSusedprivate:staticconstintrmx1.n.gth;/raxi11un1.engthoftheBig1.ntegerinUinI(4bytes>/charethistosuittherequired1.eve1.ofprecision,unsignedint*dat;/storesbytesfrcotheBigInteger):CincIude"StdAfx.h'UinCIUdC*BiInteer.h*constintBigInteger:Imax1.ength=512;constintBiR1.nI。RCr:Pr加。SBCIOB2000=101,103,107.109.H3.1021>1031,1033.1039.1019.105h1061»1063,1069,1087,1091.1093,1097,7393919102112112123456789»13319979110210000111234$&789,171311970100ooo>O(M23456/8911103.1109.1117.1201.1213.1217,1301,1303,1307,1123tH29.1151.1223,1229.1231,1319,I3211.1327.1153.1163,1171.1237,1249,1259,1361,1367,1373,1181,1187.1193.1277.1279.1283,1381,1399,1289.1291,1297,1409,1423,1427,1429,1433,1439,M47.1151.1453,1459,1471,1481,1-183.1487.1189.1*1511,1523,1531.1543»1519»1553,1559,1567,1571,1579,1583.1597,1601,1607.1609,161X1619,1621,1627,1637.1657,1663,1667.1669.1693,1697,1699.1709.1721,1723.1733,1741.1717.1753,1759,1777,1783,1787.1789.1801,1811,1823,1831,1847,1861,1867,1871,1873,1877,1879.1889,1901,1907,1913,1931,1933,1919,1951,1973,1979,1987.1993,1997,1999):Big1.nteger:BigInteger(void):data1.ength(0),data(0)Idata-newunsignedint三ax1.ength;nemset(data,0.max1.ength*sizeof(unsignedint);data1.ength=1;)BigInteger:BigInteger(_int6-1va1.ue)(data=newUnSiXnedintBax1.enRth;nemset(data,0.max1.engthsizeof(unsignedint);.int(yte

    注意事项

    本文(2009252班 20093475 李行DES数据加密算法.docx)为本站会员(p**)主动上传,第壹文秘仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知第壹文秘(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 1wenmi网站版权所有

    经营许可证编号:宁ICP备2022001189号-1

    本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。第壹文秘仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第壹文秘网,我们立即给予删除!

    收起
    展开