Uploaded by Veljko Selakovic

Zaštita podataka

advertisement
DES algoritam
Struktura Feistel algoritama
●
Strukturu Feistel blok algoritama osmislio je Horst Feistel.
●
Ulaz u algoritam je blok veličine 2w i ključ K.
●
Blok se deli u dva jednaka dela (levi LE i desni RE).
●
Oba bloka podataka prolaze kroz n rundi obrade i kombinuju se u
konačan ciphertext.
●
Ulaz svake runde su LE i RE delovi iz prethodne runde i podključ
ključa K.
●
Svaka runda ima istu strukturu. Nad levom polovinom podataka
se vrši substitucioni algoritam izvršavajući XOR operaciju nad
levom polovinom i izlazom funkcije izvršene nad desnom
polovinom i podključem. Struktura funkcije je ista za sve runde.
Nakon substitucije, vrši se permutacija dveju polovina.
Struktura Feistel algoritama
●
Proces dekripcije je obrnut od procesa enkripcije.
●
Ulaz u algoritam je ciphertext, a podključevi se koriste u
obrnutom redosledu u odnosu na enkripciju.
●
Nema potrebe za implementacijom
dekripcionog algoritma.
i
enkripcionog
i
DES (Data Encryption Standard) algoritam
●
●
●
●
Najčešće korišćen algoritam do pojave AES algoritma 2001.
godine
Usvojen 1977.
Enkriptuje podatak veličine 64 bita koristeći ključ veličine
56 bitova (zapravo je sam ključ veličine 64 bita od kojih se
samo 56 bitova koristi)
Koristio se najviše u finansijskim aplikacijama
DES algoritam
●
Prvo, plaintext
permutaciju.
●
Zatim se u 16 iteracija (rundi) izvršavaju i
permutacione i substitucione funkcije nad
blokom podataka.
●
Na kraju leva i desna polovina bloka
menjaju mesta, a potom se vrši inverzna
inicijalna
permutacija
proizvodeći
ciphertext.
●
Ne uključujući inicijalne permutacije, DES
ima Feistel strukturu te dešifrovanje ide
obrnutim redosledom.
●
Iz originalnog ključa se izvlači 56 bitova
ključa koji se dalje koristi za generisanje
podključeva.
prolazi
kroz
inicijalnu
DES algoritam
●
●
Inicijalna permutacija
○
Preraspoređuje ulazni niz bitova
○
Parni bitovi se permutuju u levoj polovini, dok se neparni bitovi
permutuju u desnoj polovini bloka, na osnovu definisane tablice
permutacije
Struktura jedne iteracije (runde)
○
Kao i za sve Feistel algoritme, koriste se dve polovine bloka (L i
R):
■
Li = Ri-1
■
Ri = Li-1 xor F(Ri-1, Ki)
○
Proširuje desnu polovinu na 48 bitova koristeći permutaciju E
○
Dodaje proširenje potključu
○
Prolazi kroz 8 zamena (S-boxes) da bi se dobio 32-bitni rezultat
○
Permutuje rezultat koristeći permutaciju P
DES algoritam
●
Postoji 8 algoritama zamene (Sboxes) koji mapiraju 6 u 4 bita.
●
Svaki algoritam zamene (S-box)
funkcioniše tako što 1 i 6. bit (row
bits) ulaza izaberu red a, 2, 3, 4 i 5.
bit (col bits) izaberu kolonu u
tabeli u čijem se preseku nalazi
rezultat zamene veličine 4 bita.
●
Rezultat je da se od 48 bita dobija
8 grupa od 4 bita, odnosno 32
bita ukupno.
●
Izbor reda i kolone zavisi i od
podataka plaintext-a i od ključa.
DES algoritam
●
●
●
●
Ključ se generiše krećući od ključa dužine 64 bita.
Svaki osmi bit se ignoriše, a ostali bitovi se
permutuju permutacijom PC1 dobijajući ključ od
56 bita.
Ključ se deli u dve polovine od po 28 bita.
U svakoj iteraciji (rundi), svaka od dve polovine se
rotira za 1 ili 2 mesta u levo, a potom se iz svake
polovine bira 24 bita koji se zajedno permutuju
koristeći permutaciju PC2 generišući podključ za
funkciju iteracije.
DES algoritam
●
●
●
●
Pozeljno svojstvo enkripcionih algoritama je da malim
promenama u plaintext-u ili ključu proizvodimo velike
promene u ciphertext-u.
Izmenom samo jednog od 64 bita originalnog teksta, utiče
se na izmenu većeg broja bitova šifrovanog teksta.
Ovaj efekat se zove efekat lavine.
Da su promene u šifrovanom tekstu male, mogao bi se naći
način da se smanji opseg mogućih plaintext-ova ili ključeva
za brute-force napad.
DES algoritam
●
I – Primer DES algoritma za neki plaintext i ključ
●
II – Isti primer sa jednim bitom razlike u plaintext-u
●
III – Isti primer sa jednim bitom razlike u početnom ključu
Runda
I
II
III
IP
02468aceeca86420
12468aceeca86420 [1]
02468aceeca86420 [0]
1
3cf03c0fbad22845
3cf03c0fbad32845 [1]
3cf03c0f9ad628c5 [3]
2
bad2284599e9b723
bad3284539a9b7a3 [5]
9ad628c59939136b [11]
...
…
…
…
16
75e8fd8f25896490
1ce2e6dc365e5f59 [32]
2765c1fb01263dc4 [30]
IP-1
da02ce3a89ecac3b
057cde97d7683f2a [32]
ee92b50606b62b0b [30]
Sigurnost DES algoritma
●
Sa veličinom ključa od 56 bita, postoji 256 mogućih ključeva (7.2 x 1016).
●
brute force napad nije bio opcija ranije
Sa razvojom tehnologije, brute force napadi su sve veća pretnja
●
○
Prosečnom računaru treba godinu dana
○
Superračunaru treba do sat vremena
Sigurnost DES algoritma
●
●
●
●
●
Mogući su i neki napadi na implementaciju algoritma.
Koristi se poznavanje detalja implementacije da se pretpostave
neki ili svi bitovi potključa.
Uopšteno, ovo su statistički napadi.
Dodatnu pretnju predstavljaju napadi na dužinu trajanja algoritma
(timing attack).
Ovi napadi dobijaju informaciju o ključu na osnovu trajanja
dekripcije za različite šifrovane tekstove.
SDES algoritam
●
Pojednostavljena
verzija
DES
algoritma
napravljena je u edukacione svrhe i ne pruža
dobru sigurnost.
●
Ima slične osobine i strukturu kao i DES
algoritam sa manjim parametrima.
●
Veličina bloka je 8 bita, a veličina ključa 10 bita.
●
Sastoji se iz inicijalne permutacije (IP), funkcije
iteracije fk, jednostavne permutacije (SW) koja
menja mesta leve i desne polovine i inverzne
inicijalne permutacije (IP-1).
●
Funkcija iteracije koristi potključ iteracije
veličine 8 bita koji se generiše na sličan način
kao kod DES algoritma.
SDES algoritam
●
Ulaz generatora potključeva je 10-bitni ključ nad kojim
se vrši prva permutacija.
●
Nakon toga se na levih i desnih 5 bitova vrši cirkularna
rotacija bitova za 1 ili 2 bita levo.
●
Nakon toga se vrši druga permutacija koja odabira 8
bitova iz 10-bitnog ključa i time generiše potključ prve
iteracije (K1).
●
Rotirani bitovi 10-bitnog ključa se dovode na ulaz još
jedne cirkularne rotacije za 1 ili 2 bita levo.
●
Nakon rotacije, ključ se sprovodi kroz istu drugu
permutaciju i proizvodi potkluč druge iteracije (K2).
SDES algoritam
●
Na ulaz algoritma se dovodi blok od 8 bita originalne poruke
koja se permutuje koristeći inicijalnu permutaciju (IP), a potom
se deli na dve jednake polovine.
●
Nad desnom polovinom se vrši funkcija iteracije koristeći
potključ prve iteracije.
●
Blok od 4 bita se propušta kroz funkciju ekspanzije (E) koja
proširuje poruku na 8 bitova permutujići ih.
●
Nakon toga se vrši XOR operacija dobijenog dela poruke i
potključa i blok deli na dve jednake polovine od po 4 bita koje
se propuštaju kroz supstitocione algoritme (S-boxes).
●
Svaki S-box od 4 bita proizvodi dva bita koji se konkateniraju i
propuštaju kroz permutacioni algoritam (P).
●
Izlaz permutacionog algoritma je rezultat funkcije iteracije koji
se dalje koristi kao i u svakoj Feistel strukturi.
●
Nakon dve iteracije algoritma, blok se propušta kroz inverznu
inicijalnu permutaciju (IP-1) generišući šifrovanu poruku.
Zadatak 1 – SDES
●
Za originalnu poruku 10111101b i ključ 1010000010b dati međurezultat svake
operacije, kao i vrednost šifrovane poruke ako se koristi pojednostavljeni
DES algoritam (SDES). Detalji operacija su dati u nastavku.
Zadatak 1 – Rešenje
●
K = 1010000010b
●
PC1:
1
2
3
4
5
6
7
8
9
10
1
0
1
0
0
0
0
0
1
0
3
5
2
7
4
10
1
9
8
6
Zadatak 1 – Rešenje
●
K = 1010000010b
●
PC1:
1
2
3
4
5
6
7
8
9
10
1
0
1
0
0
0
0
0
1
0
3
5
2
7
4
10
1
9
8
6
1
Zadatak 1 – Rešenje
●
K = 1010000010b
●
PC1:
1
2
3
4
5
6
7
8
9
10
1
0
1
0
0
0
0
0
1
0
3
5
2
7
4
10
1
9
8
6
1
0
Zadatak 1 – Rešenje
●
K = 1010000010b
●
PC1:
1
2
3
4
5
6
7
8
9
10
1
0
1
0
0
0
0
0
1
0
3
5
2
7
4
10
1
9
8
6
1
0
Zadatak 1 – Rešenje
●
K = 1010000010b
●
PC1:
1
2
3
4
5
6
7
8
9
10
1
0
1
0
0
0
0
0
1
0
3
5
2
7
4
10
1
9
8
6
1
0
0
0
0
0
1
1
0
0
Zadatak 1 – Rešenje
●
K = 1000001100b
●
LS:
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
1
1
1
0
0
0
Zadatak 1 – Rešenje
●
K = 0000111000b
●
PC2:
1
2
3
4
5
6
7
8
9
10
0
0
0
0
1
1
1
0
0
0
6
3
7
4
8
5
10
9
Zadatak 1 – Rešenje
●
K = 0000111000b
●
PC2:
1
2
3
4
5
6
7
8
9
10
0
0
0
0
1
1
1
0
0
0
6
3
7
4
8
5
10
9
1
Zadatak 1 – Rešenje
●
K = 0000111000b
●
PC2:
1
2
3
4
5
6
7
8
9
10
0
0
0
0
1
1
1
0
0
0
6
3
7
4
8
5
10
9
1
0
Zadatak 1 – Rešenje
●
K = 0000111000b
●
PC2:
1
2
3
4
5
6
7
8
9
10
0
0
0
0
1
1
1
0
0
0
6
3
7
4
8
5
10
9
1
0
1
0
0
1
0
0
Ovo je K1.
Zadatak 1 – Rešenje
●
K = 1000001100b
●
LS:
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
1
0
1
0
1
Zadatak 1 – Rešenje
●
K = 0001010001b
●
PC2:
1
2
3
4
5
6
7
8
9
10
0
0
0
1
0
1
0
0
0
1
6
3
7
4
8
5
10
9
Zadatak 1 – Rešenje
●
K = 0001010001b
●
PC2:
1
2
3
4
5
6
7
8
9
10
0
0
0
1
0
1
0
0
0
1
6
3
7
4
8
5
10
9
1
0
0
1
0
0
1
0
Ovo je K2.
Zadatak 1 – Rešenje
●
P = 10111101b
●
IP:
1
2
3
4
5
6
7
8
1
0
1
1
1
1
0
1
2
6
3
1
4
8
5
7
Zadatak 1 – Rešenje
●
P = 10111101b
●
IP:
1
2
3
4
5
6
7
8
1
0
1
1
1
1
0
1
2
6
3
1
4
8
5
7
0
1
1
1
1
1
1
0
L0
R0
Zadatak 1 – Rešenje
●
R0 = 1110b
●
E:
R0
4
1
1
2
3
4
1
1
1
0
2
3
2
3
4
1
Zadatak 1 – Rešenje
●
R0 = 1110b
●
E:
R0
1
2
3
4
1
1
1
0
4
1
2
3
2
3
4
1
0
1
1
1
1
1
0
1
Zadatak 1 – Rešenje
●
01111101b
●
XOR sa K1:
XOR
0
1
1
1
1
1
0
1
1
0
1
0
0
1
0
0
K1
Zadatak 1 – Rešenje
●
01111101b
●
XOR sa K1:
XOR
0
1
1
1
1
1
0
1
1
0
1
0
0
1
0
0
1
K1
Zadatak 1 – Rešenje
●
01111101b
●
XOR sa K1:
XOR
0
1
1
1
1
1
0
1
1
0
1
0
0
1
0
0
0
1
K1
Zadatak 1 – Rešenje
●
01111101b
●
XOR sa K1:
XOR
0
1
1
1
1
1
0
1
1
0
1
0
0
1
0
0
0
0
1
K1
Zadatak 1 – Rešenje
●
01111101b
●
XOR sa K1:
XOR
0
1
1
1
1
1
0
1
1
0
1
0
0
1
0
0
1
1
0
1
1
0
0
1
K1
Zadatak 1 – Rešenje
●
11011001b
●
XOR sa K1:
1
S1
1
0
1
1
0
0
1
1
0
3
2
0
1
2
3
3
2
1
0
2
0
1
3
0
2
1
3
3
0
1
2
3
1
0
2
2
1
0
3
S2
Zadatak 1 – Rešenje
●
11011001b
●
XOR sa K1:
1
S1
1
0
1
1
0
0
1
1
0
3
2
0
1
2
3
3
2
1
0
2
0
1
3
0
2
1
3
3
0
1
2
3
1
0
2
2
1
0
3
S2
Zadatak 1 – Rešenje
●
11011001b
●
S-boxes:
1
S1
1
0
1
1
0
0
1
1
0
3
2
0
1
2
3
3
2
1
0
2
0
1
3
0
2
1
3
3
0
1
2
3
1
0
2
2
1
0
3
0
0
S2
Zadatak 1 – Rešenje
●
11011001b
●
S-boxes:
1
S1
1
0
1
1
0
0
1
1
0
3
2
0
1
2
3
3
2
1
0
2
0
1
3
0
2
1
3
3
0
1
2
3
1
0
2
2
1
0
3
0
0
S2
Zadatak 1 – Rešenje
●
11011001b
●
S-boxes:
1
S1
1
0
1
1
0
0
1
1
0
3
2
0
1
2
3
3
2
1
0
2
0
1
3
0
2
1
3
3
0
1
2
3
1
0
2
2
1
0
3
0
0
1
0
S2
Zadatak 1 – Rešenje
●
0010b
●
P:
1
2
3
4
0
0
1
0
2
4
3
1
Zadatak 1 – Rešenje
●
0010b
●
P:
1
2
3
4
0
0
1
0
2
4
3
1
0
0
1
0
Zadatak 1 – Rešenje
●
Swap:
0
1
1
1
1
1
1
0
F
1
1
1
0
0
1
0
1
0
0
1
0
0
1
1
1
0
1
0
1
XOR
Zadatak 1 – Rešenje
●
L1 = 1110b
●
R1 = 0101b
●
E: 10101010b
●
XOR sa ključem K2: 00111000b
●
S1: 0011 -> 10
●
S2: 1000 -> 11
●
P: 0111b
●
L2 = R1 = 0101
●
R2 = L1 xor P = 1110 xor 0111 = 1001b
●
4bit swap: 10010101b
●
C = IP-1 = 11000011b
PITANJA?
rti.etf.bg.ac.rs/rti/ir4zp
CREDITS: This presentation template was created
by Slidesgo, including icons by Flaticon,
infographics & images by Freepik and illustrations
by Stories
Download