160 likes | 286 Views
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
E N D
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