实验一古典密码算法

  • 格式: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 所有资料为本人收集整理,仅限个人学习使用,勿做商业用途。