Szyfr Playfaira

dodoxx6

Były Moderator
Dołączył
Luty 15, 2011
Posty
252
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.​


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.


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
Z tego wynika że SO-reszta wyrażenia po zakodowaniu będzie wyglądał tak"IK".


UWAGA! WAŻNA JEST KOLEJNOŚĆ PODAWANIA ZNAKÓW!
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)



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
Jak wynika z przedstawionych tabelek "AM" zmienia się na "TA".

UWAGA! TO ŻE LITERA BYŁA W NIE ZAKODOWYWANYM TEKŚCIE,
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
Teraz widać że z skrótu "IP" powstał ciąg znaków "PS".
UWAGA! TO ŻE LITERA BYŁA W NIE ZAKODOWYWANYM TEKŚCIE,
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!​


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!​


dodoxx6
 
Ostatnia edycja:

dodoxx6

Były Moderator
Dołączył
Luty 15, 2011
Posty
252
Kolejny wieczór z chwilą czasu. Postanowiłem znów coś napisać/poprawić. Więc poprawiłem mój stary tutorial, w zasadzie to tylko go pokolorowałem, ale znacznie poprawiło to czytelność materiału.
Sam tutorial powstał wtedy, kiedy kolorów używać nie mogłem. Ale nie będę wdawał się w szczegóły.
Wiem, że niektóre rzeczy zostawiają wiele do życzenia, ale zostawiam go w tej pierwotnej formie. Proszę zarazem, aby deszyfracji się nie czepiać, wiem, że można by ją znacznie poprawić.
 
Do góry Bottom