【实验目的】
熟练掌握多表古典密码维吉尼亚密码加密解密算法原理及实现和应用。
【知识点】
维吉尼亚密码
【实验原理】
维吉尼亚密码(Vigenèrecipher)是由法国科学家BlaisedeVigenère于1858年提出的一种代换密码,它是多表代换密码的典型代表。维吉尼亚密码引入了“密钥”的概念,即根据密钥来决定用哪一行的密表来进行替换,即根据密钥来决定用哪一行的密表来进行替换,以此来对抗字频统计。维吉尼亚密码的密钥空间大小为26m,所以即使m的值很小,使用穷尽密钥搜索方法也需要很长的时间。例如,当m=5时,密钥空间大小超过1.1*107,这样的密钥量已经超出了使用手算进行穷尽搜索的能力范围。假如以上面第一行代表明文字母,左面第一列代表密钥字母,对如下明文加密:TOBEORNOTTOBETHATISTHEQUESTION当选定RELATIONS作为密钥时,加密过程是:明文第一个字母为T,第一个密钥字母为R,因此可以找到在R行中代替T的为K,依此类推,得出对应关系如下:密钥:RELATIONSRELATIONSRELATIONSREL明文:TOBEORNOTTOBETHATISTHEQUESTION密文:KSMEHZBBLKSMEMPOGAJXSEJCSFLZSY历史上以维吉尼亚密表为基础又演变出很多种加密方法,其基本元素无非是密表与密钥,并一直沿用到二战以后的初级电子密码机上。为了方便的破解维吉尼亚密码,人们整理创造出了多种多样的维吉尼亚表
【软件工具】
操作系统:Centos7
其他:Python2
【实验目标】
查看维吉尼亚密码的源码,执行程序,并使用维吉尼亚密码进行加密和解密,分析安全性。
【实验步骤】
在系统中打开文档进行代码的查看,在Linux系统命令行中输入vim/root/cryptography/Vigenere/Vigenere.py,系统显示出来代码:
查看完毕后,输入:q退出查看。之后对这段代码进行验证,输入以下代码查看到目录下有1个.py文件。
cd/root/cryptography/Vigenere/ls
首先执行Vigenere.py来验证加密过程,输入以下命令python2Vigenere.py。
进行测试程序是否能实现维吉尼亚密码加密,得到所要的密文,选择要被加密的明文,输入明文和密钥并回车:ouhnkdawfeds
进行测试程序是否能实现维吉尼亚密码解密,得到所要的明文,输入密文和密钥并回车:rmkfnvdoiwds
安全性分析维吉尼亚密码的密钥空间大小相对于乘法密码,仿射密码有了质的飞跃,因为其秘钥千变万化,可以说很难被人暴力破解,但并不是没有破解之法,在上世纪就已经被人破解完成了,有兴趣的同学可以自行百度一下这段历史。
标签:编码,加密,py,明文,密码,密钥,维吉尼亚 From: https://www.cnblogs.com/magicfat/p/17437198.html