失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Security+ 学习笔记14 对称密码学

Security+ 学习笔记14 对称密码学

时间:2021-05-09 21:31:43

相关推荐

Security+ 学习笔记14 对称密码学

一、数据加密标准(DES)

现代对称算法比过去简单替换和换位密码要复杂得多(substitution and transposition ciphers )。最知名的对称算法之一是数据加密标准,即DES。DES是一种历史悠久的加密算法,由IBM在20世纪70年代设计并实施,目的是作为整个联邦政府非机密通信的标准加密算法。在这之前,不同的机构使用不同的算法,这造成了安全问题和互操作性问题。

DES的工作原理:

如下张图片显示了DES的基本功能。该算法将64比特的明文作为顶部的输入,然后通过被称为Feistel函数的加密操作,也就是带有F的黄色盒子,运行16次,以产生密文。这些F-boxes中的每一个都执行了替换和移位的组合功能。

每个F-box需要32位的块输入,并将其与一段加密密钥(Subkey)相结合。这发生在该图像中间的红色图标处:

然后,输出被分成八段,并被送入八个不同的函数,称为S-boxes,即那些标有S1至S8的黄色盒子。S代表替换(substitution),每个盒子都包含一个不同的替换密码。然后,所有这些替换的结果又被组合在一起,并被送入一个P-box,即这里的绿色盒子。P代表置换(permutation),这只是换位(transposition)的另一个术语。因此,所有这些S-boxes的输出都被扰乱了,从而产生输出。

这是一个相当复杂的加密算法。而且别忘了,Feistel函数内部的加密复杂性在任何输入块上都要重复16次。DES在整个政府和私营部门被广泛使用了几十年。但今天,它已不再被认为是安全的。数学家和密码学家已经发表论文,其中包含了对该算法的几种有效攻击,并且不再推荐使用它。

最后总结一下,DES是一种对称的加密算法。它是一种分组加密方式,使用56位的密钥在64位的区块上工作,它现在被认为是不安全的。

二、3DES

当研究人员发现DES算法变得不安全时,安全专家面临着两难的境地,因为还存在大量设计用于DES的旧设备。当政府努力采用新的高级加密标准时,世界各地的实用安全专家发现了一个工作方法,即在同一文本上多次使用DES算法,他们可以实现更大的安全性。具体来说,三轮DES加密产生的安全性比标准DES的安全性要强得多。他们把这种方法称为三重DES,有时写成3DES。以下是3DES的工作原理:

加密信息的人使用第一个DES密钥K1将其送入DES算法。这产生了用DES算法加密的密文。然后,将这密文一输出再次送入DES算法。这一次使用K2,产生了第二个经过双重加密的密文。然后,再将这一双重加密的密文输入DES,第三次使用第三把钥匙K3,产生最后的三层DES加密信息。然后,接收者将这一过程反过来,用第三把钥匙、第二把钥匙和第一把钥匙,按相反的顺序将信息送入解密功能。三重DES有三种不同的密钥选择:

在第一种方案中,K1、K2和K3是相互不同的。这是最强的方法,它导致了有效密钥强度为112比特的加密;在第二种方案中,K1和K3是相同的。这需要较少的密钥,但它将算法的强度降低到80比特;最后一个选项中,所有三个密钥都是相同的。这是对标准DES算法的模仿,并且它和标准方法一样不安全。它的出现是为了向后兼容DES,但它绝对不是一个好选择。

是一个问题:“为什么是三倍DES?为什么不直接使用两次DES?” 答案是,两次使用该算法会受到一种攻击,即所谓的中间相遇攻击(Meet-in-the-middle attack)。这使得它并不比标准DES算法更安全。最近的密码学研究发现了3DES的新缺陷,削弱了算法的安全性。由于这个原因,政府不再推荐使用3DES,并在政府应用中逐步淘汰它。

总结一下,与DES一样,它是一种对称加密算法,也是在64位块上工作的块密码。当与三个密钥一起使用时,3DES的有效密钥长度为112比特,但该算法的弱点现在意味着它正在被逐步淘汰。

三、AES,Blowfish,以及Twofish

还有许多其他的对称算法可以满足组织的现代加密需求。其中三种是高级加密标准(AES)、Blowfish和Twofish。

1.AES:

高级加密标准,或称AES,是由美国国家标准和技术研究所领导的一场竞争的结果,目的是用一个更安全的替代方案取代数据加密标准(DES)。这次竞赛包括五种算法,获胜者是一种叫做Rijndael的算法,现在它被称为AES。与DES一样,AES使用替换和换位功能的组合来实现强加密。今天,AES被广泛用于许多不同的加密应用中,从网络安全到加密的语音通信。

AES是一种对称算法,它也是一种区块密码。与DES和3DES的64位块不同,AES在128位块上工作。AES允许三种不同的密钥长度。你可以选择128位密钥,192位密钥,或256位密钥,所有这些都被认为是安全的。

2.Blowfish:

Blowfish是另一种对称加密算法。它是一种完全公共领域的算法,由密码学专家布鲁斯-施奈尔于1993年开发。Blowfish被设计为DES的潜在替代者之一。和DES一样,Blowfish使用的是Feistel网络,结合了替换和换位操作。

Blowfish作为分组密码在64位区块上工作,我们可以使用任何你想要的密钥长度,只要它属于32至448位的范围。目前,Blowfish不再被认为是安全的,因为已知有针对一些弱加密密钥(weak encryption keys)的攻击,因此不再建议使用。

3.Twofish:

Twofish算法是AES竞赛中的竞争对手之一,最终输给了Rijndael。施奈尔领导了一个开发这种算法的大型团队,他把这种算法放到了公共领域,允许全世界免费使用。就像目前为止讨论的其他算法一样,Twofish依靠Feistel网络进行保密,它结合了替换和换位。

Twofish是一种对称加密算法,在128位的块上工作,使用128、192或256位的密钥长度。Twofish至今仍被认为是安全的加密方式。

四、RC4

RC4是一种对称流密码(Symmetric stream cipher),被广泛用于加密网络通信。1987年由RSA安全公司的著名密码学家罗恩-里弗斯特发明,RC4作为一种专有的商业秘密算法,直到1994年有人在互联网上泄露了它。由于该算法不受专利保护,因此它在公共领域中可用。

作为一个强大而高效的流密码,RC4被广泛用于各种基于网络的加密方案中多年。在无线网络方面,有线等效隐私、WEP协议和wifi保护访问、WPA协议都允许使用RC4。在应用层,安全套接字层SSL和其替代的传输层安全TLS都允许使用RC4作为其基础加密算法。

RC4流密码的工作原理是创建一个比特流(Bitstream),作为加密密钥使用。这个流看似随机,但它不完全是随机的,因为它是用选定的加密密钥初始化的,这使得流的发送方和接收方都有可能使用相同的密钥来生成相同的密钥流。多年来,有许多人试图破解RC4密码学,但大多数都没有严重到危害该算法的整体安全性。然而,该算法在达到了一个不幸的转折点,当时安全研究人员在RC4中展示了一系列致命的缺陷。现在人们普遍认为,政府情报机构可能有能力破解RC4的加密,大多数安全专家建议不要使用该算法。

最后总结一下,RC4是一种对称加密算法,一种流密码。RC4允许40到2048位之间的可变长度的密钥,但它不再被认为是在现代网络上使用是安全的。

五、密码算法的使用模式(Cipher modes)

分组加密(Block ciphers)以各种不同的模式工作。密码算法的使用模式只是描述了加密算法与它正在加密的每块明文或正在解密的密文的互动方式。如下是几种常见的密码模式:

电子密码本(Electronic Codebook),或ECB模式,可能是最直接的密码算法的使用模式。该模式模拟了一个数字密码本,为每个可能的输入提供了一个加密的版本。

例如,如果我们有一个192位的信息要加密,而我们使用的是64位的块状密码,该算法将信息分成三个块,并完全独立地处理每个块。它取第一块,使用加密算法用加密密钥对其进行加密,产生第一个密文块。然后,它转到第二个明文块,用同样的密钥对其进行加密,产生第二个密文块。然后,它对第三个明文块重复这一过程,产生第三个密文块。如果如果在ECB模式下用相同的密钥多次加密同一块,我们将得到相同的密码文本。这是这种模式的一个关键缺点,因为它使密码分析攻击更容易。

密文分组链接(Cipher Block Chaining),或CBC模式,试图通过使一个区块的加密依赖于所有先前区块的加密来解决ECB模式的缺点。它通过将前一个加密区块输入到下一个区块的加密中来实现这一点。我们以与ECB模式相同的方式开始,将我们的明文分成64位块。然后,我们使用XOR 操作将第一个区块与一个初始化向量结合起来。这个初始化向量只是为了让我们开始。然后,该算法使用加密密钥对明文和初始化向量的XOR组合进行加密,得到第一个密文块:

然后,当我们进入第二个区块时,我们不使用初始化向量,而是将第二个明文区块与第一个密文区块进行XOR,然后我们对该组合进行加密,以获得第二个密文块:

然后我们进入第三个明文区块,第二个密文块再与第三个明文区块结合并加密,得到第三个密文块,以此类推。

计数器模式(Counter Mode)或CTR模式执行的加密方式有些不同。它从明文和两个值开始,一个是随机产生的值,称为nonce,另一个是计数器(counter),从零开始,在每次加密操作中递增。

首先用用加密密钥对计数器上的nonce创建的值进行加密,并将所得值与明文进行XOR,得到第一个密文块。当我们到达第二个明文块时,计数器的值被增加到1,我们重复之前的操作,得到第二个密码文本块。

我们对第三个明文块做同样的事情,计数器的值为2。

伽罗瓦/计数器(Galois/Counter)模式,或称GCM,是计数器模式的一个变种,它在密码过程中加入了认证,补充了ECB、密文CBC和传统的CTR的保密能力。我们应该了解这样一个事实:一些密码模式整合了认证,而另一些则是未经认证的,需要来自应用程序、操作系统或其他来源的单独认证能力。我们还需要应该记住的另一件重要事情是,计数器模式是一种功能,它允许分组加密更像一个流密码。

六、隐写术(Steganography)

隐写术是将信息隐藏在另一个文件中,使其不为肉眼所见的过程。这是一门在众目睽睽之下隐藏信息的艺术,对于那些不想让别人知道他们甚至在进行交流的人来说,这是一种特别有价值的交流保密工具。最常见的隐写术技术之一是在图像文件中隐藏文本。图像文件相当大,包含数百万个单独的像素,每一个像素都有单独的颜色阴影。这就是我们用百万像素来谈论照片的分辨率的原因。一张3000万像素的图片有3000万个独立像素。隐写术对这些像素进行轻微的修改,也许将一个像素的阴影调整一到两个色调,为其他信息创造一个隐藏空间。如果隐写术对这3000万个像素中的几千个像素的色调进行了轻微的调整,那么在现实中你永远无法注意到这种不同。然而,如果有合适的软件,就能知道该图像包含嵌入文本的人可以检索到它。

参考资料来源:

/learning/paths/become-a-comptia-security-plus-certified-security-professional-sy0-601

如果觉得《Security+ 学习笔记14 对称密码学》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。