KISS - Predavanje 3 i 4 - Nepreradena Verzija
description
Transcript of KISS - Predavanje 3 i 4 - Nepreradena Verzija
ELEKTROTEHNIČKI FAKULTET UNIVERZITET U SARAJEVU
Odsjek za telekomunikacije
MSc studij, I godina
Predmet: Kriptografija i sigurnost sistema
Predavač: R. Prof. Dr Narcis Behlilović, dipl. ing. el
- PREDAVANJE 3/4 – **NEPRERAĐENA VERZIJA – slijedi dopunjena formatirana verzija sa slikama
1.1.1 Algoritmi bazirani na supstitucijskim šiframa
Algoritmi bazirani na supstitucijskim šiframa (Substitution Cipher)
zahtjevaju da pošiljalac svaki simbol (slovo) izvornog teksta, zamjeni
odgovarajućim simbolom šifrata, dok primalac zamjenjuje svaki simbol
šifrata odgovarajućim simbolom izvornog teksta. Sa stanovišta klasične
kriptografije postoje bar četiri vrste supstitucijskih šifri:
Obična supstitucijska šifra (Simple Substitution) ili monoalfabetska
šifra (Monoalphabetic Cipher) su šifre u kojim je svako slovo izvornog
teksta zamjenjeno odgovarajućim slovom šifrata. Kriptogrami u
enigmatskim časopisima su primjeri monoalfabetskih šifara.
Homofonična supstituciona šifra (Homophonic Substitution Cipher),
je slična običnoj supstitucijskoj šifri, s tim što jednom simbolu
izvornog teksta moze odgovarati bilo jedno, bilo dva, ili pak čak
nekoliko simbola u šifratu (A moze u šifratu biti ili 3, ili 35, ili 356..)
Poligramska supstituciona šifra (Polygram Substitution Cipher),
blokove simbola izvornog teksta, preslikava u odreĎene blokove
šifrata (abc u xyz, aca u klm,.....)
Polialfabetska substituciona šifra (Polyalphabetic Substitution
Cipher), objedinjava više običnih supstitucijskih šifri iz različitih
abeceda.
Primjer obična supstitucijske šifre je Cezarova šifra (Caeser Cipher) kod
kojeg se unutar alfabeta od 26 slova, svaki simbol izvornog teksta
zamjenjuje simbolom istog alfabeta, koji je u odnosu na simbol izvornog
teksta, pomaknut za tri mjesta udesno - tabela broj 1.
Tabela broj 1.
Izvorni A B C D E F G H I
Šifrat D E F G H I J K L
Cezarova šifra je primjenjivana i sa pomakom udesno većim od tri. Na
ovaj način je moguće napraviti 26 različitih verzija ključa (26 načina
pomaka simbola šifrata u odnosu na simbole izvornog teksta).
Prije uopštene definicije familije algoritama, koji ishodište imaju u
Cezarovoj šifri, uspostavlja se korespondencija izmeĎu 26 slova engleskog
alfabeta i skupa brojeva Z26 = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ...23, 24, 25}.
Zatim se pretpostavlja da su na skupu Z26 definisane operacije sabiranja,
oduzimanja i mnozenja, na isti način kao i u skupu cijelih brojeva, uz
obavezu da ako je rezultat provedene operacije imao za posljedicu da se
dobije broj koji nije element skupa Z26 , tada se taj rezultat zamjenjuje s
njegovim ostatkom koji nastaje nakon djeljenja tog rezultata s brojem 26.
Nametnute operacije se formalno iskazuju u obliku:
(c +26 d) ili (c+d) mod26
(2.10)
Prema prethodno izlozenom proizilazi da je: (10 +26 22) = 32-26 = 6 , a
(10 --26 22) = -12+26 = 14 .
Očigledno je da se slično provode i operacije, i oduzimanja i mnozenja.
S obzirom da skup Z26 , zajedno sa operacijama (+26) i (٠26), zadovoljava
sve one matematičke aksiome, koji su potrebni da bi ureĎena trojka
(Z26, +26, ٠26 ) imala status algebarska struktura tipa prsten:
Operacije (+26) i (٠26), nad elementima skupa Z26, su zatvorene
(njihovom primjenom nad elementima skupa Z26, dobija se ponovo
element istog tog skupa,
Operacije (+26) i (٠26), nad elementima skupa Z26, su komutativne i
asocijativne, jer su u vaznosti relacije:
( a (+26) b) = ( b (+26) a) ;
(a(٠26)b) = (b(٠26)a);
(( a (+26) b) (+26) c)= (a (+26) ( b (+26) c));
((a(٠26)b) (٠26) c)= (a(٠26) (b(٠26)c));
Uz to u vaznosti je i distributivnost operacije mnoţenja u odnosu
na operaciju sabiranje, dakle vrijedi relacija:
(( a (+26) b) (٠26) c)= (a (٠26) c) +26 (b (٠26) c));
Broj 0 je neutralni element u odnosu na operaciju sabiranja, jer je:
( 0 (+26) b) = ( b (+26) 0) = b ;
Svaki element skupa Z26, a, ima sebi inverzan element u odnosu
na operaciju sabiranja, iz tog istog skupa, a to je element (-a),
dakle vrijedi:
(( a (+26) (-a) = 0, pri čemu je za a≠0, inverzni element definisan sa
(26-a), jer je (( a (+26) (26-a) = (( 26-a) (+26) (a)) = 26mod 26 = 0
Broj 1 je neutralni element u odnosu na operaciju mnoţenje, jer je:
( 1(٠26) b) = ( b (٠26) 1) = b ;
Samo neki elementi skupa Z26, b, imaju sebi inverzan element u
odnosu na operaciju mnoţenje, iz tog istog skupa i to je element (b-
1), kada vrijedi da je:
((b-1
), (٠26) b) = ( b (٠26) (b-1
), ) = 1 ;
Za razmatranja koja tek predstoje, korisno je uvesti i pojam
kongruentnih elemenata po modulu 26. Elementi: (a є Z26 ) i (b є Z26) su
kongruentni po modulu 26, ukoliko i a i b nakon djeljenja po modulu
26 imaju isti ostatak, što se simbolički označava sa:
a ≡ b (mod 26)
U skladu sa prethodno izlozenim Cezarova šifra se moze
definisati i na slijedeći način:
Neka je: M = C = K = Z26 .
Za 0 ≤ K ≤ 25, eK (x) = ( x + K ) mod 26 , a dK (y) = ( y - K ) mod 26 , gdje
ključ K određuje za koliko mjesta udesno će se pomicati slova pri
šifriranju.
Primjer broj 2: Ako je šifrat K F P Z Q Y J Y, formiran primjenom
jedne varijante Cezarove šifre, odrediti prvo upotrebljeni ključ K, a
potom i sam izvorni tekst.
K F P Z Q Y J Y
J E O Y P X I X
I D N X O W H W
H C M W N V G V
G B L V M U F U
F A K U L T E T
ROT 13 je jedan od jednostavnih programa za šifrovanje, što se koristi
u UNIX sistemima, a pripada klasi običnih supstitucionih šifara (svako
slovo se pomjera za 13 mjesta udesno A prelazi u N, D u Q....).
Originalni element se dobije šifrovanjem dva puta sa ROT13, dakle
M = ROT13(ROT13(M))
Suštinski ROT13 nije izvorno namjenjen sigurnosti nego da se
potencijalno uvredljiv tekst sakrije od šireg kruga.
Dobar računarski algoritam za razbijanje šifara ovog tipa je dat u radu
G.W. Hart “To Decode Short Cryptograms“, Communications of the
ACM, v.37, n.9, Sep 1994, pp. 102-108.
Nije teško primjetiti da koncept obične supstitucionalne šifre,
kada se primjeni na engleski alfabet, omogućava kriptologu da
razotkrije izvorni tekst u relativno kratkom vremenu.
Nešto više sigurnosti nudi šifriranje pomoću linarne (afine)
funkcije, kada su postupci šifriranja i dešifriranja odreĎeni relacijama:
eK (x) = (a٠ x + b )mod 26; dK (y) =a-1
٠ ( y - b ) mod 26
(2.11)
koje se mogu uspostaviti samo za one vrijednosti parametra a, za koje
postoji multiplikativni inverz na skupu Z26 (dakle parametar a mora
biti relativno prost s modulom 26).
Afina šifra se stoga definiše na slijedeći način:
Neka je: M = C = Z26 , te neka je Қ = {(a, ) є Z26 x Z26 : (a,26)=1}
Za K = (a,b) є Қ definiše se da je:
eK (x) = (a٠ x + b ) mod 26 , odnosno dK (y) = a-1
٠ ( y - b ) mod 26
Nije teško provjeriti da je:
dK ( eK (x) ) = dK ( a٠x +b )= a-1
٠ ( a٠x +b - b ) = x
pri čemu se brojne vrijednosti za a, biraju tako da je najveći zajednički
djelitelj za takvo a є Z26 i broja 26, jednak broju 1 (formalno se to
označava s ( a, 26 ) = 1). Ti brojevi a, zajedno s njihovim
multiplikativnim inverzima a-1
na skupu Z26 , sadrţani su u tabeli broj
2, koja slijedi:
Tabela broj 2
a 1 3 5 7 9 11 15 17 19 21 23 25
a-1
1 9 21 15 13 19 7 23 11 5 17 25
S obzirom na ovih dvanest parova, koji su osnova za odreĎivanje
ključeva u afinoj šifre, omogućava 12٠26 = 312 mogućih ključeva
(dvanest parova (a) i (a-1
) iz tabele broj 2, te 26 vrijednosti parametra
b, definisanih elementima skupa Z26).
Primjer broj 3: Šifrirati afinom šifrom, izvorni tekst S A R A J E V O,
uz upotrebu ključa K = ( 7, 9 ).
U tabeli broj 3, dat je jedan odnos izmeĎu slova engleskog alfabeta i
brojeva iz prethodno definisanog skupa Z26.
Tabela broj 3
A B C D E F G H I J K L M N O p Q
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
R S T U V W X Y Z
17
18 19 20 21 22 23 24 25
Na osnovu zadatog ključa proizilazi da su vrijednosti karakterističnih
parametara a i b u linearnoj transformaciji:
eK (x) = (a٠ x + b ) mod 26
odreĎene sa relacijama: a = 7 i b = 9, Prema tablici broj 3, slovu S
odgovara numerički ekvivalent 18, unutar skupa Z26. Stoga je moguće
pisati da je:
y = eK (S) = (a٠18 + b ) mod 26 = (7٠18 + 9 ) mod 26 = 135 mod26
S obzirom da je 135 ≡ 5 (mod 26), osnovano je pisati da je: y = eK (S) =
F. Na sličan način se pokaze da je:
y = eK (A) = J; y = eK (R) = Y; y = eK (J) = U; y = eK (E) = L;
y = eK (V) = A; y = eK (O) = H,
odnosno da je šifrat, dobijen kada se na izvorni tekst S A R A J E V O,
primjeni postupak kriptografske supstitucije, zasnovan na linearnoj
transformaciji i ključu K = ( 7, 9 ), jednak F J Y J U L A H. Provjera
ispravnosti provedenog postupka šifriranja, najlakše se ostvaruje
dešifriranjem putem relacije:
dK ( eK (x) ) = dK ( a٠x +b )= a-1
٠ ( a٠x +b - b ) mod 26 = x
dK ( eK (x) ) = 15 ٠ ( 7٠x +9 - 9 ) mod 26 = x;
za eK (S) = F→ dK ( (F) ) = 15٠( 5 - 9 ) = 15٠(- 4 ) mod 26
(15٠(- 4 )) mod 26 = (15٠ (26 – 4 )) mod 26 = ( 15٠(22 )) mod 26
(15٠(- 4 )) mod 26 = 330 mod 26 = 18 mod 26
18 (mod 26) → x = S;
Na sličan način se pokazuje i da je za eK (x) = J
dK ( (J) ) = 15٠( 9 - 9 ) = 15٠(0) mod 26 = 0;
0 (mod 26) → x = A;
Odnosno da je za eK (x) = Y
dK ( (Y) ) = 15٠( 24 - 9 ) = 15٠(15) mod 26 = 225 mod 26;
225 ≡ 17 (mod 26)
17 (mod 26) → x = R;
Nadalje je i za eK (x) = U
dK ( (U) ) = 15٠( 20 - 9 ) = 15٠(12) mod 26 = 165 mod 26;
180 ≡ 9 (mod 26)
9 (mod 26) → x = J;
Kao i za eK (x) = L
dK ( (L) ) = 15٠( 11 - 9 ) = 15٠(2) mod 26 = 30 mod 26;
30 ≡ 4 (mod 26)
4 (mod 26) → x = E;
Slično tome i za eK (x) = A
dK ( (A) ) = 15٠( 0 - 9 ) = 15٠(17) mod 26 = 30 mod 26;
255 ≡ 21 (mod 26)
21 (mod 26) → x = V;
Konačno za eK (x) = H
dK ( (H) ) = 15٠( 7 - 9 ) = 15٠(-2) mod 26 = 15٠( 26 - 2 ) mod 26 =
dK ( (H) ) = 360 mod 26;
340 ≡ 14 (mod 26)
14 (mod 26) → x = O;
Cezarova i afina šifra, specijalni su slučajevi - primjeri - supstitucijske
šifre, koja je generalno definisana na slijedeći način:
Neka je: M = C = Z26 i neka se prostor ključeva Қ sastoji od svih
permutacija skupa: Z26 = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ...23, 24, 25}. Za svaku
permutaciju p є Қ definiše se:
ep (x) =p ( x ) , odnosno dp (y) = p-1٠( y )
pri čemu je p-1
, inverzna permutacija od permutacije p.
S obzirom da je na skupu Zp = Z26 , prema prethodnoj definiciji,
moguće generisati p! = 26! = 4 ٠1026
= 2 62
različitih ključeva, u tom
slučaju napad na šifrirani tekst, postupkom potpune provale (Brute-
Force Attack - postupak grube sile ≡ potpuna provala), čak i uz
upotrebu računara je teško ostvarljiv.
Supstitucijske šifre se meĎutim mogu razotkrivati i znatno
jednostavnije, a to znači i mnogo brţe, nego u slučaju kada se koristi
postupak grube sile – dakle pretraţivanje cijelog prostora ključeva (2 62
različitih ključeva). Naime dovoljno je odgonetnuti na kojem jeziku se
komunicira, a potom saznati i vlastitu frekventnu raspodjelu simbola u
tom jeziku. Korisno je poznavati i najčešće bigrame i trigrame tog
jezika, pa je većina posla u dešifrovanju učinjena. U engleskom jeziku
najčešće je slovo e, zatim slijedi slovo t, pa slovo a , kao što je to
prikazano u tabeli broj 4. Tabela broj 4 daje frekvenciju simbola
engleskog jezika u procentima prema radu H. Beker i F. Pajper
„Cipher Systems:The Protection of Communication“
Tabela broj 4
A B C D E F G H I J K L M N O p Q
8.2 1.5 2.8 4.3 13 2.2 2.0 6.1 7.0 0.2 0.8 4.0 2.4 6.7 7.5 1.9 0.1
R S T U V W X Y Z
6.0 6.3 9.1 2.8 1.0 2.4 0.2 2.0 0.1
U engleskom jeziku najčešći bigrami su: th (3,2%), he (2,5%), an,
in,..
Najčešći trigrami istog jeziku su: „the“ i „and“. Na osnovu ove
spoznaje, u nekom šifrovanom tekstu, kojeg se uspjelo samo djelomično
dešifrirati, na osnovu Lhe i aPV, ispituje se imali li smisla nastavak
dešifrovanja ostvariti uz relacije: L≡T, P≡n, te V≡d.
Najčešći bigram hrvatskoj jezika je „je“ iako „j“ nije meĎu
najfrekventnijim slovima. Najfrekventniji trigram hrvatskog jezika je
„ije“ (0,6%).
Postoje dokazi, da se je za poboljšanje otpornosti na neţeljeno
dešifrovanje, još 1401 godine, umjesto običnog supsticijskog šifriranja,
koristilla homofobična supstituciona šifra (homos-isti; fonos-zvuk). Kod
homofobične supstitucione šifre, simbol izvornog teksta se zamjenjuje
sa jednim ili više simbola šifrata ( mogu biti i preslikavanja slova u
brojeve) da bi se bolje sakrile statističke osobine upotrebljenog jezika.
Pošto ni ovaj pristup ne sakriva dovoljno statističke osobine korištenog
jezika, onda se i ovakav pristup relativno lako provaljuje napadom tipa
„poznat otvoreni tekst“ ili pak napadom tipa “poznat samo šifrat“.
Koliko se pojedinom slovu upotrebljenog alfabeta izvornog teksta, u
smislu njegovog ekvivalenta, treba upravo pridruţiti simbola šifrata,
zavisi od primjenjenog algoritma. Algoritam moţe biti zasnovan na
statistici frekvencije pojavljivanja odreĎenog simbola izvornog teksta,
unutar tekstova zasnovanih na matičnom alfabetu.
U tom smislu, ako je (prema raspozivoj tabeli broj 4) u engleskom
jeziku slovo „a“ zastupljeno sa udjelom od oko 8%, tada se moţe
odabrati opcija da se to slovo u šifratu zamjeni sa jednim slovom, iz
odabrane povorke od 8 simbola, (dakle prvi put u izvornom tekstu
slovo „a“ se zamjenjuje sa prvim simbolom tog oktograma, drugi put sa
slovo „a“ zamjenjuje sa drugim slovom iz istog oktograma i nakon
osmog pojavljivanja i supstitucije slova „a“ osmim slovom predmetnog
oktograma, procedura se ponavlja). Slovo „b“ je zastupljeno sa
udjelom od oko 2%, pa se moţe odabrati opcija da se u šifratu „b“
zamjeni sa jednim slovom, iz odabrane povorke od 2 simbola, pri čemu
se pri prvom pojavljivanju slova „b“ koristi za supstituciju prvo slovo
bigrama, a pri drugom pojavljivanju slovo“b“ se zamjenjuje sa drugim
slovom bigrama. Odabrani pristup ima za posljedicu da se u šifratu
razbija statistička frekventna zakonomjernost pojavljivanja simbola,
usaglašena sa izvornim alfabetom.
Homofobična šifra je značajno pouzdanija od obične
supstitucijske šifre, ali i ona nije nesavladiva za sposobne
kriptoanalitičare. To se spoznalo još u Srednjem vijeku, pa je nakon
više dobrih rješenja (poput velike šifre kralja Luja XIV, koja je
generisana u XVII stoljeću, a ipak ostala neprovaljena gotovo dva
vijeka, zatim sistema Crne komore na bečkom dvoru u XVIII
stoljeću....), ostvareni uspjeh kriptoanalitičara i tehnološki napredak u
XIX vijeku (iskazan i praktičnom pojavom telegrafa 1839 godine
(Vinston-Kukov sistem, Charles Wheatstone (1802-1875) i potrebom da
se komunikacija putem istog bolje zaštiti) natjerao kriptografe da u
praksi masovnije počnu koristiti polialfabetsku Viţnerovu šifru
(francuski diplomata Blaise de Vigenere (1523-1596)).
Idejni začetnik Viţnerove šifre bio je talijanski matematičar
Alberti ( Leon Battista Alberti, 1404 - 1472 ) još u XV vijeku, kada je
predloţio da se umjesto uobičajne monoalfabetske supstitucije, koristi
dva ili više različitih alfabeta, koje koristimo naizmjenično, čime se
postiţe da se isto slovo izvornog teksta ne pojavljuje uvijek i kao isto
slovo kriptograma. Sa idejama Albertija i onih koji su ih pokušavali
dalje razraĎivati (Johan Tritemius, Giovani Porta...) Viţner se susreo
oko 1550 godine, tokom diplomatskog rada u Rimu.
Opsjednut kriptografskim tajnama, a materijalno obezbjeĎen,
napustio je diplomatsku sluţbu i posvetio se samo kriptografiji. Tvorac
je Viţnerovog kvadrata prikazanog u tabeli broj 5, koji se sastoji od
početnog alfabeta i 26 šifrovanih alfabeta, koji su nastali tako da je
svaki naredni alfabet u stvari rezultat jednog cikličkog pomjeraja u
lijevo nad prethodnim alfabetom (prvi red ispod izvornog alfabeta,
predstavlja praktično alfabet šifrovan Cezarovim konceptom , ali uz
pomjeraj za jedno mjesto u lijevo u odnosu na izvorni alfabet, drugi red
predstavlja alfabet šifrovan Cezarovim konceptom , ali uz pomjeraj za
dva mjesta u lijevo u odnosu na izvorni alfabet,...... i dvadeset šesti red
predstavlja alfabet šifrovan Cezarovim konceptom, ali uz pomjeraj od
dvadesetšest mjesta u odnosu na izvorni alfabet - što dovodo do njegove
podudarnosti s izvornim alfabetom. U tom kontekstu, ako slovo „n“
šifrujemo trećim redom ono se preslikava u slovo“q“, ali ako ga
šifrujemo trinaestim redom ono se preslikava u slovo „a“.
Saglasno Viţnerovom algoritmu, pored korištenja Viţnerovog
kvadrata, treba uvesti i ključnu riječ (ona je ustvari neki vid fiksnog
ključa) recimo Sarajevo, koja odreĎuje redosljed upotrebe alfabeta
zapisanih u pojedine vrste Viţnerovog kvadrata (18, 26, 17, 26, 9, 5, 21,
14). Nije teško uočiti da duţi ključ čini Viţnerov algoritam otpornijim
na napade. Rad pod naslovom „Tracite des Chiffres“ – rasprava o
šiframa, objavljen 1586 godine, predstavlja ustvari rezime rezultata
njegovog rada.Viţnerov algoritam se moţe definisati na slijedeći način:
Neka je m fiksan prirodni broj i naka je: M = C = Қ =( Z26)m
.
Za ključ K = (k1, k2, k3, k4,........ km) є Қ definišu se: funkcija enkripcije
eK (x1, x2, x3, x4,...... xm ) i funkcija dekripcije dK (y1, y2,y3, y4,...... ym ), tako
da važi:
eK (x1, x2, x3, x4,...... xm ) = ( x1 +26 k1, x2 +26 k2, x3 +26 k3, ....., xm +26 km)
odnosno
dK (y1, y2,y3, y4,...... ym ) = (y1 -26 k1 , y2 -26 k2 , y3 -26 k1 , ym -26 km )
Nije lako pronaći prave razloge, zašto su impresivni rezultati
opisanog Viţnerovog rada, bili zanemarivani od strane kriptografa
gotovo dva vijeka. Aktuelizacija Viţnerovog algoritma za potrebe
telegrafskih komunikacija, dodatno je motivirala mnoge
kriptoanalitičare XIX vijeka da joj pokušaju umanjiti značaj. U tom
smislu prvi globalno vrijedni rezultati vezuju se za Čarlsa Bebidţa
(Charles Babbage 1791-1871 , koji je zapamćen i kao projektant, prvo
diferencijalnog motora br.1 - fantastičnog kalkulatora od 25 000
dijelova, a zatim i diferencijalnog motora br.2 - koji iako nisu nikada
završeni do kraja, ipak predstavljaju ishodište današnjih digitalnih
računara) koji je uspjeo da razbije Viţnerovu šifru. Rezultate svog rada
on sam nije objavio, tako da su oni postali dostupni naučnoj javnosti
tek u prvoj polovini XX vijeka, kada je bilo pojačano zanimanje za
ideje Čarlsa Bebidţa, prevashodno u domenu kalkulatora - odnosno
pretača računskih mašina.
Tabela broj 5 : Prikaz strukture Viznerovog kvadrata
Čarls Bebidţ nije se zanimao samo za kriptoanalizu, nego je i sam
pokušavao razvijati nove kriptografske algoritme. Radeći timski sa
Čarlsom Vitstonom (smatra se da je njegov doprinos poligramskim
supstiucionim šiframa, koje su kasnije uobličene i publikovane kao
Plejferove šifre, bio najznačajniji, a on je i jedan od kreatora prvog
telegrafa u Evropi, patentiranog još 1837. godine) i baronom Lajonom
Plejferom osmislili su Plajferovu šifru (Lyon Playfair (1818-1898)).
Šifra je objelodanjena 1854. godine, a baron Plejfer ju je popularizirao
u vojnim i drţavnim strukturama britanskog kraljevstva, tokom druge
polovine XIX vijeka (bio je zamjenik predsjednika donjeg doma
Parlameta, upravnik nacionalne pošte, ...).
Plajferova šifra pripada klasi poligramskih supstitucionih šifri.
Ovom šifrom se parovi simbola izvornog teksta, supstitušu parovima
nekih slova, pri čemu je procedura zamjene strogo ureĎena. Prije
korištenja ovakvog postupka šifriranja, pošiljalac i primalac se moraju
dogovoriti oko ključa - odnosno ključne riječi.
Neka je ključna riječ M E S U D. Nakon izbora ključne riječi,
njeni simboli se upišu u kvadrat formata 5x5 i to onako, kao što je
uraĎeno u tabeli broj 6.
Tabela broj 6.
M E S U D
A B C F G
H I/J K L N
O P Q R T
V W X Y Z
Neka je izvorni tekst: „ O d s j e k z a t e l e k o m u n i k a c i j e“
, uz pomoć Plajferove šifre i odabranog ključa M E S U D, pretvara se u
šifrat u skladu sa sljedećom procedurom:
1. Izvorni tekst se podijeli u blokove od po dva simbola: OD, SJ, EK,
ZA, TE, LE, KO, MU, NI, KA, CI, JE. Pri tome nijedan blok ne
smije biti sastavljen od dva ista slova. Ako se to pak desi zbog
prirode izvornog teksta, izmeĎu istih slova treba ubaciti simbol X.
Isti simbol se ubacuje i ako je broj slova izvornog teksta neparan.
2. Kada se slova odabranog bigrama nalaze u istom redu MU, tada
slovo M zamjenjujemo slovom E (slovo istog reda pomjereno u
tabeli za jednu poziciju u desno), a slovo U slovom D. tabeli broj 6.
Na taj način se izvorni bigram MU supstituiše bigramom ED.
3. Kada se slova predmetnog bigrama nalaze u istom stupcu JE, tada
se J zamjenjuje sa P, a E sa slovom B. u tabeli broj 6. Saglasno
tome izvorni bigram JE, supstituiše se bigramom PB.
4. Ukoliko se slova predmetnog bigrama nalaze i u različitim
redovima i u različitim kolonama, kao što je to slučaj sa OD, tada
se slovo O zamjenjuje sa slovom T, a slovo D sa slovom M, odnosno
OD se preslikava u TM. Slovo T je u istom redu kao i slovo O, ali i
u istoj koloni kao i slovo D. Analogno se nalazi i supstitucija za
slovo D (isti red kao i slovo D, ali i ista kolona kao i slovo O).
Dešifrovanje se vrši tako što se i šifrovani tekst izdjeli na bigrame,
pa na osnovu ranije dogovorenog ključa, slovo iz bigrama šifrata na
osnovu tabele broj 5 (nju identičnu imaju i pošiljaoc i primaoc) se
zamjenjuje slovom koje lijevo od njega, ako su slova bigrama iz istog
reda (ED se prevodi kao MU), odnosno PB se prevodi kao JE, ili pak u
slučaju TM, prevod je bigram OD.
Prednosti Plejferove šifre su:
U šifratu se gube jednosimbolski ekvivalenti – poput A - što oteţava
upotrebu frekventne analize prisutnih simbola;
Bigramsko šifriranje povećava broj bigrama u odnosu na broj
slova, pa je frekvencija bigrama mnogo ujednačenija od frekvencije
slova (broj bigrama na skupu od 26 slova je 676, njihov broj se
odreĎuje kao broj varijacija druge klase sa ponavljanjem). U
otvorenom tekstu na engleskom jeziku, najfrekventnije slovo E
pojavljuje se frekvencijom 12,7%, a ako se primjeni Plejferova
šifra, ta frekvencija se snizava na oko 7%.
Plejferove šifre su korištene i u Prvom svjetskom ratu (britanska
vojska) i u Drugom svjetskom ratu (američka vojska), u cilju
podrţavanja povjerljivosti vojnih i diplomatskih komunikacija.
Kriptoanalizu Plejferove šifre, moguće je naći u djelu: A. Sinkov,
“Elementary Cryptanalysis“, Mathematical Association of America,
1966. Napad na ovu šifru načešće se izvodi tako da se traţe
najfrekventniji bigrami šifrata, uz pretpostavku da je to supstitucija za
najčešće bigrame engleskog jezika: TH; HE; AN; IN; ER; RE; ES;....
Unutar klase poligramskih šifara, Lester Sanders Hill (1890-1861)
je 1929. godine predstavio kriptosistem, kod kojeg se m uzastopnih
slova izvornog teksta, supstituiše s m slova šifrata. Stvorivši mogućnost
da se blokovi od tri ili više simbola, poligramskom supstitucijom
šifriraju, Hill je prvi suštinski povezao kriptografiju s linearnom
algebrom (L.S.Hill je doktorirao 1926 godine na Yale University u
oblasti primjenjena matematika). Hillov kriptografski algoritam
definiše se na slijedeći način:
Neka je m fiksan prirodni broj i naka je: M = C = ( Z26)m
, a prostor
ključeva Қ definisan relacijom:
Қ = { (mxm) invertibilne matrice nad Z26}.
Za ključ K definišu se funkcija enkripcije
eK (x ) = x ٠K
i funkcija dekripcije
dK (y ) = y٠ K-1
,
pri čemu su sve operacije u prstenu ( Z26).
Za ključ K definisan gornjom relacijom, blokovi x i y očigledno
su rasporedi od po m elemenata skupa ( Z26 ). Ukoliko broj simbola
izvornog teksta, nije djeljiv s brojem m bez ostatka, tada treba izvorni
tekst nadopuniti (proširiti) sa onoliko simbola x koliko je potrebno da
se ostvari djeljene proširenog izvornog teksta s brojem m bez ostatka.
Pri izboru ključa K, Hill je preporučio da se koriste involutivne matrice
( kod involutivnih matrica vazi relacija: K-1
= K, odnosno K2 = I ).
Takvim izborom se doista olakšava postupak šifriranja i dešifriranja,
ali se skraćuje i vrijeme potrebno kriptoanalitičarima za provoĎenje
efikasnog napada.
Primjer broj 4
Neka je ključ za šifriranje Hillovom šifrom, definisan relacijom:
1 0 0 i neka je izvorni tekst B O S N A.
K = 5 25 0 Odrediti šifrat, a potom provjeriti
0 0 25 dobijani rezultat, dešifriranjem šifrata.
Prvo se provjerava je li zadati ključ K, doista definisan
involutivnom matricom. Nakon što se pokaţe da je K 2 = I, izvorni
tekst se dijeli u blokove od po tri simbola, dakle na BOS NAX. Potom
se traţe numerički ekvivalenti za upotrebljene simbole, prema tabeli
broj 3, pa je u skladu s tim:
B, O, S ↔ 1, 14, 18 odnosno N, A, X ↔ 13, 0, 23
Za blok izvornog teksta BOS, računa se homologni blok šifrata,
računajući da je:
( 1, 14, 18 )٠K = (71, 70, 450) mod 26 = (19, 18, 8) =
eK (B, O, S ) = x ٠K = ( T, S, I )
Analogno tome, za blok izvornog teksta NAX, računa se homologni
blok šifrata tako da je:
( 13, 0, 23 )٠K = (13, 0, 575) mod 26 = (13, 0, 3) =
eK (N, A, X ) = x ٠K = ( N, A, D )
Dakle šifrat je ( T, S, I, N, A, D )
Provjera se sastoji iz dvije etape, pri čemu se u prvoj etapi
računa
( 19, 18, 8 )٠K-1
= (109, 450, 200) mod 26 =
(5, 8, 18) = ( F, I , S )???
a u drugoj etapi:
( 13, 0, 3 )٠K-1
= ( 13, 0, 75) mod 26 =
(13, 0, 23) = ( N, A, X ).
Hillov algoritam šifriranja, za m ≥ 3, predstavlja još bolju
prepreku za frekventnu analizu kriptologa. S obzirom da za blokove
duţine m simbola, na skupu ( Z26 ) , postoji tačno (26)m
različitih
blokova. Već pri m = 3 postoji 17 576 različitih trigrama, pa je
prethodna konstatacija u vezi kriptološkog napada, kada kriptolog
posjeduje samo šifrat, sasvim jasna.
Razmatrani algoritam se relativno lako kompromituje napadom
tipa „poznat izvorni tekst“, a pogotovu pomoću napada „odabrani
izvorni tekst“. Naime ti napadi su povezani sa rješavanjem matrične:
Y = X ٠ K
u kojoj je nepoznata veličina kvadratna matrica K – odnosno ključ
algoritma. Ukoliko je poznati izvorni tekst struktuiran tako da postoji
X-1
, tada je:
K = X-1
٠Y
Ako to nije slučaj, treba traziti izvorni tekst kod kojeg uz X postoji
i X-1
.
Tokom napada „odabrani izvorni tekst“, kriptoanalitičar upravo
tako bira izvorni tekst, da je uslov, uz X postoji i X-1
, ispunjen.
2.1.2 Algoritmi bazirani na transpozicijskim šiframa
Algoritmi bazirani na transpozicijskim šiframa (Transposition
Cipher), šifriranje provode tako što stvaraju pomjeraj simbola
izvornog teksta. Ako je taj pomjeraj stohastičan, onda je kriptolog na
velikim problemima, što znači da je pošiljaoc vrlo pouzdano poslao
poruku. Ali iskazana stohastičnost nije samo problem za kriptologa,
nego i za primaoca.
Dakle primjenjeni postupak pošiljaoca je pouzdan, ali i
neefikasan. U tom kontekstu, prirodno je zaključiti da se pomjeranje
simbola izvornog teksta mora obavljati na način koji je poznat i
pošiljaocu i primaocu.
Spartanski skital je jedan od prvih primjera transpozicijske šifre.
Kriptografski algoritam transpozicije moţe se definisati na slijedeći
način:
Neka je m fiksan prirodni broj i naka je: M = C = ( Z26)m
,
a prostor ključeva Қ sastoji se od svih permutacija skupa {1, 2, 3, 4,
...,m}. Za neku permutaciju (π є Қ) definiše se funkcija enkripcije i
dekripcije na slijedeći način:
e π(x1, x2, x3, x4,... xm) = (x π(1), x π(2),, x π(3),, x π(4),,... x π(m) )
dπ(y1, y2,y3, y4,...... ym) = (y π-1
(1), y π-1
(2),, y π-1
(3),,...... y π-1
(m))
U skladu sa upotrebljenim simbolima, za odabranu permutaciju (π),
(π-)-1
predstavlja inverznu permutaciju – koja omogućava vraćanje u
početno stanje.
Primjer broj 5
Izvorni tekst E L E K T R O T E H N I C K I F A K U L T E T
šifrirati kolonskim transpozicijskim algoritmom, ukoliko je dogovoreni
ključ
( 4 3 1 2 5 6 ).
S obzirom da ključ ima 6 brojeva, kolone će sadrţavati po 4 slova,
a nedostajuće slovo će se nadopuniti slovom x.
4 3 1 2 5 6
E L E K T R
O T E H N I
C K I F A K
U L T E T X
Šifrat je EEIT KHFE LTKL EOCU TNAT RIKX.
Prepoznavanje transpozicijske šifre je olakšano, jer je frekvencija
pojavljivanja simbola u korištenom jeziku zadrţana. Kriptoanaliza
kolonske transpozicije započinje traganjem za podatkom o
dimenzijama pravougaonika, koje nam daju prvu informaciju o ključu.
U tom smislu moguće dimenzije šifrata:
EEITKHFELTKLEOCUTNATRIKX su:
12 x 2; 6 x 4; 4 x 6; 2 x 12.
Mali broj kolona nije vjerovatan, jer se onda te kolone „izreţu u
trake“ i samo prostorno pomjeraju, dok ne dobijemo smislen sadrţaj.
Potom se u mogućim varijantama pravougaonika utvrĎuje odnos
samoglasnika i suglasnika i favorizuje pravougaonik u kojem je odnos
samoglasnika i suglasnika blizak odnosu koji je karakterističan za taj
jezik.
Njemačka šifra ADFGVX, korištena za vrijeme Prvog svjetskog
rata, je kombinovala transpozicione i supstitucione metode u jedinstven
sistem. Ipak francuski kriptoanalitičar Ţorţ Penvan (Georges Painvin)
je uspjeo da vrlo brzo provali ovu šifru i obezbjedi Francuzoma
značajnu pobjedu nad Nijemcima na kraju Prvog svjetskog rata.
2.2 Rezime simetričnog kriptografskog algoritma DES
DES (Data Encryption Standard) je 23.11.1976. godine prihvaćen kao
savezni standard za sigurnosnu zaštitu podataka u USA. Njegov idejni tvorac
je Horst Fejstel (Horst Feistel njemački emigrant, došao u USA 1934. godine,
(1915-1990)), koji je dugo radio na problematici šifriranja i dešifriranja u
Vazduhoplovstvu USA.
Nezadovoljan zbog blokiranja njegovih samostalnih istrazivanja u ovoj
oblasti, u Vazduhoplovstvu USA, prelazi raditi u laboratorije Tomas Dz.
Watson IBM, gdje dizajnira algoritam Lucifer. Taj algoritam će uskoro
postati i baza algoritma DES.
NBS (National Bureau of Standards) je na javnom konkursu,
raspisanom 1973. godine, trazio da ponuĎena rješenja za novi kriptosistem
moraju ispunjavati i slijedeće uslove:
1. Visok nivo sigurnosti, koji proizilazi iz ključa, a ne iz tajnosti
algoritma.
2. Efikasnost
3. Punu javnost i definisanost algoritma, koji treba biti i lako razumljiv.
4. Racionalnost algoritma pri njegovoj implementaciji na računarsku
infrastrukturu.
5. Dostupnost svim potencijalnim korisnicama.
6. Algoritam mora biti provjerljiv
7. Mogućnost izvoza i u područja van USA.
U prvoj iteraciji konkursa nijedan prijedlog nije ispunio sve pobrojane
uslove. Tek na ponovljenom konkursu 1974. godine algoritam razvijen
unutar IBM, zasnovan na algoritmu Luciferu.
Nakon korekcija (izmjena) u prvobitnoj verziji IBM - ovog algoritma,
(ona se je u početku bazirala na 112 bitnom ključu), na kojim je insistirala
NSA (National Security Agancy), ovaj algoritam je 1976. godine promoviran
kao nacinalni standard za zaštitu podataka. DES je prema svojoj strukturi:
1. Simetričan algoritam (isti ključ se koristi i za šifriranje i za
dešifriranje).
2. Blokovski orjentisan algoritam (izvorni tekst se transformiše u
binarnu formu, a potom dijeli u blokove, koji se zatim šifriraju blok po
blok, uz upotrebu ključa).
3. Algoritam koji je zasnovan na Feistelovoj mrezi (Feistel Network),
koja je sadrzana i u izvornom konceptu algoritma Lucifer.
NSA se zalagala da se broj mogućih ključeva ograniči na 1017
odnosno na
256
, smatrajući da je takav nivo sigurnosti primjeren civlnim potrebama (u
civilnom sektoru tog doba, niko nije imao tako moćnu računarsku
infrastrukturu, koja bi mogla pretraziti tako ureĎen prostor ključeva. NSA
je s druge strane već tada imala računare sposobne da pretraze i prostor
ključeva reda 256
).
Slika broj 2.2.1 Blok šema algoritma DES
Slika broj 2.2.2 Jedna runda unutar algoritma DES
U skladu sa slikama: broj 2.2.1 i broj 2.2.2, nakon što se izvorni tekst
prevede u binarnu formu, slijedi njegova podjela na 64 bitne blokove.
Svaki 64 bitni blok, prvo se podvrgne početnoj permutaciji IP (Initial
Permutation). Početna permutacija i odgovarajuća završna permutacija,
prema provedenim analizama, ne doprinose značajnije povećanju
bezbjednosti algoritma. One mnogo više imaju za cilj da olakšaju proceduru
unošenja izvornog teksta i šifrata u DES čipove, i to u djelovima veličine byta
(treba imati na umu da je DES nastajao u doba 8-bitnih mikroprocesorskih
magistrala, te da softverski nije lako izvršiti permutovanje bit po bit).
U slijedećem koraku, tako izmješani biti, upravo obraĎivanog 64 bitnog
bloka, djele se u dva polubloka od po 32 bita – lijevi polublok L0 i desni
polublok R0. Biti sadrzani u desnom polubloku, prolaze kroz dodatnu
funkcionalnu obradu, zajedno s ključem algoritma. Taj proces se često u
literaturi terminološki naziva „centrifuga“. U „centrifugi“ se dakle uvodi u
dejstvo – odnosno aktivira i zadati „ključ algoritma“.
Nakon što se provede njegova kompresija na 56 bita (izostavljanje po
jednog bita unutar byta, stvara prostor za uvoĎenje bitova provjere parnosti,
koji treba da stvore mogućnost provjere je li u ključu napravljena mozda
nezeljena greška) slijedi i permutacija PC-1, tih 56 bita po ranije propisanom
pravilu. Poslije toga se obavlja i translacija tih 56 bita i to tako da se vrši
ciklički pomjeraj u lijevo, za jedno ili dva mjesta, ovisno u kojoj rundi se taj
postpak provodi.
Dobijenih 56 bita se zatim ponovo reducira – komprimira, pomoću
permutacije PC-2, na 48 bita, po sistemu PC-2, definisanom u algoritmu.
Tada praktično nastaje podključ prve (jedne) runde. Ovim potezom se
mijenja i redosljed bita, a i bira podskup bita, zbog čega se spomenuti
postupak često u kriptografiji označava kao permutacija kompresije
(Compression Permutation). S obzirom da se u svakoj rundi provodi i
translacija unutar ključa za jedno ili dva mjesta, to se unutar 16 subključeva,
što se pridruzuju svakoj od provedenih rundi, pojedini biti iz polazne verzije
56 bitnog ključa pojavljuju bar 14 puta (od 16 teoretski mogućih
pojavljivanja).
Prema slici broj 2.2.2 subključ tekuće runde, treba XOR operacijom
povezati s polublokom R0 . Ovaj polublok se stoga prvo proširuje sa 32 bita
na 48 bita, pomoću permutacije proširenja (Expansion Permutation). Nakon
ovog poteza postoje i biti koji utiču na dvije supstitucije - čime se zavisnost
izlaznih bita od ulaznih bita brze širi (u kriptografiji je to poznato kao efekat
lavine - Avalanche Effect, a treba imati u vidu i da je DES projektovan s
namjeraom da se što prije postigne stanje u kojem svaki bit šifrata zavisi od
svakog bita izvornog teksta i svakog bita ključa).
Nakon provoĎenja XOR operacije, nad dva 48 bitna bloka, formira se 8
šestobitnih grupa, koje se potom filtriraju kroz 8 S-kutija. S kutije se
smatraju najvrijednijim dijelom DES algoritma. One imaju formalni
zadatak da transformišu 8 šestobitnih rasporeda u 8 četverobitnih rasporeda,
Tih 8 četverobitnih rasporeda predstavljaju novi 32 blok, koji se ponovo
permutuje permutacijom P (permutacija P se naziva prava permutacija -
Straight Permutation), Tako se dobija funkcija f (R0, K1), koja se potom
putem XOR operacije, obraĎuje sa polublokom L0. Rezultat te operacije je
opet 32 bitni blok, ali koji se sada proglašava i za novu verziju desnog
polubloka R1. Nova verzija lijevog bloka L1 izvodi se na osnovu relacije R0 =
L1.
S obzirom da se oko dizajna S kutija mnogo špekuliralo, nakon što je
postupak diferencijalne kriptoanalize 1990. godine javnosti otkrio dio tajni
ovog dizajna, IBM je objavio osnovne kriterijume za prijektovanje S kutija.
1. Svaka S- kutija ima 6 ulaznih bitova i i 4 izlazna bita (to je najviše što
se moglo postići na jednom čipu s tehnologijom 1974. godine).
2. Nijedan izlazni bit S-kutije ne treba da bude previše blizu linearnoj
funkciji ulaznih bitova.
3. Ako fiksirate krajnji lijevi bit i krajnji desni bit S kutije i mijenjate
preostala četiri unutrašnja bita, svaki mogući 4-bitni izlaz dobije se
tačno jednom.
4. Ako se dva ulaza S-kutije razlikuju u tačno jednom bitu, izlazi se
moraju razlikovati u najmanje dva bita.
5. Ako se dva ulaza S-kutije razlikuju u tačno dva srednja bita, izlazi se
moraju razlikovati u najmanje dva bita.
6. Ako se dva ulaza S-kutije razlikuju u prva dva bita, a posljednja dva
bita su identični, izlazi ne smiju biti isti.
7. Za bilo koju 6-bitnu razliku izmeĎu ulaza, koja nije jednaka nuli,
najviše 8 od 32 para ulaza s tom razlikom mogu da prpizvedu istu
razliku ulaza.
8. Kriterijum sličan prethodnom, ali za slučaj tri aktivne S-kutije.
Izlazi iz osam S kutija, dakle onih 8 četverobitnih rasporeda, kao što je
već ranije konstatovano, ponovo se permutuje putem prave permutacije, ili
završne permutacije P (Straight Permutation), za koju je karakteristično da
se nijedan bit ne koristi dvaputa i nijedan bit se ne zanemaruje.
Slično kriterijumima za dizajn S kutija, objavljeni su i ograničenja, koja
su poštovana tokom provoĎenja završne permutacije P.
1. Četiri izlazna bita iz svake S kutije, utječu, odnosno čine ulazne
podatke na šest različitih S kutija u idućoj rundi, a nikoja dva ne utiču
na istu kutiju.
2. Četiri izlazna bita iz svake kutije u i-toj rundi, su tako distribuirni da
dva od njih utiču na središnje bitove u (i+1)-voj rundi, a dva na krajnje
bitove (dva najljevija i dva najdesnija, od šest bitova u ulaznom
podatku).
3. Za dvije S-kutije Sj i Sk vrijedi slijedeća zakonitost: ako neki izlazni
bit od Sj utiče na neki središnji bit od Sk u narednoj rundi, onda niti
jedan izlazni bit od Sk ne utiče na središnje bitove od Sj . Za Sj = Sk
proizilazi da izlazni bitovi od Sj ne utiču na središnje bitove od Sj.
U literaturi je dosta analizirana i problematika „slabih ključeva u
algoritmu DES“.
a) Izrazito slabi ključevi su u prvom redu ključevi kod kojih se
ispostavlja da su subključevi rundi meĎusobno jednaki, dakle vazi
relacija: K1 = K2 = K3 = K4 = K5 =٠٠٠٠ =K16 . Postupak šifriranja i
dešifriranja su onda identični, odnosno vazi da je:
eK (eK(x)) = x
Zbog ovakve osobine 232
izvornih tekstova nakon šifriranja se ne
mijenja. Postoje tačno 4 slaba ključa algoritma DES. To su oni ključevi, kod
kojih se u rasporedu C0D0 lijeva i desna polovica, dakle C0, odnosno D0,
formiraju, ili od samih nula, ili od samih jedinica. UU heksadecimalnoj
notaciji ti ključevi su:
1. 0101010101010101
2. 1F1F1F1F1F1F1F1F
3. E0E0 E0E0 E0E0 E0E0
4. FEFE FEFE FEFE FEFE
b) Djelimično slabi ključevi su oni ključevi koji tokom 16 rundi generišu
praktično samo dva različita subključa, pri čemu se svaki od njih
koristi tokom 8 rundi. Kaze se da par ključeva (Kj, Kl) predstavlja par
djelimično slabih DES ključeva, ako je rezultat kompozicije dva DES
algoritma provedena s ključevima Kj i Kl ništa drugo nego izvorni
tekst. Šifrovanje sjednim od njih je isto kao i dešifrovanje s drugim od
njih. Postoji šest parova djelimično slabih ključeva, a jedan od njih je
par:
01FE01FE01FE01FE i FE01 FE01 FE01 FE01 FE01
c) Potencijalno slabi ključevi su oni ključevi koji imaju takvu simbolsku
strukturu da generišu samo 4 različita subključa tokom 16 rundi.
Ovakvih ključeva ima tačno 48.
Iz prethodno navedenog pregleda, proizilazi da treba izbjegavati 64
ključa (4+6+6+48=64) koji su specificirani u tačkama od a) do c).
Zašto algoritam DES ima baš 16 rundi? Istrazivanja motivisana ovim
pitanjem, pokazala su da nakon pet rundi svaki bit šifrata postaje funkcija
svakog bita izvornog teksta i svakog bita ključa (C. H. Meyer,
„Cyphertext/Plaintext and Cyphertext/Key Dependencies vs Number of
Rounds for Data Encyption Standard“, AFIS Conference Proceedings, 47,
1978. pp. 1119-1126). Poslije osam rundi šifrat je slučajna funkcija svakog
bita izvornog teksta i svakog bita ključa (A. G. Konheim, „Cryptography: A
Primer“, New York:John Wiley & Sons., 1981.). Bihamova i Shamirova
diferencijalna kriptoanaliza (1990. godine) je objasnila da DES sa manje od
16 rundi, moze biti kompromitovan napadom tipa „Poznat izvorni tekst“,
efikasnije nego metodom „Napad grubom silom“. Da li su tvorci DES-a znali
i za elemente diferencijalne kriptoanalize?
Usvajanjem DES-a riješen je problem standardizacije, što je ohrabrilo
poslovni svijet da svoje sluzbene komunikacije zaštiti šifriranjem pomoću
DES-a. Ali tada se pojavio problem sigurne distribucije ključa, što dobro
odslikava recimo komunikacija klijent-banka. Banke su u početku to
rješavale slanjem ključa po povjerljivom glasniku, ali takav pristup ima niz
slabosti posebno iskazan sa porastom broja klijenata (usporenost transporta,
troškovi distribucije rastu....).
Za fiksni ključ K pomoću DES-a definisana je jedna permutacija skupa
{0,1}64
, odnosno 256
permutacija dobijenih pomoću DES-a je podskup grupe
svih permutacija skupa {0,1}64
, čiji je red (264
)!. Postavlja se pitanje je li DES
(odnosno skup svih ovih permutacija) podgrupa ove grupe. Odgovor je nije,
jer skup svih DES permutacija nije zatvoren, jer je pokazano da je red ove
pogrupe generirane svim DES permutacijama veći od 22499
. Na osnovu ove
činjenice zaključeno je da se višestrukom upotrebom DES-a moze povećati
nivo njegove sigurnosti. Posebno je popularan trostruki DES, koji ima tri
koraka običnog DES-a, ali svaki put sa različitim ključevima.
y = eM(dL(eK(x))), x = dK(eL(dM(y)))
Ključ kod trostrukog DES-a je duzine 168 bita. Pri verziji u kojoj je M =
K duzina ključa je 112 bita. Dvostruki DES ima izrazene slabosti pri napadu
tipa „susret u sredini“ (Meet-in-the- Middle, opisao ga je Diffie već 1977.
godine), kada pokazuje samo neznatno bolje karakteristike od običnog DES-
a.
2.3 Rezime simetričnog kriptografskog algoritma IDEA
IDEA (International Data Encryption Algorithm) je algoritam razvijen
1992. godine, na ETH Zurich, od strane Xuejie Lai i James Massey. Ovaj
algoritam koristi 128 bitni ključ za šifriranje 64-bitnih blokova izvornog
teksta. Sam algoritam, u svom toku, sadrzi tri osnovne operacije:
1. XOR operaciju, formalna oznaka O.
2. Sabiranje po modulu 216
,
3. Mnozenje po modulu (216
+1), formalna oznaka o.
Mnozenje po modulu (216
+1), u algoritmu IDEA ima sličnu ulogu, ulozi
S kutija u algoritmu DES. Modul (216
+1), je odabran zbog
efikasnije implementacije modularnog mnozenja. Pobrojane tri operacije su
inkopatibilne u smislu da nikada dvije od njih ne udovoljavaju zakone
asocijativnosti i distributivnosti. IDEA ima osam rundi i završnu
transformaciju. U tih osam rundi koriste se 52, 16-bitna subuključa ((K1(r)
,
K2(r)
,... K6(r)
) tokom osam rundi ( r= 1,2,..,8) i četiri subključa (K1(9)
, K2(9)
,
K3(9)
, K4(9)
) za završnu transformaciju) koji se generiraju na osnovu polaznog
128 bitnog ključa. U prvoj iteraciji se pravi 6 16- bitnih subključeva ((K1(1)
,
K2(1)
,... K6(1)
) i prva dva subključa druge iteracije ((K1(2)
, K2(2)
). Potom se
bitovi polaznog 128 bitnog ključa K pomjeraju za 25 mjesta ulijevo, čime se
pravi novi 128 bitni raspored kao osnova za preostala četiri ključa druge
iteracije ((K3(2)
, K4(2)
, K5(2)
, K6(2)
) i prva četiri ključa treće runde ((K1(3)
, K2(3)
,
K3(3)
,K4(3)
).
Izvorni tekst se prikazuje u obliku X = (X1, X2, X3, X4) pri čemu su Xi 16
bitni podblokovi. Na slici broj 2.3.1 prikazan je blok dijagram algoritma
IDEA.
Slika broj 2.3.1 Blok dijagram algoritma IDEA.
Prema gornjem blok dijagraku, osnovni koraci u algoritmu IDEA su:
1. Pomnozi X1 i prvi subključ K1(1)
, po modulu (216
+1) .
2. Saberi X2 i drugi subključ K2(1)
, po modulu (216
).
3. Saberi X3 i treći subključ K3(1)
, po modulu (216
).
4. Pomnozi X4 i četvrti subključ K4(1)
, po modulu (216
+1).
5. Primjeni XOR operaciju na rezultate koraka (1) i (3).
6. Primjeni XOR operaciju na rezultate koraka (2) i (4).
7. Pomnozi rezultate koraka (5) i peti subključ K5(1)
, po modulu (216
+1).
8. Saberi rezultate koraka (6) i koraka (7) , po modulu (216
)
9. Pomnozi rezultate koraka (8), sa šestim subključem K6(1)
, po modulu
(216
+1).
10. Saberi rezultate koraka (7) i koraka (9) , po modulu (216
)
11. Primjeni XOR operaciju na rezultate koraka (1) i (9).
12. Primjeni XOR operaciju na rezultate koraka (3) i (9).
13. Primjeni XOR operaciju na rezultate koraka (2) i (10).
14. Primjeni XOR operaciju na rezultate koraka (4) i (10).
Izlaz tekuće runde su uvijek četiri podbloka, koji su rezultati koraka
broj (11), (12), (13) i (14). Nakon toga, treba još da meĎusobno zamjene i
vlastita mjesta, dva unutrašnja bloka (ovo se ne radi , jedino u posljednjoj
rundi), te da se dobije ulaz za slijedeću rundu (64 bita).
Algoritam IDEA, za razliku od algoritma DES nastao je isključivo u
akademskom ambijentu (dakle bez uplitanja institucija tipa NSA), pa su
sumnje u postojanje „zadnjih vrata“ (Backdoor) znatno manje. IDEA je i
patentirana, vlasnik njenog patenta je firma Ascom - Tech AG – Switzerland.
Za njenu komercijalnu upotrebu treba stoga pribaviti i odgovarajuću
licencu. Ipak za nekomercijalnu upotrebu, licenca još uvijek nije potrebna.
Algoritam IDEA je efikasan i na 16 - bitnim procesorima. Softverska
realizacija algoritma IDEA, već u startu svoje implementacije, pokazala je da
je dva puta brza od softverske realizacije algoritma DES.
Ovaj algoritam, koristi se recimo i kod PGP paketa, kao jedno od
mogućih riješenja za simetričnu enkripciju. (Pretty Good Privacy – Philip R.
Zimmermann (Philip R. "Phil" Zimmermann Jr. Algoritam IDEA pokazao
se otpornim, i na linearnu kriptoanalizu i na difrencijalnu kriptoanalizu.
Kako je prostor ključeva koje treba testirati tokom napada metodom
„potpunog pretrazivanja“, reda 2128
, to se ovaj algoritam smatra zasada
neranjivim.
Slično kao i u algoritmu DES i kod algoritma IDEa postoje „slabi
ključevi“. Sve ključeve iz familije ključeva:
0000, 0000, 0x00, 0000, 0000, 000x, xxxx, x000,
pri čemu je x bilo koji heksadecimalni broj, moguće je kompromitovati, po
skraćenom postupku, putem napada tipa „Poznat otvoreni tekst“.
2.4 Rezime simetričnog kriptografskog algoritma AES
National Institute of Standards and Technology (NIST), 1997 . godine je
objavio meĎunarodni konkurs za kriptosistem, koji je planiran da u 21.
stoljeću postepeno supstituira algoritam DES.
Na predmetnom konkursu tada su definisani i opšti uslovi, koje treba
da ispunjava svaki prijavljeni algoritam:
1. Mora biti iz klase simetričnih algoritama
2. Mora biti blokovski organizovan
3. Algoritamske operacije treba provoditi nad 128 bitnim blokovima
izvornog teksta, uz pomoć ključa duzine 128 ((192) ili (256)) bita, pri
čemu su ključevi dizajnirani tako da ne postoje slabi ključevi.
Predmetni meĎunarodni konkurs, zaključen 15.06.1998. godine,
pokazao je da je od 21 pristigle prijave, njih 15 zadovoljilo opšte uslove.
Konačno 02.08.2000. godine objavljeno je: na raspisanom konkursu,
pobjednik je algoritam RIJDAEL (rejn dol), čiji su autori belgijski
kriptografi Joan Daemen i Vincent Rijmen (Katholieke Universiteit Leuven).
Danas se ovom algoritmu u stručnim i naučnim krugovima sve češće
pridruzuje naziv AES (Advenced Encryption Standard).
Prije opisa samog dizajnerskog rješenja AES-a, korisno je navesti
osnovne motive koji su doveli do raspisivanje konkursa čiji je rezultat AES.
1. U standardu DES je utvrĎeno da će on biti provjeravan i eventualno
ponovo certificiran svakih pet godina. Provjera provedena 1983. godine
omogućila je njegovu novu sertifikaciju bez ikakvih ograničenja.
MeĎutim tokom provjere provedene 1988. godine uz NBS se uključila i
NSA, koja je uz to imala i snagu veta na mišljenje NBS (u to doba
predsjednik SAD-a je bio R. Regan). NBS u poćetku nije namjeravala
dati saglasnost za ponovno sertificiranje DES-a. Razlozi nisu bili u tom
što je DES bio kompromitovan, već u činjenici da se on toliko proširio u
uslovima brze tehnološke revolucije ICT sektora, da je postalo pitanje
dana kada će se DES kompromitirati. Ipak nakon velikog pritiska
poslovnih krugova i javnosti DES je ponovo sertificiran kao standard
američke administracije s rokom vazenja do 1992. godine. Potom je
uslijedila javna debata da li produzavati sertifikaciju DES-a?
Po njenom okončanju DES je još jednom sertificiran, za period od pet
narednih godina uz napomenu da u tom razdoblju treba napraviti
strategiju za prelazak na novi kriptografski algoritam.
2. U periodu (1992.-1997.) pravile su se mnoge analize i nudile moguće
alternative za DES. Jedna od njih je bila i dvostruki, odnosno trostruki
DES. Ideja o dvostrukom DES-u je odbačena, jer zahtjeva mnogo veću
računarsku kompleksnost od običnog DES-a, a dobitak u smislu
podizanja nivoa sigurnosti je umjesto očekivanog nivoa 2128
, u nekim
slučajevima sveden samo na 257
(napad tipa „susret u sredini“ - Meet-
in-the-Middle Attack, samo zahtjeva korištenje više memorije da bi se
skratilo vrijeme napada).
Trostruki DES se pokazao imun na slabosti koje je iskazao dvostruki
DES, ali je pokazao i odreĎene vlstite nedostatke: softverske
implementacije 3DES-a su prespore; u tom algoritmu postoji 48 rundi,
da bi se ostvarila sigurnost za koju su dovoljne vjerovatno 32 runde; 64
bitni blokovi nisu više optimalna veličina za mnoge primjene.
3. Navedene slabosti algoritma 3 DES su osnovni uzroci zašto se on nije
našao na poziciji koju danas zauzima AES.
Dok je većina algoritama kandidiranih na konkursu, čiji je pobjednik
bio AES imala u sebi na odreĎen način uključenu i mrezu Feistela, odnosno
runde bazirane na takvoj mrezi, AES je bio posve drugačiji. U AES-u unutar
jedne runde postoje tri takozvana sloja:
Linearni difuzioni sloj (Linear Mixing Layer), koji obezbjeĎuje
veliku difuziju bitova nakon nekoliko rundi (realizuje se putem
operacija: ShiftRow i MixColumn),
Nelinearni sloj (Non-linear Layer), koji se provodi pomoću upotrebe
supstitucijskih kutija, optimiziranih za najgori mogući slučaj (operacija
ByteSub),
Sloj dodavanja ključa (Key Addition Layer), tokom kojeg se
realizuje operacija ekskluzivno ili nad potključem runde s trenutnim
stanjem bloka (operacija AddRoundKey).
Prilikom projektovanja pobrojanih slojeva posebno se vodilo računa o
njihovoj otpornosti na linearnu i diferencijalnu kriptoanalizu, brzini i
kompaktnosti koda za širok spektar hardverskih i softverskih platformi, te o
dizajnerskoj jednostavnosti (negativna iskustva sa algoritmom IDEA).
2.4.1 Matematska osnova kriptografskog algoritma AES
Za razliku od mnogih ranijih rješenja AES je svoju matematičku
podlogu našao u Teoriji konačnih polja – polja Galois. Pri tome je odabrano
polje GF(28). Svi okteti algoritma AES interpretiraju se preko bitova b7, b6,
b5, b4, b3, b2, b1, b0, koji dakle mogu uzimati, ili vrijednost 0, ili vrijednost 1.
Često se kaze da su bi є GF(2) , ili pak da je bi є{0,1}. Koristi se i
polinomijalna notacija:
b7٠X7 +b6٠ X
6 + b5٠ X
5 + b4٠X
4 + b3٠X
3 +b2٠ X
2 + b1٠ X + b0
Sa stanovišta sabiranja ispunjeni su svi uslovi da bi imali Abelovu
grupu u odnosu na operaciju sabiranje (potpunost, neutralni element 0x00,
inverzni element, i komutativnost. Da bi se obezbjedila zatvorenost nad
elementima polja GF(28) i tokom provoĎenja operacije mnozenja nad
elementima tog polja, za redukciju se koristi polinom: m(x) = X8 + X
4 + X
3 +
X + 1 , pri čemu se nameće uslov da postoji i bar neki element α є GF(28),
takav da je: m(α) = 0. Mnozenje definisano na prethodni način je asocijativno
i ima neutralni element 0x001
Svakom nenultom elementu b є GF(28), iskazanom u polinomijalnom
obliku sa b(x), moguće je odrediti inverzni polinom b-1
(x), takav da je:
a(x)٠b(x) mod m(x) = 1, pri čemu je a(x) = b-1
(x)
AES je predvidjeo da se koriste i operacije nad polinomima manjeg
stepena od četiri, dakle nad polinomima oblika:
c3٠X3 +c2٠ X
2 + c1٠ X + c0
ali kod takvih polinoma koeficijenti ci , nisu više elementi skupa GF(2), nego
su elementi skupa GF(28). Zato se kaze da su takvi polinomi odreĎeni
četverobajtnim vektorom, odnosno kao 32 bitna rječ. Sabiranje takvih
vektora vrši se putem sabiranja po modelu ekskluzivnog ILI odgovarajućih
(homolognih) koeficijenata polinoma koji se sabiru. Da bi se pri mnozenju
takvih polinoma, dobio ponovo strukturno analogan polinom stepena manjeg
od četiri, za redukciju dobijenog rezultata stepena četiri, ili većeg od četiri,
koristi se polinom p(x) , pri čemu je : p(x) = X4 + 1, uz uslov p(α) = 0, α є
GF(28).
Primjer Pomnoziti dva polinoma trećeg stepena a(x) i c(x), čiji su koeficijenti
iz skupa GF(28), pa dobijeni rezultat ponovo svesti na polinom trećeg stepena
d(x), koristeći za redukciju polinom ( X4 + 1) .
d(x) = (a(x) ٠ c(x)) mod (x4+1) = d3٠X
3 +d2٠ X
2 + d1٠ X + d0
d0 = ( a 0b 0٠ ) + ( a 1b 3٠ ) + ( a 2b 2٠ ) + ( a 3b 1٠ )
d1 = ( a 0b 1٠ ) + ( a 1b 0٠ ) + ( a 2b 0٠ ) + ( a 3b 3٠ )
d2 = ( a 0b 2٠ ) + ( a 1b 1٠ ) + ( a 2b 0٠ ) + ( a 3b 3٠ )
d3 = ( a 0b 3٠ ) + ( a 1b 2٠ ) + ( a 2b 1٠ ) + ( a 3b 0٠ )
Treba naglasiti da se svi proizvodi oblika (ai ٠ bj ) formiraju u skladu s
pravilima mnozenja po mod (x4+1) .
2.4.2 Postupak šifriranja u kriptografskom algoritmu AES
Stanje bloka (State Block) predstavlja trenutno stanje šifrovanog bloka
podataka. Ako se iskaze u matričnoj formi onda se ta matrica proglašava za
matricu stanja. Blok izvornog teksta od 192 bita se moze iskazati i
pravougaonom matricom formata 6x4, kod koje su matrični elementi bajtovi,
odnosno osmobitni rasporedi ili okteti. Po AES standardu blok izvornog
teksta je uvijek duzine 128 bita.
U tabeli broj 2.4.1 prikazan je takav matrični prikaz. Okteti izvornog
teksta se upisuju u prikazanu matricu po kolonama, dakle: s0,0 , s1,0 , s2,0 , s3,0 ,
s0,1 s1,1 , s2,1, s3,1, ..... s0,5 , s1,5 , s2,5 , s3,5. Broj redova u matrici stanja je fiksan i
iznosi četiri, dok broj kolona zavisi od veličine bloka (broj kolona moze biti
četiri (128 bitni blok), šest (192 bitni blok) ili pak osam (256 bitni blok).
Tabela broj 2.4.1 Matrica stanja za 192 bitni blok
Slično matrici stanja i ključ algoritma AES, smješta se u matricu
formata 4x4 (128 bitni ključ), odnosno 4x6 (192 bitni ključ), ili pak 4x8 (256
bitni ključ). Elementi matrice ključa su takoĎer okteti, odnosno osmobitni
rasporedi, a elementi ključa se takoĎe upisuju po kolonama pridruzene
matrice.
Broj rundi (ciklusa) algoritma odreĎuje se u skladu sa utvrĎenim
veličinama bloka izvornog teksta i odabranog ključa. Unutar runde veličina
bloka izvornog teksta mora biti usaglašena sa veličinom ključa runde.
Zakonitost koja se uvazava tokom tog izbora definisana je tabelom 2.4.3
Tabela broj 2.4.2 Tabela ključa za slučaj kada je odabran 128 bitni
ključ
Tabela broj 4.2.3 Broj rundi u funkciji veličine bloka stanja Nb i
veličine odabranog ključa Nk
Postupak šifrovanja počinje tako što se izvorni tekst preslikava u
matricu stanja. Prije prve runde vrši se inicijalno dodavanje ključa
(operacija AddRoundKey), odnosno sabiranje matrice stanja i matrice ključa
(operacija ekskluzivno ili ). Prva runda, kao i preostalih osam, deset ili pak
dvanest rundi (broj rundi zavisi od veličine bloka i veličine odabranog ključa,
što je iskazano putem tabele 4.2.3) strukturne su identično. jer sadrze četiri
transformacije nad oktetima. U posljednjoj rundi uočava se razlika jer se u
njoj izostavlja transformacija MixColumn.
Prva transformacija Sub Byte podrazumjeva zamjenu okteta na
osnovu tabele supstitucije. Ovo je jedina nelinearna transformacija.
Svaki element matrice stanja prvo se zamjenjuje s njemu
odgovarajućim multiplikativnim inverzom iz polja GF(28) (polinom
b(x) supstitira se s polinomom b-1
(x)). Element 0x00 ostaje
nepromjenjen. U drugom djelu ove transformacije nad bitovima
matrice stanja, odnosno nad njenim svakim elementom
b=(b1b2b3b4b5b6b7b8) primjenjuje se fiksna afina transformacija oblika:
(bi) ٰ ’
= bi + b (i+4)mod 8 + b (i+5)mod 8 + b (i+6)mod 8 + b (i+7)mod 8 + ci
(i= 1,2,3...8), ci = 01100011
Ova operacija se moze prikazati pomoću S kutije algoritma AES. Svaki
element AES bloka zapiše se heksadecimalno. Prvom broju u tom
elementu pridruzimo pripadni red S kutije AES algoritma, a drugom
broju odgovarajuću kolonu te iste S kutije.
U tabeli broj 4.2.4 prikazana je struktura S kutije algoritma AES.
Tabela broj 4.2.4 Struktura S kutije algoritma AES
Druga transformacija (ShiftRow) označava pomjeranje okteta u
redovima matrice stanja. Red 0 nema pomjeranja, u redu 1 vrši se
pomjeranje za C1 bajtova, u redu 2 vrši se pomjeranje za C2 bajtova, a
u redu 3 vrši se pomjeranje za C3 bajtova. Vrijednosti ofseta C1,C2,C3
ovise o veličini bloka izvornog teksta.
Za Nb = 4: C1=1; C2=2; C3=3
Za Nb = 6: C1=1; C2=2; C3=3
Za Nb = 8: C1=1; C2=3; C3=4
Mješanje podataka u kolonama matrice stanja (MixColumn)
U matrici stanja, kolone se tretiraju kao polinomi nad poljam GF(28).
Mnoze sa fiksnim polinomom c(x), koji je definisan relacijom:
c(x) = 0x03٠X3 + 0x01٠ X
2 + 0x01 ٠X + 0x02
i to po modulu (X4+1). Polinom c(x) je pri tome i relativno prost u
odnosu na polinom (X4 + 1), pa je samim tim i invertibilan. Mnozenje
oblika (a0,j + a1,j ٠X + a2,j ٠ X2 + a3,j ٠X
3)٠c(x)(mod (X
4 + 1)) moze se
realizovati i u matričnom obliku prema slijedećoj šemi:
Mnozenje oblika(a0,j + a1,j٠X + a2,j٠X2 + a3,j٠X
3)٠c(x)(mod (X
4 + 1))
Inverz od MixColumn je sličan jer se svaka kolona mnozi sa specifićnim
polinomom d(x), koji je definisan na osnovu relacije: c(x)٠d(x) = 0x01.
d(x) = 0x0B٠X3 + 0x0D٠X
2 + 0x09 ٠X + 0x0E
Dodavanje podključeva u matricu stanja, operacija AddRoundKey.
U skladu s ovom operacijom matrica stanja se transformiše putem
dodavanja elemenata podključa runde homolognim elementima
matrice stanja po osnovu primjene operacije ekskluzivno ili.
Šema dodavanje podključeva u matricu stanja
Ekspanzija ključa Cilj ekspanzije-proširenja ključa, je stvaranje
pretpostavki za generisanje podključeva pojedinih rundi da bi se mogla
realizovati operacija AddRoundKey. Proširenjem ključa generiše se
(Nr +1) Nw 32 bitnih riječi, koje se označavaju sa wi ( 0 ≤ i < (Nr +1) Nw
). Simbol Nr definisan je brojem runde, simbol Nw označava broj riječi
u podključu.
Prošireni ključ se formira tako da prve četiri riječi predstavljaju zadani
ključ. Svaka slijedeća riječ ri dobija se iz prethodne riječi ri-1 kojoj se u
skladu sa operacijom ekskluzivno ili dodaje riječ što se nalazi na
poziciji ri-Nk . Ako je i djeljivo s Nk , onda se prije primjene operacije
ekskluzivno ili nad tom riječi ri-1, obave slijedeće operacije:
- Operacija RotWord, kojom se rotira riječ za jedno mjesto ulijevo
(r0r1r2r3), postaje (r1r2r3r0),
- Operacija SubWord, kojom se uzima jedan po jedan bajt iz riječi i na
svaki pd njih primjeni djelovanje S kutije,
- Potom se još realizuje i operacija ekskluzivno ili s riječi, koja je
definisana relacijom: ( 02(i-4)/4
,00,00,00).
-