Shamir’s Secret Sharing (SSS), apa tuh bang?

Beberapa saat yang lalu gw sendiri nonton film Mission: Impossible – The Final Reckoning, lalu ga lama setelahnya, gw belajar tentang HashiCorp Vault. Dan gw kepikiran, ini sebenernya salah satu hal yang cukup keren kalau disangkut-pautin.

Sevastopol?

Kalau kalian udah nonton film itu, ataupun versi-versi sebelumnya, pasti kalian tau terkait kunci dari Sevastopol.

Sumber: Mission: Impossible – The Final Reckoning | Official Trailer (2025 Movie) – Tom Cruise

Kalau belum, (spoiler warning), ini singkatnya:
Mereka perlu mencari sesuatu yang cukup penting, dan untuk mendapatkannya, mereka harus pergi ke inti sebuah kapal selam yang terdampar di dasar laut, dan membukanya dengan sebuah kunci. Kunci ini, terbagi menjadi dua, jika disatukan, baru akan menjadi suatu kunci utuh yang fungsional.

Sumber: Mission Impossible: Dead Reckoning Cruciform Key in Solid Brass | RPF Costume and Prop Maker Community

Lalu, SSS itu apa?

Shamir’s Secret Sharing sendiri adalah suatu algoritma pembagian rahasia (secret sharing), yang dapat membagi satu kunci kriptografi menjadi beberapa bagian, dan menentukan minimal berapa bagian tersebut yang dibutuhkan untuk membuka “brankas”nya.

Contoh dari kunci Sevastopol, mereka membagi kuncinya menjadi 2, dan dibutuhkan keduanya untuk membuka brankasnya. Sedangkan, untuk SSS, kunci dapat dibagi berapapun (n), dan dibutuhkan jumlah (k) yang lebih kecil dari n, untuk membukanya. Maka k ≤ n.

Kenapa namanya Shamir’s Secret Sharing? Sederhananya, ya itu nama dari pembuatnya. Adi Shamir juga salah satu pembuat dari algoritma RSA (Rivest–Shamir–Adleman).

Penggunaannya di Vault gimana?

Vault, sebagai sebuah aplikasi secret management, yang bertugas menyimpan dan mengatur berbagai rahasia kriptografi untuk mengamankan berbagai sistem, pasti sendirinya juga perlu diamankan. Jelas dong, kalau Vaultnya yang kebobol, semua yang dimanage oleh Vault juga kena.

Salah satu cara yang Vault gunakan untuk mengamankan sistemnya, Vault memiliki suatu sistem dimana dia “seal” diri sendiri. Maka ketika posisinya sedang terkunci atau sealed, perlu dibuka atau di-unseal. Jadi di awal install (untuk Self-Managed Vault), kita bisa tentuin n bagian kunci, dan k jumlah minimal yang dibutuhkan untuk membukanya. Kemudian, ketika menjalankan vault untuk pertama kalinya, Vault perlu di-unseal menggunakan k bagian kunci tadi.

Jika masih penasaran, bisa baca: Seal/Unseal | Vault | HashiCorp Developer

Sebagai contoh, misal ada 5 PIC (n) yang bertugas mengamankan sistem perusahaan, dan masing-masing diberikan satu. Untuk membuka Vault ketika ada masalah atau sebagainya, dibutuhkan minimal 3 orang PIC (k) untuk membuka Vault.

Note: Vault punya beberapa cara lain untuk unseal, salah satunya adalah dengan integrasi dengan Hardware Security Module (HSM).

Bisa dipantau untuk post-post selanjutnya mungkin saja terkait Vault lagi, sampai jumpa di post selanjutnya ya.

Leave a Reply

Your email address will not be published. Required fields are marked *

Collaborative Insights from an Aspiring Engineer