Hvordan kan en RSA 2048-kryptering brytes?


Beste svaret

I kryptanalysefeltet er det stor forskjell mellom « crack «og» break «.

Du knekker et passord i den enkleste forstand ved å prøve å låse opp systemet med alle mulige gjentakelser av passordet, en metode kjent som brute-force cracking. Hvis du kjenner reglene som styrer opprettelsen og bruken av passordet, vet du også på forhånd hvilken tid / krefter som ligger i denne krypteringen. Hver eneste algoritme der ute har en kjent forventet beregningsinnsats som kreves for å knekke den.

En algoritme, som MD5 eller SHA-1 (reelle eksempler), sies å være ødelagt når du finner noen form for kollisjon som reduserer det forventede universet (alle mulige løsninger på formelen som brukes til å opprette nøkkelen / passordet).

For å forenkle, la meg gå gjennom et eksempel på WPS (Wi-Fi Protected Setup i virkeligheten) ). WPS ble opprettet for å gjøre det enklere for brukere å sikre Wi-Fi-nettverket. Den besto av en åttesifret PIN-kode som skulle byttes ut mellom den forespørselsrike brukeren og ruteren ved å trykke på en knapp.

Skaperne av systemet visste på forhånd det forventede universet: 8 tall gir deg 100.000.000 mulig kombinasjoner (10 ^ 8). Implementeringen av protokollen delte imidlertid tallet i to firesifrede kombinasjoner som ble validert hver for seg.

Dette betydde at du faktisk bare måtte prøve 10.000 (10 ^ 4) + 10.000 (10 ^ 4) kombinasjoner, i verste fall, for å knekke PIN-koden. Universet ditt med 100 millioner kombinasjoner falt nå plutselig til bare 20 000 kombinasjoner. Algoritmen er effektivt ødelagt . Du kan da prøve å knekke den – som du kunne ha gjort hvis den ikke ble ødelagt – men da den er ødelagt, er sjansene dine for å lykkes mye bedre, og krever bare maksimalt 20 000 forsøk i stedet for 100 millioner.

Konklusjonen å trekke av dette:

Brudd og sprekker er forskjellige ting. En ødelagt kryptering betyr ikke at den er usikker, bare at det er lettere å knekke nå. Avhengig av verdien av det som blir beskyttet av det, betyr det ikke å være ødelagt for et gitt system, det er bare en forståelse av at det er mindre sikkert nå enn det opprinnelig var forventet å være.

RSA-2048 vil bli ødelagt hvis noen finner en måte å lage kollisjoner som iboende reduserer det forventede antall kombinasjoner for å knekke krypteringen. RSA 2048 kan knekkes som den er, som enhver annen kryptering, med brute-force.

Svar

RSA, i og for seg selv, har bare noen få angrep på den offentlige modulen (som vanligvis er en halvprime eller to store tilfeldig valgte prim s multiplisert sammen). Den mest effektive klassiske algoritmen for å løse faktoriseringsproblemet, som muliggjør utledning av den private nøkkelen ved hjelp av grunnleggende aritmetikk, er GNFS (General Number Field Sieve). Denne algoritmen kjører i subeksponentiell tid og er ikke mulig å bruke på riktig implementert RSA-2048 bit-systemer.

Det eksisterer også Shors algoritme, men den kan ikke monteres på RSA-2048 av en typisk angriper. Quantum-datamaskinprodusenter driver et oligopol, spesielt ledet av D-Wave. Ikke bare er det utrolig dyrt å skaffe en, men det krever også spesialutstyr for å kjøre og vedlikeholde dem. Ingen brikker er opprettet med tilstrekkelig informasjonsevne og kraft til å bryte mer enn noen få biter.

Som nevnt tidligere er et kryptosystem ingenting uten en korrekt implementering. De fleste implementeringer av RSA bruker også en offentlig nøkkel fingeravtrykksalgoritme, vanligvis en hash. I tillegg til det er det mulig å finne faktorisering av primtall med en utnyttelse som både er utrolig sjelden og også statistisk ubetydelig når det gjelder suksessrate. Som Euclid påpekte , er det uendelige primtall, men ikke bare er det uendelige primtall, det er mange av dem innenfor et bestemt nøkkelområde. Hvis to moduler tilfeldigvis deler samme prime, er det enkelt å finne faktorisering. Ved å bruke største felles divisoralgoritme , som kjører i lineær tid (den kan enkelt kjøres på enheten du ser dette på innen millisekunder), kan den felles faktoren bli funnet, deretter delt ut av modulene for å gi de to andre manglende primtallene. Dette fører til tilgang til begge tastene. Enhver korrekt implementering av RSA vil aldri bruke primtall for separate nøkler, i stedet for å velge dem helt tilfeldig. Fordi det finnes mange mulige moduler innenfor 2048-biters nøkkelområdet, som kan skrives som antall primerlengder 2048 velg 2 (eller høyere enn 2 hvis du arbeider med ikke-standardmoduler), er sjansen for at to nøkler til og med deler to primer er ubetydelige . Det er med andre ord bare å kaste bort tid å ta alle nøklene fra en nøkleserver og kjøre GCD-algoritmen på dem alle.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *