选择您的使用场景以确定正确的原语,然后点击链接获取有关使用该原语的指南。
加密数据…
| 原初 | 详细信息 | |
|---|---|---|
| …采用标准尺寸 | 关联数据加密的身份验证 (AEAD) | - 适合大多数需求 - 接受最大 232 字节的明文 - 提供明文机密性,并验证完整性和真实性 |
| …在大型文件或数据流中 | 流式 AEAD | - 对于过大而无法在单个步骤中处理的数据 |
| …确定性地 | 确定性 AEAD | - 对于给定的明文和密钥,生成相同的密文 |
| …使用受 KMS 保护的密钥 | Key Management System (KMS) Envelope AEAD | - 使用新的 AEAD 密钥 加密每个明文- 使用 KMS 加密每个 AEAD 密钥 |
| …使用公钥加密,使用私钥解密 | 混合加密 |
- 未经身份验证 - 当发送者无法存储密钥(私钥)时很有用 |
这些原语都能够将密文绑定到其上下文。
通过以下方式确保数据的真实性和完整性:
| 原初 | 详细信息 | |
|---|---|---|
| …使用一个密钥创建和验证 MAC | 消息身份验证码 (MAC) | - 速度非常快 - 只有可以创建 MAC 的相关方才能验证 |
| …使用私钥创建签名,使用公钥进行验证 | 数字签名 | - 可由无法创建签名的各方验证 |
| …创建签名,但不向签名者发送消息 | Prehash / SignPrehash | - 对于 HSM 或 KMS 中保存的签名密钥,或无法发送的过大消息 - 可验证,类似于数字签名 |
| …在 JWT 上创建和验证签名 | 带有签名的 JSON Web 令牌 (JWT) | - 还可以转换为 JSON Web 密钥 (JWK) 格式或从该格式转换 |
杂项
| 原初 | 详细信息 | |
|---|---|---|
| 使用 KMS 加密任何原语的密钥集 | KMS 加密的基元 | - 不需要每次使用原语时都与 KMS 互动(例如,加密明文),这与 KMS Envelope AEAD 不同 |
有问题吗?
在 Tink 组织页面上关联的特定语言 GitHub 代码库中创建问题。