Uputstvo4

11
1 UVOD U OSNOVNE TEHNIKE KRIPTOGRAFIJE Tajnost poruke je osnov kriptografije. Moderne tehnike enkripcije su algoritmi predstavljeni pomoću matematičkih transformacija koje tretiraju poruku kao niz brojeva (algebarskih elemenata). Razumljiva (smislena - cleartext) poruka biva transformisana u nerazumljivu (unintelligible - ciphertext) poruku ili šifrat. U nekim slučajevima, matematičke transformacije se ne vrše na smislenim porukama (smislena poruka može prethodno biti enkriptovana). U tom slučaju poruke se zovu plaintext. Dakle, algoritam koji vrši enkripciju ne mora operisati nad smislenim porukama. Transformacija enkripcije mora imati osobinu reverzibilnosti: enkriptovan tekst mora biti vraćen u formu originalne poruke (cleartext ili plaintext). Inverzna transformacija enkripcije je dekripcija, takođe predstavljena algoritmom baziranim na matematičkim transformacijama. Konvencionalni pristup podrazumeva da su postupci enkripcije i dekripcije parametrizovani kriptografskim ključem. Sa ove tačke gledišta kriptosistem obuhvata: algoritam enkripcije, algoritam dekripcije, opis formata poruke i ključ (ili više ključeva). Kriptografija mora da obezbedi sledeće: Tajnost informacija (engl. Confidentiality) osigurava da je sadržaj informacije dostupan samo ovlašćenim osobama odnosno samo onim koji poseduju ključ. Postoje brojni načini zaštite tajnosti, počev od fizičke zaštite do matematičkih algoritama koji skrivaju podatke. Integritet informacija ili verodostojnost informacija koje se šifruju (engl. Data integrity) se brine o tome da ne dođe do neovlašćene promene informacija, kao što su menjanje informacije, brisanje informacije i zamena informacije. Da bi se osigurala verodostojnost, mora postojati način provere da li je informacija promenjena od strane neovlašćene osobe. Provera identiteta (engl. Authentication) omogućava identifikaciju pošiljaoca i primaoca tj. omogućava obema stranama proveru porekla poruke. Neporečivost poruke (engl: Non-repudiation) je nemogućnost negiranja slanja poruke i izbegavanja odgovornosti. Ovo je vrlo važna stavka, pogotovo u novije vreme kada se veliki deo novčanih transakcija obavlja putem interneta. Šenon (Shannon) je definisao karakterisike kriptosistema na sledeći način: 1. Definisao je šifarski prostor (prostor poruka message space)– to su sve moguće poruke. Unutar ovog prostora postoji potprostor smislenih poruka (po pravilu je u pitanju plaintext) koji je uobičajeno statistički jednostavan. 2. Dobar algoritam enkripcije je transformacija koja smislenu poruku ili plaintext (mali deo prostora poruka) uniformno distribuira preko celog prostora poruka. Šanon ovu karakteristiku izražava pomoću sledeće formule: = U n n n R F lim

description

tr4trtr

Transcript of Uputstvo4

Page 1: Uputstvo4

1

UVOD U OSNOVNE TEHNIKE KRIPTOGRAFIJE Tajnost poruke je osnov kriptografije. Moderne tehnike enkripcije su algoritmi predstavljeni pomoću matematičkih transformacija koje tretiraju poruku kao niz brojeva (algebarskih elemenata). Razumljiva (smislena - cleartext) poruka biva transformisana u nerazumljivu (unintelligible - ciphertext) poruku ili šifrat. U nekim slučajevima, matematičke transformacije se ne vrše na smislenim porukama (smislena poruka može prethodno biti enkriptovana). U tom slučaju poruke se zovu plaintext. Dakle, algoritam koji vrši enkripciju ne mora operisati nad smislenim porukama. Transformacija enkripcije mora imati osobinu reverzibilnosti: enkriptovan tekst mora biti vraćen u formu originalne poruke (cleartext ili plaintext). Inverzna transformacija enkripcije je dekripcija, takođe predstavljena algoritmom baziranim na matematičkim transformacijama. Konvencionalni pristup podrazumeva da su postupci enkripcije i dekripcije parametrizovani kriptografskim ključem. Sa ove tačke gledišta kriptosistem obuhvata: algoritam enkripcije, algoritam dekripcije, opis formata poruke i ključ (ili više ključeva). Kriptografija mora da obezbedi sledeće:

– Tajnost informacija (engl. Confidentiality) osigurava da je sadržaj informacije dostupan samo ovlašćenim osobama odnosno samo onim koji poseduju ključ. Postoje brojni načini zaštite tajnosti, počev od fizičke zaštite do matematičkih algoritama koji skrivaju podatke.

– Integritet informacija ili verodostojnost informacija koje se šifruju (engl. Data integrity) se brine o tome da ne dođe do neovlašćene promene informacija, kao što su menjanje informacije, brisanje informacije i zamena informacije. Da bi se osigurala verodostojnost, mora postojati način provere da li je informacija promenjena od strane neovlašćene osobe.

– Provera identiteta (engl. Authentication) omogućava identifikaciju pošiljaoca i primaoca tj. omogućava obema stranama proveru porekla poruke.

– Neporečivost poruke (engl: Non-repudiation) je nemogućnost negiranja slanja poruke i izbegavanja odgovornosti. Ovo je vrlo važna stavka, pogotovo u novije vreme kada se veliki deo novčanih transakcija obavlja putem interneta.

Šenon (Shannon) je definisao karakterisike kriptosistema na sledeći način: 1. Definisao je šifarski prostor (prostor poruka message space)– to su sve moguće poruke. Unutar ovog prostora postoji potprostor smislenih poruka (po pravilu je u pitanju plaintext) koji je uobičajeno statistički jednostavan. 2. Dobar algoritam enkripcije je transformacija koja smislenu poruku ili plaintext (mali deo prostora poruka) uniformno distribuira preko celog prostora poruka. Šanon ovu karakteristiku izražava pomoću sledeće formule:

Ω=∞→Un

n

nRFlim

Page 2: Uputstvo4

2

Ovde F označava funkciju (algoritam enkripcije) koja mapira poruku iz prostora Ω u prostor Ω (u samog sebe). Sa R je označena originalna poruka (plain text) odnosno mali deo prostora Ω. Kriptosistem sadrži: 1. Algoritam enkripcije E.

2. Algoritma dekripcije D.

3. Prostor Ključeva K.

3. Prostor smislenih poruka M (može biti i plaintext) – kao niz karaktera, odnosno niz stringova nad nekim alfabetom.

4. Prostor šifrovanih poruka C.

Enkripcija je definisana sa:

)(mc Eke= , ovde Cc∈ , Kke∈ , Mm∈ . Ključ ke se naziva enkripcioni ključ (encryption key). Dekripcija je definisana sa:

)(cm Dkd= , ovde Cc∈ , Kkd ∈ , Mm∈ . Ključ kd se naziva dekripcioni ključ (decryption key). Mora biti zadovoljeno:

))(( mm ED kekd= .

Kriptosistem

Page 3: Uputstvo4

3

Substituciono šifrovanje (Substitution Cyphers) Algoritam enkripcije )(mEke vrši supstituciju (zamenu) poruke Mm∈ šifrovanom porukom

Cc∈ . Algoritam može biti parametrizovan tajnim ključem Kke∈ . Dekripcija je definisana sa: )(cDkd , gde Kkd ∈ . U opštem slučaju, supstitucija je mapiranje: CM →:π , reverzno

mapiranje je takođe supstitucija definisana sa MC→− :1π . Primer: Neka je 26Ζ== CM . Ovim je definisano da su prostori poruke i šifrovane poruke definisani nad skupom od 26 karaktera; npr. A=0, B=1, ..., Z=25. Neka je tabela supstitucije za šifrovanje poruke: A B C D E F G H I J K L M N O P R S T U V X Y Z Q W 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 21 12 25 17 24 23 19 15 22 13 18 3 9 5 10 2 8 16 11 14 7 1 4 20 0 6

Ovo znači da se kôd 0 zamenjuje kôdom 21, umesto kôda 1 piše se kôd 12, itd. Ključ se ne koristi. Poruka: »IT WILL HAPPEN AGAIN«. Šifrovana poruka: »YL GYDD PXCCQF XUXYF« (razmaci nisu šifrovani). Tabela supstitucije za dešifrovanje poruke definisana je sa: A B C D E F G H I J K L M N O P R S T U V X Y Z Q W 21 12 25 17 24 23 19 15 22 13 18 3 9 5 10 2 8 16 11 14 7 1 4 20 0 6 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

Dešifrovana poruka je: »IT WILL HAPPEN AGAIN« Ovakav način šifrovanja je loš, jer primena tehnike kriptoanalize pod nazivom analiza frekventnosti (frequency anlysis) koja koristi redundantnosti govornog jezika veoma lako generiše originalnu poruku. Sigurniji način šifrovanja poruke je korišćenje ključa. Primena funkcije XOR Funkcija XOR je često korišćena kao deo raznih algoritama šifrovanja koji koiriste ključ. Primer: ASCII kôdni raspored dat je tabelom: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90

Neka poruka glasi: „ASUSSUAL“ Neka je data šifra: „GOLD“

Page 4: Uputstvo4

4

ASCII kôd poruke je: 65 83 85 83 83 85 65 76 ASCII kôd šifre je: 71 79 76 68 Binarni kôd poruke je: A S U S S U A L 1000001 1010011 1010101 1010011 1010011 1010101 1000001 1001100 Binarni kôd šifre je: G O L D 1000111 1001111 1001100 1000100 Pomoću XOR funkcije binarni kôdovi poruke i šifre daju šifrovanu poruku – šifrat. Dešifrovanje se vrši takođe pomoću XOR funkcije: Poruka : 10000011010011101010110100111010011101010110000011001100 Šifra : 10001111001111100110010001001000111100111110011001000100 Šifrovana poruka: 00001100011100001100100101110010100001101000011010001000 Šifra : 10001111001111100110010001001000111100111110011001000100 Poruka : 10000011010011101010110100111010011101010110000011001100 Vegenére-ov postupak šifrovanja Upotrebljava se šifrovanje pomoću ključa koristeći operaciju celobrojnog deljenja. Primer: Neka je ključ: »ORANGE«, odnosno prema sledećoj tabeli karakteri (simboli) ključa su zamenjeni kôdovima: 14 16 0 13 6 4. A B C D E F G H I J K L M N O P R S T U V X Y Z Q W

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

Poruka: »IT WILL HAPPEN AGAIN« je šifrovana na sledeći način (razmaci su zanemareni):

Poruka I T W I L L H A P P E N A G A I N Kôd poruke 8 18 25 8 11 11 7 0 15 15 4 13 0 6 0 8 13 Kôd ključa 14 16 0 13 6 4 14 16 0 13 6 4 14 16 0 13 6 Ključ O R A N G E O R A N G E O R A N G

Šifrovanje se vrši na sledeći način: 8+14 = 22 (18 + 16) – 26 = 8 25 + 0 = 25 8 + 13 = 21 11 + 6 = 17 11 + 4 = 15 7 + 14 = 21 0 + 16 = 16 15 + 0 = 15 (15 + 13) – 26 = 2

Page 5: Uputstvo4

5

4 + 6 = 10 13 + 4 = 17 0 + 14 = 14 6 + 16 = 22 0 + 0 = 0 8 + 3 = 21 13 + 6 = 19 Kôd šifrovane poruke je: 22 8 25 21 17 15 21 16 15 2 10 17 14 22 0 21 19 A B C D E F G H I J K L M N O P R S T U V X Y Z Q W 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

Prema prethodnoj tabeli, šifrovana poruka je: »YI WXSP XRPCKS OYAXU«. Dešifrovanje poruke se vrši analognim postupkom:

Šifrovana poruka

Y I W X S P X R P C K S O Y A X U

Kôd šifrovane poruke

22 8 25 21 17 15 21 16 15 2 10 17 14 22 0 21 19

Kôd šifre 14 16 0 13 6 4 14 16 0 13 6 4 14 16 0 13 6 Šifra O R A N G E O R A N G E O R A N G

Prema prethodnoj tabeli je: 22 – 14 = 8 (8 – 16) + 26 = 18 25 – 0 = 25 21 – 13 = 8 17 – 6 = 11 15 – 4 = 11 21 – 14 = 7 16 – 16 = 0 15 – 0 = 15 (2 – 13) + 26 = 15 10 – 6 = 4 17 – 4 = 13 14 – 14 = 0 22 – 16 = 6 0 – 0 = 0 21 – 13 = 8 19 – 6 = 13 Kôd dešifrovane poruke je 8 18 25 8 11 11 7 0 15 15 4 13 0 6 0 8 13. Originalna poruka »IT WILL HAPPEN AGAIN« formirana je na osnovu početne tabele: A B C D E F G H I J K L M N O P R S T U V X Y Z Q W 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

Page 6: Uputstvo4

6

Data Encription Standard (DES) Razvijen od strane IBMa kao unapređena verzija sistema Lucifer. Algoritam radi sa 64 bitnim blokovima podataka. Blok od 64 bita se deli na levu i desnu polovinu (svaka ima 32 bita). Rad algoritma odvija se u 16 identičnih rundi.

1−= ii RL

),( 11 iiii KRfLR −− ⊕=

Jedna runda DES algoritma Rad DES algoritma kratko je opisan pomoću osam koraka: 1. Početna permutacija Obavlja se pre prve runde i definisana je tabelom:

58 50 42 34 26 18 10 2 60 52 44 36 28 20 12 4 62 54 46 38 30 22 14 6 64 56 48 40 32 24 16 8 57 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3 61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7

Page 7: Uputstvo4

7

Ovom tabelom je definisano da se 58. bit poruke premešta na mesto prvog bita, 50. bit poruke na mesto drugog bita, itd. 2. Transformacija ključa Ključ od 64 bita je redukovan na 56 bita (svaki osmi bit je bit parnosti) pomoću permutacije ključa. Za svaku od 16 rundi DES algoritma generiše se potključ dužine 48 bita na sledeći način: Ključ dužine 56 bita deli se na dve polovine dužine 28 bita. Zatim se ove polovine ciklički pomeraju ulevo za 1 ili 2 bita zavisno od runde.

Runda 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16Pomeraj 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1 Vrši se permutacija kompresije nad ključem:

14 17 11 24 1 5 3 28 15 6 21 10 23 19 12 4 26 8 16 7 27 20 13 2 41 52 31 37 47 55 30 40 51 45 33 48 44 49 39 56 34 53 46 42 50 36 29 32 Bit na poziciji 14 biva premešten na poziciju jedan, bit na poziciji 17 biva premešten na poziciju dva, itd. Na ovaj način, ključ dužine 56 bita transformisan je u ključ dužine 48 bita. 3. Permutacija proširenja Ova operacija, desnu stranu poruke ( 1−iR ) koja je dužine 32 bita proširuje na dužinu od 48 bita. Koristi se sledeća tabela:

32 1 2 3 4 5 4 5 6 7 8 9 8 9 10 11 12 13 12 13 14 15 16 17 16 17 18 19 20 21 20 21 22 23 24 25 24 25 26 27 28 29 28 29 30 31 32 1 4. Primena XOR operatora Na prošireni deo 1−iR koji je sada dužine 48 bita i na komprimovani ključ koji je takođe dužine 48 bita primenjuje se XOR operator. 5. Supstitucija pomoću S – kutija Rezultat XOR operatora dužine 48 bita ulazi u supstitucione kutije, tako da svaka kutija prima 6 bitova (6*8 = 48), a kao rezultat daje 4 bita, odnosno ukupno 32 bita (4*8 = 32). Na sledećoj slici prikazan je sistem koji sadrži osam supstitucionih kutija.

Page 8: Uputstvo4

8

Sistem supstitucionih kutija Supstituciona kutija S1 definisana je na sledeći način:

14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13 Na ulazu u S kutiju je 6 bitova: b1 b2 b3 b4 b5 b6. Bitovi b1 i b6 se kombinuju i formiraju 2 bitni broj (od 0 do 3) koji određije vrstu tabele. Bitovi b2 b3 b4 b5 se kombijuju i formiraju 4 bitni broj (od 0 do 15) koji određuje kolonu tabele. Broj koji se nalazi u izabranoj ćeliji se pretvara u binarni zapis i kao takav čini izlaz S kutije. Npr.

b1 b2 b3 b4 b5 b6 1 1 0 0 1 1

b1b6 = (11)2 = (3)10. Odabrana je vrsta 3 S1 – kutije (vrste se broje od 0). b2b3b4b5 = (1001)2 = (9)10. Odabrana je kolona 9 S1 – kutije (kolone se broje od 0). S1[3,9] = (11)10 =(1011)2. Na ulazu S1 – kutije je: 110011, a na izlazu će biti: 1011. Na ovaj način je ulaz u 8 S kutija, koji je dužine 48 bita, transformisan u izlaz dužine 32 bita. 6. Permutacija Ovim postupkom se 32 bita permutuju bez promene dužine prema sledećoj tabeli.

16 7 20 21 29 12 28 17 1 15 23 26 5 18 31 102 8 24 14 32 27 3 9 19 13 30 6 22 11 4 25

Page 9: Uputstvo4

9

7. Primena XOR operatora Predhodno formirana 32 bita kombinuju se pomoću XOR operacije sa levom polovinom ( 1−iL ) početnog bloka podataka i formira se iR . 8. Završna permutacija Završni blok 1616LR se koristi kao ulaz u završnu permutaciju koja je inverzna početnoj permutaciji. Ovim je jedna runda završena.

Page 10: Uputstvo4

RC4 RC4 je najviše korišćena lančana šifra. Njen autor je Ronald Rovest. Koristi se u popularnim protokolima kao što su SSL (radi zaštite Internet saobraćaja) i WEP (za zaštitu bežičnih mreža). Struktura ovog pseudo slučajnog generatora bita je držana u tajnosti, sve dok njegov izvorni kod nije objavljen 1994. (Cypherpunks mailing list). Glavni faktori uspeha RC4 u mnogim aplikacijama, jesu velika brzina i jednostavnost. RC4 generiše pseudo slučajni niz bita (šifru) pomoću ključa. U zavisnosti od izabranog prirodnog broja n (najčešće 8), i na osnovu ključa formira se niz od 2n brojeva S0, S1, … , S2

n-1,

koji su permutacija skupa 0, 1, … , 2n-1. To predstavlja prvi deo algoritma. U drugom delu algoritma se na osnovu dobijenih brojeva brojeva S0, S1, … , S2

n-1 i definisanih indeksa (i, j)

omogućuje slučajno generisanje niza St. Dobijena šifra se koristi za šifrovanje otvorenog teksta pomoću XOR operatora (ekskluzivno OR). Algoritam Najpre se bira prirodni broj n. Na osnovu ključa formira se niz od 2n brojeva S0, S1, … , S2

n-1,

koji su permutacija skupa 0, 1, … , 2n-1. Da bi se formirao ovaj niz, najpre se stavi Si = i za i = 0, 1, … , 2n-1. Zatim se od ključa formira drugi niz od 2n n-torki bita (koji se takođe smatraju brojevima iz opsega od 0 do 2n-1), od ključa ponov ljenog dovoljan broj puta da popuni ceo niz K0, K1, . . . , K2

n-1.

I DEO ALGORITMA j : = 0 inicijalizacija brojača for i : = 0 to 2n-1 do

j : = j + Si + Ki (mod 2n) zameniti Si i Sj

II DEO ALGORITMA i : = 0; j : = 0 inicijalizacija brojača početak generisanja l slučajnih bita for r : = 0 to l - 1 do

i : = i + 1 (mod 2n) j : = j + Si (mod 2n) zameniti Si i Sjt : = Si + Sj (mod 2n) St određuje narednih n bita izlaznog niza

Indeks i obezbeđuje da se svaki elemenat niza (tabele) S promeni bar jednom, a indeks j obezbeđuje da se elementi menjaju na slučajan način.

10

Page 11: Uputstvo4

Primer rada algoritma za slučaj n = 3 Neka je ključ 011001100001101, odnosno 011 001 100 001 101, odnosno [3; 1; 4; 1; 5]. Periodičnim proširivanjem dobija se [3; 1; 4; 1; 5; 3; 1; 4] = [K0; K1; K2; K3; K4; K5; K6; K7]:

Niz ključa dobija se od trobitnih reprezentacija brojeva 1; 0; 0; 2; 2; 6; 7; 5; 4; 2; 0; 6, odnosno 001 000 000 010 010 110 111 101 100 010 000 110 (bez razmaka).

11