非対称鍵暗号化: 公開鍵と秘密鍵のペアを使用してデータの暗号化と復号を行う暗号システム。公開鍵はデータの暗号化に使用され、共有される場合があります。秘密鍵はデータの復号に使用され、所有者にのみ公開されます。
Ciphertext: アルゴリズムを使用して平文に対して実行された暗号化の結果。暗号テキストは、鍵を使用して平文に変換されるまで理解できません。
整合性: すべてのプログラミング言語で Tink が「同じ」動作をすることを意味します。たとえば、Tink は評価の整合性を実現します。つまり、特定の鍵セットについて、2 つの言語でプリミティブの作成が成功すると、プリミティブは同じように動作します。
鍵: データを暗号化または復号するために必要な情報(文字列など)。その表現方法については、キー オブジェクトをご覧ください。
鍵セットと鍵セットのハンドル: Tink は鍵の管理に鍵セットを使用します。鍵セットとは基本的に、鍵のローテーションを容易にする鍵のセットです。鍵セットの注目すべきプロパティは次のとおりです。
- 鍵セット内の各鍵には一意の ID があり、この ID は鍵セット内で一意です。この ID は通常、生成された各暗号テキスト、署名、またはタグに接頭辞として追加され、使用された鍵を示します(詳細については、Tink が暗号テキストにタグ付けする方法をご覧ください)。
- 鍵セット内では一度に 1 つの鍵のみが primary になります。鍵セットの主キーは、その時点で「使用中」の鍵です。
- 鍵セット内のすべての鍵は、同じプリミティブ(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: ストリーミング データの認証済み暗号化を提供するプリミティブ。暗号化するデータが大きすぎて 1 つのステップで処理できない場合に便利です。ストリーミング AEAD をご覧ください。
互換性については、言語ごとにサポートされるプリミティブをご覧ください。
レジストリ: 新しいキーとプリミティブの生成方法を認識している Tink のグローバル エンティティ。登録エラーのデバッグに関するガイダンスもご覧ください。
対称鍵暗号化: 同じ鍵を使用して平文の暗号化と暗号テキストの復号を行う暗号アルゴリズム。