实用密码学
范学雷
前 Oracle 首席软件工程师,Java SE 安全组成员,OpenJDK 评审成员
14948 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 24 讲
开篇词 (1讲)
课前必读 (1讲)
案例分析 (1讲)
实用密码学
15
15
1.0x
00:00/00:00
登录|注册

07 | 怎么选择对称密钥算法?

你好,我是范学雷。
上一讲,我们讨论了什么是对称密钥,你还记得决定对称密钥系统安全性的两个关键因素吗?密钥的保密性和算法的安全性。和单向散列函数一样,我们也要分析如何选择对称密钥算法。
所以,有哪些算法是值得我们信任的呢?这就是我们这一次要解决的问题。首先,我们还是先来一起看看曾经流行的和现在流行的对称密钥算法。

数据加密影响性能吗?

像单向散列函数一样,我们可以把对称密钥算法也按照退役的、遗留的以及现行的算法来分类。
在下面的表格里,我给你总结了常见的一些算法,以及一些相关的信息。其中,计算性能参考的是 ECRYPT 性能基准测试在 2020 年 7 月对较长数据的运行结果。
对于不同的系统,这个计算性能数据差距可能很大,不过,它足以让我们有一个大致的感受。
(文末附各个算法的参考文献链接)
如果我们关注一下上表里的计算性能,每个字节的加密、解密运算需要大约 0.5 个时钟周期。你看这个数字,对比我们在前面提到的单向散列函数的计算性能,我们可以感受到,加密、解密运算是一种很快的运算。之后,我们还会交代非对称密钥的计算性能,你也会有同样的感受。
很快的运算,也是需要额外的运算的。对比数据不加密和数据加密,计算性能的影响到底有多大呢?这个答案当然依赖于具体的环境。不过,我们可以看一个最常见的场景,感受一下数据加密给计算性能带来的影响。这个场景就是我们常用的互联网 Web 服务。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

对称密钥算法在数据加密中起着重要作用,选择合适的算法对系统安全性至关重要。本文从对称密钥算法的选择、数据加密对性能的影响、序列算法和分组算法的区别等方面进行了深入讨论。 首先,文章介绍了对称密钥算法的分类和常见算法的性能对比,重点关注了计算性能和数据加密对性能的影响。通过对HTTPS协议的性能影响进行分析,指出数据加密对性能的影响并不显著,从而强调了数据加密的重要性。 其次,文章对序列算法和分组算法进行了比较,指出序列算法相对于分组算法具有更高的效率和便于使用的优势。在推荐对称密钥算法时,建议优先选择ChaCha20、AES-256和AES-128,但也提到了需要考虑数据分组的影响等其他因素。 最后,文章提出了思考题,鼓励读者在实际项目中搜索退役和遗留的对称密钥算法的使用情况,并提出建议。通过这些内容,读者可以快速了解对称密钥算法的选择原则、性能影响以及序列算法与分组算法的区别,为实际项目中的算法选择提供了指导和思考。 总的来说,本文通过对对称密钥算法的选择、性能影响和算法类型的讨论,为读者提供了全面的技术概览,帮助他们更好地理解和应用对称密钥算法。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《实用密码学》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(7)

  • 最新
  • 精选
  • Geek_d68bf9
    ChaCha20这名字为啥是这个,听起来不是很牛逼,反而有点喜感

    作者回复: 喜感从何而来? dance the cha-cha。

    2022-07-03
    1
  • Geek_e13bc6
    DES: RFC 1829

    作者回复: 谢谢帮助找到这个错误。 编辑,咱们改过来?

    2022-12-26归属地:美国
  • rocedu
    sm4应该排前面
    2022-03-18
    3
  • 全麦小面包
    有没有js的ChaCha20的加密资源啊?
    2021-02-04
    1
  • ifelse
    良好的性能,以及皮实的用法,这是我倾向于优先使用序列算法的两个基本原因。--记下来
    2022-11-04归属地:浙江
  • ifelse
    学习打卡
    2022-11-04归属地:浙江
  • 全麦小面包
    有没有js的ChaCha20的算法包啊? 下面试了一个: https://github.com/quartzjer/chacha20 结果生成的是56位的密文,比老师讲的256位差了200位。。。
    2021-02-04
    2
收起评论
显示
设置
留言
7
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部