非对称密钥加密:一种使用配对密钥(公钥和私钥)来加密和解密数据的加密系统。公钥用于加密数据,可以共享。私钥用于解密数据,只有所有者知道。
密文:使用算法对明文进行加密后得到的结果。密文在通过密钥转换回明文之前是无法理解的。
一致性:意味着 Tink 在所有编程语言中的行为方式都“相同”。例如,Tink 提供评估一致性,这意味着对于给定的密钥集,如果原始对象创建在两种语言中都成功,则原始对象的行为相同。
密钥:加密或解密数据所需的一段信息(例如字符串)。如需了解它们的表示方式,请参阅关键对象。
密钥集和密钥集句柄:Tink 使用密钥集来管理密钥。密钥集本质上是一组有助于密钥轮替的密钥。密钥集值得注意的属性包括:
- 密钥集中的每个密钥都有一个唯一 ID,该 ID 在密钥集中是唯一的。此 ID 通常会作为前缀添加到生成的每个密文、签名或标记中,以指示所用的密钥(如需了解详情,请参阅 Tink 如何标记密文)。
- 密钥集中一次只能有一个密钥是主密钥。密钥集中的主密钥是指当前“正在使用”的密钥。
- 密钥集 必须包含同一原语(例如 AEAD)的实现,但可以包含不同的密钥类型(例如 AES-GCM 和 XCHACHA20-POLY1305 密钥)。
每种 Tink 实现都提供用于创建或修改密钥集的 API。不过,我们建议使用 CLI 工具 Tinkey。
用户可以使用 keyset 句柄来操作 keyset。密钥集句柄可限制实际敏感密钥材料的泄露。它还抽象出一个密钥集,允许用户获取“封装”整个密钥集的原语。例如,您可以获取具有 N 个密钥的密钥集的 AEAD 原语;然后,使用获取的原语进行加密和解密时,会使用密钥集中的主密钥。
密钥管理系统 (KMS):用于管理加密密钥的系统,包括密钥的生成、存储、使用、轮换、销毁和替换。
密钥类型:密钥类型实现特定的原语。大多数原语都有多种密钥类型可供选择,具体取决于您对安全性、运行时和空间的要求。例如,AES128_GCM 是一种 AEAD,可快速有效地满足大多数需求。如需了解详情,请参阅按语言划分的支持的密钥类型。
参数:全面描述创建密钥所需的信息,但不包括密钥材料和密钥 ID。如需了解它们的表示方式,请参阅参数对象。
纯文本:加密文本或其元素的易懂输入形式。
基元:Tink 使用基元作为加密基础组件来管理底层算法,因此用户可以安全地执行加密任务。原语定义了加密算法和密钥类型的详细信息。
- 如需大致了解支持的原语及其使用场景,请参阅选择原语。
- 如需了解兼容性信息,请参阅支持的基元(按语言)。
注册表:Tink 中的全局实体,知道如何生成新密钥和原语。另请参阅有关调试注册错误的指南。
对称密钥加密:一种使用相同密钥来加密明文和解密密文的加密算法。