




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精品文档 1欢迎下载 实验实验 1 1 古典密码算法 古典密码算法 一 实验目的 通过编程实现替代密码算法和置换密码算法 加深对古典密码体系的了解 为以后深 入学习密码学奠定基础 二 实验原理 古典密码算法曾被广泛应用 大都比较简单 它的主要应用对象是文字信息 利用密 码算法实现文字信息的加密和解密 其中替代密码和置换密码是具有代表性的两种古 典密码算法 1 替代密码 替代密码算法的原理是使用替代法进行加密 就是将明文中的字符用其他字符替代后 形成密文 例如 明文字母 a b c d 用 D E F G 做对应替换后形成密文 最早的替代密码是由 Julius Caesar 发明的 Caesar 恺撒 密码 又叫循环移位密 码 它的加密过程可以表示为下面的函数 E m m k mod n 其中 m 为明文字母在字母表中的位置数 n 为字母表中的字母个数 k 为密钥 E m 为密 文字母在字母表中对应的位置数 例如 对于明文字母 H 其在字母表中的位置数为 8 设 k 4 则按照上式计算出来的 密文为 L 计算过程如下 E 8 m k mod n 8 4 mod 26 12 L 解密算法是 m D L L k mod 26 2 置换密码 置换密码算法的原理是不改变明文字符 只将字符在明文中的排列顺序改变 从而实 现明文信息的加密 置换密码又称为换位密码 矩阵换位法是实现置换密码的一种常用方法 它将明文中的字母按照给定的顺序安排 在一个矩阵中 然后又根据密钥提供的顺序重新组合矩阵中的字母 从而形成密文 例如 明文为 attack begins at five 密钥为 cipher 将明文按照每行 6 个字母的形式排在 矩阵中 形成如下形式 attack begins atfive 根据密钥 cipher 中各字母在字母表中出现的先后顺序 得到给定的一个置换 f 1 4 5 3 2 6 因此有 密钥 145326 明文 attack begins atfive 根据上面的置换 将原有矩阵中的字母按照第 1 列 第 4 列 第 5 列 第 3 列 第 2 列 第 6 列的顺序排列 则有下面的形式 精品文档 2欢迎下载 aacttk binges aivfte 从而得到密文 abatgftetcnvaiikse 其解密过程是根据密钥的字母数作为列数 将密文按照列 行的顺序写出 再根据由 密钥给出的矩阵置换产生新的矩阵 从而恢复明文 三 实验环境 PC 机 C 或 C 编译环境 四 实验内容和步骤 1 替代算法 1 根据实验远离部分对替代密码算法的介绍 创建明文信息 并选择一个密钥 k 编写替代密码算法的实现程序 实现加密和解密操作 替代密码包括多种类型 如单表替代密码 多明码替代密码 多字母替代密码 多表替代密码等 2 结果截图 3 流程图 精品文档 3欢迎下载 开始 创建明文信息 输入密钥 加密操作 解密操作 结束 2 置换算法 1 置换密码算法的原理是不改变明文字符 只将字符在明文中的排列顺序改变 从 而实现明文信息的加密 置换密码有时又称为换位密码 矩阵换位法是实现置 换密码的一种常用方法 它将明文中的字母按照给的顺序安排在一个矩阵中 然 后用根据密钥提供的顺序重新组合矩阵中字母 从而形成密文 2 实验截图 精品文档 4欢迎下载 3 精品文档 5欢迎下载 开始 创建明文信息 输入密钥 加密操作 解密操作 结束 1 回答问题 试分析两种密码算法的安全性 以及如何改进 替代密码中使用特定的公式将结果加密并得到结果 以此并加以加密和解密 算法比较简 单 置换密码中使用二维数组对信息进行加密和解密 这中工作使信息安全性更好一些 2 本次实验的体会总结 了解古典密码算法并不代表能写出来程序 除了写程序要注意的各个细节 还要将脑海里 的想法转化为流程图并用 c 语言实现 感觉做出的程序并不是很好 替代算法简单一点 置换算法花费了大量的时间 还只是勉强成功 意识到自己太弱 还需要付出更多的努力 替代密码 替代密码 include include include include define N 500 int main 精品文档 6欢迎下载 int i 0 k m n l char str1 N str2 N C M K K is key textbackground RED textcolor LIGHTGREEN clrscr printf This is a code password program n printf Please input proclaimed in writing M n gets str1 输入要加密的明文 M printf Please input the key K int n scanf d 输入密钥 K m strlen str1 测试明文的长度 printf The M length is d n m printf ciphertext C is n n for i 0 i96 if n64 if n 0 n 26 n l char n 97 printf c l str2 i l str2 i 0 精品文档 7欢迎下载 printf n nThe C length is d strlen str2 printf When the ciphertext is s nThe password program is n n str2 m strlen str2 for i 0 i96 if n64 if n 0 n 26 n l char n 97 printf c l str1 i 0 getch return 0 置换算法置换算法 include include include include include include include include define define N N 100100 intint main main intint i j lenK lenM m n temp i j lenK lenM m n temp intint T N T N charchar K N M N C N Temp1 N Temp2 N Temp3 N K N M N C N Temp1 N Temp2 N Temp3 N textbackground GREEN textbackground GREEN 精品文档 8欢迎下载 textcolor RED textcolor RED clrscr clrscr printf Thisprintf This isis a a substitutionsubstitution cipher n cipher n printf Pleaseprintf Please inputinput thethe M n M n 输入明文输入明文 M M gets M gets M printf Pleaseprintf Please inputinput thethe K n K n 输入密钥输入密钥 K K gets K gets K lenK strlen K lenK strlen K lenM strlen M lenM strlen M 测设长度测设长度 m lenM lenK m lenM lenK n lenK n lenK 定义矩阵的长和宽定义矩阵的长和宽 for i 0 i lenK i for i 0 i lenK i 对密钥进行数字排序对密钥进行数字排序 temp 0 temp 0 for j 0 j lenK j for j 0 j lenK j if int K i int K j if int K i int K j temp 1 temp 1 T i lenK temp T i lenK temp printf dprintf d T i T i 输出各字符对应的数字顺序输出各字符对应的数字顺序 printf n nFirst n n printf n nFirst n n for i 0 i m i for i 0 i m i 根据密钥将明文排列成矩阵根据密钥将明文排列成矩阵 for j 0 j n j for j 0 j n j Temp1 i lenK j M i lenK j Temp1 i lenK j M i lenK j printf cprintf c Temp1 i lenK j Temp1 i lenK j printf n printf n Temp1 lenM 0 Temp1 lenM 0 printf nSecond n n printf nSecond n n 进行第一次置换进行第一次置换 for i 0 i lenK i for i 0 i lenK i for j 0 j m j for j 0 j m j Temp2 j lenK i Temp1 j lenK T i 1 Temp2 j lenK i Temp1 j lenK T i 1 精品文档 9欢迎下载 Temp2 lenM 0 Temp2 lenM 0 for i 0 i m i for i 0 i m i for j 0 j lenK j for j 0 j lenK j printf cprintf c Temp2 i lenK j Temp2 i lenK j printf n printf n printf nThird n n printf nThird n n 进行第二次置换进行第二次置换 for i 0 i lenK i for i 0 i lenK i for j 0 j m j for j 0 j m j Temp3 j lenK i Temp2 j lenK T i 1 Temp3 j lenK i Temp2 j lenK T i 1 Temp3 lenM 0 Temp3 lenM 0 for i 0 i m i for i 0 i m i for j 0 j lenK j for j 0 j lenK j printf cprintf c Temp3 i lenK j Temp3 i lenK j printf n printf n printf Theprintf The substitutionsubstitution ciphercipher is n is n
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 酒店海鲜供应合作协议5篇
- 吉林省2025年吉林省省直事业单位选拔招聘工作人员(7号)笔试历年参考题库附带答案详解
- 南川区2025二季度重庆南川区事业单位考核招聘73人笔试历年参考题库附带答案详解
- 北京市2025国家信息中心面向应届毕业生招聘16人笔试历年参考题库附带答案详解
- 万荣县2025山西运城市万荣现代农业产业示范区市场化选聘高级管理人员1人笔试历年参考题库附带答案详解
- 2025甘肃省金羚集团药业有限公司招聘18人笔试参考题库附带答案详解
- 2025广西梧州市龙投人力资源有限公司招聘13人笔试参考题库附带答案详解
- 2025年河南新乡市某国有供应链公司招聘供应专员岗位6人笔试参考题库附带答案详解
- 卸煤安全培训计划课件
- 2025年国航股份新疆分公司“三地招聘”活动专项招聘5人笔试参考题库附带答案详解
- 标杆地产五星级酒店精装修标准
- 脑器质性精神障碍患者的护理查房
- (高清版)TDT 1013-2013 土地整治项目验收规程
- 初中数学分层作业设计举例-有理数
- 西方经济学简史
- 给小学生科普化学
- 信息管理系统的设计与实现
- 新闻报道与舆论导向
- 局放实验操作规程
- 透明土实验技术的研究进展
- 戴海崎心理与教育测量第4版课后习题答案
评论
0/150
提交评论