Anahtarlar

Birçok şifreleme kitaplığında anahtarlar genellikle yalnızca bazı bayt sıralarıyla tanımlanır. Örneğin, anahtar baytlarından ayrı olarak EVP_EncryptInit_ex için OpenSSL işlevleri veya işlem için IV'ye de ihtiyaç duyulur ya da hem anahtar dizisini hem de AlgorithmParameterSpec işlemini alan javax.crypto yöntemi Cipher.init. Bu tür işlevlerin doğru şekilde kullanılması genellikle zordur ve yanlış parametrelerin iletilmesinin ciddi sonuçları olabilir.

Tink farklı olmayı amaçlar ve anahtarın her zaman hem anahtar materyalinden hem de meta verilerden (parametreler) oluşmasını bekler.

Örneğin, tam bir AEAD anahtarı, şifrelemenin ve şifre çözmenin nasıl çalıştığını ayrıntılı olarak belirtir.İki işlevi \(\mathrm{Enc}\) ve\(\mathrm{Dec}\)şifreli metnin nasıl kodlandığını belirtir (ör. başlatma vektörü, şifreleme ve ardından etiket).

Tink'teki AES anahtarı yalnızca 128, 192 veya 256 bit uzunluğunda bir bayt sırası değildir. Aynı zamanda, anahtarı hesaplamak için gereken ilgili algoritma spesifikasyonlarını bir parameters nesnesi olarak depolar. Bu nedenle, tam AES-EAX anahtarı ve tam AES-GCM anahtarı, Tink'teki farklı nesnelerdir.