39
Mario Čagalj [email protected] Sveučilište u Splitu Sveučilišni studijski centar za stručne studije 4/3/2012. Kriptografija javnog (asimetričnog) ključa (Public-key or Asymmetric Cryptography)

Mario Č agalj [email protected]

  • Upload
    newton

  • View
    38

  • Download
    4

Embed Size (px)

DESCRIPTION

Kriptografija javnog (asimetri č nog) klju č a (Public-key or Asymmetric Cryptography). Mario Č agalj [email protected] Sveučilište u Splitu Sveučilišni studijski centar za stručne studije 4/3/2012. Kriptografski sustav. Kriptografija simetricnog (tajnog) kljuca: Ke = Kd - PowerPoint PPT Presentation

Citation preview

Page 1: Mario  Č agalj mariogalj@fesb.hr

Mario Č[email protected]

Sveučilište u SplituSveučilišni studijski centar

za stručne studije

4/3/2012.

Kriptografija javnog (asimetričnog) ključa

(Public-key or Asymmetric Cryptography)

Page 2: Mario  Č agalj mariogalj@fesb.hr

::2::

Kriptografski sustav

Encryption Decryption

Key Generation

Plaintext Ciphertext Plaintext

Ke

Kd

o Kriptografija simetricnog (tajnog) kljuca: Ke = Kdo Kriptografija javnog (asimetricnog) kljuca: Ke Kd

MessageChannelKey

Channel

Page 3: Mario  Č agalj mariogalj@fesb.hr

::3::

Public-key Cryptosystems (1/4)

o Entitet B generira par kljuceva (PUB, PRB)

o PUB – javni kljuc (public key), PRB – privatni kljuc (private key)

o PUB je javna informacija (dostupna je svima, npr. entitetu A)

o Kljuc PRB zna samo entitet B (B cuva PRB tajnim, npr. A ne zna PRB)

o Zastita tajnosti: Entitet A zeli poslati tajnu poruku m entitetu Bo A enkriptira m javnim kljucem PUB: c = E(PUB, m)

o B dekriptira c koristeci privatni kljuc PRB: m=D(PRB, c) = D(PRB, E(PUB, m))

o Nitko drugi tko ne poznaje PRB ne moze dekriptirati sifriranu poruku c

Encryption Decryption

Key Generation

m c m

PUB PRB

MessageChannelKey

Channel

Source A Destination B

Page 4: Mario  Č agalj mariogalj@fesb.hr

::4::

Public-key Cryptosystems (2/4)

Encryption Decryption

Key Generation

m c m

PRA PUA

MessageChannel Key

Channel

Source A Destination B

o Autentikacija: Entitet A zeli poslati autenticiranu poruku m entitetu Bo A enkriptira m koristeci svoj privatni (tajni) kljuc PRA: c = E(PRA, m)

o B dekriptira poruku c koristeci javni kljuc PUA : m = D (PUA, c)

o Samo A zna PRA, stoga je samo A mogla pripremiti poruku m - source integrity

o Cijela enkriptirana poruka c sluzi kao digitalni potpis (digital signature)o Ako bi bilo nemoguce promjeniti poruku m bez poznavanja privatnog kljuca

PRA, m je takodjer autenticiran u smislu data integrity

o Q: Je li osigurana tajnost poruke m u ovo primjeru?

Page 5: Mario  Č agalj mariogalj@fesb.hr

::5::

Public-key Cryptosystems (3/4)

Key Generation

Source A Destination B

Encryptionm

Encryption Decryption Decryptionm

Key Generation

PUB PRBPRA PUA

o Autentikacija i tajnost: Entitet A zeli poslati autenticiranu i tajnu poruku m entitetu Bo Realizacija dvostrukim koristenjem kripto-sustava baziranog na javnom

kljucu

o A enkriptira m kako slijedi: c = E(PRA, m), c’ = E(PUB, E(PRA, m))

o B dekriptira poruku c’: c = D (PRB, c’), m = D (PUA, c)

o Q: Pretpostavite da A i B zamjene uloge. Koristeci standardnu notaciju, opisite proceduru koju izvrsavaju A i B.

c c’ c

Page 6: Mario  Č agalj mariogalj@fesb.hr

::6::

Klasifikacija kriptosustava prema namjeni

o Enkripcija/dekripcijao Posiljalac enkriptira poruku koristeci javni kljuc primaoca.

o Digitalni potpiso 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.

o Razmjena kljuceva (key exchange)o Dva entiteta (korisnika, racunala) zele uspostaviti sesijski

(tajni) kljuc za upotrebu u simetricnom kriptosustavuo Najpoznatiji protokol iz ove kategorije: Diffie-Hellman Key

Exchange Protocol

Page 7: Mario  Č agalj mariogalj@fesb.hr

RSA(Rivest, Shamir and Adleman)

Kriptografija asimetričnog (javnog) ključa

Page 8: Mario  Č agalj mariogalj@fesb.hr

::8::

RSA u praksi

o Webmail (Secure Socket Layer - SSL)

PKCS: Public Key Cryptography Standard

Page 9: Mario  Č agalj mariogalj@fesb.hr

::9::

Modularna aritmetika: zbrajanje

o Primjer: zbrajanje modulo 105 + 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

o Q: Zbrajanje modulo 10 sa tajnom konstantom K daje sifru. Koju?

+ 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

Page 10: Mario  Č agalj mariogalj@fesb.hr

::10::

Modularna aritmetika: mnozenje (1/3)

o Primjer: mnozenje modulo 105 5 mod 10 = 5, 3 9 mod 10 = 7

o 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

Page 11: Mario  Č agalj mariogalj@fesb.hr

::11::

Modularna aritmetika: mnozenje (2/3)

o Primjer: poruka m = 3, tajni kljuc K = 7o Enkripcija: c = m  K = 3  7 = 21 mod 10 = 1 o Dekripcija: m = c  K-1 = 1  7-1 = 1  3 = 3 mod 10 = 3

o 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)

o U nasem primjeru (prethodna tablica) samo brojevi 1, 3, 7 ili 9 imaju multiplikativne inverzne brojeve modulo 10o Q: Nadjite 9-1 i 1-1 modulo 10.

o Napomena: za vrlo velike brojeve n (npr. 100 znamenkasti broj) racunanje inverza “brute-force” metodom neizvedivoo Euclid’s Algorithm - efikasan algoritam za racunanje inverznih brojeva

Page 12: Mario  Č agalj mariogalj@fesb.hr

::12::

Modularna aritmetika: mnozenje (3/3)

o Brojevi 1, 3, 7 i 9 su relativno prosti (relatively prime) brojevi u odnosu na broj 10o Nemaju zajednickih faktora sa brojem 10 (osim naravno 1)

o Euler-ova (n) funkcija (totient function)o Oznacava broj relativno prostih brojeva, u odnosu na n, koji su manji od

n

o Velicina funkcije (n)o Ako je n prost broj onda (n) = n – 1. Q: Zasto?

o Ako je n produkt dva razlicita prosta broja p i q, onda (n) = (p-1)(q-1). Q: Je li n prost broj? Izvedite izraz za (n).

Page 13: Mario  Č agalj mariogalj@fesb.hr

::13::

Modularna aritmetika: potenciranje (1/2)

o Primjer: potenciranje modulo 10311 = 177147 mod 10 = 7

o Primjer: eksponent 3 se moze koristiti za enkripciju, ali broj 2 ne moze. Q: Zasto?

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

Page 14: Mario  Č agalj mariogalj@fesb.hr

::14::

Modularna aritmetika: potenciranje (2/2)

o Zasto su stupci 1 i 5, 2 i 6, 3 i 7 isti?o Zbog zanimljivog svojstva (n) funkcije: xy mod n = x( y mod (n) )

mod n

o U slucaju n = 10, {1, 3, 7, 9} su relativno prosti -> (n) = 4. Stoga su stupci s te s + 4 jednaki.

o Vazna napomena: Ovo svojstvo (n) funkcije vrijedi za sve primarne brojeve n, te za sve n = pq, gdje su p i q razliciti prosti brojevi.

o Za nas (RSA) je interesantan specijalan slucaj: y = 1 mod (n)o U ovom slucaju, za svaki x imamo: xy = x( 1 mod (n) ) = x mod n

Page 15: Mario  Č agalj mariogalj@fesb.hr

::15::

RSA algoritam

o Ron Rivest, Adi Shamir i Len Adlemam. MIT, 1977.o RSA je blok sifra gdje su plaintext i ciphertext cijeli brojevi iz {1,...,

n-1}o Tipicna velicina za n je 1024 bita ili 309 decimalnih znamenki

Generiranje kljuceva

Odaberi brojeve p i q ( p q ) p i q su prosti i razliciti (p q)

Izracunaj n = pq

Izracunaj (n) = (p-1)(q-1)

Odaberi cijeli broj e e je relativno prost u odnosu na (n); 1 < e < (n)

Izracunaj d ed mod (n) = 1, d je multiplikativan inverz od e

Javan kljuc (public key) PU = {e, n}

Privatni kljuc (private key) PR = {d, n}Enkripcija

Plaintext: M < n

Ciphertext: C = Me mod n

Dekripcija

Ciphertext: C

Plaintext: M = Cd mod n

Page 16: Mario  Č agalj mariogalj@fesb.hr

::16::

Zašto RSA algoritam radi

o M < no PU = {e, n}o PR = {d, n}

o Enkripcija: C = Me mod no Dekripcija:

o Digitalni potpis poruke M < n (primjer naseg Webmail-a)o Entitet A potpise M svojim privatnim kljucem {d,n}: S = Md mod no 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 (n)) mod n

= M1 mod n

= M

Page 17: Mario  Č agalj mariogalj@fesb.hr

::17::

RSA: Toy Example

1. Odaberi proste brojeve, p = 17 i q = 112. Izracunaj n = pq = 17 x 11 = 187

3. Izracunaj (187) = 16 x 10 = 160. Q: Objasnite sto predstavalja (187).

4. Odaberi e < (n), tako da je e relativno prost obzirom na (n); e = 7

5. Odredi d < 160, tako da ed mod (n) = 1; d = 23 (jer 23 x 7 = 161 = 160 + 1)

6. PU = {7, 187} i PR = {23, 187}

887 mod 187plaintext

88

ciphertext 11

1123 mod 187plaintext

88

Encryption Decryption

PU = {7, 187} PR = {23, 187}

Page 18: Mario  Č agalj mariogalj@fesb.hr

::18::

Sigurnost RSA algoritma

o Ako napadac moze rastaviti n na faktore p i qo Moze izracunati (n) = (p-1)(q-1), te naci privatni kljuc d = e-1 (mod (n))o Postojeci algoritmi za faktorizaciju ne mogu izvrsiti faktorizaciju u

polinomnom vremenu ako je n dovoljno velik (tezak problem za n veci od 1024 bitova)

o Timing Attackso Paul Kocher je pokazao da napadac moze otkriti privatni kljuc tako da biljezi

koliko vremena treba racunalu da dekriptira enkriptiranu poruku.o Chosen Ciphertext Attack

o Napadac bira poruku koju ce enkriptirati “zrtvinim” javnim kljucem te od “zrtve” prima poruku dekriptiranu “zrtvinim” privatnim kljucem

o Svojstvo RSA: E(PU, M1) x E(PU, M2) = E (PU, M2 x M2). Q: Uvjerite se.o 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?

1. Izracunaj X = (C x 2e) mod n2. Daj “zrtvi” X, te od nje primi Y = Xd mod nSlijedi: 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

o Prakticni RSA kriptosustavi dodaju random vrijednost plaintext-u prije same enkripcije (Optimal Asymmetric Encryption Padding - OAEP)

Page 19: Mario  Č agalj mariogalj@fesb.hr

::19::

RSA enkripcija u praksi

o Public Key Cryptography Standard (PKCS)o Definira enkodiranje informacija koje ce biti potpisivane ili enkriptirane

upotrebom RSA algoritmao PKCS je dizajniran na nacin da sprijecava mnoge poznate napade na

“textbook” RSA algoritam

o PKCS#1 v2.0 encoding

message to be encryptedsome 0x00bytes

hashedlabel

masked message

randomseed

maskedseed0x00

MGFMGF

MGFMGF

+

+

0x01

MGF – Mask Generating Function (hash function)

Page 20: Mario  Č agalj mariogalj@fesb.hr

::20::

How to “break” RSA despite all the protections

o Assumptions: o the algorithm is flawlesso it is implemented as it was

designed

RSA relies on modular exponentiations

for encryption and decryption

Decryption

Ciphertext: C

Plaintext: m = cd mod n

o Brute force:o Multiply c by itself d times. o If c,d and n are n-bit integers, number of multiplications

proportional to 2n !o It we don’t “mod out”, memory requirements 2n ! o For security reasons, n must be a large number, e.g.

n=134454746427671370568340195448570911966902998629125654163. . .

o Modular exponentiation is usually implemented using a (bit by bit) square and multiply algorithm

Page 21: Mario  Č agalj mariogalj@fesb.hr

::21::

RSA with square and multiply

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)

2010 = 101002

(1, 10, 101, 1010, 10100) = (1, 2, 5, 10, 20)

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)

2510 = 110012

(1, 11, 110, 1100, 11001) = (1, 3, 6, 12, 25)

Page 22: Mario  Č agalj mariogalj@fesb.hr

::22::

RSA with square and multiply

x = 1

for j = 1 to w

x = x·x mod N (square)if dj == 1

then x = x·C mod N (multiply)end if

next j

return x

Decryption

Ciphertext: C

Plaintext: M = Cd mod n

Decryption key: d = d1,…,dw

This means that the decryption execution time depends on the key !!!

Page 23: Mario  Č agalj mariogalj@fesb.hr

::23::

Simple Timing Attack on RSA

o Timing attack:o Measure the time of the decryption executiono The measured time corresponds to the number of 1s in the key => i.e.,

time leaks the Hamming weight of the key!!!

o Attack: o 2|k| 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)

o Best case for the attacker: w=1 => the search space is |k|The worst case for the attacker: w=|k|/2 => the search space is |k|!/(|k|/2)!x(|k|/2)!

o Example: a 2^1024 now reduced to 2^612

Page 24: Mario  Č agalj mariogalj@fesb.hr

::24::

(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.

Simple Power Analysis

Page 25: Mario  Č agalj mariogalj@fesb.hr

::25::

o Attack on the top-down square and multiply exponentiation algorithm during signing or decryption

o Record a power trace of the operationo Visually confirm if multiplications were executed in each

step

Experiment: SPA on exponentiation

Page 26: Mario  Č agalj mariogalj@fesb.hr

::26::

o If a squaring is followed by another squaring, this bit of the exponent is zero

o If the squaring is followed by a multiplication, this bit of the exponent is one

Experiment: SPA on exponentiation

Page 27: Mario  Č agalj mariogalj@fesb.hr

::27::

o If the squaring is followed by another squaring, this bit of the exponent is zero

o If the squaring is followed by a multiplication, this bit of the exponent is one

Experiment: SPA on exponentiation

Page 28: Mario  Č agalj mariogalj@fesb.hr

::28::

RSA timing attacks over the network

o Remote timing attacks are practical. by D. Boneh and D. Brumley, In proceedings of the 12th Usenix Security Symposium, 2003http://crypto.stanford.edu/~dabo/papers/ssl-timing.pdf

o The attack was performed over the campus network

o The attacks extracts the bits of the factor q (n=pq)o time measurement indicates if a bit of q is 1 or 0

Attacker Servermeasure

time

n

RSAK(n)

Page 29: Mario  Č agalj mariogalj@fesb.hr

Diffie-Hellman kriptografski sustav

Kriptografija asimetričnog (javnog) ključa

Page 30: Mario  Č agalj mariogalj@fesb.hr

::30::

Diffie-Hellman: uvod

o Prvi algoritam zasnovan na javnom kljucu objavili su Diffie i Hellman 1976. godineo “New Directions in Cryptography.” W. Diffie and M. Hellman, IEEE

Transactions on Information Theory, Vol. 22 #6, 1976, pp. 644-654o Ovaj rad je prvi uveo pojam kriptografije javnog kljuca

o Diffie-Hellman (DH) algoritam omogucuje “sigurnu” uspostavu simetricnog kljuca izmedju dva korisnikao Diffie-Hellman Key Exchange (Agreement) Protocolo Postoje eksenzije za uspostavu simetricnih kljuceva izmedju

vise od dva korisnika tzv. Group Key Agreement

o DH algoritam se zasniva na problemu odredjivanja (racunanja) diskretnog logaritma (discrete logarithm problem)

Page 31: Mario  Č agalj mariogalj@fesb.hr

::31::

Discrete Logarithm Problem

o 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).o 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

o Za p = 7, g = 3 -> {31 = 3, 32 = 2, 33 = 6, 34 = 4, 35 = 5 , 36 = 1}. Q. Je li g primitivni korijen za broj p?

o 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) )

o Eksponent i nazivamo diskretnim logaritmom broja b po bazi g, mod p

o Racunanje diskretnih logaritama modulo prosti broj je vrlo tezak problemo Za razliku od potenciranja (postoje efikansi algoritmi)o Diffie-Hellman algoritam koristi ovu cinjenicu

Page 32: Mario  Č agalj mariogalj@fesb.hr

::32::

Diffie-Hellman algoritam

Dijeljeni javni elementi

p prosti broj

g g < p; g je primitivni korijen broja p

Korisnik A generira kljuceve

Odaberi privatan kljuc XA XA < p

Izracunaj javni kljuc YA YA = g XA mod p

Korisnik B generira kljuceve

Odaberi privatan kljuc XB XB < p

Izracunaj javni kljuc YB YB = g XB mod p

Korisnik A generira tajni (simetricni) kljuc

KAB = (YB) XA mod pKorisnik B generira tajni (simetricni)

kljuc

KBA = (YA) XB mod p

Page 33: Mario  Č agalj mariogalj@fesb.hr

::33::

Zasto Diffie-Hellman algoritam radi

o Korisnik A racuna:

o Korisnik B racuna:

o 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

Page 34: Mario  Č agalj mariogalj@fesb.hr

::34::

Diffie-Hellman: Toy Example

1. p = 353, g = 32. A izabere privatan (tajan) kljuc XA = 97

3. B izabere privatan (tajan) kljuc XB = 233

4. A racuna javan kljuc YA = 397 mod 353 = 40

5. B racuna javan kljuc YB = 3233 mod 353 = 248

6. A racuna zajednicki tajni kljuc K= 24897 mod 353 = 1607. B racuna zajednicki tajni kljuc K= 40233 mod 353 = 160

o Sigurnosni aspekti: Potencijalan napadac zna slijedece informacije: p = 353, g = 3, YA = 40, te YB = 248

o Napadac moze lako otkriti zajednicki kljuc K tako da otkrije rjesenje jednadzbe 3a mod 353 = 40 ili jednadzbe 3b mod 353 = 248

o Napadac provjerava da li je 3a mod 353 = 40 za razlicite vrijednosti a = 1, 2, ..., 95, 96, 97

o Sa velikim brojevima XA,XB i p, ovaj napad je nepraktican

Page 35: Mario  Č agalj mariogalj@fesb.hr

::35::

Diffie-Hellman Key Exchange Protocol

o Protokol nije autenticiran -> Man-In-The-Middle (MITM) napad.

o Q: Dajte primjer MITM napada na DH protokol.

odaberi slucajan XA

izracunaj gXA mod p

odaberi slucajan XB

izracunaj gXB mod p

gXA mod p

gXB mod p

BobAlice

K = (g XB)XA mod p K = (g XA)XB mod p

Page 36: Mario  Č agalj mariogalj@fesb.hr

::36::

Diffie-Hellman protokol: MITM napad

1. Napadac Malice pripremi za napad dva privatna kljuca XM1 i XM2 te izracuna odgovarajuce javne kljuceve YM1 i YM2.

2. Alice transmitira YA Bobu.

3. Malice presretne YA te prosljedi YM1 Bobu. Malice izracuna KAM =(YA) XM2 mod p.

4. Bob primi YM1 te izracuna KBM =(YM1) XB mod p.

5. Bob transmitira YB Alice.

6. Malice presretne YB te prosljedi YM2 Alice. Malice izracuna KBM =(YB) XM1 mod p.

7. Alice primi YM2 te izracuna KAM =(YM2) XA mod p.

o 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.

o Sada Malice moze dekriptirati i modificirati sve poruke koje Alice i Bob salju jedno drugome (preko Malice).

Page 37: Mario  Č agalj mariogalj@fesb.hr

::37::

The Station-to-Station Protocol

o Rjesava problem neautenticiranog Diffie-Hellman protokolao Mutual entity authentication, mutual explicit key authentication

o Pretpostavka je da Alice i Bob posjeduju autenticirane javne kljuceve PUB odnosno PUA (npr., RSA javni kljucevi)

BobAlice

odaberi slucajan XA

izracunaj gXA mod p

odaberi slucajan XB

izracunaj gXB mod p

K = (gXB

)XA

mod p

gXA mod p

gXB mod p,EK( E(PRB,gX

B,gXA) )

K = (gXB

)XA

mod p

EK( E(PRA,gXB,gX

A) )

digitalni potpis

Page 38: Mario  Č agalj mariogalj@fesb.hr

::38::

RSA i Diffie-Hellman: primjene

o SSL (e.g., Webmail)o SSH (secure remote access)o IPSec (Internet Key Exchange - IKE)o PGP (e-mail)

Page 39: Mario  Č agalj mariogalj@fesb.hr

::39::

Slef-study: CrypTool

o http://www.cryptool.org