des加密解密程序

上传人:第*** 文档编号:38924766 上传时间:2018-05-09 格式:DOC 页数:6 大小:52KB
返回 下载 相关 举报
des加密解密程序_第1页
第1页 / 共6页
des加密解密程序_第2页
第2页 / 共6页
des加密解密程序_第3页
第3页 / 共6页
des加密解密程序_第4页
第4页 / 共6页
des加密解密程序_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《des加密解密程序》由会员分享,可在线阅读,更多相关《des加密解密程序(6页珍藏版)》请在金锄头文库上搜索。

1、实验二实验二 DESDES 加密与解密算法的实现加密与解密算法的实现【实验目的实验目的】1、理解 DES 加密与解密的程序设计算法思想。2、加深对数据加密与解密的理解3、掌握 DES 加密算法思想,提高信息安全的编程能力【实验内容实验内容】编写 DES 加密与解密程序,实现对信息的加密与解密源程序:#include “stdio.h“ #include “iostream.h“ #include “memory.h“ static void F_func(bool In32, const bool Ki48);/ F 函数 static void S_func(bool Out32, cons

2、t bool In48);/ S 盒代替 static void Transform(bool *Out, bool *In, const char *Table, int len); static void Xor(bool *InA, const bool *InB, int len);/ 异或 static void RotateL(bool *In, int len, int loop);/ 循环左移 static void ByteToBit(bool *Out, const char *In, int bits); static void BitToByte(char *Out,

3、const bool *In, int bits); / 初始变换 const static char IP64 = 58, 50, 42, 34, 26, 18, 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, 1

4、5, 7 ; / 末置换 const static char IPR64 = 40, 8, 48, 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 ; / 扩展置换 static

5、 const char E48 = 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, 25, 26, 27, 28, 29, 28, 29, 30, 31, 32, 1 ; / 作用在 S 盒的 32 位输出结果上的 P 变换 const static char P32 = 16, 7, 20, 21, 29, 12, 28, 17, 1, 15, 23, 26, 5, 18,

6、 31, 10, 2, 8, 24, 14, 32, 27, 3, 9, 19, 13, 30, 6, 22, 11, 4, 25 ; / 密钥初始置换 const static char 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, 23, 15, 7, 62, 54, 46, 38, 30, 22, 14, 6, 61, 53, 45, 37, 29, 21, 13,

7、 5, 28, 20, 12, 4 ; / 密钥压缩变换 PC-2 const static char PC248 = 14, 17, 11, 24, 1, 5, 3, 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 ; / 每圈移位次数 const static char LOOP16 = 1,1,2,2,2,2,2,2,1,2

8、,2,2,2,2,2,1 ; / S 盒 const static char S_Box8416 = / 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, 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,

9、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, 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,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号