Shamir Gizli Paylaşım Hesaplama

Pay üretmek için sır, pay sayısı, eşik ve asal modül girin.

Nasıl hesaplanır?

S sırrı, k−1 dereceli bir polinomun sabit terimi olur: f(x) = S + a1x + … + ak−1xk−1 (mod p). i numaralı pay, i = 1 … n için (i, f(i)) çiftidir ve herhangi k pay polinomu belirleyip S = f(0) değerini geri verir. Burada p asal modüldür ve sır, 0 ile p−1 arasında bir tam sayı olmalıdır.

Gerçek bir uygulamanın aksine katsayılar rastgele değildir: her ai, “tohum#i” metninin CRC-32 sağlama toplamının mod p alınmasıyla bulunur; yani aynı girdi ve tohum her zaman aynı payları verir. Bu, çıktıyı tekrarlanabilir kılar ve öğrenmek ya da elle kontrol etmek için uygundur, ancak güvenli değildir. Tüm sayılar tam sayı olmalı ve yaklaşık 3 milyarı aşmamalıdır. Eşik en az 2 ve pay sayısını geçmeyecek şekilde olmalı, pay sayısı 1 ile 1.000 arasında ve p'den küçük olmalı, p ise asal olmalıdır. Bu kurallardan birini bozan girdide sonuç gösterilmez.

Örnek hesaplama

Sır S = 1234, n = 4 pay, eşik k = 3, asal p = 7919, tohum “demo”. Tohum a1 = 6415 ve a2 = 1485 verir; yani f(x) = 1234 + 6415x + 1485x² (mod 7919). f(1) = 9134 − 7919 = 1215. f(2) = 20004 − 2×7919 = 4166. f(3) = 33844 − 4×7919 = 2168. f(4) = 50654 − 6×7919 = 3140. Araç payları şöyle listeler:
1: 1215
2: 4166
3: 2168
4: 3140
Bunlardan herhangi üçü Lagrange interpolasyonuyla birleştirilip 1234 geri bulunabilir.

Bu örneği dene →

Sık yapılan hatalar

  • Payları gerçek bir sır bölüşümü olarak kullanmak. Katsayılar tohumun herkese açık bir sağlama toplamından gelir; tohumu bilen (varsayılan “demo”dur) herkes polinomu yeniden kurabilir ve bu durumda tek bir pay bile sırrı ele verir. Aracı yalnızca yöntemi öğrenmek için kullanın.
  • 7920 gibi asal olmayan bir modül seçmek. Araç bunu reddeder; çünkü kurtarma adımındaki bölme için asal bir cisim gerekir.
  • Modüle eşit ya da ondan büyük bir sır girmek. Sır p'den küçük olmalıdır; dört haneli bir sır için 9999'dan büyük bir asal gerekir.
  • Pay sayısını modül kadar büyük tutmak. Paylar 1 … n diye numaralanır ve bu numaralar mod p'de farklı, sıfırdan farklı kalıntılar olmalıdır; n, p'den küçük olmalıdır. p = 7 iken 7 pay istenirse sonuç çıkmaz.
  • Eşiği 1 yapmak ya da pay sayısından büyük girmek. 2'den küçük eşik sonuç vermez, n'den büyük eşik ise hiçbir zaman sağlanamaz.

Bu hesaplama hakkında

Kriptolog Adi Shamir tarafından 1979'da tanıtılan Shamir Gizli Paylaşımı, bir sırrı n paya böler; öyle ki bu payların herhangi k tanesi sırrı tam olarak yeniden oluşturur, k−1 veya daha azı ise — doğru uygulandığında — hakkında hiçbir bilgi vermez (bu yalnızca hesaplamalı değil, bilgi-kuramsal düzeyde bir güvenliktir). Yöntem, sabit terimi sır olan, diğer katsayıları rastgele seçilen k−1 dereceli bir polinom kurup, asal bir modül ile tanımlanan sonlu bir cisim üzerinde her katılımcıya bu polinom üzerinde bir nokta (x, f(x)) vererek çalışır.

Kurtarma işlemi Lagrange interpolasyonu kullanır: dağıtılan noktalardan herhangi k tanesi, k−1 dereceli polinomu tek biçimde belirler ve bu polinomu x = 0'da değerlendirmek orijinal sırrı geri verir. Bu eşik şeması, gerçek anahtar yönetim sistemlerinin temelini oluşturur — HashiCorp Vault'un mühür açma anahtarları ve SLIP-0039 gibi cüzdan kurtarma standartları, tek bir anahtar sahibinin veya küçük bir alt kümenin tek başına ana sırrı yeniden oluşturamamasını sağlamak için bunu kullanır. Bu hesaplayıcı bir öğrenme gösterimidir: diğer katsayılar gerçek rastgelelikle değil bir tohum metninden türetilir, yani aynı girdiler her zaman aynı payları verir. Gerçek sırları korumak için kullanmayın.

Bu faydalı oldu mu?

En fazla 3 tepki seçebilirsiniz.

Yorumlar

  • İlk yorumu siz yazın.

Popüler hesaplayıcılar

Tüm Hesaplayıcılar