Transmisja danych
laboratorium
Kierunek studiów: | Informatyka |
Rok studiów: | III |
Numer grupy: | W1 L1 P1 | ||
Rok akademicki: | 2013/2014 | Semestr: | V |
Temat: |
|
Lab. 1 Publiczny system kryptograficzny |
Lp. | Nr indeksu | Imię i nazwisko | Data oddania I | Data oddania II | OCENA |
1. | 81325 | Adam Czech | 16.10.2013 |
Termin zajęć: | Prowadzący: |
dzień: | Środa |
godzina: | 13:45 |
Cel ćwiczenia
1. Omów działanie systemu kryptografii wykorzystującego klucze prywatne i publiczne. Wyjaśnij zasadę i sposób szyfrowania „asymetrycznego”, w tym elementy matematyczne algorytmu.
2. Wykonaj ćwiczenie z wykorzystaniem gnuPG:
a. Wygeneruj parę kluczy wraz z pomiarem czasu generowania (sposób pomiaru dowolny). Klucz 1024-bitowy, zabezpieczony hasłem.
b. Prześlij klucz publiczny pocztą elektroniczną drugiemu użytkownikowi.
c. Klucz publiczny otrzymany pocztą elektroniczną od innego użytkownika (kolegi/koleżanki z grupy) dodaj do swojego zbioru kluczy publicznych.
d. Dodaj identyfikator do swojego klucza, aby posługiwać się identyfikatorem tak samo, jak pełna nazwa klucza.
e. Podpisz swoim kluczem prywatnym otrzymany klucz.
f. Przejrzyj zawartość swojego zbioru kluczy publicznych, aby upewnić się, że poprzednie polecenia zostały wykonane poprawnie.
g. Zaszyfruj dowolny (np. graficzny) plik binarny plik1 otrzymanym kluczem publicznym i wyślij oba pocztą elektroniczną. Usuń zaszyfrowany i oryginalny plik.
h. Rozszyfruj swoim kluczem prywatnym otrzymane pocztą pliki, porównaj pliki z oryginałem – powinny być identyczne.
i. Podpisz plik tekstowy plik2 swoim kluczem prywatnym, tak aby jego zawartość nie została zaszyfrowana i pozostała czytelna, proszę sprawdzić poprawność podpisu, a następnie przesłać plik innemu użytkownikowi (koledze/koleżance z grupy). Podpis proszę umieścić w sprawozdaniu.
j. Sprawdź poprawność podpisu pod otrzymany od drugiego użytkownika plikiem.
k. Unieważnij swój klucz.
l. Wyślij certyfikat unieważnienia innemu użytkownikowi, aby poinformować go o nieaktualności swojego klucza.
m. Dołącz do swojego zbioru otrzymany pocztą certyfikat unieważnienia od innego użytkownika.
n. Sprawdź jakie zmiany zaszły w zbiorze Twoich kluczy.
o. Usuń unieważnione klucze.
Ad. 1
Kryptografia klucza publicznego jest rodzaj kryptografii, w którym używa się zestawów dwu lub więcej powiązanych ze sobą kluczy, umożliwiających wykonywanie różnych czynności kryptograficznych. Jeden z kluczy może być udostępniony publicznie bez utraty bezpieczeństwa danych zabezpieczanych tym kryptosystemem. Najważniejsze zastosowania kryptografii asymetrycznej – szyfrowanie i podpisy cyfrowe – zakładają istnienie 2 kluczy – prywatnego i publicznego, przy czym klucza prywatnego nie da się łatwo odtworzyć na podstawie publicznego. W niektórych innych zastosowaniach kluczy może być więcej.
Algorytmy asymetryczne nazywane również algorytmami z kluczem publicznym, używają innego klucza do szyfrowania i deszyfrowania tych samych danych, a ponadto z klucza, którym zostały zaszyfrowane dane w żaden sposób nie da się wyciągnąć klucza do ich odszyfrowania. Dlatego algorytmy tego typu są znacznie bezpieczniejsze, ponieważ wysyłając wiadomość nie wysyłamy w niej klucza a odszyfrować wiadomość może jedynie osoba upoważniona, która posiada unikatowy klucz deszyfrujący najczęściej w postaci certyfikatu.
Algorytmy asymetryczne cechuje:
możliwość generowania kluczy publicznych wyłącznie przez użytkowników z kluczem prywatnym
kilkaset razy wyższa odporność na atak
możliwość szyfrowani danych kluczem prywatnym i publicznym
Podstawową wadą tego sposobu szyfrowani danych jest szybkość, samo szyfrowanie nie jest zbyt czasochłonne, ale już odszyfrowywanie danych jest procesem bardzo czasochłonnym. Do algorytmów szyfrowania asymetrycznego zaliczamy:
Algorytm RSA - należy do profesjonalnych algorytmów szyfrowania, działa na zasadzie liczb pierwszych.
Podpis cyfrowy - do głównych zadań algorytmów asymetryczny należy podpisywanie wiadomości (podpisem cyfrowym). Podpis cyfrowy oprócz gwarancji, że nadawcą jest autentyczna osoba, to gwarantuje również autentyczność wysyłanej treści. Podczas gdy dokumenty papierowe podpisujemy ręcznie a o wiarygodności podpisu świadczy jednie jego unikatowy wygląd, to w przypadku podpisu cyfrowego o autentyczności świadczy ciąg bitów.
Opis algorytmu szyfrującego
1. wybierane są dwie duże liczby pierwsze p i q (np. o długości 512 bitów)
2. obliczana jest liczba n będąca iloczynem p i q. (n=p*q)
3. klucz publiczny e wybieramy ze zbioru [max(p,q)+1, n-1] będący względnie pierwszą liczbą z funkcją Eulera dla n ⇒ f(n)=(p-1)*(q-1)
4. klucz prywatny d obliczamy z równania d=inv(e,f(n)), czyli jako odwrotność e modulo f(n), tj. (e*d) mod (p-1)*(q-1)=1
5. Szyfrowanie polega na C=M^e mod n
6. Deszyfrowanie M=C^d mod n
Ad. 2
Wygenerowanie pary kluczy w nakładce GPGshell. Klucze są o rozmiarze 1024 bitów i są zabezpieczone hsłem. Czas generowania klucz to około 1 sekundy.
Rys.1 Generowanie kluczy 1024-bitowych.
Rys. 2 Wygenerowane klucze w nakładce graficznej GPGshell.
Wygenerowany klucz po eksportowaniu do pliku został wysłany do innego użytkownika.
Rys. 3 Wysyłanie klucza do innego użytkownika
Po wysłaniu moich kluczy, odebrałem klucze innego użytkownika i został on importowany do zbioru moich kluczy.
Rys. 4 Import kluczy do zbioru moich kluczy
Rys. 4 Zbiór moich kluczy po zaimportowaniu kluczy innego użytkownika
Podpisanie kluczy importowanych moim kluczem prywatnym
Rys. 5 Podpisanie kluczy moim kluczem prywatnym
Szyfrowanie pliku graficznego plik1 otrzymanym kluczem
Rys. 6 Szyfrowanie pliku za pomocą otrzymanego klucza.
Po zaszyfrowaniu pliku graficznego wysyłany on został do innego użytkownika
Rys. 7 Wiadomość wysyłana do innego użytkownika
Pobranie i rozszyfrowanie pliku graficznego otrzymanego od innego użytkownika, kluczem który otrzymałem wcześniej. Pliki po porównaniu są identyczne.
Rys. 8 Pobrane pliki graficzne zaszyfrowane i nie zaszyfrowane
Rys. 9 Rozszyfrowanie pliku zakończone sukcesem.
Podpisanie kluczem prywatnym plik 2, zawartość pliku nie została zaszyfrowana nadal jest czytelna, podpis został wykonany pomyślnie i jest poprawny, plik 2 został wysłany innemu użytkownikowi.
Rys. 10 Podpisanie plik 2
Rys. 11 Podpis zakończony sukcesem.
Rys. 12 Sprawdzenie zawartości plik 2
Rys. 13 Wysłanie innemu użytkownikowi plik 2 wraz z podpisem.
Po poraniu pliku od innego użytkownika został on sprawdzony i otworzony plik był poprwany.
Rys. 14 Sprawdzenie podpisu otrzymanego pliku.
Rys. 15 Sprawdzenie zawartości otrzymanego pliku.
Unieważnienie mojego klucza, wygenerowanie certyfikatu unieważnienia i przesłanie go innemu użytkownikowi.
Rys. 16 Unieważnienie kluczy wygenerowanych wcześniej.
Rys. 17 Unieważnione klucze
Rys. 18 Wysłanie innemu użytkownikowi certyfikatu unieważnienia mojego klucza.
Pobranie certyfikatu unieważnienia od innego użytkownika i importowanie go do moich kluczy spowodowało unieważnienie otrzymanego wcześniej klucza.
Rys. 19 Unieważniony klucz innego użytkownika.
Usunięcie unieważnionych kluczy
Rys. 20 Usunięte wygenerowane wcześniej klucze.