密码学 二 之代换密码(替换密码技术PPT)

2023-03-14 23:41:41 密码用途 思思

上一讲中,我们讲移位密码其实是将字母表中的字母一一对应到各数字,然后通过数字平移来进行加密,古典密码学中还有一种比较有名的加密方法,就是将明文中的字母表对应到一套密文的字母表,这种加密方法我们叫 代换密码(substiution cipher) 或叫 替换密码 ,下图就是一个简单的代换密码对应表

上面所说,代换密码其实就是将明文里的字母按照字母表替换成密文里的字母,还是举一个例子,假设现在有一个字符“welcome to china”,根据上面的密码替换表,将明文里面的每个字母依次换成对应的密文,如下:

这样就可以得到密文CXGHBEXQBHTJNW

代换密码的解密非常简单,只要将加密的替换表进行反向操作,这里不再操作

这里可以发现,代换密码主要是要建立起一套明文与密文之间的加密对应的替换关系,只要有这套密码替换表,加、解密就变得很容易

上一讲我们知道,移位密码其实是很好破解的,因为密钥总量一共就26位,只要我们试26次,就一定能试出一个正解的,那么代换密码是也可以通过穷举的方式来破解呢?

我们知道代换密码是把明文的26个字母随机对应密文的26个字母上,也就意味着明文中第一个字母a可以对应到密文中A,B,C,D…Z 26个字母中的任一个,以此类推,我们就可以计算出代换密码的密钥总数为:

像这种一种密码能够使用的所有密钥的集合,叫做 密钥空间(keyspace)

上面的密钥的量非常大,用穷举法来破译几乎是不可能的。

使用穷举法不能破译,但并不能说明就是安全的,我们可以使用 频率分析 来破译代换密码,频率分析就是利用明文中的字母出现频率与密文中的字母的出现频率一致这一特性,

下面是【密码学原理与实践】书中的一个例子,可以参考一下

现假设有一段密文如下,现需将其解密出明文

这种密文的频率分析如下图:

根据 英文字母出现的频率 排序统计,一般的排序是这样的e,t,a,o,I,n,s,h,r,d,l,u,c,m,f,w,y,p,v,b,g,k,j,q,x,z 而且一般英语文章中出现频率最高的的字母是e,这一点基本不会错的。

根据上图所示,字母Z出现的次数是20,远远高于其它密文字母,所以我们可以假设Z-e。其它出现至少10余次的官方字母是C,D,F,J,M,R,Y,我们希望这些字母对应的是

e t a o l n s h r中的一个子集,

我们现在假设了Z-e,现注意一下形如-Z, Z-的两字母组,我们发现出现这种类型的最一般的两字母组是DZ和ZW,各都出现了4次;NZ和ZU出现3次,RZ HZ XZ FZ ZR ZV ZC ZD ZJ各出现2次;又因ZW出现4次,而WZ一次也未出现,同时W比许多其它字母出现的次娄少,所以我们可以假设W-d,又因为DZ出现4次而ZD出现2次,故可猜测D是{r,s,t}中的任一个,具体是哪个还不清楚。

如上面猜测, Z-, D-d,再看看密文并注意到ZRW出现在密文的开始部分,RW后面也出现过,因为R在密文频繁地出现,而nd是一个常见的两字母组,所以我们可以假设R-n作为可能的情况,这样我们便有了如下的形式

接下来我们可以试试N-h,因为NZ是一个常见的两字组而ZN不是一个常见的两字母组,如果这个猜测是正确的,则明文ne-ndhe很可能说明C-a,结合这些收市,我们又进一步有:

现在考虑出现次数高的密文字母M,由前面分析,密文段RNM密钥成nh-,这说明h-是一个词的开头,所以M很可能是一个元音,因为已经使用了a和e,所以猜测M-{i或o},因为ai是一个比ao出现次数更高的明文组,所以首先猜测M-I,这样就有:

下面需要确定明文o对应的密文,因为为是一个经常出现的字母,所以我们猜测相应的密文字母是D F J Y 中的一个,Y似乎最有可能,否则将得到长元音,即从CFM或CJM中得到aoi,因此假设Y-o。

剩下密文字母中三个最高频率的字母是D F J,我们猜测他们以某种次序解密成r s t, 三字母NMD两次出现说明很可能D-s,对应的明文三字母组为his,HNCMF可能是chair的加密,说明F-r,H-c,同时排除J-t,于是我们有了:

有了上面的提示,就很容易确定出明文,解密明文如下

【密码学原理与实践(第三版)】

【图解密码技术】

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

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

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

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

什么是置换加密技术?

加密技术包括两个元素:算法和密钥。算法是将普通的文本(或者可以理解的信息)与一串数字(密钥)的结合,产生不可理解的密文的步骤,密钥是用来对数据进行编码和解码的一种算法。在安全保密中,可通过适当的密钥加密技术和管理机制来保证网络的信息通讯安全。

密钥加密技术的密码体制分为对称密钥体制和非对称密钥体制两种。相应地,对数据加密的技术分为两类,即对称加密(私人密钥加密)和非对称加密(公开密钥加密)。对称加密以数据加密标准(DES,Data Encryption Standard)算法为典型代表,

非对称加密通常以RSA(Rivest Shamir Adleman)算法为代表。对称加密的加密密钥和解密密钥相同,而非对称加密的加密密钥和解密密钥不同,加密密钥可以公开而解密密钥需要保密。

扩展资料:

数据传输加密技术的目的是对传输中的数据流加密,通常有线路加密与端—端加密两种。线路加密侧重在线路上而不考虑信源与信宿。

是对保密信息通过各线路采用不同的加密密钥提供安全保护。端—端加密指信息由发送端自动加密,并且由TCP/IP进行数据包封装,然后作为不可阅读和不可识别的数据穿过互联网,当这些信息到达目的地,将被自动重组、解密,而成为可读的数据。

数据存储加密技术的目的是防止在存储环节上的数据失密,数据存储加密技术可分为密文存储和存取控制两种。前者一般是通过加密算法转换、附加密码、加密模块等方法实现;后者则是对用户资格、权限加以审查和限制,防止非法用户存取数据或合法用户越权存取数据。

参考资料来源:百度百科-加密技术