返回
Featured image of post 图解密码技术 —— 第十一章 - 秘钥

图解密码技术 —— 第十一章 - 秘钥

第 11 章 秘钥——秘密的精华

什么是秘钥?

秘钥:一个巨大的数字。

数字本身的大小不重要,重要的是秘钥空间的大小。 秘钥与明文是等价的。

常见的秘钥?

  • DES 秘钥:实质长度 56bit(7bytes)。
  • DES-EDE2 秘钥:实质长度 112bit(14bytes)。
  • DES-EDE3 秘钥:实质长度 168bit(21bytes)。
  • AES 秘钥:128/192/256bit

如何管理秘钥?

需要清楚:信息的机密性不应该依赖于密码算法本身,而是应该依赖于妥善保管的秘钥。

  • 生成秘钥:
    • 用随机数生成秘钥;
      • 密码学用途的伪随机数生成器必须是专门针对密码学用途而设计的。
    • 用口令生成秘钥;
  • 配送秘钥:
    • 事先共享秘钥;
  • 更新秘钥:
    • 定期更新,例如每发送 1000 字节数据更新一次。
    • 更新方式:将当前秘钥的散列值作为下一个秘钥。

这种防止破译过去的通信内容的机制,称为向后安全

  • 保存秘钥

    • 对秘钥进行加密:有助于减少需要保管的秘钥数量。
  • 作废秘钥

    • 为什么要作废秘钥?
      • 不再需要的秘钥及时作废,防止被解密。
    • 如何作废秘钥?
      • 彻底删除秘钥。

秘钥的分类?

  • 对称、非对称。
  • 用于认证、用于机密性。

Diffie-Hellman 秘钥交换

  • 实际并没有交换秘钥,而是通过计算生成相同的秘钥,因此也称为Diffie-Hellman秘钥协商

什么是基于口令的密码 (password based Encryption, PBE)?

  • 根据口令生成秘钥,再用秘钥进行加密的方法。
  • KEK:通过口令生成的秘钥。
  • CEK:通过随机数生成器生成的秘钥。

什么是盐?盐的作用是什么?

  • 盐:伪随机数生成器生成的随机数,和口令一起通过单向散列函数生成秘钥 (KEK)。
  • 作用:用来防御字典攻击。
    • 字典攻击:准备大量候选 KEK,逐一进行尝试。

什么是拉伸?

  • 拉伸:讲单向散列函数进行多次迭代的方法。
  • 通过拉伸可以改良 PBE。

如何生成安全的口令?

  • 使用只有自己才能知道的信息。(大原则)
    • 不要使用对自己重要的事物的名字。
    • 不要使用关于自己的信息。
    • 不要使用别人见过的信息。
  • 将多个不同的口令分开使用。
  • 有效利用笔记。
  • 理解口令的局限性。
    • 当对口令字符/长度进行限制时,秘钥的长度 (bit) 并不太长,可能可以通过暴力破解。
  • 使用口令生成器和管理工具。
相信美好的事情即将发生。
Built with Hugo
Theme Stack designed by Jimmy