数据安全是组织的重要组成部分之一;它可以使用各种方法来实现。加密密钥在数据的整个过程中起着重要的作用。数据加密将明文转换为编码形式(不可读),只有授权的人/方可以访问它。
市场上有许多算法可用于加密此类数据。加密数据已经安全了一段时间,但我们从不认为它是永久安全的。随着时间的推移,有人可能会窃取数据。
图:加解密过程
在本文中,我们考虑了各种用于提高数据安全性的加密算法和技术,即使用加密的信息安全。基于性能、硬件和软件效率、密钥大小、可用性、实现技术和速度的加密算法比较。
我们使用 EcliPSE IDE 将加密算法的测量速度与 Oracle JDK 中作为标准可用的各种其他算法进行比较,然后总结这些算法的多个其他特征。此处考虑的加密算法是AES(具有 128 位和 256 位密钥)、DES、3DES、IDEA 和BlowFish(具有 256 位密钥)。
下图显示了使用上述算法加密不同数量的 16 字节数据块所需的时间。
从一开始就必须注意,除了一些荒谬的点之外,为了安全而牺牲速度是不值得的。但是,获得的测量结果仍将帮助我们做出某些明智的决定。
表 1总结了每种加密算法的主要特征,我们认为这是对该算法当前安全状态的公平概述。
项目 | RSA | DES | 3DES | AES |
创建者 | 1978 年,Ron Rivest、Adi Shamir 和 Leonard Adleman | 1975年由IBM | 1978年由IBM | 2001年,Vincent Rijmen和Joan Daemen |
密钥长度 | 取决于模数 n 中的位数,其中 n = p*q | 56位 | 168 位(k1、k2 和 k3) 112 位(k1 和 k2) | 128、192 或 256 位 |
轮数 | 1 | 16 | 48 | 10-128 位密钥, 12-192 位密钥, 14-256 位密钥。 |
块大小 | 变量 | 64位 | 64位 | 128位 |
密钥类型 | 非对称分组密钥 | 对称分组密钥 | 对称分组密钥 | 对称分组密钥 |
速度 | 慢 | 慢 | 非常慢 | 快 |
安全性 | 最不安全 | 不够安全 | 足够的安全性 | 出色的安全性 |
表 1:常用加密算法的特点
这些技术已根据以下内容进行了比较:
用于加密和解密数据的 CPU 处理速度。
密钥生成率。
密钥大小。
安全考虑。
在实施的情况下,在硬件和软件上效率很高。
在加密过程中保存数据所需的内存量。
模型容纳的用户数。
在密钥失效的情况下,模型恢复数据所需的时间。
黑客可利用的时间进行各种类型的攻击。
算法技术的复杂性。
图:基于百分比效率的加密算法对比
对称密码使用相同的密钥进行加密和解密,因此发送方和接收方都必须知道并使用相同的密钥。所有密钥长度都被认为足以保护机密信息达到“机密”级别,“最高机密”信息需要 192 位或 256 位密钥长度。128 位密钥有 10 轮,192 位密钥有 12 轮,256 位密钥有 14 轮——一轮包括几个处理步骤,包括输入明文的替换、转置和混合,并将其转换为密文的最终输出。
填充是添加额外 Dummy 数据的方法。在消息的加密过程中,如果消息不能被块长度整除,则使用填充。例如,如果消息由 426个字节组成,我们需要 7 个额外的填充字节来使消息长 432 个字节,因为 432 可以被 16 整除。
AES 中可以使用三种密钥大小,并且根据密钥大小,AES 中的轮数会发生变化。AES 中的标准密钥大小为 128 位,轮数为 10。对于 AES 加密,会生成两个子密钥,并在第一轮中添加一个轮密钥。
No. | 密钥长度 | 轮数 |
1 | 128位 | 10 |
2 | 192位 | 12 |
3 | 256位 | 14 |
对于 128 位,使用明文和 128 位密钥,进行 10 轮查找密文。第一步,每轮生成10个轮密钥,并有一个单独的轮密钥。但是在第一轮中,在该轮中添加了一个额外的轮密钥,即初始轮,然后开始转换。转换包括四个步骤。
Substitute Bytes
Shift Rows
Mix Columns
Add Round Key
下图解释了从明文到密文的所有加密阶段。
AES 的加密阶段可以分为三个步骤:初始轮、主轮和最后轮。所有阶段都使用不同组合的相同子操作,如下所示:
初始回合添加回合密钥
主回合
Sub Bytes
Shift Rows
Mix Columns
Add Round Key
最后一轮:
Sub Bytes
Shift Rows
Add Round Key
添加Round Key
这是直接在 AES 轮密钥上运行的 AES 加密的唯一阶段。在此操作中,轮的输入是与轮密钥异或的。
Sub Bytes
涉及将输入拆分为字节并通过替换框或 S-Box 传递每个字节。与 DES 不同,AES 对所有字节使用相同的 S-Box。AES S-Box 在伽罗瓦域 2 中实现逆乘法。
Shift Rows
对密码的 128 位内部状态的每一行进行移位。此阶段中的行指的是 AES 中内部状态的标准表示,它是一个 4×4 矩阵,其中每个单元包含一个字节。内部状态的字节被放置在矩阵中,从左到右跨行和向下列。
混合列
通过混合输入来提供扩散。与 Shift Rows 不同,Mix Columns 执行按列而不是按行拆分矩阵的操作。与标准矩阵乘法不同,Mix Columns 执行每个伽罗瓦域 2 的矩阵乘法。
要解密 AES 加密的密文,有必要以应用它们的相反顺序撤消加密操作的每个阶段。解密的三个阶段如下:
逆向最终轮
添加Round密钥
换行
子字节
逆主回合
添加Round Key
混合列
换行
子字节
反向初始回合
添加Round Key
联系揽阁信息,您可以获取到更多满足全球合规性要求的信息安全产品资料,以及相关的整体解决方案的相关资料。如:
数据库访问控制:揽阁LGPAC系统
通用HSM:Luna HSM、ProtectServer HSM
支付HSM:payShield 10K
您还可以得到揽阁信息所提供的优质服务。
揽阁信息 · 值得您信赖的信息安全顾问!