当前位置:首页 >资讯 >希尔密码加密算法及原理


一、希尔密码产生的必然性

随着科学技术的飞速发展和人们对信用卡和计算机的依赖,密码学变得越来越重要。密码学是一门关于加密和解密、密文和明文的学科。如果原始符号被另一个符号所取代,所取代,它可以被称为广义密码。狭义的密码主要是为了保密,是另一种防止窃贼知道内容的符号文本,也是普通人所熟知的密码。

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

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

从这个角度来看,日常生活中密码和传统密码的可靠性较差,需要寻找一种安全可靠的加密方法,容易隐藏或均匀化字母的自然频率,有利于统计分析。希尔密码1基本上可以满足这一要求。

二、希尔密码算法原理

希尔加密算法的基本思想是通过线性变换将D明文字母转换为D密文字母。解密只需要逆变换,关键是转换矩阵本身。

希尔密码是一种多字母代替密码。多字母代替密码可以通过矩阵变换轻松描述,有时也称为矩阵变换密码。使明确的字母表为Z,如果以L字母为单位更换,则多码更换为映射f:Z→Z。如果映射是线性的,那么f就是线性以使用Z上的L×L矩阵K表示,K=(k)为密钥。如果是满的,则转换为一一映射,存在逆变换K,使KK=KK=I。将L个字母的数字表示为Z上的L维矢量m=(m,m,…,m),相应的密文矢量c=(c,c,…,c)为mK=c,以K为解密矩阵,C可以恢复相应的明文c•K=m。

在军事通信中,字符(信息)经常与数字对应(为了方便,我们按原顺序对应字符和数字,事实上,这种对应规则很容易破解):

abcde…xyz

12345…242526

如信息“NOSLEEPPING”与14、15、19、12、5、5、16、16、9、14、7组编码相对应。但如果这样直接传输,很容易被敌人破译。因此,必须采取加密措施,即使用约定的加密矩阵K乘以原始信号B,传输信号为C=KB(加密),收到信号的一方将信号恢复(破译)为B=KC。如果敌人不知道加密矩阵,就很难破译。

加密

第一步是将加密矩阵设置为K=112-120113q=26,L=3,选取满秩3×三阶可逆矩阵。×3可逆方阵,也是为了方便计算,相应的安全性较低。

第二步,将信息14、15、19、12、5、16、16、9、14、7分为四列矩阵:X=141519,X=1255,X=16169,X=X中的1470“0”它是虚设的,其目的是与列矩阵X,X,X行数一致。列矩阵的行数3和个数4完全取决于加密信息对应的数量和加密矩阵的阶数。

第三步是加密信息。矩阵乘法操作:

Y=KX=112-120213141519=6716100;

Y=KX=112-1202131255=27-244;

Y=KX=112-12021316169=501675;

Y=KX=112-1202131470=21035。

加密后的新码为67、16、100、27、-2、44、50、16、75、21、0。Y虽然35是多余的信息,但要与密码一起发送给对方,对方在破解密码时要参与计算。

解密

第一步,求密钥矩阵K逆矩阵2K。K可用Mathematica计算。

Inverse123-120213∥MatrixForm=-614-3125-1-3,

即K=-614-3125-1-3。

第二步,由得Y=KX得X=KY(i=1、2、3、4),再次进行矩阵乘法操作:

X=KY=-614-3125-1-3671610=141519;

X=KY=-614-3125-1-327-244=1255;

X=KY=-614-3125-1-3501675=16169;

X=KY=-614-3125-1-321035=1470。

原信息编码为14、15、19、12、5、16、16、9、14、7。

第三步是比较编码表,获取对方发送的信息内容为“NOSLEEPPING”。

三、希尔密码算法安全分析

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

从破译密码的角度来看,传统密码有一个致命的弱点,即破译者可以从统计的字符频率中找到规则,然后找到破译的突破,特别是在计算机技术高度发达的今天,破译速度更快。希尔密码算法完全克服了这一缺陷,通过线性代数中的矩阵乘法和逆运算,可以更好地抵抗频率分析,难以突破。

希尔密码系统为破译者设置了至少三个关口,增加了破译的难度。破译希尔密码的关键是猜测文本是如何转换成几维向量(列矩阵的行数),以及相应的字母表是如何排列的,更重要的是试图获得加密矩阵A。破解密码、向量维数、字母排列表和加密矩阵是必不可少的。在古今中外的间谍战争中,敌人总是尽一切可能得到破解对方密码的钥匙,但要得到希尔密码的三把钥匙并不容易。

世界上没有无法突破的密码,希尔密码也不例外。希尔密码算法的缺点是线性变换的安全性非常脆弱,容易被攻击打破。黑客利用各种密码的弱点频繁攻击用户。尽管如此,希尔密码仍然是一个简单高效的密码。