Kryptografia – elementarz cześć I 13 listopad 2006
Agenda Reprezantacja danych w systemach komputerowych Szyfrowanie danych Konwencjonalne Z kluczem jawnym Funkcje skrótu Bezpieczna wymiana danych
Reprezantacja danych Dane są przechowywane w postaci binarnej (zerojedynkowej) Interpretacja danych zależy od programu, który z nich korzysta; edytor traktuje dane jako tekst, zaś dla szyfratora te same dane są blokami binarnymi do zaszyfrowania
Tekst jawny do przesłania Szyfrowanie danych Szyfrogram Tekst jawny do przesłania Kanał transmisyjny Qwe4 % yut^ Drt *$3w To jest tekst do przesłania To jest tekst do przesłania Szyfrator Deszyfrator
Szyfrowanie konwencjonalne - symetryczne Funkcje realizowane przez szyfrator / deszyfrator są znane [M] [C] [M] Szyfrator C = E(M, K) Deszyfrator M = D(C, K) Klucz K Klucz K Klucz (ten sam do szyfrowania / deszyfrowania) chroniony
Szyfrowanie konwencjonalne - ograniczenia Stacja 1: Klucze: K12, K13 Ilość par kluczy dana zależnością: N (N - 1) / 2 Sieć publiczna Stacja 3: Klucze: K13, K23 Stacja 2: Klucze: K12, K23
Szyfrowanie konwencjonalne – algorytm DES Działa na blokach 8 bajtowych Klucz ma długość 56 bitów; 256=72057594037927936 Implementowany na kartach
Szyfrowanie konwencjonalne – algorytm DES c.d. Opublikowane ataki na DES Deep Crack, lipiec 1998 18-01-1999, Deep Crack + grupa internetowa Distributed.Net; czas na znalezienie klucza: 22 godz. 15 min. (bez grupy czas ~ 4,5 dnia) Parametry: 1800 układów specjalizowanych ASIC, zegar 40 MHz, szybkość przeszukiwań 90 mld kluczy/sek, Koszt: $ 220 000
Szyfrowanie konwencjonalne - podsumowanie Algorytmy: DES, 3DES, RC4, IDEA, Skipjack, AES Zaletą jest duża szybkość działania i możliwość realizacji sprzętowej (w postaci układów scalonych)
Szyfrowanie z kluczem jawnym - asymetryczne Ta sama funkcja F() wykorzystywana do szyfrowania i deszyfrowania Możliwe jest również odwrócenie działania algorytmu szyfrowania [M] [C] [M] Szyfrator C = F(M, P) Deszyfrator M = F(C, S) Klucz P Klucz S Klucz jawny P znany nadawcy – publikowany przez odbiorcę Para kluczy: jawny P i tajny S znana odbiorcy
Szyfrowanie z kluczem jawnym Stacja 1: Klucze: S1, P1, P2, P3 Sieć publiczna Stacja 3: Klucze: S3, P1, P2, P3 Stacja 2: Klucze: S2, P1, P2, P3
Szyfrowanie z kluczem jawnym – algorytm RSA Działa na blokach o długości zależnej od długości n Implementowany na kartach (GemSafe)
Szyfrowanie z kluczem jawnym – algorytm RSA c.d. Opublikowane ataki na RSA Faktoryzacja liczby z 140 cyframi dziesiętnymi (467 bitowej) Herman te Riele, CWI Amsterdam 2-02-1999, 1,5 miesiąca obliczeń 125 stacji roboczych SGI, SUN + 60 PC W końcowej fazie wykorzystywano komputer mainframe
Funkcja skrótu (np. SHA-1, MD5) Funkcje skrótu Cechy funkcji skrótu: „odcisk palca” zależy od całego tekstu, długość tekstu jest dowolna dowolna, nawet najmniejsza zmiana tekstu pociąga zmianę „odcisku palca”, nie ma możliwości konstrukcji dla danego „odcisku palca” pasującego tekstu Tekst (np. dokument MS Word) Funkcja skrótu (np. SHA-1, MD5) Tzw. „Odcisk palca” tekstu
Bezpieczna transmisja danych - wyzwania Uwierzytelnienie (autentykacja) Autoryzacja Poufność Integralność (zawartości, sekwencji) Niezaprzeczalność
Bezpieczna transmisja danych - przykład Zleceniodawca: Nazwa: Jan Nowak Nr rachunku: 123456 Odbiorca: Nazwa: Canal+ Nr rachunku: 987654 Tytułem: opłata (pay-for-view) za walkę R.J.Junior – D.Michalczewski Kwota: 150 zł
Bezpieczna transmisja danych – przykład c.d. Jan Nowak Poufność Integralność Uwierzytelnienie Autoryzacja Niezaprzeczalność Sieć publiczna Bank
Bezpieczna transmisja danych – przykład c.d. Jan Nowak – algorytmy: 3DES, RSA, SHA-1 Klucz sesji generowany przy każdej transmisji Polecenie przelewu Polecenie przelewu SHA-1 3DES Odcisk palca Podpis Przechowywane przez klienta (np. karta) RSA KSESJI RSA PJN SJN PBANK