Laboratorium podstaw kryptografii
Regulamin laboratorium
- Podstawą zaliczenia laboratorium jest wykonanie w zespole
laboratoryjnym wszystkich trzech zadań.
- Przez zespół laboratoryjny rozumie się tu grupę
złożoną z czterech studentów.
- Wykonanie ćwiczenia obejmuje trzy aspekty. Pierwszy polega
na napisaniu programu własnego autorstwa zgodnie z postawionym w ramach
ćwiczenia zadaniem do zrealizowania, a następnie na zaprezentowaniu
jego działania. Drugi stanowi odpowiedź ze znajomości zasad
funkcjonowania tego programu, jego szczegółów
implementacyjnych oraz powiązanych zagadnień teoretycznych. O formie
odpowiedzi - ustnej lub pisemnej - decyduje prowadzący. Trzeci polega
na opracowaniu sprawozdania zawierającego zasady działania algorytmu
oraz programu.
- Programy należy oddawać do oceny w określonych w ramach
ćwiczeń terminach, które traktowane są jako terminy
podstawowe. Oddanie programu do oceny w odpowiadającym ćwiczeniu
terminie podstawowym lub terminie wcześniejszym uprawnia do uzyskania,
jako maksymalnej, oceny bardzo dobrej. Przekroczenie terminu
podstawowego skutkuje koniecznością oddania programu do oceny w jednym
z terminów poprawkowych. Pierwszy termin poprawkowy przypada
na kolejnych zajęciach po terminie podstawowym, przy czym ocena
maksymalna ulega tu obniżeniu o jeden stopień, natomiast drugi termin
poprawkowy przypada na dwa zajęcia po terminie podstawowym, a ocena
maksymalna ulega tu obniżeniu o kolejny stopień. Przekroczenie drugiego
terminu poprawkowego pociąga za sobą niezaliczenie ćwiczenia, a tym
samym całego laboratorium.
- Istnieje możliwość zaliczania ćwiczeń w innej niż podana
kolejności. Terminem podstawowym jest jednak w takim przypadku zawsze
termin podstawowy odpowiadający ćwiczeniu, które powinno być
zaliczane zgodnie z normalną kolejnością.
- Terminowo zaliczenie wszystkich ćwiczeń powinno odbyć się w
trakcie pierwszych sześciu zajęć włącznie spośród wszystkich
ośmiu zajęć w semestrze. Ostatnie dwa zajęcia stanowią terminy
poprawkowe dla ostatniego ćwiczenia. Możliwość zaliczenia całego
laboratorium upływa ostatecznie na ostatnich zajęciach w semestrze.
Zaliczanie laboratorium podczas sesji egzaminacyjnej i przerwy
międzysemestralnej nie jest przewidziane.
- Programy muszą być napisane samodzielnie i podlegać
warunkom rozpowszechniania i licencji GNU - General Public License.
Jeżeli autorzy zastrzegą inną formę rozpowszechniania lub
licencjonowania swojego programu, nie będzie on oceniany. Ponadto kod
programu powinien zawierać na początku odpowiednio uzupełniony
nagłówek z informacją o autorach, jak również
powinien być zaopatrzony w niezbędną ilość komentarzy objaśniających
implementację poszczególnych etapów zastosowanego
algorytmu.
- Programy muszą działać poprawnie i bezbłędnie oraz
obowiązkowo spełniać wszystkie wymagania przekazane ustnie przez
prowadzącego w trakcie zajęć. Niespełnienie tego kryterium skutkować
będzie albo koniecznością dokonania odpowiednich poprawek, albo
adekwatnym obniżeniem oceny za ćwiczenie. W uzasadnionych przypadkach
prowadzący może zmniejszyć wymagania w odniesieniu do konkretnych
zespołów.
- Oddanie do oceny programu stanowiącego plagiat karane
będzie niezaliczeniem
całego laboratorium.
Terminy
1 zadanie
– 4 spotkanie
2 zadanie –
5 spotkanie
3 zadanie –
6 spotkanie
Zadania
Zestaw I
- Napisać program szyfrujący/deszyfrujący dane wprowadzone
przez użytkownika lub z pliku wykorzystując algorytm DES.
- Napisać program szyfrujący/deszyfrujący dane wprowadzone
przez użytkownika lub z pliku wykorzystując algorytm RSA.
- Napisać program tworzący podpis cyfrowy (weryfikujący
podpis cyfrowy) danych wprowadzonych przez użytkownika lub z pliku przy
użyciu algorytmu Schnorra.
Zestaw II
- Napisać program szyfrujący/deszyfrujący dane wprowadzone
przez użytkownika lub z pliku wykorzystując algorytm AES.
- Napisać program szyfrujący/deszyfrujący dane wprowadzone
przez użytkownika lub z pliku wykorzystując algorytm ElGamala.
- Napisać program tworzący podpis cyfrowy (weryfikujący
podpis cyfrowy) danych wprowadzonych przez użytkownika lub z pliku przy
użyciu algorytmu DSA.
Zestaw III
- Napisać program szyfrujący/deszyfrujący dane wprowadzone
przez użytkownika lub z pliku wykorzystując algorytm One-time pad.
- Napisać program szyfrujący/deszyfrujący dane wprowadzone
przez użytkownika lub z pliku wykorzystując algorytm Rabina.
- Napisać program tworzący podpis cyfrowy (weryfikujący
podpis cyfrowy) danych wprowadzonych przez użytkownika lub z pliku przy
użyciu algorytmu ElGamala.
Zestaw IV
- Napisać program szyfrujący/deszyfrujący dane wprowadzone
przez użytkownika lub z pliku wykorzystując algorytm DESX.
- Napisać program szyfrujący/deszyfrujący dane wprowadzone
przez użytkownika lub z pliku wykorzystując algorytm Plecakowy.
- Napisać program tworzący ślepy podpis cyfrowy (weryfikujący
podpis cyfrowy) danych wprowadzonych przez użytkownika lub z pliku przy
użyciu algorytmu RSA.
Zestaw V
- Napisać program szyfrujący/deszyfrujący dane wprowadzone
przez użytkownika lub z pliku wykorzystując algorytm 3DES.
- Napisać program szyfrujący/deszyfrujący dane wprowadzone
przez użytkownika lub z pliku za pomocą szyfru strumieniowego na
podstawie generatora Blum-Micali.
- Napisać program tworzący podpis cyfrowy (weryfikujący
podpis cyfrowy) danych wprowadzonych przez użytkownika lub z pliku przy
użyciu algorytmu DSA.
Literatura
Wiadomości wstępne i krótki przegląd zagadnień
dotyczących kryptologii
- Kutyłowski M.: Strothmann W.B., Kryptografia –
teoria i praktyka zabezpieczania systemów komputerowych,
Oficyna Wydawnicza Read Me, Warszawa 1999.
- Karbowski M.: Podstawy kryptografii, Helion, Gliwice 2008.
Matematyczne aspekty kryptografii i kryptoanalizy, złożoność
obliczeniowa
- Koblitz N.: Algebraiczne aspekty kryptografii, Wydawnictwa
Naukowo-Techniczne, Warszawa 2000.
- Koblitz N.: Wykład z teorii liczb i kryptografii,
Wydawnictwa Naukowo-Techniczne, Warszawa 2006.
Szczegółowe opisy większości algorytmów
kryptograficznych, wskazówki implementacyjne i kody
źródłowe
- Schneier B.: Kryptografia dla praktyków.
Protokoły,
algorytmy i programy źródłowe w języku C, Wydawnictwa
Naukowo-Techniczne, Warszawa 2002.
- Menezes A., van Oorschot P., Vanstone S.: Handbook
of Applied Cryptography, CRC Press, Boca Raton 1997.
Sieciowe aspekty kryptografii
- Stokłosa J. (red.): Ochrona danych i zabezpieczenia w
systemach
teleinformatycznych, Wydawnictwo Politechniki Poznańskiej, Poznań 2003.
- Wang J., Computer Network Security. Theory and Practice,
Higher
Education Press, Pekin oraz Springer-Verlag, Berlin Heidelberg 2009.
Zagadnienia dotyczące kryptografii asymetrycznej i podpisu
elektronicznego oraz PKI
- Dąbrowski W., Kowalczuk P., Podpis elektroniczny,
Wydawnictwo Informatyczne Mikom, Warszawa 2003.
Socjotechnika
- Mitnick K., Sztuka podstępu, Helion, Gliwice 2003.