文章目录

  • 穷举密钥搜索
  • 频率统计破解
    • Step1:确定密钥长度
      • 方法一:Kasiski测试法
      • 方法二:重合指数法
    • Step2:确定密钥字相对位移
      • 重合互指数
    • Step3:穷搜密钥字
  • 例题
  • 文件链接

穷举密钥搜索

 只适用于小的密钥空间

频率统计破解

自然语言英文中个字母的概率如下:

Step1:确定密钥长度

方法一:Kasiski测试法

  原理:密文中出现两个相同字母组,它们所对应的明文字母相同的可能性很大,这样的两个密文字母组之间的距离可能为密钥长度的整数倍

方法二:重合指数法

  原理:自然语言(英语)的重合指数约为0.065,且单表代换不会改变该值

  定义:设x=x1x2……xn是含有n个字母的串,则在x中随机选择两个元素且这两个元素相同的概率为:

  猜测密钥长度:假设密钥长度为d,提取相同密钥字加密的密文,测试其重合指数:

   若果猜测正确,则重合指数接近0.065

   否则,字符串表现得更加随机,一般在0.038~0.065之间

Step2:确定密钥字相对位移

重合互指数

  设X=x1x2……xn,Y=y1y2……ym,分别为长度为n和m的串,其重合互指数为从X与Y中分别随机选出一个元素且两个元素相同的概率。

  考虑不同密钥字加密后密钥串的重合互指数:

其中s表示密文分组对应的密钥字母的相对位移。

经过多位前辈的计算,当s为正确相对位移值时,该重合互指数的值应该趋向于0.065。

Step3:穷搜密钥字

  确定密钥字之间关系式基础上,穷举搜索26种可能。

例题

密文:krkpewxvftksopztecxvbuhfvycgxouflihoffptrcwffwhkcevxhiuzfposdvccyctpmjtbfymllctiwxtacsmjmoncwdnawjrwtjgjsuystvbxgvcmgczbqecllttfkjlacpfttjgeegtbvkfpmhjzqaxhvvpgxoeychrcwumchhyigixhqdciawunmjerefkekcozqttznfdjlopuyqhjgrjawcpfrgxhwiljgrgiycrqkiajfgvrlrxgkkghdbqnliaovzrltgafslacjvjexrwjrdzsvruprttfkwxfgrlstznnmjerdvjdlhkwwdngjfsawgjfunhitjcaykgrptzicibtwrcpycwbkxfibrqemivotvwdnotvldmvgicshbqkztmfqlzaxrqekntqefscmbqkfxguyzjaaorgccmcovrwxbckgdgonrqhxadcclbznjfdpzgegtgqawygxkgcjiasofqiecxvbdyageztjikvrxymqlapghcbcrtfgfdnhitjcaytqiknlsnwgrtbpfrlkwvvycraqicqnhpfrwbbizliasyfpawqqljslhqgktmccumgxmqlsemcvycsxovy

密钥:crypto

明文:

I am alive here, my beloved, for the reason to adore you.Oh!How anxious I have been for you and how sorry I am about all you must have suffered in having no news from us.May heaven grant that this letter reaches you. Do not write to me, this would compromise all of us and above all,do not return underany circumstances. It is known that it was youwhohelped us to get away from here and all would belostif you should show yourself.We are guarded day and night. Ido not care you are not here. Do not be troubled on my account. Nothing will happen to me. The national assemble willshow leniency. Farewell the most loved of men. Be quiet if you can take care of yourself.For myself I cannot write any more, but nothing in the world could stop me to adore youp to the death.

文件链接

https://download.csdn.net/download/Qtuanqi/16634721

[密码学] 破解维吉尼亚密码相关推荐

  1. 【密码学】破解维吉尼亚密码(C++代码实现)

    问题简述 维吉尼亚密码是使用一系列凯撒密码组成密码字母表的加密算法,属于多表密码的一种简单形式. 在一个凯撒密码中,字母表中的每一字母都会作一定的偏移,例如偏移量为3时,A就转换为了D.B转换为了E- ...

  2. 使用Python破解维吉尼亚密码

    维吉尼亚密码是一种经典的多表密码系统,原理是通过一系列的凯撒密码加密增加其破解难度.维吉尼亚使用起来非常简单,只需要指定一串移位序列即可.但破解起来却非常困难,被称为"不可破解的密码&quo ...

  3. 密码学之维吉尼亚密码

    密码学浅谈 密码学五元组:明文(P),密文(C),密钥(K),加密算法(E),解密算法(D),S={P,C,K,E,D} 密码学的信息安全系统目标:C,I,A C(Confidentiality):机 ...

  4. 密码学笔记——维吉尼亚密码

    维吉尼亚密码 一.简介 维吉尼亚密码是使用一系列凯撒密码组成密码字母表的加密算法,属于多表密码的一种简单形式. 二.加密算法 直接拿例子来说,比如我要加密一段明文        明文:THISISTO ...

  5. 几分钟学会密码学(一)——维吉尼亚密码

    1.维吉尼亚密码加密原理: 26个英文字母(a-z)对应26个个自然数(0-25),也就是a对应0,b对应1,c对应2,以此类推. 2.维吉尼亚密码加密方法: 假设明文信息是abcd,密码是ab,那么 ...

  6. 维吉尼亚密码破解过程

    维吉尼亚密码破解过程 问题分析 利用重合指数攻击破解密钥长度 维吉尼亚密码加解密算法的python3实现 给定明文,进行维吉尼亚加密,将密文传给破解密钥的程序 破解维吉尼亚密码密钥长度的python3 ...

  7. 古典密码之“维吉尼亚密码”

    简述 维吉尼亚密码是在代换密码(即单表代换)基础上,衍生出来的多表代换密码. 与单表代换相同,维吉尼亚密码也采用明文字母与密钥字母(即26字母表)间建立一一对应关系. 但是不同的是,单表代换密码中一旦 ...

  8. 维吉尼亚密码加解密与破解

    实验目的 1.进一步理解维吉尼亚密码的加解密原理 2.进一步理解维吉尼亚密码的缺陷和利用方法 3.提高编程实践能力 实验要求 1.实现维吉尼亚加解密函数 2.破解维吉尼亚加密的密文 实验步骤 1.维吉 ...

  9. 古典密码之维吉尼亚密码实验

    学习目标: 维吉尼亚密码是古典密码中非常具有代表的例子.本实验要求用高级语言编写和调试一个简单的维吉尼亚密码实现及解密程序,通过本实验可以加深理解维吉尼亚密码原理. 预备知识: 人们在单一恺撒密码的基 ...

最新文章

  1. mysql(五)查询缓存
  2. 汇编程序-更灵活的定位内存地址方法
  3. 整理javascript操作文件说明:读写文件
  4. VC++ _T()宏学习
  5. Python网络爬虫--BeautifulSoup库的基本元素
  6. spring 事务笔记(四)
  7. 两个Oracle JDK的故事
  8. VIVO怎么创建计算机快捷方式,vivo手机快捷键怎么调出来
  9. java split 坑_Java坑锦集一 - split函数
  10. 机器学习技法2-Dual Support Vector Machine
  11. 华为天才少年-廖明辉
  12. linux服务器如何备份成镜像,Linux下rsync 数据镜像备份
  13. 旭荣管理软件怎么修改小票内容_美萍超市管理软件——让管理回归轻松
  14. C语言按位取反~的简单理解
  15. 2018年秋季学期课表
  16. 【MYSQL】学习笔记
  17. 给表格加上横向、纵向滚动条并对滚动条进行美化
  18. python字符串前加字母u或者r区
  19. 如何打包Google扩展程序
  20. linux6.5 xmanager配置,CentOS6.5安装Xmanager远程桌面

热门文章

  1. java jmail_java jmail
  2. 2020港澳台iptv直播软件_用什么便签软件准时提醒开学第一课2020直播开始?
  3. 安装mysql提示找不到msv_安装mysql服务时提示“找不到msvcp140.dll”
  4. linux 查询线程是否结束_批量随机键值查询测试
  5. 2025年全球结构化布线市场预计将达到165亿美元
  6. 夏季机房空调预警,出现故障了怎么办?
  7. 问答|数据中心运维管理VIP学习群
  8. 多元函数严格凹 海塞矩阵正定_海森矩阵的应用:多元函数极值的判定
  9. Python之fastai:fastai库的简介、安装、使用方法之详细攻略
  10. Python之sklearn:LabelEncoder函数简介(编码与编码还原)、使用方法、具体案例之详细攻略