RSA (Rivest–Shamir–Adleman) är en av de mest använda algoritmerna för asymmetrisk kryptering och digital signering. Metoden bygger på ett par nycklar — en offentlig och en privat — och används både för att skydda konfidentialitet och för att verifiera äkthet. Algorithmens praktiska säkerhet vilar på svårigheten att faktorisera mycket stora sammansatta tal, vilket gör att nycklarnas storlek och korrekt implementation är avgörande för motståndskraft.

Grundläggande princip

En RSA-nyckel består av modulus n = p·q, där p och q är stora primtal. Man beräknar också φ(n) = (p−1)(q−1). Väljs en offentlig exponent e som är koprime till φ(n), bestäms den privata exponenten d som den multiplikativa inversen till e modulo φ(n). Kryptering och dekryptering utförs med modular exponentiering: c = me mod n och m = cd mod n, där m är meddelandets numeriska representation.

  1. Välj två stora primtal p och q.
  2. Beräkna modulus n = p·q.
  3. Beräkna φ(n) och välj en offentlig exponent e som är relativt primär till φ(n).
  4. Beräkna privat exponent d så att e·d ≡ 1 (mod φ(n)).
  5. Den offentliga nyckeln är (n, e) och den privata nyckeln är (n, d).

Nyckelgenerering och god praxis

Nyckelgenerering kräver säkra slumptalsgeneratorer för att producera primtal utan förutsägbarhet. Rekommendationer förändras över tid, men i många tillämpningar rekommenderas minst 2048‑bitars nycklar för att motstå samtida bestämda attacker; för högre säkerhetsnivåer används 3072 bit eller mer. Ett vanligt val för den offentliga exponenten är 65537 eftersom det ger balans mellan säkerhet och effektivitet. För effektiv dekryptering använder många implementationer kinesiska restklassen (CRT) för att snabba upp operationerna.

Padding, signaturer och praktiska attacker

Ren matematisk RSA utan padding är sårbar för flera praktiska attacker. För kryptering används därför padding­scheman som OAEP för att motverka valda chiffertexter och semantisk osäkerhet. För signaturer rekommenderas säkra schema såsom PSS. Implementationsbrister kan leda till sidokanalsläckor (t.ex. timing eller strömförbrukning) och felhantering kan öppna för format­baserade attacker.

Prestanda och användningsmönster

RSA är beräkningsmässigt tungt för stora datamängder, varför tekniken oftast används i hybridlösningar: RSA skyddar en symmetrisk sessionnyckel som sedan används för snabb bulkkryptering. Typiska tillämpningar är TLS/SSL-anslutningar, digitala signaturer för programvara och e‑postkryptering. Implementationsdetaljer och bibliotek spelar stor roll för säker drift och interoperabilitet.

Säkerhetsantaganden och framtida hot

Huvudantagandet bakom RSA är att faktorisering av stora sammansatta tal är beräkningsmässigt svår. Om någon lyckas utvinna faktorerna till n faller systemets konfidentialitet. Den matematiska svårigheten kallas ofta primfaktorisering. Framväxten av storskaliga kvantdatorer skulle kunna bryta RSA effektivt med Shors algoritm, vilket gjort att forskare och standardiserare undersöker postkvantkryptografi. Samtidigt finns beskrivna begränsningar till RSA: felaktig användning, otillräcklig nyckellängd eller svag implementerad slumpgenerator kan undergräva säkerheten.

Tillämpningar och vidare läsning

RSA används i protokoll och format för att uppnå konfidentialitet, autentisering och icke‑avvisande funktioner. Exempel är TLS, signering av kodpaket, säker e‑post och nyckelutbyte i olika system. För en teoretisk introduktion och praktiska rekommendationer finns material inom modern kryptografisk litteratur och riktlinjer för offentlig nyckel-infrastruktur. Översikter om algoritmens historia och utveckling finns under mer om RSA, och guider till korrekt hantering av nycklar och implementationer återfinns i respektive standarddokument och biblioteksdokumentation. För grundläggande begrepp kring nätverkskryptering och kryptering i praktiken kan introduktioner vara till hjälp.

  • Styrka: väletablerad med lång praktisk användning och teoretisk grund.
  • Svagheter: beroende av nyckelstorlek, korrekt padding och implementation.
  • Framtid: postkvantalgoritmer är under utveckling för att ersätta asymmetriska system som RSA i en kvantvärld.