实验一古典密码算法
- 格式:doc
- 大小:86.00 KB
- 文档页数:6
个人收集整理资料, 仅供交流学习, 勿作商业用途
1 / 6 实验一 古典密码加密算法
【实验目的】
一般的密码学实验要求学习者编写实现加密法或分析工具的程序,但这势必要占用学习者较多的时间去调试程序,减少真正学习密码学的时间。分析加密程序CAP是一款密码加密与分析的软件,包含了古典密码学和现代密码学常用的密码算法和分析工具。学习者可以利用CAP更好地学习加密和密码分析技术,而不必花费大量的时间调试程序。b5E2RGbCAP
【实验目的】
1、理解代替密码学加密过程;
2、掌握置换密码学加密过程;
3、自行设计恺撒密码 4、掌握经典加密分析软件CAP的使用并验证古典密码加密算法; 【实验环境】 1、基于Windows的PC机一台;设计设计恺撒密码 Cipher )加密工具时的软件环境根据学生自己选择的平台安装,本设计软件平台可以是C语言,Visual C++,Visual C#,Visual Basic均可,主要是实现恺撒密码 2、CAP加密与分析软件 【实验内容】 个人收集整理资料, 仅供交流学习, 勿作商业用途 2 / 6 1、以C#平台为例说明恺撒密码 程序主界面如图1所示: 程序源码 using System。 ……(省略部分生成代码> namespace Encryption { publicpartialclassForm1 : Form { int key。 privatestring Encryption(int key,refstring InputString>RTCrpUDGiT { StringBuilder str = newStringBuilder(>。 char ch,chtemp。 int temp。 for(int i=0。i { ch = InputString[i]。 if ((int>ch >=97 && (int>ch <=122> { temp = (((int>ch - 97> + key> % 26 + 65。 chtemp = (char>temp。 } elseif ((int>ch >=65 && (int>ch <=90> 个人收集整理资料, 仅供交流学习, 勿作商业用途 3 / 6 { temp = (((int>ch - 65> + key> % 26 + 97。 chtemp = (char>temp。 } else chtemp = ch。 str.Append(chtemp>。 } return str.ToString(>。 } public Form1(> { InitializeComponent(>。 } privatevoid btnEncryption_Click(object sender, EventArgs e>5PCzVD7HxA { string str = txtPlaintext.Text。 txtCiphertext.Text = Encryption(key, ref str>。 } privatevoid txtKey_MouseEnter(object sender, EventArgs e>jLBHrnAILg { lblInfo.Visible = true。 } privatevoid txtKey_MouseLeave(object sender, EventArgs e>xHAQX74J0X { lblInfo.Visible = false。 } privatevoid txtKey_Leave(object sender, EventArgs e>LDAYtRyKfE { try { key = int.Parse(txtKey.Text>。 if (key <= 0 || key > 25> thrownewIndexOutOfRangeException("Key值应在1至25之间!">。 } catch (Exception pe> { 个人收集整理资料, 仅供交流学习, 勿作商业用途 4 / 6 MessageBox.Show("\n输入Key值错误,请单击【确定】重新输入!\n\n" + pe.Message, "错误信息", MessageBoxButtons.OK, MessageBoxIcon.Error>。Zzz6ZB2Ltk txtKey.Focus(>。 txtKey.Text = ""。 } } privatevoid txtPlaintext_Leave(object sender, EventArgs e>dvzfvkwMI1 { if (txtPlaintext.Text == ""> { MessageBox.Show("明文串不能为空,单击【确定】输入!">。 lblPlaintext.Focus(>。 } } privatevoid btnClose_Click(object sender, EventArgs e>rqyn14ZNXI { this.Close(>。 } } } 2、双击运行CAP4.exe,出现软件主界面,如图2所示: <1)一般使用过程 先在“Plaintext”中输入要加密的明文,或在“Ciphertext”中输入要解密的密文,然后选择菜单“Ciphers”中的“加密算法”→“输入密钥”→“进行加密或解密运算”。相应密文或回复的明文将分别出现在“Ciphertext”或“Plaintext”中,如果是对密码进行分析,则在“Ciphertext”中输入要分析的密文后,利用“Analysis Tools”中的分析工具进行分析。EmxvxOtOco 个人收集整理资料, 仅供交流学习, 勿作商业用途 5 / 6 <2)恺撒密码 密钥K=4时,对应明文:data security has evolved rapidly。 密文: 先进行手工推演,然后调用CAP软件,查看相应密文,并与手动加密的密文进行比较。 <2)对于密钥K=computer,明文=Crytographic Standards 密文: 先进行手工推演,然后调用CAP软件,查看相应密文,并与手动加密的密文进行比较。 【实验总结】 根据实验情况自行填写。 【实验注意事项】 应该先进行手动加密,然后再使用工具软件比对结果,有无差异。 申明: 个人收集整理资料, 仅供交流学习, 勿作商业用途 6 / 6 所有资料为本人收集整理,仅限个人学习使用,勿做商业用途。