RSA -krypteringens säkerhet förlitar sig på svårigheten att ta upp stort antal. Här är en uppdelning av hur dess drift och användning säkerställer säkerhet:
1. Nyckelgenerering:
* Två stora primtal (P och Q) väljs: Dessa hålls hemliga.
* modul (n) beräknas: n =p * q. Detta är den offentliga nyckelens komponent och offentliggörs.
* eulers totientfunktion (φ (n)) beräknas: φ (n) =(p-1) (Q-1). Detta representerar antalet heltal mindre än n som är relativt primära för n. Det hålls hemligt.
* offentlig exponent (e) väljs: Detta är ett litet antal relativt prime till φ (n) (vilket innebär att deras största gemensamma divisor är 1). Det har offentliggjorts som en del av den offentliga nyckeln.
* privat exponent (d) beräknas: Detta är det multiplikativa inversa från E Modulo φ (n). Med andra ord, d * e ≡ 1 (mod φ (n)). Detta hålls hemligt och bildar den privata nyckeln.
2. Kryptering:
* Avsändaren använder mottagarens * offentliga nyckel * (n, e) för att kryptera meddelandet (klartext, m).
* Ciffertexten (C) beräknas som:C ≡ M
e
(mod n)
3. Dekryptering:
* Mottagaren använder sin * privata nyckel * (d) för att dekryptera chiffertexten (c).
* Det ursprungliga meddelandet (m) återvinns som:m ≡ c
d
(mod n)
Varför är detta säkert?
* beräkningsvårigheter att fakta: Säkerheten hänger på det faktum att det är beräkningsmässigt omöjligt att faktorera den stora modulen (N) i sina främsta faktorer (P och Q) på en rimlig tid, även med kraftfulla datorer. Om en angripare kunde faktor n, kunde de beräkna φ (n) och därefter härleda den privata nyckeln (d). Storleken på N (ofta 2048 bitar eller mer) gör factoring praktiskt taget omöjligt.
* asymmetrisk natur: RSA använder ett asymmetriskt nyckelsystem. Den offentliga nyckeln kan distribueras i stor utsträckning utan att kompromissa med den privata nyckelens säkerhet. Detta gör att alla kan kryptera meddelanden för en mottagare, men bara mottagaren med den privata nyckeln kan dekryptera dem.
* matematiska egenskaper: De matematiska egenskaperna hos modular aritmetik och Eulers teoremgaranti garanterar att dekrypteringsprocessen korrekt återställer det ursprungliga meddelandet.
säkerställer säkerhet i praktiken:
* Nyckelhantering: Säker generation och lagring av privata nycklar är av största vikt. Komprometterade privata nycklar avskaffar helt säkerheten.
* Nyckelängd: Att använda tillräckligt stora nyckelstorlekar (t.ex. 2048 bitar eller mer) är avgörande för att motstå factoringattacker.
* stoppningsscheman: Moderna RSA-implementeringar använder stoppningsscheman (som OAEP) för att mildra olika attacker, inklusive utvalda-kapning. Dessa scheman ger slumpmässigheten till meddelandet före kryptering, vilket gör det svårare att utnyttja sårbarheter i den grundläggande RSA -algoritmen.
* Protokollimplementering: RSA används ofta inom större kryptografiska protokoll (som TLS/SSL för säker webbkommunikation) som behandlar andra aspekter av säkerhet, såsom autentisering och integritet.
Sammanfattningsvis vilar RSA:s säkerhet på beräkningssvårigheten att ta upp stora antal och användning av asymmetriska nycklar. Korrekt nyckelhantering, tillräckliga nyckellängder och användning av säkra stoppningsscheman är emellertid avgörande för dess effektiva och säkra implementering.