Vigenere šifra je algoritam u kriptografiji koji je izmislio francuski diplomata Blaise de Vigenère 1523 godine.[1] Vigenere je koristio predrad Leone Battista Albertija proširivši njegova istraživanja.[1][2]
Ova šifra se ubraja u algoritam simetričnog ključa sa polialfabetnom supstitucijom znakova.[1]
Osnova Vigenerove šifre je ključna riječ koja je morala biti tajna.[1] Sam algoritam je bio poznat javnosti i prema Kerckhoffov teoremu siguran dokle god je ključna riječ neprijateljskoj strani nepoznata.
Algoritam šifriranja primjenjuje se sljedećim postupkom:
- Svako slovo originalne poruke zamijeni se dvocifrenim brojem ovisno o njegovoj poziciji u abecedi bez obzira da li se radi o malim ili velikim slovima:
- Ključna riječ odnosno ključ zamijeni se također s brojevima na isti način
- Uzima se originalna poruka i dijeli na blokove dužine ključa
- Ključ se piše iznad svakog bloka riječi
- Ključ se sabira cifru po cifru (slovo po slovo) sa originalnom porukom
- Najveći dozvoljeni broj je zamijenjeno slovo na kraju abecede (kod bosanske abecede bi bio Ž=30)
- Ako je rezultat veći od 30 koristi se dijeljenje sa ostatkom kroz 30 ili jednostavnije oduzme se broj 30.
- Brojevi se opet pretvaraju u slova i to je šifrirana poruka.
Algoritam dešifriranja primjenjuje se sljedećim postupkom:
- Šifrirana poruka se zamijenjuje brojevima
- Ključ se oduzima od šifrirane poruke
- Ako je rezultat negativan broj onda se dodaje 30
- Brojevi se zamjenjuju slovima i poruka je dešifrovana
- Poruka koje se treba šifrirati glasi vikipedija
- Ključ glasi ime
- Slova u originalnoj poruci zamijenjuju se brojevima
v |
i |
k |
i |
p |
e |
d |
i |
j |
a
|
28 |
13 |
15 |
13 |
22 |
09 |
06 |
13 |
14 |
01
|
- Ključ se također zamijeni brojevima, nije smetnja što poruka se ne može dijeliti na riječi po tri slova.
i |
m |
e |
i |
m |
e |
i |
m |
e |
i
|
13 |
18 |
09 |
13 |
18 |
09 |
13 |
18 |
09 |
13
|
- Ključ i originalna poruka se sabiraju
Originalna poruka |
28 |
13 |
15 |
13 |
22 |
09 |
06 |
13 |
14 |
01
|
Ključ |
13 |
18 |
09 |
13 |
18 |
09 |
13 |
18 |
09 |
13
|
Rezultat |
41 |
31 |
24 |
26 |
40 |
18 |
19 |
31 |
23 |
14
|
- Budući da neki su neki rezultati veći od 30 taj broj se u tom slučaju oduzima
Rezultat |
41 |
31 |
24 |
26 |
40 |
18 |
19 |
31 |
23 |
14
|
Oduzima se 30 |
11 |
01 |
24 |
26 |
10 |
18 |
19 |
01 |
23 |
14
|
- Brojevi se zamijenjuju opet slovima i poruka je šifrirana:
Šifrovana poruka |
11 |
01 |
24 |
26 |
10 |
18 |
19 |
01 |
23 |
14
|
Šifrovana poruka |
g |
a |
s |
t |
f |
m |
n |
a |
r |
j
|
- Šifrovana poruka se zamjenjuje brojevima
Šifrovana poruka |
g |
a |
s |
t |
f |
m |
n |
a |
r |
j
|
Šifrovana poruka |
11 |
01 |
24 |
26 |
10 |
18 |
19 |
01 |
23 |
14
|
- Oduzima odnosno subtrahira se ključ
Šifrovana poruka |
11 |
01 |
24 |
26 |
10 |
18 |
19 |
01 |
23 |
14
|
Oduzimanje ključa |
13 |
18 |
09 |
13 |
18 |
09 |
13 |
18 |
09 |
13
|
Rezultat |
-2 |
-17 |
15 |
13 |
-8 |
09 |
06 |
-17 |
14 |
01
|
- Budući da su neki brojevi negativni dodaje se 30
Rezultat |
-2 |
-17 |
15 |
13 |
-8 |
9 |
6 |
-17 |
14 |
01
|
Dodaje se 30 |
28 |
13 |
15 |
13 |
22 |
9 |
6 |
13 |
14 |
01
|
- Brojevi se opet zamjenjuju slovima i poruka je dešifrovana
Dešifrovana poruka |
28 |
13 |
15 |
13 |
22 |
09 |
06 |
13 |
14 |
01
|
Dešifrovana poruka |
v |
i |
k |
i |
p |
e |
d |
i |
j |
a
|
Da bi se postupak sabiranja izbjegao i time greške kod šifriranja Vigenere je uveo tzv. Vigenereov kvadrat sa svim mogućim varijacijama.[1] Sabiranje brojeva nije ništa drugo nego pomjeranje jednog slova za određeni broj pozicija u abecedi.[1]