华科大密码学课程设计实验报告

上传人:第*** 文档编号:38820563 上传时间:2018-05-08 格式:DOC 页数:22 大小:275KB
返回 下载 相关 举报
华科大密码学课程设计实验报告_第1页
第1页 / 共22页
华科大密码学课程设计实验报告_第2页
第2页 / 共22页
华科大密码学课程设计实验报告_第3页
第3页 / 共22页
华科大密码学课程设计实验报告_第4页
第4页 / 共22页
华科大密码学课程设计实验报告_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《华科大密码学课程设计实验报告》由会员分享,可在线阅读,更多相关《华科大密码学课程设计实验报告(22页珍藏版)》请在金锄头文库上搜索。

1、密码学课程设计实验报告密码学课程设计实验报告专业:信息安全专业:信息安全班级:班级:0903姓名:付晓帆姓名:付晓帆学号:学号:U200915328一、一、 DES 的编程实现的编程实现1.实验目的实验目的通过实际编程掌握 DES 的加、脱密及密钥生成过程,加深对 DES 算法的认 识。2.实验原理实验原理a.加密过程加密过程DES 是一个分组密码,使用长度为 56 比特的密钥加密长度为 64 比特的明 文,获得长度为 64 比特的密文,其加密过程: (1) 给定一个明文 X,通过一个固定的初始置换 IP 置换 X 的比特,获得 X0,X0=IP(X)=L0R0,L0R0 分别是 X0 的前

2、32 比特和后 32 比特。(2) 然后进行 16 轮完全相同的运算,有如下规则,其中 0=1;i+,j-) BitToByte(B,SubKeyi,48);BitToByte(A,SubKeyj,48); /若 16 个子密钥完全相同,则为弱密钥if (memcmp(void*)A,(void*)B,6) ) return 1; else return 0; 4、实验过程、实验过程(1)输入密钥 00000000,程序显示为弱密钥。(2)输入密钥 3e96GR4J,检测显示为非弱密钥。5、实验源代码、实验源代码#include #include using namespace std; co

3、nst 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, 15, 7 ; const static char EP156

4、=/密钥置换(原 64 位去掉奇偶校验位后) 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, 5, 28, 20, 12, 4 ; const static char LOOP16 =/左移 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2,

5、 2, 2, 2, 2, 1 ; const static char EP248 =/选择子密钥 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; static const char EC48 =/放大换位 32, 1, 2, 3, 4, 5, 4, 5, 6, 7, 8, 9,8,

6、 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 ; const static char SBox8416 =/8 个 S 盒 / 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,

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

8、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

9、, 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, 2, 12, 4, 7, 13, 1, 5, 0, 15, 10, 3, 9, 8, 6 , 4, 2, 1, 11,

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

11、 1, 7, 6, 0, 8, 13 ,/ S7 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, 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,

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 ; const static char PP32 =/P 盒置换 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,2

13、2, 11, 4, 25, ; const static char LP64 =/末置换 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 bool M64, tmp32, *Li = static bool SubKey1648;/16 个子密钥 class CDES/定义 DES 类 public:/void Mode();/模式void Encryption(char out8,char In8);/加密函数void Decryption(char out8,char In8);/解密函数 ; void ByteToBit(bool *Out, const char *In, int bits)/字符转换成字节 int i;for(i=0;i3(i

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

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

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