背景了解。
替代是古典密码中用到的最基本的处理技巧之一 。
替代密码是指先建立一个替换表,加密时将需要加密的明文依次通过查表,替换为相应的字符,明文字符被逐个替换后,生成无任何意义的字符串,即密文,替代密码的密钥就是其替换表 。
根据密码算法加解密时使用替换表多少的不同,替代密码又可分为单表替代密码和多表替代密码。
单表替代密码的密码算法加解密时使用一个固定的替换表。单表替代密码又可分为一般单表替代密码、移位密码、仿射密码、密钥短语密码。
多表替代密码的密码算法加解密时使用多个替换表。 多表替代密码有弗吉尼亚密码、希尔(hill)密码、一次一密钥密码、playfair密码。
多表替代密码。
单表替代密码表现出明文中单字母出现的频率分布与密文中相同, 多表替代密码使用从明文字母到密文字母的多个映射来隐藏单字母出现的频率分布,每个映射是简单替代密码中的一对一映射多表替代密码将明文字母划分为长度相同的消息单元,称为明文分组,对明文成组地进行替代,同一个字母有不同的密文,改变了单表替代密码中密文的唯一性,使密码分析更加困难。
多表替代密码的特点是使用了两个或两个以上的替代表。著名的维吉尼亚密码和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在2023年为电报通信设计的一种密码,所以又称为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 å ki , i≥1,这里为模2加法(或异或运算)
解密变换为:
m=(m1 m2 m3 … mi …)其中mi = ci å ki , i≥1,在应用vernam密码时,如果对不同的明文使用不同的随机密钥,这时vernam密码为一次一密密码。由于每一密钥序列都是等概率随机产生的,敌手没有任何信息用来对密文进行密码分析。香农(claude shannon)从信息论的角度证明了这种密码体制在理论上是不可破译的。
但如果重复使用同一个密钥加密不同的明文,则这时的vernam密码就较为容易破译。
若敌手获得了一个密文c=(c1c2c3 …ci…) 和对应明文m=(m1m2m3 …mi…) 时,就很容易得出密钥k=(k1k2k3 …ki…) 其中ki=ciåmi,i≥1。 故若重复使用密钥,该密码体制就很不安全。
实际上vernam密码属于序列密码,加密解密方法都使用模2加,这使软。
硬件实现都非常简单。但是,这种密码体制虽然理论上是不可破译的,然而。
在实际应用中,真正的一次一密系统却受到很大的限制,其主要原因在于该。
密码体制要求:
密钥是真正的随机序列;
密钥长度大于等于明文长度;
每个密钥只用一次(一次一密)。
这样,分发和存储这样的随机密钥序列,并确保密钥的安全都是很因难。
的;另外,如何生成真正的随机序列也是一个现实问题。因此,人们转而寻。
求实际上不对攻破的密码系统。
playfair密码。
playfair密码是一种著名的双字母单表替代密码,实际上playfair密码属于一种多字母替代密码,它将明文中的双字母作为一个单元对待,并将这些单元转换为密文字母组合。替代时基于一个5×5的字母矩阵。字母矩阵构造方法同密钥短语密码类似,即选用一个英文短语或单词串作为密钥,去掉其中重复的字母得到一个无重复字母的字符串,然后再将字母表中剩下的字母依次从左到右、从上往下填入矩阵中,字母i,j占同一个位置。
题目:如何破解多表替代密码?(提示-先确定周期)
单表中的凯撒密码,字母的替换是整体移位,一般破解单表替换的密文,主要以字母出现的频率做频率分析和字母出现的顺序做模式检查,找出映射关系,破译简单的替换式密码。
对于多表的从凯撒密码拓展出来的维吉尼亚密码为例,,也就是确定明文中同样的字母序列使用密钥中同样的字母加密的周期,当然也有很小的可能是不同的明文字母序列通过密钥的不同部分加密后形成的相同密文,但是我们可以通过大量的数据或者限制范围很大程度的排除这种情况。
多表代换密码体制的分析方法主要分为三步:第一步确定秘钥长度,常用的方法有卡西斯基(kasiski)测试法和重合指数法(index of coincidence);第二步就是确定秘钥,常用的方法是拟重合指数测试法;第三步是根据第二步确定的密钥恢复出明文。
总之,第一步就是找出密文中重复出现一次以上字母,第二步就是通过这些重复出现的密文确定密钥的长度,第三步再进行频率分析,频率分析主要要注意特征比较显著的字母段,还要结合实际的情况分析明文中可能出现的高频字符串,当然还有英文语法中的单词,为了直观的感受也需要作出图表方便对比差异和规律性的波动。
kasiski测试法:若用给定的m个密钥表周期地对明文字母加密,则当明文中有两个相同字母组在明文序列中间隔的字母数为m的倍数时,这两个明文字母组对应的密文字母组必相同。但反过来,若密文**现两个相同的字母组,它们所对应的明文字母组未必相同,但相同的可能性很大。
如果我们将密文中相同的字母组找出来,并对其相同字母数综合研究,找出它们的相同字母数的最大公因子,就有可能提取出有关密钥字的长度m的信息。
具体方法:搜索长度至少为3的相同密文段,记录这些相同密文端到起始点之间的距离(d1,d2,d3……)找出(d1,d2,d3……)的所有公因子,同样为了确保秘钥长度的准确性,我们在搜索另一至少长为3的相同密文段,重复上操作,最后找出他们共同的公因子,若公因子不唯一,则在采用下边的重合因子测试法确定密钥长度。
重合指数法(index of coincidence,又称一致检索法)是wolfe friendman于2023年提出的方法。首先利用kasiski测试法猜测出密钥的长度,然后利用重合指数法进行验证我们的猜测对不对。
根据基本测试和计算,26个字母构成的一段有意义文字中,任取两个元素刚好相同的概率约为0.065,所以如果一段明文是用同一个字母做密钥加密的话,这个概率是不变的。
首先根据kasiski测试法得到了一个猜测出来的密钥长度m=5。我们可以直奔主题验证m=5时的概率,但是也可以谨慎地从m=1开始验起。
验证m=1的情况方法如下:
首先将密文(按顺序)排成一列,两两选取字母(取遍所有可能情况),计算其相同的概率。当然像图中所述例子,用手算显然不是我们想要的,我们如果自己想算的话可以利用计算机程序。我们用“字母相同的次数”除以“总抽取次数”即可得这一概率。
最后计算出来的结果是0.045,很显然它更接近0.038,而不是0.
065。
验证m=2的情况方法如下:
将密文按顺序。
排成两列,对每一列用类似m=1的方法去做,则每一列可以得到一个概率,也就是说我们到手了两个概率0.046,0.041,显然它们也是离0.038更近,离0.065更远。
m=3,m=4的情况类似可做。
见证奇迹的时刻到了,我们终于等到验证m=5的情况了。
首先将密文按顺序。
排成5列,对每列计算“任取两个字母刚好相同”的概率,分别为0.063,0.068,0.
069,0.061,0.072,好了,数字完全不一样了,完全是我们希望的节奏了。
它们和0.065非常滴接近。
在一串无规律的字母中,我们随意抽取两个字母,由于每个字母被抽到的概率相同,因此抽取的两个字母相同的概率为26*(1/26)^2=0.0385.如果是从一篇文章或者一句完整的话中抽取的概率为p(a)^2+p(b)^2+….
p(z)^2=0.0687.这种特性是破译密码的一大关键,正常的单表替代,其重合指数更接近于0。
0687,而像维吉尼亚密码这类周期性多表替代,其重合指数更接近于0.0385,所以通过重合指数便可以判断密文的加密类型。当然,前面说过,她的作用绝对不仅仅于此。
现在,简单介绍下如何从密文中获得重合指数:
已知从n个密文中抽取两个字母的方式有cn^2=n(n-1)/2种,其中n(a)个a组成一对的方式有can^2=na(na-1)/2种,所以抽到的两字母都为a的概率为na(na-1)/n(n-1),以此类推,密文的重合指数就是简称ic
现在大家对于重合指数都有一定的了解了,现在来实践下,体验它更强大的威力~~让它来判断下维密的密钥长度吧。
假设密钥长度为d,将密文一行行地卸载一张有d个列的**里,再一列列写下来。
如:密文为 cdgfxzycmnzl 假设长度为3 则列出下表。
c d gf x z
y c mn z l
所以第一列为cfyn二为dxcz三为gzml
实际上,每一列的字母此时就是单表替代。因此我们只需要分别计算每一列的ic,并最终计算平均值,便可得知密钥的确切长度了,如ic十分接近于0.0687,那么我们就成功地得出密钥长度d的值了。
网络安全技术
第1章一 问答题。1 何为计算机网络安全?网络安全有哪几个特征?各特征的含义是什么?2 网络系统的脆弱性主要表现在哪几个方面?3 网络安全的威胁主要来自哪些方面?通常说网络威胁有哪两大类?4 osi网络安全体系涉及哪几个方面?网络安全服务和安全机制各有哪几项?5 p2dr模型中的p p d r的含义...
网络安全技术
拒绝服务 攻击者利用一定的手段,让被攻击主机无法响应正常的用户请求。阻止或禁止对通信设施的正常使用或管理物理隔离 解决网络安全问题的一种技术,可以分为网络隔离和数据隔离。实现内外网的信息隔离。垃圾邮件 凡是未经用户许可 与用户无关 就强行发送到用户的邮箱中的任何电子邮件就称为垃圾邮件。网络安全的含义...
网络安全技术
其次,要建立面向大规模网络与复杂信息系统安全风险分析的模型和方法 建立基于管理和技术的风险评估流程 制定定性和定量的测度指标体系。如果没有这个指标体系,只能抽象地表述,对指导意见来讲并没有太多的实际意义。二 安全存储系统技术。在安全策略方面,系统之家认为重点需要放在安全存储系统技术上。其战略目标有两...