Tink 密钥由密钥材料和元数据组成。有关标记密文的部分说明了 Tink 还允许使用派生自 ID 的 5 字节字符串为密文添加前缀,这意味着密钥还取决于其在密钥集中具有的 ID。
因此,为了创建新密钥,Tink 通常会使用以下要素:
- 一个用于描述所有参数的对象
- 新密钥的 ID
- 统一、加密安全的随机性
示例
请考虑使用 HMAC (RFC 2014) 示例。如需在 Tink 中指定 HMAC 计算,您需要提供以下信息,这些信息会形成密钥:
- HMAC 的密钥材料。
- 要使用的哈希函数。
- HMAC 的输出长度(请参阅(RFC 2014 第 5 节)- 如果被截断。
- 每个标记开头的 Tink 专用前缀(如有)。
相应的参数包含除实际密钥材料以外的所有这些信息。更具体地说:
- 密钥材料的长度。
- 使用的哈希函数。
- HMAC 的输出长度 - 如果截断。
- 关于如何从 ID 中查找前缀的规范。
这与密钥材料和 ID 一起构成完整的密钥。您还可以详细了解如何实现这些对象。