Kriptografija simetričnog (tajnog) ključa Mario Čagalj [email protected] Sveučilište u Splitu Sveučilišni studijski centar za stručne studije 20/3/2012.

Download Report

Transcript Kriptografija simetričnog (tajnog) ključa Mario Čagalj [email protected] Sveučilište u Splitu Sveučilišni studijski centar za stručne studije 20/3/2012.

Kriptografija simetričnog (tajnog) ključa
Mario Čagalj
[email protected]
Sveučilište u Splitu
Sveučilišni studijski centar
za stručne studije
20/3/2012.
Kriptografski sustav
Plaintext
Encryption
Ke
Key
Channel
Ciphertext
Message
Channel
Decryption
Plaintext
Kd
Key
Generation
o
o
Kriptografija simetricnog (tajnog) kljuca: Ke = Kd
Kriptografija javnog (asimetricnog) kljuca: Ke != Kd
::2::
Kriptografski sustav: definicija
o
Definicija: Kripografski sustav sastoji se od slijedecih
elemenata:
o
o
o
o
Prostor “cistih” (plaintext) poruka M
Prostor kriptiranih (ciphertext) poruka C
Prostor enkripcijskih kljuceva K i dekripcijskih kljuceva K’
Algoritam za generiranje kljuceva G : N  K x K’
o
o
o
G generira par kljuceva (Ke, Kd) e K x K’
Enkripcijski algoritam E : M x K  C
Dekripcijski algoritam D : C x K’  M
Oznaka enkripcijske transformacije: c = EKe(m), za Ke e K i m e M
Oznaka dekripcijske transformacije: m = DKd (c), za Kd e K’ i c e C
o
Za svaku poruku m e M i sve kljuceve Ke e K, postoji Kd e K’ takav da
DKd (EKe(m)) = m.
::3::
Kerckhoffsov aksiom (princip)*
o Auguste Kerckhoffs, 19. st.
o Kriptografski sustav mora biti siguran cak iako su svi elementi
koji cine sustav, osim tajnih kljuceva, poznati (javna
informacija).
o “Security through obscurity” je vrlo nepopularan i
nepreporucljiv pristup dizajnu kripografskih sustava
o Primjer: Probijanje A5/1 simetricnog kriposustava koji se
inicijalno koristio u GSM uredjajima:
o
o
“A Reference Implementation of the Alleged A5/1 Stream Cipher.” Briceno, M.,
Goldberg, I., and Wagner, D. http://www.scard.org/gsm/a51.html
“Real-Time Cryptanalysis of the A5/1 Stream Cipher.” Shamir, A., Biryukov, B., and
Wagner, D. In Proceedings of Fast Software Encryption (FSE), 2000.
*Nema veze sa Kirchoffovim zakonom.
::4::
Kriptografija simetričnog (tajnog) ključa
Klasični kriptografski sustavi
Klasični (simetrični) kriposustavi
o Klasični sustavi koriste dvije vrste tehnika
o Supstitucijske (substitution)
o Kod supstitucijske tehnike, enkripcijski algoritam EKe(m)
zamjenjuje svaku “čistu” poruku (plaintext) m e M sa
odgovarajucim “ciphertextom” c e C .
o Permutacijske (transposition)
o “Čista” poruka se transformira na način da se permutiraju
elementi (slova, simboli) poruke, bez mijenjanja identiteta tih
elemenata.
o Klasične supstitucijske sifre:
o Cezarova sifra, Playfair sifra, Hillova sifra, Vigenère sifra,
Vernam sifra, One-Time Pad sifra
::6::
Cezarova sifra
o
Zamjena svakog slova abecede sa slovom koji je udaljen za tri mjesta
(prema kraju abecede)
plaintext
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V W X
Y
Z
A
B
C
sifra
o
o
Primjer: za poruku m = sigurnost racunalnih sustava, odgovarajuci ciphertext
glasi c = VLJXUQRVW UDFXQDOQLK VXVWDYD
Matematicki opis Cezarovg kriposustava
o
o
o
o
o
o
a = 0, b = 1, ..., z = 25
Enkripcija: svako slovo p “cistog” teksta (plaintext-a) zamjeni slovom C
“ciphertext”-a, gdje C = E(3,p) = (p+3) mod 26.
Dekripcija: p = D(3,C) = (C-3) mod 26.
Generalno: C = E(K,p) = (p+K) mod 26 i p = D(K,C) = (C-K) mod 26
Dakle, K predstavlja enkripcijski kljuc
Q: Je li Cezarova sifra sigurna? Zasto?
::7::
Monoalphabetic Ciphers
o
Cezarova sifra ima samo 26 kljuceva
o
o
Podlozna “brute-force” napadu
Broj kljuceva se moze znacajno povecati na nacin da za sifru koristimo
bilo koju permutaciju slova abecede
plaintext
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
I
K
F
G
H
G
W H
L
M
N
O
S
C
A
P
U
T
V
J
X
Y
Z
R
B
Q
sifra
o
o
o
o
Broj kljuceva raste na 26! > 280 (brute-force napad potencijalno eliminiran)
Na zalost, poznavajuci prirodu plaintext-a (npr. engleski tekst), moguce je
napraviti kriptoanalizu ciphertext-a na osnovu relativne frekvencije slova
(npr. u engleskom tekstu)
Slova ciphertext-a ne mijenjaju relativnu frekvenciju odgovarajucih slova iz
plaintext-a -> posljedica koristenja “monoalphabetic chipers”
“Monoalphabetic chipers”: za dani enkripcijski kljuc, svaki element plaintext-a
ce biti zamjenjen sa jedinstvenim elementom iz prostora ciphertext-a
::8::
Monoalphabetic Ciphers: kriptoanaliza
o
Zelimo desifrirati slijedeci ciphertext
UZQSOVUOHXMOPVGPOZPEVSGZWSZOPFPESXUDBMETSXAIZVUEPHZHMDZSHZO
WSFPAPPDTSVPQUZWYMXUZUHSXEPYEPOPDZSZUFPOMBZWPFUPZHMDJUDTMOH
MQ
o
Racunamo relativnu frekvenciju pojavaljivanja slova
o
o
P – 13.33%, Z – 11.67%, S – 8.33%, U – 8.33%, O – 7.5%, M – 6.67%, ..., C = 0%, K = 0%,
L = 0%, N = 0%, R = 0%
Relativna frekvencija prosjecnog engleskog teksta
::9::
Monoalphabetic Ciphers: kriptoanaliza
o
Slova ciphertext-a P i Z najvjerojatnije odgovaraju slovima e i t
o
Slova ciphertext-a S, U, O, M i H imaju visoku frekvenciju pojavljivanja i
najvjerojatnije odgovaraju slovima iz skupa {a, h, i, n, o, r, s}
o
Slova ciphertext-a A, B, G, Y, I te J imaju najmanju frekvenciju
pojavljivanja te najvjerojatnije odgovaraju slovima iz skupa {b, j, k, q, v,
x, z}
o
Na osnovu prethodnih znanja, te koristeci metodu pogreske i pokusaja
desifriramo ciphertext kao:
it was disclosed yesterday that several informal but direct contacts
have been made with political representatives of the viet cong in moscow
::10::
Polyalphabetic Ciphers
o
Poboljsava sigurnost na nacin da koristi vise alfabeta za sifru
o
o
Na ovaj nacin jedan element plaintext-a moze biti zamjenjen sa vise razlicitih
elemenata iz prostora chipertext poruka (C)
Kriptoanaliza je teza nego kod “monoalphabetic” sifri
o
o
“Poravnava” distribuciju frekvencija pojavljivanja slova
Primjer: Vigenère sifra
o
o
o
Pretpostavimo slijedece kodiranje slova: a = 0, b = 1, c = 2, ..., z = 25
Neka enkripcijski kljuc bude: gold = (6, 14, 11, 3)
Plaintext: m=proceed meeting as agreed = (15, 17, 14, 2, 4, 4, 3, 12, 4, 4, 19, 8,
13, 6, 0, 18, 0, 6, 17, 4, 4, 3)
Vigenère-ova enkripcija se moze definirati kao sumiranje slova plaintext-a i
slova kljuca (slovo po slovo) modulo 26
o
15
17
14
2
4
4
3
12
4
4
19
8
13
6
0
18
0
6
17
4
4
3
6
14
11
3
6
14
11
3
6
14
11
3
6
14
11
3
6
14
11
3
6
14
21
5
25
5
10
18
14
15
10
18
4
11
19
20
11
21
6
20
2
7
10
17
o
o
Dobiveni chipertext: VFZFKSO PKSELTU LV GUCHKR
Matematicki: C = E(K,p) = (p+K) mod 26 i p = D(K,C) = (C-K) mod 26
o
Za K=g=6, p=0=13 -> C = E(6,13) = 19 mod 26 = 19 i p=D(6,19)=13 mod 26 = 13
::11::
Vernam i “One-Time Pad” sifre
o
Vernam sifra
o
o
Jedna od najjednostavnijih kriptografskih sustava
Plaintext poruka m je binarni string “dug” n bitova
o
o
Enkripcijski kljuc je takodjer n-bitni string
o
o
ci = bi  ki, za sve i=1,...,n,  je zbrajanje modulo 2 (XOR)
Dekripcija je identicna enkripciji
o
o
k = k1 k2 ... kn e {0,1}n (k se bira na random nacin prema uniformnoj
distribuciji)
Enkripcija: ciphertext string c = c1 c2 ... cn se dobiva na slijedeci nacin
o
o
m = b1 b2 ... bn e {0,1}n
bi = ci  ki = bi  ki  ki = bi, za sve i=1,...,n
One-Time Pad
o
o
Enkripcijski kljuc k u Vernamovom kriptosustavu koristi se samo
jednom (“one-time-key”); za svaku poruku m koristi se iznova
generiran kljuc
Idealan kriptografski sustav, no nepraktican (Q: Zasto?)
::12::
Permutacijske (Transposition) sifre
o
o
“Cista” poruka (plaintext) se transformira na nacin da se permutiraju
elementi (slova, simboli) poruke, bez mijenjanja identiteta tih elemenata.
Primjer 1: “Rail-fence” tehnika (dubina 2)
o
o
o
o
m = meet me after the class
mematrtels
etefethcas
c = MEMATRTELSETEFETHCAS
Moze se jednostavno ’’probiti’’
Primjer 2:
Key:
Plaintext:
Ciphertext:
o
24153
meetm
e afte
r thec
l as sx
EATATTESMERLMECXEFHS
Kriptoanaliza na osnovu relativne frekvencije slova jos uvijek moguca
::13::
Kriptografija simetričnog (tajnog) ključa
Moderni kriptografski sustavi
Block vs. Stream Cipher
o
“Stream cipher” (slijedna sifra) procesira poruku jedan po jedan bit
(byte)
pseudo-random
bit stream generator
...
o
plaintext
+
...
seed
ciphertext
“Block cipher” (blok sifra) procesira (enkriptira i dekriptira) “cistu”
poruku u blokovima
plaintext
padding
ciphertext
block
cipher
key
::15::
Data Encryption Standard (DES)
o
Prvi i najznacajniji moderni simetricni kriptografski sustav
o
o
Objavio ga je National Bureau of Standards, 1977.
Izmedju ostalog, koristi se i za zastitu bankovnih transakcija
o
o
U prvom redu osigurava privatnost poruka (confidentiality)
DES radi sa 64 bitnim blokovima poruka (“block cipher”)
o
o
“Block cipher” (blok sifra) procesira (enkriptira i dekriptira) “cistu” poruku u
blokovima
“Stream cipher” (slijedna sifra) procesira poruku jedan po jedan bit (byte)
o
Poruke su enkriptirane u 64-bitne blokove koristeci 56-bitne
enkripcijske kljuceve
o
Matematickim rjecnikom
o
M = C = {0,1}64 i K = {0,1}56
o
DES enkripcijski (E) i dekripcijski (D) algoritmi uzimaju kao ulaznu vrijednost
64-bitni plaintext ili ciphertext i 56-bitni kljuc, te daju 64-bitni ciphertext
ili plaintext
::16::
Opis rada DES-a (1/3)
o
Najprije se primjeni Inicijalna Permutacija (IP) na ulazni 64-bitni blok
(L0, R0)  IP(Ulazni Blok)
o
o
L0 i R0 su lijevi i desni polublok (half-block), svaki je “dug” 32 bita
Slijedeca operacija se iterira 16 puta, za i=1,...,16
Li  Ri-1
Ri  Li-1  f(Ri-1,ki)
o
o
ki je kljuc i-te iteracije, dug 48 bitova, izveden od ulaznog 56-bitnog kljuca
f(.) je “S-box Function”, f(.) je substitucijska sifra (S oznacava “Substitution”)
Li-1
Ri-1
f
ki

Li
o
Ri
Konacno, na rezultat 16. iteracije (L16, R16) primjenjuje se inverzna
permutacija od inicijalne permutacije IP (da bi se ponistio efekt IP)
Izlazni Blok  IP-1 (R16, L16)
::17::
Opis rada DES-a (2/3)
X
(64)
Initial Permutation
(32)
(32)
f
(48)
f
(48)
K2
f
(48)
K3
Key Scheduler
K1
(56)
K
…
f
(48)
K16
Initial Permutation-1
Y
(64)
::18::
Opis rada DES-a (3/3)
o
“Tri” prethodna koraka su ista za enkripcijski i dekripcijski algoritam
o
o
o
o
Jedina razlika je u kljucevima ki (kljuc i-te iteracije)
Ako su k1, k2, ..., k16 iteracijski kljucevi npr. enkripcijskog algoritma, onda su
k16, k15, ..., k1 iteracijski kljucevi dekripcijskog algoritma (k16 odgovara kljucu
koji se koristi u prvoj iteraciji DES dekripcijskog algoritma)
Q: Dokazite da za DES vrijedi m = DK(EK(m)).
Osnovne funkcije “S-box Function” f(.)
o
o
o
Random i nelinearna distribucija plaintext poruka preko ciphertext prostora
poruka (na ovaj nacin se eliminira npr. napad koristenjem relativne frekvencije
plaintext-a)
Vazno je naglasiti da funkcija f(.) ne mora biti reverzibilna
Q: Pokazite da DES funkcionira cak i u slucaju da f(.) nije reverzibilna funkcija.
::19::
Toy example: DES encryption (2 rounds)
m
(64)
Initial Permutation
(32)
(32)
L0
R0
f
K 1 =g 1(K)
plaintext
m

L1
m
R1
f

L2
R2
R2
L2
DES
(2 rounds)
K 2 =g 2(K)
secret
key K
E
K
c = EK(m)
c
ciphertext
c
Initial Permutation-1
c
(64)
::20::
Toy example: DES encryption (2 rounds)
m
(64)
Initially: (L0, R0) <-- IP(m)
Initial Permutation
(32)
(32)
L0
1.
L1 = R0
R1 = L0  f(K1, R0)
2.
L2 = R1 = L0  f(K1, R0)
R2= L1  f(K2, R1)
= R0  f(K2, R1)
= R0  f(K2, L0  f(K1, R0))
R0
f
K 1 =g 1(K)

L1
R1
f

L2
R2
R2
L2
K 2 =g 2(K)
End: c <-- IP-1(R2, L2)
c <-- IP-1(R0  f(K2, L0  f(K1, R0)), L0  f(K1, R0))
R2
L2
Initial Permutation-1
c
(64)
::21::
Toy example: DES decryption (2 rounds)
c
(64)
Initial Permutation
(32)
(32)
L0
R0
f
K 2 =g 2(K)
ciphertext
c

L1
c
R1
f

L2
R2
R2
L2
DES-1
(2 rounds)
K 1 =g 1(K)
secret
key K
D
K
m = DK(c)
m
plaintext
m
Initial Permutation-1
m
(64)
::22::
Toy example: DES decryption (2 rounds)
c
(64)
Initially: (L0, R0) <-- IP(c)
(L0, R0) <-- IP(IP-1(R2, L2))=(R2, L2)
Initial Permutation
(32)
(32)
L0
R0
f
1.
L1 = R0 = L2 = R1
R1 = L0  f(K2, R0)
= R2  f(K2, L2)
= L1  f(K2, R1)  f(K2, L2)
= L1  f(K2, R1)  f(K2, R1) = L1
2.
L2 = R1 = L1 = R0
R2 = L1  f(K1, R1)
= R1  f(K1, L1)
= L0  f(K1, R0)  f(K1, L1) = L0
K 2 =g 2(K)

L1
R1
f
K 1 =g 1(K)

L2
R2
End: m <-- IP-1(R2, L2)
R2
L2
m <-- IP-1(L0, R0)=IP-1(IP(m))=m
Initial Permutation-1
m
(64)
o
DES satisfies: m=DK(EK(m))
::23::
Sigurnost DES-a
o
DES je otporan na nekoliko znacajnih kriptoanalitickih napada
o
o
o
o
Najveca kritika DES-a vezana je uz duzinu enkripcijskog kljuca (samo 56
bitova)
o
o
o
Linear cryptanalysis
Differential cryptanalysis
Zahvaljujuci nelinearnosti “S-box Function” f(.)
1993. – VLSI DES key search machine (US$1,000,000) pronalazi DES kljuc
za 3.5 sata (teoretska analiza)
1998. – DES Cracker (US$250,000) pronasao DES kljuc nakon 56 sati!
Jedan od nacina za rjesavanje problema (pre)kratkog kljuca je tzv.
“encryption-decryption-encryption-triple DES”
o
o
o
o
o
Enkripcija:
c  EK1(DK2(EK1(m)))
Dekripcija:
m  DK1(EK2(DK1(c)))
Povecava se prostor kljuca K
Kompatibilnost sa single key DES-om (K1=K2)
Mogucnost koristenja tri razlicita kljuca (npr. PGP)
::24::
Advanced Encryption Standard (AES)
o
1997. US National Institute of Standards and Tehnology (NIST)
objavio je natjecaj za novi enkripcijski standard koji bi zamjenio DES
o
o
o
1998. odabrana grupa od 15 algoritama kandidata za AES
2000. NIST objavljuje da je izabrao Rijndael za AES
o
o
Rijndael su dizajnirala dva belgijska kriptografera: Daemen i Rijmen
Rijndael
o
o
o
Novi algoritam bi se zvao (se zove) AES
Blok sifra koja podrzava kljuceve od 128, 192 i 256 bitova
Nedavno otkriven napad zasnovan na Differential Power Analyisis (DPA)
AES se koristi npr. kod poboljsane zastite lokalnih bezicnih mreza (IEEE
802.11e standard)
::25::
Kriptografija simetričnog (tajnog) ključa
Osnovni modovi rada blok sifri
Osnovni modovi rada blok sifri
o
o
o
o
Blok sifra procesira (enkriptira ili dekriptira) poruku u blokovima fiksne
duzine
U praksi je duzina skupa poruka koju treba procesirati puno duza od
fiksnog bloka sa kojim radi sifra (npr., DES radi sa blokovima od 64 bita)
Blok sifra “razbije” ulaznu poruku u seriju sekvencijalnih blokova
odgovarajuce duzine (npr. 64 bita), te procesira ove blokove po principu
“jedan po jedan”
Ovisno o tome kako blok sifra procesira sekvencu blokova, razlikujemo
slijedece osnovne modove rada blok sifri:
o
o
o
o
o
Electronic Codebook (ECB)
Cipher Block Chaining (CBC)
Cipher Feedback (CFB)
Output Feedback (OFB)
Counter (CTR) mode
::27::
Electronic Codebook (ECB) Mode
o
Notacija:
o
o
o
o
o
P1 P2 ... Pm: m uzastopnih segmenata plaintext poruke na ulazu promatranog
operacijskog moda
Velicina svakog segmenta poruke Pi je  n, gdje je n duzina bloka sa kojim
radi promatrana sifra
C1 C2 ... Cm: m uzastopnih segmenata ciphertexta na izlazu promatranog
operacijskog moda
EK(.) i DK(.) su enkripcijski i dekripcijski algoritmi promatrane sifre
ECB
o
o
Enkripcija: Ci  EK (Pi), i = 1,2,...,m
Dekripcija: Pi  DK (Ci), i = 1,2,...,m .
P1
K
E
C1
P2
K
E
C2
Pm
…
K
E
Cm
::28::
Svojstva ECB moda
o
Isti plaintext blok rezultira istim ciphertext blokom (koristeci
isti enkripcijski kljuc)
o
o
o
Poruke koje se enkriptiraju obicno imaju regularan format
Specijalna zaglavlja, string 00...0, itd.
Segmenti poruke su enkriptirani neovisno o drugim segmentima
o
o
Zamjenom ciphertext blokova, zamjenjuju se odgovarajuci plaintext
blokovi
Ciphertext blokovi se mogu “korpirati” iz jedne enkriptirane poruke u
drugu
o
Propagacija greske: greska u jednom bitu ciphertext bloka ne
utjece na ostale ciphertext blokove
o
Generalno: ne preporuca se za poruke koje su duze od jednog
bloka, ili ako se enkripcijski kljucevi koriste za enkripciju vise od
jednog bloka
::29::
Cipher Block Chaining (CBC) Mode
o
Enkripcija
P1
P2
P3
IV
+
+
+
K
E
K
C1
o
E
K
C2
E
Pm
…
Cm-1
+
K
E
C3
Cm
Dekripcija
C1
K
D
IV
+
P1
C2
K
D
C3
Cm
D
K
D
+
+
Cm-1
+
P2
P3
K
Pm
::30::
Svojstva CBC moda
o
o
Enkripcija dva ista plaintexta istim kljucem, ali sa razlicitim
vrijednostima Inicijalizacijskog Vektora (IV) daje razlicite
ciphertext-ove
Ciphertext blok Cj ovisi o Pj i svim prethodnim plaintext
blokovima
o
o
o
o
Ako napadac pokusa zamjeniti ciphertext blokove, utjecati ce na
dekripciju
Medjutim, ovisnost o prethodnim plaintext blokovima je isljucivo
preko prethodnog ciphertext bloka Cj-1
Stoga za ispravnu dekripciju ciphertext bloka potreban je samo
ispravan prethodni ciphertext blok
Propagacija greske:
o
Greska u jednom bitu u bloku Cj ima utjecaj samo na Pj i Pj+1 plaintext
blok
o
o
Napadac moze izazvati kontorliranu promjenu bitova u Pj+1 plaintext block
(Pj ne moze kontrolirati)
Self-synchronizing
o
Oporavak od greski u bitovima
::31::
Integritet IV u CBC modu
o
Inicijalizacijski vektor (IV) ne mora biti tajan, ali njegov
integritet mora biti zasticen
o
o
Maliciozne promjene IV-a dozvoljavaju napadacu da uzrokuje
kontrolirane promjene u prvom plaintext bloku
Potencijalno rjesenje
o
Enkriptirati IV (koristeci npr. ECB) i poslati gan na pocetku CBC
enkriptirane poruke
::32::
Cipher Feedback (CFB) Mode
o
Enkripcija:
o
initialized with IV
(s)
(s)
shift register (n)
Dekripcija
initialized with IV
shift register (n)
(n)
(n)
E
K
E
K
(n)
(n)
select s bits
select s bits
(s)
(s)
Pi
(s)
+
(s)
Ci
Ci
(s)
+
(s)
Pi
::33::
Cipher Feedback (CFB) Mode
(s)
(s)
initialized with IV
I1
I2
shift register (n)
shift register (n)
(n)
(n)
select s bits
(s)
+
E
K
(n)
select s bits
(s)
(n)
E
K
(n)
P1
shift register (n)
(n)
E
K
I3
select s bits
(s)
(s)
P2
(s)
+
(s)
(s)
P3
(s)
+
(s)
C1
C2
C3
::34::
Svojstva CFB moda
o
o
o
Enkripcijom istih plaintext-ova istim kljucem, ali razlicitim IVovima daje razlicite ciphertext-ove
IV moze biti poslan neenkriptiran (kao plaintext)
Ciphertext blok Cj ovisi o Pj i svim prethodnim plaintext
blokovima
o
o
o
Stoga, zamjena ciphertext blokova utjece na dekripciju
Ispravna dekripcija ciphertext bloka zahtjeva da su svi prethodni
n/s ciphertext blokovi ispravni
Propagacija greske:
o
Greska u jednom bitu ciphertext bloka Cj utjece na dekripciju tog
bloka kao i sljedecih n/s ciphertext blokova
o
o
o
Pj’ ce imati greske gdje i Cj, dok svi ostali plaintext-ovi ce biti random
Stoga, napadac moze uzrokovati kontrolirane promjene u j-tom plaintext
bloku
Self-synchronizing
o
Ali zahtjeva n/s blokova ciphertexta da ispravi greske u bitovima
::35::
Output Feedback (OFB) Mode
o
Enkripcija:
o
initialized with IV
initialized with IV
(s)
shift register (n)
Dekripcija
(n)
(n)
E
K
E
K
(n)
(n)
select s bits
select s bits
(s)
(s)
Pi
(s)
+
(s)
shift register (n)
(s)
Ci
Ci
(s)
+
(s)
Pi
::36::
Output Feedback (OFB) Mode
(s)
(s)
initialized with IV
I1
I2
shift register (n)
(n)
(s)
C1
(n)
select s bits
(s)
+
E
K
(n)
select s bits
(s)
(n)
E
K
(n)
P1
shift register (n)
(n)
E
K
I3
shift register (n)
select s bits
(s)
P2
(s)
+
(s)
C2
(s)
P3
(s)
+
(s)
C3
::37::
Svojstva OFB moda
o
o
Enkripcijom istih plaintext-ova istim kljucem, ali razlicitim IVovima daje razlicite ciphertext-ove
IV moze biti poslan neenkriptiran (kao plaintext)
o
o
Ciphertext blok Cj ovisi samo o Pj
o
o
Medjutim, ako napadac promijeni IV, sifra se ne moze oporaviti (CFB mod
moze!)
Ali za raziliku od ECB, zamjena ciphertext blokova ima utjecaj na dekripciju
Propagacija greske:
o
Greska u jednom bitu ciphertext bloka Cj utjece samo na dekripciju bloka Cj
o
o
o
Pj’ ima greske gdje i Cj
Stoga, napadac moze uzrokovati kontrolirane promjene u j-tom plaintext bloku
Oporavak od greski:
o
o
Moze se oporaviti od greski na bitovima
Ali ne moze ako je IV modificiran
::38::
Counter (CTR) mode
o
Enkripcija:
o
Dekripcija
counter + i
counter + i
(n)
K
(n)
E
K
(n)
Pi
(n)
+
E
(n)
(n)
Ci
Ci
(n)
+
(n)
Pi
::39::
Svojstva CTR moda
o
o
“counter” mora biti razlicit za svaki blok
j-ti blok moze biti dekriptiran neovisno o drugim blokovima
o
o
o
o
Moze se paralelizirati
Random access (dekriptiramo bilo koji blok)
Vrijednosti koje se XOR-aju sa plaintext-om mogu biti
izracunate unaprijed (preprocessing)
Jako efikasan za implementaciju (software-sku i hardware-sku)
::40::