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

17 | 加密密钥是怎么来的?

你好,我是范学雷。
到目前为止,你已经跟我一起走了很长的路了。不知道这一路上,你有了哪些心得和体会?对密码学是不是多了很多新的认知和想法?这一讲,我们继续上路,踏足密码学的世界。
前几讲,我们花了很长时间讨论了对称密钥的算法,以及使用对称密钥算法要注意哪些陷阱。但是,不知道你有没有注意到,一直有一个悬而未决的问题。
我们要使用对称密钥算法,总得有对称密钥吧。那么,对称密钥是从哪儿来的?这是我们这一次要讨论的问题。

合格的对称密钥什么样?

对称密钥从哪里来的?在讨论这个问题之前,我们先要弄清楚另外一个问题。一个合格的对称密钥,应该满足什么样的条件呢?只有知道了需求,我们才能有解决的方案。

对称密钥的长度

还记得我们之前提到过的 AES-128 和 AES-256 算法吗?
其中的 128 和 256,指的是密钥的长度。也就是说,AES-128 需要 128 位的密钥,AES-256 需要 256 位的密钥。一般来说,一个对称密钥算法的密钥长度是固定的。这就是对称密钥的第一个要求:对称密钥的长度是由对称密钥算法确定的。
当然,这并不意味着一个对称密钥只能用于一个加密算法。一个对称密钥,一般可以用于任意一个对称密钥算法,只要这个对称密钥满足算法要求的密钥长度。比如一个 256 位的对称密钥,既可以用于 AES-256,也可以用于 ChaCha20。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

对称密钥的生成和保密是密码学中的重要问题,需要综合考虑安全性和实用性。文章介绍了对称密钥的两个主要来源:基于口令的密钥推导和使用随机数生成对称密钥。基于口令的密钥推导通过口令生成对称密钥,但由于口令的安全性有限,需要经常变换口令以提高安全性。另一方面,使用随机数生成对称密钥能够满足对称密钥的长度、强度和保密要求,但随机数无法被人脑记忆,需要计算机来管理和保密对称密钥。此外,文章还提到了使用口令生成对称密钥时需要注意重新加密已加密数据的问题,以及基于口令的密钥推导算法PBKDF2的常用性。总的来说,对称密钥的生成和保密需要综合考虑口令安全性、对称密钥的保护以及数据加密的实际需求。

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

全部留言(11)

  • 最新
  • 精选
  • 纳兰容若
    老师您好 文中讲到“解决这个问题,我们还要再添加一个环节。也就是使用推导出的密钥保护一个使用时间更长的密钥;而使用时间更长的密钥用来保护私密数据。” 其中的“使用时间更长的密钥”是指的是紧接着图中的“加密密钥”么,老师的意思是图中的“对称密钥”改变但“加密密钥”不变么 这里有些困惑,期待老师的解答

    作者回复: 是这样的。

    2021-11-01
    2
    1
  • 老师您好,请教个问题,我的程序多需要多个密钥,那么每个密钥的口令从哪里来呢?我的登录界面只有一个输入口令的框

    作者回复: 可以使用不同的salt,从口令衍生出不同的密钥。

    2023-05-04归属地:天津
    4
  • 董鹏
    老师,咨询下生成密钥的算法除了常用的 PBKDF2 还有哪些呢? 目前测试了下 采用PBKDF2 生成密钥对CPU和内存消耗比较大,有没有其他的可以推荐的

    作者回复: PBKDF2的消耗应该不算大,看看是不是算法实现的问题。

    2021-03-11
  • LXX
    老师好,关于思考题,使用数字 字母 以及下划线特殊字符来生成的口令,提高口令安全强度,是否可以。

    作者回复: 是一个办法,但是也难记。

    2021-01-26
  • 可怜大灰狼
    我们可以对验证加次数限制,ip限制,不可以输入生日等弱口令等。PBKDF要求的salt,如何保证多次是一样的salt的?

    作者回复: 限制是一个常用的方案。你设想一个具体的、有细节的场景,看看能不能根据场景构造出来一个每个人都一样,不同人的不同的的salt.

    2021-01-04
  • Geek_9c3134
    老师 我想用雪花算法生成的19位ID 算成一个字母加数字的邀请码 有什么好的办法

    作者回复: 19个字符的ID? 你不是已经发现了雪花算法了吗?你可以把雪花算法延长到你想要的位数,然后想办法把8位的字符映射到ID许可的字符就行了(参考BASE64的思路)。

    2021-01-01
  • qinsi
    提升生成密钥所需要的时间?如果生成1个口令对应的密钥需要1秒钟,生成10^6个口令对应的密钥就需要11天;如果生成1个需要1分钟,则生成10^6个需要两年

    作者回复: 如果生成1个需要1分钟,估计会影响用户体验。

    2021-01-01
  • ifelse
    一个合格的对称密钥,它的长度和强度要与对称密钥算法相匹配。--记下来
    2022-11-11归属地:浙江
  • ifelse
    学习打卡
    2022-11-11归属地:浙江
  • 马马虎虎
    口语化太多,不够技术范
    2022-06-09
收起评论
显示
设置
留言
11
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部