Kryptografi, eller kryptologi, er praksis og studier af at skjule information. Det kaldes nogle gange kode, men det er ikke helt korrekt – der er en vigtig forskel mellem ordet "kode" og de metoder, der i dag normalt betegnes som kryptografi. Målet er at beskytte oplysninger mod uautoriseret adgang, så kun de tiltænkte modtagere kan læse dem. Moderne kryptografi bygger på en kombination af matematik, datalogi og elektroteknik og anvendes i dag bredt, for eksempel til hævekort (bankkort), computeradgangskoder og til at handle på internettet. Kryptografi beskytter fortrolighed, men kan også sikre integritet og ægthed af data.
Når en meddelelse sendes ved hjælp af kryptografi, ændres (eller krypteres) den, før den sendes. Metoden til at ændre teksten kaldes ofte en "kode", men mere præcist en "ciffer" eller krypteringsalgoritme. Den ændrede tekst kaldes "ciphertext" og er uforståelig for dem, der ikke har den rigtige nøgle. Ændringen gør meddelelsen svær at læse; for at gendanne det oprindelige indhold må man ændre teksten tilbage (eller dekryptere den) — det kræver viden om den hemmelige nøgle eller en metode til at bryde krypteringen. Hvordan man ændrer tilbage er en hemmelighed mellem afsender og modtager. At studere cypherteksten for at finde frem til hemmeligheden kaldes "kryptoanalyse" eller "cracking" (ofte omtalt som code breaking).
Grundlæggende begreber
- Plaintext: Den oprindelige, læselige besked før kryptering.
- Ciphertext: Den krypterede, uforståelige udgave af beskeden.
- Algoritme (ciffer): Den procedure eller opskrift, der bruges til at kryptere og dekryptere.
- Nøgle: En hemmelig værdi, som styrer, hvordan algoritmen omdanner plaintext til ciphertext og tilbage.
Typer af kryptografi
Man skelner typisk mellem flere hovedkategorier:
- Symmetrisk kryptografi: Afsender og modtager deler samme hemmelige nøgle. Eksempler: AES, ChaCha20. Hurtigt og velegnet til store mængder data, men kræver sikker nøgleudveksling.
- Asymmetrisk kryptografi (offentlig nøgle): Hver part har et nøglepar: en offentlig nøgle og en privat nøgle. Offentlige nøgler kan deles åbent, mens private nøgler holdes hemmelige. Eksempler: RSA, ECC. Bruges bl.a. til sikker nøgleudveksling, digitale signaturer og PKI.
- Hashfunktioner: Entydige sammenfattende beregninger (f.eks. SHA-2, SHA-3) der bruges til at sikre dataintegritet og i mange autentificeringsprotokoller.
- Digitale signaturer: Sikrer ægthed og uforanderlighed af en besked eller et dokument ved hjælp af asymmetriske metoder.
Nøgler og sikkerhed
Krypteringer anvender en "nøgle", som er den hemmelighed, der sikrer meddelelserne. Metoden (algoritmen) behøver ikke at være hemmelig — sikkerheden bygger på nøglen. Flere personer kan bruge samme algoritme, men forskellige nøgler, så de ikke kan læse hinandens meddelelser. Nøgler skal være tilstrækkeligt lange og tilfældigt genererede for at modstå angreb. Svage nøgler eller dårligt valg af algoritme kan gøre selv stærke systemer sårbare.
Historie og kryptoanalyse
Siden antikkens tid har man eksperimenteret med koder og chiffrer. Da Caesar-chifringen kun har lige så mange nøgler som antallet af bogstaver i alfabetet, kan den let knækkes ved at prøve alle nøglerne (brute force) eller ved enkel statistisk analyse. Moderne chiffrer tillader milliarder eller langt flere mulige nøgler, og kryptoanalyse har derfor udviklet avancerede mathematiske og beregningsmæssige metoder til at finde svagheder. I nogle tilfælde angriber man implementeringen (fx sidekanalangreb), ikke kun den teoretiske algoritme.
Moderne anvendelser og praksis
I det 20. og 21. århundrede har computere og netværk ændret både muligheder og trusler. Computere er blevet det vigtigste værktøj til kryptografi, både til at udføre kryptering i stor skala og til at forsøge at bryde den. Standarder som TLS (til sikre internetforbindelser), IPsec, S/MIME og forskellige protokoller i betalingssystemer bygger på velundersøgte kryptografiske konstruktioner (fx AES, RSA, ECC). Kryptografi er også central i nyere teknologier som blockchain og digitale identiteter.
Fremtidige udfordringer
En aktuel udfordring er kvantecomputere, som teoretisk kan true nogle af de nuværende asymmetriske algoritmer (fx RSA og visse ECC-udgaver). Derfor arbejdes der med post-kvantemæssige algoritmer, der skal modstå kvanteangreb.
God praksis
- Brug velafprøvede, standardiserede algoritmer og biblioteker frem for hjemmelavede løsninger.
- Sørg for tilstrækkelig nøglestørrelse og godt tilfældighedsgrundlag (secure randomness).
- Håndter nøgler sikkert (key management): opbevar private nøgler sikkert og roter nøgler regelmæssigt.
- Opdater systemer og protokoller, når sårbarheder eller bedre metoder opdages.
- Vær opmærksom på implementeringssikkerhed: sidekanalangreb, timing-angreb og fejlkonfigurationer kan svække selv stærke algoritmer.
Kryptografi er et aktivt forskningsområde og en praktisk nødvendighed i en digital verden. Ved at kombinere korrekt matematisk design, solide implementeringer og sikker nøglehåndtering kan man opnå høj grad af fortrolighed, integritet og troværdighed i kommunikationen.

