Szyfr Playfaira
Postanowiłem napisać o tym szyfrze ponieważ jest często wykorzystywany w zadaniach i może się komuś przydać.
UWAGA! Szyfr nie szyfruje liczb!
Działanie szyfru:
Szyfr Playfaira nie szyfruje pojedynczych znaków a grupy po dwa znaki, dlatego kodowaną wiadomość dzieli najpierw na grupy po dwa znaki.
UWAGA! Szyfr przyjmuje że wszystkie litery są wielkie!
Jeżeli ma zostać zaszyfrowane "madre slowa"(nie używamy polskich znaków) dostaniemy "MA-DR-ES-LO-WA" (5 grup po dwie litery z pominięciem spacji).
UWAGA! Szyfr przyjmuje że "J"="I"
Dlatego jeśli mamy "Mijamy" po podzieleniu otrzymamy "MI-IA-MY"
Natomiast w przypadku gdy liczba znaków jest nieparzysta, czyli nie da się połączyć w pary liter na końcu ciągu trzeba dopisać dowolny (ale nie losowy) znak, np. "X".
UWAGA! Jeżeli mamy nieparzystą liczbę znaków na końcu dodajemy znak.
Aby była możliwość odszyfrowania obie strony muszą posiadać słowo klucz, może to być dowolne słowo lub ciąg znaków. Obie strony muszą znać słowo/ciąg znaków aby mogły to odszyfrować. Ten klucz jest używany przy kodzie-szyfrowania. Tworzenie kodu szyfrowania to tworzenie kwadratu 5X5 zawierające wszystkie litery angielskie.
Procedura tworzenia klucza-szyfrowania szyfrowania polega na narysowaniu z liter kwadratu.
pierwszymi literami są to litery klucza, bez liter powtarzających się a potem alfabet BEZ POWTÓRZEŃ LITER UŻYTYCH W KLUCZU licząc od ostatniej litery.
UWAGA! Jeżeli w kluczu są powtarzające się litery, wszystkie bez pierwszej będą usunięte.
Jeżeli podczas generowania dalszej części kodu wystąpią znaki z klucza zostaną pominięte.
Kwadrat (kod-szyfrowania) dla słowa "snajper"wygląda tak:
S N A I P
E R T U V
W X Y Z B
C D F G H
K L M O Q
a dla słowa (klucza) "Kłamstwa" przetworzony klucz to "KLAMSTW" więc kwadrat(kod-szyfrowania) będzie wyglądał tak:
K L A M S
T W X Y Z
B C D E F
G H I N O
P Q R U V
Niektórzy uważają że powinno się
zamiast kolejnej litery alfabetu pisać alfabet od początku,
nie polecam wygląda to gorzej(łatwiej i takie jest)
jest łatwiejsze do złamania.
Jednak ważne jest to aby obie strony -
wysyłający wiadomość jak i odbiorca -
mieli ten sam sposób tworzenia kodu-szyfrowania.
zamiast kolejnej litery alfabetu pisać alfabet od początku,
nie polecam wygląda to gorzej(łatwiej i takie jest)
jest łatwiejsze do złamania.
Jednak ważne jest to aby obie strony -
wysyłający wiadomość jak i odbiorca -
mieli ten sam sposób tworzenia kodu-szyfrowania.
Po uzyskaniu kodu-szyfrowania trzeba zaszyfrować już podzielony tekst, który ma zostać wysłany do odbiorcy.
Podział tekstu mamy na górze.
Pobieramy pierwszą grupkę dwóch znaków i kodujemy je kodem-szyfrowym. Polega to na tym aby popatrzeć gdzie znajdują się znaki i na podstawie ich miejsca względem siebie i początku tabeli wybrać litery zastępcze.
Posługując się kodem-szyfrowym koduje się poszczególne litery na podstawie trzech zasad:
S N A I P
E R T U V
W X Y Z B
C D F G H
K L M O Q
1)Jeżeli litery nie leżą w tym samym wierszu i w tej samej kolumnie to na tablicy (kwadracie{z liter}/kodzie-szyfrowym) rysuje się prostokąt, gdzie te dwie litery stanowią przeciwległe wierzchołki, a dwa powstałe wierzchołki to litery zamienne. Litery wymienia się względem osi "x"(w bok{w lewo/prawo} nie względem "y"(góra/dół)).
Tutaj użyjemy słowa "Sole".
A dokładniej pierwszej części tego słowa SO-LE.
A dokładniej pierwszej części tego słowa SO-LE.
S N A I P
E R T U V
W X Y Z B
C D F G H
K L M O Q
S N A I P
E R T U V
W X Y Z B
C D F G H
K L M O Q
S N A I P
E R T U V
W X Y Z B
C D F G H
K L M O Q
UWAGA! WAŻNA JEST KOLEJNOŚĆ PODAWANIA ZNAKÓW!
DLA ODWROTNIE PODANYCH ZNAKÓW WYNIK BĘDZIE ODWROTNY!
DLA ODWROTNIE PODANYCH ZNAKÓW WYNIK BĘDZIE ODWROTNY!
Dlatego gdyby to nie były "SOLE" tylko "OSLY" to nie było by "SO" tylko "OS" czyli po zakodowaniu nie było by "IK" tylko "KI".
2)Jeżeli obie litery są w pionie to na tablicy zaznacza się je, a potem zamienia na literę poniżej konkretnego znaku. W przypadku jeżeli jeden z znaków jest na samym dole to wartość (x-ów) szerokości (odległości od lewego boku) się nie zmienia a wysokość to górny wiersz (górna litera).
Tutaj użyjemy słowa "Ameba".
A dokładniej pierwszej części tego słowa AM-EB-AX.
(Na końcu dopisuje "X" ponieważ jest nieparzysta ilość liter)
A dokładniej pierwszej części tego słowa AM-EB-AX.
(Na końcu dopisuje "X" ponieważ jest nieparzysta ilość liter)
S N A I P
E R T U V
W X Y Z B
C D F G H
K L M O Q
S N A I P
E R T U V
W X Y Z B
C D F G H
K L M O Q
UWAGA! TO ŻE LITERA BYŁA W NIE ZAKODOWYWANYM TEKŚCIE,
NIE PRZESZKADZA ABY BYŁA W ZAKODOWANYM!
NIE PRZESZKADZA ABY BYŁA W ZAKODOWANYM!
Co widać w tej tabelce
3)Jeżeli znaki są w tym samym wierszu (linii poziomej) kodowanie polega na wybraniu znaku po prawej stronie litery. Podobnie do przypadku gdzie znaki były w linii pionowej tu jeżeli znak jest w prawym rzędzie - jego wysokość nie zmienia się jednak znak z zakodowania pobierany jest z lewej krawędzi.
Tutaj użyjemy słowa "IP".
S N A I P
E R T U V
W X Y Z B
C D F G H
K L M O Q
S N A I P
E R T U V
W X Y Z B
C D F G H
K L M O Q
UWAGA! TO ŻE LITERA BYŁA W NIE ZAKODOWYWANYM TEKŚCIE,
NIE PRZESZKADZA ABY BYŁA W ZAKODOWANYM!
NIE PRZESZKADZA ABY BYŁA W ZAKODOWANYM!
Co widać w tej tabelce
Deszyfracja:
Deszyfracja jest dokładnie odwrotną czynnością - pozyskiwaniem początkowej formy.
Polega ona na tym aby dobrze odwrócić lub zastosować warunki. Na początku trzeba poznać klucz i stworzyć TAKI SAM kod-szyfrowy jak przy szyfrowaniu, potem trzeba wziąć do ręki kod (zaszyfrowaną formę) np. "AHNOCEROPNAR" i podzielić na grupki po dwa znaki "AH-NO-CE-RO-PN-AR" i wziąć najpierw pierwszą grupkę, potem drugą, trzecią itd. Z każdą grupką trzeba zrobić to samo, zaznaczyć podane litery (dla grupki pierwszej "AH") i znaleźć jaka jest między nimi zależność i zastosować się do 3 zasad deszyfracji, gdzie jedna jest taka sama jak przy szyfracii.
1)Jeżeli litery nie leżą w tym samym wierszu i w tej samej kolumnie to na tablicy (kwadracie{z liter}/kodzie-szyfrowym) rysuje się prostokąt, gdzie te dwie litery stanowią przeciwległe wierzchołki, a dwa powstałe wierzchołki to litery zamienne. Litery wymienia się względem osi "x"(w bok{w lewo/prawo} nie względem "y"(góra/dół)).
2)Jeżeli znaki są w tej samej kolumnie, to aby zdeszyfrować potrzeba zaznaczyć znaki o jeden wyżej.
UWAGA! TO ŻE LITERA BYŁA W ZAKODOWYWANYM TEKŚCIE,
NIE PRZESZKADZA ABY BYŁA W NIE ZAKODOWANYM!
NIE PRZESZKADZA ABY BYŁA W NIE ZAKODOWANYM!
3)Jeżeli znaki są w jednym wierszu (linii poziomej) to aby odszyfrować je trzeba zaznaczyć znaki o jeden w lewo od znaków zaszyfrowanych.
UWAGA! TO ŻE LITERA BYŁA W ZAKODOWYWANYM TEKŚCIE,
NIE PRZESZKADZA ABY BYŁA W NIE ZAKODOWANYM!
NIE PRZESZKADZA ABY BYŁA W NIE ZAKODOWANYM!
dodoxx6
Ostatnia edycja: