Playfair (Bs BA)

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 2

Playfairova ifra

Engleski naunik i pronalaza Charles Wheatstone je od svog prijatelja Lyon Playfaira dobio zadatak da
osmisli algoritam za ifrovanje teksta kako bi mogao razmjenjivati povjerljive diplomatske informacije.
Wheatstone je dugo razmiljao i na kraju doao na ideju za algoritam na sljedei nain. Ulaz u
algoritam su klju za ifrovanje i tekst koji se ifruje. Na osnovu kljua formira se matrica dimenzija
5x5 i popunjava se slovima iz kljua bez ponavljanja. Ostatak matrice se popunjava ostalim slovima
engleskog alfabeta pri emu su slova i i j ekvivalentna, pa emo umesto slova j uvijek koristiti
slovo i. N.pr. ako je zadani klju sarajevo, onda e matrica za ifrovanje izgledati ovako:
s a r i e
v o b c d
f g h k l
m n p q t
u w x y z
Tekst koji se ifruje prvo je potrebno podijeliti na digrame (grupe od 2 slova). Svaki digram formira
podmatricu u matrici sa ifrovanje (n.pr. digram ab formira podmatricu arob). Nakon toga se nad
svakim digramom primjenjuju sljedea pravila i to datim redoslijedom:
- Ako su oba slova iz digrama ista ili digram sadri samo jedno preostalo slovo, dodaje se slovo
x iza prvog slova i ispred drugog slova, ifruju se dva nova para i nastavlja se. Napomena: U
tekstu za ifrovanje se nee nikada pojaviti dva slova x zaredom, niti e preostalo slovo biti
x.
- Ako se slova pojavljuju u istom redu matrice, ona se zamjenjuju sa slovima koja se nalaze
odmah desno, ali ako se slovo nalazi na kraju reda, onda se zamjenjuje sa slovom sa poetka
reda (n.pr. digram cd se zamjenjuje sa dv).
- Ako se slova pojavljuju u istoj koloni matrice, ona se zamjenjuju sa slovima koja se nalaze
odmah ispod, ali ako se slovo nalazi na dnu kolone, onda se zamjenjuje sa slovom na vrhu
kolone (n.pr. digram mu se zamjenjuje sa us).
- Ako se slova ne nalaze u istom redu i istoj koloni, onda se zamjenjuju sa slovima koja se nalaze
na suprotnoj strani reda podmatrice koju formira digram (n.pr. digram ab se zamjenjuje sa
ro).
Wheatstone je ovaj algoritam u ast svog prijatelja nazvao Playfairova ifra. Va zadatak je da napiete
program koji uitava klju i tekst za ifrovanje, a daje ifrovani tekst. Klju i tekst za ifrovanje e biti
sainjeni samo od malih slova engleskog alfabeta.
Ulaz:
Na prvoj liniji standardnog ulaza nalazi se klju maksimalne duine 1000. Na drugoj liniji nalazi se
tekst za ifrovanje maksimalne duine 10000.
Izlaz:
Na prvoj i jedinoj liniji standardnog izlaza treba ispisati ifrovani tekst.
Ogranienja na resurse
Va program se treba izvravati za ne vie od 1s i ne smije koristiti vie od 32 MiB memorije po
svakom testnom sluaju.
Primjer 1
Ulaz:
sarajevo
sarajevskikiseljak
Izlaz:
ariresfvqcqcaskeig
Objanjenje:
Tekst se dijeli na sljedee digrame: sa ra je vs ki ki se lj ak. Prvi digram sa se
zamjenjuje sa ar (pravilo 2). Drugi digram ra se zamjenjuje sa ir. Trei digram je se zamjenjuje
sa es. etvrti digram vs se zamjenjuje sa fv (pravilo 3). Peti i esti digram ki se zamjenjuju sa
qc. Sedmi digram se se zamjenjuje sa as. Osmi digram lj se zamjenjuje sa ke (pravilo 4).
Deveti digram ak se zamjenjuje sa ig.
Primjer 2
Ulaz:
sarajevo
jojjo
Izlaz:
acryyrbw
Objanjenje:
Kada bi se tekst samo dijelio na digrame, dobili bismo jo jj o. Drugi digram sadri dva ista slova, a
zadnje slovo ne ini digram. Meutim, uvaavajui pravilo 1, dobit emo sljedee digrame: jo jx xj
ox. Sada e mogue izvriti zamjenu kao i u prethodnom primjeru (jo -> ac, jx -> ry, xj ->
yr i ox -> bw).

You might also like