DES 加密算法的改进方案

admin 2022年8月28日20:55:12评论20 views字数 5385阅读17分57秒阅读模式






摘要:

对称密码体系和非对称密码体系各有优缺点。探索一种两者结合的,既保留各自优点,又能最大限度地消除各自缺点的混合密码体系,对现代网络通信的高效性和安全性有着重要意义。使用非对称密码保护对称密码密钥是一种可行的方案。在此方案下,攻击者无法绕过对非对称密码密钥的破解而直接攻击对称密码的密文。这一方案的提出和论证,表明各种密码体系可以混合使用,取长补短,互为加固。

内容目录:
1 DES 算法
2 DES 算法的改进方案
2.1 改进方案的总体设计
2.2 改进算法详述
2.2.1 密文包的整体结构
2.2.2 对原始明文的预处理
2.2.3 密文包的头部结构
2.2.4 加密和解密流程
3 改进 DES 算法的抗攻击能力分析
4 结 语

数据加密算法是由 IBM 公司于 20 世纪 70年代早期开发的一种分组加密法,由于其具有数学上可证明的安全强度(以扩散模糊和扰乱模糊为特征),易于硬件实现的特点,已逐渐由理论走向实践应用,被广泛应用于通信行业和金融行业,并在 1977 年成为美国政府正式认可的数据加密标准(Data Encryption Standard,DES)。然而,DES 算法仍未解决所有对称加密算法共有的缺陷:对称密钥的分发要占用额外的安全信道。同时,随着计算机计算速度的提升,DES 算法对于穷举法攻击的抵抗能力被逐渐削弱。到了互联网加密流量爆发式增长的20 世纪 90 年代,网络通信中的主流数据加密算法是以 RSA 为代表的非对称加密体系。这种非对称加密算法具有密钥易于分配(不占用额外信道)的特点以及强大的抵抗穷举法攻击的能力。非对称加密体系的广泛应用,是技术进步和对信息安全需求提高所带来的必然结果。

如今,对称加密算法仍然应用于通信、经济等众多领域,并没有因为科技的发展而被淘汰。究其原因,是对称加密和非对称加密并不是两种互相对立、互相排斥的密码体系,它们各有优点和缺点,清晰地认识到它们的互补性,是构造相对完善的密码体系的关键。公钥密码体系虽具有易于分配密钥和难于被暴力攻击的优点,但这些优点是以牺牲效率为代价的。与对称算法相比,非对称算法在加密和解密时需要花费更多的时间 。这使得非对称算法在一些需要即时响应的应用场景中,如边缘计算,变得不再适用。这说明,要获得更高的安全强度,同时使算法效率不至于大幅降低,必须把两种密码体系有机结合。

本文选取了在现代密码算法中具有里程碑意义的对称加密算法 DES 作为研究对象,引入非对称密码体系的思想对其进行改进。本文提出的改进算法,除了保留 DES 算法原有优点,还具备非对称算法的所有优点,是一种适应现代网络通信的数据安全保护的密码算法。


01


DES 算法







DES 算法是一种分组密码,明文每 64 比特为一组,密钥为 64 比特,除去 8 比特奇偶校验位,实际密钥为 56 比特,因此密钥组合数量为 256 个。加密时,用同一密钥依次对每组明文进行加密,得到的每组密文也是 64 比特,因此最后得到的密文长度和明文长度一致。对每组等长明文加密时,密钥不变,算法也不变,因此 DES 十分适合以嵌入式硬件实现 [5]。DES 加密前先把明文用一个置换函数 IP 映射为初始密文。DES 加密算法由 16 轮迭代加密构成,每次迭代加密所用密钥由原始密钥循环左移得到,称为子密钥 K [6]。每轮迭代前,把上一轮迭代得到的密文(如果是第一轮迭代,加密对象是初始密文)分为左半 L(第 1~32 位)和右半 R(第33~64 位)。R 被当前子密钥加密为DES 加密算法的改进方案,f 为加密函数。DES 加密算法的改进方案和 L 异或运算后得到下一轮迭代的右半 R' 。下一轮迭代的左半 L' 由R 赋值,和 R 完全一致。16 轮迭代完成后得到的密文,经过一个置换函数DES 加密算法的改进方案映射后得到最终密文。解密算法和加密算法一致,密钥也一致,但每轮迭代所使用的子密钥的顺序和加密时相反。

经过 16 轮迭代的 DES 算法已被证明具有充分的对抗统计分析和线性分析的能力。因此,破解 16 轮迭代的 DES 密文的唯一途径是暴力破解,即用穷举法尝试所有的 256 个可能的密钥,这在 DES 算法刚提出时被认为是不可能完成的任务。但随着计算机运算速度的提高和并行计算技术的成熟,DES 的安全度被大大弱化。


02


DES 算法的改进方案







对 DES 算法的改进原则是使用 RSA 保护DES 密钥,同时在加密前,对明文增加乱序和干扰处理。

2.1 改进方案的总体设计

DES 算法的密钥是对称密钥,必须通过秘密信道传送。为了使其也能通过互联网等公开信道传送,必须使用公钥密码体系对其进行保护。最常用的公钥密码算法是 RSA,因此,我们可以把 DES 密钥“封装”在一个 RSA 加密的“头部”(Header)里,然后把这个头部附加在DES 密文前,成为一个密文包(Encrypted Data Packet),再把这个密文包发送给接收方。“封装”主要是指用接收方的公钥加密 DES 密钥。接收方收到密文包后,先以自己的私钥解密包头,取出 DES 密钥后,再用其解密密文包的数据部分(即 DES 密文),得到明文。

如果头部封装的信息仅仅是 DES 密钥,抗攻击意义并不大,仅解决了密钥通过公共信道分发的问题,攻击者仍然可以用穷举法对密文包的数据部分实施暴力破解。为了增加暴力破解的难度,密文包头部字段中必须包含一些有助于提高暴力破解难度的信息,并且不能显著影响密文包头的 RSA 解密效率。主要可以采取以下两个策略:(1)对明文预先进行乱序处理,扰乱(Confuse)明文的原来顺序;(2)在 DES加密前插入无效信息,攻击者只有在剔除这些无效信息后,才能得到有效的密文分组,并对此分组尝试暴力破解。

2.2 改进算法详述

改进算法包括密文包的结构、明文的预处理和加密流程,以及密文包的头部结构。

2.2.1 密文包的整体结构

密文包由头部和密文两个部分组成。由于头部是用 RSA 加密的密文,因此本文以“RSA 头”这一名称指代头部。明文通过 RSA 头中的密钥集加密后,生成密文部分。由于无效信息的插入,使密文部分和明文部分的长度不相等,大大增加了破解的难度。“密钥集”不仅是 DES 密钥,还包含了加密或解密流程中各阶段所使用的密钥,而 DES 加密或解密仅仅是其中一个阶段。为方便接收方把头部分离出来,RSA 头的长度是固定的,只能用接收方的私钥解密。

2.2.2 对原始明文的预处理

加密前需要对原始明文 P 进行预处理,详细流程如下文所述。

(1)分组。分组长度和 DES 加密的分组长度一致(64 位),最后一组不足 64 位的以 0 补足。

(2)分段。段是比组更高一级的单位,每段包含64个分组,最后一段不足64组的以0补足。

对预处理后的明文用 P0 表示,得出DES 加密算法的改进方案DES 加密算法的改进方案,其中DES 加密算法的改进方案为 P0 的 第 i 个 分 段,DES 加密算法的改进方案DES 加密算法的改进方案DES 加密算法的改进方案段的第 j 个分组),DES 加密算法的改进方案DES 加密算法的改进方案DES 加密算法的改进方案分组中的第 k 位)。

整个加密过程需经过 3 次加密,分别以 U,J,D 表示,每次加密后的密文分别以 A ,B ,C 表示。图 1 说明了 3 次加密之间的输入 / 输出关系。

DES 加密算法的改进方案

图 1 加密流程

2.2.3 密文包的头部结构

RSA 头包括 3 个关键字段和一些辅助字段(如图 2 所示)。关键字段分别存放 3 个密钥,对应加密流程的 U,J,C 这 3 个阶段。辅助字段主要存放控制和校验信息。这些字段的名称、长度和作用如下文所述。

DES 加密算法的改进方案

图 2 RSA 头的布局结构

(1)乱序密钥(Confusing Key,CK)。乱序密钥的作用是对每段明文进行重排(Reshuffle)。其长度为 64 个字节,每个字节最高位恒为 0,最低位为校验位,中间 6 位转化为 10 进制数后表示一个加密参数 ,DES 加密算法的改进方案i 为字节的序号。乱序加密算法为DES 加密算法的改进方案DES 加密算法的改进方案表明第i 组的密文由明文各组的第DES 加密算法的改进方案比特排列而成。其中,DES 加密算法的改进方案是第 m 组的第 n 位,满足DES 加密算法的改进方案(2)干扰密钥(Jamming Key,JK)。干扰密钥的作用是在密文 A 的每个分组中插入无效信息,以增加破解难度。其长度为 8 位,前6 位表示在分组中插值的位置DES 加密算法的改进方案,后两位是需要插入的值。如干扰密钥是DES 加密算法的改进方案DES 加密算法的改进方案,可以看出,干扰密钥前 6 位的 10 进制数值为 19,故J =19,二进制 10 会被插入到目标分组的第 19个比特前。干扰密钥只应用在密文 A 的第 1 个分组中,此后,它会发生动态变化。应用在密文 A 的第 2 个分组的干扰密钥将从第 1 个分组的明文中产生。方法是把一个 8 位的空字节(窗口)放置在明文第 1 个分组的起始位置(即 0号位),窗口的最高位对应分组的 0 号位,窗口显示的字节即为第 2 个分组的干扰密钥。同样地,把 8 位窗口放置在第 2 个分组的 1 号位,得到第 3 个分组的干扰密钥。以此类推,每次把窗口右移一位,即可得到下一分组的干扰密钥。如果窗口越过分组的右边界,则把越过的比特循环对应分组开始时的几个比特。这种插值法有一个缺陷,密文分组的长度固定是 66 位(因为插值固定是 2 位),使攻击者可以轻松地从密文中分离出有效分组,再对有效分组实施破解。为了使插值后的分组长度不固定,需要改变插值的长度,具体操作是从第 2 个分组开始,使算法中干扰密钥末两位的含义发生变化,由原来的“插值的内容”变化为“插值的位数”。插值的内容从窗口后截取,截取的长度就是末两位所指出的插值的位数。同样地,截取插值时把背景分组看成首尾相接的环。这样一来,插值长度可能是 0,1,2,3 其中之一。(3)DES 密 钥(DES Key,DK)。DES 密钥的作用、形式、应用方法和经典 DES 加密密钥一致,在 RSA 头占 64 位,它作用于干扰加密的结果 B ,产生密文C 。(4)标志位(Flags)。标志位占 2 位,分别指出在加密过程中是否使用了干扰加密和乱序加密。(5)摘要算法(Hash Algorithm,HA)。摘要算法占 6 位,对 RSA 头中特定部分应用本算法,得出摘要(Hash)字段的值。特定部分是指 RSA头中从起始到标志位(包括标志位)的部分,本文称为“上段”。这一字段最多可表示DES 加密算法的改进方案种摘要算法,包括常用的 MD5 信息摘要算法(MD5 Message-Digest Algorithm,MD5)、安全散列算法(Secure Hash Algorithm,SHA)等算法。(6)保留位(Reserved Bits)。未使用位,留待优化算法时使用。(7)摘要(Hash)。摘要是对 RSA 头上段应用“摘要算法”字段指定的散列算法而得到的哈希值,长 128 位。(8)校验值(Checksum)。校验值是密文部分的校验值,所用散列算法由“摘要算法”字段指定,长 128 位。

2.2.4 加密和解密流程

加密流程如下文所述。

(1)把原始明文 P 预处理为 P0 。(2)随机产生 3 个密钥,即 CK , JK ,DK 。(3)对 P0 应用CK ,得到 A 。(4)对 A 应用 JK ,得到 B 。(5)对 B 应用 DK ,得到C 。(6)填写 RSA 头各字段。(7) 计 算 并 填 写 摘 要(Hash) 和 校 验 值(Checksum)字段。(8)用接收方的公钥加密 RSA 头的明文,得到密文包的头部。(9)把密文包头部和密文 C 连接,整合成一个完整的密文包。

解密流程与加密流程各步骤的顺序相反,要注意以下几点。

(1)容易分离出密文包头部,因为它的长度是固定的 896 位。(2)在解密密文包头部时,须使用接收方的私钥。(3)对 B 应用 JK 时(清除无效信息),是从第 1 个分组开始,而不是相反地从最后一个分组开始。即先用 JK 恢复第 1 个分组,再用8 位窗口循环右移的方法得到第 2 个分组的干扰密钥,从而恢复第 2 个分组,以此类推。(4)对于加密前的预处理,没有逆算法,因而解密时不需要执行逆算法。


03


改进 DES 算法的抗攻击能力分析







本文提出的改进 DES 算法的密钥不再是单一的对称密钥,而是由 3 个互相独立的密钥CK ,JK ,DK 组成的密钥集,并受 RSA 密码的保护。即使通过穷举法暴力破解密钥集CK ,JK ,DK ,其面临的可能密钥组合数量为:DES 加密算法的改进方案DES 加密算法的改进方案,这个组合数量已经具备足够的强度来抵抗当前计算技术下可以实现的暴力破解攻击。

对于统计分析攻击的防御,DES 加密所实现的扩散模糊有效地抵御了基于统计的攻击。这是经典 DES 算法的优点之一 ,本文的算法完整保留了这一优点。

对于差分分析、线性分析等数学分析方法的防御,因为多重密钥必然会带来分析参数数量的暴增,使得数学分析难度加大 ,同时,分阶段的加密流程使本算法难以使用单一的数学分析方法破解。表明对称密码和非对称密码体系在应用中可以混合使用,取长补短,互为加固。


04


结 语







本文在经典的 DES 加密算法的基础上,提出了一种改进算法。其设计思想是用非对称密码算法保护 DES 密钥,产生“密钥外壳”,使加壳密钥和密文组成了防御破解的共同体;同时在 DES 加密的基础上,增加了乱序加密和干扰加密,其密钥同样受到密钥外壳的保护,使攻击者无法在不攻破密钥外壳的情况下,单独对密文实施暴力破解。然而,这种算法的软硬件实现方式和性能仍有待进一步评估和测试,这关系到它在何种范围、何种场景中才能得到实际的应用。

引用格式:黄伟 .DES 加密算法的改进方案 [J]. 信息安全与通信保密 ,2022(7):100-105.

作者简介 >>>

黄 伟,男,硕士,高级工程师,主要研究方向为应用密码技术、区块链技术。

选自《信息安全与通信保密》2022年第7期(为便于排版,已省去参考文献)


DES 加密算法的改进方案


商务合作 | 开白转载 | 媒体交流 | 理事服务 

请联系:15710013727(微信同号)

《信息安全与通信保密》杂志投稿

联系电话:13391516229(微信同号)

邮箱:[email protected]   

《通信技术》杂志投稿

联系电话:15198220331(微信同号)

邮箱:[email protected]


原文始发于微信公众号(信息安全与通信保密杂志社):DES 加密算法的改进方案

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年8月28日20:55:12
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   DES 加密算法的改进方案http://cn-sec.com/archives/1256720.html

发表评论

匿名网友 填写信息