Memahami Konsep Utama di Tink

Saat Anda mulai menggunakan Tink untuk pertama kalinya, ada beberapa konsep utama yang harus Anda pahami sebelum memulai perjalanan Anda; konsep ini dijelaskan di bagian berikut.

Primitif

Tink menggunakan primitif sebagai blok penyusun kriptografi yang mengelola algoritma pokok sehingga pengguna dapat melakukan tugas kriptografi dengan aman. Primitif menentukan detail algoritma kriptografi dan jenis kunci.

Jenis kunci

Jenis kunci mengimplementasikan primitif tertentu. Sebagian besar primitif memiliki beberapa jenis kunci yang dapat dipilih, bergantung pada persyaratan Anda untuk keamanan, runtime, dan ruang. Misalnya, AES128_GCM adalah AEAD yang cepat dan efektif untuk sebagian besar kebutuhan. Lihat selengkapnya di Jenis kunci yang didukung menurut bahasa.

Set kunci & gagang set kunci

Tink menggunakan keyset untuk mengelola kunci. Kumpulan kunci pada dasarnya adalah sekumpulan kunci yang memfasilitasi rotasi kunci. Properti penting dari set kunci adalah:

  • Setiap kunci dalam set kunci memiliki ID unik, yang unik dalam set kunci. ID ini biasanya ditambahkan sebagai awalan ke setiap ciphertext, tanda tangan, atau tag yang dihasilkan untuk menunjukkan kunci yang digunakan (lihat cara Tink menandai ciphertext untuk mengetahui info selengkapnya).
  • Hanya satu kunci dalam satu set kunci yang utama dalam satu waktu. Kunci utama dalam set kunci adalah kunci yang "sedang digunakan" saat ini.
  • Semua kunci dalam set kunci harus berupa implementasi primitif yang sama (seperti AEAD), tetapi dapat memiliki jenis kunci yang berbeda (misalnya, kunci AES-GCM dan XCHACHA20-POLY1305).

Setiap penerapan Tink menyediakan API untuk membuat atau mengedit set kunci. Namun, sebaiknya gunakan Tinkey, alat CLI kami.

Pengguna beroperasi melalui set kunci menggunakan handle set kunci. Handle set kunci membatasi eksposur materi kunci sensitif yang sebenarnya. Selain itu, keyset ini juga mengabstraksi keyset yang memungkinkan pengguna mendapatkan primitif yang "membungkus" seluruh keyset. Misalnya, Anda bisa mendapatkan primitif AEAD dari keyset dengan kunci N; enkripsi dan dekripsi dengan primitif yang diperoleh kemudian menggunakan kunci utama dalam keyset.

Untuk mengetahui info selengkapnya, lihat desain kumpulan kunci.