密码学与用于实现它的算法一样强大。在现代密码学中,我们拥有基本的XOR函数,以及当今许多应用程序中使用的更复杂的算法。在这篇博文中,我将概述一些关键算法,包括安全哈希算法和 AES 算法。
让我们从定义 XOR(独占或)开始讨论,这是一种重要的逻辑操作,在许多(如果不是全部)加密算法中以各种身份使用。图 1 显示了此函数的工作原理。在深入研究算法之前,您需要了解此函数。
图1.此图显示了 XOR 函数的工作原理。
由于 XOR 的属性,其中一个输入可以用作进入另一个输入的数据的键。例如,如果 A 是加密密钥的单个位,则具有来自 B 的数据位的 XOR 在 A 为 1 时翻转该位。这可以通过再次使用密钥对加密结果进行按位 XOR 来逆转。
现在,让我们更详细地介绍安全哈希算法或 SHA。安全哈希函数获取可变大小的数据,并将其压缩为固定大小的位字符串输出,这一概念称为哈希。SHA 函数是一系列哈希算法,通过 NIST(美国国家标准与威廉希尔官方网站 研究院)的监督随着时间的推移而开发。SHA-3功能是最新的。
在接下来的部分中,我们将探讨 SHA 函数的工作原理,重点是 SHA-2 和 SHA-3。(SHA-1正在逐步淘汰,不建议用于任何新设计。
SHA-2 函数根据输出位长度有四种主要类型:
SHA-224 – 哈希长度为 224 位。
SHA-256 – 哈希长度为 256 位。
SHA-384 – 哈希长度为 384 位。
SHA-512 – 哈希长度为 512 位。
SHA-3 函数没有预定义的输出长度。输入和输出长度也没有最大值。但为了与 SHA-2 进行比较,让我们根据输出位长度定义四种主要类型。这些是:
SHA3-224 – 哈希长度为 224 位。
SHA3-256 – 哈希长度为 256 位。
SHA3-384 – 哈希长度为 384 位。
SHA3-512 – 哈希长度为 512 位。
让我们以 SHA3-256 为例。SHA-3使用Keccak海绵功能。就像海绵一样,第一步吸收或吸收输入信息。在下一阶段,输出哈希被挤出。图 2 是 SHA3-256 函数的框图。
图2.此图显示了用于安全哈希生成的 SHA3-256 函数的框图。
图 2 中的迭代函数接收 1600 位数据,然后使用特定算法对其进行 24 轮排列,然后将其作为 1600 位块传递到下一阶段。这种情况一直持续到吸收阶段完成。
吸收阶段完成后,最后一个 1600 位块将传递到压缩阶段。在这种情况下,由于 SHA3-256 输出哈希长度小于 1088 位,因此压缩阶段不需要任何迭代函数。我们从最后阶段获取前 256 位,这就是输出哈希。
例如,如果所需的哈希长度为 2500 位,我们将需要迭代函数的三个实例才能获得所需的长度哈希。
还有基于加密标准的算法,例如高级加密标准算法。AES 算法以可逆的方式根据输入密钥的值对输入数据进行加扰和替换,从而产生所谓的密文。由于 AES 算法是一种固定宽度的加密算法,因此首先填充输入消息以确保它完全适合“n”个 128 位块。
每个 128 位块与加密密钥一起输入加密算法。根据加密密钥中的位数,AES 算法执行一定数量的回合来掩盖输入块位。这种模糊是通过打乱数据位、获取部分数据并用查找表(如解码器轮)中的值替换它们来实现的,然后执行 XOR 操作以根据从输入加密密钥生成的一组“圆形密钥”中的位值将位从 0 翻转为 1。轮次密钥用于其中一个模糊轮次,并通过复制位并将副本插入其他位来“扩展”加密密钥的一部分来创建。
AES解密功能只是使用相同的加密密钥执行与加密功能中的操作相反的操作,以便对原始输入块数据进行解密。
这些只是为提供设计安全性而出现的一些加密算法。
审核编辑:郭婷
-
密钥
+关注
关注
1文章
138浏览量
19754 -
AES
+关注
关注
0文章
103浏览量
33225
发布评论请先 登录
相关推荐
评论