侧边栏壁纸
博主头像
Easy to understand and humorous

行动起来,活在当下

  • 累计撰写 39 篇文章
  • 累计创建 4 个标签
  • 累计收到 2 条评论

目 录CONTENT

文章目录

对称加密算法概述

fengyang
2025-07-19 / 0 评论 / 0 点赞 / 10 阅读 / 0 字 / 正在检测是否收录...
温馨提示:
部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

采用单秘钥密码系统的加密方法,同一个密钥用来加密和解密。

常见的对称加密算法有 DES,3DES,AES,Blowfish,RC2,RC4,RC5, SM4、IDEA、ARIA(128,192,256)等。

对称加密算法比较

AES在加解密速度上具有显著优势,而SM4和DES的性能相对较慢,尤其在处理大型文件时,这种差距更为明显。 (快 -- 较快 -- 较慢 -- 慢)

名称 密钥长度 分组长度 加密轮数 运行速度 安全性 资源消耗 算法结构
DES 56位 64位 16 较快 Feistel
3DES 168位 64位 16 Feistel
AES-128 128位 128位 10 SPN
AES-192 192位 128位 12 SPN
AES-256 256位 128位 14 SPN
SM4 固定128位 128位 32 较慢 非平衡Feistel
RC2
RC4
RC5
名称 优点 缺点 破解方式 使用场景
DES 算法公开、计算量小、加密速度快、效率高; 1,如果双方都持有秘钥,安全无法保证;2,秘钥安全保护成本高,管理困难; 暴力破解、穷举 普通数据加密
3DES 算法公开、计算量小、加密速度快、效率高; 1,如果双方都持有秘钥,安全无法保证;2,秘钥安全保护成本高,管理困难; 难度大 普通数据加密
AES 分组模式选择多,加密安全; 同DES类似,密码管理都是问题; 暴漏过线性密码攻击、查封密码攻击,难度大 普通数据加密

3DES (Triple DES)

3DES是基于原始DES(Data Encryption Standard)的加强版本,为了解决DES的相对较弱的安全性:

分组大小: 3DES也使用64位(8字节)的数据块,但由于内部处理,有效数据密钥长度是112或168位。 密钥大小: 原始DES的密钥是56位,但3DES可以使用两个或三个56位密钥,总共112或168位。 轮数: 3DES执行3次DES加密过程,每次使用不同的密钥(如果使用3个密钥)。 安全性: 3DES的安全性高于DES,但低于AES和SM4,因为存在一些针对3DES的特定攻击。 性能: 3DES的加解密速度较慢,尤其是在软件实现中。硬件加速可以提高性能,但仍然不如AES或SM4。

SM4

SM4是中国国家密码管理局于2006年公布的一种对称加密算法,主要用于商业和政府用途。

它是一种分组密码,其特点如下: 分组大小: SM4的块大小是128位(16字节)。 密钥大小: 128位(16字节)。 轮数: SM4执行32轮非线性变换,每轮包含四个不同的操作:字节替换、行移位、列混淆和轮密钥加。 安全性: 由于SM4的设计和AES类似,它的安全强度被认为与AES相当,可以抵抗已知的密码攻击方法。 性能: SM4的加解密速度通常较快,特别是在硬件加速下,能够达到很高的吞吐量。

AES (Advanced Encryption Standard)

AES是目前最广泛使用的对称加密标准:

分组大小: AES有128位的块大小。 密钥大小: 支持128、192和256位的密钥,提供不同级别的安全性。 轮数: 根据密钥长度,AES执行10、12或14轮迭代。 安全性: AES被认为是目前最安全的分组加密算法之一,尚未发现实际的破解方法。 性能: AES的加解密速度通常快于3DES,特别是在硬件支持下,如AES-NI(AES指令集扩展),性能可显著提升。

工作过程

工作过程

该方式的隐患很明显,如果密钥被别人知道了,那么数据传输也就不安全了。

优点

通常情况下,在通用计算机中,相比非对称加密算法,对称加密算法效率会明显比较高。

加密计算量小,速度快,适合对大量数据进行加密的场景。比如在https协议中证书的传递用的非对称加密,数据传递用的是对称加密。

缺点

密钥传输问题

由于对称加密的加密和解密使用的是同一个密钥,所以对称加密的安全性就不仅仅取决于加密算法本身的强度, 更取决于密钥是否被安全的保管,因此加密者如何把密钥安全的传递到解密者手里,就成了对称加密面临的关键问题。

密钥管理问题

随着密钥数量的增多,密钥的管理问题会逐渐显现出来。

比如我们在加密用户的信息时,不可能所有用户都用同一个密钥加密解密,这样的话,一旦密钥泄漏, 就相当于泄露了所有用户的信息,因此需要为每一个用户单独的生成一个密钥并且管理,这样密钥管理的代价也会非常大。

0

评论区