POLITECHNIKA OPOLSKA
WYDZIAŁ ELKTROTECHNIKI, AUTOMATYKI I INFORMATYKI
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
dr inż. Małgorzata Zygarlicka
godzina:
13:45
Sprawozdanie
Lab. 1 Publiczny system kryptograficzny
1 |
S t r o n a
I.
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.
Sprawozdanie
Lab. 1 Publiczny system kryptograficzny
2 |
S t r o n a
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
Sprawozdanie
Lab. 1 Publiczny system kryptograficzny
3 |
S t r o n a
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.
Sprawozdanie
Lab. 1 Publiczny system kryptograficzny
4 |
S t r o n a
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
Sprawozdanie
Lab. 1 Publiczny system kryptograficzny
5 |
S t r o n a
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
Sprawozdanie
Lab. 1 Publiczny system kryptograficzny
6 |
S t r o n a
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
Sprawozdanie
Lab. 1 Publiczny system kryptograficzny
7 |
S t r o n a
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.
Sprawozdanie
Lab. 1 Publiczny system kryptograficzny
8 |
S t r o n a
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.
Sprawozdanie
Lab. 1 Publiczny system kryptograficzny
9 |
S t r o n a
Rys. 12 Sprawdzenie zawartości plik 2
Rys. 13 Wysłanie innemu użytkownikowi plik 2 wraz z podpisem.
Sprawozdanie
Lab. 1 Publiczny system kryptograficzny
10 |
S t r o n a
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.
Sprawozdanie
Lab. 1 Publiczny system kryptograficzny
11 |
S t r o n a
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.
Sprawozdanie
Lab. 1 Publiczny system kryptograficzny
12 |
S t r o n a
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.