W poprzednim odcinku edyciozaurowych postów [tutaj] poznaliście kilka ciekawych szyfrów. Dzisiaj poznamy kilka innych szyfrów, których używano, kiedy jeszcze ludzie mieszkali w jaskiniach, a księżniczkę można było spotkać zamkniętą w najbliższej wieży, ale też takich bardziej skomplikowanych i wymagających użycia komputera. Nie będą to szyfry proste do użycia, ale bez wątpienia interesujące, bardziej abstrakcyjne niż ostatnio i zdecydowanie mniej znane.
Trochę pogłówkuj
Histiajos, władca greckiego Miletu, chciał wysłać do swojego zięcia sekretny list. Jak to z sekretnymi listami bywa, nie chciał, by jego treść została przechwycona przez Persów. Histiajos był sprytny i wymyślił bardzo oryginalny sposób ukrycia wiadomości – jednemu z niewolników ogolono głowę, na skórze napisano tekst, a gdy włosy odrosły, wysłano go w drogę. Oczywiście jest to sposób bardzo długotrwały i wymagający, ale niezwykle skuteczny. Kto spodziewa się wiadomości pod włosami „listonosza”? 😉
(Oczywiście nie jest to szyfr jako taki, tylko sposób przekazywania tajnych wiadomości, ale tak mi się spodobał, że aż postanowiłam się nim z Wami podzielić.)
Krzyżackie wymysły
Krzyżacy to sprytni byli. Kiedy przesyłali sobie wiadomości, korzystali z szyfru (można się było tego spodziewać, przecież to post o szyfrach). Nie używali jednak ga-de-ry-po-lu-ki ani nie papugowali po Cezarze, tylko wymyślili coś własnego. Na czym to polegało? Obok właściwie zapisanych słów i zdań w tekście pojawiały się fragmenty zakodowane. Wszystkie wyrazy miały na początku i końcu jedną z trzech liter – s, k lub l. Były to sygnały trzech niemieckich czasowników: „swigen” – milczeć, „keren” – obracać i „lesen” – czytać. Słowa z „s” należało całkowicie pominąć, te z „k” były zapisane wspak lub sylabami wspak, a te z „l” były po prostu normalnymi słowami. Szyfr ten był stosowany od 1417 roku przez prokuratora krzyżackiego w kurii papieskiej w Rzymie, Piotra z Ornety. Ten system nie przyjął się jednak na stałe w Zakonie. Po 1419 (czyli już dwa lata później) nie korzystano z niego.
Przykłady
LAGAL | SZUPAS | KGŁOZCK | KZAURCIODYEK |
AGA | (zaczyna się od „s”, więc pomijamy) | CZOŁG | EDYCIOZAUR |
Szyfr Atbash
Jeden z najstarszych szyfrów na świecie. Opracowany już w 500 roku przed naszą erą, czyli nawet przed szyfrem Cezara. Szyfr ten nie jest bardzo skomplikowany. Polega na tym, że literę leżącą na przykład na piątym miejscu od początku alfabetu zastępujemy literą leżącą pięć miejsc od końca tego samego alfabetu, czyli:
AĄBCĆDEĘFGHIJKLŁMNOÓPRSŚTUWYZŹŻ
ŻŹZYWUTŚSRPÓONMŁLKJIHGFĘEDĆCBĄA
Wyrazy zapisane szyfrem Atbash można znaleźć w Starym Testamencie. W Księdze Jeremiasza zaszyfrowano między innymi „Chaldejczycy” oraz „Babilon”. W czasie niewoli babilońskiej zapisywano w ten sposób teksty o antybabilońskim charakterze, dlatego szyfr Atbash był bardzo ważny dla Żydów.
Przykłady
AGA MA CZOŁG
ŻRŻ LŻ YBJŁR
ZUPA POMIDOROWA
BDHŻ HJLÓUJGJĆŻ
Szyfr Ottendorfa – szyfr książkowy
Jak sama nazwa wskazuje, do szyfrowania tym sposobem potrzebna będzie książka. Aby szyfr dobrze działał, szyfrujący i deszyfrujący muszą posługiwać się dokładnie tym samym wydaniem utworu. Książka nie ma znaczenia – może być to nawet zbiór zadań z matematyki lub e-book. Jak to działa? Każda litera w tekście zastępowana jest ciągiem czterech liczb: pierwsza z nich to numer strony, druga to numer wiersza, trzecia to numer wyrazu w wersie, a czwarta to pozycja litery w tym słowie. Można też kodować szybciej i nie szyfrować pojedynczych liter, tylko poprzestać na fazie całych słów.
Ciekawostka: informacje zakodowane w ten sposób odczytywał Sherlock Holmes w powieści „Dolina trwogi” Artura Conan Doyle’a.
Przykład
Naszą książką będzie [ten] e-book. Zakodowana wiadomość to:
2-7-2-1, 4-6-1-5, 5-5-2-8, 6-15-8-2, 7-8-6, 9-2-4-3, 10-5-4-3, 9-1-3-9, 1-1-6-1, 3-5-10-7, 6-1-1-9, 5-2-3-6, 4-2-10-8, 7-7-2-2, 8-3-5-3
Metoda szyfrowania używana w starożytnej Grecji, głównie w Sparcie. Do szyfrowania potrzebna była drewniana laska (najlepiej o podstawie wielokąta – na takiej łatwiej się pisze), na którą nawijano pasek pergaminu. Tekst zapisywano wzdłuż, więc po odwinięciu pergaminu otrzymywano ciąg liter zupełnie pozbawionych sensu. Aby odczytać tekst, wystarczy posiadać laskę o tej samej grubości i nawinąć na nią pergamin.
Przykład
Szyfr Bacona
Szyfr Bacona wykorzystuje jedynie litery „a” i „b”. Po prostu każdą literę zastępuje się pięcioelementowym ciągiem, jak poniżej:
A = aaaaa B = aaaab C = aaaba D = aaabb E = aabaa F = aabab G = aabba H = aabbb I/J = abaaa K = abaab L = ababa M = ababb N = abbaa O = abbab P = abbba Q = abbbb R = baaaa S = baaab T = baaba U/V = baabb W = babaa X = babab Y = babba Z = babbb |
Przykład: AGA MA CZOLG aaaaaaabbaaaaaa ababbaaaaa aaabababbbabbabababaaabba |
ADFGVX
Ten szyfr wykorzystuje kod Morse’a, dlatego może być przydatny w komunikacji na odległość. Wymaga aż dwóch kluczy, więc wydaje się dość bezpieczny.
A D F G V X w kodzie Morse’a zapisujemy kolejno tak:
.- / -.. / ..-. / –. / …- / -..-
Na początku wybieramy pierwszy klucz – ważne, by żadne litery się w nim nie powtarzały. Ja dla przykładu wezmę „FAJNE CZOLGI”. Na początku trzeba stworzyć tabelkę, w której najpierw wpisujemy nasze słowo kluczowe, a później resztę liter alfabetycznie (z pominięciem tych już użytych, ale alfabetem używanym jest alfabet łaciński bez X, V i Q, ale z Ł). Jeśli przez przypadek wybrałeś klucz z literami powtarzającymi się, po prostu pomiń powtórzenia przy wpisywaniu do tabelki.
Każdą literę tekstu szyfrowanego zastępuje się dwoma – najpierw litera kolumny, później wiersza, więc np. A = DA, H = FF, W = XG. Ja zaszyfruję „BLOG NIEWIDZIALNYCH”:
XDFD DD GD XX GA VD VA XG VD AF AD VD DA FD GA AV XA FF
Ale to jeszcze nie koniec. Teraz wybieramy drugi klucz, np. „CUKIER” i zapisujemy wszystkie litery w kolumnach pod kolejnymi literami klucza (w wolne miejsca wpisujemy X), a następnie zamieniamy kolumny alfabetycznie wg liter klucza. Łatwiej zobaczyć to na przykładzie:
Teraz wystarczy już tylko spisać po kolei wierszami litery (oprócz wiersza z kluczem), a następnie przerobić je na kod Morse’a. „Blog niewidzialnych” zostanie w takim razie odebrany przez deszyfratora jako -..- -.. -.. ..-. -.. -.. –. –. -..- -..- .- -.. …- -..- .- …- –. -.. …- .- ..-. .- -.. -.. …- ..-. .- -.. -.. -.. –. -..- …- .- .- .- ..-. -..- -..- -..- -..- ..-., które tenże deszyfrator przerobi na XDDFDDGGXXADVXAVGDVAFADDVFADDDGXVAAAFXXXXF, a następnie wpisze do alfabetycznie uporządkowanej według drugiego klucza tabelki. Później zamieni kolumny tak, by w wierszu pierwszym klucz był w swojej pierwotnej formie i odczyta słowa z pierwszej tabelki stworzonej przy pomocy pierwszego klucza. Skomplikowane, co nie? Daję Wam jednak słowo, że jak dobrze poznacie ten szyfr, będziecie niemalże nierozszyfrowani i to bez użycia komputera! Dlatego jest taki fajny.
RSA
Zdecydowanie najbardziej ciekawymi szyframi są szyfry asymetryczne, to znaczy z kluczem jawnym. We wszystkich poprzednio opisywanych przeze mnie szyfrach, jeżeli znaliście klucz lub metodę szyfrowania, deszyfrowanie nie stanowiło wielkiego problemu. Tutaj jest inaczej. Klucz dzieli się na dwie części – klucz jawny do szyfrowania i klucz tajny do deszyfrowania. Pierwszy z nich może znać każdy, nawet sprzedawczyni z monopolowego pod Twoim blokiem, klucz tajny zna jednak tylko deszyfrator. Nawet szyfrator go nie zna, co czyni tę rodzinę szyfrów idealną dla osobników nieufnych. Wystarczy wygenerować swój klucz prywatny i klucz publiczny dla szyfratorów. Klucz jawny możesz umieścić wszędzie – na oknach swojego bloku, na stronie internetowej lub personalnie wręczyć nadawcy wiadomości. Każdy może teraz zakodować wiadomość z użyciem Twojego kodu, lecz tylko Ty będziesz mógł ją odczytać! Czyż to nie cudowne?
RSA jest właśnie jednym z takich szyfrów. Jest wciąż używany, ponieważ niesamowicie trudno go złamać, zwłaszcza jeśli używa się bardzo dużych liczb, a jest to wysoce zalecane. Powstał w 1977 roku, czyli stosunkowo niedawno, i jest jednym z pierwszych szyfrów asymetrycznych.
Wytłumaczenie RSA w kilku słowach będzie niezmiernie trudne, ale postaram się skrócić to tak, jak tylko można. RSA składa się głównie z kilku liczb:
p, q – dwie duże liczby pierwsze
n = p*q – iloczyn p i q
w = (p-1)(q-1) – iloczyn liczb (p-1) i (q-1)
e – liczba względnie pierwsza z w (to znaczy nie mają żadnych wspólnych dzielników), e powinno być możliwie małe, np. 3 lub 5.
d = e^(-1) mod w – odwrotność e w świecie mod w, to znaczy
e*d mod w = 1.
Zapis „a mod b” oznacza resztę z dzielenia a/b,
np. 5 mod 3 = 2, bo 5 = 3*1 + 2,
44 mod 5 = 4, bo 44 = 5*8 + 4.
m – wiadomość do zaszyfrowania wyrażona liczbą
c – zaszyfrowana wiadomość (również liczba)
Klucz jawny to para liczb (n, e), a klucz tajny to (n, d).
Szyfrować można tylko liczby, ale każdą wiadomość literową można na liczby zamieniać w jakiś określony sposób, na przykład A-1, B-2, C-3 itd.
c = m^e mod n
Deszyfrowanie odbywa się podobnie:
m = c^d mod n
Jeśli nie rozumiesz, o co chodzi ani jak to działa, nie martw się. Niemal cała moja grupa z rozszerzonej informatyki tego nie zrozumiała. Jeśli jednak masz jakieś wątpliwości, postaram się je rozwiać.
Chcesz przekazać Edyciozaurowi swoją tajną wiadomość zaszyfrowaną w RSA?
Możesz ściągnąć odpowiedni program [tutaj], a potem wysłać zaszyfrowaną liczbę w komentarzu pod tym postem lub na blogowego facebooka.
Klucz jawny to (2223383429; 7).
Twoja wiadomość nie może być dłuższa niż 256 znaków (ale staraj się ją skrócić, jak tylko możesz, bo wiadomość 58-znakową rozszyfrowywałam aż 10 minut). Ponadto nie używaj polskich znaków. Na końcu wiadomości naciśnij ENTER. Od dzisiaj będziesz mógł się chwalić kolegom, że szyfrowałeś tajną wiadomość w jednym z najpopularniejszych obecnie szyfrów! Powodzenia! 🙂
Spodobał Ci się ten wpis? Udostępnij go na Facebooku!
Polub nas na Facebooku i obserwuj na instagramie, by nie przegapić kolejnych wpisów.
71975398
1647530131
563301099
2036582687
214207074
1760087989
772936771
931171637
1762013759
1260410781
534914535
721793119
1811805353
1063234552
526303440
PolubieniePolubienie
Hahahahaha xD
PolubieniePolubienie
664061831
1144667686
1173904373
424274525
863320479
2111693950
786278842
1734851996
24182893
704176028
1268908695
1063280014
1339147816
648064537
548863189
1101845995
PolubieniePolubienie
Pewnie, tylko załatw sam-wiesz-co 😉
PolubieniePolubienie
@Henry McIntire
Spodziewałem się RickRolla pod tym linkiem.
@AdamAdamMovie
Ja bym nie poszedł
@edyciozaur
W końcu!
PolubieniePolubienie
Pingback: O szyfrach słów kilka | Blog Niewidzialnych