信息安全与密码学上机报告Word文档格式.docx

上传人:b****3 文档编号:7074979 上传时间:2023-05-07 格式:DOCX 页数:77 大小:3.34MB
下载 相关 举报
信息安全与密码学上机报告Word文档格式.docx_第1页
第1页 / 共77页
信息安全与密码学上机报告Word文档格式.docx_第2页
第2页 / 共77页
信息安全与密码学上机报告Word文档格式.docx_第3页
第3页 / 共77页
信息安全与密码学上机报告Word文档格式.docx_第4页
第4页 / 共77页
信息安全与密码学上机报告Word文档格式.docx_第5页
第5页 / 共77页
信息安全与密码学上机报告Word文档格式.docx_第6页
第6页 / 共77页
信息安全与密码学上机报告Word文档格式.docx_第7页
第7页 / 共77页
信息安全与密码学上机报告Word文档格式.docx_第8页
第8页 / 共77页
信息安全与密码学上机报告Word文档格式.docx_第9页
第9页 / 共77页
信息安全与密码学上机报告Word文档格式.docx_第10页
第10页 / 共77页
信息安全与密码学上机报告Word文档格式.docx_第11页
第11页 / 共77页
信息安全与密码学上机报告Word文档格式.docx_第12页
第12页 / 共77页
信息安全与密码学上机报告Word文档格式.docx_第13页
第13页 / 共77页
信息安全与密码学上机报告Word文档格式.docx_第14页
第14页 / 共77页
信息安全与密码学上机报告Word文档格式.docx_第15页
第15页 / 共77页
信息安全与密码学上机报告Word文档格式.docx_第16页
第16页 / 共77页
信息安全与密码学上机报告Word文档格式.docx_第17页
第17页 / 共77页
信息安全与密码学上机报告Word文档格式.docx_第18页
第18页 / 共77页
信息安全与密码学上机报告Word文档格式.docx_第19页
第19页 / 共77页
信息安全与密码学上机报告Word文档格式.docx_第20页
第20页 / 共77页
亲,该文档总共77页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

信息安全与密码学上机报告Word文档格式.docx

《信息安全与密码学上机报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《信息安全与密码学上机报告Word文档格式.docx(77页珍藏版)》请在冰点文库上搜索。

信息安全与密码学上机报告Word文档格式.docx

4

5

6

7

8

9

10

11

12

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

13

14

15

16

17

18

19

20

21

22

23

24

25

1.2实现过程

1.2.1程序代码

usingSystem;

usingSystem.Collections.Generic;

usingSystem.ComponentModel;

usingSystem.Data;

usingSystem.Drawing;

usingSystem.Linq;

usingSystem.Text;

usingSystem.Threading.Tasks;

usingSystem.Windows.Forms;

namespacemimaxue46.FormsClass

{

publicpartialclassyiwei:

Form

{

publicyiwei()

InitializeComponent();

}

privatevoidtextBox1_KeyPress(objectsender,KeyPressEventArgse)

privatevoidbutton1_Click(objectsender,EventArgse)

textBox3.Clear();

string[]aa=newstring[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"

string[]aa2=newstring[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

#region

inta=Convert.ToInt16(textBox1.Text);

stringtx=textBox2.Text;

intle=tx.Length;

int[]bb=newint[le];

string[]txt=newstring[le];

for(inti=0;

i<

le;

i++)

txt[i]=tx[i].ToString();

}//获得明文

string[]txt2=newstring[le];

for(intj=0;

j<

j++)

for(intm=0;

m<

26;

m++)

if(txt[j]==aa[m])

bb[j]=(m+a)%26;

txt2[j]=aa2[bb[j]];

}//获得密文

stringtx2="

"

for(intn=0;

n<

n++)

tx2+=txt2[n];

textBox3.Text=tx2;

#endregion

catch

MessageBox.Show("

请输入正确格式的秘钥以及明文"

);

privatevoidbutton2_Click(objectsender,EventArgse)

textBox6.Clear();

inta=Convert.ToInt16(textBox4.Text);

stringtx=textBox5.Text;

if(txt[j]==aa2[m])

intn=m-a;

if(n<

=0)

n=n+26;

txt2[j]=aa[n%26];

else

textBox6.Text=tx2;

请输入正确的秘钥以及密文"

}

1.2.2运行界面

2置换密码

2.1算法原理

在置换密码的情形下,我们也可以认为

是26个英文字母。

在移位密码中使用

是因为加密和解密都是代数运算。

但是在置换密码的情形下,可更简单的将加密和解密过程直接看作是一个字母表上的置换。

任取一置换

,便可得到一加密函数,见下表(小写字母表示明文,大写字母表示密文):

a

b

c

d

e

f

g

h

i

j

k

l

m

n

o

p

q

r

s

t

u

v

w

x

y

z

按照上表应有

,等等。

解密函数是相应的逆置换。

由下表给出:

因此,

置换密码的一个密钥刚好对应于26个英文字母的一种置换。

所有可能的置换有26!

种,这个数值超过

,是一个很大的数。

因此,采用穷尽密钥搜索的攻击方法,即使使用计算机,也是计算上不可行的。

2.2实现过程

2.2.1程序代码

publicpartialclasszhihuan:

publiczhihuan()

textBox2.Clear();

0"

string[]bb=newstring[26];

bb[0]="

bb[1]="

bb[2]="

bb[3]="

bb[4]="

bb[5]="

bb[6]="

bb[7]="

bb[8]="

bb[9]="

bb[10]="

bb[11]="

bb[12]="

bb[13]="

bb[14]="

bb[15]="

bb[16]="

bb[17]="

bb[18]="

bb[19]="

bb[20]="

bb[21]="

bb[22]="

bb[23]="

bb[24]="

bb[25]="

//设置密码加密表

stringtx=textBox1.Text;

txt[m]=tx[m].ToString();

}//明文

i++)

if(txt[i]==aa[j])

txt2[i]=bb[j];

}//密文

txt2.Length;

tx2+=txt2[i];

this.textBox2.Text=tx2;

}//还可以使用list

privatevoidtextBox1_TextChanged(objectsender,EventArgse)

privatevoidtextBox2_TextChanged(objectsender,EventArgse)

bb[0]="

bb[1]="

bb[2]="

bb[3]="

bb[4]="

bb[5]="

bb[6]="

bb[7]="

bb[8]="

bb[9]="

bb[10]="

bb[11]="

bb[12]="

bb[13]="

bb[14]="

bb[15]="

bb[16]="

bb[17]="

bb[18]="

bb[19]="

bb[20]="

bb[21]="

bb[22]="

bb[23]="

bb[24]="

bb[25]="

stringtx=textBox3.Text;

for(intj=0;

j<

le;

j++)

if(txt[j]==bb[m])

txt2[j]=aa[m];

n++)

textBox4.Text=tx2;

2.2.2运行界面

3维吉尼亚密码

3.1算法原理

密码体制

是一个正整数。

定义

对任意的密钥

定义:

以上所有的运算都是在

上进行。

使用前面所述的方法,对应

,则每个密钥

相当于一个长度为

的字母串,称为密钥字。

维吉尼亚密码一次加密

个明文字母。

例假设

,密钥字为CIPHER,其对应于如下的数字串K=(2,8,15,7,4,17)。

要加密的明文为:

thiscryptosystemisnotsecure

将明文串转化为对应的数字,每六个为一组,使用密钥字进行模26下的加密运算如下所示:

1978182172415191418241819

281574172815741728

21152325680238212215201

412818131419184220174

157417281574172815

19191291522825819222519

则相应的密文应该为:

VPXZGIAXIVWPUBTTMJPWIZITWZT

解密时,使用相同的密钥字,进行逆运算即可。

维吉尼亚密码的密钥空间大小为

,所以即使

的值很小,使用穷尽密钥搜索方法也需要很长的时间。

例如,当

时,密钥空间大小超过

,这样的密钥量已经超出了使用手算进行穷尽搜索的能力范围(当然使用计算机另当别论)。

3.2实现过程

3.2.1程序代码

publicpartialclassweijiniya:

publicweijiniya()

privatevoidweijiniya_Load(objectsender,EventArgse)

privatevoidbutton1_Click_1(objectsender,EventArgse)

#region秘钥

stringtx=t

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

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2