Moduł oferowany także w ramach programów studiów:
Informacje ogólne:
Nazwa:
Kryptografia
Tok studiów:
2019/2020
Kod:
IINF-1-602-n
Wydział:
Informatyki, Elektroniki i Telekomunikacji
Poziom studiów:
Studia I stopnia
Specjalność:
-
Kierunek:
Informatyka
Semestr:
6
Profil:
Ogólnoakademicki (A)
Język wykładowy:
Polski
Forma studiów:
Niestacjonarne
Strona www:
 
Prowadzący moduł:
Topa Paweł (topa@agh.edu.pl)
Treści programowe zapewniające uzyskanie efektów uczenia się dla modułu zajęć

Celem przedmiotu jest zapoznanie studentów z zadaniami i narzędziami kryptografii. Student uczy się podstaw teoretycznych podczas wykładu, aw laboratorium wykorzystuje je do zadań praktycznych.

Opis efektów uczenia się dla modułu zajęć
Kod MEU Student, który zaliczył moduł zajęć zna i rozumie/potrafi/jest gotów do Powiązania z KEU Sposób weryfikacji i oceny efektów uczenia się osiągniętych przez studenta w ramach poszczególnych form zajęć i dla całego modułu zajęć
Wiedza: zna i rozumie
M_W001 Student zna i rozumie podstawy kryptografii i kryptoanalizy. INF1A_W02, INF1A_W01 Kolokwium
M_W002 Student zna i rozumie algorytmy kryptografii symetrycznej i asymetrycznej INF1A_W02 Kolokwium
M_W003 Student zna i rozumie protokoły kryptograficzne. INF1A_W05 Kolokwium
M_W004 Student zna podstawy teorii liczb, teorii informacji i teorii złożoności obliczeniowej INF1A_W01 Kolokwium
Umiejętności: potrafi
M_U001 Studenci mogą konfigurować bezpieczne uwierzytelnianie, autoryzację i komunikację za pomocą istniejących narzędzi. INF1A_U05, INF1A_U01 Wykonanie ćwiczeń laboratoryjnych
M_U002 Uczniowie używają istniejących narzędzi kryptograficznych do zabezpieczenia komunikacji. INF1A_U05 Wykonanie ćwiczeń laboratoryjnych
M_U003 Student potrafi wdrażać oprogramowanie kryptograficzne z wykorzystaniem istniejących bibliotek i frameworków INF1A_U05, INF1A_U04, INF1A_U03, INF1A_U06 Wykonanie ćwiczeń laboratoryjnych
M_U004 Student potrafi konfigurować bezpieczne usługi internetowe wykorzystujące protokoły TLS, IPSec etc. INF1A_U03, INF1A_U07, INF1A_U01 Wykonanie ćwiczeń laboratoryjnych
Kompetencje społeczne: jest gotów do
M_K001 Ma świadomość konieczności zapewnienia bezpieczeństwa i poufności informacji. INF1A_K03, INF1A_K02 Aktywność na zajęciach
M_K002 Student zna istniejące narzędzia i algorytmy kryptograficzne i może je wybierać w zależności od potrzeb i aplikacji obszarowych. INF1A_K03, INF1A_K04 Aktywność na zajęciach
Liczba godzin zajęć w ramach poszczególnych form zajęć:
SUMA (godz.)
Wykład
Ćwicz. aud
Ćwicz. lab
Ćw. proj.
Konw.
Zaj. sem.
Zaj. prakt
Zaj. terenowe
Zaj. warsztatowe
Prace kontr. przejść.
Lektorat
32 16 0 16 0 0 0 0 0 0 0 0
Matryca kierunkowych efektów uczenia się w odniesieniu do form zajęć i sposobu zaliczenia, które pozwalają na ich uzyskanie
Kod MEU Student, który zaliczył moduł zajęć zna i rozumie/potrafi/jest gotów do Forma zajęć dydaktycznych
Wykład
Ćwicz. aud
Ćwicz. lab
Ćw. proj.
Konw.
Zaj. sem.
Zaj. prakt
Zaj. terenowe
Zaj. warsztatowe
Prace kontr. przejść.
Lektorat
Wiedza
M_W001 Student zna i rozumie podstawy kryptografii i kryptoanalizy. + - - - - - - - - - -
M_W002 Student zna i rozumie algorytmy kryptografii symetrycznej i asymetrycznej - - - - - - - - - - -
M_W003 Student zna i rozumie protokoły kryptograficzne. + - - - - - - - - - -
M_W004 Student zna podstawy teorii liczb, teorii informacji i teorii złożoności obliczeniowej + - - - - - - - - - -
Umiejętności
M_U001 Studenci mogą konfigurować bezpieczne uwierzytelnianie, autoryzację i komunikację za pomocą istniejących narzędzi. - - + - - - - - - - -
M_U002 Uczniowie używają istniejących narzędzi kryptograficznych do zabezpieczenia komunikacji. - - + - - - - - - - -
M_U003 Student potrafi wdrażać oprogramowanie kryptograficzne z wykorzystaniem istniejących bibliotek i frameworków - - + - - - - - - - -
M_U004 Student potrafi konfigurować bezpieczne usługi internetowe wykorzystujące protokoły TLS, IPSec etc. - - + - - - - - - - -
Kompetencje społeczne
M_K001 Ma świadomość konieczności zapewnienia bezpieczeństwa i poufności informacji. + - - - - - - - - - -
M_K002 Student zna istniejące narzędzia i algorytmy kryptograficzne i może je wybierać w zależności od potrzeb i aplikacji obszarowych. - - + - - - - - - - -
Nakład pracy studenta (bilans punktów ECTS)
Forma aktywności studenta Obciążenie studenta
Sumaryczne obciążenie pracą studenta 131 godz
Punkty ECTS za moduł 5 ECTS
Udział w zajęciach dydaktycznych/praktyka 32 godz
Przygotowanie do zajęć 20 godz
przygotowanie projektu, prezentacji, pracy pisemnej, sprawozdania 16 godz
Samodzielne studiowanie tematyki zajęć 24 godz
Egzamin lub kolokwium zaliczeniowe 2 godz
Dodatkowe godziny kontaktowe 5 godz
Inne 32 godz
Szczegółowe treści kształcenia w ramach poszczególnych form zajęć (szczegółowy program wykładów i pozostałych zajęć)
Wykład (16h):
Wykład

  1. (2 godz.) Wprowadzenie do kryptografii. Podstawowe pojęcia. Podstawowe pojęcia kryptografii i kryptoanalizy. Różnica między kodowaniem i szyfrowaniem. Formalna definicja systemu kryptograficznego. Klasyfikacja i omówienie ataków na systemy kryptograficzne. Praktyczne bezpieczeństwo systemów kryptograficznych. Historia i rozwój kryptografii i kryptoanalizy. Historyczne systemy kryptograficzne. Sposoby utajniania informacji w przeszłości. Matematyzacja i algorytmizacja kryptografii. Współczesny stan metod kryptograficznych.
  2. (2 godz.) Podstawy teoretyczne kryptografii, teoria informacji, teoria złożoności obliczeniowej, teoria liczb. Teoria informacji Shannona: ilość informacji, entropia wiadomości, nadmiarowość języka. Teoretyczne bezpieczeństwo systemu kryptograficznego. Złożoność obliczeniowa algorytmu. Teza Cooka-Karpa. Bezpieczeństwo systemu kryptograficznego. Teoria liczb. Liczby pierwsze. Arytmetyka modulo.
  3. (1 godz.) Protokoły kryptograficzne. Uwierzytelnianie i wymiana kluczy. Podpisy cyfrowe. Twierdzenia o wiedzy zerowej. Uzgadnianie konsensusu.
  4. (3 godz.) Algorytmy kryptografii symetrycznej. Kryptografia z kluczem tajnym. Algorytmy strumieniowe i blokowe. Budowa szyfrów strumieniowych. Tryby pracy algorytmów blokowych. Dopełnienia. Podstawowe komponenty algorytmów blokowych. Arytmetyka w ciele skończonym Galois. Algorytm DES i jego rozszerzenia. Algorytmy Blowfish, Camellia, AES.
  5. (3 godz.) Algorytmy kryptografii asymetrycznej. Kryptografia z kluczem publicznym. Klucz publiczny i klucz prywatny. Podpis elektroniczny. Protokół wymiany kluczy Diffiego-Hellmana-Merkla. System kryptograficzny RSA. System kryptograficzny ElGamal. System kryptograficzny DSA. Systemy kryptograficzne z krzywymi eliptycznymi.
  6. (2 godz.) Funkcje skrótu i kody uwierzytelnienia wiadomości. Integralność i niezaprzeczalność wiadomości. Funkcje skrótu. Własności funkcji skrótu. Algorytmy MD5, SHA-1, SHA-2, SHA-3. Kody uwierzytelniania wiadomości MAC. Funkcje generowania klucza.
  7. (1 godz.) Infrastruktura klucza publicznego PKI. Certyfikat klucza publicznego. Centra Certyfikacji. Standard X.509. Hierarchia certyfikatów. Unieważnianie certyfikatów. Protokół SSL/TLS. Biblioteka OpenSSL.
  8. (1 godz.) Kryptografia i kryptoanaliza kwantowa. Algorytm Shora. Kwantowa wymiana kluczy. Protokół Benneta-Brassarda.
  9. (1 godz.) Kryptografia postkwantowa. Kryptografia oparta o kody korekcyjne. Wykorzystanie metody krat. Kryprografia z funkcjami skrótu.

Ćwiczenia laboratoryjne (16h):
Ćwiczenia laboratoryjne

  1. Implementacja szyfrowania symetrycznego z wykorzystaniem dostępnych bibliotek kryptograficznych.
  2. Implementacja i testy podstawowych komponentów algorytmów szyfrowania symetrycznego.
  3. Porównanie wydajności szyfrowania symetrycznego i asymetrycznego.
  4. Konfiguracja komunikcji sieciowej w oparciu o protokoł TLS.
  5. Praktyczne wykorzystanie kryptografi: protokół SSH, szyfrowanie poczty GPG.
  6. Kryptoanaliza kwantowa
  7. Algorytmy kryptografi postkwantowej

Pozostałe informacje
Metody i techniki kształcenia:
  • Wykład: Treści przedmiotu prezentowane są przy pomocy rzutnika i komputera. Prowadzący omawia prezentowane zagadnienia. W trakcie wykładu studenci samodzielnie próbują rozwiązywać zadania i problemy postawione przez prowadzącego w celu zrozumienia przedstawianych zagadnień.
  • Ćwiczenia laboratoryjne: W trakcie zajęć laboratoryjnych studenci samodzielnie rozwiązują zadany problem praktyczny, dobierając odpowiednie narzędzia. Prowadzący stymuluje grupę do refleksji nad problemem, tak by otrzymane wyniki miały wysoką wartość merytoryczną
Warunki i sposób zaliczenia poszczególnych form zajęć, w tym zasady zaliczeń poprawkowych, a także warunki dopuszczenia do egzaminu:
  • Ćwiczenia laboratoryjne są oceniane w trakcie zajęć na podstawie obserwacji pracy studenta i osiągniętych wyników. Oceny z poszczególnych laboratoriów są uwzględniane w ocenie końcowej z wagą 0.11.
  • Zaliczenia poprawkowe laboratorium będą odbywać się w terminach wyznaczonych przez prowadzącego.
  • Na końcu zajęć odbywa się kolokwium sprawdzające. Warunkiem uzyskania zaliczenia przedmiotu jest otrzymanie pozytywnej oceny z tego kolokwium.
Zasady udziału w zajęciach:
  • Wykład:
    – Obecność obowiązkowa: Nie
    – Zasady udziału w zajęciach: Studenci uczestniczą w zajęciach poznając kolejne treści nauczania zgodnie z syllabusem przedmiotu. Studenci winni na bieżąco zadawać pytania i wyjaśniać wątpliwości. Rejestracja audiowizualna wykładu wymaga zgody prowadzącego.
  • Ćwiczenia laboratoryjne:
    – Obecność obowiązkowa: Tak
    – Zasady udziału w zajęciach: Studenci wykonują ćwiczenia laboratoryjne zgodnie z materiałami udostępnionymi przez prowadzącego. Student jest zobowiązany do przygotowania się w przedmiocie wykonywanego ćwiczenia, co może zostać zweryfikowane kolokwium w formie ustnej lub pisemnej. Zaliczenie zajęć odbywa się na podstawie zaprezentowania rozwiązania postawionego problemu. Zaliczenie modułu jest możliwe po zaliczeniu wszystkich zajęć laboratoryjnych.
Sposób obliczania oceny końcowej:
  1. Ocena końcowa obliczana jest jako średnia ważoną z każdej oceny z laboratorium (np. wagi 7*0.11) oraz z oceny z kolokwium (np. waga 0.23) uzyskanych we wszystkich terminach. W przypadku gdy student nie uczestniczy w zajęciach laboratoryjny i nie odrobi ich w innym terminie ocena z tego laboratorium wynosi 0.0.
  2. Wyznaczmy ocenę końcową na podstawie średniej wyliczonej jak to zostało opisane we wcześniejszym punkcie (sr – średnia ważona, OK -ocena końcowa):
    if sr>4.75 then OK:=5.0 else
    if sr>4.25 then OK:=4.5 else
    if sr>3.75 then OK:=4.0 else
    if sr>3.25 then OK:=3.5 else OK:=3
Sposób i tryb wyrównywania zaległości powstałych wskutek nieobecności studenta na zajęciach:

Odrobienie zaległości w zajęciach laboratoryjnych będzie odbywać się w terminach zajęć pod koniec semestru lub w innym terminie wyznaczonym przez prowadzącego.

Wymagania wstępne i dodatkowe, z uwzględnieniem sekwencyjności modułów :

Znajomość matematyki (teoria liczb), znajomość poleceń i administracji systemem UNIX. Umiejętność programowania w językach Java, C, C++.

Zalecana literatura i pomoce naukowe:

Podstawowe publikacje:

  • Nowoczesna kryptografia. Praktyczne wprowadzenie do szyfrowania, J.P. Aumasson, PWN 2018.
  • Kryptografia. W teorii i praktyce, Douglas R. Stinson, WNT 2005.
  • Kryptografia dla praktyków, Bruce Schneier, WNT 2002.
  • Kryptografia stosowana, Alfred J. Menezes, Paul C. van Oorschot, Scott A. Vanstone, WNT 2005.

Dodatkowe publikacje:

  • Krzywe eliptyczne w kryptografii, Ian Blake, Gadiel Seroussi, Nigel Smart, WNT 2004.
  • Teoria liczb w praktyce, Song Y. Yan, PWN, 2006.
  • Łamacze kodów. Historia kryptologii, David Kahn, WNT 2004.
Publikacje naukowe osób prowadzących zajęcia związane z tematyką modułu:
  • Factorization with Ulam Spiral on GPU, Wojciech Pater, Adrian KŁUSEK, Paweł TOPA, CGW Workshop’18 : Kraków, Poland, October 22–24, 2018 : proceedings, eds. Marian Bubak, Michał Turała, Kazimierz Wiatr. — Kraków : Academic Computer Centre CYFRONET AGH, 2018.
Informacje dodatkowe:

Zajęcia są prowadzone z wykorzystaniem innowacyjnych metod dydaktycznych opracowanych w projekcie POWR.03.04.00-00-D002/16, realizowanym w latach 2017-2019 na Wydziale Informatyki, Elektroniki i Telekomunikacji w ramach Programu Operacyjnego Wiedza Edukacja Rozwój 2014-2020.