Paweł Perekietka
Transkrypt
Paweł Perekietka
Paweł Perekietka nauczyciel w V LO w Poznaniu Informatyka na szachownicy. O szyfrowaniu „Większość szkół prawdopodobnie lepiej by na tym wyszła, gdyby wyrzuciła swoje komputery na śmietnik” Michael R. Fellows, współtwórca projektu „Computer Science Unplugged” Autorzy jednego z podręczników do informatyki do gimnazjum [3] pisali w 2001 roku o potrzebie kształcenia kultury myślenia informatycznego. W przygotowanym przez nich zeszycie ćwiczeń znalazło się wiele zadań, które dobrze ukazywały to, że istotą informatyki (istotą pracy informatyka-naukowca jak i informatyka-praktyka) jest projektowanie rozwiązań problemów związanych z przetwarzaniem informacji, a komputer służy ewentualnie (ze względu na bardzo szybkie wykonywanie bardzo prostych operacji) tylko do realizacji bardziej lub mniej pomysłowych projektów. To były prorocze słowa i prorocze działania. Niewielu nauczycieli (i rodziców) wówczas je rozumiało. O wiele bardziej istotne wydawało się wówczas to, by w szkole pojawiły się nowe komputery! Powszechne było przekonanie: przecież uczniowie zainteresowani informatyką to uczniowie zainteresowani komputerami1. Czy dziś jest lepiej? Niekoniecznie. Rozpoczynający dziś pracę w szkole nauczyciele matematyki (i ich młodsi koledzy i koleżanki – studenci kierunku nauczycielskiego) powinni mieć dużą świadomość tego, że są odpowiedzialni – jakkolwiek to patetycznie zabrzmi – za rozwijanie u uczniów, przez dobór odpowiednich zadań, nie tylko wyobraźni geometrycznej, czy kinetycznej, ale i wyobraźni algorytmicznej. Przychodzi czas na łagodne wprowadzenie do szkół matematyki dyskretnej2. Znakomicie to tego celu nadaje się prosty środek – szachownica. „W swoim życiu miałem niejedną depeszę szyfrowaną w ręku i wiem jak się do niej zabrać. O ile się nie mylę, ta do odczytania będzie wymagała siatki albo szachownicy.” fragment powieści Juliusza Verne’a pt. „Mateusz Sandorf” Szyfrowanie na szachownicy Czy warto uczyć dziś w szkole o szyfrach? Czy można je traktować jako coś więcej niż ciekawostkę historyczną, a najlepszym przypadku element matematyki rekreacyjnej na obozie harcerskim? Otóż warto! W przeciwnym przypadku utrwalać będziemy powszechną dziś ignorancję informatyczną. Na czym polega bezpieczeństwo połączenia ze stroną szkolnego dziennika elektronicznego albo stroną internetową banku? Kryptografia 1 W konsekwencji tematy z algorytmiki traktowane były na lekcjach informatyki w gimnazjum jako „ciało obce”. Trudno się temu dziwić, skoro informatyki rzadko uczą w szkole matematycy. 2 Autor wielokrotnie do tego celu wykorzystywał lekcje-zastępstwa. (szyfrowanie danych) rozwiązuje dwa zasadnicze problemy – zapewnia poufność (tajność) i potwierdzenie autentyczności korespondencji. Nie chodzi o to, by uczniowie poznawali szczegóły techniczne współczesnych metod szyfrowania. Chodzi o zrozumienie logiki bezpieczeństwa połączenia internetowego. Przebieg lekcji 1. Przedstawiamy uczniom problem: bezpieczeństwo połączenia internetowego ze szkolnym dziennikiem elektronicznym (czy stroną WWW banku internetowego). Możemy posłużyć się narracją w rodzaju: Większość młodych ludzi nie okłamuje swoich rodziców. Jednak Jaś (Joasia) wykorzystał(-a) swoje zdolności informatyczne i wprowadził(-a) w błąd swoich rodziców. Mimo że w dzienniku elektronicznym wpisana jest ocena niedostateczna, rodzice zobaczyli inną... Jak tego dokonał(-a)? Udzielamy głosu kilku uczniom. W razie potrzeby stawiamy pytania pomocnicze. Podsumowujemy, formułując dwa wnioski: poufność (tajność) korespondencji można zapewnić szyfrując przesyłane informacje; autentyczność (prawdziwość) serwera da się potwierdzić z użyciem podpisu cyfrowego (certyfikatu). Pytamy uczniów o znane im przykłady klasycznych szyfrów. Jedna z osób może przedstawić konkretny przykład (np. szyfr Cezara czy metoda płotu – znane często wśród uczestników ruchu harcerskiego przykłady szyfrów odpowiednio: podstawieniowego i przestawieniowego). Informujemy uczniów, że w czasie zajęć zapoznają się z jedną z klasycznych metod szyfrowania przestawieniowego zwaną metodą szablonu i określą jej bezpieczeństwo. Podkreślamy, że przykład nie jest celem samym w sobie – chodzi o zrozumienie znaczenia szyfrowania danych dla człowieka w XXI w. w ogólności. 2. Rozdajemy uczniom po dwie kartki w kształcę kwadratu ok. 10 cm 10 cm – uczniowie mogą je sami wyciąć (lub nawet „wydrzeć”) z jednej kartki formatu A4. Polecamy zgiąć każdą z kartek odpowiednią liczbę razy „na pół” tak, aby po rozłożeniu kartki uzyskać „szachownicę” 4 4 (jak na poniższym rysunku). Przedstawiamy przykład szyfrogramu na tablicy (lub z użyciem rzutnika pisma czy rzutnika multimedialnego3) – uczniowie w tym momencie zapisują go wiersz po wierszu na jednej z kartek (jak na powyższym rysunku). Jest praktycznie niemożliwe, aby uczniowie odgadnęli tekst jawny – warto jednak moment poczekać i dać szansę „optymistom”, którzy 3 Przykład „dynamicznej” prezentacji do wykorzystania na lekcji, stworzonej z użyciem narzędzi Google Dokumenty, można odnaleźć pod adresem http://szyfr.jasijoasia.edu.pl/ . mają nadzieję na sukces mimo nieposiadania klucza, używanego do szyfrowania, ani nawet znajomości metody szyfrowania. Wybieramy „ochotnika”, udostępniamy mu szablon (klucza), który był używany do zaszyfrowania informacji i polecamy, by podjął (przy tablicy) próbę wyjaśnienia metody szyfrowania (istotą jest obracanie szablonu o jedną czwartą kąta pełnego), a następnie przystąpił do czynności odwrotnej, czyli odszyfrowania (musi odnaleźć punkt początkowy tekstu oraz wybrać kierunek obracania). Pomagać mogą inni uczniowie (możemy ewentualnie dać każdemu z uczniów szablon, jeśli mieliśmy możliwość przygotowania odpowiedniej liczby – warto je przygotować w wersji sztywnej, by móc wykorzystać wielokrotnie). W tym momencie możemy przedstawić krótko rys historyczny metody [5] (w grupie starszej wiekowo) lub posłużyć się krótkim opowiadaniem (np. o zastępach harcerskich jak w [1]), by ukazać praktyczne zastosowanie metody. 3. Polecamy uczniom przygotowanie własnego szablonu, którym mogliby się posłużyć do utajnienia treści krótkiego tekstu. Uczniowie wykorzystują drugą kartkę – wycinają cztery „okienka” (lub nawet je „wydzierają”). W tym momencie powinny pojawić się pytania uczniów o sposób wyboru „okienek”? Powstrzymujemy się w tym momencie od odpowiedzi na to pytanie – niech uczniowie sami spróbują rozstrzygnąć ten problem, nawet jeśli skończyłoby to niektórych z nich zniszczeniem kartki4… Po wykonaniu szablonu próbują go użyć do zapisania szyfrogramu np. na odwrocie pierwszej kartki. Jeśli zakończy się to sukcesem, uczniowie mogą wymienić się szyfrogramami, aby przekonać się o tym, że treść tekstu rzeczywiście została utajniona (tj. nie można go odczytać bez szablonu). 4. Jeśli czas i możliwości grupy na to pozwalają, to możemy zająć się problemem bezpieczeństwa metod szyfrowania. Stawiamy uczniom problem: jak zmierzyć bezpieczeństwo szyfru? Na przykład szyfru Cezara. Udzielamy głosu kilku uczniom. W razie potrzeby stawiamy pytania pomocnicze. Formułujemy wniosek: miarą bezpieczeństwa metody szyfrowania jest liczba potencjalnych kluczy – odpowiednia ich liczba praktycznie uniemożliwia złamanie szyfru metodą prostego przeszukiwania wszystkich możliwości przez tzw. atak siłowy (ang. brute force). Przystępujemy do określenia stopnia bezpieczeństwa metody szablonu – szukamy odpowiedzi na dwa pytania: ile różnych szablonów można utworzyć na szachownicy 4 4 (i 4 „Okienka” muszą być usytuowane w taki sposób, aby żadne z 16 pół szachownicy nie pojawiało się przy obrocie dwukrotnie ani też nie zostało zapomniane. dalej 8 8 , czy 2n 2n dla dowolnej liczby naturalnej n) i ile jest wariantów zastosowania każdego z nich podczas szyfrowania?5 Odpowiedzi na oba pytania nie są wcale takie banalne. Podsuwamy uczniom pomysł rozwiązania zadania przez zastosowanie zasady „dziel i rządź”, tzn. podział szachownicy na cztery ćwiartki. Odpowiednie ponumerowanie pól szachownicy powinno być wskazówką (jak na rysunku wyżej) do znalezienia odpowiedzi na pierwsze pytanie: 64 (wybór jednego z pól „1” jest punktem odniesienia dla pozostałych i dalej mamy: 4 4 4 – przez wybór każdego „okienka” decydujemy o braku możliwości wykorzystania trzech innych). Niepoprawne odpowiedzi uczniów, które pomijają konieczne założenia albo dodają zbędne założenia (związane z niedostrzeganiem lub przeinaczeniem konsekwencji podziału szachownicy na ćwiartki) służyć mogą do oszacowania poszukiwanej wartości6. Pozostaje odpowiedzieć na pytanie drugie: na ile sposobów można szyfrować używając jednego szablonu? Inaczej mówiąc: ile możliwości musi sprawdzić osoba, która „przechwyciła” szablon? Z tym uczniowie powinni sobie poradzić wcześniej lub później: mamy cztery możliwości dotyczące wyboru miejsca rozpoczęcia odczytywania; można dokonywać obrotu zarówno w kierunku obrotu wskazówek zegara lub w przeciwnym; są dwie możliwości ułożenia szablonu (awers i rewers). Oznacza to, że brak znajomości szablonu oznacza dla osoby ingerującej z zewnątrz i próbującej złamać nasz szyfr, sprawdzanie w najgorszym przypadku 64 16 1024 możliwości (taka jest liczba kluczy szyfru)7. 5. Podsumowując zajęcia, podkreślamy, że siłą metody szyfrowania nie jest tajność (nieznajomość przez „wroga”) metody szyfrowania ale tajność stosowanego klucza. Oznacza to w praktyce potrzebę częstej zmiany klucza, co pociąga za sobą problem przekazywania klucza… To może być punkt wyjścia do sformułowania zadania domowego: w jaki sposób rozwiązuje się problem przekazywania tzw. klucza sesji, który służy przeglądarce 5 6 Inaczej mówiąc: Ilu kluczom szyfrowania odpowiada jeden szablon? Doświadczenie pokazuje, że rysunek może jednak być błędnie interpretowany, tzn. utwierdzić kogoś w przekonaniu, że konieczne jest równomierne rozłożenie po jednym „okienku” w ćwiartkach szachownicy, co w konsekwencji prowadzi do odpowiedzi: 3 x 2 x 1 = 6, co stanowi oszacowanie z dołu. Uczniowie znający pojęcie kombinacji mogą oszacować wartość z góry: 1820. 7 W tym momencie warto rozwinąć analogię: 1024 to liczba 10-bitowa – dla porównania jeden ze współczesnych algorytmów szyfrowania symetrycznego 3DES ma siłę 168 bitów (stan na rok 2012). internetowej do szyfrowania informacji przesyłanych do serwera np. szkolnego dziennika elektronicznego? Młodszym uczniom warto natomiast polecić jako zadanie domowe lekturę opowiadania „Zaszyfrowany rozkaz” z książki W. Wajnerta [1], które kończy się słowami chłopca o imieniu Robert: „Hasło obowiązuje (…) do końca miesiąca.” I znalezienie odpowiedzi na pytania: W jaki sposób zastępowi matematycy rozwiązali problem przekazywania (zapamiętania) klucza? Czy nosili ze sobą szablony? Innym zadaniem domowym może być określenie stopnia bezpieczeństwa oryginalnego szablonu z książki Juliusza Verne’a, który miał kształt szachownicy 6 6 (i dalej 8 8 , czy 2n 2n dla dowolnej liczby naturalnej n). Literatura 1. Inspiracją do napisania opracowania zajęć była książka W. Wajnerta „Przygody z Machefim” (wydanie I w roku 1983, II – rozszerzone w roku 1987). W rozdziale „Zaszyfrowany rozkaz” autor przedstawia krótkie opowiadanie o zastępie harcerzy, którzy po przykrym doświadczeniu, które było skutkiem stosowania naiwnego szyfrowania metodą zapisywania tekstu wspak, wymyślają nowy szyfr – jest to właśnie metoda szablonu w wersji 4 4 . 2. Pomocną w dopracowaniu koncepcji lekcji okazała się książka „Pitagoras bez cyrkla, czyli jak przejść przez pocztówkę” niemieckich autorów A. Beutelsprachera i M. Wagnera, przetłumaczona na język polski w 2010 roku. Z niej zaczerpnąłem np. pomysł wykonania prostej szachownicy przez zginanie kartki (rozdział „Kod hrabiego Sandorfa”). 3. Przedstawiona w scenariuszu metoda (technika) szablonu w wersji 8 8 może być nauczycielom znana z zadania 35. zeszytu ćwiczeń do informatyki w gimnazjum „Internet. Grafika. Algorytmy” autorstwa Edwadra Szczypki oraz Jacka i Romana Urbańców (pracowników Instytutu Informatyki UJ) wydanego w roku 2001. Do książki była dołączona sztywna wkładka pt. „Kwadraty kryptografa”. 4. Zagadnienie przedstawione jest też w oryginalny sposób w przetłumaczonych na język polski w latach 60-tych XX w. popularnonaukowych książkach… radzieckich: „Archimedesowe lato, czyli historia przyjaźni młodych matematyków” S. Bobrowa (tom I, s. 226 i następne) oraz „Szybciej niż myśl” N. Kobrińskiego i W. Pekelisa (s. 10 i następne). 5. Z książki amerykańskiego autora P. Lundego „Tajemnice szyfrów”, przetłumaczonej na język polski w 2009, można dowiedzieć się, że metoda szablonu (matrycy obrotowej) to udoskonalony wariant systemu szyfrowania wymyślonego przez XVI-wiecznego włoskiego matematyka G. Cardano, opracowany w 1880 roku przez emerytowanego austriackiego oficera E. Fleissnera oraz że metoda była stosowana przez kilka miesięcy przez niemiecką armię w czasie I wojny światowej – system służył do szyfrowania meldunków z pola walki, przesyłanych drogą telegraficzną lub przez telefon polowy (podrozdział „Matryce szyfrujące”). Autor składa podziękowania uczniom V Liceum Ogólnokształcącego im. Klaudyny Potockiej w Poznaniu, a zwłaszcza Mateuszowi Wróblewskiemu. Ich dociekliwość i pomysłowość pozwoliły poprawić pierwszą wersję scenariusza.