什么是密码学中的密钥仪式?

What is Key Ceremony in Cryptography?

我尝试了 google,但这不是我想要的。 Google 说,这是一个基于对密钥的分布式访问来检查签名密钥存储安全性的聚会。

我有这个 class,它有 3 个字符串(损坏的密钥)和各自的属性(密钥检查值、区域密钥检查值、加密主密钥)。我使用它导出主密钥。我不能把代码放在这里,因为它违反了我的安全策略。顺便说一句,这是用于智能卡的。

如果有人对此有任何想法,请解释或指出我。

好的,我假设一个简单的对称密钥(3DES 或 AES)在这里分成 3 个部分。我只能回答因为我是这么假设的。

随机生成一个密钥值,这是您要保护的密钥。让我们称这把钥匙为万能钥匙。 KCV(密钥校验值)是在主密钥上计算得出的,因此如果重新生成密钥,则可以在不泄露值本身的情况下以相对较高的确定性验证密钥的正确性。 KCV 不会泄露有关密钥 material 本身的信息,因为 KCV 的计算是 单向 .

使用其他随机值和异或将此密钥拆分为三个部分。首先生成 两个 其他随机密钥。第三个密钥被计算为其他密钥 主密钥的异或。计算并记下 KCV 值。这三个密钥现在可以分配给 3 个不同的参与者。这些演员在仪式上扮演的角色被称为关键管理者。通常,密钥管理器会保护对其密钥的访问。

现在要重新生成主密钥,每个密钥管理员都记下他们的密钥部分。在继续之前验证密钥的 KCV,以确保没有输入错误,或者该值不是另一个密钥的值。现在,如果您计算三个密钥的异或,那么您将再次获得主密钥。该值再次与主密钥进行比较。

就这些了。


关于该方案的安全性:

  • 您需要所有三个密钥,因为其他密钥基本上提供了对密钥值的一次一密加密,这提供了非常强大的安全概念
  • 常见的 KCV 是一个危险的概念,因为全零块的加密——最常见的方案——可能会泄露敏感信息(例如,对于具有零随机数和计数器的计数器模式安全性)。例如。空值上的 HMAC 可能是更好的主意
  • 显然您需要一个安全的随机数生成器来生成密钥,否则您的方案可能不安全
  • 很难故意生成错误的密钥;通常KCV是三个字节,所以一两个人串通生成主密钥KCV的几率是1 in 2^24(2^24超过1600万)

密码学中的密钥仪式意味着您将如何在颁发证书时为不同的目的激活您的签名密钥,例如 CA 密钥。 Key Ceremony 具有非常强的安全级别,即使用 m of n 规则激活密钥,密钥存储在笔记本电脑或 HSM(用于存储密钥的硬件)中的安全物理位置。 有关详细信息,请参阅 WebTrust Principles and Criteria for Certification Authorities – v2.2 文档,从 http://www.webtrust.org/principles-and-criteria/docs/item83987.pdf 下载,第 4.4 节 CA Key Usage

在高层次上,这是一个在 Production/UAT 环境中在两个实体之间轮换加密密钥的过程,然后一个实体向另一个实体发送请求以在密钥的帮助下在它们之间建立会话.密钥可以对 encrypt/decrypt 消息具有一定的作用,以检查消息的完整性 e.t.c。