希尔密码(加密、解密、破解)

简介

希尔密码是运用基本矩阵论原理的替换密码,由Lester S. Hill在1929年发明。

每个字母当作26进制数字:A=0, B=1, C=2… 一串字母当成n维向量,跟一个n×n的矩阵相乘,再将得出的结果模26。(注意用作加密的矩阵(即密匙)在 必须是可逆的,否则就不可能解码。只有矩阵的行列式和26互质,才是可逆的。)

例子

用希尔密码对明文串 x = ecnu 进行加密,

密钥矩阵:

加密

密文向量 = 明文向量 * 密钥矩阵 (mod 26)
1.先将明文串对应英文字母编码表进行数字转化 4 2 13 20
然后两两一组写成矩阵形式:

2.接下来开始加密

得到密文矩阵后,按照分组对应的向量转成字母:
SUWJ

解密

解密和加密类似,先通过刚刚的方法计算出 模 m 的逆矩阵,然后用 A−1 再进行解密:

求逆矩阵的方法:

实际二阶矩阵的逆矩阵就是:


mod 26后 ,然后用上述相同的方法转换成明文串即可。

三阶同理:

分析与破解

例子:
假设已知明文friday利用n=2的希尔密码加密,得到密文VYUZSM,求秘钥K

n等于2,说明把friday分成3段,矩阵是2*2的

根据字母与整数的对应关系:
(5,17)---->(21,24),
(8,3)---->(20,25),
(0,24)—>(18,12),得到

用(0,24)—>(18,12)验证K:


正确!得到密钥K就随便破解密文了

希尔密码(加密、解密、破解)相关推荐

  1. python中字符移位加密_1.1 移位密码加密解密python实现

    例题1.1 移位密码加密解密 1.1.使用穷尽密钥搜索法破译如下利用移位密码加密的密文: ESPESTCOPIPCNTDPYPPODACZRCLXXTYR. 1.1答案: K=11,明文序列为: th ...

  2. php加密密码解析,php密码加密解密

    php密码加密解密 龙行    PHP    2020-3-19    1002    0评论 function MD5PWD($data) { $pwd = md5($data); //把密码分割成 ...

  3. 维吉尼亚密码加密/解密在线工具

    维吉尼亚密码加密/解密在线工具,工具链接:http://www.atoolbox.net/Tool.php?Id=856 维吉尼亚密码是在凯撒密码基础上产生的一种加密方法,它将凯撒密码的全部25种位移 ...

  4. 凯撒密码加密解密C语言详细代码

    凯撒密码加密解密C语言详细代码 凯撒密码 又叫循环移位密码.它的加密方法,就是将明文中的每个字母用此字符在字母表中后面第k个字母替代.它的加密过程可以表示为下面的函数: E(m)=(m+k) mod ...

  5. 凯撒密码加密解密——Java代码(密码学)

    凯撒密码加密解密--Java代码(密码学) 凯撒密码: 恺撒密码(英语:Caesar cipher),或称恺撒加密.恺撒变换.变换加密,是一种最简单且最广为人知的加密技术.它是一种替换加密的技术,明文 ...

  6. VIP品会密码加密解密与登录

    上班都快一周了,一直想更新,奈何小伙还没有从假期的快乐中缓过来,今天终于耐下心来更新一小篇.抠一下某品会的JS代码,接着使用抠取的JS代码加密密码进行登录.友情提示:为避免不必要的纠纷,本文中所有网址 ...

  7. 单表代换密码加密解密

    单表代换密码加密解密原理: 单表代换是指英文字母在进行密码编码替换的时候,有一张对照表,也就是说,对于每一个字母,都是唯一对应的,如: 26个源字母表为:abcdefghijklmnopqrstuvw ...

  8. C++实现古典密码-凯撒密码加密解密算法

    文章目录 第一部分 Caesar密码简介 1.1 基本思想 1.2 历史沿革 第二部分 Caesar密码的C++实现 第一部分 Caesar密码简介 1.1 基本思想 在密码学中,恺撒密码(英语:Ca ...

  9. vue.js 密码加密_破解Windows、Linux和Mac操作系统密码的理论研究

    本文介绍了Windows.Linux和Mac等操作系统下密码认证机制,并在此基础上,分别介绍了Windows系统密码破解.Linux系统密码破解.MacOSX登录屏保密码破解.3种操作系统下破解系统密 ...

  10. Python-摩斯密码加密解密

    文章目录 前言 一.摩斯密码表 [1]. encode.txt [2]. decode.txt 二.代码 前言 密码表只写了英文字母和数字,在百度的时候发现不同地方写的符号转换方式不大一样. 你也可以 ...

最新文章

  1. 【Android 事件分发】ItemTouchHelper 事件分发源码分析 ( 绑定 RecyclerView )
  2. Vue深入学习1—mustache模板引擎原理
  3. SpringBoot中模板引擎thymeleaf
  4. delphi 查找指定后缀名的函数_Excel明星函数系列2:掌握这5类VLOOKUP查询方法,搞定查询...
  5. 共享单车为什么这么重?
  6. python pandas常用函数_python:pandas常用功能函数操作
  7. 因为计算机丢失user32.dll,电脑丢失USER32.dll怎么处理
  8. android手机如何截屏,安卓手机怎么截屏(华为手机的几种截图方法)
  9. Hbase——练习4
  10. 使用transition实现图片轮播效果
  11. 《运营力——微信公众号 设计 策划 客服 管理 一册通》一一1.1 创博公众号团队简介...
  12. mysql自定义函数示例代码,以及属性介绍
  13. 业内人士来说一下炫云渲染和渲染100云渲染使用真实感受吧
  14. 题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
  15. Win7 64位下Kindle4、闪迪Cruzer BladeU盘等无法安装驱动问题的解决方法
  16. UDP 打洞 java demo
  17. 2017暑假训练国庆小假期总结
  18. 以前使用海康设备进行播放时出现的问题
  19. 基于MATLAB机器视觉的水果分级检测系统的设计
  20. win10 linux uef系统,win10 uefi 模式装archlinux

热门文章

  1. 多种矿石混合的抗干扰矿石对讲机
  2. 科幻计算机类小说,短篇科幻小说推荐 | 黄金时代的五部科幻杰作
  3. 周育如的音标口诀大全_音标记忆顺口溜(48个),快速记忆音标口诀!
  4. php文章重复度检测,有哪些可以检测文章原创度的工具,避免文章重复度过高
  5. 【HDL系列】半减器、全减器和减法器原理和设计
  6. UE4 人物运动基本设置
  7. sprintf函数用法详解
  8. Spring实战(第4版)第1章 Spring之旅
  9. CEFSharp崩溃分析及解决办法
  10. 虚拟机用Linux安装软件