RSA versus elliptische-krommecryptografie versus post-kwantumcryptografie: sleutellengte, snelheid, kwantumbestendigheid en migratie vergeleken
Alle drie zijn publieke-sleutelcryptografie, gebruikt om sleutels te delen (sleuteluitwisseling of key encapsulation) en voor digitale handtekeningen. RSA steunt op de moeilijkheid van het ontbinden van grote getallen in factoren, en elliptische-krommecryptografie op de moeilijkheid van het discrete-logaritmeprobleem op elliptische krommen; voor dezelfde veiligheid heeft elliptische-krommecryptografie veel kortere sleutels nodig dan RSA. Beide zouden echter met het algoritme van Shor worden gebroken zodra er een grote fouttolerante kwantumcomputer bestaat. Post-kwantumcryptografie steunt op problemen zoals roosterproblemen, waarvan wordt aangenomen dat ze ook voor kwantumcomputers moeilijk zijn; in augustus 2024 publiceerde het Amerikaanse NIST normen, waaronder het key-encapsulationmechanisme ML-KEM (FIPS 203) en het handtekeningschema ML-DSA (FIPS 204). Het belangrijkste nadeel is de grootte van sleutels en handtekeningen.
| Kenmerk | RSA | Elliptische-krommecryptografie | Post-kwantumcryptografie (ML-KEM, ML-DSA) |
|---|---|---|---|
| Onderliggend moeilijk probleem | Het ontbinden van grote getallen in factoren | Het discrete-logaritmeprobleem op elliptische krommen | Voor ML-KEM en ML-DSA roosterproblemen (zoals Module-LWE: een geheim terugvinden uit lineaire vergelijkingen waaraan kleine fouten zijn toegevoegd); er is ook SLH-DSA (FIPS 205), een handtekeningschema dat alleen op hashfuncties is gebaseerd |
| Sleutellengte (richtwaarde) | In de tabel van NIST SP 800-57 is de richtwaarde voor 128-bits veiligheid een n van 3072 bits (384 bytes); 2048 bits komt overeen met 112-bits veiligheid | In dezelfde tabel is de richtwaarde voor 128-bits veiligheid 256 bits; bij sleuteluitwisseling met X25519 is de verzonden publieke waarde 32 bytes | Een publieke sleutel (encapsulation key) van ML-KEM-768 is 1.184 bytes, veel groter dan de 32 bytes van X25519 |
| Grootte van cijfertekst en handtekening | Zowel cijferteksten als handtekeningen zijn even lang als n (384 bytes bij 3072 bits) | Een ECDSA-handtekening (P-256) bestaat uit twee waarden van 256 bits, r en s, samen 64 bytes (iets meer, afhankelijk van de codering) | Een cijfertekst van ML-KEM-768 is 1.088 bytes en een handtekening van ML-DSA-65 is 3.309 bytes |
| Snelheid | Omdat de publieke exponent klein kan zijn (zoals 65537), zijn versleuteling en verificatie van handtekeningen snel; ontsleuteling, ondertekening en sleutelgeneratie zijn zwaar | Sleutelgeneratie en ondertekening zijn bij dezelfde veiligheid veel sneller dan bij RSA; verificatie van handtekeningen is vaak trager dan bij RSA | De berekeningen van ML-KEM zijn licht en gelden als niet trager dan sleuteluitwisseling met elliptische krommen; de grootte van de verzonden data is doorgaans een groter probleem dan de rekentijd |
| Kwantumbestendigheid | Geen: het algoritme van Shor breekt het op een grote fouttolerante kwantumcomputer | Geen: het algoritme van Shor lost ook het discrete-logaritmeprobleem op, dus het wordt net als RSA gebroken | Wordt verondersteld ook met kwantumcomputers moeilijk efficiënt op te lossen te zijn (dit is niet bewezen) |
| Standaardisatie | Uitgevonden in 1977; in de praktijk gebruikt met gerandomiseerde padding, zoals OAEP voor versleuteling en PSS voor handtekeningen | Krommen zoals P-256, en X25519 en Ed25519 op basis van Curve25519, worden veel gebruikt | In augustus 2024 door NIST gepubliceerd als FIPS 203 (ML-KEM), FIPS 204 (ML-DSA) en FIPS 205 (SLH-DSA) |
| Huidig typisch gebruik | Midden jaren 2020 vooral certificaten en ondertekening van software; TLS 1.3 heeft sleuteluitwisseling verwijderd waarbij sleutelmateriaal met RSA versleuteld wordt verzonden | Midden jaren 2020 de steunpilaar van sleuteluitwisseling in TLS (ECDHE); ook ECDSA- en EdDSA-handtekeningen en apparaten met beperkte middelen, zoals smartcards en embedded systemen | Sinds 2025 wordt hybride sleuteluitwisseling in combinatie met X25519 (zoals X25519MLKEM768) in TLS 1.3 gebruikt; de migratie van handtekeningen volgt na die van sleuteluitwisseling |
| Migratie | Een doel van de migratie naar post-kwantumcryptografie; het vervangen van handtekeningen, zoals in certificaten en codeondertekening, is de uitdaging | Een doel van de migratie; tijdens de overgang dient het als de ene helft van hybride sleuteluitwisseling met ML-KEM en zorgt het voor veiligheid tegen klassieke computers | Voorlopig verloopt de migratie stapsgewijs met hybride schema's die het met conventionele cryptografie combineren; ontwerpen waarin algoritmen later makkelijk te vervangen zijn (crypto-agility) krijgen veel nadruk |
| Aandachtspunten bij implementatie | Gebruik nooit textbook-RSA zonder padding; sleutelgeneratie vraagt willekeur van goede kwaliteit | Hergebruik of vertekening van de willekeurige waarde per handtekening (nonce) laat aanvallers de privésleutel terugvinden; ontvangen punten moeten ook worden gecontroleerd op ligging op de juiste kromme | Grote sleutels en handtekeningen vragen een controle van de gevolgen voor pakketgroottes en apparaten met weinig geheugen; let op fouten in nieuwe implementaties en op zijkanaalaanvallen |
De getalswaarden zijn typische ordegroottes en variëren per procesgeneratie en product.