Sunteți pe pagina 1din 605

Sisteme generale de criptare

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

Domeniul cuprinde atat operat ia de criptare


(cifrare) a unui text, cat si eventualelencercari
de descifrare si de aare a cheii de criptare.

In unele lucrari, cadrul general de lucru este


numit criptologie, termenul de criptograe de-
semnand numai operat ia de cifrare si descifrare
legala.

Cuvantul inventat n 1658 de zicianul englez


Thomas Browne este format din cuvintele grecesti
cryptos ascuns si grae scriere.
3
Situat ia generala de care se ocupa criptograa
este urmatoarea:
Criptanalist
Expeditor
Destinatar
6
-
4

In general, hackerul Oscar poate avea doua


tipuri de comportament:
Pasiv: se mult umeste sa intercepteze mesa-
jele si sa le citeasca, folosindu-le n scop
personal;
Activ: doreste sa modice mesajele, sa le
schimbe ordinea sau sa introduca propriile
sale mesaje, n intent ia de a acceptat de
Bob drept Alice.

In acest caz, mesajul va trebui sa verice


nafara de condit ia de condent ialitate si pe
cea de autenticitate: Bob trebuie sa e sigur
ca mesajul primit a fost de la Alice.
5

In unele cazuri, problema se poate complica


prin faptul ca exista anumite mesaje pe care
Alice neaga ca i apart in, desi le-a trimis chiar
ea.

In acest caz trebuie prevazute anumite proto-


coale care sa ntareasca proprietat ile de au-
tenticare; proprietat i care sa o sileasca pe
Alice sa si recunoasca propriile mesaje (non-
repudiere).
6
Terminologie:
Un mesaj n forma sa originara este numit text
clar.
Expeditorul rescrie acest mesaj folosind o meto-
da cunoscuta numai de el (eventual si de desti-
natar); spunem ca el cripteaza (sau cifreaza)
mesajul, obt inand un text criptat.
Destinatarul primeste textul cifrat si l decrip-
teaza, stiind metoda folosita pentru criptare.
Deci Alice si Bob trebuie sa stabileasca ntr-o
etapa preliminara toate detaliile de criptare si
de decriptare.
7
Denit ia 2. Un sistem de criptare este o struc-
tura (P, C, K, E, D), unde:
P= {w | w V

} este mult imea textelor


clare, scrise peste un alfabet nevid V
(uzual V = {0, 1}).
C= {w | w W

} este mult imea textelor


criptate, scrise peste un alfabet nevid W
(uzual W = V ).
K este o mult ime de elemente numite chei.
Fiecare cheie K K determina o metoda
de criptare e
K
E si o metoda de de-
criptare d
K
D.
e
K
: P C si d
K
: C P sunt funct ii cu
proprietatea d
K
(e
K
(w)) = w, w P.
8

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

Intreaga disciplina numita criptograe se ba-


zeaza pe conjectura
P= NP.
P reprezinta clasa problemelor rezolvabile prin
algoritmi a caror complexitate este marginita
superior de o funct ie polinomiala n lungimea
datelor de intrare. Modelul standard de calcu-
labilitate este masina Turing.
NP este clasa problemelor rezolvabile prin al-
goritmi nedeterministic polinomiali (care sunt
inclusi n algoritmii de complexitate cel put in
exponent iala).
Evident, P NP, dar se pare ca problema egali-
tat ii este nedecidabila (n termeni matematici).
13
Exemplul 1. Unul din primele sisteme de criptare
cunoscute este sistemul de criptare Cezar.
Sa consideram alfabetul latin scris, n ordine
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
Fie k un numar ntreg din intervalul [0, 25].
Rescriem alfabetul latin permutat ciclic, ncepand
nsa cu litera avand numarul de ordine k (litera
A are numarul de ordine 0).
Aceasta noua scriere o asezam sub prima scriere,
astfel (am presupus k = 2):
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
C D E F G H I J K L M N O P Q R S T U V W X Y Z A B
14
NIMIC NOU = PKOKEPQW
(din motive suplimentare de securitate, spat iile
dintre cuvinte se ignora de obicei).
Bob cunoaste (ind destinatar legal) cheia de
criptare e
k
.
Cheia sa de decriptare este d
k
= e
26k
.
Pe baza ei Bob va putea construi cele doua linii
ale tabelului:
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
Y Z A B C D E F G H I J K L M N O P Q R S T U V W X
PKOKEPQW = NIMICNOU
15
Codicare:
A B C D E F G H I J K L M
0 1 2 3 4 5 6 7 8 9 10 11 12
N O P Q R S T U V W X Y Z
13 14 15 16 17 18 19 20 21 22 23 24 25

In acest fel putem opera pe inelul nit Z


26
.
P = C = K= Z
26
Pentru K K ales arbitrar (si m P, C):
e
K
(m) = m+K (mod 26)
si
d
K
() = K (mod 26)
16
Exista doua tehnici de construct ie a sistemelor
de criptare (Claude Shannon, 1949):
Confuzie: Scopul este de a bloca orice
informat ie obt inuta prin analize statistice
sau redondant e ale textului criptat.
O modalitate simpla de a obt ine un grad
ridicat de confuzie se bazeaza pe utilizarea
de substitut ii.
Difuzie: Aceasta tehnica disipeaza redon-
dant a specica textului clar.
Practic, o modicare a unui singur caracter
din textul clar provoaca multiple modicari
n textul criptat.
Deci pentru distingerea unei redondant e din
textul clar este necesara studierea unei can-
titat i apreciabile de text criptat.
17
Secret perfect (perfect secrecy)
Un sistem de criptare are proprietatea de se-
cret perfect daca din textul criptat, Oscar nu
poate obt ine nici o informat ie referitoare la tex-
tul clar.
Denit ia 3. Un sistem de criptare este perfect
secret daca
Pr[x|y] = Pr[x]
pentru orice x P, y C.
Probabilitatea aposteriori ca textul clar x sa e
criptat n textul recept ionat y este identica cu
probabilitatea apriori ca textul clar sa e x.
18
Urmatoarea teorema caracterizeaza proprieta-
tea de secret perfect pentru majoritatea sis-
temelor de criptare simetrice:
Teorema 1. Fie (P, C, K, E, D) un sistem de
criptare cu
card(K) = card(C) = card(P).
El asigura un secret perfect daca si numai daca
toate cheile sunt utilizate cu probabilitat i egale
si x P, y C exista o cheie unica K K cu
y = e
K
(x).
19
Criptanaliza sistemelor de criptare
Denit ia 4. Procesul de determinare a unei
chei K folosind un text criptat (asociat even-
tual cu alte informat ii auxiliare) se numeste
criptanaliza.
Decriptarea si criptanaliza au n nal acelasi
scop: aarea textului clar.
Diferent a consta n faptul ca n criptanaliza
acesta trebuie aat fara a sti cheia de de-
criptare.
20
Nu subestimat i niciodata pe criptanalist.
regula vericata din punct de vedere istoric
pentru toate sistemele create pana n prezent:
acestea sau au fost sparte sau trebuie sa se
revizuiasca periodic pentru a rezista atacurilor
permanente ale intrusilor.
21
Oscar are la dispozit ie facilitat i de calcul ex-
celente, adesea superioare celor de care dispun
cei doi parteneri Alice si Bob.

In secolul XIX Kirko lanseaza o ipoteza fun-


damentala (numita Principiul lui Kerko):
Criptanalistul stie toate detaliile sistemului de
criptare folosit, inclusiv algoritmii utilizat i pre-
cum si implementarile lor.
Ca o consecint a, securitatea unui sistem de
criptare se bazeaza n totalitate pe cheie.
22
Denit ia 5. Un atac este un algoritm ecient
care pentru un sistem de criptare xat
gaseste elemente protejate care pot determi-
nate (mult mai) rapid decat au fost specicate
de autori.
Evident, unele atacuri pot sa nu contrazica se-
curitatea sistemului ci doar sa prevada anumite
slabiciuni posibile, de care utilizatorii trebuie sa
t ina cont.
23

In general, scopul criptograei este desemnarea


de algoritmi (protocoale, scheme, servicii) de
criptare siguri (din punct de vedere al com-
plexitat ii), n timp ce criptanaliza se concen-
treaza pe construirea de atacuri asupra sis-
temelor de criptare, avand ca scop determin-
area cheilor de criptare.
Ulterior, atacurile potent ial reusite furnizeaza
criterii de construct ie a sistemelor de criptare,
si vor face parte implicit din criptograe.
Criteriile de construct ie obt inute dintr-un atac
permit realizarea de sisteme de criptare imune
(rezistente) la atacul respectiv.
24
Criptanaliza examineaza cu atent ie toate slabi-
ciunile (faliile) unui sistem si ncearca sa con-
struiasca atacuri bazate pe aceste slabiciuni,
pentru a demonstra ca sistemul nu este sigur
(si deci poate spart de Oscar).

In general este imposibil de demonstrat ca un


sistem rezista la orice fel de atac, n timp ce
opusul sau este totdeauna posibil: este su-
cient de descris un atac.
Metodele de atac (cum ar furtul, mituirea,
presiuni zice si psihice asupra persoanelor im-
plicate n construirea si utilizarea sistemului de
criptare) care nu sunt legate direct de slabi-
ciunile sistemului de criptare, nu intran dome-
niul criptanalizei.
25

In general un sistem de criptare poate


necondit ionat sigur,
condit ionat sigur.
Un sistem necondit ionat sigur este imun la orice
tip de atac.

In acest caz, securitatea sa depinde de di-


cultatea de a rezolva problema matematica pe
care se bazeaza construirea cheii.
26

In general, un criptanalist este pusn fat a urma-


toarelor situat ii (care solicita strategii diverse):
1. Oscar stie numai textul criptat w; n acest
caz atacurile sunt direct legate de lungimea
textului.
Cel mai simplu atac n acest caz consta n par-
curgerea tuturor cheilor posibile si vericarea
textului criptat, pana se gaseste cheia corecta.
Este atacul prin fort a bruta si el reuseste tot-
deauna.
27
Teorema 2. Pentru a ghici o cheie din n vari-
ante posibile sunt necesare n medie (n +1)/2
ncercari.
De exemplu, pentru un sistem de criptare cu
card(K) = 2
56
, se folosesc aproximativ 2
55
ncercari pana se gaseste cheia corecta.

In cazul cand numarul cheilor posibile este mic,


aceasta cheie se poate aa foarte usor dupa un
numar mic de ncercari.
De aceea sunt folosite obligatoriu sisteme de
criptare cu card(K) foarte mare.
Pentru o cheie care ocupa n bit i sunt necesare
n medie 2
n1
ncercari (daca nu exista nici o
informat ie suplimentara).
O extindere a lungimii cheii la n+1 bit i dubleaza
deci spat iul de cautare.
28

In momentul de fat a, tehnica de calcul ofera


atacuri prin fort a bruta eciente pentru cheile
de lungimi mai mici de 128 bit i; asa ca sis-
temele de criptare actuale folosesc n general
chei de 1024 bit i sau chiar mai mult (except ie:
sistemele bazate pe curbe eliptice).
Atacul prin fort a bruta poate mbunatat it
semnicativ cu alte informat ii legate de sis-
tem, informat ii care pot reduce numarul cheilor
posibile.
Multe atacuri folosesc diverse strategii pentru
a reduce semnicativ spat iul cheilor posibile,
dupa care se foloseste atacul prin fort a bruta.
29
2. Oscar stie cel put in o pereche de caractere
(text clar, text criptat).
Din cunoasterea catorva perechi (x, e
K
(x)) cu
x P Oscar va ncearca sa decripteze ntregul
text criptat interceptat.
Exemplul 2. La sistemul de criptare Cezar, o
singura pereche (a, e
K
(a)), dezvaluie imediat
cheia si implicit duce la decriptare.
Exemplul 3. Aceasta a fost situat ian care s-a
aat orientalistul francez Jean Francois Cham-
pollion, cand a descifrat hieroglifele folosind
piatra de la Rosetta.
30
Oscar cunoaste criptarea unor texte clare
selectate de el.
Acesta este atacul cu text clar ales, luatn con-
siderare de majoritatea studiilor de criptanaliza.
31
Exemplul 4. Sistemul de criptare Hill (creat n
1929 de Lester Hill).
Denim un numar ntreg xat d (d 2). Se
construiesc mult imile
P= C= (Z
26
)
d
,
K= {M | M M
d
(Z
26
), det(M) = 0}.
Textul clar w se mparte n blocuri de lungime
d : w =
1

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

Daca textul clar este w = FRAC, vom avea

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

cu a, b, c, d {0, 1, . . . , 25}, astfel


ca

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

Oscar solicita criptarea lui BRAD si primeste


LKGP, de matrice
B =

11 10
6 15

Deci el dispune de perechea (BRAD, LKGP).


35
Oscar determina ntai
A
1
=

1 3
0 9

Apoi, din ecuat ia A M = B, va gasi solut ia


M = A
1
B =

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

In general, sistemele de criptare clasice


se numesc si sisteme simetrice.
Motive:
Odata cu aarea cheii de criptare e
K
, cheia
de decriptare d
K
se obt ine imediat, ind
funct ia inversa.
Alice si Bob dispun de aceeasi informat ie
relativ la sistemul de criptare.
Sistemele de criptare simetrice se mpart n
doua clase mari: cifruri de permutare si cifruri
de substitut ie.
2
Cifruri de permutare
Textul clar se mparte n blocuri de n (n 2)
caractere, dupa care ecarui bloc i se aplica o
permutare S
n
(mult imea permutarilor de n
elemente).
Elementele n si sunt xate.
este cheia de criptare, iar
1
va cheia de
decriptare.
3
Exemplul 1. Cheie de criptare

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

este echivalent cu un cifru


de permutare bazat pe cheia .
Mai mult, M
1

= 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

In operat ia de criptare, ecare caracter a va


reprezentat printr-o pereche (x, y)
(x, y |A, B, C, D, E) care dau linia respectiv
coloana pe care se aa a.
19
Variante ale sistemului Polybios.
Daca se folosesc drept coordonate cifrele 1, 2,
3, 4, 5 n loc de A, B, C, D, E, sistemul a fost
folosit n penitenciarele rusesti, iar ulterior de
catre prizonierii americani din Vietnam.
Este foarte simplu denvat at si poate aplicat
folosind diverse semne drept coordonate (cifre,
puncte, guri, batai de toba etc).
A fost utilizat de asemenea n cadrul altor sis-
teme de criptare, cum ar sistemul nihilist,
cifrul ADFGVX (utilizat de armata germana n
primul razboi mondial) sau sistemul Bid, in-
ventat de Dellastell n 1901.
20
Sistemul cavalerilor de Malta
Sistem de criptare monoalfabetic bazat pe stili-
zarea unei cruci.
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
Liniile carencadreaza ecare caracter (inclusiv
spat iul), mpreuna cu punctele (doua, unul sau
zero) indica substitut ia caracterului respectiv.
DUPA DOUAZECI DE ANI
:
.
: :
.
: : : : : : :
.
:
21
Criptanaliza sistemelor de criptare monoalfabetice
Frecvent a de aparit ie a caracterelor n text.
Daca un text criptat este sucient de lung si
se cunoaste limba n care este scris textul clar,
sistemul poate spart printr-un atac bazat pe
frecvent a aparit iei literelor ntr-o limba.
Cu cat un text criptat este mai lung, cu atat
frecvent a literelor folositen text este mai apro-
piata de frecvent a literelor utilizate n limba n
care este scris mesajul.
O comparare ntre cele doua relat ii de ordine
(cea a caracterelor din textul criptat si cea a
literelor din alfabetul limbii curente) conduce
la realizarea catorva corespondent e
(litera text clar litera text criptat),
care releva cheia de criptare.
Pentru sistemul Cezar este sucienta stabilirea
unei singure perechi; pentru sistemul an tre-
buiesc doua perechi etc.
22
Pentru limba romana, un tabel al literelor cele
mai frecvent ntalnite este
Litera Frecvent a
A 13, 04 %
I 12, 89 %
E 11, 75 %
R 7, 39 %
T 6, 62 %
N 6, 44 %
U 6, 44 %
S 5, 50 %
C 5, 47 %
Litera Frecvent a
L 4, 58 %
O 3, 85 %
D 3, 68 %
M 3, 33 %
P 2, 91 %
F 1, 50 %
V 1, 26%
(restul caracterelor au o n mod normal o
frecvent a de aparit ie sub 1 %).
23
Exemplul 6. S-a interceptat urmatorul text,
criptat cu un sistem monoalfabetic (nu se stie
exact ce sistem a fost utilizat).
lqakc sp gcxk aca pcmgqb kq kxc pkersmpqsb
vk vsmgxkbc mkacpc tcacpbqlqs vk cgele
cmtxq ms nocxgsb mbxcsp vk exsgk oxcbqsbcbk
texbslk spclbk gcxk cmgqpvkcq bxkgcbexslk
gqxbslk xktxknkpbcq tkpbxq mbxcsps qp
cfkxbsmakpb mqtcxcbex vcx lsatkvk pq
bxkrqscq mc zsk txkc gqxsems psgs mc mk
cmbktbk mc czlk acxk lqgxq vk lc gks gq
gcxk fkpkcq sp gepbcgb

In prima etapa, vom numara de cate ori apare


n text ecare caracter.
c k x b s q g p m l e
39 38 27 25 23 20 19 18 18 11 9
p a v b n o f z
8 7 7 2 2 2 2 2
24
Caracterele cele mai frecvente sunt c si k.
Pe de-alta parte, cele mai frecvente caractere
din limba romana sunt A, I si E.

In mod cert,
A |c, k.
Sunt patru opt iuni posibile, din care trei se
elimina rapid. Raman
c A, k E.
lqaEA sp gAxE aAa pAmgqb Eq ExA pEersmpqsb
vE vsmgxEbA mEaApA tAaApbqlqs vE Agele
Amtxq ms noAxgsb mbxAsp vE exsgE oxAbqsbAbE
texbslE spAlbE gAxE AmgqpvEAq bxEgAbexslk
gqxbslE xEtxEnEpbAq tEpbxq mbxAsps qp
AfExbsmaEpb mqtAxAbex vAx lsatEvE pq
bxErqsAq mA zsE txEA gqxsems psgs mA mE
AmbEtbE mA AzlE aAxE lqgxq vE lA gEs gq
gAxE fEpEAq sp gepbAgb
25
Cuvantul ExA de pe primul rand are carac-
terul din mijloc (x) de frecvent a ridicata (27
aparit ii); deci el trebuie sa corespunda unei
litere frecvente din limba romana si n plus
sa aiba semnicat ie semantica.
Concluzie: acest cuvant este ERA. Deci
x R
lqaEA sp gARE aAa pAmgqb Eq ERA pEersmpqsb
vE vsmgREbA mEaApA tAaApbqlqs vE Agele
AmtRq ms noARgsb mbRAsp vE eRsgE oRAbqsbAbE
teRbslE spAlbE gARE AmgqpvEAq bREgAbeRsleR
gqRbslE REtREnEpbAq tEpbRq mbRAsps qp
AfERbsmaEpb mqtARAbeR vAR lsatEvE pq
bRErqsAq mA zsE tREA gqRsems psgs mA mE
AmbEtbE mA AzlE aARE lqgRq vE lA gEs gq
gARE fEpEAq sp gepbAgb
26
Cuvantul REtREnEpbAq are corespondent n
limba romana numai pe
REPREZENTA|I, M, U.
Se obt in decriptarile
t P, n Z, p N, b T
lqaEA sp gARE aAa NAmgqT Eq ERA NEersmNqsT
vE vsmgRETA mEaANA PAaANTqlqs vE Agele
AmPRq ms ZoARgsT mTRAsN vE eRsgE oRATqsTATE
PeRTslE sNAlTE gARE AmgqNvEAq TREgATeRsleR
gqRTslE REPREZENTAq PENTRq mTRAsNs qN
AfERTsmaENT mqPARATeR vAR lsaPEvE Nq
bRErqsAq mA zsE PREA gqRsems Nsgs mA mE
AmTEPTE mA AzlE aARE lqgRq vE lA gEs gq
gARE fENEAq sN geNTAgT
27
PENTRq este corect numai pentru q U,
AmTEPTE pentru m S.
Apoi NASgUT da g C, SUPARATeR da
e O, iar din fENEAU deducem f V .
lUaEA sp CARE MAM NASCUT EU ERA NEOrsSNUsT
DE vsSCRETA SEaANA PAaANTUlUs DE ACOlO ASPRU
Ss ZoARCsT STRAsN vE ORsCE oRATUsTATE
PORTslE sNAlTE CARE ASCUNvEAU TRECATORslOR
CURTslE REPREZENTAU PENTRU STRAsNs UN
AfERTsSaENT SUPARATOR vAR lsaPEvE NU
bRErqsAU SA zsE PREA CURsOms NsCs SA SE
ASTEPTE mA AzlE aARE lUCRU vE lA CEs CU
CARE VENEAU sN CONTACT
28
Ultimele caractere:
l L, a M, r B, s I, v D
Textul clar nal este:
LUMEA IN CARE MAM NASCUT EU ERA NEOBISNUIT
DE DISCRETA SEMANA PAMANTULUI DE ACOLO ASPRU
SI ZGARCIT STRAIN DE ORICE GRATUITATE
PORTILE INALTE CARE ASCUNDEAU TRECATORILOR
CURTILE REPREZENTAU PENTRU STRAINI UN
AVERTISMENT SUPARATOR DAR LIMPEDE NU
TREBUIAU SA FIE PREA CURIOSI NICI SA SE
ASTEPTE SA AFLE MARE lUCRU DE LA CEI CU
CARE VENEAU IN CONTACT
(textul provine din romanul Viat a ca o corida
de Octavian Paler).
29
Tabelele de frecvent a a literelor pentru prin-
cipalele limbi europene (din ecare limba sunt
numai cele mai frecvente 9 litere):
Engleza Frecvent a
E 12, 31 %
T 9, 59 %
A 8, 05 %
O 7, 94 %
N 7, 19 %
I 7, 18 %
S 6, 59 %
R 6, 03 %
H 5, 14 %
Germana Frecvent a
E 18, 46 %
N 11, 42 %
I 8, 02 %
R 7, 14 %
S 7, 04 %
A 5, 38 %
T 5, 22%
U 5, 01%
D 4, 94%
Franceza Frecvent a
E 15, 87 %
A 9, 42 %
I 8, 41 %
S 7, 90 %
T 7, 26 %
N 7, 15 %
R 6, 46 %
U 6, 24 %
L 5, 34 %
Spaniola Frecvent a
E 13, 15 %
A 12, 69 %
O 9, 49 %
S 7, 60 %
N 6, 95 %
R 6, 25 %
I 6, 25 %
L 5, 94 %
D 5, 58 %
30
Sisteme de criptare polialfabetice
Substitut ia unui caracter variaza n text, n
funct ie de diversi parametri (pozit ie, context
etc.).
Se pare ca primul sistem de criptare polialfa-
betic a fost creat de Leon Battista n 1568.
31
Sistemul homofonic
Este un sistem intermediar ntre sistemele
mono si cele poli-alfabetice.
Principalul lui scop este de a evita atacul prin
frecvent a de aparit ie a caracterelor.
Fiecarui caracter a 1 i se asociaza o mult ime
H(a) ( astfel ncat:
1. H(a) H(b) = a ,= b;
2. Daca a apare mai frecvent n textele clare,
atunci card((H(a)) card(H(b)).
Criptarea unui caracter a 1 se face cu un
element ales aleator din H(a).
Pentru decriptarea lui y ( se cauta o mult ime
H(a) astfel ca y H(a).
32
Exemplul 7. Sa consideram 1= |a, b si
H(a) = |001, 010, H(b) = |000, 011, 101, 111.
Pentru criptarea textului ab se poate folosi ori-
care din secvent ele
001000, 001011, 001101, 001111,
010000, 010011, 010101, 010111
Sistemul homofonic este mult mai rezistent
la un atac bazat numai pe textul criptat, dar
cedeaza usor la un atac cu text clar ales.
33
Sistemul de criptare Playfair
A fost inventat 1854 de Sir Charles Wheat-
stone. Promovat si sust inut (pentru a adop-
tat ca cifru ocial al Marii Britanii) de catre
baronul Lyon Playfair de St. Andrews.
Din cele 26 litere ale alfabetului se elimina una
de frecvent a minima; sa spunem Q.
Restul literelor se aranjeaza arbitrar sub forma
unui patrat 5 5.
Construct ia va exemplicata folosind tabloul:
S Y D W Z
R I P U L
H C A X F
T N O G E
B K M J V
Acest tabel va forma atat cheia de criptare cat
si cea de decriptare.
34
Regulile de criptare/decriptare:
Textul clar este separat n blocuri de cate
doua caractere (ignorand spat iile).
Nici un bloc sa nu cont ina aceiasi litera, iar
textul sa e de lungime para.
Criptarea unui bloc: daca cele doua litere
nu sunt plasate n tabel pe aceeasi linie
sau coloana, se cerceteaza colt urile drep-
tunghiului determinat de cele doua litere.
Perechea este criptatan celelalte doua col-
t uri opuse.
Daca cele doua litere se gasesc pe aceeasi
linie (coloana), se merge ciclic cu o pozit ie
la dreapta (respectiv jos).
Deci CA se cripteaza n AX, WX n UG,
CA n AX etc.
AFARA PLOUA XHHPPDPEPX.
35
O permutare ciclica a liniilor si coloanelor nu
modica criptarea. De exemplu, patratul
P U L R I
A X F H C
O G E T N
M J V B K
D W Z S Y
obt inut prin deplasarea cu doua pozit ii spre
stanga si o pozit ien sus, este echivalent cu cel
init ial (ambele dau aceiasi cheie de criptare).
Regulile de baza pot modicate sau comple-
tate dupa necesitat i.
Astfel, se poate adauga din loc n loc cate o
litera falsa (cu frecvent a foarte redusa, cum ar
X, Y ) care sa modice textul criptat.
Patratul 55 poate nlocuit cu un dreptunghi
46 sau 38, cu schimbarile corespunzatoare
n alegerea literelor care se elimina.
36
Pentru a pastra cheia n sigurant a, se reco-
manda memorarea acesteia.
Cum o astfel de cheie este extrem de greu de
memorat, se foloseste un cuvant cheie sau o
propozit ie cu toate literele distincte.
Acesta cuvant este scris la nceputul tabloului.
Spat iile ramase sunt completate cu restul lite-
relor alfabetului, scrise n ordinea aparit iei lor.
37

In preajma primului razboi mondial, armata


romana folosea un dreptunghi 3 8 din care
lipseau literele Q si K.
Cuvantul cheie era ROMANESC. Un astfel de
tablou putea avea de exemplu forma
R O M A N E S C
B D F G H I J L
P T U V W X Y Z
Ca si sistemul anterior, Playfair rezista la
atacuri bazate pe frecvent a aparit iei, dar nu si
la cele prin text clar ales.
Implementari actuale folosesc o reprezentare
binara a literelor; n plus, dupa ce s-a obt inut o
pereche criptata, aceasta se combina printr-un
XOR (adunare modulo 2) cu perechea criptata
anterior.
38
Sistemul de criptare Vigenere
Numele sistemului vine de la baronul francez
Blaise de Vigenere (1523 1596) diplomat la
curtea regelui Henry III (alte surse indica drept
real inventator al sistemului pe Giovan Batista
Belaso n 1553).
Reamintim codicarea:
A B C D E F G H I J K L M
0 1 2 3 4 5 6 7 8 9 10 11 12
N O P Q R S T U V W X Y Z
13 14 15 16 17 18 19 20 21 22 23 24 25
Denim 1 = (= Z
26
, |= Z
+
26
.
39
O cheie K | este un cuvant avand codi-
carea numerica k
0
k
1
. . . k
p1
.
Fie
a = a
0
a
1
. . . a
n
codicarea textului clar care trebuie transmis.
Textul criptat va
e
K
(a) = x = x
0
x
1
. . . x
n
unde
x
i
= a
i
+k
i (mod p)
(mod 26)
40
Exemplul 8. Fie cuvantul cheie FOCAR; deci
p = 5 si K = 5 14 2 0 17.
Sa criptam cheie textul clar
NU POT VENI AZI
Codicarea sa este
a = 13 20 15 14 19 21 4 13 8 0 25 8.
Sub ecare numar din a se aseaza cate un
numar din K; cand cheia se termina, ea se
reia ciclic, pana se termina a.
Deci vom avea
13 20 15 14 19 21 4 13 8 0 25 8
5 14 2 0 17 5 14 2 0 17 5 14
18 8 17 14 10 0 18 15 8 17 4 22
S I R O K A S P I R E W
Linia a treia cont ine suma modulo 26 a nu-
merelor de pe primele doua linii; acesta este
textul criptat rezultat.
41
Decriptarea se realizeaza similar, scazand
(modulo 26) din codul caracterului criptat,
codul caracterului corespunzator din cheie.
O varianta a sistemul Vigenere este sistemul
Beaufort; aici relat ia de criptare este
x
i
= k
i (mod p)
a
i
(mod 26), (i 0)
Avantajul sistemului Beaufort consta n faptul
ca ecuat ia de criptare se aplica si la decriptare
(a
i
= k
i (mod p)
x
i
).
42
Alta varianta este sistemul Autoclave, atribuit
matematicianului Cardano.
Aici cheia se foloseste doar pe primele pozit ii,
dupa care este utilizat drept cheie textul clar.
Exemplul 9. Cuvantul cheie COV OR si textul
clar
A VENIT TOAMNA
Text clar: A V E N I T T O A M N A
Cheie: C O V O R A V E N I T T
Text criptat C J Z B Z T O S N U G T
43
Sistemul Vigenere a fost considerat unul din
cele mai sigure sisteme de criptare.

In 1917 de exemplu, revista Scientic Ameri-


can l considera imposibil de atacat.
Numai ca acest sistem a fost spart de Kasiski
nca din 1863 (si independent de Babbage n
1854).
44
Criptanaliza sistemului Vigenere
Fie
x = x
0
x
1
. . . x
n1
textul criptat cu cheia
K = k
0
k
1
. . . k
p1
.
Putem aranja acest text sub forma unei matrici
cu p linii si ]n/p| coloane, astfel
x
0
x
p
x
2p
. . .
x
1
x
p+1
x
2p+1
. . .
.
.
.
x
p1
x
2p1
x
3p1
. . .
Elementele de pe prima linie au fost criptate
dupa formula
x
pr
= a
pr
+k
0
(mod 26), (r 0)
adica folosind un sistem Cezar
(k
0
ind o valoare xata din Z
26
).

In mod similar si celelalte linii.


45
Daca se cunoaste lungimea p a cheii, problema
se reduce la criptanaliza a p texte criptate cu
Cezar sistem de criptare monoalfabetic.
Sunt cunoscute doua metode pentru aarea
lungimii cheii:
testul lui Kasiski
indexul de coincident e (denit n 1920 de
criptanalistul american Wolfe Friedman).
Prima metoda constan studiul textului criptat
si aarea de perechi de segmente de cel put in
3 caractere identice.
Pentru ecare astfel de pereche, se determina
distant a dintre segmente.
Dupa ce s-au gasit mai multe astfel de distan-
t e, valoarea lui p va cel mai mare divizor
comun al lor (sau eventual un divizor al aces-
tuia).
46
Exemplul 10. Oscar intercepteaza urmatorul
text criptat, despre care banuie ca s-a folosit
Vigenere:
D V L O E G O G L C G I W W A F R S C K A
R V S S R A A K R S T U H D A Q L N C J T
S R U J V C W E A W K O H Z T I E U A R I
Q L N C J C I K A Q V A G K A S J T S G R
W D A G K R C W A O L N S Z P C V Z W Z C
S C E P I E R V M W Y A W V M W E E G T U
Folosind metoda Kasiski, Oscar gaseste secven-
t a QLNCJ care apare de doua ori, avand distan-
t a 27.
De asemenea, apar doua cuvinte foarte asema-
natoare: AQLN si AOLN, la distant a 57 unul
de altul.
Deci putem banui ca avem de-a face cu un
cuvant cheie de lungime cmmdc(27, 57) = 3.
47
Rescriem textul pe coloane, ecare coloana
avand trei elemente. Anume:
D O O C W F C R S A S H Q C S J W W H I A Q C I Q G
V E G G W R K V R K T D L J R V E K Z E R L J K V K
L G L I A S A S A R U A N T U C A O T U I N C A A A
S S W G C O S C W S P R W W W G
J G D K W L Z V Z C I V Y V E T
T R A R A N P Z C E E M A M E U
Numaram frecvent a aparit iei literelor pe ecare
linie
A B C D E F G H I J K L M
I 2 0 6 1 0 1 3 2 2 1 0 0 0
II 0 0 1 2 4 0 3 0 1 3 6 3 0
III 11 0 3 0 3 0 1 0 2 0 0 2 2
N O P Q R S T U V W X Y Z
I 0 3 1 3 2 7 0 0 1 8 0 0 0
II 0 0 0 0 4 0 2 0 6 2 0 1 3
III 3 1 1 0 3 2 3 4 0 0 0 0 1
48

In limba romana, primele litere ca frecvent a


sunt AE I, aate la distant a egala una de
alta.
Deci vom cauta pe ecare linie tripletele de
litere situate pe pozit iile
(k, k +4, k +8)
avand frecvent a semnicativ de mare.
- Pentru linia 3, alegerea este simpla: ea este
chiar AEI (16 aparit ii din 49 posibile), deci
o deplasare 0 n codul Cezar.
- Pentru prima linie, sunt doua posibilitat i: O
S W (deplasare 14) sau S W A (deplasare
18), ambele cu cate 18 aparit ii.
- Tot doua variante apar si pentru a doua linie:
C G K (deplasare 2) cu 10 aparit ii, sau
R V Z (deplasare 14) cu 13 aparit ii.
49
Deplasarile dau exact codicarile cheii.
Deci trebuie luaten considerare patru variante
de cuvant cheie: OCA, ORA, SCA sau SRA.
O simpla vericare ret ine drept cuvant cheie
ORA, care conduce la decriptarea corecta a
textului (spat iile si semnele de punctuat ie se
pun corespunzator):
PELANGAPLOPIIFARASOT
ADESEAAMTRECUT
MACUNOSTEAUVECINIITOTI
TUNUMAICUNOSCUT
ACEASTAESTEPRIMASTROFAAUNEINPOEZIICELEBRE
DEMIHAIEMINESCU
50
Sisteme mecanice de criptare
1
Ordin crescut de complexitate si securitate.
Simplica operat iile de criptare/decriptare.
Capabile sa genereze un numar semnicativ de
chei posibile.
2
Sistemul Skitala
Skitala (baston n greceste) permite realiza-
rea unui sistem de criptare cu permutari.
Spartanii foloseau skitala (ncepand cu sec. V
.H.) n timpul campaniilor militare.
Ea a fost ment ionata prima oara de poetul grec
Archilochus (sec. VII .H). Abia la mijlocul se-
colului III .H. Apollonius din Rhodos specica
limpede utilizarea lui ca mijloc de criptare.
O descriere a modului de operare este data
apoi de Plutarh (50-120 A.D.).
Avantaj: rapid; nu comporta erori de trans-
mitere.
Dezavantaj: usor de spart.
3
Exemplul 1. O skitala ale carei dimensiuni per-
mit scrierea a 4 randuri, cu 5 caractere pe
ecare rand.
VINO MAINE LA INTALNIRE
Ignorand spat iile, mesajul va apare scris sub
forma:
________________________
| | V | I | N | O | M |
|__| A | I | N | E | L |__
| A | I | N | T | A | |
| L | N | I | R | E | |
|___|___|___|___|___|__|
Dupa derulare, mesajul scris pe banda de hartie
este:
VAALIIINNNNIOETRMLAE.
La decriptare, banda va rulata din nou si
ecare a patra litera va pe aceeasi linie.
4
Criptanaliza este foarte simpla.
Se iau pe rand valorile n = 2, 3, 4, . . ..
Pentru o astfel de valoare xata, se formeaza
n randuri de tipul
n +i, 2n +i, 3n +i, . . . (i = 1, 2, . . .)
care ulterior se concateneaza.
Exista o valoare a lui n pentru care textul astfel
format este inteligibil.
5
Cilindrul Jeerson
Ideea de masina de criptare apare clar prima
data la Thomas Jeerson, primul secretar de
Stat al Statelor Unite; acesta a inventat un
aparat de criptat numit roata de criptare, folo-
sit pentru securitatea corespondent ei cu aliat ii.
Thomas Jeerson a folosit acest aparat n pe-
rioada 17901802, dupa care se pare ca ideea
s-a pierdut.
6
Un cilindru Jeerson este format din n discuri
de dimensiuni egale (init ial n = 26 sau n = 36)
asezate pe un ax.
Discurile se pot roti independent pe ax, iar pe
muchea ecaruia sunt inscrise cele 26 litere ale
alfabetului, ntr-o ordine aleatoare.
La criptare, textul clar se mparte n blocuri de
n caractere.
Fiecare astfel de bloc se scrie pe o linie (gene-
ratoare) a cilindrului, rotind corespunzator e-
care disc pentru a aduce pe linie caracterul
cautat.
Oricare din celelalte 25 linii va constitui blocul
de text criptat.
7
Pentru decriptare este necesar un cilindru iden-
tic, n care se scrie pe o linie textul criptat (de
n caractere) si apoi se cauta printre celelalte
25 linii un text cu semnicat ie semantica.
Probabilitatea de a avea un singur astfel de
text creste cu numarul de discuri din cilindru.
8
Daca textul clar nu are nici o semnicat ie se-
mantica (s-a folosit o dubla criptare), atunci
trebuie convenita dinainte o anumita distant a
de criptare s (1 s 25).
Un cilindru cu n = 10 discuri poate realiza
10! = 3.628.800 texte criptate diferite pentru
acelasi text clar.
Cilindrul Jeerson realizeaza o substitut ie po-
lialfabetica de perioada n.
9
Exemplul 2. Fie n = 10 si cilindrul:
1 2 3 4 5 6 7 8 9 10
1 A A A A A A A A A A
2 R R P N V S P E I I
3 I O S I O O U S R H
4 E S Y M T R H U E E
5 K U L O Y P I P S T
6 O V U C L M S B L O
7 B I K U E U E L B M
8 C J B L B B N C C U
9 U L R T C D R D D C
10 D B C Y D Y Y H F D
11 J V D B G E D I N F
12 T C T F F C B J Y G
13 L G F G K V F F T J
14 N K G S N H G O G P
15 P N O H H F V G H Q
16 W P N J U K J K J B
17 Q Q E D P L K M K N
18 M T H E Q Q M N M V
19 S H M K R I T Q P W
20 V E Q P S J O R Q X
21 X D V Q W N L V V L
22 Z Y W V X G W W W Y
23 G W X X M T Q Y O K
24 H X Z R I W X X U R
25 Y Z I Z J X Z T X S
26 F M J W Z Z C Z Z Z
10
Text clar
TREI CULORI
T R E I C U L O R I
L O H M D B W G E H
N S M O G D Q K S E
P U Q C F Y X M L T
W V V U K E Z N B O
Q I W L N C C Q C M
M J X T H V A R D U
S L Z Y U H P V F C
V B I B P F U W N D
X F J F Q K H Y Y F
Z C A G R L I X T G
G G P S S Q S T G J
H K S H W I E Z H P
Y N Y J X J N A J Q
F P L D M N R E K B
A Q U E I G Y S M N
R T K K J T D U P V
I H B P Z W B P Q W
E E R Q A X F B V X
K D C V V Z G L W L
O Y D X O A V C O Y
B W T R T S J D U K
C X F Z Y O K H X R
U Z G W L R M I Z S
D M O A E P T J A Z
J A N N B M O F I A
11
Daca se considera o dubla criptare cu distant a
s = 3, atunci textul clar
AAAAAAAAAA
va criptat cu cilindrul anterior n
ESYMTRHUEE
Cilindrul Jeerson a fost reinventat ulterior de
mai multe ori, cea mai notabila ind se pare
masina de criptat M 94, care a fost utilizata
pana lanceputul celui de al doilea razboi mon-
dial.
12
Enigma
Prima jumatate a sec. XX este dominata de
masinile de criptat, o combinat ientre masinile
de scris si sisteme de criptare mecanice bazate
pe discuri.
Poate cea mai celebra masina de criptat a fost
masina germana Enigma.
Ea a fost proiectata la Berlin n 1918, de in-
ginerul german Arthur Scherbius.
Primul model (A) este prezentat la Congresele
Uniunii Postale Internat ionale din 1923 si 1924.
Modele ulterioare sunt folosite n mai multe
t ari europene si asiatice (Suedia, Olanda,
Marea Britanie, Japonia, Italia, Spania, SUA,
Polonia, Elvet ia)n scopuri comerciale, militare
sau diplomatice.
13
Din 1926 ncepe sa e preluata si de armata
germana, care dupa 1928 si deneste propriile
modele (G, I, K).

In total au fost construite circa 100.000 masini


Enigma, din care 40.000 n timpul razboiului.
Dupa 1945 aliat ii au capturat toate masinile
de pe teritoriul german, acestea indnca mult
timp considerate sigure.
Abia n 1970 au aparut primele informat ii
despre decriptarea de catre aliat i a unui mare
numar de mesaje criptate prin modelul mili-
tar Enigma si transmise prin radio n timpul
razboiului.
14

In linii mari, o masina Enigma are urmatoarele


componente:
Tastatura: Este o componenta mecanica
formata din:
Un pupitru de taste (similar unei masini
de scris);
n discuri adiacente, care se rotesc n ju-
rul unui ax.
Pe ecare disc sunt scrise cele 26
caractere alfabetice (la care uneori se
mai adauga trei caractere speciale);
Un mecanism de avans (similar ceasuri-
lor mecanice) care permite la apasarea
unei taste rotirea unuia sau mai multor
discuri cu un numar de pozit ii.
15
Circuite electrice: Criptarea unui caracter
se realizeaza electric.
La apasarea unei taste se nchide un cir-
cuit si lumineaza una sau mai multe lampi,
indicand litera de iesire.
Reector (Umkehrwalze): Componenta
specica masinilor de criptat Enigma, cu
scopul de a realiza un sistem de criptare
Beaufort.

In majoritatea variantelor, reectorul este


asezat pe ax dupa ultimul disc (din stanga);
el realizeaza o substitut ie (xata), dupa
care reintroduce noul caracter prin discuri
n sens invers, dar pe alt drum.
Deci o masina Enigma cu n discuri va re-
aliza criptarea unui caracter prin 2n + 1
substitut ii.
16
Tabela de conexiuni (Steckerbrett): Com-
ponenta (pozit ionata n fat a, sub tastele
literelor) n care se pot face conexiuni ntre
perechi de litere, prin intermediul unor ca-
bluri (similar centralelor telefonice vechi).
Deci la un mesaj sunt posibile maxim 13
conexiuni.
De exemplu, daca printr-un cablu sunt
conectate literele S si W, de cate ori este
tastat S, semnalul este comutat pe W na-
inte de a intra pe discuri.
Introdusa n 1930, aceasta componenta
asigura un plus de securitate si a fost prin-
cipalul obstacol n criptanaliza.
17
Starea init iala a unei masini Enigma se refera
la:
Ordinea discurilor (Walzenlage): alegerea
numarului de discuri si ordinea lor de uti-
lizare;
Pozit ia init iala a discurilor: pozit ionarea n
mod independent a ecarui disc, diferita
pentru ecare mesaj;
Init ializarea inelului de caractere (Ringstel-
lung): pozit ionarea alfabetului relativ la
primul disc.
Init ializarea conexiunilor (Steckerverbin-
dungen): conexiunile dintre litere n cadrul
tabelei de conexiuni.
18
Enigma cripteaza ecare litera dupa o proce-
dura care poate exprimata prin produs de
permutari.
Fie o masina Enigma cu 3 discuri si
- P transformarea tabelei de conexiuni,
- U reectorul,
- S, M, D act iunile celor 3 discuri (din stanga,
mijloc si respectiv dreapta).
Atunci criptarea e poate scrisa sub forma:
e = PDMSUS
1
M
1
D
1
P
1
Dupa ecare apasare a unei taste, discurile se
rotesc schimband transformarea.
19
De exemplu, daca discul din dreapta se roteste
cu i pozit ii, atunci transformarea devine

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

= y, y ind elementul care urmeaza


lui x n permutarea .
De exemplu 3

1
= 4, 8

2
= 0 etc.
Notat ia permite sa scriem e = d

In continuare, semnalul parcurge cele trei dis-


curi n sens invers:
c

= 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

Fie v un vector binar de dimensiune 6.


Atunci c M este un vector cu 27 componente
avand elemente din mult imea {0, 1, 2}.
Numarul de elemente nenule din v M se
numeste ponderea lui v n raport cu M.
29
O congurat ie de nceput se obt ine prin aseza-
rea unul sub altul (aliniat i la stanga) a 6 sase
vectori binari de lungimi 17, 19, 21, 23, 25, 26.
Exemplul 5. Structura
01100010000000110
0111110000000000000
001000001000000000000
00000000000100100010001
1010000000000000000000000
11000000000000100010000001
formeaza o posibila congurat ie de nceput.
Spre deosebire de matricea lug, la congurat ia
de nceput nu exista restrict ii privind numarul
de 1.
30
Se pot genera o innitate de vectori de dimen-
siune 6 n felul urmator:
1. Primii 17 vectori sunt coloanele complete
ale congurat iei de nceput.
2. Fiecare vector linie se repeta ciclic din mo-
mentul cand s-a terminat.
Pe baza acestor elemente se poate descrie sis-
temul de criptare al masinii C 36.
Folosim codicarea numerica a literelor: A0
pana la Z25; toate calculele sunt modulo 26.
Fie x codul celui de-al i-lea caracter din textul
clar si h ponderea celui de-al i-lea vector gen-
erat de congurat ia de nceput n raport cu
matricea lug.
Atunci
y = h x 1.
31
Exemplul 6. Text clar
NU PUTEM REUSI DECAT IMPREUNA
Matricea lug si congurat ia de nceput sunt
cele anterioare.
Codicarea numerica a textului:
13 20 15 20 19 4 12 17 4 20 18 8 3 4 2 0 19 8 12 15 17 4 20 13 0.
Se calculeaza ponderile primilor 25 vectori si
se formeaza tabela:
h 10 17 16 9 9 9 7 0 0 0 0 12 0
x 13 20 15 20 19 4 12 17 4 20 18 8 3
h x 1 22 20 0 14 15 4 20 8 21 5 7 3 22
W W A O P E U I V F H D W
h 0 18 7 0 0 18 7 9 9 19 14 9
x 4 2 0 19 8 12 15 17 4 20 13 0
h x 1 21 15 6 6 17 5 17 17 4 24 0 8
V P G G R F R R E Y A I
Deci textul criptat este
WWAOPEUIVFHDWVPGGRFRREYAI
32
Remarca 1. Ecuat ia de decriptare este iden-
tica cu cea de criptare:
x = h y 1.
Deci din acest punct de vedere sistemul de
criptare este de tip Beaufort si masina C 36
poate folosita atat pentru criptare cat si pen-
tru decriptare.
Deoarece liniile din congurat ia de nceput au
lungimi numere prime ntre ele, vectorii gene-
rat i ncep sa se repete sigur dupa
17 19 21 23 25 26 = 101.405.850
pasi; deci cuvantul cheie poate considerat
mai lung decat orice text clar.
33
Masina de criptat M 209 avea si ea o se-
rie de slabiciuni (un atac cu texte clare alese
care au anumite componente comune poate
duce la informat ii asupra matricii lug), astfel ca
n 1943 criptanalistii germani puteau decripta
mesajele.
Totusi din punct de vedere militar tactic
ea a fost considerata perfect adaptata nece-
sitat ilor si a fost folosita de armata americana
pana dupa razboiul din Coreea (1953 1956).
Ulterior, Hagelin a elaborat un model mbuna-
tat it: masina C 52.
Aceasta avea o perioada de 2.756.205.443; dis-
curile puteau si scoase si reinserate n alta or-
dine; exista un disc al carui alfabet putea
permutat.
34
Sisteme uide de criptare
1
Sisteme sincrone si auto-sincronizabile
Pana acum: Fie K | o cheie de criptare si
x = x
1
x
2
x
3
. . .
un text clar. Textul criptat este
y = y
1
y
2
y
3
. . . = e
K
(x
1
)e
K
(x
2
)e
K
(x
3
) . . .
Sunt sisteme de criptare bloc (block cyphers).
Alta maniera: sisteme de criptare uide
(stream cyphers).
2
Denit ia 1. Fie /= (1, (, |, c, T) un sistem
de criptare. O secvent a de simboluri
k
1
k
2
k
3
. . . |
+
se numeste cheie uida.
Denit ia 2. /= (1, (, |, c, T) este un sistem
uid de criptare daca cifreaza un text clar
x = x
1
x
2
x
3
. . .
n
y = y
1
y
2
y
3
. . . = e
k
1
(x
1
)e
k
2
(x
2
)e
k
3
(x
3
) . . .
unde
k = k
1
k
2
k
3
. . .
este o cheie uida din |
+
.
3
Problema: generarea unei chei de criptare u-
ide (teoretic innita).
Aceasta se poate realiza e aleator, e pe baza
unui algoritm care pleaca de la o secvent a mica
de chei de criptare.
Un astfel de algoritm se numeste generator de
chei uide.
4
Exemplul 1. (Sistemul de criptare Vernam):
Aici
x
i
, k
i
, y
i
|0, 1
Criptarea:
y
i
= x
i
k
i
(i 1).
Cand cheia uida este aleasa aleator si nu mai
este folosita ulterior, sistemul se numeste one
- time pad.
Un sistem de criptare one-time pad asigura un
secret perfect:
Fiind dat un text criptat cu un astfel de sistem,
Oscar nu are nici o informat ie privind cheia
uida sau textul clar.
Dicultatea consta nsa atat n lungimea cheii
(egala cu cea a textului clar), cat si n moda-
litatea de transmitere a ei ntre Alice si Bob.
5
Pentru sistemul Vernam exista o modalitate de
atac bazata pe criptanaliza diferent iala:
Daca y
1
y
2
. . . y
n
si y
t
1
y
t
2
. . . y
t
n
sunt doua texte
criptate cu aceiasi cheie uida K = k
1
k
2
. . . k
n
,
atunci
y
i
= x
i
k
i
, y
t
i
= x
t
i
k
i
(1 i n)
deci y
i
y
t
i
= x
i
x
t
i
, si cheia K nu mai este
necesara; redundant a ultimei relat ii va permite
criptanaliza.
Sistemele de criptare uide sunt clasicate n:
- sisteme sincrone;
- auto-sincronizabile.
6
Denit ia 3. Un sistem de criptare uid sincron
este o structura (1, (, |, /, c, T), unde:
1, (, | sunt mult imi nite nevide cu
semnicat ia cunoscuta;
/ este o mult ime nita nevida numita
alfabet de chei;
g : | /
+
este un generator de chei
uide: pentru
K |, g(K) = k
1
k
2
k
3
. . . /
+
este o cheie uida (teoretic innita);
z / exista o regula de criptare e
z
c si
o regula de decriptare d
z
T astfel ca
x 1, d
z
(e
z
(x)) = x
7
Exemplul 2. Sistemul Vigenere poate denit
ca un sistem de criptare uid sincron.
Fie m lungimea cuvantului cheie din sistemul
Vigenere.
Denim
1 = ( = / =Z
26
, | =(Z
26
)
m
,
e
z
(x) = x +z (mod 26),
d
z
(y) = y z (mod 26)
Cheia z
1
z
2
z
3
. . . este denita
z
i
=

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.

In majoritatea aplicat iilor pentru


SEAL 2.0 se foloseste L 2
19
.
Algoritmul funct ioneaza si pentru valori mai
mari, dar devine inecient deoarece creste mult
dimensiunea tabelei R.
O varianta este concatenarea cheilor uide
SEAL(a, 0)[[SEAL(a, 1)[[SEAL(a, 2)[[ . . .
Deoarece n < 2
32
, se pot obt ine astfel chei
uide de lungimi pana la 2
51
, pastrand
L = 2
19
.
23
RC4
Sistemul RC4 (Rivest Code #4) a fost creat
n 1987 de Ron Rivest pentru societatea RSA
Data Security Inc (astazi RSA Security).
Este un sistem aditiv uid de criptare.
Printre sistemele care folosesc RC4:
SQL (Oracle), Lotus Notes, AOCE (Apple
Computer), WEP WPA CipherSaber
Secure Sockets Layer (opt ional), Secure Shell
(opt ional)
RC4 este utilizat pentru criptarea sierelor n
protocoale cum ar RSA SecurPC saun stan-
darde de comunicat ii (WEP, WPA pentru car-
duri, criptarea tracului de date sau a site-
urilor de web bazate pe protocolul SSL).
De asemenea, el face parte din Cellular Digital
Packet Data specication.
24
Pentru generarea cheii uide se foloseste o
stare interna secreta) din doua componente:
Un tablou de 256 octet i: S[0], . . . , S[255],
numit S box.
Doi pointeri de cate un octet
(notat i i respectiv j).
S boxul este init ializat cu o cheie de lungime
variabila de obicei ntre 40 si 256 bit i, folosind
un algoritm numit KSA (key-sheduling algo-
rithm).

In faza a doua, cheia uida este generata folo-


sind algoritmul PRGA (pseudo-random gene-
ration algorithm).
25
Algoritmul PRGA
i
j
+
? ?
? ?-
?
6

?
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 mai 1973, Biroul Nat ional de Standarde din


SUA a lansat n Registrul Federal (jurnalul o-
cial al guvernului) un apel la construirea unui
sistem de criptare ocial care sa se numeasca
Data Encryption Standard (DES).
Firma IBM a construit acest sistem
publicat n Registrul Federal la 17 martie 1975,
modicand sistemul Lucifer, pe care deja l
testa.
Dupa dezbateri publice, DES a fost adoptat la
17 ianuarie 1977 drept standard de criptare.
De atunci, el a fost re-evaluat la ecare 5 ani,
ind n acest moment cel mai popular sistem
de criptare cu cheie simetrica.
Spargerea sa n iulie 1998 a coincis cu durata
sa ociala de utilizare pe teritoriul SUA.
5
Descrierea sistemului DES
1. Fie textul clar init ial, de 64 bit i.
Lui i se aplica o permutare IP init iala,
obt inandu-se
0
= IP() = L
0
R
0
.
2. Se efectueaza 16 runde (iterat ii) ale unei
funct ii care se va preciza.
La ecare runda se calculeaza L
i
R
i
(1 i 16) dupa regula
L
i
= R
i1
R
i
= L
i1
f(R
i1
, K
i
)
unde f este o funct ie care se va preciza,
iar K
1
, K
2
, . . . , K
16
sunt secvent e de 48 bit i
calculat i din cheia K.
3. Blocului R
16
L
16
i se aplica inversa permu-
tarii init iale pentru a obt ine textul criptat
= IP
1
(R
16
L
16
).
6
Funct ia de criptare f(A, J) are ca argumente
doua secvent e binare: una de 32 bit i, iar a
doua de 48 bit i.
Rezultatul este o secvent a de 32 bit i.
1. Argumentul A este extins la 48 bit i folosind
o funct ie de expansiune E.
2. Se calculeaza B = E(A) J; rezultatul se
descompune n 8 subsecvent e de cate 6
bit i:
B = B
1
B
2
B
3
B
4
B
5
B
6
B
7
B
8
.
3. Se folosesc 8 S boxuri S
1
, S
2
, . . . , S
8
,
ecare ind un tablou 4 16 cu elemente
numere ntregi din intervalul [0, 15].
7
Pentru o secvent a B
j
= b
1
b
2
b
3
b
4
b
5
b
6
se cal-
culeaza un sir de 4 bit i S
j
(B
j
):
bit ii b
1
b
6
dau reprezentarea binara a indicelui
unei linii r (0 r 3) din S
j
; ceilalt i patru bit i
b
2
b
3
b
4
b
5
dau reprezentarea binara a indicelui
unei coloane c (0 c 15) din tablou.
Atunci C
j
= S
j
(B
j
) = [S
j
(r, c)]
2
(1 j 8).
4 Secvent a C = C
1
C
2
C
3
C
4
C
5
C
6
C
7
C
8
de
lungime 32 se rearanjeaza folosind o per-
mutare xata P.
Rezultatul nal este
f(A, J) = P(C).
8
Permutarea init iala IP:
58 50 42 34 26 18 10 2
60 52 44 36 28 20 12 4
62 54 46 38 30 22 14 6
64 56 48 40 32 24 16 8
57 49 41 33 25 17 9 1
59 51 43 35 27 19 11 3
61 53 45 37 29 21 13 5
63 55 47 39 31 23 15 7
Permutarea inversa IP
1
:
40 8 48 16 56 24 64 32
39 7 47 15 55 23 63 31
38 6 46 14 54 22 62 30
37 5 45 13 53 21 61 29
36 4 44 12 52 20 60 28
35 3 43 11 51 19 59 27
34 2 42 10 50 18 58 26
33 1 41 9 49 17 57 25
9
Funct ia de expansiune E:
32 1 2 3 4 5
4 5 6 7 8 9
8 9 10 11 12 13
12 13 14 15 16 17
16 17 18 19 20 21
20 21 22 23 24 25
24 25 26 27 28 29
28 29 30 31 32 1
Permutarea xata P:
16 7 20 21
29 12 28 17
1 15 23 26
5 18 31 10
2 8 24 14
32 27 3 9
19 13 30 6
22 11 4 25
10
Cele opt cutii S (S boxuri):
S
1
14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7
0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8
4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0
15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13
S
2
15 1 8 14 6 11 3 4 9 7 2 13 12 0 5 10
3 13 4 7 15 2 8 14 12 0 1 10 6 9 11 5
0 14 7 11 10 4 13 1 5 8 12 6 9 3 2 15
13 8 10 1 3 15 4 2 11 6 7 12 0 5 14 9
S
3
10 0 9 14 6 3 15 5 1 13 12 7 11 4 2 8
13 7 0 9 3 4 6 10 2 8 5 14 12 11 15 1
13 6 4 9 8 15 3 0 11 1 2 12 5 10 14 7
1 10 13 0 6 9 8 7 4 15 14 3 11 5 2 12
S
4
7 13 14 3 0 6 9 10 1 2 8 5 11 12 4 15
13 8 11 5 6 15 0 3 4 7 2 12 1 10 14 9
10 6 9 0 12 11 7 13 15 1 3 14 5 2 8 4
3 15 0 6 10 1 13 8 9 4 5 11 12 7 2 14
11
S
5
2 12 4 1 7 10 11 6 8 5 3 15 13 0 14 9
14 11 2 12 4 7 13 1 5 0 15 10 3 9 8 6
4 2 1 11 10 13 7 8 15 9 12 5 6 3 0 14
11 8 12 7 1 14 2 13 6 15 0 9 10 4 5 3
S
6
12 1 10 15 9 2 6 8 0 13 3 4 14 7 5 11
10 15 4 2 7 12 9 5 6 1 13 14 0 11 3 8
9 14 15 5 2 8 12 3 7 0 4 10 1 13 11 6
4 3 2 12 9 5 15 10 11 14 1 7 6 0 8 13
S
7
4 11 2 14 15 0 8 13 3 12 9 7 5 10 6 1
13 0 11 7 4 9 1 10 14 3 5 12 2 15 8 6
1 4 11 13 12 3 7 14 10 15 6 8 0 5 9 2
6 11 13 8 1 4 10 7 9 5 0 15 14 2 3 12
S
8
13 2 8 4 6 15 11 1 10 9 3 14 5 0 12 7
1 15 13 8 10 3 7 4 12 5 6 11 0 14 9 2
7 11 4 1 9 12 14 2 0 6 10 13 15 3 5 8
2 1 14 7 4 10 8 13 15 12 9 0 3 5 6 11
12
Procesul de diversicare al cheii K
K este o secvent a de 64 bit i, din care 56 de-
nesc cheia, iar bit ii de pe pozit iile
8, 16, 24, . . . , 64 sunt bit i de paritate.
1. Din cheie se elimina bit ii de paritate, iar
asupra celorlalt i se aplica o permutare PC
1
,
obt inandu-se PC
1
(K) = C
0
D
0
(C
0
sunt primii 28 bit i din secvent a).
Permutarea PC
1
este
57 49 41 33 25 17 9
1 58 50 42 34 26 18
10 2 59 51 43 35 27
19 11 3 60 52 44 36
63 55 47 39 31 23 15
7 62 54 46 38 30 22
14 6 61 53 45 37 29
21 13 5 28 20 12 4
13
2 Pentru i = 1, 2, . . . , 16 se calculeaza
C
i
= LS
i
(C
i1
),
D
i
= LS
i
(D
i1
)
unde LS
i
este o rotat ie circulara la stanga
cu una sau 2 pozit ii: daca i = 1, 2, 9, 16,
atunci cei 28 bit i se rotesc cu o pozit ie,
altfel rotirea este cu doua pozit ii.

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.

In DES sunt 4 chei slabe si 6 perechi de chei


semi-slabe, date de tabelele urmatoare:
Chei slabe (hex) C
0
D
0
0101010101010101 0
28
0
28
FEFEFEFEFEFEFEFE 1
28
1
28
1F1F1F1F0E0E0E0E 0
28
1
28
E0E0E0E0F1F1F1F1 1
28
0
28
C
0
D
0
Perechi de chei semi slabe (hex) C
0
D
0
(01)
14
(01)
14
01FE01FE01FE01FE, FE01FE01FE01FE01 (10)
14
(10)
14
(01)
14
(10)
14
1FE01FE00EF10EF1, E01FE01FF10EF10E (10)
14
(01)
14
(01)
14
0
28
01E001E001F101F1, E001E001F101F101 (10)
14
0
28
(01)
14
1
28
1FFE1FFE0EFE0EFE, FE1FFE1FFE0EFE0E (10)
14
1
28
0
28
(01)
14
011F011F010E010E, 1F011F010E010E01 0
28
(10)
14
1
28
(01)
14
E0FEE0FEF1FEF1FE, FEE0FEE0FEF1FEF1 1
28
(10)
14
Nesansa ca printr-o alegere aleatoare a cheii
sa se obt ina o cheie slaba sau semi-slaba este
deci 2
52
.
16
Fiind data o cheie semi-slaba K, cealalta cheie
din pereche poate obt inuta sect ionand K n
doua part i egale si rotind ecare jumatate cu
8 bit i.
Pentru ecare cheie slaba K exista 2
32
puncte
xe: texte clare cu proprietatea e
K
() = .
Pentru ecare cheie semi-slaba K din partea
superioara a tabelului exista 2
32
puncte anti-
xe: texte clare cu e
K
() = .
Aceste patru chei semi-slabe se numesc si
chei anti - palindromice, deoarece subcheile
generate sunt complementare:
K
1
= K
16
, K
2
= K
15
etc.
17
Controverse legate de DES
O prima obiect ie: S boxurile.
Toate calculele din DES sunt liniare,
cu except ia acestor S boxuri.
NSA arma n 1976 ca S boxurile au fost
construite pe baza urmatoarelor criterii:
1. O linie este o permutare pentru (0, . . . , 15);
2. Un S box nu este o funct ie liniara/ana;
3. La modicarea unui bit din operand, un
S box provoaca modicarea cel put in a
doi bit i din rezultat;
4. Pentru ecare cutie S si (|| = 6), S()
si S( 001100) difera prin cel put in doi
bit i.
18
Alte doua proprietat i au fost ment ionate drept
consecint e ale criteriilor de construct ie:
5. Pentru orice cutie S si orice ,
S() = S( 11ab00), a, b {0, 1};
6. Daca un bit din operand este ment inut con-
stant si se urmareste un bit al rezultatu-
lui, numarul de valori care produc 0 este
apropiat de numarul de valori care pro-
duc 1.
Mai exact, acest numar este n intervalul
[13, 19].
Nici un alt criteriu referitor la S boxuri nu a
mai fost recunoscut public.
19
Alta obiect ie se refera la marimea prea mica
(numai 2
56
) a spat iului cheilor.
S-au conceput numeroase masini dedicate ata-
curilor prin fort a bruta, care sa caute cheia.
Fiind dat un text clar de 64 bit i si textul sau
criptat , se verica toate cheile K posibile
(aproximativ 2
55
), pana se obt ine e
K
() =
(solut ia exista totdeauna).
20
Moduri de implementare ale DES -ului
Sistemul de criptare DES a cunoscut patru
moduri de implementare
(extinse ulterior la toate sistemele de criptare):
Modul ECB (Electronic Codebook Mode):
ind dat un text clar x =
1

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.

In modurile CBC si CFB dimpotriva, modi-


carea unui bloc
i
de text clar antreneaza
modicari n toate blocurile de texte criptate,
ncepand cu
i
.
De aceea, aceste moduri sunt adaptate n par-
ticular problemelor de autenticare a mesajelor
(MAC - Message Authentication Code).
Un MAC este adaugat la un text clar cu scopul
de a-l convinge pe Bob ca textul primit a fost
scris de Alice si nu a fost alterat de Oscar.
El garanteaza astfel integritatea (sau autenti-
citatea) mesajului, dar nu si condent ialitatea
sa.
25
Construct ia unui MAC folosind CBC.
Se pleaca de la blocul init ial V I n care tot i bit ii
sunt 0.
Se construieste textul criptat
1
,
2
, . . . ,
n
cu
cheia K, n modul CBC, iar MAC este blocul

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 particular exista exact 2


n
chei posibile de-
terminate de perechea (m, x), chei care pot
gasite n aproximativ O(2
n
) pasi.
32
Pentru oricare din situat iile
k
1
= k
2
, k
2
= k
3
, k
1
= k
2
= k
3
,
DES ede se reduce la un simplu DES, lucru
utilizat frecvent pentru a verica compatibili-
tatea.
Cheia pentru 3DES are 3 56 = 168 bit i, la
care se adauga 3 8 = 24 bit i de paritate; n
total sunt 192 bit i.
O varianta, numita 3DES cu doua chei
foloseste k
1
= k
3
; aici marimea de stocare a
cheii va de numai 128 bit i (din care 16 bit i
de paritate).
33
Sistemul de criptare 3DES nu este nca spart,
dar utilizarea sa estengreunata din cauza vite-
zei mici de criptare.
Totusi multe sisteme continua sa foloseasca
3DES; ca exemple mai recente sunt cardurile
bancare (Mastercard si part ial Visa) care din
2002 sunt congurate pe baza acestui sistem
de criptare.
De asemenea, sistemul de telefonie mobila
Zapp foloseste 3DES ca sistem de criptare.
34
DES X
Varianta a sistemului de criptare DES, dez-
voltata pentru a rezista mai bine unui atac prin
fort a bruta.
Este propus de Rivest n 1984 n ideea de a
creste marimea cheii K fara a modica prea
mult algoritmul DES.
DES X foloseste doua chei suplimentare
K
1
, K
2
(de cate 64 bit i) si efectueaza criptarea
dupa formula
DESX
K,K
1
,K
2
(x) = K
2
DES
K
(x K
1
)
Marimea cheii creste deci la 56 +2 64 = 184
bit i.
35
IDEA
Apare init ial n 1990, sub denumirea PES
(Proposed Encryption Standard).
Deoarece n acelasi an, Biham si Shamir
publica sistemul de atac al DES-ului prin crip-
tanaliza diferent iala, n 1991 autorii (Xuejia Lai
si James Massey) modica sistemul de criptare
pentru a rezista acestui gen de atac.
Noul sistem este numit IPES (Improved Pro-
posed Encryption Standard); n 1992 numele
se schimba n IDEA (International Data En-
cryption Standard Algorithm).

In opinia lui Bruce Schneider, n 1996 IDEA


constituia cel mai sigur sistem de criptare uti-
lizabil fara restrict ii.
Este o componenta a sistemului de securitate
prin posta electronica PGP, unde asigura crip-
tarea datelor.
36
IDEA este un sistem simetric care opereaza
cu blocuri de texte clare de 64 bit i, folosind o
cheie de 128 bit i.
Textul clar de 64 bit i este despart it n 4 sub-
blocuri X
1
, X
2
, X
3
, X
4
, de cate 16 bit i ecare.
Aceste patru componente formeaza intrarea la
prima runda a algoritmului.
Sunt 8 runde, care folosesc operat iile de adu-
nare, nmult ire (modulo 2
16
) si XOR; toate pe
16 bit i.
De asemenea sunt implicate si 16 subchei a
cate 16 bit i ecare.

Intre runde, subblocurile 2 si 3 sunt schimbate


ntre ele.
Dupa runda 8, cele patru subblocuri sunt com-
binate cu 4 subchei, formand iesirea.
37
O runda cont ine 14 operat ii, anume:
1. Se nmult este X
1
cu prima subcheie;
2. Se aduna X
2
cu a doua subcheie;
3. Se aduna X
3
cu a treia subcheie;
4. Se nmult este X
4
cu a patra subcheie;
5. Ce s-a obt inut la pasii 1 si 3 se combina
prin XOR;
6. Ce s-a obt inut la pasii 2 si 4 se combina
prin XOR;
7. Se nmult este rezultatul pasului 5 cu sub-
cheia 5;
8. Se aduna rezultatele pasilor 6 si 7;
38
9. Se nmult este rezultatul pasului 8 cu sub-
cheia 6;
10. Se aduna rezultatele pasilor 7 si 9;
11. Ce s-a obt inut la pasii 1 si 9 se combina
prin XOR;
12. Ce s-a obt inut la pasii 3 si 9 se combina
prin XOR;
13. Ce s-a obt inut la pasii 2 si 10 se combina
prin XOR;
14. Ce s-a obt inut la pasii 4 si 10 se combina
prin XOR.
Rezultatele pasilor 11 14 formeaza iesirea
dintr-o runda; cele patru subblocuri (dupa ce
subblocurile doi si trei sunt interschimbate)
formeaza intrarea n runda urmatoare.
39
Dupa ultima runda, are loc o transformare -
nala:
1. Se nmult este X
1
cu prima subcheie;
2. Se aduna X
2
cu a doua subcheie;
3. Se aduna X
3
cu a treia subcheie;
4. Se nmult este X
4
cu a patra subcheie.
Cela patru subblocuri obt inute n nal
formeaza textul criptat.
40
Prelucrarea subcheilor se face dupa urmatorul
algoritm:
1. Cheia de 128 bit i este desfacuta n 8 sub-
chei a cate 16 bit i ecare;
2. Primele 6 subchei sunt folosite la prima
runda, iar urmatoarele doua, la runda a doua;
3. Cheia este rotita spre stanga cu 25 bit i
si se desface din nou n 8 subchei, folosite la
rundele 2 si 3 (cate patru subchei);
4. Se repeta pasul 3 cat timp este necesar.
Operat ia de decriptare se realizeaza urmand
aceiasi pasi, cu singura diferent a ca subcheile
se introduc n ordine inversa.
41
Ce a urmat dupa DES
La sfarsitul anilor

90 se decide nlocuirea sis-
temului de criptare DES. Motive:


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.

In mai 2000 NIST anunt a drept castigator


sistemul de criptare Rijndael, care devine o-
cial AES.
Rijndael a castigat cu 86 voturi,
contra Serpent cu 59, Twofish cu 31,
RC6 cu 23 si Mars cu 13 voturi.
Principalul atu: desi Serpent este considerat
mai sigur, Rijndael are mai put ine transformari
si este mai rapid.
45
Sistemul de criptare AES
Similar sistemelor anterioare (inclusiv DES),
sistemul AES cripteaza blocuri de text clar de
lungime xa, folosind subchei ale unei chei
generate aleator.
Lungimile folosite sunt de 128, 192 sau 256
bit i.

In schimb AES nu foloseste structura Feistel


n construct ia sa.
46
Descrierea sistemului AES
Denit ia 2. Un rezultat intermediar al
sistemului de criptare se numeste stare.
Starea unui bloc este un tablou cu 4 linii si N
b
coloane, ale carui elemente sunt octet i; deci
N
b
= N/32
unde N este lungimea blocului text care se
cripteaza.
Similar, o cheie de criptare se va reprezenta
printr-un tablou 4 N
k
, unde
N
k
= K/32
(K lungimea cheii).
47
Exemplul 2. O stare cu N
b
= 6 si o cheie cu
N
k
= 4 au forma urmatoare:
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
1,0
k
1,1
k
1,2
k
1,3
k
2,0
k
2,1
k
2,2
k
2,3
k
3,0
k
3,1
k
3,2
k
3,3
48
Un bloc se reprezinta uneori sub forma unui
vector n care ecare element este coloana unei
stari (deci, un cuvant).

In funct ie de marimea N a blocului de criptare


(respectiv K a cheii), un astfel de vector are
4, 6 sau 8 componente, numite cuvinte.
Octet ii unui cuvant se noteaza (a, b, c, d);
octetul 0 este a, octetul 1 este b s.a.m.d.
Intrarea si iesirea din sistemul AES sunt de-
nite sub forma unor vectori avand drept com-
ponente octet i, numerotat i de la 0 la 4N
b
1.
Un vector de intrare/iesire are deci 16, 24 sau
32 componente, numerotate 0. . . 15, 0. . . 23
respectiv 0. . . 31.
49
Similar, cheia de criptare este denita ca un
vector de 16, 24 sau 32 octet i, numerotat i de
la 0 la 4N
k
1 (unde N
k
= 128, 192 si respectiv
256).
Octet ii care formeaza intrarea n sistem
(textul clar pentru modul de criptare ECB)
completeaza pe coloane un tablou, numit
starea init iala.
Similar se procedeaza cu cheia de criptare.
Procedeul este identic la sfarsit, cand se obt ine
blocul criptat prin liniarizarea pe coloane a
starii nale rezultate dupa criptare.
Criptarea se realizeaza n N
r
runde, unde N
r
depinde de N
b
si N
k
.
N
r
N
b
= 4 N
b
= 6 N
b
= 8
N
k
= 4 10 12 14
N
k
= 6 12 12 14
N
k
= 8 14 14 14
50
Fiecare runda are la intrare o stare si foloseste
o cheie de runda.
Cu except ia rundei nale, o runda este formata
din patru transformari:
ByteSub(Stare);
ShiftRow(Stare);
MixColumn(Stare);
AddRoundKey(Stare, Cheie).
Ultima runda cont ine numai trei transformari,
ind eliminata MixColumn(Stare).
51
ByteSub(Stare):
Substitut ie neliniara care opereaza pe octet i.
Tabela de substitut ie (S - box) este o matrice
inversabila formata din compunerea a doua
transformari:
1. Fiecare octet nenul este nlocuit cu in-
versul sau
1
GF(2
8
);
octetul 00 este lasat nemodicat.
2. Rezultatul este trecut printr-o transfor-
mare ana:

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).

In acest fel, ecare octet aat pe pozit ia j n


linia i se deplaseaza pe pozit ia
j +N
b
C
i
(mod N
b
).
56
MixColumn(Stare):
Fiecare coloana a starii este considerata un
polinom p(X) GF(2
8
)[X] de gradul 3.
Fiecare astfel de polinom este nmult it cu
c(X) =

03

X
3
+

01

X
2
+

01

X +

02

n algebra polinoamelor modulo X


4
+1.
Transformarea poate reprezentata ca o
nmult ire matriciala, care transforma starea
coloana cu coloana:

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.

In nal se face nca un XORntre rezultat si o


constanta de runda.
65
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
);
else if (i % N
k
== 4)
temp = SubByte(temp)
W[i] = W[i N
k
] temp;
}
}
66
Apare condit ia suplimentara: cand i 4 este
multiplu de N
k
, procedura SubByte este apli-
cata lui W[i 1] nainte de XOR.
Constantele de runda:
Rcon[i] = (RC[i],

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

In faza de precalcul, Oscar deneste m


secvent e arbitrare de 56 bit i ecare,
notate X(i, 0), 1 i m.
Apoi, folosind relat ia de recurent a
X(i, j) = g(X(i, j 1)), (1 i m, 1 j t)
Oscar determina valorile X(i, j), 1 j t,
formand cu ele o matrice X
mt
.
Din aceste valori, Oscar pastreazantr-o tabela
T numai 2m perechi
(X(i, 0), X(i, t)), (1 i m)
(sunt memorate numai prima si ultima coloana
a matricii X).
6

In momentul atacului, Oscar obt ine textul crip-


tat al textului clar ales de el.
El va cauta cheia K n cele t coloane ale ma-
tricii X, consultand tabela T.
Presupunem K = X(i, tj) pentru j (1 j t)
dat (K esten una din cele t coloane ale lui X).
Vom avea g
j
(K) = X(i, t), si
g
j
(K) = g
j1
(g(K)) = g
j1
(R(e
K
())) =
= g
j1
(R()).
7
Se calculeaza sirul
j
(1 j t) denit prin
relat ia de recurent a

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

doua blocuri de intrare si

blocurile de iesire corespunzatoare.


Diferent a dintre bit ii de intrare este data de
=

= (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

Intr-un sistem de criptare ideal, probabilitatea


ca, ind data o diferent a de intrare , sa
apara o anumita diferent a de iesire , este
1/2
n
(n este marimea blocului de criptare).
Criptanaliza diferent iala exploateaza situat ia
cand pentru o anumita diferent a de intrare ,
o diferent a de iesire apare cu o probabili-
tate p
D
semnicativ mai mare decat 1/2
n
.
Perechea (, ) pentru care exista o astfel
de situat ie se numeste diferent iala.

In esent a, criptanaliza diferent iala este un atac


cu text clar ales: Oscar alege perechi de intrari
(

), care verica o anumita diferent a ,


stiind ca pentru aceasta valoare , exista o
diferent iala (, ).
18
Cel mai important pas consta n construirea
unei diferent iale (, ), folosind bit ii textu-
lui clar pentru , si intrarea n ultima runda a
sistemului de criptare pentru .
Aceasta se poate realiza examinand diverse
diferent iale caracteristice.
O diferent iala caracteristica este o secvent a
(
1
,
2
, . . . ,
n
) unde (
i
,
i+1
) este
o diferent iala a rundei i din sistemul de criptare
(deci
1
= ,
n
= ).
Pe baza unei diferent iale caracteristice putem
exploata informat ia care intran ultima runda a
sistemului, pentru a aa o parte din bit ii cheii.
19
Pentru construirea de diferent iale caracteris-
tice se exploateaza unele particularitat i ale S-
boxurilor.
Practic se considera toate diferent ele de in-
trare si iesire din ecare S-box, determinand
perechile (, ) cu probabilitat i mari.
Combinand aceste perechi de la o runda la alta,
astfel ca diferent ele dintre doua iesiri dintr-o
runda sa coincida cu diferent ele dintre doua
intrari n runda urmatoare, se poate determina
o diferent iala ntre doua texte clare si intrarile
a doua texte n ultima runda.

In nal, bit ii ultimei sub-chei vor dispare (sunt


folosit i n ambele texte si, prin XOR-are, se
anuleaza reciproc).
20
Analiza componentelor unui sistem de criptare
Fie un 4 4 S-box, cu intrarea
= (a
1
, a
2
, a
3
, a
4
)
si iesirea
= (b
1
, b
2
, b
3
, b
4
)
4 4 S-box
c c c c
c c c c
a
1
a
2
a
3
a
4
b
1
b
2
b
3
b
4
Toate perechile de diferent e (, ) ale unui
astfel de S - box vor examinate.
Se xeaza o diferent a si se calculeaza san-
sele de aparit ie pentru toate diferent ele de iesiri
, peste mult imea perechilor de intrare
(

) 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

= 1100 (hex C), deci


=

= 1110 1100 = 0010,


valoare care apare n tabela pe coloana a treia.

In Tabela 1: numarul aparit iilor lui = 0010


pentru = 1011 (coloana 3) este 8 din 16
valori posibile (deci probabilitate 8/16).
Similar, numarul de aparit ii = 1011 pentru
= 1000 este 4 (din 16), iar numarul de
aparit ii ale lui = 1010 pentru = 0100
este 0 (din 16).
24
Se aduna toate datele unui S - boxntr-o tabela
de distribut ie a diferent elor, n care liniile repre-
zinta valorile , iar coloanele valorile
(toate n hexazecimal).
Tabela de distribut ie a diferent elor pentru S-
boxul luat ca exemplu, este:
0 1 2 3 4 5 6 7 8 9 A B C D E F
0 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 0 0 0 2 0 0 0 2 0 2 4 0 4 2 0 0
2 0 0 0 2 0 6 2 2 0 2 0 0 0 0 2 0
3 0 0 2 0 2 0 0 0 0 4 2 0 2 0 0 4
4 0 0 0 2 0 0 6 0 0 2 0 4 2 0 0 0
5 0 4 0 0 0 2 2 0 0 0 4 0 2 0 0 2
6 0 0 0 4 0 4 0 0 0 0 0 0 2 2 2 2
7 0 0 2 2 2 0 2 0 0 2 2 0 0 0 0 4
8 0 0 0 0 0 0 2 2 0 0 0 4 0 4 2 2
9 0 2 0 0 2 0 0 4 2 0 2 2 2 0 0 0
A 0 2 2 0 0 0 0 0 6 0 0 2 0 0 4 0
B 0 0 8 0 0 2 0 2 0 0 0 0 0 2 0 2
C 0 2 0 0 2 2 2 0 0 0 0 2 0 6 0 0
D 0 4 0 0 0 0 0 4 2 0 2 0 2 0 2 0
E 0 0 2 4 2 0 0 0 6 0 0 0 0 0 2 0
F 0 2 0 0 6 0 0 0 0 4 0 2 0 0 2 0
Tabela 2. Tabela de distribut ie a diferent elor
Fiecare element al tabelei reprezinta numarul
de aparit ii ale diferent ei de iesire , ind data
diferent a de intrare .
25
1.

Inafara de cazul ( = 0, = 0), cea
mai mare valoare din tabela este 8; cores-
punde lui = B si = 2.
Deci, pentru o pereche de intrari arbitrare
cu = B, probabilitatea ca = 2 este
8/16 = 1/2.
2. Cea mai mica valoare din tabela este 0;
deci probabilitatea de aparit ie a valorii
pentru corespunzator, este 0.
3. Suma elementelor pe ecare linie este
2
n
= 16; similar, suma pe ecare coloana
este tot 2
n
= 16.
4. Toate valorile din tabel sunt numere po-
zitive pare, deoarece perechile de valori de
intrare/iesire (

) 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.

In a doua runda, singurul S - box activ este


S
23
.
Vom avea perechea de diferent e
S
23
: = 4
16
= 0100 = = 6
16
= 0110
cu probabilitate 6/16 = 3/8.
Iesirea este deci
V
2
= [0000 0000 0110 0000]
iar permutarea de la sfarsitul rundei a doua da
U
3
= [0000 0010 0010 0000]
cu probabilitate 3/8.
35

In a treia runda sunt active doua S - boxuri:


S
32
si S
33
:
S
32
: = 2
16
= 0010 = = 5
16
= 0101
cu probabilitate 6/16 = 3/8, si
S
33
: = 2
16
= 0010 = = 5
16
= 0101
cu probabilitate 6/16 = 3/8.
Deci, iesirea din S - boxurile din runda a treia
este
V
3
= [0000 0101 0101 0000]
iar intrarea n runda a patra (dupa efectuarea
permutarii) este
U
4
= [0000 0110 0000 0110]
36
Deci
U
1
= [0000 1011 0000 0000] = V
3
= [0000 0101 0101 0000]
si
V
3
= [0000 0101 0101 0000] = U
4
= [0000 0110 0000 0110]
Rezulta
U
1
= [0000 1011 0000 0000] = U
4
= [0000 0110 0000 0110]
cu probabilitate
1
2

3
8

3
8

3
8
=
27
1024
.
37
Extragerea bit ilor din cheie
Dupa ce s-a obt inut diferent iala caracteristica
a rundelor, se poate construi un atac din care
sa rezulte o parte din bit ii care formeaza cheia
de criptare.

Intr-un sistem de criptare bloc cu N runde,


vom ataca runda N 1 .
Astfel, n cazul ret elei SPN, vom putea extrage
bit i din sub-cheia K
5
atacand runda 4.
Pentru o decriptare a textului obt inut dupa ul-
tima runda, trebuie sa mergem n sens invers:
realizam un XOR ntre textul criptat si sub-
cheia ultimei runde care este inuent ata de
diferent ialele nenule iar apoi trecem datele n
sens invers prin S-boxuri.
Un XOR ntre textul criptat si toate subcheile
posibile; apoi se aplica inversele S-boxurilor.
38
Cautarea cheii poate redusa daca se iau nu-
mai perechile bune (perechile pentru care se
obt in diferent iale caracteristice).
Exemplu de pereche buna: cea anterioara,
cu U
41
= U
43
= 0000, care a dus la diferent ia-
lele nenule U
42
si U
44
(U
ij
reprezinta intrarea
n S - boxul j din runda i).
Decriptarea este obt inuta pentru toate pere-
chile de mesaje criptate care corespund pere-
chilor de texte clare cu diferent a de intrare
xata .
39
O reprezentare a modalitat ii de atac
pentru diferent iala caracteristica detaliata
anterior:
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
= [0000 1011 0000 0000]
K
5,5
, . . . , K
5,8
K
5,13
, . . . , K
5,16
U
4,5
,...,U
4,8
U
4,13
,...U
4,16
$
$
$
$
$
$
$
$
$

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.

In nal, sub-cheia cu valoare maxima a coun-


terului atasat va considerata cea corecta;
restul bit ilor din sub-cheie vor gasit i cu o
cautare prin fort a bruta.

In exemplul anterior, diferent iala caracteristica


a inuent at S - boxurile S
42
si S
44
din ul-
tima runda; deci pentru orice pereche de
mesaje criptate ncercam toate cele 256 vari-
ante pentru [K
5,5
. . . K
5,8
, K
5,13
. . . K
5,16
], si
de cate ori diferent a la intrarean ultima runda
determinata de decriptare este
U
4
= [0000 0110 0000 0110]
va incrementat counterul asociat.
41
Criptanaliza diferent iala pentru DES

Intr-un astfel de atac se ignora permutarea


init iala IP si inversa sa (nu joaca nici un rol
n criptanaliza).
Consideram un DES restrans pe n (n 16)
runde.
Textul clar este L
0
R
0
, iar cel criptat L
n
R
n
(se ignora si inversarea nala dintre L
n
si R
n
).
Fie textele clare L
0
R
0
, L

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

) mult imea perechilor (B


j
, B

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

In exemplu au aparut numai 8 din cele 16 valori


de iesire posibile.

In general, daca se xeaza un S - box S


j
si un
XOR de intrare diferit de 000000, se constata
ca vor apare aproximativ 7580 % din valorile
posibile de iesire.
45
Denit ia 3. Pentru 1 j 8 si secvent ele
B
j

, C
j

de 6 respectiv 4 bit i, denim


IN
j
(B
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

In mod similar se scriu B

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

este XOR-ul de iesire al lui S


j
, atunci bit ii
sub-cheii J
j
apar n test
j
(E
j
, E

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

Incepem cu o pereche de texte clare L


0
R
0
si
L

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

se poate calcula pe baza textelor criptate,


iar L
0

pe baza textelor clare; deci se poate


determina f(R
2
, K
3
) f(R

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

sunt iesirile din cele 8 S -


boxuri (P este o permutare xata din DES).
Deci P(C) P(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

In general se pot construi 2


8
= 256 expresii
liniare cu (a
1
, a
2
, a
3
, a
4
) si (b
1
, b
2
, b
3
, b
4
).
Pentru ecare din ele se poate da o reprezenta-
re uniforma de tipul:

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.

In tabel apar si alte valori destul de mari ale


tendint ei (teoretic, ele ar trebui sa e foarte
apropiate de zero).
Acestea rezulta printre altele din alegerea
aleatoare a perechilor de test, a proprietat ilor
particulare ale S - boxurilor, a impreciziei
ipotezei de independent a.
83
Criptanaliza liniara pentru DES
Cea mai buna aproximare liniara pentru un S -
box din DES este
a
2
b
1
b
2
b
3
b
4
= 0
asociata lui S
5
.
Aceasta relat ie are probabilitatea 12/64.
Daca se analizeaza componentele liniare ale
funct iei f, va rezulta ca aceasta relat ie con-
duce la aproximarea
a
15
f(, K)
7
f(, K)
18
f(, K)
24
f(, K)
29
K
22
= 0 (6)
cu probabilitatea 16/24.
Relat ia (6) poate folosita cu succes pentru
un atac contra sistemului DES cu 3 runde.
84
Pentru a ataca un DES complet (cu 16 runde)
sunt folosite aproximarile liniare:

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.

In acest mod, criptarea este privita ca direct ia


A B; desi este foarte usor de parcurs drumul
n aceasta direct ie, nu te pot i ntoarce napoi
spre A (adica sa decriptezi mesajul).
5
Exemplul 2. Cartea de telefoane.
Cu ajutorul ei este usor de gasit numarul de
telefon al unei anumite persoane.

In schimb, este extrem de greu - practic im-


posibil - sa ai persoana care are un anumit
numar de telefon.
Pe baza unei astfel de cart i se poate construi
un sistem de criptare cu cheie publica.
Criptarea se face litera cu litera.
Pentru ecare litera a textului clar se alege un
nume care ncepe cu acest caracter si numarul
de telefon al persoanei respective va constitui
criptarea.
Sistemul este homofonic; doua aparit ii diferite
ale aceleiasi litere vor codicate foarte
probabil cu numere diferite.
6
Textul clar SOLIST se poate cripta:
S Simion Pavel 6394502
O Olaru Stefan 7781594
L Lambru Stelian 6300037
I Ilie Romeo 3134971
S Solovean Raluca 6281142
T Tecuceanu Paul 3359962
Deci, textul criptat va
639450 277815 946300 037313 497162 811423 359962.
Metoda este nedeterminista; din acelasi text
clar se pot obt ine multe texte criptate.

In schimb, orice text criptat conduce la un text


clar unic.
Bob va avea la dispozit ie pentru decriptare
o carte ordonata crescator dupa numerele de
telefon.
Aceastai va permite sa decripteze mesajele cu
un algoritm de complexitate O(log n).
7

In general, o funct ie neinversabila f trebuie sa


verice doua condit ii:
Fiind dat x, f(x) este usor de calculat;
Calculul lui x din f(x) este imposibil.
Din punct de vedere strict matematic, nu se
cunosc astfel de funct ii.
A demonstra ca exista funct ii neinversabile este
echivalent cu a demonstra conjectura P = NP.
8
Termenii folosit i sunt relativi la complexitatea
calculatorie.
O problema este:
1. usoara daca se poate rezolva cu un algo-
ritm cel mult liniar;
2. grea daca se poate rezolva cu un algoritm
polinomial neliniar;
3. imposibila daca este NP - completa.
9
Exemplul 3. Sa consideram problema rucsa-
cului.
Ea consta dintr-un vector
A = (a
1
, a
2
, . . . , a
n
)
cu elemente numerentregi, pozitive, distincte,
si un numar ntreg pozitiv k.
Trebuiesc aat i acei a
i
din A (daca exista) a
caror suma este k.
De exemplu, e
A = (43, 129, 215, 473, 903, 302, 561, 1165, 696, 1523)
si k = 3231.
Se determina
3231 = 129 +473 +903 +561 +1165
care este o astfel de solut ie.
Pentru |A| foarte mare, problema rucsacului
este NP - completa.
10
Cu ajutorul lui A se poate deni o funct ie f
astfel:
Fie x [0, 2
n
1]; x poate reprezentat n
binar ca un cuvant de lungime n (completand
eventual n fat a cu 0 - uri).
Atunci
f(x) = A B
T
x
unde B
x
este reprezentarea binara a lui x, scrisa
ca un vector coloana.
11
Un sistem de criptare bazat pe problema
rucsacului.
Textul clar este codicat init ial n binar si
segmentat apoi n blocuri de cate n bit i.
Fiecare bloc rezultat este apoi criptat calcu-
land valoarea corespunzatoare a funct iei f.
Pentru alfabetul latin sunt sucient i 5 bit i pen-
tru codicarea binara a literelor si a spat iului.
00000 A 00001 B 00010
C 00010 D 00011 E 00101
F 00110 G 00111 H 01000
I 01001 J 01010 K 01011
L 01100 M 01101 N 01110
O 01111 P 10000 Q 10001
R 10010 S 10011 T 10100
U 10101 V 10110 W 10111
X 11000 Y 11001 Z 11010
12
Text clar: FLOARE DE COLT.

In ecare bloc intra doua caractere:


FL OA RE D E CO LT.
Codicand,se obt in sapte blocuri de cate
10 bit i:
0011001100 0111100001 1001000101 0000000100
0000000101 0001101111 0110010100.
Folosind vectorul rucsac
A = (43, 129, 215, 473, 903, 302, 561, 1165, 696, 1523)
se ajunge la textul criptat:
(2414, 3243, 3204, 1165, 1118, 5321, 1811).
13
Privit ca un sistem clasic (cu cheie privata),
criptanalistul trebuie sa ae vectorul de baza
A si apoi sa rezolve problema rucsacului.
Daca el foloseste un atac cu text clar ales, l
va aa usor pe A: este sucient sa trimita n
texte clare cu cte un singur 1 iar restul 0.
Problema apare n momentul rezolvarii proble-
mei rucsacului.
Aici atat Bob cat si Oscar sunt pusi n fat a
aceleiasi probleme NP - complete.
Ori, practic, doar Oscar trebuie sa rezolve o
problema dicila, nu si Bob.
14
Trapa secreta
Bob trebuie sa dispuna de o informat ie secreta
care sa i permita sa transforme problema pu-
blica NP - completa, ntr-o problema usoara.
Aceasta informat ie este numita trapa secreta.

In primul exemplu, trapa secreta era cartea de


telefon ordonata dupa numerele de telefon.
15
Exemplul 4. Sunt clase de probleme ale ruc-
sacului usor de rezolvat; una din ele o formeaza
vectorii cu crestere mare.
Spunem ca vectorul rucsac A = (a
1
, a
2
, . . . , a
n
)
este super-crescator daca
j 2, a
j
>
j1

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
.

In nal se obt ine secvent a 00110 01100 care


este codicarea pentru FL.
17
Daca se foloseste public o trapa secreta, orice
utilizator inclusiv Oscar poate decripta
mesajele, folosind un algoritm liniar.
Ori s-a presupus ca, pentru orice intrus, aarea
mesajului clar trebuie sa se reduca la rezolvarea
unei probleme NP - complete.
18
Exemplul 5. Pentru sistemul bazat pe proble-
ma rucsacului, Bob va proceda astfel:
Alege un numar m (m >
m

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

In majoritatea sistemelor de criptare, aparatul


matematic folosit este bazat pe teoria numere-
lor, funct ii recursive, probabilitat i si statistica.
Pe o scara mult mai restransa apar funct iile
eliptice, teoria automatelor, calcul neconven-
t ional (cuantic, molecular etc).
Sistemele de criptare cu cheie publica au un
avantaj major fat a de sistemele clasice: nu este
necesara transmiterea n prealabil a cheii.
24
Un sistem de criptare cu cheie publica nu ofera
nsa o securitate absoluta.
Oscar poate oricand sa dezvolte atacuri (pasive
sau active):
Daca dispune de un text criptat y, el poate
cauta exhaustiv un text clar x astfel ca
e
K
(x) = y.
Singura aparare contra unui astfel de atac
consta n gradul de complexitate al sis-
temului.
Un criptanalist activ poate efectua cu suc-
ces un atac numit man-in-the-middle.
25
Atacul man-in-the-middle
Alice si Bob doresc sa stabileasca un contact.
Ei fac publice cheile de criptare e
A
respectiv
e
B
.
Daca acest contact este nepersonalizat,
Oscar poate controla mesajele schimbate ntre
cei doi:
Alice
Oscar
Bob
? - -
6
6

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.

In general integritatea poate compromisa n


doua moduri:
1. Prin alterare intent ionata (de exemplu mo-
dicarea unui cont bancar, a unei adrese de
e-mail, a unui document de identitate);
2.

In mod accidental (transmisii perturbate de
zgomote de canal, zgarierea harddiscului).
De recuperarea informat iei pierduta n acest
mod se ocupa Teoria Codurilor detectoare si
corectoare de erori.
30
Sa presupunem ca Alice si Bob sunt doi uti-
lizatori cu posibile conicte de interese.
Cand Alice trimite un mesaj lui Bob, ambele
part i trebuie sa se asigure ca:
Mesajul nu este trimis de o tert a persoana
care pretinde a Alice;
Bob sa nu poata obliga pe Alice sa t ina
cont de mesaje care nu-i apart in, iar Alice
sa nu poata repudia propriile mesaje.

Intr-o oarecare masura, cele doua condit ii sunt


contradictorii: conform primei condit ii, Bob
trebuie sa stie ceva despre modul de criptare
al lui Alice, care i va permite sa autentice
mesajul, iar conform celei de-a doua condit ii,
el nu trebuie sa stie prea mult.
31
O modalitate frecvent utilizata pentru auten-
ticarea mesajelor este folosirea codurilor de
autenticare.
Exemplul 6. MAC-ul (Message Authentication
Code) denit n cadrul sistemului de criptare
DES este o varianta prin care se poate asigura
atat autenticitatea cat si integritatea mesaju-
lui.
Daca se solicita si autenticarea partenerilor,
atunci se foloseste de obicei semnatura elec-
tronica.
32
Exemplul 7. Alice vrea sa trimita mesajul m.
Daca se foloseste un sistem de criptare cu cheie
publica n care funct iile de criptare/decriptare
sunt comutative, iar
(e
A
, d
A
), (e
B
, d
B
)
sunt perechile (cheie publica, cheie privata) ale
celor doi, ei pot urma urmatorul protocol:
1. Alice trimite lui Bob y
1
= e
A
(m);
2. Bob trimite lui Alice y = e
B
(y
1
);
3. Alice trimite lui Bob d
A
(y) = e
B
(m);
4. Bob calculeaza d
B
(e
B
(m)) = m.
Sunt vericate cele doua condit ii de autenti-
care si n plus protocolul rezista unui atac
de tip man-in-the-middle.
33
Avantaje ale sistemelor simetrice de criptare
1. Pot transmite volume mari de date.
Exista implementari hard care pentru unele
sisteme de criptare asigura rate de criptare
de sute de mega-octet i pe secunda (sunt si
implementari soft cu rate de mega-octet i
pe secunda).
2. Cheile sunt relativ scurte.
3. Pot folosite drept baza de construct ie
pentru generatori de numere pseudoalea-
toare, generatori de funct ii de dispersie,
scheme de semnatura etc.
4. Prin compunere pot conduce la sisteme de
criptare puternice.
5. Au o istorie bogata n evenimente si expe-
rient a.
34
Dezavantaje ale sistemelor de criptare simetrice
1. Cheia trebuie sa ramana permament se-
creta n (cel put in) doua locuri distincte.
2. Cu cat lungimea unui mesaj criptat este
mai mare, cu atat el este mai usor de spart.
3.

In ret ele mari, o gestionare a cheilor devine
extrem de dicila.
4. Necesita un canal sigur de comunicare, cel
put in pentru transmiterea cheii.
Acest lucru devine dicil mai ales pentru
sistemele care necesita schimbari frecvente
ale cheilor de criptare/decriptare.
35
Avantaje ale sistemelor de criptare cu cheie publica
1. Sistemul este ideal pentru transmiterea
informat iei prin canale nesigure.
2. Sistemele cu cheie publica sunt simplu de
denit si elegante matematic.
3. Doar cheia de decriptare trebuie t inuta se-
creta, la un singura adresa (destinatar).
4.

In funct ie de modul de utilizare, o pereche
de chei (publica, privata) poate pastrata
o perioada mai lunga de timp.
5. Conduc la aplicat ii de mare ntindere:
semnaturi electronice, algoritmi de auten-
ticare, componente de comert electronic
etc.
36
Dezavantaje ale sistemelor de criptare
cu cheie publica
1. Sunt semnicativ mai lente decat sistemele
simetrice.
2. Sunt necesare chei de lungimi mult mai
mari.
3. Nu se poate garanta securitatea absoluta
a nici unei scheme de criptare cu cheie pu-
blica.
4. Implementarea trebuie realizata cu foarte
mare grija.
Sisteme cu grad teoretic ridicat de securi-
tate pot sparte usor printr-o implemen-
tare neglijenta.
37
Cele doua clase de sisteme de criptare dispun
de o serie de avantaje complementare.
Acest lucru sugereaza o utilizare combinata.
Exemplul 8. Multe sisteme de criptare ncep
comunicarea transmit and via un sistem cu
cheie publica cheia unui sistem simetric.

In faza a doua, mesajele sunt criptate folosind


sistemul simetric de criptare.
Aceasta asigura o viteza mare de transmitere
si un spor de autenticitate a mesajelor.
38
Algoritmul lui Euclid extins
Algoritmul lui Euclid constituie o modalitate
ecace de determinare a celui mai mare divizor
comun a doua numere ntregi pozitive.
El poate extins pentru a determina si in-
versele elementelor dintr-un corp nit Z
n
.
Forma clasica a algoritmului Euclid:
Fie r
0
, r
1
N

.
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.

In 2003 a fost pusa sub semnul ntrebarii se-


curitatea modulelor de 1024 bit i.
8
Daca n ocupa k bit i n memorie
(k = [log
2
n] + 1), suma a doua numere de k
bit i se face n O(k), iar nmult irea n O(k
2
).
La fel si reducerea modulo n.
Deci, pentru x, y Z
n
, numarul xy (mod n) se
poate determina prin calcule de complexitate
O(k
2
).
Aceasta operat ie este numita
multiplicare modulara.
9
Complexitatea exponent ierii modulare
x
c
mod n
Efectuarea de c 1 multiplicari modulare este
proces foarte inecient pentru c mare (algorit-
mul devine de complexitate exponent iala).
Fie
c =
s1

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
)).

In general, un algoritm RSA este cam de 1000


ori mai lent decat DES pentru o implementare
harwdare, cam de 100 ori la o implementare
software.
12
Teste de primalitate probabiliste
Pasul 1 solicita generarea aleatoare de numere
prime cu numar mare de cifre.
Practic, se realizeaza aleator numere, a caror
primalitate se testeaza, pana se ajunge la un
numar prim.
Pentru teste se folosesc algoritmi probabilisti,
al caror avantaj este rapiditatea (complexitate
log n) dar care pot arma uneori primalitatea
unor numere care nu sunt prime.
Aceste erori se pot reduce la o marja accep-
tabila prin multiplicarea testelor.
13
Problema generarii aleatoare este posibila din
urmatorul considerent.
Teorema rareerii numerelor prime: sunt circa
n/log n numere prime mai mici decat n.
Astfel, pentru un modul de 512 bit i, un numar
p de 256 bit i are o probabilitate 1/logp 1/177
de a prim.
Deci se fac n medie cam 177 generari de
numere p pentru a obt ine un numar prim;
faptul ca se genereaza numai numere impare
reduce numarul de ncercari la jumatate.
Rezulta ca este practic sa se construiasca nu-
mere mari, care sunt probabil prime, pe baza
carora sa se realizeze criptarea RSA.
14
Denit ia 1. O problema de decizie este o
problema care pune ontrebare al carui raspuns
este dicotomic (Da/Nu).
Un algoritm probabilist este un algoritm
care foloseste numere aleatoare.
Denit ia 2. Un algoritm Monte - Carlo pozi-
tiv este un algoritm probabilist care rezolva o
problema de decizie n care orice raspuns
pozitiv este corect, dar pentru care un raspuns
negativ poate incorect.

In mod similar se deneste algoritmul Monte -


Carlo negativ.
Un algoritm Monte - Carlo pozitiv are o proba-
bilitate de eroare daca pentru orice problema
al carei raspuns ar trebui sa e pozitiv, algorit-
mul da un raspuns negativ cu probabilitate cel
mult .
15
Problema de descompunere:
Fiind dat un numar ntreg n, se poate el
descompune n produs de alte numere
supraunitare ?
Vom prezenta doi algoritmi de tip Monte Carlo
pozitiv care rezolva aceasta problema de
decizie.
16
Algoritmul Solovay - Strassen
Denit ia 3. Fie p 3 numar prim si a Z

p
.
a este rest (reziduu) patratic modulo p daca
ecuat ia x
2
a (mod p) are solut ie n Z
p
.

In caz contrar, un numar a = 0 nu este rest


patratic.
Exemplul 3. Resturile patratice modulo 11
sunt 1, 3, 4, 5, 9.
Aceasta deoarece n Z
11
avem
(1)
2
= 1, (5)
2
= 3, (2)
2
= 4, (4)
2
= 5, (3)
2
= 9.
17
Problema resturilor patratice: a decide daca
un numar n dat este sau nu un rest patratic.
Un algoritm determinist pentru rezolvarea
acestei probleme se bazeaza pe
Teorema 1. (Criteriul lui Euler). Daca p 3
este prim, un numar a este rest patratic
modulo p daca si numai daca
a
p1
2
1 (mod p)
Denit ia 4. Daca p 3 este prim, pentru orice
numar a 0 se deneste simbolul Legendre
prin

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

se poate calcula folosind


cel mult O(log n) reduceri modulare, ecare n
timp O((log n)
2
).
24
Numarul de baze a pentru care un numar n
neprim este pseudo - prim Euler, este cel mult
n/2.
Deci testul de primalitate Solovay - Strassen
este un algoritm Monte Carlo pozitiv pentru
problema de descompunere, cu probabilitate de
eroare 1/2.
25
Algoritmul Miller - Rabin
Este cunoscut si sub numele de testul de tare
pseudo - primalitate.
1. Se descompune n 1 = 2
k
m, m impar;
2. Se alege aleator ntregul a [2, n 2];
3. b a
m
(mod n)
4. if b 1 (mod n) then n prim, Stop;
5. for i 0 to k 1 do
if b 1 (mod n) then n prim, Stop;
else b b
2
(mod n)
6 n neprim, Stop
Algoritmul are complexitatea O((log n)
3
).
26
Teorema 3. Algoritmul Miller - Rabin este un
algoritm Monte Carlo pozitiv pentru problema
de descompunere.
27

In general testul Miller - Rabin este mai bun


decat Solovay - Strassen:
1. Solovay - Strassen este mai complex din
punct de vedere computat ional.
2. Implementarea lui Solovay - Strasen este
mai dicila din cauza calculului simbolului
Jacobi.
3. Probabilitatea de eroare pentru Solovay -
Strasen este 1/2; la Miller - Rabin ea se
reduce la 1/4.
4. Deoarece orice valoare a lui a pentru care
testul Miller - Rabin este gresit este un
numar Euler pseudo-prim, un test Miler -
Rabin nu este niciodata inferior unui test
Solovay - Strasen.
28
Orice implementare a unui sistem RSA trebuie
nsot ita de un generator de numere prime mari.
Varianta Bruce Schneier:
1. Genereaza un numar aleator p de n bit i.
2. Verica daca primul si ultimul bit sunt 1.
3. Verica daca p nu este divizibil cu numere
prime mici (3, 5, 7, 11, . . .).
4. Aplica testul Miller - Rabin cu o valoare
aleatoare a. Daca p trece testul, se ia alta
valoare pentru a.
Pentru viteza, se iau valori mici pentru a.
Cinci teste sunt suciente. Daca p esueaza
la unul din ele, algoritmul se reia.
29
Securitatea sistemului RSA
RSA nu rezista la un atac de tipul man-in-the
middle.
De aceea, un sistem RSA este nsot it perma-
nent de un certicat generat conform unui pro-
tocol PKI (Public Key Infrastructure) si
binent eles de un generator de numere prime.
30
Informat ii despre p si q
Cunoasterea lui (n) este sucienta pentru
spargerea sistemului.

In acest caz, totul se reduce la rezolvarea


(n N N) sistemului

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 acest caz (cu p > q), vom avea (p q)/2


un numar foarte mic, iar (p + q)/2 un numar
foarte apropiat de

n.

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.

In condit iile 3a < n


1/4
si q < p < 2q, exista un
algoritm de factorizare a lui n:
1. Plecand de la n si b (publice), se aa dez-
voltarea n fract ie continua a lui b/n (algo-
ritmul lui Euclid).
2. Se parcurg pe rand convergent ele acestei
dezvoltari.
Daca exista convergent a t/a care verica
t|(a b 1), se calculeaza (n) =
a b 1
t
.
3. Cu n si (n) se aa p si q.
43
Detalierea algoritmului lui Wiener:
Intrare: [q
1
, q
2
, . . . , q
m
] - dezvoltarea n fract ie
continua a lui b/n.
Algoritm:
1 c
0
1, c
1
q
1
, d
0
0, d
1
1;
2. for j 1 to m do
2.1. if c
j
|(d
j
b 1) then
2.1.1. m (d
j
b 1)/c
j
;
2.1.2. Fie p, q radacinile x
2
(n m+1)x +n = 0
2.1.3. if p, q Z
n
then return(p, q);
2.2. j j +1;
2.3. c
j
q
j
c
j1
+c
k2
, d
j
q
j
d
j1
+d
j2
;
3. return(esec);
44
Exemplul 10. Fie
n = 160523347, b = 60728973.
Dezvoltarea n fract ie continua a lui b/n este
[0, 2, 1, 1, 1, 4, 12, 102, 1, 1, 2, 3, 2, 2, 36]
Primele convergent e sunt: 0,
1
2
,
1
3
,
2
5
,
3
8
,
14
37
. . .
Primele cinci convergent e nu verica condit ia
de divizibilitate.
Pentru 14/37 avem:
m =
37 60728973 1
14
= 160498000
Din ecuat ia x
2
25348x +160523347 = 0
se aa radacinile 12347 si 13001.
S-a gasit factorizarea
160523347 = 12347 13001
45
Informat ie part iala despre textul clar
Este posibil sa existe informat ie n textul clar
care ar putea trada sistemul RSA.
Stiind y = e
K
(x), vom considera doua exemple
de informat ie part iala data de y despre x:
1. par(y) - da valoarea ultimului bit din scrie-
rea binara a lui x;
2. jum(y) - va da 0 daca x [0, n/2),
1 daca x [n/2, n 1].
46
Orice algoritm care poate calcula par(y) sau
jum(y) poate utilizat ca oracol pentru regasi-
rea textului clar x.
Altfel spus, a calcula una din aceste funct ii este
la fel de dicil cu a decripta tot textul y.
Cele doua funct ii sunt polinomial echivalente
deoarece
jum(y) = par(y e
K
(2) mod n)
par(y) = jum(y e
K
(2
1
) mod n)
si e
K
(x
1
x
2
) = e
K
(x
1
)e
K
(x
2
).
47
Se poate calcula x = d
K
(y) cu ajutorul unui
oracol care da valoarea jum(y):
1. k [log
2
n];
2. for i = 0 to k do
2.1. y
i
jum(y)
2.2. y (y e
K
(2)) mod n
3. jos 0;
4. sus n;
5. for i = 0 to k do
5.1. mijloc (jos +sus)/2;
5.2. if y
i
= 1 then jos mijloc
else sus mijloc
6. x [sus]
Practic, x este localizat printr-o cautare
binara realizata de pasul 5.
48
Exemplul 11. Fie n = 1457, b = 779,
si textul criptat y = 722.
Calculam e
K
(2) = 946.
Sa presupunem ca oracolul jum da urmatoarele
raspunsuri (pasul 2.1):
i 0 1 2 3 4 5 6 7 8 9 10
y
i
1 0 1 0 1 1 1 1 1 0 0
Cautarea binara este realizata n tabelul:
i jos mijloc sus
0 0, 00 728, 50 1457, 00
1 728, 50 1092, 75 1457, 00
2 728, 50 910, 62 1092, 75
3 910, 62 1001, 69 1092, 75
4 910, 62 956, 16 1001, 69
5 956, 16 978, 92 1001, 69
6 978, 92 990, 30 1001, 69
7 990, 30 996, 00 1001, 69
8 996, 00 998, 84 1001, 69
9 998, 84 1000, 26 1001, 69
10 998, 84 999, 55 1000, 26
998, 84 999, 55 999, 55
Textul clar este deci x = [999, 55] = 999.
49
Algoritmi de descompunere n factori primi
Sunt extrem de numeroase lucrarile care tra-
teaza descompunerea n factori primi.
Vom face doar o trecere n revista a celor mai
cunoscut i algoritmi de factorizare.
Cel mai simplu pare a ciurul lui Eratostene
care consta n ncercarea de mpart i numarul
n impar prin toate numerele ntregi impare din
intervalul [3,

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.

In practica este folosit frecvent


exponentul de criptare b = 3.

In acest caz nsa, este necesar ca p 1 si q 1


sa nu e divizibile cu 3.
Rezultatul este o criptare extrem de rapida,
deoarece se foloseste o singura nmult ire
modulara si o singura ridicare la patrat (tot
modulara).
De asemenea este utilizat des si exponentul de
criptare
b = 2
16
+1 = 65537.
Acest numar are numai doi de 1 n reprezen-
tarea binara, asa ca o criptare foloseste 16
ridicari la patrat modulare si o nmult ire mo-
dulara.
57
Algoritmul lui Dixon si sita patratica
Daca se pot aa doua numere x, y cu
x y (mod n) dar x
2
y
2
(mod n), atunci
cmmdc(x y, n) este un divizor netrivial al lui
n.
Metoda utilizeaza o baza B de factori primi
mici.
Se cautantai mai multe numere x pentru care
divizorii primi ai lui x
2
mod n sunt n B.
Se formeaza apoi produse cu aceste numere,
n asa fel ncat ecare factor prim al patratului
produsului sa apara de un numar par de ori.
Aceasta conduce la o relat ie x
2
y
2
(mod n)
care va da eventual o descompunere a lui
n.
58
Exemplul 14. Fie n = 15770708441 si alegem
mult imea
B= {2, 3, 5, 7, 11, 13}.
Selectam
8340934156
2
3 7 (mod n)
12044942944
2
2 7 13 (mod n)
2773700011
2
2 3 13 (mod n)
Produsul lor este
(8340934156 12044942944 2773700011)
2

(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

In general, exponent i mici de criptare asigura


o securitate redusa pentru mesajele mici m:
daca m < n
1/b
atunci textul clar poate dedus
din textul criptat c = m
b
calculand radacina de
ordin b a lui c.
Alice trimite acelasi text clar m la trei desti-
natari diferit i, care au modulele n
i
, dar acelasi
exponent de criptare b = 3.
Textele criptate vor
c
i
= m
3
(mod n
i
) i = 1, 2, 3.
Oscar le intercepteaza si rezolva sistemul
x c
i
(mod n
i
), i = 1, 2, 3
folosind teorema chineza a resturilor.
Fie x [0, n
1
n
2
n
3
) solut ia sistemului.
Deoarece m
3
< n
1
n
2
n
3
, va rezulta ca x = m
3
.
Acum Oscar aa m extragand radacina de
ordinul 3 din solut ia x.
63
Folosirea unui modul comun de criptare de
catre mai mult i utilizatori permite de aseme-
nea un atac.
Alice trimite acelasi mesaj m catre doi uti-
lizatori care au cheile publice b
1
, b
2
dar acelasi
modul n.
Deci
c
1
m
b
1
(mod n), c
2
m
b
2
(mod n).
Vom presupune cmmdc(b
1
, b
2
) = 1.
Oscar foloseste algoritmul lui Euclid pentru a
determina numerele ntregi r, s astfel ca
r b
1
+s b
2
= 1
Unul din numerele r sau s este negativ; sa pre-
supunem ca este r).
Atunci Oscar obt ine textul clar m folosind ega-
litatea
(c
1
1
)
r
c
s
2
m (mod n)
64
Sistemul de criptare Rabin
Sistemul (propusn 1979) este o varianta a sis-
temului RSA, cu o securitate de calcul echiva-
lenta.
Fie n = pq cu p, q numere prime distincte si
p 3 (mod 4), q 3 (mod 4).
P = C= Z
n
,
K= {(n, p, q, B) | 0 B n 1}.
Pentru cheia K = (n, p, q, B) se denesc:
e
K
(x) = x(x +B) (mod n)
d
K
(y) =

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.

In general, Bob nu are nici un mijloc de a dis-


tinge care din cele patru mesaje este cel corect,
daca nu dispune de informat ii suplimentare.
66
Bob primeste mesajul criptat y si ncearca sa
sa determine x astfel ca x
2
+Bx y (mod n).
Termenul de gradul 1 al acestei ecuat ii se
elimina cu substitut ia x
1
= x +B/2.
Se ajunge la ecuat ia
x
2
1

B
2
4
+y (mod n).
Notand membrul drept cu C, aceasta ecuat ie
se scrie x
2
1
C (mod n).
Deci decriptarea se reduce la extragerea
radacinilor patrate modulo n; operat ie echiva-
lenta cu rezolvarea sistemului
x
2
1
C (mod p) x
2
1
C (mod q)
care, prin combinarea solut iilor ecarei ecuat ii
va da patru radacini patrate modulo n.
67
Daca p 3 (mod 4), exista o formula simpla
pentru extragerea radacinilor patrate dintr-un
rest patratic C modulo p.
Avem (calcule modulo p):

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.

In al doilea caz, n|(x


1
r)(x
1
+r) si n nu divide nici unul
din cei doi factori.
Deci, calculul lui cmmdc(x
1
+ r, n) sau cmmdc(x
1
r, n)
va da p sau q, adica o descompunere a lui n.
70
Sistemul de criptare El Gamal
1
Descrierea algoritmului
Sistemul de criptare El Gamal decrisn 1985 de
Taher ElGamal, se bazeaza pe problema loga-
ritmului discret (PLD), care este urmatoarea:
Fie p numar prim si , Z
p
, ,= 0.
Sa se determine a Z
p1
astfel ca

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) =

(x, a, b +1) daca x S


1
(x
2
, 2a, 2b) daca x S
2
(x, a +1, b) daca x S
3
20
Pe baza acestei funct ii generam recursiv
triplete (x, a, b) cu proprietatea x =
a

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 faza a doua, se compara (x


2i
, a
2i
, b
2i
) si
(x
i
, a
i
, b
i
) pana se gaseste un i cu x
2i
= x
i
.

In acel moment,

a
2i

b
2i
=
a
i

b
i
.
Notand c = log

, relat ia poate rescrisa

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).

In caz de reusita, primul pas este ncheiat.


O metoda de aare a celor C congruent e: se
ia un x aleator, se determina
x
(mod p) si se
verica daca acesta are tot i divizorii n B.
24
II: Se determina log

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).

In mod similar se obt in


5
5136
(mod 10007) = 54 = 2 3
3
,
5
9865
(mod 10007) = 189 = 3
3
7.
26
Ele dau relat iile
log
5
2 +3log
5
3 5136 (mod 10006),
3log
5
3 +log
5
7 9865 (mod 10006).
Rezolvarea acestui sistem de trei ecuat ii n
Z
10006
conduce la solut ia unica
log
5
2 = 6578, log
5
3 = 6190, log
5
7 = 1301.
Sa presupunem ca se cauta log
5
9451.
Daca se genereaza aleator numarul s = 7736,
avem
9451 5
7736
(mod 10007) = 8400 = 2
4
3
1
5
2
7
1
.
Acesta se poate factoriza n B. Deci
log
5
9451 = 4log
5
2+log
5
3+2log
5
5+log
5
7s =
4 6578 + 6190 + 2 1 + 1301 7736 = 6057
(calcule modulo 10006).
Vericare: 5
6057
9451 (mod 10007).
27
Securitatea PLD fat a de informat ii part iale
Un tip de atac care ncearca sa determine va-
loarea cel put in a unui bit din reprezentarea
binara a logaritmilor discret i.
Se ncearca aarea lui L
i
(): al i-lea bit (nce-
pand cu cel mai put in reprezentativ) din scrie-
rea n binar a lui log

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

este par, adica L


1
() = 0.
este rest patratic daca si numai daca

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

(s-a presupus ca valoarea L


2
() se poate aa,
folosind de exemplu un oracol):
Algoritm aare bit(p, , )
1. x
0
L
1
();
2. /
x
0
(mod p)
3. i 1;
4. while ,= 1 do
4.1. x
i
L
2
();
4.2.
(p+1)/4
(mod p);
4.3. if L
1
() = x
i
then
else p ;
4.4. /
x
i
(mod p);
4.5. i i +1;
5. return(x
i1
, x
i2
, . . . , x
0
).

In nal, se obt ine


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.

In schimb, se pare ca dicultatea problemei de-


pinde mult de reprezentarea grupului utilizat.
De exemplu n grupul aditiv Z
n
, problema
este simpla; aici exponent ierea
a
este de fapt
nmult irea cu a modulo n.
Deci, PLD consta n aarea unui numar ntreg
a astfel ca
a (mod n).
Daca se alege astfel ca cmmdc(, n) = 1 (
este generator al grupului), are un invers
multiplicativ modulo n, care se determina cu
algoritmul lui Euclid extins.
Atunci,
a = log

=
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

In 1985, Victor Miller si Neal Koblitz propun


independent unul de altul o criptograe n
care baza de calcul sa e mult imea punctelor
unei curbe eliptice.
Asigura o ecient a sporita timp/spat iu a
algoritmilor.
Criptograa pe curbe eliptice asigura o
securitate sporita, precum si performant e
superioare tehnicilor de criptare cu cheie
publica cunoscute pana acum. (NSA)
Estimare NIST a marimii cheilor (n bit i)
la un nivel echivalent de securitate:
Sistem simetric RSA Sistem pe curbe eliptice
80 1024 160
112 2048 224
128 3072 256
192 7680 384
256 15360 521
Ofera variante de implementare superioare
pentru noi aparate matematice de calcul
(exemplu: aplicat ii biliniare).
2
Aritmetica curbelor eliptice
Denit ia 1. O curba eliptica E peste un corp
K este denita de ecuat ia
(E) : y
2
+a
1
xy +a
3
y = x
3
+a
2
x
2
+a
4
x+a
6
(1)
a
1
, a
2
, a
3
, a
4
, a
6
K si ,= 0, unde este
discriminantul lui E, denit prin
= d
2
2
d
8
8d
3
4
27d
2
6
+9d
2
d
4
d
6
, (2)
iar

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.

In general se lucreaza cu un corp K = Z


p
, unde
p este un numar prim.
Prin extensie, vom numi curba eliptica peste Z
p
mult imea (x, y) Z
p
Z
p
a solut iilor ecuat iei
y
2
+a
1
xy+a
3
y x
3
+a
2
x
2
+a
4
x+a
6
(mod p)
si dintr-un punct la innit C.
4
1. p = 2. Doua subcazuri:
(a) Daca a
1
,= 0, atunci curba E poate
adusa la forma
y
2
+xy = x
3
+ax +b (3)
unde a, b K.
Se numeste non-supersingulara,
cu = b.
(b) Daca a
1
= 0, atunci ecuat ia poate
adusa la forma
y
2
+cy = x
3
+ax +b (4)
unde a, b, c K.
Se numeste supersingulara,
cu = c
4
.
5
2 p = 3. Doua subcazuri:
(a) Daca a
2
1
,= a
2
, atunci curba E poate
adusa la forma
y
2
= x
3
+ax
2
+b (5)
cu a, b K. Este non-supersingulara,
cu = a
3
b.
(b) Daca a
2
1
= a
2
, atunci E se aduce la
forma
y
2
= x
3
+ax +b (6)
cu a, b K. Curba este supersingulara,
cu = a
3
.
3 Pentru p > 3, curba eliptica E poate
adusa la forma
y
2
= x
3
+ax +b (7)
unde a, b K. Descriminantul este
= 16(4a
3
+27b
2
).
6
Vom lucra cu denit ia (7) a unei curbe eliptice
(corpuri de caracteristica p > 3).
O astfel de curba eliptica E se poate structura
ca un grup abelian nit.
Legea de compozit ie (notata aditiv):
Fie P, Q E(L), P = (x
1
, y
1
), Q = (x
2
, y
2
).
Daca x
2
= x
1
, y
2
= y
1
, atunci P + Q = C;
altfel, P +Q = (x
3
, y
3
) unde
x
3
=
2
x
1
x
2
, y
3
= (x
1
x
3
) y
1
,
iar
=

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.

In caz armativ, deoarece 19 3 (mod 4),


radacinile patrate ale lui z sunt
z
(19+1)/4
(mod 19) = z
5
(mod 19).
a 0 1 2 3 4 5 6 7 8 9
a
2
0 1 4 9 16 6 17 11 7 5
x x
3
+x +5 y x x
3
+x +5 y x x
3
+x +5 y
0 5 9, 10 1 7 8, 11 2 15
3 16 4, 15 4 16 4, 15 5 2
6 18 7 13 8 12
9 2 10 8 11 17 6, 13
12 16 4, 15 13 11 7, 12 14 8
15 13 16 13 17 14
18 3
(toate calculele se realizeaza modulo 19).
9
E admite deci 15 puncte; cum ordinul grupului
nu este numar prim, grupul nu este ciclic.
Alegem ca generator = (0, 9) (primitiv)
Calculam puterile lui (de fapt multiplii,
grupul ind aditiv).
Pentru 2 se calculeaza ntai (modulo 19):
= (3 0
2
+1)(2 9)
1
= 1 18
1
= 18.
Acum se pot determina
x
3
= 18
2
0 0 = 361 1 (mod 19),
y
3
= 18 (0 1) 9 = 27 11 (mod 19),
deci 2 = (1, 11).
= (0, 9) 2 = (1, 11) 3 = (3, 4)
4 = (4, 4) 5 = (13, 12) 6 = (11, 6)
7 = (12, 15) 8 = (12, 4) 9 = (11, 13)
10 = (13, 7) 11 = (4, 15) 12 = (3, 15)
13 = (1, 8) 14 = (0, 10) 15 = C
De remarcat ca de exemplu (3, 4) nu este
element primitiv, avand ordinul 5.
10
O curba eliptica denita pe Z
p
(p > 3 prim) are
aproximativ p puncte.
Teorema lui Hasse:
p +1 2

p card(E(Z
p
)) p +1 +2

p
Valoarea t = 2

p se numeste urma lui E peste


Z
q
, iar intervalul [p+1t, p+1+t] este numit
interval Hasse.
Calculul efectiv al lui card(E(Z
p
)) este destul
de dicil. Practic, nu se cunoaste o formula
care sa dea valoarea card(E(Z
p
)); conjectura
Birch and Swinnerton-Dyer (una din cele sapte
probleme ale mileniului) trateaza acest subiect.
Exista un algoritm al lui Schoof de numarare
a punctelor unei curbe eliptice, de complexi-
tate C(log
6
p) (C(log
9
p) n versiunea originala)
nmult iri si inversiuni, si C(log
3
p) memorie.
11
Fie p = q
m
.
Exista o curba eliptica E denita peste Z
p
, cu
card(E(Z
p
)) = p +1 t
daca si numai daca este adevarata una din
condit iile:
t , 0 (mod q) si t
2
4p.
m este impar si
t = 0, sau
t
2
= 2p si q = 2, sau
t
2
= 3p si q = 3.
m este par si
t
2
= 4p, sau
t
2
= p si q , 1 (mod 3), sau
t = 0 si q , 1 (mod 4).
12
Teorema 1. (Teorema lui Ruck) Fie E o curba
eliptica peste Z
p
cu p > 3 numar prim.
Atunci exista doua numere ntregi n
1
, n
2
astfel
ca E(Z
p
) sa e izomorfa cu Z
n
1
Z
n
2
, iar
n
2
[n
1
, n
2
[(p 1).
De remarcat ca card(E(Z
p
)) = n
1
n
2
.
Daca n
2
= 1, atunci E(Z
p
) este grup ciclic.
Daca n
2
> 1, atunci E(Z
p
) are rangul 2.
Daca valoarea lui n
2
este mica (n
2
4), E(Z
p
)
este aproape ciclic.
Cum n
2
divide n
1
si p1, se asteapta ca E(Z
p
)
sa e ciclic sau aproape ciclic pentru majori-
tatea curbelor eliptice peste Z
p
.
13
Sisteme de criptare
construite pe curbe eliptice
Principalul avantaj al sistemelor construite pe
curbe eliptice: dimensiunea mica ale cheilor.

In general, se bazeaza pe problema logaritu-


muluin discret si sunt inspirate de sistemul de
criptare El Gamal.
14
Exemplul 2. O criptare El Gamal pe curba
eliptica denita n Exemplul anterior.
Fie = (0, 9) si a = 7.
Atunci = 7 = (12, 15)
e
K
(x, k) = (k (0, 9), x +k (12, 15))
unde x E, 0 k 14.
Pentru decriptare se foloseste operat ia
d
K
(y
1
, y
2
) = y
2
7y
1
O criptare a mesajului x = (3, 4); daca folosim
k = 8, atunci
y
1
= 8 (0, 9) = (12, 4), si
y
2
= (3, 4) +8 (12, 15) = (3, 4) +(4, 15) =
= 3 + 8 7 = 3 + 11 = 14 = (0, 10)
(calcule modulo 15).
Deci y = ((12, 4), (0, 10)).
La recept ie, Bob decripteaza mesajul astfel:
x = (0, 10) 7 (12, 4) = 14 7 8 = 3.
15
Sistemul Menezes - Vanstone
Este o varianta a lui El Gamal, curba eliptica
ind utilizata pentru mascare.
Fie E o curba eliptica peste Z
p
(p > 3 prim)
care cont ine un subgrup ciclic H n care pro-
blema logaritmului discret este dicila.
1= Z

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.

In cazul curbelor eliptice, ea se enunt a n felul


urmator:
Problema logaritmului discret pe curbe
eliptice (ECDLP):
Fiind data o curba eliptica E peste corpul Z
p
,
un punct P E(Z
p
) de ordin n si
Q < P > = |sP [ 1 s n 1
sa se determine k astfel ncat Q = kP.
Numarul k este numit logaritmul discret al lui
A n baza P : k = log
P
Q.
18
Atacul Pohlig - Hellman
Atacul prin fort a bruta: se calculeaza R = kP
pentru k = 1, 2, 3, . . ., vericandu-se perma-
nent egalitatea R = Q.
Atunci cand egalitatea este vericata, s-a gasit
valoarea k = log
P
Q.
Timp de rulare: C(n), n - ordinul lui P.
Pohlig si Hellman au observat ca problema
logaritmului discret ntr-un grup G are acelasi
ordin de dicultate ca si problema logaritmului
discret n cel mai mare subgrup prim din G.
Concluzie: n criptograa pe curbe eliptice,
se vor selecta curbe eliptice E cu proprietatea
card(E(Z
p
)) = n = h s, unde s este un numar
prim mare, iar h este un numar foarte mic (de
obicei h = 1, 2 sau 4).

In acest caz, ECDLP este dicila.


19
Atacul Pohling - Hellman:
Fie n = p
e
1
1
p
e
2
2
. . . p
e
r
r
.
1. Se calculeaza k
i
= k (mod p
e
i
i
) (1 i r).
2. Se rezolva sistemul de congruent e
x k
i
(mod p
e
i
i
) (1 i r).
Teorema chineza a resturilor asigura
existent a unei solut ii unice
log
P
Q = k = x [0, n 1]
20
Determinarea ecarui k
i
se poate reduce la
aarea exponentului e
i
ntr-un subgrup ciclic
< P > de ordin p
i
;
pentru simplicare, vom nota p
i
cu p.
Reprezentarea lui k
i
n baza p:
k
i
=
e
i
1

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|P. Se calculeaza lista


B = |(Q
j
, j) [ Q
j
= QjR, 0 j < ]

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, deci numarul de operat ii pe


grupul curbelor eliptice este 3

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).

In momentul cand vrem sa adunam acest punct


cu X
4
, ajungem la calculul valorii
=
42335 5412
27556 10532
(mod 44023)
care nu se poate efectua, deoarece 27556
10532 = 17024 nu este inversabil modulo n.
Dacancercam sa calculam inversul folosind al-
goritmul lui Euclid extins, ajungem la
cmmdc(17024, 44023) = 133,
care este un factor al lui n = 44023.
35
Alte sisteme de criptare
cu cheie publica
1
Sistemul de criptare Merkle - Hellman
Numim vector rucsac un tablou unidimensional
A = (a
1
, a
2
, . . . , a
n
) (n 3) cu elemente nu-
mere ntregi pozitive distincte.
Aparit ia problemei rucsacului: o pereche (A, x)
cu A vector rucsac, x - numar ntreg pozitiv.
O solut ie a aparit iei problemei (A, x) este un
vector B = (a
i
1
, . . . , a
i
k
) de elemente din A
astfel ca x =
k

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).

In acest caz, proprietatea inversa nu mai este


valabila deoarece m >
n

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 acest fel, un criptanalist va trebui sa rezolve


aparit ia (B, y) a problemei rucsacului.
Bob va determina ntai x u y (mod m), dupa
care va rezolva aparit ia (A, x).
9
Exemplul 3. Fie n = 10 si vectorul super-
crescator
A = (103, 107, 211, 430, 863, 1718, 3449, 6907,
13807, 27610)
Alegem m = 55207 (mai mare decat suma
componentelor lui A) si t = 25236.
Deoarece cmmdc(t, m) = 1, se determina
u = t
1
= 1061.
Ca rezultat al nmult irii modulare tari n raport
cu (m, t) se obt ine vectorul rucsac
B = (4579, 50316, 24924, 30908, 27110,
17953, 32732, 16553, 22075, 53620)
B este cheia publica de criptare, n timp ce
(A, t, m, u) formeaza trapa secreta.
10
Folosind cheia publica B, sa criptam mesajul
PELIN DE MAI.
El se mparte n perechi de cate doua litere,
care se codica n secvent e binare de 10 bit i.
PE 10000 00101 74.752
LI 01100 01001 161.592
N 01110 00000 106.148
DE 00100 00101 95.097
MA 01101 00001 155.970
I 01001 00000 77.426
Pe ultima coloana sunt criptarile blocurilor de
pe prima coloana.
11
Sa decriptam blocul 74.752 (celelalte blocuri
sunt tratate analog):
747521061 = 79311872 = 143655207+34620
Consideram aparit ia problemei rucsacului
(A, 34.620)
Solut ia se obt ine parcurgand vectorul A de la
dreapta spre stanga:
Numar Componenta lui A Bit
35.620 27.610 1
7.010 13.807 0
7.010 6.907 1
103 3.449 0
103 1.718 0
103 863 0
103 430 0
103 211 0
103 107 0
103 103 1
Citind ultima coloana din tabel, de jos n sus,
obt inem 10000 00101, care este codicarea bi-
nara pentru perechea de litere PE.
12
Sa procedam invers: criptam textul clar PE
folosind vectorul A.
Se obt ine (evident) 34.620.
Aplicamnmult irea modulara tare n raport cu
(55.207, 25.236):
34620 25236 = 873670320 = 15825 55207+
19545
Dar aparit ia (B, 19.545) nu are solut ie; evident,
deoarecen B, singurele numere mai mici decat
19.545 sunt 4.579, 19.953 si 16.553, iar 19.545
nu se poate obt ine din nici o combinat ie a lor.
13
Criptanaliza sistemului de criptare rucsac
Avem problema de criptanaliza: se stie un vec-
tor rucsac B = (b
1
, b
2
, . . . , b
n
) folosit drept
cheie publica de criptare.
Se stie de asemenea ca B este obt inut dintr-
un vector super-crescator A printr-o nmult ire
modulara tare n raport cu un modul m si un
nmult itor t.
Nu cunoastem A, m, t; vrem sa le aam.
Daca determinam m si u = t
1
, putem gasi
imediat vectorul super-crescator A si decripta
mesajele interceptate.
Calculul lui u plecand de la t (sau invers) se
bazeaza pe Algoritmul extins al lui Euclid.
14
Atacul dezvoltat de Adi Shamir.
Algoritmul opereaza n timp polinomial, gradul
polinomului de complexitate ind determinat
de numarul si marimea componentelor vectoru-
lui B.
Prim scop: gasirea valorilor m si u.
Nu este necesara aarea valorilor pe care le-a
denit Bob pentru sistemul de criptare.
Orice pereche (m, u) care, plecand de la vec-
torul B duce la un vector super-crescator A,
poate utilizata la decriptare.
Astfel de perechi se numesc perechi trapa.
Exista cel put in o pereche trapa (deoarece sis-
temul de criptare rucsac se bazeaza pe o astfel
de construct ie).
15
Pentru aarea unei perechi trapa se considera
gracul funct iilor
f
i
(u) = b
i
u (mod m)
pentru i = 1, 2, . . . , n.
Este format din segmente de linii paralele,
rupte n punctele u = p m/b
i
, p = 1, 2, . . .
-
6
u
b
i
u
m
m
16

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.

In etapa urmatoare vom explora pe rand punc-


tele de acumulare gasite anterior.
Unul din teste va reusi, deoarece valoarea lui u
folosita de Bob n sistemul de criptare desem-
neaza un astfel de punct de acumulare.
18
I. Coordonata u a celui de-al p-lea punct de
minim al curbei f
1
(u) este p/b
1
(momentan
m = 1).
Condit ia ca minimele curbelor f
1
(u) si
f
2
(u) sa e apropiate:
e <
p
b
1

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.

Impart im intervalul (0, 1) n subintervalele

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

In ecare subinterval cele trei curbe sunt de


forma f
i
(u) = b
i
u c
j
i
(i = 1, 2, 3, iar indicele j
indica intervalul).
Toate intervalele sunt deschise (nici un punct
de discontinuitate nu corespunde unei perechi
trapa).
21
Pentru ecare subinterval:

(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.

In nal ramane intervalul

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.

In varianta Merkle - Hellman, sistemul de crip-


tare rucsac se baza pe vectori cu densitate
mica, n sensul ca elementele vectorului erau
foarte rare n raport cu numarul lor.
Noul sistem propune o construct ie bazata pe
vectori rucsac cu densitate mare.
26
Fie p un numar prim si h 1.
Un element este algebric de gradul h peste Z
p
daca satisface o ecuat ie polinomiala P(x) = 0
de gradul h si nici o ecuat ie de grad mai mic
(P(x) este un polinom ireductibil peste Z
p
).
Considerand extensia GF(p
h
), elementele sale
pot reprezentate sub forma
x =
h1

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
)

exista unntreg i [0, p


h
1]
cu x =
i
.
Deci i = log

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.

In general, un text clar arbitrar nu poate


segmentat n astfel de blocuri; totusi, se pot
deni codicari convenabile premergatoare ale
textului clar.
O astfel de codicare este asigurata de:
Lema 2. Fie n 3 si h < n. Atunci exista o
aplicat ie injectiva a mult imii secvent elor binare
de lungime ]log
2
C
h
n
| n mult imea secvent elor
binare de n bit i n care apar h de 1.
30
Exemplul 8. Fie n = 5 si h = 2.
Atunci ]log
2
C
2
5
| = 3; deci putem codica
blocuri de 3 bit i.
Corespondent a se realizeaza dupa tabelul:
0 0 0 0 0 0 1 1
0 0 1 0 0 1 0 1
0 1 0 0 0 1 1 0
0 1 1 0 1 0 0 1
1 0 0 0 1 0 1 0
1 0 1 0 1 1 0 0
1 1 0 1 0 0 0 1
1 1 1 1 0 0 1 0
Secvent ele 10100 si 11000 raman neutilizate.
31
Sistemul de criptare:
Se alege un numar prim p si e h < p.
Se alege algebric de gradul h peste Z
p
si
un generator g al lui GF(p
h
)

.
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 linii mari, acesta funct ioneaza astfel: daca


a este un mesaj de informat ie de k bit i, Alice l
codica ntr-un cuvant de n bit i b = aG, unde
G este matricea generatoare a codului.
Bob primeste r Z
n
2
(eventual r = b) si cauta
b
1
C cu d(r, b
1
) minim posibil.
Va decodica r n b
1
dupa care va calcula un
mesaj de informat ie a
1
astfel ca b
1
= a
1
G.
Cazul ideal este cand b
1
= b, a
1
= a.
Daca numarul de erori care apar nu depaseste
(d 1)/2, acest procedeu corecteaza efectiv
erorile.
Daca Bob cauta cuvantul - cod cel mai apropi-
at comparand r pe rand cu ecare element din
C, algoritmul va exponent ial.
37
Majoritatea algoritmilor de decodicare folo-
sesc not iunea de sindrom:
Matricea de control a unui (n, k, d) - cod liniar
binar de matrice generatoare G este o ma-
trice H de dimensiune (nk) n ale carei linii
formeaza o baza a unui spat iu liniar ortogonal.
Evident, G H
T
= 0.
Pentru un cuvant r Z
n
2
, se numeste sindrom
secvent a de n k bit i denita H r
T
.
Teorema 1. a este un cuvant - cod daca si
numai daca H a
T
= 0.

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.
-

In caz contrar se ncearca vectorii de pondere


2, 3, . . . , [(d 1)/2].
- Daca nu s-a gasit nici un cuvant e cu
H e
T
= s, se deduce ca au aparut mai mult de
[(d 1)/2] erori n cursul transmisiei.
39
Algoritmul de criptare McElliece se bazeaza pe
aceasta idee.
Trapa secreta o constituie o clasa de coduri
pentru care exista algoritmi ecace de decodi-
care - codurile Goppa.

In plus, exista un numar mare de coduri Goppa


neechivalente, avand aceiasi parametri.
40
Sistemul de criptare McElliece:
Fie: G matricea generatoare a unui (n, k, d) -
cod Goppa cu n = 2
m
, d = 2t+1, k = nmt,
S matrice inversabila binara k k,
P matrice de permutare n n.
Fie 1= Z
k
2
, (= Z
n
2
, |= |(G, S, P, G
t
) [ G
t
=
S G P.
G
t
este publica iar G, S, P sunt secrete.
Pentru K = (G, S, P, G
t
) se deneste
e
K
(a, e) = a G
t
+e
e Z
n
2
este un cuvant aleator de pondere t.
Bob decripteaza un mesaj b Z
n
2
astfel:
1. Calculeaza b
1
= b P
1
;
2. Decodica b
1
= a
1
+e
1
unde a
1
C;
3. Calculeaza a
0
Z
k
2
astfel ca a
0
G = a
1
;
4. Calculeaza a = a
0
S
1
.
41
Corectitudinea algoritmului de decriptare:
b
1
= b P
1
= (a G
t
+e) P
1
= (a S G P +
e) P
1
= (a S) G+e P
1
si w(e P
1
) t.
Deci algoritmul de decodicare al codului de
matrice generatoare G poate decodica corect
pe b
1
si obt ine un mesaj sursa a
0
= a S.
La ultimul pas se aa mesajul init ial
a = a
0
S
1
.
Pentru o implementare practica a criptarii,
McEliece propune m = 10, t = 50, deci un
(1024, 524, 101) - cod Goppa.
Un text clar este o secvent a de 524 bit i, iar un
text criptat este o secvent a de 1024 bit i.
Cheia publica este o matrice binara de dimen-
siuni 524 1024.
42
Exemplul 10. Fie un (8, 2, 5) - cod Goppa
(n = 2
3
, k = 2, d = 5).
El este generat de
G =

0 0 1 1 1 1 1 1
1 1 0 0 1 0 1 1

Sa presupunem ca Bob alege matricile


S =

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

Matricea publica generata este deci


G
t
= S G P =

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

In general nu se poate vorbi de un singur numar


aleator decat ntr-un context statistic.
Termenul corect este acela de sir de numere
aleatoare.
Folosirea calculatorului reduce termenul de nu-
mere aleatoare la un sir de bit i generat i aleator,
grupat i dupa o anumita regula.
Nu exista o modalitate mai scurta de a speci-
ca sirul decat secvent a nsasi.
Denit ia 1. Un generator de numere aleatoa-
re, sau generator real aleator (GA) este un
dispozitiv sau un algoritm care produce o
secvent a de numere independente si nepredicti-
bile.

In majoritatea cazurilor, un GA genereaza


secvent e binare, care ulterior sunt convertiten
numere ntregi.
2

In criptograe este esent ial ca un numar alea-


tor sa nu poata aat.
Un numar perfect aleator este acela pe care
Oscar nu-l poate ghici decat prin fort a bruta.
Multe atacuri se bazeaza pe exploatarea imper-
fect iunilor unor funct ii care genereaza numere
aleatoare.
O generare de numere pur aleatoare se rea-
lizeaza prin colectarea si procesarea de date
obt inute dintr-o sursa de entropie exterioara
calculatorului.
Surse de entropie: variat iile miscarii mouse-
ului; intervalul de timp dintre apasarea a doua
taste; surse radioactive sau bazate pe zgomote
din atmosfera.
3
Proprietatea de a aleator a fost introdusa n
domeniul tehnicii de calcul cu ajutorul genera-
torilor de numere pseudo-aleatoare.
Denit ia 2. Fie m, k (0 < k < m) numere
ntregi.
Un (k, m) generator de numere pseudo-alea-
toare este o aplicat ie recursiva
f : Z
k
2
Z
m
2
calculabila n timp polinomial.

In aplicat ii, m = h(k) unde h este o funct ie


polinomiala.
4
Un generator de numere pseudo-aleatoare tre-
buie:
Sa e simplu si rapid.
Sa produca siruri de numere de lungime ar-
bitrara care sa nu cont ina repetit ii.

In calculator nu se poate construi un gene-


rator cu perioada innita. Generatorul tre-
buie sa aiba totusi o perioada de repetit ie
cat mai mare.
Sa produca numere independente unul de
altul (sau cu o corelare cat mai vaga).
Sa genereze numere cu o repartit ie uni-
forma n spat iul valorilor.
5
Generatori liniari congruent iali
Construit de Lehmer n 1949. Este denit
x
n+1
= ax
n
+b (mod m)
Valorile a (multiplicatorul), b (incrementul) si
m (modulul) sunt constante.
Cheia de generare este valoarea init iala x
0
.
Cand b = 0, generatorul este multiplicativ.
Perioada maxima a unui generator liniar este
evident m.
Ea poate atinsa pentru anumite valori ale
perechii (a, b)
(de exemplu daca cmmdc(b, m) = 1).
6
Un generator liniar congruent ial de perioada m
se numeste generator de perioada maximala.
Cat iva generatori de perioada maximala.
a b m a b m
105 1283 6075 1277 24749 117128
211 1663 7875 2311 25367 120050
421 1663 7875 3877 29573 139968
430 2531 11979 8121 28411 134456
171 11213 53125 9301 49297 233280
141 28411 134456 2416 374441 1771875
421 17117 81000 17221 107839 510300
1093 18257 86436 84589 45989 217728
Avantaj: viteza mare de calcul.
7
Criptanaliza a fost realizata de Jim Reeds n
1977 si Joan Boyar n 1982.
Ea a spart si generatorii patratici
x
n+1
= (ax
2
n
+bx
n
+c) (mod m)
si cubici
x
n+1
= (ax
3
n
+bx
2
n
+cx
n
+d) (mod m)
Alt i cercetatori au extins metodele de atac
pentru spargerea oricarui generator polinomial
congruent ial.
Generatorii liniar congruent iali sunt folosit i cu
predilect ien aplicat ii necriptograce; de exem-
plu, n simulare ei asigura o comportare statis-
tica buna n majoritatea testelor.
8
Generatori Ranrot
Au fost denit i de Agner Fog n 1997, init ial
pentru algoritmi de tip Monte Carlo.
Se bazeaza pe generatori de numere Fibonacci,
cu deplasare ciclica pe bit i.
Sunt cunoscute si studiate trei variante de
generatori Ranrot:
Tip A: x
n
= ((x
nj
+x
nk
) (mod 2
b
)) r;
Tip B:
x
n
= ((x
nj
r
1
) +(x
nk
r
2
)) (mod 2
b
);
Tip B3:
x
n
= ((x
ni
r
1
)+(x
nj
r
2
)+(x
nk
r
3
)) (mod 2
b
);
Tip W:
z
n
= ((y
nj
r
3
) +(y
nk
r
1
)) (mod 2
b/2
),
y
n
= ((z
nj
r
4
) +(z
nk
r
2
)) (mod 2
b/2
),
x
n
= y
n
+z
n
2
b/2
.
9
Convent ii:
1. Toate numerele x sunt ntregi binare pe b
bit i;
2. 0 < i < j < k n numere ntregi;
3. s este rotat ia secvent ei spre dreapta
cu s pozit ii;
4. 0 r
i
b 1 pentru primele doua tipuri,
0 b
i
b/2 pentru tipul W.
Valorile sunt calculate ntr-un buer S
n
.
Starea init iala este
S
1
= (x
1
, x
2
, . . . , x
k
)
iar trecerea de la o stare la alta se realizeaza
printr-o deplasare de forma
(x
nk
, x
nk+1
, . . . , x
n1
) (x
nk+1
, . . . , x
n1
, x
n
)
10
Fie p = cmmdc(j, k).
Daca p > 1, atunci sistemul se poate descom-
pune n p sisteme independente.
Deci o prima condit ie de performant a este
cmmdc(j, k) = 1.
Din acelasi motiv, la tipul W numarul kj este
impar.
Pentru ca toate elementele din S
n
sa ramana
interdependente, trebuie ca cel put in un r sa
e nenul.
Prin experimente s-a gasit ca cele mai bune
valori pentru numarul de pozit ii rotite este
aproximativ
b
2
pentru tipul A,
b
3
si
2b
3
pentru
tipul B si
b
4
,
b
2
,
3b
4
pentru tipul B3.
Lungimea maxima a unei perioade la un gen-
erator Ranrot este (2
k
1) 2
b1
.
11
Nu se cunoaste un algoritm de obt inere de
generatori Ranrot de perioada maximala.
Cel mai mare generator analizat are 2
32
stari.
Exemplul 1. Un generator Ranrot de tipul A
cu j = 1, k = 4, b = 7, r = 4 are 24 cicluri de
perioade
1, 5, 9, 11, 14, 21, 129, 6576, 8854, 16124, 17689,
135756, 310417, 392239, 488483, 1126126,
1355840, 1965955, 4576377, 7402465,
8393724, 57549556, 184256986.
12
Important a restrict iilor impuse diverselor tipuri
de generatori Ranrot:
Regula A B B3 W
cmmdc(j, k) =
cmmdc(j, i) =
cmmdc(k, i) = 1
*** *** *** ***
1 < i < j < k 1 ** * * *
k j impar - - - ***
un r = 0 *** *** *** **
tot i r = 0 *** ** * -
r distinct i - ** ** **
r > 1 *** ** * *
cmmdc(r, b) = 1 * * * *
cmmdc(b, k) = 1 * * * *
S-a notat cu:
o regula fara important a,
- important a minora,
- nerespectarea ei duce la aparit ia unor
cicluri de perioada mica,
- regula importanta.
13
Generatorii Ranrot sunt usor de spart, deoarece
starea init iala se poate deduce usor din k valori
consecutive ale lui x.
Daca nsa parametrii nu se cunosc, generatorii
Ranrot pot folosit i cu succes n criptograe,
avand o securitate sporita.
Exista un sistem de criptare (Power Crypto)
bazat pe generatorul Ranrot de tip B3.
14
Generatorul Blum - Blum - Shub
Cel mai simplu si se pare cel mai ecient
generator de numere pseudo - aleatoare este:
BBS (numit si generator rezidual patratic).
Denit ia 3. Fie p, q doua numere prime. Daca
p 3 (mod 4), q 3 (mod 4)
atunci numarul n = pq se numestentreg Blum.
Algoritmul BBS pe scurt:
Fie n = pq un ntreg Blum, unde p, q sunt nu-
mere prime pe k/2 bit i.
Fie x
0
un reziduu patratic modulo n.
Se deneste secvent a
x
i+1
= x
2
i
(mod n)
Daca z
i
= x
i
(mod 2) pentru 1 i m, atunci
numarul aleator generat este
f(x
0
) = z
1
z
2
. . . z
m
.
15
Bit ii z
i
(1 i m) se pot calcula direct:
z
i
= x
2
i
(mod (p1)(q1))
0
(mod 2)
Exemplul 2. Fie p = 383, q = 503; deci
n = 192649.
Alegand x
0
= 101355
2
= 20749 (modn),
generatorul BBS va produce
110011100001001110
i 0 1 2 3 4 5
x
i
20749 143135 177671 97048 89992 174051
z
i
1 1 0 0 1
i 6 7 8 9 10 11
x
i
80649 45663 69442 186894 177046 137922
z
i
1 1 0 0 0 0
i 12 13 14 15 16 17 18
x
i
123175 8630 114386 14863 133015 106065 45870
z
i
1 0 0 1 1 1 0
16
Securitatea BBS se bazeaza pe dicultatea
factorizarii lui n.
Mai mult, ind data o parte a secvent ei,
nu exista nici o modalitate de a prezice bitul
anterior sau cel ulterior secvent ei.
Algoritmul BBS este destul de lent, dar are
unele implementari mai rapide.
Astfel, daca n este lungimea lui x
i
, pot
pastrat i ultimii log
2
x
i
bit i.

In acest moment BBS este considerat cel mai


bun generator de numere pseudo-aleatoare
pentru protocoale de generare si distribut ie a
cheii.
17
Circuite liniare
Circuitele liniare (Shift Registers) sunt folosite
n teoria codurilor detectoare si corectoare de
erori precum si n unele sisteme de criptare
bloc.
Asigura viteza mare de calcul.
Un LFSR (Linear Feedback Shift Register)
este un circuit liniar format dintr-un registru
serial si o funct ie de ntoarcere (feedback).
Daca registrul este compus din n ip-opuri de
date (DF F), avem un n LFSR.
Funct ie de ntoarcere
b
n
b
n1
. . .
b
2
b
1
-
? ? ? ?

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.

In general ordinul de marime al lui n este n


intervalul [10
3
, 10
7
].
36
Exemple de teste
Verica daca numarul de 0 si de 1 din
secvent a sunt aproximativ egale.
Calculeaza si analizeaza frecvent a
bigramelor, trigramelor etc.
Determina frecvent a de aparit ie a bitului 1
n cadrul blocurilor de M caractere conse-
cutive (M xat).
Analizeaza numarul de iterat ii din sir
(iterat ie = o secvent a nentrerupta de
bit i identici).
Calculeaza rangul submatricilor create din
secvent a ce este testata; scopul este de a
verica independent a liniara a subsirurilor
de lungime xata. Acest test apare atat n
pachetul DIEHARD cat si n NIST.
37
Determina numarul de aparit ii ale unor
secvent e t inta xate.
Calculeaza frecvent a secvent elor de o
anumita lungime.
Cerceteaza daca secvent a poate compri-
mata semnicativ fara pierderi de informa-
t ie; un sir care poate comprimat este
considerat nealeator.
Calculeaza abaterea maxima de la 0 a
sumelor part iale ale secvent ei (n care 0
este nlocuit cu 1), pentru a determina
daca suma cumulativa a unui subsir este
prea mare sau prea mica n comparat ie cu
cea corespunzatoare a unui sir aleator
(unde aceste sume sunt apropiate de zero).
Tot aici se urmareste de cate ori sumele
part iale au valoarea 0.
38
Prelegerea 7
Sisteme de partajare a secretelor
1
2 PRELEGEREA 7. SISTEME DE PARTAJARE A SECRETELOR
7.1 Sistemul condent ial al lui Shamir

Intr-o banca, seiful trebuie deschis n ecare zi.


Banca are trei directori, dar nu ncredint eaza combinat ia seifului nici
unuia din ei.
Ea doreste sa dispuna de un sistem de acces prin care orice asociere de
doi directori sa poata deschide seiful, dar acest lucru sa e imposibil pentru
unul singur.

In Rusia, accesul la arma nucleara utilizeaza tot un sistem doi - din -


trei.
Cele trei persoane sunt Presedintele t arii, Presedintele Parlamentului si
Ministrul Apararii.
(Time Magazin 4 mai 1992)
7.1. SISTEMUL CONFIDENT IAL AL LUI SHAMIR 3
Sistem de partajare a secretului numit sistem condent ial
(Threshold scheme n engleza, a seuil n franceza).
Denit ia 7.1 Fie t, w doua numere ntregi pozitive, t w. Un sistem
condent ial (t, w) este o metoda de partajare a unei chei K ntre mem-
brii unei mult imi { de w participant i, astfel ncat orice asociere de t
participant i sa poata calcula K, lucru imposibil pentru asocieri de t 1
sau mai put ini participant i.
Valoarea lui K este aleasa de un arbitru D.
Se presupune ca D {.
D va distribui n secret componente ale cheii membrilor grupului {,
astfel ncat nici un participant sa nu cunoasca componentele celorlalt i si
nici sa e capabil ca din componenta sa sa poata recompune cheia K.
Ulterior, participant ii unei submult imi B { pot pune n comun com-
ponentele cheii cunoscute de ei (sau sa le dea unei autoritat i n care au
ncredere) cu scopul de a determina K.
Ei trebuie sa poata reusi n aceasta tentativa daca si numai daca
card(B) t
4 PRELEGEREA 7. SISTEME DE PARTAJARE A SECRETELOR
{= P
i
[ 1 i w
mult imea celor w participant i.
/ este spat iul tuturor cheilor posibile, iar o este spat iul componentelor
(toate componentele posibile ale cheii).
Sistemul este creat de Shamir n 1979.
Fie p (p w+1) un numar prim si /= Z
p
, o= Z
p
(cheile si componen-
tele sunt numere din Z
p
).
Sistemul condent ial al lui Shamir se bazeaza pe un polinom aleator
a(X) de grad cel mult t 1, n care termenul liber este K.
Fiecare participant P
i
aa un punct (x
i
, y
i
) de pe gracul acestui poli-
nom.
1. (Init ializare): D alege w elemente distincte x
1
, . . . , x
w
Z
p
(x
i
publice), ecare x
i
ind comunicat lui P
i
.
2. Sa presupunem ca D doreste sa repartizeze cheia K Z
p
. D va selecta
aleator t 1 elemente a
1
, . . . , a
t1
Z
p
si construieste polinomul
a(X) = K
t1

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 .

In continuare vom presupune ca orice structura de acces este monotona.


Un element B este minimal daca A B = A .
Vom nota cu
0
mult imea elementelor minimale din .
Se observa ca aceasta mult ime caracterizeaza complet :
= C { [ B
0
, B C.
Spunem ca este nchiderea lui
0
si notam prin =
0
.
Exemplul 7.2 Fie {= P
1
, P
2
, P
3
, P
4
si

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

Expresia booleana asocialta


(P
1
P
2
P
4
) (P
1
P
3
P
4
) (P
2
P
3
).
Circuitul monoton asociat este (au fost marcate si arcele, conform algo-
ritmului descris):
"!

&% "! &%
?
? -
?
?
? ?
u u u u
? -
? ?
?
? ?
?
?
-
?
?
?
-
?
x
1
x
2
x
3
x
4
K
K K
K
a
1 b
1
a
2
c
1 Kc
1
b
2
Ka
1
a
2
Kb
1
b
2
Aici a
1
, a
2
, b
1
, b
2
, c
1
, c
2
sunt numere alese aleator n Z
m
. Fiecare participant
primeste drept componenta doua numere:
1. a
1
si b
1
pentru P
1
,
2. a
2
si c
1
pentru P
2
,
3. b
2
si K c
1
pentru P
3
,
4. K a
1
a
2
si K b
1
b
2
pentru P
4
.
Fiecare submult ime autorizata poate calcula valoarea lui K.
Astfel, P
1
, P
2
, P
4
determina K = a
1
+a
2
+(Ka
1
a
2
), submult imea
P
1
, P
3
, P
4
calculeaza K = b
1
+b
2
+(K b
1
b
2
), iar P
2
, P
3
va calcula
K = c
1
+ (K c
1
).
7.3. CONSTRUCT IA CIRCUITELOR MONOTONE 15
Sa vedem ce se ntampla cu mult imile neautorizate.
Daca o mult ime B este neautorizata, orice submult ime a sa va de
asemenea neautorizata.
Denit ia 7.3 O mult ime B { este maximal neautorizata daca
B
1
B = B
1
.
Este sucient deci de demonstrat ca mult imile maximal neautorizate nu
pot aa cheia din informat iile pe care le det in.
Exemplul 7.4 Revenind la exemplul anterior, mult imile maximal neau-
torizate sunt
P
1
, P
2
, P
1
, P
3
, P
1
, P
4
, P
2
, P
4
, P
3
, P
4
.

In ecare caz, pentru determinarea cheii K lipseste o informat ie denita


aleator.
De exemplu, P
1
, P
2
det in informat iile a
1
, a
2
, b
1
si c
1
.
Pentru a reconstitui cheia K ar avea nevoie cel put in de numarul
K a
1
a
2
, sau de K c
1
.
Sisteme cu aceeasi structura de acces pot obt inute folosind si alte circuite.
Cand o mult ime autorizata B doreste aarea cheii, ea trebuie sa stie
circuitul utilizat de arbitru pentru construirea sistemului si sa deduca de
aici ce componente sunt necesare pentru parcurgerea arcelor respective.
Aceasta informat ie trebuie sa e publica.
Numai valorile componentelor trebuie sa e secrete.
16 PRELEGEREA 7. SISTEME DE PARTAJARE A SECRETELOR
7.4 Rata de informat ie
Fie { o mult ime de participant i si o spat iul tuturor componentelor posibile
ale cheii.
O distribut ie de componente este o funct ie
f : { o
Ea codica modalitatea de repartizare a informat iilor ntre participant i.
f(P
i
) va componenta distribuita participantului P
i
(1 i w).
Pentru ecare K /, e T
K
mult imea tuturor distribut iilor posibile
ale cheii K.

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

In general, daca se construieste un sistem de partajare a secretelor


plecand de la un circuit monoton C, rata sa de informat ie se obt ine folosind
urmatoarea teorema:
Teorema 7.2 Fie C un circuit boolean monoton. Exista atunci un sistem
perfect de partajare a secretelor, cu structura de acces (C), care admite
ca rata de informat ie
= max
1iw

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.

In schimb, rata de informat ie pentru un sistem condent ial (t, w) bazat


pe circuite monotone construite cu forma normal disjunctiva este
1
C
t1
w1
,
extrem de inecienta daca 1 < t < w.
7.5. SISTEMUL DE PARTAJARE AL LUI BRICKELL 19
7.5 Sistemul de partajare al lui Brickell
Sistemul este cunoscut si sub numele: construct ia vectoriala a lui Brickell.
Fie o structura de acces, p un numar prim, iar d 2 un numar ntreg.
Fie
: { Z
d
p
o funct ie cu proprietatea
(1, 0, . . . , 0) '(P
i
) [ P
i
B` B . (A)
Altfel spus, vectorul (1, 0, . . . , 0) este o combinat ie liniara de vectori
din mult imea (P
i
) [ P
i
B daca si numai daca B este o submult ime
autorizata.
20 PRELEGEREA 7. SISTEME DE PARTAJARE A SECRETELOR
Construim un sistem de partajare a secretelor cu
/= S(P
i
) = Z
p
(1 i w).
Pentru orice a = (a
1
, . . . , a
d
) Z
d
p
. vom deni o funct ie de distribut ie
a componentelor f
a
: { o prin f
a
(x) = a (x).
S-a notat cu produsul scalar a doi vectori.
Algoritmul de partajare a secretelor Brickell:
1. (Init ializare) D atribuie lui P
i
vectorul (P
i
) Z
d
p
(1 i w).
Acesti vectori sunt publici.
2. Pentru repartizarea cheii K Z
p
, arbitrul D alege aleator d 1 ele-
mente a
2
, . . . , a
d
Z
p
.
3. Folosind vectorul a = (K, a
2
, . . . , a
d
), arbitrul calculeaza componenta
y
i
= a (P
i
) (1 i w), pe care o da lui P
i
.
Vom avea rezultatul urmator:
Teorema 7.4 Daca veric a proprietatea (A), mult imea distribut iilor de
componente T
K
,
K / formeaza un sistem perfect de partajare a secretelor, cu structura
de acces .
Sistemul condent ial (t, w) al lui Shamir este un caz particular al acestei
construct ii.

Intr-adevar, e d = t si (P
i
) = (1, x
i
, x
2
i
, . . . x
t1
i
), pentru
1 i w, unde x
i
este coordonata x data de P
i
.
Sistemul obt inut astfel este echivalent cu cel al lui Shamir.
7.5. SISTEMUL DE PARTAJARE AL LUI BRICKELL 21
Un alt rezultat general se refera la structurile de acces care admit ca
baza un ansamblu de perechi care denesc un graf multipartit complet.
Reamintim, un graf G = (V, E) este multipartit complet daca V se
poate partit iona n submult imile V
1
, . . . , V
s
astfel ncat x, y E daca si
numai daca x V
i
, y V
j
cu i = j.
Mult imile V
i
se numesc componente. Daca card(V
i
) = n
i
(1 i s),
graful este notat K
n
1
,...,n
s
. Graful multipartit complet K
1,...,1
cu s compo-
nente este de fapt un graf complet si se noteaza K
s
.
Teorema 7.5 Fie G = (V, E) un graf multipartit complet. Atunci exista
un sistem perfect de partajare a secretelor, ideal, cu structura de acces E
peste mult imea V de participant i.
22 PRELEGEREA 7. SISTEME DE PARTAJARE A SECRETELOR
Aplicam acest rezultat considerand structurile de acces posibile pentru
patru participant i.
Va sucient sa luam n calcul numai structurile a caror baza nu se
poate partit iona n doua mult imi nevide.
O lista completa a structurilor de acces neizomorfe pentru 2, 3 sau 4
participant i este(s-a notat cu

valoarea maxima a ratei de informat ie


pentru structura respectiva):
Nr.crt w Submult imile lui G
0

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

Aceste descompuneri corespund lui K


2
si K
1,2
, deci sunt descompuneri
ideale.
Ambele ofera o rata de informat ie = 1/2.
Daca le vom combina conform Teoremei 7.7 cu s = 2, vom obt ine o rata
de informat ie maxima = 2/3.
7.6. CONSTRUCT IA PRIN DESCOMPUNERE 25
Luand ca baza Teorema 7.5, putem obt ine efectiv un astfel de sistem.
D alege aleator 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
si b
2,1
;
2. P
2
primeste b
1,1
+ K
1
, b
1,2
si b
2,1
+ K
2
;
3. P
3
primeste b
1,2
+ K
1
, b
2,1
si b
2,2
;
4. P
4
primeste b
1,2
si b
2,2
+ K
2
.
(toate calculele sunt efectuate n Z
p
).
Exemplul 7.7 Fie structura de acces 8 si consideram /= Z
p
pentru un
numar prim p 3.
Vom utiliza doua / - descompuneri ideale
T
1
=
1,1
,
1,2
cu

1,1
= P
1
, P
2

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
).

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