1.五种针对加密信息的攻击模型
今天记录一下根据密码分析者知道信息的多少,密码学中分为常见的几种攻击模式,以及它们主要用于什么场合。
在介绍攻击模式之前,首先需要了解攻击者想要的是什么?它们想要明文消息,想知道加密的算法。然而,更多的是密钥。大多数情况下,我们认为加密算法是公开的。
唯密文攻击
唯密文攻击是最容易防范的,攻击者已知的信息是“加密算法”和“密文”—最少的信息量。这种情况实际上是比较常见的,因为攻击者面对实际的情况一般会是:得知一些明文的数据格式或者能捕获到一些明文以及其对应的密文。
已知明文攻击
已知明文攻击中分析者还得知了“用与待解的密文同一密钥加密的一个或多个明密文对”。比较常见的例子是“可能词攻击”,如果攻击者处理一些特定的信息,他可能知道其中的一些信息,比如电子金融消息往往有标准化的文件头或者标志,一个完整的会计文件放在文件最前面的关键词应该是固定的。这样大大减小了破解的难度,而且在这种环境下我们要求加密一定不能是线性的,否则就可以通过一部分对应关系推出了全局的关系,保密性将不复存在。
选择明文攻击
选择明文攻击中分析者可以获取“自行选择的一些明文以及对应的密文(在统一密钥环境下)”。如果分析者能够通过某种方式获得信源系统,让发送方在发送的消息中插入一端由他选择的信息就可以实现选择明文攻击。一个例子就是差分密码分析(通过分析特定明文差分对相对应密文差分影响来获得尽可能大的密钥。它可以用来攻击任何由迭代一个固定的轮函数的结构的密码以及很多分组密码(包括DES),它是由Biham和Shamir于1991年提出的选择明文攻击。- 来自百度百科)
详细可以了解 差分分析
选择密文攻击
选择密文攻击中分析者可以选择获得一些密文以及对应的明文,这种攻击主要攻击公开密钥密码体制,特别是攻击其数字签名。
选择文本攻击
此时攻击者获得了更强的攻击能力,在攻击时不仅可以构造多个明文获取相应的密文,还可以构造多个密文获取相应的明文。也就是以上两种攻击的结合体。
2.DES加密
1.基本与原理
DES是个块加密法,按64位块长加密数据,即把64位明文作为DES的输入,产生64位密文输出。加密与解密使用相同的算法和密钥,只是稍作改变。密钥长度位56位,下图显示了DES的工作原理:
DES使用56位密钥。实际上,最初的密钥是64位,但在DES过程开始之前放弃密钥的第8位,从而得到56位密钥,即放弃第8、16、24、32、40、48、56和64位。放弃之前,可以用这些位进行奇偶校验,保证密钥中不包含任何错误。
简单地说,DES利用加密的两个基本属性:替换和变换。DES一共16步,每一步称为一轮,每一轮进行替换与变换步骤,下面介绍DES的主要步骤:
(1)首先将64位明文块送入初始置换函数。
(2)对明文进行初始置换。
(3)初始置换产生转换块的两半,假设为左明文(LPT)和右明文(RPT)。
(4)每个左明文与右明文经过16轮加密过程,各有各的密钥。
(5)最后,将左明文和右明文重新连接起来,对组成的块进行最终置换。
(6)这个过程的结果得到64位密文。
其过程如下图:
2.初始置换
初始置换只发生一次,是在第一轮之前进行的,指定初始置换中的变换如何进行,如下表所示。例如,它指出初始置换将原明文块中的第一位换成原明文块的第58位,第二位换成明文块的第50位,等等,这只是把明文块的进行移位。
| 明文块中各个位置 | 初始置换后的内容 |
| ---------------- | ---------------- |
| 1 | 58 |
| 2 | 60 |
| 3 | 42 |
| … | … |
| 64 | 7 |
上表显示了IP使用的一部分变换规则表。IP完成后,得到的64位置换文本块分成两半,各32位,左块称为左明文(LPT),右块称为右明文(RPT)。然后对这两块进行16轮操作。
3.DES的一轮
DES的每一轮包括如下图所示的所有步骤:
第一步:密钥交换
最初的64位密钥通过放弃每个第8位而得到的56位密钥。这样,每一轮有56位密钥。每一轮从这个56位密钥产生不同的48位子密钥,称为密钥交换。为此,56位密钥分成两半,各为28位,循环左移一位或两位。例如,可以用下表显示每一轮移动的密钥位数:
| 轮次 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| -------------- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- |
| 移动的密钥位数 | 1 | 1 | 2 | 2 | 2 | 2 | 2 | 2 | 1 | 2 | 2 | 2 | 2 | 2 | 2 | 1 |