2016春 密码学原理 软件学院

密码学原理作业报告

作业1:古典密码体制的实践与分析

姓名查志华院系软件学院学号1133710313任课教师刘绍辉指导教师刘绍辉实验地点哈尔滨工业大学实验时间2016.3.15-2016.3.18一、实验目的要求:综述本次实验的基本目的。

1.了解古典密码的基本体制,掌握维吉尼亚密码的加解密方式,能对文件进行加解密。

2. 掌握重合指数的计算方法,了解掌握Kasiski’s 的计算方法,能对明文以及密文进行重合指数的计算以及Kasiski’s 计算方法;

二、实验内容要求:对如下内容进行详细描述。

弗吉尼亚密码加密解密算法;

明文 =(密文-密钥+26)/26;

密文 = (明文+密钥)/26;

具体实现见下代码。

重合指数计算算法;

先统计出各个字母出现的频数,f(a),f(b),……,f(z)f(a)+f(b)+……+f(z)=X (X就是密文长度),然后把所有的 f(字母)*(f(字母)-1) 的和求出来,假设为sum ,sum/(X*(X-1))就是重合指数

具体实现见下代码。

Kasiski’s 计算方法;

在密文中标出重复的三个或多个字符结构;

对每一个字符结构,记下结构的起始位置;

计算相邻的起始点的距离;

对每个距离求出所有因数;

若使用多字母替换密码,则密钥的长度为步骤4种出现的某一因数;

三、实验结果及分析要求:将实验获得的结果进行描述,涉及不同的密钥以及密钥长度,不同密文长度情况下的Kasiski分析及重合指数分析得出的结果。

选择文件进行操作,对于不同的密钥以及不同长度的密钥,情况如下:

(文件选取为英文原著阿兹卡班的囚徒1.txt,大小为21K)

各字符频率统计:

密钥长度为4时,即n=4时:

密钥长度为16时,即n=16时:

重合指数计算:

n=1时:

n=2时:

n=4时:

n=8时:

n=16时:

n=32时:

n=64时:

n=128时:

n=256时:

n=9000时:

结论:当密钥的长度足够大时,发现密文的重合指数会趋向于3.84%,也就是1/26。

代码如下:

#include

#include

#include

#include

#include

void Genkey(int len);

void DenKey();

int main()

{

int len = 0;

int select =0;

while(1)

{

printf("请选择操作:加密(1);解密(2):退出(3)\n");

scanf("%d",&select);

if(select ==1)//加密操作

{

printf("请输入密钥长度\n");

scanf("%d",&len);

Genkey(len);

}

else if(select ==2)//解密操作

{

DenKey();

}

else if(select ==3)

{

exit(0);

}

else

{

printf("输入有误!\n");

}

}

return 0;

}

void Genkey(int len)

{

srand((unsigned) time(NULL)); //用时间做种,每次产生随机数不一样

int number=0,i=0,j=0,len1;

len1=len;

char ch;

char key1[10000]= "";

char alp[26] = {'A','B','C','D','E','F','G',

'H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'

};

while(len >0)//随机生成

c语言维吉尼亚密码实验报告,维吉尼亚密码的C语言实现.doc相关推荐

  1. 古典密码算法实验c语言,古典密码实验报告.doc

    古典密码实验报告.doc 哈尔滨工程大学实验报告实验名称古典密码算法班级学号姓名实验时间2014年4月成绩指导教师实验室名称哈尔滨工程大学实验室与资产管理处制一.实验名称古典密码算法2.实验目的通过编 ...

  2. 按平均成绩排行c语言文件操作,学生成绩管理系统(c语言结构体以及文件操作)实验报告精选.doc...

    学生成绩管理系统(c语言结构体以及文件操作)实验报告精选 C程序设计 实验报告 编号: 姓名院系学号任课教师于萧指导教师实验地点实验时间实验名称文件操作同 组 人无预习报告(对实验主要内容的认识)得分 ...

  3. c语言des算法实验报告,c语言实现des算法des加密算法实验报告

    c语言实现des算法des加密算法实验报告 (23页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.90 积分 xx 工程大学工程大学实验报告实验报告 ...

  4. c语言学生档案管理课设作业,2019-2020年c语言课程设计学生档案管理系统实验报告.doc...

    2019-2020年c语言课程设计学生档案管理系统实验报告.doc 还剩 10页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,喜欢就下载吧,价低环保! 内容要点: *********C 语 ...

  5. 数据结构--链栈的c语言实现(超详细注释/实验报告)

    数据结构–链栈的c语言实现(超详细注释/实验报告) 知识小回顾 栈(Stack)作为一种限定性线性表,是将线性表的插入和删除操作限制为仅在表的一端进行,通常将表中允许进行插入.删除操作的一端成为栈顶( ...

  6. c语言程序设计实验报告金陵科技学院,金陵科技学院c语言程序设计.doc

    金陵科技学院c语言程序设计.doc 学生实验报告册(理工类)课程名称:C语言程序设计专业班级:14自动化学生学号:1417102015学生姓名:钱涛所属院部:智控院指导教师:樊静2014--2015学 ...

  7. 周期置换加密算法用c语言实现,古典密码实验报告.doc

    . .. 哈尔滨工程大学 实 验 报 告 实 验 名 称: 古典密码算法 班 级: 学 号: 姓 名: 实 验 时 间: 2014年4月 成 绩: 指 导 教 师: 实验室名称: 哈尔滨工程大学实验室 ...

  8. c语言银行系统个人心得,c,,银行管理实验报告心得体会.docx

    c,,银行管理实验报告心得体会 c,,银行管理实验报告心得体会 篇一:c++实验心得 刚拿到C++实验心得 c++书时发现,跟c语言有太多相似,觉得应该不是很难.上第一节课时,一时大意,等到教室时发现 ...

  9. 密码学—仿射密码实验报告

    古典密码算法实验报告 姓名:空の城 学号:你猜 专业班级:网络安全专业 一.实验目的 通过编程实现替代密码算法--仿射密码算法,加深对古典密码体制的了解,为深入学习密码学奠定基础. 二.实验原理 仿射 ...

最新文章

  1. 安装截图软件shutter
  2. dbc2000找不到服务器控制台,控制面板没有BDE Administrator(安装好DBC2000找不到)
  3. Leetcode1702. 修改后的最大二进制字符串[C++题解]:思维题
  4. RaspberryPI 3 系统安装及常见问题
  5. 【干货】工作邮件高段位写法
  6. sklearn数据预处理
  7. E20170626-gg
  8. 抑制java对修饰符的检查_Java 7对抑制异常的支持
  9. 机器学习的练功方式(六)——朴素贝叶斯
  10. 信息学奥赛一本通C++语言——1112:最大值和最小值的差
  11. android 添加桌面快捷方式
  12. android+adb+push到系统下,Android adb push 应用到app/system
  13. 目前已经学习的一些matlab函数
  14. unity player 显示播放错误时的解决办法
  15. 超级终端连接华为交换机_win8系统教你实现用超级终端连接华为交换机的超详细图文教程...
  16. swagger注释HTML,Swagger注解生成Rest Api文档
  17. AI近义词替换工具.v.1.2
  18. mindmanager2021下载 最新版如何更新
  19. Android9.0 power键功能定义配置方法
  20. 360浏览器打开html不能正常显示图片,“网页图片显示异常,网页图片、验证码显示不正常,经常显示不全或根本不显示”的解决方案...

热门文章

  1. JAVA毕设项目五金机电市场批发零售管理信息系统(java+VUE+Mybatis+Maven+Mysql)
  2. matlab sscanf用法,sscanf函数的用法
  3. discord怎么创建账号_如何创建,设置和管理Discord服务器
  4. 使用MATLAB的Kalman Filter做目标跟踪——来自MathWorks网站的技术文档
  5. Spring 循环依赖问题的解决方法
  6. 软考知识点---09多媒体基础
  7. 计算机图形学——是什么?为什么?怎么做?
  8. CAD二次开发之ArxDbg的安装
  9. 玫琳凯生产并捐赠洗手液以抗击COVID-19大流行
  10. 解析视频分辨率和时长