当前位置:文档之家› 武汉理工大学信息安全实验报告

武汉理工大学信息安全实验报告

学生学号实验课成绩
学生实验报告书
实验课程名称信息安全
开课学院计算机科学与技术学院
指导教师姓名孙贤伟
学生姓名
学生专业班级软件工程zy1302班
2015-- 2016学年第一学期
实验课程名称:信息安全
第二部分:实验调试与结果分析
一、调试过程(包括调试方法描述、实验数据记录,实验现象记录,实验过程发现的问题等)实验代码:
#include<cstdio>
#include<cstdlib>
int main()
{
char c[15] = "ybccnhfwblelho";
int cc[14];
for (int i = 0; i < 14; i++)
{
cc[i] = c[i] - 'a';
}
char ccc[15];
ccc[14] = '\0';
for (int a = 0; a < 26; a++)
{
printf("%d:\n", a);
for (int b = 0; b < 26; b++)
{
for (int i = 0; i < 14; i++)
{
ccc[i] = ((cc[i] * a) + b) % 26 + 'a';
}
printf("%s\n", ccc);
}
}
system("pause");
return 0;
}
二、实验结果分析(包括结果描述、实验现象分析、影响因素讨论、综合分析和结论等)
1、利用程序穷举明文,找出有意义的字符串:
2、根据明文与密文的映射,列出方程组:
3、解方程组,得:
三、小结、建议及体会
通过本次实验,我初步学会了仿射变换在密码学中的应用,加深了对密码学的认识和兴趣。

明文和密文之间的转换是十分有趣和具有挑战性的,这让我非常感兴趣。

总而言之,本次实验我收获很多,以后也会继续努力学习信息安全,认真完成每一次实验。

实验课程名称:信息安全
第二部分:实验调试与结果分析
一、调试过程(包括调试方法描述、实验数据记录,实验现象记录,实验过程发现的问题等)
main函数代码:
int main(void)
{
unsigned char digest[16],digest1[16]; //存放结果
char
a[]="hellohellohellohellohellohellohellohellohellohellohellohellohellohello!";
MDString(a, digest);
printf("原文本的哈希值:\n");
for(int i=0;i<32;++i)
printf("%02x",digest[i]);
printf("\n");
char aa[72];
aa[71]='\0';
double max=0;
for(int i=0;i<71*8;++i)
{
for (int j=0;j<71;++j)
aa[j]=a[j];
aa[i/8]=a[i/8]^(1<<(i%8)); // 只改变其中一位
MDString(aa, digest1);
for(int i=0;i<32;++i)
printf("%02x",digest1[i]);
printf("\n");
int res=0;
for (int j=0;j<32;++j)
{
res+=((digest[j]&1)==(digest1[j]&1))?1:0;
res+=((digest[j]&2)==(digest1[j]&2))?1:0;
res+=((digest[j]&4)==(digest1[j]&4))?1:0;
res+=((digest[j]&8)==(digest1[j]&8))?1:0;
res+=((digest[j]&16)==(digest1[j]&16))?1:0;
res+=((digest[j]&32)==(digest1[j]&32))?1:0;
res+=((digest[j]&64)==(digest1[j]&64))?1:0;
res+=((digest[j]&128)==(digest1[j]&128))?1:0;
}
printf("相似度:%f\n",double(res)/32/8);
if(max<double(res)/32/8)
max=double(res)/32/8;
}
printf("\n最大相似度:%f\n\n",max);
system("pause");
return 0;
}
二、实验结果分析(包括结果描述、实验现象分析、影响因素讨论、综合分析和结论等)
三、小结、建议及体会
通过本次实验,我对哈希函数的性质有了进一步的认识,将一个不定长度的字符串通过哈希函数编程了定长的字符串,通过改变一位,再进行了相似度的计算。

在实验的过程中,老师和同学们帮助了我很多,我会加强自己独立思考的能力。

通过思考和学习,我对信息安全的学习有了更加深刻的理解,今后也会继续努力的!
实验课程名称:信息安全
实验项目名称RSA密码的验证实验成绩
实验者专业班级软件zy1302班组别
同组者实验日期2015年11月15日第一部分:实验分析与设计
二、实验内容描述(问题域描述)
条件:n=4294967297,公钥e=401
1.已知密文c1=131072,求明文m1
2.加密 m2=138 求密文c2
二、实验基本原理与设计(包括实验方案设计,实验手段的确定,试验步骤等,用硬件逻辑或者算法描述)
RSA的安全基于大数分解的难度。

其公钥和私钥是一对大素数(100到200位十进制数或更大)的函数。

从一个公钥和密文恢复出明文的难度,等价于分解两个大素数之积(这是公认的数学难题)。

RSA的公钥、私钥的组成,以及加密、解密的公式可见于下表:
三、主要仪器设备及耗材
PC机
System.out.println("(1)\t已知:c1 = " + c1);
System.out.println("\t\t求得:m1 = " + m1);
// 计算m2的密文c2
c2 = power(m2, e, n);
System.out.println("(2)\t已知:m2 = " + m2);
System.out.println("\t\t求得:c2 = " + c2);
}
}
二、实验结果分析(包括结果描述、实验现象分析、影响因素讨论、综合分析和结论等)
三、小结、建议及体会
通过本次实验,我对RSA的算法有了进一步的认识,RSA算法是一种非对称密码算法,所谓非对称,就是指该算法需要一对密钥,使用其中一个加密,则需要用另一个才能解密。

RSA的安全基于大数分解的难度。

在实验的过程中,老师和同学给了我很多的帮助。

通过思考和学习,我对信息安全的学习有了更加深刻的认识,今后也会继续加油的!。

相关主题