proces šifrovanja teksta From Wikipedia, the free encyclopedia
Enkripcija (engl. ) 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, 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. ), (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.
Reč šifra potiče iz francuskog jezika, fr. - brojka, tajni znak, odnosno iz arapskog ar. صفر, - prazno, - 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 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.
Svi sistemi enkripcije imaju u svojoj osnovi sledeće zajedničke elemente:[5]
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. ). Asimetrična enkripcija se još naziva i kriptografija javnog ključa (engl. ). Za ovu vrstu enkripcije koristi se RSA algoritam ().[7]
Š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 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:
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.
U čisto matematičkom napadu[10] (tj. u nedostatku drugih informacija koje bi pomogle u razbijanju šifre), pre svega, bitna su tri činioca:
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. )
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.
Seamless Wikipedia browsing. On steroids.