Hoe kan een RSA 2048-codering worden verbroken?

Beste antwoord

In het cryptanalyseveld is er een enorm verschil tussen “ crack “en” break “.

U kraakt een wachtwoord in de eenvoudigste zin door te proberen het systeem te ontgrendelen met alle mogelijke herhalingen van dat wachtwoord, een methode die bekend staat als brute-force cracking. Als u de regels kent die van toepassing zijn op het aanmaken en gebruiken van het wachtwoord, weet u van tevoren ook hoeveel tijd / moeite inherent is aan dat cijfer. Elk algoritme dat er is, heeft een vooraf bekende verwachting in de rekeninspanning die nodig is om het te kraken.

Van een algoritme, zoals MD5 of SHA-1 (echte voorbeelden) wordt gezegd dat het kapot gaat als je een soort van botsing die dat verwachte universum verkleint (elke mogelijke oplossing voor de formule die is gebruikt om de sleutel / het wachtwoord te maken).

Om het eenvoudiger te maken, wil ik u door een realistisch voorbeeld van WPS (Wi-Fi Protected Setup ). WPS is gemaakt om het voor gebruikers gemakkelijker te maken om hun Wi-Fi-netwerk te beveiligen. Het bestond uit een achtcijferige pincode die met een druk op de knop zou worden uitgewisseld tussen de vragende gebruiker en de router.

De makers van het systeem wisten van tevoren wat het verwachte universum was: 8 cijfers geven je 100.000.000 mogelijke combinaties (10 ^ 8). De implementatie van het protocol splitste dat nummer echter op in 2 combinaties van vier cijfers die afzonderlijk werden gevalideerd.

Dit betekende dat je eigenlijk maar 10.000 (10 ^ 4) + 10.000 (10 ^ 4) hoefde te proberen. combinaties, in het ergste geval, om de pincode te kraken. Je universum van 100 miljoen combinaties is nu plotseling gedaald tot slechts 20.000 combinaties. Het algoritme is in feite kapot . Je kunt het dan proberen te kraken – zoals je zou kunnen hebben gedaan als het niet kapot was – maar omdat het kapot is, zijn je kansen om succesvol te zijn veel groter, want je hebt maximaal 20.000 pogingen nodig in plaats van 100 miljoen.

De conclusie om hieruit te trekken:

Breken en kraken zijn verschillende dingen. Een gebroken cijfer betekent niet dat het onveilig is, alleen dat het nu gemakkelijker te kraken is. Afhankelijk van de waarde van wat erdoor wordt beschermd, betekent gebroken worden niet de dood voor een bepaald systeem, alleen het besef dat het nu minder veilig is dan oorspronkelijk werd verwacht.

RSA-2048 zal worden verbroken als iemand een manier vindt om botsingen te creëren die inherent het verwachte aantal combinaties verminderen om het cijfer te kraken. RSA 2048 kan zoals het is, zoals elk ander cijfer, met brute kracht worden gekraakt.

Antwoord

RSA heeft op zichzelf maar een paar aanvallen op de openbare modulus (wat doorgaans een semiprime is, of twee grote willekeurig geselecteerde s vermenigvuldigd). Het meest efficiënte klassieke algoritme voor het oplossen van het factorisatieprobleem, dat het mogelijk maakt om de privésleutel af te leiden met behulp van elementaire rekenkunde, is de General Number Field Sieve (GNFS). Dit algoritme werkt in sub-exponentiële tijd en kan niet worden gebruikt op correct geïmplementeerde RSA-2048-bitsystemen.

Er bestaat ook Shors algoritme, maar dat kan door een typische aanvaller niet op RSA-2048 worden gemount. Producenten van kwantumcomputers hebben een oligopolie, met name geleid door D-Wave. Het is niet alleen ongelooflijk duur om er een aan te schaffen, maar er is ook gespecialiseerde apparatuur voor nodig om ze te laten werken en onderhouden. Er is geen chip gemaakt met voldoende informatiepersistentie en kracht om meer dan een paar bits te breken.

Zoals eerder vermeld, is een cryptosysteem niets zonder een correcte implementatie. De meeste implementaties van RSA maken ook gebruik van een vingerafdrukalgoritme met een openbare sleutel, meestal een hash. Daarnaast is het vinden van de factorisatie van priemgetallen mogelijk met één exploit die zowel ongelooflijk zeldzaam is als statistisch verwaarloosbaar in termen van slagingspercentage. Zoals Euclid opmerkte , zijn er oneindige priemgetallen, maar niet alleen zijn er oneindige priemgetallen, er zijn er veel binnen een bepaalde sleutelruimte. Als twee moduli hetzelfde priemgetal delen, is het gemakkelijk om hun factorisatie te vinden. Met behulp van het algoritme voor de grootste gemene deler , dat in lineaire tijd wordt uitgevoerd (het kan gemakkelijk binnen milliseconden worden uitgevoerd op het apparaat waarop u dit bekijkt), kan de gemeenschappelijke factor worden gevonden, vervolgens verdeeld over de moduli om de twee andere ontbrekende priemgetallen op te leveren. Dit leidt tot toegang tot beide sleutels. Elke correcte implementatie van RSA zou priemgetallen nooit hergebruiken voor afzonderlijke sleutels, maar ze volledig willekeurig selecteren. Omdat er veel mogelijke moduli bestaan ​​binnen de 2048 bit-sleutelruimte, die kan worden geschreven als het aantal priemgetallen lengte 2048 selecteer 2 (of hoger dan 2 als u met niet-standaard moduli werkt), is de kans dat twee sleutels zelfs twee priemgetallen delen verwaarloosbaar klein. . Met andere woorden, het is gewoon tijdverspilling om alle sleutels van een sleutelserver te halen en het GCD-algoritme op allemaal uit te voeren.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *