McEliece er et offentlig nøglekryptosystem baseret på algebraisk kodningsteori, udviklet i 1978 af Robert McEliece [1] . Det var den første ordning, der brugte randomisering i krypteringsprocessen. Algoritmen har ikke fået bred anerkendelse inden for kryptografi , men den er samtidig en kandidat til post-kvantekryptografi , da den er modstandsdygtig over for angreb ved hjælp af Shor-algoritmen [2] .
Algoritmen er baseret på kompleksiteten af afkodning af fulde lineære koder (generelt afkodningsproblem er NP-hårdt ) [3] .
For at beskrive den private nøgle vælges en fejlretningskode, hvortil der kendes en effektiv afkodningsalgoritme, og som kan rette fejl. Algoritmen bruger binære Gopp- koder , som let afkodes takket være Peterson-algoritmen . Den offentlige nøgle opnås ved at skjule den valgte kode som en komplet lineær. For at gøre dette multipliceres den genererende matrix først til højre med permutationsmatricen og derefter med den ikke -singulære matrix til venstre (se arbejdsalgoritmen ).
Der er flere varianter af kryptosystemet, der bruger forskellige typer koder. De fleste af dem er mindre sikre. Separat overvejelse fortjener spørgsmålet om valg af parametrene for kryptosystemet [4] .
Indtil videre er McElice med Goppa -koder ikke blevet krypteret [5] . De mest kendte angreb bruger datasæt- afkodningsalgoritmen . Nyere værker beskriver både angreb på systemet og dets forsvar [6] . Andre papirer har vist, at til kvanteberegning skal nøglestørrelsen øges med fire størrelsesordener på grund af forbedringer i datasætafkodning [2] .
Kryptosystemet har flere fordele, såsom over RSA . Kryptering og dekryptering er hurtigere, og efterhånden som nøglelængden vokser, vokser graden af databeskyttelse meget hurtigere. I lang tid troede man, at McEliece ikke kunne bruges til EDS . Det viste sig dog at være muligt at bygge et skema til en EDS baseret på Niederreiter-kryptosystemet (modificeret af McEliece). Da disse to kryptosystemer, afhængigt af de anvendte koder, udtrykker det samme kodeproblem, kan det i dag argumenteres for, at McEliece er anvendelig i autentificeringsproblemer .
På grund af mangler bruges McEliece sjældent. En undtagelse er brugen af McElice til kryptering på et Freenet -lignende ENTROPY -netværk .
Et goppa-polynomium er defineret som et polynomium over et felt af formen , hvor , og . Vi definerer også en dimensionel delmængde over feltudvidelsen : , hvilket er sandt for enhver . Yderligere, for kodeordet over feltet , er funktionen defineret .
Goppa-koden består af alle kodeord , der opfylder . Det betyder, at polynomiet deler sig .
Dimensionen af en Goppa-kode af længde er større end eller lig med , og den mindste kodeafstand er større end eller lig med .
Tjekmatricen har følgende form:
.
Hvis Goppa-polynomiet er et irreducerbart polynomium over feltet , så er minimumsafstanden for en sådan kode større end eller lig med . I det følgende antages det, at .
Kryptologiske applikationer bruger en irreducerbar, binær Goppa-kode med parametre .
Der er flere grunde til at bruge Goppa-koder i McEliece-kryptosystemet. For det første er der flere hurtige polynomielle tidsafkodningsalgoritmer [7] . For det andet er ethvert irreducerbart polynomium over et felt egnet til at specificere en Goppa-kode, den genererende matrix af koden er næsten tilfældig. Derfor er Goppa-koder meget nemme at indstille, men samtidig svære at genkende. For en fast kodeordslængde er der mange koder. For eksempel, for en kode med længde , der er i stand til at rette op til fejl, er der omkring forskellige Goppa-koder. Deres antal vokser eksponentielt afhængigt af længden af ordet og graden af det genererende polynomium.
McEliece består af tre algoritmer:
Teksten i beskeden er en længdevektor over det sidste felt .
Alle brugere på systemet deler sikkerhedsindstillinger: .
Lad Bob ønske at sende en besked til Alice, hvis offentlige nøgle er .
Efter at have modtaget beskeden , udfører Alice følgende trin for at dekryptere beskeden:
Lad os vise, at hovedegenskaben ved kryptosystemet [5] er opfyldt , det vil sige at .
Bob sender . Alice beregner . Da det er en permutationsmatrix, så er vægten højst .
Gopps kode retter op til fejl. Hammerafstand , så Alice får den rigtige besked . Alice beregner derefter den originale besked .
Lad en irreducerbar, binær Goppa-kode med parametre bruges , hvor er et irreducerbart polynomium af grad over feltet , og .
Alice genererer tilfældigt en generatormatrix af en sådan kode
,vælger en matrix
og en permutationsmatrix
,Derefter
.Denne matrix leveres som den offentlige nøgle og . Hvis Bob vil sende en besked til Alice, genererer han først en vektor med vægt , f.eks .
Beregner chiffertekst
og sender den til Alice.
Efter at have modtaget en besked, beregner Alice først
.
På grund af permutationerne er fejlene flyttet til det første og sjette tegn. Alice finder ved hjælp af en hurtig afkodningsalgoritme
.
Fund .
Og til sidst får Alice .
Indledningsvis blev parametrene foreslået: Som et resultat var størrelsen af den offentlige nøgle 524*(1024-524) = 262.000 bit. I en nylig analyse er følgende parametre blevet foreslået: for 80 bits sikkerhed ved brug af konventionel algebraisk dekodning eller ved brug af en afkodningstabel til Goppa-koden. I dette tilfælde øges den offentlige nøgle til henholdsvis 520.047 og 460.647 bit. For stabilitet mod en kvantecomputer bør parametrene øges til , og størrelsen af den offentlige nøgle til 8.373.911 bits [1] [6] .
Systemets kryptografiske styrke er baseret på to komplekse beregningsproblemer: udtømmende nøglerumssøgning og maksimal sandsynlighedsafkodning. Litteraturen beskriver et ret stort antal angreb på McEliece [8] . Nogle angreb, kaldet strukturelle angreb , er baseret på et forsøg på at bygge/reverse engineering af en dekoder til den kode, der genereres af den offentlige nøgle . Hvis et sådant forsøg lykkes, vil den private nøgle blive afsløret, og kryptosystemet vil blive fuldstændig brudt. Koden genereret af matrixen og koden genereret af matrixen tilhører den samme ækvivalente klasse. Angriberen skal sammenligne den repræsentative kode fra hver klasse for at bestemme den tilsvarende kode. Da de tilsvarende klasser er meget lavt strømforbrug, er denne proces ud over selv de mest kraftfulde computeres muligheder. For originale parametre kræver dette strukturelle angreb flere koder at lære [5] .
Andre angreb er rettet mod at hente den originale tekst af beskeden fra den krypterede besked. De fleste af dem er baseret på datasætafkodning (ISD ) eller fødselsdagsparadokset [9] , deres generaliseringer og forbedringer. Der er angreb såsom iterativ afkodning [3] og statisk afkodning, men de er ikke succesfulde. ISD-angrebet viste sig at være det mindst vanskelige. Flere algoritmer og deres forbedringer er blevet beskrevet i de senere år. De vigtigste er anført i tabellen sammen med deres binære afkodningsomkostninger for Goppa-koden. For disse algoritmer er deres begrænsende indikatorer kendte [10] .
År | Algoritme | Sværhedsgrad ( ) |
---|---|---|
1986 | Adams-Meyer | 80,7 |
1988 | Lee Brickell | 70,89 |
1989 | hård | 66,21 |
1994 | Kanteout Chabannes | 65,5 |
1998 | Canteout-Shabant | 64,1 |
2008 | Bernstein-Lang-Peters | 60,4 |
2009 | Finiaz-Sendreir | 59,9 |
Lad er en længdekode over feltet , og dimensionel vektor har en afstand fra kodeordet , så er et element med en afstand fra . Omvendt, hvis er en længdekode over et felt med en minimumsafstand mindre end , så kan vægtelementet ikke være i , det skal være i . Eller på anden måde, er et element med afstand fra .
Chifferteksten til McEliece-kryptosystemet har en afstand fra kodens unikke nærmeste kodeord , der har en afstand på mindst . Angriberen kender kodens generatormatrix og kan nemt tilføje for at danne generatormatricen for . Det eneste vægtkodeord i er . Efter at have fundet dette kodeord, finder angriberen og får nemt den ønskede tekst. Det er værd at overveje, at afkodning giver en lille forenkling:
hvis det har dimension , så har det dimension . Stern-algoritmen giver dig mulighed for at finde kodeordet for den mindste vægt.
Find det laveste kodeordAlgoritmens input er et tal og en kontrolmatrix af størrelse for koden over feltet . Ved hjælp af lineære algebra -metoder er det altid muligt at få en kontrolmatrix fra den genererende matrix.
Tilfældigt udvalgt fra kolonnerne i matrixen . Derefter vælges et -dimensionelt underrum tilfældigt , som deler de resterende delmængder i to delmængder og . For et kodeord, der har nøjagtigt ikke-nul bits i , nøjagtigt ikke-nul bits i , ikke-nul bits i , og nøjagtigt ikke-nul bits i andre kolonner.
Søgningen består af tre trin. Ved det første trin, ved at anvende de enkleste operationer, får vi identitetsmatrixen fra de valgte kolonner . Dette kan ikke gøres, hvis den originale submatrix ikke er inverterbar, så genstartes algoritmen. Tab ved genstart undgås på grund af det adaptive valg af hver kolonne.
I det andet trin er submatrixen identitetsmatrixen, kolonnesættet svarer til rækkerne . For hver dimensionel delmængde af sættet beregnes summen af kolonnerne i for hver af disse rækker. Resultatet er en -bit vektor . På samme måde for hver dimensionel delmængde af sættet .
Ved det tredje trin, for hver kollision , summen af kolonnerne i . Denne sum vil være en -bit vektor. Hvis summen har en vægt , så fås den ved at tilføje de tilsvarende kolonner til submatrixen. Disse kolonner danner sammen med og danner det ønskede vægtkodeord .
De største ulemper ved McEliece-kryptosystemet [6] :