• 1.摘要
  • 2.基本信息
  • 3.特点
  • 4.加密标准
  • 5.破解方法
  • 6.引药支架
  • 7.参考资料

数据加密算法

数据加密算法(Data Encryption Algorithm,DEA)是一种对称加密算法,很可能是使用最广泛的密钥系统,特别是在保护金融数据的安全中,最初开发的DEA是嵌入硬件中的。通常,自动取款机(Automated Teller Machine,ATM)都使用DEA。它出自IBM的研究工作,IBM也曾对它拥有几年的专利权,但是在1983年已到期后,处于公有范围中,允许在特定条件下可以免除专利使用费而使用。1997年被美国政府正式采纳1

基本信息

  • 中文名

    数据加密算法

  • 外文名

    Data Encryption Algorithm

  • 类别

    计算方法

  • 时间

    1997年

特点

密码算法是加密算法和解密算法的统称,它是密码体制的核心。密码算法可以看成一些交换的组合。当输入为明文时,经过这些变换,输出就为密文。这是加密交换的过程,此时密码算法称为加密算法。反之,当输入为密文时,经过密码变换,输出为明文,这就 是解密交换的过程,此时密码算法称为解密算法。常用加密算法为:AES 、 RSA/ECC 、Diffie-hellman 、 SHA-1/SHA-256 。

加密标准

DES的原始思想可以参照二战德国的恩尼格玛机,其基本思想大致相同。传统的密码加密都是由古代的循环移位思想而来,恩尼格玛机在这个基础之上进行了扩散模糊。但是本质原理都是一样的。现代DES在二进制级别做着同样的事:替代模糊,增加分析的难度。

加密原理

数据加密算法

DES 使用一个 56 位的密钥以及附加的 8 位奇偶校验位(每组的第8位作为奇偶校验位),产生最大 64 位的分组大小。这是一个迭代的分组密码,使用称为 Feistel 的技术,其中将加密的文本块分成两半。使用子密钥对其中一半应用循环功能,然后将输出与另一半进行“异或”运算;接着交换这两半,这一过程会继续下去,但最后一个循环不交换。DES 使用 16 轮循环,使用异或,置换,代换,移位操作四种基本运算。

三重 DES

DES 的常见变体是三重 DES(3DES),使用 168 (56*3)位的密钥对资料进行三次加密(3次使用DES)的一种机制;它通常(但非始终)提供极其强大的安全性。如果三个 56 位的子元素都相同,则三重 DES 向后兼容 DES。

破解方法

攻击 DES 的主要形式被称为蛮力的或穷举,即重复尝试各种密钥直到有一个符合为止。如果 DES 使用 56 位的密钥,则可能的密钥数量是 2 的 56 次方个。随着计算机系统能力的不断发展,DES 的安全性比它刚出现时会弱得多,然而从非关键性质的实际出发,仍可以认为它是足够的。不过 ,DES仅用于旧系统的鉴定,而更多地选择新的加密标准 —高级加密标准(Advanced Encryption Standard,AES)。

新的分析方法有差分分析法和线性分析法两种

Crackme分析

本期Crackme用到MD5及DES两种加密算法,难度适中。这次我们重点来看一下DES的加密过程及注册算法过程。用调试器载入程序,下GegDlgItemTextA断点,可以定位到下面代码,我们先来看一下整个crackme的注册过程:

由于代码分析太长,故收录到光盘中,请大家对照着分析(请见光盘“code1.doc”)

从上面分析可以看出,注册过程是类似:f(机器码,注册码)式的两元运算。机器码是经过md5算法得到的中间16位值,注册码是经过DES解密过程取得16位注册码,然后两者比较,如相等,则注册成功。机器码的运算过程可以参照上一期的MD5算法来理解。下面重点来说一下注册码DES的运算过程。

1、密钥处理过程:一般进行加解密过程都要初始化密钥处理。我们可以跟进004023FA CALL Crackme1.00401A40这个call,可以看到如下代码:

…(省略)...

00401A4D LEA ECX,DWORD PTR DS:[ECX]