Kopparsmedens attack

Coppersmiths attack beskriver en klass av kryptografiska attacker på kryptosystemet RSA med offentlig nyckel baserad på Coppersmith-metoden . Särskilda tillämpningar av Coppersmith-metoden för att attackera RSA inkluderar fall när den offentliga exponenten e är liten eller när delvis kunskap om en primfaktor för den hemliga nyckeln är tillgänglig.

RSA grunderna

Den publika nyckeln i RSA-systemet är en tupel av heltal , där N är produkten av två primtal p och q . Den hemliga nyckeln ges av ett heltal d som uppfyller ; på motsvarande sätt kan den hemliga nyckeln ges av och om den kinesiska restsatsen används för att förbättra dekrypteringshastigheten, se CRT-RSA . Kryptering av ett meddelande M producerar chiffertexten som kan dekrypteras med genom att beräkna .

Låg offentlig exponentattack

För att minska tiden för kryptering eller signaturverifiering är det användbart att använda en liten offentlig exponent ( { . I praktiken är vanliga val för 3, 17 och 65537 . Dessa värden för e är Fermat-primtal , ibland kallade respektive F . De är valda för att de gör den modulära exponentieringsoperationen snabbare. Efter att ha valt sådan är det enklare att testa om och under generering och testning av primtal i steg 1 av nyckelgenereringen . Värden på eller som inte klarar detta test kan avvisas där och då. (Ännu bättre: om e är primtal och större än 2, då kan testet ersätta det dyrare testet .)

Om den offentliga exponenten är liten och klartexten är mycket kort, kan RSA-funktionen vara lätt att invertera, vilket gör vissa attacker möjliga. Utfyllnadsscheman säkerställer att meddelanden har full längd, men dessutom att välja offentlig exponent rekommenderas. När detta värde används kräver signaturverifiering 17 multiplikationer, till skillnad från cirka 25 när en slumpmässig av liknande storlek används. Till skillnad från låg privat exponent (se Wieners attack ), är attacker som gäller när ett litet används långt ifrån en total break , vilket skulle återställa den hemliga nyckeln d . De mest kraftfulla attackerna på låg offentlig exponent RSA är baserade på följande teorem, som beror på Don Coppersmith .

Kopparsmedsmetod

Sats 1 (Coppersmith)
Låt N vara ett heltal och vara ett moniskt polynom med graden över heltalen. Ställ in för . Sedan, givet , kan angriparen (Eve) effektivt hitta alla heltal som uppfyller . Körtiden domineras av tiden det tar att köra LLL-algoritmen på ett gitter med dimensionen O med { .

Denna sats anger att det finns en algoritm som effektivt kan hitta alla rötter till modulo som är mindre än . När blir mindre, minskar algoritmens körtid. Denna sats styrka är förmågan att hitta alla små rötter av polynom modulo a sammansatt .

Håstads utsända attack

Den enklaste formen av Håstads attack presenteras för att underlätta förståelsen. Det allmänna fallet använder Coppersmith-metoden.

Antag att en avsändare skickar samma meddelande i krypterad form till ett antal personer var och en använder samma lilla offentliga exponent , säg , och olika moduler . Ett enkelt argument visar att så snart chiffertexter är kända är meddelandet inte längre säkert: Antag att Eva skär och , där . Vi kan anta för alla (annars är det möjligt att beräkna en faktor av ett av talen genom att beräkna .) Genom att Kinesisk restsats , hon kan beräkna så att . Sedan ; men eftersom för alla , har vi . Således över heltalen, och Eva kan beräkna kubroten av för att få .

För större värden på behövs fler chiffertexter, speciellt chiffertexter räcker.

Generaliseringar

Håstad visade också att applicering av en linjär utfyllnad före kryptering inte skyddar mot denna attack. Antag att angriparen lär sig att för och någon linjär funktion , dvs. Bob applicerar en knapp meddelandet innan det krypteras så att mottagarna får lite olika meddelanden. Till exempel, om är bitar lång, kan Bob kryptera och skicka detta till -:e mottagaren.

Om en tillräckligt stor grupp människor är inblandade kan angriparen återställa klartexten M från all chiffertext med liknande metoder. Mer allmänt bevisade Håstad att ett system av univariata ekvationer modulo relativt prime kompositer som att tillämpa vilket fast polynom , skulle kunna lösas om tillräckligt många ekvationer tillhandahålls. Denna attack föreslår att randomiserad utfyllnad bör användas i RSA-kryptering .

Sats 2 (Håstad)
Antag att är relativt primtal heltal och sätter . Låt vara polynom med maximum grad . Anta att det finns en unik uppfyller för alla . Antag vidare att . Det finns en effektiv algoritm som, givet för alla , beräknar .
Bevis

Eftersom är relativt primtal den kinesiska restsatsen användas för att beräkna koefficienter som uppfyller och för alla . Inställning vet vi att . Eftersom inte är noll, har vi att också är noll. Graden av är som mest . Enligt Coppersmiths teorem kan vi beräkna alla heltalsrötter som uppfyller ∏ och . Vi vet dock att displaystyle är bland rötterna som hittades av Coppersmiths teorem.

Detta teorem kan appliceras på problemet med sändnings- RSA på följande sätt: Antag att -th klartexten är utfylld med ett polynom så att . Då sant, och Coppersmiths metod kan användas. Attacken lyckas en gång där är antalet meddelanden. Det ursprungliga resultatet använde Håstads variant istället för den fullständiga kopparsmedsmetoden. Som ett resultat krävdes meddelanden, där .

Franklin–Reiter-relaterade meddelandeattack

Franklin och Reiter identifierade en attack mot RSA när flera relaterade meddelanden är krypterade: Om två meddelanden skiljer sig endast med en känd fast skillnad mellan de två meddelandena och är RSA - krypterade under samma RSA- modul , är det möjligt för att återställa dem båda. Attacken beskrevs ursprungligen med offentlig exponent , men den fungerar mer allmänt (med ökande kostnad när växer).

Låt vara Alices publika nyckel. Antag är två distinkta meddelanden som uppfyller för något allmänt känt polynom . För att skicka och M till Alice, kan Bob naivt kryptera meddelandena och sända de resulterande chiffertexterna . Eva kan lätt återställa , given , genom att använda följande teorem:

Sats 3 (Franklin–Reiter)
Låt vara en offentlig RSA-nyckel. Låt uppfylla för något linjärt polynom med . Sedan, givet kan angriparen (Eve) återhämta sig i tid kvadratisk i .
Bevis

Eftersom vet vi att är en rot av polynomet . På liknande sätt en rot av . Därför delar den linjära faktorn båda polynomen . Därför kan Eva beräkna den största gemensamma divisorn av och , och om visar sig vara linjär, hittas Gcd kan beräknas i kvadratisk tid i och med hjälp av den euklidiska algoritmen .

Coppersmith's short-pad attack

Liksom Håstads och Franklin–Reiters attacker utnyttjar denna attack en svaghet hos RSA med offentlig exponent . Coppersmith visade att om randomiserad utfyllnad som föreslagits av Håstad används felaktigt, så RSA- kryptering inte säker.

Anta att Bob skickar ett meddelande till Alice med en liten slumpmässig utfyllnad innan han krypterar det. En angripare, Eva, fångar upp chiffertexten och hindrar den från att nå sin destination. Bob bestämmer sig för att skicka om till Alice eftersom Alice inte svarade på hans meddelande. Han fyller slumpmässigt på igen och sänder den resulterande chiffertexten. Eve har nu två chiffertexter som motsvarar två krypteringar av samma meddelande med två olika slumpmässiga block.

Även om Eve inte känner till vilken slumpmässig utfyllnad som används, kan hon fortfarande återställa meddelandet genom att använda följande sats, om den slumpmässiga utfyllnaden är för kort.

Sats 4 (Coppersmith)
Låt vara en offentlig RSA- nyckel, där är bitar lång. Ställ in . Låt vara ett meddelande med högst längd bitar. Definiera och , där och är distinkta heltal med . Om Eva ges och krypteringarna av (men ges inte eller ), hon kan effektivt återställa .
Bevis

Definiera och . Vi vet att när har dessa polynom som en gemensam rot. Med andra ord, är en rot av den resulterande . Dessutom, . Därför en liten rot av modulo , och Eva kan effektivt hitta den med Coppersmith-metoden. När är känd kan Franklin-Reiter-attacken användas för att återställa och följaktligen .

Se även