置换密码与凯撒密码加解密程序实现
凯撒密码算法实现 解释说明以及概述

凯撒密码算法实现解释说明以及概述1. 引言1.1 概述在现代密码学中,凯撒密码是一种最基础的替换密码算法,广泛应用于加密通信和信息保护领域。
该算法通过对明文中的每个字母进行固定位数的偏移来实现加密和解密操作。
本文将详细介绍凯撒密码算法的实现原理、加密过程和解密过程,并探讨其应用领域、安全性分析以及局限性和改进方向。
1.2 文章结构本文共分为五个部分:引言、凯撒密码算法实现、凯撒密码的应用和局限性、实际案例分析与研究成果概述以及结论和总结。
在引言部分,我们将简要介绍文章的概述、目的以及整体结构。
接下来的各个部分将深入探讨凯撒密码算法相关内容,并展示其在不同领域的应用案例和研究成果。
1.3 目的本文旨在向读者介绍凯撒密码算法,并通过对其原理和实现过程的解释,提供一个清晰而全面的认识。
同时,我们还将探讨凯撒密码算法在实际应用中存在的局限性,并提出相应的改进方向。
通过本文的阅读,读者将有机会了解凯撒密码算法在信息安全领域的地位和作用,并对其实际应用提供一定的参考价值。
以上为文章“1. 引言”部分的详细内容。
2. 凯撒密码算法实现:2.1 凯撒密码简介:凯撒密码是一种简单的替换密码,最早由古罗马军事统帅凯撒使用。
它的加密过程基于字母表中的偏移值,即将明文中的每个字母按照固定数量进行平移,得到密文。
凯撒密码是一种单字母替代密码,也被称为移位密码。
2.2 凯撒密码加密过程:凯撒密码的加密过程很简单。
首先,选择一个移位值(也称为偏移量),通常为正整数。
然后,将明文中的每个字母按照移位值进行右移(在字母表中顺时针方向)。
如果超出了字母表的边界,则从另一侧继续计数。
这里是一个示例:假设我们选择了移位值为3。
对于明文中的每个字母,我们将它右移3个位置。
明文: "HELLO"密文: "KHOOR"H →K (右移3位)E →H (右移3位)L →O (右移3位)L →O (右移3位)O →R (右移3位)因此, "HELLO"经过凯撒密码加密后变为"KHOOR"。
凯撒密码工作原理

凯撒密码工作原理凯撒密码是一种古老的加密方法,也是最简单和最早的替换密码之一。
它是由罗马共和国时期的凯撒大帝创造的,他用这种方法来加密他的军事消息。
凯撒密码的原理非常简单:将明文中的每个字母按照一定的规则替换成其他字母,从而生成加密后的密文。
本文将详细介绍凯撒密码的工作原理及其加密解密过程。
一、凯撒密码的工作原理凯撒密码的工作原理基于字母替换。
明文消息中的每个字母被替换成其他字母,从而生成加密后的密文。
凯撒密码的具体替换方法是通过将明文中的每个字母向后移动一个固定的位数来实现。
例如,若将每个字母向后移动三个位置,则'A'将被替换为'D','B'将被替换为'E',以此类推。
凯撒密码的替换规则可以通过一个称为“偏移值”的参数来确定,该参数表示每个字母向后移动的位数。
例如,当偏移值为3时,明文字母'A'将被替换成字母'D',而明文字母'B'将被替换成字母'E'。
这样,只有知道了偏移值的人才能正确地解密密文。
二、凯撒密码的加密过程凯撒密码的加密过程非常简单。
首先,需要选择一个固定的偏移值,通常以正整数表示。
然后将明文中的每个字母按照该偏移值进行替换,从而生成密文。
例如,假设我们选择的偏移值为3。
对于明文消息“HELLO WORLD”,根据凯撒密码的原理,将每个字母向后移动3个位置,我们得到密文为:“KHOOR ZRUOG”。
三、凯撒密码的解密过程要解密凯撒密码,密文的接收方必须知道加密时使用的偏移值。
通过将密文中的每个字母向前移动相同的位数,接收方可以还原出明文消息。
以偏移值为3的密文“KHOOR ZRUOG”为例,通过将每个字母向前移动3个位置,我们得到明文消息:“HELLO WORLD”。
四、凯撒密码的安全性评估虽然凯撒密码非常简单,但在古代起到了较好的加密效果。
然而,凯撒密码对现代密码分析方法来说是非常容易破解的。
凯撒密码解密算法

凯撒密码是一种简单的替换式密码,其加密和解密都是基于字母在字母表中的位置进行的。
加密时,将明文中每个字母的位置加上或减去一个固定的数字,从而得到密文。
解密时,将密文中每个字母的位置减去或加上固定的数字,从而得到原始的明文。
下面是凯撒密码的解密算法步骤:
1. 首先,将密文中的每个字母映射回明文字母表中的位置。
2. 然后,计算明文字母在字母表中的位置,减去偏移量。
3. 最后,将计算出的位置映射回明文字母表中的位置,得到解密后的明文字母。
以字母"M"为例,其在字母表中的位置是10,偏移量为3,则解密过程如下:
1. 将"M"映射回明文字母表中的位置,即10 - 3 = 7。
2. 计算7在明文字母表中的位置,即7 - 3 = 4。
3. 将4映射回明文字母表中的位置,即4 - 3 = 1。
因此,"M"解密后的明文字母为"D"。
需要注意的是,如果密文中的字母在字母表中的位置超过了26,则需要先将其减去26,再进行解密。
例如,"Z"在字母表中的位置是26,解密时需要将其减去26,再进行解密。
加密解密程序实验报告

程序设计实践加密解密程序实验报告课题概述1.1课题目标和主要内容:利用MFC类或者win32编写windows程序,实现加密解密的功能。
1.2系统的主要功能:1.实现用户界面友好的操作。
2.具有对称编码体制,可以实现:i.凯撒密码:能够自定义密钥,自由输入明文,进行加密、解密,在对话框中返回加密和解密后的内容。
ii.置换密码:能够自定义密钥,自由输入明文,经矩阵变换进行加密、解密,在对话框中返回加密和解密后的内容iii.对称加密DES:用MFC调用WIN32编写的程序,在用户友好界面操作的同时显示程序加密,解密结果。
3.具有非对称编码体制:i. RSA加密解密:随机产生p,q,经检验是否互质,若不互质接着产生两个随机数,直到二者互质为止。
自动生成p,q,N及加密解密的密钥,可以自由输入明文,返回加密、解密的内容。
ii. MD5消息摘要计算:用MFC调用WIN32编写的程序,在用户友好界面操作的同时显示程序的加密结果。
4.信息隐藏技术:用LSB在图片(bmp格式,任意位置的图片)中写入信息,读取信息并显示出来,可以擦除信息。
可以自定义密钥。
5. AES加密解密:用MFC调用WIN32编写的程序,在用户友好界面操作的同时显示程序加密,解密结果。
6. 以上的所有对文字加密解密的方法(除LSB以外其余所有方法),都可以用于文件加密,解密,并能够及时保存加密,解密的信息到一个TXT文档,可以存在用户想存放的地方。
7.更多:链接了一个可加密解密,功能更为齐全的网站,若是上述方法不能满足用户需求,可以在程序运行的窗口中点击相应按钮,在联网的条件下进行在线加密解密。
一、系统设计2.1系统总体框架:2.2主要的层次逻辑为:1.界面窗口:改善设计,修正效果图:2.将书上的C++语言改用MFC适应的进行编程,实现相应功能:凯撒加解密3.或者用系统函数调用WIN32编好的程序:4.进行文件操作,加密解密后保存文件。
6.调用函数实现网页链接:2.3设计思想:(1)新建一个基于单文档的MFC应用程序,工程名称为secret。
单(多)表代换密码算法实现实验指导书(王菊香)

实验1 单/多表代换密码算法实现一、实验目的1、编程实现单/多表代换密码算法;2、了解攻击古典加密算法的方法。
二、实验内容编程实现恺撒密码、移位变换、仿射变换和多表代换加/解密算法;三、实验原理及步骤1、单表代换密码(1)恺撒密码恺撒密码的加密和解密代换:()()33mod26,025c E m m m =≡+≤≤()()33mod26,025m D c c c =≡-≤≤(2)移位变换它的加密和解密变换:()()mod26,0,25k c E m m k m k =≡+≤≤()()mod26,0,25k m D c c k c k =≡-≤≤(3)仿射变换它的加密和解密变换:()(),mod26a b c E m am b =≡+()()()1,mod26a b m D c a c b -=≡-其中a ,b 是密钥,为满足0,25a b ≤≤和()gcd ,261a =的整数。
其中()gcd ,26a 表示a 和26的最大公因子,()gcd ,261a =表示a 和26是互素的,1a -表示a 的逆元,即11mod 26a a -⋅≡2、多表代换密码多表代换密码首先将明文M 分为由n 个字母构成的分组12,,,j M M M ,对每个 分组i M 的加密为:()mod ,1,2,,i i C AM B N i j =+=其中(),A B 是密钥,A 是n n ⨯的可逆矩阵,满足()gcd ||,1A N =(||A 是行列式)。
()12,,,T n B B B B =,()12,,,T n C C C C =,()12,,,Ti n M m m m =。
对密文分组i C 的解密为:()()1mod ,1,2,,i i M A C B N i j -≡-=四、测试用例1、仿射变换算法用例设仿射变换的加解密分别是: ()()7,21721mod26c E m m =≡+()()()17,21721mod26m D c c -=≡-对security 加密,对vlxijh 解密。
python实现凯撒密码、凯撒加解密算法

python实现凯撒密码、凯撒加解密算法:计算并输出偏移量为3的凯撒密码的结果注意:密⽂是⼤写字母,在变换加密之前把明⽂字母都替换为⼤写字母def casar(message): # *************begin************# message1=message.upper() #把明⽂字母变成⼤写 message1=list(message1) #将明⽂字符串转换成列表 list1=[] for i in range(len(message1)): if message1[i]==' ': list1.append(message1[i]) #若为空格不⽤移动 eliford(message1[i]) <= 90-3+1: #A-X右移三位 list1.append(chr(ord(message1[i]) + 3)) result = ''.join(list1) #列表转换成字符串 else:list1.append(chr(ord(message1[i]) - (26-3))) #Y和Z回到A、B result = ''.join(list1) print(result) # **************end*************# def main(): message = input() casar(message) if __name__=='__main__': main()测试输⼊:Guet 预期输出:JXHW 测试输⼊:information security 预期输出:LQIRUPDWLRQ VHFXULWB凯撒密码原理:根据输⼊的加解密模式和密钥对消息进⾏加解密。
注意:如果是加密,输出的密⽂是⼤写字母,如果是解密,按照凯撒解密后,转换为⼩写后,输出解密后的明⽂.def casar(mode,message,key): # *************begin************# if mode==1: #加密 message1 = message.upper() # 把明⽂字母变成⼤写message1 = list(message1) # 将明⽂字符串转换成列表 list1 = [] for i in range(len(message1)): if message1[i] == ' ':list1.append(message1[i]) # 若为空格不⽤移动 elif ord(message1[i]) <= 65 +key-1: list1.append(chr(ord(message1[i]) + key)) # 右移key位result = ''.join(list1) # 列表转换成字符串 else: list1.append(chr(ord(message1[i]) - key)) result = ''.join(list1) print(result) elif mode==0: #解密message2 = list(message) # 将明⽂字符串转换成列表 list2 = [] for i in range(len(message2)): if message2[i] == ' ': list2.append(message2[i]) # 若为空格不⽤移动 elif ord(message2[i]) <= 65+ key -1: list2.append(chr(ord(message2[i]) + (26-key))) # 右移三位 result = ''.join(list2) # 列表转换成字符串 else: list2.append(chr(ord(message2[i]) - key)) result = ''.join(list2) result = result.lower() print(result) #**************end*************# def main(): mode = int(input()) # 1代表加密,0代表解密 message = input() #待加密或解密的消息 key =int(input()) # key的范围0~25之间 casar(mode,message,key) if __name__=='__main__': main()测试输⼊: 1 zhang 13 测试输出: MUNAT 测试输⼊: 0 GOHUN 7 测试输出: zhang编写⼀个仿射加解密程序,范围是所有的⼤⼩写字母范围本题需要掌握相关知识1.仿射加密算法,2.扩展的欧⼏⾥得算法。
置换密码算法实验报告(3篇)

第1篇一、实验目的1. 理解置换密码算法的基本原理和特点。
2. 掌握置换密码算法的实现方法。
3. 通过编程实践,加深对置换密码算法的理解。
二、实验原理置换密码算法是一种通过对明文进行字符或位顺序的重新排列来实现加密的算法。
其基本原理是将明文中的字符或位按照一定的规则重新排列,形成密文。
解密时,按照相同的规则将密文恢复为明文。
常见的置换密码算法有:1. 旋转密码(Caesar密码):将明文中的每个字符按照密钥k向右或向左旋转k 个位置。
2. 列置换密码:将明文矩阵中的列按照密钥顺序进行置换。
3. 矩阵换位密码:将明文矩阵中的字符按照密钥顺序进行置换。
三、实验环境1. 操作系统:Windows 102. 编程语言:Python3.8.03. 开发环境:PyCharm四、实验步骤1. 旋转密码实现(1)定义密钥k,表示旋转的位数。
(2)定义明文字符串,将每个字符按照密钥k向右或向左旋转k个位置。
(3)输出密文。
2. 列置换密码实现(1)定义密钥,表示列的置换顺序。
(2)将明文矩阵中的列按照密钥顺序进行置换。
(3)输出密文。
3. 矩阵换位密码实现(1)定义密钥,表示矩阵的置换顺序。
(2)将明文矩阵中的字符按照密钥顺序进行置换。
(3)输出密文。
五、实验结果与分析1. 旋转密码实验结果明文:Hello, World!密钥:3密文:Khoor, Zruog分析:旋转密码将明文中的每个字符向右旋转3个位置,实现了加密。
2. 列置换密码实验结果明文:Hello, World!密钥:[2, 0, 3, 1]密文:oHlel, Wrold!分析:列置换密码将明文矩阵中的列按照密钥顺序进行置换,实现了加密。
3. 矩阵换位密码实验结果明文:Hello, World!密钥:[2, 0, 3, 1]密文:oHlel, Wrold!分析:矩阵换位密码与列置换密码类似,将明文矩阵中的字符按照密钥顺序进行置换,实现了加密。
六、实验总结通过本次实验,我们对置换密码算法有了更深入的了解。
古典加密的两种基本方法

古典加密的两种基本方法
在密码学中,加密是将原始数据转换为未知形式的过程,以隐藏数据的含义和信息。
古典加密是指用于加密数据的传统方法,有两种基本方法:替换密码和置换密码。
1. 替换密码
替换密码是一种将字符或字母替换为其他字符或字母的加密方法。
最简单的替换密码是凯撒密码。
凯撒密码是一种最古老的加密技术,它将字母按照一定的位移量进行替换。
例如,当位移量为3时,A将被替换为D,B将被替换为E等等。
这种方法非常容易被破解,因为只需要尝试每一种可能的位移量,就可以找到正确的解密方法。
更加复杂的替换密码有多种方法,例如多表替换密码、单表替换密码、维吉尼亚密码等等。
这些方法通过不同的替换规则和密钥来增加加密强度。
2. 置换密码
置换密码是一种将原始数据重新排列的加密方法。
最简单的置换密码是栅栏密码。
栅栏密码将原始数据写成一列,然后将这一列按照一定的间隔进行划分,最后按照不同的顺序排列。
例如,当间隔为3时,
原始数据'HELLO WORLD'可以被排列成'HLOOLRWE LD'。
这种方法也容易被破解,因为只需要尝试不同的间隔和排列方式即可。
更加复杂的置换密码有多种方法,例如双重置换密码、多重置换密码、列置换密码等等。
这些方法通过不同的置换规则和密钥来增加加密强度。
总之,古典加密虽然有很多弱点,但是这些基本方法为现代加密技术的发展奠定了基础,也有助于我们更好地理解密码学的基本概念。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
昆明理工大学城市学院学生实验报告(2012 —2013 学年第 2 学期)课程名称:信息安全开课实验室:德信楼308 2013 年5月 8日、5月15日一、实验目的及内容学会置换密码、凯撒密码加解密算法的编程实现二、实验原理及基本技术路线欲加密的数据称为明文,明文经过某种加密算法后转换成密文,加密算法中使用的参数称之为加密密钥;密文经解密算法作用后形成明文,解密算法也有一个密钥,这两个密钥可以相同也可以不相同。
密文在网络传输中可能会被窃听,特别是在无线通信中,所有传输信息是外露的,但是由于窃听者不知道解密的方法,安全可得到相对保护。
密码通信的一条基本原则是,必须假定破译知道通用的加密方法,也就是说加密算法E 是公开的。
这种假设是合理的也是必要的,因为事实上任何一种加密算法都不可能做到完全的保密,其次一个加密算法在被公开之后仍要能经得起攻击才能称得上是一个合格的、强壮加密算法。
另外只有在对加密算法进行不断的研究、攻击和改进中,密码学才能得到发展。
既然加密算法是可能公开的,那么真正的秘密就在于密钥了,也就是说,密钥是必须保密的,它通常是一个字符串,并且可以按需要进行频繁的更换,因此以下将讨论是模型是加密算法是公开的且相对稳定,而作为参数的密钥是保密的,并且是易于更换的。
在这里密钥的长度很重要,因为找到了解密密钥也就破译了密码,而密钥长度越长,密钥空间就越大,破译密钥所花的时间就越长,破译的可能性就越小。
从破译者的角度来看,密码分析所面对的问题有三种主要的变型:当仅有密文而无明文时,我们称之为“只有密文”问题;当已有了一批相匹配的明文与密文时,称之为“已知明文”问题;当能够加密自已所选的明文时,称为“选择明文”。
从这三种角度来看,如密码系统仅能经得起“只有密文”的攻击还不能算是真正的安全,因为破译者完全可能从统计学的角度与一般的通信规律中猜测出一部分的明文,从而就会拥有一些相匹配的明文与密文,从而全部解密。
因此,真安全的密码通信系统应是,即使破译者拥有了一些匹配的明文与密文,也无从破译其它密文。
通常情况下,加密公式C=EK(P)表示明文经加密算法E和加密钥K作用后转换成密文C,并有关系:P=DK(EK(P))。
三、所用仪器、材料(设备名称、型号、规格等或使用软件)硬件要求:最少应该满足一个班一次完成实验的计算机数目(大约60台)。
软件要求:Windows XP作为操作系统,需要WinTC软件。
四、实验方法、步骤(或:程序代码或操作过程)1、置换密码程序代码:#include<stdio.h>#include<math.h>#include<string.h>#define N 100int main(){int i,j,lenK,lenM,m,n,temp;int T[N];char K[N],M[N],C[N],Temp1[N],Temp2[N],Temp3[N];printf("This is a substitution cipher...\n");printf("Please input the M::\n");gets(M);printf("Please input the K::\n");gets(K);lenK=strlen(K);lenM=strlen(M);m=lenM/lenK;n=lenK;for(i=0;i<lenK;i++){temp=0;for(j=0;j<lenK;j++){if((int)K[i]<(int)K[j]){temp+=1;}}T[i]=lenK-temp;printf("%d ",T[i]);}printf("\n\nFirst........\n\n");for(i=0;i<m;i++) {for(j=0;j<n;j++){Temp1[i*lenK+j]=M[i*lenK+j];printf("%c ",Temp1[i*lenK+j]);}printf("\n");}Temp1[lenM]='\0';printf("\nSecond........\n\n");for(i=0;i<lenK;i++){for(j=0;j<m;j++){Temp2[j*lenK+i]=Temp1[j*lenK+T[i]-1];}}Temp2[lenM]='\0';for(i=0;i<m;i++){for(j=0;j<lenK;j++){printf("%c ",Temp2[i*lenK+j]);}printf("\n");}printf("\nThird.......\n\n");for(i=0;i<lenK;i++){for(j=0;j<m;j++){Temp3[j*lenK+i]=Temp2[j*lenK+T[i]-1];}}Temp3[lenM]='\0';for(i=0;i<m;i++){for(j=0;j<lenK;j++){printf("%c ",Temp3[i*lenK+j]);}printf("\n");}printf("The substitution cipher is...\n"); for(j=0;j<lenK;j++){for(i=0;i<m;i++){printf("%c",Temp3[i*lenK+j]); }}return 0;}2、凯撒密码程序代码:五、实验过程原始记录( 测试数据、图表、计算等)1.置换密码置换密码算法的原理是不改变明文字符,而是按照某一规则重新排列消息中的比特或字符顺序,才而实现明文信息的加密。
置换密码有时又称为换位密码。
矩阵换位法是实现置换密码的一种常用方法。
它将明文中的字母按照给定的顺序安排在一个矩阵中,然后用根据密钥提供的顺序重新组合矩阵中的字母,从而形成密文。
例如,明文为attack begins at five ,密钥为cipher ,将明文按照每行6个字母的形式排在矩阵中,形成如下形式:a t t a c kb e g i n s a t f i v e根据密钥cipher 中各个字母在字母表中出现的先后顺序,给定一个置换:123456145326f ⎡⎤=⎢⎥⎣⎦根据上面的置换,将原有居住中的字母按照第1列、第4裂、第5裂、第3裂、第2列、第6列的顺序排列,则有下面的形式:a a c t t kb i n g e s a i vf t e从而得到密文:abatgftetcnvaiikse实验结果截图:(1)输入明文(2)输入秘钥(3)明密文输出2.凯撒密码恺撒密码的替换方法是通过排列明文和密文字母表,密文字母表示通过将明文字母表向左或向右移动一个固定数目的位置。
例如,当偏移量是左移3的时候(解密时的密钥就是3):明文字母表:ABCDEFGHIJKLMNOPQRSTUVWXYZ密文字母表:DEFGHIJKLMNOPQRSTUVWXYZABC使用时,加密者查找明文字母表中需要加密的消息中的每一个字母所在位置,并且写下密文字母表中对应的字母。
需要解密的人则根据事先已知的密钥反过来操作,得到原来的明文。
例如:明文:THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG密文:WKH TXLFN EURZQ IRA MXPSV RYHU WKH ODCB GRJ恺撒密码的加密、解密方法还能够通过同余数的数学方法进行计算。
首先将字母用数字代替,A=0,B=1,...,Z=25。
此时偏移量为n的加密方法即为:E (x)= (x+n) mod 2解密就是:D (x)= (x-n) mod 2运行结果截图:六、实验结果、分析和结论置换密码算法的原理是不改变明文字符,而是按照某一规则重新排列消息中的比特或字符顺序,才而实现明文信息的加密。
置换密码有时又称为换位密码。
矩阵换位法是实现置换密码的一种常用方法。
它将明文中的字母按照给定的顺序安排在一个矩阵中,然后用根据密钥提供的顺序重新组合矩阵中的字母,从而形成密文。
例如,明文为attack begins at five,密钥为cipher,将明文按照每行6个字母的形式排在矩阵中,形成如下形式:根据密钥cipher中各个字母在字母表中出现的先后顺序,给定一个置换:根据上面的置换,将原有居住中的字母按照第1列、第4裂、第5裂、第3裂、第2列、第6列的顺序排列,则有下面的形式:从而得到密文:abatgftetcnvaiikse其解密过程是根据密钥的字母数作为列数,将密文按照列、行的顺序写出,再根据由密钥给出的矩阵置换产生新的矩阵,从而恢复明文。
恺撒密码的基本原理是在密码学中存在着各种各样的置换方式,但所有不同的置换方式都包含2个相同的元素。
密钥和协议(算法)。
凯撒密码的密钥是3,算法是将普通字母表中的字母用密钥对应的字母替换。
置换加密的优点就在于它易于实施却难于破解. 发送方和接收方很容易事先商量好一个密钥,然后通过密钥从明文中生成密文,即是敌人若获取密文,通过密文直接猜测其代表的意义,在实践中是不可能的。
心得体会通过两周的实验,我自己的收获很多。
不仅把之前所学的加密的的知识巩固了,同时也巩固了自己的C语言相关的知。
通过和同学的交流和讨论以及向老师的请教,把之前很多没有弄懂的知识学会了,让我比较系统的掌握了古典密码的原理与程序实现。
在做实验的过程中,不仅要用到课本的知识,还要到网上查阅相关的知识。
这让我大大扩充自己的视野,培养了解决问题的能力。
经常运用C语言编程,大大提高了自己的编程能力和动手能力。
其实作为密码学的基础,各类型的古典密码的原理是很简单的,难的就是你要怎样把那些看起来简单的原理用计算机程序语言进行实现,所以最重要的就是要动手。
在实际的操作中会遇到很多的问题,这是就需要和同学互相商讨,或者是向老师请教,集思广益,想方设法的才能更好的把自己的思想应用到程序中去。
这个过程让我真实的感受到编程给我带来的乐趣,同时所锻炼的动手能力也为我们以后的工作打下了坚实的基础。
在这次实验中也看到了自己的不足之处。
对于C语言的很多知识都忘了,一开始做起来很困难,我想一定是自己以前对相应的知识点了解的不够清楚。
在算法的实现中,对于一些细节方面的东西考虑的不到位,这要感谢各位同学对我的帮助和指导。