Articles

RSA-algoritme (Rivest-Shamir-Adleman)

het RSA-algoritme is de basis van een cryptosysteem — een reeks cryptografische algoritmen die worden gebruikt voor specifieke beveiligingsdiensten of doeleinden — dat versleuteling met openbare sleutels mogelijk maakt en op grote schaal wordt gebruikt om gevoelige gegevens te beveiligen, in het bijzonder wanneer het wordt verzonden over een onveilig netwerk zoals het internet.,RSA werd voor het eerst publiekelijk beschreven in 1977 door Ron Rivest, Adi Shamir en Leonard Adleman van het Massachusetts Institute of Technology, hoewel de creatie van een publiek sleutelalgoritme door de Britse wiskundige Clifford Cocks tot 1997 geheim werd gehouden door de GCHQ van het Verenigd Koninkrijk.

public key cryptography, ook bekend als asymmetrische cryptografie, gebruikt twee verschillende, maar wiskundig gekoppelde sleutels — een publieke en een private. De publieke sleutel kan met iedereen gedeeld worden, terwijl de private sleutel geheim gehouden moet worden.,

In RSA-cryptografie kunnen zowel de publieke als de private sleutels een bericht versleutelen; de tegenovergestelde sleutel van de sleutel die gebruikt wordt om een bericht te versleutelen wordt gebruikt om het te ontcijferen. Dit kenmerk is een van de redenen waarom RSA het meest gebruikte asymmetrische algoritme is geworden: het biedt een methode om de vertrouwelijkheid, integriteit, authenticiteit en niet-afwijzing van elektronische communicatie en gegevensopslag te verzekeren.

veel protocollen zoals secure shell, OpenPGP, S/MIME en SSL/TLS vertrouwen op RSA voor versleuteling en digitale handtekening functies., Het wordt ook gebruikt in softwareprogramma ‘ s — browsers zijn een voor de hand liggend voorbeeld, omdat ze een veilige verbinding moeten maken over een onveilig netwerk, zoals het internet, of een digitale handtekening moeten valideren. Verificatie van RSA-handtekeningen is een van de meest uitgevoerde bewerkingen in netwerkgekoppelde systemen.

waarom het RSA-algoritme wordt gebruikt

RSA ontleent zijn beveiliging aan de moeilijkheid om grote gehele getallen te factoreren die het product zijn van twee grote priemgetallen., Het vermenigvuldigen van deze twee getallen is eenvoudig, maar het bepalen van de oorspronkelijke priemgetallen van het totaal-of factoring-wordt als onhaalbaar beschouwd vanwege de tijd die het zou kosten met behulp van zelfs de huidige supercomputers.

het algoritme voor het genereren van publieke en private sleutels is het meest complexe onderdeel van RSA-cryptografie. Twee grote priemgetallen, p en q, worden gegenereerd met behulp van het Rabin-Miller primality test algoritme. Een modulus, n, wordt berekend door P en q te vermenigvuldigen. dit getal wordt gebruikt door zowel de publieke als de private sleutels en geeft de link tussen hen., De lengte, meestal uitgedrukt in bits, wordt de sleutellengte genoemd.

de publieke sleutel bestaat uit de modulus n en een publieke exponent, e, die normaal wordt ingesteld op 65537, omdat het een priemgetal is dat niet te groot is. Het e-cijfer hoeft geen geheim geselecteerd priemgetal te zijn, omdat de publieke sleutel met iedereen gedeeld wordt.

de private sleutel bestaat uit de modulus n en de private exponent d, die wordt berekend met behulp van het uitgebreide Euclidische algoritme om de multiplicatieve inverse te vinden met betrekking tot de totient van n.,

Lees of bekijk de video hieronder voor een meer gedetailleerde uitleg van hoe het RSA-algoritme werkt.

Hoe werkt het RSA-algoritme?

Alice genereert haar RSA-toetsen door twee priemgetallen te selecteren: p = 11 en q = 13. De modulus is n = p×q = 143. De totient is n ϕ(n)=(p−1)x (q−1)=120. Ze kiest 7 voor haar RSA publieke sleutel e en berekent haar RSA private sleutel met behulp van het uitgebreide Euclidische algoritme, wat haar 103 geeft.

Bob wil Alice een versleuteld bericht sturen, M, dus verkrijgt hij haar RSA publieke sleutel (n, e) die, in dit voorbeeld, is (143, 7)., Zijn leesbare bericht is gewoon de nummer 9 en is verwerkt in de cijfertekst C, als volgt:

Me mod n = 97 mod 143 = 48 = C

Wanneer Alice ontvangt Bob een bericht van ze gedecodeerd met haar RSA private key (d, n) als volgt:

Cd mod n = 48103 mod 143 = 9 = M

Voor het gebruik van RSA-sleutels voor het digitaal ondertekenen van een bericht, Alice nodig zou hebben om een hash — een message digest van haar boodschap naar Bob — het coderen van de hash-waarde met haar RSA private key en voeg de sleutel toe aan het bericht., Bob kan dan controleren of het bericht is verzonden door Alice en niet is gewijzigd door het decoderen van de hash waarde met haar publieke sleutel. Als deze waarde overeenkomt met de hash van het oorspronkelijke bericht, dan kan alleen Alice het verzonden hebben — authenticatie en niet-afwijzing — en het bericht is precies zoals ze het schreef — integriteit.

Alice kon natuurlijk haar bericht versleutelen met Bob ‘ s RSA publieke sleutel — confidentiality — voordat ze het naar Bob stuurde. Een digitaal certificaat bevat informatie die de eigenaar van het certificaat identificeert en bevat ook de publieke sleutel van de eigenaar., Certificaten worden ondertekend door de certificaatautoriteit die ze uitgeeft, en ze kunnen het proces van het verkrijgen van publieke sleutels en het verifiëren van de eigenaar vereenvoudigen.

RSA-beveiliging

RSA-beveiliging is gebaseerd op de computationele moeilijkheid van het factoreren van grote gehele getallen. Naarmate de rekenkracht toeneemt en efficiëntere factoringalgoritmen worden ontdekt, neemt ook het vermogen om grotere en grotere getallen te factoreren toe.

Versleutelingssterkte is direct gekoppeld aan de sleutelformaat, en een verdubbeling van de sleutellengte kan een exponentiële toename van de sterkte opleveren, hoewel het de prestaties beïnvloedt., RSA-sleutels zijn doorgaans 1024 – of 2048-bits lang, maar experts geloven dat 1024-bits sleutels niet langer volledig veilig zijn tegen alle aanvallen. Dit is de reden waarom de overheid en sommige industrieën verhuizen naar een minimale sleutel lengte van 2048-bits.

tenzij er een onvoorziene doorbraak in kwantumcomputing komt, zal het nog vele jaren duren voordat langere sleutels nodig zijn, maar elliptische curve cryptografie (ECC) wint de voorkeur bij veel beveiligingsexperts als alternatief voor RSA om cryptografie met publieke sleutels te implementeren. Het kan snellere, kleinere en efficiëntere cryptografische sleutels maken.,

moderne hardware en software zijn ECC-ready, en de populariteit ervan zal waarschijnlijk groeien, omdat het gelijkwaardige beveiliging kan bieden met een lager rekenvermogen en batterijverbruik, waardoor het meer geschikt is voor mobiele apps dan RSA. Tot slot, een team van onderzoekers, waaronder Adi Shamir, een mede-uitvinder van RSA, heeft met succes een 4096-bit RSA-sleutel met behulp van akoestische cryptanalyse gemaakt; echter, elke encryptie-algoritme is kwetsbaar voor aanvallen.