Utilia

Shamir Secret Sharing

Bagi kata sandi atau frasa pemulihan menjadi N bagian sehingga M bagian mana pun dapat menyusunnya ulang, dengan Shamir secret sharing di browser Anda.

Pembagian dan penggabungan berjalan sepenuhnya di browser Anda. Rahasia dan bagian-bagiannya tidak pernah dikirim ke mana pun; angka acak berasal dari crypto.getRandomValues.

Bagi rahasia

    Gabungkan bagian

    Cara membagi rahasia

    1. Ketik atau tempel teks yang ingin dilindungi ke Rahasia (teks): frasa pemulihan, kata sandi utama, kunci enkripsi…
    2. Atur Jumlah bagian (N) dan Bagian yang diperlukan untuk menyusun ulang (M). Misalnya, N = 5 dan M = 3 berarti 3 bagian mana pun dari 5 bagian dapat menyusun ulang rahasia, sedangkan 2 bagian tidak mengungkap apa pun.
    3. Klik Bagi rahasia. Setiap bagian muncul di barisnya sendiri dengan tombol Salin; Anda juga bisa memakai Salin semua bagian atau Unduh bagian (.txt).
    4. Klik Uji: gabungkan M bagian pertama untuk memastikan bagian-bagian itu berfungsi sebelum Anda membagikannya.
    5. Berikan setiap bagian kepada orang yang berbeda atau simpan di tempat yang berbeda. Jangan simpan semuanya bersama-sama, karena pembagiannya jadi tidak ada gunanya.

    Cara menyusun ulang rahasia

    1. Tempel setidaknya M bagian ke Bagian, satu per baris, dalam urutan apa pun. Baris kosong diabaikan.
    2. Klik Gabungkan bagian. Teks muncul di bawah Rahasia yang dipulihkan, dan status menyebutkan nomor bagian mana saja yang dipakai.
    3. Jika sebuah bagian salah ketik, berasal dari pembagian lain, atau muncul dua kali dengan isi berbeda, alat ini menyebutkan bagian mana dan alasannya, alih-alih mengembalikan data acak.

    Cara kerja Shamir secret sharing

    Adi Shamir memublikasikan skema ini pada tahun 1979. Untuk membagi satu byte s dengan ambang batas M, pilih polinomial acak berderajat M − 1 yang suku konstantanya adalah s: f(x) = s + a₁x + … + a₍M−1₎x^(M−1). Bagian nomor x adalah nilai f(x). M titik mana pun menentukan polinomial tersebut, sehingga interpolasi Lagrange di x = 0 mengembalikan s; dengan kurang dari M titik, setiap nilai s sama-sama mungkin, sehingga bagian-bagian itu tidak membocorkan apa pun tentang rahasia.

    Alat ini bekerja di medan hingga GF(256) (medan yang dipakai AES, dengan polinomial reduksi x⁸ + x⁴ + x³ + x + 1), sehingga setiap byte dari rahasia UTF-8 mendapat polinomialnya sendiri dan setiap bagian persis sepanjang rahasianya. Koefisien acak berasal dari crypto.getRandomValues, generator angka acak kriptografis milik browser. Semuanya berjalan secara lokal: rahasia dan bagian-bagiannya tidak pernah meninggalkan perangkat Anda.

    Format bagian

    Sebuah bagian terlihat seperti 3-2-5f1c…: ambang batas M, nomor bagian X (1 hingga 255), lalu data heksadesimal. Data tersebut berisi nilai polinomial untuk rahasia diikuti CRC-32 4 byte dari rahasia, dan diakhiri checksum CRC-32 4 byte dari bagian itu sendiri. Checksum menangkap kesalahan saat menyalin; CRC di dalamnya menunjukkan jika bagian dari rahasia yang berbeda tercampur. Bagian yang dibuat dengan alat Shamir lain memakai format lain dan tidak bisa digabungkan di sini.

    Pertanyaan yang sering diajukan

    Bagaimana cara memilih N dan M?

    M adalah jumlah orang atau tempat yang harus bekerja sama, sedangkan N − M adalah jumlah bagian yang boleh hilang. 3 dari 5 adalah pilihan yang umum: dua bagian boleh hilang atau rusak, dan tidak ada pasangan pemegang yang bisa menyusun ulang rahasia sendirian.

    Apakah aman menyimpan satu bagian di cloud?

    Satu bagian, atau kelompok mana pun yang kurang dari M, tidak mengungkap apa pun tentang rahasia. Meski begitu, simpan kurang dari M bagian di satu akun atau tempat, karena jika tidak, tempat itu sendirian sudah memegang rahasianya.

    Apakah alat ini mengenkripsi rahasia?

    Tidak dalam arti biasa: tidak ada kata sandi. Perlindungannya berasal dari ambang batas. Anda bisa menggabungkan keduanya, misalnya dengan membagi passphrase dari sebuah file terenkripsi.

    Apa yang terjadi jika saya memberikan lebih dari M bagian?

    M bagian pertama menyusun ulang rahasia, dan bagian tambahan diperiksa terhadapnya. Bagian yang tidak cocok dilaporkan, sehingga membantu menemukan bagian yang rusak atau asing.

    Bisakah saya membagi sebuah file?

    Alat ini membagi teks hingga 10.000 byte. Untuk file, enkripsi file tersebut dengan passphrase acak yang kuat, lalu bagi passphrase-nya.