比较维吉尼亚密码与移位密码的区别(维吉尼亚密码是多表代换密码)

2023-03-04 9:35:38 密语知识 思思

难易程度不同。移位密码就是对26个字母进行移位操作,可以移动任意位数,这样就实现了对明文的加密,移位操作简单易行,因此,加密解密比较简单。Vigenere密码是由法国密码学家BlaisedeVigenere于1858年提出的一种代换密码,它是多表代换密码的典型代表。

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

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

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

多表替代密码的密码算法加解密时使用多个替换表。 多表替代密码有弗吉尼亚密码、希尔(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占同一个位置。

请比较凯撒密码维吉尼亚密码普莱费尔密码的异同点

比较凯撒密码维吉尼亚密码普莱费尔密码的异同点:

1、维吉尼亚密码是使用一系列凯撒密码组成密码字母表的加密算法,属于多表密码的一种简单形式。

2、凯撒密码作为一种最为古老的对称加密体制,在古罗马的时候都已经很流行,他的基本思想是:通过把字母移动一定的位数来实现加密和解密。

属于古典密码的局限性是

古典密码是密码学的源头。这一时期的密码是一种艺术,还算不上是一门学科。密码学家常常是凭借直觉和信念来进行密码设计和分析,而不是推理证明。

古典密码的两个主要体制是代换密码和置换密码。代换密码采用一个代换表,将一段明文变换成一段密文,这个代换表就是密钥。如果代换表只有一个,则代换过程被称为单表代换。如果代换表多于一个,则代换过程被称为多表代换。置换密码是一种特殊的代换密码,置换密码变换过程不改变明文字母,只改变它们的位置。

单表代换密码的一个典型代表是仿射密码。仿射密码的加密变换可以表示为 Ek(i)=(ik1+k) mod N,其中密钥k = (k1,k),N为明文字表大小,i为明文,k与N互素。当k=0时的变换称为乘法密码;当k1=1时的变换称为加法密码。

“恺撒密码”是一种典型的加法密码,这种密码曾经被罗马帝国的恺撒大帝频繁用于战争通信,因此称为“恺撒密码”。下面举例描述一下恺撒密码。假定密钥 k =(1,11),明文消息为“i am nine”,N = 26。密钥k =(1,11)确定了密码代换表中明文字母“a”将被替换成“l”,字母“b”将被替换成“m”,依此类推。整个代换过程描述如表1所示。对于英文字母表,恺撒密码的密钥取值范围只有25(不包括k为0的情形),即只能构造出25种不同的明密文代换表。因此,恺撒密码很容易被穷举破译。

为了进一步提高密码强度,在单表代换的基础上,又进一步提出了多表代换。多表代换密码是以多个代换表依次对明文消息的字母进行代换的加密方法。多表代换密码的典型代表是维吉尼亚密码,它是以16世纪法国外交官 Blaise deVigen è re的名字命名的。

维吉尼亚密码是一种以位移代换为基础的周期代换密码,其中代换表的数目为d,d代换表由d个字母序列确定的密钥决定。我们在前面例子的基础上,再以格的形式解释维吉尼亚密码的代换过程,具体加密代换过程如表2所示。明文信息为“i am nine i feel very good”,代换表数目d = 6,密钥k = cipher,密钥对应的数数序列为k =(2,8,15,7,4,17)。将密钥整数序列与明文序列周期性的模26“相加”,即可得到密文整数序列,进而可以变换成密文。

恺撒密码和维吉尼亚密码都是以单个字母为代换对象的。如果每次对多于1个字母进行代换就是多字母代换,多字母代换更加有利于隐藏字母的自然频度,从而更有利于抵抗统计分析。

置换密码的典型代表是栅栏密码。栅栏密码出现于1861年至1865年的美国南北战争时期。其加密原理是:明文按列写入,密文按行输出。加密过程可以使用个置换也可以使用多个置换。与代换密码相比,置换密码可以打破消息中的某些固定结构模式,这个优点被融入到现代密码算法的设计中。

古典密码在对抗密码分析方面有较大不足。密码分析学的主要目标是研究加密消息的破译或消息的伪造。密码系统安全的一个必要条件是密钥空间足够大,能够有效地应对穷举密钥搜索攻击,但密钥空间足够大不是密码系统安全的充分条件。古典密码在统计特性方面存在安全缺陷。在单表代换下,字母的频度、重复字母模式字母结合方式等统计特性,除了字母符号发生了改变外,都没有发生改变,这些统计特性可以用于密码破译。多表代换下,明文的统计特性通过多个表的平均作用被隐蔽起来,但是用重合指数法等分析方法可以很容易地确定维吉尼亚密码密钥长度,再用攻击单表代换的方法确定密钥字。已有事实证明,用唯密文攻击法(攻击者只拥有一个或者多个用同一个密钥加密的密文)分析单表和多表代换密码是可行的,因此,以上古典密码都是不安全的。

数观天下作为“最懂甲方的密码行业咨询媒体”,会提供更多甲方思路、理念及项目情况,为产业提供桥梁,促进密码与应用完美结合

维吉尼亚密码

      维吉尼亚密码是以法国外交官、密码学家布莱斯·德·维吉尼亚的名字命名的,不过不是他本人发明的。

【加密原理】

      维吉尼亚密码是在凯撒密码的基础上产生的一种加密方法,它将凯撒密码的全部25种位移排序为一张表,与原字母序列共同组成26行26列的密码表。

      除了密码表,还必须有一个密钥。密钥由字母组成,最少一个字母,最多可与明文字母数相等。如果密钥只有1个字母,相当于就是凯撒密码。举个例子:

明文:I Love You

密钥:OK

      首先,密钥长度需要与明文长度相同,如果少于明文长度,则重复拼接直到长度相等。本例中,明文长度为8个字母(非字母忽略),密钥补全为“OKOKOKOK”。

      然后根据密码表进行加密。明文第一个字母是“I”,密钥第一个字母是“O”,在表格中找到“I”列与“O”行的相交点,字母“W”就是密文的第一个字母。同理,“L”列与“K”行交点字母是“V”。“O”列与“O”行交点字母是“C”……以此类推,得到密文: W VCFS ICE。

【解密原理】

密文:PWZRNZBZ EA NQKBUHN LNB

密钥:wind

      首先把密钥重复拼接到和密文长度相同,上例中密文为20位字母,密钥拼接后为:windwindwindwindwind。

      密文P对应密钥W,在密码表中找出W行为P的列,沿着这一列向上找到最上面的字母是T。以此类推,得到明文:tomorrow is another day。

不属于古典密码的主要分类

不属于经典密码体制的是分组密码。

经典密码体制,又称古典密码体制,包括以下内容:

简单代替密码(simple substitution cipher),又称单表密码(monoalphabetic cipher):

明文的相同字符用相应的一个密文字符代替

多表密码(ployalphabetic cipher):

明文中的相同字符映射到密文空间的字符不唯一,有多个。

单表代替是密码学中最基础的一种加密方式。

在加密时用一张自制字母表上的字母来代

替明文上的字母(比如说A——Z,B——D)来达到加密。移位密码也属于单表代替,只不

过比较有规律,相当于集体向前或向后。这种加密方法最容易被破解。破解方法为统计法。

在英语中,最常用的字母为E,所以在密文中代替E 的字母出现的频率也最高,由此便可破解。

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

▲密钥空间

K很大,|K|=26!=4×1026 ,破译者穷举搜索计算不可行,

1微秒试一个密钥,遍历全部密钥需要1013年。

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

密钥π不便记忆。

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

多表代替密码:由多个简单的代替密码构成,例如,可能有5个被使用的不同的简单代

替密码,单独的一个字符用来改变明文的每个字符的位置。

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