常用加密算法介绍

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

穷举,即强行攻击(需要 255 次尝试)。此外,1990 年,Eli Biham 和 Adi Shamir 提出用“微分分析法”对 DES 进行攻击,实际需要 247 次尝试,也只有理论上的价值。 后来,有人提出一种明文攻击法——“线性逼近法”,它需要 243 对明文-密文对, 在这样强的要求条件下,要十多台工作站协同工作花费十几天才能完成攻击。表 5-2 为不同条件下 DES 攻击时间的预测。
围绕单钥密钥体制,密码学工作者已经开发了众多行之有效的单钥加密算法, 并且对基于这些算法的软硬件实现进行了大量的工作。常用的单钥加密算法有 DES 算法、IDEA 算法。
1.数据加密标准 DES 算法 DES 算法的发明人是 IBM 公司的 W.Tuchman 和 C.Meyer,于 1971-1972 年研制成 功。美国商业部的国家标准局 NBS 于 1973 年 5 月和 1974 年 8 月两次发布通告,公 开征求用于电子计算机的加密算法,经评选从一大批算法中采纳了 IBM 的 LUCIFER 方案,该算法于 1976 年 11 月被美国政府采用,DES 随后被美国国家标准局和美国国 家标准协会(American National Standard Institute,ANSI)承认。1977 年 1 月以
出现在密文字母表中。异或运算(XOR)也常用于替换加密,加密:c=m XOR k,解 密:m=c XOR k。
3)多名或同音替换。每个字母可加密或替换成多个密文字母,这种方法是一种 一对多的映射关系,可以挫败一般的频度分析攻击。
3.变位加密 变位加密不隐藏明文的字符,即明文的字母保持相同,但其顺序被打乱重新排 列成另一种不同的格式,由于密文字符与明文字符相同,密文中字母的出现频率与 明文中字母的出现频率相同,密码分析者可以很容易地由此进行判别。虽然许多现 代密码也使用换位,但由于它对存储要求很大,有时还要求消息为某个特定的长度, 因而比较少用。以下介绍几种常见的变位加密算法。 1)简单变位加密。预先约定好一组数字表示密钥,将文字依次写在密钥下,再 按数字次序重新组织文字实现加密,也有人喜欢将明文逆序输出作为密文。例如

古典密码算法主要有代码加密、替换加密、变位加密、一次性密码簿加密等 几种算法。
1.代码加密 代码加密是一种比较简单的加密方法,它使用通信双方预先设定的一组有确切 含义的如日常词汇、专有名词、特殊用语等的代码来发送消息,一般只能用于传送 一组预先约定的消息。 密文:飞机已烧熟。 明文:房子已经过安全检查。 代码加密的优点是简单好用,但多次使用后容易丧失安全性。 2.替换加密 将明文字母表 M 中的每个字母替换成密文字母表 C 中的字母。这一类密码包括 移位密码、替换密码、仿射密码、乘数密码、多项式代替密码、密钥短语密码等。 这种方法可以用来传送任何信息,但安全性不及代码加密。因为每一种语言都有其 特定的统计规律,如英文字母中各字母出现的频度相对基本固定,根据这些规律可 以很容易地对替换加密进行破解。以下是几种常用的替换加密算法。 1)移位密码是最简单的一类代替密码,将字母表的字母右移 k 个位置,并对字 母表长度作模运算,其形式为:ek (m)=(k+m)=c mod q,解密变换为:dk (c)=(m-k)=m mod q。凯撒(Caesar)密码是对英文 26 个字母进行移位代替的密码,其 q=26。这种 密码之所以称为凯撒密码,是因为凯撒使用过 k=3 的这种密码。 2)乘数密码也是一种替换密码,它将每个字母乘以一个密钥 k,ek (m)=km mod q,其中 k 和 q 是互素的,这样字母表中的字母会产生一个复杂的剩余集合,若是和 q 不互素,则会有一些明文字母被加密成相同的密文字母,而且不是所有的字母都会
5.3.2 单钥加密算法
传统加密方法的统计特性是此类算法致命的缺陷。为了提高保密强度,可将这 几种加密算法结合使用,形成秘密密钥加密算法。由于可以采用计算机硬件和软件 相结合来实现加密和解密,算法的结构可以很复杂,有很长的密钥,使破译很困难, 甚至不可能。由于算法难以破译,可将算法公开,攻击者得不到密钥,也就不能破 译,因此这类算法的保密性完全依赖于密钥的保密,且加密密钥和解密密钥完全相 同或等价,又称为对称密钥加密算法,其加密模式主要有序列密码(也称流密码) 和分组密码两种方式。
先进攻击技术
数周
数日
数小时
数毫秒
数微秒
数百年
数十年
数年
数小时
数秒钟
数千年
数百年
数十年
数日
数分钟
不可能
不可能
不可能
数百年
数百年
不可能
不可能
不可能
不可能
数千年
在 1977 年,人们估计要耗资 2000 万美元才能建成一个专门计算机用于 DES 的 解密,而且需要 12h 的破解才能得到结果。1997 年开始,RSA 公司发起了一个称作 “向 DES 挑战”的竞技赛。1997 年 1 月,用了 96 天时间,成功地破解了用 DES 加密 的一段信息;一年之后的记录是 41 天;1998 年 7 月,“第二届 DES 挑战赛(DES Challenge II-2)” 把破解 DES 的时间缩短到了只需 56h;“第三届 DES 挑战赛(DES Challenge III)”把破解 DES 的时间缩短到了只需 22.5h 。总之,随着各种针对 DES 新攻击手法的不断出现,DES 已感觉到了实际的威胁,也许 DES 即将完成其历史 使命。尽管如此,自 DES 正式成为美国国家标准以来,已有许多公司设计并推广了 实现 DES 算法的产品,有的设计专用 LSI 器件或芯片,有的用现成的微处理器实现, 有的只限于实现 DES 算法,有的则可以运行各种工作模式。
表 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
WX
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
数据加密标准 DES(Data Encryption Standard)的名称正式向社会公布,并于 1977 年 7 月 15 日生效。
DES 算 法 是 一 种 对 二 元 数 据 进 行 加 密 的 分 组 密 码 , 数 据 分 组 长 度 为 64bit(8byte),密文分组长度也是 64bit,没有数据扩展。密钥长度为 64bit,其中 有效密钥长度 56bit,其余 8bit 为奇偶校验。DES 的整个体制是公开的,系统的安 全性主要依赖密钥的保密,其算法主要由初始置换 IP、16 轮迭代的乘积变换、逆初 始置换 IP-1 以及 16 个子密钥产生器构成。56 位 DES 加密算法的框图如图 5-9 所示。
密钥:5 2 4 1 6 3 (密文排列次序) 明文:信息安全技术 密文:技息全信术安 2)列变位法。将明文字符分割成个数固定的分组(如 5 个一组,5 即为密钥!), 按一组一行的次序整齐排列,最后不足一组用任意字符填充,完成后按列读取即成 密文。如明文是:InformationSecurityTechnology,则分组排列为: Infor matio nSecu rityT echno logy 则密文是:ImnrelnaSicoftethgoicynyrouTo ,这里的密钥是数字 5。解密过程则是 按列排列密文,再按行读取即可。 3)矩阵变位加密。将明文中的字母按给定的顺序安排在一个矩阵中,然后用另 一种顺序选出矩阵的字母来产生密文。一般为按列变换次序,如原列次序为 1234, 现为 2413。如将明文 Network Security 按行排列在 3×6 矩阵中,如下所示: 123456 Networ k Secu rity
5.3 常用加密算法介绍
5.3.1 古典密码算法
古典密码大都比较简单,这些加密方法是根据字母的统计特性和语言学知识加 密的,在可用计算机进行密码分析的今天,很容易被破译。虽然现在很少采用,但 研究这些密码算法的原理,对于理解、构造和分析现代密码是十分有益的。表 5-1 给出了英文字母在书报中出现的频率统计。
图 5-9 56 位 DES 加密算法的框图
DES 加密算法框图明文加密过程如下: 1)将长的明文分割成 64 位的明文段,逐段加密。将 64 位明文段首先进行与密 钥无关的初始变位处理。 2)初始变位后结果,要进行 16 次的迭代处理,每次迭代的框图相同,但参加 迭代的密钥不同,密钥共 56 位,分成左右两个 28 位,第 i 次迭代用密钥 Ki 参加操 作,第 i 次迭代完后,左右 28 位的密钥都作循环移位,形成第 i+1 次迭代的密钥。 3)经过 16 次迭代处理后的结果进行左、右 32 位的互换位置。 4)将结果进行一次与初始变位相逆的还原变换处理得到了 64 位的密文。 上述加密过程中的基本运算包括变位、替换和异或运算。DES 算法是一种对称算 法,既可用于加密,也可用于解密。解密时的过程和加密时相似,但密钥使用顺序 刚好相反。 DES 是一种分组密码,是两种基本的加密组块替代和换位的细致而复杂的结合, 它通过反复依次应用这两项技术来提高其强度,经过共 16 轮的替代和换位的变换后, 使得密码分析者无法获得该算法一般特性以外更多的信息。对于 DES 加密,除了尝 试所有可能的密钥外,还没有已知的技术可以求得所用的密钥。 DES 算法可以通过软件或硬件实现。 DES 算法的安全性。DES 的出现是密码学上的一个创举,由于其公开了密码体制 及其设计细节,因此其安全性完全依赖于其所用的密钥,关于 DES 的安全问题,学 术界有过激烈的争论,普遍的印象是密钥仅有 56bit 有点偏短。Diffie 和 Hellman 曾设想花千万美元造一台专用机,渴望一天内找到 DES 的一个密钥,其基本思想是
分组密码是将明文消息编码表示后的数字序列 x1 ,x2 ,…,xi ,…,划分为 长为 m 的组 x=(xo ,xl ,…,xm-1 ),各组(长为 m 的矢量),分别在密钥 k=(ko ,k1 ,…, kL-1 )控制下变换成等长的输出数字序列 y=(yo ,y1 ,…,yn-1 )(长为 n 的矢量),其 加密函数 E:Vn ×K→Vn ,Vn 是 n 维矢量空间,K 为密钥空间。它与流密码不同之 处在于输出的每一位数字不是只与相应时刻输入的明文数字有关,而是还与一组长 为 m 的明文数字有关。在相同密钥条件下,分组密码对长为 m 的输入明文组所实施 的变换是等同的,所以只需要研究对任一组明文数字的变换规则。这种密码实质上 是字长为 m 的数字序列的代替密码。通常取 n=m,若 n>m,则为有数据扩展的分组密 码,若 n<m,则为有数据压缩的分组密码。
流密码是将明文划分成字符(如单个字母),或其编码的基本单元(如 0、 1 数字),字符分别与密钥流作用进行加密,解密时以同步产生的同样的密钥流解密。 流密码的强度完全依赖于密钥流序列的随机性和不可预测性,其核心问题是密钥流 生成器的设计,流密码主要应用于政府和军事等国家要害部门。根据密钥流是否依 赖于明文流,可将流密码分为同步流密码和自同步流密码,目前,同步流密码较常 见。由于自同步流密码系统一般需要密文反馈,因而使得分析工作复杂化,但其具 有抵抗密文搜索攻击和认证功能等优点,所以这种流密码也是值得关注的研究方向。
表 5-2 不同条件下 DES 攻击时间的预测
攻击者类型
密钥长度 计算资源
(假设)
40 bit 56 bit 64 bit 80 bit 128 bit
个人攻击 小组攻击 院校网络攻击 大公司
军事情报机构
1 台高性 能计算机
16 台高性 能计算机
256 台 高性 能 计算机
大型机
大型机
(百万美元级)及 (百万美元级)
给定一个置换:
新排列,得到:
,根据给定的次序,按 5、2、6、4、1、3 的列序重
526413 oerwNt c uekS
i yrt 所以,密文为:oerwNtc uekS i yrt。解密过程正好相反,按序排列密文后,通过 列置换再按行读取数据即可。
4.一次性密码簿加密 一次性密码簿加密具有代码加密的可靠性,又保持了替换加密的灵活性,密码 簿每一页都是不同的代码表,可用一页上的代码来加密一些词,用后销毁,再用另 一页加密另一些词,直到全部的明文完成加密,破译的唯一方法就是获取一份相同 的密码簿。 一次性密码簿加密,要求密码簿至少不小于明文长度,即不得重复用来加密明 文的不同部分,否则密文就会呈现出某种规律性,也就可能被破译。一般这种加密 方法只用于高度保密的场合下,因为如何将至少同长度的密码簿护送到接收端是一 个大代价的行动。
相关文档
最新文档