欢迎来到天天文库
浏览记录
ID:16414165
大小:415.00 KB
页数:17页
时间:2018-08-09
《编写古典加解密算法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、编写古典加解密算法西安交通大学计算机教学实验中心1实验简要介绍使用凯撒和维吉尼亚加密算法编程实现将明文转换成密文。使用凯撒和维吉尼亚解密算法编程实现将密文转换成明文。2实验目的理解网络安全、加密/解密的概念掌握几个典型古典加解密算法的应用3实验设备及软件所需设备一台计算机实验所需软件及工具编程工具不限4实验原理单表代换密码对于一个给定的加密密钥,明文信息空间中的每一个元素将被代换为密文消息空间中的唯一元素。凯撒密码加密算法Ek(m)=m+k=cmodN解密算法D(c)=c-k=mmodN其中N=26
2、,k=35实验原理多表代换密码以一系列(两个以上)代换表一次对明文消息空间中的明文消息元素进行代换的加密方法。维吉尼亚密码加密算法Eki(mi)=mi+ki=cimodN加密算法Dki(ci)=ci-ki=mimodN其中ki属于K是密钥,mi属于M是明文,ci属于C是密文。6实验内容说明使用凯撒加密算法编程实现将明文转换成密文使用凯撒解密算法编程实现将密文转换成明文使用维吉尼亚加密算法编程实现将明文转换成密文使用维吉尼亚解密算法编程实现将密文转换成明文7实验步骤使用凯撒加密算法编程实现将明文转换成
3、密文,如下图所示。要求:键入的明文允许任意字母,允许大小写混用,长度不限。8实验提示用c语言实现加密的部分代码,仅供参考:intt=int(str[i]-‘a’);//计算该字母在字母表中的序号t=(t+3)%26;//用该字母后3个序号的字母str[i]=(char)(t+‘a’);//将该序号转换成字母注意:该部分程序只是对小写字母的转换。大写字母的转换请自行设计其算法。9实验步骤使用凯撒解密算法编程实现将密文转换成明文,如下图所示。要求:密文由用户指定,可以出现大小写字母,长度不限。10实验提
4、示用c语言实现解密的部分代码intt=int(str[i]-‘a’);//计算该字母在字母表中的序号t=(t-3+26)%26;//用该字母前3个序号的字母str[i]=(char)(t+'a');//将该序号转换成字母注意:该部分程序只是对小写字母的转换,大写字母的转换请自行设计其算法。11实验步骤使用维吉尼亚加密算法编程实现将明文转换成密文,如下图所示。要求:明文由用户指定,可以出现大小写字母,长度不限。密钥长度为5,数值由用户指定。12实验提示用c语言实现加密的部分代码intt=int(str
5、[i]-‘a’);//计算该字母在字母表中的序号t=(t+key[j])%26;//用该字母后key[j]个序号的字母if(++j==5){j=0;}//5个密钥循环使用str[i]=(char)(t+‘a’);//将该序号转换成字母注意:该部分程序只是对小写字母的转换;Key[5]中连续存放了5个密钥。13实验步骤使用维吉尼亚解密算法编程实现将密文转换成明文,如下图所示。要求:密文由用户指定,可以出现大小写字母,长度不限。密钥长度为5,数值由用户指定。14实验提示用c语言实现解密的部分代码intt
6、=int(str[i]-‘a’);//计算该字母在字母表中的序号t=(t-key[j]+26)%26;//用该字母前key[j]个序号的字母if(++j==5){j=0;}//5个密钥循环使用str[i]=(char)(t+‘a’);//将该序号转换成字母注意:该部分程序只是对小写字母的转换;Key[j]中连续存放了5个密钥。15实验习题写出下面加密算法对应的解密算法,并写出明文“IAMAHACKER”对应的密文,分析该加密算法的安全性:将明文的每个字母转换为对应的7比特ASCII码;在每个字母对应
7、的7比特ASCII码的最左边添加比特0;对每个8比特表示的字母,将其前4个比特和后4个比特交换;写下每4个比特对应的十六进制值。16实验报告要求编程实现凯撒加解密算法。在维吉尼亚密码基础上,将密钥的个数改为由用户指定,编程实现加解密算法。完成实验习题。17
此文档下载收益归作者所有