Leksjon 1 av 4 · 9 min
Symmetrisk kryptering, asymmetrisk kryptering, og hashing
Tre ulike kryptografiske verktøy garanterer tre ulike ting. Å blande dem sammen er den vanligste kilden til falsk trygghet.
Folk sier ofte «det er kryptert» som om det avgjør et sikkerhetsspørsmål. Det gjør det ikke, fordi kryptering ikke er én ting. Denne leksjonen dekker de tre byggeklossene bak nesten alle påstander om digital beskyttelse: symmetrisk kryptering, asymmetrisk kryptering, og hashing. Hver garanterer noe forskjellig, og å vite hvilken som er i spill forteller deg hva som faktisk er beskyttet.
Symmetrisk kryptering: én delt nøkkel
Cloudflares Learning Center beskriver symmetrisk kryptering enkelt: «det finnes bare én nøkkel, og alle kommuniserende parter bruker den samme (hemmelige) nøkkelen for både kryptering og dekryptering.» Advanced Encryption Standard (AES) er standardeksempelet i dag, etter å ha erstattet den eldre Data Encryption Standard (DES) etter at DES’ korte nøkkellengde gjorde den knekkbar med brute force. Symmetrisk kryptering er rask og er det som faktisk krypterer det meste av dataene dine, enten det er en fil på disk eller innholdet i en nettside lastet over HTTPS. Det sentrale problemet er distribusjon: begge sider trenger samme hemmelige nøkkel, og å få den nøkkelen til den andre parten uten at noen andre ser den, er nøyaktig problemet asymmetrisk kryptering løser.
Asymmetrisk kryptering: to nøkler som fungerer som et par
I asymmetrisk, eller offentlig-nøkkel, kryptering finnes det to matematisk koblede nøkler: «én nøkkel brukes for kryptering, og en annen nøkkel brukes for dekryptering,» ifølge Cloudflare. Krypteringsnøkkelen kan publiseres til hvem som helst — derav «offentlig nøkkel» — mens den tilhørende dekrypteringsnøkkelen forblir privat. Data låst med den offentlige nøkkelen kan bare låses opp med den private nøkkelen. Dette er det som lar to personer som aldri har møttes, bli enige om en delt hemmelighet over et åpent nettverk, som er nøyaktig det som skjer i starten av hver HTTPS-tilkobling (neste leksjon dekker dette håndtrykket i detalj). RSA og elliptisk-kurve-kryptografi er de vanlige algoritmene bak det i dag.
Hashing: et fingeravtrykk, ikke en lås
En hash-funksjon er ingen av delene ovenfor: den låser ingenting, og det finnes ingen nøkkel å låse den opp med. NIST definerer den som en funksjon som «mapper en bitstreng av vilkårlig lengde til en bitstreng med fast lengde» — i vanlige ord, den gjør om enhver fil eller melding til et kort fingeravtrykk med fast størrelse. NIST spesifiserer egenskapene en godkjent hash-funksjon må ha: det må være beregningsmessig umulig å finne en input som produserer en gitt output (enveis), og umulig å finne to forskjellige input som produserer samme output (kollisjonsmotstand). Dette er hvorfor hashing sjekker integritet — endret denne filen seg? — og beskytter lagrede passord: en tjeneste kan sjekke et passord mot sin lagrede hash uten noensinne å ha lagret det faktiske passordet. Eldre hash-funksjoner som MD5 og SHA-1 anses ikke lenger som trygge mot en målrettet angriper, som er hvorfor moderne systemer bruker SHA-2- eller SHA-3-familiene i stedet.
Hva hver av dem faktisk garanterer
| Verktøy | Hva det garanterer | Hva det ikke garanterer |
|---|---|---|
| Symmetrisk kryptering | Konfidensialitet, hvis den delte nøkkelen forblir hemmelig | En trygg måte å utveksle den nøkkelen på i utgangspunktet |
| Asymmetrisk kryptering | En måte å utveksle en hemmelighet på, og å verifisere identitet (se neste leksjon om signaturer) | Hastighet; den er langt saktere enn symmetrisk kryptering for store mengder data |
| Hashing | Integritet: bevis på at data ikke ble endret, og en måte å sjekke hemmeligheter uten å lagre dem | Konfidensialitet; en hash er ikke designet for å reverseres, men den er heller ikke designet for å skjule størrelsen eller tilstedeværelsen av data |
Hvordan de kombineres i praksis
Nesten ingenting bruker bare ett av disse. En typisk sikker tilkobling bruker asymmetrisk kryptering kort, for å bli enige om en delt hemmelighet, og bytter deretter til rask symmetrisk kryptering for selve dataene, mens hashing kjører gjennom hele tiden for å sikre at ingenting sendt ble endret underveis. Å gjenkjenne disse tre rollene er det som gjør resten av dette kurset — signaturer, sertifikater, TLS, og ende-til-ende-kryptering — forståelig som kombinasjoner av det samme lille settet med verktøy, i stedet for separat magi.
Det viktigste
- Symmetrisk kryptering bruker én delt nøkkel for både kryptering og dekryptering; den er rask, men krever en måte å dele nøkkelen trygt på.
- Asymmetrisk kryptering bruker en offentlig nøkkel og en privat nøkkel som et par, og løser nøkkeldistribusjonsproblemet symmetrisk kryptering har.
- Hashing produserer et fingeravtrykk med fast størrelse av data; den beskytter integritet og lagrede hemmeligheter, ikke konfidensialitet — det finnes ingen nøkkel til å låse opp en hash.
- Ekte systemer kombinerer alle tre: asymmetrisk kryptering for å bli enige om en hemmelighet, symmetrisk kryptering for hastighet, hashing for å fange opp tukling.
- Eldre algoritmer (DES, MD5, SHA-1) har kjente svakheter; AES og SHA-2/SHA-3-familiene er dagens standarder.
Test deg selv
1. Hva er den definerende egenskapen til symmetrisk kryptering?
- Den bruker en offentlig nøkkel og en privat nøkkel
- Den bruker én delt hemmelig nøkkel for både kryptering og dekryptering — Riktig.
- Den kan ikke brukes for store mengder data
- Den krever aldri noen nøkkel i det hele tatt
Symmetrisk kryptering avhenger av én delt nøkkel begge parter allerede har; utfordringen er å distribuere den nøkkelen trygt.
2. Hvilket problem løser asymmetrisk kryptering som symmetrisk kryptering ikke kan løse alene?
- Å gjøre kryptering raskere
- Å la to parter bli enige om en delt hemmelighet uten å møtes først — Riktig.
- Å gjøre passord lettere å huske
- Å hindre at data noensinne slettes
Offentlig-nøkkel-kryptografi lar en offentlig nøkkel deles åpent mens bare den tilhørende private nøkkelen kan dekryptere, noe som muliggjør sikker nøkkelutveksling over et åpent nettverk.
3. Hvorfor kan en hash-funksjon ikke brukes til å holde en melding hemmelig?
- Hasher er alltid for korte til å inneholde en melding
- En hash er enveis av design; det finnes ingen nøkkel for å reversere den tilbake til originaldataene — Riktig.
- Hash-funksjoner er ulovlige å bruke for kryptering
- Hasher fungerer bare på bilder, ikke tekst
Hash-funksjoner er bygget slik at det å gjenopprette den originale inputen fra outputen er beregningsmessig umulig — den egenskapen (enveis) gjør dem nyttige for integritetssjekker og passordlagring, ikke for konfidensialitet.
4. Hvilket par algoritmer anses som utdaterte på grunn av kjente svakheter?
- AES og RSA
- DES og MD5 — Riktig.
- SHA-2 og elliptisk-kurve-kryptografi
- TLS og HTTPS
DES’ korte nøkkellengde og MD5s kollisjonssvakheter betyr at moderne systemer bruker AES og SHA-2/SHA-3-familiene i stedet.
Prøv det med FireAI
Sett denne leksjonen ut i praksis på din egen Mac.
Kilder
- Cloudflare Learning Center: What is encryption?
- NIST Computer Security Resource Center Glossary: hash function
Ta det i bruk på din Mac
Prøv alle funksjonene gratis i 17 dager, uten kort.