Relateret nøgleangreb [ 1] er en type kryptografisk angreb , hvor en kryptoanalytiker vælger et forhold mellem et par nøgler, men selve nøglerne forbliver ukendte for ham. Dataene er krypteret med begge nøgler. I den kendte klartekstvariant kender kryptanalytikeren klarteksten og chifferteksten af data krypteret med to nøgler. Angriberens mål er at finde de faktiske hemmelige nøgler. Det antages, at angriberen kender eller vælger en matematisk relation, der forbinder nøglerne. Relationen har formen ( ) [2] , hvor er funktionen valgt af angriberen og er de tilhørende nøgler. For hver kryptering vælges forholdet mellem nøglerne individuelt. Der er mange måder at finde dette forhold korrekt på [3] . Sammenlignet med andre angreb, hvor angriberen kun kan manipulere klarteksten og/eller chifferteksten, giver valget af forholdet mellem de hemmelige nøgler angriberen en ekstra grad af frihed. Ulempen ved denne frihed er, at sådanne angreb kan være sværere i praksis. Designere forsøger dog normalt at skabe "ideelle" primitiver, der automatisk kan bruges uden yderligere analyse i det bredest mulige sæt af protokoller eller driftsformer. At modstå sådanne angreb er således et vigtigt designmål for blokcifre, og faktisk var det et af de erklærede designmål for Rijndael- algoritmen .
De fleste krypteringsalgoritmer ændrer den originale nøgle til senere brug. Denne modifikation kaldes nøgleudvidelse . Der er eksempler på algoritmer, hvor nøgleudvidelsesproceduren er ekstremt kompleks sammenlignet med den faktiske kryptering, blandt dem er HPC- og FROG- algoritmerne værd at nævne . Navnet på proceduren bestemmes af det faktum, at den indledende krypteringsnøgle normalt har en størrelse væsentligt mindre end det sæt af undernøgler, der bruges i runderne af algoritmen, det vil sige den udvidede nøgle.
Det viser sig, at krypteringsalgoritmen logisk kan opdeles i to subalgoritmer: de faktiske krypteringstransformationer og nøgleudvidelsesproceduren. Der er en række krav til nøgleudvidelsesproceduren [4] :
Denne type angreb blev først foreslået af den israelske videnskabsmand Eli Biham i 1992 i artiklen New Types of Cryptanalytic Attacks Using Related Keys . Det linkede nøgle-angreb, der er beskrevet af ham, ligner et forskydningsangreb . Shift attack ( engelsk slide attack ) - kryptografisk angreb , som i det generelle tilfælde er et angreb baseret på udvalgt klartekst , som tillader kryptering af blok-multi-runde ciphers, uanset antallet af brugte runder. Foreslået af Alex Biryukov og David Wagner i 1999 [5] . Skiftangrebet bruger to klartekster og opfylder følgende forhold: , hvor er rundefunktionen og er undernøglen til 1. runde . Et relateret nøgleangreb bruger et lignende forhold mellem nøgler. Lad os antage, at den ønskede krypteringsnøgle K efter dens modifikation ved nøgleudvidelsesproceduren giver en sekvens af undernøgler: , hvor er antallet af runder af krypteringsalgoritmen. Antag, at der er en nøgle, hvis udvidelse giver følgende sekvens: , det vil sige, sekvensen af undernøgler, der er oprettet på basis af nøglen , forskydes cyklisk i forhold til sekvensen af den ønskede nøgle med 1 runde [6] .
Hvilken af teksterne der svarer til hver tekst fra , ved kryptanalytikeren ikke på forhånd. Men sandsynligheden for, at to tilfældigt udvalgte tekster vil opfylde det påkrævede forhold er . Så skal det påkrævede par findes efter at have analyseret mere end tekster, i overensstemmelse med fødselsdagsparadokset . Betingelsen for teksterne er ikke streng, den er et skøn og vil kun blive opfyldt i gennemsnit [8] .
Nøglen fundet fra ovenstående system er den påkrævede undernøgle . Afhængigt af nøglegenereringsoperationen kan viden give kryptanalytikeren mange muligheder for uautoriseret adgang til information. For eksempel er nøglegenereringen af LOKI89 -algoritmen konstrueret på en sådan måde, at den blot er den venstre 32-bit del af nøglen . Da denne algoritme bruger en 64-bit nøgle, er det efter beregningen nok bare at opregne mulighederne for at finde den. [9]
Den runde funktion af den angrebne algoritme skal være svag nok til at beregne , hvilket er tilfældet for de fleste moderne krypteringsalgoritmer. Derudover kan kompleksiteten af angrebet reduceres betydeligt i forhold til det ovenfor beskrevne tilfælde, det hele afhænger af den valgte plaintext krypteringsalgoritme. For eksempel er beregninger forenklet for algoritmer baseret på et afbalanceret Feistel-netværk .
DES ( data encryption s tandard ) er en algoritme til symmetrisk kryptering udviklet af IBM og godkendt af den amerikanske regering i 1977 som en officiel standard ( FIPS 46-3). Blokstørrelsen for DES er 64 bit . Algoritmen er baseret på et Feistel-netværk med 16 cyklusser ( runder ) og en nøgle på 56 bit . Algoritmen bruger en kombination af ikke-lineære (S-bokse) og lineære (E, IP, IP-1 permutationer) transformationer.
DES-krypteringsalgoritmen er modstandsdygtig over for et sådant angreb. Under krypteringsprocessen for hovedkrypteringsfunktionen er det påkrævet at beregne seksten 48-bit nøgler, som er resultatet af konvertering af den originale 56-bit nøgle ( for flere detaljer, se afsnittet "Nøglegenerering" ). Antallet af skift i nøgleberegningsalgoritmen stemmer ikke overens i alle runder. Typisk forskydes nøgleregistrene to bits efter hver runde, og kun én bit efter den første, niende og femtende runde. Men hvis du ændrer dette skifteskema, skal du indstille skiftet til at være det samme i alle runder, så bliver det resulterende kryptosystem sårbart over for et linket-nøgleangreb. Den mindst sikre at angribe er den modificerede DES, hvor nøglen forskydes med to bits efter hvert trin [10] .
Tabellen beskriver antallet af skift før hver runde af nøglegenerering og den modificerede skiftnummervariant, som er sårbar over for et forbundet nøgleangreb. For at knække en sådan variant af algoritmen ville kryptanalytikeren kun have brug for 2 17 valgte klartekster til de valgte nøgler eller 2 33 kendte klartekster til de valgte nøgler. For at bryde den modificerede DES er det nødvendigt at udføre 1,43*2 53 operationer, hvilket er en lille gevinst sammenlignet med den udtømmende søgning, hvor antallet af operationer er 2 56 [11] . I 1998, ved hjælp af en $250.000 EFF DES cracker supercomputer, blev DES knækket på mindre end tre dage [12] . EFF DES cracker brugte en brute-force søgning [13] til cracking . Store krav til tid og datavolumen tillader ikke at implementere et angreb på tilsluttede nøgler uden hjælp fra dyrt udstyr. Men ikke desto mindre er angrebet interessant af to grunde:
Advanced Encryption Standard ( AES ), også kendt som Rijndael (udtales [rɛindaːl] (Randal [14] )) er en symmetrisk blokchifferalgoritme (blokstørrelse 128 bit, nøgle 128/192/256 bit) vedtaget som en krypteringsstandard af USA's regering ifølge resultaterne af AES-konkurrencen . Denne algoritme er blevet godt analyseret og er nu meget brugt, som det var tilfældet med dens forgænger DES . AES kommer i tre varianter, der hver giver et forskelligt sikkerhedsniveau afhængigt af længden af den hemmelige nøgle. Nøglen kan være 128, 192 og 256 bit lang. Siden 2001, efter valget af AES som kryptografisk standard, har fremskridtet i dets kryptoanalyse været ekstremt lavt [15] . De bedste resultater blev opnået i løbet af angreb baseret på relaterede nøgler i 2009. Alex Biryukov , sammen med Dmitry Khovratovich, leverede det første linked-key kryptoanalytiske angreb på fuld-runde AES-192 og AES-256, den udviklede metode er hurtigere end brute force.
Det udviklede angreb på AES-256 er velegnet til alle typer nøgler og har en kompleksitet på omkring 2 96. Et angreb på AES-192 blev også præsenteret. Begge angreb minimerer antallet af aktive S-bokse i nøglegenereringsalgoritmen. Denne operation udføres ved hjælp af et boomerangangreb . Differentielle karakteristika for boomerangen blev etableret ved at søge efter lokale kollisioner i chifferen [16] . Hovedtræk ved AES-256, som er afgørende for de angreb, der overvejes, er, at krypteringsalgoritmen har 14 runder og en 256-bit nøgle, der fordobles i den interne tilstand. Derfor består nøglegenereringsalgoritmen kun af 7 runder, og hver runde har efter tur 8 S-bokse. På samme måde for AES-192, på grund af det faktum, at nøglen bliver halvanden gang større i den interne tilstand, består nøglegenereringsalgoritmen kun af 8, ikke 12 runder. Hver runde har kun 4 S-blokke.
Angreb på AES-256Det er nødvendigt at udføre følgende trin 2 25,5 gange [17] :
Hver struktur har alle mulige muligheder for kolonne nul, række nul og en konstant værdi i andre bytes. Af de 272 tekster i hver struktur kan 2144 par sammenlignes. Af disse par vil 2 (144−8*9) = 2 72 bestå den første runde. Således får vi 1 påkrævet kvartet af 2 (96-72) = 2 24 strukturer og 3 nødvendige kvartetter af 2 25,5 strukturer. Vi beregner antallet af kvartetter af de seneste 6 trin, der vil være omkring 2 (144-56-16) = 2 72 par. Næste trin er at anvende et 16-bit filter, så vi får det samlede antal mulige kvartetter 2 (72+25,5−6) = 2 91,5 [18] .
Angreb på AES-192Nøglegenereringsalgoritmen i dette tilfælde har den bedste spredning. Derfor bruger boomerangangrebet to underspor på hver 6 runder. Lad os analysere 2 73 strukturer med 2 48 tekster i henhold til følgende skema [19] :
Begge præsenterede angreb er hovedsageligt af teoretisk interesse og udgør i praksis ikke en reel trussel mod applikationer, der bruger AES.
De beskrevne angreb ved hjælp af relaterede nøgler ser ikke praktiske ud. I mange udviklinger gavner de ikke meget i forhold til udtømmende søgning, derudover kræver de en lang række antagelser. Dette angreb har længe været betragtet som ret kraftigt, men rent teoretisk [20] . Men eksperter som John Kelsey og Bruce Schneier [20] mener nu , at linked-key angreb kan have praktiske anvendelser. Nogle implementeringer af kryptografiske algoritmer eller netværksprotokoller (for eksempel autentificering eller nøgleudvekslingsprotokoller) kan allerede være modtagelige for et forbundet nøgleangreb [20] . En potentiel applikation er hashfunktionsanalyse . Teoretisk set kan linked-key-angreb være farlige, hvis symmetriske krypteringsalgoritmer bruges til at bygge hash-funktioner. På nuværende tidspunkt kendes ingen specifik applikation til hashfunktioner, men designere af hashfunktioner bør tage højde for, når de designer, at en sådan svaghed eksisterer. Under alle omstændigheder anbefales det kraftigt at tage kryptoanalyse på tilknyttede nøgler i betragtning ved udvikling af krypteringsalgoritmer og deres implementering [21] . Det bemærkes i [20] , at hovedbetingelsen for angrebet ser ret mærkelig ud: kryptanalytikeren kan skrive nøglen, det vil sige modificere den ønskede ukendte nøgle på den nødvendige måde, men kan ikke læse den. Nogle implementeringer af kryptografiske algoritmer eller netværksprotokoller kan dog angribes ved hjælp af tilknyttede nøgler. Under alle omstændigheder anbefales det kraftigt at tage kryptoanalyse på linkede nøgler [20] i betragtning ved udvikling af krypteringsalgoritmer og deres implementering. Det bemærkes også, at angreb på relaterede nøgler kan være meget farlige, hvis symmetriske krypteringsalgoritmer bruges til at bygge hash-funktioner.
Der er andre potentielle sårbarheder introduceret i krypteringsalgoritmen af en dårligt designet nøgleudvidelsesprocedure, især [22] :