- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《信息安全学》实验
云南大学软件学院
实 验 报 告
课程: 信息安全学实验 任课教师:
专业: 学号: 姓名: 成绩:
实验1 古典密码算法
实验目的
通过编程实现替代密码算法和置换密码算法,加深对古典密码体系的了解,为以后深入学习密码学奠定基础。
实验原理
古典密码算法曾被广泛应用,大都比较简单。它的主要应用对象是文字信息,利用密码算法实现文字信息的加密和解密。其中替代密码和置换密码是具有代表性的两种古典密码算法。
实验环境
PC机,C或C++编译环境
实验内容和步骤
根据实验原理部分对替代密码算法的介绍,同时查找和学习相关知识,自己创建明文信息,并选择一个密钥,编写替代密码算法的实现程序,实现加密和解密操作。
对于替换密码,在本实验分别实现了移位密码和维吉尼亚密码,其中维吉尼亚算法中能够对文本文件进行加密和解密操作。
移位密码
程序流程图:
开始
开始
2
2
输入密文
输入密文c
输入1或2
1
1
输入密钥k
输入密钥k
输入明文m
输入密钥k
输入密钥k
j=0
c[j]=(c[j]-k-‘a’+26)%26+’a’j++
c[j]=(c[j]-k-‘a’+26)%26+’a’
j++
i=0
m[i]=(m[i]+k-‘a’)%26+’a’
m[i]=(m[i]+k-‘a’)%26+’a’
i++
c[j]=’\0’
c[j]=’\0’
否
否
否m
否
m[i]=’\0’0
是
是
是输出明文
是
输出明文m
输出
输出密文c
结束
结束
算法设计:
实现加密的过程中,先输入明文m,明文以字符串的形式储存在数组中,再输入密钥k,密钥范围为1-25,加密函数encrypt对明文m中的字符进行逐个加密E(m)=(m+k)mod26。解密时先输入需要解密的密文c,密文以字符串的形式储存在数组中,再输入相对应的密钥k,解密函数decrypt对密文c中的字符进行逐个解密D(c)=(c-k)mod26。该算法中时间复杂度为O(n)。
测试结果截图:
维吉尼亚密码
程序流程图:
开始
开始
2
2
输入密文
输入密文c
输入1或2
1
1
输入密钥k
输入密钥k
输入明文m
输入密钥k
输入密钥k
i=0
l=k
l=k的长度
i=0
i=0
j=0
j=0
l=k
l=k的长度
c[i]=(c[i]-k[j]
c[i]=(c[i]-k[j]-‘a’+26)%26+’a’,
i++,j++
j=0
m[i]=(m[i]+k[j]-‘a’)%26+’a’,
m[i]=(m[i]+k[j]-‘a’)%26+’a’,
i++,j++
否j
否
j0
是否j
是
否
jl
否c[i]=’\0’
否
c[i]=’\0’
是
是
否m
否
m[i]=’\0’0
是
是
是输出
是
输出明文m
输出
输出密文c
结束
结束
算法设计:
加密过程中,先输入明文m,明文以字符串的形式储存在数组中,再输入密钥k,维吉尼亚密码在移位密码的基础上增大了密钥空间,密钥以字符串的形式储存于数组中,加密函数encrypt按照密钥的字符循环对明文m中的字符进行逐个加密。解密时先输入需要解密的密文c,密文以字符串的形式储存在数组中,再输入相对应的密钥k并储存在数组中,解密函数decrypt对密文c中的字符进行逐个解密。该算法中时间复杂度为O(n)。
测试结果截图:
对字符串加密:
对文本文件加密:
根据实验原理部分对置换密码算法的介绍,同时查找和学习相关知识,自己创建明文信息,并选择一个密钥,编写置换密码算法的实现程序,实现加密和解密操作。
该置换算法可以对文本文件进行加密解密操作。
程序流程图:
开始
开始
2
2
输入密文
输入密文c
输入1或2
1
1
输入密钥k
输入密钥k
输入明文m
算出明文
算出明文的行数列数并存入二维数组
输入密钥k
算出
算出明文的行数列数并存入二维数组
算出反向
算出反向置换函数
对
对二维数组中的密文进行两次列置换
算出
算出置换函数
将二维数组中的字符串放入一维数组
将二维数组中的字符串放入一维数组
对二维数组中的明文进行两次列置换
将
将二维数组中的字符串放入一维数组
输出
输出明文m
输出
输出密文c
结束
结束
算法设计:
实现置换密码加密过程,先输入明文m,明文以字符串的形式储存在数组中,再输入密钥k,密钥以字符串的形式储存于数组中,若明文不能被密钥整除,则在明文后随机添加字母使其能够被密钥整除。对密钥字符串进行冒泡排序,根据密钥中字母得出置换函数f,将明文m存入二维数组,可以选择需要进行置换的次数
您可能关注的文档
- 作物育种学总论第5章第五章杂交育种.ppt
- 使用CSS样式表设置丰富的文字效果.ppt
- 佛教文化旅游案例研究指南 -灵山、普陀山、滇池.pptx
- 佤族舞蹈鉴赏PPT.ppt
- 使用IBM Rational PurifyPlus测试J2EE应用程序.doc
- 你做的每一件事,.ppt
- 使用浏览器浏览网页.ppt
- 佳兆业广东项目介绍.pptx
- 供应商SV培训文档.ppt
- 使用Dreamweaver制作简单页面.pptx
- 2024年建筑施工安全专项整治工作方案范文 .pdf
- 2024年康复医学会工作要点范文.pdf
- 2024年江西省上饶市企业人力资源管理师之四级人力资源管理师考试内部题库精品(基础题).docx
- 语文课前即兴演讲稿(31篇).docx
- 2024年新疆阿克苏地区企业人力资源管理师之四级人力资源管理师考试a4版.docx
- 2024年开展电动自行车专项整治工作总结8篇 .pdf
- 2024年度师德述职报告8篇 .pdf
- 2024年江西省上饶市企业人力资源管理师之一级人力资源管理师考试大全(有一套).docx
- 2024年江西省赣州市企业人力资源管理师之一级人力资源管理师考试完整题库含答案(综合题).docx
- 2024年志愿的服务心得(10篇) .pdf
最近下载
- 智慧大厅指挥中心整体建设方案.pptx
- 2.1六上科学《我们的地球模型》教学课件.ppt VIP
- 职业生涯发展展示 (修改版).pptx
- 建筑工程承包施工合同纠纷代理词(原告方).docx
- 电力拖动自动控制系统——运动控制系统第5版阮毅、陈伯时课后习题解答答案.docx
- (2024更新)国开电大《小学语文教学研究》形考任务1答案.pdf VIP
- 2023年华北电力大学(北京)计算机科学与技术专业《计算机网络》科目期末试卷B(有答案).docx VIP
- 大学思政课件中国梦.pptx
- 部编版小学道德与法治五年级上册第四单元测试卷含答案(共2套).pdf VIP
- 落实全面从严治党方面存在的问题及整改措施【10篇】.docx VIP
文档评论(0)