1、61,53,45,37,29,21,13,5,63,55,47,39,31,23,15,7,即将输入的第58位换到第一位,第50位换到第2位,依此类推,最后一位是原来的第7位。 L0、R0则是换位输出后的两部分,L0是输出的左32位,R0 是右32位,例:设置换前的输入值为D1D2D3D64,则经过初始置换后的结果为:L0=D550D8;R0=D57D49.D7。经过26次迭代运算后,得到L16、R16,将此作为输入,进行逆置换,即得到密文输出。逆置换正好是初始置的逆运算,例如,第1位经过初始置换后,处于第40位,而通过逆置换,又将第40位换回到第1位,其逆置换规则如下表所示:40,8,48,
2、16,56,24,64,32,39,7,47,15,55,23,63,31, 38,6,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, 放大换位表 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,25,24,
3、25,26,27,28,29,28,29,30,31,32, 1, 单纯换位表 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, 在f(Ri,Ki)算法描述图中,S1,S2.S8为选择函数,其功能是把6bit数据变为4bit数据。下面给出选择函数Si(i=1,2.8)的功能表:选择函数Si S1: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
4、,14,8,13,6,2,11,15,12,9,7,3,10,5,0, 15,12,8,2,4,9,1,7,5,11,3,14,10,0,6,13, S2: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, S3: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,
5、14,12,11,15,1, 13,6,4,9,8,15,3,0,11,1,2,12,5,10,14,7, 1,10,13,0,6,9,8,7,4,15,14,3,11,5,2,12, S4: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, S5:2,12,4,1,7,10,11,6,8,5,3,15,13,0,14,9, 14,11,
6、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,14, 11,8,12,7,1,14,2,13,6,15,0,9,10,4,5,3, S6: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, S7:4,11,2,14,15,0,8,13,3,12,9,
7、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,0,5,9,2, 6,11,13,8,1,4,10,7,9,5,0,15,14,2,3,12, S8: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, 四、主要仪器设备及耗材P
8、C机一台五、实验步骤与结果1.运行程序2.加密过程(同时生成密文文档)3.解密过程(同时生成明文外部文档)六、实验原代码/DES算法C+源代码:#include stdafx.hDESTest.hDESTestDlg.hEncrypt.hvoid CDES:deskey(unsigned char key8, Mode md) register int ii, j, l, m, n; unsigned char pc1m56, pcr56; unsigned long kn32; for (j = 0; j 3 & bytebitm) ? 1:0; for (ii = 0; ii 16; ii
9、+) if (md = DECRYPT) m = (15 - ii) 1; else m = ii n = m + 1; knm = knn = 0L; for (j = 0; 28; l = j + totrotii; if (l 28) pcrj = pc1ml; else pcrj = pc1ml - 28; for (j = 28; 56) 24; if (pcr pc2j ) knm |= bigbytej; if (pcr pc2j+24 ) knn |= bigbytej; cookey(kn); return;cookey(register unsigned long *raw
10、1) register unsigned long *cook, *raw0; unsigned long dough32; register int i; cook = dough; for (i = 0; i i+, raw1+) raw0 = raw1+; *cook = (*raw0 & 0x00fc0000L) 6; *cook |= (*raw0 & 0x00000fc0L) *cook+ |= (*raw1 & 0x00000fc0L) 0x0003f000L) 12; 0x0000003fL) 4; 0x0000003fL); usekey(dough);usekey(regi
11、ster unsigned long *from) register unsigned long *to, *endp; to = KnL, endp = &KnL32; while (to endp) *to+ = *from+;scrunch(register unsigned char *outof, register unsigned long *into ) *into = (*outof+ & 0xffL) 24) & 0xffL; 16) & 8) & *into+ = *outof+ & *into = *outof &desfunc(register unsigned lon
12、g *block, register unsigned long *keys) register unsigned long fval, work, right, leftt; register int round; leftt = block0; right = block1; work = (leftt 4) right) & 0x0f0f0f0fL; right = work; leftt = (work 2) leftt) & 0x33333333L; leftt = work; right = (work 2); 8) leftt) & 0x00ff00ffL; 8); right
13、= (right 31) & 1L) & 0xffffffffL; work = (leftt right) & 0xaaaaaaaaL; leftt = (leftt for (round = 0; round round+) work = (right work = *keys+; fval = SP7work & 0x3fL; fval |= SP5(work fval |= SP3(work fval |= SP1(work work = right *keys+; fval |= SP8work & fval |= SP6(work fval |= SP4(work fval |=
14、SP2(work leftt = fval; work = (leftt work = leftt *keys+; right = fval; right = (right 1); leftt = (leftt 8) right) & 2) right) & 16) leftt) & 4) leftt) & *block+ = right; *block = leftt;unsigned char CDES:Df_Key24 = 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef,0xfe, 0xdc, 0xba, 0x98, 0x76, 0x54,
15、0x32, 0x10,0x89, 0xab, 0xcd, 0xef, 0x01, 0x23, 0x45, 0x67 unsigned short CDES:bytebit8 = 0200, 0100, 040, 020, 010, 04, 02, 01 unsigned long CDES:bigbyte24 = 0x800000L, 0x400000L, 0x200000L, 0x100000L,0x80000L, 0x40000L, 0x20000L, 0x10000L,0x8000L, 0x4000L, 0x2000L, 0x1000L,0x800L, 0x400L, 0x200L, 0
16、x100L,0x80L, 0x40L, 0x20L, 0x10L,0x8L, 0x4L, 0x2L, 0x1L pc156 = 56, 48, 40, 32, 24, 16, 8, 0, 57, 49, 41, 33, 25, 17,9, 1, 58, 50, 42, 34, 26, 18, 10, 2, 59, 51, 43, 35,62, 54, 46, 38, 30, 22, 14, 6, 61, 53, 45, 37, 29, 21,13, 5, 60, 52, 44, 36, 28, 20, 12, 4, 27, 19, 11, 3 totrot16 = 1, 2, 4, 6, 8,
17、 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28 pc248 = 13, 16, 10, 23, 0, 4, 2, 27, 14, 5, 20, 9,22, 18, 11, 3, 25, 7, 15, 6, 26, 19, 12, 1,40, 51, 30, 36, 46, 54, 29, 39, 50, 44, 32, 47,43, 48, 38, 55, 33, 52, 45, 41, 49, 35, 28, 31 SP164 = 0x01010400L, 0x00000000L, 0x00010000L, 0x01010404L,0x01010004
18、L, 0x00010404L, 0x00000004L, 0x00010000L,0x00000400L, 0x01010400L, 0x01010404L, 0x00000400L,0x01000404L, 0x01010004L, 0x01000000L, 0x00000004L,0x00000404L, 0x01000400L, 0x01000400L, 0x00010400L,0x00010400L, 0x01010000L, 0x01010000L, 0x01000404L,0x00010004L, 0x01000004L, 0x01000004L, 0x00010004L,0x00
19、000000L, 0x00000404L, 0x00010404L, 0x01000000L,0x00010000L, 0x01010404L, 0x00000004L, 0x01010000L,0x01010400L, 0x01000000L, 0x01000000L, 0x00000400L,0x01010004L, 0x00010000L, 0x00010400L, 0x01000004L,0x00000400L, 0x00000004L, 0x01000404L, 0x00010404L,0x01010404L, 0x00010004L, 0x01010000L, 0x01000404
20、L,0x01000004L, 0x00000404L, 0x00010404L, 0x01010400L,0x00000404L, 0x01000400L, 0x01000400L, 0x00000000L,0x00010004L, 0x00010400L, 0x00000000L, 0x01010004L 南昌大学实验报告二1熟悉非对称加密算法。2掌握私钥和公钥再签名和加密中的应用。3了解PGP工具的操作(1)了解PGP软件;(2)应用PGP软件,熟悉加密、解密过程.三、实验基本原理PGP简介:PGP,全名:Pretty Good Privacy,也是一个混合型加密体系的称呼。通常只理解为是PGP公司的系列软件。能对邮件、文件、文件夹、整个硬盘加密,全网段加密权限和访问权限控制等。PGP 能够提供独立计算机上的信息保护功能,使得这个保密系统更加完备。它的主要功能是:数据加密,包括电子邮件、任何储存起来的文件、还有即时通讯(例如 ICQ 之类)。数据加密功能让使用者可以保护他们发送的信息,如电子邮件,还有他们储存在计算机上的所有
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1