Cunsiderate un scenariu induve avete bisognu di assicurà una volta bancaria. Hè cunsideratu assulutamente impregnable senza una chjave, chì vi sò datu in u primu ghjornu di travagliu. U vostru scopu hè di almacenà in modu sicuru a chjave.
Dicemu chì decide di mantene a chjave cun voi in ogni mumentu, furnisce l'accessu à l'almacenamiento quantu necessariu. Ma vi capisce rapidamente chì una tale suluzione ùn scala micca bè in pratica, perchè a vostra presenza fisica hè necessaria ogni volta chì apre u almacenamiento. Chì ci hè di e vacanze chì avete prumessu ? Inoltre, a quistione hè ancu più spaventosa: chì si perde a vostra sola chjave?
Cù e vostre vacanze in mente, decide di fà una copia di a chjave è affidate à un altru impiigatu. Tuttavia, capisci chì questu ùn hè micca ideale. Duppiendu u nùmeru di chjave, duppiate ancu e probabilità di furtu di chjave.
In disperazione, distrughjite u duplicatu è decide di sparte a chjave originale in a mità. Avà, pensate chì duie persone di fiducia cù frammenti chjave anu da esse fisicamenti prisenti per cullà a chjave è apre a volta. Questu significa chì un latru hà bisognu di arrubbari dui pezzi, chì hè duie volte più difficiuli di arrubbari una chjave. In ogni casu, prestu capisce chì stu schema ùn hè micca assai megliu cà una sola chjave, perchè se qualchissia perde a mità di chjave, a chjave completa ùn pò micca esse recuperata.
U prublema pò esse risolta cù una seria di chjavi supplementari è chjusi, ma questu approcciu hà bisognu rapidamente много chjavi è chjusi. Decidite chì u disignu ideale seria di sparte a chjave per chì a sicurità ùn si basa micca solu in una sola persona. Avete ancu cuncludi chì ci deve esse un sogliu per u numeru di frammenti per chì, se un fragmentu hè persu (o se una persona va in vacanze), a chjave sana ferma funziunale.
Cumu sparte un sicretu
Stu tipu di schema di gestione chjave hè stata pensata da Adi Shamir in 1979 quandu hà publicatu u so travagliu
Da un puntu di vista di sicurità, una pruprietà impurtante di stu schema hè chì l'attaccante ùn deve micca sapè assolutamente nunda, salvu ùn hà almenu parti. Ancu a prisenza e parti ùn deve micca furnisce alcuna infurmazione. Chjamemu sta pruprietà sicurezza semantica.
Interpolazione polinomiale
Schema di soglia di Shamir custruitu intornu à u cuncettu interpolazione polinomiale. Se ùn site micca familiarizatu cù stu cuncettu, hè in realtà abbastanza simplice. In fatti, s'è vo avete mai tracciatu punti nantu à un graficu è dopu li cunnessu cù linee o curve, l'avete digià usatu!
Per mezu di dui punti pudete disegnà un numaru illimitatu di polinomi di gradu 2. Per sceglie l'unicu da elli, avete bisognu di un terzu puntu. Illustrazione:
Cunsiderate un polinomiu cù u gradu unu, . Se vulete tracciate sta funzione nantu à un graficu, quanti punti avete bisognu? Ebbè, sapemu chì questu hè una funzione lineale chì forma una linea è cusì hà bisognu di almenu dui punti. Dopu, cunzidira una funzione polinomiale cù u gradu dui, . Questa hè una funzione quadratica, cusì almenu trè punti sò richiesti per tracciate u graficu. Cume di un polinomiu cù u gradu trè? Almenu quattru punti. E cetara è cetara.
A cosa veramente bella di sta pruprietà hè chì, datu u gradu di a funzione polinomiale è almenu punti, pudemu derivà punti supplementari per questa funzione polinomiale. Chjamemu l'estrapolazione di sti punti supplementari interpolazione polinomiale.
Fendu un sicretu
Puderete avè digià capitu chì questu hè induve u schema intelligente di Shamir entra in ghjocu. Diciamu u nostru sicretu Is . Pudemu turnà à un puntu nantu à u graficu è vene cun una funzione polinomiale cun gradu , chì satisface stu puntu. Ricordemu chì serà a nostra soglia di frammenti richiesti, cusì se avemu stabilitu u limitu à trè frammenti, duvemu sceglie una funzione polinomiale cù u gradu dui.
U nostru pulinumu avarà a forma induve и - interi pusitivi selezziunati aleatoriamente. Custruemu solu un polinomiu cù u gradu , induve u coefficient liberu - Questu hè u nostru sicretu , è per ognunu di i seguenti termini ci hè un coefficient pusitivu sceltu aleatoriamente. Se vultemu à l'esempiu originale è assume chì , allora avemu a funzione .
À questu puntu pudemu generà frammenti cunnessendu interi unichi in induve (perchè hè u nostru sicretu). In questu esempiu, vulemu distribuisce quattru frammenti cù un sogliu di trè, cusì generà punti aleatoriu. è mandà un puntu à ognunu di i quattru persone di fiducia, i custodi di a chjave. Avemu ancu fà sapè chì a ghjente , postu chì questu hè cunsideratu infurmazione publica è hè necessariu per a ricuperazione .
Ritruvà u sicretu
Avemu digià discututu u cuncettu di l'interpolazione polinomiale è cumu si basa à u schema di soglia di Shamir. . Quandu qualsiasi trè di i quattru trustees volenu restaurà , anu solu bisognu di interpolà cù i so punti unichi. Per fà questu, ponu determinà i so punti è calculate u polinomiu d'interpolazione di Lagrange cù a formula seguente. Se u prugramma hè più chjaru per voi cà a matematica, allora pi hè essenzialmente un operatore for
, chì multiplica tutti i risultati, è sigma hè for
, chì aghjunghje tuttu.
à pudemu risolve cusì è rinvià a nostra funzione polinomiale originale:
Siccomu sapemu chì , ripresa fattu solu:
Utilizà l'aritmetica intera micca sicura
Ancu s'è avemu appiicatu successu l'idea basica di Shamir , simu lasciati cun un prublema chì avemu ignoratu finu à avà. A nostra funzione polinomiale usa l'aritmetica intera micca sicura. Nota chì per ogni puntu supplementu chì un attaccu ottene nantu à u graficu di a nostra funzione, ci sò menu pussibulità per altri punti. Pudete vede questu cù i vostri ochji quandu tracciate un numeru crescente di punti per una funzione polinomiale cù l'aritmetica intera. Questu hè contraproducente à u nostru scopu di sicurezza dichjaratu, perchè l'attaccante ùn deve sapè assolutamente nunda finu à avè almenu frammenti.
Per dimustrà quantu hè debule u circuitu aritmeticu integeru, cunzidira un scenariu in quale un attaccu hà ottenutu dui punti è cunnosce infurmazione publica chì . Da sta infurmazione pò deduce , uguale à dui, è inserisci i valori cunnisciuti in a formula и .
L'attaccante pò allora truvà , cuntà :
Dapoi avemu definitu cum'è interi pusitivi selezziunati aleatoriamente, ci sò un numeru limitatu di pussibuli . Utilizendu sta informazione, un attaccu pò deduce , postu chì qualcosa più grande di 5 farà negativu. Questu risulta esse veru postu chì avemu determinatu
L'attaccante pò tandu calculà i valori pussibuli , rimpiazzà в :
Cù opzioni limitate per diventa chjaru quantu faciule hè di selezziunà è verificà i valori . Ci sò solu cinque opzioni quì.
Risolve u prublema cù l'aritmetica integera insegura
Per eliminà sta vulnerabilità, Shamir suggerisce aduprà aritmetica modulare, rimpiazzà nantu induve и - l'inseme di tutti i numeri primi.
Ricurdemu rapidamente cumu funziona l'aritmetica modulare. Un clock with hands hè un cuncettu familiar. Ella usa un orologio chì hè . Appena a lancetta di l'ora passa dodici, torna à unu. Una pruprietà interessante di stu sistema hè chì solu fighjendu u clock, ùn pudemu micca deduce quante rivoluzioni hà fattu a manu di l'ora. Tuttavia, se sapemu chì a manu di l'ora hà passatu 12 quattru volte, pudemu determinà cumplettamente u nùmeru d'ore chì anu passatu cù una formula simplice. induve hè u nostru divisore (qui ), hè u coefficient (quante volte u divisore entra in u numeru originale senza restu, quì ), a hè u restu, chì generalmente torna una chjama di l'operatore modulo (qui ). Sapendu tutti sti valori ci permette di risolve l'equazioni per , ma s'è no manca u coefficient, ùn puderemu mai ristabilisce u valore uriginale.
Pudemu dimustrà cumu questu migliurà a sicurità di u nostru schema appiendu u schema à u nostru esempiu precedente è utilizendu . A nostra nova funzione polinomiale , è i punti novi . Avà i guardiani chjave ponu una volta aduprà l'interpolazione polinomiale per ricustruisce a nostra funzione, solu sta volta l'operazione di addizione è multiplicazione deve esse accumpagnata da a riduzione di modulo. (per esempiu ).
Utilizendu stu novu esempiu, supponemu chì l'attaccante hà amparatu dui di sti novi punti, , è infurmazione publica . Sta volta, l'attaccante, basatu annantu à tutte l'infurmazioni chì hà, pruduce e seguenti funzioni, induve hè l'inseme di tutti i numeri interi pusitivi, è rapprisenta u coefficient di modulu .
Avà u nostru attaccante ritrova , calculà :
Allora prova di novu , rimpiazzà в :
Sta volta hà un prublema seriu. Formula i valori mancanti , и . Siccomu ci hè un nùmeru infinitu di cumminazzioni di sti variàbili, ùn pò micca ottene infurmazioni supplementari.
Considerazioni di sicurezza
U schema di spartera sicretu di Shamir suggerisce sicurità da u puntu di vista di a teoria di l'infurmazione. Questu significa chì a matematica hè resistente ancu contr'à un attaccu cù una putenza informatica illimitata. Tuttavia, u circuitu cuntene ancu parechji prublemi cunnisciuti.
Per esempiu, u schema di Shamir ùn crea micca frammenti da verificà, vale à dì, a ghjente pò presentà liberamente frammenti falsi è interferiscenu cù a ricuperazione di u sicretu currettu. Un guardianu di frammenti ostili cù infurmazioni sufficienti puderia ancu pruduce un altru fragmentu cambiendu à a vostra propria discrezione. Stu prublema hè risolta usendu schemi di spartera sicretu verificabili, cum'è u schema di Feldman.
Un altru prublema hè chì a durata di ogni frammentu hè uguale à a durata di u sicretu currispundente, cusì a durata di u sicretu hè faciule di determinà. Stu prublema pò esse risolta da trivial imbottitura sicretu cù numeri arbitrarii finu à una lunghezza fissa.
Infine, hè impurtante nutà chì e nostre preoccupazioni di sicurezza ponu estenderà oltre u disignu stessu. Per l'applicazioni criptografiche in u mondu reale, ci hè spessu a minaccia di attacchi di u canali laterali induve un attaccu prova di caccià infurmazioni utili da u tempu di esecuzione di l'applicazione, caching, crashes, etc. S'ellu hè una preoccupazione, durante u sviluppu deve esse cunsideratu attente à l'usu di misure protettive, cum'è funzioni è ricerche in tempu constantu, impediscendu chì a memoria sia salvata à u discu, è una quantità di altre considerazioni chì sò fora di u scopu di stu articulu.
Demo
nantu
Source: www.habr.com