您当前的位置:   首页 > 新闻中心
保护数据的各种加密算法和技术的比较
发布时间:2022-02-25 09:08:19   阅读次数:


数据安全是组织的重要组成部分之一;它可以使用各种方法来实现。加密密钥在数据的整个过程中起着重要的作用。数据加密将明文转换为编码形式(不可读),只有授权的人/方可以访问它。


市场上有许多算法可用于加密此类数据。加密数据已经安全了一段时间,但我们从不认为它是永久安全的。随着时间的推移,有人可能会窃取数据。

image.png

图:加解密过程


在本文中,我们考虑了各种用于提高数据安全性的加密算法和技术,即使用加密的信息安全。基于性能、硬件和软件效率、密钥大小、可用性、实现技术和速度的加密算法比较。


算法总结

我们使用 Eclipse IDE 将加密算法的测量速度与 Oracle JDK 中作为标准可用的各种其他算法进行比较,然后总结这些算法的多个其他特征。此处考虑的加密算法是AES(具有 128 位和 256 位密钥)、DES、3DES、IDEA 和BlowFish(具有 256 位密钥)。


算法的性能

下图显示了使用上述算法加密不同数量的 16 字节数据块所需的时间。

image.png

从一开始就必须注意,除了一些荒谬的点之外,为了安全而牺牲速度是不值得的。但是,获得的测量结果仍将帮助我们做出某些明智的决定。


算法的特点

表 1总结了每种加密算法的主要特征,我们认为这是对该算法当前安全状态的公平概述。

项目RSADES3DESAES
创建者1978 年,Ron Rivest、Adi Shamir 和 Leonard Adleman1975年由IBM
1978年由IBM2001年,Vincent Rijmen和Joan Daemen
密钥长度取决于模数 n 中的位数,其中 n = p*q56位168 位(k1、k2 和 k3)

112 位(k1 和 k2)

128、192 或 256 位
轮数1164810-128 位密钥,

12-192 位密钥,

14-256 位密钥。

块大小变量64位64位128位
密钥类型非对称分组密钥对称分组密钥对称分组密钥对称分组密钥
速度非常慢
安全性最不安全不够安全足够的安全性出色的安全性

表 1:常用加密算法的特点


比较

这些技术已根据以下内容进行了比较:

  • 用于加密和解密数据的 CPU 处理速度。

  • 密钥生成率。

  • 密钥大小。

  • 安全考虑。

  • 在实施的情况下,在硬件和软件上效率很高。

  • 在加密过程中保存数据所需的内存量。

  • 模型容纳的用户数。

  • 在密钥失效的情况下,模型恢复数据所需的时间。

  • 黑客可利用的时间进行各种类型的攻击。

  • 算法技术的复杂性。


image.png

图:基于百分比效率的加密算法对比


配方和案例研究

案例分析

对称密码使用相同的密钥进行加密和解密,因此发送方和接收方都必须知道并使用相同的密钥。所有密钥长度都被认为足以保护机密信息达到“机密”级别,“最高机密”信息需要 192 位或 256 位密钥长度。128 位密钥有 10 轮,192 位密钥有 12 轮,256 位密钥有 14 轮——一轮包括几个处理步骤,包括输入明文的替换、转置和混合,并将其转换为密文的最终输出。


AES 设计

image.png


轮数

填充是添加额外 Dummy 数据的方法。在消息的加密过程中,如果消息不能被块长度整除,则使用填充。例如,如果消息由 426个字节组成,我们需要 7 个额外的填充字节来使消息长 432 个字节,因为 432 可以被 16 整除。


AES 中可以使用三种密钥大小,并且根据密钥大小,AES 中的轮数会发生变化。AES 中的标准密钥大小为 128 位,轮数为 10。对于 AES 加密,会生成两个子密钥,并在第一轮中添加一个轮密钥。

No.密钥长度轮数
1128位10
2192位12
3256位14

对于 128 位,使用明文和 128 位密钥,进行 10 轮查找密文。第一步,每轮生成10个轮密钥,并有一个单独的轮密钥。但是在第一轮中,在该轮中添加了一个额外的轮密钥,即初始轮,然后开始转换。转换包括四个步骤。

  1. Substitute Bytes

  2. Shift Rows

  3. Mix Columns

  4. Add Round Key


下图解释了从明文到密文的所有加密阶段。

image.png


使用 AES 加密

AES 的加密阶段可以分为三个步骤:初始轮、主轮和最后轮。所有阶段都使用不同组合的相同子操作,如下所示:

  1. 初始回合添加回合密钥

  2. 主回合

    • Sub Bytes

    • Shift Rows

    • Mix Columns

    • Add Round Key

  3. 最后一轮:

    • Sub Bytes

    • Shift Rows

    • Add Round Key

  4. 添加Round Key

    这是直接在 AES 轮密钥上运行的 AES 加密的唯一阶段。在此操作中,轮的输入是与轮密钥异或的。


  5. Sub Bytes

    涉及将输入拆分为字节并通过替换框或 S-Box 传递每个字节。与 DES 不同,AES 对所有字节使用相同的 S-Box。AES S-Box 在伽罗瓦域 2 中实现逆乘法。


  6. Shift Rows

    对密码的 128 位内部状态的每一行进行移位。此阶段中的行指的是 AES 中内部状态的标准表示,它是一个 4×4 矩阵,其中每个单元包含一个字节。内部状态的字节被放置在矩阵中,从左到右跨行和向下列。


  7. 混合列

    通过混合输入来提供扩散。与 Shift Rows 不同,Mix Columns 执行按列而不是按行拆分矩阵的操作。与标准矩阵乘法不同,Mix Columns 执行每个伽罗瓦域 2 的矩阵乘法。


使用 AES 解密

要解密 AES 加密的密文,有必要以应用它们的相反顺序撤消加密操作的每个阶段。解密的三个阶段如下:

  1. 逆向最终轮

    • 添加Round密钥

    • 换行

    • 子字节

  2. 逆主回合

    • 添加Round Key

    • 混合列

    • 换行

    • 子字节

  3. 反向初始回合

    • 添加Round Key


揽阁信息可提供的部分安全产品和解决方案信息

联系揽阁信息,您可以获取到更多满足全球合规性要求的信息安全产品资料,以及相关的整体解决方案的相关资料。如:


您还可以得到揽阁信息所提供的优质服务。

揽阁信息 · 值得您信赖的信息安全顾问!


相关阅读

购买咨询电话
021-54410609