文档详情

vigenere实验报告(共10篇).doc

发布:2017-05-01约1.88万字共38页下载文档
文本预览下载声明
vigenere实验报告(共10篇) Vigenere实验报告 实 验 报 告 姓名: 1111学号: 111111 班级:11111 日期: 2012-3-12 1 古典密码(Vegenere密码) 一、 实验环境 1. 硬件配置:处理器:Corei5 M ,内存2GB,主硬盘320G 2. 使用软件: (1) 操作系统:win7 (2) 软件工具:Microsoft Visual C++6.0 二、 实验设计的相关概念或基本原理 1. Vigenere密码的基本思想: 设密钥k=k[1],k[2],…,k[n],明文P=m[1],m[2],…,m[n],加密函数e[k](P)=c[1],c[2],….,c[n], 26),i=1,2,…,n。 三、 实验内容 根据实验原理的介绍,可以任意选取密钥,对任意明文,编写实现程序,并能进行解密操作。 实验流程图: 其中c[i]=(m[i]+k[i])(mod 四、 实验总结分析 关键代码 1. 创建加密矩阵 int createVigenere(char vigenere[][26]) { for(int i=0;i26;i++) { if(i0) vigenere[0][i] = vigenere[0][i-1] + 1; else vigenere[0][i] = #39;A#39;; for(int j=1;j26;j++) { } vigenere[j][i] = vigenere[j-1][i] +1;else vigenere[j][i] = vigenere[j-1][i] - 25; } } return 1; 2.加密算法 int encrepty(char vigenere[][26],char* source,char* key,char *cipher) { source = strlwr(source);//将大写转换为小写 char *p = strlwr(key); char *q = source; char *s = cipher; while(*q != #39;\0#39;) { while(*p !=#39;\0#39;amp;amp;*q != #39;\0#39;) { if(*q#39;a#39;||*q#39;z#39;)//如果要加密的字符中不是26个字母则将其保存,不为其加密 { *s = *q; q++; s++; continue; } *s = vigenere[*q-97][*p-97];//密钥*p-97,密文*q-97 s++; p++; q++; } p = key; } *s = #39;\0#39;;return 1; } 3.解密算法 int deciphring(char vigenere[][26],char* cipher,char* key,char *source) { cipher = strlwr(cipher); char *p = strlwr(key); } char *s = source; while(*q != #39;\0#39;) { while(*p !=#39;\0#39;amp;amp;*q!=#39;\0#39;) //如果要加密的字符中不是26个字母则将其保存,不为其解密 {if(*q#39;a#39;||*q#39;z#39;){ *s = *q; q++; s++; continue;}*s = vigenere[0][(*q-*p+26)%26]+32;s++;p++;q++; } p = key; } *s = #39;\0#39;;return 1; 结果显??? 4.小结 Vigenere算法的加密矩阵思想我觉得非常有意思,现代的Des等加密思想,我觉得与之有相通之处。在实验的过程中,我体会到数学知识对密码学的巨大作用。作为信安专业的一员,我觉得仅仅满足于对密码算法的破解是不够的,我们应该在研究一种算法时吸收它的思想,掌握更多的数学知识,从而可以研究得更加深入。 篇二:实验一 古典密码Vigenere 实验报告 陕西师范大学数学与信息科学学院 信 息 安 全 实 验 报 告 学号________姓名________ 班级________ 时间________ 成绩_______ 篇三:维吉尼亚实验报告 维吉尼亚密实现与攻击 一、实验目的: 维吉尼亚密码是古典密码中非常具有代表的例子。本实验要求用高级语言编写和调试一个简单的维吉尼亚密码实现及分析破译程序。通过本实验可以加深理解维
显示全部
相似文档