替换密码技术的一般推导式(替换密码和置换密码)

2023-02-20 20:44:36 密码用途 思思

希尔密码原理

希尔密码(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。要破解密码,向量的维数、字母的排列表和加密矩阵三者缺一不可。古今中外的谍报战中,敌对双方总是千方百计地获取破解对方密码的钥匙,但要想获取希尔密码的三把钥匙谈何容易。

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

替换密码技术的一般推导式(替换密码和置换密码) 第1张

古典密码的置换密码

①加法密码

A和B是有 n个字母的字母表。

定义一个由A到B的映射:f:A→B

f(ai )= bi=aj

j=i+k mod n

加法密码是用明文字母在字母表中后面第 k个字母来代替。

K=3 时是著名的凯撒密码。

恺撒密码——历史上第一个密码技术

“恺撒密码”是古罗马恺撒大帝在营救西塞罗战役时用来保护重要军情的加密系统(《高卢战记》)。

②乘法密码

A和B是有n个字母的字母表。?定义一个由A到B的映射:f:A→B f(ai )= bi= aj j=ik mod n 其中,(n,k)=1。注意:只有(n,k)=1,才能正确解密。

③密钥词组代替密码

随机选一个词语,去掉其中的重复字母,写到矩阵的第一行,从明文字母表中去掉这第一行的字母,其余字母顺序写入矩阵。然后按列取出字母构成密文字母表 单表代替密码的安全性不高,一个原因是一个明文字母只由一个密文字母代替。可以利用频率分析来破译。故产生了更为安全的多表代换密码,即构造多个密文字母表,在密钥的控制下用以一系列代换表依次对明文消息的字母序列进行代换。著名的多表代替密码有Vigenere密码等。

① Vernam密码

明文、密文、密钥都表示为二进制位:

M=m1,m2,… ,mn K =k1,k2,… ,kn C =c1,c2,… ,cn

②Playfair密码

用密钥控制生成矩阵,然后每两个字母为单位进行代换。

③Hill密码(乘积密码)

建立在矩阵相乘的基础上,但不能抵抗已知明文攻击。

替代密码的替代密码的分类

根据密码算法加解密时使用替换表多少的不同,替代密码又可分为单表替代密码和多表替代密码。

单表替代密码的密码算法加解密时使用一个固定的替换表。单表替代密码又可分为一般单表替代密码、移位密码、仿射密码、密钥短语密码。

多表替代密码的密码算法加解密时使用多个替换表。 多表替代密码有弗吉尼亚密码、希尔(Hill)密码、一次一密钥密码、Playfair密码。 单表替代密码对明文中的所有字母都使用一个固定的映射(明文字母表到密文字母表)。设A={a0, a1,…, an-1}为包含了n个字母的明文字母表;

B={b0, b1,…, bn-1} 为包含n个字母的密文字母表,单表替代密码使用了A到B的映射关系:f:A→B, f ( ai )= bj

一般情况下,f 是一一映射,以保证加密的可逆性。加密变换过程就是将明文中的每一个字母替换为密文字母表的一个字母。而单表替代密码的密钥就是映射f或密文字母表。经常密文字母表与明文字母表的字符集是相同的,这时的密钥就是映射f。下面给出几种典型的单表替代密码。

⒈一般单表替代密码

一般单表替代密码的原理是以26个英文字母集合上的一个置换π为密钥,对明文消息中的每个字母依次进行变换。可描述为:明文空间M和密文空间C都是26个英文字母的集合,密钥空间K={π:Z26→Z26|π是置换},是所有可能置换的集合。

对任意π∈K,定义:

加密变换:eπ(m)=π(m)=c

解密变换:dπ(c) = π-1(c)=m, π-1是π的逆置换。

例:设置换π的对应关系如下:

a b c d e f g h i j k l m n o p q r s t u v w x y z

q w e r t y u i o p a s d f g h j k l z x c v b n m

试用单表替代密码以π为密钥对明文消息message加密,然后写出逆置换 ,并对密文解密。

解:以π为密钥用单表替代密码对明文消息message加密,所得

密文消息为: π(m) π(e) π(s) π(s) π(a) π(g) π(e)=dtllqut

一般单表替代密码算法特点:

▲密钥空间K很大,|K|=26!=4×10^26 ,破译者穷举搜索计算不可行,1微秒试一个密钥,遍历全部密钥需要1013 年。

▲移位密码体制是替换密码体制的一个特例,它仅含26个置换做为密钥空间。

密钥π不便记忆。

▲针对一般替换密码密钥π不便记忆的问题,又衍生出了各种形式单表替代密码。

⒉移位密码

明文空间M、密文空间C都是和密钥空间K满足,即把26个英文字母与整数0,1,2,…,25一一对应。

加密变换,E={E:Z26→Z26, Ek (m) = m + k (mod26)| m∈M, k∈K }

解密变换,D={D:Z26→Z26, Dk (c) = c-k (mod26)| c∈C, k∈K }

解密后再把Z26中的元素转换英文字母。

显然,移位密码是前面一般单表替代密码的一个特例。当移位密码的 密钥k=3时,就是历史上著名的凯撒密码(Caesar)。根据其加密函数特 点,移位密码也称为加法密码。

⒊仿射密码

仿射密码也是一般单表替代密码的一个特例,是一种线性变换。仿射密码的明文空间和密文空间与移位密码相同,但密钥空间为 K={(k1,k2)| k1,k2∈Z26,gcd(k1,26)=1}

对任意m∈M,c∈C,k = (k1,k2)∈K,定义加密变换为 c = Ek (m) = k1 m +k2 (mod 26)

相应解密变换为: m = Dk (c) = k1 (c-k2) (mod 26)

其中,K1 k1=1mod26 。很明显,k1=1时即为移位密码,而k2=1则称为乘法密码。

⒋密钥短语密码

选用一个英文短语或单词串作为密钥,去掉其中重复的字母得到一个无重复字母的字符串,然后再将字母表中的其它字母依次写于此字母串后,就可构造出一个字母替代表。当选择上面的密钥进行加密时,若明文为“china”,则密文为“yfgmk”。显然,不同的密钥可以得到不同的替换表,对于明文为英文单词或短语的情况时,密钥短语密码最多可能有26!=4×1026个不同的替换表。 单表替代密码表现出明文中单字母出现的频率分布与密文中相同, 多表替代密码使用从明文字母到密文字母的多个映射来隐藏单字母出现 的频率分布,每个映射是简单替代密码中的一对一映射多表替代密码将 明文字母划分为长度相同的消息单元,称为明文分组,对明文成组地进 行替代,同一个字母有不同的密文,改变了单表替代密码中密文的唯一 性,使密码分析更加困难。

多表替代密码的特点是使用了两个或两个以上的替代表。著名的维吉尼亚密码和Hill密码等均是多表替代密码。

⒈维吉尼亚密码

维吉尼亚密码是最古老而且最著名的多表替代密码体制之一,与位移密码体制相似,但维吉尼亚密码的密钥是动态周期变化的。

该密码体制有一个参数n。在加解密时,同样把英文字母映射为0-25的数字再进行运算,并按n个字母一组进行变换。明文空间、密文空间及密钥空间都是长度为n的英文字母串的集合,因此可表示

加密变换定义如下:

设密钥 k=(k1,k2,…,kn), 明文m=(m1,m2,…,mn), 加密变换为:

Ek(m)=(c1,c2,…,cn),

其中ci(mi + ki)(mod26),i =1,2,…,n

对密文 c=(c1,c2,…,cn), 解密变换为:

Dk(c)=(m1,m2,…,mn), 其中 mi=(ci -ki)(mod26),i =1,2,…,n

⒉希尔(Hill)密码

Hill密码算法的基本思想是将n个明文字母通过线性变换,将它们转换为n个密文字母。解密只需做一次逆变换即可。

⒊一次一密密码(One Time Pad)

若替代码的密钥是一个随机且不重复的字符序列,这种密码则称为一次一密密码,因为它的密钥只使用一次。该密码体制是美国电话电报公司的Joseph Mauborgne在1917年为电报通信设计的一种密码,所以又称为Vernam密码。Vernam密码在对明文加密,前首先将明文编码为(0,1)序列,然后再进行加密变换。

设m=(m1 m2 m3 … mi …)为明文,k=(k1 k2 k3 … ki …)为密钥,其中mi,ki ∈(0,1), i≥1, 则加密变换为: c=(c1 c2 c3 … ci …) ,其中ci = mi Aring; ki , i≥1,

这里为模2加法(或异或运算)

解密变换为:

m=(m1 m2 m3 … mi …) ,其中mi = ci Aring; ki , i≥1,

在应用Vernam密码时,如果对不同的明文使用不同的随机密钥,这时Vernam密码为一次一密密码。由于每一密钥序列都是等概率随机产生的,敌手没有任何信息用来对密文进行密码分析。香农(Claude Shannon)从信息论的角度证明了这种密码体制在理论上是不可破译的。但如果重复使用同一个密钥加密不同的明文,则这时的Vernam密码就较为容易破译。

若敌手获得了一个密文c=(c1 c2 c3 … ci …) 和对应明文m=(m1 m2 m3 … mi …) 时,就很容易得出密钥 k=(k1 k2 k3 … ki …) ,其中ki = ciAring; mi,i≥1。 故若重复使用密钥,该密码体制就很不安全。

实际上Vernam密码属于序列密码,加密解密方法都使用模2加,这使软

硬件实现都非常简单。但是,这种密码体制虽然理论上是不可破译的,然而

在实际应用中,真正的一次一密系统却受到很大的限制,其主要原因在于该

密码体制要求:

① 密钥是真正的随机序列;

② 密钥长度大于等于明文长度;

③ 每个密钥只用一次(一次一密)。

这样,分发和存储这样的随机密钥序列,并确保密钥的安全都是很因难

的;另外,如何生成真正的随机序列也是一个现实问题。因此,人们转而寻

求实际上不对攻破的密码系统。

⒋Playfair密码

Playfair密码是一种著名的双字母单表替代密码,实际上Playfair密码属于一种多字母替代密码,它将明文中的双字母作为一个单元对待,并将这些单元转换为密文字母组合。替代时基于一个5×5的字母矩阵。字母矩阵构造方法同密钥短语密码类似,即选用一个英文短语或单词串作为密钥,去掉其中重复的字母得到一个无重复字母的字符串,然后再将字母表中剩下的字母依次从左到右、从上往下填入矩阵中,字母I,j占同一个位置。

比较替代密码技术和置换密码技术的不同的举例

置换是在不丢失信息的前提下对明文中的元素进行重新排列

所谓置换密码,就是把明文中的字母或数字重新排列,字母或数字本身不变,但其位置发生了改变,这样所编成的密码称为置换密码。举个例子,例如:

明文:zhe shi zhi huan mi ma

密文:ami mna uhi hzih se hz

提高密码强度的一种方法,就是采取多个密文字母表,使得明文中字母可以有多个字母来代替,构成单对多映射。我们构造d个密文字母表:

B1={bj0,bj1……,bjn-1} j=0,1,……,d-1

同样定义d个映射:

fjbj

fj(ai)=bji

最后设明文空间M=(m0,m1,……,md-1,md,……) 密文空间C=(f0(m0),f1(m1),……,fd-1(md=1),fd(md),……)

由上可知,代替密码的密钥就是这组应设函数或密文字母表。

换位密码的加密方法

加密换位密码通过密钥只需要对明文进行加密,并且重新排列里面的字母位置即可。具体方法如下

1、基于二维数组移位的加密算法

给定一个二维数组的列数,即该二维数组每行可以保存的字符个数。再将明文字符串按行依次排列到该二维数组中。最后按列读出该二维数组中的字符,这样便可得到密文。

2、换位解密算法(基于二维数组移位的解密算法)

先给定一个二维数组的列数,即该二维数组每行可以保存的字符个数,并且这个数应该和加密算法中的一致。接下来将密文字符串按列一次性排列到该二维数组中。最后按行读出该二维数组中的字符即可。

3、换位加密算法

首先按照密钥排列顺序:0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ将想要加密的明文加密,然后列出表格,找出对应的字母,就是密钥。然后对他们进行换位加密,就是将表格的第二行依据密钥排列顺序进行排序以便得到加密后的密文。

扩展资料

数据加密技术的分类

1、专用密钥

又称为对称密钥或单密钥,加密和解密时使用同一个密钥,即同一个算法。单密钥是最简单方式,通信双方必须交换彼此密钥,当需给对方发信息时,用自己的加密密钥进行加密,而在接收方收到数据后,用对方所给的密钥进行解密。当一个文本要加密传送时,该文本用密钥加密构成密文,密文在信道上传送,收到密文后用同一个密钥将密文解出来,形成普通文体供阅读。

2、对称密钥

对称密钥是最古老的,一般说“密电码”采用的就是对称密钥。由于对称密钥运算量小、速度快、安全强度高,因而如今仍广泛被采用。它将数据分成长度为64位的数据块,其中8位用作奇偶校验,剩余的56位作为密码的长度。首先将原文进行置换,得到64位的杂乱无章的数据组,然后将其分成均等两段;第三步用加密函数进行变换,并在给定的密钥参数条件下,进行多次迭代而得到加密密文。

3、公开密钥

又称非对称密钥,加密和解密时使用不同的密钥,即不同的算法,虽然两者之间存在一定的关系,但不可能轻易地从一个推导出另一个。非对称密钥由于两个密钥(加密密钥和解密密钥)各不相同,因而可以将一个密钥公开,而将另一个密钥保密,同样可以起到加密的作用。公开密钥的加密机制虽提供了良好的保密性,但难以鉴别发送者,即任何得到公开密钥的人都可以生成和发送报文。

4、非对称加密技术

数字签名一般采用非对称加密技术(如RSA),通过对整个明文进行某种变换,得到一个值,作为核实签名。接收者使用发送者的公开密钥对签名进行解密运算,如其结果为明文,则签名有效,证明对方的身份是真实的。数字签名不同于手写签字,数字签名随文本的变化而变化,手写签字反映某个人个性特征,是不变的;数字签名与文本信息是不可分割的,而手写签字是附加在文本之后的,与文本信息是分离的。

参考资料来源:百度百科-换位密码