Documente Academic
Documente Profesional
Documente Cultură
1
Caracteristicile unui sistem de criptare
1. Condent ialitate (privacy): proprietatea de
a pastra secretul informat iei, pentru ca
aceasta sa e folosita numai de persoanele
autorizate.
2. Integritatea datelor: proprietatea de a evita
orice modicare (inserare, stergere, substi-
tut ie) neautorizata a informat iei.
3. Non - repudierea: Proprietatea care previne
negarea unor evenimente anterioare.
2
4. Autenticare: Proprietatea de a identica
o entitate conform anumitor standarde.
Este compusa din
(a) Autenticarea unei entitat i;
(b) Autenticarea sursei informat iei.
Denit ia 1. Criptograa este studiul metode-
lor matematice legate de securitatea informa-
t iei, capabile sa asigure condent ialitatea,
autenticarea si non-repudierea mesajelor, pre-
cum si integritatea datelor vehiculate.
Termenul criptograenseamna scriere secreta
In general se considera C= { | a P, k
K, = e
K
(a)}.
Funct ia e
K
este evident injectiva (de remar-
cat ca aceasta condit ie de injectivitate nu este
obligatorie pentru funct ia de decriptare d
K
).
Daca e
K
este bijectiva (si deci d
K
= e
1
K
), sis-
temul de criptare se numeste simetric sau
sistem de criptare bloc.
9
Un mesaj de intrare x este descompus n
x = x
1
x
2
. . . x
n
, x
i
P.
Apoi ecare x
i
este criptat folosind regula de
criptare e
K
, specicata de o cheie xata K K.
Deci Alice calculeaza y
i
= e
K
(x
i
) (1 i n) si
obt ine textul criptat
y = y
1
y
2
. . . y
n
, y
i
C
pe care l trimite prin canalul de comunicat ie.
Bob primeste mesajul y = y
1
y
2
. . . y
n
, pe care l
decripteaza folosind funct ia d
K
:
x
i
= d
K
(y
i
) (1 i n)
10
Pentru ca un sistem de criptare sa e consi-
derat bun, trebuie ndeplinite trei criterii
(enunt ate de Francis Bacon n sec. XV II):
1. Fiind date e
K
si P, este usor de deter-
minat e
K
();
2. Fiind date d
K
si w C, este usor de deter-
minat d
K
(w);
3. este imposibil de determinat din w, fara
a cunoaste d
K
.
Ultimul criteriu deneste ideea de securitate
a sistemului.
11
La aceste criterii, Bacon adauga si o a patra
regula:
4 Textul criptat trebuie sa e un text banal,
fara suspiciuni.
Aceasta ultima condit ie este utilizata astazi
doar de unele subdomenii al criptograei, cum
ar steganograe sau watermarking.
12
2
. . .
n
, |
i
| = d
(ultimul bloc se completeaza eventual pana ajun-
ge la lungimea d).
Textul criptat va x =
1
2
. . .
n
unde
i
= e
M
(
i
) =
i
M (mod 26), (1 i n).
Pentru decriptare se foloseste relat ia
d
M
(
i
) =
i
M
1
(mod 26).
32
Sa luam de exemplu d = 2 si cheia
M =
3 3
2 5
cu inversa
M
1
=
15 17
20 9
1
= (F R) = (5 17),
2
= (A C) = (0 2)
Din relat iile
1
=
1
M (mod 26)=(5 17)
3 3
2 5
=(23 22)=(X W)
2
=
2
M (mod 26)=(0 2)
3 3
2 5
=(4 10)=(E K)
se obt ine textul criptat x = XWEK.
33
Sa ne situam acum pe pozit ia lui Oscar: pre-
supunem ca am gasit dimensiunea d = 2 si
ncercam sa aam matricea M (sau echiva-
lent M
1
), stiind perechea (text clar, text
criptat)= (FRAC, XWEG).
Care este matricea
M =
a b
c d
5 17
0 2
a b
c d
23 22
4 10
.
Oscar aa ntai inversa lui A =
5 17
0 2
.
Cum det(A) = 10 si cmmdc(10, 26) > 1, rezulta
ca 10
1
(mod 26) nu exista; deci A nu este
inversabila.
34
Sa presupunem acum ca Oscar lucreazan ipo-
teza (3); alege un text clar a carui matrice este
inversabila si i aa criptarea.
Fie BRAD acest text clar, a carui matrice aso-
ciata este
A =
1 17
0 3
11 10
6 15
1 3
0 9
1 3
0 9
11 10
6 15
3 3
2 5
36
4. Oscar stie cheia de criptare e
K
. Pe baza
ei ncearca sa determine d
K
nainte de inter-
ceptarea mesajelor criptate.
Aceasta este situat ia tipica sistemelor de cripta-
re cu cheie publica: cheia de criptare e
K
este
cunoscuta public cu multnainte de a folosita
pentru criptare.
Deci criptanalistul are la dispozit ie destul de
mult timp pentru prelucrarea ei si orice clari-
care n perioada cand timpul este ieftin are
o valoare deosebita; dupa ce se primesc mesaje
criptate, timpul devine scump, si el trebuie
sa e scurtat cat mai mult.
37
Sisteme simetrice de criptare
1
1 2 3
2 1 3
.
Un text clar, de exemplu
FLOARE ALBASTRA
semparten grupuri de cate trei caractere (s-a
considerat si caracterul spat iu, notat )
FLO ARE AL BAS TRA
Textul criptat va
LFO RAE A L ABS RTA
sau eliminand gruparile,
LFORAEA LABSRTA.
4
Exemplul 2. Sistemul de criptare Richelieu
(Jules Verne Mathias Sandorf).
Fie cartonul 6 6, n care zonele hasurate
constituie gauri.
Vrem sa criptam textul
EMINESCU A FOST UN MARE POET NATIONAL
5
Vom scrie acest text sub forma unui tabel cu
sase linii si sase coloane, astfel:
E M I N E S
C U A F
O S T U N
M A R E P
O E T N A
T I O N A L
Aplicand cartonul peste acest text, vor ramane
vizibile 9 caractere:
MNS TA AN
6
Vom roti acum cartonul cu 90
o
n sensul acelor
de ceasornic. El va arata
Asezand acum peste text, raman vizibile
caracterele
F MPTNIL
La a treia rotire a cartonului se obt ine
ICSUEETOA, iar la a patra EEUAOURO
Deci textul criptat este
MNS TA AN F MPTNILICSUEETOAEEUAOURO
Operat ia de decriptare se realizeaza similar.
7
Denit ia 1. Fie n un numar natural nenul. Un
cifru de permutare este un sistem (1, (, |, c, T)
unde 1= (= (Z
26
)
n
, |= S
n
.
Pentru o cheie (permutare) S
n
e
(a
1
a
2
. . . a
n
) = a
(1)
a
(2)
. . . a
(n)
d
(b
1
b
2
. . . b
n
) = b
1
(1)
b
1
(2)
. . . b
1
(n)
8
Lema 1. Un cifru de permutare este un sistem
de criptare Hill.
Demonstrat ie. Pentru ecare permutare
S
n
putem construi o matrice de permutare
M
= (m
i,j
) denita
m
i,j
= 1 i = (j)
Se verica usor faptul ca sistemul de criptare
Hill cu matricea M
= M
1
.
9
Exemplul 3. (continuarea Exemplului 1)
Permutarii
1 2 3
2 1 3
i corespunde matricea
de permutare
0 1 0
1 0 0
0 0 1
.
Operat ia de criptare este imediata.
De exemplu, criptarea textului FLO este
(5 11 14)
0 1 0
1 0 0
0 0 1
= (11 5 14)
adica LFO.
10
Cifruri de substitut ie
Cele mai utilizate sisteme de criptare simetrice.
Cifrul consta n nlocuirea ecarui caracter din
V cu alt caracter (din W).
sisteme monoalfabetice;
sisteme polialfabetice.
11
Sisteme de criptare monoalfabetice
Substituie ecare caracter cu alt caracter
totdeauna acelasi, indiferent de pozit ie.
Cand cele doua alfabete coincid (V = W),
sistemele monoalfabetice sunt cazuri particu-
lare de cifruri de permutare.
12
Sistemul de criptare Cezar
Odata stabilita cheia de criptare e
K
, ecare
caracter x se nlocuieste prin caracterul
e
K
(x) = x +k (mod 26).
Decriptarea se realizeaza dupa formula
d
K
(x) = x k (mod 26).
13
Sistemul Cezar are numai 26 chei;deci este vul-
nerabil la atacul prin fort a bruta.
Pentru a-i mari rezistent a, se poate utiliza o
varianta, numita sistem Cezar cu cheie:
Se deneste un cuvant (cheie), care se aseaza
la nceputul alfabetului.
Dupa ce se termina, sirul de completeaza cu
literele care nu existau n cuvantul cheie, n
ordine alfabetica.
14
Exemplul 4. Sa presupunem ca s-a ales cuvan-
tul cheie MARTOR.
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
M A R T O B C D E F G H I J K L N P Q S U V W X Y Z
Pentru textul clar se vor folosi caracterele de
pe primul rand, iar pentru criptare caracterele
corespondente de pe randul al doilea.
STUDENT QSUTOJS,
ARGINT MPCEJS
Sistemul Cezar cu cheie rezista mai bine la
atacul cu fort a bruta, numarul cheilor putand
ajunge la card(S
26
) = 26!.
15
Sistemul de criptare an
Generalizare a sistemului Cezar.
1 = (= Z
26
,
|= |(a, b) [ a, b Z
26
, cmmdc(a, 26) = 1,
Pentru o cheie K = (a, b) xata:
e
K
(x) = ax +b (mod 26)
d
K
(y) = a
1
y +a
1
(26 b) (mod 26)
Condit ia cmmdc(a, 26) = 1 asigura existent a lui
a
1
n Z
26
.
16
Exemplul 5. Funct ia de criptare
e
K
(x) = 3x +5
0 1 2 3 4 5 6 7 8 9 10 11 12
5 8 11 14 17 20 23 0 3 6 9 12 15
13 14 15 16 17 18 19 20 21 22 23 24 25
18 21 24 1 4 7 10 13 16 19 22 25 2
sau scris direct pentru caractere
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
F I L O R U X A D G J M P S V Y B E H K N Q T W Z C
PRIMAVARA TARZIE YEDPFQFEF KDECDR.
Deoarece 3
1
= 9 (mod 26), decriptarea se
realizeaza folosind funct ia d
K
(x) = 9x +7
(sau practic inversand cele doua linii ale
tabelului de mai sus).
Condit ia cmmdc(a, 26) = 1 asigura injectivi-
tatea aplicat iei e
K
.
Pentru e
K
(x) = 10x +1, A si N se transforma
ambele n B, iar O nu apare ca imagine n al-
fabetul substitut iei.
17
Spat iul cheilor ntr-un sistem de criptare
an.
Orice cheie K | este determinata complet
de valorile ntregi (a, b) cu cmmdc(a, 26) = 1.
Sunt posibile 12 valori pentru a:
1, 3, 5, 7, 9, 11, 15, 19, 21, 23, 25
Pentru b sunt posibile 26 valori, care se iau
independent de a, cu singura except ie
a = 1, b = 0.
Deci card(|) = 311, numar sucient de mic
pentru reusita unui atac prin fort a bruta.
18
Sistemul de criptare Polybios
Init ial a fost un sistem maritim de semnalizare
cu tort e; ulterior i s-a dat o semnicat ie crip-
tograca.
Alfabetul latin, din care se elimina o litera de
frecvent a cat mai redusa; e aceasta W.
Cele 25 litere ramase se aseaza ntr-un patrat
5 5 (numit careu Polybios) n felul urmator:
A B C D E
A A B C D E
B F G H I J
C K L M N O
D P Q R S T
E U V X Y Z
i
D
i
where este permutarea ciclica stanga a vec-
torului (A, B, C, . . . , Z).
Similar, discurile din mijloc si stanga pot
reprezentate prin j respectiv k rotiri ale lui M
respectiv S.
Atunci funct ia de criptare este:
e = P(
i
D
i
)(
j
M
j
)(
j
S
k
)U
(
j
S
1
k
)(
j
M
1
j
)(
i
D
1
i
)P
1
Decriptarea se efectueaza dupa aceeasi for-
mula.
20
Care este numarul de variante posibile pentru
criptarea unui mesaj ?
Fie o masina Enigma cu 3 discuri.
Atunci numarul de situat ii init iale posibile este
26 26 26 = 17.576.
Cum cele 3 discuri pot permutate n 6 mo-
duri, numarul variantelor se ridica la
6 17.576 = 105.456.
Pentru ecare din acestea, o tabela de cone-
xiuni cu 10 perechi de litere conectate ridica
numarul variantelor la 150.738.274.937.250.
La acestea se adauga si modul de pozit ionare al
inelului de caractere la mecanismul discurilor,
care mai ridica ordinul de marime al variantelor
cu aproximativ 10
5
.
Aceste estimari arata ca Enigma era cea mai
sigura masina de criptat a momentului respec-
tiv.
21
Sa detaliem funct ionarea matematica a unei
masini Enigma:
Fiecare disc poate reprezentat ca un set
de permutari pentru litere codicate cu
valori ntre 0 si 25; e
1
,
2
,
3
permutarile
de pe cele trei discuri (de la dreapta spre
stanga).
Fie r
1
, r
2
, r
3
setarile init iale de pe cele trei
discuri (caracterele situate init ial pe pozit i-
ile accesibile ale discurilor).
Pentru simplicare, ignoram rolul tabelei
de conexiuni.
Vom nota cu substitut ia reectorului
(reprezentata ca un set de permutari ntre
perechi de caractere).
22
Sa urmarim un traseu care pleaca de la sem-
nalul de intrare (un caracter din textul clar),
trece prin cele trei discuri si reector si da ca
rezultat caracterul criptat.
Text
clar
Text
criptat
Y
I
>
6
=
Y
6
-
s -
>
-
j -
Reflector
a
a
a
b
b
c
c
d
e
Tabela de
conexiuni
Disc1 Disc2 Disc3
23
Exemplul 3. Sa presupunem ca cele permuta-
rile celor trei discuri sunt:
1
= (0 15 6 10 14 8 19 17 22 18 11)(1 2 9 13 21 25)
(3 4 23 5 24 7 12 16 20)
2
= (0 7 9 4 6 18 23 25 8)(1 17 19)(2 20 10)(3 12)(5 11 13 21)
(14 22 15 16 24)
3
= (0 2 4 7 16 17 19 5)(1 6 3 8 21 24 11 13 9 10 25 12 14 15)
(18 23 20 22)
Substitut ia este denita
= (0 4)(1 7)(2 9)(3 16)(5 20)(6 8)(10 19)(11 17)(12 25)(13 18)
(14 24)(15 22)(21 23).
Deci, cu
1
, 0 este mutat n 15, 15 este mutat
n 6, 25 este mutat n 1 etc.
Inversele celor trei permutari sunt:
1
1
= (11 18 22 17 19 8 14 10 6 15 0)(25 21 13 9 2 1)
(20 16 12 7 24 5 23 4 3)
1
2
= (8 25 23 18 6 4 9 7 0)(19 17 1)(10 20 2)(12 3)(21 13 11 5)
(24 16 15 22 14)
1
3
= (5 19 17 16 7 4 2 0)(15 14 12 25 10 9 13 11 24 21 8 3 6 1)
(22 20 23 18)
24
Setarile init iale: r
1
= 22 (primul rotor are
vizibila litera V ), r
2
= 7, r
3
= 12.
Substitut iile celor trei discuri:
b = [a +r
1
(mod 26)]
1
,
c = [b +r
2
(mod 26)]
2
,
d = [c +r
3
(mod 26)]
3
,
unde x
1
= 4, 8
2
= 0 etc.
Notat ia permite sa scriem e = d
= e
1
3
r
3
(mod 26),
b
= (c
1
2
r
2
(mod 26),
a
= (b
1
1
r
1
(mod 26).
25
Dupa criptarea unui caracter, cele trei discuri
sunt resetate dupa regula:
r
1
:= r
1
+1 (mod 26);
daca r
1
= 0 atunci r
2
:= r
2
+1 (mod 26);
daca r
2
= 0, atunci r
3
:= r
3
+1 (mod 26).
26
Sa criptam litera K (cod numeric 10):
a = 10;
b = [a +r
1
(mod 26)]
1
= [10 +22 (mod 26)]
1
= 6
1
= 10;
c = [b +r
2
(mod 26)]
2
= [10 +7 (mod 26)]
2
= 17
2
= 22;
d = [c +r
3
(mod 26)]
3
= [22 +12 (mod 26)]
3
= 8
3
= 21.
Trecerea prin reector da e = d
= 21
= 23.
Apoi se parcurg cele trei discuri n sens invers:
c
= e
1
3
r
3
(mod 26) = 23
1
3
12 (mod 26) = 1812 (mod 26) = 6;
b
= (c
1
2
r
2
(mod 26) = 6
1
2
7 (mod 26) = 47 (mod 26) = 23;
a
= (b
1
1
r
1
(mod 26) = 23
1
1
22 (mod 26) = 422 (mod 26) =
8.
Deci criptarea caracterului K este I (cod 8).
Setarile pentru criptarea urmatorului caracter
sunt r
1
:= 23, r
2
= 7, r
3
= 12.
27
C 36 (M 209 C)
Masina C36 este conceputa de inginerul sue-
dez Boris Hagelin, la solicitarea armatei ame-
ricane de a avea o masina de criptat portabila,
usor de manuit, care sa poata folosita dupa
un instructaj sumar.
Este cunoscuta si sub numele de M209 C, la
baza ind un model creat de Hagelin n Suedia
la sfarsitul anilor
30.
Eancepe sa e produsa dupa cateva modi-
cari legate de design n 1940 si nlocuieste
treptat masina de criptat M 94.
Se apreciaza ca n timpul razboiului au fost
produse circa 140.000 masini de criptat C36.
28
Denit ia 1. Se numeste matrice lug o matrice
binara M
627
n care ecare din cele 27 coloane
cont ine cel mult doi de 1.
Exemplul 4. Fie matricea lug
M =
000100001010001110000000001
100010001001100010010010100
000000000000000000000000000
001100010100001001000111111
001010000001000100100000000
000000010010010000010001000
k
i
daca 1 i m
z
im
daca i m+1
Din cheia xa K = (k
1
, k
2
, . . . , k
m
) se obt ine
cheia uida
k
1
k
2
. . . k
m
k
1
k
2
. . . k
m
k
1
k
2
. . .
8
Procesul de criptare cu un sistem uid sincron
poate reprezentat ca un automat descris de
relat iile
q
i+1
= (q
i
, K), z
i
= g(q
i
, K), y
i
= h(z
i
, x
i
)
unde
- q
0
este starea init iala care poate deter-
minata din cheia K,
- este funct ia de tranzit ie a starilor,
- g este funct ia care produce cheia uida z
i
,
- h este funct ia de iesire care produce textul
criptat y
i
pe baza textului clar x
i
si a cheii
uide z
i
.
q
i
- - -
6
6
-
?
g
h K
q
i+1
z
i
x
i
y
i
q
i
- - -
6
6
-
?
g
h
1
K
q
i+1
z
i
y
i
x
i
(a) Criptare (b) Decriptare
9
Remarca 1.
Un sistem de criptare bloc poate privit
ca un caz particular de sistem de criptare
uid, n care i 1, z
i
= K.
(sincronizare):
In sistemele de criptare u-
ide sincrone, Alice si Bob trebuie sa-si sin-
cronizeze cheia uida pentru a putea ob-
t ine o criptare/decriptare corecta.
Dacan timpul transmisiei sunt inserat i sau
eliminat i bit i n textul criptat, atunci de-
criptarea esueaza si ea poate reluata nu-
mai pe baza unor tehnici de resincronizare
(cum ar de exemplu reinit ializarea sau
plasarea unor marcatori speciali la intervale
regulate n textul transmis).
10
Remarca 2.
Modicarea unui bit din textul criptat (fara
a se elimina sau adauga nimic) nu va afecta
decriptarea altor caractere (nepropagarea
erorii).
Un adversar activ care elimina, insereaza
sau retrimite componente ale mesajului
criptat, va provoca desincronizari si va
deci detectat la recept ie.
De asemenea, el poate face modicari n
textul criptat si sa observe cum vor afecta
ele textul clar.
Deci un text criptat cu un sistem uid sin-
cron necesita mecanisme separate de
autenticare si de garantare a integritat ii
datelor.
11
Denit ia 4. Un sistem aditiv uid binar de
criptare este un sistem uid sincron n care
1 = ( = / =Z
2
iar funct ia de iesire h este
(XOR).
Gen.
chei
- -
?
-
K
z
i
x
i
y
i
Gen.
chei
- -
?
-
K
z
i
y
i
x
i
(a) Criptare (b) Decriptare
12
Denit ia 5. Un sistem de criptare uid este
auto-sincronizabil (sau asincron) daca func-
t ia de generare a cheii uide depinde de un
numar xat de caractere criptate anterior.
Deci comportamentul poate descris astfel:
q
i
= (y
it
, y
it+1
, . . . , y
i1
),
z
i
= g(q
i
, K),
y
i
= h(z
i
, x
i
)
unde
- q
0
= (y
t
, y
t+1
, . . . , y
1
) este starea init iala,
- K este cheia,
- g este funct ia de generare a cheii uide,
- h este functia de iesire care cripteaza textul
clar x
i
.
13
Proprietat i:
1. Auto-sincronizare: Desincronizarea, rezul-
tata eventual prin inserarea/stergerea de
caractere criptate se poate evita.
Astfel de sisteme de criptare pot restabili
proprietatea de sincronizare, afectand doar
un numar nit de caractere din textul clar.
2. Propagarea limitata a erorii: Daca starea
unui sistem auto-sincronizabil depinde de
t caractere anterioare, atunci modicarea
(eventual stergerea sau inserarea) unui ca-
racter din textul criptat poate duce la de-
criptarea incorecta a maxim t caractere;
dupa aceea decriptarea redevine corecta.
14
3 Difuzia textelor clare: Deoarece ecare
caracter din textul clar afecteaza ntregul
text criptat care urmeaza, eventualele pro-
prietat i statistice ale textului clar sunt dis-
persate prin textul criptat.
Deci, din acest punct de vedere, procesul
de difuzie al sistemelor auto-sincronizabile
este mai bun decat al celor sincronizabile.
4 Rezistent a la criptanaliza activa: Din pro-
prietat ile anterioare rezulta ca este destul
de dicil de depistat un atac venit de la un
adversar activ (care poate modica, insera
sau sterge caractere).
De aceea sunt necesare mecanisme supli-
mentare pentru a asigura autenticarea si
integritatea datelor.
15
SEAL
Software - optimized Encryption ALgorithm
(SEAL) este un sistem de criptare aditiv binar,
denit n 1993 de Coppersmith si Rogaway.
Este unul din cele mai eciente sisteme imple-
mentabile pe procesoare de 32 bit i.
La un astfel de sistem este importanta des-
crierea generatorului de chei uide (care se
aduna modulo 2 cu textul clar).
SEAL este n fond o funct ie pseudo-aleatoare
care scoate o cheie uida de L bit i folosind un
numar n de 32 bit i si o cheie secreta a de 160
bit i.
16
Fie A, B, C, D, X
i
, Y
j
cuvinte de 32 bit i. Notat ii:
1. A: complementul lui A (bit cu bit);
2. A B, A B, A B: operat iile OR, AND si
XOR (denite pe bit i);
3. A << s: rotirea ciclica a lui A spre stanga
cu s pozit ii;
4. A >> s: rotirea ciclica a lui A spre dreapta
cu s pozit ii;
5. A + B (mod 2
32
): suma lui A si B (consi-
derate ca numere ntregi fara semn);
6. f(B, C, D) = (B C) (B D);
g(B, C, D) = (B C) (B D) (C D)
h(B, C, D) = B C D.
17
7 A[[B: concatenarea lui A cu B;
8 (X
1
, X
2
, . . . , X
n
) (Y
1
, Y
2
, . . . , Y
n
):
atribuire simultana: variabila Y
i
ia valoarea
X
i
simultan pentru toate valorile lui
i = 1, 2, . . . , n.
Algoritmul SEAL 1.0 este bazat pe funct ia
de dispersie SHA, iar SEAL 2.0 pe funct ia
SHA1:
18
Algoritmul de generare a tabelei G pentru
SEAL 2.0
Intrare: Sirul a = H
0
H
1
H
2
H
3
H
4
de 160 bit i si i (0 i < 2
32
).
Iesire: G
a
(i) sir de 160 bit i.
Algoritm 1:
1. Se denesc constantele (de 32 bit i):
y
1
= 5A827999, y
2
= 6ED9EBA1,
y
3
= 8F1BBCDC, y
4
= CA62C1D6
2. a. X
0
i;
b. for j 1 to 15 do X
j
00000000;
c. for j 16 to 79 do
X
j
((X
j3
X
j8
X
j14
X
j16
) << 1);
d. (M
0
, M
1
, M
2
, M
3
, M
4
) (H
0
, H
1
, H
2
, H
3
, H
4
);
e. (Runda 1): for j 0 to 19 do
t ((M
0
<< 5) +f(M
1
, M
2
, M
3
) +M
4
+X
j
+y
1
);
(M
0
, M
1
, M
2
, M
3
, M
4
) (t, M
0
, M
1
<< 30, M
2
, M
3
);
f. (Runda 2): for j 20 to 39 do
t ((M
0
<< 5) +h(M
1
, M
2
, M
3
) +M
4
+X
j
+y
2
);
(M
0
, M
1
, M
2
, M
3
, M
4
) (t, M
0
, M
1
<< 30, M
2
, M
3
);
g. (Runda 3): for j 40 to 59 do
t ((M
0
<< 5) +g(M
1
, M
2
, M
3
) +M
4
+X
j
+y
3
);
(M
0
, M
1
, M
2
, M
3
, M
4
) (t, M
0
, M
1
<< 30, M
2
, M
3
);
19
h. (Runda 4): for j 60 to 79 do
t ((M
0
<< 5) +h(M
1
, M
2
, M
3
) +M
4
+X
j
+y
4
);
(M
0
, M
1
, M
2
, M
3
, M
4
) (t, M
0
, M
1
<< 30, M
2
, M
3
);
i. H
i
H
i
+M
i
, (0 i 4);
G
a
(i) = H
0
[[H
1
[[H
2
[[H
3
[[H
4
.
20
SEAL(a, n)
(Generatorul de chei uide pentru SEAL 2.0):
Intrare:
a cheia secreta (160 bit i),
n [0, 2
32
) ntreg,
L - lungimea solicitata pentru cheia uida.
Iesire:
Cheia uida y, [y[ = L
t
(L
t
- primul multiplu de 128 din [L, )).
1. Se genereaza tabelele T, S, R avand ca elemente cuvinte.
Fie constanta Y = 000007FC si funct ia F
a
(i) = H
i
i (mod 5)
unde H
i
0
H
i
1
H
i
2
H
i
3
H
i
4
= G
a
(]i/5|).
a. for i 0 to 511 do T[i] F
a
(i);
b. for j 0 to 255 do S[j] F
a
(00001000 +j);
c. for k 0 to 4 ](L 1)/8192| 1 do
R[k] F
a
(k +00002000);
2. Procedure Initialize(n, l, M
1
, M
2
, M
3
, M
4
, n
1
, n
2
, n
3
, n
4
)
a.
M
1
n R[4 l], M
2
(n >> 8) R[4 l +1],
M
3
(n >> 16) R[4 l +2], M
4
(n >> 24) R[4 l +3].
b. for j 1 to 2 do
P M
1
Y, M
2
M
2
+T[P/4], M
1
(M
1
>> 9),
P M
2
Y, M
3
M
3
+T[P/4], M
2
(M
2
>> 9),
P M
3
Y, M
4
M
4
+T[P/4], M
3
(M
3
>> 9),
P M
4
Y, M
1
M
1
+T[P/4], M
4
(M
4
>> 9),
(n
1
, n
2
, n
3
, n
4
) (M
4
, M
1
, M
2
, M
3
);
21
P M
1
Y, M
2
M
2
+T[P/4], M
1
(M
1
>> 9),
P M
2
Y, M
3
M
3
+T[P/4], M
2
(M
2
>> 9),
P M
3
Y, M
4
M
4
+T[P/4], M
3
(M
3
>> 9),
P M
4
Y, M
1
M
1
+T[P/4], M
4
(M
4
>> 9),
3 y (sirul vid);
4 for l 0 to do
a. Initialize(n, l, M
1
, M
2
, M
3
, M
4
, n
1
, n
2
, n
3
, n
4
);
b. for i 1 to 64 do
P M
1
Y, M
2
M
2
+T[P/4],
M
1
(M
1
>> 9), M
2
M
2
M
1
;
Q M
2
Y, M
3
M
3
+T[Q/4],
M
2
(M
2
>> 9), M
3
M
3
M
2
;
P (P +M
3
) Y, M
4
M
4
+T[P/4],
M
3
(M
3
>> 9), M
4
M
4
M
3
;
Q (Q+M
4
) Y, M
1
M
1
+T[Q/4],
M
4
(M
4
>> 9), M
1
M
1
M
4
;
P (P +M
1
) Y, M
2
M
2
+T[P/4], M
1
(M
1
>> 9);
Q (Q+M
2
) Y, M
3
M
3
+T[Q/4], M
2
(M
2
>> 9);
P (P +M
3
) Y, M
4
M
4
+T[P/4], M
3
(M
3
>> 9);
Q (Q+M
4
) Y, M
1
M
1
+T[Q/4], M
4
(M
4
>> 9);
y y[[(M
2
+S[4 i 4])[[(M
3
S[4 i 3])[[(M
4
+S[4 i 2])[[(M
1
S[i 1]).
if [y[ L then return(y) STOP
else if i (mod 2) = 1 then (M
1
, M
3
) (M
1
+n
1
, M
3
+n
2
)
else (M
1
, M
3
) (M
1
+n
3
, M
3
+n
4
)
22
Remarca 3.
?
S
0 1 2 S[i]+S[j] 254 255
K
. . . . . . . . . . . .
i := 0
j := 0
while GeneratingOutput:
i := (i + 1) mod 256
j := (j + S[i]) mod 256
swap(S[i],S[j])
output S[(S[i] + S[j]) mod 256]
26
Algoritmul KSA
KSA este utilizat la init ializarea S boxului.
Fie n (1 n 255) numarul de octet i din cheie
(n majoritatea implementarilor n [5, 16]).
Init ial n S se introduce permutarea identica.
Ulterior se realizeaza 256 transpozit ii. Formal
for i from 0 to 255 do S[i] := i
j := 0
for i from 0 to 255 do
j := (j + S[i] + key[i mod n]) mod 256;
swap(S[i],S[j])
Implementarea sistemului RC4 este simpla: se
lucreaza cu octet i. Sunt necesari 256 octet i
pentru S box, n octet i de memorie pentru
cheie, plus trei variabile ntregi i, j, k.
Operat iile folosite sunt XOR si AND (sau pe
unele platforme simpla adunare pe bit i, fara
transport).
27
Sistemul A5/1
A5/1 este un sistem de criptare uid utilizat n
ret elele de telefonie mobila GSM (nafara algo-
ritmului de criptare A5/1, ret elele GSM folo-
sesc si un algoritm de autenticare A3/8).
Construitn 1987 special pentru Europa si SUA
(o versiune intent ionat mai slaba A5/2 a
fost denitan 1989 pentru export n alte zone
geograce), el a fost facut public dupa ce n
2000 s-a demonstrat vulnerabilitatea sa.
28
A5/1 este un AF bazat pe trei registri seriali
cu feedback (LFSR) sincroni R
1
, R
2
, R
3
.
Acestia cont in 19, 22, 23 DFF.
La un tact, ecare registru poate ramane pe
loc sau si poate deplasa cont inutul spre sta-
nga, aducand pe ultima pozit ie o combinat ie
liniara de alt i bit i.
Cele trei combinat ii liniare sunt denite astfel:
R
1
[0] R
1
[13] R
1
[16] R
1
[17] R
1
[18]
R
2
[0] R
2
[20] R
2
[21]
R
3
[0] R
3
[7] R
3
[20] R
3
[21] R
3
[22]
6
? -
?
-
?
-
?
-
6
?-
?
-
6
?
-
?
-
?
-
?
-
6
Automatul A5/1
29
Pentru a decide ce registri se deplaseaza la un
tact, se folosesc trei bit i de tact (notat i ).
La ecare tact se determina valoarea majori-
tara din acesti bit i; un registru se deplaseaza
(si scoate o valoare) daca bitul sau de tact are
aceeasi valoare cu cea majoritara.
Deci, la ecare pas, cel put in doi registri vor
suferi o deplasare.
La ecare tact, valoarea emisa de automat este
k = R
1
[18] R
2
[21] R
3
[22]
Apoi y se combina prin XOR cu bitul curent
din mesajul de informat ie (ca la one-time-pad).
30
Exemplul 3. Sa presupunem ca cei trei registri
sunt (bit ii de tact au fost marcat i):
R
1
= 0110 1011 1010 1001 011,
R
2
= 1010 1100 0010 1101 1001 11,
R
3
= 1100 0101 1011 0010 1010 010
1. Tact 1: Iesire: y 0 1 1 = 0.
Bit majoritar: 0. Se deplaseaza R
2
si R
3
.
Noua stare:
R
1
= 0110 1011 1010 1001 011,
R
2
= 0101 1000 0101 1011 0011 11,
R
3
= 1000 1011 0110 0101 0100 100
2. Tact 2: Iesire: y 0 0 1 = 1.
Bit majoritar: 1. Se deplaseaza R
1
si R
2
.
Noua stare:
R
1
= 1101 0111 0101 0010 110,
R
2
= 1011 0000 1011 0110 0111 11,
R
3
= 1000 1011 0110 0101 0100 100
31
3 Tact 3: Iesire: y 1 1 1 = 1.
Bit majoritar: 0. Se deplaseaza R
1
si R
3
.
Noua stare:
R
1
= 1010 1110 1010 0101 101,
R
2
= 1011 0000 1011 0110 0111 11,
R
3
= 0001 0110 1100 1010 1001 000
4 Tact 4: Iesire: y 1 1 0 = 0.
Bit majoritar: 1. Deplasare R
1
, R
2
, R
3
.
Noua stare:
R
1
= 0101 1101 0100 1011 011,
R
2
= 0110 0001 0110 1100 1111 11,
R
3
= 0010 1101 1001 0101 0010 000
Deci cheia uida de criptare este z = 01100. . .
32
A5/1 necesita o int ializare, bazata pe o cheie
de criptare K de 64 bit i si anumit i parametri
GSM stocat i ntr-o constanta Count de 22 bit i.
Cum GSM transmite mesajele n pachete de
cate 114 bit i, A5/1 va genera chei uide de
114 bit i; deci este necesara o init ializare a au-
tomatului la ecare pachet nou primit.
Algoritmul de init ializare:
1. Se reseteaza tot i registrii.
2. for i 0 to 63 do
2.1. R
1
[0] R
1
[0] K[i];
2.2. R
2
[0] R
2
[0] K[i];
2.3. R
3
[0] R
3
[0] K[i];
2.4. Deplasare stanga tot i registrii;
3. for i 0 to 21 do
3.1. R
1
[0] R
1
[0] Count[i];
3.2. R
2
[0] R
2
[0] Count[i];
3.3. R
3
[0] R
3
[0] Count[i];
3.4. Deplasare stanga tot i registrii;
4. for i 0 to 99 do
Funct ioneaza un tact automatul A5/1, cu ignorarea iesirii.
33
Sisteme simetrice de criptare
moderne
Sistemul de criptare DES
1
Ret ele Feistel
Avantaj: operat iile de criptare si decriptare
sunt similare.
Aceasta permite o reducere substant iala a
marimii codului (circuitelor) care implementea-
za sistemul de criptare.
Ret elele Feistel apar la sistemul de criptare Lu-
cifer, construit pentru IBM de o echipa con-
dusa de Horst Feistel si Don Coppersmith.
Succesul a fost asigurat odata cu desemnarea
sistemului DES ca standard ocial de criptare.
Blowsh, Camellia, CAST-128, DES, FEAL,
KASUMI, LOKI97, Lucifer, MAGENTA,
MISTY1, RC5, TEA, Triple DES, Twosh,
XTEA sunt bazate pe ret ele Feistel.
CAST-256, MacGun, RC2, RC6, Skipjack
utilizeaza diverse generalizari ale ret elelor Feis-
tel.
2
Desi se stie de mult cum sa se construiasca
funct ii cu caracter aleator (care sa creeze di-
fuzie si confuzie), pana la ret elele Feistel
nu se cunosteau algoritmi de construct ie pen-
tru funct ii bijective aleatoare.
S D
L R
f
c
q
c
c
%
c
Algoritmul de criptare va opera cu blocuri de
2n bit i, imaginea criptata a unui bloc printr-o
ret ea Feistel ind tot un bloc de 2n bit i.
Transformarea este bijectiva:
din perechea (L, R) se poate regasi (S, D) prin
D = L, S = R f(L).
Funct ia f nu este obligatoriu inversabila. De
cele mai multe ori ea se compune din operat ii
simple care sunt executate rapid de calculator.
3
Exemple de operat ii folosite frecvent:
Permutari de bit i (implementate sub forma
unor tabele de permutare: P boxuri).
Funct ii simple neliniare (implementate sub
forma unor tabele de substitut ie, numite
S boxuri).
Operat ii liniare (deplasari, adunari, XOR)
Operat ii pot implementate direct pe struc-
turi hardware (extrem de rapide).
Cum dupa criptare, jumatatea din dreapta a
blocului nu a suferit nici o transformare (doar
o deplasare spre stanga), ret eaua Feistel se
aplica de mai multe ori ecare aplicat ie
ind numita runda.
4
Considerat ii generale DES
In nal K
i
= PC
2
(C
i
D
i
) unde PC
2
este o
permutare si o select ie de 48 bit i;
daca renumerotam bit ii din C
i
D
i
, n urma
lui PC
2
se elimina bit ii 9, 18, 22, 25, 35, 38,
43 si 54:
14 17 11 24 1 5
3 28 15 6 21 10
23 19 12 4 26 8
16 7 27 20 13 2
41 52 31 37 47 55
30 40 51 45 33 48
44 49 39 56 34 53
46 42 50 36 29 32
14
Decriptarea se realizeaza plecand de la tex-
tul criptat si utilizand acelasi algoritm, n
ordine inversa; se vor folosi n ordine cheile
K
16
, . . . , K
1
.
Exemplul 1. Sa consideram textul clar
Now is time for all
reprezentat ca o secvent a de caractere ASCII
scrise n hexazecimal.
Daca se face o criptare DES folosind cheia
K = 0123456789ABCDEF, se obt ine
= 4E6F772069732074
68652074696D6520
666F7220616C6C20
= 3FA40E8A984D4815
6A271787AB8883F9
893D51EC4B563B53
15
Chei slabe
Denit ia 1. O cheie DES slaba este o cheie
K cu proprietatea e
K
(e
K
()) = , P.
O pereche de chei (K
1
, K
2
) este semi-slaba
DES daca e
K
1
(e
K
2
()) = , P.
2
. . ., ecare
bloc
i
de 64 bit i este criptat cu cheia K
dupa formula
i
= e
K
(
i
), (i 1)
Se obt ine textul criptat y =
1
2
. . .
21
Modul CBC (Cypher Block Chaining
Mode):
1
e
K
e
K
1
2
V I =
0
Criptare
E
c
c
c
E
T
E
c
c
c
E
T
E . . .
1
2
d
K
d
K
1
2
V I =
0
E
c
c
c
E
cE
c
c
c
E
cE
. . .
Decriptare
Bloc cu valoare init iala V I =
0
.
Funct ia de criptare
i
= e
K
(
i1
i
) (i 1)
Funct ia de decriptare
i
=
i1
d
K
(
i
) (i 1)
nu este recursiva.
De aceea, decriptarea se poate efectua mai
rapid (comparativ cu operat ia de criptare),
printr-un proces de calcul paralel.
22
Modurile OFB si CFB sunt construite con-
form sistemelor de criptare cu chei uide: se
genereaza cheia uida, care se combina apoi cu
textul clar (similar sistemului one-time-pad).
OFB (Output Feedback Mode):
Criptare sincronizabila aditiva: componen-
tele cheii uide sunt obt inute prin criptarea
iterativa a unui bloc init ial V I de 64 bit i.
Se deneste
0
= V I si se calculeaza
1
,
2
, . . . cu formula
i
= e
K
(
i1
), (i 1)
Textul clar x =
1
,
2
, . . . este criptat apoi
conform relat iei
i
=
i
i
, (i 1)
23
Modul CFB (Cypher Feedback Mode):
1. Se ncepe cu blocul init ial
0
= V I;
2. Se calculeaza cheia uida
i
:
i
= e
K
(
i1
) (i 1)
3. (ca la modul OFB)
i
=
i
i
(i 1)
Funct ia e
K
este folosita atat la procesul de
criptare cat si la cel de decriptare.
1
e
K V I =
0
1
e
K
2
E E
c
c
E
T
E E
c
c
E
T
E
Criptare
. . .
1
e
K V I =
0
1
e
K
2
E E
c
c
E
c E E
c
c
E
c E
Decriptare
. . .
Si aici este posibila o decriptare n paralel,
datorita formulei
i
=
i
e
K
(
i1
) (i 1)
Modurile OFB si CFB pot extinse la blocuri
de k bit i (1 k 64).
24
Remarca 1.
La ECB si OFB, modicarea unui bloc de text
clar
i
provoaca modicarea unui singur bloc
de text criptat,
i
.
Modul OFB este utilizat adesea pentru trans-
misiile prin satelit.
n
.
Alice va transmite mesajul
1
,
2
, . . . ,
n
, aso-
ciat cu MAC-ul
n
.
Cand Bob primeste mesajul
1
,
2
, . . . ,
n
, el
genereaza
1
, . . . ,
n
folosind cheia (secreta) K
si verica daca
n
este identic cu mesajul MAC
primit.
De remarcat ca Oscar nu poate construi un
MAC deoarece nu cunoaste cheia K utilizata
de Alice si Bob; orice modicare a mesajelor
clare este depistata astfel usor.
26
Se poate realiza si o combinare a integritat ii
cu condent ialitatea:
Alice utilizeaza cheia K
1
pentru a calcula un
MAC bazat pe
1
, . . . ,
n
; e
n+1
acest MAC.
Apoi, ea cripteaza mesajul
1
, . . . ,
n+1
n
1
, . . . ,
n+1
folosind o a doua cheie K
2
.
Cand Bob primeste mesajul, el decripteaza n
prima faza (cu cheia K
2
), apoi verica cu cheia
K
1
daca
n+1
este MAC-ul lui
1
, . . . ,
n
.
Varianta:
Alice poate utiliza K
1
pentru criptarea mesaju-
lui
1
, . . . ,
n
; apoi, pentru
1
, . . . ,
n
determina
MAC-ul
n+1
folosind cheia K
2
.
Bob va face ntai vericarea corectitudinii data
de MAC si daca totul este n ordine va
trece la decriptare.
27
Parole UNIX
Algoritmul UNIX crypt de criptare al parolelor
din sistemul UNIX este bazat pe DES.
DES
DES DES
E E E E E
E
E
T
T
E
T
'
T T
c E
c
'
c c
0
. . .
w
Salt
/etc/passwrd
56
64 64
12
12
88
64 64 64
Versiunea criptata a unei parole este stocata
ntr-o baza de date /etc/passwrd (a carei con-
dent ialitate nu este obligatoriu asigurata).
Atunci cand un utilizator da parola, sistemul o
cripteaza si o compara cu varianta din baza de
date.
28
Modul de criptare:
1. Parola este trunchiata la primele opt ca-
ractere ASCII (sau completata cu 0 daca
parola are mai put in de 8 caractere).
Fiecare caracter da 7 bit i, formand o cheie
DES de 56 bit i.
2. Se realizeaza o criptare n serie prin 25 sis-
teme DES, textul clar init ial ind 00. . . 0.
3. Cei 64 bit i obt inut i dupa ultima criptare
se combina cu 12 bit i dat i de Salt si cu
un bit suplimentar, formand 11 caractere
printabile de cate 7 bit i.
Bit ii de paritate completeaza parola crip-
tata pana la 88 bit i.
29
Sistemul UNIX ofera pentru criptare un pa-
chet de 12 bit i numit Salt generat de sis-
temul de ceas al sistemului la momentul creerii
parolei si stocat n baza de date, n cadrul
parolei criptate.
Acesti bit i sunt folosit i pentru modicarea
funct iei de expansiune E din DES, oferind
2
12
= 4096 variante.
Anume: ecare bit din Salt este asociat cu o
pereche xata din blocul de 48 bit i din E.
Daca el este 1, atunci bit ii din E asociat i lui
sunt interschimbat i; altfel, sunt lasat i pe loc.
Aceasta modicare previne utilizarea de imple-
mentari ale sistemului DES externe sistemului
UNIX.
30
Triplu DES (3DES)
Triplu DES (cunoscut si sub numele 3DES sau
mai rar DES ede) este propus de Walter
Tuchman (seful echipei IBM care a construit
DES).
Numele ocial este FIPS Pub 46 3.
Formal, 3DES este denit prin formula
c = DES
k
3
(DES
1
k
2
(DES
k
1
(m)))
Introducerea la pasul 2 a decriptarii nu afectea-
za securitatea algoritmului.
Uneori dar destul de rar se foloseste pentru
3DES o criptare n lant de trei criptari DES
(numita si DES eee):
c = DES
k
3
(DES
k
2
(DES
k
1
(m))).
31
Criptarea n trei pasi (ede sau eee) este esent i-
ala pentru protejarea contra unui atac de tipul
meet-in-the-middle (posibil n cazul unei duble
criptari).
Fie un sistem de criptare bloc unde marimea
cheii este n.
Pentru un text clar dat m, sa presupunem ca
putem stoca mult imea {e
K
(m) | K K}.
Fie x un text criptat dupa formula
x = e
k
2
(e
k
1
(m)),
unde cheile k
1
si k
2
sunt secrete.
Pentru ecare cheie p exista o cheie unica q
astfel ca d
p
(x) = e
q
(m).
In iulie 1998 sistemul DES pe 56 bit i este
spart de catre organizat ia Electronic Fron-
tier Foundation; s-a folosit un calculator
construit special n acest scop, iar timpul
necesar spargerii a fost de 3 zile.
In luna septembrie a aceluiasi an, adminis-
trat ia americana acorda companiilor pro-
ducatoare de soft de securitate permisi-
unea de a exporta implementari ale algo-
ritmului DES bazate pe chei de criptare de
56 bit i.
42
Pe 20 august 1998 NIST (National Institute
of Standards and Technology) anunt a un set
de 15 algoritmi candidat i sa nlocuiasca DES
(CAST 256, CRY PTON, DEAL, DFC, E2,
FROG, HPC, LOKI97, MAGENTA, MARS,
RC6, Rijndael, SAFER+, Serpent, Twofish).
Este ales si numele noului sistem de criptare:
AES (Advanced Encryption Standard).
43
Sa e un sistem de criptare simetric pe
blocuri de 128 bit i.
Sa accepte chei de lungime 128, 192 si 256
bit i;
Sa nu aiba chei slabe;
Sa e ecient atat pe platforme Intel Pen-
tium Pro cat si pe alte platforme software
sau hardware;
Sa poata implementat atat pe procesoare
de 32 bit i cat si pe smart - carduri (proce-
soare de 8 bit i);
Sa e cat mai simplu.
Sa e mai rapid decat DES si sa ofere o
securitate mai mare decat 3DES.
44
A doua conferint a AES are loc n martie 1999;
Sunt selectat a 5 algoritmi:
Mars, RC6, Rijndael, Serpent si Twofish.
Acestia sunt supusi testelor si discut iilor pub-
lice, folosind drept criterii de evaluare:
securitate, cost, implementare.
y
0
y
1
y
2
y
3
y
4
y
5
y
6
y
7
1 0 0 0 1 1 1 1
1 1 0 0 0 1 1 1
1 1 1 0 0 0 1 1
1 1 1 1 0 0 0 1
1 1 1 1 1 0 0 0
0 1 1 1 1 1 0 0
0 0 1 1 1 1 1 0
0 0 0 1 1 1 1 1
x
0
x
1
x
2
x
3
x
4
x
5
x
6
x
7
1
1
0
0
0
1
1
0
52
Transformarea ByteSub se aplica tuturor
octet ilor starii de intrare n runda, rezultatul
ind o alta stare (de iesire din runda).
Inversa transformarii se obt ine aplicand ecarui
octet transformarea ana inversa, dupa care
se ia inversul multiplicativ din GF(2
8
) (daca
octetul nu este nul).
53
ShiftRow(Stare):
Liniile unei stari sunt permutate ciclic stanga.
Numarul de octet i cu care se face ciclarea:
0 pentru linia 0, C
i
pentru linia i (1 i 3).
Valorile C
i
depind de lungimea N
b
a blocului:
N
b
C
1
C
2
C
3
4 1 2 3
6 1 2 3
8 1 3 4
54
Exemplul 3. Aplicam transformarea ShiftRow
starii din Exemplul 2 (cu N
b
= 6):
a
0,0
a
0,1
a
0,2
a
0,3
a
0,4
a
0,5
a
1,1
a
1,2
a
1,3
a
1,4
a
1,5
a
1,0
a
2,2
a
2,3
a
2,4
a
2,5
a
2,0
a
2,1
a
3,3
a
3,4
a
3,5
a
3,0
a
3,1
a
3,2
55
Inversa transformarii ShiftRow:
permutare ciclica spre stanga cu N
b
C
i
octet i
pentru linia i (1 i 3).
X
3
+
01
X
2
+
01
X +
02
b
0
b
1
b
2
b
3
02 03 01 01
01 02 03 01
01 01 02 03
03 01 01 02
a
0
a
1
a
2
a
3
57
Operat ia inversa este similara.
Fiecare coloana este transformata prinnmult i-
re cu polinomul invers lui c(X) modulo X
4
+1:
d(X) =
0B
X
3
+
0D
X
2
+
09
X +
0E
.
58
AddRoundKey(Stare, Cheie):
Consta n aplicarea unui XOR ntre starea
curenta si cheia de runda.
De exemplu, pentru N
b
= 6, transformarea
este:
a
0,0
a
0,1
a
0,2
a
0,3
a
0,4
a
0,5
a
1,0
a
1,1
a
1,2
a
1,3
a
1,4
a
1,5
a
2,0
a
2,1
a
2,2
a
2,3
a
2,4
a
2,5
a
3,0
a
3,1
a
3,2
a
3,3
a
3,4
a
3,5
k
0,0
k
0,1
k
0,2
k
0,3
k
0,4
k
0,5
k
1,0
k
1,1
k
1,2
k
1,3
k
1,4
k
1,5
k
2,0
k
2,1
k
2,2
k
2,3
k
2,4
k
2,5
k
3,0
k
3,1
k
3,2
k
3,3
k
3,4
k
3,5
=
b
0,0
b
0,1
b
0,2
b
0,3
b
0,4
b
0,5
b
1,0
b
1,1
b
1,2
b
1,3
b
1,4
b
1,5
b
2,0
b
2,1
b
2,2
b
2,3
b
2,4
b
2,5
b
3,0
b
3,1
b
3,2
b
3,3
b
3,4
b
3,5
unde b
i,j
= a
i,j
k
i,j
(0 i 3, 0 j 5).
59
Cheia de runda are lungimea N
b
si se deduce
din cheia de criptare.
Transformarea AddRoundKey si inversa ei sunt
identice.
60
Algoritmul de criptare AES este format din:
1. O transformare AddRoundKey init iala;
2. N
r
1 runde;
3. O runda nala.
61
Generarea cheilor de runda
Cheile de runda se obt in din cheia de criptare
prin:
1. extinderea cheii, si
2. alegerea cheii de runda.
Principiile de baza ale prelucrarii sunt:
Numarul total al bit ilor din toate cheile de
runda este N
b
(N
r
+1).
Cheia de criptare este extinsa ntr-o Cheie
Expandata.
Cheia de runda se obt ine luand primii N
b
octet i din Cheia Expandata, care nu au fost
folosit i pentru alte chei.
62
Extinderea cheii
Cheia expandata (notata W[N
b
(N
r
+1)]) este
un tablou liniar ale carui elemente sunt cuvinte.
Primele N
k
cuvinte sunt cheia de criptare; cele-
lalte cuvinte se obt in recursiv din cuvintele de-
nite anterior.
Funct ia de extindere a cheii depinde de val-
oarea lui N
k
; exista o versiune pentru N
k
6
si o alta pentru N
k
> 6.
63
Pentru N
k
6:
KeyExpansion(byte Key[4 N
k
] word W[N
b
(N
r
+1)])
{
for (i = 0; i < N
k
; i ++)
W[i] = (Key[4 i], Key[4 i + 1], Key[4 i + 2], Key[4
i +3]);
for (i = N
k
; i < N
b
(N
r
+1); i ++)
{
temp = W[i 1];
if (i % N
k
== 0)
temp = SubByte(RotByte(temp)) Rcon(i/N
k
);
W[i] = W[i N
k
] temp;
}
}
64
SubByte(W) este o funct ie care ntoarce un
cuvant n care ecare octet este rezultatul apli-
carii S - boxului denit de ByteSub ecarui
octet din cuvantul de intrare.
RotByte(w) ntoarce un cuvant n care octet ii
sunt rotit i ciclic la stanga:
(a, b, c, d) (b, c, d, a).
Ideea algoritmului:
Primele N
k
cuvinte sunt completate cu cheia
de criptare.
Apoi W[i] = W[i 1] W[i N
k
].
Pentru cuvintele aate pe pozit ii multipli de
N
k
, nainte de aceasta operat ie, lui W[i 1]
i se aplica o permutare ciclica spre stanga a
octet ilor, urmata de aplicarea unui S - box.
00
00
00
)
unde RC[i] =
i1
( este un generator al lui
GF(2
8
))
67
Selectarea cheii de runda
Cheia rundei i este formata din secvent a de
cuvinte
W[N
b
i] . . . W[N
b
(i +1) 1]
Cheia poate calculata treptat, pe masura ce
se ajunge la runda respectiva.
68
Atacuri asupra sistemelor de
criptare bloc
1
Compromisul spat iu - timp
Este un tip de atac cu text clar ales, bazat
pe un compromis ntre complexitatea spat iu
si complexitatea timp a atacurilor prin fort a
bruta.
Oscar dispune de cel put in o pereche (, ) cu
= e
K
().
Scop: determinarea cheii K.
Referint ele se fac (implicit) la sistemul DES:
textele clare si cele criptate sunt de 64 bit i, iar
cheia are 56 bit i.
2
i. O cautare exhaustiva consta n a ncerca
toate cele 2
56
chei posibile.
Operat ia nu necesita memorie, dar sunt nece-
sare n medie 2
55
chei pentru a o gasi pe cea
buna.
ii. Fiind dat un text clar , Oscar poate forma
anterior (n faza de precalcul) o tabela cu 2
56
perechi (
k
, K), ordonata dupa
K
= e
K
().
Dupa ce Oscar obt ine mesajul (criptat din
textul clar ), el va cauta n tabela si va aa
imediat cheia K.
Astfel, aarea cheii va necesita un timp de cal-
cul neglijabil (complexitate logaritmica), dar
un spat iu de memorie gigantic si un timp de
precalcul important.
3
Avantajul variantei (ii) apare cand este nece-
sara cautarea mai multor chei (deoarece tabela
precalculata a fost construita o singura data).
Compromisul spat iu - timp permite obt inerea
unui timp de calcul (precalculul nu se include)
inferior celui unei cautari exhaustive, cu un
spat iu de memorie inferior celui necesar ret i-
nerii tuturor cheilor.
4
Algoritmul foloseste o funct ie de reducere R,
care reduce o secvent a de 64 bit i la una de 56
bit i (de exemplu, R poate sterge pur si simplu
8 bit i din secvent a init iala).
Fie un text clar de 64 bit i; se deneste
g(K
0
) = R(e
K
0
())
pentru orice secvent a K
0
de 56 bit i (rezultatul
g(K
0
) este de asemenea de lungime 56).
Algoritmul mai foloseste doi parametri ntregi
pozitivi m, t.
5
j
=
R() daca j = 1
g(
j1
) daca 2 j t
Daca K = X(i, t j), vom avea
j
= X(i, t).
8
Reciproca nu este adevarata: nu este sucient
ca
j
= X(i, t) pentru a avea K = X(i, t j),
deoarece funct ia de reducere R nu este injec-
tiva (R reduce un spat iu de 2
64
valori n unul
de 2
56
valori; deci ecare valoare provine n
general din 2
8
= 256 elemente).
Trebuie vericata egalitatea
= e
X(i,tj)
()
pentru a decide daca X(i, tj) estentr-adevar
cheia.
Valoarea X(i, t j) nu este disponibila n
memorie, dar ea se poate recalculan tj pasi,
plecand de la X(i, 0).
9
Oscar aplica algoritmul:
1.
1
R()
2. for j 1 to t do
2.1. if i cu
j
= X(i, t) then
2.1.1. X(i, t j) = g
tj
(X(i, 0))
2.1.2. if = e
X(i,tj)
() then K X(i, tj), STOP
2.2.
j+1
g(
j
)
10
Daca mt
2
N = 2
56
, atunci probabilitatea
aarii cheii K n cele t coloane ale matricii X
este de circa 0, 8mt/N.
Coecientul 0, 8 provine din faptul ca valorile
X(i, t) pot sa nu e distincte.
O sugestie este de a alege m t N
1/3
si de
a construi N
1/3
tabele, ecare cu alta funct ie
de reducere R.
Astfel, spat iul de memorie necesar este de 112
N
2/3
bit i (trebuie pastrat i 2N
2/3
valori de 56
bit i).
Timpul de precalcul este liniar O(N).
11
Timpul de calcul al atacului este mai dicil de
evaluat.
Pasul 2.1 poate implementat n cel mai rau
caz ntr-un timp O(log m), utilizand arbori bi-
nari de cautare.
Daca acest pas esueaza (deci nu se gaseste nici
o valoare), timpul de calcul este O(N
2/3
).
Ceilalt i pasi care urmeaza cresc acest timp doar
cu un factor constant.
12
Atacul meet-in-the-middle
Atac cu text clar ales, dezvoltat n 1981 de
Merkle si Hellman ca raspuns la ideea unei
duble criptari cu doua chei diferite, conform
schemei
e e
E E E
c c
m
x
y
K
1
K
2
13
Lema 1. Pentru un sistem de criptare bloc, o
dubla criptare poate atacata folosind O(2
n
)
operat ii si O(2
n
) spat iu de memorie, unde n
este lungimea cheii.
Fie (, ) o pereche (text clar, text criptat)
obt inuta pe baza schemei de mai sus.
1. Pentru ecare din cele 2
n
chei posibile se
calculeaza x
i
= e
K
i
();
2. Se stocheaza (x
i
, K
i
) sortate dupa x
i
.
3. Pentru ecare din cele 2
n
chei posibile:
3.1 Se calculeaza x
j
= d
K
j
();
3.2.
In lista creata se cauta o pereche
(x
i
, K
i
) cu x
i
= x
j
;
4. O pereche de chei posibile este (K
i
, K
j
);
Algoritmul se reia cu alte perechi (, ), pana
ce perechea de chei folosite este determinata
n mod unic.
14
Exemplul 1. Un atac direct asupra unei duble
criptari cu DES ar necesita un timp de ordin
2
112
si un spat iu neglijabil.
Daca se foloseste un atac meet-in-the-middle,
timpul va 2
56
iar spat iul 2
56
.
Strategii complementare de genul compromi-
sului spat iu - timp pot duce la variante de
genul: 2
p
spat iu, 2
q
timp, unde p +q = 112.
15
Criptanaliza diferent iala
A fost introdusa de Biham si Shamir n 1991.
Cu toate ca nu da o modalitate practica de
spargere a funct iei DESn 16 tururi, ea asigura
atacuri ecace pentru variantele de DES cu un
numar redus de runde.
De exemplu, un DES cu 8 runde poate spart
n cateva minute cu un PC obisnuit.
Ulterior, criptanaliza diferent iala a fost extinsa
ca metoda standard de atac pentru toate sis-
temele de criptare bloc.
16
Criptanaliza diferent iala exploateaza faptul ca
unele diferent e dintre texte clare pot genera
cu probabilitate semnicativa diferent e xate
ntre mesajele criptate corespunzatoare.
Fie un sistem de criptare pe blocuri de n bit i,
cu intrarea (textul clar) = (a
1
, a
2
, . . . , a
n
) si
iesirea (textul criptat) = (b
1
, b
2
, . . . , b
n
).
Fie
si
= (a
1
, a
2
, . . . a
n
)
unde a
i
= a
i
a
i
, iar a
i
si a
i
reprezinta al
i-lea bit din
, respectiv
.
Similar,
=
= (b
1
, b
2
, . . . , b
n
)
este diferent a dintre mesajele de iesire (unde
b
i
= b
i
b
i
).
17
) cu
= .
21
Ordinea perechilor nu este relevanta; deci pen-
tru un 4 4 S-box sunt necesare doar cele 16
valori posibile ale unei intrari
; a doua intrare
va calculata cu formula
.
Prezentarea foloseste prima linie a primului S-
box din DES:
Intrare 0 1 2 3 4 5 6 7 8 9 A B C D E F
Iesire E 4 D 1 2 F B 8 3 A 6 C 5 9 0 7
Fiecare pereche (intrare, iesire) poate con-
siderata ca un 4 4 S-box cu intrari si iesiri
pe 4 bit i.
22
Putem calcula diferent a de iesire pentru
orice pereche de intrare (
).
Tabela 1 prezinta valorile (binare) pentru , ,
si valorile pentru perechile de intrare
(, ), unde are valorile
1011 (hex B), 1000 (hex 8) si 0100 (hex 4).
= 1011 = 1000 = 0100
0000 1110 0010 1101 1100
0001 0100 0010 1110 1011
0010 1101 0111 0101 0110
0011 0001 0010 1011 1001
0100 0010 0101 0111 1100
0101 1111 1111 0110 1011
0110 1011 0010 1011 0110
0111 1000 1101 1111 1001
1000 0011 0010 1101 0110
1001 1010 0111 1110 0011
1010 0110 0010 0101 0110
1011 1100 0010 1011 1011
1100 0101 1101 0111 0110
1101 1001 0010 0110 0011
1110 0000 1111 1011 0110
1111 0111 0101 1111 1011
Tabela 1. Perechi de diferent e ntr-un S - box
23
De exemplu, pentru = 0000 si = 1011
avem
= = 1011.
Iesirea (din S - box) pentru intrarea
este
) si (
) au aceeasi
diferent a .
26
5 Pentru un S - box injectiv, o diferent a de
intrare = 0 va duce la o diferent a de
iesire = 0.
Ca o consecint a, prima linie si prima coloa-
na vor 0, cu except ia intersect iei lor, unde
va valoarea 2
n
= 16.
27
Daca s-ar putea construi un S - box ideal, care
sa nu ofere nici o informat ie de tip diferent ial
ntre intrari si iesiri, atunci toate valorile din
tabela sa de distribut ie a diferent elor vor
egale cu 1, iar probabilitatea de aparit ie a unei
diferent e atunci cand diferent a de intrare
este , va 1/2
n
= 1/16.
Totusi pe baza proprietat ilor enunt ate mai sus,
un astfel de S - box ideal nu este posibil.
28
Ret ea substitut ie - permutare
O ret ea substitut ie - permutare (Substitution
Permutation Network SPN) este un sistem
de criptare bloc, format din mai multe runde,
ecare runda cont inand o substitut ie si o per-
mutare.
Cheia este expandatan mod similar sistemelor
uzuale si ecare cheie de runda va XOR-
ata cu mesajul de intrare la nceputul ecarei
runde.
Un SPN pastreaza proprietat ile generale ale
sistemelor de criptare uzuale (inclusiv DES si
AES).
29
Vom utiliza un SPN care cripteaza un text clar
de 16 bit i ntr-un mesaj de 16 bit i.
Cheia are tot 16 bit i si este expandata n 5
sub-chei de runda, de cate 16 bit i ecare.
La ecare runda, cei 16 bit i de intrare sunt
XOR - at i cu cheia de runda, apoi sunt separat i
n patru blocuri de cate 4 bit i, iar ecare bloc
trece prin cate un S - box.
La sfarsitul rundei, cei 16 bit i sunt permutat i.
Folosim acelasi S - box pentru toate blocurile si
toate rundele: prima linie din S
1
- boxul DES.
30
Permutarea utilizata este aceiasi pentru toate
rundele:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
1 5 9 13 2 6 10 14 3 7 11 15 4 8 12 16
Tabela 3
31
Structura unui SPN:
XOR cu sub-cheia K
5
S
41
S
44
S
42
S
43
XOR cu sub-cheia K
4
S
31
S
34
S
32
S
33
XOR cu sub-cheia K
3
S
21
S
24
S
22
S
23
XOR cu sub-cheia K
2
S
11
S
14
S
12
S
13
XOR cu sub-cheia K
1
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2 2
runda 1
runda 2
runda 3
runda 4
m
1 m
16
. . .
. . .
text clar
y
1
. . . y
16
. . .
text criptat
32
Diferent iala caracteristica ntr-un SPN
O modalitate de atac prin criptanaliza diferen-
t iala asupra unui SPN.
Scop: aarea unui set de bit i din sub-cheia
folosita n ultima runda.
Notat ie:
- U
i
intrarea n S- boxurile din runda i,
- V
i
iesirea din S - boxuri n runda i.
33
Doua texte clare, cu diferent a
U
1
= [0000 1011 0000 0000]
Deci singurul S - box activ n prima runda este
S
12
(celelalte S - boxuri sunt inactive: intrarea
este 0, deci si iesirea va tot 0).
Tabela 1: diferent a de iesire
V
1
= [0000 0010 0000 0000]
Altfel spus,
S
12
: = 11
16
= 1011 =
= 2
16
= 0010
cu probabilitate 8/16 = 1/2.
34
Mesajul de intraren S - boxurile rundei a doua:
U
2
= [0000 0000 0100 0000]
cu probabilitate 1/2.
c c c
c
40
Pentru ecare sub-cheie posibila, ai carei bit i
sunt inuent at i de diferent ele nenule din dife-
rent iale, denim cate un counter.
Acesti counteri sunt incrementat i atunci cand
intrarea n ultima runda coincide cu valoarea
prevazuta de diferent iala caracteristica.
0
R
0
si textele criptate
corespunzatoare L
n
R
n
respectiv L
n
R
n
.
Diferent ele sunt
L
0
R
0
= L
0
R
0
L
0
R
0
si L
n
R
n
= L
n
R
n
L
n
R
n
.
42
Denit ia 1. Fie S
j
(1 j 8) un S - box din
sistemul de criptare DES.
Pentru orice pereche (B
j
, B
j
) de siruri de 6
bit i, se deneste XOR-ul de intrare pentru S
j
prin B
j
= B
j
B
j
, iar XOR-ul de iesire prin
S
j
(B
j
) S
j
(B
j
).
Un XOR de intrare este o secvent a de 6 bit i,
iar un XOR de iesire este o secvent a de 4 bit i.
Denit ia 2. Pentru orice B
j
Z
6
2
se noteaza
(B
j
j
) care prin
XOR dau B
j
.
O mult ime (B
j
) cont ine 2
6
= 64 ele-
mente;
(B
j
) = {(B
j
, B
j
B
j
)| B
j
Z
6
2
}.
43
Pentru ecare pereche din (B
j
) se calculeaza
XOR-ul de iesire al lui S
j
si se construieste o
tabela de distribut ii ale valorilor obt inute (sunt
64 iesiri pe un spat iu de 2
4
= 16 valori posi-
bile).
Exemplul 2. Sa consideram primul S - box S
1
si XOR-ul de intrare 110100. Vom avea:
(110100) = {(000000, 110100), (000001, 110101), . . .
. . . , (111111, 001011)}.
Pentru ecare pereche din (110100) se de-
termina XOR-ul de iesire al lui S
1
.
De exemplu
S
1
(000000) = E
16
= 1110,
S
1
(110100) = 9
16
= 1001
deci XOR-ul de iesire S
1
al perechii
(000000, 110100) este 0111.
44
Pentru toate cele 64 perechi din (110100)
se obt ine distribut ia urmatoare a XOR-urilor
de iesire pentru S
1
:
0000 0001 0010 0011 0100 0101 0110 0111
0 8 16 6 2 0 0 12
1000 1001 1010 1011 1100 1101 1110 1111
6 0 0 0 0 8 0 6
, C
j
, C
j
) = {B
j
Z
6
2
| S
j
(B
j
) S
j
(B
j
B
j
) = C
j
},
N
j
(B
j
, C
j
) = card(IN
j
(B
j
, C
j
)).
Distribut ia datan Exemplul anterior da valorile
N
1
(110100, C
1
), C
1
Z
4
2
.
XOR de iesire intrari posibile
0000
0001 000011, 001111, 011110, 011111, 101010, 101011,
110111, 111011
0010 000100, 000101, 001110, 010001, 010010, 010100,
011010, 011011, 100000, 100101, 010110, 101110,
101111, 110000, 110001, 111010
0011 000001, 000010, 010101, 100001, 110101, 110110
0100 010011, 100111
0101
0110
0111 000000, 001000, 001101, 010111, 011000, 011101,
100011, 101001 101100, 110100, 111001, 111100
1000 001001, 001100, 011001, 101101, 111000, 111101
1001
1010
1011
1100
1101 000110, 010000, 010110, 011100, 100010, 100100,
101000, 110010
1110
1111 000111, 001010, 001011, 110011, 111110, 111111
Tabela 4: Distribut ia valorilor intrare/iesire pentru S
1
46
Pentru ecare din cele 8 S - boxuri exista 64
XOR-uri de intrare posibile; deci n total vor
512 date de distribuit, lucru usor de realizat
cu un calculator.
Intrarea ntr-un S - box la runda i este
B = E J,
unde E = E(R
i1
) este rezultatul expandarii
lui R
i1
, iar J = K
i
este un subsir reordonat al
cheii K.
XOR-ul de intrare (al celor 8 S - boxuri) este
deci
B B
= (E J) (E
J) = E E
.
Detaliat pe grupuri de cate 6 bit i:
B = B
1
B
2
B
3
B
4
B
5
B
6
B
7
B
8
,
E = E
1
E
2
E
3
E
4
E
5
E
6
E
7
E
8
,
J = J
1
J
2
J
3
J
4
J
5
J
6
J
7
J
8
si E
.
47
Sa presupunem ca se stiu valorile E
j
si E
j
pen-
tru un j (1 j 8) dat, precum si valoarea
XOR de iesire C
j
= S
j
(B
j
) S
j
(B
j
) a lui S
j
.
Vom avea
E
j
J
j
IN
j
(E
j
, C
j
)
unde E
j
= E
j
E
j
.
Se deneste mult imea test
j
:
test
j
(E
j
, E
j
, C
j
) = {B
j
E
j
| B
j
IN
j
(E
j
, C
j
)}
(s-au luat toate XOR-urile lui E
j
cu elemente
din IN
j
(E
j
, C
j
)).
48
Teorema 1. Daca E
j
, E
j
sunt subsecvent e
construite pentru intrarea n S - boxul S
j
, iar
C
j
j
, C
j
).
Exista exact N
j
(E
j
, C
j
) secvent e de 6 bit i n
test
j
(E
j
, E
j
, C
j
); valoarea corecta J
j
este una
din acestea.
Exemplul 3. Sa consideram
E
1
= 000001, E
1
= 110101, C
1
= 1101.
Deoarece
N
1
(110100, 1101) = {000110, 010000, 010110, 011100, 100010,
101000, 110010}
are 8 elemente, exista 8 secvent e posibile pen-
tru J
1
, cumulate n
test
1
(000001, 110101, 1101) = {000111, 010001, 010111, 011101,
100011, 100101, 101001, 110011}.
Daca se ia un alt triplet (E
1
, E
1
, C
1
), vom
obt ine alta mult ime test
1
cu valori pentru J
1
,
deci valoarea corecta se va gasi n intersect ia
lor.
49
Atacul unui DES denit pe trei runde
0
R
0
, criptate n L
3
R
3
respectiv L
3
R
3
.
Vom avea
R
3
= L
2
f(R
2
, K
3
) = R
1
f(R
2
, K
3
) =
= L
0
f(R
0
, K
1
) f(R
2
, K
3
).
Construct ia pentru R
3
este similara. Deci
R
3
= L
0
f(R
0
, K
1
)f(R
0
, K
1
)f(R
2
, K
3
)
f(R
2
, K
3
).
50
Se alege R
0
= R
0
, deci R
0
= 00. . . 0.
Atunci f(R
0
, K
1
) = f(R
0
, K
1
) si deci
R
3
= L
0
f(R
2
, K
3
) f(R
2
, K
3
).
R
3
2
, K
3
) = R
3
L
0
.
Avem f(R
2
, K
3
) = P(C), f(R
2
, K
3
) = P(C
)
unde C respectiv C
) = R
3
L
0
, de unde
C
= C C
= P
1
(R
3
L
0
).
Acesta este XOR-ul de iesire din cele opt S -
boxuri, dupa a treia runda.
51
R
2
= L
3
si R
2
= L
3
sunt cunoscute (com-
ponente ale textelor criptate); deci se poate
calcula
E = E(L
3
), E
= E(L
3
)
folosind funct ia de expansiune E.
Aceste valori sunt intrarile n S - boxuri la
runda a treia.
Se cunosc deci E, E
, C
la a treia runda si se
pot construi mult imile test
1
, test
2
, . . . , test
8
de
valori posibile pentru J
1
, J
2
, . . . , J
8
.
52
Un algoritm pentru aceasta metoda este:
Intrare: L
0
R
0
, L
0
R
0
, L
3
R
3
, L
3
R
3
cu
R
0
= R
0
.
1. C
P
1
(R
3
L
0
)
2. E E(L
3
), E
E(L
3
)
3. for j := 1 to 8 do test
j
(E
j
, E
j
, C
j
).
Atacul foloseste mai multe triplete E, E
, C
.
Se utilizeaza opt tabele de valori si se deter-
mina astfel cei 48 bit i ai subcheii K
3
de la a
treia runda.
Cheia de 56 bit i se calculeaza apoi printr-o
cautare exhaustiva a celor 2
8
= 256 posibilitat i
pentru cei 8 bit i ramasi necunoscut i.
53
Criptanaliza liniara
Denita de Mitsuru Matsui (1992).
Prima oara s-a aplicat asupra sistemului de
criptare FEAL.
Ulterior, Matsui a publicat un atac similar
asupra sistemului DES, probabil prima
criptanaliza experimentala prezentata public
asupra unui sistem de criptare bloc.
Practic, un atac asupra sistemului DES nu este
nsa viabil, el necesitand 2
43
texte clare cunos-
cute.
Ulterior au fost construite diverse ranari ale
atacurilor prin criptanaliza liniara, folosind
aproximari liniare multiple sau aproximari lo-
cale cu expresii neliniare.
54
Prezentare generala
Criptanaliza liniara este un atac cu text clar
ales, bazata pe o relat ie liniara de aproximare
care descrie sistemul de criptare.
Plecand de la un numar sucient de mare de
perechi (text clar, text criptat) se pot obt ine
informat ii despre cheie, cu o probabilitate ac-
ceptabila.
Pentru ilustrare este folosita aceiasi structura
SPN de la criptanaliza difererent iala, bazata
pe prima linie din S
1
- boxul DES (privita ca
un 4 4 S - box) si permutarea denita n
Tabela 3.
55
Se aproximeaza statistic funct ionarea unei
port iuni din sistemul de criptare printr-o
expresie liniara (bazata pe operat ia XOR).
O astfel de expresie are forma
a
i
1
a
i
2
. . . a
i
u
b
j
1
b
j
2
. . . b
j
v
= 0
unde a
i
reprezinta al i-lea bit al intrarii
= (a
1
, a
2
, . . .), iar b
j
reprezinta al j-lea bit al
iesirii = (b
1
, b
2
, . . .).
Scopul criptanalizei liniare este de a determina
astfel de expresii, avand o probabilitate de apa-
rit ie cat mai diferita de 1/2.
56
Rezistent a unui sistem de criptare la criptana-
liza liniara este cu atat mai mare cu cat astfel
de relat ii sunt mai put ine.
Existent a unei relat ii liniare (cu probabilitate
mare sau mica) denota o slaba abilitate a sis-
temului de criptare privind difuzia datelor crip-
tate.
Daca alegem aleator valori pentru u + v bit i
si le plasamntr-o relat ie liniara, probabilitatea
ca relat ia sa e vericata este n general 1/2.
Cu cat o astfel de probabilitate va mai depar-
tata de 1/2, cu atat va mai usor pentru
criptanalist sa atace sistemul, folosind relat ia
respectiva.
57
Daca o expresie liniara are loc cu probabilitate
p
L
pentru texte clare si texte criptate alese
aleator, vom nota tendint a relat iei respective
prin
L
= p
L
1/2
Cu cat magnitudinea tendint ei |p
L
1/2| este
mai mare, cu atat mai put ine texte clare va
avea nevoie un atac ca sa reuseasca.
Remarca 1.
Daca p
L
= 1, atunci expresia liniara descrie
complet comportarea sistemului de criptare;
deci acesta nu va asigura nici o securitate.
Daca p
L
= 0, atunci ea reprezinta o relat ie
ana n sistemul de criptare, de asemenea in-
diciul unei slabiciuni catastroce.
Cand operat ia de adunare folosita este mod 2
(deci XOR), atunci o funct ie ana este com-
plementara unei funct ii liniare.
58
La evaluarea proprietat ilor neliniare ale unui S
- box, este posibil sa gasim aproximari liniare
ntre seturi de bit i de intrare si de iesire din S
- box.
Ulterior, este posibil sa concatenam astfel de
aproximari liniare ale diverselor S - boxuri,
astfel ncat sa eliminam bit ii intermediari (aat i
n interiorul sistemului) si sa obt inem o expresie
liniara cu tendint a semnicativa ntre seturi
de bit i din textul clar si bit i de intrare n ultima
runda.
59
Lema Piling-Up
Fie X
1
, X
2
doua variabile aleatoare.
Relat ia X
1
X
2
= 0 este o expresie liniara,
echivalenta cu X
1
= X
2
.
Similar, X
1
X
2
= 1 este o expresie ana
echivalenta cu X
1
= X
2
.
Sa consideram o probabilitate denita
Pr[X
1
= i] =
p
1
, daca i = 0
1 p
1
daca i = 1
si
Pr[X
2
= i] =
p
2
, daca i = 0
1 p
2
daca i = 1
Daca cele doua variabile aleatoare sunt inde-
pendente, atunci
Pr[X
1
= i, X
2
= j] =
p
1
p
2
, daca i = 0, j = 0
p
1
(1 p
2
), daca i = 0, j = 1
(1 p
1
)p
2
, daca i = 1, j = 0
(1 p
1
)(1 p
2
), daca i = 1, j = 1
60
Formulele pot simetrizate folosind variabila
tendint a:
Pr[X
i
= 0] =
1
2
+
i
, Pr[X
i
= 1] =
1
2
i
Lema 2. (Piling - up): Fie X
1
, X
2
, . . . X
n
variabile aleatoare independente si pentru
1 i
1
< i
2
< . . . < i
k
n, e
i
1
,i
2
,...i
k
tendint a
variabilei aleatoare X
i
1
X
i
2
. . . X
i
k
.
Atunci
i
1
,i
2
,...i
k
= 2
k1
k
j=1
i
j
sau echivalent:
Pr[X
1
. . . X
k
= 0] = 1/2 +2
k1
k
i=1
i
61
Corolarul 1.
1. Daca j cu
i
j
= 0 atunci
i
1
,i
2
,...,i
k
= 0.
2. Daca
i
j
= 1/2 (j = 1, . . . , k) atunci
i
1
,i
2
,...,i
k
= 1/2.
62
Exemplul 4. Fie patru variabile aleatoare
independente X
1
, X
2
, X
3
, X
4
.
Fie Pr[X
1
X
2
= 0] = 1/2 +
1,2
si Pr[X
2
X
3
= 0] = 1/2 +
2,3
.
Suma X
1
X
3
poate obt inuta adunand
X
1
X
2
cu X
2
X
3
.
Deci
Pr[X
1
X
3
= 0] = Pr[(X
1
X
2
)(X
2
X
3
) = 0].
Deci prin combinarea expresiilor liniare se vor
obt ine expresii liniare noi.
Considerand ca variabilele aleatoare X
1
X
2
si
X
2
X
3
sunt independente, putem aplica lema
Piling - Up, pentru a determina
Pr[X
1
X
3
= 0] = 1/2 +2
1,2
2,3
Deci
1,3
= 2
1,2
2,3
.
63
Relat ii de aproximare pentru S - boxuri
Folosim S - boxul 4 4 denit la criptanali-
za diferent iala, (a
1
, a
2
, a
3
, a
4
) reprezentarea n
binar a intrarii si (b
1
, b
2
, b
3
, b
4
) reprezentarea
binara a iesirii din acest S - box.
Sa luam de exemplu expresia liniara
a
2
a
3
b
1
b
3
b
4
= 0
sau echivalent: a
2
a
3
= b
1
b
3
b
4
.
Aplicand la intrare toate cele 2
4
= 16 valori
posibile si examinand valorile de iesire cores-
punzatoare, expresia este vericata pentru 12
din cele 16 cazuri.
Deci tendint a de probabilitate este
12/16 1/2 = 1/4.
64
(a
1
, a
2
, a
3
, a
4
) (b
1
, b
2
, b
3
, b
4
) a
2
a
3
b
1
b
3
b
4
a
1
a
4
a
3
a
4
b
1
b
4
(0, 0, 0, 0) (1, 1, 1, 0) 0 0 0 0 1
(0, 0, 0, 1) (0, 1, 0, 0) 0 0 1 1 0
(0, 0, 1, 0) (1, 1, 0, 1) 1 0 0 1 0
(0, 0, 1, 1) (0, 0, 0, 1) 1 1 1 0 1
(0, 1, 0, 0) (0, 0, 1, 0) 1 1 0 0 0
(0, 1, 0, 1) (1, 1, 1, 1) 1 1 1 1 0
(0, 1, 1, ) (1, 0, 1, 1) 0 1 0 1 0
(0, 1, 1, 1) (1, 0, 0, 0) 0 1 1 0 1
(1, 0, 0, 0) (0, 0, 1, 1) 0 0 1 0 1
(1, 0, 0, 1) (1, 0, 1, 0) 0 0 0 1 1
(1, 0, 1, 0) (0, 1, 1, 0) 1 1 1 1 0
(1, 0, 1, 1) (1, 1, 0, 0) 1 1 0 0 1
(1, 1, 0, 0) (0, 1, 0, 1) 1 1 1 0 1
(1, 1, 0, 1) (1, 0, 0, 1) 1 0 0 1 0
(1, 1, 1, 0) (0, 0, 0, 0) 0 0 1 1 0
(1, 1, 1, 1) (0, 1, 1, 1) 0 0 0 0 1
Tabela 5: Exemple de aproximari liniare ale unui S - box
i=1
x
i
a
i
i=1
y
i
b
i
unde x
i
, y
i
{0, 1}, (1 i 4) iar operat iile
folosite sunt AND () si XOR ().
65
Vectorii binari (x
1
, x
2
, x
3
, x
4
) numit i sume de
intrare si (y
1
, y
2
, y
3
, y
4
) (sume de iesire) vor
codicat i prin cifre hexazecimale.
Astfel, ecare din cele 256 expresii liniare se va
scrie n mod unic ca o pereche de doua cifre
hexazecimale.
a
1
a
2
a
3
a
4
b
1
b
2
b
3
b
4
0 0 0 0 1 1 1 0
0 0 0 1 0 1 0 0
0 0 1 0 1 1 0 1
0 0 1 1 0 0 0 1
0 1 0 0 0 0 1 0
0 1 0 1 1 1 1 1
0 1 1 0 1 0 1 1
0 1 1 1 1 0 0 0
1 0 0 0 0 0 1 1
1 0 0 1 1 0 1 0
1 0 1 0 0 1 1 0
1 0 1 1 1 1 0 0
1 1 0 0 0 1 0 1
1 1 0 1 1 0 0 1
1 1 1 0 0 0 0 0
1 1 1 1 0 1 1 1
66
Exemplul 5. Expresia a
1
a
4
b
2
va avea suma
de intrare (1, 0, 0, 1) care este 9n hexazecimal,
iar suma de iesire este (0, 1, 0, 0), care este 4
n hexazecimal.
Deci perechea atasata variabilei este (9, 4).
67
Pentru o expresie cu suma de intrare
x = (x
1
, x
2
, x
3
, x
4
)
si suma de iesire
y = (y
1
, y
2
, y
3
, y
4
),
e N
L
(x, y) numarul octet ilor binari
(x
1
, x
2
, x
3
, x
4
, y
1
, y
2
, y
3
, y
4
)
cu
i=1
x
i
a
i
i=1
y
i
b
i
= 0
Tendint a unei astfel de expresii (alese aleator)
este
(x, y) =
N
L
(x, y) 8
16
.
68
Tabela de aproximari liniare da o enumerare
completa a tuturor tendint elor pentru S - boxul
folosit de sistemul nostru de criptare (nu s-a
efectuat si mpart irea la 16):
0 1 2 3 4 5 6 7 8 9 A B C D E F
0 +8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 0 0 2 2 0 0 2 +6 +2 +2 0 0 +2 +2 0 0
2 0 0 2 2 0 0 2 2 0 0 +2 +2 0 0 6 +2
3 0 0 0 0 0 0 0 0 +2 6 2 2 +2 +2 2 2
4 0 +2 0 2 2 4 2 0 0 2 0 +2 +2 4 +2 0
5 0 2 2 0 2 0 +4 +2 2 0 4 +2 0 2 2 0
6 0 +2 2 +4 +2 0 0 +2 0 2 +2 +4 2 0 0 2
7 0 2 0 +2 +2 4 +2 0 2 0 +2 0 +4 +2 0 +2
8 0 0 0 0 0 0 0 0 2 +2 +2 2 +2 2 2 6
9 0 0 2 2 0 0 2 2 4 0 2 +2 0 +4 +2 2
A 0 +4 2 +2 4 0 +2 2 +2 +2 0 0 +2 +2 0 0
B 0 +4 0 4 +4 0 +4 0 0 0 0 0 0 0 0 0
C 0 2 +4 2 2 0 +2 0 +2 0 +2 +4 0 +2 0 2
D 0 +2 +2 0 2 +4 0 +2 4 2 +2 0 +2 0 0 +2
E 0 +2 +2 0 2 4 0 +2 2 0 0 2 4 +2 2 0
F 0 2 4 2 2 0 +2 0 0 2 +4 2 2 0 +2 0
Tabela 6: Tabela de aproximari liniare
69
Proprietat i:
Probabilitatea ca pentru o intrare 0 sa se
obt ina o anumita suma nevida de bit i de
iesire este 1/2 (ntr-un S - box bijectiv,
orice combinat ie liniara de bit i de iesire tre-
buie sa cont ina un numar egal de 0 si 1).
Daca suma bit ilor de iesire este 0, atunci
suma bit ilor de intrare este 0 (o tendint a
+1/2 si o valoare +8 n Tabela 6).
Deci prima linie din Tabela 6 este 0, cu
except ia primului element.
Aceeasi proprietate o are si prima coloana.
Suma elementelor pe o linie sau coloana
este 8.
70
Construirea aproximarilor liniare
Dupa ce au fost stabilite aproximari liniare
pentru S - boxurile unui SPN, se poate deter-
mina o aproximare liniara pentru tot sistemul
de criptare.
Aceasta se va realiza prin concatenarea
aproximarilor liniare ale S -boxurilor consecu-
tive.
Pe baza acestei relat ii liniare se va putea
ataca sistemul, gasind un subset de bit i din
cheia folosita n ultima runda.
71
Sa consideram urmatoarele aproximari liniare
pentru cutiile S
12
, S
22
, S
32
si S
34
:
S
12
: a
1
a
3
a
4
= b
2
cu probabilitate 12/16 si tendint a +1/4;
S
22
: a
2
= b
2
b
4
cu probabilitate 4/16 si tendint a 1/4;
S
32
: a
2
= b
2
b
4
cu probabilitate 4/16 si tendint a 1/4;
S
34
: a
2
= b
2
b
4
cu probabilitate 4/16 si tendint a 1/4.
72
- U
i
(V
i
) reprezinta blocul (de 16 bit i) de intrare
(iesire) din S - boxuri la runda i,
- U
i,j
(V
i,j
) este al j-lea bit din blocul U
i
(V
i
)
(bit ii sunt numerotat i de la 1 la 16).
- K
i
reprezinta sub-cheia folosita n runda i
(except ie: sub-cheia K
5
se combina prin XOR
cu bit ii de la iesirea din runda 4).
Deci U
1
= P K
1
unde P = (P
1
, . . . , P
16
)
reprezinta textul clar (de 16 bit i).
73
Dupa aproximarea liniara de la prima runda:
V
1,6
= U
1,5
U
1,7
U
1,8
= (P
5
K
1,5
) (P
7
K
1,7
) (P
8
K
1,8
) (2)
cu probabilitate 3/4.
Aproximarea din runda 2 da relat ia
V
2,6
V
2,8
= U
2,6
cu probabilitate 1/4.
Deoarece U
2,6
= V
1,6
K
2,6
, putem gasi o
aproximare de forma
V
2,6
V
2,8
= V
1,6
K
2,6
cu probabilitate 1/4.
Combinand aceasta relat ie cu (2) (care are loc
cu probabilitate 3/4), se obt ine
V
2,6
V
2,8
P
5
P
7
P
8
K
1,5
K
1,7
K
1,8
K
2,6
= 0 (3)
cu probabilitate
1/2 +2(3/4 1/2)(1/4 1/2) = 3/8
(deci o tendint a 1/8) obt inuta prin aplicarea
Lemei Piling - up.
74
Pentru runda 3:
V
3,6
V
3,8
= U
3,6
cu probabilitate 1/4 si
V
3,14
V
3,16
= U
3,14
tot cu probabilitate 1/4.
Deci U
3,6
= V
2,6
K
3,6
si U
3,14
= V
2,8
K
3,14
.
Se aplica din nou Lema Piling - up:
V
3,6
V
3,8
V
3,14
V
3,16
V
2,6
K
3,6
V
2,8
K
3,14
= 0 (4)
cu probabilitate 1/2 + 2(1/4 1/2)2 = 5/8
(deci, cu o tendint a +1/8).
75
Combinam acum relat iile (3) si (4) pentru a
incorpora toate cele patru aproximari ale S -
boxurilor:
V
3,6
V
3,8
V
3,14
V
3,16
P
5
P
7
P
8
K
1,5
K
1,7
K
1,8
K
2,6
K
3,6
K
3,14
= 0.
T inem cont ca
U
4,6
= V
3,6
K
4,6
,
U
4,8
= V
3,14
K
4,8
,
U
4,14
= V
3,8
K
4,14
,
U
4,16
= V
3,16
K
4,16
si putem rescrie aceasta relat ie sub forma
U
4,6
U
4,8
U
4,14
U
4,16
P
5
P
7
P
8
K
= 0
unde
K
= K
1,5
K
1,7
K
1,8
K
2,6
K
3,6
K
3,14
K
4,6
K
4,8
K
4,14
K
4,16
Ea este vericata cu probabilitate
1/2 +23(3/4 1/2)(1/4 1/2)3 = 15/32
(deci o tendint a 1/32).
76
K
este o valoare xata (0 sau 1), dependenta
de cheia sistemului de criptare.
Deci relat ia
U
4,6
U
4,8
U
4,14
U
4,16
P
5
P
7
P
8
= 0 (5)
are loc cu probabilitate
15/32 sau (1 15/32) = 17/32
(dupa cum
K
= 0, respectiv 1).
Am obt inut deci o aproximare liniara a primelor
trei runde ale sistemului de criptare, cu o ten-
dint a 1/32, remarcabil de buna pentru constru-
irea unui atac.
77
S
41
S
44
S
42
S
43
S
31
S
34
S
32
S
33
S
21
S
24
S
22
S
23
S
11
S
14
S
12
S
13
K
1,5
K
1,7
K
1,8
K
2,6
K
3,6
K
3,14
K
4,6
K
4,8
K
4,14
K
4,16
K
5,5
K
5,6
K
5,7
K
5,8
K
5,13
... K
5,16
P
5
P
7
P
8
c
U
4,6
U
4,8
U
4,14
U
4,16
c
Figura 3: Exemplu de aproximare liniara
78
Extragerea bit ilor cheii
Dupa ce s-a aat o aproximare liniara pentru
R 1 runde dintr-un sistem de criptare cu R
runde, aproximare avand o tendint a semnica-
tiv de mare, sistemul poate atacat cautand
bit i din ultima sub-cheie.
Se numeste sub-cheie t inta setul de bit i din
ultima sub-cheie, asociat i S - boxurilor active
din ultima runda (S - boxuri inuent ate de bit ii
utilizat i n aproximarea liniara gasita).
Pentru ecare valoare posibila a sub-cheii t inta
este denit un contor (init ializat cu zero).
79
Procesul va simula decriptarea part iala data de
ultima runda a sistemului de criptare: pentru
toate valorile posibile ale sub-cheii t inta, bit ii
din textul criptat sunt XOR-at i cu bit ii din sub-
cheia t inta si rezultatul este trecut n sens in-
vers prin S - boxurile corespunzatoare.
Procedura este aplicata tuturor perechilor
(text clar, text criptat) folosite n atac.
Daca aproximarea liniara este vericata pen-
tru bit ii din textul clar folosit si pentru rezul-
tatul obt inut de procedura, contorul asociat
sub-cheii respective este incrementat.
Sub-cheia t inta al carei contor difera cel mai
mult de jumatatea numarului de perechi folo-
site, este cel mai probabil cea corecta.
Pentru o sub-cheie incorecta rezultata dintr-
o alegere aleatoare, aproximarea asociata este
vericata n general cu o probabilitate foarte
apropiata de 50% (deci tendint a 0).
80
Exemplul 6. Expresia liniara (5) afecteaza
intrarile n S - boxurile S
42
si S
44
.
Deci, pentru ecare pereche (, ) aleasa pen-
tru atac, vomncerca 2
8
= 256 valori ale sub-
cheii t inta
[K
5,5
, . . . , K
5,8
, K
5,13
, . . . , K
5,16
].
Pentru ecare valoare incrementam contorul
respectiv ori de cate ori relat ia (5) este veri-
cata (valorile [U
4,5
, . . . , U
4,8
, U
4,13
, . . . , U
4,16
]
sunt determinate trecand datele n sens invers
prin sub-cheia t inta si S - boxurile S
24
si S
44
).
Contorul care difera cel mai mult de jumatate
din numarul de perechi (, ) folosite n atac
va indica sub-cheia t inta prezumtiv corecta.
81
Valorile bit ilor din sub-cheie folosit i n calculul
lui
K
vor indica daca tendint a este pozitiva
sau negativa.
Cand
K
= 0, aproximarea liniara (5) va servi
ca estimare cu probabilitate < 1/2, iar cand
K
= 1, relat ia (5) va avea loc cu probabilitate
> 1/2.
K
5,5
. . . K
5,8
,
K
5,13
. . . K
5,16
|tendinta|
K
5,5
. . . K
5,8
,
K
5,13
. . . K
5,16
|tendinta|
1 C 0.0031 2 A 0.0044
1 D 0.0078 2 B 0.0186
1 E 0.0071 2 C 0.0094
1 F 0.0170 2 D 0.0053
2 0 0.0025 2 E 0.0062
2 1 0.0220 2 F 0.0133
2 2 0.0211 3 0 0.0027
2 3 0.0064 3 1 0.0050
2 4 0.0336 3 2 0.0075
2 5 0.0106 3 3 0.0162
2 6 0.0096 3 4 0.0218
2 7 0.0074 3 5 0.0052
2 8 0.0224 3 6 0.0056
2 9 0.0054 3 7 0.0048
Tabela 7. Rezultate experimentale pentru un atac liniar
Atacul foloseste 10000 perechi cunoscute
(text clar, text criptat).
82
Tabela 7 prezinta doar part ial rezultatele rela-
tive la contori (un tabel complet va avea 256
linii, cate una pentru ecare valoare posibila a
sub-cheii t inta).
Cea mai mare tendint a apare pentru valoarea
[K
5,5
. . . K
5,8
, K
5,13
. . . K
5,16
] = [2, 4],
rezultat care ramane valabil pentru toata tabe-
la cu 256 valori.
Valoarea 0.0336 gasita experimental este
foarte apropiata de estimarea 1/32 = 0.03125.
a
15
f(X, K)
7
f(X, K)
18
f(X, K)
24
f(X, K)
29
K
22
= 0
a
27
a
28
a
30
a
31
f(X, K)
15
K
42
K
43
K
45
K
46
= 0
a
29
f(X, K)
15
K
44
= 0
a
15
f(X, K)
7
f(X, K)
18
f(X, K)
24
K
22
= 0
a
12
a
16
f(X, K)
7
f(X, K)
18
f(X, K)
24
K
19
K
23
= 0
Dupa estimarea lui Matsui, atacul original pro-
pus de el necesita 2
47
perechi (text clar, text
criptat) pentru a avea succes cu probabilitate
mare.
Ulterior,atacul estembunatat it si reduce acest
numar la 2
43
perechi.
Cercetari experimentale ulterioare sugereaza
ca sunt suciente 2
41
perechi pentru ca atacul
mbunatat it al lui Matsui sa dea rezultate.
85
Comparare ntre criptanaliza diferent iala si liniara
Similaritat i:
1. Diferent ialele caracteristice corespund
aproximarilor liniare.
Tabelele de distribut ie a diferent elor sunt
nlocuite cu tabelele de aproximare liniara.
2. Regula de combinare a diferent ialelor
caracteristice: substituie diferent ele si nmul-
t este probabilitat ile corespunde regulii de
combinare a aproximarilor liniare (Lema piling-
up): substituie elementele comune si nmul-
t este tendint ele.
3. Algoritmii de cautare pentru cea mai
buna caracteristica sau cea mai buna aproxi-
mare liniara sunt n esent a identici.
86
Diferent e:
1. Criptanaliza diferent iala lucreaza cu blo-
curi de bit i, n timp ce criptanaliza liniara lu-
creaza n esent a cu un singur bit.
2. Tendint a unei aproximari liniare este un
numar cu semn.
Deci, ind date doua aproximari cu aceleasi
structuri de intrare si iesire, aceiasi probabili-
tate, dar semne opuse, aproximarea rezultata
va avea tendint a zero (datorita faptului ca cele
doua aproximari se vor anula reciproc).
87
Sisteme de criptare cu cheie publica
1
Sistemele simetrice necesita o comunicare
prealabila a cheii ntre Alice si Bob printr-un
canal sigur, nainte de transmiterea mesajului
criptat.
Obiectivul sistemelor de criptare cu cheie
publica este acela de a face imposibil de
obt inut cheia d
K
plecand de la e
K
.
Astfel, regula de criptare e
K
poate publicata
ntr-un registru public (de unde si numele
sistemelor).
Avantajul constan faptul ca Alice (sau oricare
alta persoana) poate trimite lui Bob un mesaj
criptat cu e
K
.
Bob este singura persoana capabila sa decrip-
teze textul, utilizand cheia sa secreta d
K
.
2
Ideea de sistem de criptare cu cheie publica
apare n 1976 ntr-un articol scris de Die si
Hellman.
Se pare ca prima idee de cheie publica este
schit ata n ianuarie 1970 de catre britanicul
James Ellis membru n Communication-
Electronic Security Group n articolul The
possibility of non-secret encryption.
Informat ia este facuta publica de catre British
Government Communications Headquarters
abia n 1997.
3
Securitatea sistemelor de criptare cu cheie
publica este bazata pe probleme NP complete.
RSA: bazat pe dicultatea descompunerii
n factori primi a numerelor mari (de sute
de cifre).
El Gamal: bazat pe dicultatea calculului
logaritmului discret ntr-un corp nit.
Merkle - Hellman: bazat pe problema
{0, 1} a rucsacului.
Sistemul McEliece: bazat pe teoria al-
gebrica a codurilor, decodicarea unui cod
liniar ind o problema NP - completa.
Curbe eliptice: Sisteme de criptare care
si desfasoara calculele pe mult imea
punctelor unei curbe eliptice (n locul unui
inel nit Z
n
).
4
Funct ii neinversabile
Un sistem cu cheie publica nu este sigur n mod
necondit ionat; oricine putand sa efectueze
criptari are posibilitatea sa gaseasca anumite
puncte slabe care sa i permita sa si decripteze
mesajele.
Ideea de baza folosita este cea de
funct ie neinversabila.
Exemplul 1. Strazi cu sens unic dintr-un oras.
Este usor ca mergand pe astfel de strazi sa
ajungi de la punctul A la punctul B; dar uneori
este imposibil sa ajungi de la B la A.
i=1
a
i
.
Pentru a rezolva problema rucsacului (A, k),
este sucient sa parcurgem vectorul A de la
dreapta spre stanga.
Cunoscand valoarea k, cercetamntai valoarea
de adevar a relat iei k a
n
.
Daca raspunsul este FALSE, a
n
nu poate apar-
t ine sumei pe care o cautam.
Daca se obt ine TRUE, atunci a
n
trebuie sa e
n suma, deoarece toate elementele a
i
ramase
nu pot depasi n suma pe k.
16
Fie vectorul rucsac super-crescator
A = (1, 3, 5, 11, 21, 44, 87, 175, 349, 701)
si vrem sa decodicam mesajul 278.
Numar Componenta lui A Bit rezultat
278 701 0
278 349 0
278 175 1
103 87 1
16 44 0
16 21 0
16 11 1
5 5 1
0 3 0
0 1 0
Se deneste
k
1
=
k daca a
n
> k
k a
n
daca a
n
k
si repetam procedeul pentru k si a
1
.
i+1
a
i
) numit modul
si un numar t, (m, t) = 1 numit multiplicator.
Exista atunci un numar s astfel ca
m s 1 (mod m).
Plecand de la vectorul super-crescator
A = (a
1
, a
2
, . . . , a
n
)
Bob genereaza vectorul
B = (b
1
, b
2
, . . . , b
n
)
unde b
i
= t a
i
(mod m).
Vectorul B este declarat public pentru criptare,
iar m, t (si s) formeaza trapa secreta a lui Bob.
19
Pentru m = 1590 si t = 43, vectorul super-
crescator
A = (1, 3, 5, 11, 21, 44, 87, 175, 349, 701)
devine
B = (43, 129, 215, 473, 903, 302, 561, 1165, 697, 1523),
prezentat n Exemplul 3.
In plus, s = t
1
= 37.
Pentru calculul inversului unui numar se poate
folosi algoritmul lui Euclid extins.
20
Cel care doreste sa trimita lui Bob un mesaj
criptat va folosi vectorul rucsac B si va cripta
mesajul x n
y = B B
T
x
.
La recept ie, Bob va calcula ntai
z = s y (mod m),
dupa care va decripta mesajul z folosind vec-
torul super-crescator A.
Se poate arata usor ca solut ia este chiar x.
Astfel, de exemplu Alice poate cripta mesajul
FL n 2414 (cf. Exemplului 3).
La primirea acestui numar, Bob va determina
ntai
s 2414 = 37 2414 (mod 1590) = 278.
S-a vazut ca decriptarea mesajului 278 cu vec-
torul A conduce la textul clar FL.
21
Principii generale de construire a unui sistem
de criptare cu cheie publica:
1. Se ncepe cu o problema dicila P, prefe-
rabil NP - complea.
2. Se selecteaza o subproblema P
1
a lui P,
rezolvabila n timp liniar.
3. Se aplica o transformare problemei P
1
ast-
fel ncat sa se obt ina o problema P
2
care sa
nu semene cu P
1
dar sa e foarte apropiata
de problema P.
4. Se face publica problema P
2
si se descrie
algoritmul de criptare bazat pe aceasta.
Informat ia referitoare la modul n care se
obt ine P
1
din P
2
formeaza trapa secreta.
22
5 Se construiesc detaliile sistemului de crip-
tare, astfel ncat principiile de lucru sa dife-
re esent ial pentru destinatar fat a de
criptanalist.
Astfel, n timp ce primul va folosi trapa se-
creta si va rezolva problema P
1
, al doilea
va trebui sa rezolve problema P
2
, imposi-
bila datorita asemanarii ei cu problema P.
La aceste principii generale de construct ie se
adauga o serie de detalii legate de problema
NP - completa folosita ca baza de lucru.
23
Securitatea sistemelor de criptare
cu cheie publica
6
-
?
(e
A
, e
B
)
e
1
B
e
1
A
y
1
= e
1
B
(m) y = e
B
(m)
1. Oscar opacizeaza cheile publice si trimite
lui Alice cheia e
1
B
ca din partea lui Bob;
similar, substituie (pentru Bob) cheia e
A
cu e
1
A
.
26
2 Fie m mesajul pe care Alice vrea sal trimi-
ta lui Bob. Ea va cripta si expedia
y
1
= e
1
B
(m).
3 Oscar intercepteaza mesajul si aa
m = d
1
B
(y
1
).
4 Oscar recripteaza y = e
B
(m) si trimite y
lui Bob.
Binent eles, daca doreste, Oscar poate modi-
ca, interschimba sau ntarzia mesajele inter-
ceptate.
27
Pentru sistemele de criptare cu cheie publica
apare necesitatea autenticarii mesajului sau a
expeditorului, precum si aceea a condent iali-
tat ii.
Denit ia 1. Condent ialitatea (conform ISO)
asigura accesul la informat ie doar part ilor au-
torizate de a avea acest acces.
Denit ia 2. Autenticarea (gr. authentes
- author) este procesul prin care un utilizator
ncearca sa conrme unui destinatar ca mesajul
primit de acesta vine (sau nu vine) din partea
sa.
28
Metodele prin care un expeditor uman se poate
autentica sunt clasicate n:
1. ceva ce utilizatorul este (de exemplu am-
prente digitale, de retina, de voce, secvent a
DNA, recunoasterea semnaturii, identica-
tori biometrici).
2. ceva de utilizatorul are (de exemplu card
ID, date de securitate soft aate pe calcu-
lator sau telefon).
3. ceva ce utilizatorul stie (de exemplu un
password, o parola, un numar de identi-
care - PIN).
4. Orice combinat ientre metodele anterioare
(exemplu: un card bancar cu PIN asigura
o dubla autenticare).
29
Termenul de integritate se refera la validitatea
datelor.
Denit ia 3. Integritatea este sigurant a ca
datele la care se refera un utilizator pot
accesate si eventual modicate numai de
cei autorizat i sa o faca.
.
Se efectueaza secvent a de mpart iri succesive:
r
0
= q
1
r
1
+r
2
0 < r
2
< r
1
r
1
= q
2
r
2
+r
3
0 < r
3
< r
2
.
.
.
r
m2
= q
m1
r
m1
+r
m
0 < r
m
< r
m1
r
m1
= q
m
r
m
.
Deoarece
cmmdc(r
0
, r
1
) = . . . = cmmdc(r
m1
, r
m
) = r
m
,
rezulta cmmdc(r
0
, r
1
) = r
m
.
39
Fie sirul t
0
, t
1
, . . . , t
m
denit:
t
0
= 0, t
1
= 1
t
j
= t
j2
q
j1
t
j1
(mod r
0
), j 2 (2)
Teorema 1. Pentru 0 j m avem
r
j
t
j
r
1
(mod r
0
)
unde r
j
si t
j
sunt denite mai sus.
Corolarul 1. Daca (r
0
, r
1
) = 1 atunci
t
m
= r
1
1
(mod r
0
).
40
Algoritmul lui Euclid extins (pentru n > 1 si
b Z
n
va determina b
1
mod n - daca exista).
1. n
0
n, b
0
b, t
0
0, t 1;
2. q
n
0
b
0
, r n
0
q b
0
;
3. while r > 0 do
3.1. temp t
0
q t
3.2. if temp 0 then temp temp (mod n)
else temp n ((temp) (mod n))
3.3. n
0
b
0
, b
0
r, t
0
t, t temp;
3.4. q
n
0
b
0
, r n
0
q b
0
;
4. if b
0
= 1 then b nu are inversa mod n.
else b
1
(mod n) = t.
41
Exemplul 9. Sa calculam 28
1
mod 75,
folosind algoritmul lui Euclid extins:
n
0
b
0
q r t
0
t temp
75 28 2 19 0 1 73
28 19 1 9 1 73 3
19 9 2 1 73 3 67
9 1 9 0 3 67
Deci 28
1
mod 75 = 67.
42
Teorema chineza a resturilor
Teorema 2. Se dau numerele p
1
, p
2
, . . . , p
r
prime ntre ele si e n = p
1
p
2
. . . p
r
.
Atunci sistemul de ecuat ii
x a
i
(mod p
i
), 1 i r
are solut ie comuna n intervalul [0, n 1].
Pentru ecare i, cmmdc(p
i
, n/p
i
) = 1;
deci exista numerele y
i
astfel ncat
n
p
i
y
i
1 (mod p
i
).
De asemenea, pentru j = i, deoarece
p
j
|cmmdc(n/p
i
), avem
n
p
i
y
i
0 (mod p
j
).
Solut ia sistemului este
x =
r
i=1
n
p
i
y
i
a
i
(mod n).
43
Exemplul 10. Fie r = 3, p
1
= 7, p
2
= 11,
p
3
= 13, deci n = 1001.
Notand m
i
=
n
p
i
, avem
m
1
= 143, m
2
= 91 si m
3
= 77.
Folosind algoritmul lui Euclid, se obt ine
y
1
= 5, y
2
= 4, y
3
= 12.
Solut ia generala este atunci
x = 715a
1
+364a
2
+924a
3
(mod 1001)
De exemplu, pentru sistemul
x 5 (mod 7), x 3 (mod 11), x 10 (mod 13)
formula de sus da
x = 715 5 + 364 3 + 924 10 (mod 1001) =
13907 (mod 1001) = 894.
Vericarea se realizeaza reducand x modulo
7, 11 si 13.
44
Sistemul de criptare RSA
1
Descrierea sistemului
Sistemul de criptare RSA este prezentat n
1977 de Ron Rivest, Adi Shamir si Len Adle-
mann cadrul unui proiect de cercetare la MIT.
Dupa declasicarea n 1997 a unor documente
din Marea Britanie, se pare ca matematicianul
Cliord Cocks a elaborat n 1973 un sistem
echivalent, prezentat ntr-un document intern
GCHQ (Government Communications Head-
quarters).
Este cel mai cunoscut si utilizat sistem de
criptare cu cheie publica.
Aceasta se datoreazan primul rand modalitat ii
foarte simple de criptare si decriptare, care se
realizeaza cu aceleasi module de calcul (pro-
prietate ntalnita la unele sisteme simetrice).
2
Fie p, q numere prime impare distincte si
n = pq.
Indicatorul sau Euler este (n) = (p1)(q1).
Fie P = C= Z
n
,
K= {(n, p, q, a, b)| n = pq, ab 1 (mod (n))}
Pentru K = (n, p, q, a, b) se denesc
(x, y Z
n
):
e
K
(x) = x
b
(mod n)
si
d
K
(y) = y
a
(mod n)
Valorile n si b sunt publice, iar p, q si a sunt
secrete.
3
Deoarece ab 1 (mod (n)), avem
ab = t(n) +1
Atunci, pentru un x Z
n
= Z
n
\ {0}, putem
scrie (calcule n Z
n
):
(x
b
)
a
x
t(n)+1
x
(n)
t
x 1
t
x x
Pentru x = 0 armat ia este banala.
4
Exemplul 1. Bob alege p = 101, q = 113.
Atunci n = 11413, (n) = 11200.
Deoarece 11200 = 2
6
5
2
7, un numar b poate
utilizat ca exponent de criptare daca si numai
daca nu este divizibil cu 2, 5 sau 7.
Fie de exemplu b = 3533.
Atunci b
1
= 6597 (mod 11200).
Deci, exponentul de decriptare este a = 6597.
Bob face public n = 11413 si b = 3533.
Daca Alice doreste sa-i transmita lui Bob
mesajul m = 9726, ea calculeaza
9726
3533
mod 11413 = 5761
si trimite prin canal textul criptat c = 5761.
Cand Bob primeste acest numar, el determina
5761
6597
mod 11413 = 9726.
5
Securitatea sistemului de criptare RSA se
bazeaza pe ipoteza ca funct ia de criptare
e
K
(x) = x
b
mod n
este neinversabila din punct de vedere al
complexitat ii.
Trapa secreta de care dispune Bob pentru
decriptare este descompunerea n = pq.
Deoarece Bob stie aceasta factorizare, el poate
calcula (n) = (p 1)(q 1) si apoi determina
exponentul de decriptare a folosind algoritmul
lui Euclid extins.
6
Implementarea sistemului RSA
Pentru a realiza criptarea, Bob trebuie sa
parcurga urmatorii pasi:
1. Genereaza doua numere prime mari p, q.
2. Aa n = pq si (n) = (p 1)(q 1).
3. Alege aleator un numar b (1, (n)),
astfel ca cmmdc(b, (n)) = 1.
4. Calculeaza a = b
1
mod (n) folosind
algoritmul lui Euclid extins.
5. Face public n si b.
7
Un atac consta n ncercarea de factorizare a
lui n.
Daca se realizeaza aceasta, este usor de de-
terminat (n) = (p 1)(q 1) si de calculat
exponentul de decriptare a plecand de la b.
Deci, pentru ca sistemul RSA sa e sigur, este
necesar ca n sa e sucient de mare pentru ca
factorizarea sa sa e imposibila.
Un numar n de maxim 256 bit i poate facto-
rizat de un PC obisnuit n cateva ore.
Daca n are pana la 512 bit i, el poate factor-
izat folosind o ret ea de cateva sute de calcu-
latoare (schema prezentata n 1999).
Aproape toate implementarile actuale ale sis-
temului folosesc chei de 1024 2048 bit i.
i=0
c
i
2
i
descompunerea binara a lui c.
(s k este numarul de bit i din c, iar c
i
{0, 1}).
Exponent iere rapida (doar prin ridicari la patrat
si maxim s nmult iri modulare):
z 1;
for i s 1 downto 0 do
z z
2
mod n;
if c
i
= 1 then z z x mod n
Complexitatea algoritmului: O(k
3
).
10
Exemplul 2. Calculul lui 9726
3533
mod 11413
se efectueaza n numai 12 pasi; anume:
i c
i
z
11 1 1
2
9726 = 9726
10 1 9726
2
9726 = 2659
9 0 2659
2
= 5634
8 1 5634
2
9726 = 9167
7 1 9167
2
9726 = 4958
6 1 4958
2
9726 = 7783
5 0 7783
2
= 6298
4 0 6298
2
= 4629
3 1 4629
2
9726 = 10185
2 1 10185
2
9726 = 105
1 0 105
2
= 11025
0 1 11025
2
9726 = 5761
Deci textul clar 9726 este criptat de Alice n
5761.
11
Pentru aplicarea sistemului de criptare RSA,
trebuie generate ntai numerele prime p, q.
Etapa a doua se efectueaza n O((log
2
n)
2
).
Etapele 3 si 4 folosesc algoritmul lui Euclid
extins (calculul celui mai mare divizor comun
cmmdc(a, b) se poate realiza cu complexitatea
O((log
2
a)
2
)).
p
.
a este rest (reziduu) patratic modulo p daca
ecuat ia x
2
a (mod p) are solut ie n Z
p
.
a
p
0 daca a 0 (mod p)
1 daca a este rest patratic modulo p
1 daca a nu este rest patratic modulo p
18
Teorema 2. Daca p este numar prim impar,
atunci
a
p
a
p1
2
(mod p)
Generalizare simbolul lui Legendre:
Denit ia 5. Fie n = p
e
1
1
. . . p
e
k
k
un numar impar
descompus n factori primi.
Daca a 0 este un numar ntreg, se deneste
simbolul Jacobi prin
a
n
=
k
i=1
a
p
i
e
i
19
Exemplul 4. Sa calculam simbolul Jacobi
6278
9975
9975 = 3 5
2
7 19.
6278
9975
6278
3
6278
5
6278
7
6278
19
=
=
2
3
3
5
6
7
8
19
=
= (1)(1)
2
(1)(1) = 1
20
Fie n > 1 un numar impar.
Daca n este prim, atunci pentru orice a, avem
a
n
a
n1
2
(mod n).
Invers, daca n nu este prim, este posibil ca
egalitatea de sus sa e falsa.
Daca congruent a se verica, spunem ca n este
numar Euler pseudo - prim pentru baza a.
De exemplu, 91 este pseudo-prim pentru baza
10 deoarece
10
91
= 1 = 10
45
(mod 91).
21
Testul de primalitate Solovay - Strassen pentru
un numar impar n:
1. Se genereaza aleator un numar a Z
n
;
2. x
a
n
;
3. if x = 0 then n nu este prim
4. y a
n1
2
(mod n);
5. if x y (mod n) then n este prim,
else n nu este prim.
22
Pentru evaluarea a
n1
2
(mod n) se poate folosi
un algoritm de complexitate O((log n)
3
).
Pentru evaluarea simbolului Jacobi
a
n
(fara
factorizarea lui n) se folosesc lemele:
Lema 1. Fie n un ntreg pozitiv impar. Atunci
1. Daca x y (mod n) atunci
x
n
y
n
;
2.
2
n
1 daca n 1 (mod 8)
1 daca n 3 (mod 8)
3.
x y
n
x
n
y
n
;
Lema 2. Fie m, n doua numere ntregi pozitive
impare. Atunci
m
n
n
m
daca m n 3 (mod 4)
n
m
altfel
23
Exemplul 5. Calculul
7411
9283
7411
9283
9283
7411
1872
7411
=
=
2
7411
117
7411
117
7411
=
=
7411
117
40
117
=
=
2
117
5
117
5
117
117
5
=
=
2
5
= 1
Simbolul Jacobi
m
n
pq = n
(p 1)(q 1) = (n)
sau - dupa substitut ie - a ecuat iei
X
2
(n (n) +1)X +n = 0
Deci, daca Oscar determina (n), el poate fac-
toriza n si sparge sistemul.
Cu alte cuvinte, calculul lui (n) nu este mai
simplu decat factorizarea lui n.
31
Alta slabiciune consta n alegerea unor numere
p, q prime apropiate unul de altul.
In plus,
(p +q)
2
4
n =
(p q)
2
4
,
deci membrul stang este patrat perfect.
Atunci, pentru factorizarea lui n se testeaza
toate numerele ntregi x >
n pana se gaseste
unul astfel ncat x
2
n este patrat perfect;
e acesta y
2
.
Atunci vom avea imediat p = x +y, q = x y.
32
Exemplul 6. Pentru n = 97343 se gaseste
n = 311, 998.
Apoi 312
2
n = 1, ceea ce conduce la
factorizarea p = 313, q = 311.
Deci, n general este recomandabil ca cele doua
numere prime p si q sa difere prin numarul de
bit i.
33
Factorizarea modulului
stiind exponentul de decriptare
Daca exista un algoritm care calculeaza expo-
nentul de decriptare a, acesta poate utilizat
ca oracol ntr-un algoritm probabilist care
descompune n.
Denit ia 6. Fie (0 < 1). Un algoritm tip
Las Vegas este un algoritm probabilist care,
pentru orice aparit ie a unei probleme, poate
oferi un raspuns - totdeauna corect - sau poate
esua si sa nu dea nici un raspuns, cu probabili-
tate .
Deci, daca avem un algoritm Las Vegas pentru
rezolvarea unei probleme, putem sa l apelam
de mai multe ori, pana se obt ine un raspuns.
Probabilitatea ca el sa nu raspunda la m ten-
tative consecutive este
m
.
34
Fie A un algoritm (ipotetic) care calculeaza
exponentul de decriptare a plecand de la expo-
nentul de criptare b.
Se poate deni un algoritm Las Vegas care
utilizeaza A ca oracol.
El este bazat pe studiul radacinilor patrate ale
unitat ii modulo n, cand n = pq, p si q ind
numere prime impare.
35
In acest caz x
2
1 (mod p) are ca singure
solut ii x 1 (mod p).
La fel, x
2
1 (mod q).
Din Teorema chineza a resturilor rezulta ca
congruent a x
2
1 (mod n) este echivalenta
cu x
2
1 (mod p) si x
2
1 (mod q).
Deci sunt patru radacini patrate ale unitat ii
modulo n.
Doua sunt solut iile triviale 1 (mod n),
iar celelalte - numite netriviale - sunt opuse
modulo n.
Exemplul 7. Fie n = 403 = 13 31.
Cele patru radacini patrate ale lui 1 modulo
403 sunt 1, 92, 311 si 402.
36
Sa presupunem ca x este o radacina patrata
netriviala a lui 1 modulo n, deci o solut ie a
ecuat iei x
2
1 (mod n).
Avem
n|(x 1)(x +1)
Rezulta
cmmdc(x +1, n) = p, cmmdc(x 1, n) = q.
Algoritm:
1. Se genereaza aleator w Z
n
, w = 1;
2. x cmmdc(w, n);
3. if x > 1 then Stop (cu p = x sau q = x);
4. a A(b);
5. Se descompune ab 1 = 2
s
r, r impar;
6. v w
r
(mod n);
7. if v 1 (mod n) then Stop (esec);
8. while v 1 (mod n) do
8.1. v
0
v;
8.2. v v
2
(mod n);
9. if v
0
1 (mod n) then Stop (esec);
else x cmmdc(v
0
+1, n), Stop (p = x).
37
Exemplul 8. Fie
n = 89855713, b = 34986517, a = 82330933
si sa consideram ca s-a tras aleator w = 5.
ab 1 = 2
3
360059073378795.
La pasul 6 se obt ine v = 85877701,
iar la pasul 8.2, v = 1.
La pasul 9 se va obt ine atunci
cmmdc(85877702, n) = 9103
Al doilea factor al lui n este n/9103 = 9871.
Lema 3. Procedeul descris este un algoritm.
Se poate arata ca acest algoritm se termina cu
succes cu probabilitate 1/2.
38
Atacul lui Wiener
Atac asupra sistemului de criptare RSAn care
exponentul de decriptare a este mic.
Condit ii de atac
3a < n
1/4
, q < p < 2q.
Din a b 1 (mod (n)) rezulta ca exista un
ntreg t astfel ca
a b t (n) = 1.
Sau
b
(n)
t
a
=
1
a (n)
Folosind (n) = (p 1)(q 1) si n = pq > q
2
se poate ajunge la evaluarea
b
n
t
a
<
1
a n
1/4
<
1
3 a
2
.
39
Rezulta ca valoarea fract iei t/a este foarte
apropiata de valoarea lui b/n.
Din teoria fract iilor continue se stie ca orice
aproximare sucient de buna a lui b/n este una
din convergent ele dezvoltarii n fract ie
continua a lui b/n.
Denit ia 7. O fract ie continua (nita) este un
m-tuplu [q
1
, q
2
, . . . , q
m
] de numere naturale care
reprezinta notarea expresiei
q
1
+
1
q
2
+
1
q
3
+...+
1
q
m
Fie a, b doua numerentregi pozitive primentre
ele si (q
1
, q
2
, . . . , q
m
) secvent a caturilor obt inute
prin aplicarea algoritmului lui Euclid.
Atunci
a
b
= [q
1
, q
2
, . . . , q
m
].
[q
1
, q
2
, . . . , q
m
] este dezvoltarea n fract ie con-
tinua a lui a/b.
40
Acum, pentru ecare j (1 j m) denim
C
j
= [q
1
, q
2
, . . . , q
j
] ca ind a j-a convergent a
a lui [q
1
, q
2
, . . . , q
m
].
Fiecare C
j
se poate scrie ca un numar rat ional
c
j
/d
j
, unde valorile c
j
si d
j
se denesc recursiv:
c
j
=
1 daca j = 0
q
1
daca j = 1
q
j
c
j1
+c
j2
daca j 2
d
j
=
0 daca j = 0
1 daca j = 1
q
j
d
j1
+d
j2
daca j 2
41
Exemplul 9. Sa dezvoltamn fract ie continua
34/99.
Folosind algoritmul lui Euclid se obt ine
[0, 2, 1, 10, 3],
care este notarea fract iei
34
99
= 0 +
1
2 +
1
1+
1
10+
1
3
Convergent ele sunt:
[0] = 0
[0, 2] = 1/2
[0, 2, 1] = 1/3
[0, 2, 1, 10] = 11/32
[0, 2, 1, 10, 3] = 34/99
42
Teorema 4. Daca
cmmdc(a, b) = cmmdc(c, d) = 1 si
a
b
c
d
<
1
2d
2
atunci c/d este una din convergent ele dezvolta-
rii n fract ie continua a lui a/b.
n].
Pentru n < 10
12
tehnica este destul de e-
cienta.
50
Metoda p 1
Enunt ata de Pollard n 1974.
Sunt folosite trei variabile de intrare: numarul
n (impar) care trebuie descompus, o margine
B si un numar oarecare g [2, n 1].
Intrare: n, B, g.
1. a g
2. for j = 2 to B do a a
j
mod n
3. d cmmdc(a 1, n)
4. if d > 1 then d este factor al lui n, Stop
else nu s-a gasit divizor al lui n
51
Exemplul 12. Fie n = 15770708441.
Aplicand metoda p 1 cu B = 180, se gaseste
a = 11620221425, iar d = 135979.
Se ajunge la descompunerea nala
15770708441 = 135979 115979.
Descompunerea a reusit deoarece 135978 are
numai factori primi mici:
135978 = 2 3 131 173.
Luand deci B 173 se obt ine 135978|B!.
52
Remarca 1. Condit ia ca metoda sa funct ione-
ze este ca divizorii primi la puterile la care
apar n descompunerea lui p 1 sa e mai
mici decat b.
Daca s-ar solicita ca doar divizorii primi sa
verice aceasta condit ie, rezultatul ar fals.
Astfel, sa consideram p = 17 si B = 3.
Atunci p 1 = 2
4
. Vom avea 2 < 3 dar 16 nu
este un divixor al lui 3 !!
Pentru valori relativ mici ale lui B algoritmul
este de complexitate (O(BlogB(log n)
3
)).
Metoda p 1 nu este mai rapida decat ciurul
lui Eratostene.
Pentru a rezista la acest atac, se recomanda
folosirea numerelor prime tari.
53
Denit ia 8. Se numeste numar prim tare un
numar prim p care verica condit iile:
1. p 1 are un divizor prim mare r;
2. p +1 are un divizor prim mare;
3. r 1 are un divizor prim mare.
54
Algoritmul lui Gordon de generare a numerelor
prime tari:
1. Se genereaza aleator doua numere prime
mari s, t distincte.
2. Se alege un numar aleator i
0
.
Se aa primul numar prim de forma
2 i t +1, unde i i
0
, i
0
+1, . . ..
Fie r = 2 i t +1 acest numar prim.
3. p
0
2 (s
r2
(mod r)) s 1;
4. Se alege un numar aleator j
0
.
Se aa primul numar prim de forma
p
0
+2 j r s, unde j j
0
, j
0
+1, . . ..
Fie p = p
0
+2 j r s acest numar prim.
5. return(p)
Numarul p generat de algoritmul Gordon este
un numar prim tare.
55
Generarea unui numar prim tare se realizeaza
n trei pasi:
- Cu un generator de numere aleatoare, se
genereaza numerele s, t, i
0
, j
0
;
- Se testeaza daca s si t sunt numere prime,
folosind algoritmul Miller - Rabin;
-
In caz armativ, se aplica algoritmul lui
Gordon, bazat de asemenea pe algoritmul
Miller - Rabin.
De multe ori, pentru criptarea RSA este
sucient sa se foloseasca numere prime mari
p cu proprietatea ca
p 1
2
este de asemenea
numar prim.
56
Exemplul 13.
(2 3 7 13)
2
(mod n).
Reducand cont inutul parantezelor modulo n,
se obt ine
9503435785
2
546
2
(mod n).
Atunci
cmmdc(9503435785 546, 15770708441) = 115759
da 115759 drept divizor al lui n.
59
Fie B= {p
1
, p
2
, . . . , p
B
}.
Consideram un numar C > B si presupunem ca
am gasit C relat ii de forma
x
2
j
p
1j
1
p
2j
2
. . . p
Bj
B
1 j C
Pentru ecare j se considera vectorul binar
j
= (
1j
, . . . ,
Bj
) Z
B
2
.
Daca se poate determina o submult ime a
acestor vectori a caror suma modulo 2 sa e
(0, 0, . . . , 0), atunci patratul produsului elemen-
telor x
j
corespunzatoare va avea ecare divizor
n B de un numar par de ori.
60
Exemplul 15. Revenind la Exemplul anterior,
cei trei vectori care se construiesc sunt
1
= (0, 1, 0, 1, 0, 0),
2
= (1, 0, 0, 1, 0, 1),
3
= (1, 1, 0, 0, 0, 1).
Se verica imediat ca
1
+
2
+
3
(0, 0, 0, 0, 0, 0) (mod 2)
61
Atac bazat pe proprietat i multiplicative
ale criptarii RSA
Fie m
1
, m
2
doua texte clare si c
1
respectiv c
2
textele criptate corespunzatoare.
Vom avea
(m
1
m
2
)
b
m
b
1
m
b
2
c
1
c
2
(mod n)
Atac cu text clar ales:
Oscar vrea sa decripteze c = m
b
(mod n),
mesaj trimis de Bob lui Alice.
El alege un numar aleator x Z
n
, calculeaza
c
1
= c x
b
(mod n) si solicita decriptarea lui.
Aa m
1
= c
a
1
(mod n).
Deoarece
m
1
c
a
1
c
a
(x
b
)
a
mx (mod n)
Oscar va aa imediat m = m
1
x
1
(mod n).
62
Atac bazat pe un exponent mic de criptare
B
2
4
+y
B
2
65
Exista patru texte clare distincte care se pot
cripta n acelasi text.
Fie una din cele patru radacini patrate mod
n ale unitat ii, si x Z
n
.
Efectuam calculele (n Z
n
):
e
K
x +
B
2
B
2
=
2
x +
B
2
B
2
2
= x
2
+Bx = e
K
(x)
(mpart irea la 2 si 4 s-a facut prin nmult irea
n Z
n
cu 2
1
respectiv 4
1
).
Cele patru texte clare care se cifreaza n e
K
(x)
sunt
x, x B, (x +B/2) B/2,
(x +B/2) B/2.
C
(p+1)/4
2
C
(p+1)/2
C
(p1)/2
C C
Cele patru radacini patratice sumt
C
(p+1)/4
(mod p), C
(q+1)/4
(mod q).
Pe baza teoremei chineze a resturilor, ele dau
cele patru radacini patrate ale lui C.
In nal se aa x = x
1
B/2, rezultat care da
formula de decriptare pentru sistemul Rabin.
Remarca 2. Nu se cunoaste un algoritm poli-
nomial determinist pentru aarea radacinilor
patratice mod p pentru p 1 (mod 4); n acest
caz exista doar algoritmi Las Vegas.
68
Exemplul 16. Fie n = 77 = 7 11 si B = 9.
Funct ia de criptare este
e
K
(x) = x
2
+9x (mod 77)
iar cea de decriptare
d
K
(y) =
1 +y 43 (mod 77).
Bob vrea sa decripteze textul y = 22.
El va trebui sa determine radacinile patrate ale
lui 23 modulo 7 si 11:
23
(7+1)/4
2
2
4 (mod 7)
23
(11+1)/4
1
3
1 (mod 11).
Folosind teorema chineza a resturilor, se obt in
valorile 10, 32.
Textele clare (calculate mod 77):
10 43 = 44, 67 43 = 24,
32 43 = 66, 45 43 = 2.
Toate se cripteaza n 22.
69
Securitatea sistemului de criptare Rabin.
Sa presupunem ca exista un algoritm de de-
criptare A; acesta poate utilizat ntr-un al-
goritm Las Vegas care descompune modulul n
cu probabilitate 1/2:
1. Se alege aleator r Z
n
;
2. y r
2
B
2
/4 mod n;
3. x A(y);
4. x
1
x +B/2;
5. if x
1
r (mod n) then Stop (esec)
else cmmdc(x
1
+r, n) = p, Stop
Deoarece y = e
K
r
B
2
, x se decripteaza la pasul 3
sub forma r B/2.
La pasul 5 avem x
2
1
r
2
(mod n); deci x
1
r (mod n)
sau x
1
r (mod n), unde este o radacina netriviala
modulo n a unitat ii.
a
(mod p).
Acest ntreg a daca exista este unic
si se noteaza log
.
2
Exemplul 1. Fie p = 11 si = 6.
Toate elementele din Z
11
pot exprimate ca
puteri ale lui :
a 0 1 2 3 4 5 6 7 8 9
6
a
(mod 11) 1 6 3 7 9 10 5 8 4 2
Rezulta imediat tabelul logaritmilor n baza 6:
1 2 3 4 5 6 7 8 9 10
log
6
0 9 2 8 6 1 3 7 4 5
Pentru = 3 nsa nu vom avea totdeauna
solut ie.
Deoarece
a 0 1 2 3 4 5 6 7 8 9
3
a
(mod 11) 1 3 9 5 4 1 3 9 5 4
valorile |2, 6, 7, 8, 10 nu pot exprimate
ca logaritmi n baza 3.
Altfel spus, ecuat ia log
3
x = nu are solut ie n
Z
11
pentru aceste valori ale lui .
3
Daca se face o alegere convenabila a lui p, PLD
este A1 - completa.
Pentru sigurant a, p se alege de minim 512 bit i,
iar p 1 are cel put in un divizor prim mare.
Pentru un astfel de modul p, spunem ca
problema logaritmului discret este dicilan Z
p
.
Desi este foarte dicil de calculat un logaritm
discret, operat ia inversa de exponent iere
este foarte simpla.
4
Sistemul de criptare El Gamal:
Fie p numar prim pentru care PLD este dicila
n Z
p
, si e Z
p
primitiv.
Denim 1= Z
p
, (= Z
p
Z
p
si
|= |(p, , a, ) [
a
(mod p).
Valorile p, , sunt publice, iar a este secret.
Pentru K = (p, , a, ) si k Z
p1
aleator
(secret) se deneste
e
K
(x, k) = (y
1
, y
2
)
unde y
1
=
k
(mod p), y
2
= x
k
(mod p).
Pentru y
1
, y
2
Z
p
se deneste
d
K
(y
1
, y
2
) = y
2
(y
a
1
)
1
(mod p)
5
Vericarea:
y
2
(y
a
1
)
1
x
k
(
ka
)
1
x
k
(
k
)
1
x (mod p)
Sistemul este nedeterminist: criptarea depinde
de x si de o valoare aleatoare aleasa de Alice.
Exista deci mai multe texte criptate corespun-
zatoare unui anumit text clar.
6
Exemplul 2. Fie p = 2579, = 2, a = 765.
Prin calcul se obt ine
= 2
765
(mod 2579) = 949.
Sa presupunem ca Alice vrea sa trimita mesajul
x = 1299.
Ea alege aleator k = 853 si calculeaza
y
1
= 2
853
= 435, apoi
y
2
= 1299 949
853
= 2396
(toate calculele se fac modulo 2579).
Cand Bob primeste mesajul criptat
y = (435, 2396),
el va determina
x = 2396 (435
765
)
1
= 1299 (mod 2579).
7
Remarca 1.
1. Dezavantaj al sistemului El Gamal:
se dubleaza lungimea textului criptat (compa-
rativ cu lungimea textului clar).
2. Daca (y
1
, y
2
), (z
1
, z
2
) sunt textele criptate
ale mesajelor m
1
, m
2
atunci (y
1
z
1
, y
2
z
2
) este un
text criptat pentru m
1
m
2
.
Similar poate dedusa o criptare pentru 2m
1
(sau 2m
2
).
Acest lucru face sistemul El Gamal permeabil
la un atac cu text clar ales.
3. Pentru criptarea a doua texte diferite tre-
buie folosite valori diferite ale parametrului k.
Sa presupunem ca textele m
1
, m
2
au fost crip-
taten (y
1
, y
2
) respectiv (z
1
, z
2
) folosind acelasi
k.
Atunci y
2
/z
2
= m
1
/m
2
si cunoasterea unuia din
mesaje n determina imediat pe celalalt.
8
Calculul logaritmului discret
Fie p numar prim si o radacina primitiva de
ordinul p 1 a unitat ii.
PLD se poate reformula astfel:
Fiind dat un Z
p
, sa se determine expo-
nentul a Z
p1
astfel ca
a
(mod p).
Problema se poate rezolva printr-o cautare di-
recta (se calculeaza puterile lui ) n timp O(p)
si folosind C(1) memorie.
Pe de-alta parte, daca se calculeaza anterior
ntr-o tabela toate valorile (a,
a
mod p), aa-
rea valorii cautate se poate face n C(1), dar
cu un spat iu de complexitate C(p).
Tot i algoritmii construit i pentru calculul loga-
ritmului discret stabilesc un compromis spat iu
- timp.
9
Algoritmul Shanks
Fie m =
p 1
.
1. Se construieste lista
L
1
= |(j,
mj
(mod p)) [ 0 j m1;
2. Se construieste lista
L
2
= |(i,
i
(mod p)) [ 0 i m1;
3. Se determina perechile
(j, y) L
1
, (i, y) L
2
.
4. Se deneste
log
= m j +i (mod (p 1))
10
Prin alegerea perechilor (j, y) L
1
, (i, y) L
2
vom avea
mj
= y =
i
, deci
mj+i
= .
Invers, pentru orice putem scrie
log
= m j +i
cu 0 i, j m1.
Deci cautarea de la pasul 3 se termina tot-
deauna cu succes.
Implementarea algoritmului Shanks se poate
face n timp C(m) si spat iu O(m).
11
Exemplul 3. Daca p = 809, sa aam log
3
525.
Avem deci
= 3, = 525, m = ]
808| = 29,
iar
29
mod 809 = 99.
Lista L
1
a perechilor (j, 99
j
(mod 809)):
(0, 1) (1, 99) (2, 93) (3, 308) (4, 559)
(5, 329) (6, 211) (7, 664) (8, 207) (9, 268)
(10, 644) (11, 654) (12, 26) (13, 147) (14, 800)
(15, 727) (16, 781) (17, 464) (18, 632) (19, 275)
(20, 528) (21, 496) (22, 564) (23, 15) (24, 676)
(25, 586) (26, 575) (27, 295) (28, 81)
Lista L
2
a cuplurilor (i, 525 (3
i
)
1
(mod 809)):
(0, 525) (1, 175) (2, 328) (3, 379) (4, 396)
(5, 132) (6, 44) (7, 554) (8, 724) (9, 511)
(10, 440) (11, 686) (12, 768) (13, 256) (14, 355)
(15, 388) (16, 399) (17, 133) (18, 314) (19, 644)
(20, 754) (21, 521) (22, 713) (23, 777) (24, 259)
(25, 356) (26, 658) (27, 489) (28, 163)
Parcurgand cele doua liste se gaseste
(10, 644) L
1
, (19, 644) L
2
.
Deci log
3
525 = 29 10 +19 = 309.
Se verica usor ca 3
309
525 (mod 809).
12
Algoritmul Pohlig - Hellman
Un rezultat complementar (matematic):
Lema 1. Fie x Z
p
un element primitiv.
Atunci
x
m
x
n
(mod p) m n (mod (p 1))
Pentru sistemul de criptare El Gamal:
e descompunerea n factori primi
p 1 =
k
i=1
q
c
i
i
.
Daca s-ar putea calcula a (mod q
c
i
i
) pentru tot i
i = 1, . . . , k, atunci folosind Teorema chineza
a resturilor s-ar putea determina
a mod (p 1).
13
Fie q numar prim astfel ca p 1 0 (mod q
c
)
si p 1 , 0 (mod q
c+1
).
Sa aratam cum se poate calcula atunci
x a (mod q
c
) pentru orice x, (0 x q
c
1).
Sa descompunem ntai x n baza q folosind
egalitatea
x =
c1
i=0
a
i
q
i
(0 a
i
q 1, 0 i c 1)
Atunci, se poate scrie a = x + q
c
s pentru un
anumit numar ntreg pozitiv s.
14
La primul pas trebuie calculat a
0
.
Observat ie:
(p1)/q
(p1)a
0
/q
(mod p).
Se determina
(p1)/q
(mod p).
Daca
(p1)/q
1 (mod p), atunci a
0
= 0.
Altfel se calculeaza n Z
p
=
(p1)/q
,
2
, . . .
pana se obt ine un numar ntreg pozitiv i pentru
care
i
(p1)/q
.
Atunci a
0
= i.
Daca c = 1, algoritmul se termina;
altfel (c > 1), se cauta valoarea lui a
1
.
15
Pentru aceasta se deneste
1
=
a
0
si se noteaza x
1
= log
1
(mod q
c
).
Deoarece (evident) x
1
=
c1
i=1
a
i
q
i
, se va ajunge
la relat ia
(p1)/q
2
1
(p1)a
1
/q
(mod p).
Se calculeaza atunci
(p1)/q
2
1
(mod p) si se
cauta i astfel ca
i
(p1)/q
2
1
(mod p).
Se ia a
1
= i.
Daca c = 2, s-a terminat; n caz contrar, se
mai efectueaza c 2 pasi pentru determinarea
coecient ilor a
2
, . . . , a
c1
.
16
Formal, algoritmul Pohlig - Hellman este:
1. Se calculeaza
i
=
(p1)i/q
(mod p), 0 i q 1;
2.
0
;
3. for j = 0 to c 1 do
3.1
(p1)/q
j+1
j
(mod p);
3.2. Se cauta i astfel ca =
i
;
3.3. a
j
i;
3.4.
j+1
j
a
j
q
j
mod p.
Algoritmul calculeaza a
0
, a
1
, . . . , a
c1
unde log
(mod q
c
) =
c1
i=0
a
i
q
i
.
17
Exemplul 4. Fie p = 29.
Avem n = p 1 = 28 = 2
2
7
1
.
Alegem = 2, = 18 si vrem sa determinam
a = log
2
18.
Pentru aceasta se va calcula
a (mod 4) si a (mod 7).
Sa ncepem cu q = 2, c = 2.
Avem (calcule modulo 29):
0
= 1,
1
=
28/2
= 2
14
= 28, deci
=
28/2
= 18
14
= 28; rezulta a
0
= 1.
1
=
0
1
= 9,
28/4
1
= 9
7
= 28.
Cum
1
= 28, rezulta a
1
= 1.
Avem deci a 3 (mod 4).
18
Fie acum q = 7, c = 1.
Vom avea (modulo 29):
28/7
= 18
4
= 25,
1
=
28/7
= 2
4
= 16,
apoi
2
= 24,
3
= 7,
4
= 25,
deci a
0
= 4 si a 4 (mod 7).
Se obt ine sistemul
a 3 (mod 4), a 4 (mod 7)
de unde folosind teorema chineza a resturilor
a 11 (mod 28).
Deci, log
2
18 = 11 n Z
29
.
19
Algoritmul Pollard Rho
Fie p prim si Z
p
un element de ordin n
(n < p).
Consideram G
Z
p
subgrupul ciclic generat
de .
Ne punem problema calcularii lui log
, unde
G
este arbitrar.
Fie Z
p
= S
1
S
2
S
3
o partit ie a lui Z
p
n trei
mult imi de cardinale aproximativ egale;
denim funct ia
f : G
Z
n
Z
n
G
Z
n
Z
n
prin
f(x, a, b) =
b
.
Fie (1, 0, 0) tripletul init ial.
(x
i
, a
i
, b
i
) =
(1, 0, 0) daca i = 0
f(x
i1
, a
i1
, b
i1
) daca i 1
In acel moment,
a
2i
b
2i
=
a
i
b
i
.
Notand c = log
a
2i
+cb
2i
=
a
i
+cb
i
.
Cum are ordinul n, rezulta
a
2i
+cb
2i
a
i
+cb
i
(mod n)
sau
c(b
2i
b
i
) a
i
a
2i
(mod n).
Daca cmmdc(b
2i
b
i
, n) = 1, atunci se poate
obt ine c:
c = (a
i
a
2i
) (b
2i
b
i
)
1
(mod n)
21
Exemplul 5. Fie p = 809 si = 89; ordinul lui
n Z
809
este n = 101.
Evident = 618 G
89
. Vom calcula log
89
618.
Sa presupunem ca alegem partit ia
S
1
= |x [ x Z
809
, x 1 (mod 3)
S
2
= |x [ x Z
809
, x 0 (mod 3)
S
3
= |x [ x Z
809
, x 2 (mod 3)
Pentru i 1 se obt in tripletele:
i (x
i
, a
i
, b
i
) (x
2i
, a
2i
, b
2i
)
1 (618, 0, 1) (76, 0, 2)
2 (76, 0, 2) (113, 0, 4)
3 (46, 0, 3) (488, 1, 5)
4 (113, 0, 4) (605, 4, 10)
5 (349, 1, 4) (422, 5, 11)
6 (488, 1, 5) (683, 7, 11)
7 (555, 2, 5) (451, 8, 12)
8 (605, 4, 10) (344, 9, 13)
9 (451, 5, 10) (112, 11, 13)
10 (422, 5, 11) (422, 11, 15)
Deci x
10
= x
20
= 422.
Se poate calcula atunci (n Z
809
):
log
89
618 = (115) (1115)
1
(mod 101) = 6 25 (mod 101) = 49
22
Algoritm Pollard Rho(Z
p
, n, , )
1 Se deneste partit ia Z
p
= S
1
S
2
S
3
;
2. (x, a, b) f(1, 0, 0),
(x
1
, a
1
, b
1
) f(x, a, b)
3. while x ,= x
1
do
3.1. (x, a, b) f(x, a, b);
3.2. (x
1
, a
1
, b
1
) f(x
1
, a
1
, b
1
),
(x
1
, a
1
, b
1
) f(x
1
, a
1
, b
1
);
4. if cmmdc(b
1
b, n) > 1 then return(Esec)
else return((aa
1
)(b
1
b)
1
(mod n))
procedure f(x, a, b)
1. if x S
1
then f ( x, a, b +1);
2. if x S
2
then f (x x, 2 a, 2 b));
3. if x S
3
then f ( x, a +1, b);
4. return(f).
end procedure
(toate calculele se fac modulo n).
23
Metoda de calcul a indicelui
Seamana cu unul din cei mai buni algoritmi de
descompunere n factori.
Se foloseste o baza de divizori B compusa din
B numere prime mici.
I: Se construiesc C = B + 10 congruent e mo-
dulo p de forma
x
j
p
a
ij
1
p
a
2j
2
. . . p
a
Bj
B
(mod p), (1 j C).
Cu aceste C ecuat ii de necunoscute log
p
i
(1 i B) se ncearca aarea unei solut ii
unice modulo (p 1).
cu un algoritm de tip
Las Vegas.
Se alege aleator un numar ntreg s Z
p1
si se
determina =
s
(mod p).
Se ncearca apoi descompunerea lui n baza
B.
Daca acest lucru este posibil, se obt ine o relat ie
de forma
s
p
c
1
1
p
c
2
2
. . . p
c
B
B
(mod p)
care poate transformata n
log
+s c
1
log
p
1
+. . .+c
B
log
p
B
(mod (p1)).
Prin evaluarea membrului drept se poate de-
termina log
.
25
Exemplul 6. Fie p = 10007 si = 5 (primitiv).
Consideram baza de divizori B= |2, 3, 5, 7.
Cum log
5
5 = 1, trebuie determinat i doar trei
logaritmi din baza.
Trei numere aleatoare norocoase pot
4063, 5136, 9865.
Pentru x = 4063 calculam
5
4063
(mod 10007) = 42 = 2 3 7,
care conduce la congruent a
log
5
2 +log
5
3 +log
5
7 4063 (mod 10006).
peste Z
p
.
Evident 1 i ]log
2
(p 1)|.
Lema 2. L
1
() poate calculat printr-un al-
goritm de complexitate polinomiala.
Fie funct ia f : Z
p
Z
p
denita
f(x) = x
2
(mod p).
Notam RP(p) mult imea resturilor patratice
modulo p:
RP(p) = |x [ y Z
p
, x y
2
(mod p).
Avem card(RP(p)) = (p 1)/2 (jumatate din
elementele lui Z
p
sunt resturi patratice).
28
Fie Z
p
primitiv. Deci
i
RP(p) pentru i
par.
Cum (p 1)/2 astfel de puteri sunt distincte,
rezulta
RP(p) =
2i
0 i
p 3
2
.
Deci este rest patratic daca si numai daca
log
p1
2
1 (mod p)
fapt care poate testat cu un algoritm de com-
plexitate polinomiala.
Deci se poate da o formula pentru calculul lui
L
1
():
L
1
() =
0 daca
(p1)/2
1 (mod p)
1 altfel
29
Lema 3. Daca p 1 = 2
s
(2t +1), atunci
1. Calculul lui L
i
() pentru 1 i s este usor.
2. Orice algoritm (sau oracol) care poate cal-
cula L
s+1
() permite rezolvarea problemei
logaritmului discret n Z
p
.
Lema 4. Daca p 3 (mod 4) si ,= 0, atunci
L
1
(p ) = 1 L
1
().
Fie acum =
a
pentru un exponent par a,
necunoscut.
Atunci
(p+1)/4
a/2
(mod p)
Cum L
2
() = L
1
(
a/2
), valoarea L
2
() poate
determina care din cele doua variante (cu +
sau ) este corecta.
30
Acest lucru este folosit de urmatorul algoritm
care da valoarea logaritmului discret log
j0
x
j
2
j
.
31
Exemplul 7. Fie p = 19, = 2, = 6.
Deoarece numerele sunt foarte mici, se pot de-
termina usor valorile pentru L
1
si L
2
:
x L
1
(x) L
2
(x) x L
1
(x) L
2
(x) x L
1
(x) L
2
(x)
1 0 0 7 0 1 13 1 0
2 1 0 8 1 1 14 1 1
3 1 0 9 0 0 15 1 1
4 0 1 10 1 0 16 0 0
5 0 0 11 0 0 17 0 1
6 0 1 12 1 1 18 1 0
Pe baza acestor informat ii se obt ine:
x
0
0, 6, i 1;
x
1
L
2
(6) = 1, 5,
L
1
(5) = 0 ,= x
1
, 14, 7, i 2;
x
2
L
2
(7) = 1, 11,
L
1
(11) = 0 ,= x
2
, 8, 4, i 3;
x
3
L
2
(4) = 1, 17,
L
1
(17) = 0 ,= x
3
, 2, 1, i 4.
return(1, 1, 1, 0).
Deci log
2
6 = 1110
2
= 14.
32
Generalizarea sistemului de criptare
El Gamal
Sistemul El Gamal se poate construi pentru
orice grup (n loc de Z
n
)n care problema loga-
ritmului (denita corespunzator) este dicila.
Fie (G, ) un grup nit. Problema logaritmului
discret se deneste n G astfel:
Fie G si H = |
i
[ i 0 subgrupul gene-
rat de .
Daca H, sa se determine un a (unic)
(0 a card(H) 1) cu
a
= , unde
a
= . . .
. .. .
a ori
33
Denirea sistemului de criptare El Gamal n
subgrupul H n loc de Z
n
:
Fie (G, ) un grup si G pentru care PLDn
H = |
i
[ i 0 este dicila.
Fie 1= G, (= GG, |= |(G, , a, ) [ =
a
.
Valorile , sunt publice iar a este secret.
Pentru K = (G, , a, ) si un k Z
card(H)
alea-
tor (secret), se deneste
e
K
(x, k) = (y
1
, y
2
) unde y
1
=
k
, y
2
= x
k
.
Pentru y = (y
1
, y
2
), decriptarea este
d
K
(y) = y
2
(y
a
1
)
1
.
34
Deoarece H este subgrup ciclic, orice versiune
a problemei este echivalenta cu PLD ntr-un
grup ciclic.
=
1
(mod n)
35
Reprezintarea PLD n grupul multiplicativ Z
p
cu p prim.
Acesta este ciclic de ordin p 1; deci izomorf
cu grupul aditiv Z
p1
.
Deoarece PLD se poate rezolva usor ntr-un
grup aditiv, putem rezolva aceasta problema
n Z
p
reducand-o la Z
p1
?
Stim ca exista un izomorsm : Z
p
Z
p1
,
deci pentru care
(xy mod p) = ((x) +(y)) (mod (p 1))
In particular
(
a
mod p) = a() (mod (p 1)),
adica
a
(mod p) a(a) () (mod (p1)).
Acum, determinarea lui a se realizeaza cu
log
= ()(())
1
(mod (p 1))
36
Deci, daca se gaseste o metoda ecace pentru
calculul izomorsmului , se obt ine un algoritm
ecace pentru calculul logaritmului discret n
Z
p
.
Nu se cunoaste nsa nici o metoda generala
de construct ie a lui pentru un numar prim p
oarecare.
Desi se stie ca cele doua grupuri sunt izomorfe,
nu existanca un algoritm ecient pentru cons-
truct ia explicita a unui izomorsm.
Aceasta metoda se poate aplica problemei
logaritmului discret ntr-un grup nit arbitrar.
Implementarile au fost realizate n general
pentru Z
p
, GF(2
p
) (unde PLD este dicila) sau
curbe eliptice.
37
Sisteme de criptare
bazate pe curbe eliptice
1
d
2
= a
2
1
+4a
2
,
d
4
= 2a
4
+a
1
a
3
,
d
6
= a
2
3
+4a
6
,
d
8
= a
2
1
a
6
+4a
2
a
6
a
1
a
3
a
4
+a
2
a
2
3
a
4
.
3
Fie L o extensie a lui K; mult imea punctelor
curbei E pe L este
E(L) = |(x, y) LL [ y
2
+a
1
xy+a
3
yx
3
+a
2
x
2
+a
4
x+a
6
= 0|C
unde C este punctul de la innit.
Elementele lui E(L) se numesc punctele L -
rat ionale ale curbei E.
y
2
y
1
x
2
x
1
daca P ,= Q
3x
2
1
+a
2y
1
daca P = Q
Se mai deneste P +C= C+P = P, P E.
Elementul neutru este C.
7
Reprezentare geometrica:
Fie P = (x
1
, y
1
) si Q = (x
2
, y
2
) doua puncte
distincte pe curba eliptica E.
Suma R = P + Q se deneste: linia PQ taie
curba ntr-un al treilea punct.
R este simetricul acestui punct fat a de axa xx
t
(gura (a)).
P=(x
1
,y
1
)
Q=(x
2
,y
2
)
R=(x
3
,y
3
)
P=(x
1
,y
1
)
R=(x
3
,y
3
)
x
y
y
x
(a) Adunarea P +Q = R(b) Dublarea: P +P = R
8
Exemplul 1. Fie E : y
2
= x
3
+ x + 5 peste
Z
19
.
Calculam punctele lui E:
x Z
11
se calculeaza z = x
3
+x+5 (mod 19);
apoi se testeaza daca z este rest patratic.
p card(E(Z
p
)) p +1 +2
p
Valoarea t = 2
p
Z
p
, (= E Z
p
Z
p
si
|= |(E, , a, )[ E, a Z
p
, = a.
Valorile , sunt publice, iar a este secret.
Pentru K = (E, , a, ), k Z
card(H)
aleator
(secret) si x = (x
1
, x
2
) 1:
e
K
(x, k) = (y
0
, y
1
, y
2
),
unde y
0
= k , (c
1
, c
2
) = k ,
y
i
= c
i
x
i
(mod p), i = 1, 2.
Pentru y = (y
0
, y
1
, y
2
):
d
K
(y) = (y
1
c
1
1
(mod p), y
2
c
1
2
(mod p)),
unde a y
0
= (c
1
, c
2
).
16
Exemplul 3. Fie y
2
= x
3
+x +5 peste Z
19
.
Criptarea Menezes - Vanstone cripteaza
1818 = 324 texte clare (fat a de numai 15 n
sistemul El Gamal adaptat).
Sa luam = (0, 9) si a = 7.
Deci = 7 = (12, 15).
Textul clar x = (x
1
, x
2
) = (5, 11) criptat cu
k = 4:
y
0
= k = 4 (2, 7) = (4, 4)sik = 4(12, 15) = (1, 8)
deci c
1
= 1, c
2
= 8.
Apoi se calculeaza (modulo 19):
y
1
= c
1
x
1
= 1 5 = 5
y
2
= c
2
x
2
= 8 11 = 12.
Alice trimite deci lui Bob mesajul criptat
y = (y
0
, y
1
, y
2
) = ((4, 4), 5, 12).
La recept ie, se calculeaza
(c
1
, c
2
) = a y
0
= 7 (4, 4) = 7 4 = (1, 8),
apoi
x = (y
1
c
1
1
(mod 19), y
2
c
1
2
(mod 19)) =
(5, 11).
17
Problema logaritmului discret
pe curbe eliptice
Principalele sisteme de criptare pe curbe elip-
tice folosesc problema logaritmului discret.
j=0
z
j
p
j
unde z
j
[0, p 1].
Pentru determinarea lui z
0
:
Se calculeaza P
0
= (n/p)P, Q
0
= (n/p)Q;
Deoarece ordinul lui P
0
este p, avem
Q
0
=
n
p
Q = k
n
p
P
= kP
0
z
0
P
0
(mod p)
Deci z
0
= log
P
0
Q
0
poate obt inut rezolvand o
instant a ECDLP n grupul ciclic < P >.
21
La pasul urmator se determina
Q
1
=
n
p
2
(Qz
0
P):
Q
1
=
n
p
2
(Qz
0
P) =
n
p
2
(k z
0
) P =
= (k z
0
)
n
p
2
P
= (z
0
+z
1
p z
0
)
n
p
2
P
=
= z
1
n
p
P
z
1
P
0
(mod p)
Valoarea z
1
= log
P
0
Q
1
se poate obt ine deci
rezolvand o instant a ECDLP n < P >.
In general, daca z
0
, z
1
, . . . , z
t1
au fost calcu-
late, atunci z
t
= log
P
0
Q
t
, unde
Q
t
=
n
p
t+1
Qz
0
P z
1
pP z
2
p
2
P . . . z
t1
p
t1
P
.
22
Atacul BSGS (Baby-Step/Giant-Step)
Consecint a a atacului Pohlig Hellman: se cauta
rezolvarea problemei logaritmului discret doar
n grupuri ciclice de ordin prim.
Atacul BSGS este atacul Shanks adaptat pen-
tru curbe eliptice.
G =< P > un subgrup ciclic de ordin p (p prim)
al unui grup E(Z
q
) pe o curba eliptica.
Fiind dat Q G, problema cere aarea unei
valori k (1 k < p) astfel ncat Q = kP.
23
Atacul BSGS:
Fie reprezentarea
k = k
0
+k
1
]
p|
unde k
0
, k
1
[0, ]
p|).
1. Se calculeaza lista
A = |(P
i
, i) [ P
i
= iP, 0 i < ]
p|
2. Fie R = ]
p|
Ambele liste sunt ordonate crescator dupa
prima componenta.
3. Se cauta (P
i
, i) A, (Q
j
, j) B astfel ca
P
i
= Q
j
.
Daca asa ceva exista, atunci k
0
= i, k
1
= j.
Justicare: iP = Qj]
p|P, deci
(i +j]
p|)P = Q.
24
Complexitatea spat iu si complexitatea timp a
unui atac BSGS sunt ambele egale cu C(]
p|).
Shoup arata ca atacul BSGS este cea mai rapi-
da metoda pentru rezolvarea problemei loga-
ritmului discret ntr-un grup cutie neagra
(un grup cutie neagra este un grupn care nu
se foloseste nici o structura pentru reprezenta-
rea elementelor sale).
25
Atacul Pollard Rho
Se cauta doua perechi distincte (c
1
, d
1
),
(c
2
, d
2
) de numere ntregi din Z
p
astfel ncat
c
1
P +d
1
Q = c
2
P +d
2
Q.
Rezulta (c
1
c
2
)P = (d
2
d
1
)Q = (d
2
d
1
)kP,
deci
(c
1
c
2
) (d
2
d
1
)k (mod p),
si valoarea k = log
P
Q se obt ine prin
k = (c
1
c
2
)(d
2
d
1
)
1
(mod p)
Se genereaza aleator doua valori c, d Z
p
si se
ret ine ntr-o tabela tripletul (c, d, cP +dQ).
Procedeul se repeta pana se obt ine a doua oara
un punct cP +dQ.
Conform paradoxului nasterilor, o astfel de
coliziune se obt ine dupa aproximativ
p/2 1, 2533
p
iterat ii.
Neajunsul atacului: necesitatea de stocare a
p/2 triplete.
26
Algoritmul Pollard Rho gaseste perechile
(c
1
, d
1
), (c
2
, d
2
)
cam n acelasi timp ca si metoda de mai sus,
dar folosind o cantitate neglijabila de memorie.
Ideea este de a deni o funct ie recursiva
f :< P >< P >
astfel ncat, X < P > si c, d Z
p
cu
X = cP +dQ, sunt usor de calculat X
t
= f(X)
si c
t
, d
t
Z
p
cu X
t
= c
t
P +d
t
Q.
27
Algoritmul Pollard Rho:
Intrare: P E(Z
q
), ord(P) = p prim, Q < P >.
Iesire: k = log
P
Q.
1. Selecteaza numarul L al ramicat iilor.
2. Selecteaza o funct ie de partit ie
H :< P > |1, 2, . . . , L
cu card(H
1
(i)) p/L, (1 i L).
3. for j 1 to L do
3.1. Selecteaza (aleator) a
j
, b
j
Z
p
.
3.2. Calculeaza R
j
= a
j
P +b
j
Q.
4. Selecteaza (aleator) c
t
, d
t
Z
p
si calculeaza X
t
= c
t
P +d
t
Q.
5. X X
t
, c c
t
, d d
t
.
6. repeat
6.1. Calculeaza j = H(X
t
).
X
t
X
t
+R
j
, c
t
c
t
+a
j
, d
t
d
t
+b
j
.
6.2. for i 1 to 2 do
6.2.1. Calculeaza j = H(X).
6.2.2. X X + R
j
, c c + a
j
, d
d +b
j
.
until X
t
= X.
7. if d
t
= d then return(esec)
else return k = (c
t
c)(d d
t
)
1
(mod p).
8. Stop
28
Algoritmul Pollard Rho este un algoritm pro-
babilist de tip Las Vegas.
Probabilitatea de esec este neglijabila.
Exemplul 4. Sa consideram L = 32 si e
|S
1
, S
2
, . . . , S
32
o partit ie a lui < P > de-
nita astfel: daca X < P > si ultimii ultimii 5
bit i semnicativi ai primei coordonate a lui X
reprezinta numarul j, atunci H(X) = j +1.
Mult imile S
j
= |X [ H(X) = j au acelasi
numar de elemente pentru orice j = 1, . . . , 32.
29
Detaliere algoritmul Pollard Rho:
Fie a
j
, b
j
Z
p
si funct ia f :< P >< P >
denita
f(X) = X +a
j
P +b
j
Q unde j = H(X).
Daca X = cP +dQ, atunci
f(X) = X
t
= c
t
P +d
t
Q unde c
t
= c+a
j
(mod p)
si d
t
= d +b
j
(mod p).
Pentru un punct arbitrar X
0
< P > se poate
determina o secvent a |X
i
i0
denita
X
i
= f(X
i1
) pentru i 1.
Cum toate punctele sunt grupul nit < P >, la
un moment dat funct ia va cicla.
Deci exista un t minim pentru care X
t
= X
t+s
cu s 1.
Valoarea t se numeste lungimea cozii, iar s
lungimea ciclului.
30
Algoritmul lui Floyd de aare a doua puncte
X
i
, X
j
cu X
i
= X
j
si i ,= j, exploreaza perechile
de puncte de forma (X
i
, X
2i
) pana gaseste un
indice i cu X
i
= X
2i
.
Dupa calcularea unei perechi, perechea ante-
rioara de puncte poate eliminata; astfel me-
moria utilizata este de marime neglijabila.
Numarul n al perechilor calculate pana se obt i-
ne egalitatea X
i
= X
2i
verica t n t +s.
Daca f este o funct ie aleatoare, atunci
n 1, 0308
p.
31
Factorizari bazate pe curbe eliptice
Metoda p 1 de factorizare a unui numar n
poate denita si pe mult imea punctelor unei
curbe eliptice.
ECM (Elliptic Curve Method).
Se genereaza aleator doua numere a, b Z
n
, si
se construieste curba
E
a,b
: y
2
x
3
+ax +b (mod n) (1)
Pe aceasta curba se efectueaza diverse calcule
modulo p (desi p nu se cunoaste), ascunse
de calculele modulo n.
32
Ordinul grupului E
a,b
(Z
p
) este un numar din
intervalul [p +1 2
p, p +1 +2
p].
Daca acest ordin are divizorii primi (la puterile
cu care apar) mai mici decat marginea B sta-
bilita de metoda p 1, putem aplica aceasta
metoda (adaptata la grupul denit pe E(Z
n
)),
cu o complexitate de C(B) operat ii aritmetice.
Succesul ei corespunde deci probabilitat ii ca
ordinul grupului E
a,b
(Z
p
) sa aiba tot i divizorii
primi mai mici decat B.
Aceasta probabilitate este u
u
unde u =
log p
log B
.
33
Exemplul 5. Factorizarea lui n = 44023.
Alegerea unui punct (init ial) X pe curba (1).
Practic, n loc de a alege a, b si apoi X, vom
genera ntai a, X si ulterior b.
Fie a = 13 si X = (x, y) = (23482, 9274).
Vom avea imediat
b = y
2
x
3
ax = 21375 (mod 44203)
Vom calcula
X
i
= i!X = (x
i
, y
i
)
pentru i = 1, 2, . . . pana se ajunge la un punct
X
i
,= C (n E
a,b
(Z
n
)), care este punctul de la
innit n E
a,b
(Z
p
).
Aceste lucru se poate ntampla la aparit ia unei
operat ii imposibile de obicei mpart irea la un
element neinversabil.
34
X
1
= X = (23482, 9274),
X
2
= 2X
1
= (18935, 21838),
X
3
= 3X
2
= 2X
2
+X
2
= (15187, 29168),
X
4
= 4X
3
= 2(2X
3
) = (10532, 5412)
Se ajunge la X
5
= 5X
4
= 2(2X
4
) +X
4
.
Aici calculamntai 2X
4
= (30373, 40140), apoi
2(2X
4
) = (27556, 42335).
j=1
a
i
j
.
Cea mai obisnuita abordare a problemei ruc-
sacului este de a decide daca o anumita aparit ie
(A, x) a problemei rucsacului are solut ie sau nu.
Varianta criptograca: obt inerea acestei solut ii
pentru (A, x), stiind ca ea exista.
Ambele probleme sunt A1 - complete.
2
Un vector rucsac este folosit pentru criptarea
unui bloc M de n bit i; daca M este scris ca un
vector coloana binar, criptarea este
x = A M
Decriptarea revine la a determina M stiind x
sau pentru varianta cu cheie publica de a
aa M din A si x.
Exemplul 1. Fie n = 6 si vectorul rucsac
A = (3, 41, 5, 1, 21, 10).
Atunci textul clar M
1
= (1, 1, 0, 0, 1, 0) este
criptat n x
1
= 65, iar M
2
= (1, 0, 1, 1, 0, 1)
n x
2
= 19.
Pentru vectorul A astfel denit, mult imea tex-
telor criptate este inclusa n intervalul [0, 81].
3
Pentru a putea utilizat n criptare, un vector
rucsac A trebuie sa e injectiv: pentru orice
x A, aparit ia problemei rucsacului (A, x) are
cel mult o solut ie.
Exemplul 2. Pentru vectorul rucsac
A = (14, 28, 56, 82, 90, 132, 197, 284, 341, 455)
textul criptat x = 515 se poate obt ine din trei
texte clare distincte:
(1, 1, 0, 0, 0, 1, 0, 0, 1, 0),
(0, 1, 1, 0, 1, 0, 0, 0, 1, 0),
(1, 0, 0, 1, 1, 1, 1, 0, 0, 0).
4
Sunt anumit i vectori rucsac A pentru care
toate aparit iile (A, x) sunt usor de rezolvat.
Vectorii cu crestere mare au aceasta
proprietate.
Denit ia 1. Un vector rucsac
A = (a
1
, a
2
, . . . , a
n
)
este crescator (super-crescator) daca
j 2, a
j
> a
j1
(respectiv a
j
>
j1
i=1
a
i
).
Evident, orice vector super-crescator este
crescator.
5
Pentru A = (a
1
, . . . , a
n
) denim
max(A) = max|a
j
[ 1 j n.
Fie A un vector rucsac, m > max(A) si
t (0, m) astfel ca cmmdc(t, m) = 1.
Daca B = (b
1
, b
2
, . . . , b
n
) este un vector denit
prin
b
i
t a
i
(mod m) (1 i n)
spunem ca B rezulta din A prin nmult ire
modulara n raport cu perechea (m, t).
Condit ia cmmdc(t, m) = 1 asigura existent a lui
u (1, m), astfel ca t u 1 (mod m).
Are loc si proprietatea reciproca: vectorul ruc-
sac A rezulta din B prin nmult ire modulara n
raport cu (m, u).
6
Daca relat ia m > max(A) este nlocuita cu
condit ia m >
n
i=1
a
i
, spunem ca B rezulta din A
prinnmult ire modulara taren raport cu (m, t).
i=1
b
i
nu mai este adeva-
rata totdeauna.
Se poate spune (evident) ca A rezulta din B
prin nmult ire modulara n raport cu (m, u).
7
Construct ia sistemului de criptare rucsac:
1. Bob alege m, t cu cmmdc(m, t) = 1,
si vectorul super-crescator
A = (a
1
, . . . , a
n
)
cu m >
n
i=1
a
i
.
2. Determina vectorul rucsac B obt inut din A
prin inmult ire modulara tare n raport cu
(m, t).
3. Face public B si pastreaza drept cheie se-
creta elementele A, m, t si u t
1
(mod m).
8
Pentru criptare, Alice procedeaza astfel:
1. Sparge mesajul n blocuri de lungime n
(lungimea vectorului B).
Fie x un astfel de bloc.
2. Calculeaza y = x B si l trimite lui Bob.
In particular, a
1
b
1
u (mod m).
Pentru ca a
1
este prima componenta ntr-un
vector super-crescator, iar m depaseste suma
tuturor componentelor, elementul a
1
trebuie sa
e foarte mic n comparatt ie cu m.
Deci valoarea lui u trebuie sa e sucient de
aproape de un minim al grafului y = f
1
(u).
Similar, valoarea lui u din perechea trapa (m, u)
trebuie sa e destul de apropiata de un minim
al grafului lui f
2
(u).
Dci doua minime ale lui f
1
(u) si f
2
(u) trebuie
sa e apropiate.
Putem procedan acest fel si pentru alte valori.
Faptul ca valoarea lui u este apropiata de un
minim al ecarei curbe f
i
(u) implica faptul ca
aceste minime sunt apropiate unul de altul.
17
Vom considera temporar valoarea m = 1.
Algoritmul consta din doua part i: n prima
etapa vom aa o mult ime de numere ntregi
p cu proprietatea ca al p-lea punct de minim al
curbei f
1
(u) este punct de acumulare.
Pentru a evita generarea unui numar prea mare
de valori p, se xeaza un parametru r care sa
indice numarul maxim de valori posibile per-
mise.
Daca prima parte a algoritmului genereaza mai
mult de r valori, el se va termina cu esec.
q
b
2
< e, 1 p b
1
1, 1 q b
2
1
unde e este o valoare rezonabil de mica.
< b
2
p b
1
q < , 1 p b
1
1, 1 q b
2
1.
Consideram s astfel de puncte de minim si
scriem s 1 inegalitat i de acest tip, pentru
b
1
, b
2
, . . . , b
s
.
Pentru <
b
1
/2 probabilitatea ca algorit-
mul sa esueze este maxim (2/r)
s1
.
Prima parte a algoritmului rezolva acest
sistem de inecuat ii, aand toate valorile lui
p pentru care exista q, . . . astfel ncat sa e
satisfacute cele s 1 inecuat ii.
19
II. Fie un p xat arbitrar.
Se ordoneaza crescator toate punctele de
discontinuitate ale curbelor
f
i
(u) (1 i n) din
p
b
1
,
p +1
b
1
.
Fie x
j
, x
j+1
doua puncte consecutive de
discontinuitate.
In intervalul [x
j
, x
j+1
] ecare curba f
i
(u)
este un segment reprezentat prin
f
i
(u) = b
i
u c
j
i
, unde c
j
i
este o constanta.
Construim sistemul de inecuat ii liniare
x
j
u x
j+1
n
i=1
(b
i
u c
j
i
) < 1
(b
1
u c
j
1
) +. . . +(b
i1
u c
j
i1
) < b
i
u c
j
i
, (2 i n)
Solut ia este un subinterval (posibil vid) al
lui [x
j
, x
j+1
].
(m, u) formeaza o pereche trapa daca si
numai daca exista p si un j astfel ca u/m
sa apart ina unui astfel de subinterval.
20
Exemplul 4. Fie vectorul public B = (7, 3, 2).
Prima etapa: rezolvarea unui sistem de doua
inegalitat i duble:
< 3p 7q < ,
< 2p7r < , (1 p 6, 1 q 2, r = 1)
Trecem la etapa a doua, considerand drept
candidat i pentru testare toate valorile lui p.
0,
1
7
1
7
,
2
7
2
7
,
1
3
1
3
,
3
7
3
7
,
1
2
1
2
,
4
7
4
7
,
2
3
2
3
,
5
7
5
7
,
6
7
6
7
, 1
(7u i
1
) +(3u i
2
) +(2u i
3
) < 1
7u i
1
< 3u i
2
(7u i
1
) +(3u i
2
) < 2u i
3
cu 0 i
1
6, 0 i
2
2, 0 i
3
1.
Sistemul se rescrie
12u < i, 4u < j, 8u < k
unde
i = 1+i
1
+i
2
+i
3
, j = i
1
i
2
, k = i
1
+i
2
i
3
.
0,
1
7
1
7
,
2
7
2
7
,
1
3
1
3
,
3
7
3
7
,
1
2
1
2
,
4
7
4
7
,
2
3
2
3
,
5
7
5
7
,
6
7
6
7
, 1
i
1
0 1 2 2 3 3 4 4 5 6
i
2
0 0 0 1 1 1 1 2 2 2
i
3
0 0 0 0 0 1 1 1 1 1
i 1 2 3 4 5 6 7 8 9 10
j 0 1 2 1 2 2 3 2 3 4
k 0 1 2 3 4 3 4 5 6 7
12u < i PT PT NU NU NU NU PT NU PT NU
4u < j NU PT DA NU DA NU DA NU PT DA
8u < k NU NU NU PT DA NU NU NU PT PT
Un interval cont ine perechi trapa daca si numai
daca pe coloana sa apar numai DA sau PT.
22
Singurul interval valid este (5/7, 6/7).
Alegemn el numere rat ionale u/m care verica
cele trei inecuat ii.
Primul numar rat ional: 8/11; deci u = 8 si
m = 11.
Atunci relat ia a
i
b
i
u (mod 11) transforma
vectorul B = (7, 3, 2) n vectorul cu crestere
mare A = (1, 2, 5).
Alte solut ii pot de exemplu:
(u, m) = (41, 56): A = (7, 11, 26),
(u, m) = (61, 84): A = (7, 15, 38),
(u, m) = (223, 308): A = (25, 35, 138).
23
Exemplul 5. Fie vectorul rucsac public
B = (43, 129, 215, 473, 903, 302, 561, 1165, 697, 1523)
La prima etapa:
[129p43q[ , [215p43r[ , [473p43s[
Pentru ca 43 = cmmdc(129, 215, 473), p = 1
este un candidat posibil.
Restrangem investigat ia la intervalul
1
43
,
2
43
.
Considerand si puncte de discontinuitate ale
altor curbe n acest interval, vom putea re-
strange subintervalul solut iilor la
1
43
,
36
1523
.
Cele 10 curbe sunt:
f
1
(u) = 43u 1, f
2
(u) = 129u 3,
f
3
(u) = 215u 5, f
4
(u) = 473u 11,
f
5
(u) = 903u 21 f
6
(u) = 302u 7,
f
7
(u) = 561u 13, f
8
(u) = 1165u 27,
f
9
(u) = 697u 16, f
10
(u) = 1523u 35.
24
Inecuat ia a doua:
10
i=1
f
i
(u) < 1 sau
6011u 139 < 1, cu solut ia u < 140/6011.
Cum 140/6011 < 36/1523, intervalul solut iilor
este:
1
43
,
140
6011
.
Inecuat iile care dau condit ia de super-crestere:
129u 3 > 43u 1 u > 1/43
215u 5 > 172u 4 u > 2/43
473u 11 > 387u 9 u > 1/43
903u 21 > 860u 20 u > 1/43
302u 7 > 1763u 41 u < 34/1461
561u 13 > 2065u 48 u < 35/1504
1165u 27 > 2626u 61 u < 34/1461
697u 16 > 3791u 88 u < 72/3094
1523u 35 > 4488u 104 u < 69/2965
Cea mai mica margine superioara este
72/3094 = 36/1547.
1
43
,
36
1547
.
Pentru 37/1590 se obt ine
A = (1, 3, 5, 11, 21, 44, 87, 175, 349, 701).
Pentru 72/3095 se obt ine
A = (1, 3, 5, 11, 21, 79, 157, 315, 664, 1331).
25
Vectori rucsac cu densitate mare
Spargerea sistemului de criptare rucsac n vari-
anta propusa de Merkle si Hellman, nunseam-
na rezolvarea problemei rucsacului, ci numai
exploatarea slabiciunii provenite din modul de
alegere a cheii secrete.
Ulterior au fost generate si alte construct ii de
cripto-sisteme rucsac.
j=0
c
j
j
(0 c
j
p 1)
Exemplul 6. Fie p = 3, h = 2 si o radacina
a ecuat iei X
2
X 1 = 0.
Elementele corpului GF(3
2
) pot exprimate
n funct ie de :
GF(3
2
) = |0, 1, 2, , +1, +2, 2, 2+1, 2+2.
27
Similar aritmeticii modulare denite pe Z
p
,
putem folosi not iunea de logaritm discret si n
extensiile Galois GF(p
h
).
Un element este un generator al lui GF(p
h
)
daca x GF(p
h
)
x.
Exemplul 7. Pentru GF(3
2
), radacina a
ecuat iei X
2
X 1 = 0 este un generator.
Logaritmii elementelor nenule din aceasta
extensie sunt:
x 1 2 +1 +2 2 2 +1 2 +2
log
x 8 4 1 2 7 5 3 6
Tot un generator al lui GF(3
2
)
este si 2+1.
Tabela de logaritmi n aceasta baza este
x 1 2 +1 +2 2 2 +1 2 +2
log
2+1
x 8 4 3 6 5 7 1 2
28
Fiind date numerele ntregi pozitive n si h,
exista un vector A = (a
1
, a
2
, . . . , a
n
) cu ele-
mente nenegative distincte, astfel ncat toate
sumele de exact h componente de elemente
(nu neaparat distincte) din A, sunt diferite.
Un astfel de vector A este usor de construit,
luand a
i
= h
i1
(1 i n).
Construct ia corespunde vectorilor rucsac cu
densitate mica.
Pentru vectorii rucsac cu densitate mare:
Lema 1. Fie p un numar prim si h 2 un numar ntreg.
Atunci exista un vector rucsac A = (a
1
, a
2
, . . . , a
p
) care
satisface condit iile
1. 1 a
i
p
h
1, (1 i p),
2. Daca x
,
y
i
(1 i p) sunt numere ntregi nenega-
tive cu (x
1
, x
2
, . . . , x
p
) ,= (y
1
, y
2
, . . . , y
p
) iar
p
i=1
x
i
=
p
i=1
y
i
= h,
atunci
p
i=1
a
i
x
i
,=
p
i=1
a
i
y
i
.
29
Concluzia lemei se poate nlocui cu:
p
i=1
a
i
x
i
,
p
i=1
a
i
y
i
(mod p
h
1)
Sa construim un sistem de criptare rucsac.
Textul clar va cont ine cuvinte (blocuri) de p
bit i, astfel ncat n ecare bloc sunt exact h
bit i egali cu 1.
.
Se calculeaza A = (a
1
, a
2
. . . , a
p
) denit
a
i
= log
g
( +i 1), (1 i p)
Se construieste vectorul B = (b
1
, b
2
, . . . , b
p
)
prin b
i
= a
(i)
+d
unde S
p
este o permutare, iar
d [0, p
h
2] este o constanta arbitrara.
Cheia publica de criptare este B, p, h.
Trapa secreta consta din , g, d, .
32
Fie C o secvent a binara de lungime p n care
suma elementelor este h.
Considerat sub forma unui vector coloana, C
este criptat prin produsul scalar
e(C) = B C (mod p
h
1)
Protocolul de decriptare urmat de Bob este:
1. Daca x este mesajul criptat, se determina
y = x h d (mod p
h
1).
2. Se calculeaza g
y
n GF(p
h
). Acesta este
un polinomn , de grad cel mult h 1.
satisface o ecuat ie de forma
h
= r(), unde
r(X) Z
q
[X] este un polinom de grad cel mult
h 1.
3. Polinomul s() =
h
+ g
y
r() se des-
compune n factori liniari peste Z
p
.
Fie s() = (+i
1
1)(+i
2
1) . . . (+i
h
1)
aceasta descompunere.
4. Pozit ia elementelor 1 din textul clar este
data de valorile
(
1
(i
1
),
1
(i
2
), . . . ,
1
(i
h
)).
33
Exemplul 9. Vom ignora si d.
Fie extensia GF(3
2
) generata de 2 +1, unde
verica ecuat ia X
2
= X +1.
Deoarece logaritmii elementelor , +1 si +2
sunt 3, 6 si respectiv 5, se obt ine cheia publica
de criptare B = (3, 6, 5).
In plus, p = 3 si h = 2.
Un text clar este compus cu vectori binari cu
3 componente, cu suma componentelor 2.
Sa consideram vectorii (2, 0, 0) si (0, 1, 1).
Ei sunt criptat i n numerele 6 respectiv 3 (cal-
culele se efectueaza modulo p
h
1 = 8).
La decriptare, Bob:
- calculeaza ntai puterile (2 +1)
6
= +1 si
(2 +1)
3
= .
- La ambele expresii, aduna
2
1, rezultand
polinoamele
2
si
2
a = ( +1)( +2).
- Se deduc textele clare (2, 0, 0) si (0, 1, 1).
34
Sistemul de criptare McEliece
Sistemul McEliece propus n 1978 este
destul de apropiat de problema rucsacului.
El utilizeaza teoria codurilor liniare; n general
decodicarea unui cod liniar binar corector de
erori este o problema A1 - completa.
Pentru unele clase de coduri sunt construit i
algoritmi de decodicare polinomiali; o astfel
de clasa o formeaza codurile Goppa baza
sistemului de criptare McEliece.
35
Denit ia 2. Fie k, n A(k n). Un (n, k) -
cod liniar binar este un subspat iu liniar C Z
n
2
de dimensiune k.
O matrice generatoare a lui C este o matrice
binara k n ale carei linii sunt o baza a lui C.
Pentru a Z
n
2
se deneste ponderea w(a) prin
numarul de elemente nenule din a.
Pentru a, b Z
n
2
, distant a Hamming este
d(a, b) = w(a b).
Pentru un (n, k) - cod liniar binar C, distant a
minima este
d
C
= min|d(a, b)[a, b C, a ,= b
Un (n, k, d) - cod este un (n, k) - cod de distan-
t a minima d.
36
Rolul unui cod corector de erori este de a corija
modicari aleatoare care apar n transmiterea
unui set de date (binare) printr-un canal.
In plus, daca a C, e Z
n
2
si r = a +e, atunci
H r
T
= H e
T
.
38
e poate considerat drept vectorul de erori
care au aparut n transmiterea mesajului a.
Teorema anterioara arma ca sindromul de-
pinde doar de erori, nu si de cuvantul - cod
transmis.
Metoda de decodicare bazata pe sindrom:
- Se calculeaza ntai s = H r
T
.
- Daca s = 0, decodicarea lui r este tot r.
Altfel, se ncearca cuvintele de pondere 1.
Pentru ecare astfel de cuvant e se calculeaza
H e
T
.
- Daca s-a gasit un e cu H e
T
= s, r se de-
codica n r e.
-
0 0 1 1 1 1 1 1
1 1 0 0 1 0 1 1
1 0
1 1
cu S
1
=
1 0
1 1
si
P =
0 1 0 0 0 0 0 0
0 0 0 1 0 0 0 0
0 0 0 0 0 0 1 0
1 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0
0 0 0 0 0 1 0 0
0 0 0 0 1 0 0 0
0 0 0 0 0 0 0 1
cu P
1
=
0 0 0 1 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0
0 1 0 0 0 0 0 0
0 0 0 0 0 0 1 0
0 0 0 0 0 1 0 0
0 0 1 0 0 0 0 0
0 0 0 0 0 0 0 1
1 0 1 0 1 1 1 1
1 1 0 1 0 1 1 0
43
Sa presupunem ca Alice vrea sa cripteze textul
clar a = (0, 1) folosind vectorul - eroare
e = (0, 0, 1, 0, 0, 1, 0, 0) de pondere 2.
Textul criptat este
b = a G
t
+e = (1, 1, 1, 1, 0, 0, 1, 0).
Dupa recept ionarea mesajului, Bob calculeaza
ntai
b
1
= b P
1
= (1, 1, 1, 1, 1, 0, 0, 0),
pe care l scrie sub forma a
1
+e
1
unde
a
1
= (1, 1, 1, 1, 0, 1, 0, 0) este un cuvant - cod,
iar e
1
= (0, 0, 0, 0, 1, 1, 0, 0) ,= e (din cauza
nmult irii cu P
1
).
Bob calculeaza apoi mesajul a
0
= (1, 1),
singurul cu proprietatea a
0
G = a
1
.
Ultimul pas este determinarea textului clar
a = S
1
a
0
= (0, 1)
44
Algoritmul McElliece s-a dovedit sigur.
1. Din informat ia publica, Oscar ncearca sa
ae matricea G sau o matrice G
1
a unui
cod Goppa echivalent.
Nu se cunoaste nici un algoritm ecient
pentru un astfel de demers.
2. Oscar ncearca sa ae mesajul clar a direct
din textul criptat b.
El ia aleator k coloane din matricea G
t
.
Notand G
t
k
, b
k
, e
k
restrict iile lui G
t
, b, e la
aceste k coloane, vom avea aG
t
k
= b
k
+e
k
.
Daca b
k
= 0 si G
t
k
este nesingulara, atunci
a poate aat rezolvand sistemul liniar
a G
t
k
= b
k
.
Probabilitatea ca cei k bit i selectat i sa nu faca
parte din eroare (deci e
k
= 0) este C
k
nt
/C
k
n
,
neglijabila pentru valorile alese ale parametrilor
n, k, t.
45
Securitatea sistemului McElliece este mult
diminuata daca se foloseste alta clasa de coduri
liniare n locul codurilor Goppa.
Totusi, n ciuda securitat ii sale si a vitezei rela-
tiv mari de criptare/decriptare sistemul nu este
folosit practic.
Cauza principala o constituie cheia sa excesiv
de mare.
De exemplu, pentru n = 1024, t = 38,
k 644, cheia are aproximativ 2
19
bit i.
46
Generatori
de numere pseudo - aleatoare
1
Numere aleatoare si numere pseudo-aleatoare
6
-
Funct ia de ntoarcere este un XOR ntre anu-
mit i bit i din registru.
18
Exemplul 3. Sa consideram un 4 LFSR:
- - - -
?
6
-
?
, ,
+
Sa presupunem ca init ial cei patru bit i
din registru sunt 1001.
La ecare tact se obt ine o noua congurat ie:
0100, 0010, 0001, 1000, 1100, 1110, 1111, 0111,
1011, 0101, 1010, 1101, 0110, 0011
dupa care apare din nou 1001.
La iesire va apare secvent a
1001000111101011
Este un generator de perioada 16.
19
Un n LFSR poate avea maxim 2
n
1 stari
distincte.
Fie g(X) Z
2
[X], g(X) = 1+g
1
X+. . . +g
n
X
n
polinomul asociat unui n LFSR, unde g
i
= 1
daca si numai daca bitul i participa la o adunare
modulo 2.
In Exemplul 3: g(X) = 1 +X +X
4
.
Fie polinomul g(X) Z
2
[X], grad(g(X)) = n
si m cel mai mic numar astfel ca g(X)|X
m
+1.
Atunci secvent a binara generata de un
n LFSR asociat lui g(X) are perioada m.
Daca g(X) este un polinom ireductibil peste
Z
2
, atunci m = 2
n
1 (maxim).
Lema 1. Un polinom g(X) Z
2
[X] este ire-
ductibil daca si numai daca
1. Are un numar impar de termeni;
2. Cel put in un termen este de forma X
2p+1
.
20
Generatorul Gee
Combina ntr-o forma neliniara trei LFSR:
LFSR
1
LFSR
3
LFSR
2
EMUX
-
-
-
6
-
i
0
i
1
Daca a
1
, a
2
, a
3
sunt iesirile din LFSR-uri,
iesirea din generatorul Gee este
b = (a
1
a
2
) (a
1
a
3
)
Perioada generatorului este cel mai mic multi-
plu comun al perioadelor celor trei LFSR-uri.
Deci, daca cele trei polinoame care denesc
circuitele au grade prime ntre ele, perioada
generatorului Gee este produsul celor trei pe-
rioade.
21
Din punct de vedere criptograc generatorul
Geffe nu rezista unui atac prin corelare.
Iesirea din generator coincide cu iesirea din
LFSR
2
cam 75% din timp.
Deci, daca denit iile polinomiale ale circuitelor
sunt cunoscute se poate ghici valoarea init iala
din LFSR
2
si genera secvent a sa de iesire.
Apoi se numara de cate ori iesirea din LFSR
2
coincide cu iesirea din generator.
Statistic, daca nu s-a ghicit corect, cele doua
secvent e coincid cam 50%;
daca s-a ghicit corect, ele coincid cam 75%.
Similar, iesirea generatorului coincide cu cea
din LFSR
3
cam 75% din timp.
Cu aceste corelari secvent a poate ghicita
complet.
22
Generatorul Gee poate extins la 2
k
+1
LFSR legat i printr-un MUX
k
.
Acest lucru nu va mari nsa securitatea
generatorului.
23
Generatori Stop-and-Go
1. Cel mai cunoscut este Beth - Piper:
LFSR
3
LFSR
2
LFSR
1
-
6
-
6
-
-
? -
-
6
-
6
-
-
-
6
,
,
CK
a
1
(t)
a
2
(t)
a
3
(t)
b(t)
Acest generator controleaza ceasurile celor trei
circuite.
Ceasul de intrare n LFSR
2
este controlat de
iesirea din LFSR
1
. LFSR
2
schimba starea la
momentul t numai daca iesirea din LFSR
1
la
momentul t 1 a fost 1.
Nu se cunosc studii asupra complexitat ii aces-
tui generator.
El totusi nu a rezistat atacurilor prin corelare.
24
2. Stop-and-Go alternativ
Foloseste trei LFSR de lungimi diferite:
LFSR
3
LFSR
2
LFSR
1
-
? -
X
X
-
-
6
-
6
-
-
? -
6
-
? -
6
-
? -
-
6
-
-
,
,
,
CK
Cand iesirea din LFSR
1
este 1 ea activeaza
LFSR
2
; n caz contrar este activat LFSR
3
.
Acest generator are o perioada mare.
Exista un atac prin corelare asupra sa (mai
precis asupra LFSR
1
), dar acesta nu i-a slabit
substant ial securitatea.
25
3. Generator Gollmann
Extensie n cascada a mai multor circuite
LFSR, ceasul ecarui LFSR ind controlat de
circuitul anterior.
LFSR
1
LFSR
2
LFSR
2
-
6
-
6
-
6
- - -
? -
6
-
-
-
? -
6
?-
6
-
? -
6
-
? -
-
-
, ,
,
,
,
1
CK
. . .
. . .
Daca la momentul t 1 iesirea din LFSR
i
este
1, atunci la momentul t este activat LFSR
i+1
.
Daca toate circuitele liniare au aceiasi lungime
n, complexitatea unui generator Gollmann cu
k LFSR-uri este n (2
n
1)
k1
.
26
Generatorul Blum - Micali
Fie g un numar prim, p un numar prim impar
si x
0
o valoare init iala.
Se genereaza numerele
x
i+1
= g
x
i
(mod p)
Iesirea din generator este 1 daca x
i
<
p 1
2
si
0 altfel.
Securitatea acestui sistem se bazeaza pe
problema logaritmului discret.
Daca p este sucient de mare astfel ca
problema logaritmului discret sa e dicila,
generatorul este considerat sigur.
27
Generatorul RSA
Fie n = pq un modul obt inut prin produsul a
doua numere prime mari, un numar e astfel ca
cmmdc(e, (p 1) (q 1)) = 1 si x
0
o valoare
init iala (x
0
< n).
Se deneste
x
i+1
= x
e
i
(mod n)
Iesirea din generator este z
i
= x
i
(mod 2).
Securitatea generatorului se bazeaza pe di-
cultatea spargerii sistemului RSA.
Daca n este sucient de mare, sistemul este
considerat sigur.
28
Generatorul Mother-of-all
Este propus de George Marsaglia, ind extrem
de rapid n implementare pe limbaj de asam-
blare.
Se aleg cinci numere ntregi x
0
, x
1
, x
2
, x
3
, c
(nu toate nule), stocate pe 32 bit i ecare.
Algoritmul este:
1. n 4;
2. while n MAX do
(a) S 2111111111 x
n4
+ 1492 x
n3
+ 1776
x
n2
+5115 x
n1
+c;
(b) x
n
S (mod 2
32
), c
S
2
32
;
(c) n n +1;
Suma intermediara S este stocata pe 64 bit i.
Valoarea MAX este stabilita n funct ie de
lungimea secvent ei pseudo-aleatoare generate.
29
Generatorul 1/P
Fie P un numar prim impar si b un generator
al lui Z
P
.
Secvent a produsa de generatorul 1/P cu in-
trarea (b, P) este sirul de cifre din reprezentarea
numerica a fract iei 1/P n baza b.
Secvent a obt inuta este periodica de perioada
P 1 : 1/P = q
1
q
2
. . . q
P1
q
P
. . .
Exemplul 4. Fie b = 10 si P = 7.
Secvent a produsa de 1/P cu intrarea (10, 7)
este 142857142. . ., deoarece
1/7 = 0, 142857142. . .
Evident, lungimea perioadei este P 1 = 6.
30
Desi generatorul 1/P are proprietat i care l
situeaza printre generatorii performant i din
punct de vedere al distribut iei datelor,
criptograc este slab.
Astfel, notand cu s numarul de cifre din
reprezentarea binara a lui P, se poate
demonstra:
- Daca se stie P si o secvent a de caractere
din sir egala cu s, aceasta se poate extinde la
dreapta si la stanga.
- Daca se stiu orice 2s+1 elemente consecutive
din sir, se poate reconstitui valoarea lui P.
31
Generatorul ANSI X9.17
ANSI X9.17 este standard FIPS folosit pen-
tru generarea de chei pseudo-aleatoare si vec-
tori de init ializare (V I) din modurile de operare
DES.
Foloseste sistemul de criptare 3DES.
Intrare:
- s: secvent a aleatoare secreta de 64 bit i;
- K: cheia de criptare pentru 3DES;
- m: numar ntreg (lungimea secvent ei
generate).
Iesire: m secvent e de cate 64 bit i.
Algoritm:
1. I = e
K
(s);
2. for i 1 to m do
2.1. x
i
e
K
(s I);
2.2. s e
K
(x
i
I).
3. output(x
1
, x
2
, . . . , x
m
).
32
Securitatea generatorilor de numere
pseudo-aleatoare
Proprietatea de aleatorism a secvent elor se
masoara prin teste statistice.
Un generator de secvent e pseudo-aleatoare
trece testele statistice daca se comporta
similar sau identic cu un generator real aleator.
Din punct de vedere criptograc, securitatea
generatorului depinde de ecient a computat io-
nala a algoritmului folosit, precum si de posi-
bilitatea ca un adversar cunoscand secvent a
pseudo-aleatoare rezultata sa determine
parametrii secret i ai algoritmului.
Un sir poate bun din punct de vedere sta-
tistic, dar sa prezinte numeroase defecte de
securitate criptograca.
33
Denit ia 4. Un generator G este nediferent ia-
bil (n timp) polinomial daca nu exista nici un
text statistic ecient care sa poata decide ca G
este diferit de un generator real aleator (GA).
Lema 2. Daca generatorul G este nediferent ia-
bil polinomial, atunci nu exista nici un algoritm
de complexitate polinomiala (ecient) care
sa-l poata sparge.
34
Exemplul 5. Pentru generatorul 1/P se poate
construi un test statistic care determina daca
pentru un numar prim arbitrar de n cifre binare
o secvent a de 3n numere a fost extrasa din
1/P sau a fost generata aleator.
Astfel, pentru generarea lui P se utilizeaza
2n +1 elemente (din cele 3n).
Apoi, folosind acest P se genereaza 3n cifre,
care se compara cu secvent a data.
Daca cele doua secvent e se potrivesc, atunci
(cu o probabilitate de cel put in 1
1
2
n1
)
sirul a fost produs de generatorul 1/P.
35
Teste statistice
Pachete de teste utilizate ca standarde pentru
evaluarea securitat ii generatorilor de numere
pseudo-aleatoare:
DIEHARD (15 teste elaborate de George
Marsaglia)
NIST (16 teste elaborate de Institutul de
Standarde din SUA).
Testele au o valoare direct proport ionala cu
lungimea n a secvent ei testate.
j=1
a
j
X
j
(mod p).
3. D calculeaza y
i
= a(x
i
) si comunica aceasta valoare lui P
i
(1 i w).
7.1. SISTEMUL CONFIDENT IAL AL LUI SHAMIR 5
Fie o submult ime P
i
1
, . . . , P
i
t
de participant i care doresc sa reconsti-
tuie cheia.
Ei stiu valorile x
i
j
si y
i
j
= a(x
i
j
) pentru 1 j t;
a(X) Z
q
[X] este polinomul (secret) folosit de D.
Cum gradul lui este cel mult t 1, putem scrie
a(X) = a
0
+ a
1
X + . . . + a
t1
X
t1
unde a
0
= K iar a
0
, . . . , a
t1
Z
q
sunt necunoscute.
Ele se aa rezolvand sistemul liniar de t ecuat ii y
i
j
= a(x
i
j
).
Daca ecuat iile sunt independente, solut ia este unica, iar valoarea lui a
0
este chiar cheia K.
Exemplul 7.1 Sa presupunem p = 17, t = 3, w = 5, iar x
i
= i, (1 i
5). Daca B = P
1
, P
3
, P
5
vor sa ae cheia aducand ecare informat iile
8, 10 si respectiv 11, ei vor scrie polinomul general a(X) = a
0
+a
1
X+a
2
X
2
si vor reduce problema la rezolvarea n Z
17
a sistemului liniar
a(1) = a
0
+ a
1
+ a
2
= 8
a(3) = a
0
+ 3a
1
+ 9a
2
= 10
a(5) = a
0
+ 5a
1
+ 8a
2
= 11
Acesta admite solut ia unica n Z
17
: a
0
= 13, a
1
= 10, a
2
= 2.
Deci valoarea cautata este K = 13.
Teorema 7.1
In sistemul condent ial al lui Shamir, orice mult ime B de
t participant i poate reconstitui n mod unic cheia K.
6 PRELEGEREA 7. SISTEME DE PARTAJARE A SECRETELOR
Ce se ntampla daca un grup de t 1 participant i ncearca sa calculeze
cheia K ?
Daca procedeaza conform algoritmului anterior, vor obt ine un sistem de
t 1 ecuat ii cu t necunoscute.
Fie y
0
o valoare arbitrara a cheii K.
Vom avea y
0
= a
0
= a(0), care formeaza a t - a ecuat ie a sistemului.
Acesta ofera de asemenea solut ie unica.
Deci, pentru orice valoare K Z
p
exista un polinom unic a
K
(X)
Z
p
[X] care verica toate condit iile:
y
i
j
= a
K
(x
i
j
) (1 j t 1), y
0
= a
K
(0).
Rezulta ca orice valoare a lui K este consistenta cu componentele det inute
de cei t 1 participant i; asocierea lor nu ofera nici o informat ie suplimen-
tara pentru aarea cheii.
7.1. SISTEMUL CONFIDENT IAL AL LUI SHAMIR 7
Plecand de la alta reprezentare sub forma de polinoame de interpolare
Lagrance, se poate construi o varianta mai simpla a algoritmului Shamir
pentru cazul w = t.
Ea funct ioneaza pentru /= Z
m
, o= Z
m
(m nu este obligatoriu numar
prim si chiar mai mult este posibil ca m w). Noul algoritm este:
1. D alege aleator t 1 elemente y
1
, . . . , y
t1
Z
m
;
2. D calculeaza y
t
= K
t1
i=1
y
i
(mod m);
3. Fiecare element y
i
este transmis n secret lui P
i
(1 i t).
Cei t participant i pot determina cheia K pe baza formulei
K =
t
i=1
y
i
(mod m).
Evident, t1 participant i nu pot obt ine cheia K. Chiar daca punn comun
componentele lor, ei pot determina valoarea Ky, unde y este componenta
celui care lipseste. Cum y este o valoare aleatoare din Z
m
, nu se va obt ine
nici o informat ie suplimentara referitoare la cheie.
Acesta este deci un sistem condent ial (t, t).
8 PRELEGEREA 7. SISTEME DE PARTAJARE A SECRETELOR
7.2 Structura de acces si partaj a secretului general
Am studiat situat ia cand orice asociere de t participant i din totalul de w
poate calcula cheia.
Restrangem condit ia, specicand ce submult imi de participant i pot avea
acces la cheie si pentru ce submult imi acest acces este interzis.
Fie o mult ime de submult imi ale lui {, ecare din ele reprezentand o
asociat ie autorizata sa calculeze cheia K.
se numeste structura de acces, iar submult imile ei se numesc submult imi
autorizate.
Fie / o mult ime de chei si o o mult ime de componente.
Cand arbitrul D doreste sa repartizeze o cheie K /, el va distribui
cate o componenta ecarui participant, urmand ca ulterior, o submult ime
de participant i sa ncerce sa determine K punand n comun componentele
cunoscute de ei.
Denit ia 7.2 Un sistem perfect de partajare a secretelor cu structura de
acces este un procedeu de partajare a secretului unei chei K peste o
mult ime { de participant i, astfel ncat:
1. Orice submult ime autorizata B { de participant i poate reconstitui
cheia din componentele cunoscute de ei;
2. Orice submult ime neautorizata B { de participant i nu poseda nici
o informat ie despre valoarea lui K.
7.2. STRUCTURA DE ACCES SI PARTAJ A SECRETULUI GENERAL 9
Un sistem condent ial (t, w) realizeaza structura de acces
= B { [ card(B) t.
O asemenea structura de numeste structura condent iala.
Sistemul condent ial al lui Shamir este perfect si realizeaza o structura
condent iala.
10 PRELEGEREA 7. SISTEME DE PARTAJARE A SECRETELOR
Securitatea sistemelor de partajare a secretelor.
Fie B si B C {.
Daca C cauta sa determine cheia K, ea va reusi lucrand numai cu B si
ignorand participant ii din C ` B.
Altfel spus, structura de acces satisface condit ia de monotonie:
Daca B si B C {, atunci C .
0
= P
1
, P
2
, P
4
, P
1
, P
3
, P
4
, P
2
, P
3
.
Vom avea
= P
1
, P
2
, P
4
, P
1
, P
3
, P
4
, P
2
, P
3
, P
1
, P
2
, P
3
, P
2
, P
3
, P
4
, P
1
, P
2
, P
3
, P
4
.
Invers, ind dat , se vede imediat ca
0
este mult imea part ilor sale
minimale.
In cazul structurilor condent iale de acces, baza este mult imea submult imilor
formate cu t participant i.
7.3. CONSTRUCT IA CIRCUITELOR MONOTONE 11
7.3 Construct ia circuitelor monotone
Ideea apart ine lui Benaloh si Leichter; ea consta n construirea unui circuit
combinat ional care recunoaste structura de acces si genereaza un sistem de
partajare a secretului.
Un astfel de circuit este numit circuit monoton.
Fie C un circuit computat ional cu w intrari notate prin variabilele
booleene x
1
, . . . , x
w
(corespunzatoare celor w participant i P
1
, . . . , P
w
) si
o iesire booleana y = C(x
1
, . . . , x
w
).
Presupunem ca la construct ia circuitului sunt folosite numai port i AND
si OR (fara port i NOT).
Un astfel de circuit este numit monoton daca modicarea unei intrari
din 0 n 1 nu va implica niciodata transformarea iesirii y din 1 n 0.
Se noteaza
B(x
1
, . . . , x
w
) = P
i
[ x
i
= 1
mult imea participant ilor asociat i n mult imea B.
Presupunand ca circuitul C este monoton, vom avea
(C)= B(x
1
, . . . , x
w
) [ C(x
1
, . . . , x
w
) = 1.
Circuitul C ind monoton, (C) este o mult ime monotona de part i ale
lui {.
12 PRELEGEREA 7. SISTEME DE PARTAJARE A SECRETELOR
Fiind data o mult ime monotona de part i ale lui {, se poate construi
usor un circuit monoton C cu (C)= .
Exemplu de construct ie:
Fie
0
o baza a lui . Vom construi formula booleana (n forma normal
disjunctiva)
B
0
P
i
B
P
i
Fiecare clauza din aceasta forma normala este legata printr-o poarta
AND, iar disjunct ia nala corespunde unei port i OR.
Numarul total de port i folosite este card(
0
) + 1.
7.3. CONSTRUCT IA CIRCUITELOR MONOTONE 13
Fie C un circuit monoton care recunoaste .
Algoritm care permite arbitrului D sa construiasca un sistem perfect de
partajare a secretului cu structura de acces .
Se foloseste sistemul condent ial (t, t) prezentat anterior.
Mult imea cheilor este deci /= Z
m
.
Algoritmul parcurge circuitul de la iesire spre intrare, marcand recursiv
cu x
V
/, ecare arc V parcurs (n sens invers).
Init ial, arcului care marcheaza iesirea y i se atribuie valoarea x
out
= K
a cheii.
1. x
out
K;
2. pentru orice poarta G din care iese un arc marcat x, iar arcele care
intra sunt nemarcate, executa:
(a) Daca G este o poarta OR, atunci x
V
x pentru orice arc V care
intra n G;
(b) Daca G este o poarta AND si V
1
, . . . , V
t
sunt arcele care intra n
G, atunci
i. Alege aleator x
V,1
, . . . , x
V,t1
Z
m
;
ii. Calculeaza x
V,t
= x
t1
i=1
x
V,i
(mod m);
iii. Marcheaza arcul V
i
cu x
V,i
, (1 i t).
14 PRELEGEREA 7. SISTEME DE PARTAJARE A SECRETELOR
Exemplul 7.3 Pentru mult imea din Exemplul 7.2, avem
0
= P
1
, P
2
, P
4
, P
1
, P
3
, P
4
, P
2
, P
3
In general, T
K
este publica.
Denim
T=
K/
T
K
.
T este ansamblul complet al tuturor distribut iilor posibile de chei.
Rolul arbitrului va de a selecta aleator un element f T
K
si de a
distribui componentele n conformitate cu aceasta alegere.
Pentru o submult ime B { (autorizata sau nu) de participant i, se
deneste S(B) = f[
B
[ f T, unde funct ia
f
B
: B o
este restrict ia distribut iei de part i f la submult imea B,
denita prin f
B
(P
i
) = f(P
i
), P
i
B.
Deci S(B) este mult imea tuturor distribut iilor posibile ale componen-
telor la elementele submult imii B.
7.4. RATA DE INFORMAT IE 17
Ne punem problema evaluarii performant elor sistemelor perfecte de par-
tajare a secretelor construite anterior, pe baza structurilor de acces monotone.
In cazul unui sistem condent ial (t, w), circuitul boolean construit pe
baza expresiei n forma normal disjunctiva are 1 + C
t
w
port i.
Fiecare participant primeste o componenta formata din C
t1
w1
numere
din Z
m
.
Aceasta partajare este foarte slaba comparativ cu sistemul condent ial
al lui Shamir (t, w), care ofera acelasi rezultat folosind componente formate
dintr-un singur numar.
Pentru masurarea performant elor sistemelor perfecte de partajare a se-
cretelor, vom folosi un instrument numit rata de informat ie.
Denit ia 7.4 Fie un sistem perfect de partajare a secretelor cu structura
de acces . Rata de informat ie a unui participant P
i
este prin denit ie
i
=
log
2
(card(X))
log
2
(card(S(P
i
)))
.
S(P
i
) o este mult imea componentelor posibile pe care le poate primi
participantul P
i
.
S-a notat cu X = / mult imea cheilor posibile.
Rata de informat ie a sistemului este
= min
i
[ 1 i w.
Exemplul 7.5 Sistemul din Exemplul 7.3 are rata de informat ie
=
log
2
m
log
2
m
2
=
1
2
18 PRELEGEREA 7. SISTEME DE PARTAJARE A SECRETELOR
1
r
i
unde r
i
este numarul de arce de intrare n circuit (pentru valorile x
i
).
Evident, este preferabila o rata de informat ie cat mai mare. Valoarea ei
este nsa limitata superior:
Teorema 7.3 Pentru orice sistem perfect de partajare a secretelor cu struc-
tura de acces , rata de informat ie verica inegalitatea 1.
Un sistem cu = 1 va numit ideal.
De exemplu, sistemul condent ial al Shamir are = 1, deci este un
sistem ideal.
Rezultate
1. 2 P
1
P
2
1 Condent ial (2, 2)
2. 3 P
1
P
2
, P
2
P
3
1
0
K
1,2
3. 3 P
1
P
2
, P
2
P
3
, P
1
P
3
1 Condent ial (2, 3)
4. 3 P
1
P
2
P3 1 Condent ial (3, 3)
5. 4 P
1
P
2
, P
2
P
3
, P
3
P
4
2/3
6. 4 P
1
P
2
, P
1
P
3
, P
1
P
4
1
0
K
1,3
7. 4 P
1
P
2
, P
1
P
4
, P
2
P
3
, P
3
P
4
1
0
K
2,2
8. 4 P
1
P
2
, P
2
P
3
, ; P
2
P
4
, P
3
P
4
2/3
9. 4 P
1
P
2
, P
1
P
3
, P
1
P
4
, P
2
P
3
, P
2
P
4
1
0
K
1,1,2
10. 4 P
1
P
2
, P
1
P
3
, P
1
P
4
, P
2
P
3
, P
2
P
4
, P
3
P
4
1 Condent ial (2, 4)
11. 4 P
1
P
2
P
3
, P
1
P
4
1
12. 4 P
1
P
3
P
4
, P
1
P
2
, P
2
P
3
2/3
13. 4 P
1
P
3
P
4
, P
1
P
2
, P
2
P
3
, P
2
P
4
2/3
14. 4 P
1
P
2
P
3
, P
1
P
2
P
4
1
15. 4 P
1
P
2
P
3
, P
1
P
2
P
4
, P
3
P
4
1
16. 4 P
1
P
2
P
3
, P
1
P
2
P
4
, P
1
P
3
P
4
1
17. 4 P
1
P
2
P
3
, P
1
P
2
P
4
, P
1
P
3
P
4
, P
2
P
3
P
4
1 Condent ial (3, 4)
18. 4 P
1
P
2
P
3
P
4
1 Condent ial (4, 4)
Se pot construi sisteme ideale pentru 10 din aceste 18 structuri de acces.
7.6. CONSTRUCT IA PRIN DESCOMPUNERE 23
7.6 Construct ia prin descompunere
Alta modalitate de construire a sistemelor de partajare a secretelor, remar-
cabila prin performant ele rezultatelor, care maximizeaza rata de informat ie.
Denit ia 7.5 Fie o structura de acces cu baza
0
si / un set de chei.
O / - descompunere ideala a lui
0
este un set
1
, . . . ,
n
cu proprieta-
t ile
1.
k
0
(1 k n);
2.
n
k=1
k
=
0
;
3. k (1 k n) exista un sistem perfect de partajare a secretelor,
ideal, cu mult imea de chei /, peste mult imea de participant i
{
k
=
B
k
B.
Pentru o / - descompunere ideala a structurii de acces se poate construi
usor un sistem perfect de partajare a secretelor.
Teorema 7.6 Fie o structura de acces cu baza
0
, / un set de chei si
o / - descompunere ideala
1
, . . . ,
n
a lui .
Pentru ecare participant P
i
, e R
i
= cardk [ P
i
{
k
.
Exista atunci un sistem perfect de partajare a secretelor cu structura de
acces si rata de informat ie = 1/R, unde R = max
1iw
R
i
.
24 PRELEGEREA 7. SISTEME DE PARTAJARE A SECRETELOR
O generalizare a acestui rezultat pentru s / - descompuneri ideale se
bazeaza pe teorema
Teorema 7.7 (Construct ia prin descompunere): Fie o structura de ac-
ces de baza
0
, s 1 un numar ntreg, si / un set de chei.
Presupunem ca s-a construit o / - descompunere ideala
T
j
=
j,1
, . . . ,
j,n
j
a lui
0
, si e {
j,k
mult imea participant ilor la structura de acces
j,k
.
Pentru ecare participant P
i
denim
R
i
=
s
j=1
cardk [ P
i
{
j,k
.
Exista atunci un sistem perfect de partajare a secretelor, cu structura
de acces , a carui rata de informat ie este = s/R, unde R = max
1iw
(R
i
).
Exemplul 7.6 Sa consideram structura de acces 5 din tabel, a carei baza
nu este un graf multipartit complet.
Fie p un numar prim si sa consideram doua Z
p
- descompuneri:
T
1
=
1,1
,
1,2
cu
1,1
= P
1
, P
2
1,2
= P
2
, P
3
, P
3
, P
4
si
T
2
=
2,1
,
2,2
cu
2,1
= P
1
, P
2
, P
2
, P
3
2,2
= P
3
, P
4
1,2
= P
2
, P
3
, P
2
, P
4
, P
3
, P
4
si
T
2
=
2,1
,
2,2
cu
2,1
= P
1
, P
2
, P
2
, P
3
, P
2
, P
4
2,2
= P
3
, P
4
T
1
corespunde lui K
2
si K
3
, iar T
2
lui K
2
si K
1,3
; deci ambele sunt
/ - descompuneri. Aplicand Teorema 7.7 cu s = 2 se va obt ine = 2/3.
Similar exemplului precedent, o construct ie efectiva se realizeaza astfel:
D alege aleator (si independent) patru elemente b
1,1
, b
1,2
, b
2,1
, b
2,2
Z
p
.
Pentru o cheie (K
1
, K
2
) Z
2
p
, arbitrul va distribui componentele astfel:
1. P
1
primeste b
1,1
+ K
1
si b
2,1
+ K
2
;
2. P
2
primeste b
1,1
, b
1,2
si b
2,1
;
3. P
3
primeste b
1,2
+ K
1
, b
2,1
+ K
2
si b
2,2
;
4. P
4
primeste b
1,2
+ 2K
1
, b
21
+ K
2
si b
2,2
+ K
2
.
(toate calculele sunt efectuate n Z
p
).