Sunteți pe pagina 1din 20

Arhitectura Feistel DES Rijndael

Criptosisteme simetrice II

Anul II

Martie 2020
Arhitectura Feistel DES Rijndael

Arhitectura Feistel

Un algoritm de criptare pe blocuri, introdus in 1973 de

Horst Feistel (1915-1990)


O combinaţie de S-Boxes, P-Boxes
Stă la baza multor criptosisteme simetrice: Blowfish,
Camellia, CAST-128, DES, FEAL, KASUMI, LOKI97, Lucifer,
MAGENTA, MISTY1, RC5, TEA, Triple DES, Twofish, XTEA
Arhitectura Feistel DES Rijndael

Arhitectura Feistel

Se foloseşte alfabetul binar


Textul in clar este impărţit in blocuri de lungime 2l
Algoritmul este constituit dintr-un număr fixat, n, de cicli
(rounds)
Un algoritm suplimentar generează n chei k1 , k2 , . . . , kn
plecând de la o cheie iniţială k0 . Acestea sunt cheile de cifrare
de la fiecare ciclu.
Arhitectura Feistel DES Rijndael

Arhitectura Feistel

Algoritm de criptare
1 Textul in clar, de lungime 2l, este impărţit in două părţi egale
de lungime l, (L0 , R0 )
2 Pentru fiecare i = 1, 2, . . . , n

(Li−1 , Ri−1 ) 7−→ (Li , Ri )

unde

Li := Ri−1 , Ri := Li−1 ⊕ f (Ri−1 , ki )

3 Textul cifrat: (Rn , Ln ).


Arhitectura Feistel DES Rijndael

Arhitectura Feistel

Algoritm de decriptare
1 Textul cifrat, de lungime 2l, este impărţit in două părţi egale
de lungime l: (Ln , Rn )
2 Pentru fiecare i = 1, 2, . . . , n

(Ln+1−i , Rn+1−i ) 7−→ (Ln−i , Rn−i )

unde

Ln−i := Rn+1−i , Rn−i := Ln+1−i ⊕ f (Rn+1−i , kn+1−i )

3 Textul in clar: (R0 , L0 ).


Arhitectura Feistel DES Rijndael

Arhitectura Feistel
Arhitectura Feistel DES Rijndael

DES
DATA ENCRYPTION STANDARD
Este un criptosistem simetric, bazat pe Arhitectura Feistel cu
n = 16 cicli şi blocuri de 2l = 64 biţi.
A fost dezvoltat de un colectiv de la IBM, o versiune iniţială
numindu-se LUCIFER.
Apar nişte operaţii suplimentare:
1 o permutare iniţială π
2 o expansiune E
3 o substituţie S
4 o permutare P
Fiecare cheie este o succesiune de 64 de biţi, K = (k1 . . . k64 ),
fiecare al optulea fiind un bit de control:
8
X
k8i+j = 1 (mod 2)
j=1

deci cheile au 56 biţi independenţi.


Arhitectura Feistel DES Rijndael

DES

Exemplu de cheie pentru DES:

0 0 0 1 0 1 1 0
0 1 0 0 1 1 1 1
0 0 0 0 1 1 1 0
1 1 0 0 0 1 1 1
0 1 0 0 0 0 0 0
1 1 1 0 1 0 0 1
1 0 1 1 0 0 0 0
1 0 0 0 1 0 0 1
Arhitectura Feistel DES Rijndael

DES

Algoritm de criptare
1 Textul in clar = bloc M de 64 biţi

M 7−→ π(M) = (L0 , R0 )

2 Pentru i = 1, 2, . . . , 16

(Li , Ri ) := (Ri−1 , Li−1 ⊕ P[S(E (Ri−1 ) ⊕ Ki )])

3 (L16 , R16 ) 7−→ (R16 , L16 ) 7−→ π −1 (R16 , L16 ) =: C


Arhitectura Feistel DES Rijndael

DES

Printr-un algoritm adiţional sunt generate 16 chei de câte 64


de biţi (56 independenţi), fiecare fiind transformată in cheia
Ki cu 48 de biţi
Expansiunea E expandează un bloc de 32 de biţi la unul de 48
de biţi
Substituţia S transformă fiecare grup de 6 biţi intr-un grup de
4 biţi; un bloc de 48 de biţi este retransformat deci intr-unul
de 32 de biţi. Substituţia S este importantă pentru siguranţa
sistemului, deoarece este o operaţie neliniară.
Arhitectura Feistel DES Rijndael

DES
Arhitectura Feistel DES Rijndael

DES

DES a fost spart in 1998 prin “forţa brută”, adică prin căutare
exhaustivă, de către Electronic Frontier Foundation folosind o
aparatură in valoare de 250000$.
Imbunătăţiri: chei mai lungi; Triple DES (mesajului ii este
aplicat algoritmul de criptare cu setul de chei K , algoritmul de
decriptare cu setul de chei K 0 şi din nou algoritmul de criptare
cu setul de chei K ).
Arhitectura Feistel DES Rijndael

Rijndael

la sfârşitul anilor 90 s-a constatat că DES nu mai prezintă


securitatea dorită in toate situaţiile
in 1997 a fost făcut public un apel de candidaturi pentru un
nou sistem de criptare, care să devină standard
printre cerinţele iniţiale: posibilitatea de a folosi chei de 128,
192 şi 256 biţi; ulterior a fost menţinută doar cerinţa de a
folosi chei de 128 biţi
termen de depunere a candidaturilor: 9 luni
august 1999: au fost anunţaţi 5 finalişti
octombrie 2000: a fost anunţat câştigătorul: Rijndael. Acesta
devine, in noiemebrie 2001, Advanced Encryption Standard
(AES)
Arhitectura Feistel DES Rijndael

Rijndael

Rijndael: creat de Vincent Rijmen şi Joan Daemen


bazat pe algoritmul Square (1996-1997)
Puncte tari:
foarte flexibil la implementare
până in prezent a fost vulnerabil doar la atacuri asupra
sistemelor pe care a fost implementat (“side channel attacks”)
bine adaptat pentru procesoare moderne
bine adaptat pentru Smart cards
Arhitectura Feistel DES Rijndael

Rijndael

Criptare pe blocuri. Lungimea blocurilor: 16, 24 sau 32 biţi.


Poate fi specificată o
lungime arbitrară a
blocurilor, multiplu de
32 (AES: 128 biţi).

Lungimea cheilor: 16, 24 sau 32 de biţi.


Poate fi specificată o
lungime arbitrară a
cheilor, multiplu de 32
(AES: 128, 192 sau 256
biţi).
Arhitectura Feistel DES Rijndael

Rijndael

10/12/14 runde
O rundă: 4 paşi, fiecare cu un interes specific.
1 ByteSub: Neliniaritate, confuzie
2 ShiftRow: Difuzie intre coloane
3 MixColumn: Difuzie intre biţi in interiorul coloanelor
4 Round Key Addition: Confuzie
Arhitectura Feistel DES Rijndael

Rijndael

Pasul 1: ByteSub

Biţii sunt transformaţi prin aplicarea unei transformări


inversabile de tip S-box
Un unic S-box pentru intreg sistemul
Induce neliniaritate şi confuzie
Arhitectura Feistel DES Rijndael

Rijndael

Pasul 2: ShiftRow

Elementele de pe fiecare linie sunt permutate circular, cu


decalaje succesive
Induce difuzie
Arhitectura Feistel DES Rijndael

Rijndael

Pasul 3: MixColumn

Fiecărui vector coloană i se aplică o transformare liniară


Induce difuzie in interiorul fiecărei coloane
Inspirat de procedee specifice teoriei codurilor
Arhitectura Feistel DES Rijndael

Rijndael

Pasul 4: Round Key Addition

Rezultatul fiecărei runde depinde de cheie


Calculul cheilor la fiecare rundă: relativ simplu (puţine
operaţii, puţină memorie)

S-ar putea să vă placă și