Pembagian Rahasia Shamir (SSS)

Implementasi khusus browser dari skema pembagian rahasia Adi Shamir tahun 1979 — konstruksi yang sama yang digunakan Hashicorp Vault untuk kunci master-nya dan Trezor untuk cadangan seed kripto yang dipecah. Pilih berapa banyak bagian yang dihasilkan (N hingga 255) dan berapa yang dibutuhkan untuk rekonstruksi (K, ambang). Distribusikan bagian di antara orang, perangkat, atau brankas pengaman. Penggunaan nyata yang umum: membagi seed wallet 24 kata di antara tiga wali sehingga dua dari mereka dapat memulihkannya, escrow kata sandi root perusahaan 3-dari-5 di antara eksekutif, atau memastikan pasangan dapat mengakses akun penting jika sesuatu terjadi pada Anda.

Cara menggunakan

1
Pilih N dan K

Pilih N (berapa bagian yang dibuat) dan K (berapa yang Anda butuhkan untuk memulihkan). Pilihan umum: 2-dari-3 untuk pribadi, 3-dari-5 untuk tim kecil, 5-dari-7 untuk escrow bernilai tinggi.

2
Ketik rahasia

Kata sandi master, frasa seed, kunci enkripsi — apa pun hingga beberapa ratus byte berfungsi.

3
Distribusikan bagian

Berikan setiap bagian ke orang, lokasi, atau perangkat berbeda. Tulis di kertas, cetak, atau simpan di pengelola kata sandi terpisah.

4
Pulihkan saat dibutuhkan

Saat Anda butuh rahasia, kumpulkan K bagian, tempel ke tab Gabungkan, dan rahasia direkonstruksi.

Bagi kata sandi master atau frasa seed menjadi N keping — K darinya memulihkan, kurang tidak mengungkap apa pun

Anda akan menerima N bagian. K dari mereka merekonstruksi rahasia. Kurang dari K tidak mengungkap apa pun.
Semua bagian di bawah ini termasuk dalam satu set. Membagi lagi akan membuat set BARU, dan bagian yang lama berhenti berfungsi — Anda hanya dapat memulihkan rahasia dari bagian-bagian dalam set yang sama.

Apa yang dilakukan Pembagian Rahasia Shamir

  • Keamanan informasi-teoretis: dengan kurang dari K bagian, penyerang TIDAK belajar apa pun tentang rahasia.
  • Setiap bagian membawa header kecil (versi, ambang, id set) ditambah tag integritas 4 byte, sehingga Gabungkan dapat memverifikasi pemulihan yang benar dan dengan jelas menandai bagian yang tidak cocok atau tidak mencukupi.
  • Menggunakan skema byte-wise standar di atas GF(2⁸) — aljabar yang sama dengan AES.
  • Distribusikan bagian di antara orang, perangkat, lokasi geografis.
  • Implementasi ini TIDAK menambahkan lapisan kata sandi — bagian-bagian itu sendiri adalah perlindungan.
Disalin

Fitur

Keamanan informasi-teoretis
Tidak seperti enkripsi, Shamir memberikan kerahasiaan sempurna: K−1 bagian mengandung nol informasi tentang rahasia. Matematikanya datang dari interpolasi polinomial di atas bidang terbatas.
GF(2⁸) byte-wise
Setiap byte dibagi secara independen dengan aljabar bidang-terbatas yang sama yang digunakan di AES — teruji, cepat, dan standar.
Hingga 255 bagian
Bagi menjadi 2-dari-3 untuk cadangan keluarga, 3-dari-5 untuk escrow kunci perusahaan, atau (K, N) apa pun hingga N = 255.
Pemulihan terverifikasi
Tag integritas bawaan berarti Gabungkan memastikan rahasia direkonstruksi persis — dan memberikan kesalahan yang jelas untuk bagian yang tidak cocok, tidak mencukupi, atau lintas-set alih-alih mengembalikan sampah secara diam-diam.
Keacakan aman secara kriptografis
Keacakan yang mendorong generasi bagian berasal dari sumber acak aman browser Anda — bukan Math.random yang lemah. Kritikal: keacakan lemah akan membiarkan penyerang merekonstruksi rahasia dari kurang dari K bagian.
Berjalan di browser Anda
Pembagian dan rekombinasi dilakukan di tab browser Anda melalui Web Crypto API. Interpolasi polinomial di atas GF(2⁸) dihitung di sisi klien dalam JavaScript — tidak ada endpoint /split atau /combine untuk alat ini, algoritmenya dikirim dalam aset halaman.

FAQ

Bagaimana ini berbeda dari mengenkripsi dan memberi semua orang kata sandi?

Enkripsi membagi rahasia menjadi ciphertext + kunci — siapa pun dengan keduanya memiliki akses penuh. Shamir membagi rahasia langsung menjadi N keping; Anda butuh K darinya, dan K−1 bagian tidak mengungkap apa pun secara matematis (bukan hanya komputasi).

(K, N) yang baik?

2-dari-3 adalah default populer untuk individu (dua lokasi, Anda, pasangan, pengacara). 3-dari-5 untuk tim kecil. K yang lebih tinggi mengurangi risiko kompromi; N yang lebih tinggi memperbaiki kelangsungan hidup terhadap kehilangan.

Bisakah saya percaya implementasi?

Menggunakan skema Shamir byte-wise standar di atas GF(2⁸) — konstruksi yang sama yang digunakan Hashicorp Vault, Trezor SLIP-0039 (cadangan BIP-39 yang dipecah), dan sebagian besar implementasi SSS produksi lainnya. Pembagian dan penggabungan berjalan di peramban Anda melalui Web Crypto API.

Bagaimana jika sebuah bagian hilang?

Selama setidaknya K bagian tersisa, rahasia dapat dipulihkan. Distribusikan N > K untuk menambah redundansi — skema 3-dari-5 bertahan kehilangan 2 bagian.

Bagaimana jika sebuah bagian bocor ke penyerang?

Jika kurang dari K bocor, rahasia Anda tetap aman. Anda harus merotasi rahasia dan mendistribusikan ulang bagian baru; yang lama tidak lagi dapat memulihkan apa pun karena rahasia yang mendasarinya telah berubah.

Format bagian apa yang digunakannya?

Matematika yang mendasarinya adalah skema byte-wise kanonis di atas GF(2⁸) dengan polinomial reduksi 0x11b standar. Setiap bagian dibungkus dalam wadah kecil yang mendeskripsikan dirinya sendiri (versi, ambang, id set, dan tag integritas) sehingga alat dapat memverifikasi pemulihan dan mendeteksi bagian yang tidak cocok — pulihkan bagian dengan alat ini alih-alih library GF(256) mentah.

Bagaimana Anda menilai alat ini?

Terima kasih atas penilaian Anda!
Ingin berbagi lebih? Tinggalkan komentar!
Terima kasih! Komentar Anda akan muncul setelah moderasi.
Siapa yang cocok menggunakan alat ini?
Diterbitkan Penulis: