下载此文档

《现代密码学》课程实验报告.doc


文档分类:高等教育 | 页数:约27页 举报非法文档有奖
1/27
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/27 下载此文档
文档列表 文档介绍
《现代密码学》
课程实验报告

项目名称:
古典密码设计实验
学生姓名:
刘艳龙
学生学号:
200807020116
指导教师:
范安东
完成日期:
2011年7月1日
项目一、古典密码设计实验
1 实验内容
编写仿射密码算法的实现程序;
(2)利用仿射密码算法实现对简单英文文档的加密。
2 主要程序代码清单
#include<iostream>
#include""
#define M 26 //定义密钥空间
using namespace std;
int Inverse (int a)//逆元函数
{
for(int i=2;i<a;i++)
{
if((a%i == 0)&&(M%i == 0))
{
cout<<"请输入互素的元素:"<<endl;
cout<<"他们存在公因子且他们的公因子为:"<<i<<endl;
return -1;// 返回-1
}
}
struct vector
{
int a;
int b;
};
int temp = 0,temp_a,temp_b;
vector v1,v2;
= 0;
= M;
= 1;
= a;
while(true)
{
temp = int();
temp_a = ;
temp_b = ;
= ;
= ;
= temp_a - temp * ;
= temp_b - temp * ;
if( == 1)
break;
}
if( > 0)
return ;
else
return M+;
}
int Encryption(int m,int k1,int k2)
{
return (k1*m+k2)%M;
}
int Decryption(int c,int k1,int k2)
{
int temp_k = Inverse(k1);
int result = (temp_k*(c-k2))%26;
if(result>0)
return result;
else
return M+result;
}
void main()
{
int k1=11,k2=3,m=13,c;
c = Encryption(m,k1,k2);
cout<<"仿射密码的明文为:"<<m<<",仿射密码的密钥为:"<<"("<<k1<<","<<k2<<")"<<",算法实现结果为:"<<"加密过程"<<endl;
cout<<c<<endl;
cout<<"仿射密码的密文为:"<<c<<",仿射密码的密钥为:"<<"("<<k1<<","<<k2<<")"<<",算法实现结果为:"<<"解密过程"<<endl;
m = Decryption(c,k1,k2);
cout<<m<<endl;
}
3 测试数据与实验结果
(1)测试数据:
定义整数型数据,密钥 k1=11,密钥k2=3,明文为m=13,密文为c
利用e(x)=(k1x+k2)mod26
d(y)=k1_(y-k2)mod26
求解加密解密数据。
实验结果:程序实现截图:

本次程序设计我们利用古典放射密码进行程序设计,因此程序设计比较简单,我们引用西安电子科技大学《密码学基础》中的一个放射密码例题,定义整数型数据,密钥 k1=11,密钥k2=3,明文为m=13,密文为c利用 e(x)=(k1x+k2)mod26
d(y)=k1_(y-k2)mod26
求解加密解密数据。
我们分别对输入的明文进行加密和解密运算,所得到的结果是相一致的,因此这就验证了我们的程序设计是完全正确的。
上课纪律(20%)
实验过程及结果(40%)
实验报告质量(40%)
总分:
教师签字:
《现代密码学》
课程实验报告

项目名称:
RSA公钥密码算法实验
学生姓名:
刘艳龙
学生学号:
200807020116
指导教师:
范安东
完成日期:
2011年7月5日
项目二、RSA公钥密码算法实验
1 实验内容
(1)编写获取两个大素数的程序;
(2)编写RSA加解密算法的程序。
2 主要程序代码清单(C++)
#include<iostream>
#include<cmath>
using namespace st

《现代密码学》课程实验报告 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数27
  • 收藏数0 收藏
  • 顶次数0
  • 上传人陈潇睡不醒
  • 文件大小405 KB
  • 时间2018-02-21