Shamir’in Sır Paylaşımı algoritması, kimseye güvenmek zorunda kalmadan sırlarınızı korumanızı sağlayacaktır. Ancak bu algoritmanın nasıl çalıştığını daha iyi anlamak için bu yazıda bir hikaye üzerinden ilerleyelim.
Hikayemizin kahramanı yaşlı bir kadın ve hiçbirine tam olarak güvenmediği beş oğlu olsun. Hayatının sonuna doğru ardından tüm çocuklarının mirastan pay almasını sağlamak bu kadının kafasına takılan bir sorun. Şu an için mevcut parasını bir kasada saklıyor ancak kasanın beş haneli anahtarını çocuklarına söylemek de istemiyor. Dediğimiz gibi kadının çocukları konusunda bazı endişeleri var.
Öncelikle aklına her çocuğuna şifrenin yalnızca bir kısmını söylemek geliyor. Bu sayede çocukları ancak işbirliği yapma durumunda kasanın şifresini çözebilecektir. Ancak sonrasında bu fikrinden de vazgeçiyor. Sonucunda çocuklarının her birine şifrenin herhangi bir rakamını söylediğini varsayalım. Bu durumda üç çocuk kendi aralarında anlaşır, deneme yanılma yöntemi ile son iki rakamı bulup diğer iki kardeşin mirastan pay almasını kolayca engelleyebilir.
Bu nedenle kadının çocukların beşinin birlikte çalışması durumunda işe yarayacak bir yöntem bulması gerekiyor. Bu yöntem öyle bir yöntem olmalı ki, beş oğuldan ikisi, üçü veya dördü bir araya gelse bile işe yaramamalı. Bu oldukça zor bir görev. Ancak bu zorluk 1979 yılında matematikçi Adi Shamir’in cesaretini kırmadı. Ona göre bunun bir yolu Shamir’s Secret Sharing adını verdiği Shamir’in Sır Paylaşımı algoritması idi.
Shamir’in Sır Paylaşımı Algoritması Nedir?
Kendisinin bulduğu yöntem gerçekten sıradışı idi. Ancak matematikçi Adi Shamir’in, Ron Rivest ve Leonard Adleman ile birlikte “RSA algoritması” olarak adlandırılan algoritmayı geliştiren kişi olduğunu düşününce sonuç çok da şaşırtıcı değil.
Shamir’in sır paylaşma yöntemini anlamak için somut bir sayısal örneğe bakmak faydalı olacaktır. Diyelim ki kadının şifresi 43953 ve sadece iki oğlu var. Eğer bir oğluna “439”u, diğerine ise “953”ü söylerse, ikisine de aynı miktarda bilgi vermiş olur. Bu durumda çocukların her biri eksik olan iki rakamı tahmin etmeye çalışır ve birlikte çalışmaya gereksinim duymazlar. Onların birlikte çalışmalarını sağlamak için olaya farklı bir pencereden bakmamız gerekecektir.
Herkesin bildiği gibi iki noktadan bir doğru geçer. Bir tek noktadan da sonsuz sayıda doğru geçer. Yani bir doğru için birlikte çalışmak gereklidir. Diyelim ki kadın kafasında y = 5x + 43953 denklemini belirledi. Büyük oğluna P1 noktasının koordinatlarını (33503, 211468) verdi. Diğer oğluna da P2 noktasının koordinatlarını (85395, 470928) verdi.
Çocukları matematikte kötü olsalar bile kasanın şifresini artık kolayca belirleyebilirler. Bunun için iki noktanın koordinat düzleminde yerini bulup, noktaları işaretleyip, bir cetvel ile birleştirebilirler. Bu doğrunun y ekseniyle kesiştiği nokta aradıkları şifre olacaktır.
Ya Kadının Daha Fazla Çocuğu Varsa?
Kadının iki değil üç çocuğu varsa da aynı yöntem izlenebilir. Ancak bu durumda kadının şifreyi gizlemek için düz bir çizgiyi değil, bir parabolü seçmesi gerekecektir. Diyelim ki kadın y = 5x2 + 10x + 43953 fonksiyonunu seçip oğullarının her birine parabol üzerinde bir nokta vermiş olsun. Bu denklemin de y ekseniyle kesişme noktası istenen çözüme yani 43953 sayısına karşılık gelecektir.
Ancak bu durumda da çocuklardan ikisi birleşip üçüncüye karşı komplo kuramaz. Çünkü iki noktadan da sonsuz sayıda parabol geçer. Bu durumda y ekseni ile kesişme noktasını ve dolayısıyla kasanın şifresini bulmak için üçüncü kardeşin yardımı yine gerekecektir.
Aynı mantıkla devam edersek, dört oğlu olan bir kadın, y = ax3 + bx2 + cx + 43953 türünde bir denklem ile şifreyi saklayacaktır. Beş oğlu olan bir kadın da dördüncü dereceden bir polinom denklemi kullanır (örneğin, y = ax4 + bx3 + cx2 + dx + 43953) vb.
Ama bir sorun var. Beş çocukla ilgili senaryoya geri dönelim. Eğer dördü bir araya gelip, diğer kardeşe komplo kurarsa, dört noktayı kullanarak dördüncü derece denklemi basitleştirebilirler. Şifreyi tam olarak bulamasalar da sonunda iki bilinmeyenli bir denklemle karşı karşıya kalırlar. Bu denklemde bilinmeyen olarak a parametresi ve c yani aradığımız şifre vardır. Ayrıca bu çocuklar c’nin yani şifrenin pozitif bir tamsayı olduğunu biliyorlar. Ayrıca kadının yaşı vb gibi unsurları dikkate alarak a parametresinin de pozitif tamsayı olması gerektiğini varsayabilirler.
Bu da olasılık aralığını önemli ölçüde kısıtlamaktadır. Kardeşler farklı çözümleri denemek için bir bilgisayar programı kullanırsa kısa sürede şifreyi bulacaklardır. Böyle bir senaryodan kaçınmak için Shamir’in başka bir fikri vardı. Gerçek sayılarla hesaplama yapmak yerine daha küçük bir sayı sistemi ile çalışmaya karar verdi. Bu sayı sisteminde de dört işlem yapabiliyordu.
Shamir’in Sır Paylaşımı Güvenliği Nasıl sağlanacak?
Size zorlu bir sistemden bahsedeceğimizi düşünüyorsanız aslında yanılıyorsunuz. Tam olarak neden bahsettiğimizi anlamak için duvardaki saate bakın. Bir saat için kullandığımız sayılar sınırlıdır. Ancak yine de bir saat üzerinde kolayca işlem yaparız.
Shamir’in sır paylaşımında da sınırlı bir sayı aralığı seçiliyor. Ancak üst sınır genellikle bir saatte olduğu gibi 12 değil, büyük bir asal sayı oluyor. Sayı uzayı bu şekilde seçilirse, bir polinomun grafiği artık sürekli bir eğriye karşılık gelmez. Bunun yerine düzlemde rastgele dağılmış noktalara karşılık gelir.
Yaşlı kadın bu hesaplama ile kardeşlerin birbirlerine karşı komplo kurmaları neredeyse imkansız hale getirecektir. Tek çare kardeşlerin şifreyi bulmak için birlikte çalışmalarıdır. Günümüzde Shamir’in Sır Paylaşımı algortiması, özel bilgilerin (“sırların”) güvenilmeyen bir ağ üzerinde, güvenli bir şekilde dağıtılmasına olanak sağlayan önemli bir şifreleme algoritması olarak varlığını sürdürmektedir.
Kaynaklar ve ileri okumalar
- Shamir, A. (1979) How to Share a Secret. Communications of the ACM, 22, 612-613.
http://dx.doi.org/10.1145/359168.359176 - How Cryptographic ‘Secret Sharing’ Can Keep Information Safe. Yayınlanma tarihi: 7 Aralık 2023. Kaynak site: Scientificamerican.Bağlantı: How Cryptographic ‘Secret Sharing’ Can Keep Information Safe
Size Bir Mesajımız Var!
Matematiksel, 2015 yılından beri yayında olan ve Türkiye’de matematiğe karşı duyulan önyargıyı azaltmak ve ilgiyi arttırmak amacıyla kurulmuş bir platformdur. Sitemizde, öncelikli olarak matematik ile ilgili yazılar yer almaktadır. Ancak bilimin bütünsel yapısı itibari ile diğer bilim dalları ile ilgili konular da ilerleyen yıllarda sitemize dahil edilmiştir. Bu sitenin tek kazancı sizlere göstermek zorunda kaldığımız reklamlardır. Yüksek okunurluk düzeyine sahip bir web sitesi barındırmak ne yazık ki günümüzde oldukça masraflıdır. Bu konuda bizi anlayacağınızı umuyoruz. Ayrıca yazımızı paylaşarak veya Patreon üzerinden ufak bir bağış yaparak da büyümemize destek olabilirsiniz. Matematik ile kalalım, bilim ile kalalım.
Matematiksel