Articles

RSA-algoritmen (Rivest-Shamir-Adleman) (Svenska)

RSA-algoritmen är grunden för ett kryptosystem — en svit av kryptografiska algoritmer som används för specifika security services eller ändamål-som gör det möjligt för kryptering med offentlig nyckel och är allmänt används för att skydda känsliga data, särskilt när det skickas över ett osäkert nätverk som till exempel internet.,

RSA beskrevs först offentligt 1977 av Ron Rivest, Adi Shamir och Leonard Adleman från Massachusetts Institute of Technology, även om 1973 skapandet av en offentlig nyckelalgoritm av brittisk matematiker Clifford Cocks hölls klassificerad av Storbritanniens GCHQ fram till 1997.

offentlig nyckelkryptografi, även känd som asymmetrisk kryptografi, använder två olika men matematiskt länkade nycklar-en offentlig och en privat. Den offentliga nyckeln kan delas med alla, medan den privata nyckeln måste hållas hemlig.,

i RSA-kryptografi kan både offentliga och privata nycklar kryptera ett meddelande.den motsatta nyckeln från den som används för att kryptera ett meddelande används för att dekryptera det. Detta attribut är en anledning till varför RSA har blivit den mest använda asymmetriska algoritmen: det ger en metod för att säkerställa sekretess, integritet, äkthet och icke-repudiering av elektronisk kommunikation och datalagring.

många protokoll som secure shell, OpenPGP, S/MIME och SSL/TLS förlitar sig på RSA för kryptering och digitala signaturfunktioner., Det används också i program-webbläsare är ett uppenbart exempel, eftersom de behöver för att upprätta en säker anslutning över ett osäkert nätverk, som internet, eller validera en digital signatur. RSA-signaturverifiering är en av de vanligaste operationerna i nätverksanslutna system.

varför RSA-algoritmen används

RSA hämtar sin säkerhet från svårigheten att factoring stora heltal som är produkten av två stora primtal., Att multiplicera dessa två tal är enkelt, men att bestämma de ursprungliga primtal från total-eller factoring-anses vara omöjligt på grund av den tid det skulle ta att använda även dagens superdatorer.

den offentliga och privata nyckelgenereringsalgoritmen är den mest komplexa delen av RSA-kryptografi. Två stora primtal, p och q, genereras med hjälp av Rabin-Miller primality test algoritm. En modul, n, beräknas genom att multiplicera p och q. detta nummer används av både offentliga och privata nycklar och ger länken mellan dem., Dess längd, vanligtvis uttryckt i bitar, kallas nyckellängden.

den offentliga nyckeln består av modulen n och en offentlig exponent, e, som normalt är inställd på 65537, eftersom det är ett primtal som inte är för stort. E-siffran behöver inte vara ett hemligt valt primtal, eftersom den offentliga nyckeln delas med alla.

den privata nyckeln består av modulen n och den privata exponenten d, som beräknas med hjälp av den utökade euklidiska algoritmen för att hitta den multiplikativa inversen med avseende på totienten av n.,

Läs på eller titta på videon nedan för en mer detaljerad förklaring av hur RSA-algoritmen fungerar.

hur fungerar RSA-algoritmen?

Alice genererar sina RSA-nycklar genom att välja två primtal: p=11 och q=13. Modulen är n=P×q = 143. Totienten är n (n)=(p−1) x(q−1)=120. Hon väljer 7 för sin RSA public key e och beräknar sin RSA private key med hjälp av den utökade Euclidean-algoritmen, vilket ger henne 103.

Bob vill skicka Alice ett krypterat meddelande, M, så han får sin RSA public key (n, e) som i detta exempel är (143, 7)., Hans plaintext-meddelande är bara numret 9 och krypteras till ciphertext, C, enligt följande:

me mod N = 97 mod 143 = 48 = c

När Alice tar emot Bobs meddelande dekrypterar hon det med sin RSA privata nyckel (d, n) enligt följande:

Cd mod n = 48103 mod 143 = 9 = m

om du vill använda RSA-tangenterna för att digitalt signera ett meddelande måste Alice skapa en hash-ett meddelande som smälter av hennes meddelande till Bob-kryptera hashvärdet med sin privata RSA-nyckel och lägga till nyckeln i meddelandet., Bob kan sedan verifiera att meddelandet har skickats av Alice och inte har ändrats genom att dekryptera hashvärdet med sin offentliga nyckel. Om det här värdet matchar det ursprungliga meddelandets hash kunde bara Alice ha skickat det-autentisering och icke-repudiering – och meddelandet är precis som hon skrev det-integritet.

Alice kan naturligtvis kryptera sitt meddelande med Bobs RSA public key-Sekretess-innan du skickar det till Bob. Ett digitalt certifikat innehåller information som identifierar certifikatets ägare och innehåller även ägarens offentliga nyckel., Certifikat är undertecknade av certifikatmyndigheten som utfärdar dem, och de kan förenkla processen att erhålla offentliga nycklar och verifiera ägaren.

RSA security

RSA security bygger på beräkningssvårigheten att fakturera stora heltal. När datorkraften ökar och effektivare factoringalgoritmer upptäcks ökar också förmågan att faktor större och större antal.

krypteringsstyrkan är direkt kopplad till nyckelstorlek, och en fördubbling av nyckellängden kan ge en exponentiell ökning av styrkan, även om den försämrar prestanda., RSA-nycklar är vanligtvis 1024-eller 2048-bitar långa, men experter tror att 1024-bitars nycklar inte längre är helt säkra mot alla attacker. Det är därför regeringen och vissa branscher flyttar till en minsta nyckellängd på 2048-bitar.

förutom ett oförutsett genombrott i kvantberäkning kommer det att vara många år innan längre nycklar krävs, men elliptisk kurvkryptografi (ECC) vinner fördel med många säkerhetsexperter som ett alternativ till RSA för att implementera kryptering av offentlig nyckel. Det kan skapa snabbare, mindre och effektivare kryptografiska nycklar.,

Modern hårdvara och mjukvara är ECC-redo, och dess popularitet kommer sannolikt att växa, eftersom den kan leverera likvärdig säkerhet med lägre datorkraft och batteriresursanvändning, vilket gör den mer lämplig för mobilappar än RSA. Slutligen har ett team av forskare, som inkluderade Adi Shamir, en med uppfinnare av RSA, framgångsrikt skapat en 4096-bitars RSA-nyckel med hjälp av akustisk kryptoanalys; dock är någon krypteringsalgoritm sårbar för attack.