Beruflich Dokumente
Kultur Dokumente
SEMINARSKI RAD
KRIPTOGRAFIJA
NOVEMBAR,2009
UVOD
Sama enkripcija se sastoji od toga da se čisti tekst (ili bilo kakva druga
informacija) sakrije tj. prikaže na nerazumljiv način svima osim osobama koje ne
poznaju dekripcijski ključ.
Danas je situacija bitno drugačija. Postoji puno sustava, što besplatnih koji koji
omogućavaju vrlo visoki nivo kriptiranja svakome tko želi. Doduše u nekim
državama i danas postoje zakoni o ograničenju korištenja kriptografskih alata, ali
sve je to uzaludno kada se na internetu mogu naći gotovo sve implementacije
kriptografskih metoda.
2
ISTORIJA KRIPTOGRAFIJE
Nikad nije točno utvrđen početak kriptografije, ali se smatra da je počela više od
2000 godina pr. Kr. jer iz tog vremena potječu prvi pronađeni tragovi šifriranja.
Točnije, oko 1900. godine pr. Kr. u Egiptu nastao je natpis koji se danas smatra
prvim dokumentiranim primjerom pisane kriptografije. U 6. stoljeću pr. Kr. u
zapisu dijela Biblije, Knjige o Jeremiji, korištena je jednostavna šifra koja izvrće
abecedu naopako. Šifra je poznata pod imenom ATBASH, a bila je jedna od
hebrejskih šifri koje su u to vrijeme korištene. U 6. desetljeću pr. Kr. Julije Cezar
je u državnim komunikacijama koristio jednostavnu supstituciju koja je kasnije
njemu u čast dobila ime "caesar" šifriranje. Ideja je bila u pomicanju svih slova za
tri mjesta naprijed. Takva šifra danas se smatra slabijom čak i od ATBASH šifre,
ali je u to vrijeme bila dobra jer je mali broj ljudi znao čitati.
1
A. Dujella, M. Maretić: Kriptografija, Element, Zagreb, 2007.
3
Patentnom uredu u SAD-u prijavljen je prvi izum vezan uz kriptografiju. Do 1980.
prijavljeno je 1769 takvih izuma.
20. stoljeće bilo je vrlo burno: 2 svjetska rata i mnogo raznih sukoba u kojima je
kriptografija odigrala značajnu ulogu. William Frederick Friedman (kasnije poznat
kao otac američke kriptoanalize) prvi je uveo pojam "kriptoanaliza". Kriptografiju
su rado koristili i kriminalci, a jedan vrlo slikovit primjer je iz razdoblja prohibicije.
Da bi mogli švercati alkohol koristili su vrlo komplicirane sustave šifriranja koji su
u to vrijeme bili vrlo napredni. 1923. Arthur Scherbius proizvodi svoj najslavniji
proizvod - široko poznatu Enigmu. Ona je prvotno trebala biti komercijalni
proizvod, ali nije uspjela pa su je preuzeli njemački nacisti. Oni su je poboljšali pa
je postala glavni uređaj za šifriranje u nacističkoj Njemačkoj. Prvi je njenu šifru
slomio jedan poljski matematičar na osnovi ukradenog primjerka šifriranog teksta
i dnevnih ključeva za tri mjeseca unaprijed. Kasnije su uspješno razbijene i druge
Enigmine šifre prvenstveno pod vodstvom Alana Turinga.
30-ih godina 20. stoljeća nastaje američki «suparnik» Enigme SIGABA. Važno je
spomenuti da je bila tehnički naprednija od Enigme.
Nakon II. Svjetskog rata razvoj [računalo|računala]] daje novi zamah kriptografiji.
Tako 1970. IBM razvija šifru pod nazivom Lucifer, koja kasnije, 1976. inspirira
stvaranje DES (Data Encryption Standard) šifre. Široko je prihvaćena u svijetu
zbog svoje dokazane otpornosti na napade. 1976. se također pojavila ideja
javnih klučeva. Godinu kasnije grupa početnika u kriptografiji Rivest, Shamir i
Adleman stvorili su algoritam koji su po prvim slovima svojih prezimena nazvali
RSA algoritam2. To je bila praktična šifra sa javnim ključevima koja se mogla
koristiti i za šifriranje poruka i za digitalni potpis, a bazirala se na težini
faktoriziranja velikih brojeva. 1984.-1985. u softveru za čitanje novosti na
USENET-u upotrebljena je rot13 šifra (rotiranje slova za 13, slično "caesar" šifri)
da bi se spriječio pristup djece za njih neprikladnim sadržajima. Ovo je prvi
poznati primjer uspješnog korištenja šifre sa javnim ključem. 1990. je u
Švicarskoj objavljen "Prijedlog za novi Standard za šifriranje blokova podataka"
tj. prijedlog za International Data Encryption Algorithm (IDEA), koji bi trebao
zamijeniti DES. IDEA koristi 128-bitni ključ i koristi operacije koje je lako
implementirati na računalu. 1991. Phil Zimmermann objavljuje prvu verziju svog
PGP-a (Pretty Good Privacy) programa za zaštitu e-mailova i podataka općenito.
Zbog toga što je bio freeware komercijalni proizvodi iste vrste su redom propali, a
PGP je postao svjetski standard. U prvo vrijeme koristio je RSA algoritam koji se
dugo vremena smatrao dosta sigurnim. Računala su sve brža i brža, a razvoj
svega vezanog uz njih sve je teže pratiti. Budućnost kriptografije je danas
povezana s budućnošću računala.
2
A. Dujella, M. Maretić: Kriptografija, Element, Zagreb, 2007.
4
METODE ŠIFRIRANJA
SUPSTITUCIJSKE ŠIFRE
5
YHQL YLGL YLFL.
šifrat DEFGHIJKLMNOPQRSTUVWXYZABC
U daljnjim primjerima koristit ćemo se engleskim (međunarodnim) alfabetom od
26 slova. Ukoliko ćemo raditi s otvorenim tekstom na hrvatskom jeziku, onda
ćemo Č i Ć zamijeniti s C, a Đ, Dž, Lj, Nj, Š, Ž redom s DJ, DZ, LJ, NJ, S, Z.
Primijetimo da na ovom mjestu zamjena slova brojevima još nije bila nužna
(mogli bismo sve definirati u terminima zamjena slova i njihovog pomicanja
unutar alfabeta, te pojasniti što se događa kad "preskočimo" zadnje slovo), no
uskoro će korištenje ovog matematičkog rječnika postati nužno.
ABCDEFGHIJK L M N O P Q R S T U V W X Y Z
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
U Cezarovoj šifri su osnovni elementi (simboli) otvorenog teksta slova (odnosno
njihovi numerički ekvivalenti), a ključ K određuje za koliko mjesta udesno ćemo
pomicati slova pri šifriranju. Očito je dK(eK(x)) = x, kao što se zahtjeva u definiciji
3
http://os2.zemris.fer.hr/ostalo/2002_saban/index.htm
6
kriptosustava. Za K = 3 dobiva se originalna Cezarova šifra. Postoje naznake da
je Cezarov nećak, prvi rimski car August, koristio najjednostavniju verziju ove
šifre, pomičući slova samo za jedno mjesto u alfabetu, tj. uzimajući da je K = 1.
Rješenje. Budući da je prostor ključeva jako mali (ima ih 26) zadatak možemo
riješiti "grubom silom", tj. tako da ispitamo sve moguće ključeve, sve dok ne
dođemo do nekog smislenog teksta. Za d0, d1, d2, ... dobivamo redom:
PWNUYTLWFKNOF
OVMTXSKVEJMNE
NULSWRJUDILMD
MTKRVQITCHKLC
LSJQUPHSBGJKB
KRIPTOGRAFIJA
Dakle, ključ je K = 5, a otvoreni tekst je KRIPTOGRAFIJA.
Ova šifra se zove afinoma zato što su funkcije šifriranja afine. Provjerimo je li
uvjet dK(eK(x)) = x zadovoljen. Zaista,
Ovdje a-1 označava multiplikativni inverz broja a u prstenu Z26. Budući da broj 26
nije prost, nemaju svi elementi iz Z26 multiplikativni inverz, već ih imaju upravo
brojevi koji su relativno prosti s 26, tj. za koje vrijedi da je najveći zajednički
4
http://os2.zemris.fer.hr/ostalo/2002_saban/index.htm
7
djelitelje od a i 26 jednak 1 (to pišemo: (a, 26) = 1). Prikažimo te brojeve zajedno s
njihovim inverzima:
a 1 3 5 7 9 11 15 17 19 21 23 25
a-1 1 9 21 15 3 19 7 23 11 5 17 25
25 · 7 + 3 ≡ 22 (mod 26),
0 · 7 + 3 ≡ 3 (mod 26),
3 · 7 + 3 ≡ 24 (mod 26),
17 · 7 + 3 ≡ 18 (mod 26),
pa je šifrat WDYDS.
OZWHRYEZCVWFCTPCUWRCFPYHWI
No, postoji i elegantniji način ukoliko znamo kojim je jezikom pisan otvoreni tekst.
Recimo da nam je poznato da je u ovom slučaju otvoreni tekst pisan hrvatskim
jezikom. Frekvencijom slova u hrvatskom, a i nekim drugim jezicima, detaljnije
ćemo se pozabaviti malo kasnije. Za sada nam je potrebna samo činjenica da su
najfrekventnija slova u hrvatskom jeziku A, I, O, E, N, i to upravo u tom
redoslijedu. U našem šifratu uočavamo da su najfrekventnija slova C i W, koja se
javljaju po 4 puta. Iako je naš šifrat prekratak, možemo ipak očekivati da su ova
dva slova šifrati od A, I, O, E ili N. Pa pogledajmo kakve smo sreće.
5
http://dokumentacija.linux.hr/Sigurnost-KAKO-6.html
8
funkciju dK na naš šifrat, dobivamo otvoreni tekst (s umetnutim razmacima i
"kvačicama"):
Ovdje imamo čak 26! ≈ 4 · 1026 mogućih ključeva, tako da je napad ispitivanjem
svih mogućih ključeva praktički nemoguć, čak i uz pomoć računala. Međutim,
supstitucijsku šifru je moguće lako dekriptirati koristeći statistička svojstva jezika
na kojem je pisan otvoreni tekst. Osnovna metoda je analiza frekvencije slova.
Broji se pojavljivanje svakog slova u šifratu, te se distribucija slova u šifratu
uspoređuje s poznatim podatcima o distribuciji slova u jeziku na kojem
pretpostavljamo da je napisan otvoreni tekst. Vrlo je vjerojatno da najfrekventnija
slova šifrata odgovaraju najfrekventnijim slovima jezika. Ta vjerojatnost je to veća
što je dulji šifrat. Također, korisni mogu biti i podatci o najčešćim bigramima
(parovima slova) i trigramima (nizovima od tri slova) u jeziku. Kod nizova od četiri
ili više slova, frekvencije već uvelike ovise o sadržaju teksta, i najfrekventniji
nizovi obično dolaze od jedne riječi koja se često ponavlja u tesktu (npr. osobnog
imena).
Začetci analize frekvencija se mogu naći u 14. stoljeću u djelu arapskog autora
Ibn ad-Duraihima. Njegova zapažanja su objavljena u odjeljku posvećenom
kriptologiji u velikoj enciklopediji u četrnaest svezaka čiji je autor Qalqashandi.
Odjeljak ima naslov "O skrivanju tajnih poruka u pismima". Nedavno pronađeni
rukopisi sugeriraju međutim da su arapski lingvisti tu metodu poznavali možda i
pet stoljeća ranije. Čini se da su u europskoj kriptografiji metodu analize
frekvencija u kriptoanalizi prvi počeli koristiti talijanski kriptografi u 15. stoljeću.
Naime, poznato je da su svoje poruke šifrirali na način da su najfrekventnija
slova zamjenjivali s više različitih simbola, pa na osnovu toga možemo zaključiti
da im je bilo poznato kako analiza frekvencija slova može dovesti do razbijanja
supstitucijske šifre. Za razliku od znanstvenika ad-Duraihima, oni svoja saznanja
nisu javno objavljivali, već su ih nastojali što bolje unovčiti. Naime, mnoge su
tadašnje talijanske kneževine imale ljude plaćene za razbijanje šifriranih poruka
(jedan od najpoznatijih je venecijanski "tajnik za šifre" Giovanni Soro), i taj se
posao često prenosio unutar obitelji6. Ovakvu situaciju u kojoj praktički
istovremeno do otkrića značajnih za kriptografiju dođu znastvenici koji žele što
6
http://dokumentacija.linux.hr/Sigurnost-KAKO-6.html
9
prije objaviti svoje rezultate i dobiti za njih priznanje, te ljudi iz obavještajnih ili
komercijalnih institucija koji ne žele ili ne smiju odmah objaviti svoje rezultate,
susrećemo često u povijesti kriptografije sve do današnjih dana (npr. pitanje
prvenstva kod otkrića diferencijalne kriptoanalize ili kriptosustava s javnim
ključem).
10
J 2 J 3
Q 1 Y 1
X 1 X 0
Z 1 Q 0
JE (2.7 %), NA (1.5 %), RA (1.5 %), ST, AN, NI, KO, OS, TI, IJ, NO, EN, PR (1.0
%).
TH (3.2 %), HE (2.5 %), AN, IN, ER, RE, ON, ES, TI, AT (1.2 %),
a trigrami THE (3.5 %), ING (1.1 %), AND (1.0 %), ION, TIO, ENT, ERE, HER
(0.7 %).
ER (4.1 %), EN (4.0 %), CH (2.4%), DE, EI, ND, TE, IN, IE, GE (1.5 %),
a trigrami EIN (1.2 %), ICH (1.1 %), NDE (0.9 %), DIE, UND, DER, CHE, END
(0.8 %).
11
(Zbog preglednosti se kod duljih šifrata obično stavlja razmak nakon svakog
petog slova - to naravno nema nikakve veze s razmacima u otvorenom tekstu, za
koje smo se dogovorili da ćemo ih zanemarivati kod šifriranja.)
A | P, J
B | C, U, C, I, Q
C | W, K, E, Q, J
D| U
E | W, Q, Q
F|
G | D, R, T, V, B
H|
I | Q, K
J | G, G, K
K | I, B, A, O, Y, R, Z
L|
M|
N| O
O | Q, B, Q, Q, Q, R, G
P | K, Q
Q | C, C, R, O, V, O, B, P, A, E, O, K, *
R | W, W, W, B
S| J
T | Q, Q, S, W
U | K, Q
V | K, O
W | T, N, O, T, E, G, C
X|
Y| W
Z| G
Iz tablice iščitavamo da su najfrekventnija slova:
a najfrekventniji bigrami:
12
na pretpostavku da je e(J) = R i e(E) = W. Pokušajmo otkriti šifrat čestog bigrama
ST (najčešćeg od neotkrivenih). Najozbiljniji kandidati su BC i JG. Možemo uzeti
neki od njih, pa vidjeti što ćemo dobiti. Mi ćemo krenuti s BC, jer frekvencije od B
i C odgovaraju očekivanim frekvencijama od S i T. Dakle, uzmimo da je e(S) = B i
e(T) = C. Od najfrekventnijih slova u hrvatskom jeziku, još nismo odgonetnuli
šifrate od I i O. Glavni kandidati su K i G, i to upravo tim redoslijedom. Pa
uzmimo da je e(I) = K i e(O) = G. Rezimirajmo ono što smo do sada pretpostavili:
otvoreni tekst 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
šifrat q w kr og bc
Ubacimo ove pretpostavke u polazni šifrat:
13
12 17 37 23 57 i 12 17 42 23 57,
onda je prilično izvjesno da 37 i 42 predstavljaju isto slovo otvorenog teksta, pa
ih možemo "spojiti" u analizi frekvencija.
MODERNA KRIPTOGRAFIJA
U modernoj kriptografiji još se uvijek koristi šifriranje simetričnim ključem. Primjer
za to je IBM-ova DES šifra koju i danas koristi Unix, kao i njen prethodnik šifra
Lucifer. Najčešći problem ove metode je i danas način prijenosa ključa. Postoje i
varijante metode kod kojih su ključevi različiti ali se mogu jednostavno jedan iz
drugoga izračinati7. Dolazimo do paradoksa da bi najsigurnije bilo poslati ključ
šifrirano i počinje vrtnja u krug. DES je javno dostupna i korištena metoda
šifriranja od 1976. godine, iako se danas smatra nesigurnom, često je možemo
naći u upotrebi (ATM, šifriranje e-mailova, kod pristupanja sustava s udaljenosti
itd.)
Javni ključevi
14
ključevima da ju David Kahn opisuje kao "najveći, revolucionarni napredak u
kriptografiji od renesanse".
Iako kriptografija postoji već 4000 godina ona još nije ni blizu svom kraju. Razni
događaji kroz povijest utjecali su na razvoj kriptografije (svjetski i drugi ratovi -
Enigma), a novu dimenziju dobila je razvojem računala. Vječni problem
kriptografije svakako je pitanje sigurnosti, a zakonske odredbe nekih zemalja još
uvijek ne dozvoljavaju njenu slobodnu uporabu. Unatoč tome kriptografija se sve
više širi. Problem koji se u najnovije vrijeme javlja zbog širenja terorizma je i
problem privatnosti. Taj problem je vrlo ozbiljan jer se zbog sigurnosnih razloga
zadire u privatnost običnog čovjeka. Čak ni šifriranje ne garantira privatnost jer
se razbijanje šifri jako brzo razvija.
PRIMJERI
15
Vigenèreova šifra
Playfairova šifra
Hillova šifra
Jednokratna bilježnica
Transpozicijske šifre
Lester Hill je 1929. godine izumio kriptosustav kod kojeg se m uzastopnih slova
otvorenog teksta zamjenjuje s m slova u šifratu. Dakle, radi se o poligramskoj
šifri. Ukoliko broj slova u originalnom otvorenom tekstu nije djeljiv s m, poruku
trebamo nadopuniti da bimso je mogli podijeliti u blokove od po m slova.
Kripotsustav je definiran na sljedeći način:
Za K K definiramo
eK(x) = xK,
dK(y) = yK-1,
Hill je preporučio uporabu involutornih matrica, tj. onih kod kojih je K-1 = K. To
teoretski smanjuje sigurnost, jer je prostor ključeva manji, ali olakšava postupak
šifriranja i dešifriranja. Napomenimo da je matrica invertibilna u Z26 ako i samo
ako joj determinanta ima inverz u Z26, tj. ako je (det A, 26)=1.
5 8 22
K= 2 5 24 ,
10 20 17
16
te neka je otvoreni tekst UTORAK.
5 8 22
(20 19 14) 2 5 24 = (278 535 1134) mod 26 = (18 15 16) = SPQ,
10 20 17
5 8 22
(17 0 10) 2 5 24 = (185 200 170) mod 26 = (3 18 14) = DSO.
10 20 17
5 8 22
(18 19 14) 2 5 24 = (8 25 24) = IZY.
10 20 17
17
Ako X nije invertibilna, morat će pokušati s nekim drugim skupom od m parova
otvoreni tekst - šifrat. Jasno je da kod napada "odabrani otvoreni tekst" nema
ovog problema, jer će kriptoanalitičar odabrati otvoreni tekst koji daje invertibilnu
matricu.
Rješenje. Imamo: eK(25, 0) = (19, 7), eK(6, 17) = (22, 9), eK(4, 1) = (10, 1). Iz prva
dva para dobivamo matričnu jednadžbu
25 0 19 7
K= .
6 17 22 9
a22 -a12
A-1 = (det A)-1 .
-a21 a11
17 0 25 0
X-1 = 3 = ,
-6 25 8 23
pa je
25 0 19 7 7 19
K= = .
8 23 22 9 8 3
7 19
(4 1) = (10 1).
8 3
18
ZAKLJIČAK
19
Metode, koje su se najčešće tijekom povijesti koristile za šifriranje poruka, bile su
zamjena (supstitucija) i premještanje (transpozicija) osnovnih elemenata teksta
(slova, blokova slova, bitova). Kombinaciju ovih dviju metoda susrećemo i danas
u najmodernijim simetričnim kriptosustavima. Asimetrični kriptosustavi ili
kriptosustavi s javnim ključem pojavili su se tek 70-tih godina 20. stoljeća. Kod
njih se za šifriranje koriste funkcije koje su "jednosmjerne" (one se računaju lako,
ali njihov inverz vrlo teško). To znači da funkcija za šifriranje može biti javna, dok
samo funkcija za dešifriranje mora biti tajna. U konstrukciji jednosmjernih funkcija
koriste se "teški" matematički problemi, kao što su faktorizacija velikih prirodnih
brojeva, te logaritmiranje u konačnim grupama.
LITERATURA
http://os2.zemris.fer.hr/ostalo/2002_saban/index.htm
http://dokumentacija.linux.hr/Sigurnost-KAKO-6.html
20
SADRŽAJ
Uvod 2
Istorija kriptografije 3
21
Metode šifriranja 5
Supstitucijske šifre 5
Moderna kriptografija 14
Primjeri 16
Zaključak 20
Literatura 21
22