Tink'teki Temel Kavramları Anlama
Koleksiyonlar ile düzeninizi koruyun
İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.
Tink ile ilk kez çalışmaya başladığınızda, yolculuğunuza başlamadan önce anlamanız gereken bazı temel kavramlar vardır. Bunlar aşağıdaki bölümlerde açıklanmıştır.
Temel Öğeler
Tink, kullanıcıların şifreleme görevlerini güvenli bir şekilde gerçekleştirebilmesi için bir temel algoritmayı yöneten kriptografik yapı taşları olarak temel öğeleri kullanır. Temel öğe, kriptografik bir algoritmanın ve anahtar türünün ayrıntılarını tanımlar.
Tink tarafından desteklenen temel öğeler:
- İlişkilendirilen Verilerle Kimlik Doğrulaması Yapılmış Şifreleme (AEAD): Veri şifreleme için kullanılan en yaygın temel öğedir. Çoğu şifreleme gereksinimi için uygundur. AEAD düz metin gizliliğini sağlar ve bütünlük ile orijinalliğinin doğrulanmasına olanak tanır. İlişkilendirilen Verilerle Kimlik Doğrulaması Yapılmış Şifreleme (AEAD) başlıklı makaleyi inceleyin.
- Belirleyici şifreleme: Belirli bir şifrelenmemiş metin ve anahtar için her zaman aynı şifrelenmiş metni üreten bir temel öğe. Bu durum riskli olabilir çünkü saldırganın belirli bir şifrelenmemiş metni tanımlamak için sadece hangi şifreli metnin girişe karşılık geldiğini öğrenmesi gerekir. Belirleyici AEAD bölümünü inceleyin.
- Dijital imza: İmzalanmış verilerin kimliğini ve bütünlüğünü doğrulamak için kullanılan temel bir asimetrik (Asimetrik anahtar şifreleme). Dijital imza başlıklı makaleyi inceleyin.
- Karma şifreleme: Asimetrik anahtar şifreleme ile simetrik anahtar şifrelemesini birleştiren bir temel öğe (Asimetrik anahtar şifreleme ve Simetrik anahtar şifreleme bölümlerine bakın). Karma şifreleme, simetrik şifrelemenin verimliliğini ortak anahtar şifrelemesinin rahatlığıyla birleştirir. Bir mesajı şifrelemek için yeni bir simetrik anahtar oluşturulur ve şifrelenmemiş metin verilerini şifrelemek için kullanılır. Alıcının ortak anahtarı ise yalnızca simetrik anahtarı şifrelemek için kullanılır. Son şifrelenmiş metin, simetrik şifrelenmiş metinden ve şifrelenmiş simetrik anahtardan oluşur. Karma şifreleme bölümüne bakın.
- Message Authentication Code (MAC) (İleti Kimlik Doğrulama Kodu): Verilerin doğruluğunu ve bütünlüğünü onaylamak için kullanılan temel simetrik (Simetrik anahtar şifreleme) öğesi. İleti Kimlik Doğrulama Kodu (MAC) sayfasına göz atın.
- AEAD Akışı: Akış verileri için kimliği doğrulanmış şifreleme sağlayan temel bir öğedir. Şifrelenecek veriler tek bir adımda işlenemeyecek kadar büyük olduğunda kullanışlıdır. AEAD akışı konusuna bakın.
Uyumluluk bilgileri için Dile göre desteklenen temel öğeler bölümüne bakın.
Daha fazla bilgi için temel tasarım konusuna bakın.
Anahtar türleri
Anahtar türü, belirli bir temel öğeyi uygular. Çoğu temel öğe; güvenlik, çalışma zamanı ve alan gereksinimlerinize bağlı olarak seçebileceğiniz birkaç anahtar türüne sahiptir. Örneğin AES128_GCM, çoğu ihtiyaç için hızlı ve etkili bir AEAD'dir. Dile göre desteklenen anahtar türleri bölümünden daha fazla bilgi edinebilirsiniz.
Anahtarlar ve tuş takımı tutma yerleri
Tink, anahtarları yönetmek için anahtar kümeleri kullanır. Anahtar kümesi, temelde anahtar rotasyonunu kolaylaştıran bir anahtar kümesidir. Bir tuş kümesinin dikkate değer özellikleri şunlardır:
- Bir anahtar kümesindeki her anahtarın, bir anahtar kümesi içinde benzersiz bir kimliği vardır. Bu kimlik, hangi anahtarın kullanıldığını belirtmek için genellikle üretilen her şifreli metne, imzaya veya etikete ön ek olarak eklenir (daha fazla bilgi için Tink'in şifreli metinleri nasıl etiketlediğini inceleyin).
- Bir anahtar kümesinde aynı anda yalnızca bir anahtar birincil olur. Anahtar kümesindeki birincil anahtar şu anda "kullanımda olan" anahtardır.
- Bir anahtar kümesindeki tüm anahtarlar, aynı temel öğenin (AEAD gibi) uygulamaları olmalıdır ancak farklı anahtar türlerine (ör. AES-GCM ve XCHACHA20-POLY1305 anahtarı) sahip olabilirler.
Her Tink uygulaması, anahtar setleri oluşturmak veya düzenlemek için API'ler sağlar. Ancak, KSA aracımız Tinkey'i kullanmanızı öneririz.
Kullanıcılar tuş takımı tutma yerlerini kullanarak tuş kümesi üzerinde çalışırlar. Tuş takımı tutma yeri, gerçek hassas anahtar materyalinin görünürlüğünü sınırlandırır. Ayrıca, kullanıcıların tüm anahtar kümesini "saran" bir temel öğe almasını sağlayan bir anahtar kümesini soyutlar. Örneğin, N
anahtarlarına sahip bir anahtar kümesinin AEAD temel öğesini alabilir; elde edilen temel öğe ile şifreleme ve şifre çözme işlemi ardından anahtar kümesindeki birincil anahtarı kullanabilirsiniz.
Daha fazla bilgi için anahtar seti tasarımı bölümüne bakın.
Aksi belirtilmediği sürece bu sayfanın içeriği Creative Commons Atıf 4.0 Lisansı altında ve kod örnekleri Apache 2.0 Lisansı altında lisanslanmıştır. Ayrıntılı bilgi için Google Developers Site Politikaları'na göz atın. Java, Oracle ve/veya satış ortaklarının tescilli ticari markasıdır.
Son güncelleme tarihi: 2025-07-25 UTC.
[[["Anlaması kolay","easyToUnderstand","thumb-up"],["Sorunumu çözdü","solvedMyProblem","thumb-up"],["Diğer","otherUp","thumb-up"]],[["İhtiyacım olan bilgiler yok","missingTheInformationINeed","thumb-down"],["Çok karmaşık / çok fazla adım var","tooComplicatedTooManySteps","thumb-down"],["Güncel değil","outOfDate","thumb-down"],["Çeviri sorunu","translationIssue","thumb-down"],["Örnek veya kod sorunu","samplesCodeIssue","thumb-down"],["Diğer","otherDown","thumb-down"]],["Son güncelleme tarihi: 2025-07-25 UTC."],[[["\u003cp\u003eTink utilizes primitives as fundamental cryptographic building blocks for secure data operations, covering encryption, signatures, and message authentication.\u003c/p\u003e\n"],["\u003cp\u003eKeysets in Tink efficiently manage multiple keys for a single purpose, enabling features like key rotation and supporting various key types within a set.\u003c/p\u003e\n"],["\u003cp\u003eKeyset handles provide a secure abstraction layer, allowing users to interact with keys and perform cryptographic operations without directly exposing sensitive key material.\u003c/p\u003e\n"],["\u003cp\u003eTink offers a diverse selection of primitives and key types, accommodating varying security, performance, and storage requirements, with options like AEAD, digital signatures, and hybrid encryption.\u003c/p\u003e\n"]]],["Tink employs cryptographic building blocks called *primitives*, which define algorithms and key types. These include AEAD, Deterministic encryption, Digital signature, Hybrid encryption, MAC, and Streaming AEAD. *Key types* implement primitives, offering choices based on security and performance. *Keysets*, a set of keys with unique IDs, manage key rotation. *Keyset handles* abstract keysets, providing access to a primitive that operates over the entire keyset, including encryption/decryption with the primary key.\n"],null,["# Understand Key Concepts in Tink\n\nWhen you start working with Tink for the first time, there are some key concepts\nyou should understand before you begin your journey; these are described in the\nfollowing sections.\n\nPrimitives\n----------\n\nTink uses *primitives* as cryptographic building blocks that manage an\nunderlying algorithm so users can perform cryptographic tasks safely. A\nprimitive defines the details of a cryptographic algorithm and the key type.\n\nPrimitives supported by Tink:\n\n- **Authenticated Encryption with Associated Data (AEAD)** : The most common primitive for data encryption; suitable for most encryption needs. AEAD provides plaintext confidentiality, and allows verification of its integrity and authenticity. See [Authenticated Encryption with Associated Data\n (AEAD)](/tink/aead).\n- **Deterministic encryption:** A primitive that always produces the same ciphertext for a given plaintext and key. This can be risky, because an attacker only needs to find out which ciphertext corresponds to a given plaintext input to identify it. See [Deterministic\n AEAD](/tink/deterministic-aead).\n- **Digital signature** : An asymmetric (see *Asymmetric key encryption* ) primitive for confirming the authenticity and integrity of signed data. See [Digital signature](/tink/digital-signature).\n- **Hybrid encryption** : A primitive that combines asymmetric key encryption and symmetric key encryption (see *Asymmetric key encryption* and *Symmetric\n key encryption* ). Hybrid encryption combines the efficiency of symmetric encryption with the convenience of public-key encryption. To encrypt a message, a fresh symmetric key is generated and used to encrypt the plaintext data, while the recipient's public key is used to encrypt the symmetric key only. The final ciphertext consists of the symmetric ciphertext and the encrypted symmetric key. See [Hybrid\n encryption](/tink/hybrid).\n- **Message Authentication Code (MAC)** : A symmetric (see *Symmetric key\n encryption* ) primitive for confirming the authenticity and integrity of data. See [Message Authentication Code (MAC)](/tink/mac).\n- **Streaming AEAD** : A primitive providing authenticated encryption for streaming data; useful when the data to be encrypted is too large to be processed in a single step. See [Streaming AEAD](/tink/streaming-aead).\n\nSee [Supported primitives by language](/tink/primitives-by-language) for\ncompatibility information.\n\nFor more info, see [primitive design](/tink/design/primitives_and_interfaces).\n\nKey types\n---------\n\nA *key type* implements a specific primitive. Most primitives have several key\ntypes to choose from depending on your requirements for security, runtime, and\nspace. For example, AES128_GCM is an [AEAD](/tink/aead) that is fast and\neffective for most needs. See more at [Supported key types by\nlanguage](/tink/supported-key-types).\n\nKeysets \\& keyset handles\n-------------------------\n\nTink uses *keysets* for managing keys. A keyset is essentially a set of keys\nthat facilitate key rotation. Noteworthy properties of a keyset are:\n\n- Each key in a keyset has a unique ID, which is unique within a keyset. This ID is usually added as a prefix to each produced ciphertext, signature or tag to indicate which key was used (see how Tink [tags\n ciphertexts](/tink/design/keysets#tagging_ciphertexts) for more info).\n- Only one key at a time in a keyset is *primary*. A primary key in a keyset is the key \"in use\" at the moment.\n- All the keys in a keyset *must* be implementations of the same primitive (such as AEAD), but can have different key types (for example, an AES-GCM and XCHACHA20-POLY1305 key).\n\nEach Tink implementation provides APIs to create or edit keysets. However, we\nrecommend using [Tinkey](/tink/tinkey-overview) our CLI tool.\n\nUsers operate over a keyset using *keyset handles* . A keyset handle limits the\nexposure of the actual sensitive key material. It also abstracts a keyset\nallowing users to obtain a primitive that \"wraps\" the entire keyset. For\nexample, you can get an AEAD primitive of a keyset with `N` keys; encryption and\ndecryption with the obtained primitive then uses the primary key in the keyset.\n\nFor more info, see [keyset design](/tink/design/keysets)."]]