Di banyak library kriptografi, kunci sering kali diidentifikasi hanya dengan beberapa urutan
byte. Misalnya, pertimbangkan fungsi OpenSSL seperti EVP_EncryptInit_ex
,
yang selain byte kunci, juga memerlukan IV untuk komputasi; atau
metode javax.crypto Cipher.init
, yang menggunakan urutan kunci dan
AlgorithmParameterSpec
. Fungsi tersebut sering kali sulit digunakan dengan benar
dan meneruskan parameter yang salah dapat menimbulkan konsekuensi serius.
Tink bertujuan untuk menjadi berbeda, dan mengharapkan kunci selalu terdiri dari materi kunci dan metadata (parameter).
Kunci AEAD lengkap, misalnya, menentukan secara mendetail cara kerja enkripsi dan dekripsi - kunci ini menentukan dua fungsi \(\mathrm{Enc}\) dan \(\mathrm{Dec}\), serta cara ciphertext dienkode (misalnya, vektor inisialisasi, diikuti dengan enkripsi, diikuti dengan tag).
Kunci AES di Tink tidak hanya berupa urutan byte dengan panjang 128, 192, atau 256 bit, tetapi juga menyimpan spesifikasi algoritma yang sesuai yang diperlukan untuk menghitung kunci, dalam bentuk objek parameter. Oleh karena itu, kunci AES-EAX lengkap dan kunci AES-GCM lengkap adalah objek yang berbeda di Tink.