147 / 691SSS

Shamir Secret Sharing

Shamirovo prahové sdílení tajemství

Shamir Secret Sharing rozdělí jedno tajemství na podíly: zvolený práh je obnoví, menší počet v ideálním modelu nezmění znalost tajemství.

Shamir Secret Sharing je konstrukce Adiho Shamira publikovaná roku 1979. Kóduje tajemství jako konstantu náhodného polynomu nad konečným tělesem; nejde o rozstříhání fráze ani samo o sobě o podpisový protokol.

Schéma k z n umožňuje obnovu z libovolných k platných odlišných podílů stejné sady. Snese ztrátu n−k podílů, ale také dovoluje spolupracujícím k držitelům tajemství získat. Například 3 z 5 toleruje dvě ztráty, nikoli tři. Práh je kompromisem mezi dostupností a velikostí skupiny schopné obnovy. [Adi Shamir — How to Share a Secret (1979)]

Pro tajemství S se zvolí f(x)=S+a1*x+…+a(k−1)*x^(k−1). Koeficienty kromě S jsou nezávislé a rovnoměrně náhodné prvky tělesa. Podíl je dvojice (x,f(x)) s odlišným nenulovým x; x=0 by rovnou vydal S. Lagrangeova interpolace z k bodů určí f(0). Dvě kopie stejného bodu nepřidají další rovnici. [Adi Shamir — How to Share a Secret (1979)]

Pouze výukově vezměme S=5 a f(x)=5+3*x mod 17. Tři podíly jsou (1,8), (2,11), (3,14). Z prvních dvou vyjde sklon 3 a konstanta 8−3=5; všechny tři dvojice obnoví 5. Samotný (1,8) je slučitelný s každým S od 0 do 16, pokud a=8−S mod 17. Malé těleso není návrhem pro peněženku. [Adi Shamir — How to Share a Secret (1979)]

V ideálním schématu méně než k úplných podílů neposkytuje informaci o S ani útočníkovi s neomezeným výpočtem. Platí to pro správně zvolené nezávislé koeficienty a model pozorovaných dat. Slabá náhodnost, znovupoužité koeficienty, vedlejší kanály nebo další kontrolní data vyžadují samostatnou analýzu. Sdílení neposílí slabé tajemství, které lze uhodnout jinudy. [Adi Shamir — How to Share a Secret (1979)] [SLIP-0039 — Shamir Secret-Sharing for Mnemonic Codes]

Obnova potřebuje shodné těleso, kódování hodnot, indexy a identitu sady. Nad prvočíselným tělesem GF(p) se používají modulární inverze, nikoli desetinné dělení; GF(256) má jiné operace než zbytky modulo 256. SLIP-39 přidává konkrétní slovník, metadata, skupiny, šifrování a kontrolu. Dva programy označené Shamir proto nemusí mít kompatibilní podíly. [Adi Shamir — How to Share a Secret (1979)] [SLIP-0039 — Shamir Secret-Sharing for Mnemonic Codes]

Základní interpolace neověřuje původ podílu ani poctivost distributora. Poškozený bod může vrátit jiné tajemství, ne pouze ohlásit nedostatek. Detekce, opravování chyb a verifiable secret sharing jsou další konstrukce s vlastními předpoklady. SLIP-39 například přidává checksum a digest; tyto doplňky nelze automaticky připsat každému Shamir Secret Sharing. [SLIP-0039 — Shamir Secret-Sharing for Mnemonic Codes] [NIST — Multi-Party Threshold Cryptography]

Při běžné obnově se celé S objeví v jednom prostředí, které ho může prozradit. Shamir Secret Sharing na rozdíl od Multisig nezavádí více nezávislých on-chain podpisových klíčů. Prahové podepisování může pomocí dalšího MPC protokolu pracovat s podíly bez sestavení klíče, jak rozlišuje NIST. Samotné rozdělení a následné spojení tuto vlastnost nemá. [NIST — Multi-Party Threshold Cryptography]

Pět souborů v jednom účtu neodděluje riziko ztráty či kompromitace. Zaznamenejte parametry a ověřte obnovu na důvěryhodném zařízení. Nový náhodný polynom se stejným S vytvoří jinou sadu, jejíž podíly se nemají míchat se starou. Dostatečná stará sada však stále obnoví S; nové rozdělení samo nezneplatní dříve získané podíly ani uniklé tajemství. [Adi Shamir — How to Share a Secret (1979)] [Trezor — Multi-share Backup]

Pro nejúplnější obraz čtěte toto heslo společně s SLIP-39, Multisig, Seed Phrase, Privátní klíč, Bitcoin Inheritance Plan. Opačným směrem na něj odkazují také SLIP-39, FROST.

DOC · 001Adi Shamir — How to Share a Secret (1979)Primární zdrojDOC · 002SLIP-0039 — Shamir Secret-Sharing for Mnemonic CodesSpecifikaceDOC · 003NIST — Multi-Party Threshold CryptographyPrimární zdrojDOC · 004Trezor — Multi-share BackupDokumentace
Primární zdroje · Nejde o investiční doporučení