欢迎来到天天文库
浏览记录
ID:38629094
大小:276.00 KB
页数:26页
时间:2019-06-16
《密码学基础-实验指导书》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、五邑大学本科生实验指导书《密码学基础》实验指导书课程名称:密码学基础课程编号:课程性质:专业选修课课程总学时:48实验总学时:8任课教师:高伟峰一、实验教学目的和基本要求《密码学基础》是计算科学与技术本科专业开设的一门专业选修课,本课程的主要目标是让学生学习和了解密码学的一些基本概念,理解和掌握一些常用密码算法,包括加密和解密、认证理论及算法、安全计算原理及算法,学会进行效率分析和安全性分析。密码学是信息安全的核心技术,是实现安全通信的基础,所以实验和理论一样都很重要,实验能够让学生通过多个密码算法的程序设计实现,更好地掌握密码算法设计的机理和方法,熟悉网络攻击
2、和防范方法。同时,基于密码系统设计的基本方法和基本步骤,帮助学生理解密码学在信息安全中的地位,并引导了解密码学领域及信息安全领域的新进展、新方向。具体要求如下:1.要求学生在上机前对本次实验的原理、内容、方案进行充分准备。2.每次实验必须按要求的格式撰写《实验报告》,内容大体包括:实验目的、实验内容、实验及算法原理、程序清单、结果分析、总结。3.实验成绩作为平时成绩的一部分。二、实验内容及学时分配实验一古典密码学实验(2学时)一、实验目的通过实现简单的古典密码算法,理解密码学的相关概念如明文(plaintext)、密文(ciphertext)、加密密钥(encr
3、yptionkey)、解密密钥(decryptionkey)、加密算法(encryptionalgorithm)、解密算法(decryptionalgorithm)等。二、实验内容1)用CC++语言实现仿射变换(Affine)加/解密算法;2)用CC++语言实现统计26个英文字母出现的频率的程序;3)利用仿射变换加/解密程序对一段较长的英文文章进行加密,再利用统计软件对明文和密文中字母出现的频率进行统计并作对比,观察有什么规律。放射变换:加密:解密:其中a,b为密钥,,且gcd(a,26)=1实验要求:加/解密程序对任意满足条件的a、b都能够处理。三、实验步
4、骤(1)统计26个英文字母出现的频率的程序#include#include#includeusingnamespacestd;voidmain(){ifstreamin("a.txt");vectors;vectorn(26,0);for(inti=0;i<26;++i)s.push_back(97+i);for(charx;in>>x;)for(inti=0;i<26;++i)if(int(x)==s[i]){n[i]++;}floatsum=0.0;for(intj=0;j<26;++
5、j)sum+=n[j];cout<<"统计结果如下:"<#include#include#includeusingnamespacestd;//////////判断两个数是不是互素(辗转相除)/////
6、///boolgcd(inta){intf=26,g,r;g=a;do{r=f%g;f=g;g=r;}while(r);if(f==1)return1;elsereturn0;}//////////////////求逆//////intinv(inta){intx,i;for(i=1;i<=30;++i)if((26*i+1)%a==0){x=(26*i+1)/a;break;}returnx;}//////////////////////////////////////////////////////////voidmain(){cout<<"请你选择操作密码
7、的方式:"<>z;if(z==0
8、
9、z==1){//////////////////////////////////////////cout<<"请输入密钥a和b:"<>a>>b;if((a<1
10、
11、a>25)
12、
13、(b<0
14、
15、b>25))cout<<"a,b的输入范围有错!"<16、("a.txt");of
16、("a.txt");of
此文档下载收益归作者所有