Cryptology Academy · Ders

Shamir'in Gizli Paylaşımı: Polinom Matematiği

Sırları bölmek ve geri kazanmak için sonlu cisimler üzerinde polinomlar oluşturun.

2. ders / 413 adım

Shamir'in Gizli Paylaşımı: Polinom Matematiği, CoddyKit'te ücretsiz bir Cryptology Academy dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Cryptology Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Cryptology Academy kursu toplamda 4 dersten oluşur.

Temel İçgörü

Shamir'in Gizli Paylaşımı (1979), gizli bilgiyi sonlu bir cisim üzerindeki rastgele, (k-1) dereceli bir polinomun y eksenini kestiği nokta (f(0)) olarak kodlar. Herhangi k nokta polinomu tekil olarak belirler (Lagrange enterpolasyonu); k'dan az nokta hiçbir bilgi vermez.

Polinom Oluşturma

Gizli S bilgisini n taraf arasında k eşikli paylaşmak için: S ve n'den büyük bir asal p seçin. Rastgele a_1, ..., a_{k-1} katsayılarını seçin. f(x) = S + a_1*x + a_2*x^2 + ... + a_{k-1}*x^{k-1} (mod p) tanımını yapın. i. taraf (i, f(i)) payını alır.

Örnek: 2'ye 3 Şeması

Gizli S=7, p=17, k=2 (doğrusal polinom). a_1=3 seçin. f(x)=7+3x mod 17. Paylar: (1,10), (2,13), (3,16). Herhangi iki nokta doğruyu belirler. f(0)=7. Tek bir nokta: sonsuz sayıda olası doğru, S hakkında sıfır bilgi.

Lagrange Enterpolasyonu

k adet (x_1,y_1),...,(x_k,y_k) noktası verildiğinde, Lagrange kullanarak f(0) değerini yeniden oluşturun: S = sum_i y_i * prod_{j≠i} (0-x_j)/(x_i-x_j) mod p. Tüm aritmetik işlemler modülerdir. Kayan nokta yoktur; sonlu cisim üzerinde kesin yeniden oluşturma yapılır.

Python Uygulaması

from functools import reduce def lagrange(shares, p): xs = [s[0] for s in shares] ys = [s[1] for s in shares] result = 0 for i, (xi, yi) in enumerate(shares): num = reduce(lambda a,b: a*b%p, [(-xj)%p for j,xj in enumerate(xs) if j!=i], 1) den = reduce(lambda a,b: a*b%p, [(xi-xj)%p for j,xj in enumerate(xs) if j!=i], 1) result = (result + yi * num * pow(den, p-2, p)) % p return result

Kusursuz Güvenlik Kanıtı Taslağı

k-1 pay için, her olası gizli değer S için bu k-1 noktadan geçen, derecesi k-1 olan tam olarak bir polinom vardır. Bu nedenle k-1 payı bilmek, [0, p-1] aralığındaki her S değerinin eşit olasılıklı olması demektir; hiçbir bilgi açığa çıkmaz.

Asal Sayıyı Seçme

p, gizli değerden ve n'den büyük olmalıdır. Yaygın bir seçim, 128 bitlik gizli değerler için p = 2^127-1 (Mersenne asalı) kullanmaktır. Bu, tüm payların 128 bite sığmasını ve aritmetiğin verimli olmasını sağlar. Alternatif olarak 512 bitlik gizli değerler için p=2^521-1 kullanılabilir.

Payların Doğrulanması

Temel SSS'de pay bütünlüğü yoktur: kötü niyetli bir pay sahibi yanlış bir pay sunarak gizli değerin yanlış yeniden oluşturulmasına neden olabilir. Feldman VSS (Doğrulanabilir Gizli Paylaşım), g^{a_i} mod p taahhütlerini yayımlar; böylece polinom açığa çıkarılmadan paylar doğrulanabilir.

Önleyici Gizli Paylaşım

Paylar düzenli aralıklarla yenilenebilir: aynı gizli değer S ile yeni bir polinom üretilir ve yeni paylar dağıtılır; eski paylar geçersiz olur. Yenilemeden sonra bir pay sahibini ele geçiren saldırgan, işe yaramaz eski bir pay elde eder. Bu yöntem uzun ömürlü anahtar yönetimi sistemlerinde kullanılır.

Uygulamalar

ssss (Linux komut satırı), python-secret-sharing ve hashicorp/vault, mühür mekanizmaları için SSS kullanır; Trezor donanım cüzdanı ise cüzdan tohumu yedeği için SSS kullanır (SLIP-39). Bunların tümü büyük asal cisimler üzerinde çalışır.

Sınırlamalar

SSS, payları üretip dağıtmak için güvenilir bir dağıtıcı gerektirir (dağıtıcı gizli değeri bilir). Dağıtıcının olmadığı senaryolarda DKG (Dağıtık Anahtar Üretimi) gerekir. Yeniden oluşturma, k payı elinde bulunduran kişiye gizli değeri açığa çıkarır; bu sorun MPC/eşik imzalarıyla ortadan kaldırılır.

Hızlı Kontrol

Shamir'in (3,5) gizli paylaşımında, gizli değeri yeniden oluşturmak için gereken en az pay sayısı kaçtır?

Özet

Shamir'in SSS'si gizli değerleri polinomların y-kesişimleri olarak kodlar. Lagrange enterpolasyonu gizli değeri k paydan geri kazandırır. k'dan az pay için kusursuz bilgi-kuramsal güvenlik sağlar. Sıradaki konu: görsel ve toplamsal gizli paylaşım.

Başlamak ücretsiz

Yapay zeka eğitmeniyle Cryptology Academy öğren — ücretsiz

Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.

Kurslar
67
Dersler
261

Sıkça Sorulan Sorular

“Shamir'in Gizli Paylaşımı: Polinom Matematiği” dersi ücretsiz mi?

Evet — “Shamir'in Gizli Paylaşımı: Polinom Matematiği” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Cryptology Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Cryptology Academy kursu toplamda 4 dersten oluşur.

“Shamir'in Gizli Paylaşımı: Polinom Matematiği” dersinde ne öğreneceğim?

Sırları bölmek ve geri kazanmak için sonlu cisimler üzerinde polinomlar oluşturun. Cryptology Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Cryptology Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Cryptology Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.

“Shamir'in Gizli Paylaşımı: Polinom Matematiği” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Cryptology Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Cryptology Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Gizli Paylaşımı Problemi
  2. Shamir'in Gizli Paylaşımı: Polinom Matematiği
  3. Görsel Gizli Paylaşım ve Toplamsal Şemalar
  4. Eşik İmzaları ve Gerçek Dünyadaki Kullanım Alanları
← Cryptology Academy Sayfasına Dön