Nazwa modułu: Kryptografia Rok akademicki: 2032/2033 Kod: IIN-1-784-s Punkty ECTS: 3 Wydział: Informatyki, Elektroniki i Telekomunikacji Kierunek: Informatyka Specjalność: - Poziom studiów: Studia I stopnia Forma i tryb studiów: - Język wykładowy: Polski Profil kształcenia: Ogólnoakademicki (A) Semestr: 7 Strona www: Osoba odpowiedzialna: Topa Paweł (topa@agh.edu.pl) Osoby prowadzące: Topa Paweł (topa@agh.edu.pl) Opis efektów kształcenia dla modułu zajęć Kod EKM Student, który zaliczył moduł zajęć wie/umie/potrafi Powiązania z EKK Sposób weryfikacji efektów kształcenia (forma zaliczeń) Wiedza M_W001 Zna i rozumie podstawowe pojęcia kryptografii i kryptoanalizy. IN1A_W10 M_W002 Zna historię kryptografii i jej rozwoju. IN1A_W04 M_W003 Dysponuje wiedzą na temat teoretycznych podstaw kryptografii: teorii informacji, teorii złożoności obliczeniowe i teorii liczba. IN1A_W01 M_W004 Zna i rozumie sposób działania najważniejszych algorytmów kryptografii symetrycznej i asymetrycznej. IN1A_W03 M_W005 Zna narzędzia i protokoły, wykorzystujące w sposób praktyczny algorytmy kryptograficzne. IN1A_W04 Umiejętności M_U001 Potrafi posługiwać się gotowymi narzędziami szyfrujący lub generującymi podpis elektroniczny np. PGP M_U002 Potrafi skonfigurować autoryzację dostępu do systemu zabezpieczoną narzędziami kryptograficznymi np. z wykorzystaniem protokołu Kerberos 1 / 5
M_U003 Potrafi zaimplementować program wykorzystujący gotowe biblioteki kryptograficzne np. OpenSSL M_U004 Potrafi skonfigurować dostęp do usług HTTPS z wykorzystanie Infrastruktury Klucza Publicznego. IN1A_U11 Kompetencje społeczne M_K001 Ma świadomość potrzeby zapewnienia bezpieczeństwa i poufności informacji. IN1A_K02 Aktywność na zajęciach M_K002 Orientuje się w charakterystykach istniejących narzędzi i algorytmów kryptograficznych i potrafi dobierać je w zależności od potrzeb i obszaru zastosowań. IN1A_K02 Aktywność na zajęciach Matryca efektów kształcenia w odniesieniu do form zajęć Kod EKM Student, który zaliczył moduł zajęć wie/umie/potrafi Forma zajęć audytoryjne laboratoryjne projektowe Konwersatori um seminaryjne praktyczne terenowe warsztatowe Inne E-learning Wiedza M_W001 M_W002 M_W003 M_W004 M_W005 Umiejętności M_U001 Zna i rozumie podstawowe pojęcia kryptografii i kryptoanalizy. Zna historię kryptografii i jej rozwoju. Dysponuje wiedzą na temat teoretycznych podstaw kryptografii: teorii informacji, teorii złożoności obliczeniowe i teorii liczba. Zna i rozumie sposób działania najważniejszych algorytmów kryptografii symetrycznej i asymetrycznej. Zna narzędzia i protokoły, wykorzystujące w sposób praktyczny algorytmy kryptograficzne. Potrafi posługiwać się gotowymi narzędziami szyfrujący lub generującymi podpis elektroniczny np. PGP 2 / 5
M_U002 M_U003 M_U004 Potrafi skonfigurować autoryzację dostępu do systemu zabezpieczoną narzędziami kryptograficznymi np. z wykorzystaniem protokołu Kerberos Potrafi zaimplementować program wykorzystujący gotowe biblioteki kryptograficzne np. OpenSSL Potrafi skonfigurować dostęp do usług HTTPS z wykorzystanie Infrastruktury Klucza Publicznego. Kompetencje społeczne M_K001 M_K002 Ma świadomość potrzeby zapewnienia bezpieczeństwa i poufności informacji. Orientuje się w charakterystykach istniejących narzędzi i algorytmów kryptograficznych i potrafi dobierać je w zależności od potrzeb i obszaru zastosowań. Treść modułu zajęć (program wykładów i pozostałych zajęć) 1. Wprowadzenie do kryptografii. Podstawowe pojęcia (2 godz.) 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. 2. Historia i rozwój kryptografii i kryptoanalizy (2 godz.) Historyczne systemy kryptograficzne. Sposoby utajniania informacji w przeszłości. Matematyzacja i algorytmizacja kryptografii. Współczesny stan metod kryptograficznych. 3. Podstawy teoretyczne kryptografii, teoria informacji, teoria złożoności obliczeniowej, teoria liczb (4 godz.) 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 z punktu widzenia teorii złożoności obliczeniowe. Teoria liczb. Liczby pierwsze. Arytmetyka modulo. 4. Algorytmy kryptografii symetrycznej (6 godz.) Kryptografia z kluczem tajnym. Algorytmy strumieniowe i blokowe. Budowa szyfrów strumieniowych. Liniowe rejestry przesuwające. Algorytm RC4. Algorytmy blokowe. Tryby pracy algorytmów blokowych. Przekształcenie Feistela. Algorytm DES i jego rozszerzenia. Algorytm Blowfish. Algorytm AES. 5. Algorytmy kryptografii asymetrycznej (6 godz.) 3 / 5
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. 6. Funkcje skrótu i kody uwierzytelnienia wiadomości (4 godz.) Integralność i niezaprzeczalność wiadomości. Funkcje skrótu. Bezkonfliktowość funkcji skrótu. Algorytm MD5 i SHA-1. Kody uwierzytelniania wiadomości MAC. 7. Infrastruktura klucza publicznego PKI (4 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. Wybrane zastosowania kryptografii: protokół Kerberos, PGP. (2 godz.)autoryzacja w systemie rozproszonum z wykorzystaniem protokołu Kerberos. Szyfrowanie poczty elektronicznej z użyciem oprogramowania PGP. laboratoryjne laboratoryjne 1. Implementacja programu szyfrującego z wykorzystaniem biblioteki OpenSSL (3 godz.) 2. Implementacja programu generującego podpis elektroniczny z wykorzystaniem biblioteki OpenSSL (3 godz.) 3. Konfiguracja serwera HTTPS i dostępu z wykorzystaniem certyfikatów klucza publicznego (3 godz.) 4. Szyfrowanie i podpisywanie wiadomości z wykorzystaniem oprogramowania PGP (3 godz.) 5. Konfiguracja bezpiecznej autoryzacji z wykorzystaniem protokołu Kerberos (3 godz.) Sposób obliczania oceny końcowej 1. Aby uzyskać pozytywną ocenę końcową niezbędne jest uzyskanie pozytywnych ocen z wykonania wszystkich laboratoriów oraz z egzaminu z wykładu. 2. Obliczamy średnią ważoną z każdej oceny z laboratorium (wagi 5 0.15) oraz z oceny z egzaminu (waga 0.25) uzyskanych we wszystkich terminach. 3. Wyznaczmy ocenę końcową na podstawie zależności: 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 Wymagania wstępne i dodatkowe Znajomość matematyki (teoria liczb), znajomość poleceń i administracji systemem UNIX. Zalecana literatura i pomoce naukowe 1. Łamacze kodów. Historia kryptologii, David Kahn, WNT 2004. 2. Kryptografia. W teorii i praktyce, Douglas R. Stinson, WNT 2005. 3. Kryptografia dla praktyków, Bruce Schneier, WNT 2002. 4. Kryptografia stosowana, Alfred J. Menezes, Paul C. van Oorschot, Scott A. Vanstone, WNT 2005. 5. Krzywe eliptyczne w kryptografii, Ian Blake, Gadiel Seroussi, Nigel Smart, WNT 2004. 6. Teoria liczb w praktyce, Song Y. Yan, PWN, 2006. Publikacje naukowe osób prowadzących zajęcia związane z tematyką modułu Nie podano dodatkowych publikacji 4 / 5
Informacje dodatkowe Brak Nakład pracy studenta (bilans punktów ECTS) Forma aktywności studenta Egzamin lub kolokwium zaliczeniowe Udział w wykładach Udział w ćwiczeniach Samodzielne studiowanie tematyki zajęć Przygotowanie do zajęć Sumaryczne obciążenie pracą studenta Punkty ECTS za moduł Obciążenie studenta 2 godz 28 godz 14 godz 25 godz 15 godz 84 godz 3 ECTS 5 / 5