admin 管理员组文章数量: 1086019
2024年4月29日发(作者:c语言给字符串数组赋值)
5.3 常用加密算法介绍
5.3.1 古典密码算法
古典密码大都比较简单,这些加密方法是根据字母的统计特性和语言学知识加
密的,在可用计算机进行密码分析的今天,很容易被破译。虽然现在很少采用,但
研究这些密码算法的原理,对于理解、构造和分析现代密码是十分有益的。表5-1
给出了英文字母在书报中出现的频率统计。
表5-1 英文字母在书报中出现的频率
字
母
频
率
字
母
频
率
A B C D E F G H I J K L M
13.05 9.02 8.21 7.81 7.28 6.77 6.64 6.64 5.58 4.11 3.60 2.93 2.88
N O P Q R S T U V W X Y Z
2.77 2.62 2.15 1.51 1.49 1.39 1.28 1.00 0.42 0.30 0.23 0.14 0.09
古典密码算法主要有代码加密、替换加密、变位加密、一次性密码簿加密等
几种算法。
1.代码加密
代码加密是一种比较简单的加密方法,它使用通信双方预先设定的一组有确切
含义的如日常词汇、专有名词、特殊用语等的代码来发送消息,一般只能用于传送
一组预先约定的消息。
密文:飞机已烧熟。
明文:房子已经过安全检查。
代码加密的优点是简单好用,但多次使用后容易丧失安全性。
2.替换加密
将明文字母表M 中的每个字母替换成密文字母表C中的字母。这一类密码包括
移位密码、替换密码、仿射密码、乘数密码、多项式代替密码、密钥短语密码等。
这种方法可以用来传送任何信息,但安全性不及代码加密。因为每一种语言都有其
特定的统计规律,如英文字母中各字母出现的频度相对基本固定,根据这些规律可
以很容易地对替换加密进行破解。以下是几种常用的替换加密算法。
1)移位密码是最简单的一类代替密码,将字母表的字母右移k个位置,并对字
母表长度作模运算,其形式为:e
k
(m)=(k+m)=c mod q,解密变换为:d
k
(c)=(m-k)=m
mod q。凯撒(Caesar)密码是对英文26个字母进行移位代替的密码,其q=26。这种
密码之所以称为凯撒密码,是因为凯撒使用过k=3的这种密码。
2)乘数密码也是一种替换密码,它将每个字母乘以一个密钥k,e
k
(m)=km mod
q,其中k和q是互素的,这样字母表中的字母会产生一个复杂的剩余集合,若是和
q不互素,则会有一些明文字母被加密成相同的密文字母,而且不是所有的字母都会
出现在密文字母表中。异或运算(XOR)也常用于替换加密,加密:c=m XOR k,解
密:m=c XOR k。
3)多名或同音替换。每个字母可加密或替换成多个密文字母,这种方法是一种
一对多的映射关系,可以挫败一般的频度分析攻击。
3.变位加密
变位加密不隐藏明文的字符,即明文的字母保持相同,但其顺序被打乱重新排
列成另一种不同的格式,由于密文字符与明文字符相同,密文中字母的出现频率与
明文中字母的出现频率相同,密码分析者可以很容易地由此进行判别。虽然许多现
代密码也使用换位,但由于它对存储要求很大,有时还要求消息为某个特定的长度,
因而比较少用。以下介绍几种常见的变位加密算法。
1)简单变位加密。预先约定好一组数字表示密钥,将文字依次写在密钥下,再
按数字次序重新组织文字实现加密,也有人喜欢将明文逆序输出作为密文。例如
密钥:5 2 4 1 6 3 (密文排列次序)
明文:信息安全技术
密文:技息全信术安
2)列变位法。将明文字符分割成个数固定的分组(如5个一组,5即为密钥!),
按一组一行的次序整齐排列,最后不足一组用任意字符填充,完成后按列读取即成
密文。如明文是:InformationSecurityTechnology,则分组排列为:
I n f o r
m a t i o
n S e c u
r i t y T
e c h n o
l o g y
则密文是:ImnrelnaSicoftethgoicynyrouTo ,这里的密钥是数字5。解密过程则是
按列排列密文,再按行读取即可。
3)矩阵变位加密。将明文中的字母按给定的顺序安排在一个矩阵中,然后用另
一种顺序选出矩阵的字母来产生密文。一般为按列变换次序,如原列次序为1234,
现为2413。如将明文Network Security按行排列在3×6矩阵中,如下所示:
1 2 3 4 5 6
N e t w o r
k S e c u
r i t y
给定一个置换:
,根据给定的次序,按5、2、6、4、1、3的列序重
新排列,得到:
5 2 6 4 1 3
o e r w N t
c u e k S
i y r t
所以,密文为:oerwNtc uekS i yrt。解密过程正好相反,按序排列密文后,通过
列置换再按行读取数据即可。
版权声明:本文标题:常用加密算法介绍 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/b/1714397054a678484.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论