Enkripcija — разлика између измена

С Википедије, слободне енциклопедије
Садржај обрисан Садржај додат
.
.
Ред 1: Ред 1:
{{rut}}
'''Enkripcija''' ({{jez-eng-lat|encryption}}) ili šifrovanje je proces u [[kriptografija|kriptografiji]] kojim se vrši izmena [[podatak]]a tako da se podaci, ili poruke, učine nečitljivim za osobe koje ne poseduju određeno znanje ([[ključ]]). Na taj način se dobija šifrovana [[informacija]]. Da bi ovi podaci postali razumljivi i upotrebljivi, potrebno je da se dekodiraju. Dekodiranje se vrši procesom suprotnim od enkripcije koji se naziva [[dekripcija]].


'''Enkripcija''' ({{jez-eng-lat|encryption}}) ili šifrovanje je proces u [[kriptografija|kriptografiji]] kojim se vrši izmena [[podatak]]a tako da se podaci, ili poruke, učine nečitljivim za osobe koje ne poseduju određeno znanje ([[ključ]]). Na taj način se dobija šifrovana [[informacija]]. Da bi ovi podaci postali razumljivi i upotrebljivi, potrebno je da se dekodiraju. Dekodiranje se vrši procesom suprotnim od enkripcije koji se naziva [[dekripcija]].<ref>{{cite book |title= Introduction to Modern Cryptography |author= Jonathan Katz |author2= Yehuda Lindell |publisher= Chapman & Haii/CRC |date= 2008 |isbn= 978-1-58488-551-1 }}</ref>
U netehničkoj upotrebi, '''šifra''' i '''kod''' predstavljaju isti termin, ali u kriptografiji ti su pojmovi različiti. U klasičnoj kriptografiji šifra je odvojena od koda. Načelno, u kodu se zamenjivanje vrši na temelju obimne knjige kodova, u kojoj se reči i fraze zamenjuju slučajnim nizom znakova. Na primer, -{UQJHS}- može biti kod za „Nastavite do sledećih koordinata”. Originalna (izvorna) [[informacija]] poznata je kao '''otvoreni tekst''', a šifrirani oblik kao šifrirani tekst ili '''šifrat'''. Šifrovana poruka sadrži sve informacije iz otvorenog teksta, ali nije u obliku čitljivom za čoveka ili računar bez primene odgovarajućeg mehanizma za njegovo dešifrovanje - treba da predstavlja nasumične znake za sve kojima poruka nije namenjena. Operacija šifrovanja obično zavisi od dodatne informacije zvane '''ključ'''. Procedura šifriranja varira u zavisnosti od ključa, koji menja detalje algoritma. Ključ se mora izabrati pre šifriranja poruke. Bez poznavanja ključa trebalo bi da je teško, ili skoro nemoguće, dekriptovati šifrat u čitljiv otvoreni tekst.


U netehničkoj upotrebi, '''šifra''' i '''kod''' predstavljaju isti termin, ali u kriptografiji ti su pojmovi različiti. U klasičnoj kriptografiji šifra je odvojena od koda. Načelno, u kodu se zamenjivanje vrši na temelju obimne knjige kodova, u kojoj se reči i fraze zamenjuju slučajnim nizom znakova. Na primer, -{UQJHS}- može biti kod za „Nastavite do sledećih koordinata”. Originalna (izvorna) [[informacija]] poznata je kao ''otvoreni tekst'', a šifrirani oblik kao šifrirani tekst ili ''šifrat''. Šifrovana poruka sadrži sve informacije iz otvorenog teksta, ali nije u obliku čitljivom za čoveka ili računar bez primene odgovarajućeg mehanizma za njegovo dešifrovanje - treba da predstavlja nasumične znake za sve kojima poruka nije namenjena. Operacija šifrovanja obično zavisi od dodatne informacije zvane ''ključ''. Procedura šifriranja varira u zavisnosti od ključa, koji menja detalje algoritma. Ključ se mora izabrati pre šifriranja poruke. Bez poznavanja ključa trebalo bi da je teško, ili skoro nemoguće, dekriptovati šifrat u čitljiv otvoreni tekst.
Treba razlikovati termine '''dešifriranje''' i '''dekriptiranje''':
* '''Dešifriranje''' je pretvaranje šifrata u otvoreni tekst kad je ključ poznat, vrši ga osoba kojoj je poruka namijenjena.
* '''Dekriptiranje''' je pokušaj pretvaranja šifrata u otvoreni tekst kad ključ nije (unaprijed) poznat - vrše ga osobe kojima poruka nije namijenjena. Dekriptiranje je dio [[kriptoanaliza|kriptoanalize]].


Treba razlikovati termine ''dešifrovanje'' i ''dekriptovanje''.<ref>{{cite book |author= B . Schneier |title= Applied Cryptography: Protocols, Algorithms, and Source Code in C |publisher= Wiley |edition= 2nd |date= 1995 }}</ref> ''Dešifriranje'' je pretvaranje šifrata u otvoreni tekst kad je ključ poznat, i vrši ga osoba kojoj je poruka namenjena. ''Dekriptovanje'' je pokušaj pretvaranja šifrata u otvoreni tekst kad ključ nije (unapred) poznat, a vrše ga osobe kojima poruka nije namenjena. Dekriptovanje je deo [[kriptoanaliza|kriptoanalize]]. Većina modernih šifri može se svrstati u kategorije na nekoliko načina: (i) po tome da li se primenjuje na blokovima znakova stalne dužine (''blok šifre''), ili na neprekidnom nizu znakova (poznata pod nazivima ''šifra niza'', šifra toka ili protočna šifra, engl. -{''stream cipher''}-), (ii) po tome da li se koristi isti ključ za šifriranje i dešifriranje (''algoritmi simetričnih ključeva''), ili se koristi poseban ključ (''algoritmi asimetričnih ključeva''). Ako je algoritam simetričnog ključa, ključ mora biti poznat primatelju i nikome više. Kod algoritma asimetričnog ključa, ključ za šifriranje je različit od ključa za dešifriranje, ali je s njim u tesnoj vezi. Ako se jedan ključ ne može utvrditi iz drugog, algoritam asimetričnog ključa ima svojstvo javnog/tajnog ključa i jedan od ključeva može biti obelodanjen bez gubitka tajnosti informacije.
Većina modernih šifri može se svrstati u kategorije na nekoliko načina:
* Po načinu - primjenjuju li se na blokovima znakova obično stalne dužine ('''blok šifre'''), ili na neprekidnom nizu znakova (poznata pod nazivima '''šifra niza''', šifra toka ili protočna šifra, engl. ''stream cipher'').
* Po načinu - koristi li se isti ključ za šifriranje i dešifriranje ('''algoritmi simetričnih ključeva'''), ili se koristi poseban ključ ('''algoritmi asimetričnih ključeva'''). Ako je algoritam simetričnog ključa, ključ mora biti poznat primatelju i nikome više. Kod algoritma asimetričnog ključa, ključ za šifriranje je različit od ključa za dešifriranje, ali je s njim u tijesnoj vezi. Ako se jedan ključ ne može utvrditi iz drugog, algoritam asimetričnog ključa ima svojstvo javnog/tajnog ključa i jedan od ključeva može biti objelodanjen bez gubitka tajnosti informacije.


==Poreklo==
==Poreklo==
Riječ šifra potiče iz francuskog jezika, [[francuski jezik|fr.]] ''cifre'' - brojka, tajni znak, odnosno iz arapskog [[arapski jezik|ar.]] ''صفر, şafira'' - prazno, ''şifr'' - nula, ništa.
Reč šifra potiče iz francuskog jezika, [[francuski jezik|fr.]] -{''cifre''}- - brojka, tajni znak, odnosno iz arapskog [[arapski jezik|ar.]] ''صفر, -{şafira''}- - prazno, -{''şifr''}- - nula, ništa.


U ranijim vremenima, cifra je imala značenje "nula", a kasnije je korištena za bilo koji decimalni broj, ili bilo koji broj. Ove teorije pokazuju kako je cifra postala šifra u značenju šifriranje:
U prošlosti, cifra je imala značenje „nula”, a kasnije je korištena za bilo koji decimalni broj, ili bilo koji broj. Ove teorije pokazuju kako je cifra postala šifra u značenju šifriranje:


* U šifriranju su se često koristili brojevi.
* U šifriranju su se često koristili brojevi.
* [[Rimski brojevi|Rimski brojni sistem]] je bio nezgrapan, jer ne poznaje pojam nule (ili praznog skupa). Pojam nule (koja se također zvala cifra), koji je za nas sasvim prirodan, bio je posve stran u srednjevjekovnoj Europi. Cifra je stoga dobila značenje skrivanja jasne poruke, odnosno šifriranje.
* [[Rimski brojevi|Rimski brojni sistem]] je bio nezgrapan, jer ne poznaje pojam nule (ili praznog skupa). Pojam nule (koja se takođe zvala cifra), koji je danas sasvim prirodan, bio je posve stran u srednjevekovnoj Evropi. Cifra je stoga dobila značenje skrivanja jasne poruke, odnosno šifriranje. Dr Al-Kadi<ref name="ak2">Ibrahim A. Al-Kadi, “Cryptography and Data Security: Cryptographic Properties of Arabic”, proceedings of the Third Saudi Engineering Conference. Riyadh, Saudi Arabia: Nov 24-27, Vol 2:910-921., 1991.</ref><ref name="ak1">[[Ibrahim A. Al-Kadi]], “The origins of cryptology: The Arab contributions”, Cryptologia, 16(2) (April 1992) pp. 97–126.</ref> smatra da se arapska reč -{şifr}- za nulu razvila u evropski tehnički termin za šifriranje.
Dr Al-Kadi<ref name="ak2">* Ibrahim A. Al-Kadi, “Cryptography and Data Security: Cryptographic Properties of Arabic”, proceedings of the Third Saudi Engineering Conference. Riyadh, Saudi Arabia: Nov 24-27, Vol 2:910-921., 1991.</ref><ref name="ak1">[[Ibrahim A. Al-Kadi]], “The origins of cryptology: The Arab contributions”, Cryptologia, 16(2) (April 1992) pp. 97–126.</ref> je zaključio da se arapska reč şifr za nulu razvila u europski tehnički termin za šifriranje.


==Šifriranje i kodiranje==
==Šifriranje i kodiranje==
{{glavni-lat|Kod}}
{{glavni-lat|Kod}}


U netehničkoj upotrebi, "(tajni) [[kod]]" obično znači "šifra". Međutim, u tehničkim diskusijama riječi "kod" i "šifra" se odnose na dva različita pojma. Kodovi rade na nivou značenja — to jest, riječi i izrazi se pretvaraju u nešto drugo i to sažimanje načelno skraćuje poruku. Nasuprot tome, šifra radi na nižem nivou: na nivou pojedinačnih slova, malih grupa slova, ili, u modernim šemama, na pojedine [[bit]]ove. Neki sustavi koriste kombinaciju koda i šifre, takozvano "superšifriranje" za povećanje sigurnosti. U nekim slučajevima, termini kod i šifra se koriste kao sinonimi u zamjeni i pomjeranju.
U netehničkoj upotrebi, (tajni) [[kod]] obično znači „šifra”. Međutim, u tehničkim diskusijama reči „kod” i „šifra” se odnose na dva različita pojma. Kodovi rade na nivou značenja — to jest, reči i izrazi se pretvaraju u nešto drugo i to sažimanje načelno skraćuje poruku. Nasuprot tome, šifra radi na nižem nivou: na nivou pojedinačnih slova, malih grupa slova, ili, u modernim šemama, na pojedinačnim [[bit]]ovim. Neki sistemi koriste kombinaciju koda i šifre, takozvano „superšifriranje” za povećanje sigurnosti. U nekim slučajevima, termini kod i šifra se koriste kao sinonimi u zameni i pomeranju.


Povijesno, kriptografija je podijeljena u [[dihotomija|dihotomiju]] koda i šifre; kod ima svoju terminologiju, analognu onoj za šifru: "kodiranje", "kodni tekst", "dekodiranje" itd.
Istorijski, kriptografija je bila podeljena u [[dihotomija|dihotomiju]] koda i šifre; kod ima svoju terminologiju, analognu onoj za šifru: „kodiranje”, „kodni tekst”, „dekodiranje” itd. Međutim, kod ima dosta nedostataka, kao što su osetljivost na kriptoanalizu i teškoće u baratanju glomaznim knjigama kodova. Zbog toga je kod zapostavljen u modernoj kriptografiji, a šifra je postala dominantna tehnika.

Međutim, kod ima dosta nedostataka, kao što su osjetljivost na kriptoanalizu i teškoće u baratanju glomaznim knjigama kodova. Zbog toga je kod zapostavljen u modernoj kriptografiji, a šifra je postala dominantna tehnika.


== Elementi enkripcije ==
== Elementi enkripcije ==
Svi sistemi enkripcije imaju u svojoj osnovi sledeće zajedničke elemente:<ref>{{Cite web
Svi sistemi enkripcije imaju u svojoj osnovi sledeće zajedničke elemente:<ref>{{Cite book |url = |title = A Graduate Course in Applied Cryptography |author = Dan Boneh |author2= Victor Shoup |date= 17. 8. 2015 |language = }}</ref>
* ''[[Algoritam]]'': Funkcija, obično sa jakom matematičkom osnovom, koja obavlja zadatak inkripcije podataka;
|url = http://apps.btnet.de/IntranetDokus/oreilly-bookshelves/books/tcpip/puis/ch06_02.htm
|title = Elementi enkripcije
|accessdate =
|author =
|date =
|language =
}}{{Мртва веза|date=09. 2018 |bot=InternetArchiveBot |fix-attempted=yes }}</ref>
* ''[[Algoritam]]'': Funkcija, obično sa jakom matematičkom osnovom, koja obavlja zadatak enkripcije podataka;
* ''Ključevi'': Koriste se zajedno sa algoritmima enkripcije i određuju način na koji su podaci šifrovani;
* ''Ključevi'': Koriste se zajedno sa algoritmima enkripcije i određuju način na koji su podaci šifrovani;
* ''Dužina ključa'': Enkripcioni ključevi imaju određenu dužinu u zavisnosti od toga koji enkripcioni sistemi se koriste. Dužina se meri brojem [[Бит (рачунарство)|bitova]] ,a što su duži ključevi, teži su za oštećenje sistema enkripcije;
* ''Dužina ključa'': Enkripcioni ključevi imaju određenu dužinu u zavisnosti od toga koji enkripcioni sistemi se koriste. Dužina se meri brojem [[Бит (рачунарство)|bitova]], i što su duži ključevi, to je teže osujetiti sistem enkripcije;
* ''Otvoren tekst'' ({{jez-eng-lat|Plaintext}}): Informacije koje želimo da šifrujemo;
* ''Otvoren tekst'' ({{jez-eng-lat|Plaintext}}): Informacije koje treba šifruvati;
* ''Šifrovan tekst'' ({{jez-eng-lat|Ciphertext}}): Informacije nakon šifrovanja.
* ''Šifrovan tekst'' ({{jez-eng-lat|Ciphertext}}): Informacije nakon šifrovanja.


Ред 66: Ред 50:
}}</ref>
}}</ref>


===Povijesne šifre===
=== Istorijske šifre ===
[[Datoteka:EnigmaMachineLabeled.jpg|thumb|right|Nemačka [[Enigma (stroj)|Enigma]] koristi rotirajuće diskove (''Rotors'') i dodatne ploče za prespajanje (''Plugboard'')]]
[[Datoteka:EnigmaMachineLabeled.jpg|thumb|right|Nemačka [[Enigma]] koristi rotirajuće diskove (''Rotore'') i dodatne ploče za prespajanje (-{''Plugboard''}-)]]


Šifre s olovkom i papirom koje su korištene u prošlosti poznate su pod nazivom "[[klasična šifra]]". One uključuju jednostavne "'''šifre zamjene''' (supstitucije)" i "'''šifre pomjeranja''' (transpozicije)". Na primjer, "dobar dan" može se šifrirati kao "ŽSDGĆ ŽGP", gdje se u poruci "d" zamjenjuje sa "Ž", "a" sa "G" itd. Pomjeranjem bi "dobar dan" moglo da bude "RDANDOBA". Ove jednostavne šifre i primjere je vrlo lako razbiti, čak i bez pomoći parova otvoreni tekst - šifrirani tekst.<ref name="kahn">[[David Kahn]], ''The Codebreakers - The Story of Secret Writing'' (ISBN 0-684-83130-9) (1967)</ref>
Šifre s olovkom i papirom koje su korištene u prošlosti poznate su pod nazivom [[klasična šifra]]. One uključuju jednostavne ''šifre zamjene'' (supstitucije) i ''šifre pomeranja'' (transpozicije). Na primer, „dobar dan” može se šifrirati kao „ŽSDGĆ ŽGP”, gde se u poruci „d” zamenjuje sa „Ž”, „a” sa „G” itd. Pomeranjem bi „dobar dan” moglo da bude „RDANDOBA”. Ove jednostavne šifre i primere je vrlo lako razbiti, čak i bez pomoći parova otvorenog i šifriranog teksta.<ref name="kahn">[[David Kahn]], ''The Codebreakers - The Story of Secret Writing'' (ISBN 0-684-83130-9) (1967)</ref>


Jednostavne šifre su zamijenjene šiframa "'''polialfabetske zamjene'''", koje mijenjaju alfabet zamjene za svako slovo. Na primjer, "dobar dan" se može zamijeniti sa "ŽĆZIA ONV", gdje se u poruci "d" zamenjuje sa "Ž" i "O", "a" sa "I" i "N". Čak i na malom uzorku poznatog ili pretpostavljenog otvorenog teksta, šifre polialfabetske zamjene i šifre pomjeranja slova (namijenjene za šifriranje olovkom i papirom) se vrlo lako razbijaju.<ref>Helen Fouché Gaines, “Cryptanalysis”, 1939, Dover. ISBN 0-486-20097-3</ref>
Jednostavne šifre su zamenjene šiframa ''polialfabetske zamene'', koje menjaju alfabet zamene za svako slovo. Na primer, „dobar dan” se može zameniti sa „ŽĆZIA ONV”, gde se u poruci „d” zamenjuje sa „Ž” i „O”, „a” sa „I” i „N”. Čak i na malom uzorku poznatog ili pretpostavljenog otvorenog teksta, šifre polialfabetske zamene i šifre pomeranja slova (namenjene za šifriranje olovkom i papirom) se vrlo lako razbijaju.<ref>Helen Fouché Gaines, “Cryptanalysis”, 1939, Dover. ISBN 0-486-20097-3</ref>


Početkom dvadesetog stoljeća izumljeni su elektromehanički strojevi za šifriranje i dešifriranje, a koristili su pomjeranje, polialfabetsku zamjenu i neku vrstu "dodatne" zamjene. U "rotor mašinama", nekoliko rotirajućih diskova je služilo za polialfabetsku zamjenu, a dodatne ploče su služile za neku drugu zamjenu. Ključevi su se lako mijenjali zamjenom rotirajućih diskova i prespajanjem žica dodatnih ploča. Iako su ove metode šifriranja bile kompleksnije od prethodnih i zahtijevale mašine za šifriranje i dešifriranje, izumljene su druge mašine (kao npr. britanska "[[Bomba (stroj)|Bomba]]") za dekriptiranje ovih metoda šifriranja.
Početkom dvadesetog veka izumljene su elektromehaničke mašine za šifrovanje i dešifrovanje, a koristile su pomeranje, polialfabetsku zamenu i neku vrstu „dodatne” zamene. U „rotorskim mašinama”, nekoliko rotirajućih diskova je služilo za polialfabetsku zamenu, a dodatne ploče su služile za neku drugu zamenu. Ključevi su se lako menjali zamenom rotirajućih diskova i prespajanjem žica dodatnih ploča. Iako su ove metode šifrovanja bile kompleksnije od prethodnih i zahtevale mašine za šifrovanje i dešifrovanje, izumljene su druge mašine (kao npr. britanska [[Bomba (mašina)|Bomba]]) za dekriptiranje ovih metoda šifriranja.


===Moderne šifre===
===Moderne šifre===
Moderne metode šifriranja mogu se podijeliti po dva kriterija: po tipu korištenog ključa i tipu ulaznih podataka.
Moderne metode šifrovanja mogu se podeliti po dva kriterija: po tipu korištenog ključa i tipu ulaznih podataka.


Po tipu ključa, šifre se dijele na:
Po tipu ključa, šifre se dele na:
* Algoritmi simetričnog ključa (kriptografija s tajnim ključem), gdje se isti ključ koristi i za šifriranje i za dešifriranje, i
* Algoritmi simetričnog ključa (kriptografija s tajnim ključem), gde se isti ključ koristi i za šifrovanje i za dešifrovanje, i
* Algoritmi asimetričnog ključa (kriptografija s javnim ključem), gdje se koriste dva različita ključa za šifriranje i dešifriranje.
* Algoritmi asimetričnog ključa (kriptografija s javnim ključem), gde se koriste dva različita ključa za šifrovanje i dešifrovanje.


Kod algoritma simetričnog ključa (npr. ''[[DES]]'' i ''[[AES]]''), pošiljatelj i primatelj moraju imati isti ključ, koji je unaprijed pripremljen i koji mora biti tajan za sve kojima nije namijenjen - pošiljatelj koristi taj ključ za šifriranje, a primatelj isti taj ključ za dešifriranje. Kod algoritma asimetričnog ključa (npr. ''[[RSA]]''), postoje dva posebna ključa: "javni ključ" se objavljuje i omogućuje pošiljatelju da izvrši šifriranje, dok "tajni ključ" primatelj čuva kao tajnu i koristi ga da izvrši ispravno dešifriranje.
Kod algoritma simetričnog ključa (npr. ''[[DES]]'' i ''[[AES (криптографија)|AES]]''), pošiljatelj i primatelj moraju imati isti ključ, koji je unapred pripremljen i koji mora biti tajan za sve kojima nije namenjen - pošiljatelj koristi taj ključ za šifriranje, a primatelj isti taj ključ za dešifriranje. Kod algoritma asimetričnog ključa (npr. ''[[RSA (алгоритам)|RSA]]''), postoje dva posebna ključa: „javni ključ” se objavljuje i omogućuje pošiljatelju da izvrši šifrovanje, dok „tajni ključ” primatelj čuva kao tajnu i koristi ga da izvrši ispravno dešifrovanje.


Po tipu ulaznih podataka, šifre se mogu svrstati u dvije grupe:
Po tipu ulaznih podataka, šifre se mogu svrstati u dve grupe: šifra blokova, kojom se šifrira blok podataka fiksne dužine, i šifra niza (šifra toka ili protočna šifra), kojom se šifrira kontinualni niz podataka.
* Šifra blokova, kojom se šifrira blok podataka fiksne dužine, i
* Šifra niza (šifra toka ili protočna šifra), kojom se šifrira kontinualni niz podataka.


[[Datoteka:sifra-hr.png|550px|center]]
[[Datoteka:sifra-hr.png|550px|right]]


==Veličina ključa i ranjivost==
==Veličina ključa i ranjivost==
U čisto matematičkom napadu<ref name="as">Abraham Sinkov, ''Elementary Cryptanalysis: A Mathematical Approach'', Mathematical Association of America, 1966. ISBN 0-88385-622-0</ref> (tj. u nedostatku drugih informacija koje bi pomogle u razbijanju šifre), prije svega, bitna su tri čimbenika:
U čisto matematičkom napadu<ref name="as">Abraham Sinkov, ''Elementary Cryptanalysis: A Mathematical Approach'', Mathematical Association of America, 1966. ISBN 0-88385-622-0</ref> (tj. u nedostatku drugih informacija koje bi pomogle u razbijanju šifre), pre svega, bitna su tri činioca:
* Matematičke prednosti za otkrivanje i iskorištenje slabosti šifre.
* Matematičke prednosti za otkrivanje i iskorištenje slabosti šifre.
* Dostupna snaga izračunavanja, tj. snaga računala koja se može upotrijebiti za rješavanje problema. Treba napomenuti da prosječne performanse/kapacitet jednog računala nisu jedini čimbenik koji se uzima u obzir. Protivnik može, recimo, koristiti više spregnutih računala i tako značajno ubrzati potragu za ključem (takozvani "napad grubom silom").
* Dostupna snaga izračunavanja, tj. snaga računara koji se može upotrebiti za rešavanje problema. Treba napomenuti da prosečne performanse/kapacitet jednog računara nisu jedini činilac koji se uzima u obzir. Protivnik može, recimo, da koristi više spregnutih računara i tako značajno ubrza potragu za ključem (takozvani „napad grubom silom”).
* Veličina ključa, tj. dužina ključa koji je upotrijebljen za šifriranje poruke. Kako raste veličina ključa, tako se povećava i kompleksnost pretraživanja grubom silom, sve do tačke kad direktno razbijanje šifre prestaje biti praktično.
* Veličina ključa, tj. dužina ključa koji je upotrebljen za šifrovanje poruke. Kako raste veličina ključa, tako se povećava i kompleksnost pretraživanja grubom silom, sve do tačke kad direktno razbijanje šifre prestaje da bide praktično.


Pošto je željeni efekt teškoća izračunavanja, teorijski se biraju algoritam i nivo težine, a na temelju toga se bira odgovarajuća dužina ključa.
Pošto je željeni efekt teškoća izračunavanja, teorijski se biraju algoritam i nivo težine, a na temelju toga se bira odgovarajuća dužina ključa. Može se pokazati da recimo simetrična šifra sa 128 bitova, asimetrična šifra sa 3072 bitova i eliptična kriva sa 512 bitova imaju sličnu težinu.<ref>[http://www.keylength.com/ "Dužina ključa"]</ref>


[[Klod Elvud Šenon]] je dokazao<ref name="shannon">{{cite journal| last=Shannon| first=Claude| title=Communication Theory of Secrecy Systems| journal=Bell System Technical Journal| volume=28| issue=4| pages=656–715| year=1949}}</ref> koristeći razmatranja teorije informacija da svaka teoretski neprobojna šifra mora imati dužinu ključa najmanje koliko je dugačak otvoreni tekst i da se ključ koristi samo jednom ([[jednokratni blok]], eng. -{''one-time pad''}-)
Primjer ovog procesa se može naći na web stranici [http://www.keylength.com/ "Dužina ključa"], koji koristi nekoliko izvještaja za pokazivanje da recimo simetrična šifra sa 128 bitova, asimetrična šifra sa 3072 bitova i eliptična kriva sa 512 bitova imaju sličnu težinu.

[[Claude Shannon]] je dokazao<ref name="shannon">{{cite journal| last=Shannon| first=Claude| title=Communication Theory of Secrecy Systems| journal=Bell System Technical Journal| volume=28| issue=4| pages=656–715| year=1949}}</ref>, koristeći razmatranja teorije informacija, da svaka teoretski neprobojna šifra mora imati dužinu ključa najmanje koliko je dugačak otvoreni tekst i da se ključ koristi samo jednom ([[jednokratni blok]], eng. ''one-time pad'')


== Upotreba enkripcije ==
== Upotreba enkripcije ==

Enkripcija se koristi za zaštitu [[informacija]] u računarskim, komunikacionim i bezbednosnim sistemima. Takođe, olakšava upravljanje [[IP adresa]]ma štiteći sadržaj od otkrivanja prilikom prenosa.
Enkripcija obezbeđuje zaštitu podataka u mirovanju, npr. [[dokument|dokumenata]] na [[računar]]u ili na uređajima za skladištenje podataka ([[USB]]) i omogućava očuvanje ovih podataka ukoliko fizičke mere bezbednosti otkažu. Enkripcija se takođe koristi za zaštitu podataka u toku prenosa, npr. preko mreže ([[интернет|internet]], [[e-trgovina]]), [[mobilni telefon|mobilnih telefona]], bežičnih uređaja, bankomata, itd.
Enkripcija se koristi za zaštitu [[informacija]] u računarskim, komunikacionim i bezbednosnim sistemima. Takođe, olakšava upravljanje [[IP adresa]]ma štiteći sadržaj od otkrivanja prilikom prenosa. Enkripcija obezbeđuje zaštitu podataka u mirovanju, npr. [[dokument|dokumenata]] na [[računar]]u ili na uređajima za skladištenje podataka ([[USB]]) i omogućava očuvanje ovih podataka ukoliko fizičke mere bezbednosti otkažu. Enkripcija se takođe koristi za zaštitu podataka u toku prenosa, npr. preko mreže ([[интернет|internet]], [[e-trgovina]]), [[mobilni telefon|mobilnih telefona]], bežičnih uređaja, bankomata, itd.


Kod enkripcije se javljaju dva glavna problema: tajnost i autentifikacija. Potrebno je obezbediti da je lice koje prima ključ sigurno lice koje je ovlašćeno da ga dobije (autentifikacija) i da niko drugi ne može da sazna ključ u toku prenosa (tajnost). Enkripcija, sama po sebi, može da obezbedi tajnost poruke, ali potrebne su i druge tehnike za zaštitu integriteta i autentičnosti poruke, na primer, provera identifikacionog [[kod]]a poruke ili [[електронски потпис|digitalni potpis]].
Kod enkripcije se javljaju dva glavna problema: tajnost i autentifikacija. Potrebno je obezbediti da je lice koje prima ključ sigurno lice koje je ovlašćeno da ga dobije (autentifikacija) i da niko drugi ne može da sazna ključ u toku prenosa (tajnost). Enkripcija, sama po sebi, može da obezbedi tajnost poruke, ali potrebne su i druge tehnike za zaštitu integriteta i autentičnosti poruke, na primer, provera identifikacionog [[kod]]a poruke ili [[електронски потпис|digitalni potpis]].

Верзија на датум 10. април 2019. у 05:21

Enkripcija (engl. encryption) ili šifrovanje je proces u kriptografiji kojim se vrši izmena podataka tako da se podaci, ili poruke, učine nečitljivim za osobe koje ne poseduju određeno znanje (ključ). Na taj način se dobija šifrovana informacija. Da bi ovi podaci postali razumljivi i upotrebljivi, potrebno je da se dekodiraju. Dekodiranje se vrši procesom suprotnim od enkripcije koji se naziva dekripcija.[1]

U netehničkoj upotrebi, šifra i kod predstavljaju isti termin, ali u kriptografiji ti su pojmovi različiti. U klasičnoj kriptografiji šifra je odvojena od koda. Načelno, u kodu se zamenjivanje vrši na temelju obimne knjige kodova, u kojoj se reči i fraze zamenjuju slučajnim nizom znakova. Na primer, UQJHS može biti kod za „Nastavite do sledećih koordinata”. Originalna (izvorna) informacija poznata je kao otvoreni tekst, a šifrirani oblik kao šifrirani tekst ili šifrat. Šifrovana poruka sadrži sve informacije iz otvorenog teksta, ali nije u obliku čitljivom za čoveka ili računar bez primene odgovarajućeg mehanizma za njegovo dešifrovanje - treba da predstavlja nasumične znake za sve kojima poruka nije namenjena. Operacija šifrovanja obično zavisi od dodatne informacije zvane ključ. Procedura šifriranja varira u zavisnosti od ključa, koji menja detalje algoritma. Ključ se mora izabrati pre šifriranja poruke. Bez poznavanja ključa trebalo bi da je teško, ili skoro nemoguće, dekriptovati šifrat u čitljiv otvoreni tekst.

Treba razlikovati termine dešifrovanje i dekriptovanje.[2] Dešifriranje je pretvaranje šifrata u otvoreni tekst kad je ključ poznat, i vrši ga osoba kojoj je poruka namenjena. Dekriptovanje je pokušaj pretvaranja šifrata u otvoreni tekst kad ključ nije (unapred) poznat, a vrše ga osobe kojima poruka nije namenjena. Dekriptovanje je deo kriptoanalize. Većina modernih šifri može se svrstati u kategorije na nekoliko načina: (i) po tome da li se primenjuje na blokovima znakova stalne dužine (blok šifre), ili na neprekidnom nizu znakova (poznata pod nazivima šifra niza, šifra toka ili protočna šifra, engl. stream cipher), (ii) po tome da li se koristi isti ključ za šifriranje i dešifriranje (algoritmi simetričnih ključeva), ili se koristi poseban ključ (algoritmi asimetričnih ključeva). Ako je algoritam simetričnog ključa, ključ mora biti poznat primatelju i nikome više. Kod algoritma asimetričnog ključa, ključ za šifriranje je različit od ključa za dešifriranje, ali je s njim u tesnoj vezi. Ako se jedan ključ ne može utvrditi iz drugog, algoritam asimetričnog ključa ima svojstvo javnog/tajnog ključa i jedan od ključeva može biti obelodanjen bez gubitka tajnosti informacije.

Poreklo

Reč šifra potiče iz francuskog jezika, fr. cifre - brojka, tajni znak, odnosno iz arapskog ar. صفر, şafira - prazno, şifr - nula, ništa.

U prošlosti, cifra je imala značenje „nula”, a kasnije je korištena za bilo koji decimalni broj, ili bilo koji broj. Ove teorije pokazuju kako je cifra postala šifra u značenju šifriranje:

  • U šifriranju su se često koristili brojevi.
  • Rimski brojni sistem je bio nezgrapan, jer ne poznaje pojam nule (ili praznog skupa). Pojam nule (koja se takođe zvala cifra), koji je danas sasvim prirodan, bio je posve stran u srednjevekovnoj Evropi. Cifra je stoga dobila značenje skrivanja jasne poruke, odnosno šifriranje. Dr Al-Kadi[3][4] smatra da se arapska reč şifr za nulu razvila u evropski tehnički termin za šifriranje.

Šifriranje i kodiranje

U netehničkoj upotrebi, „(tajni) kod” obično znači „šifra”. Međutim, u tehničkim diskusijama reči „kod” i „šifra” se odnose na dva različita pojma. Kodovi rade na nivou značenja — to jest, reči i izrazi se pretvaraju u nešto drugo i to sažimanje načelno skraćuje poruku. Nasuprot tome, šifra radi na nižem nivou: na nivou pojedinačnih slova, malih grupa slova, ili, u modernim šemama, na pojedinačnim bitovim. Neki sistemi koriste kombinaciju koda i šifre, takozvano „superšifriranje” za povećanje sigurnosti. U nekim slučajevima, termini kod i šifra se koriste kao sinonimi u zameni i pomeranju.

Istorijski, kriptografija je bila podeljena u dihotomiju koda i šifre; kod ima svoju terminologiju, analognu onoj za šifru: „kodiranje”, „kodni tekst”, „dekodiranje” itd. Međutim, kod ima dosta nedostataka, kao što su osetljivost na kriptoanalizu i teškoće u baratanju glomaznim knjigama kodova. Zbog toga je kod zapostavljen u modernoj kriptografiji, a šifra je postala dominantna tehnika.

Elementi enkripcije

Svi sistemi enkripcije imaju u svojoj osnovi sledeće zajedničke elemente:[5]

  • Algoritam: Funkcija, obično sa jakom matematičkom osnovom, koja obavlja zadatak inkripcije podataka;
  • Ključevi: Koriste se zajedno sa algoritmima enkripcije i određuju način na koji su podaci šifrovani;
  • Dužina ključa: Enkripcioni ključevi imaju određenu dužinu u zavisnosti od toga koji enkripcioni sistemi se koriste. Dužina se meri brojem bitova, i što su duži ključevi, to je teže osujetiti sistem enkripcije;
  • Otvoren tekst (engl. Plaintext): Informacije koje treba šifruvati;
  • Šifrovan tekst (engl. Ciphertext): Informacije nakon šifrovanja.

Vrste enkripcije

Postoje dve osnovne vrste enkripcije: simetrična enkripcija i asimetrična enkripcija. Kod simetrične enkripcije se i za šifrovanje i za dešifrovanje koristi ista šifra (ključ). Kod asimetrične postoji poseban ključ samo za šifrovanje i drugi koji služi samo za dešifrovanje. Ova dva ključa nazivaju se još javni i tajni ključ. Tajni ključ dodeljuje se onda kada se vrši enkripcija i na osnovu njega se generiše javni ključ, koji koristi strana koja treba da pročita podatke. [6] Standard koji se koristi pri simetričnoj enkripciji je DES (engl. Data Encryption Standard). Asimetrična enkripcija se još naziva i kriptografija javnog ključa (engl. Public-Key Cryptography). Za ovu vrstu enkripcije koristi se RSA algoritam (Rivest-Shamir-Adleman). [7]

Istorijske šifre

Nemačka Enigma koristi rotirajuće diskove (Rotore) i dodatne ploče za prespajanje (Plugboard)

Šifre s olovkom i papirom koje su korištene u prošlosti poznate su pod nazivom „klasična šifra”. One uključuju jednostavne šifre zamjene (supstitucije) i šifre pomeranja (transpozicije). Na primer, „dobar dan” može se šifrirati kao „ŽSDGĆ ŽGP”, gde se u poruci „d” zamenjuje sa „Ž”, „a” sa „G” itd. Pomeranjem bi „dobar dan” moglo da bude „RDANDOBA”. Ove jednostavne šifre i primere je vrlo lako razbiti, čak i bez pomoći parova otvorenog i šifriranog teksta.[8]

Jednostavne šifre su zamenjene šiframa „polialfabetske zamene”, koje menjaju alfabet zamene za svako slovo. Na primer, „dobar dan” se može zameniti sa „ŽĆZIA ONV”, gde se u poruci „d” zamenjuje sa „Ž” i „O”, „a” sa „I” i „N”. Čak i na malom uzorku poznatog ili pretpostavljenog otvorenog teksta, šifre polialfabetske zamene i šifre pomeranja slova (namenjene za šifriranje olovkom i papirom) se vrlo lako razbijaju.[9]

Početkom dvadesetog veka izumljene su elektromehaničke mašine za šifrovanje i dešifrovanje, a koristile su pomeranje, polialfabetsku zamenu i neku vrstu „dodatne” zamene. U „rotorskim mašinama”, nekoliko rotirajućih diskova je služilo za polialfabetsku zamenu, a dodatne ploče su služile za neku drugu zamenu. Ključevi su se lako menjali zamenom rotirajućih diskova i prespajanjem žica dodatnih ploča. Iako su ove metode šifrovanja bile kompleksnije od prethodnih i zahtevale mašine za šifrovanje i dešifrovanje, izumljene su druge mašine (kao npr. britanska „Bomba”) za dekriptiranje ovih metoda šifriranja.

Moderne šifre

Moderne metode šifrovanja mogu se podeliti po dva kriterija: po tipu korištenog ključa i tipu ulaznih podataka.

Po tipu ključa, šifre se dele na:

  • Algoritmi simetričnog ključa (kriptografija s tajnim ključem), gde se isti ključ koristi i za šifrovanje i za dešifrovanje, i
  • Algoritmi asimetričnog ključa (kriptografija s javnim ključem), gde se koriste dva različita ključa za šifrovanje i dešifrovanje.

Kod algoritma simetričnog ključa (npr. DES i AES), pošiljatelj i primatelj moraju imati isti ključ, koji je unapred pripremljen i koji mora biti tajan za sve kojima nije namenjen - pošiljatelj koristi taj ključ za šifriranje, a primatelj isti taj ključ za dešifriranje. Kod algoritma asimetričnog ključa (npr. RSA), postoje dva posebna ključa: „javni ključ” se objavljuje i omogućuje pošiljatelju da izvrši šifrovanje, dok „tajni ključ” primatelj čuva kao tajnu i koristi ga da izvrši ispravno dešifrovanje.

Po tipu ulaznih podataka, šifre se mogu svrstati u dve grupe: šifra blokova, kojom se šifrira blok podataka fiksne dužine, i šifra niza (šifra toka ili protočna šifra), kojom se šifrira kontinualni niz podataka.

Veličina ključa i ranjivost

U čisto matematičkom napadu[10] (tj. u nedostatku drugih informacija koje bi pomogle u razbijanju šifre), pre svega, bitna su tri činioca:

  • Matematičke prednosti za otkrivanje i iskorištenje slabosti šifre.
  • Dostupna snaga izračunavanja, tj. snaga računara koji se može upotrebiti za rešavanje problema. Treba napomenuti da prosečne performanse/kapacitet jednog računara nisu jedini činilac koji se uzima u obzir. Protivnik može, recimo, da koristi više spregnutih računara i tako značajno ubrza potragu za ključem (takozvani „napad grubom silom”).
  • Veličina ključa, tj. dužina ključa koji je upotrebljen za šifrovanje poruke. Kako raste veličina ključa, tako se povećava i kompleksnost pretraživanja grubom silom, sve do tačke kad direktno razbijanje šifre prestaje da bide praktično.

Pošto je željeni efekt teškoća izračunavanja, teorijski se biraju algoritam i nivo težine, a na temelju toga se bira odgovarajuća dužina ključa. Može se pokazati da recimo simetrična šifra sa 128 bitova, asimetrična šifra sa 3072 bitova i eliptična kriva sa 512 bitova imaju sličnu težinu.[11]

Klod Elvud Šenon je dokazao[12] koristeći razmatranja teorije informacija da svaka teoretski neprobojna šifra mora imati dužinu ključa najmanje koliko je dugačak otvoreni tekst i da se ključ koristi samo jednom (jednokratni blok, eng. one-time pad)

Upotreba enkripcije

Enkripcija se koristi za zaštitu informacija u računarskim, komunikacionim i bezbednosnim sistemima. Takođe, olakšava upravljanje IP adresama štiteći sadržaj od otkrivanja prilikom prenosa. Enkripcija obezbeđuje zaštitu podataka u mirovanju, npr. dokumenata na računaru ili na uređajima za skladištenje podataka (USB) i omogućava očuvanje ovih podataka ukoliko fizičke mere bezbednosti otkažu. Enkripcija se takođe koristi za zaštitu podataka u toku prenosa, npr. preko mreže (internet, e-trgovina), mobilnih telefona, bežičnih uređaja, bankomata, itd.

Kod enkripcije se javljaju dva glavna problema: tajnost i autentifikacija. Potrebno je obezbediti da je lice koje prima ključ sigurno lice koje je ovlašćeno da ga dobije (autentifikacija) i da niko drugi ne može da sazna ključ u toku prenosa (tajnost). Enkripcija, sama po sebi, može da obezbedi tajnost poruke, ali potrebne su i druge tehnike za zaštitu integriteta i autentičnosti poruke, na primer, provera identifikacionog koda poruke ili digitalni potpis.

Vidi još

Reference

  1. ^ Jonathan Katz; Yehuda Lindell (2008). Introduction to Modern Cryptography. Chapman & Haii/CRC. ISBN 978-1-58488-551-1. 
  2. ^ B . Schneier (1995). Applied Cryptography: Protocols, Algorithms, and Source Code in C (2nd изд.). Wiley. 
  3. ^ Ibrahim A. Al-Kadi, “Cryptography and Data Security: Cryptographic Properties of Arabic”, proceedings of the Third Saudi Engineering Conference. Riyadh, Saudi Arabia: Nov 24-27, Vol 2:910-921., 1991.
  4. ^ Ibrahim A. Al-Kadi, “The origins of cryptology: The Arab contributions”, Cryptologia, 16(2) (April 1992) pp. 97–126.
  5. ^ Dan Boneh; Victor Shoup (17. 8. 2015). A Graduate Course in Applied Cryptography. 
  6. ^ „Vrste enkripcije”. Архивирано из оригинала 13. 05. 2011. г. 
  7. ^ „Enkripcija podataka”. 
  8. ^ David Kahn, The Codebreakers - The Story of Secret Writing (ISBN 0-684-83130-9) (1967)
  9. ^ Helen Fouché Gaines, “Cryptanalysis”, 1939, Dover. ISBN 0-486-20097-3
  10. ^ Abraham Sinkov, Elementary Cryptanalysis: A Mathematical Approach, Mathematical Association of America, 1966. ISBN 0-88385-622-0
  11. ^ "Dužina ključa"
  12. ^ Shannon, Claude (1949). „Communication Theory of Secrecy Systems”. Bell System Technical Journal. 28 (4): 656—715. 

Literatura

  • Robert A. Burgelman, Claiyton M. Christensen, Steven C. Wheelwright, Strategic management of technology and inovation, 4th Edition (2004). стр. 398.
  • Kahn, David (1967). The Codebreakers - The Story of Secret Writing. ISBN 978-0-684-83130-5. 
  • Sinkov, Abraham (1966). Elementary Cryptanalysis: A Mathematical Approach. Mathematical Association of America. ISBN 978-0-88385-622-2. 
  • Fouché Gaines, Helen (1939), Cryptanalysis: A Study of Ciphers and Their Solution, New York: Dover Publications Inc, ISBN 978-0486200972 
  • Preneel, Bart, "Advances in Cryptology — EUROCRYPT 2000", Springer Berlin Heidelberg, 2000, ISBN 978-3-540-67517-4
  • Yehuda, Lindell; Jonathan, Katz (2014), Introduction to modern cryptography, Hall/CRC, ISBN 978-1466570269 

Spoljašnje veze