Web Analytics Made Easy - Statcounter
Avancerad

Kryptografi

RSA-kryptering, primtalstest och diskreta logaritmer.

RSA primtal diskret logaritm kryptering nyckel

Hur kan två personer dela hemligheter över internet när alla kan lyssna? Hur vet du att din mobila betalning verkligen kommer från din telefon och inte från en bedragare? Kryptografi löser dessa problem genom att göra information begriplig endast för avsedda mottagare. Från Caesar-chiffer till kvantresistenta algoritmer bygger kryptografi på matematik för att skydda våra digitala liv.

Fördjupning

Modern kryptografi bygger på diskret matematik - modulär aritmetik, talteoretiska problem, elliptiska kurvor. Symmetrisk krypto använder samma nyckel för kryptering och dekryptering, medan asymmetrisk använder nyckelpar. Hash-funktioner skapar 'fingeravtryck' av data. Kryptografisk säkerhet vilar ofta på computational complexity - vissa problem är lätta att lösa i en riktning men svåra att invertera.

Grundläggande kryptografiska primitiver

Kryptografins byggstenar är symmetriska chiffer, asymmetriska kryptosystem och hash-funktioner. Symmetriska system som AES är snabba för stora datamängder. Asymmetriska system som RSA löser nyckelutbytesproblemet. Hash-funktioner som SHA-256 skapar unika 'signaturer' för data.

Encrypt: C = E_k(M), Decrypt: M = D_k(C), Hash: h = H(M)
Encrypt: C = E_k(M), Decrypt: M = D_k(C), Hash: h = H(M)

Caesar-chiffer som introduktion

Caesar-chiffer: skifta varje bokstav k steg i alfabetet
Kryptering: C_i = (M_i + k) mod 26
Dekryptering: M_i = (C_i - k) mod 26
Exempel med k = 3:
Klartext: 'HELLO'
H → K, E → H, L → O, L → O, O → R
Chiffertext: 'KHOOR'
Svaghet: Endast 25 möjliga nycklar
Attack: Prova alla nycklar (brute force)
Elektronisk motsvarighet: XOR-chiffer med återanvänd nyckel

Modulär aritmetik och RSA

RSA bygger på svårigheten att faktorisera stora tal. Nycklar skapas genom att välja primtal p,q och beräkna n = pq. Krypterings-/dekrypteringsexponenter e,d satisfies ed ≡ 1 (mod φ(n)). Säkerheten vilar på att det är lätt att multiplicera primtal men svårt att faktorisera produkten.

RSA: C = M^e mod n, M = C^d mod n, ed ≡ 1 (mod φ(n))
RSA: C = M^e mod n, M = C^d mod n, ed ≡ 1 (mod φ(n))

Litet RSA-exempel (ej säkert i praktiken)

1. Välj primtal: p = 61, q = 53
2. Beräkna n = pq = 61 × 53 = 3233
3. Beräkna φ(n) = (p-1)(q-1) = 60 × 52 = 3120
4. Välj e relativt primes till φ(n): e = 17
5. Hitta d så att ed ≡ 1 (mod φ(n)): d = 2753
(Verifiering: 17 × 2753 = 46801 ≡ 1 (mod 3120))
Offentlig nyckel: (n=3233, e=17)
Privat nyckel: (n=3233, d=2753)
Kryptera M = 123:
C = 123^17 mod 3233 = 855
Dekryptera:
M = 855^2753 mod 3233 = 123

Elliptiska kurvor

Elliptisk kurvkryptografi (ECC) ger samma säkerhet som RSA med mycket mindre nycklar. Elliptiska kurvor över ändliga kroppar definierar grupper där diskreta logaritmproblemet är svårt. ECC-nycklar på 256 bitar motsvarar RSA-nycklar på 3072 bitar i säkerhet.

Punktaddition på elliptisk kurva

Kurva: y² = x³ + 7 över Z_p (secp256k1 som Bitcoin använder)
Punktaddition P + Q = R:
1. Om P = Q (punktdubbling):
s = (3x_P² + a) / (2y_P) mod p
2. Om P ≠ Q:
s = (y_Q - y_P) / (x_Q - x_P) mod p
3. Nya koordinater:
x_R = s² - x_P - x_Q mod p
y_R = s(x_P - x_R) - y_P mod p
Skalär multiplikation kP = P + P + ... + P (k gånger)
Privat nyckel: slumptal k
Offentlig nyckel: kG där G är generatorpunkt

Hash-funktioner och digitala signaturer

Kryptografiska hash-funktioner mappar godtycklig data till fasta längder deterministiskt. Egenskaper: preimage resistance (svårt att hitta M från H(M)), second preimage resistance (svårt att hitta M' ≠ M med H(M') = H(M)), collision resistance (svårt att hitta M₁ ≠ M₂ med H(M₁) = H(M₂)).

H: {0,1}* → {0,1}^n med preimage, 2nd preimage, collision resistance
H: {0,1}* → {0,1}^n med preimage, 2nd preimage, collision resistance

Digitala signaturer med RSA

Signering av meddelande M:
1. Beräkna hash: h = H(M)
2. Signera: s = h^d mod n (använd privat nyckel)
Verifiering av signatur s för meddelande M:
1. Beräkna hash: h = H(M)
2. Beräkna: h' = s^e mod n (använd offentlig nyckel)
3. Acceptera om h = h'
Säkerhet: Endast innehavare av privat nyckel kan skapa s
Integritet: Ändring av M ger annat hash-värde
Non-repudiation: Signerare kan inte förneka signering

Protokoll och nyckelutbyte

Diffie-Hellman nyckelutbyte låter två parter etablera delad hemlighet över osäker kanal. Protokollet bygger på diskreta logaritmproblemet i multiplikativa grupper. Perfect Forward Secrecy uppnås genom att använda temporära nycklar för varje session.

DH: Alice beräknar g^a mod p, Bob beräknar g^b mod p, delad hemlighet g^ab
DH: Alice beräknar g^a mod p, Bob beräknar g^b mod p, delad hemlighet g^ab

Diffie-Hellman nyckelutbyte

Publika parametrar: primtal p = 23, generator g = 5
Alice väljer hemligt a = 6:
· Beräknar A = g^a mod p = 5^6 mod 23 = 8
· Skickar A = 8 till Bob
Bob väljer hemligt b = 15:
· Beräknar B = g^b mod p = 5^15 mod 23 = 19
· Skickar B = 19 till Alice
Alice beräknar delad hemlighet:
K = B^a mod p = 19^6 mod 23 = 2
Bob beräknar delad hemlighet:
K = A^b mod p = 8^15 mod 23 = 2
Båda har nu K = 2 som delad hemlighet!

Kvantkryptografi och framtida hot

Kvantdatorer hotar klassisk kryptografi genom Shors algoritm (faktorisering) och Grovers algoritm (sök). Post-kvant kryptografi utvecklar nya system baserade på lattice-problem, hash-baserade signaturer, och multivariate ekvationer. NIST standardiserar kvantresistenta algoritmer.

Timeline för kvanthot mot olika kryptosystem och post-kvant alternativ
Timeline för kvanthot mot olika kryptosystem och post-kvant alternativ

Post-kvant alternativ

NIST Post-Quantum Competition vinnare:
Nyckelutbyte/KEM:
· CRYSTALS-Kyber (lattice-baserad)
· Mindre nycklar än klassiska system
· Resistenta mot kvantattacker
Digitala signaturer:
· CRYSTALS-Dilithium (lattice-baserad)
· FALCON (lattice-baserad)
· SPHINCS+ (hash-baserad)
Lattice-problem (exempel):
· Learning With Errors (LWE)
· Ring-LWE för effektivitet
· Svårt även för kvantdatorer
Migrationsstrategi:
· Hybridlösningar (klassisk + post-kvant)
· Krypto-agility i system
· Early adoption för långlivade data

Vanliga misstag

❌ Använda hemmagjord kryptografi

Kryptografiska protokoll har subtila säkerhetsdetaljer som lätt missas

Exempel: Implementera egen RSA utan proper padding kan vara sårbart för chosen ciphertext attacks

❌ Återanvända nycklar eller IV

Många attacker utnyttjar nyckel- eller nonce-återanvändning

Exempel: Återanvänd stream cipher nyckel låter angripare XOR:a bort plaintext

❌ Ignorera sidokanalattacker

Implementationer läcker information genom timing, strömförbrukning, etc.

Exempel: Timing-attacker mot RSA genom att mäta dekrypteringstid

Tillämpningar

Internet och webb

TLS/SSL säkrar webbkommunikation

Exempel: HTTPS använder Diffie-Hellman + AES + RSA/ECDSA för säker browsing

Blockchain och kryptovalutor

Digitala signaturer säkrar transaktioner

Exempel: Bitcoin använder ECDSA med secp256k1 för att signera transaktioner

Digital identitet

PKI och certifikat för autentisering

Exempel: Digitala pass, smart cards, two-factor authentication

Övningar

1 Medel

Beräkna RSA-nycklar för p=7, q=11. Kryptera meddelandet M=6 och dekryptera resultatet.

Tips

n=77, φ(n)=60, välj e=13, hitta d med extended Euclidean algorithm

Visa facit

Svar: n=77, e=13, d=37. C = 6^13 mod 77 = 41. M = 41^37 mod 77 = 6

Förklaring: φ(77) = 6×10 = 60. ed = 13×37 = 481 ≡ 1 (mod 60). Kryptering och dekryptering återställer ursprungsmeddelandet.

2 Lätt

Utför Diffie-Hellman nyckelutbyte med p=17, g=3, a=5, b=7.

Tips

Beräkna A = 3^5 mod 17 och B = 3^7 mod 17, sedan delad hemlighet

Visa facit

Svar: A = 3^5 mod 17 = 5, B = 3^7 mod 17 = 11, K = 5^7 mod 17 = 11^5 mod 17 = 10

Förklaring: Alice och Bob får samma delad hemlighet K = 10 utan att avslöja sina privata nycklar a,b

3 Medel

Förklara varför hash-funktioner behöver collision resistance för digitala signaturer.

Tips

Tänk på vad som händer om angripare kan hitta två meddelanden med samma hash

Visa facit

Svar: Om H(M₁) = H(M₂) kan angripare få signatur för M₁ och använda den för M₂

Förklaring: Collision låter angripare skapa falska signaturer: få signatur för harmlöst M₁, använd för skadligt M₂ med samma hash

Sammanfattning

Kryptografi skyddar information genom matematiska transformationer baserade på svåra problem. Symmetriska system som AES är snabba för datakryptering. Asymmetriska system som RSA och ECC löser nyckelutbyte och digitala signaturer. Hash-funktioner skapar integritetsskydd. Protokoll som Diffie-Hellman etablerar säker kommunikation. Kvantdatorer hotar nuvarande system, vilket driver utveckling av post-kvant kryptografi. Säkerhet vilar på computational complexity och korrekt implementering. Kryptografi är grunden för modern digital säkerhet.