Shamir's hemlighetsdelning schema

LÄt oss övervÀga ett scenario dÀr det Àr nödvÀndigt att sÀkerstÀlla sÀkerheten för ett bankvalv. Det anses vara helt oÄtkomligt utan nyckeln, som du fÄr den första dagen av din anstÀllning. Ditt mÄl Àr att pÄ ett tillförlitligt sÀtt bevara nyckeln.

Anta att du beslutat att alltid ha nyckeln pÄ dig, och ge tillgÄng till valvet vid behov. Men du kommer snabbt att inse att en sÄdan lösning inte skalar praktiskt, eftersom det varje gÄng krÀvs att du Àr fysiskt nÀrvarande för att öppna valvet. Vad hÀnder med semestern som du lovades? Dessutom Àr det Ànnu mer oroande frÄgan: vad om du förlorar den enda nyckeln?

Med tanken pÄ semestern beslutade du att göra en kopia av nyckeln och överlÀmna den till en annan anstÀlld. Men du förstÄr att detta inte Àr perfekt heller. Genom att dubblera antalet nycklar har du ocksÄ dubblerat möjligheterna för nyckeln att stjÀlas.

I desperation förstör du kopian och beslutar att dela upp den ursprungliga nyckeln i tvÄ delar. Nu tÀnker du att tvÄ betrodda personer med nyckeldela mÄste vara fysiskt nÀrvarande för att sÀtta ihop nyckeln och öppna valvet. Detta innebÀr att tjuven mÄste stjÀla tvÄ delar, vilket Àr dubbelt sÄ svÄrt som att stjÀla en nyckel. Men snart inser du att denna lösning inte Àr mycket bÀttre Àn en enda nyckel, eftersom om nÄgon förlorar en del av nyckeln, kan den fullstÀndiga nyckeln inte ÄterstÀllas.

Problemet kan lösas med hjÀlp av en serie ytterligare nycklar och lÄs, men med ett sÄdant tillvÀgagÄngssÀtt kommer det snart att krÀvas mÀn fler nycklar och lÄs. Du beslutar att den idealiska lösningen Àr att dela upp nyckeln sÄ att sÀkerheten inte helt beror pÄ en enda person. Du drar ocksÄ slutsatsen att det mÄste finnas en viss tröskel för antalet delar, sÄ att om en del gÄr förlorad (eller om personen gÄr pÄ semester) kvarstÄr den fullstÀndiga nyckeln funktionell.

Hur man delar en hemlighet

Denna typ av nyckelhanteringsschema reflekterade Adi Shamir över 1979 nÀr han publicerade sitt arbete «Hur man delar en hemlighet». I artikeln förklaras kort den sÄ kallade Shamir's hemlighetsdelning schema tröskelschema för effektiv delning av ett hemligt vÀrde (till exempel en kryptografisk nyckel) i Shamir's hemlighetsdelning schema delar. NÀr och endast nÀr minst Shamir's hemlighetsdelning schema frÄn Shamir's hemlighetsdelning schema delar har samlats in kan hemligheten enkelt ÄterstÀllas. Shamir's hemlighetsdelning schema.

Ur sĂ€kerhetssynpunkt Ă€r en viktig egenskap hos detta schema att en angripare inte bör veta nĂ„got alls om han inte har minst Shamir's hemlighetsdelning schema delar. Även nĂ€rvaron av Shamir's hemlighetsdelning schema delar bör inte ge nĂ„gon information. Vi kallar denna egenskap semantisk sĂ€kerhet.

Polynominterpolation

Shamir's tröskelschema Shamir's hemlighetsdelning schema Àr uppbyggd kring konceptet polynominterpolation. Om du inte Àr bekant med detta koncept Àr det faktiskt ganska enkelt. Om du nÄgonsin har ritat punkter pÄ ett diagram och sedan kopplat dem med linjer eller kurvor, har du redan anvÀnt det!

Shamir's hemlighetsdelning schema
Genom tvÄ punkter kan ett obegrÀnsat antal polynom av grad 2 dras. För att vÀlja en unik frÄn dem behövs en tredje punkt. Exempel: Wikipedia

LÄt oss betrakta ett polynom av grad ett, Shamir's hemlighetsdelning schema. Om du vill avbilda denna funktion pÄ ett diagram, hur mÄnga punkter behöver du? Tja, vi vet att det Àr en linjÀr funktion som bildar en linje, sÄ det krÀvs minst tvÄ punkter. LÄt oss sedan titta pÄ en polynomfunktion av grad tvÄ, Shamir's hemlighetsdelning schema. Det Àr en kvadratisk funktion, sÄ för att avbilda den krÀvs minst tre punkter. Hur Àr det med ett polynom av grad tre? Minst fyra punkter. Och sÄ vidare.

Den riktigt hÀftiga saken med denna egenskap Àr att, med hÀnsyn till graden av den polynomfunktion och minst Shamir's hemlighetsdelning schema punkter, kan vi generera ytterligare punkter för denna polynomfunktion. Extrapoleringen av dessa ytterligare punkter kallas polynominterpolation.

Att skapa en hemlighet

Du har kanske redan förstĂ„tt att Shamir's smarta schema kommer in hĂ€r. Anta att vĂ„r hemlighet Ă€r Shamir's hemlighetsdelning schema — detta Ă€r Shamir's hemlighetsdelning schema. Vi kan omvandla Shamir's hemlighetsdelning schema till en punkt pĂ„ grafen Shamir's hemlighetsdelning schema och skapa en polynomfunktion av graden Shamir's hemlighetsdelning schema, som uppfyller denna punkt. Kom ihĂ„g att Shamir's hemlighetsdelning schema vara vĂ„r tröskel för de nödvĂ€ndiga delarna, sĂ„ om vi sĂ€tter tröskeln till tre delar mĂ„ste vi vĂ€lja en polynomfunktion av graden tvĂ„.

VĂ„rt polynom kommer att ha formen Shamir's hemlighetsdelning schema, dĂ€r Shamir's hemlighetsdelning schema och Shamir's hemlighetsdelning schema — slumpmĂ€ssigt valda positiva heltal. Vi bygger helt enkelt ett polynom av graden Shamir's hemlighetsdelning schema, dĂ€r konstanten Shamir's hemlighetsdelning schema Àr vĂ„r hemlighet Shamir's hemlighetsdelning schema, och var och en av de följande Shamir's hemlighetsdelning schema medlemmar finns en slumpmĂ€ssigt vald positiv koefficient. Om vi Ă„tergĂ„r till det ursprungliga exemplet och antar att Shamir's hemlighetsdelning schema, dĂ„ fĂ„r vi en funktion Shamir's hemlighetsdelning schema.

Vid det hÀr stadiet kan vi generera fragment genom att ansluta Shamir's hemlighetsdelning schema unika hela tal i Shamir's hemlighetsdelning schema, dÀr Shamir's hemlighetsdelning schema (eftersom det Àr vÄr hemlighet). I detta exempel vill vi dela ut fyra fragment med en tröskel pÄ tre, sÄ vi genererar slumpmÀssigt punkter Shamir's hemlighetsdelning schema och skickar en punkt till var och en av de fyra betrodda personerna, nyckelns förvaltare. Vi informerar ocksÄ mÀnniskor att Shamir's hemlighetsdelning schema, eftersom det anses vara offentlig information och nödvÀndigt för ÄterstÀllning Shamir's hemlighetsdelning schema.

ÅterstĂ€llning av hemligheten

Vi har redan diskuterat begreppet polynomial interpolation och vad som ligger till grund för Shamir's tröskelschema Shamir's hemlighetsdelning schema. NÀr vilka tre av fyra betrodda personer vill ÄterstÀlla Shamir's hemlighetsdelning schema, behöver de bara interpolera Shamir's hemlighetsdelning schema med sina unika punkter. För detta kan de bestÀmma sina punkter Shamir's hemlighetsdelning schema och berÀkna Lagrange-interpolationspolynomet med hjÀlp av följande formel. Om programmering Àr mer begriplig för dig Àn matematik, Àr pi i huvudsak en operator for, som multiplicerar alla resultat, och sigma Àr for, som adderar allt.

Shamir's hemlighetsdelning schema

Shamir's hemlighetsdelning schema

Vid Shamir's hemlighetsdelning schema vi kan lösa detta pÄ följande sÀtt och ÄterfÄ vÄr ursprungliga polynomialfunktion:

Shamir's hemlighetsdelning schema

Eftersom vi vet att Shamir's hemlighetsdelning schema, ÄterstÀllningen Shamir's hemlighetsdelning schema utförs enkelt:

Shamir's hemlighetsdelning schema

AnvÀndning av osÀker heltalsarithmetic

Trots att vi framgÄngsrikt har tillÀmpat Shamir's grundidé Shamir's hemlighetsdelning schema, har vi ett problem som vi har ignorerat fram till nu. VÄr polynomialfunktion anvÀnder osÀker heltalsarithmetic. TÀnk pÄ att för varje ytterligare punkt som angriparen fÄr pÄ grafen av vÄr funktion, finns det fÀrre möjliga alternativ för andra punkter. Du kan se det med egna ögon nÀr du bygger en graf med ökat antal punkter för en polynomialfunktion med hjÀlp av heltalsarithmetic. Detta Àr kontraproduktivt för vÄrt angivna sÀkerhetsmÄl, eftersom en angripare inte bör veta nÄgonting förrÀn de har minst Shamir's hemlighetsdelning schema fragment.

För att visa hur svag schemat med heltalsarithmetic Àr, övervÀg ett scenario dÀr angriparen har fÄtt tvÄ punkter Shamir's hemlighetsdelning schema och vet den offentliga informationen att Shamir's hemlighetsdelning schema. UtifrÄn denna information kan den utföra Shamir's hemlighetsdelning schema, som Àr lika med tvÄ, och koppla in kÀnda vÀrden i formeln Shamir's hemlighetsdelning schema och Shamir's hemlighetsdelning schema.

Shamir's hemlighetsdelning schema

Sedan kan angriparen hitta Shamir's hemlighetsdelning schema, genom att rÀkna Shamir's hemlighetsdelning schema:

Shamir's hemlighetsdelning schema

Eftersom vi har definierat Shamir's hemlighetsdelning schema som slumpmÀssigt valda positiva heltal, finns det ett begrÀnsat antal möjliga Shamir's hemlighetsdelning schema. Med denna information kan angriparen utföra Shamir's hemlighetsdelning schema, eftersom allt över 5 gör att Shamir's hemlighetsdelning schema blir negativt. Detta visar sig vara sant eftersom vi har definierat Shamir's hemlighetsdelning schema

Sedan kan angriparen berÀkna möjliga vÀrden Shamir's hemlighetsdelning schema, genom att ersÀtta Shamir's hemlighetsdelning schema pÄ Shamir's hemlighetsdelning schema:

Shamir's hemlighetsdelning schema

Med en begrÀnsad uppsÀttning alternativ för Shamir's hemlighetsdelning schema blir det uppenbart hur lÀtt det Àr att gissa och verifiera vÀrden Shamir's hemlighetsdelning schema. HÀr finns bara fem alternativ.

Lösning pÄ problemet med osÀker heltalsaritmetik

För att Ă„tgĂ€rda denna sĂ„rbarhet föreslĂ„r Shamir att anvĂ€nda modulĂ€r aritmetik, genom att ersĂ€tta Shamir's hemlighetsdelning schema till Shamir's hemlighetsdelning schema, dĂ€r Shamir's hemlighetsdelning schema och Shamir's hemlighetsdelning schema — mĂ€ngden av alla primtal.

LĂ„t oss snabbt friska upp minnet om hur modulĂ€r aritmetik fungerar. Klockor med visare Ă€r ett bekant koncept. Det anvĂ€nder klockor som Ă€r Shamir's hemlighetsdelning schema. SĂ„ snart klockvisaren passerar tolv, Ă„tergĂ„r den till ett. En intressant egenskap hos detta system Ă€r att vi bara genom att titta pĂ„ klockan inte kan avgöra hur mĂ„nga varv klockvisaren har gjort. Men om vi vet att klockvisaren har passerat 12 fyra gĂ„nger, kan vi helt bestĂ€mma antalet passerade timmar med hjĂ€lp av en enkel formel Shamir's hemlighetsdelning schema, dĂ€r Shamir's hemlighetsdelning schema — det Ă€r vĂ„r delare (hĂ€r Shamir's hemlighetsdelning schema), Shamir's hemlighetsdelning schema — det Ă€r koefficienten (hur mĂ„nga gĂ„nger delaren utan rest gĂ„r in i det ursprungliga talet, hĂ€r Shamir's hemlighetsdelning schema), och Shamir's hemlighetsdelning schema — det Ă€r resten, som vanligtvis returneras av modulusoperatorn (hĂ€r Shamir's hemlighetsdelning schema). Att kĂ€nna till alla dessa vĂ€rden gör att vi kan lösa ekvationen för Shamir's hemlighetsdelning schema, men om vi missar koefficienten kommer vi aldrig att kunna Ă„terskapa det ursprungliga vĂ€rdet.

Man kan visa hur detta förbÀttrar sÀkerheten i vÄrt system genom att tillÀmpa systemet pÄ vÄrt tidigare exempel och anvÀnda Shamir's hemlighetsdelning schema. VÄr nya polynomfunktion Shamir's hemlighetsdelning schema, och de nya punkterna Shamir's hemlighetsdelning schema. Nu kan nyckelvÄrdare Äterigen anvÀnda polynominterpolering för att ÄterstÀlla vÄr funktion, men den hÀr gÄngen mÄste addition och multiplikation Ätföljas av reduktion mod Shamir's hemlighetsdelning schema (t.ex. Shamir's hemlighetsdelning schema).

Med detta nya exempel, anta att angriparen har fĂ„tt kĂ€nnedom om tvĂ„ av dessa nya punkter, Shamir's hemlighetsdelning schema, och den offentliga informationen Shamir's hemlighetsdelning schema. Den hĂ€r gĂ„ngen anvĂ€nder angriparen all tillgĂ€nglig information för att extrahera följande funktioner, dĂ€r Shamir's hemlighetsdelning schema — mĂ€ngden av alla positiva heltal, och Shamir's hemlighetsdelning schema representerar modulkoefficienten Shamir's hemlighetsdelning schema.

Shamir's hemlighetsdelning schema

Nu finner vÄr angripare Äterigen Shamir's hemlighetsdelning schema, genom att berÀkna Shamir's hemlighetsdelning schema:

Shamir's hemlighetsdelning schema

DÀrefter försöker han Äter igen att extrahera Shamir's hemlighetsdelning schema, genom att ersÀtta Shamir's hemlighetsdelning schema pÄ Shamir's hemlighetsdelning schema:

Shamir's hemlighetsdelning schema

Den hÀr gÄngen har han ett allvarligt problem. Det saknas vÀrden i formeln Shamir's hemlighetsdelning schema, Shamir's hemlighetsdelning schema och Shamir's hemlighetsdelning schema. Eftersom det finns oÀndligt mÄnga kombinationer av dessa variabler kan han inte fÄ nÄgon ytterligare information.

SÀkerhetsövervÀganden

Shamir’s hemlighetsdelning erbjuder sĂ€kerhet ur informationsteoretiskt perspektiv. Det innebĂ€r att matematiken Ă€r robust Ă€ven mot en angripare med oĂ€ndlig datorkapacitet. Dock innehĂ„ller systemet fortfarande flera kĂ€nda problem.

Till exempel skapar Shamir’s schema inte verifierbara fragment, vilket innebĂ€r att personer fritt kan presentera falska fragment och försvĂ„ra Ă„terstĂ€llandet av den korrekta hemligheten. En illvillig fragmentförvarare med tillrĂ€cklig information kan till och med producera ett annat fragment genom att Ă€ndra Shamir's hemlighetsdelning schema som han eller hon behagar. Detta problem löses med verifierbara hemlighetsdelningssystem, sĂ„som Feldmans schema.

Ett annat problem Àr att lÀngden av vilket fragment som helst Àr lika med lÀngden av den motsvarande hemligheten, sÄ att hemlighetens lÀngd enkelt kan bestÀmmas. Detta problem löses med trivial fyllning av hemligheten med slumpmÀssiga siffror till en fast lÀngd.

Slutligen Àr det viktigt att notera att vÄra sÀkerhetsoro kan strÀcka sig bortom sjÀlva systemet. För verkliga kryptografiska tillÀmpningar finns ofta hot om sidokanalsattacker, dÀr angriparen försöker extrahera kÀnslig information frÄn applikationens körning, cacheminne, kraschar, osv. Om detta Àr en oro, bör man noggrant övervÀga anvÀndningen av skyddsÄtgÀrder, sÄsom konstant tidsfunktioner och sökningar, förhindra skrivningar till disk och tÀnka pÄ en rad andra aspekter som gÄr bortom denna artikel.

Demo

PĂ„ denna sida det finns en interaktiv demonstration av Shamir’s hemlighetsdelning. Demonstrationen bygger pĂ„ biblioteket ssss-js, som i sig Ă€r en JavaScript-port av det populĂ€ra programmet ssss. Observera att berĂ€kning av stora vĂ€rden Shamir's hemlighetsdelning schema, Shamir's hemlighetsdelning schema och Shamir's hemlighetsdelning schema kan ta lite tid.

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster