Ochrona danych wykład 3
IDEA z ang. International Data Encryption Algorithm Europejska odpowiedź na DES, z lat '90 Klucz długości 128 bitów Blok długości 64 bitów Szybki w implementacji sprzętowej Szyfrowanie – 8 rund: we/wy 4 bloki po 16 bitów – przekształcenie końcowe – klucz główny 128 bitowy, z którego generowane podklucze 16 bitowe Generowanie podkluczy – Potrzebnych jest (8*6+4)=52 16-to bitowych podkluczy 1.Klucz główny dzielony jest na osiem 16-to bitowych podkluczy 2.Cykliczne przesunięcie klucza głównego o 25pozycji, a wynik jest dzielony na osiem podkluczy 3.Pkt.2 powtarzany jest, aż do uzyskania 52 podkluczy
IDEA Przekształcenie końcowe – Odmienny algorytm na utrudnić kryptoanalizę Schemat jednej rundy Deszyfrowanie – Odwrócenie rundy polega na podaniu zmodyfikowanych podkluczy w odwrotnej kolejności – Ten sam układ może być używany do deszyfrowania
RC5 (R.Rivest 1994) Zmienna ilość rund, wielkość bloków i długość klucza Elastyczny, ale trudny do sprzętowej implementacji Zawiłe metody generowania dużych ilości podkluczy Szyfrowanie gdzie: i – numer rundy 2w – długość bloku A,B – dwie połówki bloku
AES z ang. Advanced Encryption Standard powstaje w wyniku konkursu w 1997 długość bloku 128 bitów długość kluczy 128, 192 lub 256 bitów
ECB z ang. Electronic Code Book Szyfrowanie Deszyfrowanie
ECB z ang. Electronic Code Book Bloki są szyfrowane niezależnie, co ułatwia kryptoanalizę Bloki są szyfrowane niezależnie, co powoduje, że wprowadzanie drobnych zmian w danych nie powoduje konieczności szyfrowania całości. Zastosowanie – szyfrowanie systemów plików oraz baz danych.
CBC z ang. Cipher Block Chaining Szyfrowanie Deszyfrowanie
CBC z ang. Cipher Block Chaining Zalety: – takie same bloki tekstu jawnego dają różne kryptogramy. – losowy IV powoduje, że ponowne zaszyfrowanie tego samego tekstu daje inny kryptogram. – przekłamanie w jednym bloku kryptogramu prowadzą do błędów w dwóch blokach tekstu jawnego. Wady: – nie można usunąć żadnego bloku kryptogramu. – nie można dodać nowego bloku. – zmiana w podziale na bloki powoduje lawinowy błąd rozszyfrowania.
Propagacja błędów ECB: błąd w jednym bloku przenosi się na jeden blok. CBC: błąd w jednym bloku przenosi się na dwa bloki
CFB z ang. Cipher FeedBack CFB dzięki rejestrowi przesuwające mu umożliwia szyfrowanie pojedynczych bajtów/bitów Na początku rejestr przesuwający jest losowany IV CFB tworzy szyfr strumieniowy
RSA-1977: Rivest, Shamir,Adleman – dowolna długość klucza. – ok. 1000 razy wolniejszy niż DES. – przemienność kluczy. – szyfrowanie realizowane tym samym algorytmem co deszyfrowanie – łatwiejsza implementacja
Wybór kluczy RSA Algorytm tworzenia kluczy [e,n,d]: Wybieramy dwie losowe, duże liczby pierwsze: p,q. Losowo wybieramy liczbę e, tak aby NWD(e, (p-1)(q-1)) = 1 w razie złego wyboru powtarzamy losowanie Algorytmem Euklidesa znajdujemy d, takie, że e*d = 1 mod (p-1)(q-1) Obliczamy n=p*q Zapominamy oraz usuwamy liczby p i q Otrzymujemy: - klucz publiczny [e,n] - klucz prywatny [d,n]
RSA - rozkład Rozkład n na czynniki pierwsze (p,q) spowodowałby złamanie RSA Problem rozkładu jest bardzo złożony numerycznie najlepszy algorytm w 1996r. rozłożył liczbę 512 bitową (2004r. – 567 bitów) Nie jest wykluczone złamanie algorytmu w inny sposób Problem: jak znaleźć dużą liczbę pierwszą ? – Rozkład na czynniki pierwsze (np. sito Archimedesa) jest zbyt czasochłonny – Zastosowanie probabilistycznych testów pierwszości np.. Test Fermata