Shamir'in Gizli Paylaşım Sistemi ile bir sırrın y-ekseninde nasıl saklandığını ve iki noktanın onu nasıl ortaya çıkardığını gösteren soyut bir illüstrasyon.

Shamir’in Gizli Paylaşım Sistemi: Sırları Güvenle Bölmenin Matematiği

Shamir’in Gizli Paylaşım Sistemi: Sırları Kaybetmeden Güvenle Yönetmek

Bazı sırlar tek bir kişiye emanet edilemeyecek kadar değerli, o kişi ortadan kaybolduğunda kaybedilemeyecek kadar önemli olabilir. Bir şirket, ana anahtar kullanılmadan önce üç yetkilinin hazır bulunmasını isteyebilir. Bir aile, hesap kurtarma işlemi için birden fazla zarfa ihtiyaç duyabilir. Bir ekip, bir üyenin kaybı durumunda bile yedeklemeyi sürdürmek, ancak kimseye tüm sırrı vermemek isteyebilir.

RSA’daki ‘S’ harfinin sahibi olan Adi Shamir, 1979’da bunu yapmanın bir yolunu yayınladı: Bir sırrı parçalara ayırın, öyle ki belirli sayıda parça onu kurtarabilirken, daha az sayıda parça kesinlikle hiçbir şey açıklamaz. ‘Çözmesi zor’ değil, hiçbir şey açıklamaz. Temel fikir tek bir sayfaya sığar.

İki Nokta Bir Çizgiyi Belirler

Zaten bildiğiniz bir şeyle başlayalım: İki farklı nokta, tam olarak bir düz çizgiyi belirler.

Tek bir nokta ise çizgiyi belirlemez. Sonsuz sayıda çizgi tek bir noktadan geçer ve her çizgi dikey ekseni farklı bir yerde keser. İşte sırrımızı, bir çizginin dikey ekseni kestiği yere saklayalım. Diyelim ki sır 7 sayısıdır. Bu yükseklikten rastgele bir çizgi çizin. Eğim önemli değildir; bu sadece sırrı gizleyen rastgeleliktir.

Her kişiye çizgiden bir nokta verin. Hiç kimse çizginin kendisini almaz. Tek bir noktaya sahip bir kişi, bu noktadan birçok olası çizgi çizebilir. Her çizgi farklı bir sırrı ima eder. Bu kişinin payı, her olası cevapla uyumludur, bu yüzden tek başına onlara faydalı hiçbir şey söylemez.

İki noktayı bir araya getirdiğinizde ise çizgi sabitlenir. Çizgiyi bildiğinizde, sıfırı kestiği yerden sırrı okuyabilirsiniz. Bu, bir ‘n’ içinden 2’li gizli paylaşım şemasıdır. İstediğiniz kadar nokta oluşturabilirsiniz, ancak herhangi ikisi çizgiyi kurtarmak için yeterlidir.

Daha Çok Kişi Daha Çok Eğilme Demek

Daha yüksek bir eşik için, daha fazla eğime sahip bir eğri kullanın.

Bir parabol, onu belirlemek için üç noktaya ihtiyaç duyar. Yani sır, parabolün dikey ekseni kestiği yere saklanırsa, herhangi üç pay sırrı kurtarabilirken, herhangi iki pay kurtaramaz. Genel olarak, ‘k’ eşiği, ‘k-1’ dereceli bir polinom kullanır:

  • 2 pay: bir çizgi
  • 3 pay: bir parabol
  • 4 pay: bir kübik

Gerçek uygulamalar grafik kağıdı yerine sonlu alan aritmetiği kullanır, ancak fikrin şekli aynıdır. Sır, sıfırdaki değerdir. Rastgele katsayılar onu gizler. Her pay, polinom üzerindeki bir noktadır.

Faydalı olan kısım, sırrın çok az paydan hesaplanmasının zor olması değil, çok az payın sır hakkında hiçbir bilgi içermemesidir. Bir pay eksik olduğunda, her olası sır hala mümkündür.

Neden Önemli?

Bu fikri Ente’nin Legacy Kit‘inde kullanıyoruz.

Ancak, bizim sorunumuz sadece ‘bir sırrı nasıl böleriz?’ değil, aynı zamanda ‘bölünmüş sırları kalıcı bir kurtarma anahtarına dönüştürmeden kurtarmayı nasıl mümkün kılarız?’ idi.

Legacy Kit, Shamir’in şemasını daha büyük bir akış içinde bir katman olarak kullanır. Kartlar kurtarma anahtarını taşımaz. Yerel olarak ayrı bir sırrı yeniden yapılandırırlar, bu da sunucu aracılı bir kurtarma işlemine katılır – böylece verilen kartlar iptal edilebilir ve kaybolan bir kart kalıcı bir yükümlülük olmaz. Bu yazı sadece ‘herhangi ikisi, asla biri’ kısmının arkasındaki matematiği açıklamaktadır.

Daha Fazla Okuma

  • Adi Shamir’in ‘How to Share a Secret’
  • Bruce Schneier’ın ‘Sharing Secrets Among Friends’
  • Max Levchin’in PayPal hikayesi
  • Ente’nin kaynak kodu

Comments

No comments yet. Why don’t you start the discussion?

    Bir yanıt yazın

    E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir