Wat is RSA-cryptosysteem?

Een publieke-sleutelcryptosysteem dat in 1977 door Rivest, Shamir en Adleman werd bedacht. De publieke sleutel bestaat uit het product n van twee grote priemgetallen p en q en een publieke exponent e, en de privésleutel is de d die voldoet aan e × d ≡ 1 (mod (p − 1)(q − 1)). Versleutelen gebeurt met c = m^e mod n en ontsleutelen met m = c^d mod n. De veiligheid berust op de moeilijkheid om n in priemfactoren te ontbinden, en het kan zowel voor versleuteling als voor handtekeningen worden gebruikt. In de praktijk wordt het gecombineerd met padding met toeval, zoals OAEP of PSS.

Japanse benaming: RSA暗号

“RSA-cryptosysteem” komt voor in 10 oefenvragen uit 2 onderwerpen, bijv. Basis en toepassingen van cryptografie, Hardware voor kwantumcomputers.

Vakgebied: Basis en toepassingen van cryptografie

Een voorbeeld met kleine getallen

Met p = 5 en q = 11 is n = 55 en (p − 1)(q − 1) = 40. Met e = 3 geldt 3 × 27 = 81 ≡ 1 (mod 40), dus d = 27. De platte tekst m = 7 wordt versleuteld als 7³ = 343 ≡ 13 (mod 55), en de berekening 13^27 mod 55 geeft 7 terug.

Sleutellengte en veiligheid

In de tabel van NIST SP 800-57 is een n van 2048 bits de richtwaarde voor een veiligheid van 112 bits en een n van 3072 bits die voor 128 bits. Voor dezelfde veiligheid zijn veel langere sleutels en handtekeningen nodig dan bij elliptische-krommecryptografie, en ook het genereren van sleutels en het berekenen van handtekeningen is zwaarder. Als publieke exponent wordt meestal 65.537 (2^16 + 1) gebruikt, wat de berekening snel houdt.

Hoe het gebruik is veranderd

Oudere versies van TLS gebruikten veel een sleuteluitwisseling waarbij de client sleutelmateriaal met de publieke RSA-sleutel van de server versleutelde, maar die is in TLS 1.3 geschrapt omdat ze geen forward secrecy biedt. Tegenwoordig wordt RSA vooral gebruikt voor handtekeningen op certificaten en software. Een grote kwantumcomputer zou het met het algoritme van Shor kunnen breken, dus de migratie naar post-kwantumcryptografie is gaande.

Nu oefenen: vragen over RSA-cryptosysteem

Het mechanisme van RSA wordt met kleine getallen gecontroleerd. Uit de priemgetallen p = 5 en q = 11 wordt n = pq gevormd, en de publieke exponent is e = 3. Met φ(n) = (p − 1)(q − 1): welke privé-exponent d (0 < d < φ(n)) voldoet aan e × d ≡ 1 (mod φ(n))?

  1. A5
  2. B27
  3. C37
Antwoord en toelichting tonen

Antwoord: B. 27

n = 5 × 11 = 55 en φ(n) = 4 × 10 = 40. Zoek d zodat 3 × d bij deling door 40 rest 1 geeft: 3 × 27 = 81 = 2 × 40 + 1, dus d = 27. De publieke sleutel is (n, e) = (55, 3) en de privésleutel d = 27; de veiligheid berust erop dat wie p en q niet kent, φ(n) niet kan vinden en dus ook d niet. Bij echte RSA zijn p en q elk grote priemgetallen van meer dan 1000 bits, en voor e wordt vaak 65.537 gebruikt.

Bij RSA is de publieke sleutel n = 55 en e = 3. Wat is de cijfertekst c als de platte tekst m = 7 wordt versleuteld als c = m^e mod n?

  1. A13
  2. B21
  3. C23
Antwoord en toelichting tonen

Antwoord: A. 13

7³ = 343 en 343 = 6 × 55 + 13, dus c = 13. De privé-exponent bij deze publieke sleutel is d = 27 (met p = 5, q = 11 en φ(n) = 40 geldt 3 × 27 ≡ 1), en de berekening 13^27 mod 55 geeft de oorspronkelijke platte tekst 7 terug. Voor het versleutelen is alleen de publieke sleutel nodig, maar voor het ontsleutelen is d nodig.

Veelgestelde vragen

Waarom moeten p en q geheim blijven?

Omdat wie p en q kent, (p − 1)(q − 1) kan berekenen en daarmee uit de openbare e de waarde d kan afleiden. Omdat n openbaar is, berust de veiligheid op de moeilijkheid om n in priemfactoren te ontbinden.

Waarom wordt RSA niet gebruikt om bestanden rechtstreeks te versleutelen?

Met RSA kunnen per keer alleen getallen kleiner dan n worden versleuteld, en de berekening is veel zwaarder dan bij symmetrische cryptografie. In de praktijk wordt het bestand versleuteld met symmetrische cryptografie zoals AES, en wordt alleen die symmetrische sleutel met de publieke sleutel beschermd; dit heet hybride versleuteling.

“RSA-cryptosysteem” in de toelichting

Vragen met “RSA-cryptosysteem” (10)

  1. Het mechanisme van RSA wordt met kleine getallen gecontroleerd. Uit de priemgetallen p = 5 en q = 11 wordt n = pq gevormd, en de publieke exponent is e = 3. Met φ(n) = (p − 1)(q − 1): welke privé-exponent d (0 < d < φ(n)) voldoet aan e × d ≡ 1 (mod φ(n))?
  2. Bij RSA is de publieke sleutel n = 55 en e = 3. Wat is de cijfertekst c als de platte tekst m = 7 wordt versleuteld als c = m^e mod n?
  3. Welke uitspraak beschrijft juist een probleem van het gebruik van RSA uit het tekstboek (waarbij c = m^e mod n direct uit de platte tekst m wordt berekend) zonder padding in echte communicatie?
  4. Welke combinatie van de sleutellengte van RSA (het aantal bits van n) en de sleutellengte van elliptische-krommecryptografie geeft de tabel in NIST SP 800-57 als richtwaarde voor een veiligheid die vergelijkbaar is met symmetrische cryptografie van 128 bits (AES-128)?
  5. Van welke cryptografie wordt verwacht dat de veiligheid door het algoritme van Shor ernstig wordt ondermijnd zodra grote fouttolerante kwantumcomputers zijn gebouwd?
  6. Welke beschrijving van post-kwantumcryptografie (PQC) is juist?
  7. Welke methode van sleuteluitwisseling in TLS biedt de eigenschap dat eerder opgenomen communicatie niet kan worden ontsleuteld, ook als de privésleutel van het servercertificaat later uitlekt (forward secrecy)?
  8. Welke uitspraak beschrijft juist een verandering in TLS 1.3 (RFC 8446) ten opzichte van TLS 1.2?
  9. Welke combinatie geeft juist aan wat de cipher suite TLS_AES_128_GCM_SHA256 van TLS 1.3 vastlegt?
  10. Welke maatregel is passend om bij het ontwerpen van een systeem de crypto-agility (de eigenschap dat cryptografische schema's makkelijk te vervangen zijn) te vergroten?

Verwante termen

TLS (Transport Layer Security) Modulo-operatie Elliptische-krommecryptografie Diffie-Hellman-sleuteluitwisseling Symmetrische cryptografie (secret-key-cryptografie) Algoritme van Shor AES (Advanced Encryption Standard) Post-kwantumcryptografie (PQC) Hashfunctie Forward secrecy

Naar de woordenlijst