《信息安全与密码学》实验报告姓名:学号:学院:班级:成绩:2014年12月31日目录1移位密码 (44)1.1算法原理 (44)1.2实现过程 (44)1.2.1 程序代码 (44)1.2.2运行界面 (77)2置换密码 (88)2.1算法原理 (88)2.2实现过程 (99)2.2.1 程序代码 (99)2.2.2运行界面 (1111)3 维吉尼亚密码 (1212)3.1算法原理 (1212)3.2实现过程 (1212)3.2.1程序代码 (1212)3.2.1运行界面................. 错误!未定义书签。
错误!未定义书签。
4 Eulid算法....................... 错误!未定义书签。
错误!未定义书签。
4.1算法原理................... 错误!未定义书签。
错误!未定义书签。
4.2实现过程................... 错误!未定义书签。
错误!未定义书签。
4.2.1程序代码................. 错误!未定义书签。
错误!未定义书签。
4.2.2运行界面................. 错误!未定义书签。
错误!未定义书签。
5 Eulid扩展算法................... 错误!未定义书签。
错误!未定义书签。
5.1算法原理................... 错误!未定义书签。
错误!未定义书签。
5.2实现过程................... 错误!未定义书签。
错误!未定义书签。
5.2.1程序代码................. 错误!未定义书签。
错误!未定义书签。
5.2.2运行界面................. 错误!未定义书签。
错误!未定义书签。
6 素性检验 ........................ 错误!未定义书签。
错误!未定义书签。
6.1算法原理................... 错误!未定义书签。
错误!未定义书签。
6.2.1程序代码................. 错误!未定义书签。
错误!未定义书签。
6.2.2运行界面................. 错误!未定义书签。
错误!未定义书签。
7 用DES算法完成数据的加密和解密.. 错误!未定义书签。
错误!未定义书签。
7.1算法原理................... 错误!未定义书签。
错误!未定义书签。
7.2算法程序................... 错误!未定义书签。
错误!未定义书签。
7.2.1 算法的功能类代码......... 错误!未定义书签。
错误!未定义书签。
7.2.2 窗体类代码............... 错误!未定义书签。
错误!未定义书签。
7.3运行界面................... 错误!未定义书签。
错误!未定义书签。
8 RSA算法的计算机实现............. 错误!未定义书签。
错误!未定义书签。
8.1算法原理................... 错误!未定义书签。
错误!未定义书签。
8.2算法程序................... 错误!未定义书签。
错误!未定义书签。
8.2.1 算法功能类代码........... 错误!未定义书签。
错误!未定义书签。
8.2.2 算法窗体代码............. 错误!未定义书签。
错误!未定义书签。
8.3运行界面................... 错误!未定义书签。
错误!未定义书签。
9 PGP加密软件的应用............... 错误!未定义书签。
错误!未定义书签。
9.1软件介绍................... 错误!未定义书签。
错误!未定义书签。
9.2安装过程及主要界面......... 错误!未定义书签。
错误!未定义书签。
9.3完成的主要功能............. 错误!未定义书签。
错误!未定义书签。
9.3.1密钥的生成、传播和废除... 错误!未定义书签。
错误!未定义书签。
9.3.2数字签名................. 错误!未定义书签。
错误!未定义书签。
9.3.3验证签名................. 错误!未定义书签。
错误!未定义书签。
9.3.4对文件加密和解密(创建一个自解压文件)错误!未定义书签。
错误!未定义书签。
10 信息安全与密码学上机实践体会... 错误!未定义书签。
错误!未定义书签。
1移位密码1.1算法原理若取3=K ,则此密码体制通常叫做凯撒密码(Caesar Cipher ),因为它首先为儒勒·凯撒所使用。
使用移位密码可以用来加密普通的英文句子,但是首先必须建立英文字母和模26剩余之间的一一对应关系:如25,,1,0↔↔↔Z B A Λ。
将其列表如下:1.2实现过程1.2.1 程序代码using System;using System.Collections.Generic;using ponentModel;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, KeyPressEventArgs e){}private void button1_Click(object sender, EventArgs e){textBox3.Clear();aa[0] = "a"; aa[1] = "b"; aa[2] = "c"; aa[3] = "d"; aa[4] = "e";aa[5] = "f"; aa[6] = "g"; aa[7] = "h"; aa[8] = "i"; aa[9] = "j";aa[10] = "k"; aa[11] = "l"; aa[12] = "m"; aa[13] = "n"; aa[14] = "o";aa[15] = "p"; aa[16] = "q"; aa[17] = "r"; aa[18] = "s"; aa[19] = "t";aa[20] = "u"; aa[21] = "v"; aa[22] = "w"; aa[23] = "x"; aa[24] = "y";aa[25] = "z";string[] aa2 = new string[26];aa2[0] = "A"; aa2[1] = "B"; aa2[2] = "C"; aa2[3] = "D"; aa2[4] = "E";aa2[5] = "F"; aa2[6] = "G"; aa2[7] = "H"; aa2[8] = "I"; aa2[9] = "J";aa2[10] = "K"; aa2[11] = "L"; aa2[12] = "M"; aa2[13] = "N"; aa2[14] = "O"; aa2[15] = "P"; aa2[16] = "Q"; aa2[17] = "R"; aa2[18] = "S"; aa2[19] = "T"; aa2[20] = "U"; aa2[21] = "V"; aa2[22] = "W"; aa2[23] = "X"; aa2[24] = "Y"; aa2[25] = "Z";try{#regionint a = Convert.ToInt16(textBox1.Text);string tx = textBox2.Text;int le = tx.Length;int[] bb = new int[le];string[] txt = new string[le];for (int i = 0; i < le; i++){txt[i] = tx[i].ToString();}//获得明文string[] txt2 = new string[le];for (int j = 0; j < le; j++){for (int m = 0; m < 26; m++){if (txt[j] == aa[m]){bb[j] = (m + a) % 26;txt2[j] = aa2[bb[j]];}}}//获得密文string tx2 = "";for (int n = 0; n < le; n++){tx2 += txt2[n];}textBox3.Text = tx2;#endregion}catch{MessageBox.Show("请输入正确格式的秘钥以及明文");}}private void button2_Click(object sender, EventArgs e){textBox6.Clear();string[] aa = new string[26];aa[0] = "a"; aa[1] = "b"; aa[2] = "c"; aa[3] = "d"; aa[4] = "e";aa[5] = "f"; aa[6] = "g"; aa[7] = "h"; aa[8] = "i"; aa[9] = "j";aa[10] = "k"; aa[11] = "l"; aa[12] = "m"; aa[13] = "n"; aa[14] = "o";aa[15] = "p"; aa[16] = "q"; aa[17] = "r"; aa[18] = "s"; aa[19] = "t";aa[20] = "u"; aa[21] = "v"; aa[22] = "w"; aa[23] = "x"; aa[24] = "y";aa[25] = "z";aa2[0] = "A"; aa2[1] = "B"; aa2[2] = "C"; aa2[3] = "D"; aa2[4] = "E";aa2[5] = "F"; aa2[6] = "G"; aa2[7] = "H"; aa2[8] = "I"; aa2[9] = "J";aa2[10] = "K"; aa2[11] = "L"; aa2[12] = "M"; aa2[13] = "N"; aa2[14] = "O"; aa2[15] = "P"; aa2[16] = "Q"; aa2[17] = "R"; aa2[18] = "S"; aa2[19] = "T"; aa2[20] = "U"; aa2[21] = "V"; aa2[22] = "W"; aa2[23] = "X"; aa2[24] = "Y"; aa2[25] = "Z";try{int a = Convert.ToInt16(textBox4.Text);string tx = textBox5.Text;int le = tx.Length;string[] txt = new string[le];for (int i = 0; i < le; i++){txt[i] = tx[i].ToString();}//获得密文string[] txt2 = new string[le];for (int j = 0; j < le; j++){for (int m = 0; m < 26; m++){if (txt[j] == aa2[m]){int n = m - a;if (n <= 0){n = n + 26;txt2[j] = aa[n % 26];}else{txt2[j] = aa[n % 26];}}}}string tx2 = "";for (int n = 0; n < le; n++){tx2 += txt2[n];}textBox6.Text = tx2;}catch{MessageBox.Show("请输入正确的秘钥以及密文");}}}}1.2.2运行界面2置换密码2.1算法原理在置换密码的情形下,我们也可以认为P和C是26个英文字母。