希尔密码(hill)的解密与加密
hill的理论
hill密码涉及到了一部分线性代数方面的求解,在做题时要注意求解逆序数。
加密:Bi = A * ai(mod 26)
解密:ai = A^-1 * Bi
这里的 A 为加密密钥,ai 是根据分组大小定的一个列矩阵,Bi 是求出的加密密文,A^-1是解密密钥。
在字母转换数字的时候A可以从0开始也可以从1开始,在我给的例题中采用的是A从1开始计算
举例
.hill密码分组大小m=2,加密密钥(3, 5;20,19)。(分号表示换行)
(1)请加密“good”
(2)请写出解密密钥
(3)请解密你刚刚加密的密文
根据题,要求找出good所对应的数字分别为:7,15,15,4
因为分组大小为2,则a1={7;15},a2={15;4}
因为A={3,5;20,19},得出B1={18;9},B2={13;12}。
找出对应的密文:RIML。
A^-1 = |A^-1| * {d,-b;-c,a}。
因为|A| * |A^-1|(mod 26)同余1.|A|=9,
则|A^-1|=3.
所以解密密钥为:A^-1 = {5,11;18,9}
a1={5,11;18,9}{18;9]={7;15}
a2={5,11;18,9}{13;12}={15;4}
对应的密文为GOOD。
希尔密码(hill)的解密与加密相关推荐
- C++希尔密码Hill Cipher算法(附完整源码)
希尔密码Hill Cipher的算法 希尔密码(Hill Cipher) 的算法的完整源码(定义,实现,main函数测试) 希尔密码(Hill Cipher) 的算法的完整源码(定义,实现,main函 ...
- Visual Studio 2019下用 C# 实现 Hill2 二阶希尔密码 的加密、解密 GUI界面
1.什么是Hill2 什么是Hill密码 希尔密码(Hill)使用每个字母在字母表中的顺序作为其对应的数字,即 A=0,B=1,C=2 等,然后将明文转化为 n 维向量,跟一个 n × n 的矩阵相乘 ...
- C++希尔密码的实现以及运用
希尔密码(Hill Cipher)是运用基本矩阵论原理的替换密码,由Lester S. Hill在1929年发明.每个字母当作26进制数字:A=0, B=1, C=2... 一串字母当成n维向量,跟一 ...
- CTF-Crypto 密码原理及解密方法
CTF-Crypto 密码原理及解密方法 文章目录 CTF-Crypto 密码原理及解密方法 推荐综合加解密网址 一.常见密码格式 二.古典密码 凯撒密码 仿射密码 埃特巴什码 培根密码 棋盘密码 希 ...
- CTF-Crypto-各种密码原理及解密方法
CTF-Crypto-各种密码原理及解密方法 一.常见密码格式(太懒了,待补充) 二.古典密码 凯撒密码 仿射密码 埃特巴什码 培根密码 棋盘密码 希尔密码 维吉尼亚密码 摩尔斯密码 栅栏密码(普通型 ...
- 希尔密码在CTF中应用—记一道题
CTF-crypto 解题思路来自:i春秋的大佬们 https://bbs.ichunqiu.com/forum.php?mod=viewthread&tid=52687&highli ...
- md5加密后怎么解密_手机怎么解密已加密的PDF?不会还有人不知道这招吧?
出门在外的时候,突然想到还要帮领导清除PDF的密码,但又没有随身携带电脑,但这时候我们要庆幸手上还有部手机,因为手机也可以解决清除PDF密码的问题.我们只需要下载PDF快转APP,并叫领导发PDF密码 ...
- php acs解密,RSA 加密及php实现
RSA加密简介: RSA加密算法是最常用的非对称加密算法,CFCA在证书服务中离不了它.但是有不少新手对它不太了解.下面仅作简要介绍.RSA是第一个比较完善的公开密钥算法,它既能用于加密,也能用于数字 ...
- Java实现Base64、DES、AES、RSA加解密以及加密方式之间的区别
Base64 加密, 这个其实不可以算作加密方法,它可以看作是一种编码方式,它的用途只是二进制数字和字符串进行相互转化. Base64是网络上最常见的用于传输 8Bit字节码的编码方式之一,是一种基于 ...
- Bcrypt密码生成及解密工具
在一次授权测试中碰到一种密文,当时无法解出明文,当结束后对这种难缠的加密算法进行了学习,因此产生了这篇文章. 密文形式如下图所示: 经查询为Bcryp加密,而且同一明文密码经过加密后生成的密文不是相同 ...
最新文章
- kmeans聚类选择最优K值python实现
- 京东玩三角恋,结果“擦枪走火”
- css制作圆角矩形,CSS绘制圆角矩形图形的效果
- js判断是否是ie浏览器
- ORA-12170: TNS:Connect timeout occurred
- 我10年来的学习和生活
- c++以空格分开的输入数组_技术贴,MATLAB矩阵与数组汇总讲解!
- 到底什么是“云网融合”?
- 4.Kong入门与实战 基于Nginx和OpenResty的云原生微服务网关 --- Kong 的基本功能
- ORB-SLAM3 一张图梳理mono_kitti.cc主流程
- 交叉熵损失函数(Cross Entropy Error Function)与均方差损失函数(Mean Squared Error)
- Xcode快捷键—图文详解
- ARM指令集发展概述
- 台式计算机开关电源原理图,计算机开关电源基本结构及原理介绍
- PE格式文件修复过程
- 智能手机传感器到底有什么用
- 如何在线批量进行PDF拆分
- 使用开源软件Prometheus监控企业内部应用
- linux下的office 速度慢,针对Libreoffice卡顿奇慢的怪病,这里有一味特效药
- ehcache 缓存丢失_求助,EhCache缓存中数据失效的问题!
热门文章
- mybatis查询数据返回实体对象和返回集合的易错点
- luoguP1600 天天爱跑步(NOIP2016)(主席树+树链剖分)
- 微信小程序怎么做成网店
- 打开辣妈萌宝很好地承载了宝宝所有的幸福记录
- 02uec++多人游戏【角色创建和动作生成】
- html css画五角星,CSS怎么画五角星?
- python二维分布图怎么画_Python可视化二维高斯分布
- 在Linux(Ubuntu 16.04)下手动下载固定版本或老版本nvidia显卡驱动
- 数据结构-队列-数组队列
- 【观察】“新基建”下的数据中心,未来的演进与趋势