Šifra
From Wikipedia, the free encyclopedia
U kriptografiji, šifra je algoritam za šifriranje i dešifriranje — serija precizno definiranih koraka koji slijede jedan za drugim.
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 zamjenjivanje vrši na temelju obimne knjige kodova, u kojoj se riječi i fraze zamijenjuju slučajnim nizom znakova. Na primjer, UQJHS može biti kod za "Nastavite do sljedećih koordinata".
Originalna (izvorna) informacija poznata je kao otvoreni tekst, a šifrirani oblik kao šifrirani tekst ili šifrat. Šifrirana poruka sadrži sve informacije iz otvorenog teksta, ali nije u obliku čitljivom za čovjeka ili računalo bez primjene odgovarajućeg mehanizma za njegovo dešifriranje - treba predstavljati nasumične znake za sve kojima poruka nije namijenjena.
Operacija šifriranja obično zavisi od dodatne informacije zvane ključ. Procedura šifriranja varira u zavisnosti od ključa, koji mijenja detalje algoritma. Ključ se mora izabrati prije šifriranja poruke. Bez poznavanja ključa trebalo bi da je teško, ili skoro nemoguće, dekriptirati š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 kriptoanalize.
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.