非對稱金鑰加密:使用配對金鑰加密及解密資料的加密編譯系統。公開金鑰可用來加密資料,而且可能會共用。私密金鑰用於解密資料,且只有擁有者知道。
Ciphertext:使用演算法對明文執行加密的結果。除非使用金鑰將其轉換為明文,否則您無法解讀密文內容。
一致性:代表 Tink 在所有程式設計語言中都是「相同」的行為。例如,Tink 可提供評估一致性,這意味著對於特定金鑰組而言,如果原始建立成功使用兩種語言,基元的行為就會相同。
金鑰:加密或解密資料所需的一段資訊,例如字串。請參閱金鑰物件的表示方式。
金鑰組與金鑰組:Tink 使用 keyset 管理金鑰。金鑰組基本上是一組有助於輪替金鑰的金鑰。金鑰組值得注意的屬性如下:
- 金鑰組中的每個金鑰都有專屬 ID,在金鑰組中不得重複。這個 ID 通常會新增為每個所產生密文、簽章或標記的前置字串,以表示使用的金鑰 (詳情請參閱 Tink 的標記密文說明)。
- 金鑰組中一次只能有一個金鑰為「主要」。金鑰組中的主鍵是目前「使用中」的索引鍵。
- 金鑰組中的所有金鑰都必須採用相同原始 (例如 AEAD) 的實作,但金鑰類型可以不同 (例如 AES-GCM 和 XCHACHA20-POLY1305 金鑰)。
每個 Tink 實作都會提供用於建立或編輯金鑰組的 API。不過,我們建議使用 CLI 工具的 Tinkey。
使用者是透過金鑰組控制代碼透過金鑰組運作。金鑰組控制代碼會限制實際機密金鑰內容的曝光率。它也會提取一組金鑰組,可讓使用者取得可「包裝」整個金鑰組的基本功能。舉例來說,您可以取得具有 N
金鑰的金鑰組 AEAD 原始物件,然後使用取得的原始金鑰加密和解密,然後使用金鑰組中的主金鑰。
金鑰管理系統 (KMS):用於管理加密編譯金鑰的系統,包括產生、儲存、使用、輪替、刪除和替換。
金鑰類型:金鑰類型會實作特定基元。大部分基元都有多種關鍵類型,您可以根據安全性、執行階段和空間需求選擇。舉例來說,AES128_GCM 是一種 AEAD,快速又有效,能滿足大多數需求。詳情請參閱不同語言支援的金鑰類型。
參數:完整說明建立金鑰所需的資訊,但不包括金鑰內容與金鑰 ID。如要瞭解這些物件的表示方式,請參閱參數物件。
純文字:加密文字或其元素的智慧型輸入形式。
原始:Tink 使用「原始」做為密碼編譯建構區塊,用於管理基礎演算法,讓使用者能安全地執行加密編譯工作。基本定義了加密編譯演算法和金鑰類型的詳細資料。
Tink 支援的基本功能:
- 使用相關資料進行驗證加密 (AEAD):最常用於資料加密的基本功能,適用於大多數加密需求。AEAD 提供純文字的機密性,並允許驗證其完整性和真實性。請參閱使用相關資料進行驗證 (AEAD) 驗證。
- 確定性加密:這個原始物件一律會針對特定明文和金鑰產生相同的密文。這可能會有風險,因為攻擊者只需要找出特定明文輸入內容對應的密文即可進行識別。請參閱確定性 AEAD 部分。
- 數位簽章:非對稱式 (請參閱「非對稱金鑰加密」一節),用於確認已簽署資料的真實性和完整性。請參閱「數位簽章」。
- 混合式加密:結合非對稱式金鑰加密與對稱式金鑰加密的基本功能 (請參閱「非對稱金鑰加密」和「對稱金鑰加密」部分)。混合式加密結合了對稱加密的效率與公開金鑰加密的便利性。為加密訊息,系統會產生新的對稱金鑰,並使用該金鑰加密明文資料,而接收方的公開金鑰則只用於加密對稱金鑰。最終的密文包含對稱密文和加密對稱金鑰。請參閱「混合式加密」。
- 訊息驗證碼 (MAC):用於確認資料的真實性和完整性的對稱式 (請參閱「對稱金鑰加密」一節)。請參閱訊息驗證碼 (MAC)。
- 串流 AEAD:提供已驗證串流資料加密的原始版本;如果要加密的資料太大,而無法在單一步驟中處理,此屬性就非常實用。請參閱串流 AEAD。
如需相容性資訊,請參閱「依語言區分的支援基元」。
註冊資料庫:Tink 中的全域實體,知道如何產生新的金鑰和原始金鑰。另請參閱「對登錄錯誤進行偵錯」的指南。
對稱金鑰加密:使用相同金鑰加密明文及解密密文的加密編譯演算法。