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

202 бајта додата ,  пре 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==
Riječ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 vremenimaprošlosti, cifra je imala značenje "nula"„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 brojevi|Rimski brojni sistem]] je bio nezgrapan, jer ne poznaje pojam nule (ili praznog skupa). Pojam nule (koja se takođertakođe zvala cifra), koji je za nasdanas sasvim prirodan, bio je posve stran u srednjevjekovnojsrednjevekovnoj EuropiEvropi. 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==
{{glavni-lat|Kod}}
 
U netehničkoj upotrebi, "(tajni) [[kod]]" obično znači "šifra"„šifra”. Međutim, u tehničkim diskusijama riječireči "kod"„kod” i "šifra"„šifra” se odnose na dva različita pojma. Kodovi rade na nivou značenja — to jest, riječireč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 pojedinepojedinačnim [[bit]]oveovim. Neki sustavisistemi koriste kombinaciju koda i šifre, takozvano "superšifriranje"„superšifriranje” za povećanje sigurnosti. U nekim slučajevima, termini kod i šifra se koriste kao sinonimi u zamjenizameni i pomjeranjupomeranju.
 
PovijesnoIstorijski, kriptografija je podijeljenabila podeljena u [[dihotomija|dihotomiju]] koda i šifre; kod ima svoju terminologiju, analognu onoj za šifru: "kodiranje"„kodiranje”, "kodni„kodni tekst"tekst”, "dekodiranje"„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 ==
Svi sistemi enkripcije imaju u svojoj osnovi sledeće zajedničke elemente:<ref>{{Cite webbook |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 enkripcijeinkripcije 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;
* ''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 i što su duži ključevi, težito suje zateže oštećenjeosujetiti sistemasistem enkripcije;
* ''Otvoren tekst'' ({{jez-eng-lat|Plaintext}}): Informacije koje želimotreba da šifrujemošifruvati;
* ''Šifrovan tekst'' ({{jez-eng-lat|Ciphertext}}): Informacije nakon šifrovanja.
 
}}</ref>
 
===Povijesne Istorijske šifre ===
[[Datoteka:EnigmaMachineLabeled.jpg|thumb|right|Nemačka [[Enigma (stroj)|Enigma]] koristi rotirajuće diskove (''RotorsRotore'') 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'pomeranja'' (transpozicije)". Na primjerprimer, "dobar„dobar dan"dan” može se šifrirati kao "ŽSDGĆ„ŽSDGĆ ŽGP"ŽGP”, gdjegde se u poruci "d"„d” zamjenjujezamenjuje sa "Ž"„Ž”, "a"„a” sa "G"„G” itd. PomjeranjemPomeranjem bi "dobar„dobar dan"dan” moglo da bude "RDANDOBA"„RDANDOBA”. Ove jednostavne šifre i primjereprimere je vrlo lako razbiti, čak i bez pomoći parova otvoreniotvorenog tekst -i šifriranišifriranog tekstteksta.<ref name="kahn">[[David Kahn]], ''The Codebreakers - The Story of Secret Writing'' (ISBN 0-684-83130-9) (1967)</ref>
 
Jednostavne šifre su zamijenjenezamenjene šiframa "'''polialfabetske zamjene'zamene''", koje mijenjajumenjaju alfabet zamjenezamene za svako slovo. Na primjerprimer, "dobar„dobar dan"dan” se može zamijenitizameniti sa "ŽĆZIA„ŽĆZIA ONV"ONV”, gdjegde se u poruci "d"„d” zamenjuje sa "Ž"„Ž” i "O"„O”, "a"„a” sa "I"„I” i "N"„N”. Čak i na malom uzorku poznatog ili pretpostavljenog otvorenog teksta, šifre polialfabetske zamjenezamene i šifre pomjeranjapomeranja slova (namijenjenenamenjene 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ćaveka izumljeniizumljene su elektromehaničkielektromehaničke strojevimašine za šifriranješifrovanje i dešifriranjedešifrovanje, a koristilikoristile su pomjeranjepomeranje, polialfabetsku zamjenuzamenu i neku vrstu "dodatne"„dodatne” zamjenezamene. U "rotor„rotorskim mašinama"mašinama”, nekoliko rotirajućih diskova je služilo za polialfabetsku zamjenuzamenu, a dodatne ploče su služile za neku drugu zamjenuzamenu. Ključevi su se lako mijenjalimenjali zamjenomzamenom rotirajućih diskova i prespajanjem žica dodatnih ploča. Iako su ove metode šifriranjašifrovanja bile kompleksnije od prethodnih i zahtijevalezahtevale mašine za šifriranješifrovanje i dešifriranjedešifrovanje, izumljene su druge mašine (kao npr. britanska "[[Bomba (strojmašina)|Bomba]]") za dekriptiranje ovih metoda šifriranja.
 
===Moderne šifre===
Moderne metode šifriranjašifrovanja mogu se podijelitipodeliti po dva kriterija: po tipu korištenog ključa i tipu ulaznih podataka.
 
Po tipu ključa, šifre se dijeledele na:
* Algoritmi simetričnog ključa (kriptografija s tajnim ključem), gdjegde se isti ključ koristi i za šifriranješifrovanje i za dešifriranjedešifrovanje, i
* Algoritmi asimetričnog ključa (kriptografija s javnim ključem), gdjegde se koriste dva različita ključa za šifriranješifrovanje i dešifriranjedešifrovanje.
 
Kod algoritma simetričnog ključa (npr. ''[[DES]]'' i ''[[AES (криптографија)|AES]]''), pošiljatelj i primatelj moraju imati isti ključ, koji je unaprijedunapred pripremljen i koji mora biti tajan za sve kojima nije namijenjennamenjen - 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„javni ključ"ključ” se objavljuje i omogućuje pošiljatelju da izvrši šifriranješifrovanje, dok "tajni„tajni ključ"ključ” primatelj čuva kao tajnu i koristi ga da izvrši ispravno dešifriranjedešifrovanje.
 
Po tipu ulaznih podataka, šifre se mogu svrstati u dvijedve 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|centerright]]
 
==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), prijepre svega, bitna su tri čimbenikačinioca:
* Matematičke prednosti za otkrivanje i iskorištenje slabosti šifre.
* Dostupna snaga izračunavanja, tj. snaga računalaračunara kojakoji se može upotrijebitiupotrebiti za rješavanjerešavanje problema. Treba napomenuti da prosječneprosečne performanse/kapacitet jednog računalaračunara nisu jedini čimbenikčinilac koji se uzima u obzir. Protivnik može, recimo, koristitida koristi više spregnutih računalaračunara i tako značajno ubrzatiubrza potragu za ključem (takozvani "napad„napad grubom silom"silom”).
* Veličina ključa, tj. dužina ključa koji je upotrijebljenupotrebljen za šifriranješ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 bitida 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.<ref>[http://www.keylength.com/ "Dužina ključa"]</ref>
 
[[ClaudeKlod ShannonElvud Š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 ==
 
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 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]].