[ Pobierz całość w formacie PDF ]
Atak metodą prób i błędów (wrażliwość na tekst
spreparowany)
Złożoność - wykładnicza funkcja długości klucza
(1024 bity w RSA to odpowiednik ok. 80b szyfru symetrycznego,
128 bitów klucza szyfru symetrycznego to ok. 3000 bitów RSA)
Stosowane metody
RSA
Szyfry plecakowe (Merklego-Hellmana ...)
Krzysztof Zlot © 2002
8
Bezpieczeństwo systemów informatycznych
Ustalanie klucza sesyjnego
Diffie-Hellman
Wymiana kluczy przez publiczną sieć
Problem - jak ustalić klucz tajny komunikacji uzgadniając go
za pośrednictwem sieci publicznej
Dane są: liczba pierwsza p i liczba całkowita g
D wybiera a, takie że 0
G wybiera b, takie że 0
D oblicza J= ga mod p i wysyła J do G
G oblicza K = gb mod p i wysyła K do D
D oblicza X = Ka mod p
G oblicza Y = Jb mod p
X = gab = Y
klucz
Klucz jest wypadkowÄ… liczb generowanych przez obie strony
Krzysztof Zlot © 2002
Bezpieczeństwo systemów informatycznych
Ustalanie klucza sesyjnego
Diffie-Hellman
X = gab = Y
Publicznie znane p, g, J i K nie pozwalajÄ… na znalezienie X -
jest to problem z klasy NP
Metoda wymiany kluczy Diffie-Hellmana jest wrażliwa na atak
typu Man-in-the-middle
Do ustalenia klucza sesyjnego stosuje siÄ™ w praktyce albo
technikÄ™ RSA albo modyfikacje metody Diffie-Hellmana
Krzysztof Zlot © 2002
9
Bezpieczeństwo systemów informatycznych
Kryptosystem RSA
Obliczanie odwrotności
ed •" ( p -1)(q -1) = 1
(p-1)(q-1)=z
ed •" z = 1
Dane e,z Cel - obliczyć d
Rozważmy wyrażenia (każdą liczbę można wyrazić w taki sposób)
z = c0 *e + r1 e = c1 * r1 + r2 r1 = c2 *r2 + r3 ... rn-1 = cn *rn +1
W końcu zawsze dojdziemy do reszty 1
1 = rn-1 - cnrn = rn-1 - cn (rn-2 - cn-1rn-1) =
= rn-1(1+ cn-1) - cnrn-2 = (rn-3 - cn-2rn-2)(1+ cn-1) - cnrn-2 =
bo
= ± Å" z - ² Å"e d = ² ed •" z = 1 Ô! ± Å" z - ed = 1
Krzysztof Zlot © 2002
Bezpieczeństwo systemów informatycznych
Kryptosystem RSA
Obliczanie odwrotności - przykład
Dane p=53, q=61 n=3233, z=52*60=3120
Załóżmy, że e=71
d = ?
z = c0 *e + r1 3120 = c0 *71+ r1 c0 = 43, r1 = 67
71 = c1 *67 + r2
e = c1 *r1 + r2 c1 = 1, r2 = 4
r1 = c2 *r2 + r3 67 = c1 *4 + r3 c2 = 16, r3 = 3
r2 = c3 *r3 + r4 4 = c1 *3+ r3 c3 = 1, r4 =1
Krzysztof Zlot © 2002
10
Bezpieczeństwo systemów informatycznych
Kryptosystem RSA
Obliczanie odwrotności - przykład
1 = r2 - c3r3 = r2 - c3(r1 - c2r2) = r2(1+ c2) - c3r1 = (e - c1r1)(1+ c2) - c3r1 =
= -r1(c1 + c1c2 + c3) + e(1+ c2) = -(z - c0e)(c1 + c1c2 + c3) + e(1+ c2 ) =
= -z(c1 + c1c2 + c3) + e(1+ c2 + c0c1 + c0c1c2 + c0c3)
d =1+ c2 + c0c1 + c0c1c2 + c0c3 = 17 + 43Å"18 = 791
Krzysztof Zlot © 2002
Bezpieczeństwo systemów informatycznych
Kryptosystem RSA
Przykładowy klucz 1024 bitowy
mQCNAzGvwGAAAAEEAMQXI06gfdoZzy2Ngdqua6Zf6q4Bfdotc8qGHk9RncuEHSB
f 2DrqYrkVmn6cANJp/HdBkJH39LcKybOGbxiahmjVnngPp+PzvX8+Wi7kQ5NP267S0
JIituePxuklEQ5pqywHw8yxtOGIqLjkJtb/pRvZyiC0Cyw1bjnbPFHw2SetAAUR tCZSb2J
pbiBXaGl0dGxlIDxmaXJzdHByQG96ZW1haWwuY29tLmF1PokAlQMFEDGv wGE52z
xR8NknrQEBbV0D/1gJSldscj2bFJ0uD9LOY+LSTj71yxdONZ3cycPZ+3zpShCNcsqNAG
vHXDtqcGQrNrxHmYqnKBaJ/+46n/FSkDnt/bvEAb105m+6T5oTK8h+ MaaVuvdcphwKf
IPQbIoI6LcmtwSd0cyBBndp+O+02x0xhcd2Qx7Gni7J+fz8mm0y =Yjno
Krzysztof Zlot © 2002
11
[ Pobierz całość w formacie PDF ]