Blok algoritmi i DES Jelena Ignjatovi Transpoziciona ifra
Blok algoritmi i DES Jelena Ignjatović
Transpoziciona šifra je šifra koja permutuje simbole poruke prema datom šablonu. MESSAGE FROM MARY STUART KILL THE QUEEN Plaintext ulaz 1 M O A E 2 E M R Q 3 S M T U 4 S A K E 5 A R I E 6 G Y L N 7 E S L 8 F T T 9 R U H 4 9 1 7 5 3 2 8 6 Ciphertext izlaz Ključ = 9 kolona Prošireni ključ: raspored kolona 9! MOAE MRQSM MOAEE MRQ TU TUSAK E EARIE GYLN SLFTT RUH GYLNE SMTUE SLGYL NMOAE ARIER UHSAK EFTTE MRQ
Transpoziciona šifra Fleissnerova rešetka – 1881 Girolamo Cardano (1501 -1576) Dijagram Rešetkaste transpozicione šifre. Ovaj diagram pokazuje šifrovanje poruke "JIM ATTACKS AT DAWN" korišćenjem 4 x 4 rešetkaste transpozicione šifre. transpozicione (ili permutacione) šifre skrivaju sadržaj poruke preuredjivanjem redosleda slova.
BLOK ŠIFRE Blok šifrovanja se koriste za šifrovanje kratkih poruka kao što su ključevi, lozinke, potpisi ili autentifikacije korisnika. Kod ovog načina šifrovanja, izvorni podatak se deli u blokove simbola određene veličine koji se individualno i nezavisno kodiraju u cilju formiranja šifrovanog bloka podataka. Blok šifrovanje odlikuju sledeće osobine: - Svaki blok simbola se šifruje uvek na isti način, nezavisno od mesta koje zauzima u poruci. - Jednake poruke, šifrovane sa istim ključem, uvek daju jednake šifrovane poruke. - Da bi se dešifrovao deo poruke, nije neophodno dešifrovati je od početka, dovoljno je dešifrovati blok koji nas interesuje.
Kriptosistemi sa simetričnim ključem Blok šifre n bitova nnbitova bits Moguće osobine blokova: n = 64, 128, 256 bitova Moguće veličine ključeva: k = 40, 56, 64, 80, 128, 168, 192, 256 bitova blokovi hiperteksta Blokovi otvorenog teksta Ključ Blok šifra n bitova k bitova n bitova
Primer blok šifre Kod primene algoritama sa simetričnim ključem na računarima, kodiranje slova poruke i ključa tj. njihovo pretvaranje u binarni oblik se podrazumeva. Jedan od najviše korišćenih algoritama sa simetričnim ključem je ASCII kod koji se između ostalog koristi i za pretvaranje električnog signala sa tastature u binarni kod koji predstavlja odgovarajući simbol. Ovako izgleda tabela sa ASCII kodom alfabeta:
Primer blok šifre A B C D E F G H I 65 66 67 68 69 70 71 72 73 J K 74 75 L M N O P Q R S T U V W X Y Z 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 Da bi se neko slovo kodiralo u binarni niz znakova (od 8 bita), potrebno je brojeve iz tabele iz dekadnog brojevnog sistema prevesti u binarni brojevni sistem. Za ključ se može odabrati neka reč iz određenog jezika, ali iako je takav ključ lak za pamćenje on je podložniji napadima kriptoanalitičara. Bezbedniji način generacije ključa je korišćenje nekog generatora pseudoslučajnih brojeva. U tom slučaju strane koje učestvuju u komunikaciji treba da dogovore samo početno stanje koje će ključ koristiti.
Primer blok šifre Postupak šifrovanja je sledeći: Prvo se kodira otvoreni tekst i dobija se binarni niz dužine n. Nakon toga je potrebno kodirati ključ (ako je ključ zadat slovima) ili generisati ključ. Ključ ne mora biti iste dužine kao i otvoreni tekst, jer se može produžiti periodičnim ponavljanjem binarnog niza ključa do dužine n. Šifrovanje se vrši primenom operacije XOR nad parovima odgovarajućih bita otvorenog teksta i ključa, kako bi se dobio niz bita (ponovo dužine n) koji predstavlja šifrat. Ako je pi i-ti bit otvorenog teksta, ki i-ti bit ključa, a ci i-ti bit šifrata tada je ci=pi⊕ki.
Primer blok šifre Dešifrovanje se vrši na isti način kao i šifrovanje, samo se sada XOR primenjuje nad bitovima šifrata i ključa pi=ci⊕ki. Kao primer možemo uzeti da je ključ reč "GOLD", a poruka koju želimo da pošaljemo "ASUSSUAL". ASCII kod poruke je: 65 83 83 85 65 76, a ASCII kod šifre je: 71 79 76 68. Kako je dužina otvorenog teksta 8 znakova, a ključa 4, ključ se ponavlja dva puta kako bi imao istu dužinu kao i otvoreni tekst. Binarni kodovi poruke i ključa su:
Primer blok šifre A S U S S U A L 1000001 1010011 1010101 1000001 1001100 G O L D 1000111 1001111 1001100 1000100 Korišćenjem XOR funkcije binarni kodovi poruke i šifre daju šifrat. Dešifrovanje se vrši pomoću XOR funkcije nad šifratom i ključem: Poruka: 100000110100111010101101001110101011000001100 Ključ: 1000111100111110011001000100 Šifrat: 000011100001100100101110010100001101000 Ključ: 1000111100111110011001000100 Poruka: 100000110100111010101101001110101011000001100
Claude Shannon i Supstituciono-permutacione šifre 1949. god. Claude Shannon je predstavio ideju supstitucionopermutacionih (S-P) mreža ◦ Moderno, to su sustituciono-transpozicione proizvod šifre � One predstavljaju osnovu modernih blok šifara � S-P mreže se zasnivaju na operacijama: ◦ supstitucije (S-box) ◦ permutacija (P-box) � Obezbeđuje konfuziju i difuziju poruke � difuzija – rastura statističku strukturu plaintexta do obima hipertexta � konfuzija – čini vezu između hipertexta i ključa što jemoguće složenijom � Ove tehnike još uvek su korisne za razumevanje kriptografije kao i za rad sa kompleksnijim modernim šiframa. �
Blok algoritmi Poznati simetrčni blok algoritmi su: Ø DES (Data Encription Standard) – ključ je dužine 56 bitova; Ø Triple DES, DESX, GDES, RDES – ključ je dužine 168 bitova; Ø (Rivest) RC 2, RC 4, RC 5, RC 6 – ključ je promenljive dužine do 2048 bitova; Ø IDEA – ključ je dužine 128 bitova; Ø Blowfish – ključ je promenljive dužine do 448 bitova; Ø AES (Advanced Encription standard) – radi sa blokovima dužine 128 bitova i koristi ključeve dužine 128, 192, 256 bitova;
Data Encryption Standard (DES) Pojavom prvih računara otvorile su se nove mogućnosti za kriptografiju. Računari su vremenom postajali sve brži, radeći i po nekoliko miliona operacija u sekundi. Nova brzina rada je omogućila brže razbijanje šifri. Ovakav razvoj situacije je uslovio i potrebu za pravljenjem novih, sigurnijih i komplikovanijih algoritama za šifrovanje. Početak ovog perioda je označen sa razvojem blokovskih šifri počevši sa LUCIFEROM, razvijenim oko 1970, projektom IBM-a. Razvojem računarskih sistema i kriptografije javila se potreba za pravljenjem jedinstvenog standarda za šifrovanje podataka.
Data Encryption Standard (DES) Na drugom konkursu za razvoj DES-a (Data Encryption Standard), pošto se na prvom nije pojavio nijedan ozbiljniji kandidat, javio se IBM sa algoritmom zasnovanim na Lucifer-u. Iako komplikovan, predloženi algoritam se sastoji samo od jednostavnih logičkih operacija sa malim grupama bitova, pa se dosta efikasno može realizovati kako hardverski tako i programski. Algoritam je usvojen za standard dostupan svima, bez obzira na činjenicu da je prethodno bio patentiran. U usvajanju konačnog rešenja za DES je učestvovala i NSA (National Security Agency) američka vladina ustanova koja se između ostalog bavi i kriptoanalizom.
Data Encryption Standard (DES) Ovaj projekat okončan je 1971 godine i Lucifer je bio prvi šifrat � Algoritam je radio sa blokovima veličine 64 bita i koristio ključ od 128 bita. Kompanija se kasnije komercijalizovala. � ovaj način kodiranja i nazvala ga DES (eng. Data Encryption Standard). 1976 godine DES je prihvaćen kao federalni standard za enkripciju podataka i korišćen je u komunikacijama Američke vlade. � DES je narednih dvadesetak godina bio najviše korišćeni standard na svetu. � To je kod nekih autora izazvalo sumnju da je algoritam Lucifer u stvari oslabljen. Primedba koja ide u prilog toj tvrdnji je da je veličina ključa 128 bitova za Lucifer, a samo 56 bita za DES. Nesigurnost DES-a je dokazana 1998 godine, tako što je specijalizovani računar koji je tada vredeo 250. 000 dolara, za 56 sati odredio ključ za DES.
Data Encryption Standard (DES) Blok plaintexta (64 bitova) Ključ (64 bitova) Inicijalna permutacija Upotrebno parče (56 bitova) Ciklus 1 Ciklus 2 Ciklus 16 Reverzna permutacija Blok hipetexta (64 bitova)
Data Encryption Standard (DES) Kao ulaz u algoritam se koristi blok od 64 -bita izvornog teksta i 56 - bitni ključ. Izlaz iz algoritma je 64 -bitni kriptovan tekst koji se dobija nakon 16 iteracija koje se sastoje od identičnih operacija. Ključ od 56 bita se formira od inicijalnog 64 -bitnog ključa informacije ignorisanjem svakog 8 bita, tj. odsecanjem ukupno 8 bitova. Kriptovanje pomoću DES algoritma se sprovodi u nekoliko koraka. Prvo se bitovi ulaznog bloka dužine 64 bita permutuju početnom permutacijom. Radi se o permutaciji koja jednostavno vrši zamenu mesta bitova. Permutovan ulazni blok deli na dva dela od po 32 bita, levi L 0 i desni R 0 deo. Nad desnim delom bloka se obavlja funkcija f(R 0, K 1), gde je R 0 desnih 32 bita, a K 1 je 48 -bitni ključ. Ova funkcija generiše 32 -bitni rezultat. Nad dobijenim rezultatom funkcije f i L 0 vrši se operacija XOR.
Jedan ciklus u DES algoritmu Li-1 Ri-1 32 Keyi-1 32 Shift 56 Ekspanziona permutacija 48 Kompresiona Permutacija 48 S-Box Supstitucija 32 P-Box Permutacija 32 32 Li Ri 56 Keyi DES danas NIJE dovoljno siguran
Data Encryption Standard (DES) Prilikom šifrovanja/dešifrovanja u svakoj iteraciji se koriste različiti ključevi K 1, . . . , K 16 veličine 48 -bita. Za generisanje ovih ključeva se koristi poseban algoritam. Postupak generisanja šesnaest 48 -bitnih delova ključeva (K 1, K 2, …, K 16) od zadatog tajnog ključa sprovodi se u nekoliko koraka. Prvo se iz 64 -bitnog ključa odstrane bitovi parnosti tj. 8 -, 16 -, 24 -, 32 -, 40 -, 48 -, 56 - i 64 -bit, zatim se pomoću zadate tabele permutacije PC-1 iz ključa generišu dva bloka po 28 bita (Ci i Di). Blokovi se formiraju tako što svaki bit sa pozicije i ide na poziciju koja se čita iz i-te stavke ove tabele. Nakon toga, sledi 16 koraka u okviru kojih se svaki blok rotira ulevo za određeni broj bita (Ls(i) zavisi o kom koraku se radi). Nastali blokovi se spajaju, a onda se pomoću permutacije koja je definisana tabelom PC-2 generše odgovarajući deo ključa Ki, gde je i redni broj koraka.
Data Encryption Standard (DES) Tabela PC-1 Tabela PC-2
Data Encryption Standard (DES) Suštinski, a ujedno i najkritičniji deo algoritma predstavlja funkcija kriptovanja f tj. Feistel funkcija. Zbog njene kompleksnosti pretpostavljalo se da ne postoji način napada na DES-a. Funkcija f se formira u nekoliko koraka. Od ulaznih 32 -bitnih Ri se proširenjem, na osnovu tabele E, dobija podatak dužine 48 bita. Dobijena vrednost se bit po bit “sabira“ sa ključem Ki (operator “ ⊕ ” predstavlja XOR logičku operaciju). Rezultat je 48 -bitna vrednost koja se deli na osam delova od po šest bita. Tako dobijene vrednosti se vode u osam blokova za supstituciju S-box (S 1, S 2, …, S 8). Svaki S-box ulaznih 6 bita zamenjuje sa 4 bita na izlazu. Prvi i zadnji bit svakog 6 -bitnog dela informacije na ulazu u S-box predstavljaju adresu reda, a srednja četiri adresu kolone u tabeli supstitucije.
Data Encryption Standard (DES) DES stuktura iteracije
Data Encryption Standard (DES) Istim postupkom nad svakom šestorkom od ulaznih 48 bita substitucijom se dobija ukupno 32 bita. Tako formiranih 32 bita dodatno se permutuje zadatom tabelom P(Xi) te se dobija konačna vrednost funkcije f. Budući da je algoritam za kriptovanje identičan algoritmu za dekriptovanje, postupak dekriptovanja se može sprovesti tako što se operacije korišćene u postupku kriptovanja obavljaju obrnutim redosedom. Zbog simetričnosti algoritma to se postiže tako što se kriptovani blok pusti kroz isti algoritam s tom razlikom da se umesto ključa Ki u i-tom koraku upotrijebi ključ K 16 − i + 1. Zanimljivo je da se napomene jedna slabost vezana za DES algoritam. Naime, zbog samog načina kreiranja delova ključeva, postoje četiri ključa za koje je dekripcija jednaka enkripciji. To znači, ako se kriptuje neka poruka dva puta i to sa baš jednim od ta 4 ključa, kao rezultat se dobija originalna poruka. Kako je verovatnoća da se od svih mogućih ključeva odabere baš neki od tih mala, to ne utiče na sigurnost algoritma.
Data Encryption Standard (DES) DES algoritam koristi 56 -bitni ključ za kriptovanje što znači ukupno 72. 057. 594. 037. 927. 936 mogućnosti za osobu koja hoće da probije tkz. brutalnim napadom tekst kriptovan sa DES-om. 1999. god. objedinjene grupe EFF i Distributed. net kao DES Cracker uz pomoć 100. 000 PC računara na Internetu, probili su DES za vreme 22 sata i 15 minuta. Pritom je brzina pretraživanja bila 245 biliona ključeva/sekundi. Kako je problem sa DES-om bila veličina ključa od samo 56 bitova, predloženo je rešenje trostrukim šifrovanjem DES-om, sa tri nezavisna ključa.
3 DES Postoji više metoda Triple DES algoritma: Ø Prvi metod: Podaci se šifruju tri puta sa tri odvojena ključa. Ø Drugi metod: Podaci se šifruju jednim, dešifruju drugim, pa se ponovo šifruju trećim ključem. Ø Treći metod: Sličan je kao prethodna dva metoda, sa tim što se isti ključ koristi u prvoj i trećoj operaciji.
3 DES
3 DES Prvi ključ K 1 se koristi za kriptovanje bloka podataka izvorne poruke P pomoću standardnog DES algoritma. Tako kriptovana poruka se dekriptuje drugim ključem K 2. Dekriptovanjem poruke sa ovim ključem se dobija nova šifrovana poruka. Na kraju se razultat dekriptovanja opet kriptuje, ovaj put ili trećim ključem K 3 ili opet prvim K 1. Tako je konačno formirana kriptovana poruka C. Naizmeničnim korišćenjem različitih ključeva povećava se efektivna dužina ključa na ukupno 168 bita, a tako i broj kombinacija koje bi eventualni napadač morao probati da bi došao do izvorne poruke. Broj kombinacija za dva različita ključa je 2112, dok za 3 različita ključa ima čak 2168 kombinacija. 3 -DES algoritam, kako ga još nazivaju, rešava problem dužine ključa običnog DES-a, a sa druge strane nedostatak mu je to što je mnogo sporiji od standardnog DES-a
Triple–DES (3 DES) P 64 bits DES DES EK 1 DK 2 EK 3 Ključ K 1 56 bits Ključ K 2 56 bits Ključ K 3 C 64 bits 56 bits 168 bits Stvarna kriptografska snaga 3 DES ključa je 2 x 56 bitova = 112 bitova
3 DES Dekriptovanje poruke koja je kriptovana pomoću 3 -DES algoritma se, kao i kod klasičnog DES-a, obavlja inverznim funkcijama u odnosu na kodiranje. Prvo se obavlja dekriptovanje pomoću trećeg ključa, sledi kriptovanje pomoću ključa K 2 i na kraju se izvorna poruka P dobija postupkom dekriptovanja pomoću ključa K 1.
Advanced Encryption Standard (AES) Kako DES nije bio projektovan sa namerom da se koristi njegova trostruka verzija, došlo se do zaključka da sigurno postoji efikasniji algoritam koji je po sigurnosti ekvivalentan trostrukom DES-u. Iz tog razloga je 1997 godine raspisan konkurs za novi algoritam. Za novi standard AES (Advanced Encryption Standard) je 2001. g. izabran algoritam Rajndol (Rijndael) sa blokom veličine 128 bita i ključem veličine 128, 192 ili 256 bita.
Advanced Encryption Standard (AES) � � Razvoj Advanced Encryption Standarda ◦ The National Institute of Standards and Technology (NIST) počeo je sa izdavanjem sadržaja za AES 1997. i odabrao Rijndael oktobra 2000. ◦ 26. 11. 2001, AES je javno prihvaćen kao U. S. Federal Information Processing Standard FIPS PUBS 197 Zahtevi za AES ◦ AES treba da bude javno definisan. ◦ AES treba da bude simetrična blok šifra. ◦ AES treba da ima mogućnost da se lako implementira i u hardver i u softver. ◦ AES treba da ima blokove dužine n = 128 bitova ◦ AES treba da ima fleksibilan ključ veličine k = 128, 192, i 256 bitova.
Neke popularne blok šifre Veličina bloka Veličina ključa DES (Data Encryption Standard, IBM) 64 56 3 DES (Triple DES) 64 168 IDEA (Lai / Massey, ETH Zürich) 64 128 CAST (Canada) 64 128 Blowfish (Bruce Schneier) 64 128. . . 448 RC 2 (Ron Rivest, RSA) 64 40. . . 1024 RC 5 (Ron Rivest, RSA) 64. . . 256 128. . . 256 Naziv algoritma AES (Advanced Encryption Standard)
- Slides: 34