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