密码学1实验报告(共19页).doc
《密码学1实验报告(共19页).doc》由会员分享,可在线阅读,更多相关《密码学1实验报告(共19页).doc(19页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上密码学应用与实践实 验 报 告专业:信息安全学号:姓名: 张洋哈尔滨工业大学(威海)实验1:实现DES密码体制姓名张洋院系计算机科学与技术学院学号任课教师刘扬指导教师刘杨实验地点宋健北楼402实验时间2011-10-24 18:40实验课表现出勤、表现得分实验报告得分实验总分操作结果得分一、实验目的1. 编写程序实现DES的加、解密1) 编程构造DES的密钥;2) 应用上述获得的密钥将文件或文件夹或图片进行加、解密。2. 用DES算法实现口令的安全二、 实验内容1. 概要设计1) 编写CDES_zhy类,实现DES算法加解密;2) 编写用户界面,实现可视化操作;3)
2、核心代码与界面连接;4) 测试程序;5) 调试程序;6) 得到Release版本。2. 详细设计1) 密钥生成 取得密钥从用户处取得一个64位(本文如未特指,均指二进制位)长的密码key ,去除64位密码中作为奇偶校验位的第8、16、24、32、40、48、56、64位,剩下的56位作为有效输入密钥。 等分密钥 密钥移位DES算法的密钥是经过16次迭代得到一组密钥的,把前面生成的A、B视为迭代的起始密钥,比如在第1次迭代时密钥,循环左移1位,第3次迭代时密钥循环左移2位。第9次迭代时密钥循环左移1位,第14次迭代时密钥循环左移2位。第一次迭代:A(1) = (1) A B(1) = (1) B
3、第i次迭代:A(i) = (i) A(i-1)B(i) = (i) B(i-1) 密钥的选取前面第i次迭代生成的两个28位长的密钥为把合并。按照表4所示k的第一位为56位密钥的第14位,k的第2位为56位密钥的第17位,依此类推,k的最后一位最后一位是56位密钥的第32位。生成与进行第i次迭代加密的数据进行按位异或的48位使用密钥: 迭代DES算法密钥生成需要进行16次迭代,最终形成16套加密密钥:key0、key1 , key2, key14 , key15。2) 数据的加密操作 取得数据把明文数据分成64位的数据块,不够64位的数据块以适当的方式补足。 初始换位 数据扩展第一次迭代以1.2
4、.2步中生成的newData作为输入数据,第i (i 1)次迭代以第i-1次的64位输出数据为输入数据,把64位数据按位置等分成左右两部分:保持left不变,把扩展后的48位right与第i次迭代生成的48位加密密钥进行按位异或操作 形成一个新的48位的right。 数据压缩形成的48位right值,需要把48位的right值转换成32位的right值。把right视为由8个6位二进制块组成,a,b,h都是6位,强制转换成10进制整数的值都不大于64。a,b,h转成10进制整数后,在对应的表中根据转换后整数值取得对应位置的替代值,每6位用一个4位替换这样就完成了从48位向32位数据的转换。有些
5、资料中介绍6位转4位的实现方法与本文所采用的不同,但殊途同归,最终的结果是相同的。 数据换位形成的32位right,根据表8进行转换:数据的原第16位换到第一位,原第7位换到第二位,依此类推,最后得到新的32位数据。 交换数据把right 和left按位异或后的值赋给right,然后将本轮输入的原始right值赋给left。 迭代DES算法需要进行16次迭代,在完成16次迭代前,把第i-1次得到的的left和right的值作为第i次的输入数据,循环重复。 数据整理为保证加密和解密的对称性,DES算法的前15次迭代每完成一次迭代都要交换left和right的值,第16次迭代不交换两者的数值. 到
6、此把32位的left和right合并成64位的Data。数据的原第40位换到第一位,原第8位换到第二位,.,依此类推,最后的得到新的64位。Data即为密文。3) 数据的解密数据解密的算法与加密算法相同,区别在于1.2.3步中和数据进行按位异或的密钥的使用顺序不同,在加密中是按照第i次迭代就采用第i次迭代生成的密钥进行异或,而解密时第i次迭代就采用第17-i次迭代生成的密钥和数据进行异或。3. 程序设计模块设计如下(头文件):#define PLAIN_FILE_OPEN_ERROR -1#define KEY_FILE_OPEN_ERROR -2#define CIPHER_FILE_OPE
7、N_ERROR -3typedef char ElemType;class CDES_zhy public:int ByteToBit(ElemType ch,ElemType bit8);int BitToByte(ElemType bit8,ElemType *ch);int Char8ToBit64(ElemType ch8,ElemType bit64);int Bit64ToChar8(ElemType bit64,ElemType ch8);int DES_MakeSubKeys(ElemType key64,ElemType subKeys1648);int DES_PC1_Tr
8、ansform(ElemType key64, ElemType tempbts56);int DES_PC2_Transform(ElemType key56, ElemType tempbts48);int DES_ROL(ElemType data56, int time);int DES_IP_Transform(ElemType data64);int DES_IP_1_Transform(ElemType data64);int DES_E_Transform(ElemType data48);int DES_P_Transform(ElemType data32);int DES
9、_SBOX(ElemType data48);int DES_XOR(ElemType R48, ElemType L48,int count);int DES_Swap(ElemType left32,ElemType right32);int DES_EncryptBlock(ElemType plainBlock8, ElemType subKeys1648, ElemType cipherBlock8);int DES_DecryptBlock(ElemType cipherBlock8, ElemType subKeys1648, ElemType plainBlock8);int
10、DES_Encrypt(char * plainFile, char * keyStr,char *cipherFile);int DES_Decrypt(char * cipherFile, char * keyStr,char *plainFile);三、实验结果1. 程序初始界面。2. 选择DES加解密选项卡。对图片加密。加密后的文件为。选择解密按钮,可得到原文件。3. 选择口令安全选项卡。初始密码为:zhangyang,密钥为zhangyang。若把密码改为abc,再次登录测试。则再次登录即可登录成功,原来的密码已经失效。四、实验中遇到的问题总结1. 编程实现了DES的加、解密1) 编
11、程实现了构造DES的密钥;2) 编程实现了用上述获得的密钥将文件或文件夹或图片进行加、解密。2. 编程实现了用DES算法实现口令的安全3. 心得1) 通过上网查资料,又深入学习了DES的加密原理。S盒是IBM自己定义的。B1b2b3b4b5b6 用b1b6表示行,其他表示列,由此实现转换,E函数是对32位串的扩展,置换P是对密钥的置换。2) 测试发现DES,算法把64位密码中的第8位、第16位、第24位、第32位、第40位、第48位、第56位、第64位作为奇偶校验位,在计算密钥时要忽略这8位。如果输入的密码只是在这8位上有区别的话,那么操作后的结果将是一样的。3) DES算法中只用到64位密钥
12、中的其中56位,而第8、16、24、.64位8个位并未参与DES运算,这一点,向我们提出了一个应用上的要求,即DES的安全性是基于除了8、16、24、.64位外的其余56位的组合变化256才得以保证的。因此,在实际应用中,我们应避开使用第8、16、24、64位作为有效数据位,而使用其它的56位作为有效数据位,才能保证DES算法安全可靠地发挥作用。如果不了解这一点,把密钥Key的8、16、24、64位作为有效数据使用,将不能保证DES加密数据的安全性。实验2:实现RSA密码体制姓名张洋院系计算机科学与技术学院学号任课教师刘扬指导教师刘杨实验地点宋健北楼402实验时间2011-10-24 18:4
13、0实验课表现出勤、表现得分实验报告得分实验总分一、实验目的1. 编写程序构造一RSA密钥;2. 编写程序实现快速指数算法;3. 编写程序生成大素数;4. 实现RSA密码体制。二、实验内容1. 详细设计1) 加密解密 密钥的产生找出两个相异的大素数P和Q,令NPQ,M(P1)(Q1)。找出与M互素的大数E,用欧氏算法计算出大数D,使DE1 MOD M。丢弃P和Q,公开E,D和N。E和N即加密密钥,D和N即解密密钥。 加密的步骤计算N的有效位数tn(以字节数计),将最高位的零忽略掉,令tn1tn1比如N0x012A05,其有效位数tn5,tn14。将明文数据A分割成tn1位(以字节数计)的块,每块
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 密码学 实验 报告 19
限制150内