Title: Sigurnost bezicnih racunalnih mreza
1Kriptografija javnog (asimetricnog)
kljuca(Public-key or Asymmetric Cryptography)
Mario Cagalj mario.cagalj_at_fesb.hr Sveucilište u
SplituSveucilišni studijski centar za strucne
studije 4/3/2012.
2Kriptografski sustav
Ciphertext
Plaintext
Plaintext
Encryption
Decryption
Message Channel
Key Channel
Ke
Kd
Key Generation
- Kriptografija simetricnog (tajnog) kljuca Ke
Kd - Kriptografija javnog (asimetricnog) kljuca Ke ?
Kd
3Public-key Cryptosystems (1/4)
c
m
m
Encryption
Decryption
Message Channel
Key Channel
PUB
PRB
Key Generation
Source A
Destination B
- Entitet B generira par kljuceva (PUB, PRB)
- PUB javni kljuc (public key), PRB privatni
kljuc (private key) - PUB je javna informacija (dostupna je svima, npr.
entitetu A) - Kljuc PRB zna samo entitet B (B cuva PRB
tajnim, npr. A ne zna PRB) - Zastita tajnosti Entitet A zeli poslati tajnu
poruku m entitetu B - A enkriptira m javnim kljucem PUB c E(PUB, m)
- B dekriptira c koristeci privatni kljuc PRB
mD(PRB, c) D(PRB, E(PUB, m)) - Nitko drugi tko ne poznaje PRB ne moze
dekriptirati sifriranu poruku c
4Public-key Cryptosystems (2/4)
c
m
m
Encryption
Decryption
Message Channel
Key Channel
PRA
PUA
Key Generation
Source A
Destination B
- Autentikacija Entitet A zeli poslati
autenticiranu poruku m entitetu B - A enkriptira m koristeci svoj privatni (tajni)
kljuc PRA c E(PRA, m) - B dekriptira poruku c koristeci javni kljuc PUA
m D (PUA, c) - Samo A zna PRA, stoga je samo A mogla pripremiti
poruku m - source integrity - Cijela enkriptirana poruka c sluzi kao digitalni
potpis (digital signature) - Ako bi bilo nemoguce promjeniti poruku m bez
poznavanja privatnog kljuca PRA, m je takodjer
autenticiran u smislu data integrity - Q Je li osigurana tajnost poruke m u ovo
primjeru?
5Public-key Cryptosystems (3/4)
c
c
c
m
m
Encryption
Encryption
Decryption
Decryption
PUB
PRB
PRA
PUA
Key Generation
Source A
Destination B
Key Generation
- Autentikacija i tajnost Entitet A zeli poslati
autenticiranu i tajnu poruku m entitetu B - Realizacija dvostrukim koristenjem kripto-sustava
baziranog na javnom kljucu - A enkriptira m kako slijedi c E(PRA, m), c
E(PUB, E(PRA, m)) - B dekriptira poruku c c D (PRB, c), m D
(PUA, c) - Q Pretpostavite da A i B zamjene uloge.
Koristeci standardnu notaciju, opisite proceduru
koju izvrsavaju A i B.
6Klasifikacija kriptosustava prema namjeni
- Enkripcija/dekripcija
- Posiljalac enkriptira poruku koristeci javni
kljuc primaoca. - Digitalni potpis
- Posiljalac potpisuje poruku koristeci svoj
privatni kljuc. Najcesce se ne potpisuje cijela
poruka vec mali blok podataka (message digest)
koji se dobije kao one-way funkcija originalne
poruke. - Razmjena kljuceva (key exchange)
- Dva entiteta (korisnika, racunala) zele
uspostaviti sesijski (tajni) kljuc za upotrebu u
simetricnom kriptosustavu - Najpoznatiji protokol iz ove kategorije
Diffie-Hellman Key Exchange Protocol
7Kriptografija asimetricnog (javnog) kljuca
RSA(Rivest, Shamir and Adleman)
8RSA u praksi
- Webmail (Secure Socket Layer - SSL)
9Modularna aritmetika zbrajanje
- Primjer zbrajanje modulo 10
- 5 5 mod 10 0, 3 9 mod 10 2, 9 - 2 mod 10
9 8 mod 10 7, 4 - 6 mod 10 4 4 mod 10
8
0 1 2 3 4 5 6 7 8 9
0 0 1 2 3 4 5 6 7 8 9
1 1 2 3 4 5 6 7 8 9 0
2 2 3 4 5 6 7 8 9 0 1
3 3 4 5 6 7 8 9 0 1 2
4 4 5 6 7 8 9 0 1 2 3
5 5 6 7 8 9 0 1 2 3 4
6 6 7 8 9 0 1 2 3 4 5
7 7 8 9 0 1 2 3 4 5 6
8 8 9 0 1 2 3 4 5 6 7
9 9 0 1 2 3 4 5 6 7 8
10Modularna aritmetika mnozenje (1/3)
- Primjer mnozenje modulo 10
- 5 ? 5 mod 10 5, 3 ? 9 mod 10 7
- Q Samo mnozenje sa 1, 3, 7 ili 9 moze raditi kao
sifra. Zasto?
? 0 1 2 3 4 5 6 7 8 9
0 0 0 0 0 0 0 0 0 0 0
1 0 1 2 3 4 5 6 7 8 9
2 0 2 4 6 8 0 2 4 6 8
3 0 3 6 9 2 5 8 1 4 7
4 0 4 8 2 6 0 4 8 2 6
5 0 5 0 5 0 5 0 5 0 5
6 0 6 2 8 4 0 6 2 8 4
7 0 7 4 1 8 5 2 9 6 3
8 0 8 6 4 2 0 8 6 4 2
9 0 9 8 7 6 5 4 3 2 1
11Modularna aritmetika mnozenje (2/3)
- Primjer poruka m 3, tajni kljuc K 7
- Enkripcija c m ? K 3 ? 7 21 mod 10 1
- Dekripcija m c ? K-1 1 ? 7-1 1 ? 3 3 mod
10 3 - Multiplikativni inverzni broj (multiplicative
inverse) modulo n broja X (pisano X-1 ) je broj
za koji vrijedi - X ? X-1 1 mod n, (npr., n 10)
- U nasem primjeru (prethodna tablica) samo brojevi
1, 3, 7 ili 9 imaju multiplikativne inverzne
brojeve modulo 10 - Q Nadjite 9-1 i 1-1 modulo 10.
- Napomena za vrlo velike brojeve n (npr. 100
znamenkasti broj) racunanje inverza brute-force
metodom neizvedivo - Euclids Algorithm - efikasan algoritam za
racunanje inverznih brojeva
12Modularna aritmetika mnozenje (3/3)
- Brojevi 1, 3, 7 i 9 su relativno prosti
(relatively prime) brojevi u odnosu na broj 10 - Nemaju zajednickih faktora sa brojem 10 (osim
naravno 1) - Euler-ova f(n) funkcija (totient function)
- Oznacava broj relativno prostih brojeva, u odnosu
na n, koji su manji od n - Velicina funkcije f(n)
- Ako je n prost broj onda f(n) n 1. Q Zasto?
- Ako je n produkt dva razlicita prosta broja p i
q, onda f(n) (p-1)(q-1). Q Je li n prost broj?
Izvedite izraz za f(n).
13Modularna aritmetika potenciranje (1/2)
- Primjer potenciranje modulo 10
- 311 177147 mod 10 7
xy 0 1 2 3 4 5 6 7 8 9 10 11 12
0 - 0 0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1 1 1 1
2 1 2 4 8 6 2 4 8 6 2 4 8 6
3 1 3 9 7 1 3 9 7 1 3 9 7 1
4 1 4 6 4 6 4 6 4 6 4 6 4 6
5 1 5 5 5 5 5 5 5 5 5 5 5 5
6 1 6 6 6 6 6 6 6 6 6 6 6 6
7 1 7 9 3 1 7 9 3 1 7 9 3 1
8 1 8 4 2 6 8 4 2 6 8 4 2 6
9 1 9 1 9 1 9 1 9 1 9 1 9 1
14Modularna aritmetika potenciranje (2/2)
- Zasto su stupci 1 i 5, 2 i 6, 3 i 7 isti?
- Zbog zanimljivog svojstva f(n) funkcije xy mod n
x( y mod f(n) ) mod n - U slucaju n 10, 1, 3, 7, 9 su relativno
prosti -gt f(n) 4. Stoga su stupci s te s 4
jednaki. - Vazna napomena Ovo svojstvo f(n) funkcije
vrijedi za sve primarne brojeve n, te za sve n
pq, gdje su p i q razliciti prosti brojevi. - Za nas (RSA) je interesantan specijalan slucaj y
1 mod f(n) - U ovom slucaju, za svaki x imamo xy x( 1 mod
f(n) ) x mod n
15RSA algoritam
- Ron Rivest, Adi Shamir i Len Adlemam. MIT, 1977.
- RSA je blok sifra gdje su plaintext i ciphertext
cijeli brojevi iz 1,..., n-1 - Tipicna velicina za n je 1024 bita ili 309
decimalnih znamenki
Generiranje kljuceva Generiranje kljuceva
Odaberi brojeve p i q ( p ? q ) p i q su prosti i razliciti (p ? q)
Izracunaj n pq
Izracunaj f(n) (p-1)(q-1)
Odaberi cijeli broj e e je relativno prost u odnosu na f(n) 1 lt e lt f(n)
Izracunaj d ed mod f(n) 1, d je multiplikativan inverz od e
Javan kljuc (public key) PU e, n
Privatni kljuc (private key) PR d, n
Enkripcija Enkripcija
Plaintext M lt n
Ciphertext C Me mod n
Dekripcija Dekripcija
Ciphertext C
Plaintext M Cd mod n
16Zašto RSA algoritam radi
- M lt n
- PU e, n
- PR d, n
- Enkripcija C Me mod n
- Dekripcija
- Digitalni potpis poruke M lt n (primjer naseg
Webmail-a) - Entitet A potpise M svojim privatnim kljucem
d,n S Md mod n - Entitet B prima (M, S) te provjerava da li je
zadovoljeno M Se mod n (M Se mod n Mde
mod n M)
M Cd mod n
Med mod n
M(ed mod f(n)) mod n
M1 mod n
M
17RSA Toy Example
- Odaberi proste brojeve, p 17 i q 11
- Izracunaj n pq 17 x 11 187
- Izracunaj f(187) 16 x 10 160. Q Objasnite
sto predstavalja f(187). - Odaberi e lt f(n), tako da je e relativno prost
obzirom na f(n) e 7 - Odredi d lt 160, tako da ed mod f(n) 1 d 23
(jer 23 x 7 161 160 1) - PU 7, 187 i PR 23, 187
Encryption
Decryption
ciphertext 11
887 mod 187
1123 mod 187
plaintext 88
plaintext 88
PU 7, 187
PR 23, 187
18Sigurnost RSA algoritma
- Ako napadac moze rastaviti n na faktore p i q
- Moze izracunati f(n) (p-1)(q-1), te naci
privatni kljuc d e-1 (mod f(n)) - Postojeci algoritmi za faktorizaciju ne mogu
izvrsiti faktorizaciju u polinomnom vremenu ako
je n dovoljno velik (tezak problem za n veci od
1024 bitova) - Timing Attacks
- Paul Kocher je pokazao da napadac moze otkriti
privatni kljuc tako da biljezi koliko vremena
treba racunalu da dekriptira enkriptiranu poruku. - Chosen Ciphertext Attack
- Napadac bira poruku koju ce enkriptirati
zrtvinim javnim kljucem te od zrtve prima
poruku dekriptiranu zrtvinim privatnim kljucem - Svojstvo RSA E(PU, M1) x E(PU, M2) E (PU, M2 x
M2). Q Uvjerite se. - Primjer napadac ne zna d te zeli dekriptirati C
Me mod n. Kako napadac moze dekriptirati C ako
zrtva ne dekriptira C direktno za napadaca? - Izracunaj X (C x 2e) mod n
- Daj zrtvi X, te od nje primi Y Xd mod n
- Slijedi Xd ((C mod n) x (2e mod n))d
((Me mod n) x (2e mod n))d ((2M)e
mod n)d (2M) ed mod n 2M mod n - Prakticni RSA kriptosustavi dodaju random
vrijednost plaintext-u prije same enkripcije
(Optimal Asymmetric Encryption Padding - OAEP)
19RSA enkripcija u praksi
- Public Key Cryptography Standard (PKCS)
- Definira enkodiranje informacija koje ce biti
potpisivane ili enkriptirane upotrebom RSA
algoritma - PKCS je dizajniran na nacin da sprijecava mnoge
poznate napade na textbook RSA algoritam - PKCS1 v2.0 encoding
message to be encrypted
some 0x00 bytes
hashed label
0x01
random seed
MGF
MGF
masked message
masked seed
0x00
MGF Mask Generating Function (hash function)
20 How to break RSA despite all the protections
- Assumptions
- the algorithm is flawless
- it is implemented as it was designed
Decryption Decryption
Ciphertext C
Plaintext m cd mod n
RSA relies on modular exponentiations for
encryption and decryption
- Brute force
- Multiply c by itself d times.
- If c,d and n are n-bit integers, number of
multiplications proportional to 2n ! - It we dont mod out, memory requirements 2n !
- For security reasons, n must be a large number,
e.g. n134454746427671370568340195448570911966902
998629125654163. . . - Modular exponentiation is usually implemented
using a (bit by bit) square and multiply algorithm
21RSA with square and multiply
Decryption Decryption
Ciphertext C
Plaintext M Cd mod n
C20 C16 x C4 (C8)2 x (C2)2 (C8
x C2)2 ((C4)2 x C2)2 ((C4 x
C))2)2 (((C2)2 x C))2)2 (only 5
multiplications v.s. 19)
C25 C16 x C8 x C (C8)2 x (C4)2 x C
(C8 x C4)2 x C ((C4)2 x (C2)2)2 x C
((C4 x C2))2)2 x C (((C2)2 x
C2))2)2 x C (((C2 x C)2)2)2 x C (only 6
multiplications vs. 24)
2010 101002 (1, 10, 101, 1010, 10100) (1, 2,
5, 10, 20)
2510 110012 (1, 11, 110, 1100, 11001) (1, 3,
6, 12, 25)
22RSA with square and multiply
Decryption Decryption
Ciphertext C
Plaintext M Cd mod n
Decryption key d d1,,dw
- x 1
- for j 1 to w
- x xx mod N (square)
- if dj 1
- then x xC mod N (multiply)
- end if
- next j
- return x
This means that the decryption execution time
depends on the key !!!
23Simple Timing Attack on RSA
- Timing attack
- Measure the time of the decryption execution
- The measured time corresponds to the number of 1s
in the key gt i.e., time leaks the Hamming weight
of the key!!! - Attack
- 2k key search is now reduced to (k over w),
where w is the measured Hamming weight of the
key and k is the size of the key. (i.e., key
combinations with w bits equal to 1) - Best case for the attacker w1 gt the search
space is kThe worst case for the attacker
wk/2 gt the search space is k!/(k/2)!x(k/
2)! - Example a 21024 now reduced to 2612
24Simple Power Analysis
- (E.g., Kocher 1998) Attacker directly uses power
consumption to learn bits of secret key. Wave
forms visually examined. - Big features like rounds of DES, square vs.
multiply in RSA exponentiation, and small
features, like hamming weight of words. - Relatively easy to defend against.
25Experiment SPA on exponentiation
- Attack on the top-down square and multiply
exponentiation algorithm during signing or
decryption - Record a power trace of the operation
- Visually confirm if multiplications were executed
in each step
26Experiment SPA on exponentiation
- If a squaring is followed by another squaring,
this bit of the exponent is zero - If the squaring is followed by a multiplication,
this bit of the exponent is one
27Experiment SPA on exponentiation
- If the squaring is followed by another squaring,
this bit of the exponent is zero - If the squaring is followed by a multiplication,
this bit of the exponent is one
28RSA timing attacks over the network
- Remote timing attacks are practical. by D. Boneh
and D. Brumley, In proceedings of the 12th Usenix
Security Symposium, 2003http//crypto.stanford.ed
u/dabo/papers/ssl-timing.pdf - The attack was performed over the campus network
- The attacks extracts the bits of the factor q
(npq) - time measurement indicates if a bit of q is 1 or
0
n
measuretime
Attacker
Server
RSAK(n)
29Kriptografija asimetricnog (javnog) kljuca
Diffie-Hellman kriptografski sustav
30Diffie-Hellman uvod
- Prvi algoritam zasnovan na javnom kljucu objavili
su Diffie i Hellman 1976. godine - New Directions in Cryptography. W. Diffie and
M. Hellman, IEEE Transactions on Information
Theory, Vol. 22 6, 1976, pp. 644-654 - Ovaj rad je prvi uveo pojam kriptografije javnog
kljuca - Diffie-Hellman (DH) algoritam omogucuje sigurnu
uspostavu simetricnog kljuca izmedju dva
korisnika - Diffie-Hellman Key Exchange (Agreement) Protocol
- Postoje eksenzije za uspostavu simetricnih
kljuceva izmedju vise od dva korisnika tzv. Group
Key Agreement - DH algoritam se zasniva na problemu odredjivanja
(racunanja) diskretnog logaritma (discrete
logarithm problem)
31Discrete Logarithm Problem
- Za dani prosti broj p, broj cije potencije modulo
p generiraju sve cijele brojeve iz skupa
1,2,..., p-1 nazivamo primitivan korijen
(primitive root). - Ako je g primitivan korijen prostog broja p tada
su brojevi gi mod p, (i 1, 2, ..., p-1),
razliciti i daju neku permutaciju niza 1, 2,...,
p-1 - Za p 7, g 3 -gt 31 3, 32 2, 33 6, 34
4, 35 5 , 36 1. Q. Je li g primitivni
korijen za broj p? - Za bilo koji cijeli broj b i primitivni korijen g
prostog broja p, mozemo naci jedinstveni
eksponent i takav da - b mod p gi mod p ( skraceno b ? gi (mod p) )
- Eksponent i nazivamo diskretnim logaritmom broja
b po bazi g, mod p - Racunanje diskretnih logaritama modulo prosti
broj je vrlo tezak problem - Za razliku od potenciranja (postoje efikansi
algoritmi) - Diffie-Hellman algoritam koristi ovu cinjenicu
32Diffie-Hellman algoritam
Dijeljeni javni elementi Dijeljeni javni elementi
p prosti broj
g g lt p g je primitivni korijen broja p
Korisnik A generira kljuceve Korisnik A generira kljuceve
Odaberi privatan kljuc XA XA lt p
Izracunaj javni kljuc YA YA g XA mod p
Korisnik B generira kljuceve Korisnik B generira kljuceve
Odaberi privatan kljuc XB XB lt p
Izracunaj javni kljuc YB YB g XB mod p
Korisnik A generira tajni (simetricni) kljuc
KAB (YB) XA mod p
Korisnik B generira tajni (simetricni) kljuc
KBA (YA) XB mod p
33Zasto Diffie-Hellman algoritam radi
- Korisnik A racuna
- Korisnik B racuna
- Dakle A i B se dogovore oko zajednickog tajnog
kljuca - K KAB KBA g XAXB mod p
KAB (YB) XA mod p
(g XB mod p) XA mod p
(g XB) XA mod p
g XBXA mod p
KBA (YA) XB mod p
(g XA mod p) XB mod p
(g XA) XB mod p
g XAXB mod p
34Diffie-Hellman Toy Example
- p 353, g 3
- A izabere privatan (tajan) kljuc XA 97
- B izabere privatan (tajan) kljuc XB 233
- A racuna javan kljuc YA 397 mod 353 40
- B racuna javan kljuc YB 3233 mod 353 248
- A racuna zajednicki tajni kljuc K 24897 mod 353
160 - B racuna zajednicki tajni kljuc K 40233 mod 353
160 - Sigurnosni aspekti Potencijalan napadac zna
slijedece informacije - p 353, g 3, YA 40, te YB 248
- Napadac moze lako otkriti zajednicki kljuc K tako
da otkrije rjesenje jednadzbe 3a mod 353 40 ili
jednadzbe 3b mod 353 248 - Napadac provjerava da li je 3a mod 353 40 za
razlicite vrijednosti a 1, 2, ..., 95, 96, 97 - Sa velikim brojevima XA,XB i p, ovaj napad je
nepraktican
35Diffie-Hellman Key Exchange Protocol
- Protokol nije autenticiran -gt Man-In-The-Middle
(MITM) napad. - Q Dajte primjer MITM napada na DH protokol.
36Diffie-Hellman protokol MITM napad
- Napadac Malice pripremi za napad dva privatna
kljuca XM1 i XM2 te izracuna odgovarajuce javne
kljuceve YM1 i YM2. - Alice transmitira YA Bobu.
- Malice presretne YA te prosljedi YM1 Bobu. Malice
izracuna KAM (YA) XM2 mod p. - Bob primi YM1 te izracuna KBM (YM1) XB mod p.
- Bob transmitira YB Alice.
- Malice presretne YB te prosljedi YM2 Alice.
Malice izracuna KBM (YB) XM1 mod p. - Alice primi YM2 te izracuna KAM (YM2) XA mod p.
- U ovom trenutku Alice i Bob misle da dijele
zajednicki kljuc, ali zapravo Alice i Malice
dijele kljuc KAM, dok Bob i Malice dijele kljuc
KBM, gdje vjerojatno KAM ? KBM. - Sada Malice moze dekriptirati i modificirati sve
poruke koje Alice i Bob salju jedno drugome
(preko Malice).
37The Station-to-Station Protocol
- Rjesava problem neautenticiranog Diffie-Hellman
protokola - Mutual entity authentication, mutual explicit key
authentication - Pretpostavka je da Alice i Bob posjeduju
autenticirane javne kljuceve PUB odnosno PUA
(npr., RSA javni kljucevi)
38RSA i Diffie-Hellman primjene
- SSL (e.g., Webmail)
- SSH (secure remote access)
- IPSec (Internet Key Exchange - IKE)
- PGP (e-mail)
39Slef-study CrypTool