瞭解 Tink 的重要概念

首次使用 Tink 時,您應該先瞭解一些重要概念,再開始使用。以下各節將說明這些概念。

基本

Tink 會使用基元做為密碼編譯建構區塊,管理基礎演算法,讓使用者安全地執行密碼編譯工作。原始值會定義加密演算法和金鑰類型的詳細資料。

金鑰類型

金鑰類型會實作特定基本類型。大多數基本型別都有多種主要型別可供選擇,具體取決於您對安全性、執行階段和空間的要求。舉例來說,AES128_GCM 是 AEAD,可快速有效地滿足大多數需求。如要瞭解詳情,請參閱支援的語言和金鑰類型

金鑰組和金鑰組控制代碼

Tink 會使用金鑰集管理金鑰。金鑰集基本上是一組金鑰,可協助金鑰輪替。金鑰集的重要屬性包括:

  • 金鑰組中的每個金鑰都有專屬 ID,且金鑰組內不會重複。這個 ID 通常會加到每個產生的密文、簽章或標記的前置字串,指出使用的金鑰 (詳情請參閱 Tink 如何標記密文)。
  • 金鑰集一次只能有一個主要金鑰。金鑰集中的主鍵是目前「使用中」的金鑰。
  • 金鑰集中的所有金鑰必須是相同基本體的實作項目 (例如 AEAD),但可以有不同金鑰類型 (例如 AES-GCM 和 XCHACHA20-POLY1305 金鑰)。

每個 Tink 實作項目都會提供 API,用於建立或編輯金鑰集。不過,我們建議使用 CLI 工具 Tinkey

使用者可透過鍵集控制代碼操作鍵集。金鑰集控制代碼可限制實際機密金鑰內容的曝光。此外,它也會抽象化鍵集,讓使用者取得「包裝」整個鍵集的原始型別。舉例來說,您可以取得含有 N 金鑰的金鑰組的 AEAD 基本型別;使用取得的基本型別進行加密和解密時,會使用金鑰組中的主要金鑰。

詳情請參閱金鑰集設計