Szyfrowanie RSA (Podróż do krainy kryptografii) Nie bójmy się programować z wykorzystaniem filmów Academy Khana i innych dostępnych źródeł oprac. Piotr Maciej Jóźwik
Wprowadzenie metodyczne Realizacja w zakresie rozszerzonym liceum ogólnokształcącego zgodnie z podstawą programową 5. Rozwiązywanie problemów i podejmowanie decyzji z wykorzystaniem komputera, stosowanie podejścia algorytmicznego. Uczeń: 11) opisuje podstawowe algorytmy i stosuje: e) algorytmy kompresji i szyfrowania, np. - szyfr z kluczem jawnym (RSA) - wykorzystanie algorytmów szyfrowania np. w podpisie elektronicznym Realizacja w gimnazjum ze zdolnymi uczniami lub w ramach zajęć dodatkowych - użycie gotowego schematu szyfrowania bez zagłębiania się w szczegóły - wykorzystanie gotowych programów do tworzenia kluczy i szyfrowania wiadomości
Zacznijmy od Khan Academy Protokół Diffiego Hellmana (2:25)* Szyfrowanie RSA 1 (4:03) Szyfrowanie RSA 2 (2:32) Szyfrowanie RSA 3 (3:04) Funkcja Eulera (2:24)* Szyfrowanie RSA 4 (5:04)
Współtwórcy asymetrycznego algorytmu szyfrującego (1977r.) Ronald Linn Rivest (ur. 6 maja 1947 r. w Schenectady - Nowy Jork) informatyk, kryptograf pracuje na stanowisku profesora informatyki uniwersytetu Massachusetts Institute of Technology Adi Szamir (ur. 6 czerwca 1952 r. w Tel Awiwie) izraelski informatyk i kryptograf, profesor informatyki w 1973 r. ukończył matematykę na Uniwersytecie Telawiwskim oraz informatykę w Instytucie Nauki Weizmanna w Rechowot z tytułem doktorskim pracował i wykładał na University of Warwick, Massachusetts Institute of Technology oraz École Normale Supérieure w Paryżu Leonard Adleman (ur. 31 grudnia 1945 r.) amerykański profesor nauk informatycznych oraz biologii molekularnej na Uniwersytecie Południowej Kalifornii studia ukończył w 1968 roku na Uniwersytecie Kalifornijskim w Berkeley, a doktorat obronił w 1976 roku w 1994 roku opublikował artykuł Obliczenia molekularne w rozwiązaniach problemów złożonych, w którym przedstawił sposób użycia molekuł DNA w systemach obliczeniowych W 2002 roku wszyscy trzej naukowcy otrzymali Nagrodę Turinga - zwaną również Noblem nauk informatycznych
Schemat użycia szyfru RSA NADAWCA ODBIORCA klucz publiczny (n, e) klucz prywatny (n, d) tekst jawny M algorytm szyfrujący C = M e mod n tekst zaszyfrowany C algorytm deszyfrujący M = C d mod n tekst jawny M
Generowanie kluczy (prywatnego i publicznego) etap I 1. Wybieramy losowo dwie duże liczby pierwsze p 1 i p 2 o zbliżonej długości bitów (po ok. 200 cyfr w zapisie dziesiętnym) 2. Obliczamy wartość n = p 1 p 2 3. Obliczamy wartość funkcji Eulera dla liczby n: φ(n)=(p 1-1) (p 2-1) 4. Wybieramy liczbę e (1 < e < φ(n)) względnie pierwszą z φ(n) 5. Znajdujemy liczbę d, gdzie jej różnica z odwrotnością liczby e jest podzielna przez φ(n), czyli d e 1 (mod φ(n)) lub e d 1 (mod φ(n)) p 1 = 11 p 2 = 13 n = 143 φ(143) = 120 przyjmijmy e = 7 7d 1 (mod 120) np. d = 103 Kluczem prywatnym jest para liczb (n, d) Kluczem publicznym jest para liczb (n, e) (143, 103) (143, 7) niszczymy liczby p 1 i p 2
Szyfrowanie wiadomości etap II 1. Wybieramy liczbę naturalną M (M < n) odpowiadającą np. literom z przypisanym kodem ASCII Literze Q odpowiada M = 81 2. Obliczamy wartość: C = M e mod n C = 81 7 mod 143 C = 81 1 81 2 81 4 mod 143 C = (81 1 mod 143) (81 2 mod 143) (81 4 mod 143) 81 1 mod 143 = 81 mod 143 = 81 81 2 mod 143 = 6561 mod 143 = 126 81 4 mod 143 = (81 2 mod 143) 2 mod 143 = 126 2 mod 143 = 15876 mod 143 = 3 C = (81 126 3) mod 143 3. Wysyłamy wartość C C = 16
Odszyfrowywanie kryptogramu etap III 1. Otrzymujemy wiadomość C 2. Obliczamy wartość: C = 16 M = C d mod n 3. Odczytujemy dla liczby naturalnej M z tablicy kodów ASCII literę M = 16 103 mod 143 M = 16 1 16 2 16 4 16 32 16 64 mod 143 M = (16 1 mod 143) (16 2 mod 143) (16 4 mod 143) (16 32 mod 143) (16 64 mod 143) 16 1 mod 143 = 16 mod 143 = 16 16 2 mod 143 = 256 mod 143 = 113 16 4 mod 143 = (16 2 mod 143) 2 mod 143 = 113 2 mod 143 = 12769 mod 143 = 42 16 8 mod 143 = (16 4 mod 143) 2 mod 143 = 42 2 mod 143 = 1764 mod 143 = 48 16 16 mod 143 = (16 8 mod 143) 2 mod 143 = 48 2 mod 143 = 2304 mod 143 = 16 16 32 mod 143 = (16 16 mod 143) 2 mod 143 = 16 2 mod 143 = 113 16 64 mod 143 = (16 32 mod 143) 2 mod 143 = 113 2 mod 143 = 42 M = (16 113 42 113 42) mod 143 Liczba M = 81 oznacza literę Q
Zastosowania Bezpieczne połączenie internetowe zarządzanie kontami bankowymi, działalność handlowa (e-sklepy), dokonywanie zakupów przy użyciu kart płatniczych 1. Wygenerowanie zestawu kluczy RSA przez obie stacje 2. Wymiana stacji kluczami publicznymi służącymi do szyfrowania przesyłanych wiadomości 3. Wysyłane wiadomości stacje szyfrują przy pomocy otrzymanego klucza publicznego 4. Odebrane wiadomości stacje rozszyfrowują przy pomocy swojego klucza prywatnego Podpis elektroniczny PGP (Pretty Good Privacy całkiem niezła prywatność) 1. Stacja A szyfruje wiadomość W za pomocą swojego klucza tajnego otrzymanego od instytucji przydzielającej certyfikaty i szyfr dołącza do tej wiadomości 2. Nowa wiadomość W (jednoznacznie identyfikowana) składa się z oryginalnej wiadomości W oraz jej zaszyfrowanej kopii i zostaje przesłana do stacji B 3. Stacja B rozszyfrowuje (po potwierdzeniu) kopię kluczem publicznym stacji A 4. Stacja B porównuje obie części wiadomości W' (w przypadku, gdy są identyczne, to rzeczywiście pochodzą od stacji A)
Zamiast bibliografii więcej informacji o szyfrowaniu, nie tylko RSA 1. Serwis Edukacyjny Nauczycieli I LO im. K. Brodzińskiego w Tarnowie (eduinf.waw.pl) 2. Opracowania o RSA i PGP Co to jest?
Maszyna szyfrująca Enigma 3. Wirtualna maszyna szyfrująca Enigma a) http://enigmaco.de/enigma/enigma_pl.html b) http://www.wykop.pl/ramka/1360007/witrualna-enigma/ materiał dla nauczyciela materiał dla ucznia
ZADANIE DO ROZWIĄZANIA Zaszyfruj RSA dowolne słowo (np. 3 literowe), a następnie prześlij kryptogram do drugiej osoby, która powinna go rozszyfrować. W tym celu wykorzystaj następujące materiały: 1. Tablica kodów ASCII 2. Program do szyfrowania i deszyfrowania RSA z podręcznika WSiP Informatyka cz. 1 pod redakcją M. Sysły 3. Serwis edukacyjny nauczycieli I LO im. K. Brodzińskiego w Tarnowie o szyfrowaniu RSA Kot lub KOT