希尔密码的Hill cipher(希尔密码转换器怎么使用)

2023-03-13 6:36:23 密码用途 思思

三、Hill cipher(希尔密码)

Hill cipher是1929年提出的一种密码体制。

设d是一正整数,定义。Hill cipher的主要思想是利用线性变换方法,不同的是这种变换是在 上运算。

例如:设d=2,每个明文单元使用 来表示,同样密文单元用 表示,具体的加密中, 将被表示为 的线性组合。

如:

利用线性代数的知识,可得

这个运算在 上进行,即mod26,密钥K一般取一个m*m的矩阵,记为。对明文 ,以 ,则加密算法为:

也可表示成。

世界上几大密码是什么? 都是怎样破译?

没有这几大密码这一说 ,因为密码本身的更新度和保密度使得它不为人知!密码本来就是机密度极高的一种科学技术!常人本来无法触及,更谈不上破译。一般接触密码的人群有:间谍、军队机要人员、文字专家(就像《达芬奇密码》里的博士)、电脑编程员(一般在电脑破译密码这个区域)、还有就是原始部族!我觉得你应该说的是传统密码!比如你说的摩尔斯密码!以下是传统密码:Autokey密码

置换密码

二字母组代替密码 (by Charles Wheatstone)

多字母替换密码

希尔密码 摩尔斯密码

维吉尼亚密码

替换密码

凯撒密码

ROT13

仿射密码

Atbash密码

换位密码

Scytale

Grille密码

VIC密码 (一种复杂的手工密码,在五十年代早期被至少一名苏联间谍使用过,在当时是十分安全的)

c语言怎么编写hill密码?

// 希尔算法的加密与解密\x0d\x0a#include \x0d\x0a#include \x0d\x0a#include \x0d\x0a#include \x0d\x0a#include // nDime为全部变量,可逆矩阵的维数\x0d\x0aint nDime;\x0d\x0aint index = 0;// MAXN为明文的最大长度\x0d\x0aconst int MAXN = 256;// 矩阵相乘,a是一个列为1的矩阵\x0d\x0avoid MultiplyMatrix(int a[], int b[][10], int *text)\x0d\x0a{\x0d\x0a int i, j, t; for (i = 0; i = size)\x0d\x0a sum %= size;\x0d\x0a temp1[diff] *= m[row][column];\x0d\x0a temp2[sum] *= m[row][column];\x0d\x0a }\x0d\x0a }\x0d\x0a t = 0;\x0d\x0a for (row = 0; row

回答于 2022-11-16

希尔密码的介绍

希尔密码(Hill Password)是运用基本矩阵论原理的替换密码,由Lester S. Hill在1929年发明。每个字母当作26进制数字:A=0, B=1, C=2... 一串字母当成n维向量,跟一个n×n的矩阵相乘,再将得出的结果MOD26。注意用作加密的矩阵(即密匙)在\mathbb_^n必须是可逆的,否则就不可能译码。只有矩阵的行列式和26互质,才是可逆的。

希尔密码原理

希尔密码(Hill Cipher)是运用基本矩阵论原理的替换密码,由Lester S. Hill在1929年发明。每个字母当作26进制数字:A=0, B=1, C=2... 一串字母当成n维向量,跟一个n×n的矩阵相乘,再将得出的结果MOD26。

随着科技的日新月异和人们对信用卡、计算机的依赖性的加强,密码学显得愈来愈重要。密码学是一门关于加密和解密、密文和明文的学科。若将原本的符号代换成另一种符号,即可称之为广义的密码。狭义的密码主要是为了保密,是一种防止窃文者得知内容而设的另一种符号文字,也是一般人所熟知的密码。

使用信用卡、网络账号及密码、电子信箱、电子签名等都需要密码。为了方便记忆,许多人用生日、电话号码、门牌号码记做密码,但是这样安全性较差。

为了使密码更加复杂,更难解密,产生了许多不同形式的密码。密码的函数特性是明文对密码为一对一或一对多的关系,即明文是密码的函数。传统密码中有一种叫移位法,移位法基本型态是加法加密系统C=P+s(mod m)。一般来说,我们以1表示A,2表示B,……,25表示Y,26表示Z,以此类推。由于s=0时相当于未加密,而0≤s≤m-1(s≥m都可用0≤s≤m-1取代),因此,整个系统只有m-1种变化。换言之,只要试过m-1次,机密的信息就会泄漏出去。

由此看来,日常生活中的密码和传统的密码的可靠性较差,我们有必要寻求一种容易将字母的自然频度隐蔽或均匀化,从而有利于统计分析的安全可靠的加密方法。希尔密码能基本满足这一要求。

不难看出,希尔密码算法中有两个非常重要的条件。第一个条件是字符(信息)与数字对应表,当加密矩阵的阶数n(本文实例中的加密矩阵的阶数n=3)越大,破译的难度就会增大,此时计算量也大,我们可以借助有关数学软件如Mathematica提高运算效率。第二个条件是加密矩阵,如何定义、求解这个矩阵对于密码的加密和破译至关重要。

从破译密码的角度来看,传统的密码有一个致命弱点,就是破译者可从统计出来的字符频率中找到规律,进而找出破译的突破口,尤其是在计算机技术高度发达的今天,破译的速度更快。希尔密码算法则完全克服了这一缺陷,它通过采用线性代数中的矩阵乘法运算和逆运算,能够较好地抵抗频率分析,很难被攻破。

希尔密码体系为破译者至少设置了三道关口,加大了破译难度。破译希尔密码的关键是猜测文字被转换成几维向量(列矩阵的行数)、所对应的字母表是怎样排列的,更为重要的是要设法获取加密矩阵A。要破解密码,向量的维数、字母的排列表和加密矩阵三者缺一不可。古今中外的谍报战中,敌对双方总是千方百计地获取破解对方密码的钥匙,但要想获取希尔密码的三把钥匙谈何容易。

世界上没有攻不破的密码,希尔密码也不例外。希尔密码算法的缺点在于线性变换的安全性很脆弱,易被攻击击破,黑客正是利用各种密码的弱点来向用户频频发起攻击的。尽管如此,希尔密码仍不失为一种简便高效的密码。