Marcin Braniewski Grupa: E7T1S1
Data wykonania: 31.03.2010 r. Data oddania: 07.07.2010 r.
Laboratorium
Podstaw Bezpieczeństwa Informacyjnego
Temat: Własności i wykorzystanie funkcji skrótu do podpisu cyfrowego.
Prowadzący ćwiczenie: dr inż. M. Bednarczyk
Wykres 1.
Zadanie 1.3
Przeprowadź badania jakości funkcji skrótu: dla jednej wiadomości wykonaj
kilka modyfikacji edytorskich, np. dopisanie spacji, przecinka, wyrazu,
zamiana
litery, wyrazu itd. Zaobserwuj, jaki wpływ mają te zmiany na otrzymywany
skrót.
Tekst Skrót MD5
marcin marcin A8C870154114D888D28007D80BBC9544
ma,rcin marcin 2E630026A0635295C44778BF0885DC7D
ma,rcin marc;in 6DC3AA2B56DDBE706D3E31E62683A0DA
ma,rcin marc;in%^& A2A27ED2DBF3EC309B549FB44A77FD76
ma,rcin marc;in%^&\\'fsd'[]-marcin5;JORo 9196321504E2C43E852B4821DDB36FDB
Tekst Skrót SHA-160
marcin marcin 83B219D4B20659615CC9968525E4D4621D308AFE
ma,rcin marcin 18B17B154241873CDA6BAC4EEC511BA978DD833D
ma,rcin marc;in AEFAE6984954027DD96860940C83BD96C9F4CD3F
ma,rcin marc;in%^& 77E9E55A29BA409D2ED30E8471212A05F73A27FF
ma,rcin marc;in%^&\\'fsd'[]-marcin5;JORo 0D4A4064B04602B83D053FA99E53520B0DDA4024
Tekst Skrót Haval-128 (3)
marcin marcin 556CAC7CB8C0C41CB83E2008D54FB6E7
ma,rcin marcin 44C10A1701247A4D910E77317E35BFF6
ma,rcin marc;in D922A76314C862639CD315BE76C487BC
ma,rcin marc;in%^& D54258F8A23063C916856F5F29B5B145
ma,rcin marc;in%^&\\'fsd'[]-marcin5;JORo CAFC767E30FE5722156F7F2FE77A9A31
Tekst Skrót RIPEMD-160
marcin marcin 71F91315F5A1C7C8FD98C6BC68A1922ABFEE2DEE
ma,rcin marcin ACD675FD31910F755AF34120E7E82F6D57688800
ma,rcin marc;in F7FE53D205BCA199846A1A239097D05BDB53B3D2
ma,rcin marc;in%^& 990694E8F7B6C030DE6390E3A9EA19CFD54FE476
ma,rcin marc;in%^&\\'fsd'[]-marcin5;JORo 027C29F4DA0366BCB6580276314B36934080A8F5
Wnioski:
Funkcja skrotu jest algorytmem zamiany ciagu dowolnej ilosci znakow (w
przypadku naszego badania laboratoryjneo 1kb – 15Mb) na skrot o
charakterystycznej dla danej funkcji dlugosci.
Dlugosci badanych funkcji skrotow umiescilem w pierwszej tabeli.
Tego typu algorytmy wykorzystuje sie nie do kodowania wiadomosci, z racji
braku mozliwosci odczytu tekstu jawnego (powyzej okreslonej ilosci
znakow) a do autoryzacji.
Przedstawie to na podstawie prostego przykladu logowania do bazy
danych:
Podczas rejestracji, uzytkownik do formularza wpisuje swoje haslo,
nastepnie zostaje ono poddane dzialaniu funkcji skrotu ktorej wynik
zapisany jest w odpowiednim rekordzie bazy. Podczas logowania do
systemu proces odbiega podobnie – uzytkownik wpisuje w formularz
logowania haslo jawne a na serwerze ponownie jest ono przetwarzane
przez funkcje skrotu – jezeli haslo zakodowane podczas rejestracji I
zapisane w bazie danych jest identyczne z haslem przetworzonym podczas
logowania nastepuje autoryzacja do zasobow.
Najszybszym z badanych algorytmów okazał się MD5, ktory wedlug mnie
jest najbardziej popularny w aplikacjach ktore wymagaja szybkiej
autoryzacji jak np strony www. Zaraz po nim w klasyfikacji plasuje się
SHA-160, który ma wiecej kroków w swoim algorytmie oraz przetwarza
wiekszy bufor niż MD5 co daje mu 2 miejsce. Gorsze czasy uzyskały
kolejno Haval 128(3) oraz RIPEMD 160. Wyniki symulacji przedstawione są
na wykresie nr. 1.
Modyfikując wiadomość jawną w rózny sposób zbadałem jak wpływa to na
wyniki funkcji skrótu. Dodanie bądź usunięcie spacji w tekscie jawnym
zmienia całą postać skrótu. Dodanie lub usunięcie całego wyrazu również
zmienia postać skrótu. Tekst jest szyfrowany blokami o ustalonej wielkości
dla każdej z funkcji skrótu, z których również otrzymujemy skrót o
ustalonej wielkości. Dopiero przekroczenie wielkości bloku wiadomości
wstępnej zmieni nam długość skrótu. Operacje w obszarze jednego bloku
nie maja wpływu na wielkość skrótu.
2. Podpis cyfrowy
Wnioski:
Z wiadomości jawnej tworzony jest skrót za pomocą funkcji MD5.
Otrzymany skrót jest szyfrowany algorytmem RSA co daje nam podpis
cyfrowy. Za pomocą wykorzystywanej w ćwiczeniu aplikacji możemy
porównać przesyłany podpis cyfrowy z wiadomością jawną.
Nadawca przesyła równolegle podpis cyfrowy oraz wiadomość jawna.
Odbiorca uzyskuje klucz z centrum certyfikacji za pomocą którego dokonuje
deszyfracji podpisu cyfrowego. Następnie tworzy skrót za pomocą funkcji
MD5 z wiadomości jawnej. Jeśli otrzymany skrót zgadza się z wiadomością
odszyfrowaną za pomocą algorytmu RSA oznacza to, że została zachowana
integralność, czyli pewności, że wiadomość nie została zmodyfikowana po
złożeniu podpisu. Warunkiem poprawnej deszyfracji jest uzyskanie klucza z
centrum certyfikacji.
Zmiany w podpisie cyfrowym i przekazywanej wiadomości a proces
weryfikacji:
Odbiorca otrzymuje wiadomość oraz podpis cyfrowy. Z otrzymanej
widomości tworzy skrót za pomocą funkcji MD5. Dokonuje również
deszyfracji podpisu cyfrowego. Po porównaniu otrzymanych wartości
możemy stwierdzić, że jeśli się one nie zgadzają została dokonana
ingerencja w wiadomość lub podpis. W wykorzystywanej aplikacji
oznajmiane jest to pojawieniem się komunikatu ostrzegającego „Podpis jest
sfałszowany”.
Przekłamanie klucza jawnego a proces weryfikacji:
Jeżeli dojdzie do przekłamania klucza jawnego, błędnie zostanie
przeprowadzona deszyfracja za pomocą algorytmu RSA co również
doprowadzi do błędnego porównania rozszyfrowanego podpisu z
utworzonym skrótem. Zaowocuje to pojawieniem się ostrzeżenia „Podpis
jest sfałszowany”.
Podpis cyfrowy to dodatkowa informacja dołączana do wiadomości służąca
jej weryfikacji. Zapewnia integralność oraz autentyczność wiadomości.
Dzięki temu mamy pewność co do autorstwa, jak i możliwych zmian i
ingerencji w przesyłaną wiadomość.
Marcin Braniewski Grupa: E7T1S1 Data wykonania: 31.03.2010 r. Data oddania: 07.07.2010 r. Laboratorium Podstaw Bezpieczeństwa Informacyjnego Temat: Własności i wykorzystanie funkcji skrótu do podpisu cyfrowego. Prowadzący ćwiczenie: dr inż. M. Bednarczyk
1.Własności funkcji skrótu. Zadanie 1.1 Koduje ciąg znaków 'Marcin' dla 4 roznych kluczy a następnie sprawdzam ich długość zakodowanego ciągu Wykorzystane szyfry: MD5, SHA-160, Haval-128(3) i RIPEMD-160 Tabela 1. Skrót Przetłumaczony tekst Ilosść znaków MD5 D5FAD0CDA8F1079681EC510BB20A586C 32 SHA-160 75D547CC96937D13B87CF614E50D1EA059D60C0A 40 Haval-128(3) 394F33072885EF1650BBBAE29865AA05 32 RIPEMD-160 AC922A8DC2725798DA3FDB45AA6292112C876AEB 40 Zadanie 1.2 Analiza szybkości funkcji skrótów: MD5, SHA-160, Haval-128(3) i RIPEMD- 160. Badam pliki o następujących wielkosciach: 1 kB, 2 kB, 4 kB, 8 kB, 32 kB, 64 kB, 256 kB, 512 kB, 1 MB, 5 MB, 7,5 MB, 10 MB oraz 15 MB. Tabela 2. SZYBKOSC DZIALANIA KLUCZY DLA ROZNYCH WIELKOSCI PLIKOW. Plik MD5 SHA-160 Haval-128(3) RIPEMD-160 1kB 0,000 0,000 0,000 0,000 2kB 0,000 0,000 0,000 0,000 4kB 0,000 0,000 0,000 0,000 8kB 0,000 0,000 0,000 0,000 32kB 0,000 0,000 0,000 0,000 64kB 0,000 0,000 0,000 0,000 256kB 0,005 0,008 0,000 0,007 512kB 0,007 0,015 0,009 0,016 1MB 0,016 0,016 0,014 0,015 5MB 0,027 0,064 0,017 0,032 7,5MB 0,032 0,096 0,030 0,061 10MB 0,045 0,142 0,047 0,095 15MB 0,064 0,189 0,079 0,126
Wykres 1. Zadanie 1.3 Przeprowadź badania jakości funkcji skrótu: dla jednej wiadomości wykonaj kilka modyfikacji edytorskich, np. dopisanie spacji, przecinka, wyrazu, zamiana litery, wyrazu itd. Zaobserwuj, jaki wpływ mają te zmiany na otrzymywany skrót.
Tekst Skrót MD5 marcin marcin A8C870154114D888D28007D80BBC9544 ma,rcin marcin 2E630026A0635295C44778BF0885DC7D ma,rcin marc;in 6DC3AA2B56DDBE706D3E31E62683A0DA ma,rcin marc;in%^& A2A27ED2DBF3EC309B549FB44A77FD76 ma,rcin marc;in%^&\\'fsd'[]-marcin5;JORo 9196321504E2C43E852B4821DDB36FDB Tekst Skrót SHA-160 marcin marcin 83B219D4B20659615CC9968525E4D4621D308AFE ma,rcin marcin 18B17B154241873CDA6BAC4EEC511BA978DD833D ma,rcin marc;in AEFAE6984954027DD96860940C83BD96C9F4CD3F ma,rcin marc;in%^& 77E9E55A29BA409D2ED30E8471212A05F73A27FF ma,rcin marc;in%^&\\'fsd'[]-marcin5;JORo 0D4A4064B04602B83D053FA99E53520B0DDA4024 Tekst Skrót Haval-128 (3) marcin marcin 556CAC7CB8C0C41CB83E2008D54FB6E7 ma,rcin marcin 44C10A1701247A4D910E77317E35BFF6 ma,rcin marc;in D922A76314C862639CD315BE76C487BC ma,rcin marc;in%^& D54258F8A23063C916856F5F29B5B145 ma,rcin marc;in%^&\\'fsd'[]-marcin5;JORo CAFC767E30FE5722156F7F2FE77A9A31 Tekst Skrót RIPEMD-160 marcin marcin 71F91315F5A1C7C8FD98C6BC68A1922ABFEE2DEE ma,rcin marcin ACD675FD31910F755AF34120E7E82F6D57688800 ma,rcin marc;in F7FE53D205BCA199846A1A239097D05BDB53B3D2 ma,rcin marc;in%^& 990694E8F7B6C030DE6390E3A9EA19CFD54FE476 ma,rcin marc;in%^&\\'fsd'[]-marcin5;JORo 027C29F4DA0366BCB6580276314B36934080A8F5 Wnioski: Funkcja skrotu jest algorytmem zamiany ciagu dowolnej ilosci znakow (w przypadku naszego badania laboratoryjneo 1kb – 15Mb) na skrot o charakterystycznej dla danej funkcji dlugosci. Dlugosci badanych funkcji skrotow umiescilem w pierwszej tabeli. Tego typu algorytmy wykorzystuje sie nie do kodowania wiadomosci, z racji braku mozliwosci odczytu tekstu jawnego (powyzej okreslonej ilosci znakow) a do autoryzacji. Przedstawie to na podstawie prostego przykladu logowania do bazy danych: Podczas rejestracji, uzytkownik do formularza wpisuje swoje haslo, nastepnie zostaje ono poddane dzialaniu funkcji skrotu ktorej wynik zapisany jest w odpowiednim rekordzie bazy. Podczas logowania do systemu proces odbiega podobnie – uzytkownik wpisuje w formularz
logowania haslo jawne a na serwerze ponownie jest ono przetwarzane przez funkcje skrotu – jezeli haslo zakodowane podczas rejestracji I zapisane w bazie danych jest identyczne z haslem przetworzonym podczas logowania nastepuje autoryzacja do zasobow. Najszybszym z badanych algorytmów okazał się MD5, ktory wedlug mnie jest najbardziej popularny w aplikacjach ktore wymagaja szybkiej autoryzacji jak np strony www. Zaraz po nim w klasyfikacji plasuje się SHA-160, który ma wiecej kroków w swoim algorytmie oraz przetwarza wiekszy bufor niż MD5 co daje mu 2 miejsce. Gorsze czasy uzyskały kolejno Haval 128(3) oraz RIPEMD 160. Wyniki symulacji przedstawione są na wykresie nr. 1. Modyfikując wiadomość jawną w rózny sposób zbadałem jak wpływa to na wyniki funkcji skrótu. Dodanie bądź usunięcie spacji w tekscie jawnym zmienia całą postać skrótu. Dodanie lub usunięcie całego wyrazu również zmienia postać skrótu. Tekst jest szyfrowany blokami o ustalonej wielkości dla każdej z funkcji skrótu, z których również otrzymujemy skrót o ustalonej wielkości. Dopiero przekroczenie wielkości bloku wiadomości wstępnej zmieni nam długość skrótu. Operacje w obszarze jednego bloku nie maja wpływu na wielkość skrótu. 2. Podpis cyfrowy
Wnioski: Z wiadomości jawnej tworzony jest skrót za pomocą funkcji MD5. Otrzymany skrót jest szyfrowany algorytmem RSA co daje nam podpis cyfrowy. Za pomocą wykorzystywanej w ćwiczeniu aplikacji możemy porównać przesyłany podpis cyfrowy z wiadomością jawną. Nadawca przesyła równolegle podpis cyfrowy oraz wiadomość jawna. Odbiorca uzyskuje klucz z centrum certyfikacji za pomocą którego dokonuje deszyfracji podpisu cyfrowego. Następnie tworzy skrót za pomocą funkcji MD5 z wiadomości jawnej. Jeśli otrzymany skrót zgadza się z wiadomością odszyfrowaną za pomocą algorytmu RSA oznacza to, że została zachowana integralność, czyli pewności, że wiadomość nie została zmodyfikowana po złożeniu podpisu. Warunkiem poprawnej deszyfracji jest uzyskanie klucza z centrum certyfikacji. Zmiany w podpisie cyfrowym i przekazywanej wiadomości a proces weryfikacji: Odbiorca otrzymuje wiadomość oraz podpis cyfrowy. Z otrzymanej widomości tworzy skrót za pomocą funkcji MD5. Dokonuje również deszyfracji podpisu cyfrowego. Po porównaniu otrzymanych wartości możemy stwierdzić, że jeśli się one nie zgadzają została dokonana ingerencja w wiadomość lub podpis. W wykorzystywanej aplikacji oznajmiane jest to pojawieniem się komunikatu ostrzegającego „Podpis jest sfałszowany”. Przekłamanie klucza jawnego a proces weryfikacji: Jeżeli dojdzie do przekłamania klucza jawnego, błędnie zostanie przeprowadzona deszyfracja za pomocą algorytmu RSA co również doprowadzi do błędnego porównania rozszyfrowanego podpisu z utworzonym skrótem. Zaowocuje to pojawieniem się ostrzeżenia „Podpis jest sfałszowany”. Podpis cyfrowy to dodatkowa informacja dołączana do wiadomości służąca jej weryfikacji. Zapewnia integralność oraz autentyczność wiadomości. Dzięki temu mamy pewność co do autorstwa, jak i możliwych zmian i ingerencji w przesyłaną wiadomość.