Some links on this page are affiliate links: if you buy through them we may earn a commission, at no extra cost to you.
Kort fortalt: RSA er asymmetrisk kryptografi, hvor en offentlig nøgle kan deles med alle, mens en matematisk forbundet privat nøgle skal holdes hemmelig. Den offentlige nøgle bruges typisk til at kryptere en lille hemmelighed eller verificere en signatur; den private nøgle bruges til at dekryptere eller signere.
RSA’s sikkerhed bygger blandt andet på, at det er let at gange to store primtal sammen, men beregningsmæssigt vanskeligt at faktorisere produktet igen. I praksis er matematikken dog kun én del af løsningen: padding, encoding, tilfældighed, protokolvalg og beskyttelse af den private nøgle er lige så afgørende.
Hvad er RSA?
RSA er en public-key-algoritme, også kaldet asymmetrisk kryptografi. Navnet kommer fra Ron Rivest, Adi Shamir og Leonard Adleman, som publicerede systemet i 1978.
Recommended Free Tools
Modsat symmetrisk kryptering, hvor den samme hemmelige nøgle bruges til både kryptering og dekryptering, arbejder RSA med et nøglepar:
#1 Best Overall
- Den offentlige nøgle må distribueres til andre.
- Den private nøgle skal beskyttes og må ikke kopieres til uvedkommende.
RSA-algoritmen betyder derfor ikke kun nogle få formler. En sikker implementering består også af nøglevalidering, encoding, padding, nøgleopbevaring og korrekt brug i en protokol. Den tekniske standard RFC 8017 beskriver RSA-nøgler, primitive operationer, krypteringsordninger og signaturskemaer.
Hvorfor bruger RSA to nøgler?
En enkel analogi er en hængelås, som alle må lukke, men kun ejeren kan åbne. I RSA kan en afsender bruge modtagerens offentlige nøgle til at beskytte en besked, som modtageren derefter åbner med sin private nøgle.
Analogiens begrænsning er vigtig: digitale signaturer fungerer ikke bare som “kryptering med den private nøgle”. Her bruger afsenderen sin private nøgle til at skabe en signatur, mens modtageren bruger den offentlige nøgle til at kontrollere den.
| Funktion | Operation | Nøgle |
|---|---|---|
| Kryptering | Offentlig nøgle | Modtagerens offentlige nøgle |
| Dekryptering | Privat nøgle | Modtagerens private nøgle |
| Signering | Privat nøgle | Afsenderens private nøgle |
| Verifikation | Offentlig nøgle | Afsenderens offentlige nøgle |
Den offentlige nøgle identificerer dog ikke automatisk sin ejer. Identiteten skal bindes til nøglen gennem eksempelvis et TLS-certifikat, en SSH-fingerprint, en tillidskæde eller en anden autentificeringsmekanisme.
Matematikken bag RSA
RSA bruger to store primtal. I et forenklet nøgle-genereringsforløb sker dette:
- Vælg to primtal,
pogq. - Beregn modulus:
n = p × q. - Beregn normalt Eulers totientfunktion:
φ(n) = (p − 1)(q − 1). - Vælg en offentlig eksponent
e, som er relativt primisk medφ(n). - Beregn den private eksponent
d, såe × d ≡ 1 mod φ(n).
Den offentlige nøgle kan skrives som (n, e). Den private nøgle indeholder d og typisk også p, q samt CRT-parametre, der gør private operationer hurtigere.
I mange moderne RSA-profiler bruges e = 65537. Det er en almindelig standardværdi, ikke en matematisk nødvendighed for alle RSA-implementeringer. En specifik profil kan dog stille strengere krav; eksempelvis angiver NIST’s PIV-materiale, at RSA-offentlige nøgler i den pågældende profil skal bruge 65537.
Outdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchPC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Hvad betyder modulo?
a mod n er resten efter division af a med n. Eksempelvis er:
64 mod 55 = 9
RSA udfører store potensberegninger modulo n. Den private eksponent konstrueres, så den kan vende den relevante operation under bestemte matematiske betingelser.
Sådan fungerer RSA-kryptering
I den forenklede matematiske model omdannes meddelelsen til et tal m, som ligger inden for modulus’ størrelse. Kryptering ser sådan ud:
c = m^e mod n
Her er c ciphertext, e den offentlige eksponent, og n modulus. Modtageren dekrypterer med:
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
m = c^d mod n
Den rå model er kun pædagogisk. I et rigtigt system skal beskeden først behandles med en standardiseret encoding- og padding-ordning. Til nye krypteringssystemer bør man normalt vælge RSAES-OAEP. RSAES-PKCS1-v1_5 findes stadig af kompatibilitetshensyn, men bør ikke være førstevalg i et nyt design. Se RFC 8017 for de præcise definitioner.
Hvorfor er padding nødvendig?
Rå RSA er deterministisk: den samme besked med den samme nøgle giver det samme resultat. Det kan afsløre mønstre og åbne for angreb. OAEP tilfører blandt andet tilfældighed og struktur, så RSA-operationen får de egenskaber, en praktisk krypteringsordning kræver.
RSA kan heller ikke kryptere vilkårligt store filer direkte. For PKCS#1 v1.5-kryptering er den maksimale beskedlængde k − 11 oktetter, hvor k er moduluslængden i oktetter. OAEP har en anden grænse, der afhænger af hashfunktionen. En fejl som “message too long” betyder derfor ofte, at man forsøger at bruge RSA som en almindelig filkrypteringsalgoritme.
Hvorfor bruges hybridkryptering?
Store datamængder krypteres normalt med en hurtig symmetrisk algoritme som AES eller ChaCha20. RSA bruges kun til en lille tilfældigt genereret sessionsnøgle eller til en signatur.
The Tool Desk
Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →- Generér en tilfældig sessionsnøgle.
- Krypter filen eller forbindelsesdataene med en symmetrisk, autentificeret krypteringsalgoritme.
- Beskyt sessionsnøglen med modtagerens RSA-offentlige nøgle og OAEP.
- Send den krypterede sessionsnøgle sammen med ciphertext.
- Modtageren bruger sin private RSA-nøgle til at hente sessionsnøglen og dekrypterer derefter dataene symmetrisk.
Denne model kombinerer RSA’s nøglefordelingsfordel med symmetrisk krypterings hastighed.
Sådan fungerer RSA-signaturer
En digital RSA-signatur beskytter primært integritet og autenticitet:
- Der beregnes en hash af meddelelsen.
- Hashværdien kodes i et defineret signaturformat.
- Den private RSA-nøgle bruges til at skabe signaturen.
- Modtageren beregner selv meddelelsens hash.
- Den offentlige nøgle bruges til at kontrollere signaturen og den kodede hash.
En gyldig signatur viser, at dataene passer til den private nøgle, og at de ikke er ændret siden signeringen. Den giver ikke fortrolighed: en signeret meddelelse kan normalt læses af alle, der får adgang til den.
Til nye signatursystemer bør man normalt vælge RSASSA-PSS. RSASSA-PKCS1-v1_5 bruges fortsat, hvor ældre protokoller kræver det. RFC 8017 beskriver begge ordninger og anbefaler en gradvis overgang til PSS som en forsigtighedsforanstaltning.
Free tools Windows power users keep installed
One-click scans. No signup required.
Udtrykket “kryptering med den private nøgle” kan bruges som en grov historisk analogi, men er teknisk upræcist. En moderne RSA-signatur er en hashbaseret og standardiseret signaturoperation.
Et lille RSA-regneeksempel
Følgende tal er bevidst så små, at man kan kontrollere dem manuelt. De er ikke sikre.
p = 5
q = 11
n = p × q = 55
φ(n) = (5 − 1)(11 − 1) = 40
e = 3
d = 27
Den private eksponent er korrekt, fordi:
3 × 27 = 81 ≡ 1 mod 40
Vælg nu den lille besked m = 4.
Kryptering:
c = 4^3 mod 55
c = 64 mod 55
c = 9
Dekryptering:
m = 9^27 mod 55
m = 4
Eksemplet viser den matematiske idé, men springer padding, encoding, sikker tilfældighed og alle krav til virkelige nøglestørrelser over. Produktionskode må ikke bruge disse tal eller rå RSA.
CRT-optimering
Private RSA-operationer kan optimeres med den kinesiske restsætning, CRT. I stedet for at beregne direkte modulo hele n udfører implementationen beregninger modulo p og modulo q og samler derefter resultaterne.
Do these 3 things before closing this tab:
1Fix the driver behind crashes, sound loss and screen glitches2Repair Windows errors before they cause bigger problems3Scan for outdated or missing drivers - takes under a minuteDet kan gøre dekryptering og signering hurtigere. Til gengæld skal implementationen beskyttes mod timingangreb, cache-angreb og fejlangreb. En matematisk korrekt algoritme er ikke nødvendigvis en sikker implementering.
Hvor bruges RSA?
TLS, HTTPS og certifikater
RSA kan indgå i TLS-certifikater og bruges til at signere certifikater eller autentificere en server. Det betyder ikke, at alle moderne HTTPS-forbindelser bruger RSA til selve nøgleudvekslingen. Moderne TLS-forbindelser anvender ofte elliptisk kurve-baseret nøgleudveksling for at opnå forward secrecy, mens RSA fortsat kan være en del af certifikat- og kompatibilitetslaget.
Software- og dokument-signering
Producenter kan signere softwarepakker, opdateringer, dokumenter eller PDF-filer med en privat nøgle. Modtagere verificerer med den offentlige nøgle, om indholdet er ændret, og om signaturen passer til den forventede udgiver.
RSA kan bruges i systemer til e-mail-kryptering og signering, blandt andet til at beskytte en sessionsnøgle eller kontrollere afsenderens signatur. Den konkrete sikkerhed afhænger af protokollen og klienternes implementering.
SSH
RSA-nøgler har længe været brugt til SSH-login og værtens identitet. I nye miljøer bør man følge den aktuelle SSH-implementations anbefalinger og kontrollere, hvordan nøgler, algoritmer og fingerprints administreres.
Cloud-KMS
En managed key-management-tjeneste kan udføre RSA-signering eller dekryptering uden at udlevere den private nøgle ukrypteret til applikationen. AWS KMS beskriver særskilte RSA-nøglespecifikationer for kryptering/dekryptering og signering/verifikation; Google Cloud KMS understøtter blandt andet RSA 2048-, 3072- og 4096-nøgler og RSA-OAEP.
RSA sammenlignet med andre algoritmer
| Teknologi | Bedst egnet til | Typiske egenskaber |
|---|---|---|
| RSA | PKI, kompatibilitet, nøgletransport og signaturer | Store nøgler, større signaturer og relativt tunge operationer |
| AES eller ChaCha20 | Store datamængder | Symmetrisk og langt hurtigere til filer og forbindelsesdata |
| ECDSA, EdDSA og ECDH | Moderne signaturer og nøgleudveksling | Mindre nøgler og ofte lavere båndbredde- og beregningsomkostning |
RSA er ikke automatisk forældet. Det er fortsat relevant i mange PKI- og kompatibilitetsmiljøer. Ved nye designs bør man dog sammenligne RSA med elliptiske kurver, protokolkrav, klientunderstøttelse og en realistisk migrationsplan.
RSA-nøglestørrelser og sikkerhed
- 1024 bit: bør ikke anbefales til nye systemer.
- 2048 bit: stadig en almindelig kompatibilitetsstørrelse, men den konkrete acceptabilitet afhænger af standard, levetid og anvendelse.
- 3072 bit: større sikkerhedsmargin, men langsommere og med større nøgler og signaturer.
- 4096 bit: endnu dyrere operationer; større er ikke automatisk bedre, hvis ydeevne og driftssikkerhed forringes.
Brug konkrete profiler og udgaver af standarderne, når du fastlægger levetider. NIST’s SP 800-131A Rev. 2 beskriver overgangen mellem kryptografiske algoritmer og nøglestørrelser. Senere udkast må ikke behandles som endelig politik.
Quick wins for a faster PC:
Clear out junk files and repair common Windows errorsFree Scan →Scan for outdated or missing drivers - takes under a minuteDriver Scan →Sådan bruger du RSA med OpenSSL
Eksemplerne nedenfor viser lokal test og læring med moderne OpenSSL-syntaks. Kontrollér altid kommandoerne mod den version, der er installeret hos dig; parametre og CLI-adfærd kan variere.
Best Value
1. Generér en privat nøgle
openssl genpkey
-algorithm RSA
-pkeyopt rsa_keygen_bits:3072
-out private.pem
Beskyt filen med passende filrettigheder og helst krypteret nøgleopbevaring. En PEM-fil er ikke i sig selv en sikkerhedsmekanisme.
2. Udtræk den offentlige nøgle
openssl pkey
-in private.pem
-pubout
-out public.pem
3. Signér med RSA-PSS
openssl dgst
-sha256
-sign private.pem
-sigopt rsa_padding_mode:pss
-sigopt rsa_pss_saltlen:-1
-out signature.bin
message.txt
4. Verificér signaturen
openssl dgst
-sha256
-verify public.pem
-signature signature.bin
message.txt
Ved en gyldig signatur vises typisk Verified OK. En ændret fil, forkert offentlig nøgle eller beskadiget signatur skal give en fejl eller ugyldig verifikation.
5. Demonstrér RSA-OAEP
openssl pkeyutl
-encrypt
-pubin
-inkey public.pem
-in secret.txt
-out secret.enc
-pkeyopt rsa_padding_mode:oaep
-pkeyopt rsa_oaep_md:sha256
-pkeyopt rsa_mgf1_md:sha256
Dekryptering kræver den private nøgle og samme OAEP-parametre:
openssl pkeyutl
-decrypt
-inkey private.pem
-in secret.enc
-out secret.txt
-pkeyopt rsa_padding_mode:oaep
-pkeyopt rsa_oaep_md:sha256
-pkeyopt rsa_mgf1_md:sha256
Fejl ved dekryptering skyldes ofte forkert privat nøgle, forskellig padding eller hash, for lang ciphertext eller beskadigede data. OpenSSL dokumenterer RSA i sin EVP_PKEY-RSA-model.
Typiske RSA-fejl
- Rå RSA: Brug aldrig RSA uden en defineret og passende padding-ordning.
- Forkert padding: Vælg OAEP til ny RSA-kryptering og PSS til nye RSA-signaturer, medmindre en eksisterende protokol kræver PKCS#1 v1.5.
- Direkte kryptering af store filer: Brug hybridkryptering med en symmetrisk sessionsnøgle.
- Selvimplementeret kryptografi: Brug et velafprøvet bibliotek i stedet for selv at implementere primtalstest, modular eksponentiering eller padding.
- Dårlig tilfældighed: RSA kræver stærk entropy ved generering af primtal og padding. Embedded-systemer, tidlige bootmiljøer og virtuelle maskiner skal vurderes særligt omhyggeligt.
- Ubeskyttet privat nøgle: Begræns adgang, krypter backups, brug KMS eller HSM hvor risikoen kræver det, og planlæg rotation.
- Uautentificeret offentlig nøgle: En angriber kan ellers udskifte modtagerens eller afsenderens nøgle.
- Ignorerede side channels: Timing, cache, fejlmeddelelser og hardwareadfærd kan lække information.
- Genbrug uden livscyklus: Dokumentér ejerskab, rotation, tilbagekaldelse og hvad der sker ved kompromittering.
Er RSA stadig sikkert?
RSA er ikke “ukrakkeligt”. Sikkerheden afhænger af tilstrækkeligt store parametre, passende padding, korrekt protokolbrug, stærk tilfældighed, en sikker implementation og beskyttelse af den private nøgle. Factoring er den klassiske forklaring på RSA’s sikkerhed, men det er mere præcist at sige, at sikkerheden bygger på antagelser om, at relevante matematiske problemer er beregningsmæssigt vanskelige med kendte klassiske metoder og passende parametre.
Hvis en privat nøgle kompromitteres, kan en angriber skabe gyldige signaturer og i nogle protokoller dekryptere data, der er beskyttet med nøglen. Certifikater skal da tilbagekaldes eller udskiftes, og alle systemer, der stoler på nøglen, skal identificeres.
RSA er heller ikke post-quantum-sikker. En tilstrækkelig stor fejltolerant kvantecomputer vil i den almindeligt anvendte trusselsmodel kunne true RSA med Shor’s algoritme. Det betyder ikke, at dagens RSA allerede er praktisk brudt af kvantecomputere, men data med meget lang fortrolighedshorisont bør indgå i en migrationsplan. At gøre RSA-nøglen større er ikke det samme som at gøre den kvantesikker.
OpenSSL eller en managed KMS?
OpenSSL er et godt valg til undervisning, lokal udvikling og automatiserede tests. Det er ikke i sig selv en central nøglelivscyklus, revisionsspor eller HSM-løsning.
AWS KMS passer typisk til AWS-miljøer, hvor IAM, CloudTrail og central kontrol er vigtige. AWS oplyser, at RSA-operationer som Sign, Verify, Encrypt og Decrypt med asymmetriske nøgler ikke er omfattet af den almindelige gratis request-kvote. Se de aktuelle detaljer på AWS KMS’ prisside.
Google Cloud KMS er relevant i Google Cloud-miljøer og understøtter RSA 2048, 3072 og 4096 samt software-, HSM- og eksterne beskyttelsesniveauer. Pris afhænger blandt andet af beskyttelsesniveau, nøglestørrelse og operationer; se Google Cloud KMS’ aktuelle prisside.
Vælg ikke en tilfældig “RSA-krypteringsapp”, fordi den har RSA i navnet. Det afgørende er standardiseret padding, nøglehåndtering, autentificering, opdateringer og dokumenteret sikkerhed.
Quick Recap
Praktisk tjekliste
- Brug et velafprøvet kryptografibibliotek.
- Vælg OAEP til ny RSA-kryptering og PSS til nye RSA-signaturer.
- Brug en nøglestørrelse, der passer til den konkrete standard og sikkerhedshorisont.
- Brug RSA til små hemmeligheder eller signaturer, ikke til store filer direkte.
- Autentificér offentlige nøgler gennem certifikater, fingerprints eller en anden tillidsmodel.
- Beskyt, roter, sikkerhedskopiér og tilbagekald private nøgler efter en dokumenteret livscyklus.
- Planlæg en langsigtet overgang, hvis data skal være beskyttet mod fremtidige kvanteangreb.
Kort opsummering
- RSA er asymmetrisk kryptografi med en offentlig og en privat nøgle.
- Den offentlige nøgle bruges til kryptering eller verifikation; den private bruges til dekryptering eller signering.
- Matematikken bygger på primtal, moduloregning og en modulær multiplikativ invers.
- Rå RSA er ikke produktionssikker; brug standardiseret encoding og padding.
- OAEP er det normale valg til ny RSA-kryptering, og PSS til nye RSA-signaturer.
- Store filer krypteres normalt symmetrisk, mens RSA beskytter sessionsnøglen.
- RSA er fortsat relevant, men sikkerheden afhænger af hele implementationen og den fremtidige migrationsplan.
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

