如何解释特定的 NIST 800-57 加密周期建议?

信息安全 加密
2021-09-03 06:37:38

我们不确定如何解释NIST 800-57的特定部分——也就是说,当发起者使用和接收者同时开始使用时,对称密钥加密周期应该有多长。 简短的版本是,不清楚加密周期是否可以在发起者使用终止后延长三年,无论接收者使用何时开始,或者最大加密周期是否与发起者使用和接收者的最大接收者使用期限相同-使用同时开始。

设置

敏感数据正在使用对称密钥进行加密。数据正在积极使用中,因此一旦密钥的发起者开始使用,接收者也必须开始使用。

问题

对称加密密钥定期轮换​​,使得在任何给定时间一个密钥供发起者使用(例如,加密新数据)而多个密钥供接收者使用(例如,解密现有数据)。但是,根据 NIST 800-57,密钥不能无限期地保留在收件人使用中。因此,我们的问题是确定何时必须终止接收者对密钥的使用,并使用过时的密钥对所有数据进行成本较高的重新加密(如 NIST 800-57 5.3.5 中所述,“如果所需的安全寿命超过加密期限,则需要使用新密钥重新应用保护。”)

NIST 800-57 是一个曲折的小隐周期迷宫,完全不同

NIST 800-57 中有许多声明涉及到这个问题,它留下了足够的模糊性,我们已经争论了一段时间:)。请允许我列出我们分配给它们的各种陈述和解释。如果在那之后,你能帮我理解我们什么时候必须把钥匙从这个洞穴里拿出来。

5.3.5,第 48 页-“对称密钥的(总)“加密周期”是从发起者使用期开始到接收者使用期结束的时间段,尽管发起者使用期有历史上被用作密钥的加密周​​期。” (强调我的)

5.3.5.b,第 49 页- “当使用对称密钥保护存储的信息时,发起者使用期(当发起者对存储的信息应用加密保护时)可能比接收者使用期(当存储的信息被处理)。在这种情况下,加密周期从授权应用密钥保护的初始时间开始,到授权使用该密钥进行处理的最晚时间结束。 “(强调我的)

5.3.6.6.b,第 52 页- “用于加密少量信息的加密密钥可能具有长达一个月的原始使用期限。” 此处引入了一个细微的歧义,即 5.3.6.6.b 表示对称数据加密密钥的最大 OUP(发起者使用期限)为 1 个月,但总结本节的 56 上的表 1 表示对称数据加密密钥的最大 OUP是 2 年。在这种情况下,我们只是假设表格对文本具有权威性,因为我们认为它更符合实际使用情况。

5.3.6.6.b,第 52 页- “建议在发起者使用期结束后最长 3 年的接收者使用期。” (强调我的)这是关键的歧义 - 本节暗示通过将 RUP(收件人使用期)延长到 OUP 结束后的固定时间来达到最大加密期,而不是让 RUP 延长固定时间超过开始时间无论与 OUP 有多少重叠。倒计时是从 RUP 开始还是在 OUP 结束时开始的?

选择

NIST 800-57 表 1

所以 - 假设对于对称数据加密密钥,让我们使用 6 个月的 OUP(根据表 1 是允许的) - 两个选择是:

  1. 总加密期为 3 年(<=6 个月 OUP,<=3 年 RUP ,与 OUP 完全重叠
  2. 总加密周期为 3.5 年(<=6 个月 OUP,“<=OUP + 3 年”RUP,与短语“在发起者使用期结束后的 3 年最大接收者使用期”一致)

答案

任何你能散发的光芒都会受到赞赏。我们是否遗漏了一些定义来解决最大 RUP 是绝对值,还是与 OUP 的终止相关?

1个回答

有趣的问题,我希望这对我看到这个实现的经验有所帮助......

keyA 有效期为 2 年

使用 keyA 加密的数据被标记为已通过 keyA 的索引号加密

对于解密操作,使用 keyA

2年后keyB用于加密新数据

使用 keyA 加密的数据在使用 keyA 访问时被解密,但在使用后使用 keyB 更新和重新加密

随着时间的推移(在 OUP 结束和 RUP 结束之间),所有使用 keyA 加密的常用数据逐渐被 keyB 加密

在 RUP 末尾使用 keyA 加密的数据不是必需的并且应该被丢弃,或者可以通过使用 keyA 解密并使用 keyB 重新加密来更新

本质上,以上意味着 OUP 加密周期为 2 年,并且 OUP 密钥已停用。它不会被丢弃,因为在 RUP 结束之前解密操作仍然需要它。这在实践中的真正含义是您可以保持多个密钥处于活动状态并避免对整个数据集运行完整的解密/加密操作。