首页 > 其他分享 >维吉尼亚密码编码实验

维吉尼亚密码编码实验

时间:2023-05-27 19:22:05浏览次数:32  
标签:编码 加密 py 明文 密码 密钥 维吉尼亚

【实验目的】

熟练掌握多表古典密码维吉尼亚密码加密解密算法原理及实现和应用。

【知识点】

维吉尼亚密码

【实验原理】

维吉尼亚密码(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,系统显示出来代码:
image

查看完毕后,输入:q退出查看。之后对这段代码进行验证,输入以下代码查看到目录下有1个.py文件。
image
cd/root/cryptography/Vigenere/ls
首先执行Vigenere.py来验证加密过程,输入以下命令python2Vigenere.py。
image
进行测试程序是否能实现维吉尼亚密码加密,得到所要的密文,选择要被加密的明文,输入明文和密钥并回车:ouhnkdawfeds
image

进行测试程序是否能实现维吉尼亚密码解密,得到所要的明文,输入密文和密钥并回车:rmkfnvdoiwds
image

安全性分析维吉尼亚密码的密钥空间大小相对于乘法密码,仿射密码有了质的飞跃,因为其秘钥千变万化,可以说很难被人暴力破解,但并不是没有破解之法,在上世纪就已经被人破解完成了,有兴趣的同学可以自行百度一下这段历史。

标签:编码,加密,py,明文,密码,密钥,维吉尼亚
From: https://www.cnblogs.com/magicfat/p/17437198.html

相关文章

  • 仿射密码编码实验
    【实验目的】熟练掌握多表古典密码仿射密码加密和解密算法原理及实现和应用。【知识点】仿射密码【实验原理】单码加密法的另一种形式称为仿射加密法(affinecipher)。在仿射加密法中,字母表的字母被赋予一个数字,例如a=0,b=1,c=2...z=25。仿射加密法的密钥为0-25之间的数字对。仿射......
  • 乘法密码编码实验
    【实验目的】熟练掌握多表古典密码简单乘法加密算法原理及实现和应用。【知识点】乘法密码编码【实验原理】1.乘法密码原理乘法密码是简单代替密码的一种。需要预先知道消息元素的个数,加密的过程其实是相当于对明文消息所组成的数组下标进行加密,然后用明文消息中加密后位置......
  • 工模入口密码
    控制文档:vendor/mediatek/proprietary/packages/apps/Dialer/java/com/android/dialer/dialpadview/SpecialCharSequenceMgr.java因此,进入工模时,dialer界面拨号“”*#2266# 即可查密码 ......
  • elasticsearch-7.12.1集群设置账号密码(亲测可用)
    ES7.7以后的版本将安全认证功能免费开放了。并将X-pack插件集成了到了开源的ElasticSearch版本中。1.在集群的“主节点”上生成证书切换到elastsearch的目录下,使用下列命令生成证书bin/elasticsearch-certutilcert-outconfig/elastic-certificates.p12-pass""2.将生成......
  • 信源编码的代码实现 (香农编码、费诺编码、哈夫曼编码、游程编码、算术编码)
    @[TOC](文章目录)香农编码(1)将信源消息符号按其出现的概率大小依次排列p1≥p2≥...≥pn(2)确定满足下列不等式的整数码长Ki为-log2(pi)≤Ki<-log2(pi)+1(3)为了编成唯一可译码,计算第i个消息的累加概率(4)将累加概率Pi转换成二进制数。(5)取Pi二进数......
  • drf——全局处理异常、接口文档、jwt介绍、based64编码与解码
    全局异常处理原理#对于前端来讲,后端即便报错,也要返回统一的格式,前端便于处理{code:999,msg:'系统异常,请联系系统管理员'}#只要三大认证,视图类的方法出了异常,都会执行一个函数: rest_framework.viewsimportexception_handler#drf只要出了异常就会执行这是drf的配置文件......
  • Windows 密码抓取
    郑重声明:本笔记编写目的只用于安全知识提升,并与更多人共享安全知识,切勿使用笔记中的技术进行违法活动,利用笔记中的技术造成的后果与作者本人无关。倡导维护网络安全人人有责,共同维护网络文明和谐。Windows密码抓取1mimikatz抓取密码注:在Windows系统中抓取NTLMHash值......
  • drf全局异常处理,接口文档,jwt介绍和原理,base64编码和解码
    drf全局异常处理:只要三大认证,视图类的方法出了异常,都会执行一个函数:rest_framework.viewsimportexception_handlersetting:REST_FRAMEWORK={'EXCEPTION_HANDLER':'app01.exception.commn_exception_handler',#导入自己写的异常类的路径}......
  • 全局异常处理,接口文档,JWT,base64编码解码
    1全局异常处理#对于前端来讲,后端即便报错,也要返回统一的格式,前端便于处理{code:999,msg:'系统异常,请联系系统管理员'}#只要三大认证,视图类的方法出了异常,都会执行一个函数:rest_framework.viewsimportexception_handler###注意:exception_handler#如果异常对象是......
  • 阿里云服务器Linux MySQL root 密码忘记了如何操作?
    阿里云服务器Linux MySQL root密码忘记了如何操作?假如我们使用的MySQL数据库忘记的账号密码,是能够土工调节配置文件,然后跳过密码方式登录到数据库的。然后在数据库里面修改账号和密码,通常在默认情况下账号为root具体操作步骤如下:1】编辑MySQL配置文件my.cnf【注】在具体的操作......