版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
s
一
m6
R9
sA
O
aO
W
《信息安全与密码学》实验报告
姓名:________________________
学号:________________________
学院:________________________
班级:
成绩:
2023年12月31日
目录
1移位密码错误!未定义书签。
1.1算法原理.….错误!未定义书签
L2实现过程.....错误!未定义书签
1.2.1程序代码错误!未定义书签
L2.2运营界面.错误!未定义书签
2置换密码........错误!未定义书签
2.1算法原理.....错误!未定义书签
2.2实现过程.....错误!未定义书签
2.2.1程序代码错误!未定义书签
2.2.2运营界面.错误!未定义书签
3维吉尼亚密码........错误!未定义书签
3.1算法原理....错误!未定义书签
3.2实现过程....错误!未定义书签
3.2.1程序代码错误!未定义书签
3.2.1运营界面错误!未定义书签
4Eulid算法.........................................错误!未定义书签。
4.1算法原理.....................................错误!未定义书签。
4.2实现过程.....................................错误!未定义书签。
4.2.1程序代码...................................错误!未定义书签。
4.2.2运营界面...................................错误!未定义书签。
5Eulid扩展算法.....................................错误!未定义书签。
5.1算法原理.....................................错误!未定义书签。
5.2实现过程.....................................错误!未定义书签。
5.2.1程序代码...................................错误!未定义书签。
5.2.2运营界面...................................错误!未定义书签。
6素性检查...........................................错误!未定义书签。
6.1算法原理......................................错误!未定义书签。
6.2实现过程......................................错误!未定义书签。
6.2.1程序代码....................................错误!未定义书签。
6.2.2运营界面...................................错误!未定义书签。
7用DES算法完毕数据的加密和解密....................错误!未定义书签。
7.1算法原理......................................错误!未定义书签。
7.2算法程序.....................................错误!未定义书签。
7.2.1算法的功能类代码..........................错误!未定义书签。
7.2.2窗体类代码.................................错误!未定义书签。
7.3运营界面.....................................错误!未定义书签。
8RSA算法的计算机实现................................错误!未定义书签。
8.1算法原理.....................................错误!未定义书签。
8.2算法程序......................................错误!未定义书签。
8.2.1算法功能类代码.............................错误!未定义书签。
8.2.2算法窗体代码................................错误!未定义书签。
8.3运营界面.....................................错误!未定义书签。
9PGP加密软件的应用..................................错误!未定义书签。
9.1软件介绍.....................................错误!未定义书签。
9.2安装过程及重要界面...........................错误!未定义书签。
9.3完毕的重要功能...............................错误!未定义书签。
9.3.1密钥的生成、传播和废除.....................错误!未定义书签。
9.3.2数字署名...................................错误!未定义书签。
9.3.3验证署名...................................错误!未定义书签。
9.3.4对文献加密和解密(创建一个自解压文献)...错误!未定义书签。
10信息安全与密码学上机实践体会.....................错误!未定义书签。
1移位密码
1.1算法原理
密码体制
令P=C=K=Z26o对0<K<25,任意x,>£226,定义
eK(x)=(x+K)mod26
以及
盛(>)=(y-K)mod26
若取K=3,则此密码体制通常叫做凯撒密码(CaesarCipher),由于它一
方面为儒勒•凯撒所使用。
使用移位密码可以用来加密普通的英文句子,但是一方面必须建立英文字母和
模26剩余之间的一一相应关系:如A—0,8—1,…,Z—25。将其列表如下:
ABCDEFG£JKLM
0123456789101112
N0PQRSTUVWXYZ
13141516171819202122232425
L2实现过程
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();
}
privatevoidtextBoxl_KeyPress(objectsender,KeyPressEventArgse)
}
privatevoidbuttonlClick(objectsender,EventArgse)
textBox3.Clear();
string[]aa=newstring[26];
aa[0]=a”;aa[l]二b〃;aa[2]=aa[3]=〃d〃;aa[4]="e
aa[5]=f”;aa[6]=g〃;aa[7]aa[8]aa[9]=
aa[10]=“k〃;aa[U]T;aa[12]"m〃;aa[13]〃n〃;aa[14]=o
aa[15]"p";aa[16]"q";aa[17]aa[18]"s";aa[19]
aa[20]二u”;aa[21]aa[22]w〃;aa[23]aa[24]=y
aa[25]=z
string口aa2=newstring[26];
aa2[0]〃A〃;aa2[l]="B";aa2[2]〃C〃;aa2[3]D”;aa2[4]
aa2[5]="F";aa2[6]=V;aa2[7]〃H〃;aa2[8]T;aa2[9]
aa2[10]=〃K〃;aa2[ll]="〃;aa2[12]=〃M〃;aa2[13]=〃N〃;aa2[14]="0";
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]=
aa2[25]="Z";
try
(
#region
inta=Convert.ToIntl6(textBoxl.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].ToStringO;
"/获得明文
string[]txt2=newstring[le];
for(intj=0;j<le;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<le;n++)
tx2+=txt2[n];
textBox3.Text=tx2;
ttendregion
catch
MessageBox.Show("请输入对的格式的秘钥以及明文“);
privatevoidbutton2_Click(objectsender,EventArgse)
textBox6.Clear();
string[]aa=newstring[26];
aa[0]="a";aa[l]="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[ll]="1";aa[12]m”;aa[13]"n";aa[14]o
aa[15]=p”;aa[16]=〃q”;aa[17]aa[18]aa[19]
z
aa[20]=V;aa[21]="v";旬22]aa[23]"x";aa[24]y
aa[25]=
string[]aa2=newstring[26];
aa2[0]〃A〃;aa2[l]〃B〃;aa2[2]〃C〃;aa2[3]〃D〃;aa2[4]E〃;
aa2[5]=〃F〃;aa2[6]=〃G〃;aa2[7]〃H〃;aa2[8]T;aa2[9]
aa2[10]="K〃;aa2[ll]=〃L〃;aa2[12]=〃M〃;aa2[13]="N";aa2[14]=〃0〃;
aa2[15]"P〃;aa2[16]〃Q〃;aa2[17]=〃R”;aa2[18]="S";aa2[19]="T
aa2[20]Vz;aa2[21]aa2[22]=〃y;aa2[23]=〃X";aa2[24]=〃Y
aa2[25]二
try
inta=Convert.ToIntl6(textBox4.Text);
stringtx=textBox5.Text;
intle=tx.Length;
string[]txt=newstring[le];
for(inti=0;i<le;i++)
{
txt[i]=tx[i].ToStringO;
}〃获得密文
string[]txt2=newstringEle];
for(intj=0;j<le;j++)
(
for(intm=0;m<26;m++)
(
if(txt[j]==aa2[m])
(
intn=m-a;
if(n<=0)
(
n=n+26;
txt2[j]=aa[n%26];
)
else
(
txt2[j]=aa[n%26];
)
)
)
stringtx2=
for(intn=0;n<le;n++)
{
tx2+=txt2[n];
)
textBox6.Text=tx2;
)
catch
(
MessageBox.Show(”请输入对的的秘钥以及密文”);
)
)
}
L2.2运营界面
Forml
置换定码移位密码维吉尼亚定码Eliud扩展Eliud素性检脸
2置换密码
2.1算法原理
在置换密码的情形下,我们也可以认为P和C是26个英文字母。在移位密
码中使用Z%是由于加密和解密都是代数运算。但是在置换密码的情形下,可更简
朴的将加密和解密过程直接看作是一个字母表上的置换。
任取一置换万,便可得到一加密函数,见下表(小写字母表达明文,大写字母
表达密文):
abcdefghijk1m
XNYAHP0GzQWBT
n0PqrstuVwXyz
SFLRCVMuEKJDI
按照上表应有e.(a)=X,%S)=N,等等。解密函数是相应的逆置换。由下
表给出:
ABcDEFGHIJKLM
d1ryV0hEzXwpt
N0pQRsTuVWXYZ
bgfjqnmuskaci
因此,4(A)=d,4(8)=/,等等。
置换密码的一个密钥刚好相应于26个英文字母的一种置换。所有也许的置换
有26!种,这个数值超过4.0x1(产,是一个很大的数。因此,采用穷尽密钥搜索
的袭击方法,即使使用计算机,也是计算上不可行的。
2.2实现过程
2.2.1程序代码
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Threading.Tasks;
usingSystem.Windows.Forms;
namespacemimaxue46.FormsClass
(
publicpartialclasszhihuan:Form
(
publiczhihuan()
InitializeComponent();
)
privatevoidbuttonl_Click(objectsender,EventArgse)
textBox2.Clear0;
string[]aa:二newstring[26];
aa[0]=aa[l]="b〃;aa[2]=〃c";aa[3]="d〃;aa[4]=〃e〃;
aa[5]=aa[6]="g";aa[7]="h";aa[8]="i";aa[9]="j";
aa[10]="k";aa[ll]="1";aa[12]=aa[13]="n";aa[14]="0
aa[15]二V;aa[16]=〃q〃;aa[17]="r〃;aa[18]=〃s〃;aa[19]二
aa[20]=〃u〃;aa[21]="v";aa[22]="w";aa[23]="x";aa[24]="y
aa[25]="z〃;
string[]bb=newstring[26];
bb[0]=〃X〃;bb[1];bb[2]=;bb[3]="A〃;bb[4]:;
bb[5];bb[6]="0〃;bb[7]=〃G〃;bb[8];bb[9]=V;
bb[10]="W";bb[ll]="B";bb[12]="T";bb[13]="S";bb[14]="F";
bb[151=1";bb[16]=*R*;bb[17]="C";bb[18]="V";bb[19]="M";
bb[20]=〃U〃;bb[21]="E";bb[22]="K";bb[23]="J";bb[24]="D";
bb[25]="I〃;〃设立密码加密表
stringtx=textBoxl.Text;
intle=tx.Length;
string[]txt=newstring[le];
for(intm=0;in<le;m++)
(
txt[m]=tx[m].ToStringO;
}〃明文
string[]txt2=newstring[le];
for(inti=0;i<le;i++)
for(intj=0;j<26;j++)
if(txt[i]=aa[j])
txt2[i]=bb[j];
}
)
}〃密文
stringtx2=
for(inti=0;i<txt2.Length;i++)
(
tx2+=txt2[i];
I
this.textBox2.Text=tx2;
}〃还可以使用list
privatevoidtextBoxl_TextChanged(objectsender,EventArgse)
|
)
privatevoidtextBox2_TextChanged(objectsender,EventArgse)
{
)
privatevoidbutton2_Click(objectsender,EventArgse)
string[]aa=newstring[26];
aa[0]="a";aa[l]=〃b〃;aa⑵="c";aa[3]="d";aa[4]="e";
aa[5]=〃/;aa[6]=〃g〃;aa[7]=〃h〃;aa[8]=〃i〃;aa[9]=〃j〃;
aa[10]=〃k〃;aa[U]=T;aa[12]=aa[13]="n";aa[14]=〃0〃;
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[]bb=newstring[26];
bb[O]=:〃X〃;bb[l]="N〃;bb[2]=丫;bb[3]="A";bb[4]=〃H〃;
bb[5]二〃P〃;bb[6]=〃0”;bb[7]=〃G〃;bb[8]="Z";bb[9]=〃Q〃;
bb[10]=W;bb[ll]=〃B”;bb[12]='T';bb[13]="S";bb[14]="F〃;
bb[15]="〃;bb[16]=〃R〃;bb[17]=〃C〃;bb[18]=〃V〃;bb[19]=
bb[20]="IT;bb[21]="E";bb[22]="K";bb[23]=丁;bb[24]=〃D〃;
bb[25]=T;
stringtx=textBox3.Text;
intle=tx.Length;
string[]txt=newstringEle];
for(inti=0;i<le;i++)
{
txt[i]=tx[i].ToStringO;
}〃密文
string[]txt2=newstringtie];
for(intj=0;j<le;j++)
(
for(intm=0;m<26;m++)
(
if(txt[j]=bb[m])
(
txt2[j]=aa[m];
)
)
”/获得明文
stringtx2
for(intn=0;n<le;n++)
tx2+=txt2[n];
)
textBox4.Text=tx2;
)
}
2.2.2运营界面
3维吉尼亚密码
3.1算法原理
密码体制
设”是一个正整数。定义P=C=K=(Z26)'"。对任意的密钥K=4,%2,…,心),
定义:
6八%,*2,…,x,“)=(当+kt,x2+k2,---,x,„+匕“)
和
服(必,>2,…%)=(%-匕,%一七,…,为F)
I、I•诉右的;彳笛:却旦在77■出彳牛
使用前面所述的方法,相应——25,则每个密钥K相称于一个长度为
〃z的字母串,称为密钥字。维吉尼亚密码一次加密加个明文字母。
例假设加=6,密钥字为CIPHER,其相应于如下的数字串1<=(2,8,15,7,4,17)»要
加密的明文为:
thiscryptosystemisnotsecure
将明文串转化为相应的数字,每六个为一组,使用密钥字进行模26下的加密运算如下所示:
1978182172415191418241819
281574172815741728
211523256~8~023~821221520~1
412818131419184220174
157417281574172815
19191291522825819222519
则相应的密文应当为:VPXZGIAXIVWPUBTTMJPWIZITWZT
解密时,使用相同的密钥字,进行逆运算即可。
维吉尼亚密码的密钥空间大小为26"',所以即使加的值很小,使用穷尽密钥搜索方法也需要
很长的时间。例如,当加=5时,密钥空间大小超过1.1x107,这样的密钥量已经超过了使用手
算进行穷尽搜索的能力范围(当然使用计算机另当别论)。
3.2实现过程
3.2.1程序代码
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Threading.Tasks;
usingSystem.Windows.Forms;
namespacemimaxue46.FormsClass
publicpartialclassweijiniya:Form
publicweijiniyaO
|
InitializeComponent();
)
privatevoidweijiniya_Load(objectsender,EventArgse)
privatevoidbuttonlClick(objectsender,hventArgse)
privatevoidbuttonlClick1(objectsender,EventArgse)
(
ttregion
textBox3.Clear();
string1]aa=newstring[26];
aa[0]="a";aa[l]=W;aa[2]=aa[3]=〃d";aa[4]=〃e〃;
aa[5]="f";aa[6]="g";aa[7]="h";aa[8]="i";aa[9]="j";
z
aa[10]="k";aa[ll]=T;aa[12]=V;aa[13]=〃n〃;aa[14]=
aa[15]=〃p";aa[16]二V;aa[17]="r〃;aa[18]=〃s〃;aa[19]二
aa[20]=〃u〃;aa[21]='V;aa[22]="w";aa[23]=〃x";aa[24]="y〃
aa[25]="z";
string[]bb=newstring[26];
bb[0]="A";bb[l]="B";bb[2]="C";bb[3]="D";bb[4]=
bb[5]="F";bb[6]="G〃;bb[7]="H";bb[8]=T;bb[9]=丁;
bb[10]="K";bb[ll]="L";bb[12]="M〃;bb[13]=〃N〃;bb[14]="0〃
bb[15]="P";bb[16]=V;bb[17]=〃R〃;bb[18]=飞〃;bb[19]=T
bb[20]="U";bb[21]=〃V〃;bb[22]=州〃;bb[23]=〃X〃;bb[24]=〃Y〃
bb[25]=Z〃;
ttendregion
try
^region秘钥
stringtx=textBoxl.Text;
intle=tx.Length;
string[]txt=newstring[le];
int[]txt2=newint[le];
for(inti=0;i<le;i++)
txt[i]=tx[i].ToStringO;
for(inti=0;i<le;i++)
for(intj=0;j<26;j++)
if(txt[i]==bb[j])
txt2[i]=j;
)
}
}
ftendregion
^region明文
stringtx2=textBox2.Text;
intle2=tx2.Length;
string[]txt3=newstring[le2];
int[]txt4=newint[le2];
for(inti=0;i<le2;i++)
txt3[i]=tx2[i].ToStringO;
for(inti=0;i<le2;i++)
{
for(intj=0;j<26;j++)
(
if(txt3[i]==aa[j])
{
txt4[i]=j;
)
)
}
Sendregion
^region加密
int[]txt5=newint[le2];
intm=le2/le;〃得到明文的整数组的个数
for(inti=0;i<(m+1);i++)
{
for(intj=0;j<le;j++)
(
if((j+i*le)<le2)
{
txt5[j+i*le]=(txt4[j+i*le]+txt2[j])%26;
}
)
}
#endregion
#region密文显示
stringf]txt6=newstring[le2];
for(inti=0;i<le2;i++)
txt6[i]=bb[txt5[i]];
stringtx7="〃;
for(inti=0;i<le2;i++)
{
tx7+=txt6[i];
)
textBox3.Text=tx7;
ftendregion
}
catch
(
MessageBox.Show(“请输入对的的秘钥及明文”);
)
}
privatevoidbutton2_Click(objectsender,EventArgse)
{
ttregion
textBox6.Clear();
string[]aa=newstring[26];
aa[0]=〃a〃;aa[l]二〃b〃;aa⑵=〃c〃;aa[3]=〃d〃;aa[4]=V;
aa[5]="f";aa[6]="g";aa[7]="h〃;aa[8]="i";aa[9]="j〃;
aa[10]="k";aa[ll]=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]=aa[23]=〃x〃;aa[24]=〃y〃;
aa[25]=〃z〃;
stringE]bb=newstring[26];
bb[O]=〃A〃;bb[l]=〃B〃;bb[2]=〃C”;bb[3]="D";bb[4]="E";
bb[5]=〃F";bb[6]="G〃;bb[7]=〃H”;bb[8]="I;bb[9]=〃r;
bb[10]="K〃;bb[ll]="L";bb[12]="M〃;bb[13]〃N〃;bb[14]=
bb[15]=〃P〃;bb[16]=V;bb[17]=〃R〃;bb[18]〃s〃;bb[i9]=
bb[20]=〃U";bb[21]=〃V〃;bb[22]=〃W〃;bb[23]"X〃;bb[24]="Y";
bb[25]=〃Z〃;
ttendregion
try
^region秘钥
stringtx=textBox4.Text;
intle=tx.Length;
string[]txt=newstring[le];
int[]txt2=newint[le];
for(inti=0;i<le;i++)
{
txt[i]=tx[i].ToStringO;
}
for(inti=0;i<le;i++)
{
for(intj=0;j<26;j++)
(
if(txt[i]==bb[j])
(
txt2[i]=j;
)
}
}
ftendregion
^region密文
stringtx2=textBox5.Text;
intle2=tx2.Length;
stringf]txt3=newstring[le2];
int[]txt4=newint[le2];
for(inti=0;i<le2;i++)
{
txt3[i]=tx2[i].ToStringO;
)
for(inti=0;i<le2;i++)
{
for(intj=0;j<26;j++)
(
if(txt3[i]=bb[j])
{
txt4[i]=j;
}
)
}
#endregion
^region解密
int[]txt5=newint[le2];
intm=le2/le;〃得到密文的整数组的个数
for(inti=0;i<(m+1);i++)
{
for(intj=0;j<le;j++)
(
if((j+i*le)<le2)
{
intn=(txt4[j+i*le]-txt2[j])%26;
if(n<0)
txt5[j+i*le]=(n+26)%26;
)
else
(
txt5[j+i*le]=n%26;
)
)
}
)
#endregion
^region明文显示
string[]txt6=newstring[le2];
for(inti=0;i<le2;i++)
{
txt6[i]=aa[txt5[i]];
)
stringtx7=””;
for(inti=0;i<le2;i++)
(
tx7+=txt6[i];
)
textBox6.Text=tx7;
#endregion
}
catch
(
McssageBox.Show(“请输入对的格式的秘钥及密文”);
)
)
3.2.1运营界面
Forml
4Eulid算法
4.1算法原理
设〃为正整数,b、q、r是三个整数,假如整数q满足人=aq+r,则gcd(b,a)=gcd(a,r)
设务=a,1•]=/,aib>0反复运用gcd(b,a)=gcd(a,r),可以得到
£=公+M+i+%,°<彳+2<彳+1直到,5+|=0则gcd(a,b)等于最大的非零余
数勺
例如gcd(25,15)=gcd(15,10)=gcd(10,5)=gcd(5,0)=5
4.2实现过程
4.2.1程序代码
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Threading.Tasks;
usingSystem.Windows.Forms;
namespacemimaxue46.FormsClass
(
publicpartialclassFtliud:Form
(
publicEliud()
(
InitializeComponent();
}
privatevoidtextBoxl_TextChanged(objectsender,EventArgse)
{
}
privatevoideulid(TextBoxtextboxl,TextBoxtextbox2)
{
inta,b,r;
r=1;
try
(
a=Convert.ToIntl6(textBoxl.Text);
b=Convert.ToTntl6(textBox2.Text);
while(r!=0)
{
r=a%b;
a=b;
b=r;
textBox3.Text=Convert.ToString(a);
}
catch
(
MessageBox.Show("请对的输入数字”);
}
}
privatevoidbuttonlClick(objectsender,EventArgse)
(
//r=a/b;这是求解整数商部分
eulid(textBoxl,textBox2);
}
)
}
4.2.2运营界面
Form
5Eulid扩展算法
5.1算法原理
假如整数”和万不都为0,那么存在整数尤和y满足ar+by=gcd(4b)
假如gcd(a,b)=l,则人在模。下有乘法逆元,即存在一个x满足bx=1(moda)用扩展欧几
里得算法先求出gcd(a,b),当gcd(a,b)=l时,则返回的y值就是b的乘法逆元。
5.2实现过程
5.2.1程序代码
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Threading.Tasks;
usingSystem.Windows.Forms;
namespacemimaxue46.FormsClass
{
publicpartialclassExtendEliud:Form
(
publicExtendEliud()
(
InitializeComponent();
)
privatevoidbuttonl_Click(objectsender,EventArgse)
(
try
(
inta=Convert.Tolnt32(textBoxl.Text);
intb=Convert..ToInt32(textBox2.Text);
intx=1;
inty=0;
ints=1;
intr=0;
intg=a;
intt=b;
intq,u,v,w;
if(a>=b&&b>0)
while(t>0)
q=g/t;
u=x-q*r;v=y-q*s;w=g-q*t;
x二r;y二s;g=t;
r=u;s=v;t=w;
}
textBox3.Text=Convert.ToString(g);
textBox4.Text=Convert.ToString(x);
textBox5.Text=Convert.ToString(y);
}
else
{
MessageBox.Show("请保证a>=b>0");
)
)
catch
(
MessageBox.Show(”请输入对的格式的数字”);
}
)
}
5.2.2运营界面
Forml
ExtendEliud
求解逆元
6素性检查
6.1算法原理
素数的定义,当一个数只能被1和自身整除时,这个数是素数。
古希腊数学家Eratosthenes(公元前276~公元前195)发现了一种找出不超过一个给定正整数的所有素
数的方法,称为Eratosthenes筛法(SieveofEratosthenes)。所谓筛法就是将不合条件的整数筛
掉,而将符合条件的整数“捉住”。Eratosthenes筛法筛选由大于1并且小于或等于n的所有自然
数组成的数列。
一方面取第一个素数2,划去所有除2以外的2的倍数。在余下的正整数中,大于刚刚取到的素数
2的第一个正整数,即正整数3被认定为素数,其倍数(不涉及自身)同样从数列中划去。这一过程
连续到找到一个大于nn的素数为止
6.2实现过程
6.2.1程序代码
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Threading.Tasks;
usingSystem.Windows.Forms;
namespacemimaxue46.FormsClass
{
publicpartialclassSuxingjianYan:Form
(
publicSuxingjianYan()
|
InitializeComponent();
}
privatevoideulid(intn,inta)
{
intr;
r=1;
a=n/2;
while(r!=0)
(
r=n%a;
n=a;
a=r;
)
privatevoidbutton1Click(objectsender,EventArgse)
iiregion
inta=Convert.ToInt32(textBoxl.Text);
if(a=1||a=2)
(
label2.Text="是素数";
)
for(inti=2;i<a;i++)
(
if(a%i=0)
{
label2.Text="不是素数";
break;
)
else
{
labe12.Text="是素数";
}
)
#endregion
)
}
6.2.2运营界面
Forml
置换空西移位至码维吉尼亚密码扩展Eliud素性检验DES
口一Suxingjian...|Q|[B||S3|
检琥是否为素数
检始数
检蛤
结果
Forml
叫
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 社区抗灾救灾工作总结(3篇)
- 班级体育的活动总结(3篇)
- 无人值守监测信息系统操作使用手册
- 酒店服务员实习总结5篇
- 年产500t O-甲基-N-硝基异脲技改项目可行性研究报告
- 日处理500吨小麦加工项目可行性研究报告
- 质检员个人工作总结5篇
- 设计卫生应急队伍管理办法
- 建筑垃圾运输服务承诺书模板
- 公园设施翻新合同
- 房屋建筑与装饰工程工程量计算规范完整版本
- 义务教育语文课程常用字表 (3500字)
- 集成电路制造中的质量控制和成品率培训课件(共84页).ppt
- 东莞重大产业项目评价实施办法
- 临床思维黄疸待查ppt课件
- 设计变更申请评审表模板
- 光伏电站无功补偿容量分析与计算
- 新课标学习专项讨论记录(共3页)
- 四川传媒学院学生请假审批程序表
- 呼吸科辩证施膳
- ISIS路由协议
评论
0/150
提交评论