przykładowe rozwiązania
Transkrypt
przykładowe rozwiązania
Jakub Olczyk Koło Naukowe Wolnego Oprogramowania Slimak 1 Historia Kryptografii - Rozwiązania i odpowiedzi Małopolska Noc Naukowców Rozwiązanie zadania 1. Szyfr Cezara Metoda TAJNY JAWNY G A G A G A P A R K Q V U J G P Q O P K Korzystając z podpowiedzi wpisujemy w puste pola w drugim rzędzie litery ’A’. Wiadomo, że szyfr Cezara jest monoalfabetyczny a to oznacza, że każda litera tekstu niezaszyfrowanego odpowiada jedynie jednej literze zaszyfrowanej. Dzięki tej informacji możemy odtworzyć alfabet tajny tego szyfrogramu. Litera ’G’ jest oddalona o 6 liter od litery ’A’, wystarczy więc stworzyć odpowiednią tabelkę z przesunięciem (patrz rysunek 1). Liter szyfrogramu szukamy w wierszu zaczynającym się od litery ’G’, następnie patrzymy jaka litera znajduje sie bezpośrednio nad nią (w kolumnie) i tę literę wpisujemy do tabeli zawierającej szyfrogram. A G B H C I D J E K F L G M H N I O J P K Q L R M S N T O U P V Q W R X S Y T Z U A V B W C X D Rysunek 1: Tabela służąca do rozszyfrowania. Liter szyfrogramu szukamy w drugim rzędzie. Możemy również skorzystać z dysku Albertiego, w takim przypadku należy obrócić wewnętrzną obręcz w taki sposób, aby litera ’G’ znalazła się pod literą ’A’ z dysku zewnętrznego. Następnie odszyfrowujemy sprawdzając jakim literom na zewnętrznym dysku odpowiadając poszczególne litery szyfrogramu (znalezione na dysku wewnętrznym). Spróbujmy wszystkie informacje zapisać jako listę kroków lub algorytm. 1. Znajdź przesunięcie 2. Stwórz tabelę zawierającą dwa wiersze - alfabet jawny oraz alfabet tajny (przesunięty). 3. Rozszyfrowuj dla każdej litery w szyfrogramie, czyli (a) Znajdź literę szyfrogramu w wierszu z alfabetem tajnym (b) Zobacz pod jaką literą się znajduje (w kolumnie) (c) Przepisz odszyfrowaną literę 1 Y E Z F Jakub Olczyk Koło Naukowe Wolnego Oprogramowania Slimak Historia Kryptografii - Rozwiązania i odpowiedzi Małopolska Noc Naukowców Odpowiedzi • GGG PARKQ VUJGP QOPK AAA JULEK PODAJ KIJE • JJJ YAXBCBIN IMJWTX AAA PROSTSZE ZDANKO • NNN XEBJN FCBQ YJBJN AAA KROWA SPOD LWOWA • RRR DRD GZVT IFNVIFN AAA MAM PIEC ROWEROW 2 Jakub Olczyk Koło Naukowe Wolnego Oprogramowania Slimak 2 Historia Kryptografii - Rozwiązania i odpowiedzi Małopolska Noc Naukowców Rozwiązanie zadania 2. Szyfr Vigenère Metoda W dużym skrócie zadanie sprowadza się do rozwiązywania kilku (lub nawet kilkunastu) zadań z szyfru Cezara. Tym razem mamy dostępny klucz, więc wystarczy nam, że wiemy w jaki sposób działa szyfrowanie w algorytmie Vigenère’a. Pierwszym krokiem jest wpisanie hasła-klucza pod szyfrogramem tyle razy ile to możliwe (niekoniecznie musi to być cały klucz!). R H A A K L R O E G K E E N H H C A K L S O Y G X E B N Rysunek 2: Po pierwszym kroku rozszyfrowywania Następnie należy utworzyć alfabety, które odpowiadają poszczególnym literom klucza. W tym przykładzie będą to (w kolejności alfabetycznej): A E G H L N O B F H I M O P C G I J N P Q D H J K O Q R E I K L P R S F J L M Q S T G K M N R T U H L N O S U V I M O P T V W J N P Q U W X K O Q R V X Y L P R S W Y Z M Q S T X Z A ... ... ... ... ... ... ... Procedura rozszyfrowywania jest teraz bardzo prosta - korzystając z liter klucza ustalamy, w którym wierszu będziemy szukać litery, którą chcemy rozszyfrować. Kiedy ją znajdziemy będziemy patrzeć na kolumnę, w której się znajdujemy i patrzeć jakiej literze z pierwszego wiersza odpowiada. Istotne jest więc to aby w pierwszym wierszu znalazł się nieprzesunięty alfabet. Dla przykładu, jeśli chcemy odszyfrować ’R’ zauważamy, że była szyfrowana przez literę ’H’. Patrząc na tablicę w wierszu zaczynającym się od ’H’ odnajdujemy ’R’ i patrzymy co znajduje się w tej kolumnie na pierwszym miejscu - jest to litera ’K’ - czyli ’R’ rozszyfrowane przez ’H’ daje ’K’. Podobnie jak w zadaniu 1 możemy skorzystać z dysku Albertiego, aby uprościć krok w którym należy stworzyć tabelę alfabetów. 3 Jakub Olczyk Koło Naukowe Wolnego Oprogramowania Slimak Historia Kryptografii - Rozwiązania i odpowiedzi Małopolska Noc Naukowców 1. Zapisz hasło-klucz pod szyfrogramem tyle razy ile to możliwe 2. Stwórz tabelę zawierającą wszystkie alfabety zaczynające się od liter klucza, na pierwszym miejscu ma się znajdować alfabet, który nie jest przesunięty 3. Zacznij rozszyfrowywanie każdej litery przy pomocy litery klucza, czyli (a) Znajdź wiersz zaczynający się od litery klucza (b) W wierszu znajdź literę, którą chcesz rozszyfrować (c) Sprawdź jaka litera znajduje się na pierwszym miejscu w tej kolumnie (d) Zapisz tę literę jako niezaszyfrowany tekst Odpowiedzi • RAKRE KEH CKSYXB — HALOGEN KAZDY GRA CZESTO • ECIZGI ZP ZOSPQR — POGANIN POCZTA MA LISCIE • WONAY YOSNV TQIY— INWAZJA OBRAZ POKAZ TRZY • LAXGC UGKA YGSEW — BAGNETY KARTY BIJA STOLY 3 Zadania konkursowe Odpowiedzi • < 7 lat Zadanie identyczne do zadania 1. III SWVSCZMVKRI RMAB EGZWEVIVI AAA KONKURENCJA JEST WYROWNANA • < 13 lat Zadanie identyczne do zadania 2. UCGOEAIFVCA CGQZ WQCSNSCGE KONKURENCJA PIES WYROBIONA — KOTEKJESTTANYMHASLEM 4 Jakub Olczyk Koło Naukowe Wolnego Oprogramowania Slimak Historia Kryptografii - Rozwiązania i odpowiedzi Małopolska Noc Naukowców • 13lat Zadanie jest połączeniem klasycznego szyfru Cezara i szyfru Vigenère. Po rozwiązaniu Cezara (na całym szyfrogramie!) należy skorzystać z klucza który służy do rozszyfrowania ostatniej cześci zaszyfrowanej Vigenèrem. DDDVCFCXUHNUKJNLHFBBQWGH RHGKIEC YYNTDE ZIELONY OGOREK — SZCZUREK 5