版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、网络安全作业题 目 des学 号专业及班级姓 名日 期 2012.04.14加 密 算 法 网络工程0902班一des简介:des是一个分组密码算法,使用64位密钥(除去8位奇偶校验,实际密钥长度为56位)对64比特的数据分组(二进制数据)加密,产生64位密文数据。des是一个对称密码体制,加密和解密使用同意密钥,解密和加密使用同一算法(这样,在硬件与软件设计时有利于加密单元的重用)。des的所有的保密性均依赖于密钥。二 des算法过程:1 des的加密过程:第一阶段:初始置换ip。在第一轮迭代之前,需要加密的64位明文首先通过初始置换ip的作用,对输入分组实施置换。最后,按照置换顺序,des
2、将64位的置换结果分为左右两部分,第1位到第32位记为l0,第33位到第64位记为r0。第二阶段:16次迭代变换。des采用了典型的feistel结构,是一个乘积结构的迭代密码算法。其算法的核心是算法所规定的16次迭代变换。des算法的16才迭代变换具有相同的结构,每一次迭代变换都以前一次迭代变换的结果和用户密钥扩展得到的子密钥ki作为输入;每一次迭代变换只变换了一半数据,它们将输入数据的右半部分经过函数f后将其输出,与输入数据的左半部分进行异或运算,并将得到的结果作为新的有半部分,原来的有半部分变成了新的左半部分。用下面的规则来表示这一过程(假设第i次迭代所得到的结果为liri): li =
3、 ri-1; ri = li-1f(ri-1,ki);在最后一轮左与右半部分并未变换,而是直接将r16 l16并在一起作为未置换的输入。第三阶段:逆(初始)置换。 他是初始置换ip的逆置换,记为ip-1。在对16次迭代的结果(r16 l16)再使用逆置换ip-1后,得到的结果即可作为des加密的密文y输出,即y = ip-1 (r16 l16)。2 des解密过程:des的解密算法与其加密算法使用的算法过程相同。两者的不同之处在于解密时子密钥ki的使用顺序与加密时相反,如果子密钥为k1k2k16,那么解密时子密钥的使用顺序为k16k15k1,即使用des解密算法进行解密时,将以64位密文作为输
4、入,第1次迭代运算使用子密钥k16,第2次迭代运算使用子密钥k15,第16 次迭代使用子密钥k1,其它的运算与加密算法相同。这样,最后输出的是64位明文。三 des代码实现(程序): 1.新建头文件des_encode.h内容如下:void encodemain(); /encodemain functionvoid decodemain(); /sorry ,it has not usedvoid decode(int *str,int *keychar); /decode :input 8 chars,8 keycharsvoid encode(int *str,int *keychar)
5、; /encode: input 8 chars,8 keycharsvoid keybuild(int *keychar); /create key arrayvoid strtobin(int *midkey,int *keychar); /change into binaryvoid keycreate(int *midkey2,int movebit,int i); /call by keybuildvoid encodedata(int *ldata,int *rdata,int *srt); /encodedata functionvoid f(int *rdata,int *ke
6、y); /f functionvoid expand(int *rdata,int *rdatap); /expand functionvoid exchanges(int *rdatap,int *rdata); /s-diagram changevoid exchangep(int *rdata); /p changevoid fillbin(int *rdata,int n,int s);void decodedata(int *str,int *ldata,int *rdata); /decodedata from binaryint ip1=58, 50, 42, 34, 26, 1
7、8, 10, 2, 60, 52, 44, 36, 28, 20, 12, 4, 62, 54, 46, 38, 30, 22, 14, 6, 64, 56, 48, 40, 32, 24, 16, 8, 57, 49, 41, 33, 25,17, 9, 1, 59, 51, 43, 35, 27, 19, 11, 3, 61, 53, 45, 37, 29, 21, 13, 5, 63, 55,47, 39, 31, 23, 15, 7 ;int ip2=40, 8, 48, 16, 56, 24, 64, 32, 39, 7, 47, 15, 55, 23, 63, 31,38, 6,
8、46,14, 54, 22, 62, 30, 37, 5, 45, 13, 53, 21, 61, 29, 36, 4, 44, 12, 52, 20, 60, 28,35, 3, 43, 11, 51, 19, 59, 27,34, 2, 42, 10, 50, 18, 58, 26, 33, 1, 41, 9, 49, 17,57, 25 ;ints416=14,4,13,1,2,15,11,8,3,10,6,12,5,9,0,7,0,15,7,4,14,2,13,1,10,6,12,11,9,5,3,8,4,1,14,8,13,6,2,11,15,12,9,7,3,10,5,0,15,1
9、2,8,2,4,9,1,7,5,11,3,14,10,0,6,13,15,1,8,14,6,11,3,4,9,7,2,13,12,0,5,10,3,13,4,7,15,2,8,14,12,0,1,10,6,9,11,5,0,14,7,11,10,4,13,1,5,8,12,6,9,3,2,15,13,8,10,1,3,15,4,2,11,6,7,12,0,5,14,9,10,0,9,14,6,3,15,5,1,13,12,7,11,4,2,8,13,7,0,9,3,4,6,10,2,8,5,14,12,11,15,1,13,6,4,9,8,15,3,0,11,1,2,12,5,10,14,7,
10、1,10,13,0,6,9,8,7,4,15,14,3,11,5,2,12,7,13,14,3,0,6,9,10,1,2,8,5,11,12,4,15,13,8,11,5,6,15,0,3,4,7,2,12,1,10,14,9,10,6,9,0,12,11,7,13,15,1,3,14,5,2,8,4,3,15,0,6,10,1,13,8,9,4,5,11,12,7,2,14,2,12,4,1,7,10,11,6,8,5,3,15,13,0,14,9,14,11,2,12,4,7,13,1,5,0,15,10,3,9,8,6,4,2,1,11,10,13,7,8,15,9,12,5,6,3,0
11、,14,11,8,12,7,1,14,2,13,6,15,0,9,10,4,5,3,12,1,10,15,9,2,6,8,0,13,3,4,14,7,5,11,10,15,4,2,7,12,9,5,6,1,13,14,0,11,3,8,9,14,15,5,2,8,12,3,7,0,4,10,1,13,11,6,4,3,2,12,9,5,15,10,11,14,1,7,6,0,8,13,4,11,2,14,15,0,8,13,3,12,9,7,5,10,6,1,13,0,11,7,4,9,1,10,14,3,5,12,2,15,8,6,1,4,11,13,12,3,7,14,10,15,6,8,
12、0,5,9,2,6,11,13,8,1,4,10,7,9,5,0,15,14,2,3,12,13,2,8,4,6,15,11,1,10,9,3,14,5,0,12,7,1,15,13,8,10,3,7,4,12,5,6,11,0,14,9,2,7,11,4,1,9,12,14,2,0,6,10,13,15,3,5,8,2,1,14,7,4,10,8,13,15,12,9,0,3,5,6,11;int ex48= 32,1,2,3,4,5,4,5,6,7,8,9,8,9,10,11,12,13,12,13,14,15,16,17, 16,17,18,19,20,21,20,21,22,23,24
13、,25,24,25,26,27,28,29,28,29,30,31,32,1 ; int p32=16,7,20,21,29,12,28,17,1,15,23,26,5,18,31,10,2,8,24,14,32,27,3,9, 19,13,30,6,22,11,4,25;int pc156=57,49,41,33,25,17,9,1,58,50,42,34,26,18,10,2,59,51,43,35,27,19,11,3,60,52,44,36,63,55,47,39,31,33,15,7,62,54,46,38,30,22,14,6,61,53,45,37,29,21,13,5,28,2
14、0,12,4;intpc248=14,17,13,28,15,6,21,10,23,19,12,4,26,8,16,7,27,20,13,2,41,52,31,37,47,55,30,40,51,45,33,48, 44,49,39,56,34,53,46,42,50,36,29,32; 2.创建des.cpp内容如下:#include<stdio.h>#include<string.h>#include aa.hint key1648;char str8;void main() /main functionencodemain();void encodemain()
15、/encodemain functionint i;char keychar8;int key28;int strkey8;printf(请输入8个要加密的字符:n);for(i=0;i<8;i+)scanf(%c,&stri);getchar();for(i=0;i<8;i+)strkeyi=stri;printf(n输入明文的十六进制为:n);for(i=0;i<8;i+)printf(%10x,strkeyi);printf(n请输入密钥(8个字符):n);for(i=0;i<8;i+)scanf(%c,&keychari);for(i=0;i&l
16、t;8;i+)key2i=keychari;getchar();/ printf(%c,keychari);encode(strkey,key2);printf(n加密后十六进制密文是:n);for(i=0;i<8;i+)printf(%10x,strkeyi);printf(nn清输入解密密码n);for(i=0;i<8;i+)scanf(%c,&keychari);for(i=0;i<8;i+)key2i=keychari;decode(strkey,key2);for(i=0;i<8;i+)printf(%10x,strkeyi);for(i=0;i<
17、;8;i+)stri=strkeyi;printf(n明文为:t);for(i=0;i<8;i+)printf(%c,stri);printf(nn);void keybuild(int *keychar) /create key array int i,j;int movebit=1,1,2,2,2,2,2,2, 1,2,2,2,2,2,2,1;int midkey256;int midkey64;strtobin(midkey,keychar);for(i=0;i<56;i+)midkey2i=midkeypc1i-1;for(i=0;i<16;i+)keycreate(
18、midkey2,movebiti,i);void strtobin(int *midkey,int *keychar) /change into binary int trans8,i,j,k,n;n=0;for(i=0;i<8;i+)j=0;while(keychari!=0)transj=keychari%2;keychari=keychari/2;篇二:des加密实验报告网络安全技术实验 篇三:用c实现des的加密实验报告一、实验目的1、对算法描述可进行充分理解,精确理解算法的各个步骤。2、完成des软件算法的详细设计。3、用c+完成算法的设计模块。4、编制测试代码。二、实验内容根
19、据des加密标准,用c+设计编写符合des算法思想的加密程序,并进行测试、分析,并尽量考虑程序的优化。三、方案设计des的总体方案如下图所示。与其他任何一种加密方案一样,加密函数有两个输入:待 加密的明文和密钥。在这里,明文的长度必须为64bit,而密钥的长度为56bit.des加密算法的一般描述观察上图的左边部分,可以看到明文的处理阶段经过了三个阶段。首先64bitde明文经过了一个初始置换ip后,比特重排产生了经过置换的输入。接下来的一个阶段是由对同一个函数进行16次循环组成的,这个函数本身既包含有置换又包含有替代函数。最后一个循环(第16个)的输出由64bit组成,它是输入明文和密钥的函
20、数,这个输出的左边和右边两个部分经过交换后就得到预输出。最后,预输出通过一个逆初始置换就生成了64bit的密文,这个置换是初始置换的逆置换。上图的右半部分给出了54bit密钥的使用方式,密钥首先通过一个置换函数,接着对于16个循环的每一个,都通过一个循环左移操作和一个置换草所的组合产生出一个密钥k1。对每一个循环来说,置换函数是相同的,但由于密钥比特的重复移位,产生的子密钥并不相同。(a)初始置换58 50 42 34 26 18 10 260 52 44 36 28 20 12 462 54 46 38 30 22 14 664 36 48 40 32 24 16 857 49 41 33
21、25 17 9 159 51 43 35 27 19 11 361 53 45 37 29 21 13 563 55 47 39 31 23 15 7(b)逆初始置换40 8 48 16 56 24 64 3239 7 47 15 55 23 63 3138 6 46 14 54 22 62 3037 5 45 13 53 21 61 2936 4 44 12 52 20 60 2835 3 43 11 51 19 59 2734 2 42 10 50 18 58 2633 1 41 9 49 17 57 25(c)des的s盒子的定义:s114 4 13 1 2 15 11 8 3 10 6
22、 12 5 9 0 70 15 7 4 14 2 13 1 10 6 12 11 9 5 3 84 1 14 8 13 6 2 11 15 12 9 7 3 10 5 015 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13s215 1 8 14 6 11 3 4 9 7 2 13 12 0 5 103 13 4 7 15 2 8 14 12 0 1 10 6 9 11 50 14 7 11 10 4 13 1 5 8 12 6 9 3 2 1513 8 10 1 3 15 4 2 11 6 7 12 0 5 14 9s310 0 9 14 6 3 15 5 1 13 12
23、 7 11 4 2 813 7 0 9 3 4 6 10 2 8 5 14 12 11 15 113 6 4 9 8 15 3 0 11 1 2 12 5 10 14 71. 10 13 0 6 9 8 7 4 15 14 3 11 5 2 12s4713102s52. 12 4 1 7 10 11 6 8 5 3 15 13 0 14 914 11 2 12 4 7 13 1 5 0 15 10 3 9 8 64 2 1 11 10 13 7 8 15 9 12 5 6 3 0 1411 8 12 7 1 14 1 16 3 15 0 9 10 4 5 3s612 1 10 15 9 2 6
24、 8 0 13 3 4 14 7 5 1110 15 4 2 7 12 9 5 6 1 13 14 0 11 3 89 14 15 5 2 8 12 3 7 0 4 10 1 13 11 64 3 2 12 9 5 15 10 11 14 1 7 5 0 8 13s74 11 2 14 15 0 8 13 3 12 9 7 5 10 6 113 0 1 7 4 9 1 10 14 3 5 12 2 15 8 61. 4 11 13 12 3 7 14 10 15 6 8 0 5 9 26 11 13 8 1 4 10 7 9 5 0 15 14 2 3 12s813 2 8 4 6 15 11
25、 1 10 9 3 14 5 0 12 71. 15 13 8 10 3 7 4 12 5 6 11 0 14 9 27 11 4 1 9 12 14 2 0 6 10 13 15 3 5 82. 1 14 7 4 10 8 13 15 12 9 0 3 5 6 11密钥的产生:(a)舍弃64位密钥中的奇偶校验位,根据下表(pc-1)进行密钥变换得到5613 14 3 0 6 9 10 1 2 8 5 11 12 4 15 8 11 5 6 15 0 3 4 7 2 12 1 10 14 9 6 9 0 12 11 7 13 15 1 3 14 5 2 8 4 15 0 6 10 1 13 8
26、 9 4 5 11 12 7 2 14 位的密钥,在变换中,奇偶校验位以被舍弃。置换选择 1(pc-1)57 49 41 33 25 17 91. 58 50 42 34 26 1810 2 59 51 43 35 2719 11 3 60 52 44 3663 55 47 39 31 23 157 62 54 46 38 30 2214 6 61 53 45 37 2921 13 5 28 20 12 4(b) 置换选择2 (pc-2)14 17 11 24 1 53 28 15 6 21 1023 19 12 4 26 816 7 27 20 13 241 52 31 37 47 5530
27、 40 51 45 33 4844 49 39 56 34 5346 42 50 36 29 32(c)左移调度i: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16左移位数: 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1四、详细设计算法1des_enc(x64)exterual ip, inip, exp, pos, sbox1,sbox8global k481-16state64<-ip(x64)for i<- 1 to 16do 令 state64=sl32|sr32temp48<-ext(sl32)temp48<=
28、temp48+k48i令temp48=t61|t62|t63|t64|t65|t66|t67|t68 t41<-sbox1 (t61)t42<-sbox2 (t62)t43<-sbox3 (t63)t44<-sbox4 (t64)t45<-sbox5 (t65)t46<-sbox6 (t66)t47<-sbox7 (t67)t48<-sbox8 (t68)temp32=t41|t42|t43|t44|t45|t46|t47|t48 temp32<=pos(temp32)sr32<- temp32(异或)sl32sl32<-sr3
29、2令state64=sl32|sl32state64<-sr32|sl32state64<-invip(state64)return state64算法2 初始置换(ip)ip(x64)constarray1-64,<-58,50,42,34,26,18,10,2,60,52,44,36,28,20,23,4,62,54,46,38,30,22,14,6,64,56,48,40,32,24,26,8,57,49,41,33,25,17,9,1,59,51,43,35,27,19,11,3,61,53,45,37,29,21,13,5,63,55,47,39,31,23,15,
30、7 令x64=x11|x12|x164y64=y11|y12|y164for i<- to 64do y1i x1constarrayireturn y64算法3 逆初始置换invip(m64)constarray1-64,<-40,8,48,16,56,24,64,32,39,7,47,15,55,23,63,31,3 ,6,46,14,54,22,62,30,37,5,45,13,53,21,61,29,36,4,44,12,52,20,60,38,35,3,43,11,51,19,59,27,34,2,42,10,50,18,58,26,33,1,41,9,49,17,57,
31、25 令x64=m11|m12|m164y64=n11|n12|n164for g<-1 to 64do y1i = x1constarray1return y64算法4 扩展置换exe(x32)篇四:des文件加密实验报告des文件加密实验报告一、 des算法简介des是data encryption standard(数据加密标准)的缩写。它是由ibm公司研制的一种加密算法,美国国家标准局于1977年公布把它作为非机要部门使用的数据加密标准, 二十年来,它一直活跃在国际保密通信的舞台上,扮演了十分重要的角色。des是一个分组加密算法,他以64位为分组对数据加密。同时des也是一个对称
32、算法:加密和解密用的是同一个算法。它的密匙长度是56位(因为每个第8 位都用作奇偶校验),密匙可以是任意的56位的数,而且可以任意时候改变。其中有极少量的数被认为是弱密匙,但是很容易避开他们。所以保密性依赖于密钥。二、 用c#实现des文件加密指定文件,输入密钥来加密和解密数据。descryptoserviceprovider基于对称加密算法。symmetricencryption 需要一个密钥和一个初始化向量 (iv) 加密请。要解密的数据,必须具有相同的密钥和 iv。使用的加密提供程序来获取 encryptingobject (createencryptor) 创建cryptostream
33、类的一个实例,现有输出文件流对象的构造函数的一部分。要解密文件,执行以下步骤:创建一个方法,并命名该按钮decryptfile.解密过程是类似于 theencryption 进程,但是, decryptfile过程从encryptfile过程的两个主要区别。而不是createencryptor使用createdecryptor来创建cryptostream对象,用于指定如何使用该对象。解密的文本写入目标文件, cryptostream对象是现在而不是目标流的来源。三、 运行环境可将des文件加解密软件的可执行.exe文件直接在xp,win7等系统上运行。四、 实验结果1、开始界面2、打开要加密
34、文件、输入密钥3、加密4、打开要解密文件、输入密钥5、解密五、 主要算法代码public static void encryptfile(string sinputfilename, string soutputfilename, string skey) filestream fsinput = new filestream(sinputfilename, filemode.open, fileaccess.read); filestream fsencrypted = new filestream(soutputfilename, filemode.create, fileaccess.w
35、rite);descryptoserviceprovider des = new descryptoserviceprovider();des.key = asciiencoding.ascii.getbytes(skey);des.iv = asciiencoding.ascii.getbytes(skey);icryptotransform desencrypt = des.createencryptor();cryptostream cryptostream = new cryptostream(fsencrypted, desencrypt,cryptostreammode.write
36、);byte bytearrayinput = new bytefsinput.length;fsinput.read(bytearrayinput, 0, bytearrayinput.length);cryptostream.write(bytearrayinput, 0, bytearrayinput.length);cryptostream.close();fsinput.close();fsencrypted.close();public static void decryptfile(string sinputfilename, string soutputfilename, st
37、ring skey) trydescryptoserviceprovider des = new descryptoserviceprovider();des.key = asciiencoding.ascii.getbytes(skey);des.iv = asciiencoding.ascii.getbytes(skey);filestream fsread = new filestream(sinputfilename, filemode.open, fileaccess.read); icryptotransform desdecrypt = des.createdecryptor()
38、;cryptostream cryptostreamdecr = new cryptostream(fsread, desdecrypt,cryptostreammode.read);streamwriter fsdecrypted = new streamwriter(soutputfilename);fsdecrypted.write(new streamreader(cryptostreamdecr,encoding.getencoding(gb2312).readtoend();fsdecrypted.flush();fsdecrypted.close();catch (exception e)messagebox.show(e.message);篇五:应用密码学des实验报告密码学des简介: des实验报告des算法为密码体制中的对称密码体制,又被成为美国数据加密标准,是1972年美国ibm公司研制的对称密码体制加密
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 11586-2026船舶与海洋技术船舶系泊和拖带设备巴拿马导缆孔
- 保温材料制造工创新意识测试考核试卷含答案
- 电子电气产品能效检验员操作规程强化考核试卷含答案
- 水环境监测员保密评优考核试卷含答案
- 竹藤师安全文化知识考核试卷含答案
- 工程造价基础知识课件
- 2026年护理安全目标管理课件(完整版)
- 集输工安全演练水平考核试卷含答案
- 印染烧毛工安全培训效果模拟考核试卷含答案
- 复印打印设备维修工保密测试考核试卷含答案
- 电影院安全制度管理方案
- 2026年高考数学新高考I卷卷及答案(新课标卷)
- 2026云南昆明市呈贡区妇幼健康服务中心招聘1人备考题库及答案详解(新)
- AI写作与公文写作培训课
- 伦理审查中的试验方案科学性评估
- 《电力机车行车安全装备》全套教学课件
- 计算机视觉完整全套教学课件
- 华东师大版八年级数学上册《第十章数的开方》单元测试卷带答案解析
- 统编版五升六语文开学摸底测试卷(十)(含答案)
- 高中生物开学第一课课件
- 施工队进场安全教育培训
评论
0/150
提交评论