信息安全与密码学上机报告.docx

上传人:小飞机 文档编号:1939773 上传时间:2022-12-27 格式:DOCX 页数:54 大小:3.62MB
返回 下载 相关 举报
信息安全与密码学上机报告.docx_第1页
第1页 / 共54页
信息安全与密码学上机报告.docx_第2页
第2页 / 共54页
信息安全与密码学上机报告.docx_第3页
第3页 / 共54页
信息安全与密码学上机报告.docx_第4页
第4页 / 共54页
信息安全与密码学上机报告.docx_第5页
第5页 / 共54页
点击查看更多>>
资源描述

《信息安全与密码学上机报告.docx》由会员分享,可在线阅读,更多相关《信息安全与密码学上机报告.docx(54页珍藏版)》请在三一办公上搜索。

1、 信息安全与密码学实验报告姓名: 学号: 学院: 班级: 成绩:2014年12月31日 目录1移位密码41.1算法原理41.2实现过程41.2.1 程序代码41.2.2运行界面72置换密码82.1算法原理82.2实现过程92.2.1 程序代码92.2.2运行界面113 维吉尼亚密码123.1算法原理123.2实现过程133.2.1程序代码133.2.1运行界面174 Eulid算法184.1算法原理184.2实现过程184.2.1程序代码184.2.2运行界面195 Eulid扩展算法205.1算法原理205.2实现过程205.2.1程序代码205.2.2运行界面216 素性检验226.1算法

2、原理226.2实现过程226.2.1程序代码226.2.2运行界面247 用DES算法完成数据的加密和解密257.1算法原理257.2算法程序307.2.1 算法的功能类代码307.2.2 窗体类代码327.3运行界面338 RSA算法的计算机实现348.1算法原理348.2算法程序358.2.1 算法功能类代码358.2.2 算法窗体代码368.3运行界面379 PGP加密软件的应用389.1软件介绍389.2安装过程及主要界面389.3完成的主要功能419.3.1密钥的生成、传播和废除419.3.2数字签名459.3.3验证签名479.3.4对文件加密和解密(创建一个自解压文件)4810

3、信息安全与密码学上机实践体会521移位密码1.1算法原理密码体制令。对,任意,定义 以及若取,则此密码体制通常叫做凯撒密码(Caesar Cipher),因为它首先为儒勒凯撒所使用。使用移位密码可以用来加密普通的英文句子,但是首先必须建立英文字母和模26剩余之间的一一对应关系:如。将其列表如下:ABCDEFGHIJKLM0123456789101112NOPQRSTUVWXYZ131415161718192021222324251.2实现过程1.2.1 程序代码using System;using System.Collections.Generic;using System.Componen

4、tModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace mimaxue46.FormsClass public partial class yiwei : Form public yiwei() InitializeComponent(); private void textBox1_KeyPress(object sender, KeyPressEvent

5、Args e) private void button1_Click(object sender, EventArgs e) textBox3.Clear(); string aa = new string26; aa0 = a; aa1 = b; aa2 = c; aa3 = d; aa4 = e; aa5 = f; aa6 = g; aa7 = h; aa8 = i; aa9 = j; aa10 = k; aa11 = l; aa12 = m; aa13 = n; aa14 = o; aa15 = p; aa16 = q; aa17 = r; aa18 = s; aa19 = t; aa2

6、0 = u; aa21 = v; aa22 = w; aa23 = x; aa24 = y; aa25 = z; string aa2 = new string26; aa20 = A; aa21 = B; aa22 = C; aa23 = D; aa24 = E; aa25 = F; aa26 = G; aa27 = H; aa28 = I; aa29 = J; aa210 = K; aa211 = L; aa212 = M; aa213 = N; aa214 = O; aa215 = P; aa216 = Q; aa217 = R; aa218 = S; aa219 = T; aa220

7、= U; aa221 = V; aa222 = W; aa223 = X; aa224 = Y; aa225 = Z; try #region int a = Convert.ToInt16(textBox1.Text); string tx = textBox2.Text; int le = tx.Length; int bb = new intle; string txt = new stringle; for (int i = 0; i le; i+) txti = txi.ToString(); /获得明文 string txt2 = new stringle; for (int j

8、= 0; j le; j+) for (int m = 0; m 26; m+) if (txtj = aam) bbj = (m + a) % 26; txt2j = aa2bbj; /获得密文 string tx2 = ; for (int n = 0; n le; n+) tx2 += txt2n; textBox3.Text = tx2; #endregion catch MessageBox.Show(请输入正确格式的秘钥以及明文); private void button2_Click(object sender, EventArgs e) textBox6.Clear(); st

9、ring aa = new string26; aa0 = a; aa1 = b; aa2 = c; aa3 = d; aa4 = e; aa5 = f; aa6 = g; aa7 = h; aa8 = i; aa9 = j; aa10 = k; aa11 = l; aa12 = m; aa13 = n; aa14 = o; aa15 = p; aa16 = q; aa17 = r; aa18 = s; aa19 = t; aa20 = u; aa21 = v; aa22 = w; aa23 = x; aa24 = y; aa25 = z; string aa2 = new string26;

10、 aa20 = A; aa21 = B; aa22 = C; aa23 = D; aa24 = E; aa25 = F; aa26 = G; aa27 = H; aa28 = I; aa29 = J; aa210 = K; aa211 = L; aa212 = M; aa213 = N; aa214 = O; aa215 = P; aa216 = Q; aa217 = R; aa218 = S; aa219 = T; aa220 = U; aa221 = V; aa222 = W; aa223 = X; aa224 = Y; aa225 = Z; try int a = Convert.ToI

11、nt16(textBox4.Text); string tx = textBox5.Text; int le = tx.Length; string txt = new stringle; for (int i = 0; i le; i+) txti = txi.ToString(); /获得密文 string txt2 = new stringle; for (int j = 0; j le; j+) for (int m = 0; m 26; m+) if (txtj = aa2m) int n = m - a; if (n = 0) n = n + 26; txt2j = aan % 2

12、6; else txt2j = aan % 26; string tx2 = ; for (int n = 0; n le; n+) tx2 += txt2n; textBox6.Text = tx2; catch MessageBox.Show(请输入正确的秘钥以及密文); 1.2.2运行界面2置换密码2.1算法原理在置换密码的情形下,我们也可以认为和是26个英文字母。在移位密码中使用是因为加密和解密都是代数运算。但是在置换密码的情形下,可更简单的将加密和解密过程直接看作是一个字母表上的置换。任取一置换,便可得到一加密函数,见下表(小写字母表示明文,大写字母表示密文):abcdefghijk

13、lmXNYAHPOGZQWBTnopqrstuvwxyzSFLRCVMUEKJDI按照上表应有,等等。解密函数是相应的逆置换。由下表给出:ABCDEFGHIJKLMdlryvohEzxwptNOPQRSTUVWXYZbgfjqnmUskaci因此,等等。置换密码的一个密钥刚好对应于26个英文字母的一种置换。所有可能的置换有26!种,这个数值超过,是一个很大的数。因此,采用穷尽密钥搜索的攻击方法,即使使用计算机,也是计算上不可行的。2.2实现过程2.2.1 程序代码 using System;using System.Collections.Generic;using System.Compon

14、entModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace mimaxue46.FormsClass public partial class zhihuan : Form public zhihuan() InitializeComponent(); private void button1_Click(object sender, EventArgs e

15、) textBox2.Clear(); string aa = new string26; aa0 = a; aa1 = b; aa2 = c; aa3 = d; aa4 = e; aa5 = f; aa6 = g; aa7 = h; aa8 = i; aa9 = j; aa10 = k; aa11 = l; aa12 = m; aa13 = n; aa14 = 0; aa15 = p; aa16 = q; aa17 = r; aa18 = s; aa19 = t; aa20 = u; aa21 = v; aa22 = w; aa23 = x; aa24 = y; aa25 = z; stri

16、ng bb = new string26; bb0=X; bb1=N; bb2=Y; bb3=A; bb4=H; bb5=P; bb6=O; bb7=G; bb8=Z; bb9=Q; bb10=W; bb11=B; bb12=T; bb13=S; bb14=F; bb15=L; bb16=R; bb17=C; bb18=V; bb19=M; bb20=U; bb21=E; bb22=K; bb23=J; bb24=D; bb25=I;/设置密码加密表 string tx = textBox1.Text; int le = tx.Length; string txt = new stringle

17、; for (int m = 0; m le; m+) txtm = txm.ToString(); /明文 string txt2 = new stringle; for (int i = 0; i le;i+) for (int j = 0; j 26; j+) if (txti = aaj) txt2i = bbj; /密文 string tx2 = ; for (int i = 0; i txt2.Length; i+) tx2 += txt2i; this.textBox2.Text = tx2; /还可以使用list private void textBox1_TextChange

18、d(object sender, EventArgs e) private void textBox2_TextChanged(object sender, EventArgs e) private void button2_Click(object sender, EventArgs e) string aa = new string26; aa0 = a; aa1 = b; aa2 = c; aa3 = d; aa4 = e; aa5 = f; aa6 = g; aa7 = h; aa8 = i; aa9 = j; aa10 = k; aa11 = l; aa12 = m; aa13 =

19、n; aa14 = 0; aa15 = p; aa16 = q; aa17 = r; aa18 = s; aa19 = t; aa20 = u; aa21 = v; aa22 = w; aa23 = x; aa24 = y; aa25 = z; string bb = new string26; bb0 = X; bb1 = N; bb2 = Y; bb3 = A; bb4 = H; bb5 = P; bb6 = O; bb7 = G; bb8 = Z; bb9 = Q; bb10 = W; bb11 = B; bb12 = T; bb13 = S; bb14 = F; bb15 = L; b

20、b16 = R; bb17 = C; bb18 = V; bb19 = M; bb20 = U; bb21 = E; bb22 = K; bb23 = J; bb24 = D; bb25 = I; string tx = textBox3.Text; int le = tx.Length; string txt = new stringle; for (int i = 0; i le; i+) txti = txi.ToString(); /密文 string txt2 = new stringle; for(int j=0;jle;j+) for (int m = 0; m 26; m+)

21、if(txtj=bbm) txt2j = aam; /获得明文 string tx2 = ; for (int n = 0; n le;n+ ) tx2 += txt2n; textBox4.Text = tx2; 2.2.2运行界面3 维吉尼亚密码3.1算法原理密码体制 设是一个正整数。定义。对任意的密钥,定义:和以上所有的运算都是在上进行。使用前面所述的方法,对应,则每个密钥相当于一个长度为的字母串,称为密钥字。维吉尼亚密码一次加密个明文字母。例 假设,密钥字为CIPHER,其对应于如下的数字串K(2,8,15,7,4,17)。要加密的明文为:thiscryptosystemisnotse

22、cure将明文串转化为对应的数字,每六个为一组,使用密钥字进行模26下的加密运算如下所示:19 7 8 18 2 17 24 15 19 14 18 24 18 192 8 15 7 4 17 2 8 15 7 4 17 2 821 15 23 25 6 8 0 23 8 21 22 15 20 14 12 8 18 13 14 19 18 4 2 20 17 415 7 4 17 2 8 15 7 4 17 2 8 1519 19 12 9 15 22 8 25 8 19 22 25 19则相应的密文应该为:VPXZGIAXIVWPUBTTMJPWIZITWZT解密时,使用相同的密钥字,进行

23、逆运算即可。维吉尼亚密码的密钥空间大小为,所以即使的值很小,使用穷尽密钥搜索方法也需要很长的时间。例如,当时,密钥空间大小超过,这样的密钥量已经超出了使用手算进行穷尽搜索的能力范围(当然使用计算机另当别论)。3.2实现过程3.2.1程序代码using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;us

24、ing System.Windows.Forms;namespace mimaxue46.FormsClass public partial class weijiniya : Form public weijiniya() InitializeComponent(); private void weijiniya_Load(object sender, EventArgs e) private void button1_Click(object sender, EventArgs e) private void button1_Click_1(object sender, EventArgs

25、 e) #region textBox3.Clear(); string aa = new string26; aa0 = a; aa1 = b; aa2 = c; aa3 = d; aa4 = e; aa5 = f; aa6 = g; aa7 = h; aa8 = i; aa9 = j; aa10 = k; aa11 = l; aa12 = m; aa13 = n; aa14 = o; aa15 = p; aa16 = q; aa17 = r; aa18 = s; aa19 = t; aa20 = u; aa21 = v; aa22 = w; aa23 = x; aa24 = y; aa25

26、 = z; string bb = new string26; bb0 = A; bb1 = B; bb2 = C; bb3 = D; bb4 = E; bb5 = F; bb6 = G; bb7 = H; bb8 = I; bb9 = J; bb10 = K; bb11 = L; bb12 = M; bb13 = N; bb14 = O; bb15 = P; bb16 = Q; bb17 = R; bb18 = S; bb19 = T; bb20 = U; bb21 = V; bb22 = W; bb23 = X; bb24 = Y; bb25 = Z; #endregion try #re

27、gion 秘钥 string tx = textBox1.Text; int le = tx.Length; string txt = new stringle; int txt2 = new intle; for (int i = 0; i le; i+) txti = txi.ToString(); for (int i = 0; i le; i+) for (int j = 0; j 26; j+) if (txti = bbj) txt2i = j; #endregion #region 明文 string tx2 = textBox2.Text; int le2 = tx2.Length; string txt3 = new stringle2; int txt4 = new intle2; for (int i =

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号