Você está na página 1de 296

Prelegerea 1

Not iuni de baza ale criptograei


1.1 Denit ii si notat ii preliminare
Criptograa este o componenta a unui domeniu mult mai larg, numit securitatea informat iei.
Obiectivele urmarite de acesta pot sumarizate n:
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,
substitut ie) neautorizata a informat iei.
3. Autenticare: Proprietatea de a identica o entitate conform anumitor standarde.
Este compusa din
(a) Autenticarea unei entitat i;
(b) Autenticarea sursei informat iei;
4. Non - repudierea: Proprietatea care previne negarea unor evenimente anterioare.
Celelalte obiective legate de securitatea informat iei (autenticarea mesajelor, semnaturi,
autorizare, validare, controlul accesului, certicare, timestamping, conrmarea recept iei,
anonimitate, revocare) pot derivate din acestea.
Denit ia 1.1 Criptograa este studiul metodelor matematice legate de securitatea infor-
mat iei, capabile sa asigure condent ialitatea, autenticarea si non-repudierea mesajelor,
precum si integritatea datelor vehiculate ([1].
Termenul criptograe nseamna scriere secreta
1
. Domeniul cuprinde atat operat ia de
criptare (cifrare) a unui text, cat si eventualele ncercari de descifrare si de aare a cheii
1
Cuvantul este format din cuvintele grecesti cryptos ascuns si grae scriere
1
2 PRELEGEREA 1. NOT IUNI DE BAZ

A ALE CRIPTOGRAFIEI
de criptare.

In unele lucrari, cadrul general de lucru este numit criptologie, termenul de
criptograe desemnand numai operat ia de cifrare si descifrare legala.
Situat ia generala de care se ocupa criptograa este urmatoarea:
Criptanalist
Expeditor
Destinatar
6
-
Expeditorul (personalizat n majoritatea lucrarilor cu apelativul Alice) doreste sa trimita
destinatarului (numit Bob) un mesaj printr-un canal de comunicat ie, canal cu un grad
ridicat de nesigurant a
2
. Aceasta insecuritate o prezinta un adversar criptanalist (Oscar)
care doreste din diverse motive sa cunoasca si eventual sa modice cont inutul
mesajului, desi acesta nu i este destinat.
Aceasta condent ialitate solicitata de Alice si Bob se rezolva de obicei prin transfor-
marea mesajului n asa fel ncat el sa nu poata nt eles de nici o persoana care l-ar putea
intercepta. Transformarea respectiva se numeste criptare.

In general, hackerul Oscar poate avea doua tipuri de comportament:


Pasiv: el se mult umeste sa intercepteze mesajele 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.

In unele cazuri, problema se poate complica prin faptul ca exista anumite mesaje pe
care Alice neaga cai apart in, desi le-a trimis chiar ea.

In acest caz trebuie prevazute
anumite protocoale care sa ntareasca proprietat ile de autenticare; proprietat i care
sa o sileasca pe Alice sa si recunoasca propriile mesaje (non-repudiere).

In toate aceste scenarii nu exista personaje pozitive sau negative. Orice serviciu de
criptare/decriptare are si o sect ie de criptanaliza. Se pot da numeroase exemple din
istorie care sa arate rolul pozitiv al lui Oscar n anumite situat ii.

In general, ntr-un
triplet (expeditor, destinatar, criptanalist) nimeni nu are ncredere n nimeni. Variantele
studiate n care Alice are ncredere n Bob sau invers, sunt mult mai simple si de aceea
extrem de rare.
2
Canalul de comunicat ie poate suferi si perturbari de ordin zic: zgomote, stergeri, demodulari etc;
studiul detectarii si corectarii erorilor de de transmitere a informat iei constituie tema altui domeniu,
numit Teoria Codurilor.
1.1. DEFINIT II SI NOTAT II PRELIMINARE 3
Pentru a ncepe un studiu sistematic al domeniului, sa stabilim ntai terminologia
folosita uzual:
Un mesaj n forma sa originara este numit text clar. Expeditorul rescrie acest mesaj
folosind o metoda cunoscuta numai de el (eventual si de destinatar); spunem ca el cripteaza
(sau cifreaza) mesajul, obt inand un text criptat. Destinatarul primeste textul cifrat si l
decripteaza stiind metoda folosita pentru criptare; deci Alice si Bob trebuie sa stabileasca
ntr-o etap a preliminara detaliile modalitat ii de criptare si de decriptare.
Algoritmul care realizeaza operat iile descrise se numeste sistem de criptare. Formal,
Denit ia 1.2 Un sistem de criptare este o structura (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
decriptare 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.

In general se considera C= { | a P, k K, = e
K
(a)}.
Funct ia e
K
este evident injectiva
3
; daca e
K
este bijectiva (si deci d
K
= e
1
K
), sistemul
de criptare se numeste simetric.
Pentru ca un sistem de criptare sa e considerat bun, trebuie ndeplinite trei criterii
(enunt ate de Francis Bacon n sec. XV II):
1. Fiind date e
K
si P, este usor de determinat e
K
();
2. Fiind date d
K
si w C, este usor de determinat d
K
(w);
3. este imposibil de determinat din w, fara a cunoaste d
K
.
Ultimul criteriu deneste sub o forma vaga ideea de securitate a sistemului.
La aceste criterii, Bacon adauga si o a patra regula:
4 Textul criptat trebuie sa e un text banal, fara suspiciuni.
Aceasta condit ie este utilizata astazi doar de un subdomeniu strict al criptograei, numit
steganograe.

In termeni de complexitate, prin usor se nt elege folosirea unui algoritm polinomial


de grad mic preferabil algoritm liniar; o problema se considera imposibila daca pentru
rezolvarea ei nu se cunosc decat algoritmi de complexitate exponent iala.
3
Condit ia de injectivitate nu este obligatorie pentru funct ia de decriptare d
K
.
4 PRELEGEREA 1. NOT IUNI DE BAZ

A ALE CRIPTOGRAFIEI
Observat ia 1.1

Intreaga disciplina numita criptograe se bazeaza pe o conjectura no-
tata prescurtat P = NP
4
(pentru detalii a se vedea [5]). P reprezinta clasa problemelor
rezolvabile prin algoritmi a caror complexitate este marginita superior de o funct ie poli-
nomiala n lungimea datelor de intrare. Modelul standard de calculabilitate este masina
Turing. NP este clasa problemelor rezolvabile prin algoritmi nedeterministic polinomiali
(care sunt inclusi n algoritmii de complexitate cel put in exponent iala). Evident, P NP,
dar se pare ca problema egalitat ii este nedecidabila (n termeni matematici). Oricum,
pentru cei interesat i, site-ul [4] este dedicat unei informari actualizate permanent a rezul-
tatelor si ncercarilor de rezolvare a acestei probleme.
Exemplul 1.1 Unul din primele sisteme de criptare cunoscute este sistemul de criptare
Cezar. Conform istoricului Suetoniu, el a fost folosit de Cezar n corespondent a sa.
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]. El se va numi cheie de criptare. Re-
scriem 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
Daca Alice are un text clar pe care vrea sa-l cripteze cu sistemul Cezar, ea va proceda
astfel:
Sa presupunem ca acest text clar este NIMIC NOU. Alice va aseza sub ecare liter a a
acestui text, litera aata pe linia a doua din tabelul de sus, astfel:
N I M I C N O U
P K O K E P Q W
Textul criptat obt inut este PKOKEPQW (din motive suplimentare de securitate,
spat iile dintre cuvinte se ignora de obicei).
La primirea textului, Bob care stie ca este vorba de sistemul de criptare Cezar
va proceda astfel: el cunoaste (ind destinatar legal) cheia de criptare e
k
. Cheia sa de
decriptare este e
26k
. Pe baza ei Bob va putea construi cele doua linii ale tabelului, dupa
care va proceda ca Alice: scrie textul criptat pe prima linie, iar pe a doua linie determina
literele corespunzatoare, conform tabelului.

In cazul k = 2, Bob va folosi drept cheie numarul e


262
= e
24
, iar tabelul (litera 24
corespunde lui Y) este
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
Literele PKOKEPQW determina pe a doua linie textul NIMICNOU.
4
Aceasta este prima din cele cinci probleme ale mileniului, pentru rezolvarea carora se acorda premii
de cate un milion dolari.
1.1. DEFINIT II SI NOTAT II PRELIMINARE 5
Sa rescriem sistemul Cezar n termenii Denit iei 1.2. Deoarece textele clare si cele
criptate folosesc alfabetul latin, vom efectua n prima etapa o operat ie de codicare:
asociem literelor numere ntregi din intervalul [0, 25]:
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 matematic pe un inel nit foarte simplu: Z


26
. Vom avea
P = C = K= Z
26
. Pentru un K K ales arbitrar,
e
K
(m) = m+K (mod 26)
si
d
K
() = K (mod 26)
Denit ia 1.3 Procesul de determinare a unei chei K folosind un text criptat (asociat
eventual cu alte informat ii auxiliare) se numeste criptanaliza.
Deci decriptarea si criptanaliza au n nal acelasi scop: aarea textului clar. Diferent a
consta n faptul ca n criptanaliza el trebuie aat fara a sti cheia de decriptare. Exista o
regula de aur a creatorilor de sisteme de criptare:
Nu subestimat i niciodata pe criptanalist.
care s-a vericat 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.
Sa studiem put in pozit ia unui criptanalist (Oscar). Se presupune ntotdeauna ca el
are la dispozit ie facilitat i de calcul excelente, adesea superioare celor de care dispun cei
doi parteneri Alice si Bob.
Mai mult, se poate considera ca Oscar cunoaste sistemul de criptare. S-a constatat
ca practic acest lucru se ntampla totdeauna. Ce nu cunoaste nsa criptanalistul este
cheia K K.
Cel mai simplu atac constan parcurgerea tuturor cheilor posibile si vericarea textului
criptat, pana se gaseste cheia corecta. Este atacul prin fort a bruta si el reuseste totdeauna,
pentru ca exista ntotdeauna o cheie n K, care a folosit la criptare. Deci, n cazul cand
numarul cheilor posibile este mic (n Exemplul 1.1 sunt numai 26 chei), aceasta cheie se
poate aa foarte usor dupa un numar nit 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 general 2
n
cautari (daca nu exista nici o informat ie suplimentara). O extindere a
lungimii cheii la n+1 bit i dubleaza deci spat iul de cautare.

In momentul de fat a, tehnica
de calcul ofera atacuri prin fort a bruta eciente pentru cheile de lungimi mai mici de 128
6 PRELEGEREA 1. NOT IUNI DE BAZ

A ALE CRIPTOGRAFIEI
bit i; asa ca sistemele de criptare actuale folosesc n general chei de 1024 bit i sau chiar mai
mult
5
.

In general, un criptanalist este pus n fat a urmatoarelor situat ii, carei solicita strategii
diverse de urmat:
1. Stie numai textul criptat w; n acest caz atacurile sunt direct legate de lungimea
textului.

In sisteme simple cum este Cezar sunt suciente texte scurte, pentru c a o
singura potrivire produce textul - clar. Pentru sistemele mai evoluate, este necesara
o lungime mai mare a textului criptat. Metodele de criptanaliza folosesc diverse
conjecturi si informat ii statistice relative la alfabetul textului - clar, la frecvent a
aparit iei caracterelor etc.
2. Stie cel put in o pereche de caractere (text clar, text criptat); din cunoasterea catorva
perechi (x, e
K
(x)) cu x V criptanalistul va ncearca sa decripteze ntregul text
criptat interceptat.
Exemplul 1.2 La sistemul de criptare Cezar, o singura pereche (a, e
K
(a)), dezvaluie
imediat cheia si implicit duce la decriptare.
Exemplul 1.3 Aceasta a fost situat ia n care s-a aat orientalistul francez Cham-
pollion cand a descifrat hieroglifele,folosind piatra de la Rosetta (vezi [6]).
3. Criptanalistul cunoaste criptarea unor texte clare selectate de el; este atacul cu text
clar ales, considerat n majoritatea studiilor de criptanaliza. Aceasta situat ie este
adesea superioara celei din cazul precedent; sa exemplicam acest lucru.
Exemplul 1.4 Fie sistemul de criptare Hill, creat n 1929 de Lester Hill. Fie d 2
un numar ntreg xat. Se denesc
P= C= (Z
26
)
d
, K= {M | M M
d
(Z
26
), det(M) = 0}.
Deci o cheie de criptare este o matrice M patrata nesingulara de dimensiune d, cu
elemente din Z
26
, iar M
1
formeaza cheia de decriptare.
Textul clar w se mparte n blocuri de lungime d : w =
1

2
. . .
n
, |
i
| = d
(ultimul bloc se completeaza eventual pana ajunge 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).
Sa luam de exemplu d = 2 si cheia M =

3 3
2 5

, cu inversa M
1
=

15 17
20 9

.
5
O except ie o constituie sistemele bazate pe curbe eliptice, datorita aparatului matematic special.
1.1. DEFINIT II SI NOTAT II PRELIMINARE 7
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.
Sa ne situam acum pe pozit ia lui Oscar: presupunem ca am gasit dimensiunea d = 2
si ncercam sa aam matricea M (sau echivalent M
1
), stiind perechea (text
clar, text criptat)= (FRAC, XWEG).
Deci Oscar se aa acum n fat a urmatoarei probleme: 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

.
Pentru a putea aa aceasta matrice, Oscar trebuie sa ae inversa lui A =

5 17
0 2

.
Cum det(A) = 10 si cmmdc(10, 26) > 1 = 10
1
(mod 26) nu exista; deci A nu
este inversabila.
Sa presupunem acum ca Oscar lucreaza n ipoteza (3); alege un text clar a carui ma-
trice este inversabila si i aa criptarea. Fie BRAD acest text clar, a carui matrice
asociata 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).


Oscar detemina 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

4. Stie cheia de criptare; acum Oscar va cunoaste cheia e


K
si ncearca sa determine d
K
nainte de interceptarea mesajelor criptate.
Aceasta este situat ia tipica sistemelor de criptare cu cheie publica: cheia de criptare
e
K
este cunoscuta public cu mult nainte de a folosita pentru criptare. Deci
criptanalistul are la dispozit ie destul de mult timp pentru prelucrarea ei si orice
claricare 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.
8 PRELEGEREA 1. NOT IUNI DE BAZ

A ALE CRIPTOGRAFIEI
1.2 Sisteme simetrice de criptare

In general, sistemele de criptare clasice se numesc si sisteme simetrice. Motivul este acela
ca odata cu aarea cheii de criptare e
K
, cheia de decriptare d
K
se obt ine imediat, ind
funct ia inversa.
Exemplul 1.5

In Exemplul 1.1, la sistemul Cezar d
K
= e
26K
este cheia de decriptare
pentru cheia de criptare e
K
.
Sistemele de criptare simetrice se mpart n doua clase mari: cifruri de permutare si cifruri
cu substitut ie.
1.2.1 Cifruri de permutare
La aceste sisteme de criptare, textul clar se mparte n blocuri de n (n 2) caractere,
dupa care ecarui bloc i se aplica o permutare xata.
Exemplul 1.6 Sa presupunem ca vom lua drept cheie de criptare permutarea

1 2 3
2 1 3

.
Atunci un text clar, de exemplu FLOARE ALBASTRA se mparte n 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.
Exemplul 1.7 Un sistem celebru de criptare cu permutari este sistemul Richelieu, prezen-
tat si n literatura de Jules Verne, n romanul Mathias Sandorf. Dam un exemplu de
utilizare a unui astfel de sistem.
Fie cartonul 6 6, n care zonele hasurate constituie gauri.
Vrem sa criptam textul
EMINESCU A FOST UN MARE POET NATIONAL
Vom scrie acest text sub forma unui tabel cu sase linii si sase coloane, astfel:
1.2. SISTEME SIMETRICE DE CRIPTARE 9
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 (citite
de la stanga la dreapta si de sus n jos).
Vom roti acum cartonul cu 90
o
n sensul acelor de ceasornic. El va arata
Asezand acum peste text, raman vizibile caracterele F MPTNIL (primul caracter a fost
un spat iu si l-am marcat cu pentru a-l face vizibil).
La a treia rotire a cartonului se obt ine similar textul ICSUEETOA, iar la a patra
EEUAOURO
Deci textul criptat este
MNS TA AN F MPTNILICSUEETOAEEUAOURO
Operat ia de decriptare se realizeaza similar.
Sa formalizam aceste informat ii.
Denit ia 1.4 Fie n un numar natural nenul. Un cifru de permutare este un sistem
(P, C, K, E, D) unde P= C= (Z
26
)
n
, K= P
n
(mult imea permutarilor de n elemente).
Pentru o cheie (permutare)
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)
Lema 1.1 Un cifru de permutare este un sistem de criptare Hill.
Demonstrat ie: Pentru ecare permutare P
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.
10 PRELEGEREA 1. NOT IUNI DE BAZ

A ALE CRIPTOGRAFIEI
Exemplul 1.8 Sa reluam Exemplul 1.6. 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.
1.3 Exercit ii
1.1 Textul clar NUMAR este criptat n Orice vant nu bate seara. Sa se descrie sistemul
de criptare.
1.2 Folosind atacul prin fort a bruta, decriptat i mesajul WYPTBSJBYZ criptat cu un
sistem Cezar.
1.3 O cheie K este auto-cheie daca d
K
= e
K
. Gasit i toate auto-cheile sistemului de
criptare Cezar.
1.4 Fie p un numar prim. Aratat i ca numarul matricilor 2 2 inversabile peste Z
p
este
(p
2
1)(p
2
p).
1.5 Cate matrici 2 2 sunt inversabile peste Z
n
pentru n = 6, 9, 26 ?
1.6 Sa se cripteze textul clar INAINTE SI LA DREAPTA folosind sistemul de xriptare
Hill cu matricea
M =

17 17 5
21 18 21
2 2 19

sau M =

11 2 19
5 23 25
20 7 1

1.7 Cate auto-chei sunt ntr-un sistem de criptare Hill cu d = 2 ?


1.8 Determinat i inversele matricilor (modulo 26):

2 5
9 5

11 8
3 7

10 5 12
3 14 21
8 9 11

1 11 12
4 23 2
17 15 9

1.3. EXERCIT II 11
1.9 Demonstrat i ca ntr-un cifru de permutare, este o auto-cheie daca si numai daca
(i, j) [(i) = j = (j) = i]
Gasit i toate auto-cheile unui cifru de permutare cu n = 2, 3, 4, 5, 6.
1.10 Consideram urmatorul cifru de permutare: Se xeaza numerele naturale p, q. Tex-
tul clar se mparte n blocuri de cate p q caractere. Fiecare astfel de bloc se scrie pe liniile
unei matrici de p linii si q coloane. Criptarea blocului se realizeaza scriind aceste matrici
pe coloane.
De exemplu, pentru p = 3, q = 4, textul clar MAINI CURATE se scrie
M A I N
I C U R
A T E X
(textul s-a completat cu litera X). Textul criptat va MIAACTIUENRX.
Decriptat i urmatorul text DJNOUDNAINPAPANONZ criptat ntr-un mod similar.
1.11 Sa se decripteze mesajul
N T I N I I I D D N R I R T E E A D
U M I I G R A D V O B E M C I I I E
Z S R U A U C M L T A I T U I T N I
D A A L E A R A C R I A S Z T E E E
I G P S A D E A P R E Z S T C A O
A E R I D R E D D E I E S E E P E L
stiind c a a fost criptat cu matricea Richelieu denita n Exemplul 1.7.
12 PRELEGEREA 1. NOT IUNI DE BAZ

A ALE CRIPTOGRAFIEI
Bibliograe
[1] A. Menezes, P. Oorschot, S. Vanstome, Handbook of Applied Cryptography
[2] D. Stinton, Cryptography, Theory and Practice, Chapman & Hall/CRC, 2002
[3] A. Salomaa, Criptograe cu chei publice, Ed. Militara, 1996
[4] http://www.win.tue.nl/ gwoegi/P-versus-NP.htm
[5] S. Cook, http : //www.claymath.org/millennium/P vs NP/Official Problem Description.pdf
[6] http://en.wikipedia.org/wiki/Rosetta stone
13
Prelegerea 2
Cifruri de substitut ie
Cifrurile de substitut ie sunt cele mai utilizate sisteme de criptare simetrice; ele se ntalnesc
si azi, exemple ind sistemele DES si AES.
Un astfel de cifru consta n nlocuirea ecarui caracter din V cu alt caracter (din W).
Exista doua clase mari de cifruri de substitut ie: sisteme monoalfabetice si polialfabetice.
2.1 Sisteme de criptare monoalfabetice
Un astfel de sistem substituie ecare caracter cu alt caracter totdeauna acelasi, indiferent
de pozit ie. Atunci cand cele doua alfabete coincid (V = W), sistemele monoalfabetice
sunt cazuri particulare de cifruri de permutare.
Vom trece n revista cateva astfel de sisteme.
2.1.1 Sistemul de criptare Cezar
Sistemul de criptare Cezar este un sistem monoalfabetic: odata stabilita cheia de criptare
e
K
, ecare caracter cod x se nlocuieste prin caracterul cod x + k (mod 26) (a se vedea
Prelegerea I). Decriptarea se realizeaza dupa formula d
K
(x) = x k (mod 26).
Observat ia 2.1

In cartea sa De bello gallico, Cezar aminteste de un sistem de criptare,
fara sa dea detalii. Mai tarziu, Suetoniu n Viata lui Iuliu Cezar descrie sistemul.
Cezar folosea sistemul nlocuind literele romane cu cele grecesti si folosea deplasarea k = 3.
Nepotul lui Cezar, mparatul Augustus a utlizat acelasi sistem, cu k = 1. Sistemul Cezar
a fost utilizat mult timp. Armata rusa apela frecvent la el n 1915, ca nlocuitor pentru
sistemele sale proprii de criptare, prea sosticate la nivelul trupelor de camp. Un sistem
Cezar cu k = 13 este inclus n ROT13, implementat pe sistemele UNIX ([5],[3])
Evident, Cezar este un sistem generat de permutarile ciclice din P
26
. Fiind numai 26 chei
posibile, el este extrem de vulnerabil la atacul prin fort a bruta. Pentru a-i mari rezistent a,
s-a utilizat si o varianta, numita sistem Cezar cu cheie, denita astfel:
1
2 PRELEGEREA 2. CIFRURI DE SUBSTITUT IE
Se considera un cuvant (cheie), preferabil cu toate caracterele distincte (n caz contrar,
literele identice se folosesc doar la prima aparit ie). Acest cuvant se aseaza la nceputul al-
fabetului. Dupa ce se termina, sirul de completeaza cu literele care nu existau n cuvantul
cheie, n ordine alfabetica.
De exemplu, sa presupunem ca s-a ales cuvantul cheie MARTOR. Scriem
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. Astfel, STUDENT se cripteaza n
QSUTOJS, ARGINT n MPCEJS etc.
Sistemul Cezar cu cheie rezista mai bine la atacul cu fort a bruta, numarul cheilor ind
acum card(P
26
= 26!.
2.1.2 Sistemul de criptare an
Sistemul de criptare an este o generalizare a sistemului Cezar. Vom avea T = (= Z
26
,
/= (a, b) [ a, b Z
26
, cmmdc(a, 26) = 1, iar funct iile de criptare si decriptare (pentru
o cheie K = (a, b)) sunt
e
K
(x) = ax +b (mod 26), d
K
(y) = a
1
y +a
1
(26 b) (mod 26)
Condit ia ca a sa e prim cu 26 asigura existent a lui a
1
n Z
26
.
De exemplu, pentru a = 3, b = 5 funct ia de criptare este e
K
(x) = 3x + 5, care poate
reprezentata prin tabelul:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
5 8 11 14 17 20 23 0 3 6 9 12 15 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
Astfel, textul clar PRIMAVARA TARZIE se cripteaza n YEDPFQFEF KDECDR.
Deoarece 3
1
= 9 (mod 26), decriptarea se realizeaza matematic 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 de asemenea injectivitatea aplicat iei e
K
.
De exemplu, pentru e
K
(x) = 10x + 1, A si N se transforma ambele n B, iar O nu apare
ca imagine n alfabetul substitut iei.
Sa studiem spat iul cheilor /. Orice cheie K / este determinata complet de valorile
ntregi (a, b) cu (a, 26) = 1. Sunt posibile 12 valori
1
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 (care se exclude deoarece nu conduce la nici o criptare). Deci card(/) = 311,
numar sucient de mic pentru reusita unui atac prin fort a bruta.
1
Pentru un numar dat n exista (n) numere mai mici decat n si prime cu n, unde phi este funct ia
Euler.

In particular (26) = 12.
2.1. SISTEME DE CRIPTARE MONOALFABETICE 3
2.1.3 Alte sisteme de criptare monoalfabetice
Sistemul de criptare Polybios
Sistemul Cezar nu este cel mai vechi de criptare. Se pare ca primul astfel de sistem a fost
Polybios (istoric grec mort cu 30 ani naintea nasterii lui Cezar). Init ial acesta a fost doar
un sistem maritim de semnalizare cu tort e; ulterior i s-a dat o semnicat ie criptograca.
Sa consideram alfabetul latin, din care eliminam o litera de frecvent a cat mai redusa
2
;
e aceasta W. Cele 25 litere ramase le asezamntr-un patrat 55 (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.
Astfel, textul clar MERGEM ACASA este criptat n
CCAEDCBBAECCAAACAADDAA.
Deci sistemul de criptare Polybios este o substitut ie monoalfabetica cu alfabetul W =
AA, AB, AC, . . . , EE de 25 caractere.
Sunt diverse variante ale sistemului Polybios. Astfel, 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
3
si de catre prizonierii americani din Vietnam. Este foarte simplu de nvat at si poate
aplicat folosind diverse semne drept coordonate (cifre, puncte, guri, batai de toba etc).
A fost utilizat de asemenea n cadrul altor sisteme de criptare, cum ar sistemul nihilist,
cifrul ADFGVX (utilizat de armata germanan primul razboi mondial) sau sistemul Bid,
inventat de Dellastell n 1901 (pentru detalii, se vedea [6]).
Sistemul cavalerilor de Malta
Ordinul cavalerilor de Malta folosea un sistem de criptare monoalfabetic bazat pe stilizarea
unei cruci. Astfel, sa consideram careurile:
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
2

In limba engleza litera eliminata este de obicei J.


3
Alfabetul cirilic are 33 litere, deci n acest caz s-a utilizat un careu 6 6.
4 PRELEGEREA 2. CIFRURI DE SUBSTITUT IE
Liniile carencadreaza ecare caracter (inclusiv spat iul), mpreuna cu punctele (doua, unul
sau zero) indica substitut ia caracterului respectiv. Astfel, textul clar DUPA DOUAZECI
DE ANI se cripteaza n
:
.
: :
.
: : : : : : :
.
:
2.1.4 Criptanaliza sistemelor de criptare monoalfabetice
Punctul slab al sistemelor de criptare monoalfabetice consta n 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.
Sunt construite diverse structuri de ordine relative la frecvent a aparit iei literelor n
ecare limba europeana. De obicei, cu cat un text criptat este mai lung, cu atat frecvent a
literelor folosite se apropie de aceasta ordonare generala. O comparare ntre cele doua
relat ii de ordine (cea a caracterelor din textul criptat si cea a lterelor din alfabetul limbii
curente) conduce la realizarea catorva corespondent e (litera text clar litera text criptat),
ceea ce stabileste n mod univoc cheia de criptare. Pentru sistemul Cezar este sucienta
stabilirea unei singure perechi; pentru sistemul an trebuiesc doua perechi etc.
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 %).
Exemplul 2.1 Sa consideram ca 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 gkl gq gcxk fkpkcq sp gepbcgb
2.1. SISTEME DE CRIPTARE MONOALFABETICE 5

In prima etapa, vom numara de cate ori apare n text ecare caracter. se obt ine tabelul
Caracter c k x b s q g p m l e p a v b n o f z
Frecvent a 39 38 27 25 23 20 19 18 18 11 9 8 7 7 2 2 2 2 2
Deci caracterele cele mai frecvente sunt c si k. Pe de-alta parte, cele mai frecvente
caractere din limba romana sunt a, i si e (textul nu este destul de mare pentru a putea
face o distinct ie neta).

In mod cert, a c, k. Sunt patru opt iuni posibile, din care trei
se elimina rapid. Ramane de abordat c a, k e.
Vom nota cu litere mari caracterele din textul clar; prin nlocuirea lui c cu A, a lui k
cu E, textul devine
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
Cuvantul ExA de pe primul rand are caracterul 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. Facem
substitut ia s se obt ine textul
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

In acest text, cuvantul REtREnEpbAq are corespondent n limba romana numai pe


REPREZENTAI, M, U. De aici se obt in decriptarile t P, n Z, p N si
b T (pentru ultimul caracter - q, nu facem deocamdata nici o opt iune). Noul text va

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
Lucrurile ncep acum sa se simplice: 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 . Facand aceste nlcuiri, se obt ine textul
6 PRELEGEREA 2. CIFRURI DE SUBSTITUT IE
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
Ultimele caractere se deduc imediat: 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 Viata ca o corida de Octavian Paler).
Evident, daca se stia sistemul de criptare (an, Cezar etc) criptanaliza se simplica
mult.
Pentru alte aplicat ii, oferim tabelele de frecvent a a literelor pentru principalele limbi
europene
4
(am ret inut din ecare limba numai cele mai frecvente noua 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 %
Exista o situat ie ipotetica n care criptanaliza unui sistem monoalfabetic este imposibila:
atunci cand T= V

si nu dispunem de nici o alta informat ie (decat eventual sistemul de


criptare). Acest caz corespunde nsa unei codicari; adevarata criptare a avut loc atunci
cand mesajele inteligibile au fost translatate n cuvinte din V

.
4
Datele statistice pentru toate tabelele inclusiv limba romana sunt din anul 1994.
2.2. SISTEME DE CRIPTARE POLIALFABETICE 7
2.2 Sisteme de criptare polialfabetice
Diferent a dintre aceste sisteme de criptare si cele monoalfabetice consta n faptul ca
substitut ia unui caracter variaza n text, n funct ie de diversi parametri (pozit ie, context
etc.). Aceasta conduce binent eles la un numar mult mai mare de chei posibile. Se
considera c a primul sistem de criptare polialfabetic a fost creat de Leon Battista n 1568
([3]). Unele aplicat ii actuale folosesc nca pentru anumite sect iuni asyfel de sisteme de
criptare.
2.2.1 Sistemul homofonic
Sistemul de criptare homofonic este un sistem intermediar ntre sistemele mono si cele
polialfabetice. Principalul lui scop este de a evita atacul prin frecvent a de aparit ie a
caracterelor. Se pare ca a fost utilizat prima oara n 1401 de catre ducele de Mantua.
Fiecarui caracter a T 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 T 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).
Exemplul 2.2 Sa consideram T= a, b si H(a) = 001, 010, H(b) = 000, 011, 101,
111. Pentru criptarea textului ab se poate folosi oricare din secvent ele
001000, 001011, 001101, 001111, 010000, 010011, 010101, 010111.
Sistemul homofonic este mult mai rezistent la un atac doar pe baza textului criptat, dar
cedeaza usor la un atac cu text clar ales.
2.2.2 Sistemul de criptare Playfair
Sistemul a fost inventat 1854 de Sir Charles Wheatstone. Cel care l promoveaza si l
sust ine pentru a adoptat ca cifru ocial al Marii Britanii este baronul Lyon Palyfayr de
St. Andrews. Guvernul prefera alta varianta, dar acest sistem de criptare capata numele
baronului.
Ideea de baza este urmatoarea:
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 55. Sa exemplicam sistemul
pentru tabloul
8 PRELEGEREA 2. CIFRURI DE SUBSTITUT IE
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.
Regulile de criptare/de-criptare sunt:
Textul clar este separat n blocuri de cate doua caractere (ignorand spat iile). Condi-
t ia este ca nici un bloc sa nu cont ina aceiasi litera, iar textul sa e de lungime para.
Aceste deziderate se realizeaza usor modicand put in textul clar (se introduce o
litera de frecvent a mica ntre cele doua litere egale, respectiv ca ultim caracter).
Fiecare bloc se cripteaza astfel: daca cele doua litere nu sunt plasate n tabel pe
aceiasi linie sau coloana (de exemplu A si E), se cerceteaza colt urile dreptunghiului
determinat de cele doua litere (n cazul nostru A, F, O, E). Perechea AE este crip-
tata n FO. Ordinea este determinata de ordinea liniilor pe care se aa literele din
textul clar. Astfel, EA se cripteaza n OF, SF n ZB etc.
Daca cele doua litere se gasesc pe aceasi 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.
De exemplu, textul clar AFARA PLOUA se cripteaza n XHHPPDPEPX. Se observa ca
cele patru aparit ii ale caracterului A au fost criptate cu X, H, P si din nou X.
O permutare ciclica a liniilor si coloanelor tabloului 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 ie n sus, este echivalent cu
cel init ial (ambele asigura aceeasi cheie de criptare).
Regulile de baza pot modicate sau completate 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 5 5 poate nlocuit cu un dreptunghi 4 6 sau
3 8, cu schimbarile corespunzatoare n alegerea literelor care se elimina.
Pentru a pastra cheia n sigurant a, se recomanda 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 literelor alfabetului, scrise n ordinea aparit iei lor
5
.
5

In denit ia init iala a sistemului, Wheatstone pleca de la cuvantul Holmes.


2.2. SISTEME DE CRIPTARE POLIALFABETICE 9
Astfel, n 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, Palyfair rezista la atacuri bazate pe frecvent a aparit iei, dar
nu si la cele prin text clar ales.
Implementari actuale folosesc reprezentarea binara a literelor si fac un pas suplimentar:
dupa ce s-a obt inut o pereche criptata, aceasta se combina printr-un XOR (adunare
modulo 2) cu perechea criptata anterior.
2.2.3 Sistemul de criptare Vigenere
Numele sistemului
6
vine de la baronul francez Blaise de Vigenere (1523 1596) diplomat
la curtea regelui Henry III. A fost considerat mult timp unul din cele mai bune sisteme
de criptare.
Prezentarea sistemului
Consideram ca si la sistemele anterioare cele 26 litere ale alfabetului, numerotate de
la 0 (pentru A) pana la 25 (pentru Z), conform tabelului:
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 T = (= Z
26
, /= Z
+
26
.
O cheie K / este un cuvant avand codicarea 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) ()
Exemplul 2.3 Sa consideram cuvantul cheie FOCAR; deci p = 5 si K = 5 14 2 0 17.
Daca vrem sa criptam cu aceasta cheie textul clar NU POT VENI AZI, vom proceda
astfel:
Codicarea textului 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
6
Sursa [7] indica drept real inventator al sistemului pe Giovan Batista Belaso n 1553.
10 PRELEGEREA 2. CIFRURI DE SUBSTITUT IE
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 numerelor de pe primele doua linii, iar pe ultima
linie s-a scris textul criptat rezultat.
Decriptarea se realizeaza similar, scazand (modulo 26) din codul caracterului criptat,
codul caracterului corespunzator din cheie.
O varianta a sistemul Vigenere este sistemul Beaufort (amiral englez, autorul si a unei
scale a vanturilor care i poarta numele); aici relat ia de criptare () este nlocuita cu
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
).
Alta varianta este sistemul Autoclave, atribuit matematicianului Cardano (autorul
formulelor de rezolvare pentru ecuat iile de gradul 3 si 4). Aici cheia se foloseste o singura
data, la nceput, dupa care este utilizat drept cheie textul clar.
Exemplul 2.4 Sa luam cuvantul cheie COV OR si textul clar A VENIT TOAMNA.
Putem aranja sistemul de criptare sub forma unui tabel (s-au trecut doar caracterele, nu
si codicarile lor):
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
Sistemul Vigenere a fost utilizat secole de-a randul, ind considerat ca ind unul din
cele mai sigure sisteme de criptare.

In 1917 de exemplu, prestigioasa revista Scientic
American l considera imposibil de atacat. Numai ca acest sistem a fost spart de Kasiski
nca din 1863 (si independent de Babbage n 1854).
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), (k 0)
2.2. SISTEME DE CRIPTARE POLIALFABETICE 11
adica cu un sistem Cezar (k
0
ind o valoare xata din Z
26
).

In mod similar si celelalte
linii.
Deci, daca s-ar cunoaste lungimea p a cheii, problema s-ar reduce la criptanaliza a p
texte criptate cu Cezar sistem de criptare monoalfabetic.
Sunt cunoscute doua metode pentru aarea lungimii cheii: testul lui Kasiski si indexul
de coincident e.
Prima metoda consta n studiul textului criptat si aarea de perechi de segmente de
cel put in 3 caractere (aceasta lungime este propusa de Kasiski) identice. Pentru ecare
astfel de pereche, se determina distant a dintre segmente.
Dupa ce s-au gasit mai multe astfel de distant e, valoarea lui p va cel mai mare divizor
comun al lor (sau eventual un divizor al acestuia).
Exemplul 2.5 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
Textul este destul de scurt (146 litere) si nu se mai stie nici un text trimis anterior.
Folosind metoda Kasiski, Oscar gaseste secvent a QLNCJ care apare pe randul al doilea.
Distant a dintre cele doua aparit ii este 27. De asemenea, apar doua cuvinte foarte asema-
natoare: AQLN si AOLN, avand ntre ele distant a 57.
Deci putem banui ca avem de-a face cu un cuvant cheie de lungime cmmdc(27, 57) = 3.
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 S S W G C O S C W S P R W W W 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 J G D K W L Z V Z C I V Y V E T
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 T R A R A N P Z C E E M A M E U
Numarand frecvent a aparit iei literelor pe ecare linie, obt inem tabelul
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
Linia 1 2 0 6 1 0 1 3 2 2 1 0 0 0 0 3 1 3 2 7 0 0 1 8 0 0 0
Linia 2 0 0 1 2 4 0 3 0 1 3 6 3 0 0 0 0 0 4 0 2 0 6 2 0 1 3
Linia 3 11 0 3 0 3 0 1 0 2 0 0 2 2 3 1 1 0 3 2 3 4 0 0 0 0 1

In limba romana, primele litere ca frecvent a sunt AEI, 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 (maxima n cazul unui text lung). 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.
12 PRELEGEREA 2. CIFRURI DE SUBSTITUT IE
Tot doua variante apar si pentru a doua linie: CGK (deplasare 2) cu 10 aparit ii,
sau R V Z (deplasare 14) cu 13 aparit ii.
Deplas arile dau exact codicarile cheii. Deci trebuie luate n considerare patru vari-
ante de cuvant cheie: OCA, ORA, SCA sau SRA. Cum de obicei cuvantul cheie are
o semnicat ie semantica (pentru a putea ret inut mental usor), putem presupune ca el
este OCA sau ORA.
O simpl a vericare ret ine drept cuvant cheie ORA, care conduce la decriptarea corecta
a textului (spat iile si semnele de punctuat ie se pun corespunzator):
PELANGAPLOPIIFARASOTADESEAAMTRECUTMACUNOSTEAUVECINIITOTITUNUMAICUNOSCUT
ACEASTAESTEPRIMASTROFAAUNEINPOEZIICELEBREDEMIHAIEMINESCU
A doua metoda de aare a lungimii cheii de criptare ntr-un sistem Vigenere se bazeaza
pe un concept denit n 1920 de Wolfe Friedman n 1920: indexul de coincident e ([4]).
Denit ia 2.1 Daca x = x
1
x
2
. . . x
n
este o secvent ae n caractere alfabetice, se numeste
index de coincident e al lui x probabilitatea ca doua caractere din x, alese aleator, sa e
identice. Aceasta valoare se noteaza I
c
(x).
Sa notam cu f
i
frecvent a de aparit ie n x a caracterului literal codicat i (0 i 25).
Doua litere din x pot alese n C
2
n
moduri. Din acestea, sunt C
2
f
i
moduri ca ambele sa
aiba aceiasi codicare i (0 i 25). De aici se poate deduce formula
I
c
(x) =
25

i=0
C
2
f
i
C
2
n
=
25

i=0
f
i
(f
i
1)
n(n 1)
Sa presupunem ca x este un text n limba romana. Din tabelul frecvent elor de aparit ie ale
literelor, notand p
i
probabilitatea de aparit ie a caracterului codicat cu i (0 i 25),
valoarea pe care o putem estima pentru indxul de coincident e este
I
c
(x)
25

i=0
p
2
i
= 0, 0788
Motivat ie: Probabilitatea ca doua elemente aleatoare sa e ambele egale cu caracterul de
cod i este p
2
i
(0 i 25). Armat ia este valabila pentru orice criptare cu un sistem
monoalfabetic.
Sa presupunem acum ca am aranjat textul criptat x = x
0
x
1
. . . x
n1
ntr-o matrice cu
p linii si n/p| coloane (unde p este un numar ntreg pozitiv arbitrar), astfel
x
0
= x
0
x
p
x
2p
. . .
x
1
= x
1
x
p+1
x
2p+1
. . .
.
.
.
x
p1
= x
p1
x
2p1
x
3p1
. . .
2.3. EXERCIT II 13
Daca p este chiar lungimea cheii, atunci ecare valoare I
c
(x
i
) trebuie sa e apropiata de
0, 0788.

In caz contrar, sirul x
i
va arata mult mai aleator, ind obt inut prin amestecul
unei secvent e de caractere criptate cu chei diferite. Pentru o secvent a complet aleatoare,
valoarea indexului de coincident e este
I
c
26

1
26

2
=
1
26
= 0, 0384
Valorile 0, 0788 si 0, 0384 vor constitui punctele de extrem pe care le poate lua I
c
. Vom lua
deci diverse valori pentru p, pana vom gasi una care sa se apropie cat mai mult de 0, 788
si nu de 0, 384. Aceea poate considerata cu sucienta sigurant a ca este lungimea
cheii.

In etapa a doua, vom ncerca sa aam efectiv cheia K = k


0
k
1
. . . k
p1
.
Daca notam n
1
= n/p| lungimea secvent ei x
i
, atunci distribut ia de probabilitate ale
celor 26 litere n x
i
este
f
0
n
1
,
f
1
n
1
, . . . ,
f
25
n
1
Secvent a x
i
a fost obt inuta printr-o criptare Cezar cu o deplasare k
i
. Deci, situat ia ideala
este cand distribut ia de probabilitate a deplasarii
f
k
i
n
1
,
f
k
i
+1 (mod 26)
n
1
, . . . ,
f
k
i
+25 (mod 26)
n
1
este cat mai apropiata de distribut ia de probabilitate p
0
, p
1
, . . . , p
25
a limbii romane.
Fie un ntreg m (0 m 25); denim expresia
F
m
=
25

i=0
p
i
f
i+m
n
1
Daca m = k
j
(0 j p 1), ne putem astepta ca F
m

25

i=0
p
2
i
= 0, 0788.
Daca m ,= k
j
, atunci F
m
va semnicativ mai mic decat aceasta valoare. Deci, dupa
cel mult 25 ncercari, se poate aa deplasarea k
j
si deci a j-a litera din cheie.
2.3 Exercit ii
2.1 Demonstrat i ca funct ia de criptare ana e
K
(x) = ax+b (mod 26) este injectiva daca
si numai daca cmmdc(a, 26) = 1.
2.2 Textul clar este scris peste alfabetul V = a, b, c, d. Se foloseste un sistem de
criptare monoalfabetic dat de regulile a bb, b aab, c bab, d a. Sa se
arate ca funct ia de criptare este injectiva.
Dar pentru: a ab, b ba, c a, d c ?
14 PRELEGEREA 2. CIFRURI DE SUBSTITUT IE
2.3 Se denesc doua sisteme de criptare cu T= a, b, (= c, d si regulile
a ccd, b c pentru primul sistem,
a c, b dcc la al doilea sistem.
Ce cuvinte sunt criptate la fel n cele doua sisteme ?
2.4 S-a recept ionat mesajul
ARAU RIRU ITAA URIR EESU URAP IUTE IRI
Despre el, criptanalistul are urmatoarele informat ii: s-a folosit un careu de criptare
tip Polybios, precum si cuvantul cheie STROP.
Sa se decripteze mesajul.
2.5

In sistemele de criptare simple, orice cheie de criptare poate reprezentata ca o
compunere de cateva chei generatoare. La sistemul Cezar, o astfel de cheie este e
1
. Aratat i
ca la sistemul an sunt necesare cel putn doua chei generatoare.
2.6 Decriptat i urmatorul mesaj
TKLCP OCTLE TSSZC XCMEB CVKMK CCSBX KGQBA CGQPE MBKCQ FKGSP
SSBEB SBQPQ ACSGQ PEMGQ BLCOK CAQLB CQGKM BXCLQ GKCTX SFKCA
CBCBV KVKME LQAKP BXXCO CPBKL KOKCB QPQAC SSPBK LKM
criptat cu un sistem an.
2.7 O varianta a sistemului AUTOCLAVE este utilizarea textului criptat (n loc de text
clar) dupa prima aplicare a cheii. La care din cele doua variante de AUTOCLAVE este
criptanaliza mai usoara ?
2.8 Cate chei are un sistem de criptare an n care card(V ) = 30, 100 sau 1225 ?
2.9 Sa presupunem ca K = (5, 21) este o cheie ntr-un sistem de criptare an peste Z
29
.
(a) Exprimat i funct ia de decriptare sub forma d
K
(y) = ay +b unde a, b Z
29
;
(b) Aratat i ca e
K
(d
K
(x)) = x, x Z
29
.
2.10 Fie K = (a, b) o cheie ntr-un sistem an peste Z
n
. Aratat i ca K este auto-cheie
daca si numai daca a
1
a (mod n) si b (a + 1) 0 (mod n).
Aat i toate auto-cheile dintr-un sistem an peste Z
15
.
Sa presupunem ca n = pq unde p si q sunt numere prime distincte. Aratat i ca numarul
auto-cheilor din sistemul an peste Z
n
este n +p +q + 1.
Bibliograe
[1] A. Menezes, P. Oorschot, S. Vanstome, Handbook pf Applied Cryptography
[2] A. Salomaa, Criptograe cu chei publice, Ed. Militara, Bucuresti 1994
[3] B. Schneier, Applied Cryptography, John Wiley and Sons, 1995
[4] D. Stinton, Cryptography, Theory and Practice, Chapman& Hall/CRC, 2002
[5] http://en.wikipedia.org/wiki/Caesar cipher# History and usage
[6] http://psychcentral.com/psypsych/Polybius square
[7] http://www.answers.com/topic/vigen-re-cipher
15
Prelegerea 3
Sisteme mecanice de criptare
Sistemele de criptare pot aduse la un grad mai mare de complexitate si securitate daca
se folosesc mijloace mecanice de criptare. Astfel de mecanisme special construite vor usura
pe de-o parte operat iile de criptare/decriptare, iar pe de-alta parte vor capabile sa
creeze un numar mult mai mare de chei posibile.
3.1 Sistemul antic Skitala
Skitala (baston n greceste) este o unealta folosita pentru realizarea unui sistem de
criptare cu permutari. El este sub forma aproximativ cilindrica, n jurul lui indnfasurata
o banda de hartie. Mesajul se scrie n mod normal pe aceasta banda, dupa care hartia este
desfacuta. La primire se foloseste un bat asemanator pe care se nfasoara sulul de hartie,
mesajul devenind din nou inteligibil (pentru detalii, a se vedea [6], [3]). Conform istoricilor
greci, spartanii foloseau acest mod de comunicare n timpul campaniilor militare.
1
El
avea avantajul de a rapid si nu comporta erori de transmitere. Dezavantajul este acela
ca este usor de spart.
Exemplul 3.1 Sa presupunem ca dimensiunile bat ului permit scrierea a 4 randuri, cu
5 caractere pe ecare rand. Fie VINO MAINE LA INTALNIRE textul care trebuie
criptat. Ignorand spat iile, mesajul va apare scris sub forma
1
Skitala a fost ment ionata prima oara de poetul grec Archilochus (sec. VII .H). Desi apare ulterior
si n alte texte, abia la mijlocul secolului III .H. Apollonius din Rhodos specica limpede utilizarea lui
ca mijloc de criptare. De remarcat ca pentru perioada respectiva, sistemele de criptare folosite de greci
erau de tip steganograc. O descriere a modului de operare este data apoi de Plutarh (50-120 A.D.).
1
2 PRELEGEREA 3. SISTEME MECANICE DE CRIPTARE
________________________
| | V | I | N | O | M |
|__| A | I | N | E | L |__
| A | I | N | T | A | |
| L | N | I | R | E | |
|___|___|___|___|___|__|
Dupa derularea de pe skitala, mesajul scris pe banda de hartie este:
VAALIIINNNNIOETRMLAE.
La decriptare, banda va rulata din nou si ecare a patra litera va pe aceeasi linie.
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, . . . , n)
care ulterior se concateneaza. Exista o valoare a lui n pentru care textul astfel format este
inteligibil.
3.2 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,
folosit pentru securitatea corespondent ei cu aliat ii n special cei francezi.
2
Un cilindru Jeerson este format din n discuri de dimensiuni egale (init ial n = 26
sau n = 36, dar valoarea este nerelevanta pentru descrierea sistemului) 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 (dar diferita pentru ecare disc).
La criptare, textul clar se mparte n blocuri de n caractere. Fiecare astfel de bloc
se scrie pe o linie (generatoare) a cilindrului, rotind corespunzator ecare disc pentru a
aduce pe linie caracterul cautat. Oricare din celelalte 25 linii va constitui blocul de text
criptat.
Pentru decriptare este necesar un cilindru identic, 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.
O mica diferent a apare daca textul clar nu are nici o semnicat ie semantica (s-a
folosit o dubla criptare). Atunci trebuie convenita dinainte o anumita distant a de criptare
s (1 s 25).
2
Thomas Jeerson a folosit acest aparat n perioada 1790 1802, dupa care se pare ca ideea s-a
pierdut. Devenit presedinte, Jeerson a fost atras de sistemul Vigenere, pe care l considera mai sigur
si-l recomanda secretarului sau de stat James Madison ca nlocuitor al sistemului pe care l inventase
anterior.
3.2. CILINDRUL JEFFERSON 3
Ordinea discurilor poate de asemenea schimbata. De exemplu, 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 polialfabetica de perioada n. Daca ar
privit ca un sistem de criptare Vigenere, lungimea cheii este enorma (de multe ori n
n
, n
funct ie de modalitat ile de aranjare a alfabetelor pe discuri), si deci metoda de atac a lui
Kasiski este inaplicabila.
Exemplul 3.2 Sa consideram n = 10 si e cilindrul, n care am desfasurat literele de pe
cele 10 discuri:
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
Cu ajutorul lui, textul clar TREI CULORI construit pe una din liniile generatoare ale
cilindrului va genera urmatoarele linii (oricare din ele putand folosit drept text criptat):
4 PRELEGEREA 3. SISTEME MECANICE DE CRIPTARE
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 XX 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
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 n serviciu pana pana n al doilea razboi
mondial.
3.3 Masini de criptat
Prima jumatate a sec. XX este dominata de masinile de criptat, o combinat ie ntre
masinile de scris si sisteme de criptare mecanice bazate pe discuri.
3.3.1 C 36 (M 209 C)
Masina C 36 este conceputa de inginerul suedez Boris Hagelin, la solicitarea armatei
americane de a avea o masina de criptat portabila, usor de manuit, care sa poata folosita
3.3. MASINI DE CRIPTAT 5
dupa un instructaj sumar. Este cunoscuta si sub numele de M 209 C, la baza ind
un model creat de Hagelin n Suedia la sfarsitul anilor

30. Ea ncepe sa e produs a
dupa cateva modicari 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 C 36.
Nu au fost specicate masuri speciale de securitate; C 36 nu a fost realizata pentru
a criptograc sigura, ea ind destinata zonelor militare tactice, unde era nevoie doar de
o sigurant a de cateva ore fat a de o eventuala criptanaliza.
Vom da o prezentare matematica a principiilor sale de construct ie; pentru alte detalii,
a se vedea [1] si [5].
Denit ia 3.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 3.3 ([4]). Toate exemplicarile referitoare la M 209 vor facute pentru
matricea
M =

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

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.
O congurat ie de nceput se obt ine prin asezarea unul sub altul (aliniat i la stanga) a
sase vectori binari de lungimi 17, 19, 21, 23, 25, 26.
Exemplul 3.4 Structura
0 1 1 0 0 0 1 0 0 0 0 0 0 0 1 1 0
0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1
1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1
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.
Plecand de la o congurat ie de nceput se pot genera o innitate de vectori de dimensiune
6 n felul urmator:
6 PRELEGEREA 3. SISTEME MECANICE DE CRIPTARE
1. Primii 17 vectori sunt coloanele complete ale congurat iei de nceput.
2. Fiecare vector linie se repeta ciclic din momentul cand s-a terminat.
Pe baza acestor elemente se poate descrie sistemul de criptare al masinii C 36. Ream-
intim, codicarea numerica a literelor este de la A 0 pana la Z 25; toate calculele se
vor face modulo 26.
Fie x codul celui de-al i-lea caracter din textul clar si h ponderea celui de-al i-lea
vector generat de congurat ia de nceput n raport cu matrica lug. Atunci
y = h x 1.
Exemplul 3.5 Sa consideram textul clar
NU PUTEM REUSI DECAT IMPREUNA
mpreuna cu matricea lug si congurat ia de nceput din exemplele anterioare. Codi-
carea numerica a textului este
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.
Dupa ignorarea spat iilor libere
3
, lungimea textului clar este 25.
Vom calcula ponderile primilor 25 vectori si vom aranja totul sub forma unui tablou:
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
Matricea lug si congurat ia de nceput formeaza cheia pentru masina C 36. De fapt,
masina nsasi este o realizare zica a acestui sistem: ea opereaza conform cu o cheie
stabilita anterior prin xarea unor rot i dint ate si a unui disc (pentru detalii vezi [5]).
Observat ia 3.1 Ecuat ia de decriptare este identica 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 pentru decriptare.
3

In aplicat iile practice, spat iul se nlocuieste uneori cu o litera de frecvent a redusa.
3.3. MASINI DE CRIPTAT 7
Deoarece liniile din congurat ia de nceput au lungimi numere prime ntre ele, vectorii
generat i ncep sa se repete sigur dupa 171921232526 = 101.405.850 pasi; deci cuvantul
cheie poate considerat mai lung decat orice text clar. Sunt nsa cazuri cand aceasta
perioada poate mai scurta. De exemplu, daca congurat ia de nceput cont ine numai 1,
se va genera un singur vector, deci perioada este 1. De asemenea se obt in perioade scurte
pentru matrici lug cu foarte put ini 1 sau congurat ii de nceput n care raportul dintre
numarul de 0 si 1 este disproport ionat.
Nu exista o condit ie matematica pentru existent a a exact 6 linii n congurat ia de
nceput. Acest numar a fost ales ca un compromis ntre securitatea criptograca si
usurint a de a cripta.

In general perioada creste cu numarul de linii.
Masina de criptat M 209 avea si ea o serie 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 necesitat ilor si a fost folosita de
armata americana pana dupa razboiul din Coreea (1953 1956).
Ulterior, Hagelin a elaborat un model mbunatat it: masina C 52. Aceasta avea o
perioada de 2.756.205.443; discurile puteau si scoase si reinserate n alta ordine; exista
un disc al carui alfabet putea permutat. C 52 a facut parte din ultima generat ie
de masini de criptat clasice, noua tehnologie (cea a computerelor) permit and dezvoltarea
altor mecanisme cu o putere de calcul mult mai mare.
3.3.2 Enigma
Poate cea mai celebra masina de criptat a fost masina germana Enigma. Sub acest nume
se aa o varietate larga de modele de masini de criptat electro-mecanice, care asigura o
criptare polialfabetica de tip Vigenere sau Beaufort.
Ea a fost proiectata la Berlin n 1918, de inginerul 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. 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
ind nca mult timp considerate sigure. Abia n 1970 au aparut primele informat ii despre
decriptarea de catre aliat i (Biuro Szyfrow - Polonia si Bletchley Park - Anglia) a unui
mare num ar de mesaje criptate prin modelul militar Enigma si transmise prin radio n
timpul razboiului.
O descriere completa a masinii este destul de lunga; recomand pentru detalii [2], [3].

In linii mari, ea are urmatoarele componente:


Tastatura: Este o componenta mecanica formata din:
8 PRELEGEREA 3. SISTEME MECANICE DE CRIPTARE
Un pupitru de taste (similar unei masini de scris);
n discuri adiacente, care se rotesc n jurul unui ax. La marea majoritate a
modelelor Enigma n = 3; sunt nsa si versiuni cu n = 5, 6 sau n = 7 discuri.
Pe ecare disc sunt scrise cele 26 caractere alfabetice (la care uneori se mai
adauga trei caractere speciale);
Un mecanism de avans (similar ceasurilor mecanice) care permite la apasarea
unei taste rotirea unuia sau mai multor discuri cu un numar de pozit ii. Sunt
folosite mai multe variante; cea mai frecventa consta n rotirea cu o pozit ie a
discului din dreapta, la ecare apasare a unei taste, acompaniata n anumite
situat ii de rotirea discurilor vecine.
Circuite electrice: Criptarea unui caracter se realizeaza electric. Componenta meca-
nica este conceputa n asa fel ncat sa formeze un circuit electric. La apasarea unei
taste circuitul se nchide si lumineaza una sau mai multe lampi, indicand litera de
iesire.
Reector (Umkehrwalze): Este o componenta specica masinilor de criptat Enigma
(introdusa n 1926 la sugestia lui Willy Korn). Scopul ei este de a realiza o criptare
Beaufort (masina sa poata cripta sau decripta mesajele n acelasi timp).

In ma-
joritatea 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 realiza criptarea
unui caracter prin 2n + 1 substitut ii.
O consecint a a acestei proprietat i este aceea ca un caracter nu va niciodata criptat
n el nsusi, lucru exploatat cu succes de criptanalisti.
Tabela de conexiuni (Steckerbrett)
4
: Este o componenta (pozit ionata n fat a, sub
tastele literelor) n care se pot face conexiuni ntre perechi de litere, prin intermediul
unor cabluri (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 nainte de a intra pe
discuri.
Introdusa n 1930, aceasta componenta asigura un plus de securitate si a fost prin-
cipalul obstacol n criptanaliza.
Starea init iala a unei masini Enigma se refera la:
Ordinea discurilor (Walzenlage): alegerea numarului de discuri si ordinea lor de
utilizare;
4
plugboard n engleza.
3.3. MASINI DE CRIPTAT 9
Pozit ia init iala a discurilor: pozit ionarean mod independent a ecarui disc, diferita
pentru ecare mesaj;
Init ializarea inelului de caractere (Ringstellung): pozit ionarea alfabetului relativ la
primul disc.
Init ializarea conexiunilor (Steckerverbindungen): conexiunile dintre litere n cadrul
tabelei de conexiuni.
Matematic, Enigma cripteaza ecare litera dupa o procedura care poate exprimata prin
produs de permutari. Sa presupunem ca avem o masina Enigma cu 3 discuri si e 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. De exem-
plu, daca discul din dreapta se roteste cu i pozit ii, atunci transformarea devine
i
R
i
,
where este permutarea ciclica stanga a vectorului (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 poate descrisa astfel:
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
Sa calculam numarul de variante posibile pentru criptarea unui mesaj. Vom considera
o masina Enigma cu 3 discuri. Atunci numarul de situat ii init iale posibile este 262626 =
17.576. Cum cele 3 discuri pot permutate n 6 moduri, numarul variantelor se ridica la
6 17.576 = 105.456.
Pentru ecare din acestea, o tabela de conexiuni 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 respectiv.
10 PRELEGEREA 3. SISTEME MECANICE DE CRIPTARE
Bibliograe
[1] Kahn, David - The Codebreakers, MacMillan Publishing Co, New York, 1967
[2] http : //en.wikipedia.org/wiki/Enigma machine
[3] Thomas Kelly - The myth of the skytale, Cryptologia, Iulie 1998, pp. 244 - 260.
[4] Salomaa, Aarto - Criptograe cu chei publice, Ed. Militara, 1994
[5] http : //en.wikipedia.org/wiki/M 209
[6] Collard Brigitte - Secret Language in Graeco-Roman antiquity (teza de doctorat)
http : //bcs.fltr.ucl.ac.be/FE/07/CRY PT/Intro.html
11
Prelegerea 4
Sisteme de criptare uide
4.1 Sisteme sincronizabile si auto-sincronizabile

In sistemele de criptare prezentate pana acum, elementele succesive ale textului clar erau
criptate folosind aceeasi cheie K. Deci, daca
x = x
1
x
2
x
3
. . .
este textul clar, textul criptat este
y = y
1
y
2
y
3
. . . = e
K
(x
1
)e
K
(x
2
)e
K
(x
3
) . . .
Sistemele de criptare de acest tip se numesc sisteme de criptare bloc (block cyphers).
Alta maniera utilizata este aceea a sistemelor de criptare uide (stream cyphers).
Denit ia 4.1 Fie /= (T, (, /, c, T) un sistem de criptare. O secvent a de simboluri
k
1
k
2
k
3
. . . /
+
se numeste cheie uida.
Denit ia 4.2 /= (T, (, /, c, T) este un sistem uid daca cripteaza 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 /
+
.
Problema principala este aceea de a genera o astfel de cheie de criptare (teoretic innit).
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.
Mai multe detalii vor prezentate n cadrul prelegerii dedicate generatorilor de numere
pseudo-aleatoare.
1
2 PRELEGEREA 4. SISTEME DE CRIPTARE FLUIDE
Exemplul 4.1 (sistemul de criptare Vernam):

In acest sistem x
i
, k
i
, y
i
0, 1. Criptarea se realizeaza conform formulei
y
i
= x
i
k
i
, (i 1)
Daca cheia uida este aleasa aleator si nu mai este folosita ulterior, sistemul de
criptare Vernam se numeste one - time pad.
Un sistem de criptare one-time pad este teoretic imposibil de spart.
1

Intr-adevar,
ind dat un text criptat cu un astfel de sistem, Oscar nu are nici o informat ie privind
cheia uid a sau textul clar. Dicultatea consta nsa atat n lungimea cheii (egala cu cea
a textului clar), cat si n modalitatea de transmitere a ei ntre Alice si Bob.
Pentru sistemul Vernam exista o modalitate de atac cunoscuta sub numele de crip-
tanaliza diferent iala (prezentata mai tarziu, n cadrul sistemului de criptare DES).
Anume:
Daca y
1
y
2
. . . y
n
si y

1
y

2
. . . y

n
sunt doua texte criptate cu aceiasi chee uida k
1
k
2
. . . k
n
,
atunci
y
i
= x
i
k
i
, y

i
= x

i
k
i
(1 i n)
deci y
i
y

i
== x
i
x

i
, si cheia nu mai este necesara, ci doar informat ia privind lungimea
sa; redundant a ultimei relat ii va permite criptanaliza.
Sistemele de criptare uide sunt clasicate n sisteme sincrone si auto-sincronizabile.
Denit ia 4.3 Un sistem de criptare uid sincron este o structura (T, (, /, L, c, T),
unde:
T, (, / sunt mult imi nite nevide ale caror elemente se numesc texte clare, texte
criptate si respectiv chei;
L este o mult ime nita nevida numita alfabet sir de chei;
g : / L
+
este un generator de chei uide: pentru
k /, g(k) = k
1
k
2
k
3
. . . L
+
este o cheie uida (teoretic innita);
z L exista o regula de criptare e
z
c si o regula de decriptare d
z
T astfel ca
x T, d
k
(e
k
(x)) = x
Exemplul 4.2 Sistemul de criptare Vigenere poate denit ca un sistem de criptare
uid sincron. Fie m lungimea cuvantului cheie din sistemul Vigenere. Denim
1

In anii

90 comunicarea ntre Moscova si Washington era securizata n acest mod, transportul cheii
de criptare ind asigurat de curieri.
4.1. SISTEME SINCRONIZABILE SI AUTO-SINCRONIZABILE 3
T = ( = L =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
Ea va genera din cheia xa K = (k
1
, k
2
, . . . , k
m
), cheia uida k
1
k
2
. . . k
m
k
1
k
2
. . . k
m
k
1
k
2
. . .
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 determinata din cheia k, este funct ia de
tranzit ie a starilor, g este funct ia care produce cheia uida z
i
, iar 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
-
666
- -
6
6
-
?

g
h k
q
i+1
z
i
x
i
y
i

q
i
-
666
- -
6
6
-
?

g
h
1
k
q
i+1
z
i
y
i
x
i
(a) Criptare (b) Decriptare
Observat ia 4.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 uide sincrone, Alice si Bob trebuie sa-si
sincronizeze cheia uida pentru a putea obt ine o criptare/decriptare corecta. Daca n
timpul transmisiei sunt inserat i sau eliminat i bit i n textul criptat, atunci decriptarea
esueaza si ea poate reluata numai pe baza unor tehnici de resincronizare (cum ar
de exemplu reinit ializarea sau plasarea unor marcatori speciali la intervale regulate
n textul transmis).
Modicarea unui bit din textul criptat (faa a se elimina sau adauga nimic) nu va
afecta decriptarea altor caractere (nepropagarea erorii).
4 PRELEGEREA 4. SISTEME DE CRIPTARE FLUIDE
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 sincron necesita meca-nisme separate de
autenticare si de garantare a integritat ii datelor.
Denit ia 4.4 Un sistem aditiv uid binar de criptare este un sistem uid sincron n care
T = ( = L =Z
2
iar h este funct ia (XOR).
Un astfel de sistem este reprezentat mai jos:
Generator
chei uide

- -
?
-
k
z
i
x
i
y
i
Generator
chei uide

- -
?
-
k
z
i
y
i
x
i
(a) Criptare (b) Decriptare
Denit ia 4.5 Un sistem de criptare uid este auto-sincronizabil (sau asincron) daca
funct ia de generare a cheii uide depinde de un numar xat de caractere criptate anterior.
Deci comportamentul unui astfel de sistem poate descris de ecuat iile
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 (cunoscuta), k este cheia, g este funct ia
de generare a cheii uide, iar h este functia de iesire care cripteaza textul clar x
i
. Cele
mai cunoscute sisteme auto-sincronizabile sunt registrii liniari cu feedback, utilizat i la
generarea secvent elor de numere pseudo-aleatoare (n criptograe) si la generarea codurilor
ciclice (n teoria codurilor).
Exemplul 4.3 (Criptare cu auto-cheie)
2
:
Fie T = ( = L =Z
26
. Se deneste cheia uida astfel:
z
1
= K, z
i
= y
i1
, (i 2)
Pentru un element oarecare al cheii z Z
26
, se deneste
e
z
(x) = x +z (mod 26)
d
z
(y) = y z (mod 26)
Sa consideram K = 13 si sa criptam textul clar BUCURESTI.
2
Se pare ca sistemul este atribuit lui Vigenere.
4.1. SISTEME SINCRONIZABILE SI AUTO-SINCRONIZABILE 5
Transformat n secvent a numerica vom avea
(x
1
, x
2
, x
3
, x
4
, x
5
, x
6
, x
7
, x
8
, x
9
) = (1, 20, 2, 20, 17, 4, 18, 19, 8)

In faza de criptare, vom calcula pe rand:


y
1
= e
13
(x
1
) = 1 + 13 (mod 26) = 14; y
2
= e
14
(x
2
) = 20 + 14 (mod 26) = 8;
y
3
= e
8
(x
3
) = 2 + 8 (mod 26) = 10; y
4
= e
10
(x
4
) = 20 + 10 (mod 26) = 4;
y
5
= e
4
(x
5
) = 17 + 4 (mod 26) = 21; y
6
= e
21
(x
6
) = 4 + 21 (mod 26) = 25;
y
7
= e
25
(x
7
) = 18 + 25 (mod 26) = 17; y
8
= e
17
(x
8
) = 19 + 17 (mod 26) = 10;
y
9
= e
10
(x
9
) = 8 + 10 (mod 26) = 18;
Deci textul criptat este (14, 8, 10, 4, 21, 25, 17, 10, 18) sau n litere: OIKEV ZRKS.
Pentru decriptare, vom avea:
x
1
= d
13
(y
1
) = 14 13 (mod 26) = 1; x
2
= d
14
(y
2
) = 8 14 (mod 26) = 20; s.a.m.d.
Se observa ca textul decriptat poate obt inut de oricine, aproape n totalitate, fara a
cunoaste nici o cheie (aceasta ind necesara doar pentru decriptarea primului caracter).
Deci gradul sau de securitate este nul.
Ceva mai dicil este sistemul n care generarea cheii uide se realizeaza cu ecuat ia
z
i
= x
i1
(i 2).

In acest caz, BUCURESTI se cripteaza n OV WWLV WLB (pentru K = 13).


Nici acest sistem de criptare cu auto-cheie nu este sigur, deoarece evident sunt
posibile doar 26 chei.
Proprietat i:
1. Auto-sincronizare: Deoarece funct ia de decriptare h
1
depinde numai de un numar
xat de caractere criptate anterior, desincronizarea rezultata eventual prin in-
serarea sau 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 uid auto-sincronizabil de-
pinde de t caractere anterioare, atunci modicarea (eventual stergerea sau inser-
area) unui caracter din textul criptat poate duce la decriptarea incorecta a maxim
t caractere; dupa aceea decriptarea redevine corecta.
3. Rasp andirea textelor clare: Deoarece ecare caracter din textul clar inuent eaza
ntregul text criptat care urmeaza, eventualele proprietat i statistice ale textului clar
sunt dispersate prin textul criptat. Deci, din acest punct de vedere, sistemele de
criptare auto-sincronizabile sunt mai rezistente decat cele sincronizabile la atacurile
bazate pe redondant a textului clar.
4. Rezistent a la criptanaliza activa: Din proprietat ile de mai sus rezulta ca este destul
de dicil de depistat un atac venit din partea unui adversar activ (care poate mod-
ica, insera sau sterge caractere) auto-sincronizarea readucand decriptarea n faza
6 PRELEGEREA 4. SISTEME DE CRIPTARE FLUIDE
normala. De aceea sunt necesare mecanisme suplimentare pentru a asigura auten-
ticarea si integritatea datelor.
4.2 Exemple de sisteme uide de criptare
4.2.1 SEAL
SEAL (Software - optimized Encryption ALgorithm) este un sistem de criptare aditiv
binar (Denit ia 4.4), denit n 1993 de Coppersmith si Rogaway. Este unul din cele mai
eciente sisteme implementabile pe procesoare de 32 bit i.
La un astfel de sistem este importanta descrierea generatorului de chei uide (care se
aduna modulo 2 cu textul clar). SEAL este 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.
Fie A, B, C, D, X
i
, Y
j
cuvinte de 32 bit i. Vom folosi urmatoarele notat ii:
1. A: complementul lui A (pe bit i);
2. A B, A B, A B: operat iile OR, AND si XOR (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 (considerate 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.
7. A[[B: concatenarea lui A cu B;
8. (X
1
, X
2
, . . . , X
n
) (Y
1
, , , , , Y
2
, . . . , Y
n
): atribuire simultana.
4.2. EXEMPLE DE SISTEME FLUIDE DE CRIPTARE 7
Algoritmul de generare a tabelei G pentru SEAL 2.0:
3
Intrare: Un sir a de 160 bit i si un ntreg 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
= 0x5a827999, y
2
= 0x6ed9eba1,
y
3
= 0x8f1bbcdc, y
4
= 0xca62c1d6
2. a. X
0
i;
b. for j 1 to 15 do X
j
0x00000000;
c. for j 16 to 79 do X
j
((X
j3
X
j8
X
j14
X
j16
) << 1);
d. (A, B, C, D, E) (H
0
, H
1
, H
2
, H
3
, H
4
) where a = H
0
H
1
H
2
H
3
H
4
;
e. (Runda 1): for j 0 to 19 do
t ((A << 5) +f(B, C, D) +E +X
j
+y
1
);
(A, B, C, D, E) (t, A, B << 30, C, D);
f. (Runda 2): for j 20 to 39 do
t ((A << 5) +h(B, C, D) +E +X
j
+y
2
);
(A, B, C, D, E) (t, A, B << 30, C, D);
g. (Runda 3): for j 40 to 59 do
t ((A << 5) +g(B, C, D) +E +X
j
+y
3
);
(A, B, C, D, E) (t, A, B << 30, C, D);
h. (Runda 4): for j 60 to 79 do
t ((A << 5) +h(B, C, D) +E +X
j
+y
4
);
(A, B, C, D, E) (t, A, B << 30, C, D);
i. (H
0
, H
1
, H
2
, H
3
, H
4
) (H
0
+A, H
1
+B, H
2
+C, H
3
+D, H
4
+E);
G
a
(i) = H
0
[[H
1
[[H
2
[[H
3
[[H
4
.
SEAL(a, n) (Generatorul de chei uide pentru SEAL 2.0):
3
Algoritmul SEAL 1.0 este bazat pe funct ia de dispersie SHA, iar SEAL 2.0 pe funct ia SHA1.
8 PRELEGEREA 4. SISTEME DE CRIPTARE FLUIDE
Intrare: a cheia secreta (160 bit i), n [0, 2
32
) ntreg, L - lungimea solicitata pentru
cheia uida.
Iesire: cheia uida y, [y[ = L

, unde L

este primul multiplu de 128 din [L, ).


1. Se genereaza tabelele T, S, R avand ca elemente cuvinte de 32 bit i.
Fie 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
(0x00001000 +j);
c. for k 0 to 4 (L 1)/8192| 1 do R[k] F
a
(0x00002000 +k);
2. Descrierea procedurii Initialize(n, l, A, B, C, D, n
1
, n
2
, n
3
, n
4
) cu intrarile n (cuvant)
si l (ntreg). Iesirile sunt A, B, C, D, n
1
, n
2
, n
3
, n
4
(cuvinte).
a.
A n R[4 l], B (n >> 8) R[4 l + 1],
C (n >> 16) R[4 l + 2], D (n >> 24) R[4 l + 3].
b. for j 1 to 2 do
P A 0x000007fc, B B +T[P/4], A (A >> 9),
P B 0x000007fc, C C +T[P/4], B (B >> 9),
P C 0x000007fc, D D +T[P/4], C (C >> 9),
P D 0x000007fc, A A +T[P/4], D (D >> 9),
(n
1
, n
2
, n
3
, n
4
) (D, A, B, C);
P A 0x000007fc, B B +T[P/4], A (A >> 9),
P B 0x000007fc, C C +T[P/4], B (B >> 9),
P C 0x000007fc, D D +T[P/4], C (C >> 9),
P D 0x000007fc, A A +T[P/4], D (D >> 9),
3. l 0, y (sirul vid);
4. repeat
a. Initialize(n, l, A, B, C, D, n
1
, n
2
, n
3
, n
4
);
b. for i 1 to 64 do
P A 0x000007fc, B B +T[P/4], A (A >> 9), B B A;
Q B 0x000007fc, C C +T[Q/4], B (B >> 9), C C B;
P (P +C) 0x000007fc, D D+T[P/4], C (C >> 9), D DC;
Q (Q+D) 0x000007fc, A A+T[Q/4], D (D >> 9), A AD;
P (P +A) 0x000007fc, B B +T[P/4], A (A >> 9);
Q (Q+B) 0x000007fc, C C +T[Q/4], B (B >> 9);
4.2. EXEMPLE DE SISTEME FLUIDE DE CRIPTARE 9
P (P +C) 0x000007fc, D D +T[P/4], C (C >> 9);
Q (Q+D) 0x000007fc, A A +T[Q/4], D (D >> 9);
y y[[(B +S[4 i 4])[[(C S[4 i 3])[[(D +S[4 i 2])[[(A S[i 1]).
if [y[ L then return(y) STOP
else if i (mod 2) = 1 then (A, C) (A +n
1
, C +n
2
)
else (A, C) (A +n
3
, C +n
4
)
c. l l + 1.
Observat ia 4.2 ([1])

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
.
4.2.2 RC4
Sistemul RC4 (Rivest Code #4) a fost creat n 1987 de Ron Rivest pentru societatea RSA
Data Security Inc (astazi RSA Security). Destinat scopurilor comerciale, el a fost secret,
ind accesibil numai dupa semnarea unui protocol de condent ialitate.

In septembrie 1994
nsa, un anonim publica codul sau sursa pe o lista de discut ii, dupa care se raspandeste
rapid starnind o serie de polemici referitor la drepturile intelectuale. Se considera ca astazi
exista mai multe implementari ilegale.
RC4 este un sistem aditiv uid de criptare.
Printre sistemele care folosesc RC4 se pot aminti SQL (Oracle), Lotus Notes, AOCE
(Apple Computer), WEP WPA CipherSaber Secure Sockets Layer (opt ional) sau Secure
shell (opt ional)
4
RC4 este utilizat pentru criptarea sierelor n protocoale cum ar RSA
SecurPC saun standarde de comunicat ii (WEP, WPA pentru carduri, 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.
La acest sistem, pentru generarea cheii uide se foloseste o stare interna (secreta)
formata din doua componente:
Un tablou de 256 octet i: S[0], S[1], . . . S[255], numit S box.
Doi pointeri de cate 8-bit i (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 algorithm).

In faza a doua, cheia uida este generata folosind algoritmul PRGA (pseudo-random
generation algorithm).
4
Cand un sistem de criptare este marcat opt ional, nsemna ca el este una din variantele oferite pentru
implementare.
10 PRELEGEREA 4. SISTEME DE CRIPTARE FLUIDE
Algoritmul PRGA de generare a cheii uide
i
j
+
? ?
?
666
?-
?
6

?
S
0 1 2 S[i]+S[j] 254 255
K
. . . . . . . . . . . .
Cont inuturile S[i] si S[j] (unde i, j sunt date de cei doi pointeri) se aduna modulo 256,
iar octetul K de la adresa S[i] + S[j] este introdus n cheia uida.

In plus cei doi octet i
sunt interschimbat i.
Procedeul este reluat atat timp cat este nevoie. La ecare reluare starea celor doi
pointeri se modica (i este incrementat cu 1 iar j este incrementat cu S[i]).

In acest fel,
orice locat ie din S box este modicata cel put in odata ;a 256 iterat ii.
Formal:
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]
Algoritmul KSA de init ializare
KSA este utilizat pentru init ializarea S boxului. Fie n (1 n 255) numarul de
octet i din cheie
5
. 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 foarte simpla: ea lucreaza cu octet i si necesita
256 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).
5

In majoritatea implementarilor n este n intervalul [5, 16].


4.3. EXERCIT II 11
Securitatea RC4
Conform cu Bruce Schneier ([2]), sistemul are circa 256! 256
2
= 2
1700
stari posibile; el
este rezistent la criptanaliza diferent iala si liniara, iar ciclurile sunt mai mari de 10.100.
Totusi, securitatea RC4 este slaba din mai multe puncte de vedere si criptograi nu
recomanda sistemul pentru aplicat iile actuale.
Cheia uida generata are o usoara preferint a pentru anumite secvent e de octet i.
Aceasta a permis construirea unui atac (Fluhrer si McGrew), care separa cheia uida
dintr-o secvent a aleatoare de maxim 1 GB.

In 2001, Fluhrer, Mantin si Shamir descopera ca din toate cheile RC4 posibile, primii
octet i de iesire nu sunt aleatori, oferind informat ii importante despre cheie.
La majoritatea sistemelor de criptare, o masura de securitate ncesara este alegerea
unui numar aleator nou
6
care sa e folosit pentru criptarea ecarui mesaj.

In acest fel,
criptarea de doua ori a aceluiasi mesaj va genera texte diferite. O solute sigura (care
funct ioneaza pentru orice sistem de criptare) este de a folosi o cheie pe termen lung din
care, prin amestec cu un nonce (dupa un algoritm prestabilit) se obt ine cheia necesara
unei criptari. Multe aplicat ii nsa care folosesc RC4 fac o simpla concatenare a cheii cu
nonce. Aceasta slabiciune este exploatata de Fluhrer, Mantin si Shamir pentru a sparge
ulterior sistemul de criptare WEP (wired equivalent pruvacy) folosit pe ret elele fara r
802.11.
Ulterior implementarile sistemului RC4 s-au aparat eliminand primii octet i (uzual
1024) din cheia uida, nainte de a o folosi.
4.3 Exercit ii
1. Construit i coduri de autenticare a mesajelor (MAC) capabile sa autentice mesajele
primite printr-un sistem uid de criptare. (Indicat ie: a se vedea [1], paragraf 9.5.4)
2. Presupunem ca denim o cheie uida ntr-un sistem sincronizabil n felul urmator:
Fie K /, L un alfabet al cheilor si o mult ime nita de stari. Se deneste o
stare init iala q
0
. Apoi, pentru i 1, se deneste recursiv
q
i
= f(q
i1
, K)
unde f : / . De asemenea, i 1, elementul z
i
din cheia uida este denit
prin
z
i
= g(q
i
, K)
unde g : / L. Aratat i ca orice cheie uida rezultata n acest mod are o
perioada de lungime maxim [[.
6
Un astfel de numar poarta numele de nonce (new number)
12 PRELEGEREA 4. SISTEME DE CRIPTARE FLUIDE
Bibliograe
[1] Menezes, Oorschot, Vanstome - Handbook of applied cryptography, 1997
[2] Schneier, B. - Applied Cryptography, John Wiley & Sons, second edition, 1997
[3] Stinton, D. Cryptography, Theory and Practice, Chaptan & Hall/CRC, second edi-
tion 2002
13
Prelegerea 5
Sistemul de criptare DES
5.1 Considerat ii generale

In mai 1973, Biroul Nat ional de Standarde din SUA a lansat n Registrul Federal (jurnalul
ocial 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 un sistem de criptare mai
vechi, numit Lucifer. Dupa dezbateri publice, DES a fost adoptat ocial la 17 ianuarie
1977 ca 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 (ntamplator ?) cu durata sa ociala de utilizare.
5.2 Descrierea sistemului DES
Sistemul DES cripteaza un bloc de text clar de 64 bit i ntr-un text criptat tot de 64 bit i,
utilizand o cheie de 56 bit i. Algoritmul cuprinde 3 etape:
1. Fie textul clar init ial, de 64 bit i. Lui i se aplica o permutare IP init iala xata,
obt in andu-se
0
= IP() = L
0
R
0
. L
0
este format din primii 32 bit i ai lui
0
, iar
R
0
din ultimii 32 bit i.
2. Se efectueaza 16 iterat ii (tururi) ale unei funct ii care se va preciza. La ecare tur
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 este sau - exclusiv (XOR) a doua secvent e binare. 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. Se
spune ca K
1
, K
2
, . . . , K
16
sunt obt inut i prin diversicarea cheii (key shedule).
1
2 PRELEGEREA 5. SISTEMUL DE CRIPTARE DES
3. Blocului R
16
L
16
i se aplica inversa permutarii init iale pentru a obt ine textul criptat
= IP
1
(R
16
L
16
).
Observat ia 5.1 Sistemul de ecuat ii care denesc criptarea la ecare tur poate inversat
imediat pentru a obt ine ecuat iile tururilor de decriptare. Acestea sunt:
R
i1
= L
i
, L
i1
= R
i
f(L
i
, K
i
)
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. Etapele de calcul ale funct iei
sunt:
1. Argumentul A este extins la 48 bit i folosind o funct ie de expansiune E. E(A)
cuprinde bit ii lui A asezat i ntr-o anumita ordine, unii bit ii ind scrisi de doua ori.
2. Se calculeaza B = E(A) J; rezultatul se descompune n 8 subsecvent e de cate 6
bit i ecare: B = B
1
B
2
B
3
B
4
B
5
B
6
B
7
B
8
.
3. Se folosesc 8 S cutii S
1
, S
2
, . . . , S
8
, ecare din ele ind un tablou de dimensiuni
4 16 cu elemente numere ntregi din intervalul [0, 15]. Pentru o secvent a B
j
=
b
1
b
2
b
3
b
4
b
5
b
6
se calculeaza un sir de 4 bit i S
j
(B
j
) astfel: bit ii b
1
b
6
dau reprezentarea bi-
nara a indicelui unei linii r (0 r 3) din S
j
; ceilalt i 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). ([x]
2
este reprezentarea n baza 2 a numarului ntreg x).
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
permutare xata P. Rezultatul nal este f(A, J) = P(C).
Mai ramane sa specicam funct iile particulare folosite de sistemul DES:
Permutarea init iala IP este:
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
este:
5.2. DESCRIEREA SISTEMULUI DES 3
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
Funct ia de expansiune E este denita de tabloul:
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
Cele opt cutii S (S-boxes) sunt:
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
4 PRELEGEREA 5. SISTEMUL DE CRIPTARE DES
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
Permutarea xata P este:
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
Mai ramane de prezentat procesul de diversicare al cheii K. De fapt, K este o secvent a
de 64 bit i, din care 56 denesc cheia, iar 8 (bit ii de pe pozit iile 8, 16, 24, . . . , 64) sunt bit i
de paritate, aranjat i n asa fel ncat ecare octet sa cont ina un numar impar de 1. Acesti
8 bit i sunt ignorat i n procesul de diversicare.
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, iar D
0

ceilalt i 28 bit i). Permutarea PC
1
este
5.3. CONTROVERSE LEGATE DE DES 5
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
2. Pentru i = 1, 2, . . . , 16 se calculeaza
C
i
= LS
i
(C
i1
)
D
i
= LS
i
(D
i1
)
si K
i
= PC
2
(C
i
D
i
). LS
i
este o rotat ie circulara la stanga cu una sau doua pozit ii,
n funct ie de valoarea lui i: o pozit ie daca i = 1, 2, 9, 16, altfel rotirea este de doua
pozit ii. Permutarea PC
2
este:
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
Decriptarea se realizeaza plecand de la textul criptat si utilizand acelasi algoritm, n
ordine inversa; se vor folosi n ordine cheile K
16
, . . . , K
1
.
5.3 Controverse legate de DES

Inca de la lansarea sa, DES a fost supus la numeroase critici. O prima obiect ie a fost
folosirea cutiilor S. Toate calculele din DES sunt liniare, cu except ia cutiilor. Deci, de
fapt toata securitatea sistemului se bazeaza pe acestea. Dar, nimeni (cu except ia autorilor)
nu stie cum sunt concepute cutiile. Multe persoane sunt convinse ca ele ascund diverse
trape secrete care permit celor de la Agent ia nat ionala de securitate (NSA - serviciul
american care raspunde de chestiunile legate de criptograe) sa decripteze orice mesaj.
Ca urmare, NSA arma n 1976 ca S - cutiile au fost construite pe baza urmatoarelor
criterii:
1. Fiecare linie este o permutare a numerelor 0, . . . , 15;
6 PRELEGEREA 5. SISTEMUL DE CRIPTARE DES
2. Nici o cutie nu este o funct ie liniara sau ana;
3. Modicarea unui bit din operand, o S - cutie provoaca modicarea cel put in a doi
bit i din rezultat;
4. Pentru ecare cutie S si (secvent a de lungime 6), S() si S( 001100) difera
prin cel put in doi bit i.
Alte doua proprietat i au fost ment ionate ca ind consecint e ale criteriilor de construct ie:
5. Pentru orice cutie S si orice , S() = S( 11ab00), oricare ar a, b {0, 1};
6. Pentru orice cutie S, daca un bit din operand este ment inut constant si se urmarste
un bit al rezultatului, numarul de valori care produc 0 este apropiat de numarul
de valori care produc 1.

Intr-adevar, daca bitul xat este unul din cei doi bit i care
determina linia cutiei S, exista conform criteriului 1. 16 valori care produc 0 si
16 valori care produc 1; pentru ceilalt i bit i, aceasta nu este adevarat, dar numarul
de valori care produc 0 (sau 1) este cuprins totdeauna ntre 13 si 19.
Nici un alt criteriu referitor la S - cutii nu a mai fost recunoscut public.
Cea mai pertinenta critica referitoare la DES se refera la marimea prea mica (numai
2
56
) a spat iului cheilor. Ca urmare s-au conceput numeroase masini dedicate atacurilor
cu text clar cunoscut, care sa caute cheia. Fiind dat un text clar de 64 bit i si textul
sau criptat , se verica toate cheile posibile K pana se obt ine e
K
() = (de remarcat
ca solut ia exista totdeauna, dar nu este unica).
5.4 Moduri de utilizare ale DES -ului

In istoria sa, sistemul de criptare DES a cunoscut patru moduri de utilizare, moduri
extinse ulterior si la alte sisteme:
Modul ECB (Electronic Codebook Mode) corespunde metodei descrise anterior: 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)
procedeul conducand la textul criptat y =
1

2
. . .


In modul CBC (Cypher Block Chaining Mode), ecare bloc de text criptat
i
este
combinat printr-un XOR () cu textul clar urmator
i+1
, nainte de criptarea
acestuia. Operat ia decurge conform schemei:
5.4. MODURI DE UTILIZARE ALE DES -ULUI 7

1
e
K
e
K

2
j j

1

2
V I =
0
+ +
Criptare
-
?
?
?
-
6
-
?
?
?
-
6
-. . .

1

2
j j
d
K
d
K

1

2
V I =
0
-
?
?
?
-
?-
?
?
?
-
?-
+ +
. . .
Decriptare
Se deneste un bloc cu valoarea init iala V I =
0
, dupa care blocurile se cripteaza
dupa formula

i
= e
K
(
i1

i
), (i 1)
Modurile OFB si CFB sunt construite conform sistemelor de criptare uide: se
genereaza ntai cheia uida, care se combina apoi cu textul clar. OFB (Output
Feedback Mode) este o criptare sincronizabila aditiva: componentele 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
, . . . dupa formula

i
= e
K
(
i1
), (i 1)
Secvent a blocurilor de text clar x =
1
,
2
, . . . este criptata apoi aditiv conform
relat iei

i
=
i

i
, (i 1)


In modul CFB (Cypher Feedback Mode) se ncepe cu
0
= V I (bloc init ial de 64
bit i) si se calculeaza cheia uida
i
criptand din nou blocul de text criptat obt inut
anterior:

i
= e
K
(
i1
), (i 1)
. Ca si la modul OFB, n etapa a doua avem

i
=
i

i
, (i 1)
De remarcat ca funct ia de criptare e
K
este folosita aici atat la procesul de criptare
cat si la cel de decriptare.

e
K V I =
0

1
e
K

2
- -
?
?
-
6
- -
?
?
-
6
-
+ +
Criptare
. . .

e
K V I =
0

1
e
K

al
2

2
- -
?
?
-
? - -
?
?
-
? -
+ +
Decriptare
. . .
Desi metoda prezentata a fost descrisa pentru blocuri de marime 64, modurile OFB
si CFB pot extinse la blocuri de k bit i (1 k 64).
8 PRELEGEREA 5. SISTEMUL DE CRIPTARE DES
Cele patru moduri de utilizare prezinta diverse avantaje si dezavantaje. Astfel, la
ECB si OFB, modicarea unui bloc de text clar
i
provoaca modicarea unui singur
bloc de text criptat,
i
.

In anumite situat ii, acest fapt constituie un defect. Modul OFB
este utilizat adesea pentru transmisiile prin satelit.

In modurile CBC si CFB dimpotriva, modicarea unui bloc


i
de text clar antreneaza
modicari n toate blocurile de texte criptate, ncepand cu
i
. De aceea, aceste moduri
sunt adaptate n particular 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 autenticitatea) mesajului, dar nu si condent ialitatea sa.
Sa descriem cum este utilizat modul CBC la construct ia unui MAC. 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
, asociat 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.
Se poate realiza si o combinare a integritat ii cu condent ialitatea, n felul urmator:
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
.
Sau ca alta varianta Alice poate utiliza K
1
pentru criptarea mesajului
1
, . . . ,
n
;
apoi, pentru
1
, . . . ,
n
determina MAC-ul
n+1
folosind cheia K
2
. Bob va face ntai ver-
icarea corectitudinii data de MAC si daca totul este n ordine va trece la decriptare.
5.5 Sisteme de criptare nrudite cu DES
5.5.1 Triplu DES (3DES)
Triplu DES (cunoscut si sub numele 3DES sau mai rar DES ede) este un sistem
derivat din DES, 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))).
unde:
m este un bloc de text clar (64 bit i),
5.5. SISTEME DE CRIPTARE

INRUDITE CU DES 9
e este blocul de text criptat rezultat,
k
1
, k
2
, k
3
sunt chei DES (de 56 bit i),
DES
k
: criptarea DES cu cheia k,
DES
1
k
: decriptarea DES cu cheia k.
Introducerea la pasul 2 a decriptarii nu afecteaza securitatea algoritmului. Avantajul
consta n utilizarea pentru 3DES a unei implementari de DES (astfel, cele doua sisteme
pot inter-opera).
Uneori dar destul de rar se foloseste pentru Triplu DES o criptare n lant de trei
criptari DES (numita si DES eee):
c = DES
k
3
(DES
k
2
(DES
k
1
(m))).
Utilizarea a trei pasi (ede sau eee) este esent iala pentru protejarea contra unui atac de
tipul meet-in-the-middle.

In cazul unei duble criptari, acest atac este destul de ecient.

Intr-adevar, sa consideram un sistem de criptare bloc unde marimea cheii este n. O


criptare dubla cu doua chei diferite va folosi de fapt o cheie de lungime 2n. Pentru un
text clar dat m, sa presupunem ca putem stoca e
K
(m), pentru toate cheile K posibile.
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 determinate de perechea (m, x), chei care pot gasiten aproximativ
O(2
n
) pasi.
Daca numarul cheilor care pot stocate este de ordinul 2
p
< 2
n
, algoritmul poate
modicat pentru a aa toate cheile posibile n circa O(2
2np
) pasi.
Observat ia 5.2 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
compatibilitatea.
Cheia pentru Triplu DES 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). Acest mod este nsa sensibil
la anumite atacuri cu text clar ales, propuse de Merkle si Hellman (1981) si mai tarziu
de Van Oorschot si Wiener (1991).
Sistemul de criptare 3DES nu este nca spart, dar utilizarea sa este ngreunata din
cauza vitezei 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 are ca sistem de criptare 3DES.
10 PRELEGEREA 5. SISTEMUL DE CRIPTARE DES
5.5.2 DES X
DES X (sau mai simplu DESX) este o varianta a sistemului de criptare DES,
dezvoltata pentru a rezista mai bine unui atac prin fort a bruta.
Dupa cum am vazut, sistemul DES opereaza cu o cheie de 56 bit i; deci sunt numai
2
56
chei posibile, unele din acestea ind chei slabe
1
Pentru a evita un atac direct, in mai
1984 Rivest propune cresterea marimii cheii K fara a modica substantal algoritmul.
DESX foloseste doua chei suplimentare K
1
, K
2
de cate 64 bit i si efectueaza criptarea
unui bloc de text clar x 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.
5.5.3 IDEA
Prima aparit ie a sistemului IDEA are loc n 1990, sub denumirea PES (Proposed En-
cryption Standard). Deoarece n acelasi an, Biham si Shamir publica sistemul de atac
al DES-ului prin criptanaliza 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 Proposed Encryption Standard), nume care n 1992 se schimba n IDEA
(International Data Encryption Standard Algorithm).

In opinia lui Bruce Schneider, n 1996 IDEA constituia cel mai sigur sistem de criptare
utilizabil fara restrict ii. Este o componenta a sistemului de securitate prin posta elec-
tronica PGP, unde asigura criptarea datelor.
Sistemul este foarte asemanator cu DES. Astfel, el 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 sublocuri X
1
, X
2
, X
3
, X
4
, de cate 16 bit i
ecare. Aceste patru componente formeaza intrarea la prima runda a algoritmului.

In
total sunt 8 runde, care folosesc operat iile de adunare, 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 combinate cu 4 subchei, formand iesirea.
O runda cont ine 14 operat ii, anume:
1
DES are 4 chei slabe K pentru care e
K
(e
K
(x)) = x. Mai exista 12 chei semi-slabe asociate n
perechi (K
1
, K
1
) pentru care e
K
1
(e
K
2
(m)) = m. Posibilitatea ca printr-o alegere aleatoare a cheii sa
se obt ina o cheie slaba sau semi-slaba este deci 2
52
. Mult i utilizatori solicita un test pentru depistarea
chilor slabe, test care nu afecteaza semnicativ timpul de criptare.
5.5. SISTEME DE CRIPTARE

INRUDITE CU DES 11
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 subcheia 5;
8. Se aduna rezultatele pasilor 6 si 7;
9. Se nmult este rezultatul pasului 8 cu subcheia 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.
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.
Prelucrarea subcheilor se face dupa urmatorul algoritm:
1. Cheia de 128 bit i este desfacuta n 8 subchei 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 noun 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 aceeiasi pasi, cu singura diferent a ca subcheile
se introduc n ordine inversa.
Comparativ cu DES, IDEA prezinta unele avantaje. Astfel, implementarile realizate
permit o viteza dubla de criptare n IDEA fat a de DES.
Lungimea cheii (128) bit i, asigura o securitate sporita la atacurile brute: pentru a
gasi cheia prin ncercari, ar necesare cam 2
128
teste; deci cu un chip care testeaza un
miliard de chei pe secunda, ar trebui cam 10
13
ani o perioada mai lunga decat varsta
Pamantului.
12 PRELEGEREA 5. SISTEMUL DE CRIPTARE DES
Autorii au armat (fara sa demonstreze) ca IDEA rezista atacurilor prin criptanaliza
diferent iala. Un studiu al subcheilor a aratat ca exista unele chei slabe, care permit sparg-
erea sistemului de criptare ntr-un timp mai scurt. O asigurare contra alegerii (aleatoare)
a acestor chei slabe ar completarea algoritmului de generare a subcheilor prin operarea
ecarei subchei generate printr-un XOR cu 0x0D, unde x este o cifra hexazecimala
aleasa aleator.
5.5.4 NEW DES
NEWDES a fost creat n 1985 de Robert Scott, ca un posibil nlocuitor al sistemului
DES. Algoritmul nu este o varianta a DES-ului (cum s-ar putea nt elege din numele
sau, ales destul de nefericit). El opereaza cu texte clare grupate n blocuri de 64 bit i, dar
cheia are lungimea 120 bit i. Ca o simplicare, aici nu vom avea permutare init iala si nici
nala.
Blocul unui text clar este spart n 8 subblocuri de cate 8 bit i: B
0
, B
1
, . . . , B
7
. Aceste
subblocuri trec prin 17 runde, ecare runda avand 8 pasi.
Cheia este mpart ita n 15 subchei K
0
, K
1
, . . . , K
14
. Procedeul de criptare este descris
destul de clar de schema urmatoare:
f
f
f
f
f
f
f
f
j j
j j
j j
j j
j j
j j
j j
j j

?
-
-
-
- -
-
?
-
-
?
- -
-
?
- -
-
?
- -

?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

B
0
B
1
B
2
B
3
B
4
B
5
B
6
B
7
K
0
K
1
K
2
K
3
K
4
K
5
K
6
Runda 1
Runda 2
Rundele 3 15
5.6. EXERCIT II 13
f
f
f
f
f
f
f
f
j
j
j
j
j
j
j
j j
j
j
j
j
j
j
j -
-
?
- -
6666
-
-
?
- -
-
-
?
- -
-
-
?
- -

?

+
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
K
8
K
9
K
10
B
7
B
6
B
5
B
4
B
3
B
2
B
1
B
0
K
14
K
13
K
12
K
11
Runda 16
Runda 17
5.6 Exercit ii
5.1 Sa se arate ca procesul de decriptare folosind DES se realizeaza folosind tot sistemul
de criptare, dar inversand ordinea de aplicare a subcheilor.
5.2 Sa notam DES(, K) textul criptat cu cheia K. Daca = DES(, K) si

=
DES(c(), c(K)), unde c(i
1
i
2
. . . i
n
) = i
n
i
n1
. . . i
1
, sa se arate ca

= c().
5.3 O modalitate de a ntari sistemul de criptare DES consta n dubla-rea criptarii:
ind date doua chei K, K

, se deneste = e
K
2
(e
K
1
()). Daca e
K
2
= d
K
1
, cheile K
1
si K
2
se numesc duale (si atunci = ). O cheie este auto-duala daca este propria sa
duala.
1. Sa se arate ca daca C
0
are tot i bit ii identici si la fel D
0
, atunci K este auto-duala.
2. Sa se arate ca urmatoarele chei (scrise n hexazecimal) sunt auto-duale:
0101010101010101; FEFEFEFEFEFEFEFE;
1F1F1F1F1F1F1F1F; E0E0E0E0E0E0E0E0.
3. Sa se arate ca daca C
0
= 0101 . . . 01 sau C
0
= 1010 . . . 10, atunci
C
i
XOR C
17i
= 1 . . . 1; D
i
XOR D
17i
= 1 . . . 1 (1 i 16).
4. Sa se arate ca urmatoarele perechi de chei sunt duale:
E001E001F101F101, 01E001E001F101F1;
FE1FFE1FFE0EFE0E, 1FFE1FFE0EFE0EFE;
E01FE01FFF10FF10, 1FE01FE00EF10EF1.
14 PRELEGEREA 5. SISTEMUL DE CRIPTARE DES
5.4 Se poate deni un cod de autenticare al mesajului (MAC) utilizand un mod CFB
sau CBC. Fiind data o secvent a de blocuri
1
,
2
, . . . ,
m
de texte clare, de deneste val-
oarea init iala IV =
1
. Criptarea lui
2
, . . . ,
n
cu cheia K n modul CFB da
1
, . . . ,
n1
(sunt numai n 1 blocuri de text criptat). Se deneste MAC ca ind e
K
(
n1
). Sa se
arate ca el coincide cu rezultatul MAC dat n prelegere, cu modul CBC.
5.5 Daca o secvent a de texte clare
1
,
2
, . . . ,
n
produce prin criptare
1
,
2
, . . . ,
n
, iar
blocul
i
este transmis gresit (apar erori de canal), sa se arate ca numarul de blocuri care
vor decriptate gresit este 1 n modul ECB sau OFB si 2 n modul CBC sau CFB.
Prelegerea 6
Modalitat i de atac asupra DES

In aceasta prelegere trecem n revista principalele modalitat i de criptanaliza dezvoltate


cu scopul de a sparge sistemul DES. Ele si-au largit ulterior aria de aplicabilitate, ind
considerate astazi mijloace de atac standard, carora trebuie sa le reziste orice sistem nou
de criptare, pentru a putea luat n considerare.
6.1 Compromisul spat iu - timp al unui atac
Vom studia aici un compromis ntre spat iu si timp ntr-un atac cu text clar ales. Aici
Oscar va dispune de o pereche (, ) cu = e
K
(), si cauta sa determine cheia K.
Nu vom folosi o structura particulara de implementare a sistemului DES; stim numai
ca textele clare si cele criptate sunt de 64 bit i, iar cheia are 56 bit i.
O cautare exhaustiva consta n a ncerca toate cele 2
56
chei posibile. Aceasta operat ie
nu necesita memorie, dar sunt necesare n medie 2
55
chei pentru a o gasi pe cea buna. Sau,
ind dat un text clar , Oscar poate forma anterior un tabel cu 2
56
perechi (
k
, K), astfel
ca
K
= e
K
(), trierea urmand a facuta dupa
K
. Cand Oscar obt ine textul criptat
din textul clar , el va cauta n tabela si va aa imediat cheia K. Astfel, aarea cheii va
necesita un timp de calcul neglijabil (complexitate logaritmica), dar un spat iu de memorie
gigantic si un timp de precalcul important. Aceasta varianta nu aduce nici un avantaj
din punct de vedere al timpului total, pentru aarea unei singure chei. Avantajul apare
atunci cand este necesara cautarea mai multor chei, deoarece atunci 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 inerii tuturor cheilor. 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
1
2 PRELEGEREA 6. MODALIT

AT I DE ATAC ASUPRA DES


de 56 bit i (rezultatul g(K
0
) este de asemenea de lungime 56).
Algoritmul mai foloseste doi parametri ntregi pozitivi m, t.

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
m

timest
. Din
aceste valori, Oscar pastreaza ntr-o tabela T numai 2m perechi (X(i, 0), X(i, t)) 1 i
m (deci sunt memorate numai prima si ultima coloana a matricii X).

In momentul atacului, Oscar obt ine textul criptat al textului clar ales de el. El
va cauta cheia K n cele t coloane ale matricii X, consultand tabloul T. Sa presupunem
K = X(i, t j) pentru un j (1 j t) dat (K este n 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()).
Sa calculam sirul
j
(1 j t) denit de relat ia de recurent a

j
=
_
R() daca j = 1
g(
j1
) daca 2 j t
Daca K = X(i, tj), vom avea
j
= X(i, t). De remarcat ca reciproca nu este adevarata:
nu este sucient ca
j
= X(i, t) pentru a avea K = X(i, tj), deoarece funct ia de reducere
R nu este injectiva (R reduce un spat iu de 2
64
n unul de 2
56
valori, deci ecare valoare
provine n general din 2
8
= 256 valori). Trebuie deci vericat ca = e
X(i,tj)
() pentru
a decide ca X(i, t j) este ntr-adevar cheia. Valoarea X(i, t j) nu este disponibila n
memorie, dar ea se poate recalcula n t j pasi, plecand de la X(i, 0).
Oscar va folosi deci urmatorul algoritm:
1.
1
R()
2. for j := 1 to t do
2.1. if i cu
j
= X(i, t) then
2.1.1. calculeaza X(i, t j) = g
tj
(X(i, 0))
2.1.2. if = e
X(i,tj)
() then K X(i, t j), STOP
2.2.
j+1
g(
j
)
Analizand probabilitatea de succes a algoritmului, se poate arata ca daca mt
2
N =
2
56
, atunci probabilitatea ca sa avem cheia 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).
6.2. ATACUL MEET-IN-THE-MIDDLE 3
Timpul de calcul al atacului este mai dicil de evaluat. De remarcat ca pasul 2.1
poate implementat n cel mai rau caz ntr-un timp O(log m), utilizand arbori binari 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.
6.2 Atacul meet-in-the-middle
Este un 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
- - -
? ?
m
x
y
K
1
K
2
Lema 6.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.
Demonstrat ie: Fie (m, y) 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
(m);
2. Se stocheaza (x
i
, K
i
) sortate (sau indexate) dupa x
i
.
3. Pentru ecare din cele 2
n
chei posibile:
(a) Se calculeaza x
j
= d
K
j
(y);
(b) Se cauta in lista creata la pasul anterior o pereche (x
i
, K
i
) cu x
i
= x
j
;
4. O pereche de chei posibile este (K
i
, K
j
);
(deoarece e
K
i
(m) = d
K
j
(y), deci e
K
j
(e
K
i
(m)) = y).
Algoritmul se reia cu alte perechi (m, y), pana ce perechea de chei folosite este determinata
n mod unic.
Exemplul 6.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 compromisului spat iu - timp pot
duce la variante de genul: 2
p
spat iu, 2
q
timp, unde p + q = 112 ([1]).
Vom mai ntalni frecvent acest atac la protocoalele de stabilire a cheilor de sesiune.
4 PRELEGEREA 6. MODALIT

AT I DE ATAC ASUPRA DES


6.3 Criptanaliza diferent iala
Unul din atacurile cele mai cunoscute ale DES-ului este criptanaliza diferent iala, intro-
dusa de Biham si Shamir n 1991. Este un atac cu text clar cunoscut. Cu toate ca nu
da o modalitate practica de spargere a funct iei DES n 16 tururi, ea furnizeaza 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.

Intr-un astfel de atac se ignora permutarea init iala IP si inversa sa (ele nu joaca nici
un rol n criptanaliza). Ne vom margini la un DES restrans pe n (n 16) runde. Deci
textul clar este L
0
R
0
si L
n
R
n
textul criptat (vom ignora de asemenea inversarea nala
dintre L
n
si R
n
).
Criptanaliza diferent iala considera doua texte clare L
0
R
0
, L

0
R

0
si textele criptate
corespunzatoare L
n
R
n
respectiv L

n
R

n
. Ea va efectua studii asupra mesajelor 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
.
Denit ia 6.1 Fie S
j
(1 j 8) o S - cutie din sistemul DES. Pentru orice pereche
(B
j
, B

j
) de siruri de 6 bit i, vom deni 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
).
De remarcat ca 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 6.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
.
Observat ia 6.1
O mult ime (B
j

) cont ine 2
6
= 64 elemente;
(B
j

) = {(B
j
, B
j
B
j

)| B
j
Z
6
2
}.
Pentru ecare pereche din (B
j

) vom calcula XOR-ul de iesire al lui S


j
si construim
o tabela de distribut ii ale valorilor obt inute (sunt 64 iesiri pe un spat iu de 2
4
= 16 valori
posibile). Pe aceasta tabela se va baza atacul de criptanaliza diferent iala.
Exemplul 6.2 Sa consideram prima S - cutie S
1
si XOR-ul de intrare 110100. Vom
avea:
(110100) = {(000000, 110100), (000001, 110101), . . . , (111111, 001011)}.
Pentru ecare pereche din (110100) vom calcula 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.
Efectuand acest calcul pentru toate cele 64 perechi din (110100), vom obt ine distribu-
t ia urmatoare a XOR-urilor de iesire pentru S
1
:
6.3. CRIPTANALIZA DIFERENT IAL

A 5
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 Exemplul 6.2 au aparut numai 8 din cele 16 valori de iesire posibile.



In general, daca
se xeaza o S-cutie S
j
si un XOR de intrare diferit de 000000, se constata ca vor apare
numai 75 80 % din valorile posibile de iesire.
Denit ia 6.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 data n Exemplul 6.2 da valorile N
1
(110100, C
1

), C
1

Z
4
2
. Toate aceste
valori se g asesc n Tabelul urmator:
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
Pentru ecare din cele 8 S-cutii exista 64 XOR-uri de intrare posibile; deci n total vor
512 date de distribuit, lucru usor de realizat cu un calculator.
Reamintim ca intrarea ntr-o S-cutie la turul i este B = EJ, 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 cutii) este deci
B B

= (E J) (E

J) = E E

.
6 PRELEGEREA 6. MODALIT

AT I DE ATAC ASUPRA DES


De remarcat ca XOR-urile de intrare nu depind de sub-cheia J, pe cand XOR-urile de
iesire depind.
Sa detaliem pe grupuri de cate 6 bit i, cuvintele cu care se lucreaza;
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

. Sa presupunem acum ca se stiu valorile E


j
si E

j
pentru
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
.
Sa presupunem ca se deneste mult imea test
j
astfel:
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

)). Din aceste considerat ii


rezulta imediat teorema:
Teorema 6.1 Daca E
j
, E

j
sunt subsecvent e construite pentru intrarea n S-cutia S
j
, iar
C
j

este XOR-ul de iesire al lui S


j
, atunci bit ii cheii J
j
apar n mult imea test
j
(E
j
, E

j
, C
j

).
Cum se poate remarca, 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 6.3 Sa consideram E1 = 000001, E

1
= 110101, C
1

= 1101. Deoarece
N
1
(110100, 1101) = {000110, 010000, 010110, 011100, 100010, 101000, 110010} are 8 ele-
mente, exista 8 secvent e posibile pentru 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 alt test


1
cu valori pentru J
1
, deci
valoarea corecta se va gasi n intersect ia lor.
6.3.1 Atac pe trei runde
Sa vedem cum se aplica aceste idei pentru un DES construit pe 3 runde. Vom ncepe 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
).
Sa presupunem ca s-a ales 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

.
6.3. CRIPTANALIZA DIFERENT IAL

A 7
Avem f(R
2
, K
3
) = P(C), f(R

2
, K
3
) = P(C

) unde C respectiv C

sunt iesirile core-


spunzatoare din cele 8 S-cutii (reamintim, P este o permutare xata din descrierea sis-
temului 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-cutii dupa a treia runda.
R
2
= L
3
si R

2
= L

3
sunt cunoscute (componente 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-cutii la runda a treia.
Se cunosc deci E, E

, C

la a treia runda si se poate trece asa cum am vazut la


construct ia mult imilor test
1
, test
2
, . . . , test
8
de valori posibile pentru J
1
, J
2
, . . . , J
8
.
Un algoritm pentru aceasta metoda este formalizat mai jos. Atacul foloseste mai multe
triplete E, E

, C

. Se utilizeaza opt tabele de valori si se determina 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 a celor 8 bit i necunoscut i.
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
).
6.3.2 Atacul pe sase runde
Sa extindem ideile precedente n cazul unui atac probabilist asupra unui sistem de criptare
DES de 6 runde. Ideea este de a alege o pereche de texte clare cu un XOR bine ales si de
studia comportamentul probabilist al evolut iei acestui XOR de-alungul ntregii operat ii
de criptare. Pentru aceasta este necesar sa introducem o noua not iune.
Denit ia 6.4 Fie n 1 un numar ntreg. O caracteristica de n runde este un sir de
forma
L
0

, R
0

, L
1

, R
1

, p
1
, . . . , L
n

, R
n

, p
n
care verica condit iile:
1. L
i

= R
i1

pentru 1 i n;
2. Pentru 1 i n se aleg L
i1
R
i1
si L

i1
R

i1
astfel ca L
i1
L

i1
= L
i1

si
R
i1
R

i1
= R
i1

; daca L
i
R
i
si L

i
R

i
sunt calculate la a i-a runda DES cunoscand
L
i1

R
i1

, probabilitatea de a obt ine relat iile L


i
L

i
= L
i

, R
i
R

i
= R
i

este p
i
(probabilitatea se extinde pentru toate subcheile posibile J
1
, J
2
, . . . , J
8
).
Probabilitatea caracteristicii este produsul p = p
1
p
2
. . . p
n
.
8 PRELEGEREA 6. MODALIT

AT I DE ATAC ASUPRA DES


Observat ia 6.2
Daca L
0
R
0
si L

0
R

0
sunt alese astfel ca L
0
L

0
= L
0

, R
0
R

0
= R
0

, nu se
poate arma ca probabilitatea ca pentru orice i = 1, 2, . . . , n sa avem L
i
L

i
=
L
i

, R
i
R

i
= R
i

este p
1
p
2
. . . p
n
.

Intr-adevar, procesul de diversicare
a cheilor nu genereaza distribut ia independenta a sub-cheilor K
1
, . . . , K
n
. Totusi,
probabilitatea p
1
p
2
. . . p
n
furnizeaza o estimare destul de precisa a probabilitat ii
reale.
Probabilitat ile p
i
sunt inserate n caracteristica pentru o pereche de texte clare oare-
care, avand un XOR dat, pentru o distibut ie de 48 bit i ai sub-cheii. Criptanalistul
cauta o cheie xata necunoscuta. De aceea el va utiliza texte clare aleatoare (cu
XOR-ul cerut), sperand ca distribut ia obt inuta de XOR-urile de la a n-a runda sa
coincida cu cea descrisa de o cheie aleatoare, deci cu p
1
, p
2
, . . . , p
n
.
Exemplul 6.4 O caracteristica pe o runda care forma baza atacului pe 3 runde este
(n notat ie hexazecimala):
L
0

= oarecare R
0

= 00000000
16
L
1

= 00000000
16
R
1

= L
0

p = 1
O alta caracteristica poate de exemplu:
L
0

= 00000000
16
R
0

= 60000000
16
L
1

= 60000000
16
R
1

= 00808200
16
p = 16/64

Intr-adevar, n calculul lui f(R


0
, K
1
) si f(R

0
, K
1
), funct ia de expansiune opereaza ntai
asupra lui R
0
si R

0
; XOR-ul rezultatelor este 001100 . . . 0. Deci XOR-ul de intrare al lui
S
1
este 001100, iar pentru celelalte S - cutii este 000000. La iesire XOR - ul este 0000
la aceste cutii si 1110 pentru S
1
; deoarece N
(
001100, 1110) = 14 (se poate verica), vom
avea probabilitatea 14/64.
Se obt ine deci C

= 11100000000000000000000000000000 cu probabilitate 14/64.


Aplicand P, vom avea
P(C) P(C

) = 00000000 10000000 10000010 00000000,


ceea ce da 00808200 n hexazecimal. Dupa calculul XOR-ului cu L
0

se obt ine valoarea


lui R
1

cu probabilitate 14/64. Vom avea binent eles L


1

= R
0

.
Atacul asupra DES-ului n 6 runde este bazat pe caracteristica celui pe 3 runde n modul
urmator:
L
0

= 40080000
16
R
0

= 04000000
16
L
1

= 04000000
16
R
1

= 00000000
16
p = 1/4
L
2

= 00000000
16
R
2

= 04000000
16
p = 1
L
3

= 04000000
16
R
3

= 40080000
16
p = 1/4
6.3. CRIPTANALIZA DIFERENT IAL

A 9
Se ncepe cu o pereche de texte clare (L
0
R
0
, L

0
R

0
) cu proprietatea L
0

= 40080000
16
,
R
0

= 04000000
16
si cu perechea de texte criptate corespunzatoare (L
6
R
6
, L

6
R

6
). Vom
avea
R
6
= L
5
f(R
5
, K
6
) = R
4
f(R
5
, K
6
) = L
3
f(R
3
, K
4
) f(R
5
, K
6
).

In mod similar se exprima R

6
. Atunci
R
6

= L
3

f(R
3
, K
4
) f(R

3
, K
4
) f(R
5
, K
6
) f(R

5
, K
6
) ()
R
6

este cunoscut. Dupa caracteristica, avem L


3

= 04000000
16
si R
3

= 40080000
16
cu probabilitate 1/16. Daca s-a obt inut ntr-adevar asa, se poate calcula XOR - ul de
intrare al S - cutiilor la a patra runda, dupa expansiune:
00100000 00000000 01010000 0000.
XOR - urile de intrare pentru S
2
, S
5
, S
6
, S
7
, S
8
sunt deci 000000, de unde rezulta ca
XOR - ul de iesire este n toate aceste cazuri 0000. Rezulta ca se poate calcula XOR -
ul de iesire al acestor cinci S - cutii la runda a sasea, pe baza relat iei (). Deci se poate
calcula
C
1

C
2

C
3

C
4

C
5

C
6

C
7

C
8

= P
1
(R
6

04000000
16
)
unde ecare C
i

are lungimea 4. C
2

, C
5

, C
6

, C
7

si C
8

sunt respectiv XOR - urile de


iesire ale cutiilor S
2
, S
5
, S
6
, S
7
, S
8
cu probabilitate 1/16. Intrarile E
2
, E
5
, E
6
, E
7
, E
8
si
E

2
, E

5
, E

6
, E

7
, E

8
n aceste cutii se pot calcula cu relat iile
E
1
E
2
E
3
E
4
E
5
E
6
E
7
E
8
= E(R
5
) = E(L
6
)
E

1
E

2
E

3
E

4
E

5
E

6
E

7
E

8
= E(R

5
) = E(L

6
)
plecand de la textele criptate, conform algoritmului:
Intrare: L
0
R
0
, L

0
R

0
, L
6
R
6
, L

6
R

6
cu L
0

= 40080000
16
, R
0

= 04000000
16
.
1. C

P
1
(R
6

40080000
16
)
2. E E(L
6
), E

E(L

6
)
3. for j = 2, 5, 6, 7, 8 do test
j
(E
j
, E

j
, C
j

)
Ar ideal de determinat cei 30 bit i din J
2
, J
5
, J
6
, J
7
, J
8
ca la atacul asupra DES -
ului n 3 runde. Problema este ca aici valorile XOR - ului de iesire la a 6 - a runda sunt
adevarate cu probabilitate 1/16. Deci n circa 15/16 din cazuri se obt in valori aleatoare
fara interes pentru criptanaliza, valori are trebuiesc eliminate. Ce este interesant este
faptul ca acest lucru este deseori posibil.
Denit ia 6.5 Fie L
0
E

0
= E
0

, R
0
R

0
= R
0

. Spunem ca perechea de texte clare


(L
0
R
0
, L

0
R

0
) este o pereche buna pentru caracteristica data, daca pentru orice i (1 i
n) avem L
i
L

i
= L
i

, R
i
R

i
= R
i

. Altfel, avem o perechea rea.


Strategiile de calcul pentru E
j
, E

j
, C
j

si test
j
pentru j = 2, 5, 6, 7, 8 a fost descrisa ante-
rior. Daca avem o pereche buna, valoarea ei apare n test
j
. Pentru o pereche rea, valoarea
lui C
j

este incorecta si se poate presupune ca toate mult imile test


j
au un cont inut aleator.
O pereche rea se poate recunoaste astfel: daca pentru un j avem card(test
j
) = 0,
perechea este sigur rea. Fiind data o pereche rea, probabilitatea de a avea card(test
j
) = 0
10 PRELEGEREA 6. MODALIT

AT I DE ATAC ASUPRA DES


pentru un anumit j, este cam 1/5 (card(test
j
) = N
j
(E
j

, C
j

) si N
j
(E
j

, C
j

) = 0 ntr-o
cincime din cazuri). Probabilitatea ca cinci mult imi test
j
sa e nevide este 0, 8
5
0, 33,
deci probabilitatea ca cel put in un test
j
sa e vid este 0, 67. Se pot elimina astfel cam 2/3
din perechile rele prin acest test simplu, numit operat ie de ltrare. Proport ia perechilor
rele care r aman dupa ltrare este ce circa (15/16) (1/3) = 5/16. Rezulta ca proport ia
perechilor bune ramse dupa ltrare este de 1/6.
Exemplul 6.5 Sa presupunem ca dispunem de urmatoarele perechi:
text clar text criptat
86FA1C2B1F51D3BE 1E23ED7F2F553971
C6F21C2B1B51D3BE 296DE2B687AC6340
Se verica imediat ca L
0

= 40080000
16
, R
0

= 04000000
16
. Intrarile si iesirile din S -
cutii la turul 6 se determina astfel:
j E
j
E

j
C

j
2 111100 010010 1101
5 111101 111100 0001
6 011010 000101 0010
7 101111 010110 1100
8 111110 101100 1101
Cele cinci mult imi test
j
vor atunci:
j test
j
2 14, 15, 26, 30, 32, 33, 48, 52
5
6 7, 24, 36, 41, 54, 59
7
8 34, 35, 48, 49
Deoarece test
5
= test
7
= , perechea este rea si va eliminata prin operat ia de ltrare.
Sa presupunem acum ca avem o pereche cu proprietatea test
j
= pentru j = 2, 5, 6, 7, 8,
deci care va ramane dupa operat ia de ltrare. Spunem ca secvent a de 30 bit i J
2
J
5
J
6
J
7
J
8
este sugerata de pereche, daca j {2, 5, 6, 7, 8}, J
j
test
j
. Numarul de secvent e
sugerate este

j{2,5,6,7}
card(test
j
).
Adesea, numarul de lant uri sugerate este destul de mare (de ordinul miilor).
6.4. CRIPTANALIZA LINIAR

A 11
Sa presupunem ca se construieste tabela tuturor secvent elor sugerate de N perechi
ramase dupa ltrare. Pentru ecare pereche buna, secvent a corecta J
2
J
5
J
6
J
7
J
8
este sug-
erata; deci ea va sugerata de n/6 ori. O secvent a incorecta va sugerata de un numar
aleator de ori, deci adesea mai put in, comparabil cu numarul lant urilor (2
30
).
Este extrem de dicil de pastrat ca spat iu tabela celor 2
30
numere; de aceea se va
folosi un algoritm care sa foloseasca un spat iu mai mic. Astfel, se codica ecare mult ime
test
j
ntr-un vector T
j
de lungime 64, n care a i - a coordonata (0 i 63) este 1 daca
secvent a de 6 bit i care reprezinta pe i n binar este n test
j
, 0 n caz contrar.
Pentru ecare pereche numarul i (1 i N) ramasa, se construiesc vectorii T
i
j
(j =
2, 5, 6, 7, 8). Daca I {1, . . . , N}, spunem ca I este admisibila, daca pentru orice j
{2, 5, 6, 7, 8} exista o coordonata egala cu card(I) n vectorul

iI
T
i
j
Daca perechea i este buna pentru orice i I, atunci I este admisibila. Deci, speram sa
avem o mult ime admisibila de marime aproximatic N/6, ceea ce sugereaza sigur o valoare
unica de 30 bit i pentru cheie. Mult imile admisibile I pot generate cu un simplu algoritm
recursiv.
6.4 Criptanaliza liniara
Criptanaliza liniara este un atac cu text clar cunoscut care seamana destul de mult cu
criptanaliza diferent iala; principala diferent a consta n faptul ca aici comparat ia se face
ntre bit ii de intrare si cei de iesire ai aceluiasi mesaj, nu ntre diferent ele a doua mesaje
la intrare respectiv iesire.
Pe scurt, principiul este urmatorul ([2]): sa presupunem ca putem aa o relat ie liniara
statistica ntre o submult ime de bit i din textul clar si o submult ime de bit i de stare
care preced imediat substitut iile din ultimul rund de criptare. Altfel spus, exista un set
de bit i al c aror XOR se determina aproape determinist (de exemplu ia valoarea 1 cu o
probabilitate mult peste 1/2). Sa consideram acum ca Oscar det ine un numar relativ
mare de perechi (text clar, text criptat) pentru care s-a folosit aceeasi cheie de criptare
K. Pentru ecare astfel de pereche se ncearca decriptarea folosind toate cheile posibile la
ultimul rund de criptare.

In acest calcul se determina valorile bit ilor implicat i n relat ia
liniara presupusa, vericand veridicitatea ei. Daca relat ia se verica, se incrementeaza
un contor corespunzator acestei chei. La sfarsitul procesului, cheia al carui contor este
(mult) peste 50% din numarul perechilor vericate, va cont ine valorile bit ilor determinate
de relat ia data.
Sa formalizam aceasta idee.
Fie X
1
, X
2
, . . . variabile aleatoare independente care iau valori din mult imea {0, 1} si
p
1
, p
2
, . . . [0, 1] numere reale denite prin
Pr[X
i
= 0] = p
i
, i = 1, 2, . . .
12 PRELEGEREA 6. MODALIT

AT I DE ATAC ASUPRA DES


Evident,
Pr[X
i
= 1] = 1 p
i
, i = 1, 2 . . .
Daca i = j, independent a variabilelor X
i
, X
j
conduce la relat iile
Pr[X
i
= 0, X
j
= 0] = p
i
p
j
, Pr[X
i
= 0, X
j
= 1] = p
i
(1 p
j
),
Pr[X
i
= 1, X
j
= 0] = (1 p
i
)p
j
, Pr[X
i
= 1, X
j
= 1] = (1 p
i
)(1 p
j
).
Fie acum variabila aleatoare discreta X
i
X
j
; se verica usor faptul ca probabilitatea ei
de distribut ie este
Pr[X
i
X
j
= 0] = p
i
p
j
+ (1 p
i
)(1 p
j
)
Pr[X
i
X
j
= 1] = p
i
(1 p
j
) + (1 p
i
)p
j
Pentru a simetriza formulele, introducem o noua variabila numita tendint a
1
denita

i
= p
i

1
2
,
i

_

1
2
,
1
2
_
Atunci
Pr[X
i
= 0] =
1
2
+
i
, Pr[X
i
= 1] =
1
2

i
Lema 6.2 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
.
Demonstrat ie: Prin induct ie dupa k. Pentru k = 1 egalitatea este banala. Pentru k = 2
se verica usor relat ia
i
1
,i
2
= 2
i
1

i
2
.
Presupunem egalitatea adevarata pentru k = p si sa o aratam pentru k = p + 1. Din
faptul ca tendint a lui X
i
1
. . . X
i
p
este 2
p1
p

j=1

i
j
rezulta
Pr[X
i
1
. . . X
i
p
= 0] =
1
2
+ 2
p1
p

j=1

i
j
si
Pr[X
i
1
. . . X
i
p
= 1] =
1
2
2
p1
p

j=1

i
j
De aici putem calcula
Pr[X
i
1
. . . X
i
p
X
i
p+1
= 0] =
_
_
1
2
+ 2
p1
p

j=1

i
j
_
_
_
1
2
+
i
p+1
_
+
_
_
1
2
2
p1
p

j=1

i
j
_
_
_
1
2

i
p+1
_
=
1
2
+ 2
p
p+1

j=1

i
j
.
Corolarul 6.1 Fie
i
1
,i
2
,...,i
k
tendint a variabilei aleatoare X
i
1
. . . X
i
k
. Daca j cu
i
j
= 0
atunci
i
1
,i
2
,...,i
k
= 0.
1
bias n engleza
6.4. CRIPTANALIZA LINIAR

A 13
6.4.1 Aproximari liniare ale S-cutiilor
Fie S-cutia
S
: {0, 1}
m
{0, 1}
n
si X = (x
1
, x
2
, . . . , x
m
) un m-tuplu de intrare,
ales arbitrar: matematic, aceasta nseamna ca ecare coordonata x
i
deneste o variabila
aleatoare X
i
cu valori 0 sau 1, avand tendint a
i
= 0. Cele m variabile aleatoare sunt
independente.
Iesirea se poate reprezenta ca un n-tuplu Y = (y
1
, y
2
, . . . , y
n
) unde ecare y
i
deneste
o variabila aleatoare Y
i
de valori 0, 1.

In general, aceste n variabile aleatoare sunt depen-
dente de intrari sau ntre ele. Are loc formula
Pr[X
1
= x
1
, . . . , X
m
= x
m
, Y
1
= y
1
, . . . , Y
n
= y
n
] =
_
0 daca (y
1
, . . . , y
n
) =
S
(x
1
, . . . , x
m
)
2
m
daca (y
1
, . . . , y
n
) =
S
(x
1
, . . . , x
m
)
Observat ia 6.3 Ultima parte a relat iei se bazeaza pe faptul ca
Pr[X
1
= x
1
, . . . , X
m
= x
m
] = 2
m
si
Pr[Y
1
= y
1
, . . . , Y
n
= y
n
|X
1
= x
1
, . . . , X
m
= x
m
] = 1 daca (y
1
, . . . , y
n
) =
S
(x
1
, . . . , x
m
)
Cu aceasta formula se poate calcula tendint a unei variabile aleatoare de tipul
X
i
1
. . . X
i
k
Y
j
1
. . . Y
j
p
.
Exemplul 6.6 Sa consideram o S-cutie
S
: {0, 1}
4
{0, 1}
4
denita
x 0 1 2 3 4 5 6 7 8 9 A B C D E F

S
(x) E 4 D 1 2 F B 8 3 A 6 C 5 9 0 7
unde toate valorile au fost exprimate n hexazecimal. Sunt deci opt variabile aleatoare
X
1
, . . . , X
4
, Y
1
, . . . , Y
4
care pot lua valorile reprezentate pe liniile tabelului de pe pagina
urmatoare.
Sa consideram acum variabila aleatoare X
1
X
4
Y
2
. Probabilitatea ca ea sa ia
valoarea 0 poate determinata numarand liniile din tabel unde X
1
X
4
Y
2
= 0 si apoi
mpart ind la 16 (numarul total de linii).
Se obt ine Pr[X
1
X
4
Y
2
= 0] =
1
2
, de unde rezulta Pr[X
1
X
4
Y
2
= 1] =
1
2
.
Tendint a acestei variabile aleatoare este deci 0.
14 PRELEGEREA 6. MODALIT

AT I DE ATAC ASUPRA DES


X
1
X
2
X
3
X
4
Y
1
Y
2
Y
3
Y
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

In general n Exemplul 6.6 sunt 2


8
= 256 variabile aleatoare de acest gen. Pentru
ecare din ele se poate da o reprezentare uniforma de tipul:
_
4

i=1
a
i
X
i
_

_
4

i=1
b
i
Y
i
_
unde a
i
, b
i
{0, 1}, (1 i 4). Vectorii binari (a
1
, a
2
, a
3
, a
4
) numit i sume de intrare si
(b
1
, b
2
, b
3
, b
4
) (sume de iesire) vor codicat i prin cifre hexazecimale. Astfel, ecare din
cele 256 variabile aleatoare se va scrie n mod unic ca o pereche de doua cifre hexazecimale.
Exemplul 6.7 Variabila X
1
X
4
Y
2
va avea suma de intrare (1, 0, 1, 0) care este 9 n
hexazecimal, iar suma de iesire este (0, 1, 0, 0), care este 4 n hexazecimal. Deci perechea
atasata variabilei este (9, 4).
Pentru o variabila aleatoare de suma de intrare a = (a
1
, a
2
, a
3
, a
4
) si suma de iesire
b = (b
1
, b
2
, b
3
, b
4
), e N
L
(a, b) numarul octet ilor binari (x
1
, x
2
, x
3
, x
4
, y
1
, y
2
, y
3
, y
4
) cu pro-
prietat ile
1. (y
1
, y
2
, y
3
, y
4
) =
S
(x
1
, x
2
, x
3
, x
4
)
2.
_
4

i=1
a
i
X
i
_

_
4

i=1
b
i
Y
i
_
= 0
Tendint a unei astfel de variabile aleatoare este
(a, b) =
N
L
(a, b) 8
16
.
6.5. EXERCIT II 15
Exemplul 6.8 Variabila din Exemplul 6.7 are N
L
(9, 4) = 8, deci (9, 4) = 0. Se poate
cosntrui o tabela cu toate valorile N
L
numita tabela de aproximare liniara:
a/b 0 1 2 3 4 5 6 7 8 9 A B C D E F
0 16 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
1 8 8 6 6 8 8 6 14 10 10 8 8 10 10 8 8
2 8 8 6 6 8 8 6 6 8 8 10 10 8 8 2 10
3 8 8 8 8 8 8 8 8 10 2 6 6 10 10 6 6
4 8 10 8 6 6 4 6 8 8 6 8 10 10 4 10 8
5 8 6 6 8 6 8 12 10 6 8 4 10 8 6 6 8
6 8 10 6 12 10 8 8 10 8 6 10 12 6 8 8 6
7 8 6 8 10 10 4 10 8 6 8 10 8 12 10 8 10
8 8 8 8 8 8 8 8 8 6 10 10 6 10 6 6 2
9 8 8 6 6 8 8 6 6 4 8 6 10 8 12 10 6
A 8 12 6 10 4 8 10 6 10 10 8 8 10 10 8 8
B 8 12 8 4 12 8 12 8 8 8 8 8 8 8 8 8
C 8 6 12 6 6 8 10 8 10 8 10 12 9 10 8 6
D 8 10 10 8 6 12 8 10 4 6 10 8 10 8 8 10
E 8 10 10 8 6 4 8 10 6 8 8 6 4 10 6 8
F 8 6 4 6 6 8 10 8 8 6 12 6 6 8 10 8
Pe baza unei astfel de tabele se construieste strategia de criptanaliza liniara prezentata
la nceputul sect iunii.
6.5 Exercit ii
6.1 Fie X
1
, X
2
, X
3
variabile aleatoare independente cu valori n {0, 1} de tendint e
1
,
2
respectiv
3
. Demonstrat i ca X
1
X
2
si X
2
X
3
sunt indepedente daca si numai daca

1
= 0,
3
= 0 sau
2
= 1/2.
6.2 Pentru ecare din cele opt S-cutii DES calculat i tendint a variabilei aleatoare X
2

Y
1
Y
2
Y
3
Y
4
.
6.3 S-boxul DES S
4
are cateva proprietat i specice:
a) Aratat i ca a doua linie din S
4
poate obt inuta din prima linie folosind operat ia
(y
1
, y
2
, y
3
, y
4
) (y
2
, y
1
, y
4
, y
3
) (0, 1, 1, 0)
b) Aratat i ca orice linie din S
4
poate transformata n orice alta linie printr-o operat ie
similara.
16 PRELEGEREA 6. MODALIT

AT I DE ATAC ASUPRA DES


6.4 Fie
S
: {0, 1}
m
{0, 1}
n
o S-cutie. Demonstrat i ca:
a) N
L
(0, 0) = 2
m
;
b) N
L
(a, 0) = 2
m
1, a [0, 2
m
1];
c) b [0, 2
n
1],
2
m
1

a=0
N
L
(a, b) = 2
2m1
2
m1
; ???????????
d)
2
m
1

a=0
2
n
1

b=0
N
L
(a, b) {2
n+2m1
, 2
n+2m1
+ 2
n+m1
}.
6.5 O S-cutie
S
: {0, 1}
m
{0, 1}
n
este balansata daca
|
s
1(y)| = 2
nm
pentru orice y {0, 1}
n
. Demonstrat i urmatoarele armat ii despre N
L
pentru o S-cutie
balansata:
a) N
L
(0, b) = 2
m
1, b [0, 2
n
1];
b) a [0, 2
m
1],
2
n
1

b=0
N
L
(a, b) = 2
m+n1
2
n1
+ i2
n
unde i este un numar ntreg din intervalul [0, 2
mn
].
6.6 Fie S-cutia denita:
x 0 1 2 3 4 5 6 7 8 9 A B C D E F

S
(x) 8 4 2 1 C 6 3 D A 5 E 7 F B 9 0
Determinat i tabela ei de aproximat ie liniara;
6.7 Fie un sistem de criptare P = C = K care asigura condent ialitate perfecta; deci,
din e
K
() = e
K
1
() rezulta K = K
1
. Notam P= Y = {
1
,
2
, . . . ,
N
}. Fie un bloc de
text clar xat. Denim funct ia g : Y Y prin g() = e

(). Denim un graf orientat


avand a noduri Y si ca arce (
i
, g(
i
)) (1 i N).
1. Aratat i ca este o reuniune de cicluri orientate disjuncte.
2. Fie T un parametru de timp xat. Consideram o mult ime Z = {
1
, . . . ,
m
} Y ,
astfel ca pentru orice
i
Y,
i
este ntr-un ciclu de lungime cel mult T, sau
exist a un element
j
=
i
astfel ca distant a de la
i
la
j
(n ) este cel mult T.
Demonstrat i ca exista o astfel de mult ime cu card(Z) 2N/T (deci card(Z) este
de complexitate O(N/T).
3. Pentru ecare j Z, denim g
1
(
j
) ca ind acel element
i
astfel ca g
T
(
i) =
j
, unde g
T
este funct ia g aplicata de T ori. Cosntruit i tabela X a perechilor
(
j
, g
1
(
j
)), ordonate dupa prima coordonata.
Un algoritm care gaseste K astfel ca = e
K
() este urmatorul:
6.5. EXERCIT II 17
1.
0
;
2. flag True;
3. while g() =
0
do
3.1. if j =
j
and flag then
3.1.1. g
1
(
j
)
3.1.2. flag False
else
3.1.3. g();
3.2. K = .
Aratat i ca el determina K n maxim T etape (compromisul spat iu - timp este deci
O(N)).
4. Dat i un algoritm care construieste o mult ime Z n timp O(NT), fara a folosi tablouri
de marine N.
18 PRELEGEREA 6. MODALIT

AT I DE ATAC ASUPRA DES


Bibliograe
[1] Menezes, A, Oorschot, P, Vanstome, S - Handbook of Applied cryptography
[2] Stinton, D - Cryptography, Theory and Practicce, Chapman & Hall/CRC, 2002
19
Prelegerea 7
Sistemul de criptare AES
7.1 Istoric
La sfarsitul anilor

90 se decide nlocuirea sistemului de criptare DES. Motivele sunt
multiple, dar ment ionam numai doua:


In iulie 1998 sistemul DES pe 56 bit i este spart de catre organizat ia Electronic
Frontier 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, administrat ia americana acorda companiilor pro-
ducatoare de soft de securitate permisiunea de a exporta implementari ale algorit-
mului DES bazate pe chei de criptare de 56 bit i.

In legatura cu aceste evenimente, pe 20 august 1998 NIST (National Institute of Stan-


dards and Technology) anunt a (n cadrul unei conferint e speciale) un set de 15 algoritmi
candidat i sa nlocuiasca DES
1
. Este ales si numele noului sistem de criptare: AES
(Advanced Encryption Standard). Cei 15 algoritmi au fost trimisi de membri din co-
munitatea criptograca mondiala. Criteriile stabilite de NIST pentru noul sistem au
fost:
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 Pentium Pro cat si pe alte platforme software
sau hardware;
1
Acestia sunt (n ordine alfabetica) CAST 256, CRY PTON, DEAL, DFC, E2, FROG, HPC,
LOKI97, MAGENTA, MARS, RC6, Rijndael, SAFER+, Serpent, Twofish.
1
2 PRELEGEREA 7. SISTEMUL DE CRIPTARE AES
Sa poate implementat atat pe procesoare de 32 bit i cat si pe smart- carduri
(procesoare de 8 bit i);
Sa e cat mai simplu.
Sa e mai rapid decat DES si sa ofere o securitate mai mare decat 3DES.
A doua conferint a AES are loc n martie 1999; dupa analiza rezultatelor algoritmilor
propusi, NIST selecteaza 5 algoritmi: Mars, RC6, Rijndael, Serpent si Twofish. Acestia
sunt supusi testelor si discut iilor publice, folosind drept criterii de evaluare au fost: secu-
ritate, cost, implementare.

In mai 2000 NIST anunt a drept sistem castigator sistemul de criptare Rijndael,
care devine ocial AES.
7.2 Scurta prezentare a sistemelor de criptare nale
7.2.1 Mars
Sistemul MARS este propus de rma IBM, autorii sai ind un grup condus de Don
Coppersmith. Cateva detalii de construct ie:
Algoritmul este format din trei componente, ecare din ele asigurand protect ie pen-
tru anumite tipuri de atac.
Lucreaza pe procesoare de 32 bit i, putand implementat atat n format big-endian,
cat si n little endian
2
.
La intrare textul clar este spart n grupuri de 128 bit i (4 numere ntregi de cate 32
bit i). Prima si a treia parte a algoritmului amesteca acesti bit i folosind o cheie de
dimensiune variabila (ntre 128 si 448 bit i) si o S-cutie de 512 elemente. Componenta
din mijloc este formata din 16 runde si foloseste n plus o o funct ie de expandare E.
Operat iile folosite sunt: adunari, scaderi, XOR, rotat ii (xe sau dependente de date)
si nmult iri; toate calculele se fac modulo 32. Construct ia S-cutiei s-a facut pe baza
unui algoritm public, plecand de la o serie de condit ii init iale clare.
Notat iile folosite n algoritm:
2
Fie a
1
a
2
a
3
a
4
un cuvant pe 4 octet i, unde a
i
este un numar ntreg din intervalul [0, 255].
1.

In arhitectura big-endian (o stat ie SPARK de exemplu), un cuvant reprezinta ntregul a
1
2
24
+
a
2
2
16
+a
3
2
8
+a
4
.
2.

In arhitctura little-endian (cum este familia Intel 80xxx) un cuvant reprezinta ntregul a
4
2
24
+
a
3
2
16
+a
2
2
8
+a
1
.
7.2. SCURT

A PREZENTARE A SISTEMELOR DE CRIPTARE FINALE 3


D[0], D[1], D[2], D[3] cuvinte (de 32 bit i), init ializate cu textul clar; n nal aici
va blocul de text criptat; se noteaza D[i : j] octetul j din D[i] (j = 0, 1, 2, 3).
K[] cheia expandata; secvent a de 40 cuvinte;
S[] S - cutia de 512 cuvinte; S0[] va cont ine primele 256 elemente, iar S1[]
ultimele 256 cuvinte.
Faza I (Mixare preliminara):
1. for i 0 to 3 do D[i] D[i] +K[i];
2. for i 0 to 7 do
2.1. D[1] D[1] S0[D[0, 0]];
2.2. D[1] D[1] +S1[D[0, 1]];
2.3. D[2] D[2] +S0[D[0, 2]];
2.4. D[3] D[3] S1[D[0, 3]];
2.5. D[0] D[0] >>> 24;
2.6. if i {0, 4} then D[0] D[0] +D[3];
2.6. if i {1, 5} then D[0] D[0] +D[1];
2.7. (D[0], D[1], D[2], D[3]) (D[3], D[0], D[1], D[2]).
Faza II (Transformari bazate pe cheie):
1. for i 0 to 15 do
1.1. (o1, o2, o3) E(D[0], K[2i + 4], K[2i + 5]);
1.2. D[0] <<< 13;
1.3. D[2] D[2] +o2;
1.4. if i < 8 then
1.4.1. D[1] D[1] +o1;
1.4.2. D[3] D[3] o3;
else
1.4.3. D[3] D[3] +o1;
1.4.4. D[1] D[1] o3;
1..5. (D[0], D[1], D[2], D[3]) (D[3], D[0], D[1], D[2]).
Faza III (Mixare nala):
1. for i 0 to 7 do
1.1. if i {2, 6} then D[0] D[0] D[3];
1.2. if i {3, 7} then D[0] D[0] D[1];
1.3. D[1] D[1] S1[D[0, 0]];
1.4. D[2] D[2] S0[D[0, 3]];
1.5. D[3] D[3] S1[D[0, 2]];
1.6. D[3] D[3] S0[D[0, 1]];
2.5. D[0] D[0] <<< 24;
2.7. (D[0], D[1], D[2], D[3]) (D[3], D[0], D[1], D[2]).
4 PRELEGEREA 7. SISTEMUL DE CRIPTARE AES
2. for i 0 to 3 do D[i] D[i] K[36 +i];
3. Output(D[0], D[1], D[2], D[3]).
Mai trebuie precizate funct ia E si modalitatea de expandare a cheii K.
E(inp, cheie1, cheie2);
1. M inp +cheie1; (M este variabila auxiliara)
2. R (inp <<< 13) cheie2; (R este variabila auxiliara)
3. i cei mai mici noua bit i din M;
4. L S[i]; (L este variabila auxiliara)
5. R (R <<< 5);
6. r cei mai mici cinci bit i din R;
7. M (M <<< r);
8. L L R;
9. R (R <<< 5);
10. L L R;
11. r cei mai mici cinci bit i din R;
12. L (L <<< r);
13. output(L, M, R).
Expandarea cheii:
Aceast a procedura expandeaza o cheie k[0, . . . , n1] de n cuvinte (4 n 14) ntr-o
cheie K de 40 cuvinte, folosind un vector temporar T de 15 cuvinte si un vector xat Z
de 4 cuvinte.
1. Z 0xA4A8D57B 0x5B5D193B 0xC8A8309B 0x73F9A978;
2. T[0, . . . , n 1] k[0, . . . , n 1], T[n] n, T[n + 1, . . . , 14] 0;
3. for j 0 to 3 do
3.1. for i 0 to 14 do
T[i] T[i] ((T[(i 7) mod 15] T[(i 2) mod 15] <<< 3) (4 i +j);
3.2. for m 1 to 4 to
for i 0 to 14 to
T[i] (T[i] +S[cei mai mici noua bit i dinT[(i 10) mod 15]]) <<< 9;
3.3. for i 0 to 9 do K[10 j +i] T[4 i mod 15];
4. for i 5, 7, . . . , 33, 35 do
4.1. j cei mai din dreapta doi bit i din K[i];
4.2. w K[i] cu cei mai din dreapta doi bit i setat i pe 1;
4.3. for p 2 to 30 to
if (w[p 1] = w[p] = w[p + 1]) (w[p] e ntr-o secvent a de 10 bit i consecutivi egali)
then M[p] 1;
4.4. r cei mai din dreapta cinci bit i din K[i 1];
4.5. X (Z[j] <<< r);
7.2. SCURT

A PREZENTARE A SISTEMELOR DE CRIPTARE FINALE 5


4.6. K[i] w (X M).
5. output(K[]).
Cele 512 cuvinte ale S-cutiei au fost generate n asa fel ncat sa verice condit iile:
- Nu are valorile 0x00000000 si 0xFFFFFFFF;
- Orice doua valori difera prin cel put in 4 bit i;
- Nu exista doua valori a, b astfel ca a = b sau a = b;
- Diferent ele de scadere sau XOR ntre orice doua valori sunt maxime.
Pentru alte detalii privind securitatea sistemului MARS, algoritmul de decriptare,
moduri de implementare, componentele S-cutiei etc, a se vedea [3].
7.2.2 RC6
Sistemul de criptare RC6 este o versiune a lui RC5, elaborata de laboratoarele RSA
(sub coordonarea lui Ron Rivest) cu scopul de a ndeplini criteriile AES. Este un sistem
simplu, fara atacuri practice cunoscute (sunt elaborate doar cateva atacuri teoretice),
complet parametrizat: versiunea generala este RC6w/r/b unde marimea cuvintelor este
w, numarul de runde este r, iar b este marimea (n octet i) a cheii de criptare. Versiunea
pentru AES are w = 32, r = 20. Algoritmul lucreaza pe blocuri de lungime w folosind
sase operat ii: +, , (toate modulo 2
w
), , a <<< b (rotirea lui a spre stanga cu un
numar de poziti dat cei mai put in semnicativi log
2
w bit i din b) si a >>> b (operat ie
similara spre dreapta).
Algoritmul de criptare
Intrare:
- Textul clar stocat n cuvintele A, B, C, D;
- Numarul r de runde;
- Cheia [0, . . . 2r + 3];
Iesire: Textul criptat stocat n A, B, C, D.
Algoritm:
1. B B +S[0];
2. D D +S[1];
3. for i 1 to r do
3.1. t (B (2B + 1)) <<< log
2
w;
3.2. u (D (2D + 1)) <<< log
2
w;
3.3 A ((A t) <<< u) +S[2i];
3.3 C ((C u) <<< t) +S[2i + 1];
3.4. (A, B, C, D) (B, C, D, A);
4. A A +S[2r + 2];
5. C C +S[2r + 3].
Detalii privind securitatea si modalitat i de implementare pot gasite n [4].
Algoritmul de diversicare a cheii S este identic cu cel de la RC5.

In [5] acesta este
prezentat mpreuna cu un cod pentru RC5, scris n C + +.
6 PRELEGEREA 7. SISTEMUL DE CRIPTARE AES
Cheia init iala are b octet i (0 b 255) si este stocata ntr-un tablou L cu c = b/4
cuvinte (completand ultimul cuvant cu 0 daca este necesar).

In prima faza tabloul S este init ializat folosind un generator liniar congruent ial:
1. S[0] P;
2. for i 1 to 2(r + 1) 1 do S[i] (S[i 1] +Q) mod 2
32
P = 0xB7E15163 si Q = 0x9E3779B9 sunt constante bazate pe reprezentarea binara
a lui e si .

In etapa a doua se efectueaza un amestec ntre L si S:


3. i 0, j 0;
4. A 0, B 0;
5. for s 1 to 3 max{c, 2(r + 1)} do
5.1. S[i] (S[i] +A +B) <<< 3, A S[i];
5.2. L[i] (L[i] +A +B) <<< (A +B), B L[i];
5.3. i (i + 1) (mod 2(r + 1));
5.4. j (j + 1) mod c
7.2.3 Serpent
Sistemul de criptare Serpent a fost propus de Ross Anderson (Universitatea Cambridge),
Eli Biham (Institutul Tehnion, Haifa) si Lars Knudsen (Universitea Bergen). El cripteaza
texte clare de 128 bit i n blocuri de aceeasi lungime, n 32 runde, folosind 33 chei de
criptare de runda, de lungime 128 bit i
3
. Ea se extinde la 256 bit i punand n fat a 1 pentru
primul bit, apoi 0 pentru ceilalt i bit i atat cat este necesar.
Algoritmul de criptare cuprinde 3 pasi:
Intrare: P (textul clar)
Iesire: C (Textul criptat)
Algoritm:
1.

B
0
= IP(P): (IP - permutare init iala);
2. for i 0 to 31 do

B
i+1
R
i
(

B
i
);
where R
i
(X) = L(

S
i
(X
i


K
i
)), 0 i 30,
R
31
(X) =

S
7
(X
31


K
31
) K
32
.
Se aplica 32 runde formate din: combinarea cu cheia de runda K
i
, o trecere printr-
o S-cutie si o transformare liniara L; n ultima runda, transformarea liniara este
nlocuita cu nca o combinare cu o a doua cheie de runda;

S reprezinta aplicarea n
paralel a 32 copii ale S-cutiei S
i mod 8
.
3. C FP(

B
32
) (FP- permutare nala).
3
Lungimea cheii date de utilizator este variabila, nsa algoritmul descris foloseste chei de lungime
128, 192 sau 256 bit i.
7.2. SCURT

A PREZENTARE A SISTEMELOR DE CRIPTARE FINALE 7


Observat ia 7.1 S-cutiile lucreaza pe 4 bit i, ca si la DES
4
. Fiecare runda foloseste o
singura S-cutie n 32 copii. De exemplu, runda R
0
foloseste cutia S
0
n 32 exemplare; o
copie pentru bit ii 03 din B
0
K
0
ntorcand primii patru bit i dintr-un tablou intermediar,
a doua copie pentru bit ii 4 7 din B
0
K
0
ntoarce bit ii 4 7 din vectorul intermediar
s.a.m.d. Apoi vectorul intermediar obt inut trece prin transformarea liniara, producand
B
1
. Analog, R
1
foloseste 32 S- cutii identice S
1
pentru bit ii din B
1
K
1
produand un
vector intermediar care dupa trecerea prin L da B
2
etc.
Detalii asupra IP, FP, cont inutul si modul de generare a S-cutiilor, precum si o crip-
tanaliza amanunt ita pot gasite n [2], [7]. De remarcat ca la ecare etapa IP(B
i
) =

B
i
, IP(K
i
) =

K
i
.
Transformarea liniara L:
Blocul de 128 bit i dintr-o runda este spart n patru cuvinte (X
0
, X
1
, X
2
, X
3
) = S
i
(B
i
K
i
).
Se aplica apoi urmatorii pasi:
1. X
0
(X
0
<<< 13); 2. X
2
(X
2
<<< 13);
3. X
1
X
1
X
0
X
2
; 4. X
3
X
3
X
2
(X
0
<< 3);
5. X
1
(X
1
<<< 1); 6. X
3
(X
3
<<< 7)
7. X
0
X
0
X
1
X
3
; 8. X
2
X
2
X
3
(X
1
<< 7);
9. X
0
(X
0
<<< 5); 10. B
i+1
(X
0
, X
1
, X
2
, X
3
).
unde <<< nseamna rotire spre stanga, iar << este deplasare spre stanga.

In ultima
runda, L este nlocuita cu B
32
S
7
(B
31
K
31
) K
32
.
Generarea cheilor de runda:
Fiecare runda necesita 132 fragmente de cate 32 bit i.

In prima faza se completeaza cheia
furnizata de utilizator pana la 256 bit i. Apoi ea se extinde pana la 33 subchei de cate 128
bit i K
0
, K
1
, . . . , K
32
n modul urmator:
Cheia K se descompune n opt cuvinte w
8
, . . . , w
1
care se extind la o cheie interme-
diara w
0
, . . . , w
131
prin formula
w
i
(w
i8
w
i5
w
i3
w
i1
i) <<< 11
unde este partea fract ionara a raportului de aur (0x9E3779B9).
Cheile de runda sunt calculate din cheia intermediara folosind S-cutiile:
(k
0
, k
1
, k
2
, k
3
) S
3
(w
0
, w
1
, w
2
, w
3
)
(k
4
, k
5
, k
6
, k
7
) S
2
(w
4
, w
5
, w
6
, w
7
)
(k
8
, k
9
, k
10
, k
11
) S
1
(w
8
, w
9
, w
10
, w
11
)
4
O varianta init iala, Serpent0 folosea aceleasi S-cutii ca DES.
8 PRELEGEREA 7. SISTEMUL DE CRIPTARE AES
(k
12
, k
13
, k
14
, k
15
) S
0
(w
12
, w
13
, w
14
, w
15
)
(k
16
, k
17
, k
18
, k
19
) S
7
(w
16
, w
17
, w
18
, w
19
)
. . . . . .
(k
124
, k
125
, k
126
, k
127
) S
4
(w
124
, w
125
, w
126
, w
127
)
(k
128
, k
129
, k
130
, k
131
) S
3
(w
128
, w
129
, w
130
, w
131
)
Cheile de runda se regrupeaza n
K
i
(k
4i
, k
4i+1
, k
4i+2
, k
4i+3
)
7.2.4 Twosh
Sistemul Twosh este propus de un colectiv condus de Bruce Schneier, ind unul din
put inele sisteme free (implementarea este disponibila la adresa [6]). Algoritmul cripteaza
blocuri de 128 bit i, folosind o cheie de lungime variabila.
Algoritmul de criptare
Intrare: P = p
0
p
1
. . . p
15
un bloc de text clar de 128 bit i (p
i
- octet i)
Iesire: C - bloc text criptat, de 128 bit i.
Algoritm:
1. P se sparge n patru cuvinte P
0
, P
1
, P
2
, P
3
dupa sistemul little-endian:
P
i

3

j=0
p
4i+j
2
8j
, (0 j 3)
2. R
0,i
P
i
K
i
, (0 i 3)
5
3. for r 0 to 15 do
3.1. (F
r,0
, F
r,1
) F(R
r,0
, R
r,1
, r);
3.2. R
r+1,0
(R
r,2
F
r,0
) >>> 1;
3.3. R
r+1,1
(R
r,3
<<< 1) F
r,1
;
3.4. R
r+1,2
R
r,0
3.5. R
r+1,3
R
r,1
4. C
i
R
16,(i+2) mod 4
K
i+4
, (0 i 3)
5. c
i

i
4

2
8(i mod 4)

mod 2
8
, (0 i 15)
(cele patru cuvinte din textul criptat sunt scrise ca o secvent a de opt octet i n sistemul
little-endian).
5
Operat ia este numita whitening si a fost introdusa n mod independent de Merkle pentru
Khufu/Khafre, respectiv Rivest pentru DES X.
7.2. SCURT

A PREZENTARE A SISTEMELOR DE CRIPTARE FINALE 9


Funct ia F
F(R
0
, R
1
, r) este o funct ie ternara care ntoarce doua valori (F
0
, F
1
). Varianta propusa
este bazat a la rdul ei pe o alta funct ie g.
1. T
0
g(R
0
) 2. T
1
g(R
1
<<< 8)
3. F
0
(T
0
+T
1
+K
2r+8
) mod 2
32
4. F
1
(T
0
+ 2 T
1
+K
2r+9
) mod 2
32
Funct ia unara g constituie esent a sistemului de criptare Twosh:
1. x
i
X/2
8i
mod 2
8
(0 i 3)
Cuvantul de intrare X este spart n patru octet i.
2. y
i
s
i
[x
i
], (0 i 3)
Octet ii sunt trecut i prin patru S-cutii, dependente de cheie.
3.

z
0
z
1
z
2
z
3

01 EF 5B 5B
5B EF EF 01
EF 5B 01 EF
EF 01 EF 5B

y
0
y
1
y
2
y
3

4. Z
3

i=0
z
i
2
8i
. (Z este valoarea rezultata).
Observat ia 7.2 La pasul 3 se face o corespondent a ntre octet i si elementele corpului
GF(2
8
). Deoarece GF(2
8
) GF(2)[X]/v(X) unde v(X) = X
8
+X
6
+X
5
+X
3
+ 1 este
un polinom primitiv peste Z
2
. Elementul a =
7

i=0
a
i
X
i
GF(2
8
) se identica cu octetul
7

i=0
a
i
2
i
. Elementele matricii 4 4 au fost scrise ca valori hexazecimale ale octet ilor,
folosind aceasta corespondent a.
Diversicarea cheii
Sistemul Twosh este denit pentru chei de lungime N unde standardul este N = 128, 192
sau 256. Se pot folosi nsa chei de orice lungime mai mica de 256; daca se da o astfel de
cheie, ea este extinsa prin completare cu 0 la cea mai apropiata lungime standard. Din
cheia M a utilizatorului, prin diversicare se obt in 40 cuvinte K
0
, K
1
, . . . , K
39
si patru
S-cutii folosite la funct ia g.
Fie k N/64. Cheia M consta din 8k octet i m
0
, m
1
, . . . , m
8k1
. Se calculeaza
vectorii M
e
, M
o
, S astfel:
1. M
i

3

j=0
m
4i+j
2
8j
, (0 j 2k 1)
2. M
e
(M
0
, M
2
, . . . , M
2k2
), M
o
= (M
1
, M
3
, . . . , M
2k1
);
3. S = (S
k1
, S
k2
, . . . , S
0
) unde S
i

3

j=0
s
i,j
2
8j
, (0 i k 1)
10 PRELEGEREA 7. SISTEMUL DE CRIPTARE AES
Octet ii s
i,j
se obt in printr-o codicare cu un cod Reed-Solomon, pe baza formulei

s
i,0
s
i,1
s
i,2
s
i,3

01 A4 55 87 5A 58 DB 9E
A4 56 82 F3 1E C6 68 E5
02 A1 FC C1 47 AE 3D 19
A4 55 87 5A 58 DB 9E 03

m
8i
m
8i+1
m
8i+2
m
8i+3
m
8i+4
m
8i+5
m
8i+6
m
8i+7

Pentru generarea S-cutiilor si a cuvintelor cheii expandate se foloseste funct ia h,


denita astfel:
Drept argumente sunt X (cuvant) si L = (L
0
, L
1
, . . . , L
k1
) o lista de k cuvinte.
Rezultatul va un cuvant Z.
1. l
i,j
L
i
/2
8j
mod 2
8
, (0 i k 1)
x
j
X/2
8j
mod 2
8
, (0 j 3) (cuvintele sunt sparte n octet i)
2. y
k,j
x
j
, (0 j 3)
3. if k = 4 then
y
3,0
q
1
[y
4,0
] l
3,0
, y
3,1
q
1
[y
4,1
] l
3,1
, y
3,2
q
1
[y
4,2
] l
3,2
, y
3,3
q
1
[y
4,3
] l
3,3
4. if k 3 then
y
2,0
q
1
[y
3,0
] l
2,0
, y
2,1
q
1
[y
3,1
] l
2,1
, y
2,2
q
1
[y
3,2
] l
2,2
, y
2,3
q
1
[y
3,3
] l
2,3
5.
y
0
q
1
[q
0
[q
0
[y
2,0
] l
1,0
] l
0,0
, y
1
q
0
[q
0
[q
1
[y
2,1
] l
1,1
] l
0,1
,
y
2
q
1
[q
1
[q
0
[y
2,2
] l
1,2
] l
0,2
, y
3
q
0
[q
1
[q
1
[y
2,3
] l
1,3
] l
0,3
unde q
0
si q
1
sunt permutari pe 8 bit i, denite detaliat n [6].
6. Z se obt ine aplicand pasii 3 si 4 din denit ia funct iei g.

In acest moment putem deni:


S-cutiile din funct ia g sub forma
g(X) = h(X, S)
Pentru i = 0, 1, 2, 3, S-cutia s
i
dependenta de cheie se formeaza prin aplicarea lui h
de la x
i
la y
i
, n care lista L este vectorul S derivat din cheie.
Cuvintele cheii expandate:
Fie 2
24
+ 2
16
+ 2
8
+ 2
0
, A
i
h(2i , M
e
), B
i
(h((2i + 1)
, M
o
) <<< 8
Atunci
K
2i
(A +i +B
i
) mod 2
32
, K
2i+1
((A
i
+ 2B
i
) mod 2
32
) <<< 9
7.3. DETALII ALE SISTEMULUI DE CRIPTARE AES 11
7.3 Detalii ale sistemului de criptare AES
Din 2000, sistemul de criptare Rijndael creat de olandezii Joan Daemen si Vincent Rijman
devine ocial sistemul AES.
6
Similar sistemulelor anterioare (inclusiv DES), si acest
sistem 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.
Denit ia 7.1 Un rezultat intermediar al sistemului de criptare se numeste stare.
Vom reprezenta starea unui bloc sub forma unui tablou cu 4 linii si N
b
coloane, ale carui
elemente sunt octet i; deci valoarea lui N
b
se determina usor: N
b
= N/32, unde N este
lungimea blocului text care se cripteaza.
Similar, o cheie de criptare se va reprezenta printr-un tablou 4N
k
, unde N
k
= K/32
(K ind lungimea cheii).
Exemplul 7.1 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
Uneori, aceste blocuri se reprezinta ca un vector n care ecare element este coloana unei
stari (deci, avand o lungime de 4 octet i).

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 cu a, b, c si respectiv d; astfel, octetul 0 este a, octetul 1
este b s.a.m.d.
Intrarea si iesirea din sistemul AES sunt denite sub forma unor vectori avand drept
componente octet i, numerotate de la 0 la 4N
b
1. Un vector de intrare/iesire are deci
16, 24 sau respectiv 32 componente, numerotate 0 . . . 15, 0 . . . 23 sau 0 . . . 31.
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 intrarean sistem (textul clar, daca se foloseste modul de criptare
ECB) completeaza pe coloane un tablou ca n exemplu, 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.
Relat iile dintre indexul n al unui element (octet) din reprezentarea liniara si coordo-
natele (i, j) ale aceluiasi octet din reprezentarea matriciala sunt
i = n (mod 4); j = n/4; n = i + 4 j.
6
Rijndael a castigat obt inand 86 voturi, contra Serpent cu 59, Twosh 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.
12 PRELEGEREA 7. SISTEMUL DE CRIPTARE AES

In plus, i este indicele octetului n cadrul unui cuvant care cont ine acel octet, iar j
este indicele cuvantului n cadrul blocului care l cont ine.
Criptarea se realizeaza n N
r
runde, unde N
r
depinde de N
b
si N
k
. Valorile lui N
r
sunt
date n tabelul:
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
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, notate pe scurt:
ByteSub(Stare);
ShiftRow(Stare);
MixColumn(Stare);
AddRoundKey(Stare, Cheie).
Ultima runda cont ine numai trei transformari, ind eliminata MixColumn(Stare). Sa
vedem cum sunt denite aceste transformari:
ByteSub(Stare): Este o substitut ie neliniara care opereaza pe octet i. Tabela de
substitut ie (S - box, daca folosim termenul consacrat din DES) este o matrice
inversabila formata din compunerea a doua transformari:
1. Fiecare octet nenul este nlocuit cu inversul sau
1
GF(2
8
); octetul 00
este lasat nemodicat.
2. Rezultatul este modicat printr-o transformare ana peste Z
2
:

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

7.3. DETALII ALE SISTEMULUI DE CRIPTARE AES 13


Transformarea ByteSub se aplica tuturor octet ilor starii de intrare n runda, rezul-
tatul ind o alta stare de iesire din runda.
Inversa transformarii se obt ine aplicand ecarui octet transforma-rea ana inversa,
dupa care se ia inversul multiplicativ din GF(2
8
) (daca octetul nu este nul).
ShiftRow(Stare): La acest pas, liniile starii sunt permutate ciclic spre stanga. Numa-
rul de octet i cu care se face ciclarea sunt: 0 pentru linia 0, C
i
pentru linia i (1
i 3). Valorile C
i
depind de lungimea N
b
a blocului si sunt date de tabelul
N
b
C
1
C
2
C
3
4 1 2 3
6 1 2 3
8 1 3 4
Exemplul 7.2 Aplicand transformarea ShiftRow starii din Exemplul 7.1 (unde
N
b
= 6), vom obt ine starea
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
Inversa transformarii ShiftRow consta n permutarea ciclica spre stanga cu N
b
C
i
octet i pentru linia i (1 i 3); n 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
).
MixColumn(Stare):

In aceasta transformare, ecare coloana a starii este privita ca
un polinom de gradul 3 cu coecient i n GF(2
8
). 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; polinomul c(X) este prim cu X
4
+ 1, deci
va inversabil.
Aceasta transformare poate reprezentata si sub forma unei nmul-t iri matriciale,
care transforma starea coloana cu coloana; anume:

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

14 PRELEGEREA 7. SISTEMUL DE CRIPTARE AES


Operat ia inversa este similara. Fiecare coloana este transformata prin nmult ire cu
polinomul invers lui c(X) modulo X
4
+ 1; acesta este
d(X) =

0B

X
3
+

0D

X
2
+

09

X +

0E

AddRoundKey(Stare, Cheie): Aceasta transformare consta n aplicarea unui XOR


() ntre starea curenta si cheia de runda. Cheia de runda are lungimea N
b
si este
dedusa din cheia de criptare pe baza unui procedeu pe care l descriem mai jos.
Formal, transformarea are loc conform gurii (pentru N
b
= 6):
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).
Transformarea AddRoundKey si inversa ei sunt identice.
Algoritmul de criptare AES este format din:
1. O transformare AddRoundKey init iala;
2. N
r
1 runde;
3. O runda nala.

Inainte de aplicarea acestui algoritm (sau eventual n paralel) se foloseste un algoritm


de obt inere a cheilor de runda.
7.3.1 Prelucrarea cheii de criptare
Toate cheile de runda se obt in din cheia de criptare printr-o prelucrare separata, formata
din doua componente: extinderea cheii si alegerea cheii de runda. Principiile de baza ale
prelucrarii sunt:
Num arul total al bit ilor din toate cheile de runda este N
b
(N
r
+ 1).
Cheia de criptare este extinsa ntr-o Cheie Expandata.
7.3. DETALII ALE SISTEMULUI DE CRIPTARE AES 15
Cheia de runda se obt ine luand primii N
b
octet i din Cheia Expandata, care nu au
fost folosit i pentru alte chei.
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; celelalte cuvinte se obt in recursiv din
cuvintele denite anterior. Funct ia de extindere a cheii depinde de valoarea lui N
k
; exista
o versiune pentru N
k
6 si o alta pentru N
k
> 6.
Pentru N
k
6 avem:
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;
}
}

In acest algoritm (scris n C ++), SubByte(W) este o funct ie care ntoarce un cuv ant
n care ecare octet este rezultatul aplicarii S - boxului denit la transformarea ByteSub
ecarui octet din cuvantul de intrare. RotByte(w) ntoarce un cuvant n care octet ii sunt
rotit i ciclic la stanga (pentru intrarea (a, b, c, d) iesirea este (b, c, d, a)).
Esent a algoritmului este urmatoarea: primele N
k
cuvinte sunt completate cu cheia de
criptare.

In continuare, ecare cuvant W[i] este egal cu W[i 1] W[i N
k
]. Pentru
cuvintele care sunt 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
plus, rezultatul este XOR - at nca odata, cu o constanta de runda.
Pentru N
k
> 6, algoritmul este:
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)
16 PRELEGEREA 7. SISTEMUL DE CRIPTARE AES
temp = SubByte(RotByte(temp)) Rcon(i/N
k
);
else if (i % N
k
== 4)
temp = SubByte(temp)
W[i] = W[i N
k
] temp;
}
}
La aceasta schema apare condit ia suplimentara ca pentru situat ia cand i 4 este
multiplu de N
k
, procedura SubByte este aplicata lui W[i 1] nainte de XOR.
Constantele de runda sunt independente de N
k
si sunt denite prin
Rcon[i] = (RC[i],

00

00

00

)
unde RC[i] =
i1
unde este un element generator al lui GF(2
8
).
Selectarea cheii de runda
Cheia rundei i este formata din secvent a de cuvinte
W[N
b
i] . . . W[N
b
(i + 1) 1].
Ca o remarca, aceasta cheie poate calculata treptat, pe masura ce se ajunge la runda
respectiva.
Pentru alte detalii privind securitatea sistemului, a se vedea [1], [8]
Bibliograe
[1] Joan Daemen, Vincent Rijmen - The Rijndael Block Cipher Proposal,
http://csrc.nist.gov/CryptoToolkit/aes/
[2] Ross Anderson s.a. - Serpent: A proposal for the Advanced Encryption Standard,
http://www.ftp.cl.cam.ac.uk/ftp/users/rja14/serpent.pdf
[3] Don Coppersmith s.a. - MARS - a candidate cypher for AES,
http://www.research.ibm.com/security/mars.pdf
[4] Ronald Rivest s.a - The RC6
TM
Block Cipher,
ftp://ftp.rsasecurity.com/pub/rsalabs/rc6/rc6v11.pdf
[5] Bruce Schneier - Applied Cryptography, Second Edition, John Wiley & Sons, 1996
[6] Bruce Schneier s.a. - Twosh, http://www.counterpane.com/twosh.html
[7] Serpent homepage, http://www.cl.cam.ac.uk/ rja14/serpent.html
[8] Douglas Stinton - Cryptography, Theroy and Practice, Ed. II (2002)
17
Prelegerea 8
Criptare cu cheie publica
8.1 Considerat ii generale

In sistemele de criptare clasice, Alice si Bob si aleg o cheie secreta K care deneste
regulile de criptare (e
K
) si decriptare (d
K
).

In aproape toate cazurile d
K
si e
K
coincideau
sau se puteau deduce imediat una din alta. Astfel de sisteme sunt numite sisteme cu
cheie privata (sau sisteme simetrice) deoarece publicarea lui e
K
face sistemul extrem de
vulnerabil.
Un punct slab al sistemelor cu cheie privata este acela ca necesita o comunicare pre-
alabila a cheii ntre Alice si Bob printr-un canal sigur, nainte de transmiterea mesajului
criptat. Practic, n condit iile cererii tot mai mari de securizare a comunicat iilor, acest
lucru este din ce n ce mai dicil de realizat.
Obiectivul sistemelor de criptare cu cheie publica este acela de a face imposibilasupra
acestui termen vom reveni) 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
fara a intran prealabil n contact. Bob este singura persoana capabila sa decripteze
textul, utilizand cheia sa secreta d
K
.
Ideea de sistem de criptare cu cheie publica apare n 1976 si este prezentata de Die
si Hellman (vezi [1])
1
. De atunci au aparut diverse astfel de sisteme, a caror securitate
este bazat a pe probleme calculatorii. Cele mai cunoscute n acest moment sunt:
Sistemul RSA: se bazeaza pe dicultatea descompunerii n factori primi a numerelor
mari (de sute de cifre). Este sistemul cel mai larg utilizat n acest moment.
1
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 in 1997.
1
2 PRELEGEREA 8. CRIPTARE CU CHEIE PUBLIC

A
Sistemul El Gamal: se bazeaza pe dicultatea calculului logaritmului discret ntr-un
corp nit.
Sistemul Merkle - Hellman: primul sistem denit cu cheie publica, bazat pe problema
{0, 1} a rucsacului, problema NP - completa.
Sistemul McEliece: este bazat pe teoria algebrica a codurilor, decodicarea unui cod
liniar ind de asemenea o problema NP - completa.
Curbe eliptice: Sunt sisteme de criptare care si desfasara calculele pe mult imea
punctelor unei curbe eliptice (n locul unui inel nit Z
n
).
8.2 Funct ii neinversabile
O observat ie importanta este aceea ca un sistem cu cheie publica nu este sigur necondit ionat;
oricine - putand sa efectueze criptari, nu este exclus sa gaseasca anumite puncte slabe care
sa i permita sa si decripteze mesajele. Ideea de baza folosita este aceea de funct ie nein-
versabila. Sa claricam put in acest aspect.
Exemplul 8.1 Ne putem imagina usor strazile cu sens unic dintr-un oras. Astfel, este
usor ca mergand pe astfel de strazi sa ajungi de la punctul A la punctul B, dar este
imposibil s a 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 s a decriptezi mesajul).
Exemplul 8.2 Sa consideram cartea de telefon a unui oras mare
2
; cu ajutorul ei este
foarte usor sa gasim numarul de telefon al unei anumite persoane.

In schimb, este extrem
de greu - practic imposibil - sa ai persoana care are un anumit numar de telefon. Te
ai n situat ia parcurgerii secvent iale a (cel put in) unui volum gros, ceea ce conduce la o
crestere exagerata a timpului.
Aceasta da o sugestie de construct ie a unui sistem de criptare cu cheie publica. Criptarea
se face independent de context, 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 con-
stitui criptarea. Sistemul este homofonic; douaaparit ii diferite ale aceleiasi litere vor
codicate foarte probabil cu numere diferite.
De exemplu, textul clar SOLIST se poate cripta astfel:
2
O carte de telefon expirata va duce la cresterea dicultat ii decriptarii ilegale.
8.2. FUNCT II NEINVERSABILE 3
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.
De remarcat ca metoda este nedeterminista; din acelasi text clar se pot obt ine enorm
de multe texte criptate. Pe de-alta parte, orice text criptat conduce la un text clar unic.
Bob va avea la dispozit ie pentru decriptare o carte de telefon scrisa n ordinea crescatoare
a numerelor. Aceasta i va permite sa decripteze mesajele cu un algoritm de complexitate
O(log n).
Deci, 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.
De remarcat ca, 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 relat ia P = NP,
conjectura care sta la baza ntregii teorii criptograce (a se vedea [4],[5]). De aceea,
termenii folosit i sunt relativi la complexitatea calculatorie. Astfel, o problema este:
1. usoara daca se poate rezolva cu un algoritm cel mult liniar;
2. grea daca se poate rezolva cu un algoritm polinomial neliniar;
3. imposibila daca este NP - completa.
Am listat la nceput o serie de probleme NP - complete care stau la baza principaleor
sisteme de criptare cu cheie publica.
Exemplul 8.3 Sa consideram problema rucsacului Ea consta dintr-un vector de di-
mensiune n A = (a
1
, a
2
, . . . , a
n
) cu elemente numere ntregi pozitive distincte, si un
numantreg pozitiv k. Trebuiesc aat i acei a
i
din A (daca exista) a caror suma este
k. Numele intuitiv dat problemei este evident. 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 (vom
da mai tarziu o denit ie formala riguroasa a problemei).

In principiu o solut ie se poate gasi parcurgand sistematic toate submult imile lui A si
vericand daca suma elementelor lor este k.

In cazul de sus, aceasta nseamna 2
10
1 =
1023 submult imi (fara mult imea vida), dimensiune acceptabila ca timp de lucru.
Ce se ntampla nsa daca A are cateva sute de componente ?

In acest caz se cunoaste
faptul ca problema rucsacului este NP - completa.
4 PRELEGEREA 8. CRIPTARE CU CHEIE PUBLIC

A
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 (adaugand
eventual 0 - uri n faaf(x)vafinum arul obt inut din A prin nsumarea tuturor nu-
merelor a
i
aate pe pozit iile marcate cu 1 n reprezentarea binara a lui x. Formal,
f(x) = A B
T
x
unde B
x
este reprezentarea binara a lui x, scrisa ca un vector coloana.
Sa denim acum 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 (eventual ultimul
bloc este completat la sfarsit cu zerouri). Fiecare bloc rezultat este apoi criptat calculand
valoarea corespunzatoare a funct iei f.
Pentru alfabetul latin sunt sucient i 5 bit i pentru codicarea binara a literelor si a
spat iului. Mai exact, daca asociem literelor A - Z reprezentarile binare ale numerelor
1 26, vom avea:
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
Sa consideram un text clar, FLOARE DE COLT de exemplu. Cum ecare caracter
se codica n 5 bit i, n 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
care conduc la textul criptat: (1814, 3243, 3204, 1165, 1118, 5321, 1811).
Sa consideram sistemul de criptare denit n Exemplul 8.3. Daca l privim ca un
sistem clasic, (cu cheie privata) criptanalistul trebuie sa ae vectorul de baza A si apoi sa
rezolve problema rucsacului.
Daca el foloseste metoda textelor clare alese, 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 problemei rucsacului; aici atat Bob cat si Oscar sunt pusi n fat a acelaiasi
probleme NP - complete. Ori, practic, doar Oscar trebuie sa rezolve o problema dicila,
nu si Bob.
O alta problema ridicata de acest sistem de criptare: este obligatoriu ca un text criptat
sa determine n mod unic un text clar. Aceasta nseamna ca nu trebuie sa existe doua
submult imi ale lui A care sa aiba aceeasi suma. Astfel, daca se ia A = (17, 103, 50, 81, 33),
textul criptat (131, 33, 100, 234, 33) poate decriptat n doua moduri: SAUNA si FAUNA.
8.3. TRAPA SECRET

A 5
8.3 Trapa secreta
Pentru ca Bob sa nu e pus n aceasi situat ie ca si Oscar, el trebuie sa dispuna de
un procedeu care sa i permita sa transforme problema NP - completa publica, ntr-o
problema usoara. Acest procedeu este numit trapa secreta.

In primul exemplu, trapa
secreta era cartea de telefon ordonata dupa numerele de telefon, nu dupa abonat i. Sa
vedem care este trapa secreta n sistemul de criptare din Exemplul 8.3:
Exemplul 8.4 Sunt clase de probleme ale rucsacului usor de rezolvat; una din ele o
formeaza vectorii cu crestere mare.
Spunem ca vectorul rucsac A = (a
1
, a
2
, . . . , a
n
) este cu crestere mare daca
j 2, a
j

j1

i=1
a
i
.

In acest caz, pentru a rezolva problema rucsacului este sucient sa parcurgem vectorul
A de la dreapta spre stanga. Cunoscand valoarea k, cercetam ntai valoarea de adevar
a relat iei k a
n
. Daca raspunsul este FALSE, a
n
nu poate apart ine sumei pe care o
cautam. Daca nsa se obt ine TRUE, a
n
trebuie sa e n suma, deoarece toate elementele
a
i
ramase nu pot depasi n suma pe k. Vom deni
k
1
=

k daca a
n
> k
k a
n
daca a
n
k
si repetam procedeul pentru k si a
1
. Algoritmul se va opri la valoarea a
1
.
Sa presupunem ca avem vectorul rucsac cu crestere mare
A = (1, 3, 5, 11, 21, 44, 87, 175, 349, 701)
si vrem sa decodicam mesajul 278. Vom parcurge 10 pasi, sumarizat i n tabelul:
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
Deci se obt ine secvent a binara 00110 01100 care - conform codicarii din Exemplul 8.3
corespunde perechii de litere FL.
Daca se foloseste nsa public o astfel de informat ie, orice utilizator inclusiv Oscar
poate decripta mesajele folosind un algoritm liniar. Ori s-a presupus (n prima prelegere)
6 PRELEGEREA 8. CRIPTARE CU CHEIE PUBLIC

A
ca pentru orice intrus aarea mesajului clar trebuie sa se reduca la rezolvarea unei prob-
leme NP - complete.
Exemplul 8.5 Pentru sistemul bazat pe problema rucsacului, Bob va proceda astfel: va
alege un numar m (m >
m

i+1
a
i
) numit modul si un numar t, (m, t) = 1 numit multipli-
cator. Exista atunci un numar s astfel ca m s 1 (mod m).
Plecand de la vectorul cu crestere mare 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 vor forma trapa secreta a
lui Bob.
Astfel, daca luam m = 1590 si t = 43, vectorul cu crestere mare
A = (1, 3, 5, 11, 21, 44, 87, 175, 349, 701)
devine
B = (43, 129, 215, 473, 903, 302, 561, 1165, 697, 1523),
adica cel prezentat n exemplul 8.3.

In plus, s = t
1
= 37.
3
Cum se va proceda: 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
, conform Exemplului 8.3.
La recept ie, Bob va calcula ntai z = s y (mod m), dupa care va decripta mesajul z
folosind vectorul cu crestere mare A. Se poate arata usor ca solut ia este chiar x.
Astfel, de exemplu Alice poate cripta mesajul FL n 2414 (cf. Exemplului 8.3). La
primirea acestui numar, Bob va determina ntai s 2414 = 37 2414 (mod 1590) = 278.

In
Exemplul 8.4 s-a vazut ca decriptarea mesajului 278 cu vectorul A conduce la textul clar
FL.
Putem trasa acum cateva principii generale de construire a unui sistem de criptare cu
cheie publica:
1. Se ncepe cu o problema dicila P; rezolvarea lui P este imposibila n conformitate
cu teoria complexitat ii (nu se cunoaste nici un algoritm de complexitate polinomiala
care sa rezolve P).
2. Se selecteaza o subproblema P
1
a lui P, rezolvabila n timp polinomial (preferabil
liniar).
3. Se aplica o transformare problemei P
1
astfel ncat sa se obt ina o problema P
2
care
sa nu semene cu P

dar sa e foarte apropiata de problema P.


3
Pentru calculul inversului unui numar se poate folosi algoritmul lui Euclid. Vom dezvolta mai tarziu
aceasta idee.
8.4. SECURITATEA SISTEMELOR DE CRIPTARE CU CHEIE PU-BLIC

A 7
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
este o trapa secreta.
5. Se construiesc detaliile sistemului de criptare, astfel ncat principiile de lucru sa
difere esent ial pentru destinatar fat a de criptanalist; astfel, n timp ce primul va
folosi trapa secreta si va rezolva problema P
1
, al doilea va trebui sa rezolve problema
P
2
, imposibila datorita asemanarii ei cu problema P.

In funct ie de aceste principii generale, aparn detalii de construct ie multe alte probleme
pe care constructorii sistemelor de criptare trebuie sa le rezolve.
8.4 Securitatea sistemelor de criptare cu cheie pu-
blica

In majoritatea sistemelor de criptare, aparatul matematic folosit este bazat pe teoria nu-
merelor, teoria funct iilor recursive si teoria probabilitat ilor. Pe o scara mult mai restransa
apar funct iile eliptice, teoria automatelor, calcul neconvent ional (cuantic, molecular etc).
Sistemele de criptare cu cheie publica un avantaj major fat a de sistemele clasice: aici
nu mai este necesar efortul transmiterii cheii. Un contact prealabil ntre Alice si Bob
pentru a pune la punct detaliile sistemului de criptare este inutil.
Un sistem de criptare cu cheie publica nu ofera nsa o securitate absoluta. Aceasta
se datoreaza faptului ca Oscar poate oricand sa dispuna de atacuri pasive sau active.
Anume:
Daca criptanalistul 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 sistemului.
Un criptanalist activ poate efectua cu succes un atac de tipul meet in the middle. Sa
presupunem ca Alice si Bob doresc sa stabileasca un contact. Ei fac publice cheile de
criptare e
A
respectiv e
B
. Daca contactul este nepersonalizat, Oscar poate controla
mesajele schimbate ntre cei doi, n felul urmator:
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 printr-un mijloc oarecare aceste chei, si trimite lui Alice
cheia e
1
B
ca din partea lui Bob; substituie similar pentru Bob cheia e
A
cu
e
1
A
.
8 PRELEGEREA 8. CRIPTARE CU CHEIE PUBLIC

A
2. Fie m mesajul pe care Alice vrea sa l trimita lui Bob. Ea va cripta si va trimite
y
1
= e
1
B
(m).
3. Oscar intercepteaza mesajul (reamintim, toate canalele sunt nesigure) si aa
m = d
1
B
(y
1
).
4. Oscar recripteaza y = e
B
(m) si trimite y lui Bob.
Binent eles, Oscar poate modica sau ntarzia mesajul m daca doreste.
Din aceasta cauza, aproape n toate sistemele de criptare cu cheie publica apare nece-
sitatea autenticarii mesajului sau a expeditorului, precum si aceea a condent ialitat ii.
Denit ia 8.1 Condent ialitatea
4
asigura accesul la informat ie doar part ilor autorizate
de a avea acest acces.
Denit ia 8.2 Autenticarea
5
este procesul prin care un calculator (program de calculator
sau alt utilizator) ncearca sa conrme unui destinatar ca mesajul primit de acesta vine
(sau nu vine) din partea sa.
Metodele prin care un expeditor uman se poate autentica sunt clasicate n:
1. ceva ce utilizatorul este (de exemplu amprente digitale, de retina, de voce, secvent a
DNA, recunoasterea semnaturii, identicatori biometrici).
2. ceva de utilizatorul are (de exemplu card ID, date de securitate soft pe calculator
sau telefon).
3. ceva ce utilizatorul stie (de exemplu un password, o parola, un numar de identi-
care - PIN).
4. Orice combinat ie ntre metodele anterioare (de exemplu un card bancar cu PIN
asigura o dubla autenticare).
Alt termen frecvent utilizat este cel de integritate. El se refera la validitatea datelor.
Denit ia 8.3 Integritatea este sigurant a ca datele la care se refera un utilizator pot
accesate si pot modicate numai de cei autorizat i sa o faca.

In general integritatea poate compromisa n doua moduri:


1. Prin alterare intent ionata (de exemplu modicarea unui cont bancar, a unei adrese
de e-mail, a unui document de indetitate);
4
conform International Standards Organization (ISO)
5
de la grecescul authentes = author
8.5. COMPARAT IE

INTRE CRIPTAREASIMETRIC

ASI CEACUCHEIE PUBLIC

A9
2.

In mod accidental (transmisii perturbate de zgomote de canal, zgarierea harddiscului)
6
.
Sa presupunem ca Alice si Bob sunt doi utilizatori, 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 poata recunoaste public 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.
O modalitate frecvent utilizata pentru autenticarea mesajelor este folosirea codurilor de
autenticare.
Exemplul 8.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 integri-
tatea mesajului.
Daca se solicita si autenticarea partenerilor, atunci se foloseste de obicei semnatura
electronica.
Exemplul 8.7 Sa presupunem ca Alice vrea sa trimita lui Bob 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 si aa mesajul.
Se observa ca sunt vericate cele doua condit ii de autenticare si n plus protocolul
rezista unui atac de tip meet-in-the-middle.
Daca dorim sa folosim un singur contact, Alice poate trimite mesajul y = e
B
(d
A
(m)).
La recept ie, Bob va folosi propria sa cheie pentru decriptare, impreuna cu cheia public a a
lui Alice. Metoda merge si pentru sisteme de criptare necomutative.
8.5 Comparat ie ntre criptarea simetrica si cea cu
cheie publica
Avantaje ale sistemelor de criptare cu cheie simetrica:
6
De recuperarea informat iei pierdutan acest mod se ocupa Teworia Codurilor detectoare si corectoare
de erori.
10 PRELEGEREA 8. CRIPTARE CU CHEIE PUBLIC

A
1. Pot transmite volume mari de date. Exista implementari hard care pentru unele
sisteme de criptare pot 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 ca baza de construct ie a diverselor mecanisme de criptare, cum ar
generatori de numere pseudo-aleatoare, generatori de funct ii de dispersie, scheme
de semnatura.
4. Prin compunere pot conduce la sisteme de criptare puternice.
5. Au o istorie bogata n evenimente si experient a.
Dezavantaje ale sistemelor de criptare cu cheie simetrica:
1. Cheia trebuie sa ramana permament secreta n (cel putn) 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
cehilor de criptare/decriptare.
Avantaje ale sistemelor de criptare cu cheie punlica
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 secreta, la un singur punct (destinatar).
4.

In funt 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 autenti-
care, componente de comert electronic etc.
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
publica.
8.5. COMPARAT IE

INTRE CRIPTAREASIMETRIC

ASI CEACUCHEIE PUBLIC

A11
4. Implementarea trebuie realizata cu foarte mare grija. Sisteme cu grad ridicat teo-
retic de securitate pot sparte usor printr-o implementare neglijenta.
Dupa cum se observa, cele doua clase de sisteme de criptare dispun de o serie de avantaje
complementare. Acest lucru face ca ele sa e folosite combinat.
Exemplul 8.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 mult mai mare de transmitere si
un spor de autentcitate a mesajelor.
12 PRELEGEREA 8. CRIPTARE CU CHEIE PUBLIC

A
Bibliograe
[1] W. Die, M.E. Hellman - New Directions in Cryptography, IEEE Transactions on
Information Theory, IT-22, 6 (1976), pp. 644-654
[2] D. Stinton - Cryptographie, theorie et pratique, International Thompson Publishing
France, 1995
[3] A. Salomaa - Criptograe cu chei publice, ed. Militara, 1994
[4] P versus NP homepage, http://www.win.tue.nl/ gwoegi/P-versus-NP.htm
[5] http://en.wikipedia.org/wiki/Complexity classes P and NP
13
Prelegerea 10
Sistemul de criptare RSA
10.1 Descrierea sistemului RSA
Sistemul de criptare RSA (Rivest - Shamir - Adleman) este n acest moment cel mai
cunoscut si uzitat sistem cu cheie publica
1
. Aceasta se datoreazan primul rand modalit at ii
foarte simple de criptare si decriptare, care se realizeaza similar cu aceleasi module de
calcul (proprietate ntalnita n special la multe sisteme simetrice).
Iata n ce consta sistemul de criptare RSA:
Fie p, q numere prime impare distincte si n = pq.
Indicatorul sau Euler este (n) = (p 1)(q 1).
Fie P = C= Z
n
. Se deneste
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.
Deoarece ab 1 (mod (n)), avem ab = t(n) + 1.
Atunci, pentru un x Z

n
= Z
n
\ {0}, putem scrie (toate calculele se fac 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.
Exemplul 10.1 Sa presupunem ca 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
1
Sistemul este prezentat n 1977 de Ron Rivest, Adi Shamir si Len Adleman n cadrul unui proiect
de cercetare la MIT. Totusi, 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 Headquarters).
1
2 PRELEGEREA 10. SISTEMUL DE CRIPTARE RSA
si numai daca nu este divizibil cu 2, 5 sau 7 (practic, Bob nu trebuie sa factorizeze (n);
este sucient sa verice daca ((n), b) = 1 folosind algoritmul lui Euclid). Fie de exemplu
b = 3533. Avem atunci b
1
= 6597 mod 11200.
Deci, exponentul (secret) de decriptare este a = 6597.
Bob face public n = 11413 si b = 3533.
Daca Alice doreste sa-i transmita lui Bob mesajul 9726, ea calculeaza
9726
3533
mod 11413 = 5761
si trimite prin canal textul criptat 5761. Cand Bob primeste acest numar, el determina
5761
6597
mod 11413 = 9726.
Securitatea sistemului de criptare RSA se bazeaza pe ipoteza ca funct ia e
K
(x) = x
b
mod n
este neinversabila din punct de vedere al complexitat ii, deci este imposibil pentru Oscar
sa o determine. 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 (a se
vedea Anexa).
10.2 Implementarea sistemului RSA
Pentru a realiza criptarea, Bob trebuie sa efectueze urmatorii pasi (ecare din ei va
detaliat mai tarziu):
Tabelul 10.1:
1. Genereaza doua numere prime mari p, q;
2. Calculeaza n = pq si (n) = (p 1)(q 1);
3. Alege aleator un numar b (1 < b < (n)) astfel ca (b, (n)) = 1;
4. Calculeaza a = b
1
mod (n) folosind algoritmul lui Euclid;
5. Face public n si b.
Un atac evident al sistemului consta n ncercarea de factorizare a lui n. Daca se
realizeaza aceasta, este usor de determinat (n) = (p1)(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 (din punct de vedere al complexitat ii). Algo-
ritmii de factorizare actuali pot descompune numere de pana la 200 cifre zecimale. Se
10.2. IMPLEMENTAREA SISTEMULUI RSA 3
recomanda de aceea pentru sigurant a sa se lucreze cu numere prime p si q de cel put in
300 cifre ecare, deci n va avea peste 500 cifre. Aproape toate implementarile actuale ale
sistemului folosesc chei de 1024 2048 bit i
2
.
Cu intent ia ca vom reveni asupra problemelor legate de numere prime mari, sa studiem
ntai operat iile necesare pentru criptare si decriptare. Orice astfel de calcul se bazeaza
pe o exponent iere modulo n. Cum n este foarte mare, vom utiliza aritmetica numerelor
mari pentru lucrul n Z
n
, timpul de calcul necesar ind direct proport ional cu numarul
de bit i ai lui n.
Daca n ocupa k bit i n memorie (deci k = [log
2
n] + 1), prin metode de calcul uzuale
se ajunge la concluzia ca 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
). Conform prelegerii anterioare, vom numi
aceasta multiplicare modulara.
Sa cercetam acum exponent ierea modulara x
c
mod n. O modalitate de calcul consta n
efectuarea de c1 multiplicari modulare - proces foarte inecient pentru c mare, deoarece
algoritmul devine de complexitate exponent iala.
Exista nsa un algoritm de exponent iere rapida, care realizeaza x
c
mod n cu complex-
itate O(k
3
) (deci polinomial). Acesta utilizeaza descompunerea binara a lui c,
c =
s1

i=0
c
i
2
i
unde s (s k) este numarul de bit i ai lui c, iar c
i
{0, 1}. Exponent ierea se face doar
prin ridicari la patrat si maxim s nmult iri modulare, conform algoritmului:
z 1;
for i s 1 downto 0 do
z z
2
mod n;
if c
i
= 1 then z z x mod n
Exemplul 10.2 Sa reluam datele din Exemplul 10.1. Calculul lui 9726
3533
mod 11413 se
efectueaza cu algoritmul de sus n numai 12 pasi; anume:
2
Un numar n de maxim 256 bit i poate factorizat de un PC obisnuit n cateva ore, folosind un soft
free. Daca n are pana la 512 bit i, el poate factorizat folosind o ret ea de cateva sute de calculatoare,
conform unei scheme prezentate n 1999.

In 2003 a fost pusa sub semnul ntrebarii securitatea modulelor
de 1024 bit i.
4 PRELEGEREA 10. SISTEMUL DE CRIPTARE RSA
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.
Pentru aplicarea sistemului de criptare RSA, trebuiesc generate ntai numerele prime
p, q - despre care ne ocupam n sect iunea urmatoare. Etapa a doua (din Tabelul 10.1) se
efectueaza evident n O((log
2
n)
2
). Etapele 3 si 4 folosesc algoritmul lui Euclid extins. Ca
rezultat general, calculul celui mai mare divizor comun (a, b) cu 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.

In [3] se dau cateva
tabele cu astfel de valori comparative, la nivelul anului 1995.
10.3 Teste de primalitate probabiliste

In realizarea sistemului de criptare RSA trebuiesc generate aleator 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 (complexitatea lor este log n) dar care pot arma uneori primalitatea
unor numere care nu sunt prime. Aceste erori se pot reduce la o marja acceptabila prin
multiplicarea testelor.
Problema generarii aleatoare este posibila din urmatorul considerent. Un rezultat din
teoria numerelor (numit Teorema rareerii numerelor prime) arma ca 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 gener ari
de numere p pentru a obt ine un numar prim (daca se foloseste si faptul ca se genereaza
numai numere impare, aceasta reduce la jumatate numarul de ncercari). Rezulta ca este
practic sa se construiasca numere mari, care sunt probabil prime, pe baza carora sa se
realizeze criptarea RSA. Vom detalia acest procedeu.
Denit ia 10.1 O problema de decizie este o problema care pune o ntrebare al carui
raspuns este dicotomic (Da/Nu).
10.3. TESTE DE PRIMALITATE PROBABILISTE 5
Un algoritm probabilist este un algoritm care foloseste numere aleatoare.
Denit ia 10.2 Un algoritm Monte - Carlo pozitiv este un algoritm probabilist care re-
zolva 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 probabilitate de eroare daca pentru orice
problema al carei raspuns ar trebui sa e pozitiv, algoritmul da un raspuns negativ cu
probabilitatea cel mult .
Problema de decizie folosita aici, numita Problema de descompunere este
Fiind dat un numar ntreg n, se poate el descompune n produs de alte numere mai
mici ?
Vom prezenta n aceasta sect iune doi algoritmi de tip Monte Carlo pozitiv care rezolva
aceasta problema de de decizie.
10.3.1 Algoritmul Solovay - Strassen
Sa reamintim ntai cateva not iuni matematice:
Denit ia 10.3 Fie p 3 numar prim si a Z

p
. Spunem ca 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 10.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.
Problema resturilor patratice consta n a decide daca un numar n dat este sau nu un rest
patratic. Un algoritm determinist pentru rezolvarea acestei probleme se bazeaza pe
Teorema 10.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)
Demonstrat ie: Sa presupunem a x
2
(mod p). Cum x
p1
1 (mod p) (Teorema lui
Fermat) pentru x 0 (mod p),vom avea
a
p1
2
(x
2
)
p1
2
x
p1
1 (mod p).
Invers, e a
p1
2
1 (mod p) si b Z
p
un element primitiv (de ordin p 1). Atunci
a b
i
(mod p) pentru un anumit i. Calculam
1 a
p1
2
(b
i
)
p1
2
b
i(p1)
2
(mod p).
Ordinul p 1 al lui b va divide i(p 1)/2. Deci i este par si radacinile patrate ale lui a
sunt b
i/2
. 2
6 PRELEGEREA 10. SISTEMUL DE CRIPTARE RSA
Denit ia 10.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
Teorema 10.1 asigura ca a
(p1)/2
1 (mod p) daca si numai daca a este rest patratic
modulo p. Daca a este multiplu de p, evident a
(p1)/2
0 (mod p).

In sfarsit, daca a nu
este rest patratic modulo p, avem a
(p1)/2
1 (mod p) deoarece a
p1
1, a
(p1)/2

1 (mod p) si 1 este singura radacina patrata diferita de 1 modulo p. Este deci adevarata
teorema urmatoare:
Teorema 10.2 Daca p este numar prim impar, atunci
_
a
p
_
a
p1
2
(mod p)
Simbolul lui Legendre se poate generaliza astfel:
Denit ia 10.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
Exemplul 10.4 Sa calculam simbolul Jacobi
_
6278
9975
_
. Descompunerea n factori primi
a lui 9975 este 9975 = 3 5
2
7 19. Avem atunci
_
6278
9975
_
=
_
6278
3
__
6278
5
_
2
_
6278
7
__
6278
19
_
=
_
2
3
__
3
5
_
2
_
6
7
__
8
19
_
= (1)(1)
2
(1)(1) =
1
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).
Putem enunt a acum testul de primalitate Solovay - Strassen pentru un numar impar
n:
10.3. TESTE DE PRIMALITATE PROBABILISTE 7
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.
Pentru evaluarea a
n1
2
(mod n) se poate folosi un algoritm de complexitate O((log n)
3
).
Problema este cum putem evalua simbolul Jacobi x
_
a
n
_
fara a factoriza pe n (altfel
ne nvartim ntr-un cerc vicios !!).
Acest lucru se poate realiza folosind cateva proprietat i. Anume:
Lema 10.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 10.2 Fie m, n doua numere ntregi pozitive impare. Atunci
_
m
n
_
=
_
_
_

_
n
m
_
daca m n 3 (mod 4)
_
n
m
_
altfel
Lasam ca exercit iu demonstrat iile celor doua leme.
Exemplul 10.5 Sa calculam simbolul Jacobi
_
7411
9283
_
. Vom avea succesiv:
_
7411
9283
_
=
_
9283
7411
_
=
_
1872
7411
_
=
_
2
7411
_
4
_
117
7411
_
=
_
117
7411
_
=
_
7411
117
_
=

_
40
117
_
=
_
2
117
_
3
_
5
117
_
=
_
5
117
_
=
_
117
5
_
=
_
2
5
_
= 1
8 PRELEGEREA 10. SISTEMUL DE CRIPTARE RSA
O analiza sumara arata ca se poate calcula simbolul Jacobi
_
m
n
_
folosind cel mult O(log n)
reduceri modulare, ecare n timp O((log n)
2
). Deci complexitatea poate estimata la
O((log n)
3
)
3
.
Se poate arata ca numarul de baze a pentru care un numar neprim n este pseudo -
prim Euler, este cel mult n/2. Aceasta duce la concluzia ca testul de primalitate Solovay
- Strassen este un algoritm Monte Carlo pozitiv pentru problema de descompunere, cu
probabilitate de eroare 1/2. Un studiu referitor la complexitatea aplicarii acestui test de
primalitate si a probabilitat ii de eroare se poate gasi n [1].
10.3.2 Algoritmul Miller - Rabin
Acest algoritm este cunoscut si sub numele de testul de tare pseudo - primalitate. Forma
sa este:
1. Se descompune n 1 = 2
k
m unde m este impar;
2. Se alege aleator ntregul a [2, n 2];
3. b a
m
(mod n)
4. if b 1 (mod n) then n este prim, Stop;
5. for i 0 to k 1 do
6. if b 1 (mod n) then n este prim, Stop,
else b b
2
(mod n)
7. n nu este prim, Stop
Evident, algoritmul este polinomial, de complexitate O((log n)
3
).
Teorema 10.3 Algoritmul Miller - Rabin este un algoritm Monte Carlo pozitiv pentru
problema de descompunere.
Demonstrat ie: Sa presupunem prin absurd ca algoritmul raspunde ca un numar prim n
se poate descompune, adica a
m
1 (mod n). Vom urmari sirul de valori pe care le ia b.
Cum la ecare iterare b este ridicat la patrat, acest sir este a
m
, a
2m
, . . . , a
2
k1
m
. Vom avea
deci
a
2
i
m
1 (mod n) pentru 0 i k 1.
3
O analiza mai detaliata poate reduce aceasta complexitate la O((log n)
2
).
10.3. TESTE DE PRIMALITATE PROBABILISTE 9
Deoarece n este prim, teorema lui Fermat da a
2
k
m
1 (mod n). Deci a
2
k1
m
este o
radacina patrata a lui 1 modulo n.
Din faptul ca n este prim, singurele radacini patrate ale lui 1 sunt 1. Aceasta
armat ie se poate arata astfel:
x este radacina patrata a lui 1 daca si numai daca n|(x 1)(x +1). Cum n este prim,
avem n|(x 1) (deci x 1 (mod n)) sau n|(x + 1) (adica x 1 (mod n)).
Cum prin ipoteza a
2
k1
m
1 (mod n), avem a
2
k1
m
1 (mod n).
Atunci a
2
k2
m
trebuie sa e radacina patrata a lui 1, diferita de 1, deci
a
2
k2
m
1 (mod n).
Proced and iterativ, se ajunge la a
m
1 (mod n), ceea ce contrazice faptul ca algorit-
mul nu s-a oprit la Pasul 4.
Daca n este un numar impar neprim, atunci maxim 1/4 din numerele a Z

n
conduc
la un rezultat fals.

In [4] se apreciaza ca numarul maxim de astfel de valori este (n)/4,
pentru n = 9.
De exemplu, pentru n = 91 (neprim), mult imea valorilor a pentru care algoritmul
da raspuns incorect este {9, 10, 12, 16, 17, 22, 29, 38, 53, 62, 69, 74, 75, 79, 81, 82}. Pentru
n = 105 orice valoare a lui a conduce la un rezultat corect.
Deci, algorituml Miller-Rabin este un algoritm Monte-Carlo pozitiv de probabilitate
= 1/4. 2

In general se considera ca testul Miller - Rabin este mai bun decat Solovay - Strassen.
Cateva motive:
1. Solovay - Strassen este computat ional mai complex.
2. Implementarea lui Solovay - Strasen este mai dicila din cauza calculului simbolului
Jacobi.
3. Probabilitatea de eroare pentru Solovay - Strasen este 1/2, pe cand 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 (vezi Exercit iul 10.8), un test Miler - Rabin nu este
niciodata inferior unui test Solovay - Strasen.
Deoarece orice implementare a unui sistem RSA trebuie nsot ita de un generator de
numere prime mari, sunt necesare construct ii care sa genereze rapid astfel de numere.
Schneier propune urmatoarea varianta ([3]):
1. Se genereaza un numar aleator p de n bit i.
2. Se verica daca primul si ultimul bit sunt 1.
10 PRELEGEREA 10. SISTEMUL DE CRIPTARE RSA
3. Se verica daca p nu este divizibil cu numere prime mici (3, 5, 7, 11, . . .)
4
.
4. Se aplica testul Miller - Rabin cu o valoare aleatoare a. Daca p trece testul, se ia
alta valoare pentru a. Cinci teste sunt suciente. Pentru viteza, se recomanda sa se
ia valori mici pentru a. Daca p esueaza la unul din cele cinci teste, se reia algoritmul.
Se apreciaza ca utilizarea pasului 3, cu o testare a tuturor numerelor prime pana la 256
elimina aproape 80% din cazurile nefavorabile.
10.4 Anexa
10.4.1 Algoritmul lui Euclid extins
Dupa cum se stie, 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 inversele elementelor dintr-un corp nit Z
n
.
Sa reamintim ntai algoritmul lui Euclid (forma clasica):
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
.
.
. (1)
r
m2
= q
m1
r
m1
+ r
m
0 < r
m
< r
m1
r
m1
= q
m
r
m
.
Deoarece (r
0
, r
1
) = (r
1
, r
2
) = . . . = (r
m1
, r
m
) = r
m
, rezulta ca cel mai mare divizor
comun dintre r
0
si r
1
este r
m
.
Sa denim acum sirul t
0
, t
1
, . . . , t
m
astfel:
t
0
= 0, t
1
= 1
t
j
= t
j2
q
j1
t
j1
(mod r
0
), j 2 (2)
Teorema 10.4 Pentru 0 j m avem r
j
t
j
r
1
(mod r
0
) unde r
j
si t
j
sunt denite de
(1) respectiv (2).
Demonstrat ie: Se foloseste o induct ie dupa j. Pentru j = 0 si j = 1 armat ia este banala.
O presupunem adevarata pentru j = i 1 si j = i 2 (i 2) si sa o aratam pentru j = i.
Toate calculele se fac modulo r
0
.
Conform ipotezei de induct ie, r
i2
= t
i2
r
1
, r
i1
= t
i1
t
1
. Acum:
r
i
= r
i2
q
i1
r
i1
= t
i2
r
1
q
i1
t
i1
r
1
= (t
i2
q
i1
r
i1
)r
1
= t
i
r
1
. 2
Corolarul 10.1 Daca (r
0
, r
1
) = 1 atunci t
m
= r
1
1
(mod r
0
).
4
Multe implementari testeaza divizibilitatea cu numerele prime mai mici decat 256. Ecient a este
crescuta daca se merge pana la 2000
10.4. ANEX

A 11
Se poate da acum algoritmul extins al lui Euclid care 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.
Exemplul 10.6 Sa calculam 28
1
mod 75, folosind algoritmului lui Euclid extins. Vom
avea pe rand:
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.
10.4.2 Teorema chineza a resturilor
Teorema 10.5 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].
Demonstrat ie: Pentru ecare i, (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
|(n/p
i
), avem
n
p
i
y
i
0 (mod p
j
).
Alegem
x =
r

i=1
n
p
i
y
i
a
i
(mod n).
12 PRELEGEREA 10. SISTEMUL DE CRIPTARE RSA
Pentru orice i, x este o solut ie a ecuat iei x a
i
(mod p
i
) deoarece n Z
p
i
avem
x =
n
p
i
y
i
a
i
= a
i
. 2
Exemplul 10.7 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 13.
10.5 Exercit ii
10.1 Demonstrat i lemele 10.1 si 10.2.
10.2 Fie p, q numere prime impare distincte si n = pq. Denim
(n) =
(p 1)(q 1)
cmmdc(p 1, q 1)
Folosim un sistem de criptare RSA n care s-a facut modicarea a b 1 (mod (n)).
(a) Demonstrat i ca operat iile de criptare si decriptare sunt operat ii inverse si n acest
sistem.
(b) Daca p = 37, q = 79 si b = 7, calculat i valoarea exponentului a atat n acest
sistem cat si n sistemul RSA normal.
10.3 Sa se arate ca pentru orice numar n egal cu produsul primelor k (k 2) numere
prime impare testul Miller - Rabin da rezultat corect pentru orice ntreg a [2, n 2].
10.4 O modalitate curenta de a mari viteza de decriptare foloseste teorema chineza a
restului. Sa presupunem ca n = pq si d
K
(y) = y
a
(mod n). Denim d
p
= d (mod (p
1)), d
q
= d (mod (q 1)) si M
p
= q
1
(mod p), M
q
= p
1
(mod q). Vom considera
algoritmul
1. x
p
y
d
p
(mod p);
2. x
q
y
d
q
(mod q);
3. x M
p
q x
p
+ M
q
p x
q
(mod n);
4. return(x).
10.5. EXERCIT II 13
(a) Demonstrat i ca valoarea x returnata este de fapt y
d
(mod n).
(b) Pentru p = 1511, q = 2003 calculat i d
p
, d
q
, M
p
, M
q
si apoi decriptat i textul y =
152702 folosind algoritmul din acest exercit iu.
10.5 Pentru n = 837, 851 1189 aat i numarul de baze b pentru care n este un numarul
n este Euler pseudo-prim.
10.6 Scriet i un program pentru calculul simbolului Jacobi, folosind lemele 10.1 si 10.2.
Singura operat ie de factorizare permisa este mpart irea la 2. valori de test:
_
610
987
_
,
_
20964
1987
_
,
_
1234567
11111111
_
10.7 Fie
G(n) =
_
a|a Z

n
,
_
a
n
_
a
n1
2
(mod n)
_
.
(a) Demonstrat i ca G(n) este subgrup al lui Z
n
. Deci, conform Teoremei lui Lan-
grance, daca subgrupul este propriu, atunci
|G(n)|
|Z

n
|
2

n 1
2
.
(b) Sa presupunem ca n = p
k
q, unde p si q sunt numere impare prime ntre ele, p
este prim si k 2. Fie a = 1 + p
k1
q. Demonstrat i ca
_
a
n
_
a
n1
2
(mod n).
(c) Fie n = p
1
p
2
. . . p
s
unde p
i
sunt numere prime impare distincte. Sa presupunem
ca a 1 (mod p
1
) si a 1 (mod p
2
p
3
. . . p
s
), unde u este un non-reziduu patratic modulo
p
1
(un astfel de a exista, conform teoremei chineze a restului). Demonstrat i ca
_
a
n
_
1 (mod n), a
n1
2
1 (mod p
2
p
3
. . . p
s
)
(deci a
n1
2
1 (mod n).
(d) Daca n este un numar neprim impar, aratat i ca |G(n)|
n 1
2
.
(e) Pe baza celor de mai sus, aratat i ca probabiltatea de eroare a testului de primalitate
Solovay - Strassen este cel mult 1/2.
10.8 Sa se arate ca orice numar a pentru care testul Miller - Rabin da rezultat fals este un
numar Euler pseudo-prim. Reciproca este adevarata daca si numai daca n 3 (mod 4).
14 PRELEGEREA 10. SISTEMUL DE CRIPTARE RSA
10.9 Fie p un numar prim impar si cmmdc(a, p) = 1.
a) Sa presupunem ca i 2 si b
2
a (mod p
i1
). Demonstrat i ca exista un x Z
p
unic astfel ca x
2
a (mod p
i
) si x b (mod p
i1
). Gasit i o modalitate eifcienta de calcul
a lui x.
(b) Aplicat i punctul anterior n urmatoarea situat ie: plecand de la congruent a 6
2

17 (mod 19), aat i radacinile patrate ale lui 17 modulo 19


2
si modulo 19
3
.
(c) i 1, aratat i ca numarul solut iilor congruent ei x
2
a (mod p
i
) este 0 sau 2.
10.10 Folosind algoritmul lui Euclid extins, calculat i inversele:
17
1
(mod 101), 357
1
(mod 1234), 3125
1
(mod 9987)
10.11 Fie aplicat ia u : Z
105
Z
3
Z
5
Z
7
denita prin
u(x) = (x (mod 3), x (mod 5), x (mod 7))
Sa se gaseasca o formula pentru u
1
si sa se determine cu ajutorul ei u
1
(2, 2, 3).
10.12 Sa se rezolve sistemul de congruent e
x 12 (mod 25), x 9 (mod 26), x 23 (mod 27)
10.13 Sa se rezolve sistemul de congruent e
13 x 4 (mod 99), 15 x 56 (mod 101)
Bibliograe
[1] D. Stinton, Cryptography, Theory et Pratice, Second Edition, Chapman & Hall/CRC
2002
[2] A. Salomaa, Criptograe cu chei publice, Ed. Militara, 1994
[3] B. Schneier, Applied Cryptography, Second Edition, John Wiley & Sons, 1996
[4] A. Menezes, P. Oorschot, S. Vanstome, Handbook of Applied Cryptography,
[5] R. Rivest, A. Shamir, L. Adleman, A Method for Obtaining Digital Signatures and
Public-Key Cryptosystems, Communications of the ACM, Vol. 21 (2), 1978, pages
120126.
15
Prelegerea 11
Securitatea sistemului RSA
Vom trece n revista cateva modalitat i de atac ale sistemelor de criptare RSA.
Ca o prima observat ie, RSA nu rezista la un atac de tipul meet-in-the middle, strategia
ind cea prezentata n cazul general al sistemelor de criptare cu cheie publica. De aceea,
un sistem RSA este nsot it permanent de un certicat generat conform unui protocol
PKI (Public Key Infrastructure) si binent eles de un generator de numere prime.
11.1 Informat ii despre p si q
Evident, cunoasterea lui (n) este sucienta pentru spargerea sistemului.

In acest caz,
totul se reduce la rezolvarea n N

timesN a 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 factoriza n si sparge sistemul. Cu alte cuvinte,
calculul lui (n) nu este mai simplu decat factorizarea lui n.
De asemenea, o 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.
1
2 PRELEGEREA 11. SECURITATEA SISTEMULUI RSA
Exemplul 11.1 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 lungime.
11.2 Exponentul de decriptare
11.2.1 Factorizarea modulului stiind exponentul de decriptare
Daca exist a un algoritm care calculeaza exponentul de decriptare a, acesta poate utilizat
ca oracol
1
ntr-un algoritm probabilist care descompune n. Deci, se poate spune ca daca
a este descoperit, secretul factorizarii lui n este compromis; deci Bob va trebui sa schimbe
nu numai exponentul de decriptare, ci si modulul n.
Algoritmul de descompunere care va descris este de tip Las Vegas.
Denit ia 11.1 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 probabilitate .
Observat ia 11.1 Un algoritm Las Vegas poate sa nu dea raspuns, dar daca da - acest
raspuns este sigur corect. Algoritmii Monte Carlo n schimb dau totdeauna raspuns, desi
acesta uneori este incorect.
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 tentative consecutive este
m
.
Sa consideram un algoritm ipotetic A care calculeaza exponentul de decriptare a
plecand de la exponentul de criptare b. Se poate descrie atunci 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.

In acest caz x
2
1 (mod p) are ca
singure solut ii x 1 (mod p). La fel, x
2
1 (mod q) are solut iile x 1 (mod q).
Din Teorema chineza a resturilor rezulta ca x
2
1 (mod n) este echivalenta cu
x
2
1 (mod p) si x
2
1 (mod q). Vom avea deci patru radacini patrate ale unit at ii
modulo n, care pot calculate cu Teorema chineza a resturilor. Doua sunt solut iile triviale
1 (mod n), iar celelalte - numite netriviale - sunt opuse modulo n.
Exemplul 11.2 Fie n = 403 = 13 31. Cele patru radacini patrate ale lui 1 modulo 403
sunt 1, 92, 311 si 402.
1
program care raspunde numai cu Da/Nu la o ntrebare - tip a utilizatorului
11.2. EXPONENTUL DE DECRIPTARE 3
Sa presupunem acum 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)
Dar n nu poate divide nici unul din factorii din membrul drept. Deci va trebui ca
cmmdc(x+1, n) = p, cmmdc(x1, n) = q - sau invers - cmmdc(x+1, n) = q, cmmdc(x
1, n) = p. Acest cel mai mare divizor comun se poate calcula fara a sti descompunerea
lui n, construind algoritmul de mai jos, care foloseste A ca oracol:
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 sau q = x).
Deci, cunoasterea unei radacini patrate netriviale a lui 1 modulo n determina des-compunerea
lui n printr-un calcul de complexitate polinomiala.
Exemplul 11.3 Fie n = 89855713, b = 34986517, a = 82330933 si sa consideram ca
s-a tras aleator w = 5. Vom avea:
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.
Acesta este un factor al lui n; celalalt este n/9103 = 9871.
Trebuie demonstrata urmatoarea armat ie:
Armat ia 11.1 Procedeul descris este un algoritm.
Demonstrat ie: Ca o prima observat ie, daca exista sucienta sansa si w este multiplu de p
sau q, atunci el se factorizeaza imediat (pasul 2).
Daca w este prim cu n, atunci se calculeaza succesiv w
r
, w
2r
, . . . prin ridicari succesive
la patrat, pana se ajunge la un t cu w
2
t
r
1 (mod n). Deoarece ab 1 = 2
s
r
0 (mod (n)), se stie ca w
2
s
r
1 (mod n). Deci bucla while va efectua maxim s iterat ii.
La sfarsitul buclei se va gasi o valoare v
0
1 (mod n) cu v
2
0
1 (mod n). Daca
v
0
1 (mod n), algoritmul esueaza; altfel, v
0
este o radacina patrata netriviala a lui 1
modulo n care - la pasul 12 - permite descompunerea lui n. 2
Se poate arata ([2]) ca acest algoritm se termina cu succes cu probabilitate 1/2.
4 PRELEGEREA 11. SECURITATEA SISTEMULUI RSA
11.2.2 Atacul lui Wiener

In [4] este dezvoltat un atac asupra sistemului de criptare RSA n care exponentul de
decriptare a este mic; mai exact, trebuie vericate condit iile
3a < n
1/4
, q < p < 2q.
Deci, daca n are j bit i, atunci atacul va ecient pentru orice sistem de criptare RSAn
care a are mai put in de j/4 1 bit i, iar p si q sunt sucient de apropiat i
2
.
Din condit ia a b 1 (mod (n)) rezulta ca exista un numar ntreg t astfel ca
a b t (n) = 1.
Pe de-alta parte, din n = pq > q
2
rezulta q <

n, deci
0 < n (n) = pq (p 1)(q 1) = p + q 1 < 2q + q 1 < 3q < 3

n
Pe baza acestor relat ii, putem evalua

b
n

t
a

ab tn
an

1 + t((n) n)
an

<
3t

n
an
=
3 t
a

n
Deoarece t < a (evident), vom avea 3 t < 3 a < n
1/4
si deci

b
n

t
a

<
1
a n
1/4
<
1
3 a
2
.
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. Sa descriem acest procedeu.
Denit ia 11.2 O fract ie continua (nita) este un m-tuplu de numere naturale [q
1
, q
2
, . . . , q
m
]
care reprezinta notarea expresiei
q
1
+
1
q
2
+
1
q
3
+...+
1
q
m
Fie a, b doua numere ntregi pozitive prime ntre ele si (q
1
, q
2
, . . . , q
m
) secvent a caturilor
obt inute prin aplicarea algoritmului lui Euclid. Se verica usor ca
a
b
= [q
1
, q
2
, . . . , q
m
].
Vom spune ca [q
1
, q
2
, . . . , q
m
] este dezvoltarea n fract ie continua a lui a/b.
2
Bob poate tentat sa aleaga astfel de parametri, pentru cresterea vitezei de decriptare; reamintim,
RSA este un sistem relativ lent.
11.2. EXPONENTUL DE DECRIPTARE 5
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 pot deni recursiv astfel:
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
Exemplul 11.4 Sa dezvoltam n 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 acestei fract ii 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
Este adevarata urmatoarea teorema ([4],[2]):
Teorema 11.1 Daca cmmdc(a, b) = cmmdc(c, d) = 1 si

a
b

c
d

<
1
2 d
2
atunci c/d este una din convergent ele dezvoltarii n fract ie continua a lui a/b.
Sa revenim acum la sistemul de criptare RSA.

In condit iile 3a < n
1/4
si q < p < 2q,
putem da urmatorul algoritm de factorizare a lui n:
1. Plecand de la n si b (publice), se aa dezvoltarea n fract ie continua a lui b/n
(folosind algoritmul 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 conform metodei din prima sect iune a acestei prelegeri.
Daca sunt ndeplinite ipotezele de la nceputul acestui paragraf, Teorema 11.1 asigura ca
exista o convergent a care satisface pasul 2 al algoritmului.
T inand cont de observat iile anterioare, algoritmul lui Wiener poate detaliat:
6 PRELEGEREA 11. SECURITATEA SISTEMULUI RSA
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 ecuat iei 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);
Exemplul 11.5 Sa presupunem ca 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
nsa:
m =
37 60728973 1
14
= 160498000
Rezolvand ecuat ia x
2
25348x +160523347 = 0 obt inem radacinile 12347 si 13001. Deci
avem factorizarea
160523347 = 12347 13001
11.3 Informat ie part iala despre textul clar
Sa studiem put in informat ia din textul clar care ar putea trada sistemul de criptare RSA.
Stiind ca 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 scrierea binara a lui x;
2. jum(y) - va da 0 daca 0 x < n/2, 1 daca n/2 x n 1.
Vom arata ([3]) ca orice algoritm care poate calcula par(y) sau jum(y) poate utilizat ca
oracol pentru regasirea textului clar x. Altfel spus, a calcula una din aceste funct ii este
la fel de dicil cu a decripta tot textul y.
Faptul ca cele doua funct ii sunt polinomial echivalente rezulta din
jum(y) = par(y e
K
(2) mod n) par(y) = jum(y e
K
(2
1
) mod n)
11.3. INFORMAT IE PART IAL

A DESPRE TEXTUL CLAR 7


si din relat ia e
K
(x
1
x
2
) = e
K
(x
1
)e
K
(x
2
).
Sa aratam acum cum 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]
La pasul 2 se calculeaza y
i
= jum(y (e
K
(2))
i
) = jum(e
K
(x 2
i
)) pentru 0 i [log
2
n].
Se observa ca
jum(e
K
(x)) = 0 x
_
0,
n
2
_
jum(e
K
(2x)) = 0 x
_
0,
n
4
_

_
n
2
,
3n
4
_
jum(e
K
(4x)) = 0 x
_
0,
n
8
_

_
n
4
,
3n
8
_

_
n
2
,
5n
8
_

_
3n
4
,
7n
8
_
, etc.

In acest mod, x se poate localiza printr-o cautare binara, realizata la pasii 7 11.
Exemplul 11.6 Fie n = 1457, b = 779, iar textul criptat este y = 722. Calcul am
e
K
(2) = 946. Sa presupunem ca oracolul jum din pasul 3 da urmatoarele raspunsuri:
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:
8 PRELEGEREA 11. SECURITATEA SISTEMULUI RSA
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.
11.4 Algoritmi de descompunere n factori primi
Sunt extrem de numeroase lucrarile care trateaza descompunerea numerelor n factori
primi. De aceea aici vom face doar o trecere n revista a celor mai cunoscut i algoritmi de
factorizare.
Astfel, 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 ecienta.
11.4.1 Metoda p 1
Un algoritm simplu care se poate aplica uneori si la numere mari este metoda p 1
enunt ata de Pollard n 1974. El foloseste esent ial trei variabile de intrare: numarul
n (impar) care trebuie descompus, o margine B si un numar oarecare g [2, n 1].
Descrierea algoritmului este:
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
Sa vedem cum funct ioneaza acest algoritm:
Presupunem ca p este un divizor prim al lui n si ca tot i divizorii primi ai lui p 1 la
puterile la care apar n descompunerea lui p1 sunt mai mici decat B. Atunci p1|B!.
La terminarea ciclului de la pasul 2, avem
a g
B!
(mod n) deci a g
B!
(mod p)
11.4. ALGORITMI DE DESCOMPUNERE

IN FACTORI PRIMI 9
deoarece p|n. Cum g
p1
1 (mod p) conform teoremei lui Fermat (n afara de cazul
cand p|g) si cum (p 1)|B!, se obt ine a 1 (mod p).
Deci, la pasul 3 se ajunge la p|(a 1) si p|n, de unde rezulta p|d = (a 1, n).
Numarul d este un divizor netrivial al lui n (n afara de cazul a = 1 la pasul 3). Avand
un divizor netrivial d, procesul se poate itera.
Exemplul 11.7 Sa consideram 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!.
Observat ia 11.2 Condit ia ca metoda sa funct ioneze este ca divizorii primi la puterile
la care apar n descompunerea lui p1 sa e mai mici decat b. Daca s-ar considera ca
doar divizorii primi sa verice aceasta condit ie, rezultatul ar fals. Astfel, sa consider am
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 polinomial scazuta
(O(BlogB(log n)
3
)). Daca B creste pana la

n, el va reusi totdeauna, dar nu va mai
rapid decat ciurul lui Eratostene.
Deci slabiciunea metodei rezida n faptul ca n trebuie sa admita un divizor p cu
proprietatea ca p 1 sa aiba numai factori primi mici. Pentru a rezista la acest atac, se
recomanda folosirea numerelor prime tari.
Denit ia 11.3 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.
Exista diversi algoritmi pentru generarea numerelor prime tari. Pentru exemplicare am
ales algoritmul lui Gordon:
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)
Teorema 11.2 Numarul p generat de algoritmul Gordon este un numar prim tare.
10 PRELEGEREA 11. SECURITATEA SISTEMULUI RSA
Demonstrat ie: Cum r = s, vom avea s
r1
1 (mod r) (Fermat). Deci p
0
1 (mod r) si
p
0
1 (mod s). Acum:
(1) p 1 = p
0
+ 2 j r s 1 0 (mod r), deci p 1 are pe r drept divizor prim.
(2) p + 1 = p
0
+ 2 j r s + 1 0 (mod s), deci s este un divizor prim al lui p + 1.
(3) r 1 = 2 i t 0 (mod t), deci numarul prim t divide pe r 1. 2
Practic, 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.
Exemplul 11.8

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 modulara.
De asemenea este utilizat des si b = 2
16
+ 1 = 65537. Acest numar are numai doi de
1 n reprezentarea binara, asa ca o criptare foloseste 16 ridicari la patrat modulare si o
nmult ire modulara.
11.4.2 Algoritmul lui Dixon si sita patratica
Algoritmul lui Dixon se bazeaza pe o idee extrem de simpla: 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 cauta ntai 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 ca 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.
Exemplul 11.9 Fie n = 15770708441 si alegem mult imea B= {2, 3, 5, 7, 11, 13}. Se-
lectam
8340934156
2
3 7 (mod n)
12044942944
2
2 7 13 (mod n)
2773700011
2
2 3 13 (mod n)
Daca se ia produsul acestor trei congruent e, se ajunge la
(8340934156 12044942944 2773700011)
2
(2 3 7 13)
2
(mod n)
11.5. ALTE TIPURI DE ATAC 11
Reducand cont inutul parantezelor modulo n, se obt ine
9503435785
2
546
2
(mod n).
Vom calcula acum cmmdc(9503435785 546, 15770708441) = 115759,
care va da un divizor 115759 al lui n.
Fie B= {p
1
, p
2
, . . . , p
B
}; consideram un numar C put in mai mare decat B (de exemplu
C = B + 10) 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 (elementele sale se iau modulo 2)

j
= (
1j
, . . . ,
Bj
) Z
B
2
.
Daca se poate determina o submult ime a acestor vectori a caror suma modulo 2 este
(0, 0, . . . , 0), patratul produsului elementelor x
j
corespunzatoare va avea ecare divizor n
B de un numar par de ori.
Exemplul 11.10 Revenind la Exemplul 11.9, 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).
Evident, a cauta o submult ime de C vectori de suma nula modulo 2 revine la a cauta o
relat ie de dependent a liniara (n Z
2
) ntre acesti vectori. Daca C > B, o asemenea relat ie
exista si poate gasita usor prin eliminare gaussiana.
Ar mai de vazut cum sa se obt ina acei x
j
pentru care x
2
j
se descompun n factori
primi din baza B. Sunt mai multe metode posibile pentru aceasta; de exemplu, ciurul
patratic - construit de Pomerance - foloseste numere ntregi de forma
x
j
= j + [

n], j = 1, 2, . . . .
De remarcat ca daca B este mare, este foarte posibil ca un ntreg x
j
sa se descompuna
n B, dar numarul acestor x
j
trebuie sa creasca pentru a cauta relat iile de dependent a.
Se arata ca alegerea optima pentru B este n jur de
_
e

logn log logn


.
11.5 Alte tipuri de atac
11.5.1 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)
Aceasta proprietate de hmomorsm a criptarii poate oferi unui adversar activ posibilitatea
unui atac cu text clar ales.
12 PRELEGEREA 11. SECURITATEA SISTEMULUI RSA
Sa presupunem ca Oscar vrea sa decripteze mesajul c = m
b
(mod n) trimis de Bob
lui Alice, iar Alice are amabilitatea sa i decripteze lui Oscar orice text criptat primit
(nafara de c, bineint eles). Atunci Oscar va alege un numar aleator x Z

n
, va calcula
c
1
= c x
b
(mod n) si va solicita decriptarea lui. Alice va decripta pentru el 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).
Acest tip de atac este prevenit de obicei impunand anumite structuri speciale asupra
textelor clare.
11.5.2 Atac bazat pe un exponent mic de criptare
Asa cum s-a aratat n Exemplul 11.8, pentru marirea vitezei de criptare se prefera
exponent i mici de criptare (cum este b = 3). Aceasta alegere are unele slabiciuni, care
permit atacuri n anumite condit ii.
Astfel, sa presupunem ca Alice doreste sa trimita acelasi text clar m la trei destinatari
diferit i, care au modulele n
i
, dar acelasi exponent de criptare b = 3. Deci textele criptate
vor c
i
= m
3
(mod n
i
) i = 1, 2, 3. Oscar le intercepteaza si rezolva sistemul
x c
1
(mod n
1
), x c
2
(mod n
2
), x c
3
(mod n
3
)
folosind teorema chineza a resturilor, care asigura existent a unui x [0, n
1
n
2
n
3
).
Deoarece m
3
< n
1
n
2
n
3
, va rezulta ca x = m
3
. Deci Oscar va aa textul clar m
extragand radacina de ordinul 3 din soluta x.

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.
Folosirea unui modul comun de criptare de catre mai mult i utilizatori permite de
asemenea un atac usor. Sa presupunem ca Alice trimite acelasi mesaj m catre doi utiliza-
otri 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).
Fara a micsora generalitatea, putem presupune ca cmmdc(b
1
, b
2
) = 1. Oscar va folosi
algoritmul lui Euclid pentru a determina numerele ntregi r, s astfel ca
r b
1
+ s b
2
= 1
Unul din numerele r, s este negativ; sa presupunem ca este r (pentru s negativ se pro-
cedeaza analog). Atunci Oscar obt ine textul clar m folosind egalitatea
(c
1
1
)
r
c
s
2
m (mod n)
11.6. ALTE SISTEME DE CRIPTARE

INRUDITE CU RSA 13
11.5.3 Atacuri ciclice
Fie c = m
b
(mod n) un text criptat si k un ntreg pozitiv astfel ca
c
b
k
c (mod n)
(un astfel de k exista totdeauna, deoarece criptarea RSA este de fapt o permutare n
spat iul Z
n
al textelor clare). Rezulta ca
c
b
k1
m (mod n)
Aceasta observat ie conduce la un atac ciclic: Oscar calculeaza c
b
i
(mod n) pentru i =
1, 2, . . . pana gaseste un k astfel ca c
b
k
c (mod n). Atunci va decripta c n c
b
k1

m (mod n).
Un atac ciclic generalizat consta n aarea celui mai mic ntreg pozitiv k astfel ca
cmmdc(c
b
k
c, n) > 1. Vom avea implicat ia
c
b
k
c (mod p), c
b
k
c (mod q) = k = p
si similar
c
b
k
c (mod p), c
b
k
c (mod q) = k = q

In ambele cazuri s-a obt inut factorizarea lui n.


Pe de-alta parte, daca
c
b
k
c (mod p), c
b
k
c (mod q) = k = nsic
b
k
c (mod n)

In acest caz s-a reust i decriptarea m = c


b
k1
(mod n).
Folosirea unor numere prime tari asigura o protect ie sucienta pentru acest gen de
atac.
11.6 Alte sisteme de criptare nrudite cu RSA
11.6.1 Sistemul de criptare Rabin
Sistemul de criptare Rabin este o varianta a sistemului RSA (propusa n 1979), care ofera
o securitate de calcul echivalenta. Descrierea sa este:
Fie n = pq unde p, q sunt numere prime distincte, p, q 3 (mod 4). Se ia
P = C= Z
n
si 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
14 PRELEGEREA 11. SECURITATEA SISTEMULUI RSA
Observat ia 11.3 Numerele prime n cu n 3 (mod 4) se numesc numere Blum.
Exista patru texte clare distincte care se pot criptan acelasi text. Sa detaliem aceasta
armat ie:
Fie una din cele patru radacini patrate modulo n ale unitat ii, si x Z
n
. Efectuam
calculele
e
K
_

_
x +
B
2
_

B
2
_
=
2
_
x +
B
2
_
2

_
B
2
_
2
= x
2
+ Bx = e
K
(x)
(calculele s-au realizat n Z
n
, iar 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 si (x + B/2) B/2,
unde este o radacina patrata netriviala a unitat ii modulo n.
Vericarea este imediata.

In general, Bob nu are nici un mijloc de a distinge care din cele patru mesaje este cel
corect, daca nu dispune de informat ii suplimentare.
Sa vedem cum se realizeaza decriptarea. Bob primeste mesajul criptat y si ncearca
sa sa determine x astfel ca x
2
+ Bx y (mod n).
Aceasta este o ecuat ie de gradul doi n x. Termenul de gradul 1 se poate elimina
folosind substitut ia x
1
= x + B/2 (sau echivalent x = x
1
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. Aceasta echivaleaza 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 mo-dulo n.

Intr-o criptare corecta, C este totdeauna un rest patratic modulo p si q. Daca p


3 (mod 4), exista o formula simpla pentru extragerea radacinilor patrate dintr-un rest
patratic C modulo p. Avem (calculele se fac modulo p):
_
C
(p+1)/4
_
2
C
(p+1)/2
C
(p1)/2
C C
(s-a folosit Teorema 10.1). Avem deci cele patru radacini patratice
C
(p+1)/4
(mod p), C
(q+1)/4
(mod q)
care prin combinare pe baza teoremei chineze a resturilor dau cele patru radacini
patrate ale lui C.
11.6. ALTE SISTEME DE CRIPTARE

INRUDITE CU RSA 15
Observat ia 11.4 De remarcat ca nu se cunoaste un algoritm polinomial determinist pen-
tru extragerea radacinilor patratice modulo p pentru p 1 (mod 4); n aceasta situat ie
exista doar algoritmi Las Vegas.
Dupa determinarea acestor radacini x
1
, se aa x = x
1
B/2. Aceasta da formula de
decriptare din enunt ul metodei Rabin.
Exemplul 11.11 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).
Sa presupunem ca Bob vrea sa decripteze textul y = 22. El va trebui sa determine
radacinile patrate ale lui 23 modulo 7 si 11. Cum aceste doua module sunt congruente cu
3 modulo 4, se poate aplica formula aratata anterior:
23
(7+1)/4
2
2
4 (mod 7) 23
(11+1)/4
1
3
1 (mod 11).
Utilizand teorema chineza a resturilor, se obt in radacinile patrate ale lui 23 modulo 77:
11 2 a + 7 8 b (mod 77)
unde a = 4, b = 1. Calculand, se obt in valorile 10, 32. Cele patru texte clare
posibile (calculate modulo 77) vor deci:
10 43 = 44, 67 43 = 24, 32 43 = 66, 45 43 = 2.
Se verica imediat ca toate aceste patru texte clare se cripteaza n 22.
Sa studiem acum securitatea sistemului de criptare Rabin. Sa presupunem ca exista un
algoritm de decriptare A; acesta poate atunci utilizat ntr-un algoritm Las Vegas care
descompune modulul n cu probabilitate 1/2; algoritmul este urmatorul:
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 sau q, Stop
Sa observamntai ca y = e
K
_
r
B
2
_
, deci la pasul 3 se decripteaza x sub forma r B/2.
Cum la pasul 5. avem x
2
1
r
2
(mod n), rezulta 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)
16 PRELEGEREA 11. SECURITATEA SISTEMULUI RSA
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.
Sa calculam probabilitatea de succes a algoritmului ([2]), din n 1 extrageri posibile
ale lui r. Pentru doua resturi nenule r
1
, r
2
, se deneste
r
1
r
2
r
2
1
r
2
2
(mod n)
Aceasta este evident o relat ie de echivalent

Toate clasele de echivalent a din Z

n
sunt de
cardinal patru, ecare ind de forma [r] = {r,

alr}.

In algoritmul anterior, doua valori
dintr-o clasa de echivalent a conduc la acelasi y. Sa consideram un x
1
calculat plecand de
la valoarea x returnata de oracolul A pentru un y dat. x
1
este un element din [r]. Daca
x
1
= r, algoritmul esueaza; daca x
1
=

alr, el reuseste sa descompuna n. Cum r este


aleator, cele patru posibilitat i sunt echi-probabile, deci algoritmul da reusita n 50% din
cazuri.
11.7 Exercit ii
11.1 Folosind metoda p 1 si diverse margini B, factorizat i 262063 si 9420457. Cat
este B pentru ecare caz ?
11.2 Fie n = 317940011 si b = 7753781. Descompunet i n n factori, folosind algoritmul
lui Wiener.
11.3 Consideram algoritmul lui Rabin cu p = 199, q = 211, n = pq si B = 1357.
(a) Criptat i mesajul 32767;
(b) Determinat i cele 4 mesaje clare care duc la textul criptat y = e
K
(32767).
Bibliograe
[1] A. Menezes, P. Oorschot, S. Vanstome, Handbook of applied cryptography
[2] D. Stinton, Cryptography, theory et practice, Chapman & Hall/CRC, 2002
[3] A. Salomaa, Criptograe cu chei publice, Ed. Militara, 1994
[4] M.J. Wiener - Cryptanalysis of short RSA secret exponents, IEEE Trans on Informa-
tion Theory, 36 (1990), 553-558
17
Prelegerea 12
Sistemul de criptare El Gamal
12.1 Descrierea algoritmului de criptare El Gamal
Sistemul de criptare El Gamal
1
, prezentat n 1985 (vezi [1]) de Taher ElGamal, se bazeaza
pe problema logaritmului discret, 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

.
Exemplul 12.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
De aici 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 b.
1
Implementari ale sistemului sunt cont inute n softuri pentru GNU Privacy Guard si PGP pentru a
lista cele mai cunoscute aplicat ii.
1
2 PRELEGEREA 12. SISTEMUL DE CRIPTARE EL GAMAL
Observat ia 12.1 Pentru problema logaritmului discret, nu este obligatoriu ca p sa e
numar prim. Important este ca sa e radacina primitiva de ordinul p 1 a unitat ii:
i (0 < i < p 1),
i
, 1 (mod p). Teorema lui Fermat asigura
p1
1 (mod p).
La o alegere convenabila a lui p, problema este NP - completa. Pentru sigurant a, p
se alege de minim 512 bit i
2
iar p 1 sa aiba cel put in un divizor prim mare. Pentru un
astfel de modul p, spunem ca problema logaritmului discret este dicila n Z
p
. Utilitatea
acestei cerint e rezida n faptul ca, desi este foarte dicil de calculat un logaritm discret,
operat ia inversa de exponent iere este foarte simpla (dupa cum s-a vazut la sistemul
RSA).
Sistemul de criptare El Gamal este urmatorul:
Fie p numar prim pentru care problema logaritmului discret n Z
p
este dicila, si
Z

p
primitiv.
Fie T= 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)
Vericarea este imediata:
y
2
(y
a
1
)
1
x
k
(
ka
)
1
x
k
(
k
)
1
x (mod p)
Sistemul este evident nedeterminist: criptarea depinde de x si de o valoare aleatoare
aleasa de Alice. Exista deci mai multe texte criptate corespunzatoare unui anumit text
clar.
Exemplul 12.2 Sa alegem 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 (sa
spunem 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).
2
Pentru o securitate pe termen lung se recomanda 1024 bit i ([3]).
12.2. CALCULUL LOGARITMULUI DISCRET 3
Observat ia 12.2
1. Un dezavantaj al sistemului El Gamal consta n dublarea lungimii textului criptat
(comparativ cu lungimea textului clar).
2. Daca (y
1
, y
2
), (z
1
, z
2
) sunt textele criptate ale mesajelor m
1
, m
2
atunci se poate
deduce imediat un text criptat pentru m
1
m
2
: (y
1
z
1
, y
2
z
2
). Similar poate dedusa o
criptare pentru 2m
1
(sau 2m
2
). Acest lucru face sistemul El Gamal sensibil la un atac cu
text clar ales.
3. Indicat ia ca pentru criptarea a doua texte diferite sa se foloseasca valori diferite ale
parametrului k este esent iala: astfel, sa prsupunem ca mesajele m
1
, m
2
au fost criptate n
(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.
12.2 Calculul logaritmului discret

In cele de mai jos presupunem ca p este numar prim, iar este o radacina primitiva de
ordinul p 1 a unitat ii. Aceste doua valori ind xate, problema logaritmului se poate
reformula astfel:
Fiind dat un Z

p
, sa se determine exponentul a Z
p1
astfel ca
a
(mod p).
Evident aceasta problema se poate rezolva printr-o cautare directa (se calculeaza puterile
lui ) n timp O(p) si folosind O(1) memorie. Pe de-alta parte, daca se calculeaza anterior
ntr-o tabela toate valorile (a,
a
mod p), aarea valorii cautate se poate face n O(1), dar
cu un spat iu de complexitate O(p).
Tot i algoritmii construit i pentru calculul logaritmului discret stabilesc un compromis
spat iu - timp.
12.2.1 Algoritmul Shanks
Fie m =
_
_
p 1
_
. Algoritmul Shanks este:
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
(identice pe a doua pozit ie);
4. Se deneste log

= m j +i (mod (p 1))
De remarcat ca 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 totdeauna cu succes.
Implementarea acestui algoritm se poate face n timp O(m) si spat iu O(m).
4 PRELEGEREA 12. SISTEMUL DE CRIPTARE EL GAMAL
Exemplul 12.3 Fie p = 809 si sa determinam 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 j 28 este:
(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 i 28 este:
(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 (eventual simultan) cele doua liste se gaseste (10, 644) L
1
, (19, 644) L
2
.
Se poate scrie deci
log
3
525 = 29 10 + 19 = 309.
Se verica usor ca 3
309
525 (mod 809).
12.2.2 Algoritmul Pohlig - Hellman
Mai ntai, un rezultat matematic:
Lema 12.1 Fie x Z
p
un element primitiv. Atunci
x
m
x
n
(mod p) m n (mod (p 1))
Demonstrat ie: Relat ia x
m
x
n
(mod p) se poate rescrie x
mn
1 (mod p). Dar
conform Teoremei lui Fermat x
p1
1 (mod p) si x
i
, 1 (mod p) pentru 0 < i < p 1.
Deci p1[mn, sau mn 0 (mod (p1)), relat ie echivalenta cu m n (mod p1)).
2
Revenind la sistemul de criptare El Gamal, sa consideram descompunerea n factori
primi
p 1 =
k

i=1
q
c
i
i
.
12.2. CALCULUL LOGARITMULUI DISCRET 5
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).
Sa presupunem deci ca q este un 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.
La primul pas trebuie calculat a
0
. Se porneste de la observat ia ca

(p1)/q

(p1)a
0
/q
(mod p).
Pentru a arata aceasta, deoarece
(p1)/q

(p1)(x+q
c
s)/q
(mod p), este sucient sa se
verice ca
(p1)(x+q
c
s)/q

(p1)a
0
/q
(mod p).
Aceasta relat ie este adevarata dacasi numai daca
(p 1)(x +q
c
s)
q

(p 1)a
0
q
(mod p 1),
ceea ce se poate verica prin calcul direct:
(p 1)(x +q
c
s)
q

(p 1)a
0
q
=
p 1
q
(x +q
c
s a
0
) =
p 1
q
_
c1

i=0
a
i
q
i
+q
c
s a
0
_
=
p 1
q
_
c1

i=1
a
i
q
i
+q
c
s
_
= (p 1)
_
c1

i=1
a
i
q
i1
+q
c1
s
_
0 (mod p 1).
Putem acum sa ncepem calculul lui
(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
. 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 obt ine
(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 deter-
minarea coecient ilor a
2
, . . . , a
c1
.
Formal, algoritmul Pohlig - Hellman este urmatorul:
6 PRELEGEREA 12. SISTEMUL DE CRIPTARE EL GAMAL
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.
Reamintim, este o radacina primitiva de ordinul p a unitat ii, iar q este numar prim; n
plus, p 1 0 (mod q
c
), p 1 , 0 (mod q
c+1
).
Algoritmul calculeaza a
0
, a
1
, . . . , a
c1
unde log

(mod q
c
) =
c1

i=0
a
i
q
i
.
Exemplul 12.4 Fie p = 29. Avem n = p 1 = 28 = 2
2
7
1
.
Sa alegem = 2, = 18 si ne punem problema determinarii lui a = log
2
18. Pentru
aceasta se va calcula a (mod 4) si a (mod 7).
Sa ncepem cu q = 2, c = 2. Avem (toate calculele se efectueaza modulo 29):

0
= 1,
1
=
28/2
= 2
14
= 28, deci =
28/2
= 18
14
= 28, de unde 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).
Sa consideram 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
.
12.2.3 Algoritmul Pollard Rho
Fie p un numar prim si Z
p
un element de ordin n. Vom considera 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 mult imi de cardinale aproximativ egale;
consideram funct ia
f : G

Z
n
Z
n
G

Z
n
Z
n
denita 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
Pe baza acestei funct ii vom genera recursiv triplete (x, a, b) cu proprietatea x =
a

b
. Fie
(1, 0, 0) tripletul init ial (el are aceasta proprietate).

In continuare
(x
i
, a
i
, b
i
) =
_
(1, 0, 0) daca i = 0
f(x
i1
, a
i1
, b
i1
) daca i 1
12.2. CALCULUL LOGARITMULUI DISCRET 7

In continuare se compara tripletele (x


2i
, a
2i
, b
2i
) si (x
i
, a
i
, b
i
) pana se gaseste o valoare a
lui i pentru care 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
(mod n)
Exemplul 12.5 Sa consideram p = 809 si = 89; ordinul lui n Z

809
este n = 101.
Se verica usor ca = 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, 2, 3, . . . obt inem urmatoarele triplete:
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
log
89
618 = (11 5) (11 15)
1
(mod 101) = 6 25 (mod 101) = 49
(n grupul multiplicativ Z

809
).
8 PRELEGEREA 12. SISTEMUL DE CRIPTARE EL GAMAL
O formalizare a algoritmului Pollard Rho pentru calculul logaritmului discret
3
este:
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((a a
1
) (b
1
b)
1
(mod n))
procedure f(x, a, b)
1. if x S
1
then f ( x, a, (b + 1) (mod n));
2. if x S
2
then f (x x, 2 a (mod n), 2 b (mod n));
3. if x S
3
then f ( x, (a + 1) (mod n), b);
4. return(f).
end procedure

In cazul cmmdc(b
1
b, n) = d > 1, congruent a c (b
1
b) a a
1
(mod n) are d solut ii
posibile. Daca d este destul de mic, aceste solut ii se pot aa si o simpla operat ie de
vericare gaseste solut ia corecta.
12.2.4 Metoda de calcul a indicelui
Aceasta metoda seamana cu unul din cei mai buni algoritmi de descompunere n factori.
Vom da doar o descriere informala a acestui algoritm.
Se foloseste o baza de divizori B compusa din B numere prime mici Prima etapa
consta n aarea logaritmilor elementelor din baza B.

In a doua etapa, folosind acesti logaritmi, se va determina logaritmul discret al lui .


I: Se construiesc C = B + 10 congruent e modulo 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.
Problema ar cum sa se gaseasca aceste C congruent e. O metoda elementara consta
din trei pasi: alegerea aleatoare a unui x, calculul lui
x
(mod p) si vericarea daca acest
numar are tot i divizorii n B.
II: Acum se poate determina log

cu un algoritm de tip Las Vegas. Se alege aleator


un numar ntreg s (1 s p 2) si se determina =
s
(mod p).
3
Un algoritm similar Pollard Rho poate construit pentru factorizarea unui numar. Detalii se gasesc
de exemplu n [4].
12.3. SECURITATEALOGARITMILOR DISCRET I FAT

ADE INFORMAT II PART IALE9
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 p 1).
De aici - prin evaluarea membrului drept, se poate determina log

.
Exemplul 12.6 Fie p = 10007 si = 5 (element primitiv). Sa consideram
B= 2, 3, 5, 7 ca baza de divizori. Cum evident log
5
5 = 1, trebuiesc determinat i doar
trei logaritmi de 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.
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 acum 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
.
Cum acesta se poate factoriza n B, avem
log
5
9451 = 4log
5
2+log
5
3+2log
5
5+log
5
7s = 4 6578+6190+2 1+13017736 = 6057,
calculele ind realizate modulo 10006.
Se verica usor ca 5
6057
9451 (mod 10007).
12.3 Securitatea logaritmilor discret i fat a de informat ii
part iale

In aceasta sect iune vom considera un tip de atac care ncearca sa determine valoarea unuia
sau mai multor bit i din reprezentarea binara a logaritmilor discret i.
Mai exact se ncearca calculul lui L
i
(): al i-lea bit (numarand de la cel mai put in
reprezentativ) din scrierea n binar a lui log

peste Z

p
; deci 1 i log
2
(p 1)|.
Armat ia 12.1 L
1
() poate calculat printr-un algoritm de complexitate polinomial a.
10 PRELEGEREA 12. SISTEMUL DE CRIPTARE EL GAMAL
Demonstrat ie: Sa consideram 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)
Pe baza observat iilor
1. f(x) = f(p x),
2. x
2
y
2
(mod p) x = y (mod p)
rezulta card(RP(p)) = (p 1)/2 (deci exact jumatate din elementele lui Z

p
sunt resturi
patratice).
Sa presupunem acum ca Z
p
este 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.
Conform teoremei 10.1 (Prelegerea 10), este rest patratic daca si numai daca

p1
2
1 (mod p)
fapt care poate testat cu un algoritm de compmexitate polinomiala. Deci putem da o
formula pentru calculul lui L
1
():
L
1
() =
_
0 daca
(p1)/2
1 (mod p)
1 altfel
2
Armat ia 12.2 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 calcula L
s+1
() permite rezolvarea problemei
logaritmului discret n Z
p
.
Prima parte a armat iei este simpla.
Vom demonstra a doua parte pentru cazul s = 1. Deci vom arata ca daca p este prim
si p 3 (mod 4), atunci orice oracol care da L
2
() poate folosit la rezolvarea problemei
logaritmului discret n Z
p
.
Se stie (Prelegerea 11, algoritmul lui Rabin) ca daca este rest patratic n Z
p
si
p 3 (mod 4), atunci radacinile patrate ale lui modulo p sunt
(p+1)/4
(mod p).
Lema 12.2 Daca p 3 (mod 4) si ,= 0, atunci L
1
(p ) = 1 L
1
().
Demonstrat ia lemei: Fie
a
(mod p). Atunci
a+(p1)/2
(mod p). Deoarece
p 3 (mod 4), numarul (p 1)/2 este impar. Deci L
1
() ,= L
1
(p ). 2
12.3. SECURITATEALOGARITMILOR DISCRET I FAT

ADE INFORMAT II PART IALE11
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. 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
.
Exemplul 12.7 Fie p = 19, = 2, = 6. Deoarece numerele sunt foarte mici, se pot
determina usor valorile pentru L
1
si L
2
. Ele sunt adunate n tabelul
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, aplicam algoritmul. 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.
12 PRELEGEREA 12. SISTEMUL DE CRIPTARE EL GAMAL
12.4 Generalizarea sistemului de criptare El Gamal
Sistemul de criptare El Gamal se poate construi pe orice grup (n loc de Z

n
) n care
problema logaritmului (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 generat de . Daca H, sa se determine
un a (unic) (0 a card(H) 1) cu
a
= , unde
a
= . . .
. .
a ori
Denirea sistemului de criptare El Gamal n subgrupul H n loc de Z

n
este usor de
realizat; anume:
Fie (G, ) un grup si G pentru care problema logaritmului discret n H =

i
[ i 0 este dicila.
Fie T= G, (= GG si /= (G, , a, )[ =
a
.
Valorile , sunt publice iar a este secret.
Pentru K = (G, , a, ) si un k Z
card(H)
aleator (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
.
De remarcat ca pentru criptare/decriptare nu este necesara cunoasterea ordinului card(H)
de marime al subgrupului; Alice poate alege aleator un k, (0 k card(G) 1) cu care
cele doua procese funct ioneaza fara probleme.
Se poate observa de asemenea ca G nu este neaparat abelian (H n schimb este, ind
ciclic).
Sa studiem acum problema logaritmului discret generalizat. Deoarece H este sub-
grup ciclic, orice versiune a problemei este echivalenta cu problema logaritmului dis-
cret ntr-un grup ciclic.

In schimb, se pare ca dicultatea problemei depinde mult de
reprezentarea grupului utilizat.
Astfel n grupul aditiv Z
n
, problema este simpla; aici exponent ierea
a
este de fapt
nmult irea cu a modulo n. Deci, problema logaritmului discret consta n aarea unui
numar ntreg a astfel ca
a (mod n).
Daca se alege astfel ca (, n) = 1 ( este generator al grupului), are un invers
multiplicativ modulo n, care se determina usor cu algoritmul lui Euclid. Atunci,
a = log

=
1
(mod n)
12.5. EXERCIT II 13
Sa vedem cum se reprezinta problema logaritmului discretn grupul multiplicativ Z

p
cu
p prim. Acest grup este ciclic de ordin p1, deci izomorf cu grupul aditiv Z
p1
. Deoarece
problema logaritmului discret n grupul aditiv se poate rezolva usor, apare ntrebarea daca
se poate rezolva aceasta problema n Z

p
reducand-o la Z
p1
.
Stim ca existaun 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 p 1).
Acum, cautarea lui a se realizeaza cu log

= ()(())
1
(mod (p 1)).
Deci, daca se gaseste o metoda ecace pentru calculul izomorsmului , se obt ine
un algoritm ecace pentru calculul logaritmului discret n Z

p
. Problema este ca nu se
cunoaste 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 exista nca un algoritm ecient pentru
construct ia explicita a unui izomorsm.
Aceasta metoda se poate aplica problemei logaritmului discret ntr-un grup nit ar-
bitrar. Implementarile au fost realizate n general pentru Z
p
, GF(2
p
) (unde problema
logaritmului discret este dicila) sau curbe eliptice.
12.5 Exercit ii
12.1 Implementat i algoritmul Shanks pentru aarea logaritmului discret. Aplicat ii pen-
tru aarea log
106
12375 n Z

24691
si log
6
248388 n Z

458009
.
12.2 Numarul p = 458009 este prim si = 2 are ordinul 57251 n Z

p
. Folosind algorit-
mul Pollard Rho, calculat i log
2
56851 n Z

p
. Luat i valoarea init iala x
0
= 1 si partit ia din
Exemplul 12.5.
12.3 Fie p un numar prim impar si k un numar pozitiv. Grupul multiplicativ Z

p
k
are
ordinul p
k1
(p 1) si este ciclic. Un generator al acestui grup este numit element
primitiv modulo p
k
.
(a) Daca este un element primitiv modulo p, aratat i ca cel put in unul din numerele
, +p este element primitiv modulo p
2
.
(b) Descriet i cum se poate poate verica ecient ca 3 este o radacina primitiva modulo
29 si modulo 29
2
. Aratat oi ntai ca daca este o radacina primitiva modulor p si modulo
p
2
, atunci ea este radacina primitiva modulo p
j
pentru orice j ntreg.
(c) Gasit i un ntreg care este radacina primitiva modulo 29 dar nu este radacina
primitiva modulo 29
2
.
(d) Folosit i algoritmul Pohlig - Hellman pentru a calcula log
3
3344 n Z

24389
.
14 PRELEGEREA 12. SISTEMUL DE CRIPTARE EL GAMAL
12.4 Implementat i algoritmul Pohlig Hellman. Aplicat ie pentru log
5
8563 n Z
28703
si
log
10
12611 n Z
31153
.
12.5 Fie p = 227. Elementul = 2 este primitiv n Z

p
.
(a) Calculat i
32
,
40
,
59
si
156
modulo p si apoi factorizat i-le pentru baza de factori
2, 3, 5, 7, 11.
(b) Folosind faptul ca log
2
2 = 1, calculat i log
2
3, log
2
5, log
2
7, log
2
11 folosind factor-
izarea anterioara.
(c) Sa presupunem ca vrem sa calculam log
2
173.

Inmult im 173 cu valoarea aleatoare
2
177
(mod p). Factorizat i rezultatul peste baza de factori data mai sus si determinat
log
2
173.
12.6 Sa implementam sistemul El Gamal n GF(3
3
). Polinomul x
3
+ 2x
2
+ 1 este ire-
ductibil peste Z
3
[x] si deci GF(3
3
) = Z
[
x]/(x
3
+ 2x
2
+ 1). Asociem cele 26 luitere ale
alfabetului cu cele 26 elemente nenule ale corpului (ordonate lexicograc):
A 1 B 2 C x
D x + 1 E x + 2 F 2x
G 2x + 1 H 2x + 2 I x
2
J x
2
+ 1 K x
2
+ 2 L x
2
+x
M x
2
+x + 1 N x
2
+x + 2 O x
2
+ 2x
P x
2
+ 2x + 1 Q x
2
+ 2x + 2 R 2x
2
S 2x
2
+ 1 T 2x
2
+ 2 U 2x
2
+x
V 2x
2
+x + 1 W 2x
2
+x + 2 X 2x
2
+ 2x
Y 2x
2
+ 2x + 1 Z 2x
2
+ 2x + 2
Sa presupunem ca Bob foloseste = x si p = 11 ntr-un sistem de criptare El Gamal.
Apoi alege = x + 2. Decriptat i mesajul
(K, H) (P, X) (N, K) (H, R) (T, F) (V, Y ) (E, H) ((F, A) (T, W) (J, D) (U, J)
Bibliograe
[1] T. El Gamal, A public key cryptosystem and a signature scheme based on discrete
algorithms, IEEE Transactions on Information Theory, 31 (1985), 469-472
[2] J. Gibson, Discrete logarithm hash function that is collision free and one way. IEEE
Proceedings-E, 138 (1991), 407-410.
[3] A. Menezes, P. Oorschot, S. Vanstome, Handbook of applied cryptography
[4] D. Stinton; Cryptography, theory et pratice, Chapman & Hall/CRC, 2002
[5] A. Salomaa, Criptograe cu chei publice, ed. Militara, 1994
15
Prelegerea 13
Alte sisteme de criptare cu cheie
publica
13.1 Criptarea folosind curbe eliptice
Pentru nceput, sa denim not iunea de curba eliptica.
Denit ia 13.1 Fie p (p > 3) un numar prim. Curba eliptica y
2
= x
3
+ ax + b peste Z
p
este mult imea solut iilor (x, y) Z
p
Z
p
ecuat iei
y
2
x
3
+ ax + b (mod p) (1)
unde a, b Z
p
sunt constante astfel ca 4a
3
+ 27b
2
0 (mod p)
si dintr-un punct O numit punct la innit.
O curba eliptica E se poate structura ca un grup abelian nit. Legea de compozit ie
(notata aditiv) este denita astfel:
Fie P, Q E, P = (x
1
, y
1
), Q = (x
2
, y
2
).
Daca x
2
= x
1
, y
2
= y
1
, atunci P + Q = O; 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 +O= O+P = P, P E.
Vericarea proprietat ilor de grup este banala. Elementul neutru este O.
De remarcat ca inversa lui (x, y) (notata (x, y)) este (x, y).
Exemplul 13.1 Fie E curba eliptica y
2
= x
3
+ x + 5 peste Z
19
. Sa calculam la nceput
punctele lui E. Aceasta se face astfel: x Z
11
se calculeaza z = x
3
+ x + 5 (mod 19);
apoi se testeaza daca z este rest patratic.
1
2 PRELEGEREA 13. ALTE SISTEME DE CRIPTARE CU CHEIE PUBLIC

In caz armativ, deoarece 19 3 (mod 4), exista o formula (Prelegerea 10) pe care o
vom aplica direct, obt inand radacinile patrate ale lui z :
z
(19+1)/4
(mod 19) = z
5
(mod 19).
Rezultatele sunt stranse n tabelele urmatoare (toate calculele se realizeaza modulo 19):
a 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
a
2
0 1 4 9 16 6 17 11 7 5 5 7 11 17 6 16 9 4 1
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
Curba eliptica E admite deci 15 puncte; cum ordinul grupului nu este numar prim,
grupul nu este ciclic. Vom alege un element primitiv drept generator. Fie acesta =
(0, 9). 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).
Multiplul urmator este 3 = 2 + = (1, 11) + (0, 9). Avem:
= (9 11) (0 1)
1
= 2, deci
x
3
= 2
2
1 0 = 3, y
3
= 2 (1 3) 11 = 15 4 (mod 19),
de unde rezulta 3 = (3, 4).

In mod similar se obt in toate punctele curbei eliptice E:


= (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 = O
De remarcat ca de exemplu (3, 4) nu este element primitiv, avand ordinul 5.
O curb a eliptica denita pe Z
p
(p > 3 prim) are aproximativ p puncte. O teorem a a
lui Hasse ([2]) stabileste un interval pentru acest numar:
p + 1 2

p card(E) p + 1 + 2

p
13.1. CRIPTAREA FOLOSIND CURBE ELIPTICE 3
Calculul efectiv al lui card(E) este destul de dicil si vom trece peste el
1
. Exista
un algoritm al lui Schoof ([2], pag 137-140) de numarare a punctelor unei curbe eliptice,
dar complexitatea lui este destul de mare: O(log
6
p) (O(log
9
p) n versiunea originala)
nmult iri si inversiuni, si O(log
3
p) spat iu de memorie.

In plus implementarea sa este
destul de greoaie si nu a fost realizata complet pana n prezent.
Alta problema dicila consta n aarea unui subgrup ciclic al lui E n care problema
logaritmului discret sa e dicila. O informat ie utila este data de teorema urmatoare:
Teorema 13.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 sa e izomorfa cu Z
n
1

timesZ
n
2
, iar
n
2
|n
1
, n
2
|(p 1).
Demonstrat ia poate gasita n [2], pag. 107.
Pe spat iul curbelor eliptice se pot realiza diverse tehnici de criptare cu cheie pub-
lica; unele din ele sunt doar adaptari ale sistemelor deja prezentate, altele sunt aplicat ii
specice.
Principala atract ie a sistemelor construite pe curbe eliptice consta n dimensiuni mici
ale cheilor, ceea ce la face aplicabile pe sisteme portabile (smartcarduri de exemplu).
Exemplul 13.2 Sa vedem cum se realizeaza o criptare El Gamal pentru curba eliptica
denita n Exemplul 13.1.
Fie = (0, 9) si sa presupunem ca exponentul secret este a = 7. Atunci = 7 =
(12, 15), iar operat ia de criptare este:
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
Sa presupunem ca Alice vrea sa cripteze mesajul x = (3, 4) (care este un punct din
E); daca ea alege aleator valoarea k = 8, va calcula
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)
(coecient ii se calculeaza modulo 15).
Deci y = ((12, 4), (0, 10)). Dupa recept ie, Bob decripteaza mesajul astfel:
x = (0, 10) 7 (12, 4) = 14 7 8 = 3.
1
Nu se cunoaste nici o formula care sa dea valoarea card(E); exista o conjectura Birch and Swinnerton-
Dyer n legatura cu acest subiect, conjectura inclusa printre cele sapte probleme ale mileniului (mpreuna
cu problema P versus NP).
4 PRELEGEREA 13. ALTE SISTEME DE CRIPTARE CU CHEIE PUBLIC

A
13.1.1 Criptarea Menezes - Vanstone

In acest sistem de criptare de fapt o varianta a lui El Gamal curba eliptica este
utilizata pentru mascare, domeniile de valori al textelor clare si criptate ind mult mai
larg. Prezentarea algoritmului este:
Fie E o curba eliptica peste Z
p
(p > 3 prim) care cont ine un subgrup ciclic H n
care problema logaritmului discret este dicila.
Alegem P= Z

p
Z

p
, C= E Z

p
Z

p
si
K= {(E, , a, )| E, a Z

p
, = a}.
Valorile , sunt publice, iar a este secret.
Pentru K = (E, , a, ), k Z
card(H)
ales aleator (secret) si x = (x
1
, x
2
) P,
denim
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 un text criptat y = (y
0
, y
1
, y
2
) se deneste
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
).
Exemplul 13.3 Revenind la curba y
2
= x
3
+ x + 5 peste Z
19
denita n Exemplul 13.1,
criptarea Menezes - Vanstone autorizeaza 18 18 = 324 texte clare, fat a de numai 15 n
sistemul El Gamal adaptat.
Sa luam din nou = (0, 9) si exponentul a = 7. Atunci = 7 = (12, 15).
Daca Alice doreste sa transmita textul clar x = (x
1
, x
2
) = (5, 11) (de remarcat ca
acesta nu este un punct din E) si alege k = 4, ea va ncepe prin a calcula
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 si 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).
Dupa recept ie, Bob calculeaza (c
1
, c
2
) = a y
0
= 7 (4, 4) = 7 4 = 13 = (1, 8), apoi
x = (y
1
c
1
1
(mod 19), y
2
c
1
2
(mod 19)) = (5 1
1
, 12 8
1
) = (5, 12 12) = (5, 11).
13.2. SISTEMUL DE CRIPTARE WILLIAMS 5
13.2 Sistemul de criptare Williams
Acest sistem de criptare este bazat pe exponent ieri n corpuri patratice, avand multe
asemanari cu sistemele RSA si El Gamal. Se pare ca el are toate avantajele sistemului
RSA; oricum, se poate demonstra ca orice ncercare de spargere a sistemului prin pre-
lucrarea mesajelor criptate conduce la o operat ie de factorizare a modulului. Modul de
criptare si decriptare sunt la fel de rapide ca la RSA.
Sa abordam ntai baza matematica a sistemului de criptare Williams.
Fie c Z un numar ntreg xat, ne-patrat perfect. Consideram mult imea
{x = a + b

c|a, b Z, a
2
cb
2
= 1}.
Numerele x pot privite si ca perechi (a, b), pe baza carora aceasta mult ime se poate
structura algebric ca inel, folosind operat iile
(a
1
, b
1
) + (a
2
, b
2
) = (a
1
+ a
2
, b
1
+ b
2
)
(a
1
, b
1
)(a
2
, b
2
) = (a
1
a
2
+ cb
1
b
2
, a
1
b
2
+ a
2
b
1
).
Notam x = a b

c conjugatul lui x.
Pentru i = 0, 1, 2, . . . se denesc funct iile X
i
(x), Y
i
(x) astfel:
X
i
(x) = X
i
((a, b)) =
x
i
+ x
i
2
Y
i
(x) = Y
i
((a, b)) = b
x
i
x
i
x x
=
x
i
x
i
2

c
De aici se pot scoate relat iile
x
i
= X
i
(x) + Y
i
(x)

c, x
i
= X
i
(x) Y
i
(x)

c.
Evident, X
i
(x) si Y
i
(x) sunt numere ntregi; n continuare vom scrie aceste numere fara a
mai preciza si argumentul x, decat daca este necesar.
Din condit ia a
2
cb
2
= 1 rezultaxx = 1, X
2
i
cY
2
i
= 1.
Lema 13.1 Au loc relat iile:
X
i+j
= X
i
X
j
+ cY
i
Y
j
, Y
i+j
= Y
i
X
j
+ X
i
Y
j
, i, j N
X
i+j
= 2X
i
X
j
X
ji
, Y
i+j
= 2X
i
Y
j
Y
ji
, i, j, i j.
Demonstrat ie: Este lasata ca exercit iu.
Din lema 13.1 se deduc formulele recursive de calcul
X
2i
= X
2
i
+ cY
2
i
= 2X
2
i
1, Y
2i
= 2X
i
Y
i
,
X
2i+1
= 2X
i
X
i+1
X
1
, Y
2i+1
= 2X
i
Y
i+1
Y
1
.
6 PRELEGEREA 13. ALTE SISTEME DE CRIPTARE CU CHEIE PUBLIC

A
Acestea conduc la o evaluare rapida a valorilor X
i
si Y
i
.
Deoarece X
0
= 1, X
1
= a, rezulta ca X
i
nu depinde de b.
Relat iile astfel denite se pot extinde n mod natural la congruent e modulo un numar
natural nenul n:
a
1
+ b
1

c a
2
+ b
2

c a
1
a
2
(mod n) si b
1
b
2
(mod n)
Folosind si a
2
cb
2
1 (mod n) n loc de a
2
cb
2
= 1, relat iile de sus raman adevarate.
Lema 13.2 Se dau numerele:
n = pq cu p, q numere prime mari;
a, b, c care verica congruent a a
2
cb
2
1 (mod n) (2)
Simbolurile Legendre
p
=
_
c
p
_
,
q
=
_
c
q
_
care verica relat iile
i

i (mod 4) pentru i = p, q.
Presupunem vericate condit iile (b c, n) = 1 si simbolul Jacobi
_
2(a+1)
n
_
= 1.
Notam m =
(p
p
)(q
q
)
4
.
Fie d, e doua numere astfel ncat d e
m + 1
2
(mod m).

In toate aceste ipoteze, x


2de
x (mod n) unde x = a + b

c.
Demonstrat ie: Se realizeaza prin calcul direct.
Pe baza acestei leme se pot stabili metode de criptare si decriptare similare celor din
RSA.
Saconstruim acumn detaliu sistemul de criptare Williams. Prezentarea va consta din
patru part i: descrierea sistemului, criptarea, decriptarea si criptanaliza.
A (Prezentarea):

In prima faza se aleg doua numere prime mari p, q si se calculeaza
n = pq.
Se alege apoi un numar c astfel ca simbolurile Legendre
p
si
q
sa verice condit iile
din Lema 13.2 (c se poate obt ine foarte rapid deoarece cam un numar din patru satisface
congruent ele cerute).
Se determina apoi un numar s astfel ncat simbolul Jacobi sa verice
_
s
2
c
n
_
= 1 si (s, n) = 1
m este dat ca n Lema 13.2; se aleg apoi d cu (d, m) = 1 si e care sa satisfaca
congruent ele cerute.
Numerele n, c, e, s sunt publice iar p, q, m, d sunt secrete.
13.2. SISTEMUL DE CRIPTARE WILLIAMS 7
Exemplul 13.4 Sa alegem p = 11, q = 13, deci n = 143. Pentru ca
_
5
11
_
= 1 11 si
_
5
13
_
= 1 13 (ambele modulo 4), putem alege c = 5.
De asemenea se poate lua s = 2 pentru ca
_
s
2
c
n
_
=
_
1
11
__
1
13
_
= 1 1 = 1.
Se obt ine m = 10 14/4 = 35. Pentru ca 23 16 18 (mod 35), se pot folosi drept
exponent i de criptare/decriptare e = 23 respectiv d = 16.
B (Criptarea): Textele clare sunt numere w (0 < w < n).

In prima etapa w este codicat
ca un num ar x (metoda este prezentata mai jos); criptarea va x
e
(mod n).
Codicarea: Notam
b
1
= 0, = w +

c sau
b
1
= 1, = (w +

c)(s +

c)
dupa cum simbolul Jacobi
_
w
2
c
n
_
are valoarea +1 sau respectiv 1. Cazul cand
el este 0 trebuie evitat.
Ambele variante conduc la
_

n
_
= 1; relat ia este evidenta n primul caz, rezulta prin
calcul din alegerea lui s n cazul al doilea.

In nal, se noteazax =

.
Scrierea lui x sub forma a +b

c este posibila n ambele cazuri; astfel (toate calculele


se fac modulo n):
pentru b
1
= 0 : x =

=
w +

c
w

c
=
w
2
+ c
w
2
c
+
2w
w
2
c

c (mod n)
pentru b
1
= 1 : x =

=
(w +

c)(s +

c)
(w

c)(s

c)
=
=
(w
2
+ c)(s
2
+ c) + 4scw
(w
2
c)(s
2
c)
+
2s(w
2
+ c) + 2w(s
2
+ c)
(w
2
c)(s
2
c)

c (mod n).
Denit ia lui x asigura n ambele situat ii relat ia xx = a
2
cb
2
1 (mod n).
Mai avem 2(a + 1) = 2
_
x + x
2
+ 1
_
=

+ 2 =
( + )
2

(mod n),
ceea ce duce la simbolul Jacobi
_
2(a + 1)
n
_
= 1, cum se cere n Lema 13.2.
Dupa codicarea textului clar w ca x = a+b

c, textul criptat este x


e
(mod n), numar
care poate exprimat n funct ie de X
e
si Y
e
, calculate recursiv pe baza relat iilor din Lema
13.1. Notam
E = X
e
Y
1
e
(mod n).
Textul criptat este tripletul (E, b
1
, b
2
), unde b
1
s-a denit anterior, iar b
2
este dat de relat ia
b
2
a (mod 2).
8 PRELEGEREA 13. ALTE SISTEME DE CRIPTARE CU CHEIE PUBLIC

A
Deoarece ecarui text criptat i corespund patru texte clare distincte, bit ii b
1
si b
2
asigura unicitatea decriptarii.
Exemplul 13.5 Revenind la Exemplul 13.4, sa consideram textul clar w = 21. Deoarece
_
21
2
5
143
_
=
_
7
11
__
7
13
_
= (1)(1) = 1, avem b
1
= 0, deci = 21 +

5 si x =
21 +

5
21

5
=
446 + 42

5
436
=
17 + 42

5
7
= 41(17 + 42

5) = 125 + 6

5 (mod 143).
Deci a = 125, b = 6. Deoarece a este impar, rezulta b
2
= 1.
Vom calcula recursiv pe X
23
si Y
23
:
X
1
= 125 Y
1
= 6 X
2
= 75 Y
2
= 70 X
3
= 35 Y
3
= 48
X
5
= 120 Y
5
= 44 X
6
= 18 Y
6
= 71 X
11
= 48 Y
11
= 17
X
12
= 75 Y
12
= 125 X
23
= 68 Y
23
= 125
Obt inem acum E = 68 125
1
= 68 135 = 28 (mod 143).
Deci textul criptat este tripletul (28, 0, 1).
C Decriptarea: Folosind prima componentaE a textului criptat, destinatarul poate deter-
mina num arul x
2e
:
x
2e
=
x
2e
(xx)
e
=
x
e
x
e
=
X
e
+ Y
e

c
X
e
Y
e

c
=
E +

c
E

c
=
E
2
+ c
E
2
c
+
2E
E
2
c

c (mod n)
De remarcat ca acest calcul poate facut si de un criptanalist, n eventualitatea
interceptarii textului criptat.
Totusi, informat ia secreta este necesara pentru calculul ulterior:
x
2ed
= X
2ed
(x) + Y
2ed
(x)

c = X
d
(x
2e
) + Y
d
(x
2e
)

c,
unde valorile lui X
d
si Y
d
se pot calcula recursiv pe baza lui x
2e
, determinat anterior.
Cum toate ipotezele Lemei 13.2 sunt satisfacute, vom avea x
2ed
= x (mod n). Ultima
componenta b
2
a textului criptat da semnul corect al lui x.
Deci x se poate determina, iar textul clar w se obt ine din x si b
1
(a doua componenta
a textului criptat) n felul urmator:
Fie x

=
_
x daca b
1
= 0
x
s

c
s+

c
daca b
1
= 1
Atunci x

=
w +

c
w

c
(mod n), ceea ce duce la w =
x

+ 1
x

c (mod n).
Exemplul 13.6

In condit iile din Exemplul 13.4, sa decriptam mesajul (28, 0, 1). Folosim
E pentru a calcula n prima faza
x
2e
=
28
2
+ 5
28
2
5
+
2 28
28
2
5

5 = 95 + 126

5 (mod 143).
Reamintim, d = 16; deci vom calcula (modulo 143)
13.2. SISTEMUL DE CRIPTARE WILLIAMS 9
X
1
(x
2e
) = 95 Y
1
(x
2e
) = 126 X
2
(x
2e
) = 31 Y
2
(x
2e
) = 59
X
4
(x
2e
) = 62 Y
4
(x
2e
) = 83 X
8
(x
2e
) = 108 Y
8
(x
2e
) = 139
X
16
(x
2e
) = 18 Y
16
(x
2e
) = 137
S-a obt inut 18 + 137

5 = x (mod 143). Pentru ca b


2
= 1, a trebuie sa e impar, deci
x = (18 + 137

5) = 125 + 6

5 (mod 143).
Cum b
1
= 0, avem x

= x si deci
w =
126 + 6

5
124 + 6

5 =
(126 + 6

5)(124 6

5)
124
2
5 6
2

5 = 83 38
1
= 21 (mod 143)
Deci textul clar original a fost w = 21.
Lucrand detaliat, se pare ca sistemul de criptare Williams este mai dicil decat RSA.
Totusi ordinele de complexitate ale criptarii si decriptarii sunt egale n celel doua sisteme.
D Criptanaliza: Daca s-au aat p si q, m si d se pot calcula imediat. Invers, sa
presupunem ca criptanalistul a gasit ntr-un mod oarecare un algoritm de decriptare.
Atunci el poate folosi acest algoritm la descompunerea lui n astfel.

In prima faza se alege prin ncercari un numar x care verica


_
x
2
c
n
_
= 1.
Apoi x este criptat alegand b
1
= 0 si = x +

c. Deci, ca prima ipoteza, pentru


simbolul Jacobi este folosita valoarea (falsa) +1. Fie (E, 0, b
2
) textul criptat rezultat.
Acestuia, criptanalistul i aplica algoritmul pentru a stabili textul clar w corespunzator;
acest w nu este identic cu x deoarece procesul de criptare a plecat de la o ipoteza falsa.
Prin simplu calcul se arata ca (x w, n) este p sau q (vezi [6])
Aceasta nseamna ca si criptanalistul este n masura sa descompuna pe n.
Exemplul 13.7 Reluam cadrul descris n Exemplul 13.4. Alegem x = 138, care satisface
condit ia de plecare pentru criptanaliza. Se iau ca valori init iale false b
1
= 0, =
138 +

5. Atunci = / = 73 + 71

5.
Deoarece 73 este impar, se obt ine b
2
= 1. Pentru criptare se calculeaza iterativ (modulo
143):
X
1
() = 73 Y
1
() = 71 X
2
() = 75 Y
2
() = 70
X
3
() = 9 Y
3
() = 139 X
5
() = 133 Y
5
() = 44
X
6
() = 18 Y
6
() = 71 X
11
() = 139 Y
11
() = 82
X
12
() = 75 Y
12
() = 125 X
23
() = 42 Y
23
() = 73
Deducem ca E = 42 73
1
= 28 (mod 143), deci textul criptat este (28, 0, 1).
Acesta a fost nsa criptat anterior n w = 21. Se obt ine imediat factorizarea lui n
deoarece (x w, n) = (117, 143) = 13.
Deci, sistemul Williams nu rezista la un atac cu text clar ales.
10 PRELEGEREA 13. ALTE SISTEME DE CRIPTARE CU CHEIE PUBLIC

A
13.3 Sistemul de criptare McEliece
Sistemul de criptare McEliece propus n 1978 este destul de apropiat de problema
rucsacului. El utilizeaza drept cadru teoria codurilor liniare (pentru detalii vezi [1]); aici,
n general decodicarea unui cod liniar binar corector de erori este o problema NP - com-
pleta. Pentru unele clase de coduri sunt construit i algoritmi de decodicare polinomiali;
o astfel de clasa o formeaza codurile Goppa, care constituie baza sistemului de criptare
McEliece.
Denit ia 13.2 Fie k, n N(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 formeaza o
baza a lui C.
Pentru a Z
n
2
se deneste ponderea w(a) = numarul de elemente nenule din a.
Pentru a, b Z
n
2
a = (a
1
, . . . , a
n
), b = (b
1
, . . . , b
n
), se deneste distant a Hamming
prin 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 distant a minima d.
Rolul unui cod corector de erori este de a corija modicari aleatoare care apar n trans-
miterea 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 un mesaj r Z
n
2
(eventual r = b) si cauta un cuvant b
1
C cu d(r, b
1
)
minima 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 acela cand b
1
= b, a
1
= a (adica erorile au fost
acoperite corect). Se cunoaste ca, daca numarul de erori care apar nu depaseste (d1)/2,
acest procedeu corecteaza efectiv erorile.
Daca Bob cauta cuvantul - cod cel mai apropiat comparand r pe rand cu ecare element
din C, cum sunt 2
k
astfel de cuvinte, algoritmul va exponent ial, deci nefunct ional.
Majoritatea algoritmilor de decodicare se bazeaza pe not iunea de sindrom, denit
astfel:
Matricea de control a unui (n, k, d) - cod liniar binar de matrice generatoare G este o
matrice H de dimensiune (n k) n ale carei linii formeaza o baza a unui spat iu liniar
ortogonal. Evident, GH
T
= 0.
Pentru un cuvant r Z
n
2
, se numeste sindrom secvent a de n k bit i denita Hr
T
.
Teorema 13.2 a este un cuvant - cod daca si numai daca Ha
T
= 0.

In plus, daca a C, e Z
n
2
si r = a +e, atunci Hr
T
= He
T
.
13.3. SISTEMUL DE CRIPTARE MCELIECE 11
Pentru demonstrat ie se poate consulta de asemenea [1].
e poate considerat drept vectorul de erori care au aparut n transmiterea mesajului
a. Teorema anterioara arma ca sindromul nu depinde decat de erori, nu de cuvantul -
cod transmis.
Aceasta observat ie sugereaza o metoda de decodicare bazata pe sindrom. Se cal-
culeaza ntai s = Hr
T
. Daca s = 0, decodicarea lui r este tot r. Altfel, se ncearca toate
cuvintele de pondere 1. Pentru ecare astfel de cuvant e se calculeaza He
T
. Daca s-a
gasit un e cu He
T
= s, r se decodica 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 He
T
= s, se deduce
ca au aparut mai mult de [(d 1)/2] erori n cursul transmisiei.
Metoda prezentata funct ioneaza pentru toate codurile liniare. Pentru anumite clase
speciale de coduri exista algoritmi polinomiali de decodicare si corectare a erorilor; n
cazul general nsa problema este NP - completa.
Algoritmul de criptare McElliece se bazeaza pe aceasta idee. Trapa sa secreta o consti-
tuie o clasa de coduri pentru care exista algoritmi ecace de decodicare - codurile Goppa.

In plus, exista un numar mare de coduri Goppa neechivalente, avand aceiasi parametri.
Algoritmul de criptare McEliece este urmatorul:
Fie G matricea generatoare a unui (n, k, d) - cod Goppa cu n = 2
m
, d = 2t +1, k =
n mt.
Se denesc S o matrice inversabila k k peste Z
2
si P o matrice de permutare nn
(matrice n care pe ecare linie si coloana exista o valoare 1, iar restul elementelor
sunt 0).
Fie P= Z
k
2
, C= Z
n
2
, K= {(G, S, P, G

) | G

= S G P}.
G

este publica iar G, S, P sunt secrete.


Pentru K = (G, S, P, G

) se deneste
e
K
(a, e) = aG

+e
unde e Z
n
2
este un cuvant aleator
2
de pondere t.
Bob decripteaza un mesaj b Z
n
2
astfel:
1. Calculeaza b
1
= bP
1
;
2. Decodica b
1
obt inand 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
.
Corectitudinea algoritmului de decriptare:
Deoarece b
1
= bP
1
= (aG

+e) P
1
= (aS G P +e) P
1
= (aS) G +eP
1
iar eP
1
este un vector de pondere cel mult t, algoritmul de decodicare al codului de
matrice generatoare G poate decodica corect pe b
1
si obt ine un mesaj sursa a
0
= aS.
La ultimul pas se aa mesajul init ial a = a
0
S
1
.
12 PRELEGEREA 13. ALTE SISTEME DE CRIPTARE CU CHEIE PUBLIC

A
Nu vom intra n detalii privind denit ia codurilor Goppa ([1]). Acestea pot privite
nsa drept coduri liniare cu parametrii n = 2
m
, d = 2t + 1, k = n mt. Pentru o
implementare practica referitor la criptare, McEliece sugereaza m = 10, t = 50, ceea ce
corespunde unui (1024, 524, 101) - cod Goppa
3
. Un text clar este o secventa de 524 bit i,
iar un text criptat este o secventa de 1024 bit i. Cheia publica este o matrice binara de
dimensiuni 524 1024.
Exemplul 13.8 Vom exemplica algoritmul pe un (8, 2, 5) - cod Goppa (deci n = 2
3
, k =
2, d = 5). Acest cod - extrem de mic (are doar 4 cuvinte) este generat de matricea
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

= SGP =
_
1 0 1 0 1 1 1 1
1 1 0 1 0 1 1 0
_
Sa presupunem ca Alice vrea sa cripteze textul clar a = (0, 1) folosind vectorul - eroare
e = (0, 0, 1, 0, 0, 1, 0, 0) (ales aleator) de pondere 2. Textul criptat este
b = aG

+e = (1, 1, 1, 1, 0, 0, 1, 0).
Dupa recept ionarea mesajului, Bob calculeaza ntai
b
1
= bP
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 lui a = S
1
a
0
= (0, 1), care este textul clar expediat de
Alice.
3
O analiza a securitat ii recomanda parametrii n = 1024, t = 38, k 644.
13.4. EXERCIT II 13
Algoritmul McElliece s-a dovedit sigur. Acest lucru rezulta din analiza celor doua
tipuri de atac posibile:
1. Din informat ia publica, Oscar ncearca sa ae matricea G sau o matrice G
1
a unui
cod Goppa echivalent (avand aceeasi parametri). Nu se cunoast e 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 publica G

. Notand G

k
, b
k
, e
k
restrict iile lui G

, b respectiv e
la aceste k coloane, vom avea aG

k
= b
k
+ e
k
. Daca b
k
= 0 si G

k
este nesingulara,
atunci a poate aat rezolvand sistemul liniar aG

k
= b
k
. Probabilitatea ca cei k
bit i selectat i sa nu faca parte din eroare (deci e
k
= bf0 este C
k
nt
/C
k
n
, neglijabila
pentru valorile alese ale parametrior n, k, t.
Interesant, dar aceasta securitate este mult diminuata daca se folosest e alta clasa de coduri
liniare n locul codurilor Goppa.
Totusi, n ciuda securitat ii sale si a vitezei relativ mari de criptare/decriptare sistemul
McElliece 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.
13.4 Exercit ii
13.1 Fie E curba eliptica y
2
= x
3
+ x + 28 peste Z
71
.
1. Determinat i numarul de puncte din E;
2. Aratat i caE nu este ciclic;
3. Care este ordinul maxim al unui element din E ? Gasit i un astfel de element.
13.2 Fie E curba eliptica y
2
= x
3
+x +13 denitape Z
31
. Se poate arata ca |E| = 34 si
ca (9, 10) este de ordinul 34 n E. Sistemul de criptare Mezenes - Vanstome denit pe E
admite ca spat iu al textelor clare Z

34
Z

34
. Fie a = 25 exponentul secret al lui Bob.
1. Calculat i = a;
2. Decriptat i textul urmator:
((4, 9), 28, 7)((19, 28), 9, 13)((5, 22), 20, 17)((25, 16), 12, 27)
3. Daca presupunem ca ecare text clar reprezinta doua caractere alfabetice, convertit i
acest text clar n engleza (s-a folosit corespondent a A 1, . . . , Z 26).
14 PRELEGEREA 13. ALTE SISTEME DE CRIPTARE CU CHEIE PUBLIC

A
13.3 Fie E curba eliptica y
2
= x
3
+ x + 6 peste Z
11
.
(a) Sa se calculeze punctele lui E.
(b) Se aleg parametrii = (2, 7) si a = 7. Folosind sistemul de criptare El Gamal, sa
se cripteze mesajul x = (10, 9) cu valoarea aleatoare k = 3.
(c) Folosind sistemul de criptare Menezes - Vanstone si aceiasi parametrii, sa se
cripteze mesajul x = (9, 1).
13.4 Demonstrat i Lemele 13.1 si 13.2.
13.5 Fie curba eliptica E de ecuat ie y
2
= x
3
+ x + 28 peste Z
71
.
(a) Sa se determine numarul de puncte din E.
(b) Care este ordiunul maxim al unui element din E ? Sa se gaseasca un element de
acest ordin.
13.6 Fie p > 3 un numar prim impar si a, b Z
p
. Daca ecuat ia x
3
+ax+b 0 (mod p)
are trei radacini distincte n Z
p
, aratat i ca grupul curbei eliptice corespunzatoare (E, +)
nu este ciclic.
13.7 Fie E o curba eliptica denita peste Z
p
unde p > 3 este un numar prim. Sa
presupunem ca n = card(E) este prim si e P E, P = O.
(a) Ar atat i ca log
P
(P) = n 1.
(b) Dat i un algoritm de calcul pentru n de complexitate O(p
1/4
) folosind teorema lui
Hasse si o varianta a algoritmului Shanks.
13.8 O reprezentare binara (a
n1
, a
n2
, . . . , a
0
) a numarului ntreg a este n forma ne-
adiacenta (forma NAF) daca nu exista doua valori consecutive nenule.
(a) Dat i un algoritm de reprezentare a numerelor ntregi n forma NAF. Aplicat i
acest algoritm pentru numerele 87, 112, 2047.
(b) Folosind reprezentarea NAF a lui 87, calculat i 87P, unde P = (2, 6) este un punct
pe curba eliptica y
2
= x
3
+ x + 26 denita peste Z
27
.
Bibliograe
[1] A. Atanasiu, Teoria Codurilor, Editura Universitat ii Bucuresti, 2002
[2] A. Enge, Elliptic Curves and their applications to Cryptography, Kluwer Academic
Publ, 1999
[3] M. Rosing, Implementing Elliptic Curve Cryptography, Manning, 1998
[4] D. Stinton, Cryptography, theory and pratice, International Thompson Publishing
France, 1995
[5] A. Salomaa, Criptograe cu chei publice, Ed. Militara, 1994
[6] H.C.Williams, Some public-key criptofunctions as intractable as factorisation, Cryp-
tologia, 9 (1985), 224-237.
15
Prelegerea 1
Semnaturi electronice
1.1 Considerat ii generale
Vom lua n discut ie n aceasta sect iune not iunea de semnatura electronica (ntr-un mediu de
calcul) precum si diverse modalitat i de utilizare ale ei.
Orice semnatura pe un document autentic a acest document dar si angajeaza n mod nor-
mal responsabilitatea semnatarului. Probleme practice legate de rapiditatea transmiterii unor
documente care sa e certicate ca autentice prin semnatura au condus la necesitatea creerii
de semnaturi electronice.
De exemplu, se stie ca majoritatea operat iunilor si tranzact iilor bancare devin legal valide
numai dupa ce ambele part i au semnat formularele respective. Totusi, daca part ile sunt legate
ntr-o ret ea de calculatoare, ele vor adesea sa faciliteze aceasta operat ie care provoac a un mare
consum de timp; solicita de aceea posibilitatea de a semna documentele folosind terminalele si
ret eaua aata la dispozit ie.
Deci, apare urmatoarea problema:
Cum se poate crea o semnatura ntr-un mediu de calcul ?
Deoarece calculatoarele accepta informat ia numai n forma digitala, orice semnatura pusa
n discut ie trebuie sa aiba aceasta forma. O semnatur a (electronica sau olografa) trebuie sa
satisfaca urmatoarele condit ii:
Unica: o anumita semnatura trebuie sa poata generata numai de o singura persoana;
Neimitabila: nici o alta persoana nu va putea genera semnatura utilizatorului indicat;
altfel spus, utilizatorii ilegali trebuie sa rezolve probleme NP complete daca vor sa
foloseasca o semnatura care nu le apart ine;
Usor de autenticat: orice destinatar legal si orice arbitru (n cazul unor eventuale
dispute) sa poata stabili autenticitatea semnaturii (indiferent dupa ce interval de timp);
Imposibil de negat: nici un utilizator legal sa nu-si poata nega propria semnatur a, sub
armat ia ca nu este autentica;
Usor de generat.
Trebuie facut a totusi distinct ie ntre semnatura olografa si cea digitala.
Iata cateva diferent e notabile ntre cele doua tipuri de semnaturi:
1
2 PRELEGEREA 1. SEMN

ATURI ELECTRONICE
O semnatura scrisa de mana este o conrmare zica a unui document, cu ajutorul unei foi
de hartie care cont ine doua elemente: un mesaj (textul docu-mentului) si o semnatur a.
O astfel de legatura ntre mesaje si semnaturi nu este posibila ntr-un mediu de calcul;
O semnatura olografa este aceeasi indiferent de document. Pentru semnaturile digitale
ns a, este esent ial ca ele sa depinda atat de semnatar cat si de cont inu-tul documentului;
Orice copie a unui document electronic (inclusiv semnatura) este identic a cu originalul.

In schimb copia unui document pe hartie este diferita ca valoare de original. Aceasta
conduce la ideea ca un document electronic nu este reutili-zabil. De exemplu, daca Bob
trimite lui Alice un cec n valoare de 10 milioane lei, banca nu va accepta onorarea sa
decat o singura data.
1.2 Protocoale de semnatura
Orice protocol de semnatura este format dintr-un algoritm de semnatura si un algoritm de
vericare. Bob semneaza un mesaj x bazat pe un algoritm (secret) de semnatura sig. Rezultatul
sig(x) este apoi vericat de un algoritm public de vericare ver. Pentru orice pereche (x, y),
algoritmul de vericare ofera un raspuns dicotomic (adevarat sau fals), dupa cum y este o
semnatur a autentica a lui x sau nu. Formal ([8]):
Denit ia 1.1 Un protocol de semnatura este un cvintuplu (P, A, K, S, V) unde:
1. P, A, K sunt mult imi nite, nevide, ale caror elemente se numesc mesaje, semnaturi
si respectiv chei;
2. Exista o aplicat ie biunivoca ntre Ksi SV; anume, pentru ecare K K exista o pereche
unica (sig
K
, ver
K
) unde sig
K
: P A, ver
K
: P A {T, F} au proprietatea:
x P, y A, ver
K
(x, y) = T y = sig
K
(x)
Pentru ecare K K, funct iile sig
K
si ver
K
trebuie sa e calculabile n timp polinomial;
ver
K
este publica iar sig
K
este secreta. Pentru Oscar, imitarea unei semnaturi a lui Bob pentru
un mesaj x trebuie sa e imposibila (din punct de vedere al complexitat ii calculului). Altfel
spus, pentru un x dat, numai Bob este capabil sa calculeze o semnatura y astfel ca ver(x, y) = T.
Binent eles, nici un protocol de semnatur a nu este absolut sigur, deoarece Oscar poate
ncerca folosind funct ia publica de vericare ver toate semnaturile y posibile ale unui mesaj
x, pana va gasi semnatura corecta.
Deci, daca ar dispune de sucient timp, Oscar poate totdeauna sa contrafaca semnatura
lui Bob.
Exemplul 1.1 Un prim exemplu de semnatura este folosirea n acest scop a sistemului de
criptare RSA. Se denesc
P = A = Z
n
, K = {(n, p, q, a, b) | n = pq, p, q prime, ab 1 (mod (n))}.
n si b sunt publice, p, q, a sunt secrete.
Pentru K = (n, p, q, a, b) se denesc:
sig
K
(x) = x
a
(mod n)
ver
K
(x, y) = T x y
b
(mod n)
1.3. SEMN

ATURA EL GAMAL 3
Aici Bob semneaza un mesaj folosind cheia sa de decriptare din sistemul de criptare RSA; el
este singurul capabil sa genereze o semnatura corecta deoarece d
K
= sig
K
este secreta. Funct ia
de vericare utilizeaza funct ia de criptare e
K
care este publica, deci oricine o poate verica.
De remarcat ca oricine poate genera o semnatura a lui Bob pentru un mesaj aleator x; Oscar
poate alege un y si calculeaza x = e
k
(y); atunci y = sig
K
(x).
Acest lucru poate prevenit folosind mesaje x cu sucient de mult a redondant a (cu anumita
semnicat ie). O alta modalitate de a evita acest atac este folosirea unor funct ii de dispersie
(hash); vom studia aceasta maniera n prelegerea urmatoare.
Sa vedem cum pot combinate procedeele de semnatura si criptare. Presupunem ca Alice
doreste sa trimita lui Bob un mesaj criptat si semnat. Pentru un text clar x dat, Alice determina
semnatura y = sig
Alice
(x), dupa care cifreaza x si y folosind cheia publica a lui Bob : z =
e
Bob
((x, y)).
Textul criptat z este transmis lui Bob. Acesta foloseste cheia sa secreta d
Bob
si obt ine (x, y).
Dupa aceasta, verica semnatura lui Alice cu ajutorul cheii publice ver
Alice
(x, y).
Ce se nt ampla daca Alice cripteaza nainte de a semna ? Ea va calcula z = e
Bob
(x), y =
sig
Alice
(e
Bob
(x)) si va trimite lui Bob mesajul (z, y). Acesta decripteaza z, obt ine x si verica
y ca semnatur a a lui z.
Pericolul consta n faptul ca Oscar poate intercepta (z, y), nlocuieste y cu propria sa
semnatur a y

si transmite lui Bob mesajul (z, y

).
Din acest motiv se recomanda folosirea semnaturii nainte de criptare.
1.3 Semnatura El Gamal
Fie p un num ar prim (pentru care problema logaritmilor discret i n Z
p
este dicila) si
Z

p
= Z
p
\ {0} un element primitiv. Se ia:
P = Z

p
, A = Z

p
Z
p1
, K = {(p, , a, ) | =
a
(mod p)}.
Valorile p, , sunt publice iar a este secret.
Pentru K = (p, , a, ), k Z
p1
(secret) se deneste:
sig
K
(x, k) = (, ) unde
=
k
(mod p), = (x a)k
1
(mod p 1).
Pentru x, Z

p
, Z
p1
se deneste
ver
K
(x, , ) = T


x
(mod p)
Daca semnatura este corecta, vericarea autentic a semnatura, deoarece:

k
(mod p)
x
(mod p)
(s-a folosit egalitatea a + k x (mod p 1)).
Protocolul de semnatur a El Gamal a fost denit n 1985 ([4]). Ca o particularitate, el nu este
determinist: pentru un mesaj dat pot exista mai multe semnaturi valide. Funct ia de vericare
va trebui deci sa accepte ca autentice toate aceste semnaturi.
4 PRELEGEREA 1. SEMN

ATURI ELECTRONICE
Protocolul de semnatur a ElGamal este descris pe pagina anterioar a.
Bob calculeaza semnatura folosind cheia sa secreta a si o valoare aleatoare secreta k (generata
numai pentru semnarea mesajului x). Vericarea se realizeaza cu ajutorul cheii publice.
Exemplul 1.2 : Sa luam p = 467, = 2, a = 127. Avem
=
a
(mod p) = 2
127
(mod 467) = 132.
Daca Bob doreste sa semneze mesajul x = 100 alegand valoarea k = 213 (de remarcat ca
(213, 466) = 1 si 213
1
(mod 466) = 431), va obt ine
= 2
213
(mod 467) = 29 si = (100 127 29) 431 (mod 466) = 51.
Pentru a verica semnatura, calculam
132
29
29
51
189 (mod 467) si 2
100
189 (mod 467).
Semnatura este deci valida.
Sa studiem securitatea protocolului de semnatura El Gamal.
Vom presupune ca Oscar doreste sa falsice semnatura pe mesajul x fara sa stie a.
Daca Oscar alege valoarea si ncearca sa gaseasca corespunzator, el va trebui sa
calculeze logaritmul discret log

. Daca strategia sa este inversa: sa aleaga nt ai


si sa caute apoi , el va trebui sa rezolve ecuat ia


x
(mod p) de necunoscuta .
Nu se cunoaste nca o metoda pentru rezolvarea unei astfel de probleme.
Daca Oscar alege aleator si pe si cauta sa obt ina x, el va ajunge din nou la problema
logaritmului discret, adica la calculul log

.
Oscar poate totusi sa semneze un mesaj aleator x n felul urmator:
Fie numerele ntregi i, j (0 i p 2, 0 j p 2, (j, p 1) = 1).
Se efectueaza calculele:
=
i

j
(mod p); = j
1
(mod p 1); x = ij
1
(mod p 1)
(deoarece calculele sunt facute modulo p 1, exista j
1
).
(, ) este o semnatura valid a pentru x.

Intr-adevar, se verica

j
(
i

j
)

j
j
1

ij
1

j

ij
1

j

ij
1

x
(toate calculele sunt facute modulo p).
Sa exemplicam acest atac:
Exemplul 1.3 Fie din nou p = 467, = 2, = 132. Sa presupunem ca Oscar alege
i = 99, j = 179 ( deci j
1
= 151 (mod p 1)); Oscar calculeaza:
= 2
99
132
179
= 117 (mod 467)
= 117 151 = 41 (mod 466)
x = 99 41 = 331 (mod 466)
Deci (117, 41) este o semnatura a mesajului 331, ceea ce se poate verica imediat, calculand
132
117
117
41
303 (mod 467) si 2
331
303 (mod 467).
Semnatura este deci valida.
Sa mai arat am o modalitate prin care Oscar poate utiliza un mesaj semnat anterior de Bob.
Sa presupunem ca (, ) este o semnatur a valida a lui x. Oscar poate semna atunci alte tipuri
de mesaje:
Fie h, i, j numere ntregi din intervalul [0, p 2] cu (h j, p 1) = 1.
1.4. VARIANTE ALE PROTOCOLULUI DE SEMN

ATUR

A ELGAMAL 5
Calculam:
l =
h

j
(mod p), y = l(h j)
1
(mod p 1),
x

= l(hx + i)(h j)
1
(mod p 1)
unde (h j)
1
este calculat modulo p 1. Se poate atunci verica direct
l
l
y

(mod p). Deci (l, y) este o semnatura valid a a lui x

.
Aceste doua strategii construiesc semnaturi valide, dar se pare ca nu este posibil ca cineva
sa contrafac a semnatura unui mesaj ales de el, fara sa rezolve o problema de logaritmi discret i.
Din acest motiv se considera ca nu exista slabiciuni n protocolul de semnatura El Gamal.
Sa arat am n nal doua maniere de a sparge acest protocol de semnatur a, atunci cand este
aplicat neglijent.
Daca ntregul aleator k este cunoscut, se determina imediat
a = (x k)
1
mod (p 1)
Din acest moment, Oscar, stiind a, poate calcula semnaturile la fel ca Bob.
Daca se utilizeaza acelasi k pentru mai multe mesaje. Aceasta i permite de asemenea lui
Oscar sa determine a. El va proceda astfel:
Fie (,
i
) semnaturile mesajelor x
i
, i = 1, 2. Avem:

i

x
i
(mod p), i = 1, 2, deci
x
2
x
1

1
(mod p).

Inlocuind =
k
se obt ine ecuat ia de necunoscuta k:

x
2
x
1

k(
2

1
)
(mod p),
care este echivalent a cu x
2
x
1
k(
2

1
) (mod p 1).
Daca se ia d = (
2

1
, p 1), din d | (p 1) si d | (
2

1
) rezulta d | (x
2
x
1
).
Daca notam:
x

=
x
2
x
1
d

=

2

1
d
p

=
p 1
d
ecuat ia devine x

(mod p). Cum (

, p

) = 1, se poate determina = (

)
1
(mod p

).
Valoarea lui k verica deci relat ia k x

(mod p), ceea ce conduce la determinarea a d


candidat i la valoarea lui k, dat i de relat ia k = x

+ ip

(mod p), i = 0, . . . , d 1. Din


aceste d valori posibile, solut ia se determina testand relat ia
k
(mod p)
1.4 Variante ale protocolului de semnatura ElGamal

In general, un mesaj este criptat si decriptat o singura data, ind necesara doar securitatea
sistemului de criptare.

In schimb, un document semnat cum ar un contract are o valoare
juridica, si este posibil ca autenticitatea sa sa e vericata chiar si dupa mai mult i ani. Este deci
important sa existe criterii de securitate mai severe pentru semnatura electronica decat pentru
criptare. Cum sigurant a protocolului de semnatura ElGamal este echivalenta cu complexitatea
problemei logaritmilor discret i, este necesar sa se foloseasca un modul p cat mai mare. Un p
de 1024 bit i conduce ns a la o semnatura ElGamal de 2048 bit i, ceea ce o elimina din multe
aplicat ii (cum ar exemplu smart-cardurile).
6 PRELEGEREA 1. SEMN

ATURI ELECTRONICE
1.4.1 Standard de semnatura electronica
Standardul de semnatur a electronica (DSS de la Digital Signature Standard) este o variant a a
protocolului de semnatur a ElGamal, cu proprietatea ca reduce substant ial lungimea semnaturii.
Protocolul de semnatur a DSS este urmatorul:
Fie p un num ar prim de 512 bit i, q un factor de 160 bit i ai lui p 1 si Z

p
o rad acin a
primitiva de ordin q a unitat ii.
Fie P = Z

p
, A = Z
q
Z
q
si K = {(p, q, , a, ) |
a
(mod p)}.
Valorile p, q, , sunt publice, iar a este secreta.
Pentru K = (p, q, , a, ) si pentru un num ar (secret) k (1 k q 1) se denesc:
sig
K
(x, k) = (, ) unde
= (
k
mod p) mod q = (x + a)k
1
mod q
Pentru x Z

p
, , Z
q
funct ia de vericare este denita
ver
K
(x, , ) = T (
e
1

e
2
mod p) mod q =
unde e
1
= x
1
(mod q) e
2
=
1
(mod q)
Diferent e ntre protocoalele de semnatura El Gamal si DSS:
a. DSS se distinge n primul rand de El Gamal prin faptul ca asigura o semnatur a de 320
bit i pe un mesaj de 160 bit i, lucrandn Z
p
cu p de 512 bit i. Aceasta permite lucrul ntr-un
corp cu circa 2
160
elemente. Ipoteza este aceea ca n aceasta baza, calculul logaritmilor
discret i este foarte dicil.
b.

In denirea lui semnul s-a schimbat n +. Aceasta schimba ecuat ia de vericare n:

mod p.
Daca (x + , p 1) = 1, atunci exista
1
mod (p 1) si aceasta ecuat ie se poate scrie

x
1

1
(mod p).
c. (idee a lui Schnorr). Sa presupunem ca q este un num ar de 160 bit i astfel nc at q | (p1) si
Z

p
este o rad acina primitiva de ordinul q a unitatii modulo p (pentru a gasi un astfel
de num ar, se ia o rad acina primitiva
0
Z
p
si se construieste =
(p1)/q
0
(mod p)).

In
acest fel, si sunt de asemenea rad acini de ordinul q ale unitat ii. Deci exponent ii lui
, , se pot reduce modulo q, fara a modica ecuat ia de vericare de mai sus.
Algoritmul de Schnorr foloseste si o funct ie de dispersie h : {0, 1}

Z
q
(a se vedea
prelegerea urmatoare), pe baza careia deneste componentele semnaturii astfel:
= h(x
k
), = k + (mod q)
Pentru x {0, 1}

si , Z
q
, procedura de vericare este
ver
K
(x, (, )) = T h(x

) =
Relat ia de vericare este adevarata deoarece se obt ine imediat

=
k
(mod p)
Exemplul 1.4 Fie q = 101, p = 78q + 1 = 7879. 3 este radacina primitiva n Z
7879
, deci se
poate lua = 3
78
(mod 7879) = 170.
Daca alegem de exemplu a = 75, obt inem =
a
(mod 7879) = 4567.
1.4. VARIANTE ALE PROTOCOLULUI DE SEMN

ATUR

A ELGAMAL 7
Sa presupunem ca Bob doreste sa semneze mesajul x = 1234 si ia k = 50 (deci
k
1
(mod 101) = 99); el va avea:
= (170
50
mod 7879) mod 101 = 2518 (mod 101) = 94
= (1234 + 75 94) 99 (mod 101) = 97
Semnatura (94, 97) a mesajului 1234 se verica prin calcul:

1
= 97
1
(mod 1010 = 25, e
1
= 1234 25 (mod 1010 = 45, e
2
= 94 25 (mod 101) = 27
(170
45
4567
27
mod 7879) mod 101 = 2518 mod 101 = 94
Semnatura este deci valida.

In varianta Schnorr trebuie calculata valoarea h(12342518) unde h este o funct ie de dis-
persie, iar 1234 si 2518 sunt reprezentate n binar. Pentru a nu intra n detalii, sa presupunem
ca h(12342518) = 96. Atunci
= 50 + 75 96 (mod 101) = 79
si semnatura este (96, 79).
Ea este vericata calculand 170
79
4567
96
(mod 7879) = 2518 si vericand h(12342518) = 96.
O alta varianta a protocolului DSS este protocolul de semnatur a DSA (Digital Signature
Algorithm). Acesta a fost propus n 1991 si adoptat ca standard de semnatur a la 1 decembrie
1994 (dupa publicarea sa n Registrul Federal la 19 mai 1994). Singura modicare fat a de DSS
consta n nlocuirea mesajului x (din calculul lui si al lui e
1
) cu SHA1(x), unde SHA1
este o funct ie de dispersie standard.
Exemplul 1.5 Sa reluam valorile lui p, q, , a, , k din Exemplul 1.4 si sa presupunem ca Alice
vrea sa semneze amprenta SHA 1(x) = 22. Ea va calcula
k
1
(mod 1010 = 50
1
(mod 1010 = 99,
= (170
50
(mod 7879)) (mod 1010 = 2518 (mod 101) = 94 si
= (22 + 75 94) 99 (mod 101) = 97.
Semnatura (94, 97) a amprentei 22 este vericata efectuand calculele;

1
= 97
1
(mod 1010 = 25,
e
1
= 22 25 (mod 101) = 45, e
2
= 94 25 (mod 101) = 27
si vericand ca 170
45
4567
27
(mod 7879) (mod 101) = 2518 (mod 101) = 94.
Cand DSS a fost propus n 1991, a avut mai multe critici. Astfel:
Mult i s-au aratat nemult umit i de impunerea marimii de 512 bit i pentru modul; o marime
variabila care sa e aleasa de beneciari n funct ie de necesitat i ar fost mai convenabila.
Ca raspuns, NIST a schimbat descrierea standardului pentru a permite alegerea ca modul
a oricarui num ar divizibil cu 64 avand ntre 512 si 1024 bit i.

In octombrie 2001 NIST
revine si recomanda alegerea pentru p a unui numar prim de 1024 bit i.
Semnaturile pot mult mai usor generate decat vericate. Pentru comparat ie, n sistemul
RSA un exponent mic de decriptare poate conduce la un protocol de vericare mult mai
rapid decat semnatura. Obiect ia este ridicata din considerente practice, anume:
Un mesaj este semnat o singura data, dar poate vericat de foarte multe ori de-a
lungul timpului.
Pe ce tipuri de calculatoare sunt efectuate aceste protocoale de semnatur a si/sau
vericare ? Cea mai mare parte a aplicat iilor folosesc calculatoare de birou, cu
resurse limitate, care comunica cu sisteme puternice de calcul. Trebuie dezvoltat
deci un protocol care sa oblige calculatorul de birou la cat mai put ine calcule.
8 PRELEGEREA 1. SEMN

ATURI ELECTRONICE
Raspunsul dat de NIST la aceasta obiect ie a fost ca este foarte put in important ce calcul
este mai simplu, av and n vedere sistemele actuale de calcul, tot mai performante.
1.4.2 Protocolul de semnatura ECDSA

In 2000 protocolul ECDSA (Elliptic Curve Digital Signature Algorithm) a fost aprobat sub
numele FIPS 186 2. Si el este o variant a a protocolului ElGamal, construit pentru funct ii
eliptice. Sa prezent am o descriere a sa:
Fie p un numar prim sau o putere a lui 2 si E o curba eliptica peste Z
p
. Fie A un punct
din E de ordin q (num ar prim) astfel ca Problema Logaritmului discret pentru A sa e
dicila. Fie
P= {0, 1}

, A= Z

1
Z

q
, K= {(p, q, E, A, m, B) | B = mA},
unde m Z
q1
. Valorile p, q, E, A, B sunt publice, m este cheia secreta.
Pentru K = (p, q, E, A, m, B) si k Z
q
ales aleator, denim
sig
K
(x, k) = (r, s)
unde
kA = (u, v), r = u (mod q), s = k
1
(SHA
1
(x) + mr) (mod q).
(daca r s = 0 se alege alta valoare aleatoare pentru k).
Pentru x {0, 1}

, r, s Z

q
vericarea este denita prin
w = s
1
(mod q), i = w SHA
1
(x) (mod q),
j = w r (mod q), (u, v) = iA + jB si
ver
K
(x, (r, s)) = T u (mod q) = r
Exemplul 1.6 Sa consideram curba eliptica y
2
= x
3
+ x + 6 denita peste Z
11
. Alegem
parametrii protocolului de semnatura astfel: p = 11, q = 13, A = (2, 7), m = 7 si B = (7, 2).
(a se vedea si exemplul din prelegerea anterioara).
Sa presupunem ca avem un mesaj x cu SHA
1
(x) = 4 si Alice vrea sa-l semneze folosind
valoarea aleatoare k = 3. Ea va calcula
(u, v) = 3 (2, 7) = (8, 3), r = u (mod 13) = 8 si s = 3
1
(4 + 7 8) (mod 13) = 7.
Deci semnatura este (8, 7).
Bob verica aceasta semnatura efectuand urmatoarele calcule:
w = 7
1
(mod 13) = 2, i = 2 4 (mod 13) = 8, j = 2 8 (mod 13) = 3,
(u, v) = 8A + 3B = (8, 3) si u (mod 13) = 8 = r.
Deci semnatura este valida.
1.5. PROTOCOALE DE SEMN

ATUR

A ONE-TIME 9
1.5 Protocoale de semnatura One-time
Ideea acestor protocoale se bazeaza pe faptul ca funct ia care asigura semnatura este folosita
pentru a semna un singur document, dupa care ea este abandonata (cu toate ca poate
vericat a de un numar arbitrar de ori).
Poate cel mai cunoscut astfel de procedeu este Protocolul de semnatura Lamport:
Fie k > 0 un numar ntreg si P = {0, 1}
k
. Daca f : Y Z este o funct ie neinversabil a,
se alege A = Y
k
. Se selecteaza aleator y
i,j
Y, 1 i k, j = 0, 1 si e z
i,j
= f(y
i,j
).
Cheia K este lista celor 2k valori y (secrete) si a celor 2k valori z (publice).
Pentru K = {(y
i,j
, z
i,j
) | 1 i k, j = 0, 1} se deneste:
sig
K
(x
1
, . . . , x
k
) = (y
1,x
1
, . . . , y
k,x
k
)
si
ver
K
(x
1
, . . . , x
k
, a
1
, . . . , a
k
) = T f(a
i
) = z
i,x
i
, 1 i k.
Conform acestui protocol, mesajul care trebuie semnat este un sir binar de lungime k.
Fiecare bit, de valoare j (j = 0, 1) este semnat prin z
i,j
, unde ecare z
i,j
este imaginea printr-o
funct ie neinversabil a a unui y
i,j
.
Vericarea consta n aplicarea lui f si compararea rezultatului cu cheia publica.
Exemplul 1.7 Fie 7879 un numar prim, iar 3 Z
7879
un element primitiv. Se deneste
f(x) = 3
x
mod 7879.
Daca Bob doreste sa semneze un mesaj de trei bit i, el alege (secret) sase numere aleatoare
y
1,0
= 5831 y
2,0
= 803 y
3,0
= 4285
y
1,1
= 735 y
2,1
= 2467 y
3,1
= 6449
Calculeaza apoi imaginea lor prin funct ia f:
z
1,0
= 2009 z
2,0
= 4672 z
3,0
= 268
z
1,1
= 3810 z
2,1
= 4721 z
3,1
= 5731
Aceste numere z sunt publice.
Sa presupunem ca Bob vrea sa semneze mesajul x = (1, 1, 0). Semnatura lui este
(y
1,1
, y
2,1
, y
3,0
) = (735, 2467, 4285)
Pentru a verica semnatura, este sucient sa se constate ca:
3
735
= 3810; 3
2467
= 4721; 3
4285
= 268,
toate calculele ind realizate modulo 7879.
Oscar nu poate imita semnatura, deoarece f nu are invers a.

In plus, protocolul de semnatur a nu poate utilizat decat pentru un singur mesaj: daca
dispune de doua mesaje cu aceeasi semnatura, Oscar poate imita semnatura unui nou mesaj
(diferit de cele doua).
De exemplu, daca mesajele (0, 1, 1) si (1, 0, 1) sunt semnate prin procedeul de sus cu
(y
1,0
, y
2,1
, y
3,1
) respectiv (y
1,1
, y
2,0
, y
3,1
), se pot imediat semna mesaje cum ar (1, 1, 1) sau
(0, 0, 1).
Desi foarte simplu si elegant, acest protocol nu este practic din cauza dimensiunii mari a
semnaturii. Reluand exemplul de mai sus, o implementare sigura necesita un modul p de 512
bit i. Aceasta nseamna ca ecare bit al mesajului are o semnatura de 512 bit i; avem deci o
semnatur a de 512 ori mai lunga decat mesajul !
De aceea a aparut o simplicare, care reduce lungimea semnaturii fara a diminua securitatea
ei. Numit Bos-Chaum, acest protocol este denit astfel:
10 PRELEGEREA 1. SEMN

ATURI ELECTRONICE
Fie k > 0 un num ar ntreg si P = {0, 1}
k
. Daca n este un num ar ntreg cu proprietatea
2
k
C
n
2n
, e B mult imea numerelor ntregi din intervalul [1, 2n] si
: P B
o funct ie injectiva n mult imea B a part ilor lui B de n elemente.
Daca f : Y Z este o funct ie neinversabil a, e A = Y
n
.
Se aleg aleator valorile y
i
Y, 1 i 2n si e z
i
= f(y
i
).
Cheia K este lista celor 2n valori y (secrete) si a celor 2n valori z (publice).
Pentru K = {(y
i
, z
i
) | 1 i 2n}, se denesc
sig
K
(x
1
, . . . , x
k
) = {y
j
| j (x
1
, . . . x
k
)}
si
ver
K
(x
1
, . . . , x
k
, a
1
, . . . , a
n
) = T {f(a
i
) | 1 i n} = {z
j
| j (x
1
, . . . , x
k
)}
Avantajul protocolului Bos-Chaum este acela ca scurteaza semnatura. De exemplu, sa
presupunem ca vrem sa semnam un mesaj de sase bit i (k = 6); cum 2
6
= 64 si C
4
8
= 70,
putem lua n = 4. Aceasta permite semnarea mesajului cu numai patru valori y (n loc de
sase la Lamport). De asemenea, si cheia este mai scurta, cu numai opt valori z fat a de 12 la
semnatura Lamport.
Protocolul de semnatura Bos-Chaum necesita o funct ie injectiva care asociaza ecarei
secvent e de k bit i x = (x
1
, . . . , x
k
) o submult ime de n elemente. Un exemplu de algoritm
simplu care realizeaza o astfel de asociere este:
x
k

i=1
x
i
2
i1
(x)
t 2n
e n
while t > 0 do
t t 1
if x > C
e
t
then
x x C
e
t
e e 1
(x) (x) {t + 1}.
enddo
Daca vrem sa dam o estimare generala a valorii lui n din protocolul Bos-Chaum, plecam de
la inegalitatea 2
k
C
n
2n
n care se evalueaz a C
n
2n
=
(2n)!
(n!)
2
cu formula lui Stirling, obt inandu-se
2
2n
/

n. Dupa simplicari si logaritmare n baza 2 se ajunge la relat ia:


k 2n
log
2
n
2
Asimptotic, n este de ordinul lui k/2, deci protocolul de semnatur a Bos-Chaum reduce
marimea semnaturii lui Lamport cu aproximativ 50%.
1.6 Semnaturi incontestabile
Semnaturile incontestabile au fost introduse de Chaum si van Antwerpen n 1989. Ele prezint a
cateva caracteristici. Astfel:
1.6. SEMN

ATURI INCONTESTABILE 11
Semnatura nu poate validata far a aportul semnatarului Bob. Aceasta l protejeaza pe
Bob de difuzarea far a consimtam ant a unui document pe care se pretinde ca l-ar semnat.
Validarea se face urmand un protocol de ntreb ari si raspunsuri.
Pentru a evita ca Bob sa-si nege propria semnatur a, exista un protocol de dezmint ire pe
care Bob trebuie sa-l urmeze pentru a arata ca o semnatur a este falsa.
Refuzul de a folosi acest protocol este o conrmare a autenticit at ii semnaturii.
Deci, un protocol de semnatura incontestabil a este format dintr-o funct ie de semna-tur a, un
protocol de vericare si o procedura de dezmint ire.
Algoritmul Chaum-van Antwerpen este:
Fie p = 2q + 1 un num ar prim cu proprietatea ca q este prim si Z

p
un element de
ordin q. Pentru 1 a q 1, se deneste
a
mod p.
Fie G subgrupul de ordin q al lui Z
p
generat de .
Se denesc P = A = G, K = {(p, , a, ) |
a
(mod p)}.
Valorile p, , sunt publice iar a este secreta.
Pentru K = (p, , a, ), x G se deneste y = sig
K
(x) = x
a
mod p.
Pentru x, y G, protocolul de vericare se efectueaza astfel:
1. Alice alege aleator numerele e
1
, e
2
Z

q
;
2. Alice calculeaza c = y
e
1

e
2
mod p si-l trimite lui Bob;
3. Bob calculeaza d = c
a
1
mod q
mod p si-l trimite lui Alice;
4. Alice admite autenticitatea lui y daca si numai daca d x
e
1

e
2
mod p.
A. Sa explicam nt ai rolul lui p si q n acest protocol. Calculele sunt efectuate n Z
p
. Este
necesar totusi ca anumite calcule sa e facute ntr-un subgrup al sau de ordin prim (notat cu
G).

In particular este nevoie sa calculam inverse modulo q (ceea ce justica de ce q = card(G)
trebuie sa e prim). Alegand p = 2q + 1 cu q prim, se asigura acest deziderat si - n plus -
dimensiunea lui G este maxima, lucru de dorit deoarece mesajele de semnat sunt elemente din
G.
Sa aratam nt ai cum admite Alice autenticitatea semnaturilor valide.

In calculul de mai
jos, exponent ii sunt redusi modulo q.
d c
a
1
(mod p) y
e
1
a
1

e
2
a
1
(mod p).
Cum
a
(mod p), avem
a
1
(mod p).
De asemenea, din y = x
a
(mod p) rezulta y
a
1
x (mod p).
Se ajunge deci la d x
e
1

e
2
(mod p).
Exemplul 1.8 Fie p = 467. 2 este o radacina primitiva, deci 2
2
= 4 este un generator al lui
G, grupul reziduurilor patratice modulo 467. Vom lua deci = 4.
Sa presupunem a = 101; avem =
a
mod 467 = 449.
Bob semneaza deci mesajul x = 119 cu y = 119
101
mod 467 = 129.
Sa presupunem ca Alice vrea sa autentice semnatura y si ca alege pentru asta e
1
= 38, e
2
=
397. Ea calculeaza c = 13, la care Bob raspunde cu d = 9. Alice verica atunci relat ia
119
38
4
397
9 (mod 467).
Semnatura este acceptata ca autentica.
12 PRELEGEREA 1. SEMN

ATURI ELECTRONICE
B. Sa arat am acum ca Alice nu poate accepta o semnatur a falsa drept autentica decat cu
o probabilitate neglijabila.
Teorema 1.1 Daca y x
a
(mod p) atunci Alice admite pe y ca semnatura autentica a lui x
cu probabilitate 1/q.
Demonstrat ie: Se observa ca orice ntrebare c corespunde la exact q perechi (e
1
, e
2
) posibile
(deoarece y si sunt elemente ale grupului G de ordin q prim si n denit ia lui c, ecare e
1
determina un e
2
unic). Cand Bob primeste c, el nu stie ce pereche (e
1
, e
2
) a fost folosita pentru
a-l construi. Vom arata ca daca y x
a
(mod p), orice raspuns d nu poate consistent decat
cu o singura pereche (e
1
, e
2
).
Deoarece genereaza G, orice element din G se scrie ca o putere (unica modulo q) a lui .
Deci c =
i
, d =
j
, x =
k
, y =
m
cu i, j, k, m Z
q
si operat iile aritmetice efectuate modulo
p. Sa consideram sistemul:
c y
e
1

e
2
(mod p) d x
e
1

e
2
(mod p).
El este echivalent cu
i me
1
+ ae
2
(mod q) j ke
1
+ e
2
(mod q).
Cum prin ipoteza y x
a
(mod p), rezulta m ak (mod q).
Astfel, matricea sistemului modulo q admite un determinant nenul, deci sistemul are solut ie
unica. Altfel spus, pentru orice d G, nu exista raspuns corect la ntrebarea c decat pentru
un singur cuplu (e
1
, e
2
). Deci probabilitatea ca Bob sa raspunda corect lui Alice n condit iile
teoremei este 1/q. 2
C. Sa construim acum procedura de dezmint ire. Ea foloseste de doua ori protocolul de
vericare. Algoritmul este:
1. Alice alege aleator e
1
, e
2
Z

q
;
2. Alice calculeaza c = y
e
1

e
2
(mod p) si-l trimite lui Bob;
3. Bob calculeaza d = c
a
1
mod q
(mod p) si-l trimite lui Alice;
4. Alice verica d x
e
1

e
2
(mod p);
5. Alice alege aleator f
1
, f
2
Z

q
;
6. Alice calculeaza C = y
f
1

f
2
(mod p) si-l trimite lui Bob;
7. Bob calculeaza D = C
a
1
mod q
(mod p) si-l trimite lui Alice;
8. Alice verica D x
f
1

f
2
(mod p);
9. Alice admite ca y este fals daca si numai daca
(d
e
2
)
f
1
(D
f
2
)
e
1
(mod p)
Pasii 1 4 si 5 8 corespund protocolului de vericare. Pasul 9 este validarea consistent ei
raspunsului, care permite lui Alice sa determine daca Bob a calculat bine raspunsurile sale
conform protocolului.
1.6. SEMN

ATURI INCONTESTABILE 13
Exemplul 1.9 Sa luam parametrii din exemplul anterior: p = 467, = 4,
a = 101, = 449. Fie mesajul x = 286 cu semnatura (gresita) y = 83.
Bob doreste sa dezminta aceasta semnatura.
Fie e
1
= 45, e
2
= 237 primele valori alese de Alice. Ea calculeaza c = 305 si Bob raspunde
cu d = 109. Alice calculeaza atunci
286
45
4
237
(mod 467) = 149.
Deoarece 149 = 109, Alice trece la pasul 5 al protocolului. Sa presupunem ca ea alege acum
f
1
= 125, f
2
= 9 si calculeaza C = 270 la care Bob raspunde cu D = 68. Alice calculeaza acum
286
125
4
9
(mod 467) = 25.
Cum 25 = 68, Alice trece la pasul 9 si efectueaza testul de consistenta:
(109 4
237
)
125
188 (mod 467) (68 4
9
)
45
188 (mod 467)
Acum Alice este convinsa ca semnatura nu este valabila.
Pentru nal, mai trebuiesc aratate doua elemente:
Bob poate sa o convinga pe Alice sa invalideze o semnatur a incorecta.
Bob nu poate sa o convinga pe Alice sa invalideze o semnatur a corecta decat cu proba-
bilitate neglijabila.
Teorema 1.2 Daca y x
a
(mod p) si daca Alice si Bob urmeaza corect protocolul de dezmin-
t ire, atunci
(d
e
2
)
f
1
(D
f
2
)
e
1
(mod p).
Demonstrat ie: Utilizand faptul ca d c
a
1
(mod p) si c y
e
1

e
2
(mod p), avem:
(d
e
2
)
f
1
((y
e
1

e
2
)
a
1

e
2
)
f
1
(mod p) y
e
1
f
1

e
2
a
1
f
1

e
2
f
1
(mod p)
y
e
1
f
1

e
2
f
1

e
2
f
1
(mod p) y
e
1
f
1
(mod p).
Un calcul similar folosind D C
a
1
(mod p), C y
f
1

f
2
(mod p) si

a
(mod p) arata ca
(D
f
2
)
e
1
y
e
1
f
1
(mod p)
deci testul de consistenta de la pasul 9 reuseste. 2
Sa studiem acum cazul cand Bob ncearca sa dezmint a o semnatura valid a.

In acest caz
Bob nu va urma protocolul, si va construi d si D far a sa respecte procedura.
Teorema 1.3 Sa presupunem ca y x
a
(mod p) si Alice urmeaza procedura de dezmint ire.
Daca d x
e
1

e
2
(mod p) si D x
f
1

f
2
(mod p) atunci probabilitatea ca (d
e
2
)
f
1

(D
f
2
)
e
1
(mod p) este 1
1
q
.
Demonstrat ie: Sa presupunem ca avem (conform ipotezei):
y x
a
d x
e
1

e
2
D x
f
1

e
2
(d
e
2
)
f
1
(D
f
2
)
e
1
toate calculele ind facute modulo p. Vom arata ca se ajunge la o contradict ie.
Testul de consistent a (pasul 9) se rescrie D d
f
1
0

f
2
(mod p) unde
d
0
= d
1/e
1

e
2
/e
1
(mod p) nu depinde decat de pasii 1 4 ai protocolului. Aplicand Teorema
1.1 se obt ine ca y este o semnatura valida a lui d
0
cu probabilitate 1
1
q
. Dar, prin ipoteza, y
este o semnatura valida a lui x. Deci, cu mare probabilitate vom avea x
a
d
a
0
(mod p) adica
x = d
0
.
Pe de-alta parte, din d x
e
1

e
2
(mod p) rezulta x d
1/e
1

e
2
/e
1
(mod p), adica tocmai
x = d
0
, contradict ie. 2
14 PRELEGEREA 1. SEMN

ATURI ELECTRONICE
1.7 Protocol de semnatura fara esec
O semnatur a fara esec ofera protect ie contra unui adversar atat de puternic nc at poate con-
traface semnaturi. Protocolul de semnatur a prezentat aici este construit de Heyst si Pedersen
n 1992. Este un tip de semnatura one - time, compus dintr-o funct ie de semnatur a, o funct ie
de vericare si un protocol pentru proba de autenticare. Prezentarea sa n detaliu este:
Fie p = 2q + 1 un num ar prim cu q prim, si Z

p
un element de ordin q. Pentru
1 a
0
q 1 se deneste =
a
0
(mod p).
Valorile p, q, , sunt publice si considerate xe.
Valoarea a
0
este secreta pentru toata lumea (inclusiv Bob).
Fie P = Z
q
, A = Z
q
Z
q
. O cheie este de forma K = (
1
,
2
, a
1
, a
2
, b
1
, b
2
) unde
a
1
, a
2
, b
1
, b
2
Z
q
,
1
=
a
1

a
2
(mod p)
2
=
b
1

b
2
(mod p).

1
, g
2
sunt publice, a
1
, a
2
, b
1
, b
2
sunt secrete.
Daca x Z
q
, se deneste
sig
K
(x) = (y
1
, y
2
) unde y
1
= a
1
+ xb
1
(mod q) y
2
= a
2
+ xb
2
(mod q).
Pentru y = (y
1
, y
2
) Z
q
Z
q
, avem
ver
K
(x, y) = T
1

x
2

y
1

y
2
(mod p)
Se poate vedea direct ca o semnatur a corect construita este validata de funct ia de vericare.
Ram ane de studiat problema de securitate si de ce procedeul este far a esec. Sa stabilim ntai
cateva proprietat i importante ale cheilor.
Doua chei (
1
,
2
, a
1
, a
2
, b
1
, b
2
) si (

1
,

2
, a

1
, a

2
, b

1
, b

2
) sunt echivalente daca

1
=

1
,
2
=

2
.

In ecare clasa de echivalent a sunt exact q


2
chei.
Lema 1.1 Daca K, K

sunt chei echivalente, atunci


ver
K
= T ver
K
= T.
Demonstrat ie: Fie K = (
1
,
2
, a
1
, a
2
, b
1
, b
2
) si K

= (
1
,
2
, a

1
, a

2
, b

1
, b

2
) cu

1

a
1

a
2
(mod p)
a

2
(mod p) si
2

b
1

b
2
(mod p)
b

2
(mod p).
Sa presupunem ca mesajul x este semnat cu y = (y
1
, y
2
) folosind cheia K, unde
y
1
a
1
+ xb
1
(mod q) y
2
a
2
+ xb
2
(mod q)
Sa presupunem ca vericarea lui y se face cu cheia K

y
1

y
2

a

1
+xb

2
+xb

2
(mod p)
a

2
(
b

2
)
x
(mod p)
1

x
2
(mod p).
Deci y se veric a si cu cheia K

. 2
Lema 1.2 Fie o cheie K si y = sig
K
(x). Exista exact q chei K

echivalente cu K astfel ncat


y = sig
K
(x).
Demonstrat ie: Fie
1
,
2
componentele publice ale lui K. Trebuie determinat num arul de
quadrupluri (a
1
, a
2
, b
1
, b
2
) astfel nc at

1

a
1

a
2
(mod p)
2

b
1

b
2
(mod p)
y
1
a
1
+ xb
1
(mod q) y
2
= a
2
+ xb
2
(mod q).
Cum genereaza Z

q
, exista exponent ii unici c
1
, c
2
, a
0
Z
q
astfel nc at

1

c
1
(mod p),
2

c
2
(mod p),
a
0
(mod p).

In acest fel, este necesar si sucient sa avem:


c
1
a
1
+ a
0
a
2
(mod q) c
2
b
1
+ a
0
b
2
(mod q)
1.7. PROTOCOL DE SEMN

ATUR

A F

AR

A ESEC 15
y
1
a
1
+ xb
1
(mod q) y
2
a
2
+ xb
2
(mod q).
Matricea acestui sistem de ecuat ii cu necunoscutele a
1
, a
2
, b
1
, b
2
are rangul 3 (determinantul
este

1 a
0
0 0
0 0 1 a
0
1 0 x 0
0 1 0 x

), deci sistemul are cel put in o solut ie netriviala obt inuta cu ajutorul cheii
K si n plus dimensiunea spat iului solut iilor este 4 3 = 1, deci exista exact q solut ii. 2
Lema 1.3 Fie o cheie K, y = sig
K
(x) si ver
K
(x

, y

) = T pentru x

= x. Exista atunci cel


put in o cheie K

echivalenta cu K astfel ca
y = sig
K
(x), y

= sig
K
(x

)
Demonstrat ie: Se face printr-un rat ionament analog cu cel din lema precedent a. 2
Din ultimele doua leme putem trage urmatoarea concluzie: ind data o semnatura valid a y
a unui mesaj x, exista exact q chei posibile care pot semna x. Pentru orice alt mesaj x

= x,
aceste q chei produc semnaturi diferite ale lui x

. Se obt ine astfel teorema urmatoare:


Teorema 1.4 Fiind date sig
K
(x) = y si x

= x, Oscar nu poate calcula sig


K
(x

) decat cu
probabilitate
1
q
.
De remarcat ca rezultatul acestei teoreme nu depinde de puterea de calcul a lui Oscar;
securitatea provine din faptul ca el nu poate distinge care din cele q chei posibile a fost utilizata.
Se poate explica acum not iunea de semnatur a far a esec. S-a aratat ca ind dat un mesaj
x semnat cu y, Oscar nu poate calcula semnatura y

a lui Bob pe un alt mesaj x

. Ar mai
posibilitatea ca Oscar sa poata calcula o semnatur a y = sig
K
(x

) care sa e valid a. Dar, daca


ea ajunge napoi la Bob, acesta poate furniza cu probabilitate 1
1
q
o proba de autenticare;
aceasta este valoarea a
0
= log

, cunoscuta numai de autor.


Sa presupunem ca Bob are o pereche (x

, y) astfel ncat
ver
K
(x

, y) = T si y = sig
K
(x

).
Avem
1

2

y
1

y
2

(mod p) unde y = (y
1
, y
2
).
Bob poate calcula propria sa semnatura pentru x

, pe care o noteaza y

= (y
1

, y
2

) si are

2

y

2
(mod p).
Deci
y
1

y
2

y

2
(mod p). Scriind =
a
0
(mod p) se obt ine:

y
1
+a
0
y
2

y

1
+a
0
y

2
(mod p) de unde y
1
+ a
0
y
2
y

1
+ a
0
y

2
(mod q)
sau y
1
y

1
a
0
(y

2
y
2
) (mod q). Evident y

2
y
2
deoarece y este un fals.
Deci (y

2
y
2
)
1
(mod q) exista si avem:
a
0
= log

= (y
1
y

1
)(y

2
y
2
)
1
(mod q).
Binent eles, n vericarea probei de autenticare s-a presupus ca nici Bob nu poate calcula
logaritmul discret log

.
Ca o remarca nala, acest procedeu este cu utilizare unica, deoarece cheia K a lui Bob poate
usor determinata dupa doua folosiri.
16 PRELEGEREA 1. SEMN

ATURI ELECTRONICE
Exemplul 1.10 Sa presupunem p = 3467 = 2 1733 +1. Numarul = 4 are ordinul 1733 n
Z

3467
. Daca se ia a
0
= 1567 vom avea = 4
1567
(mod 3467) = 514.
Reamintim ca Bob cunoaste si dar nu a
0
.
Sa presupunem ca Bob construieste cheia sa cu a
1
= 888, a
2
= 1024,
b
1
= 786, b
2
= 999 deci

1
= 4
888
514
1024
(mod 3467) = 3405
2
= 4
786
514
999
(mod 3467) = 2281.

In acest moment Bob este pus n prezent a semnaturii false (822, 55) a mesajului 3383.
Aceasta semnatura este valida, deoarece condit ia de vericare este satisfacuta:
3405 2281
3383
2282 (mod 3467) 4
822
514
56
2282 (mod 3467).
Dar Bob stie ca aceasta nu este semnatura sa si trebuie sa dovedeasca acest lucru. El
calculeaza propria sa semnatura:
(888 + 3383 786 (mod 1733), 1024 + 3383 999 (mod 1733)) = (1504, 1291)
dupa care evalueaza logaritmul discret
a
0
= (822 1504)(1291 55)
1
(mod 1733) = 1567
care constituie proba de autenticare, si arata ca semnatura nu i apart ine.
1.8. EXERCIT II 17
1.8 Exercit ii
1.1 Sa presupunem ca Bob utilizeaza semnatura El Gamal si semneaza mesajele x
1
, x
2
obt i-
nand (,
1
) respectiv (,
2
) (cu aceeasi valoare a lui n ambele sem-naturi). Se considera n
plus ca (
1

2
, p 1) = 1.
Ar atat i ca aceste informat ii sunt suciente pentru determinarea lui k;
Ar atat i cum se poate sparge protocolul de semnatura;
Presupunand p = 3187, = 5, = 25703, efectuat i calculul lui k si a plecand de la
semnaturile (23972, 31396) pentru x = 8990 si (23972, 20481) pentru x = 31415.
1.2 Protocolul de semnatura El Gamal este implementat folosind p = 31847,
= 5, = 26379. Sa se scrie un program care:
Verica semnatura (20679, 11082) a mesajului x = 20543.
Calculeaza exponentul secret a prin compromisul spat iu - timp al lui Shanks. Apoi deter-
mina valoarea aleatoare k utilizata n semnatura lui x.
1.3 Bob utilizeaza procedeul de semnatura El Gamal ca n Exemplul 1.1: p = 467, = 2, =
132. Sa presupunem cael semneaza mesajul x = 100 cu (29, 51). Calculat i semnatura falsa pe
care o poate obt ine Oscar cu h = 102, i = 45, j = 293. Autenticat i semnatura rezultata cu
funct ia de vericare.
1.4 Aratat i ca a doua metoda de atac din semnatura El Gamal furnizeaza o semna-tura corecta
care satisface funct ia de vericare.
1.5 Modicam put in protocolul de semnatura El Gamal. Cheia este construita astfel: Bob
alege o radacina primtiva Z

p
, un exponent secret a (0 a p2), (a, p1) = 1 si =
a
.
Cheia este K = (, a, ) unde , sunt publice, iar a este secreta. Fie x Z
p
un mesaj care
trebuie semnat. Bob calculeaz a semnatura sig
K
(x) = (, ) prin:
=
k
(mod p) = (x k)a
1
(mod p 1).
Singura diferenta fata de semnatura El Gamal este calculul lui .
Descriet i cum se poate verica cu cheia publica a lui Bob o semnatura (, ) pe un mesaj
x;
Descriet i avantajul noului procedeu (fata de cel vechi) din punct de vedere al calculelor;
Comparat i pe scurt securitatea celor doua protocoale.
1.6 Bob utilizeaza procedeul DSS cu q = 101, p = 7879, = 170, a = 75, = 4567.
Determinat i semnatura lui Bob pe mesajul x = 5001 utilizand valoarea aleatoare k = 49, si
aratat i cum poate vericata semnatura rezultata.
18 PRELEGEREA 1. SEMN

ATURI ELECTRONICE
1.7

In protocolul de semnatura Lamport, Bob semneaza doua mesaje x, x

, ambele de cate k
bit i. Fie s = d(x, x

) numarul de coordonate n care difera cele doua mesaje. Aratat i ca Oscar


poate semna 2
s
2 mesaje noi.
1.8

In protocolul de semnatura Bos-Chaum cu k = 6, n = 4 sunt semnate mesajele x =
(0, 1, 0, 0, 1, 1), x

= (1, 1, 0, 1, 1, 1). Determinat i noile mesaje pe care le poate semna Oscar,


plecand de la semnaturile lui x si x

.
1.9

In protocolul de semnatura Bos-Chaum, Bob semneaza doua mesaje x, x

. Fie s =
card((x) (x

)). Aratat i ca Oscar poate semna acum C


n
s
2 mesaje noi.
1.10 Bob utilizeaza protocolul de semnatura incontestabila Chaum-van Antwerpen ca n Ex-
emplul 1.7; deci p = 467, = 4, a = 101, = 449. Sa presupunem ca Bob este confruntat
cu semnatura y = 25 a mesajului x = 157 si doreste sa arate ca ea este falsa. Presupunand ca
Alice alege valorile aleatoare e
1
= 46, e
2
= 123, f
1
= 198, f
2
= 11 n protocolul de dezmint ire,
calculat i ntreb arile c, d ale lui Alice si raspunsurile C, D ale lui Bob; vericat i ca Alice
admite dezmint irea.
1.11 Aratat i ca clasele de echivalenta de chei n protocolul de semnatura fara esec Pedersen
- van Heyst cont ine q
2
chei.
1.12 Bob utilizeaza protocolul de semnatura fara esec Pedersen - van Heyst cu p = 3467, =
4, a
0
= 1567, = 514 (valoarea lui a
0
nu este cunsocuta de Bob).
Folosind faptul ca a
0
= 1567, determinat i toate cheile posibile
K = (
1
,
2
, a
1
, a
2
, b
1
, b
2
) astfel ca sig
K
(42) = (1118, 1449).
Presupunem sig
K
(42) = (1118, 1449) si sig
K
(969) = (899, 471). Fara a utiliza valoarea
lui a
0
, determinat i valoarea lui K (cea utilizata n protocolul cu cheie one - time).
1.13 Bob foloseste protocolul de semnatura fara esec Pedersen - van Heyst cu p = 5087, =
25, = 1866. Cheia este K = (5065, 5076, 144, 874, 1873, 2345). Se presupune ca Bob este
confruntat cu semnatura (2219, 458) contrafacuta pe mesajul 4785.
Ar atat i ca ea satisface condit ia de vericare, deci este valida.
Ar atat i cum poate Bob sa calculeze proba de autenticitate plecand de la aceasta semnatura.
Bibliograe
[1] J. N. Bos, D. Chaum - Provably unforgable signatures; Lecture Notes in Computer Science,
740(1993), 1 14
[2] D. Chaum, H. van Antwerpen - Undeniable signatures; Lecture Notes in Computer Science,
435(1990), 212 216
[3] W. Die, M.E. Hellman - Multiuser cryptographic techniques; AFIPS Conference Proceed-
ings, 45(1976), 109 112
[4] T. El Gamal - A public key cryptosystem and a signature scheme based on discrete algo-
rithms; IEEE Trans on Inf. Theory, 31(1985), 469 472
[5] E. van Heyst, T.P.Petersen - How to make ecient fail-stop signatures; Lecture Notes in
Computer Science, 658(1993), 366 377
[6] C. J. Mitchell, F. Piper, P. Wild - Digital signatures; Contemporary Cryptology, The Science
of Information Integrity, IEEE Press, (1992), 325 378
[7] M. E. Smid, D. K. Branstad - Response to comments on the NIST proposed digital signa-
ture standard; Lecture Notes in Computer Science, 740(1993), 76 88
[8] D. Stinton - Cryptographie, Theorie and Practique, Int. Thompson Publishing (1995)
[9] Digital signature standard; national Bureau of Standards, FIPS Publications 186, 1994
19
Prelegerea 2
Funct ii de dispersie
2.1 Semnaturi si funct ii de dispersie
Ca o trasatur a generala a protocoalelor de semnatur a denite n prelegerea anterioara, mesajele
care puteau semnate erau toate de lungime mica. De exemplu, cu protocolul DSA se sem-
neaza un mesaj de 160 bit i si se obt ine o semnatura de 320 bit i.

In practica ns a, documentele
care trebuiesc semnate sunt mult mai lungi, putand ajunge la dimensiuni de mega-octet i. Ideea
de spargere a mesajului n blocuri si de semnare separat a ecarui bloc are numeroase inconve-
niente, legate atat de spat iu cat si de timpul foarte lung luat de autenticarea semnaturii.
Solut ia la aceasta problema este funct ia de mprastiere (dispersie) criptograca. Aceasta
funct ie care trebuie calculata rapid, transforma un mesaj de lungime arbitrara ntr-o amprenta
numerica de dimensiune xata (160 bit i n cazul DSA), care ulterior este semnata.
Daca Bob doreste sa semneze un mesaj x, el calculeaza nt ai amprenta numeric a z = h(x),
o semneaza cu y = sig
K
(z) si transmite perechea (x, y) prin canalul de comunicat ie. Oricine
poate efectua vericarea calculand amprenta z = h(x) si apoi utilizand protocolul de vericare
a semnaturii ver
K
(z, y).
2.2 Funct ii de dispersie cu coliziuni tari
Deoarece semnatura foloseste doar amprenta numerica, trebuie ca funct ia h sa satisfaca cateva
condit ii pentru a evita falsicarea.
Pentru Oscar, atacul cel mai simplu al unui mesaj (x, y) semnat de Bob
(y = sig
K
(h(x))) consta n calcularea z = h(x) si cautarea unui x

,= x cu h(x

) = h(x).
Daca Oscar reuseste, (x

, y) este un mesaj valid.


Pentru a mpiedica acest lucru, se pune condit ia ca h sa e cu coliziuni slabe.
Denit ia 2.1 O funct ie de dispersie h este cu coliziuni slabe daca, ind dat un mesaj x, este
calculabil dicil sa se obt ina un mesaj x

,= x astfel ca h(x

) = h(x).
Un alt atac posibil: Oscar cauta doua mesaje distincte x, x

cu h(x) = h(x

).

Il convinge
apoi pe Bob sa semneze mesajul x cu amprenta sa numeric a h(x) si obt ine y. Atunci
perechea (x

, y) este o semnatur a autentic a.


Acest procedeu face necesara introducerea unei alte denit ii a coliziunii.
19
20 PRELEGEREA 2. FUNCT II DE DISPERSIE
Denit ia 2.2 O funct ie de dispersie h este cu coliziuni tari daca este calculabil dicil sa se
obt in a doua mesaje distincte x

, x cu h(x

) = h(x).
Evident, o funct ie cu coliziuni tari este si cu coliziuni slabe.
Un al treilea tip de atac care poate init iat de Oscar se bazeaza pe observat ia ca este
adesea posibil sa se obt ina aleator falsicari ale amprentelor numerice. Daca Oscar obt ine
astfel o semnatur a valida a amprentei z, el poate cauta un mesaj x astfel ca z = h(x).
Pentru evitarea acestui atac este de dorit ca funct ia h sa e neinversabil a (n sensul folosit
la sistemele de criptare cu cheie publica).
Denit ia 2.3 O funct ie de dispersie h este neinversabila daca, ind data o amprenta numerica
z, este calculabil dicil sa se gaseasca un mesaj x astfel ca h(x) = z.
Teorema 2.1 Fie X, Z mult imi nite [X[ 2 [Z[ (s-a notat [A[ cardinalul mult imii A) si
h : X Z o funct ie de dispersie. Se presupune ca A este un algoritm de inversare a
lui h. Exista atunci un algoritm probabilist Las V egas care gaseste o coliziune pentru h cu
probabilitate cel put in
1
2
.
Demonstrat ie: Fie A algoritmul de inversiune pentru h, de forma unui oracol A care admite la
intrare o amprent a z Z si ntoarce un element A(z) X astfel ca h(A(z)) = z.
Sa consideram algoritmul urmator (notat cu B):
1. Fie x X ales aleator;
2. z h(x);
3. x
1
A(z)
4. if x
1
,= x then x
1
si x formeaza o coliziune pentru h (succes)
else sfarsit (esec)
B este un algoritm probabilist de tip Las V egas, deoarece ntoarce o coliziune sau nici un
raspuns. Deci, este sucient sa calculam probabilitatea de succes.
Pentru orice x, x
1
X se deneste x x
1
daca h(x) = h(x
1
).
Este usor de demonstrat ca este relat ie de echivalent a. Denim
[x] = x
1
[x
1
X, x x
1

Fiecare clasa de echivalent a [x] este formata din mesaje care produc aceeasi amprenta ca si
x. Numarul de clase de echivalent a este deci cel mult [Z[. Fie C = X/ mult imea claselor de
echivalent a.
Presupunem ca x este ales din X la pasul 1. Pentru acest mesaj pot apare la pasul 3 [[x][
valori x
1
posibile.[[x][ 1 din ele sunt diferite de x si duc la reusita algoritmului n pasul 4.
Pentru o alegere particulara a lui x, probabilitatea de succes este deci
[[x][ 1
[[x][
.
2.3. ATACUL NASTERILOR 21
Probabilitatea de succes a algoritmului este calculata ca medie peste toate alegerile posibile
ale lui x:
Pr
succes
=
1
[X[

xX
[[x][ 1
[[x][
=
1
[X[

cC

xc
[c[ 1
[c[
=
1
[X[

cC
([c[ 1)
=
1
[X[
(

cC
[c[

cC
1)
[X[ [Z[
[X[

[X[ [X[/2
[X[
=
1
2
.
Probabilitatea de succes este deci cel put in
1
2
. 2
Din aceasta teorema se deduce urmatorul rezultat:
Lema 2.1 Daca o funct ie de dispersie este cu coliziuni tari, atunci ea este neinversabila.
Rezulta ca este sucient ca o funct ie de dispersie sa e cu coliziuni tari, aceasta implicand
celelalte doua proprietat i de securitate. De aceea, n continuare ne vom margini la studiul
coliziunilor tari.
2.3 Atacul nasterilor
Vom pune aici n evident a o condit ie de securitate, necesara relativ la lungimea amprentelor
(sau, echivalent, la marimea lui Z). Ea rezulta dintr-o metoda simpla de obt inere a coliziunilor,
numit a atacul nasterilor; numele provine de la paradoxul nasterilor care - reamintim - spune ca
probabilitatea ca dintr-o mult ime aleatoare de 23 persoane sa e doua cu aceeasi zi de nastere,
este cel put in 1/2.
Fie X, Z doua mult imi nite, [X[ 2[Z[ si e h : X Z o funct ie de dispersie. Notam
m = [X[, n = [Z[. Este usor de aratat ca exista cel put in n coliziuni, dar problema este de a le
pune n evident a. O metoda simpla consta n a extrage aleator k mesaje distincte x
1
, . . . , x
k
,
de a calcula z
i
= h(x
i
), 1 i k si de a cauta daca exista o coliziune printre ele (ordonand z
i
de exemplu).
Cum x
i
sunt extrase aleator, se poate considera ca si z
i
sunt elemente aleatoare (nu neaparat
distincte) din Z. Probabilitatea ca din k extrageri, toate elementele z
i
sa e distincte, se
determina astfel:
Numerele z
i
se ordoneaza; e z
1
, . . . , z
k
aceasta ordine. Prima extragere z
1
este total
aleatoare; probabilitatea ca z
2
,= z
1
este 1 1/n, probabilitatea ca z
3
sa e distincta de z
1
si z
2
este 1 2/n, etc.
Probabilitatea ca sa nu e k coliziuni va deci:
_
1
1
n
__
1
2
n
_
. . .
_
1
k 1
n
_
=
k1

i=1
_
1
i
n
_
Daca x este un numar real sucient de mic, atunci se poate folosi aproximarea (rezultata din
dezvoltarea n serie Mac Laurin) 1 x e
x
. Vom obt ine atunci:
k1

i=1
_
1
i
n
_

k1

i=1
e
i
n
= e
k(k1)
2n
.
22 PRELEGEREA 2. FUNCT II DE DISPERSIE
Probabilitatea ca sa existe cel put in o coliziune este atunci 1 e
k(k1)
2n
. Notand aceasta pro-
babilitate cu , se obt ine ecuat ia n k : e
k(k1)
2n
1 , care conduce la k
2
k 2n ln
1
1
.
Daca se ignora termenul k, se obt ine k
_
2n ln
1
1
.
Luand acum = 0.5, se ajunge la k 1.17

n.
De remarcat ca alte valori pentru conduc la valori diferite pentru k, dar multiplicate
totdeauna cu un factor constant

n.
Exemplul 2.1 Daca X este mult imea int elor umane, Z este mult imea celor 365 zile dintr-un
an (nebisect) iar h(x) reprezinta data de nastere a persoanei x, se obt ine paradoxul nasterilor.

In aproximarea de sus, cu n = 365, avem k 22.5. Deci, printre 23 persoane alese ntamplator,
probabilitatea ca doua sa aiba aceeasi zi de nastere este 1 1/2.
Acest tip de atac impune o margine inferioara asupra lungimii amprentelor. O amprent a
de 40 bit i este vulnerabila la un atac al nasterilor folosind numai 2
20
(aproximativ un milion)
mesaje aleatoare. Se sugereaza de aceea folosirea de amprente de 128 bit i (aici atacul nasterilor
va cere 2
64
calcule). Alegerea de 160 bit i n cazul DSS (DSA) este deci judicioasa.
2.4 Funct ii de dispersie si logaritmi discret i
Funct ia de dispersie prezentat a n aceasta sect iune a fost denita n [2]. Ea nu este sucient de
rapida pentru aplicat ii practice dar constituie un exemplu foarte simplu de funct ie de dispersie
care admite o proba de securitate pe o ipoteza rezonabila. Forma sa este:
Fie p un numar prim mare astfel ca q = (p 1)/2 sa e de asemenea prim.
Fie , Z
p
doua elemente primitive.
Valoarea log

nu este publica si se presupune ca este dicil de obt inut.


Funct ia de dispersie Chaum-van Heijst-Ptzmann h : Z
q
Z
q
Z

p
este denita prin:
h(x
1
, x
2
) =
x
1

x
2
(mod p)
Teorema 2.2 Fiind data o coliziune pentru funct ia de dispersie Chaum-van Heijst-Ptzmann,
calculul lui log

este usor.
Demonstrat ie: Sa presupunem ca a aparut o coliziune
h(x
1
, x
2
) = h(x
3
, x
4
) cu (x
1
, x
2
) ,= (x
3
, x
4
).
Avem deci
x
1

x
2

x
3

x
4
(mod p), sau
x
1
x
3

x
4
x
2
(mod p).
Vom nota d = (x
4
x
2
, p1). Cum p1 = 2q cu q num ar prim, vom avea d 1, 2, q, p1.
Sa trecem n revista ecare din aceste patru posibilitat i.
d = 1 Notand y = (x
4
x
2
)
1
(mod p 1), vom avea

(x
4
x
2
)y
(mod p)
(x
1
x
3
)y
(mod p)
si se poate calcula logaritmul discret log

= (x
1
x
3
)(x
4
x
2
)
1
(mod p 1).
d = 2 Deoarece p 1 = 2q, q prim, vom avea (x
4
x
2
, q) = 1. Notam y = (x
4

x
2
)
1
(mod q), deci (x
4
x
2
)y = kq + 1 pentru un num ar ntreg k. Calculand, se obt ine
2.5. EXTENSIA UNEI FUNCT II DE DISPERSIE 23

(x
4
x
2
)y

kq+1
(mod p) (1)
k
(mod p) (mod p)
deoarece
q
1 (mod p).
Deci,
(x
1
x
3
)y

(x
4
x
2
)y
(mod p) (mod p).
De aici se deduce log

= (x
1
x
3
)(x
4
x
2
)
1
(mod p 1), sau
log

= (x
1
x
3
)(x
4
x
2
)
1
+q (mod p 1).
Se poate verica usor care din aceste doua rezultate este cel corect.
d = q Din 0 x
2
q 1, 0 x
4
q 1 rezulta (q 1) x
4
x
2
q 1.
Este deci imposibil sa avem (x
4
x
2
, p 1) = q.
d = p 1 Aceasta se poate numai daca x
4
= x
2
. Avem atunci

x
1

x
2

x
3

x
2
(mod p), deci
x
1

x
3
(mod p), de unde rezulta x
1
= x
3
.
S-a ajuns la (x
1
, x
2
) = (x
3
, x
4
), ceea ce contrazice ipoteza.

In concluzie, h este cu coliziuni tari, depinzand de calculul lui log

n Z
p
. 2
Exemplul 2.2 Sa luam p = 12347, deci q = 6173, = 2, = 8461.
Presupunem ca s-a gasit coliziunea
5692

144

212

4214
(mod 12347).
Deci x
1
= 5692, x
2
= 144, x
3
= 212, x
4
= 4214. Avem (x
4
x
2
, p 1) = 2
si se ncepe calculul:
y = (x
4
x
2
)
1
(mod q) = (4214 144)
1
(mod 6173) = 4312.
Calculam apoi y

= (x
1
x
3
)y (mod p 1) = (5692 212)4312 (mod 12346) = 11862.
Se obt ine log

, y

+q (mod p 1).

Intr-adevar,
y

(mod p) = 2
11862
(mod 12346) = 9998, deci
log

= y

+q (mod p 1) = 11862 + 6173 (mod 12346) = 5689.


Se verica imediat ca 2
5689
8461 (mod 12347).
2.5 Extensia unei funct ii de dispersie
Ideile acestui paragraf sunt bazate pe lucrarea [3].

In [7] se aa construita o idee asemanatoare.
Sa vedem cum poate extinsa o funct ie de dispersie pe un domeniu innit, pastr and propri-
etatea de a cu coliziuni tari; avantajul unei asemenea situat ii este acela ca se pot semna
mesaje de lungime arbitrara.
Fie h : Z
m
2
Z
t
2
o funct ie de dispersie cu coliziuni tari, cu m t + 1. Scopul este de a
construi o funct ie h

: X Z
t
2
, unde X =

_
i=m
Z
i
2
.
Sa consideram la nceput cazul m t + 2.
Fiecare element al lui X este codicat printr-un sir de bit i; vom nota lungimea sirului x cu
[x[, iar concatenarea a doua siruri x, y X cu x|y. Fie [x[ = n m; atunci x se poate scrie
sub forma:
x = x
1
|x
2
| . . . |x
k
unde [x
1
[ = [x
2
[ = . . . = [x
k1
[ = mt 1, [x
k
[ = mt 1 d, 0 d mt 2.

In acest fel se obt ine k =


_
n
mt 1
_
. Denim funct ia h

(x) folosind algoritmul urmator:


24 PRELEGEREA 2. FUNCT II DE DISPERSIE
1. for i := 1 to k 1 do y
i
x
i
2. y
k
x
k
|0
d
3. y
k+1
[d]
2
(reprezentarea binara a lui d pe mt 1 bit i).
4. g
1
h(0
t+1
|y
1
)
5. for i = 1 to k do g
i+1
h(g
i
|1|y
i+1
)
6. h

(x) g
k+1
Notam y(x) = y
1
|y
2
| . . . |y
k+1
. y
k
se obt ine completand x
k
la dreapta cu d zerouri, astfel ca
toate blocurile y
i
(1 i k) sa e de lungime mt 1. De asemenea, la pasul 3, y
k+1
este
completat la stanga cu zerouri pentru a obt ine lungimea mt 1.
Pentru dispersia lui x se construieste y(x) apoi se trateaza iterativ blocurile y
1
, y
2
, . . . , y
k+1
.
Din construct ia lui y
k+1
se asigura injectivitatea aplicat iei y.
Teorema 2.3 Fie h : Z
m
2
Z
t
2
(m t + 2) o funct ie de dispersie cu coliziuni tari. Funct ia
h

_
i=m
Z
i
2
Z
t
2
denita prin algoritmul de mai sus, este de asemenea cu coliziuni tari.
Demonstrat ie: Sa presupunem prin absurd ca exista x ,= x

astfel ca h

(x) = h

(x

). Vom arata
cum, plecand de la aceasta coliziune se poate construi n timp polinomial o coliziune pentru h,
lucru imposibil deoarece h este cu coliziuni tari.
Fie y(x) = y
1
|y
2
| . . . |y
k+1
si y(x

) = y

1
|y

2
| . . . |y

s+1
, unde x si x

sunt completate la pasul


2 cu d respectiv d

zerouri. S-a notat cu g


1
, . . . , g
k+1
respectiv g

1
, . . . , g

s+1
valorile calculate de
pasii 4 si 5. Apar doua cazuri:
Cazul 1. [x[ , [x

[ (mod mt 1).
Atunci d ,= d

, y
k+1
,= y

s+1
. Avem:
h(g
k
|1|y
k+1
) = g
k+1
= h

(x) = h

(x

) = g

s+1
= h(g

s
|1|y

s+1
),
care este o coliziune pentru h deoarece y
k+1
,= y

s+1
.
Cazul 2. [x[ [x

[ (mod mt 1)
Aici trebuiesc studiate doua subcazuri:
Cazul 2a. [x[ = [x

[. Atunci k = s, y
k+1
= y

s+1
. Similar primului caz,
h(g
k
|1|y
k+1
) = g
k+1
= h

(x) = h

(x

) = g

k+1
= h(g

k
|1|y

k+1
).
Daca g
k
,= g

k
, s-a aat o coliziune pentru h. Sa presupunem deci ca g
k
= g

k
. Vom avea:
h(g
k1
|1|y
k
) = g
k
= g

k
= h(g

k1
|1|y

k
).
Fie s-a gasit o coliziune pentru h, e g
k1
= g

k1
, y
k
= y

k
. Daca nu a fost coliziune, se
poate continua pana la h(0
t+1
|y
1
) = g
1
= g

1
= h(0
t+1
|y

1
).
Cum y
1
,= y

1
nseamn a coliziune pentru h, sa presupunem y
1
= y

1
. Vom avea y
i
= y

i
(1
i k + 1) deci y(x) = y(x

).
Cum aplicat ia y este injectiva, rezulta x = x

, ceea ce contrazice ipoteza.


Cazul 2b. [x[ ,= [x

[.
2.5. EXTENSIA UNEI FUNCT II DE DISPERSIE 25
Se poate presupune, fara a micsora generalitatea, ca [x[ < [x

[, deci s > k. Vom proceda


similar cu subcazul 2a. Daca nu s-au gasit coliziuni pentru h, se va obt ine sirul de egalitat i
h(0
t+1
|y
1
) = g
1
= g

sk+1
= h(g

sk
|1|y

sk+1
).
Primii t+1 bit i din 0
t+1
|y
1
cont in numai zerouri n timp ce primii t+1 bit i din g

sk
|1|y

sk+1
cont in un 1. Deci s-a gasit o coliziune pentru h.
Rezulta ca pentru toate cazurile studiate, s-a ajuns la coliziuni. 2
Algoritmul pe care s-a construit toata demonstrat ia de sus este adevarat numai daca
m t + 2. Ramane cazul m = t + 1; aici se va realiza o construct ie diferita pentru h

.
Ca anterior, e [x[ = n m.
Vom ncepe prin a codica x folosind funct ia f denita f(0) = 0, f(1) = 01.
Construct ia lui h

se face pe baza urmatorului algoritm:


1. y y
1
|y
2
| . . . |y
k
= 11|f(x
1
)|f(x
2
)| . . . |f(x
n
) (y
i
Z
2
)
2. g
1
h(0
t
|y
1
)
3. for i = 1 to k 1 do g
i+1
h(g
i
|y
i+1
)
4. h

(x) g
k
Codicarea x y = y(x) din pasul 1 veric a cateva proprietat i importante:
y este injectiva
y este libera de prex: nu exista x, x

, z astfel ca y(x) = z|y(x

)
Teorema 2.4 Fie h : Z
t+1
2
Z
t
2
o funct ie de dispersie cu coliziuni tari.
Funct ia h

_
i=t+1
Z
i
2
Z
t
2
este de asemenea cu coliziuni tari.
Demonstrat ie: Sa presupunem prin absurd ca exista x ,= x

cu h

(x) = h

(x

). Vom avea
y(x) = y
1
y
2
. . . y
k
, y(x

) = y

1
y

2
. . . y

s
.
Apar doua cazuri:
Cazul 1. k = s Similar cu demonstrat ia teoremei anterioare, se gaseste e o coliziune
pentru h, e y(x) = y(x

), ceea ce duce la x = x

, contradict ie.
Cazul 2. k ,= s Vom considera situat ia s > k. Modul de abordare a acestui caz este
similar cu cele de mai sus. Presupunand ca nu s-au gasit coliziuni pentru h, se obt ine sirul de
identit at i
y
k
= y

s
, y
k1
= y

s1
, . . . y
1
= y

sk+1
,
ceea ce contrazice faptul ca codicarea este libera de prex.
Deci h este cu coliziuni tari. 2
Sa rezumam ntr-o singura teorema rezultatele obt inute:
Teorema 2.5 Fie h : Z
m
2
Z
t
2
, (m t + 1) o funct ie de dispersie cu coliziuni tari. Exista
atunci o funct ie de dispersie cu coliziuni tari h

_
i=m
Z
i
2
Z
t
2
.
Numarul de calcule al lui h pentru efectuarea unei aplicari a lui h

este cel mult


1 +
_
n
mt 1
_
daca m t + 2, 2n + 2 daca m = t + 1,
unde [x[ = n.
26 PRELEGEREA 2. FUNCT II DE DISPERSIE
2.6 Funct ie de dispersie bazata pe criptare
Ideea acestui paragraf este luata din [9].
Pan a acum, metodele de construct ie ale funct iilor de dispersie studiate sunt prea lente
pentru o utilizare practica. O alta idee consta n folosirea unui sistem de criptare pentru a
genera o funct ie de dispersie.
Sa presupunem ca (T, (, /, c, T) este un sistem de criptare.

In acest paragraf vom lua
T = ( = / =Z
n
2
. Pentru evitarea atacului nasterilor se va lua n 128 (deci nu se poate folosi
DES).
Fie sirul de bit i x = x
1
|x
2
| . . . |x
k
, x
i
Z
n
2
1 i k. Daca numarul de bit i nu este
multiplu de n, x se va completa ca n paragraful anterior; pentru simplicare, nu vom trata
aici aceasta chestiune.
Ideea construct iei constan xarea unei valori init iale g
0
si calcularea iterativ a lui g
1
, g
2
, . . . ,
g
k
astfel ca g
i
= f(x
i
, g
i1
), unde f este o funct ie care utilizeaza regulile de criptare. Rezultatul
nal al dispersiei este amprenta h(x) = g
k
.
Au fost propuse mai multe funct ii de dispersie, unele din ele ind sparte (independent de
sistemul de criptare utilizat).

In acest moment, se pare ca urmatoarele patru cazuri asigura o
anumit a sigurant a:
g
i
= e
g
i1
(x
i
) x
i
g
i
= e
g
i1
(x
i
) x
i
g
i1
g
i
= e
g
i1
(x
i
g
i1
) x
i
g
i
= e
g
i1
(x
i
g
i1
) x
i
g
i1
2.7 Funct ia de dispersie MD4
Aceasta funct ie a fost introdusa de Rivest n 1990 ([10]), iar n 1991 a fost prezentat a o ver-
siune mai sigura, MD5. Standardul de dispersie, SHS (Secure Hash Standard), bazat pe
aceleasi idei a fost publicat n Federal Register din 31 ianuarie 1992 si adoptat ca standard la
11 mai 1993 ([8]). La 11 iulie 1994 a fost facut a o mica modicare pentru a corija o slabiciune
tehnica (ment inuta secreta). Toate aceste funct ii de dispersie au avantajul de a foarte rapide,
deci practice n semnarea de mesaje lungi.

In acest paragraf vom descrie MD4, cu modicarile aduse n MD5 si SHS.


Fiind dat un sir de bit i x, se deneste tabloul M = M
0
M
1
. . . M
N1
cu ecare M
i
(numit
cuvant) de lungime 32 si N 0 (mod 16).
M este construit folosind algoritmul urmator:
1. d (447 [x[) (mod 512)
2. s reprezentarea binara a lui [x[ (mod 2
64
), [s[ = 64
3. M = x|1|0
d
|s
Sa descriem acum calculul amprentei numerice, codicata pe 128 bit i. Algoritmul de gene-
rare este:
2.7. FUNCT IA DE DISPERSIE MD4 27
1. A 67452301 (hex) B efcdab89 (hex)
C 98badcfe (hex) D 10325476 (hex)
2. for i = 0 to N/16 1 do
3. for j = 0 to 15 do X
j
M
16i+j
4. AA A BB B CC C DD D
5. Etapa 1
6. Etapa 2
7. Etapa 3
8. A A +AA B B +BB
C C +CC D D +DD
enddo
enddo
Amprenta numeric a este n nal concatenarea celor patru cuvinte A, B, C, D (numite re-
gistre). Algoritmul mparte tabelul M n siruri de cate 16 cuvinte consecutive, carora le aplica
trei etape de transformari (ca la DES). Adunarile de la pasul 8 sunt efectuate modulo 2
32
.
Cele trei etape de transformari sunt distincte (spre deosebire de DES, unde cele 16 etape
erau identice).
Fie , doua cuvinte de lungimi egale. Etapele de transformari vor folosi urmatoarele
operat ii:
si logic bit cu bit (AND)
sau logic bit cu bit (OR)
sau exclusiv bit cu bit (XOR)
complementara bit cu bit (NOT)
+ suma modulo 2
32
s rotirea circulara cu s bit i spre stanga (1 s 31)
Aceste operat ii sunt extrem de rapide si pot implementate direct t in and cont de arhitectura
calculatorului. Sa detaliem put in acest lucru.
Fie a
1
a
2
a
3
a
4
un cuvant de patru octet i si a
i
un num ar ntreg din intervalul [0, 255].


Intr-o arhitectura big-endian (o stat ie SPARK de exemplu), un cuvant reprezint antregul
a
1
2
24
+a
2
2
16
+a
3
2
8
+a
4


Intr-o arhitectura little-endian (cum este familia Intel 80xxx), un cuvant reprezinta
ntregul a
4
2
24
+a
3
2
16
+a
2
2
8
+a
1
Construct ia standard a lui MD4 a folosit o arhitectura little-endian. Cum amprenta nu-
merica trebuie sa e independenta de arhitectura calculatorului folosit, la o implementare a lui
MD4 pe un calculator big-endian, adunarile se vor deni astfel:
1. Se inter-schimb a x
1
x
4
, x
2
x
3
, y
1
y
4
, y
2
y
3
2. Se calculeaza Z = X +Y (mod 2
32
)
28 PRELEGEREA 2. FUNCT II DE DISPERSIE
3. Se inter-schimb a z
1
z
4
, z
2
z
3
Cele trei etape de construct ie ale funct iei de dispersie MD4 folosesc trei funct ii f, g si respectiv
h, denite astfel:
f(X, Y, Z) = (X Y ) ((X) Z)
g(X, Y, Z) = (X Y ) (X Z) (Y Z)
h(X, Y, Z) = X Y Z
Descrierile celor trei etape sunt:
Etapa 1:
1. A (A +f(B, C, D) +X[0]) 3 9. A (A +f(B, C, D) +X[8]) 3
2. D (D +f(A, B, C) +X[1]) 7 10. D (D +f(A, B, C) + X[9]) 7
3. C (C +f(D, A, B) +X[2]) 11 11. C (C +f(D, A, B) + X[10]) 11
4. B (B +f(C, D, A) +X[3]) 19 12. B (B +f(C, D, A) +X[11]) 19
5. A (A +f(B, C, D) +X[4]) 3 13. A (A +f(B, C, D) +X[12]) 3
6. D (D +f(A, B, C) +X[5]) 7 14. D (D +f(A, B, C) + X[13]) 7
7. C (C +f(D, A, B) +X[6]) 11 15. C (C +f(D, A, B) + X[14]) 11
8. B (B +f(C, D, A) +X[7]) 19 16. B (B +f(C, D, A) +X[15]) 19
Etapa 2:
1. A (A +g(B, C, D) +X[0] +P) 3 9. A (A +g(B, C, D) +X[2] +P) 3
2. D (D+g(A, B, C) +X[4] +P) 5 10. D (D+g(A, B, C) +X[6] +P) 5
3. C (C +g(D, A, B) +X[8] +P) 9 11. C (C +g(D, A, B) +X[10] +P) 9
4. B (B+g(C, D, A)+X[12]+P) 13 12. B (B+g(C, D, A)+X[14]+P) 13
5. A (A+g(B, C, D) +X[1] +P) 3 13. A (A+g(B, C, D) +X[3] +P) 3
6. D (D+g(A, B, C) +X[5] +P) 5 14. D (D+g(A, B, C) +X[7] +P) 5
7. C (C +g(D, A, B) +X[9] +P) 9 15. C (C +g(D, A, B) +X[11] +P) 9
8. B (B+g(C, D, A)+X[13]+P) 13 16. B (B+g(C, D, A)+X[15]+P) 13
unde s-a notat P = 5A827999.
Etapa 3:
1. A (A +h(B, C, D) + X[0] +P) 3 9. A (A +h(B, C, D) +X[1] +P) 3
2. D (D +h(A, B, C) +X[8] +P) 9 10. D (D +h(A, B, C) +X[9] +P) 9
3. C (C+h(D, A, B) +X[4] +P) 11 11. C (C+h(D, A, B) +X[5] +P) 11
4. B (B+h(C, D, A)+X[12]+P) 15 12. B (B+h(C, D, A)+X[13]+P) 15
5. A (A +h(B, C, D) + X[2] +P) 3 13. A (A +h(B, C, D) +X[3] +P) 3
6. D (D+h(A, B, C) +X[10] +P) 9 14. D (D+h(A, B, C) +X[11] +P) 9
7. C (C+h(D, A, B) +X[6] +P) 11 15. C (C+h(D, A, B) +X[7] +P) 11
8. B (B+h(C, D, A)+X[14]+P) 15 16. B (B+h(C, D, A)+X[15+P]) 15
unde P = 6ED9EBA1.
La put in timp dupa construct ia sa, s-a observat o slabiciune atunci cand se omitea prima
sau a treia etapa. De aceea, n 1991 se propune MD5 ca o versiune mbun atat it a. MD5
foloseste patru etape n loc de trei, cu pret ul unei viteze mai lente.
SHS este mai complex si mai lent decat primele doua. Nu s-a dat niciodata o descriere
completa a sa, dar s-au indicat cateva modicari aduse fat a de sistemul MD4:
SHS este construit pentru o arhitectura big-endian;
2.8. FUNCT IA DE DISPERSIE SHA1 29
SHS utilizeaza cinci registre si produce o amprent a de 160 bit i;
SHS trateaza iterativ 16 cuvinte (ca MD4), dar dupa ce le-a extins pe 80 cuvinte; n
acest fel, ecare din cele 80 cuvinte este prelucrat o singura data.
Se utilizeaza o funct ie de expansiune denita prin procedeul urmator:
Fie X
0
, X
1
, . . . , X
15
o secventa de 16 cuvinte. La ea se adauga nca 64 cuvinte, folosind relat ia
de recurent a:
X
j
= X
j3
X
j8
X
j14
X
j16
16 j 79
Revizuirea lui SHS s-a referit la aceasta funct ie de expansiune. Relat ia precedent a s-a
nlocuit cu:
X
j
= (X
j3
X
j8
X
j14
X
j16
) 1 16 j 79
2.8 Funct ia de dispersie SHA1
Deoarece coliziunile din funct iile de compresie MD4 si MD5 au fost descoperite si facute
publice, a fost nevoie de algoritmi noi de dispersie.
SHA (Secure Hash Algoritm) este o varianta a lui MD4, propus ca standard de NIST n
1993 si adoptat sub titulatura ociala FIPS 180. SHA1 este o varianta notata FIPS 180 1
care corecteaza o mica slabiciune din SHA.
Fie x sirul care trebuie prelucrat. O condit ie preliminara este [x[ 2
64
1. Prima parte a
algoritmului este identic a cu cea de la MD4:
1. d (447 [x[) (mod 512)
2. s reprezentarea binara a lui [x[ (mod 2
64
), [s[ = 64
3. M = x|1|0
d
|s
Daca [s[ < 64, se adauga zerouri la stanga pana se ajunge la egalitate. Blocul nal M (care
intr a n algoritmul de dispersie) are o lungime divizibila cu 512; l vom scrie ca o concatenare
de n blocuri, ecare de 512 bit i.
y = M
1
|M
2
| . . . |M
n
Denim funct iile f
0
, f
1
, . . . , f
79
astfel:
f
t
(B, C, D) =
_

_
(B C) ((B) D) 0 t 19
B C D 20 t 39
(B C) (B D) (C D) 40 t 59
B C D 60 t 79
Deci ecare funct ie f
t
ia trei cuvinte la intrare si scoate un cuvant la iesire.
Se mai denesc cuvintele constante K
0
, K
1
, . . . , K
79
folosite n calculul lui SHA1(x) astfel:
K
t
=
_

_
5A827999 0 t 19
6ED9EBA1 20 t 39
8F1BBCDC 40 t 59
CA62C1D6 60 t 79
30 PRELEGEREA 2. FUNCT II DE DISPERSIE
Algoritmul de compresie SHA1(x) este:
1. H
0
67452301, H
1
EFCDAB89, H
2
98BADCFE,
H
3
10325476, H
4
C3D2E1F0.
2. for i 1 to n do
2.1 Fie M
i
= W
0
|W
1
| . . . |W
15
, W
i
cuvant.
2.2 for t 16 to 79 do
W
t
W
t3
W
t8
W
t14
W
t16
1
2.3 A H
0
, B H
1
, C H
2
, D H
3
, E H
4
2.4 for t 0 to 79 do
2.4.1 temp (A 5) +f
t
(B, C, D) + E +W
t
+K
t
2.4.2 E D, D C, C (B 30), B A
2.4.3 A temp
2.5 H
0
H
0
+A, H
1
H
1
+B, H
2
H
2
+C, H
3
H
3
+D, H
4
H
4
+E
3. Iesire: H
0
|H
1
|H
2
|H
3
|H
4
.
Algoritmul de compresie SHA1 formeaza pentru ecare bloc de 512 bit i un bloc de 160 bit i.
Algoritmul original SHA avea o slabiciune care permitea aarea coliziunilor n aproximativ
2
61
pasi. Versiunea SHA1 este mai ecient a, atacul nasterilor conducand la aarea coliziunilor
abia dupa 2
80
pasi, ceea ce n momentul actual este considerat sucient de sigur.
La 30 mai 2001 NIST propune o noua versiune SHA2; aceasta include SHA1 precum
si alte trei funct ii de dispersie SHA
256
, SHA
384
, SHA
512
. La ultimele trei funct ii, indicele
256, 384, 512 se refera la marimile mesajului comprimat.
2.9 Datare
Problema datarii a fost introdusa si studiata n [1] si [6]. Ea se refera la faptul ca, datorita
timpului lung cat poate utilizat un document, orice semnatur a poate sparta. Odata ce Oscar
descopera algoritmul de semnatura, este pusa n discut ie autenticitatea tuturor mesajelor.
Un alt scenariu nedorit este urmatorul: Bob semneaza un mesaj, apoi publica secretul
semnaturii si si-o reneaga declarand ca a fost construita de altcineva.
Toate aceste probleme pot rezolvate daca se introduce si un procedeu de datare a semnatu-
rii, care constituie o proba ca un document a fost semnat la o anumit a data.

In acest fel, daca
secretul lui Bob a fost compromis, aceasta nu afecteaza semnaturile anterioare. Principiul
cart ilor de credit este similar: o carte de credit anunt at a unei banci ca pierduta, este anulata
far a ca aceasta sa afecteze plat ile anterioare facute pe baza ei.
Vom prezenta aici cateva procedee de datare.

In primul rand, Bob poate construi el singur o
datare. Pentru aceasta, el poate ncepe prin a colecta un anumit num ar de informat ii publicate
recent (care nu ar putut prezise). De exemplu, poate da rezultatele unei etape de fotbal,
cursul dolarului la o anumit a banca, etc. Vom nota aceasta informat ie pub.
Sa presupunem acum ca Bob vrea sa dateze semnatura unui mesaj x. Daca h este o funct ie
de dispersie publica, Bob va urma algoritmul urmator:
1. Bob calculeaza z = h(x);
2. Bob calculeaza z

= h(z|pub);
3. Bob calculeaza y = sig
K
(z

);
4. Bob publica ntr-un ziar din ziua urmatoare (z, pub, y).
2.10. EXERCIT II 31
Prezent a informat iei pub arata ca Bob nu a putut calcula y nainte de data n discut ie.
Faptul ca y este publicat ntr-un cotidian de a doua zi asigura faptul ca Bob nu a putut calcula
y dupa data aparit iei ziarului. Astfel, data semnaturii lui Bob este restransa la un interval de
o zi. De remarcat ca Bob nu dezvaluie n acest fel mesajul x, deoarece a fost publicat numai z.
Daca exista un serviciu ocial de datare (un fel de notar public electronic), se poate construi
un alt procedeu. Bob calculeaza z = h(x) si y = sig
K
(z), apoi supune (z, y) serviciului de
datare. Acesta adauga o data D si semneaza tripletul (z, y, D).

In acest fel, Bob poate certica
ca a semnat nainte de o anumita data. Pentru a arata ca a semnat dupa o anumit a data, el
poate adauga n semnatur a o anumit a informat ie publica pub.
Este posibil ca Bob sa nu aiba ncredere n serviciul public de datare. Atunci el poate creste
securitatea legand secvent ial toate mesajele datate. Mai detaliat: Bob trimite serviciului de
datare un triplet (z, y, ID(BOB)), unde z este amprenta numerica a lui x, y este semnatura
sa, iar ID(BOB) este o informat ie care l identic a pe Bob. Serviciul va data secvent a de astfel
de triplete. Daca (z
n
, y
n
, ID
n
) este al n-lea triplet, e t
n
data atribuita lui. Serviciul va data
acest triplet dupa algoritmul:
1. Serviciul calculeaza L
n
= (t
n1
, ID
n1
, z
n1
, y
n1
, h(L
n1
));
2. Serviciul calculeaza C
n
= (n, t
n
, z
n
, y
n
, ID
n
, L
n
);
3. Serviciul calculeaza s
n
= sig
serviciu
(h(C
n
));
4. Serviciul napoiaza lui ID
n
(C
n
, s
n
, ID
n+1
);
Aici L
n
reprezint a informat ia de legatura ntre tripletele n si n 1 (L
0
este xat arbitrar la
init ializarea protocolului).
2.10 Exercit ii
2.1 Fie h : X Y o funct ie de dispersie. Pentru orice y Y notam h
1
(y) = x[h(x) = y
si s
y
= [h
1
(y)[. Fie
N = [x
1
, x
2
[x
1
,= x
2
, h(x
1
= h(x
2
)[
N este numarul perechilor din X care formeaza o coliziune pentru h.
Ar atat i relat ia

yY
s
y
= [X[.
Astfel, se poate deni media elementelor s
y
prin s =
|X|
|Y |
.
Ar atat i relat ia N =

yY
C
2
s
y
=
1
2

yY
s
2
y

[X[
2
.
Ar atat i relat ia

yY
(s
y
s)
2
= 2N = [X[
[X[
2
[Y [
.
32 PRELEGEREA 2. FUNCT II DE DISPERSIE
Deducet i inegalitatea N
1
2
_
[X[
2
[Y [
[X[
_
.
Ar atat i ca avem egalitate daca si numai daca s
y
=
[X[
[Y [
pentru orice y Y .
2.2 Fie p = 15083, = 154, = 2307 parametrii pentru funct ia de dispersie Chaum - van
Heijst - Ptzmann. Fiind data coliziunea
7431

5564

1459

954
(mod p), calculat i log

.
2.3 ([5]) Fie n = pq unde p, q sunt numere prime distincte (secrete) astfel ncat p = 2p
1
+
1, q = 2q
1
+ 1, p, q numere prime. Fie Z

n
un element de ordin 2p
1
q
1
(acesta este ordinul
maximal n Z
n
). Se deneste funct ia de dispersie h : 1, . . . , n
2
Z

n
prin
h(x) =
x
(mod n).
Sa presupunem n = 603241, = 11 si ca s-a gasit tripla coliziune
h(1294755) = h(80115359) = h(52738737).
Utilizat i aceasta informat ie pentru a factoriza n.
2.4 Fie h
1
: Z
2m
2
Z
m
2
o funct ie de dispersie cu coliziuni tari.
Fie h
2
: Z
4m
2
Z
m
2
denita prin regulile:
scrie x Z
4m
2
sub forma x = x
1
|x
2
, x
1
, x
2
Z
2m
2
;
deneste h
2
(x) = h
1
(h
1
(x
1
)|h
1
(x
2
)).
Ar atat i ca h
2
este cu coliziuni tari.
Pentru orice numar ntreg i 2 se deneste funct ia de dispersie h
i
: Z
2
i
m
2
Z
m
2
denita
recursiv prin regulile:
scrie x Z
2
i
m
2
sub forma x = x
1
|x
2
, x
1
, x
2
Z
2
i1
m
2
;
deneste h
i
(x) = h
1
(h
i1
(x
1
)|h
i1
(x
2
)).
Ar atat i ca h
i
este cu coliziuni tari.
2.5 Folosind funct ia de expansiune originala pentru SHS, exprimat i valorile X
16
, . . . , X
79
n
funct ie de X
0
, . . . , X
15
.
Pentru orice pereche (X
i
, X
j
), 1 i < j 15 scriet i un program care sa determine numarul

i,j
de valori X
k
(16 k 79) cu proprietatea ca X
i
si X
j
apar ambele n scrierea lui X
k
. Ce
valori poate lua
i,j
?
Bibliograe
[1] D. Bayer, S.Haber, W.Stornetta; Improving the eciency and reliability of digital time-
stamping. Sequences II, Methods in Communication, Security and Computer Science,
Springer Verlag (1993), 329-334.
[2] D. Chaum, E. van Heijst, B. Ptzmann; Cryptographically strong undeniable signatures,
unconditionally secure for the signer. Lecture Notes in Computer Science, 576 (1992),
470-484.
[3] I.B. Damgard; A design principle for hash functions. Lecture Notes in Computer Science,
435 (1990), 516-427.
[4] T. ElGamal; A public key cryptosystem and a signature scheme based on discrete algo-
rithms, IEEE Transactions on Information Theory, 31 (1985), 469-472
[5] J. Gibson; Discrete logarithm hash function that is collision free and one way. IEEE
Proceedings-E, 138 (1991), 407-410.
[6] S. Haber, W. Stornetta; How to timestamp a digital document. Journal of Cryptology,
3(1991), 99-111.
[7] R.C. Merkle; A fast software one-way functions and DES. Lecture Notes in Computer
Science, 435 (1990), 428-446
[8] Secure hash Standard. National Bureau of Standards, FIPS Publications 180, 1993
[9] B. Preneel, R. Govaerts, J. Vandewalle; Hash functions based on block ciphers: a syntetic
approach. Lecture Notes in Computer Science, 773 (1994), 368-378
[10] R.L. Rivest; The MD4 message digest algorithm. Lecture Notes in Computer Science,
537, (1991), 303-311
[11] D. Stinton; Cryptographie, theorie et pratique, International Thompson Publishing France,
1995
[12] A. Salomaa - Criptograe cu chei publice, ed. Militara, 1994
[13] H.C.Williams, Some public-key criptofunctions as intractable as factorisation, Cryptologia,
9 (1985), 224-237.
33
Prelegerea 3
Generatori de numere pseudo -
aleatoare
3.1 Numere aleatoare si numere pseudo-aleatoare
Aproape toate sistemele de criptare si protocoalele folosite n criptograe au un punct central:
alegerea unor numere arbitrare, necunoscute apriori, imprevizibile; denumirea standard este
numere aleatoare sau numere generate aleator.

In general nu se poate vorbi de un singur
num ar aleator decat ntr-un context statistic. Termenul corect este acela de sir de numere
aleatoare.
Folosirea calculatorului reduce termenul de numere aleatoare la un sir de bit i generat i
aleator, grupat i dupa o anumit a regula. Matematic, nu exista o modalitate mai scurta de
a specica sirul decat secvent a nsasi.
Statistica ofera destul de put ine informat ii despre bit ii generat i aleator. De exemplu, se stie
ca 0 trebuie sa apara la fel de frecvent ca 1, ca 00 trebuie sa apara de doua ori mai rar decat
0 (sau 1) si la fel de des ca 11, 10, 01. Exista si teste statistice (
2
- Kolmogorov) care arata
cat de aleatoare sunt numerele dintr-un sir.

In criptograe este esent ial ca un num ar aleator sa nu paota aat. Un numar perfect
aleator este acela pe care Oscar nu-l poate ghici decat prin fort a bruta. O parte destul de im-
portanta din criptanaliza se bazeaza pe exploatarea imperfect iunilor unor funct ii care genereaza
numere aleatoare.
O generare de numere pur aleatoare se realizeaza prin colectarea si procesarea de date
obt inute dintr-o sursa de entropie exterioara calculatorului. Sursa de entropie poate foarte
simpla, ca de exemplu variat iile misc arii mouse-ului, sau intervalul de timp dintre apasarea a
doua taste. Surse foarte bune de entropie pot cele radioactive sau cele care folosesc zgomote
din atmosfera.
Proprietatea de a aleator a fost introdusa n calculatoare cu ajutorul generatorilor de
numere pseudo-aleatoare.
Denit ia 3.1 Fie m, k (m 1 k > 0) numere ntregi. Un (k, m) generator de numere
pseudo-aleatoare este o aplicat ie recursiva
f : Z
k
2
Z
m
2
calculabila n timp polinomial.
33
34 PRELEGEREA 3. GENERATORI DE NUMERE PSEUDO - ALEATOARE

In aplicat ii, m se obt ine din k printr-o aplicat ie polinomiala.


Un generator de numere pseudo-aleatoare trebuie sa satisfaca anumite cerint e:
Sa e simplu si rapid.
Sa produca siruri de numere de lungime arbitrara care sa nu cont in a repetit ii. Deoarece
un calculator nu poate genera decat numere mai mici decat un numar dat, nu se poate
construi un generator cu perioada innita. Generatorul trebuie sa aiba totusi o perioada
cat mai mare.
Sa produca numere independente unul de altul (sau cu o corelare cat mai vag a).
Sa genereze numere cu o repartit ie uniforma.
Fie S un circuit secvent ial cu m = |S| stari si F = {f | f : S S} mult imea funct iilor de
tranzit ie. Un generator de numere pseudo-aleatoare este denit prin
x
n
= f(x
n1
), x
0
oarecare
Un astfel de generator este cu atat mai ecient cu cat satisface mai bine cerint ele anetrioare.
3.2 Generatori simpli de numere pseudo-aleatoare
3.2.1 Generatori liniari congruent iali
Un astfel de generator (construit de Lehmer n 1949) este denit de formula
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 se numeste multiplicativ.
Din denit ie rezulta imediat ca orice generator liniar congruent ial intr a ntr-o ciclare carei
lungime se numeste perioada. Evident ca perioada maxima a generator liniar este m. Ea poate
atinsa pentru anumite valori ale perechii (a, b) (de exemplu daca (b, m) = 1). Un generator
congruent ial liniar de perioada m se numeste generator de perioada maximala. O analiza a
strategiei de select ie a valorilor pentru a asigura o perioada maxima se poate gasi n [3] si [4].
O analiza teoretica detaliata a generatorilor liniari congruent iali se gaseste n [7].

In Tabelul 1 se aa listat i cat iva generatori de perioada maximala. Numerele pseudo-


aleatoare obt inute nu depasesc valoarea de pe ultima coloana.
a b m Marime a b m Marime
105 1283 6075 2
20
1277 24749 117128 2
28
211 1663 7875 2
21
2311 25367 120050 2
29
421 1663 7875 2
22
3877 29573 139968 2
30
430 2531 11979 2
23
8121 28411 134456 2
31
171 11213 53125 2
24
9301 49297 233280 2
32
141 28411 134456 2
25
2416 374441 1771875 2
33
421 17117 81000 2
26
17221 107839 510300 2
34
1093 18257 86436 2
27
84589 45989 217728 2
35
Tabelul 1
3.2. GENERATORI SIMPLI DE NUMERE PSEUDO-ALEATOARE 35
Avantajul generatorilor liniari congruent iali este rapiditatea de calcul.
O generalizare a relat iei de recurent a este
x
n+k
= (a
k
x
n
+ (a
k
1)c/b) (mod m)
care da un generator de perioada maximala cand:
(c, m) = 1;
b = a 1 este multiplu de p, pentru orice numar prim p care divide m;
b (mod 4) = 0 daca m (mod 4) = 0.
Dezavantajul generatorilor liniari congruent iali este acela ca ei nu mai pot folosit i n
criptograe; stiind prima valoare, numerele pot gasite usor. Criptanaliza a fost realizata de
Jim Reeds n 1977 (cu completari n 1979) 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.
Acum, acest tip de generator de numere pseudo-aleatoare este folosit n aplicat ii necrip-
tograce; de exemplu, n simulare ele asigura o comportare statistica buna n majoritatea
testelor.
3.2.2 Generatori Ranrot
Clasa generatorilor Ranrot a fost denita de danezul Agner Fog n 1997 ([2]), init ial pentru
algoritmi Monte Carlo. Ea se bazeaza pe generatoare de numere Fibonacci, completate cu
operat ia de rotat ie pe bit i. Sunt studiate trei tipuri de generatoare 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
.
S-au folosit urmatoarele 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.
36 PRELEGEREA 3. GENERATORI DE NUMERE PSEUDO - ALEATOARE
Valorile sunt calculate ntr-un vector (buer) de k elemente, numit stare S
n
.
Starea init ial a este
S
1
= (x
1
, x
2
, . . . , x
k
)
iar trecerea de la o stare la alta se realizeaza printr-o deplasare spre stanga de forma
(x
nk
, x
nk+1
, . . . , x
n1
) (x
nk+1
, . . . , x
n1
, x
n
)
unde x
n
este calculat conform formulei specice tipului sau.
Fie p = (j, k). Daca p > 1, atunci sistemul se poate descompune n p sisteme independente.
Deci o prima condit ie de performant a este (j, k) = 1, ceea ce asigura interdependent a tuturor
numerelor din stare.
Din acelasi motiv, la tipul W trebuie ca numarul k j sa e prim.
Din modul de implementare al adunarii binare rezulta o scurgere de informat ie (prin bitul de
transport - carry) de la bit ii cei mai put in semnicativi catre cei mai semnicativi, informat ie
care nu se transfera n sens contrar. Pentru eliminarea acestui neajuns s-au ncercat diverse
variante, cum ar adunarea transportului la bitul cel mai put in semnicativ (n loc de cel mai
semnicativ) operat ie care mbunat at este lungimea perioadei, dar nu si caracterul aleator.
Varianta considerata a fost aceea de rotire a bit ilor sumei rezultate.

In plus, pentru ca toate
elementele din S sa raman a interdependente, trebuie ca cel put in un r sa e nenul. Prin
experimente s-a gasit ca cele mai bune valori pentru num arul de pozit ii rotite este aproape de
b
2
pentru tipul A, de
b
3
si
2b
3
pentru tipul B si aproape de
b
4
,
b
2
,
3b
4
pentru tipul B3.
Lungimea maxima a unei perioade la un generator Ranrot este (2
k
1) 2
b1
.
Nu se cunoaste nc a un algoritm de obt inere de generatori Ranrot de perioada maximala;
cei cunoscut au fost gasit i prin testari. Cel mai mare generator analizat are 2
32
stari.
Exemplul 3.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.
Important a restrict iilor impuse diverselor tipuri de generatori Ranrot este listata n Tabelul 2.
Regula A B B3 W
(j, k) = 1 ((j, i) = (k, i) = 1) *** *** *** ***
1 < i < j < k 1 ** * * *
k j impar - - - ***
un r = 0 *** *** *** **
tot i r = 0 *** ** * -
r distinct i - ** ** **
r > 1 *** ** * *
(r, b) = 1 * * * *
(b, k) = 1 * * * *
Tabelul 2
S-a notat cu o regula far a important a, - important a minora, - nerespectarea ei duce la
aparit ia unor cicluri de perioada mica, - regula important a.

In varianta init ial a, si acesti generatori sunt usor de spart, deoarece starea init iala se poate
deduce usor din k valori consecutive ale lui x. Daca ns a parametrii nu se cunosc, generatorii
Ranrot pot solosit i cu succes n criptograe, av and o securitate sporita.
3.2. GENERATORI SIMPLI DE NUMERE PSEUDO-ALEATOARE 37
Exemplul 3.2 Sa consideram o varianta de generator Ranrot:
x
n
= ((x
n1
r
1
) + (X
n2
r
2
) +. . . + (x
nk
r
k
) +h) (mod 2
b
)
unde h este un numar ntreg arbitrar. Pentru ecare r sunt b
k
valori posibile, iar pentru
0 h 2
b
. Astfel, pentru k = 17, b = 32 numarul de variante este 1, 6 10
35
Exista un sistem de criptare (Power Crypto) bazat pe generatorul Ranrot de tip B3.
3.2.3 Generatorul Blum - Blum - Shub
Cel mai simplu si se pare cel mai ecient generator de numere pseudo- aleatoare este Blum
- Blum - Shub (numit si generator rezidual patratic).
Denit ia 3.2 Fie p, q doua numere prime. Daca
p 3 (mod 4), q 3 (mod 4)
atunci numarul n = pq se numeste ntreg Blum.
Algoritmul Blum - Blum - Shub (BBS pe scurt) de generare de numere pseudo-aleatoare
(prezentat ca un (k, m) generator) este:
Fie n = pq un ntreg Blum, unde p, q sunt numere prime pe k/2 bit i.
Fie x
0
un reziduu patratic modulo n. Se deneste secvent a
s
i+1
= s
2
i
(mod n)
Daca z
i
= s
i
(mod 2) pentru 1 i m, atunci num arul aleator generat este
f(x
0
) = z
1
z
2
. . . z
m
.
Generarea bit ilor nu este de fapt recursiva, deoarece z
i
(1 i m) se poate calcula direct cu
formula
z
i
= x
2
i
(mod (p1)(q1))
0
(mod 2)
Exemplul 3.3 Fie p = 383, q = 503; deci n = 192649. Alegand x
0
= 101355
2
(mod n) =
20749, generatorul BBS va produce sirul pseudo-aleator 11001110000100111010. Detaliind
i 0 1 2 3 4 5 6 7 8 9 10
s
i
20749 143135 177671 97048 89992 174051 80649 45663 69442 186894 177046
z
i
1 1 0 0 1 1 1 0 0 0
i 11 12 13 14 15 16 17 18 19 20
s
i
137922 123175 8630 114386 14863 133015 106065 45870 137171 48060
z
i
0 1 0 0 1 1 1 0 1 0
Securitatea acestui generator se bazeaza pe dicultatea factorizarii lui n. n poate facut public,
oricine poate genera o secvent a pseudo-aleatoare pe baza lui. Totusi, daca n nu se descompune
n factori, nimeni nu poate prezice iesirea; nici macar o armat ie de genul: Urmatorul bit este
1 cu probabilitate 51%.
Mai mult, ind data o parte a secvent ei, nu exista nici o modalitate de a prezice bitul
anterior sau cel ulterior secvent ei.
38 PRELEGEREA 3. GENERATORI DE NUMERE PSEUDO - ALEATOARE
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.
3.3 Circuite liniare
Circuitele liniare
1
sunt folosite pe scara larga n teoria codurilor detectoare si corectoare de
erori (codurile ciclice si codurile convolut ionale) precum si n unele sisteme de criptare liniare
(AES de exemplu). Avantajul lor consta n modalitatea extrem de rapida de calcul.
Teoria circuitelor liniare a fost stabilita n 1965 ([6]) de Ernst Selmer, seful biroului de
criptograe al guvernului norvegian. Pentru detalii si rezultate teoretice poate consultat
cartea de teoria codurilor [1].
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), vom avea un n LFSR.
Funct ie de ntoarcere
b
n
b
n1
. . .
b
2
b
1
-
? ? ? ?

6
-
Funct ia de ntoarcere este o adunare modulo 2 (XOR) a anumitor bit i din registru; uneori ea
este numita congurat ie Fibonacci (vezi generatoarele Ranrot).
Exemplul 3.4 Sa consideram un 4 LFSR dat de schema (poarta XOR s-a notat cu ):

_
- - - -
?
6
-
?
, ,
+
Funct ia de ntoarcere este formata dintr-un singur XOR ntre primul si ultimul bit. Sa pre-
supunem ca init ial cei patru bit i din registru sunt 1001. La ecare tact se va obt ine o noua
congurat ie, anume:
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. Acest circuit asigura un generator de pe-
rioada 16.
Un n LFSR poate avea maxim 2
n
1 stari distincte (starea 00 . . . 0 este exclusa deoarece ea
formeaza un ciclu de lungime 1, neinteresant pentru generarea de numere pseudo-aleatoare).
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. Astfel, n Exemplul 3.4
polinomul este g(X) = 1 +X +X
4
.
1
Termenul din engleza este Shift Register.
3.4. GENERATORI BAZAT I PE LFSR 39
Sa consideram un polinom g(X) Z
2
[X], grad(g(X)) = n si e m cel mai mic num ar
astfel ca g(X)|X
m
+1. Atunci secvent a binara generata de un n LFSR asociat lui g(X) are
perioada m (este o m - secvvent a).
Daca g(X) este un polinom ireductibil peste Z
2
, atunci m = 2
n
1, iar aceasta este valoarea
maxima posibila (egaleaza numarul de stari distincte posibile din n LFSR). Toate detaliile
teoretice care justica aceste armat ii se gasesc n [1].
Lema 3.1 Un polinom g(X) Z
2
[X] este ireductibil daca si numai daca
1. Are un numar impar de termeni;
2. Cel put in un termen este de forma X
2p+1
.
Demonstrat ie: Exercit iu.

In [5] pag. 376 este dat un tabel cu aproape 300 polinoame ireductibile de diverse grade.
Evident, un nLFSR este un generator de secvent e, dar proprietatea lor pseudo-aleatoare
este extrem de slaba; o stare interna ofera urmatorii n bit i din secvent a de iesire. Chiar daca
funct ia de ntoarcere nu este cunoscuta, ea poate determinata pe baza a 2n bit i de iesire
(Algoritmul de decodicare Berlekamp - Massey). Totusi, prin combinarea mai multor circuite
LFSR se pot obt ine generatori de numere aleatoare acceptabili.
3.4 Generatori bazat i pe LFSR
3.4.1 Generatorul Gee
Generatorul Gee combin a ntr-o maniera neliniara trei LFSR, conform schemei urmatoare:
LFSR
1
LFSR
3
LFSR
2
EMUX
-
-
-
6
-
0
1
LFSR
1
formeaza funct ia de select ie a multiplexorului elementar, intr arile ind asigurate de
celelalte doua LFSR-uri. Daca a
1
, a
2
, a
3
sunt iesirile din cele trei LFSR-uri, iesirea din gener-
atorul Gee este data de relat ia
b = (a
1
a
2
) (a
1
a
3
)
Perioada generatorului este cel mai mic multiplu 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 perioade.
Din punct de vedere criptograc generatorul 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
40 PRELEGEREA 3. GENERATORI DE NUMERE PSEUDO - ALEATOARE
de iesire. Apoi se num ar a de cate ori iesirea din LFSR
2
coincide cu iesirea din generator. 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.

Intr-un articol din 1991, Zeng s.a. ([8]) arata ca
daca polinoamele ireductibile au cate trei termeni iar cel mai mare LFRS este de lungime n,
atunci o secvent ae 37n bit i la iesirea din generator este sucienta pentru determinarea starilor
interne din tot i LFSR.
Genratorul Gee poate extins la 2
k
+1 LFSR legat i printr-un MUX
k
. Acest lucru nu va
mari nsa securitatea generatorului.
3.4.2 Generatori Stop-and-Go
Cel mai cunoscut este generatorul Beth - Piper (dupa numele autorilor); structura sa este
urmatoarea:
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. Astfel, ceasul de intraren LFSR
2
este controlat de iesirea din LFSR
1
; n acest fel, LFSR
2
si schimba starea la momentul
t numai daca iesirea din LFSR
1
a fost 1 la momentul t 1.
Nu se cunosc studii asupra complexitat ii acestui generator. El totusi nu a rezistat at-
acurilor corelate ([8]).
Stop-and-Go alternativ: Aceasta varianta foloseste trei LFSR de lungimi diferite, legate
ntr-un circuit de forma:
LFSR
3
LFSR
2
LFSR
1

-
? -
X
X

-
-
6
-
6
-
-
? -
6
-
? -
6
-
? -
-
6
-
-
,
,
,
CK
Cand iesirea din LFSR
1
este 1 e activeaz a LFSR
2
; n caz contrar este activat LFSR
3
.
Iesirea din generator este un XOR dintre cele doua iesiri.
Acest generator are o perioada mare. Exista un atac prin corelare asupra sa (mai precis
asupra LFSR
1
), dar acesta nu a slabit substant ial sigurant a sa.
3.5. ALTE GENERATOARE DE NUMERE PSEUDO-ALEATOARE 41
Generator Gollmann: Este o legare seriala 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
. Iesirea din generator este iesirea din ultimul LFSR. Daca toate circuitele
liniare au aceiasi lungime n, complecitatea unui generator Gollmann cu k LFSR-uri este
n (2
n
1)
k1
3.5 Alte generatoare de numere pseudo-aleatoare
3.5.1 Generatorul Mother-of-all
Este un generator propus de George Marsaglia.
Init ial 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 intermediar a S este stocata pe 64 bit i. Valoarea MAX este stabilita n funct ie de
lungimea secvent ei de numere pseudo-aleatoare generate.
Implementat n limbaj de asamblare, algoritmul este extrem de rapid, deoarece aici exista
o instruct iune de nmult ire a doua numere ntregi pe 32 bit i ecare, cu rezultatul pe 64 bit i.
Scris ntr-un limbaj de nivel nalt, algoritmul foloseste numere n virgula mobila cu o mantisa
de 63 bit i.
3.5.2 Generatorul Blum - Micali
Fie g un num ar prim, p un num ar prim impar si x
0
o valoare init ial a. 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 sigur.
42 PRELEGEREA 3. GENERATORI DE NUMERE PSEUDO - ALEATOARE
3.5.3 Generator RSA
Sistemul de criptare RSA poate folosit si pentru generare de numere aleatoare.
Fie n = pq un modul obt inut prin produsul a doua numere prime mari, un num ar e astfel
ca (e, (p 1) (q 1)) = 1 si x
0
o valoare init ial a (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 dicultatea spargerii sistemului RSA. Daca n este
sucient de mare, sistemul este sigur.
3.6 Securitatea generatorilor de numere pseudo-aleatoare
Denit ia 3.3 Fie X
n
, Y
n
doua distribut ii de probabilitate pe {0, 1}
n
. Notam t X
n
atunci
cand t este ales astfel ca z {0, 1}
n
,
Pr(x = z) = X
n
(z)
Spunem ca {X
n
} este inseparabil de {Y
n
} n timp polinomial daca pentru orice algoritm
probabilist A si orice polinom Q exista n
0
astfel ca n (n > n
0
) sa avem
|Pr
tXn
(A(t) = 1) Pr
tYn
(A(t) = 1)| <
1
Q(n)
Condit ia de inseparabilitate spune ca pentru siruri sucient de lungi nu exista un algoritm
probabilist care sa decida daca sirul a fost selectat urmand distribut ia X
n
sau Y
n
. Intuitiv, nu
se poate face distinct ie ntre distributia aleatoare si cea uniforma.
Vom nota cu U
n
distribut ia uniforma pe {0, 1}
n
; adica {0, 1}
n
,
Pr
xU
n
(x = ) =
1
2
n
Denit ia 3.4 Sirul {X
n
} este pseudo-aleator daca este inseparabil n timp polinomial de {U
n
}.
Algoritmul A din Denit ia 3.3 este numit test statistic n timp polinomial. Exemple de teste
statistice se gasesc n [3]. De asemenea, Marsaglia a construit n 1996 pachete de teste folosite
astazi ca standard de securitate pentru generatorii de numere pseudo-aleatoare.
Denit ia 3.5 Un program determinist n timp polinomial
G : {0, 1}
k
{0, 1}
p
este un generator pseudo-aleator (PSRG) daca verica urmatoarele condit ii;
1. p > k;
2. {G
p
}
p
este pseudo-aleator, unde G
p
este distribut ia pe {0, 1}
p
obt inuta astfel:
(a) pentru a obt ine t G se alege x U;
(b) se deneste t = G(x).
Adica, pentru orice algoritm probabilist A si orice polinom Q avem

Pr
tXn
(A(t) = 1) Pr
tUp
(A(t) = 1)

<
1
Q(p)
Bibliograe
[1] A.Atanasiu - Teoria codurilor corectoare de erori, Editura Univ. Bucuresti, 2001;
[2] A.Fog - http://www.agner.org/random/theory;
[3] D.Knuth - The art of computer Programming, vol 2 (Seminumerical Algorithms)
[4] P. L Ecuyer - Random Numbers for Simulation, Comm ACM 33, 10(1990), 742-749, 774.
[5] B. Schneier - Applied Cryptograpgy, John Wiley & Sons 1996;
[6] E.S. Selmer - Linear Recurrence over Finite Field, Univ. of Bergen, Norway, 1966;
[7] E.H.Sibley - Random Number Generators: Good Ones are Hard to Find, Comm ACM 31,
10(1988), 1192-1201.
[8] K.C.Zeng, C.H.Yang, D.Y.Wei, T.R.N. Rao - Pseudorandom Bit Generators in Stream
Cipher Cryptography, IEEE Computer, 24 (1991), 8.17.
43
Prelegerea 4
Protocoale de distribuire a cheilor
4.1 Introducere
Am vazut ca sistemele bazate pe chei publice nu necesita un canal sigur pentru transmiterea
unei chei private. Aceste avantaj este compensat ns a de faptul ca un canal cu cheie publica este
mult mai lent decat unul cu cheie privat a, el necesitand protocoale, procedee de autenticare
etc.

In aceasta prelegere vom aborda aceasta problema, de stabilire a unor modalitat i de a


schimba mesaje ntre mai mult i utilizatori, folosind protocoale rapide, ecare av and propria sa
cheie privat a. Protocoalele vor consta din doua part i principale:
1. Distribuirea cheilor: un protocol prin care o persoana alege cheia privata si o transmite
mai departe.
2. Punerea de acord: tot i participant ii stabilesc o cheie privat a folosind un canal public.
Baza de comunicare consta dintr-o ret ea (nesigura) care leaga n utilizatori.

In general se
presupune ca exista o autoritate A numit a arbitru, considerata apriori ca ind onesta; ea
va verica identitat ile utilizatorilor, alegerea si transmiterea cheilor init iale, precum si alte
probleme curente.
Deoarece ret eaua nu este sigura, participant ii trebuie sa prevada unele atacuri din partea
lui Oscar. Acesta poate pasiv (adica doar sa intercepteze mesaje) sau activ. Un adversar
activ este capabil sa:
modice un mesaj n cursul transmisiei;
transmita mesaje vechi;
ncerce sa se prezinte ca unul din utilizatorii ret elei.
Obiectivul lui Oscar este:
Sa i faca pe U si V sa accepte o cheie invalida
Sa i faca pe U si V sa creada ca au schimbat chei ntre ei.
Scopul protocolului de distribut ie a cheilor sau al punerii de acord este ca n nal cei doi
participant i sa det ina aceasi cheie K, necunoscuta de ceilalt i participant i (exceptand eventual
A).
43
44 PRELEGEREA 4. PROTOCOALE DE DISTRIBUIRE A CHEILOR
4.2 Predistribuirea cheilor
Init ial are loc o etapa de predistribuire a cheilor: pentru orice pereche de utilizatori (U, V ),
arbitrul A alege aleator o cheie K
U,V
= K
V,U
pe care o transmite n prealabil lui U si V
printr-un canal sigur (neutilizat pentru comunicat iile uzuale).
Deci, n aceasta faza, A genereaza C
2
n
chei pe care le distribuie celor n utilizatori. Fiecare
utilizator trebuie sa pastreze cheia sa precum si cele n 1 chei de comunicat ie cu ceilalt i
utilizatori.
Aceasta etapa este sigura, dar ridica o serie de probleme cum ar :
existent a de canale sigure ntre A si ecare din cei n participant i;
obligat ia pentru ecare participant sa stocheze n 1 chei si sa participe la C
2
n
transmisii
de chei solicitate de arbitru. Chiar pentru o ret ea mica, acest lucru devine destul de
dicil.
Scopul protocoalelor prezentate mai departe este de a micsora (far a a periclita sigurant a comu-
nicarii) cantitatea de informat ie care trebuie transmisa.
4.2.1 Protocolul Blom
Fie n (n 3) utilizatori si p (p n) un num ar prim. Fiecare cheie este un element din Z
p
.
Se alege un numar ntreg k, (1 k n 2). Valoarea lui k este num arul maxim de intrusi
Oscar contra carora trebuie construita protect ia.

In procedeul Blom, A transmite printr-un
canal sigur k + 1 elemente din Z
p
ecarui utilizator (n loc de n 1 chei n varianta generala).
Fiecare pereche de utilizatori (U, V ) poate calcula o cheie K
U,V
= K
V,U
. Condit ia de securitate
este: orice coalit ie de k utilizatori diferit i de U si V nu poate obt ine informat ii despre K
U,V
.
Pentru cazul k = 1 protocolul Blom este:
1. Se alege public un num ar prim p si pentru ecare utilizator
U se alege r
U
Z
p
. Numerele r
U
sunt distincte.
2. A alege aleator trei numere a, b, c Z
p
si formeaza polinomul
f(x, y) = a + b(x + y) + cxy (mod p)
3. Pentru ecare utilizator U, A determina polinomul
g
U
(x) = f(x, r
U
) (mod p)
si transmite g
U
(x) lui U printr-un canal sigur.
4. Daca U si V doresc sa comunice, cheia lor privata este
K
U,V
= K
V,U
= f(r
U
, r
V
)
Observat ii:
Aplicat ia g
U
(x) de la pasul 3 este o aplicat ie ana, de forma g
U
(x) = a
U
+ b
u
x, unde
a
U
= a + br
U
(mod p), b
U
= b + cr
U
(mod p).
4.2. PREDISTRIBUIREA CHEILOR 45
La pasul 4, U poate calcula cheia privata K
U,V
= f(r
U
, r
V
) = g
U
(r
V
), iar V n mod
similar K
V,U
= f(r
U
, r
V
) = g
V
(r
U
).
Exemplul 4.1 Sa presupunem ca sunt 3 utilizatori U, V, W si p = 17. Cheile lor publice sunt
r
U
= 12, r
V
= 7, r
W
= 1.
Presupunem ca arbitrul alege a = 8, b = 7, c = 2. Atunci
f(x, y) = 8 + 7(x + y) + 2xy
Polinoamele g sunt acum
g
U
(x) = 7 + 14x, g
V
(x) = 6 + 4x, g
W
(x) = 15 + 9x.
Cele trei chei private sunt K
U,V
= 3, K
U,W
= 4, K
V,W
= 10.
U poate calcula K
U,V
prin g
U
(r
V
) = 7 + 14 7 = 3 (mod 17);
V poate calcula K
V,U
prin g
V
(r
U
) = 6 + 4 12 = 3 (mod 17).
Sa arat am ca nici un utilizator nu poate obt ine informat ie asupra cheilor private ale celorlalt i
utilizatori.
Teorema 4.1 Protocolul Blom pentru k = 1 este necondit ionat sigur contra oricarui atac
individual.
Demonstrat ie: Sa presupunem ca utilizatorul W doreste sa calculeze cheia K
U,V
= a + b(r
U
+
r
V
) + cr
U
r
V
mod p.
Valorile r
U
si r
V
sunt publice, dar a, b, c sunt secrete. W cunoaste propriile sale valori
a
W
= a + br
W
, b
W
= b + cr
W
(mod p), care sunt coecient ii propriului sau polinom g
W
(x).
Vom arata ca informat ia det inuta de W este consistent a cu orice valoare posibila m Z
p
a
cheii K
U,V
. Deci W nu poate obt ine nici o informat ie asupra cheii K
U,V
. Sa consideram ecuat ia
matriciala n Z
p
:

1 r
U
+ r
V
r
U
r
V
1 r
W
0
0 1 r
W

a
b
c

m
a
W
b
W

Prima ecuat ie este de fapt K


U,V
= m, iar celelalte doua dau informat ia furnizata de g
W
(x)
despre a, b, c.
Determinantul matricii este
r
2
W
+ r
U
r
V
(r
U
+ r
V
)r
W
= (r
W
r
U
)(r
W
r
V
)
unde toate calculele sunt efectuaten Z
p
. Cumr
W
este distinct de r
U
si r
V
, acest determinant
este nenul, deci sistemul admite o solut ie unica (a, b, c). Cu alte cuvinte, orice valoare m Z
p
este compatibila cu informat ia deja det inut a de W. 2
O coalit ie ntre doi utilizatori W, X poate conduce la aarea cheii K
U,V
. W si X stiu ca:
a
W
= a + br
W
b
W
= b + cr
W
a
X
= a + br
X
b
X
= b + cr
X
Acesta este un sistem de 4 ecuat ii cu 3 necunoscute, din care se poate aa imediat solut ia
unica (a, b, c). Dupa ce s-au aat aceste trei valori, se poate construi polinomul f(x, y), din
care se poate determina mai departe restul informat iei.
46 PRELEGEREA 4. PROTOCOALE DE DISTRIBUIRE A CHEILOR
Acest protocol poate generalizat pentru a rezista la atacul unei aliant e de k utilizatori.
Singura modicare se face la pasul 2, unde arbitrul foloseste polinomul
f(x, y) =
k

i=0
k

j=0
a
i,j
x
i
y
j
(mod p)
unde a
i,j
Z
p
(0 i k, 0 j k) si a
i,j
= a
j,i
pentru orice i si j.
4.2.2 Protocolul Die - Hellman
Este un protocol celebru, des folosit, bazat pe problema logaritmului discret.
Vom folosi grupul Z
p
unde p este num ar prim (desi construct ia funct ioneaz a pentru orice
grup nit n care problema logaritmului discret este dicila) si e Z
p
un element primitiv.
p si sunt publice.
ID(U) este o informat ie capabila sa identice utilizatorul U n ret ea (numele, adresa elec-
tronica, numarul de telefon etc). Orice utilizator U dispune de un num ar secret a
U
(0 a
U

p 2), putand sa calculeze
b
U
=
a
U
(mod p)
Arbitrul A dispune de un algoritm de semnatur a secret sig
A
si o procedura de vericare
publica ver
A
. Mai presupunem implicit ca datele au fost n prealabil supuse unei funct ii de
dispersie criptograce h pe care pentru simplicarea scrierii nu o mai ment ion am explicit.
Anumite informat ii despre utilizatorul U sunt autenticate folosind un certicat care cont ine
si amprenta (semnatura) arbitrului; un certicat este o denit ca o secvent a de forma
C(U) = (ID(U), b
U
, sig
A
(id(U), b
U
)).
De remarcat ca arbitrul nu trebuie sa cunoasca a
U
pentru a produce certicatul. Cand U
intr a n ret ea, se genereaza un astfel de certicat, care poate pastrat n baza de date sau
poate comunicat chiar de U la ecare utilizare. Semnatura lui A permite oricui sa verice
autenticitatea informat iei pe care o cont ine.
O cheie privat a pentru U si V este denita
K
U,V
=
a
U
a
V
(mod p).
Ea poate construita atat de U, prin K
U,V
= b
a
U
V
(mod p) cat si de V prin K
U,V
=
b
a
V
U
(mod p) (reamintim, a
U
, a
V
sunt private, b
U
, b
V
sunt publice).
Exemplul 4.2 Sa presupunem p = 25307 si = 2. Daca luam a
U
= 3578, vom avea b
U
=
2
3578
= 6113 (mod 25307), valoare pusa n certicatul lui U.
Sa presupunem ca V alege a
V
= 19956; atunci
b
V
= 2
19956
= 7984 (mod 25307).
U poate calcula cheia comuna K
U,V
= 7984
3578
= 3694 (mod 25307).
Aceiasi cheie este calculata si de V :
K
U,V
= 6113
19956
= 3694 (mod 25307).
4.3. KERBEROS 47
Sa studiem securitatea acestui protocol contra unui atac (activ sau pasiv). Semnatura lui
A pe certicate mpiedic a producerea de informat ii publice false. Deci vor ram ane n discut ie
numai atacurile pasive, care se reduc la problema: W poate determina K
U,V
daca nu este U
sau V ? Altfel spus: ind date
a
U
si
u
V
, ambele (mod p), se poate calcula
a
U
a
V
(mod p) ?
Aceasta este cunoscuta si sub numele de problema Die - Hellman, formulat a astfel:
Fie I = (p, , , ) unde p este num ar prim, Z
p
este primitiv, iar , Z

p
.
Se poate determina
log

(mod p) ?
(sau echivalent,
log

(mod p))
Evident, securitatea protocolului Die - Hellman de predistribuire a cheii fat a de atacurile
pasive este echivalent cu dicultatea problemei Die - Hellman.
Daca W poate calcula a
U
(sau a
V
) plecand de la b
U
(b
V
), el poate deduce K
U,V
asa cum
face U (respectiv V ). Aceasta conduce la rezolvarea unei probleme de logaritm discret. Deci,
daca problema logaritmului discret n Z
p
este dicila, atunci protocolul de predistribuire a cheii
Die - Hellman nu poate atacat. Conjectura este aceea ca problema Die - Hellman este
echivalenta cu problema logaritmului discret (asa cum s-a conjecturat ca spargerea sistemului
RSA este echivalenta cu factorizarea unui num ar).
Teorema 4.2 A sparge sistemul de criptare El Gamal este echivalent cu a rezolva problema
Die - Hellman.
Demonstrat ie: Sa reamintim sistemul de criptare El Gamal: O cheie este K = (p, , a, ) unde
=
a
(mod p); a este secret, iar p, , sunt publice. Criptarea unui mesaj x Z
p
se face
alegand aleator un num ar k Z
p1
; apoi e
K
(x, p) = (y
1
, y
2
) unde
y
1
=
k
(mod p), y
2
= x
k
(mod p)
Pentru y
1
, y
2
Z

p
, decriptarea este denita prin
d
K
(y
1
, y
2
) = y
2
(y
a
1
)
1
(mod p)
Sa presupunem ca dispunem de un algoritmAcare rezolva problema Die - Hellman si ncerc am
un atac asupra mesajului criptat (y
1
, y
2
). Aplicand A asupra intr arilor p, , y
1
si avem:
A(p, , y
1
, ) = A(p, ,
k
,
a
) =
ka
=
k
(mod p)
De aici rezulta x = y
2
(
k
)
1
(mod p), deci se poate decripta mesajul (y
1
, y
2
).
Invers, sa presupunem ca dispunem de un algoritmB de decrptare pentru sistemul El Gamal.
Deci B admite la intrare (p, , , y
1
, y
2
) si calculeaza
x = y
2

y
log

1
(mod p).
Fiind data o aparit ie (p, , , ) a problemei Die - Hellman, se poate calcula usor
B(p, , , , 1)
1
= 1

log

1
=
log

(mod p)
2
4.3 Kerberos
Un punct slab n metodele de predistribuire a cheilor prezentate este acela ca ecare pereche
de utilizatori primeste mereu aceeasi cheie. Acest lucru, pe o perioada de timp mai lunga
periciliteaza condent ialitatea cheii. Este mult mai indicat sa se calculeze cate o cheie noua
(freshness) pentru ecare contact direct.
48 PRELEGEREA 4. PROTOCOALE DE DISTRIBUIRE A CHEILOR

In plus, daca se utilizeaza o distribut ie a cheilor n direct, nici un utilizator nu va mai


nevoit sa stocheze cheile de comunicare cu ceilalt i utilizatori (nafara cheii de comunicare cu
arbitrul, binent eles). Cheile de sesiune sunt transmise la simpla solicitare a lui A. Tot arbitrul
este responsabil de noutatea cheii livrate.
Kerberos este unul din cele mai rasp andite sisteme de gestiune a cheilor. Sa prezent am
protocolul de fabricare a cheilor de sesiune asigurat de acest sistem.
Fiecare utilizator U mparte cu arbitrul o cheie DES notata K
U
. Ultimele versiuni folosesc
modul CBC de implementare a sistemului DES.
ID(U) reprezinta o informat ie publica care identic a utilizatorul U. La solicitarea lui U de
a comunica cu V , arbitrul efectueaza urmatorii pasi:
Genereaza o cheie K;


Inregistreaza ora T a cererii;
Stabileste o durata L de validitate a lui K; deci cheia de sesiune este valida n intervalul
de timp [T, T + L].
Aceste informat ii sunt transmise de A lui U, apoi V . Protocolul Kerberos este urmatorul:
1. A genereaza K, T si L.
2. A calculeaza
m
1
= e
K
U
(K, ID(V ), T, L), m
2
= e
K
V
(K, ID(U), T, L)
pe care le trimite lui U.
3. U calculeaza d
K
U
(m
1
) si aa K, T, L, ID(V ). Pe urma calculeaza
m
3
= e
K
(ID(U), T)
si trimite lui V mesajele m
2
si m
3
.
4. V aa K, T, L, ID(U) din d
K
V
(m
2
) si T, ID(U) din d
K
V
(m
2
). Verica daca cele
doua valori pentru T si ID(U) sunt identice.
5. V calculeaza
m
4
= e
K
(T + 1)
pe care l trimite lui U.
6. U calculeaza d
K
(m
4
) si verica daca este T + 1.
Fiecare din cele patru mesaje m
i
transmise are rolul sau bine determinat. Astfel, m
1
si m
2
servesc la transmiterea condent iala a cheii K. La randul lor, m
3
si m
4
asigura o conrmare a
cheii; dupa primirea ei, U si V sunt siguri ca dispun de aceeasi cheie de sesiune K.
Rolul lui T si L este acela de protejare contra unui atac activ constand din nregistrarea
unor mesaje vechi si retransmiterea lor ulterior.
Unul din slabiciunile sistemului Kerberos consta n imposibilitatea unei sincronizari a cea-
surilor utilizatorilor.

In practica se admit anumite decalaje, stabilite de comun acord.

In plus,
spargerea sistemului DES a condus la renunt area treptata la sistemul Kerberos.
4.4. SCHIMBUL DE CHEI DIFFIE - HELLMAN 49
4.4 Schimbul de chei Die - Hellman
Daca nu se accepta un furnizor universal de chei, atunci va trebui stabilit un protocol de punere
de acord. Primul si cel mai cunoscut astfel de protocol este protocolul de schimb de chei Die
- Hellman.
Fie p numar prim si Z
p
un element primitiv, ambele publice; eventual ele sunt alese de
U si comunicate lui V . Protocolul de schimb este urmatorul:
1. U alege aleator a
U
[0, p 2];
2. U calculeaza
a
U
(mod p) si l trimite lui V ;
3. V alege aleator a
V
[0, p 2];
4. V calculeaza
a
V
(mod p) si l trimite lui U;
5. U calculeaza K = (
a
V
)
a
U
(mod p) iar V calculeaza K = (
a
U
)
a
V
(mod p)
La sfarsitul protocolului, U si V obt in aceeasi cheie K =
a
U
a
V
(mod p). Procedeul este
aseman ator cu cel de predistribuire a cheii, cu diferent a ca exponent ii a
U
si a
V
se schimb a la
ecare sesiune.
4.4.1 Protocol ntre stat ii
Protocolul Die - Hellman se efectueaza dupa schema urmatoare:
-

U V

a
V

a
U
Acest protocol este nsa vulnerabil la un atac activ al unui intrus W, care se interpune ntre U
si V n modul urmator:
- -

U W V

a
U

a
V
W intercepteaz a mesajele lui U si V si le nlocuieste cu ale sale. La sfarsitul lui, W a stabilit
o cheie de comunicat ie
a
U
a

V
cu U si o cheie
a

U
a
V
cu V . Cand U doreste sa trimita un mesaj
lui V , el va utliliza cheia pe care o mparte cu W; acesta poate decripta mesajul si apoi sa l
cripteze cu cheia comuna cu V . Acesta primeste mesajul, far a sa realizeze ca a fost citit de W.
Acelasi lucru se nt ampla n cazul unui mesaj trimis de V catre U.
Este necesar deci ca utilizatorii sa si autentice punerea de acord a protocolului de stabilire
a cheilor. Acesta va numit protocol de punere de acord autenticat. Un astfel de acord, bazat
pe schimbul de chei Die - Helmann este numit protocol ntre stat ii (STS) si este construit de
Die, Van Oorschot si Wiener. O variant a STS simplicata este:
50 PRELEGEREA 4. PROTOCOALE DE DISTRIBUIRE A CHEILOR
1. U genereaza aleator un num ar a
U
[0, p 2]; apoi calculeaza num arul
a
U
(mod p)
pe care l trimite lui V ;
2. V genereaza aleator un num ar a
V
[0, p 2];
3. V calculeaza
a
V
(mod p), apoi K = (
a
U
)
a
V
(mod p) si y
V
= sig
V
(
a
V
,
a
U
).
Trimite lui U mesajul (C(V ),
a
V
(mod p), y
V
).
4. U calculeaza K = (
a
V
)
a
U
(mod p) si verica C(V ) cu ver
A
, apoi y
V
cu ver
V
extras
din C(V );
5. U calculeaza y
U
= sig
U
(
a
U
,
a
V
) si trimite lui V mesajul (C(U), y
U
);
6. V veric a C(U) cu ver
A
, apoi y
U
cu ver
U
extras din C(U).

In aceasta schem a, num arul prim p si elementul primitiv Z


p
sunt publice. Fiecare utilizator
U dispune de un protocol privat de semnatura sig
U
si unul public de vericare ver
U
. Arbitrul
A are de asemenea asociate funct iile sig
A
respectiv ver
A
. Certicatul lui U este
C(U) = (ID(U), ver
U
, sig
A
(ID(U), ver
U
))
Informat iile schimbaten cadrul protocolului STS simplicat sunt schematizate de diagrama
urmatoare:
-

-
U V

a
U

a
V
, sig
V
(
a
V
,
a
U
)
sig
U
(
a
U
,
a
V
)
Prin acest protocol, un intrus W nu se mai poate interpunentre U si V .

Intr-adevar, daca W in-
tercepteaza
a
U
si l nlocuieste cu
a

U
, el va trebui sanlocuiasca de asemenea si sig
V
(
a
V
,
a

U
)
cu sig
V
(
a

V
,
a
U
), ceea ce nu poate decat n cazul a
U
= a

U
si a
V
= a

V
(pentru ca nu cunoaste
sig
V
).
La fel, W nu poate nlocui sig
U
(
a

U
,
a
V
) cu sig
U
(
a
U
,
a

V
), pentru ca nu cunoaste sig
V
.
Varianta aceasta de protocol nu ofera totusi o conrmare a cheii. Pentru aceasta trebuie
modicat y
V
= e
K
(sig
V
(
a
V
,
a
U
)) n pasul 3 si y
U
= e
K
(sig
U
(
a
U
,
a
V
)) n pasul 5.

In acest fel, ca la Kerberos, se obt ine o conrmare a cheii decriptand o parte cunoscuta a
cheii de sesiune. Acesta este protocolul STS complet.
4.4.2 Punerea de acord MTI
Matsumoto, Takashima si Imai au dezvoltat mai multe protocoale de punere de acord, bazate
pe schimbul de chei Die - Hellman. Aceste protocoale numite MTI necesita doar doua
schimburi de informat ii ntre U si V (cate unul pe ecare sens) si nu folosesc protocoale de
semnatur a.
Unul din protocoalele MTI este denit astfel:
Fie p un numar prim si Z
p
un element primitiv, ambele publice. Fiecare utilizator
U poseda un identicator ID(U), un exponent secret a
U
[0, p 2] si o valoare publica
b
U
=
a
U
(mod p).
4.4. SCHIMBUL DE CHEI DIFFIE - HELLMAN 51
Arbitrul dispune de un protocol de semnatur a sig
A
si unul de semnatura ver
A
.
Fiecare utilizator poseda un certicat
C(U) = (ID(U), b
U
, sig
A
(ID(U), b
U
)).
Protocolul MTI este dat mai jos.

In urma lui, utilizatorii U si V obt in aceeasi cheie
K =
r
U
a
V
+r
V
a
U
(mod p).
1. U selecteaza aleator r
U
[0, p 2], calculeaza
s
U
=
r
U
(mod p) si trimite lui V (C(U), s
U
).
2. V selecteaza aleator r
V
[0, p 2], calculeaza
s
V
=
r
V
(mod p) si trimite lui U (C(V ), s
V
).
3. U calculeaza K = s
a
U
V
b
r
U
V
(mod p), iar V calculeaza K = s
a
V
U
b
r
V
U
(mod p).
Exemplul 4.3 Sa luam p = 27803 si = 5. Daca U alege a
U
= 21131, el va calcula b
U
=
5
21131
= 21420 (mod 27803), pe care l pune n certicatul sau. La fel, daca V alege a
V
= 17555,
va avea b
V
= 5
17555
= 17100 (mod 27803)
Presupunem ca U selecteaza r
U
= 169; el va trimite lui V
s
U
= 5
169
= 6268 (mod 27803).
Daca V alege r
V
= 23456, el trimite lui U
s
V
= 5
23456
= 26759 (mod 27803).
Acum se poate calcula
K
U,V
= s
a
U
V
b
r
U
V
(mod p) = 26759
21131
17100
169
= 21600 (mod 27803)
Aceeasi cheie 21600 o obt ine si V .
Semnatura arbitrului elimina posibilitatea interpunerii lui Oscar.

Intr-adevar, daca un intrus
W se interpune ntre U si V , va avea loc scenariul
- -

U W V C(V ),
r

V
C(U),
r
U
C(U),
r

U
C(V ),
r
V

In acest moment, U si V vor calcula chei diferite: U calculeaza K =


r
U
a
V
+r
V

a
U
(mod p),
iar V calculeazaK =
r
U

a
V
+r
V
a
U
(mod p).

In plus, nici una din cheile lui U sau V nu pot
calculate de W, pentru ca aceasta ar solicita cunoasterea exponentului secret a
U
respectiv a
V
.
Deci, desi U si V obt in chei distincte, nici una din ele nu poate calculata si de W (n ipoteza
ca problema logaritmului discret este dicila). Altfel spus, U si V sunt siguri ca nici o alta
persoana nu poate calcula cheia. Aceasta proprietate este numit a autenticare implicita.
Pentru atacuri pasive, securitatea sistemului MTI se reduce tot la dicultatea problemei
Die - Hellman.
4.4.3 Chei auto-certicate
Metoda punerii de acord prezentata n acest paragraf este construita de Girault; ea nu necesita
certicat. Valoarea cheii publice asigura o autenticare implicita.
Protocolul lui Girault combina proprietat ile sistemului RSA cu cele ale logaritmului discret.
Fie n = pq unde p = 2p
1
+ 1, q = 2q
1
+ 1 sunt numere prime sigure (p
1
, q
1
sunt numere prime
52 PRELEGEREA 4. PROTOCOALE DE DISTRIBUIRE A CHEILOR
distincte). Cum grupul multiplicativ Z

n
este izomorf cu Z
p
Z
q
, ordinul maxim al unui element
din Z

n
este deci cmmmc(p1, q 1) = 2p
1
q
1
. Fie Z

n
de ordin 2p
1
q
1
. Vom utiliza problema
logaritmului discret n subgrupul ciclic al lui Z

n
, generat de .

In acest protocol, factorizarea n = pq este cunoscuta numai de catre arbitru. Valorile n,


sunt publice, iar p, q sunt secrete (deci si p
1
, q
1
). A alege un exponent de criptare RSA public,
sa spunem e. Exponentul de decriptare d = e
1
(mod (n)) este secret.
Fiecare utilizator U are un identicator C(U) si primeste de la A o cheie publica auto-
certicata p
U
conform urmatorului protocol:
1. U alege un exponent secret a
U
si calculeaza b
U
=
a
U
(mod n);
2. U trimite lui A valorile a
U
si b
U
;
3. A calculeaza p
U
= (b
U
ID(U))
d
(mod n), pe care l trimite lui U.
De remarcat aportul arbitrului n calculul lui p
U
. Se observa ca
b
U
= p
e
U
+ ID(U) (mod n)
poate calculat folosind numai informat iile publice.
Protocolul lui Girault este dat mai jos. Schematizat, schimbul de informat ii arata n felul
urmator:
-

U V
ID(V ), p
V
,
r
V
(mod n)
ID(U), p
U
,
r
U
(mod n)
La sfarsitul acestui protocol, U si V dispun de aceeasi cheie:
K =
r
U
a
V
+r
V
a
U
(mod n).
1. U alege aleator r
U
si calculeaza s
U
=
r
U
(mod n);
tripletul (ID(U), p
U
, s
U
) este trimis lui V .
2. V alege aleator r
V
si calculeaza s
V
=
r
V
(mod n);
tripletul (ID(V ), p
V
, s
V
) este trimis lui U.
3. U calculeaza cheia K = s
a
U
V
(p
e
V
+ ID(V ))
r
U
(mod n).
Cheia calculata de V este K = s
a
V
U
(p
e
U
+ ID(U))
r
V
(mod n).
Exemplul 4.4 Sa presupunem p = 839 si q = 863. Vom avea n = 724057 si (n) = 722356.
Elementul = 5 are ordinul 2p
1
q
1
= (n)/2.
Daca arbitrul A alege e = 84453 drept exponent de criptare, vom avea d = 125777.
Daca ID(U) = 500021 si a
U
= 111899, vom avea b
U
= 488889 si p
U
= 650704.

In mod
similar, consideram ID(V ) = 500022 si a
V
= 123456, deci b
V
= 111692, p
V
= 683556.
Daca U si V vor sa stabileasca o cheie comuna si U alege numarul r
U
= 56381, iar V
numarul r
V
= 356935, vom avea s
U
= 171007, s
V
= 320688.
Dupa protocol, cei doi vor dispune de cheia K = 42869.
4.4. SCHIMBUL DE CHEI DIFFIE - HELLMAN 53
Sa studiem put in evitarea atacurilor cu acest sistem de chei auto-certicate.
Cum valorile b
U
, p
U
, ID(U) nu sunt semnate de A, nimeni nu poate verica direct autentic-
itatea lor. Sa presupunem ca ele provin de la W (fara ajutorul arbitrului), care vrea sa se dea
drept U. Daca W furnizeaza ID(U) si daca p
U
conduce la un b
U

gresit, nu se poate calcula


exponentul a
U

asociat (daca problema logaritmului discret este dicila). Far a a


U

, W nu poate
determina cheia.
O situat ie similara apare daca W se interpune ntre U si V . El poate mpiedica pe U si
V sa obt in a o cheie comuna, dar nu poate efectua calculele lor. Are loc deci o autenticare
implicita, ca la MTI.
O ntrebare ar : De ce U trebuie sa comunice arbitrului valoarea a
U
? A poate determina
p
U
plecand de la b
U
, far a sa cunoasca a
U
. Acest lucru se face pentru ca arbitrul sa e convins
ca U poseda a
U
, nainte de a calcula p
U
.
Daca A nu face aceasta vericare nainte de calculul lui p
U
, sistemul poate atacat.
Sa presupunem ca W alege un a

U
fals si determina b
U

=
a

U
(mod n). Cu ele, stabileste o
cheie publica falsa p

U
= (b

U
ID(U))
d
(mod n) n felul urmator:
W calculeaza b
W

= B
U

ID(U) + ID(W) si trimite lui A perechea (b


W

, ID(W)). Pre-
supunem ca arbitrul calculeaza efectiv pentru W valoarea p
W

= (b
W

ID(W))
d
(mod n).
Atunci, din
b
W

ID(W) b
U

ID(U) (mod n)
se obt ine imediat p
W

= p
U

.
Sa presupunem acum ca U si V efectueaza protocolul, iar W se interpune conform schemei
urmatoare:
- -

U W V
ID(V ), p
V
,
r
V
mod n
ID(U), p
U
,
r
U
mod n ID(U), p
U

,
r

U
mod n
ID(V ), p
V
,
r
V
mod n
V calculeaza deci cheia K

=
r

U
a
V
+r
V
a

U
(mod n), iar U calculeaza K =
r
U
a
V
+r
V
a
U
(mod n).
W obt ine K

calculand K

= s
a

U
V
(p
e
V
+ ID(V )))
r

U
(mod n).
W si V poseda deci aceeasi cheie, n timp ce V crede ca o mparte cu U.

In acest moment,
W poate decripta mesajele trimise de V pentru U.
Prelegerea 5
Sisteme de partajare a secretelor
5.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.
Ca un exemplu, conform revistei Time Magazin (4 mai 1992), n Rusia, accesul la arma
nuclear a utilizeaza un astfel de sistem doi - din - trei. Cele trei persoane sunt Presedintele
t arii, Presedintele Parlamentului si Ministrul Apar arii.
Sa prezentam ntai un sistem de partajare a secretului numit sistem condent ial.
1
Denit ia 5.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 membrii unei mult imi T 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.
Exemplul precedent este deci un sistem condent ial (2, 3).
Valoarea lui K este aleasa de un arbitru
2
D. Vom presupune ca D , T. D va distribui n
secret componente ale cheii membrilor grupului T, astfel nc at 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 T pot pune n comun componentele cheii cunos-
cute 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.
Sa notam
T= 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 prezentat n aceasta sect iune este datorat lui Shamir si a fost creat n 1979. Fie
p (p w + 1) un numar prim si /= Z
p
, o= Z
p
. Deci cheile si componentele sunt numere din
Z
p
. Sistemul condent ial al lui Shamir, prezentat mai jos, se bazeaza pe un polinom aleator
1
Threshold scheme n engleza, a seuil n franceza.
2
Dealer n engleza, initiateur n franceza.
55
56 PRELEGEREA 5. SISTEME DE PARTAJARE A SECRETELOR
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 polinom.
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 comunic a aceasta valoare lui P
i
(1 i w).
Fie acum o submult ime P
i
1
, . . . , P
i
t
de participant i care doresc sa reconstituie 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 5.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 5.1

In sistemul condent ial al lui Shamir, orice mult ime B de t participant i poate
reconstitui n mod unic cheia K.
Demonstrat ie: Fie a(X) = a
0
+ a
1
X + . . . + a
t1
X
t1
polinomul ales de D, unde a
0
= K.
Armat ia se reduce la a arata ca sistemul de ecuat ii y
i
j
= a(x
i
j
) (1 j t), de necunoscute
a
0
, . . . , a
t1
, admite solut ie unica. Determinantul acestui sistem este

1 x
i
1
x
2
i
1
. . . x
t1
i
1
1 x
i
2
x
2
2
1
. . . x
t1
i
2
. . .
1 x
i
t
x
2
it
. . . x
t1
it

1j<kt
(x
i
k
x
i
j
) (mod p)
Deoarece toate numerele x
i
sunt distincte, iar Z
p
este corp, rezulta ca acest produs este
nenul, deci sistemul are totdeauna solut ie unica, iar a
0
este chiar cheia cautat a. 2
Ce se nt ampl a daca un grup de t 1 participant i ncearc a sa calculeze cheia K ?
5.1. SISTEMUL CONFIDENT IAL AL LUI SHAMIR 57
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 consistent a cu componentele det inute de cei t 1
participant i; asocierea lor nu ofera nici o informat ie suplimentara pentru aarea cheii.
Mai exista o modalitate de abordare a sistemului condent ial al lui Shamir: folosind poli-
noamele de interpolare Lagrance. Acestea ofera o exprimare explicita a polinomului a(X), sub
forma
a(X) =
t

j=1
y
i
j

1 k t
k ,= j
x x
i
k
x
i
j
x
i
k
.
Evident, acesta este un polinom de grad cel mult t 1, cu proprietatea y
i
j
= a(x
i
j
), j =
1, . . . , t. Cum un astfel de polinom este unic, rezulta ca el este chiar polinomul cautat.
Un grup B de t participant i poate calcula a(X) pe baza acestei formule. De fapt, nici nu
este nevoie se determine tot polinomul: este sucient sa obt ina K = a(0). Deci, nlocuind n
formul a pe X cu 0, avem
K =
t

j=1
y
i
j

1 k t
k ,= j
x
i
k
x
i
k
x
i
j
.
Daca denim
b
j
=

1 k t
k ,= j
x
i
k
x
i
k
x
i
j
(1 j t),
aceste valori pot precalculate si facute publice de catre arbitru. Cheia este atunci o combinat ie
liniara de t componente:
K =
t

j=1
b
j
y
i
j
.
Exemplul 5.2 Sa revenim la Exemplul 5.1. Participant ii P
1
, P
3
, P
5
pot calcula b
1
, b
2
, b
3
;
se obt ine (calculele sunt facute modulo 17):
b
1
=
x
3
x
5
(x
3
x
1
)(x
5
x
1
)
= 3 5 (2)
1
(4)
1
= 4.
Similar, b
2
= 3, b
5
= 11. Cu componentele 8, 10 si 11, cheia se determina imediat:
K = 4 8 + 3 10 + 11 11 = 13 (mod 17)
Aceasta varianta ofera o simplicare 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:
58 PRELEGEREA 5. SISTEME DE PARTAJARE A SECRETELOR
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, t 1 participant i nu pot obt ine cheia K. Chiar daca pun n comun componentele lor,
ei pot determina valoarea K y, 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 suplimentar a referitoare la cheie.
Acesta este deci un sistem condent ial (t, t).
5.2 Structura de acces si partaj a secretului general

In paragraful precedent am studiat situat ia cand orice asociere de t participant i din totalul
de w poate calcula cheia. Vom restrange aici aceasta condit ie, 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 T, 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 component a ecarui participant, urmand ca
ulterior, o submult ime de participant i sancerce sa determine K punandn comun componentele
cunoscute de ei.
Denit ia 5.2 Un sistem perfect de partajare a secretelor cu structura de acces este un pro-
cedeu de partajare a secretului unei chei K peste o mult ime T de participant i, astfel ncat:
1. Orice submult ime autorizata B T de participant i poate reconstitui cheia din componen-
tele cunoscute de ei;
2. Orice submult ime neautorizata B T de participant i nu poseda nici o informat ie despre
valoarea lui K.
Un sistem condent ial (t, w) realizeaza structura de acces = B T [ card(B) t. O
asemenea structura de numeste structura condent iala. Conform paragrafului precedent, sis-
temul condent ial al lui Shamir este perfect si realizeaza o structura condent ial a.
Sa studiem securitatea sistemelor de partajare a secretelor. Ca de obicei, nu se impune nici
o restrict ie asupra puterii de calcul a submult imilor neautorizate.
Fie B si B C T. 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:
5.3. CONSTRUCT IA CIRCUITELOR MONOTONE 59
Daca B si B C T, 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 . Mai
exact,
= C T [ B
0
, B C.
Spunem ca este nchiderea lui
0
si notam prin =
0
.
Exemplul 5.3 Fie T= 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.
5.3 Construct ia circuitelor monotone
Ideea din aceasta sect iune apart ine lui Benaloh si Leichter; ea consta n construirea unui cir-
cuit combinat ional care recunoaste structura de acces si genereaza un sistem de partajare a
secretului. Un astfel de circuit este numit de autori circuit monoton.
Fie C un circuit computat ional cu w intr ari 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
). Pre-
supunem ca la construct ia circuitului sunt folosite numai port i AND si OR (far a port i NOT).
Un astfel de circuit este numit monoton daca modicarea unei intr ari din 0 n 1 nu va implica
niciodata transformarea iesirii y din 1 n 0.
Vom nota
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 T.
Fiind data o mult ime monotona de part i ale lui T, se poate construi usor un circuit
monoton C cu (C)= . Un exemplu de construct ie este urmatorul:
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 disjunc-t ia
nala corespunde unei port i OR. Numarul total de port i folosite este card(
0
) + 1.
Fie acum C un circuit monoton care recunoaste . Vom prezenta un algoritm care permite
arbitrului D sa construiasca un sistem perfect de partajare a secretului cu structura de acces
. Vom folosi sistemul condent ial (t, t) din paragraful 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 marcheaz a iesirea y i se atribuie valoarea
x
out
= K a cheii. Formal, algoritmul este:
60 PRELEGEREA 5. SISTEME DE PARTAJARE A SECRETELOR
1. x
out
K;
2. pentru orice poarta G din care iese un arc marcat x, iar arcele care intr a sunt
nemarcate, executa:
(a) Daca G este o poarta OR, atunci x
V
x pentru orice arc V care intr a 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. Marcheaz a arcul V
i
cu x
V,i
, (1 i t).
Exemplul 5.4 Pentru mult imea din Exemplul 5.3, avem
0
= P
1
, P
2
, P
4
, P
1
, P
3
, P
4
,
P
2
, P
3
, deci se poate asocia expresia booleana
(P
1
P
2
P
4
) (P
1
P
3
P
4
) (P
2
P
3
).
Circuitul monoton asociat este desenat mai jos; n paralel au fost marcate si arcele, conforma
algoritmului 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
1
.
Fiecare submult ime autorizata poate calcula valoarea lui K. Astfel, P
1
, P
2
, P
4
determina
K = a
1
+a
2
+(K a
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
).
Sa vedem acum ce se nt ampl a cu mult imile neautorizate.
Ca o remarca, daca o mult ime B este neautorizata, orice submult ime a sa va de asemenea
neautorizata.
Denit ia 5.3 O mult ime B T este maximal neautorizat a 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.
5.4. RATA DE INFORMAT IE 61
Exemplul 5.5 Revenind la exemplul anterior, mult imile maximal neautorizate 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.
Exemplul 5.6 Sa reluam Exemplul 5.3 si sa rscriem expresia booleana sub forma normal con-
junctiva:
(P
1
P
2
) (P
1
P
3
) (P
2
P
3
) (P
2
P
4
) (P
3
P
4
)
Construind sistemul condent ial corespunzator acestei expresii, vom avea urmatoarea distri-
but ie a componentelor (omitem detaliile):
1. P
1
primeste a
1
si a
2
;
1. P
2
primeste a
1
, a
3
si a
4
;
1. P
3
primeste a
2
, a
3
si K a
1
a
2
a
3
a
4
;
1. P
4
primeste a
4
si K a
1
a
2
a
3
a
4
;
Teorema 5.2 Fie C un circuit boolean monoton. Construct ia sa genereaza un sistem perfect
de partajare a secretului, a carui structura de acces este (C).
Demonstrat ie: Vom folosi o recurent a asupra num arului de port i din circuitul C. Cazul cand
C are o singura poarta este banal: daca poarta este OR, ecare participant cont ine cheia K
si structura de acces este mult imea tuturor part ilor nevide ale lui T; daca poarta este AND si
are t intrari, se obt ine sistemul condent ial (t, t) denit anterior.
Sa presupunem ca pentru j > 1, orice circuit C cu mai put in de j port i veric a teorema,
si e C un circuit cu j port i. Vom considera ultima poarta G a acestui circuit (din care iese
rezultatul y). Ea nu poate decat OR sau AND. Daca G este o poarta OR, sa consideram cele
t arce care intra n G : V
i
(1 i t). Acestea sunt arcele de iesire din t circuite C
i
; conform
ipotezei de induct ie, ecare astfel de circuit deneste un sub-sistem de partajare a secretului,
cu structura de acces (C
i
). Vom avea evident
(C) =
t
_
i=1
(C
i
).
Cum valoarea cheii se atribuie ecarui arc V
i
, sistemul va avea structura de acces (C).
Procedeul este similar daca G este o poarta AND.

In acest caz,
(C) =
t

i=1
(C
i
).
Deoarece K este repartizata peste toate arcele V
i
conform unui sistem condent ial (t, t),
sistemul total va admite (C) drept structura de acces. 2
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 valoarea
componentelor trebuie sa e secreta.
5.4 Rata de informat ie
Fie T o mult ime de participant i si o spat iul tuturor componentelor posibile ale cheii. O
distribut ie de componente este o funct ie
62 PRELEGEREA 5. SISTEME DE PARTAJARE A SECRETELOR
f : T o
Ea codica matematic 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=
_
KK
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 T (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; ea este deci denita prin f
B
(P
i
) = f(P
i
), P
i
B.
Deci S(B) este mult imea tuturor distribut iilor posibile ale componentelor la elementele
submult imii B.
Ne punem acum problema evalu arii performant elor sistemelor perfecte de partajare a se-
cretelor 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
num ar.
Pentru masurarea performant elor sistemelor perfecte de partajare a secretelor, vom folosi
un instrument numit rata de informat ie.
Denit ia 5.4 Consideram 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 5.7 Sa comparam cele doua sisteme date ca exemplu n paragraful anterior. Sis-
temul din Exemplul 5.4 are rata de informat ie =
log
2
m
log
2
m
2
=
1
2
.
Pentru sistemul din Exemplul 5.6, avem =
log
2
m
log
2
m
3
=
1
3
.
Primul sistem este deci mai bun.

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 5.3 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
).
5.5. SISTEMUL DE PARTAJARE AL LUI BRICKELL 63
Evident, este preferabila o rata de informat ie cat mai mare. Valoarea ei este nsa limitata
superior, conform teoremei urmatoare:
Teorema 5.4 Pentru orice sistem perfect de partajare a secretelor cu structura de acces ,
rata de informat ie verica inegalitatea 1.
Demonstrat ie: Sa consideram un sistem perfect de partajare a secretelor av and structura de
acces . Fie B
0
si P
j
B un participant. Denim B

= B P
j
. Fie g S(B). Cum
B

, , distribut ia componentelor g[
B
nu da nici o informat ie asupa cheii. Deci, pentru orice
K / exista o distribut ie a componentelor g
K
T astfel ca g
K
[
B
= g[
B
. Cum B , vom
avea g
K
(P
j
) ,= gK

(P
j
) pentru K ,= K

. Deci card(S(P
j
)) card(/), adica 1. 2
Un sistem cu = 1 va numit ideal. Ca un 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
inecient a daca 1 < t < w.
5.5 Sistemul de partajare al lui Brickell
Sistemul construit n acest paragraf este cunoscut sub numele de construct ia vectoriala a lui
Brickell.
Fie o structura de acces, p un num ar prim, iar d 2 un numar ntreg. Fie
|: T 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.
Plecand de la aceasta funct ie, vom construi 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
: T o prin f
a
(x) = a | (x).
S-a notat cu produsul scalar a doi vectori. Algoritmul de partajare a secretelor Brickell
este urmatorul:
1. (Init ializare) Pentru 1 i w, D atribuie lui P
i
vectorul | (P
i
) Z
d
p
.
Acesti vectori sunt publici.
2. Pentru repartizarea cheii K Z
p
, arbitrul D alege aleator d 1 elemente
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:
64 PRELEGEREA 5. SISTEME DE PARTAJARE A SECRETELOR
Teorema 5.5 Daca | verica proprietatea (A), mult imea distribut iilor de componente T
K
,
K / formeaza un sistem perfect de partajare a secretelor, cu structura de acces .
Demonstrat ie: Sa aratam ntai ca daca B este o mult ime autorizata, participant ii lui B pot
calcula cheia K. Deoarece (1, 0, . . . , 0) | (P
i
) [ P
i
B), putem scrie
(1, 0, . . . , 0) =

{i|P
i
B}
c
i
| (P
i
)
unde c
i
Z
p
. Fie s
i
componenta lui P
i
. Vom avea s
i
= a | (P
i
), unde a este vectorul
necunoscut ales de D, iar K = a
1
= a (1, 0, . . . , 0). Vom avea deci
K =

{i|P
i
B}
c
i
a | (P
i
).
Component ii grupului B pot reconstitui deci cheia K =

{i|P
i
B}
c
i
s
i
.
Ce se nt ampl a daca B nu este autorizat ? Fie e dimensiunea spat iului vectorial
| (P
i
) [ P
i
B) (evident, e card(B)). Sa consideram K / si sistemul liniar
| (P
i
) a = s
i
P
i
B
(1, 0, . . . , 0) a = K
cu necunoscutele a
1
, . . . , a
d
. Matricea sistemului are rangul e + 1 deoarece (1, 0, . . . , 0) ,
| (P
i
) [ P
i
B). Deci, independent de valoarea lui K, spat iul solut iilor este de1, adica ex-
ista p
de1
distribut ii de componente n ecare T
K
, consistente cu componentele participant ilor
din B. 2
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 este echivalent cu cel al lui Shamir.
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 ionan submult imile V
1
, . . . , V
s
astfel nc at 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
,...,ns
. Graful multipartit complet K
1,...,1
cu s componente este de fapt un graf complet si se
noteaza K
s
.
Teorema 5.6 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.
Demonstrat ie: Fie V
1
, . . . , V
s
componentele lui G, si x
1
, . . . , x
s
Z
p
distincte (p s). Fie si
d = 2. Pentru ecare participant v V
i
se deneste | (v) = (x
i
, 1). Proprietatea (A) se verica
imediat, deci conform Teoremei 5.5 armat ia este demonstrata. 2
Vom aplica acest rezultat considerand structurile de acces posibile pentru patru partici-
pant i. Va sucient sa luam n calcul numai structurile a caror baza nu se poate partit iona n
doua mult imi nevide. De exemplu,
0
= P
1
, P
2
, P
3
, P
4
poate partit ionat an P
1
, P
2

P
3
, P
4
, ecare cu dezvoltarea sa independent a, deci nu o vom lua n considerare. O lista
completa a structurilor de acces neizomorfe pentru 2, 3 sau 4 participant i este data n Tabelul
5.1 (s-a notat cu

valoarea maxima a ratei de informat ie pentru structura respectiva).


Se pot construi sisteme ideale pentru 10 din aceste 18 structuri de acces. Acestea sunt
structuri condent iale sau structuri a caror baza este un graf multipartit, pentru care se aplica
Teorema 5.6.
5.5. SISTEMUL DE PARTAJARE AL LUI BRICKELL 65
Tabelul 5.1: Structuri de acces cu maxim 4 participant i
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)
Exemplul 5.8 Sa consideram structura de acces cu numarul 9 din Tabelul 5.1; deci d = 2 si
p 3. Denim | prin
| (P
1
) = (0, 1), | (P
2
) = (0, 1), | (P
3
) = (1, 1), | (P
4
) = (1, 2).
Aplicand Teorema 5.6 se obt ine o structura perfecta de partajare a secretelor, ideala pentru
acest tip de acces.
Ram an de studiat opt structuri de acces. Se poate utiliza construct ia lui Brickell pentru patru
din ele: structurile 11, 14, 15 si 16.
Exemplul 5.9 Pentru structura de acces 11 vom considera d = 3 si p 3. Denit ia lui | este
| (P
1
) = (0, 1, 0), | (P
2
) = (1, 0, 1), | (P
3
) = (0, 1, 1), | (P
4
) = (1, 1, 0).
Calculand, se obt ine | (P
4
) | (P
1
) = (1, 1, 0) (0, 1, 0) = (1, 0, 0) si
| (P
2
)+ | (P
3
) | (P
1
) = (1, 0, 1) + (0, 1, 1) (0, 1, 0) = (1, 0, 0).
Deci (1, 0, 0) | (P
1
), | (P
2
), T(T

)) si (1, 0, 0) | (P
1
), | (P
4
)).
Mai ramane de aratat ca (1, 0, 0) , | (P
i
) [ P
i
B) pentru orice mult ime maximala neau-
torizata B. Exista numai trei astfel de mult imi: P
1
, P
2
, P
1
, P
3
, P
2
, P
3
, P
4
. Pentru ecare
caz se arata ca sistemul liniar asociat nu are solut ie. De exemplu, sa consideram sistemul
(1, 0, 0) = a
2
| (P
2
) + a
3
| (P
3
) + a
4
| (P
4
)
cu a
2
, a
3
, a
4
Z
p
. Se obt ine sistemul echivalent
a
2
+ a
4
= 1
a
3
+ a
4
= 0
a
2
a
3
= 0
66 PRELEGEREA 5. SISTEME DE PARTAJARE A SECRETELOR
care nu are solut ie.
Exemplul 5.10 Pentru structura de acces 14 vom deni d = 3, p 2, iar | va :
| (P
1
) = (0, 1, 0), | (P
2
) = (1, 0, 1), | (P
3
) = (0, 1, 1), | (P
4
) = (0, 1, 1).
Proprietatea (A) se verica imediat; deci se poate aplica Teorema 5.6.

In mod similar se pot construi sisteme perfecte de partajare a secretelor ideale pentru structurile
15 si 16.
Cele patru sisteme ramase nu admit construct ia unor astfel de sisteme.
5.6 Construct ia prin descompunere
Prezent am aici o alta modalitatea de construire a sistemelor de partajare a secretelor, remar-
cabila prin performant ele rezultatelor, care maximizeaza rata de informat ie.
Denit ia 5.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 proprietat 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 T
k
=
_
B
k
B.
Pentru o / - descompunere ideala a structurii de acces se poate construi usor un sistem
perfect de partajare a secretelor.
Teorema 5.7 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
T
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
.
Demonstrat ie: Pentru 1 k n exista un sistem ideal de structura de acces de baza
k
peste
mult imea /. Notam T
k
mult imea distribut iilor componentelor sale. Vom construi un sistem
cu structura de acces peste mult imea /. Mult imea distribut iilor componentelor sale este
generata dupa regula: daca arbitrul D doreste sa mpart a cheia K (n cazul 1 k n), el va
genera aleator o distribut ie de componente f
k
T
k
K
si va distribui efectiv aceste componente
participant ilor din T
k
.
Se veric a usor ca acest sistem este perfect. Sa determinam rata sa de informat ie. Vom
avea card(S(P
i
)) = [card(/)]
R
i
pentru orice i (1 i w). Deci
i
= 1/R
i
si
=
1
maxR
i
[ 1 i w
,
ceea ce incheie demonstrat ia. 2
O generalizare a acestui rezultat pentru s / - descompuneri ideale se bazeaza pe teorema
5.6. CONSTRUCT IA PRIN DESCOMPUNERE 67
Teorema 5.8 (Construct ia prin descompunere): Fie o structura de acces 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 T
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
T
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
).
Demonstrat ie: Pentru 1 j s si 1 k n se poate construi un sistem ideal cu baza
j,k
si
mult imea de chei /. Vom nota T
j,k
mult imea corespunzatoare de distribut ii a componentelor.
Vom construi un sistem cu structura de acces si mult imea de chei /
s
. Mult imea sa de
distribut ii de componente T se genereaza astfel: daca arbitrul D doreste sa mpart a cheia
K = (K
1
, . . . , K
s
) (pentru 1 k n), el va genera aleator o distribut ie de componente
f
j,k
T
j,k
K
j
, pe care le distribuie efectiv participant ilor din T
j,k
.

In continuare se repeta demonstrat ia Teoremei 5.7. 2


Exemplul 5.11 Sa consideram structura de acces 5 din Tabelul 5.1, 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 5.8 cu s = 2, vom
obt ine o rata de informat ie maxima = 2/3.
Luand ca baza Teorema 5.6, 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 5.12 Fie structura de acces 8 din Tabelul 5.1. Vom considera /= 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 5.8 cu s = 2 se va obt ine = 2/3. Similar exemplului precedent, o construct ie
efectiva se realizeaza astfel:
68 PRELEGEREA 5. SISTEME DE PARTAJARE A SECRETELOR
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
).
Prelegerea 6
Sisteme electronice de plata
6.1 Proprietat i de baza ale sistemelor electronice de plata
Sistemele electronice de plata realizeaza tranzact ii nanciare prin intermediul informat iei trans-
misa prin canale de telecomunicat ie.

In prezent sistemele de plata electronice exista n mai
multe forme, printre care: cecuri digitale (digital checks), carti de credit (credit cards), bani
electronici (electronic cash).

In aceasta prelegere vom trata sistemele de plata care utilizeaza monezile electronice si sunt
denite prin anumite proprietat i criptograce. Utilizand acest tip de sisteme, vom incerca
realizarea unui model care va imita sistemul bancar clasic de emitere a numerarului, cu singura
diferent a ca totul este realizat digital.
T. Okamoto si K. Ohta au propus n 1991 sase proprietat i fundamentale ale unui sistem
digital de plata:
1. Securitatea:
Protocolul de tranzact ie trebuie sa asigure un nivel de securitate ridicat, utilizand tehnici
criptograce. Vor prevenite atacuri care ncearc a sa modice sau sa reproduca informa-
t ia transmisa.
2. Anonimitatea:
Aceasta tras atura permite utilizatorului sa ram ana anonim n timpul desfasurarii proto-
colului de tranzact ie.
3. Portabilitatea:
Securitatea si folosirea sistemului digital nu trebuie sa e dependente de caracteristicile
zice ale calculatoarelor folosite.

In plus, informat ia va putea transferata prin orice
ret ea de calculatoare, fara sa existe o ret ea speciala care sa aiba drepturi separate.
4. Transferul n ambele sensuri:
Monezile digitale se pot transfera ntre utilizatori, fara ca acest transfer sa e realizat
printr-o banca.
5. Capacitatea de a realiza tranzact ii o-line:
69
70 PRELEGEREA 6. SISTEME ELECTRONICE DE PLAT

A
Protocolul de tranzact ie ntre doua parti trebuie sa se desfasoare n orice moment, fara
autenticarea unei a treia part i si far a ca utilizatorii sa e conectat i obligatoriu la o
institut ie nanciara de control.
6. Divizibilitatea:
O moneda electronica obt inuta de utilizator din contul sau poate mp art ita n monezi
de valori mai mici, cu scopul de a folosite (separat sau nu) la diferite tranzact ii.
Scenariul sistemului de plata electronic presupune 3 tipuri de participant i:
Un utilizator (sau client) pe care-l vom nota de obicei U.
Un comerciant (sau magazin) care va accepta banii electronici ai clientului, furnizand n
schimb anumite bunuri. Acesta se va nota S.
O institut ie nanciara (sau banca, notata B) unde atat clientul, cat si comerciantul au
conturi deschise. Este posibil sa e o ret ea de banci care comunic a si realizeaza tranzact ii
ntre ele, dar noi vom considera pentru simplicare existent a unei singure banci.
6.2 Securitatea plat ilor electronice
Pentru securitatea unui sistem electronic de plata mai sunt necesare cateva proprietat supli-
mentare:
Intimitatea (Privacy) sau protect ia mpotriva interceptarii mesajelor
Autenticarea utilizatorului: ecare dintre cele doua part i implicate ntr-un protocol
trebuie sa e sigura de identitatea celeilalte part i.
Integritatea mesajului: destinatarul trebuie sa verice daca mesajul primit a fost (sau
nu) modicat n tranzit.
Imposibilitatea negarii (Non-repudiation): cel care a trimis un mesaj nu va putea sa
nege mai tarziu acest lucru.
David Chaum, init iatorul sistemelor electronice de plata, deneste nca doua trasaturi de
baza ale acestora:
Imposibilitatea bancii de a urmai utilizatorul dupa protocolul de extragere a monezilor
electronice n cazul n care acesta este onest (adica va utiliza monezile o singura data).
Vom vedea ulterior ca pentru un sistem de ncredere se impune ca banca sa aiba posibili-
tatea de a-l identica pe cel care comite o frauda (ncearc a sa foloseasca acceasi moneda de
mai multe ori). Mai mult decat atat, s-au elaborat sisteme (toate folosind o component a
hardware de tip card, chip sau micro-procesor) care previn frauda.
Daca se respecta aceasta condit ie, sistemul se va numi fara urmarire (un-traceable).
6.2. SECURITATEA PL

AT ILOR ELECTRONICE 71
Imposibilitatea de a deduce identitatea utilizatorului, daca se urmaresc mai multe monezi
folosite de acesta; altfel spus nu se poate realiza o legatura ntre monezile folosite n
tranzact ii diferite pentru a obt ine informat ii suplimentare.

In acest caz, sistemul se va numi fara legaturi (un-linkable).


De remarcat ca sistemul de plata folosind cart i de credit nu dispune de aceste ultime doua
proprietat i; de aceea David Chaummpreun a cu alt i cercetatori au propus sistemul de plata cu
monezi electronice, care va oferi utilizatorilor lor aceste doua garant ii suplimentare.

Intr-un protocol de tranzact ie al unui astfel de sistem, succesiunea evenimentelor este


urmatoarea:
1. Protocolul de extragere al monezilor (withdrawal protocol);
Utilizatorul va extrage monezi de o anumit a valoare din contul sau din banca si le va
stoca ntr-o component a hard (harddisk sau card).
2. Protocolul de plata (payment protocol);
Utilizatorul va transfera bani digitali comerciantului (sau magazinului) de la care a
cumparat bunuri.
3. Protocolul de depozit (deposit protocol);
Comerciantul va transfera banii primit i n contul sau din banca, apoi va livra clientului
bunurile platite.
Aceste protocoale se pot implementa n doua moduri:
on-line: Comerciantul ia legatura cu banca si veric a validitatea monezii trimisa de
client, nainte de a-i livra acestuia bunurile.
Acesta este modul care se utilizeaza n prezent de catre tranzact iile cu carti de credit.
o-line: Comerciantul accepta monezile clientului dupa un protocol de vericare cu
acesta, far a a face apel la banca. Protocolul de depozit la banca se va desfasura periodic
(de exemplu la sfarsitul sapt amanii).
La sistemele de tip on-line, protocoalele de plata si de depozit nu sunt practic separate.
Cel mai mare dezavantaj al acestor sisteme si unul din motivele pentru care nu se folosesc
la operat iile cu sume mici este faptul ca la ecare tranzact ie trebuie apelata banca. Cum
num arul utilizatorilor de Internet si de sisteme electronice comerciale creste accelerat, aceasta
devine o problema dicila de comunicare.
Tipul de frauda cel mai frecvent nt alnit consta n utilizarea unei monezi de mai multe ori
(double-spending sau multiple-spending). Pentru a se proteja mpotriva acestei fraude, banca va
ment ine o baza de date cu toate monezile electronice folosite. Executand protocolul de depozit,
banca va cauta moneda primitan baza de date si daca se aa deja acolo o va respinge. Daca
plata se face on-line se va preveni utilizarea unei aceleiasi monezi de mai multe ori. Daca
se foloseste sistemul o-line, se deneste un mecanism suplimentar prin care banca va putea
identica utilizatorul care a comis frauda. Dezavantajul la sistemele o-line este intervalul
de timp dupa care se face identicarea, timp n care utilizatorul necinstit poate sa dispara. De
aceea sistemele o-line nu sunt recomandate pentru sume mari de bani.
Pentru realizarea sistemelor care dispun de proprietat ile enunt ate, se foloseste criptograa
cu cheie publica.
72 PRELEGEREA 6. SISTEME ELECTRONICE DE PLAT

A
6.3 Protocoale de semnatura blind
Introdus de Chaum n 1983, protocolul de semnatur a blind (blind signature protocol) este
extrem de util n crearea sistemelor de plat i electronice.
Pentru usurint a exprimarii vom nota cu B partea care semneaza un mesaj, si cu U partea
care primeste semnatura.
Denit ia 6.1 Un protocol de semnatura (P, A, K, S, V) se numeste protocol de semnatura
blind daca x P (x complet necunoscut lui B) U poate sa obt ina de la B un mesaj semnat
valid (x, sig
K
(x)).
Exemplul 6.1 Protocolul de semnatura blind RSA.
Fie p, q, n denite ca la sistemul cu cheie publica RSA. Vom avea
P = A = Z
n
, K={(n, p, q, a, b), n = pq, ab 1 (mod (n))}.
Fie x mesajul care trebuie semnat. Pasii protocolului blind sunt urmatorii:
1. U alege aleator un numar r Z
n
si trimite lui B numarul x

= r
b
x (mod n).
2. B semneaza mesajul x

: y

= sig
K
(x

) = sig
K
(r
b
x) = (r
b
x)
a
(mod n) rx
a
(mod n) si
trimite y

lui B.
3. U mparte y

la r si obt ine y = y

r
1
= x
a
(mod n).
La sfarsitul protocolului, U obt ine (x, y = sig
K
(x)): un mesaj semnat valid, astfel ncat B nu
cunoaste x.
Observam ca funct iile sig
K
si ver
K
sunt cele denite n protocolul de semnatura RSA:
sig
K
(x

) = (x

)
a
(mod n)
ver
K
(x

, y

) = T x

= (y

)
b
(mod n).
6.4 Scheme de identicare
O schem a de identicare este un protocol ntre doua part i: P (prover) si V (verier) n care P
demonstreaza cunoasterea cheii sale secrete far a a o revela, iar V la sfarsitul protocolului este
convins de identitatea lui P.
Orice schema de identicare se poate transforma ntr-un protocol de semnatura prin uti-
lizarea unei funct ii de dispersie. Vom prezenta schema de identicare si protocolul de semnatura
denite de Clauss Schnorr, a caror securitate este bazata pe problema logaritmului discret.

In protocoalele lui Schnorr se aleg:


doua numere prime p si q, astfel nc at q|p 1,
un parametru t
un generator g Z
p
asfel ncat g
q
1 (mod p).
6.4. SCHEME DE IDENTIFICARE 73
Pentru securitate se recomanda ca q sa aiba n reprezentarea binara minim 150 bit i, p minim
512 bit i, iar parametrul t n jur de 72 bit i.
Numerele (p, q, g) vor facute publice.
Pentru a genera o pereche (cheie publica, cheie privata), un utilizator P alege aleator un
num ar s < q si calculeaza v = g
s
(mod p). s va cheia sa privat a, iar v cheia sa publica.
Protocolul de Autenticare:
Presupunand ca P vrea sa i demonstreze identitatea sa lui V, cei doi parcurg urmatorul
protocol:
Protocolul de autenticare Schnorr:
1. P alege aleator un num ar r (0 < r < q), calculeaza b = g
r
(mod p) pe care-l trimite
lui V.
2. V trimite lui P un numar aleator x, x (0, 2
t
1), numit provocare.
3. P calculeaza y = r + sx (mod q) si i raspunde lui V cu y.
4. V verica relat ia b = g
y
v
x
(mod p) si accepta autenticarea lui P daca ea este
ndeplinit a.
Protocolul se numeste de tip provocare - raspuns.
Daca P urmeaza acest protocol pas cu pas, atunci:
g
y
v
x
g
r+sx
g
sx
g
r
b (mod p),
deci relat ia de la pasul 4 este vericat a si P este autenticat.
Ideea acestui protocol consta n construct ia de catre P a unei drepte d : y = r + sx de
pant a secreta s. P i va demonstra lui V cunoasterea dreptei d, raspunzand la o provocare x
cu punctul y corespunzator de pe dreapta. Veric and relat ia de la pasul 4, V este convins ca
P cunoaste panta secreta a dreptei, fara a o putea calcula si el.
De ecare data cand init iaz a acest protocol, P trebuie sa aleaga o noua valoare pentru r.
Altfel, V se va aa n posesia a doua puncte ale dreptei, determinand astfel panta dreptei
care este chiar cheia secreta s a lui P. Vom demonstra acest lucru:
Propozit ia 6.1 Executand de doua ori protocolul de autenticare Schnorr cu acelasi numar r
ales la pasul 1, n nal V va n posesia cheii secrete s a lui P.
Demonstrat ie: Dupa pasul 1, V cunoaste b = g
r
(mod p).
Fie x
1
, x
2
cele doua provocari diferite trimise de V n cele doua execut ii ale protocolului
Schnorr; (0 x
1
, x
2
2
t
1).

In nal V va cunoaste:

y
1
= r + sx
1
(mod q)
y
2
= r + sx
2
(mod q)
Rezolvand acest sistem, se obt ine
y
1
y
2
= s(x
1
x
2
) (mod q) s = (y
1
y
2
)(x
1
x
2
)
1
(mod q). 2
Protocolul de semnatura:
Sa arat am cum poate transformat protocolul de autenticare Schnorr ntr-un protocol de
semnatur a digitala.
74 PRELEGEREA 6. SISTEME ELECTRONICE DE PLAT

A
Introducem o funct ie de dispersie H far a coliziuni tari. Presupunem ca U doreste sa obt ina
de la B o semnatur a asupra unui mesaj m. Similar protocolului de autenticare Schnorr, B va
avea cheia publica v si cheia sa secreta s.
Protocolul de semnatura Schnorr
1. B alege un numar aleator r (0 < r < q) si calculeaza b = g
r
(mod p).
2. B concateneaza m cu b si formeaza x = H(m b).
3. B calculeaza y = r + sx (mod q) si trimite lui U perechea (x, y).
4. U calculeaza b

= g
y
v
x
(mod p) si x

= H(m b

).
Daca x = x

, atunci U accepta (x, y) ca o semnatura valid a pentru m.


Observam ca pentru a transforma protocolul de autenticare Schnorr ntr-un protocol de
semnatur a este sucient sa nlocuim provocarea cu dispersia asupra documentului care tre-
buie semnat. Ideea poate folosita la toate protocoalele de autenticare de tip provocare /
raspuns.
Formal, protocolul de semnatur a Schnorr este denit astfel:
P = A = Z
p
, K={(p, q, g, s, v, r)|v = g
s
(mod p), p|q 1}.
Daca K = (p, q, g, s, v, r) K, cheia (p, q, g, v) este publica, iar cheia (s, r) este secreta.
Pentru K = (p, q, g, s, v, r) K, x P, y A,
sig
K
(x) = r + sx (mod q)
ver
K
(x, y) = T x = H(m g
y
v
x
) (mod p).
Daca B urmeaza protocolul de semnatur a Schnorr, atunci:
b

= g
y
v
x
g
r+sx
g
sx
g
r
b (mod p) x

= H(m b

) = H(m b) = x,
deci relat ia de la pasul 4 este vericat a si U accepta semnatura lui B drept valid a.
Observam ca determinarea cheii secrete s din cheia publica v, cunoscand g, este echivalent a
din punct de vedere al complexitat ii cu rezolvarea problemei logaritmilor discret i.
6.5 Problema reprezentarii n grupuri

In aceasta sect iune vom discuta despre problema reprezent arii n grupuri, problema care sta
la baza construct iei unui sistem de plata electronic. Vom demonstra, de asemenea, echivalenta
acestei probleme din punct de vedere al complexitat ii cu problema logaritmilor discret i.
6.5.1 Denirea problemei reprezentarii
Denit ia 6.2 Fie k 2 numar natural si q un numar prim. Un tuplu generator de lungime
k pentru grupul Z
q
este un k-tuplu (g
1
, . . . , g
k
) astfel ncat g
i
Z
q
\{1}, i {1, 2, . . . , n} si
g
i
= g
j
, i = j.
Pentru orice h Z
q
, (a
1
, . . . , a
k
) este o reprezentare a lui h n raport cu tuplul generator
(g
1
, . . . , g
k
) daca
k

i=1
g
a
i
i
= h (mod q).
6.5. PROBLEMA REPREZENT

ARII

IN GRUPURI 75
Propozit ia 6.2 Fie k 2 un numar natural si q un numar prim. Pentru orice h Z
q
si orice
(g
1
, . . . , g
k
) tuplu generator, exista exact q
k1
reprezentari ale lui h n raport cu (g
1
, . . . , g
k
).
Demonstratie: Cum q este prim, orice element din Z
q
este primitiv, deci generator al grupului
multiplicativ Z
q
\ {1}.
Alegem primele k 1 elemente ale unui k-tuplu (a
1
, . . . , a
k
) aleator in q
k1
moduri si din
relat ia
k

i=1
g
a
i
i
= h (mod q) determinam g
a
k
k
= h(
k1

i=1
g
a
i
i
)
1
(mod q) deci
a
k
= log
g
k
h(

k1
i=1
g
a
i
i
)
1
(mod q).
Logaritmul are sens, deoarece din denit ia tuplului generator, g
k
= 1.
Din problema logaritmilor discret i, a
k
este unic determinat, deci exista exact q
k1
reprezen-
tari ale lui h n raport cu (g
1
, . . . , g
k
). 2
Acest rezultat relativ simplu arata ca xand h si un tuplu generator (g
1
, . . . , g
k
), printr-o
cautare exhaustiva n mult imea k-tuplurilor peste Z
q
, probabilitatea de a obt ine o reprezentare
a lui h n raport cu (g
1
, . . . , g
k
) este
q
k1
q
k
=
1
q
.
Astfel, suntemn masura sa enunt am problema reprezentarii n grupuri cu cardinalul numar
prim.
Problema reprezentarii:
Fie q un num ar prim, k 2 un num ar natural, (g
1
, . . . , g
k
) un tuplu generator si h Z
q
.
Sa se gaseasca o reprezentare a lui h n raport cu (g
1
, . . . , g
k
) n Z
q
, n cazul n care aceasta
exista.
Observam ca pentru k = 1 se obt ine problema logaritmilor discret i; de aceea am considerat
n denit ie k 2 pentru a face distinct ie intre cele doua probleme.
6.5.2 Echivalent a problemei reprezentarii cu problema logaritmilor
discret i
Sa reamintim cateva denit ii relative la algoritmii probabilisti.
Denit ia 6.3 Un algoritm probabilist este un algoritm care foloseste numere aleatoare.
Probabilitatea de succes a unui algoritm probabilist este probabilitatea ca acesta sa ofere un
raspuns corect.
Fie 0 < 1. Un algoritm tip Las-Vegas este un algoritm probabilist care pentru orice
aparit ie a unei probleme, poate oferi un raspuns ntotdeauna corect, sau poate esua si sa nu dea
nici un raspuns cu probabilitatea . Probabilitatea de succes pentru un algoritm Las-Vegas este
1 .
Observat ia 6.1 Daca construim un algoritm Las-Vegas pentru rezolvarea unei probleme, pu-
tem sa l apelam de un numar mediu de
1
1
ori pentru a obt ine raspuns, care este ntotdeauna
corect.
Teorema 6.1 Fie q un numar prim mare. Urmatoarele armat ii sunt echivalente:
76 PRELEGEREA 6. SISTEME ELECTRONICE DE PLAT

A
1. Exista 0 < P
1
1 si un algoritm probabilist polinomial n timp A
1
care avand la intrare
un tuplu generator de lungime k si un element h Z
q
calculeaza o reprezentare a lui h
cu probabilitatea de succes cel put in P
1
.
2. Exista 0 < P
2
1 si un algoritm probabilist polinomial n timp A
2
care avand la
intrare un tuplu generator de lungime k calculeaza o reprezentare netriviala a lui 1 cu
probabilitatea de succes cel put in P
2
.
3. Exista 0 < P
3
1, h Z
q
si un algoritm probabilist polinomial n timp A
3
care
avand la intrare un tuplu generator de lungime k calculeaza o reprezentare a lui h cu
probabilitatea de succes cel put in P
3
.
4. Exista 0 < P
4
1 si un algoritm probabilist polinomial n timp A
4
care rezolva prob-
lema logaritmilor discret i (avand la intrare g Z
q
\ {1} si h Z
q
, calculeaza log
g
h) cu
probabilitatea de succes cel put in P
4
.
Demonstratie: Vom demonstra implicat iile:
(1) = (2), (1) = (3), (4) = (1), (1) = (4), (2) = (4), (3) = (4).
(1) = (2);
Presupunand existent a algoritmului A
1
si a lui P
1
, e (g
1
, . . . , g
k
) intrarea n algoritmul
A
2
. Se introduc n A
1
tuplul generator (g
1
, . . . , g
k
) si h = 1. Dupa executarea lui A
1
,
suntem n posesia unei reprezent ari a lui 1 n raport cu (g
1
, . . . , g
k
) cu probabilitatea de
succes P
2
= P
1
.
(1) = (3);
Alegem un element arbitrar h Z
q
\ {1} si tuplul generator (g
1
, . . . , g
k
), intrare pentru
A
3
. Se executa A
1
care calculeaza o reprezentare a lui h cu probabilitatea de succes P
1
.
Atunci exista P
3
= P
1
.
(4) = (1);
Exista algoritmul A
4
si probabilitatea 0 < P
4
1. Construim algoritmul A
1
care primeste
la intrare tuplul generator (g
1
, . . . , g
k
) si h Z
q
.
1. for i = 1, 2, . . . , k 1 do
(a) Se genereaza aleator h
i
Z

q
;
(b) Se introduc g
i
, h
i
n A
4
care calculeaza a
i
.
(c) if g
a
i
i
= h
i
(mod q) then STOP (esec).
2. Se calculeaza a
k
= log
g
k
(h
k1

i=1
h
1
i
) (mod q);
3. STOP cu succes si raspuns (a
1
, . . . , a
k
).
Corectitudine: Algoritmul asfel construit este de tip Las-Vegas cu probabilitatea de succes
P
1
=
P
4
k 1
.
6.5. PROBLEMA REPREZENT

ARII

IN GRUPURI 77

In cazul n care A
1
se termina cu succes, la pasul 2 avem g
a
i
i
= h
i
(mod q), i
{1, . . . , k 1} (deci a
i
= log
g
i
h
i
(mod q), i {1, . . . , k 1}).
a
k
= log
g
k
(h
k1

i=1
h
1
i
) (mod q) g
a
k
k
= h
k1

i=1
h
1
i
(mod q)
k1

i=1
h
i
g
a
k
k
=
h (mod q)
k

i=1
g
a
i
i
= h (mod q) (a
1
, . . . , a
k
) este o reprezentare a lui h.
Algoritmul se repeta de un numar mediu de
1
P
4
ori pentru ecare i {1, . . . , k 1}
pentru ca n pasul (b) sa obt inem a
i
= log
g
i
h
i
(mod q). Deci, algoritmul trebuie rulat
de un num ar mediu de (k 1)
1
P
4
ori, ceea ce nseamn a ca probabilitatea de succes a
algoritmului A
1
este P
1
=
P
4
k 1
.
(1) = (4);
Exista algoritmul A
1
si probabilitatea 0 < P
1
1. Construim algoritmul A
4
care primeste
la intrare g Z
q
\ {1} si h Z
q
.
1. Se genereaza aleator un k-tuplu (u
1
, . . . , u
k
) Z
k
q
; se calculeaza g
i
= g
u
i
, 1 i k.
2. Se ruleaza algoritmul A
1
cu intrarea (g
1
, . . . , g
k
) si h.
3. Fie (a
1
, . . . , a
k
) iesirea lui A
1
;
if (a
1
, . . . , a
k
) nu e o reprezentare a lui h (h =
k

i=1
g
a
i
i
(mod q)) then STOP (esec).
4. Se calculeaza log
g
h =
k

i=1
a
i
u
i
(mod q). STOP (succes).
Corectitudine: Algoritmul astfel construit este de tip Las-Vegas cu probabilitate de succes
P
4
= P
1
.

In cazul n care algoritmul de mai sus se terimina cu succes, avem:


h =
k

i=1
g
a
i
i
=
k

i=1
g
a
i
u
i
(mod q) = log
g
h =
k

i=1
a
i
u
i
(mod q).
Algoritmul se repeta de un numar mediu de
1
P
1
ori pentru a obt ine o reprezentare corecta
a lui h n pasul 3. Deci probabilitatea de succes a algoritmului A
4
este P
4
= P
1
.
(2) = (4);
Exista algoritmul A
2
si probabilitatea 0 < P
2
1. Construim algoritmul A
4
care primeste
la intrare g Z
q
\ {1} si h Z
q
.
78 PRELEGEREA 6. SISTEME ELECTRONICE DE PLAT

A
1. Se genereaza aleator un k-tuplu (u
1
, . . . , u
k
) Z
k
q
; se calculeaza g
1
=
h
u
1
(mod q), g
i
= g
u
i
(mod q), 2 i k 1.
2. Se genereaza aleator o permutare S
k
si se ruleaza algoritmul A
2
cu intrarea
(g
(1)
, . . . , g
(k)
).
3. Fie (a
1
, . . . , a
k
) iesirea lui A
2
.
if [(a
1
, . . . , a
k
) nu e o reprezentare a lui 1 (
k

i=1
g
a
i
(i)
= 1 (mod q))] or [a

1
(1)
= 0]
then STOP (esec).
4. Se calculeaza log
g
h = (u
1
a

1
(1)
)
1
k

i=2
u
i
a

1
(i)
(mod q); STOP (succes).
Corectitudine: Algoritmul asfel construit este de tip Las-Vegas cu probabilitate de succes
P
4
=
2P
2
k
.
Daca algoritmul se termina cu succes, atunci (a
1
, . . . , a
k
) este o reprezentare a lui 1 n
raport cu (g
(1)
, . . . , g
(k)
), ceea ce este echivalent cu:
k

i=1
g
a
i
(i)
= 1 (mod q) g
a

1
(1)
1
k

i=2
g
a

1
(i)
i
= g
0
(mod q)
h
u
1
a

1
(1)
k

i=2
g
u
i
a

1
(i)
= g
0
(mod q) si logaritmand, relat ia este echivalent a cu:
u
1
a

1
(1)
log
g
h +
k

i=2
u
i
a

1
(i)
= 0 (mod q)
de unde se obt ine formula din pasul 4 pentru log
g
h.
De remarcat ca la pasul 4, a

1
(1)
= 0, ceea ce asigura existent a inversului (u
1
a
1(1)
)
1
n Z
q
.
Algoritmul se repeta de un numar mediu de
1
P
2
ori pan a se obt ine la pasul 3 o reprezentare
(a
1
, . . . , a
k
) a lui 1.
Pentru ecare reprezentare (a
1
, . . . , a
k
) a lui 1, n cazul cel mai defavorabil k 2 com-
ponente ale k-tuplului (a
1
, . . . , a
k
) sunt nule (cum
k

i=1
g
a
i
(i)
= 1 (mod q), daca ar nule
k 1 componente, ar rezulta a
i
= 0 i = 1, 2, . . . , k, deci A
2
ar calcula o reprezentare
triviala a lui 1, contradict ie cu ipoteza (2)). Rezulta ca avem cu o probabilitate cel put in
2
k
, a

1
(1)
= 0.
Atunci algoritmul se va repeta de cel mult
1
P
2
k
2
ori, probabilitatea de succes ind cel
put in P
4
=
2P
2
k
.
(3) = (4);
6.5. PROBLEMA REPREZENT

ARII

IN GRUPURI 79
Exista h

Z
q
si algoritmul A
3
care avand la intrare un tuplu generator de lungime k
determina o reprezentare a lui h

cu probabilitatea de succes P
3
. Construim algoritmul
A
4
care primeste la intrare g Z
q
\ {1} si h Z
q
.
1. i = 1.
2. Se genereaza aleator un k-tuplu (u
1
, . . . , u
k
) Z
k
q
;
se calculeaza g
i1
= h
u
i1
, g
ij
= g
u
ij
(mod q) pentru j = 2, . . . , k.
3. Se genereaza aleator o permutare
i
S
k
;
Se ruleaza algoritmul A
3
cu intrarea (g
i1
, . . . , g
i
i
(k)
).
4. Fie (a
i1
, . . . , a
ik
) iesirea lui A
3
;
if (a
i1
, . . . , aik) nu e o reprezentare a lui h n raport cu (g
i1
, . . . , g
ik
) then STOP
(esec).
5. i = i + 1 goto 1.
6. if u
21
a
2
1
2
(1)
= u
11
a
1
1
1
(1)
(mod q) then STOP (esec).
7. Se calculeaza
log
g
h = (u
21
a
2
1
2
(1)
u
11
a
1
1
1
(1))
1
(
k

j=2
u
1j
a
1
1
1
(j)

k

j=2
u
2j
a
2
1
2
(j)
) (mod q).
Corectitudine: Algoritmul asfel construit este de tip Las-Vegas cu probabilitatea de succes
P
4
=
P
2
3
k
.
Daca algoritmul se termina cu succes, atunci (a
11
, . . . , a
1k
) si (a
21
, . . . , a
2k
) sunt reprezen-
tari ale lui h

n raport cu (g
1
1
(1)
, . . . , g
1
1
(k)
), respectiv (g
2
1
(1)
, . . . , g
2
1
(k)
) ceea ce este
echivalent cu
h

=
k

j=1
g
a
1j
1
1
(j)
=
k

j=1
g
a
2j
2
2
(j)
(mod q) = g
11
a
1
1
1
(1)
k

j=2
g
a
1
1
1
(j)
1j
= g
21
a
2
1
2
(1)
k

j=2
g
a
2
1
2
(j)
2j
(mod q) h
u
11
a
1
1
1
(1)
k

j=2
g
u
1j
a
1
1
1
(j)
= h
u
21
a
2
1
2
(1)
k

j=2
g
u
2j
a
2
1
2
(j)
(mod q)
si logaritmand n baza g, rezulta:
u
11
a
1
1
1
(1)
log
g
h +
k

j=2
u
1j
a
1
1
1
(j)
= u
21
a
2
1
2
(1)
log
g
h +
k

j=2
u
2j
a
2
1
2
(j)
(mod q)
de unde se obt ine formula din pasul 7 pentru log
g
h.
De remarcat ca la pasul 7, u
11
a
1
1
1
(1)
= u
21
a
1
1
2
(1)
, ceea ce asigura existent a inversului
(u
11
a
1
1
1
(1)
u
21
a
1
1
2
(1)
)
1
n Z
q
.
Pentru i = 1 algoritmul se repeta de un num ar mediu de
1
P
3
ori pentru a obt ine o
reprezentare (a
11
, . . . , a
1k
) a lui h

.
Pentru i = 2 algoritmul se repeta n cazul cel mai defavorabil de un num ar de k
1
P
3
ori,
deoarece trebuie repetat pasul 6 de cel mult k ori.
80 PRELEGEREA 6. SISTEME ELECTRONICE DE PLAT

A
Astfel, algoritmul se repeta de cel mult
1
P
3
k
P
3
=
k
P
2
3
ori pana se obt ine raspunsul succes.
Deci probabilitatea de succes este cel put in
P
2
3
k
Cu aceasta echivalent a celor doua probleme din punct de vedere al complexitat ii este complet
demonstrata. Deoarece problema logaritmilor discret i este NP - completa n Z
q
pentru valori
mari ale lui q prim, va rezulta ca si problema reprezentarii n Z
q
este NP-completa.
Corolarul 6.1 Alegang q prim asfel ncat problema logaritmilor discret i este NP-completa, nu
exista un algoritm polinomial n timp care, avand la intrare un tuplu generator (g
1
, . . . , g
k
)
scoate la iesire un numar h Z
q
si doua reprezentari diferite ale lui h n raport cu (g
1
, . . . , g
k
)
cu o probabilitate ne-neglijabila.
Demonstrat ie:
Presupunem, prin reducere la absurd, existent a unui astfel de algoritm A. Construim
urmatorul algoritm:
1. Fie (g
1
, . . . , g
k
) un tuplu generator. Se ruleaza algoritmul A cu intrarea (g
1
, . . . , g
k
).
Se primesc ca raspuns h si doua reprezent ari ale acestuia (a
1
, . . . , a
k
) si (b
1
, . . . , b
k
)
n raport cu (g
1
, . . . , g
k
).
2. Raspuns la iesire: (a
1
b
1
(mod q), . . . , a
k
b
k
(mod q)).
Evident:
k

i=1
g
a
i
b
i
i
= 1 (mod q), deci (a
1
b
1
(mod q), . . . , a
k
b
k
(mod q)) este o reprezentare
a lui 1 n raport cu (g
1
, . . . , g
k
).
Am construit astfel algoritmul A
2
, polinomial n timp din teorema 6.1, ceea ce contrazice
presupunerea de NP-completitudine a problemei logaritmilor discret i.
Corolarul 6.2 Funct ia f : Z
k
q
= Z
q
denitia f(a
1
, . . . , a
k
) =
k

i=1
g
a
i
i
este o funct ie de dispersie
fara coliziuni tari.
Demonstrat ie:
Din Corolarul 6.1, este calculabil dicil sa se obt in a un num ar h Z
q
si doua reprezent ari
diferite ale acestuia (a
1
, . . . , a
k
) si (b
1
, . . . , b
k
) n raport cu (g
1
, . . . , g
k
). Rezulta ca este calculabil
dicil sa obt inem x = (a
1
, . . . , a
k
) Z
k
q
si x
1
= (b
1
, . . . , b
k
) Z
k
q
asfel nc at f(x) = f(x
1
); adica
f este far a coliziuni tari.
Aceasta funct ie de dispersie nu e sucient de rapida pentru aplicat ii practice, dar constituie
un model teoretic sugestiv.
6.5.3 Demonstrarea cunoasterii unei reprezentari
Fie p si q doua numere prime mari, cu proprietatea q|p 1.
Presupunem ca un utilizator P (Prover) cunoaste o reprezentare (a
1
, . . . , a
k
) Z
k
q
a unui
num ar h Z
q
n raport cu tuplul generator (g
1
, . . . , g
k
) Z
k
q
. P doreste sa i demonstreze lui
V (Verier) acest lucru, fara a-i revela reprezentarea sa secreta (a
1
, . . . , a
k
).
6.5. PROBLEMA REPREZENT

ARII

IN GRUPURI 81
Construim un protocol de tip provocare-raspuns care i permite lui P demonstrarea
cunoasterii reprezentarii (a
1
, . . . , a
k
).
1. P genereaza aleator k numere w
1
, . . . , w
k
Z
q
si trimite lui V numarul z =
k

i=1
g
w
i
i
(mod q).
2. V genereaza o provocare c Z
q
si o trimite lui P.
3. P calculeaza raspunsul r
i
= w
i
+ ca
i
(mod q), pentru i = 1, . . . , k, si trimite
(r
1
, . . . , r
k
) lui V.
4. V accepta daca si numai daca zh
c
=
k

i=1
g
r
i
i
(mod q).
Teorema 6.2
1. (Completitudinea) Daca P este n posesia reprezentarii (a
1
, . . . , a
k
) a lui h n raport
cu (g
1
, . . . , g
k
) si urmeaza protocolul pas cu pas, atunci V accepta n pasul 4.
2. (Consistent a) Daca P nu cunoaste o reprezentare a lui hn raport cu (g
1
, . . . , g
k
), atunci
nu exista o strategie pentru el astfel ncat V sa accepte cu o probabilitate ne-neglijabila.
3. (Ascunderea informat iei) Chiar daca V ar dispune de o putere de calcul nelimitata,
executand protocolul pas cu pas, nu va reusi sa ae n nal reprezentarea cunoscuta de P
cu o probabilitate ne-neglijabila.
Demonstrat ie:
1. Presupunand ca protocolul este executat corect de ambele part i, la pasul 4 avem:
zh
c
=
k

i=1
g
w
i
i
h
c
=
k

i=1
g
w
i
i
(
k

i=1
g
a
i
i
)
c
=
k

i=1
g
w
i
+a
i
c
i
=
k

i=1
g
r
i
i
(mod q), deci V accepta la pasul
4.
2. P nu cunoaste o reprezentare a lui h n raport cu (g
1
, . . . , g
k
), deci nu poate sa respecte
protocolul la pasul 3.
Distingem doua situat ii:
P urmeaza protocolul n pasul 1, deci P alege aleator w
1
, . . . , w
k
Z
q
si calculeaza
z =
k

i=1
g
w
i
i
(mod q).
Dupa ce primeste provocarea c a lui V, P trebuie sa determine numerele r
1
, . . . , r
k
care sa verice relat ia din pasul 4:
zh
c
=
k

i=1
g
r
i
i
(mod p) =
k

i=1
g
w
i
i
h
c
=
k

i=1
g
r
i
i
(mod q) =
h
c
=
k

i=1
g
r
i
w
i
i
(mod q) = h =
k

i=1
g
(r
i
w
i
)c
1
i
(mod q).
82 PRELEGEREA 6. SISTEME ELECTRONICE DE PLAT

A
Deci, daca P reuseste sa determine r
1
, . . . , r
k
asfel ncat V sa accepte la pasul 4,
el va cunoaste o reprezentare a lui h n raport cu (g
1
, . . . , g
k
) si anume: ((r
1

w
1
)c
1
, . . . , (r
k
w
k
)c
1
), ceea ce contrazice ipoteza.
P nu urmeaza protocolul din pasul 1, deci P alege un num ar z pentru care nu
cunoaste o reprezentare n raport cu (g
1
, . . . , g
k
).

In pasul 3, P trebuie sa determine numerele r


1
, . . . , r
k
astfel nc at zh
c
=
k

i=1
g
r
i
i
(mod q), problema echivalent a cu determinarea unei reprezentari a lui zh
c
n raport
cu (g
1
, . . . , g
k
). Cum problema reprezent arii este NP-completa pentru p, q convenabil
alese si protocolul se desfasoara n timp real, nici n acest caz P nu are o strategie
cu o probabilitate de succes ne-neglijabila pentru a-l convinge pe V sa accepte.
3. La sfarsitul protocolului V este n posesia urmatoarelor informat ii: z, c, r
1
, . . . , r
k
.
Avem r
i
= w
i
+ ca
i
(mod q) a
i
= c
1
(r
i
w
i
) (mod q), deci problema deter-
minarii lui (a
1
, . . . , a
k
) este echivalenta cu problema determinarii lui (w
1
, . . . , w
k
).

In plus
a
1
, . . . , a
k
sunt unic determinate de w
1
, . . . , w
k
.
Singura informat ie pe care V o are despre w
1
, . . . , w
k
este z =
k

i=1
g
w
i
i
(mod q).
Dispunand de o putere de calcul nelimitata, V poate sa determine o reprezentare a lui z
n raport cu (g
1
, . . . , g
k
).
Conform Propozitiei 6.2, exista exact q
k1
reprezentari ale lui z n raport cu (g
1
, . . . , g
k
),
deci probabilitatea ca V sa calculeze exact aceeasi reprezentare (w
1
, . . . , w
k
) este
1
q
k1
,
adica neglijabila.
Prelegerea 7
Sistemul electronic de plata Brands
7.1 O scurta prezentare a sistemelor de plata electronice
o-line
Prima si cea mai simpla schem a a fost denita de Chaum, Fiat si Naor. Prezentam, pe scurt,
ideea acestui protocol.
Fie n, p, q, a, b parametrii sistemului RSA si f o funct ie de dispersie far a coliziuni tari. O
moneda electronica de o valoare xata d este reprezentata sub forma
(x, (f(x))
b
(mod n)
cu x ales aleator. Pentru ecare valoare a unei monezi trebuie folosit un alt exponent de criptare
b si un exponent de decriptare corespunzator a. Identitatea utilizatorului trebuie inclusa n
moneda electronica asfel ncat daca moneda este folosita corect, identitatea nu poate dedusa;
alfel identitatea poate calculata.
Pentru aceasta este folosita o tehnica numit a Cut-and-Choose: cand U doreste sa extraga
o moneda din banca, construieste un mesaj format din k perechi de numere (k este num arul de
candidat i). Aceste numere au proprietatea ca dintr-o pereche se poate calcula identitatea lui U
(de exemplu printr-un simplu XORntre cele doua numere ale perechii), iar av and la dispozit ie
un singur numar din ecare pereche nu se poate deduce nici o informat ie. U concateneaza cei
k candidat i si obt ine o semnatur a blind de la B asupra mesajului trimis cu protocolul de
semnatur a blind RSA.

In momentul n care U doreste sa foloseasca moneda la magazinul S, primeste o provocare


de la S de k bit i aleatori. Pentru ecare bit, U raspunde cu primul num ar al perechii core-
spunzatoare numarului bitului (daca bitul este 0) sau cu al doilea num ar daca bitul este 1.
(De exemplu, daca provocarea este 0110 . . . , U raspunde cu primul num ar din prima pereche, al
doilea numar din a doua pereche, al doilea numar din a treia pereche etc). Cand S depoziteaza
moneda la banca, i trimite lui B provocarea mpreun a cu numerele trimise de U. B pastreaz a
ntr-o baza de date moneda mpreun a cu provocarea si raspunsul lui U.
Daca U ncearca refolosirea monezii, primeste o noua provocare aleatoare de k bit i, care
difera de prima n cel put in un bit cu o probabilitate destul de mare (1
1
2
k
). Astfel pentru
bitul care difera, U va revela ambele numere ale perechii corespunzatoare. Acum banca poate
calcula din cele doua numere identitatea lui U.
83
84 PRELEGEREA 7. SISTEMUL ELECTRONIC DE PLAT

A BRANDS
Desi este conceptual simpla, aceasta schem a nu este ecient a, deoarece ecare moneda tre-
buie nsot it a de 2k numere mari. Modelul Chaum-Fiat-Naor satisface primele patru proprietat i
denite n prelegerea anterioar a.
Okamoto si Ohta au descris un sistem universal de plata care satisface toate cele sase
proprietat i, dar din pacate este inecient din punct de vedere al dimensiunii mesajelor
transmise.

In schimb ei au avut ideea de a introduce proprietatea de divizibilitate a monezilor
electronice. Pentru ecare moneda de valoare d se asociaza un arbore binar etichetat astfel:
nodul rad acina (de nivel 0) are valoarea d, cele doua noduri de pe nivelul 1 au etichetele d/2 si
n general nodurile de pe nivelul k sunt etichetate cu
d
2
k
. Daca d = 2
s
, arborele are s + 1
nivele, cu frunzele av and valoarea minima 1.
Orice suma mai mica decat d poate folosita dupa urmatoarele reguli:
1. Odata ce un nod este folosit, tot i succesorii si predecesorii sai nu vor putea folosit i la o
plata viitoare;
2. Nici un nod nu poate folosit mai mult decat o data.
Aceste doua reguli asigura folosirea unui singur nod pentru orice drum de la rad acin a la o
frunza, ceea ce face imposibila folosirea unei valori mai mari decat valoarea rad acinii d.
Exemplul 7.1 Sa presupunem ca U are o moneda n valoare de 4 unitat i. Se construieste
arborele binar:

a
a
a
a
a
,
,
l
l


Z
Z
4
2 2
1 1 1 1

00

01

000

001

010

011
Pentru a realiza o plata de 3 unitat i, U foloseste
00
si
010
. Singurul nod care poate
utilizat la o plata viitoare este
011
n valoare de o unitate.
Daca cel put in una din cele doua reguli este ncalcat a, atunci exista un drum de la radacina la
o frunza pe care s-au folosit 2 noduri si se va putea determina identitatea lui U.
Mai exact, ecare utilizator U are o valoare secreta s care releva identitatea sa, iar ecare
nod i al arborelui are asignata o valoare secreta t
i
. Se construieste dreapta y = sx + t
i
pentru
ecare nod i. Cand se face o plata utilizand un nod particular n, U va revela t
i
pentru tot i i
predecesori ai lui n. Magazinul S va trimite o provocare x
1
la care U raspunde cu y
1
= sx
1
+t
n
.
Daca acelasi nod n este folosit a doua oara, U primeste nc a o provocare x
2
la care raspunde
cu y
2
= sx
2
+t
n
, deci U a revelat doua puncte (x
1
, y
1
), (x
2
, y
2
) ale dreptei y = sx +t
n
, de unde
se poate calcula s si apoi identitatea lui U.
Daca se folosesc doua noduri n si m de pe acelasi drum de la radacin a la o frunza, pre-
supunem ca n este succesor al lui m. Cand se foloseste nodul n se releva t
m
; apoi daca se
foloseste nodul m U raspunde la provocarea x
1
a lui S cu y
1
= sx
1
+ t
m
.
Deci si n acest caz S poate calcula s si identitatea lui U.
Un alt dezavantaj al acestei scheme ar ca se pot realiza legaturi ntre plat i, adica se poate
deduce daca doua plat i provin din aceeasi moneda si deci, de la aceeasi persoana.
7.2. INIT IALIZAREA SISTEMULUI BRANDS 85
Protocoalele discutate pana acum pot sa detecteze identitatea utilizatorilor necinstit i, far a
nsa a putea preveni utilizarea unei monezi de doua ori. Singurul mod prin care s-ar putea
realiza acest lucru este prin ncorporarea unei componente hardware (chip sau smart card) n
calculatorul utilizatorului, cu rolul de observator al tuturor plat ilor.

In plus, nici un protocol
de plata al utilizatorlui nu poate efectuat fara o informat ie secreta det inut a de observator.
Astfel, observatorul autorizeaza si participa activ la toate tranzact iile.
Totusi, se poate ntampla ca utilizatorul sa reuseasc a printr-o modalitate oarecare sa ae
informat ia secreta a observatorului.

In acest caz sistemul trebuie sa asigure detectarea utiliza-
torului care a comis frauda, la fel ca n primele protocoale discutate.
Cele mai cunoscute si utilizate protocoale de plata o-line cu monezi electronice apart in lui
Stefan Brands. Primul sistem real de tip o-line, numit DigiCash, se bazeaza n totalitate
pe aceste protocoale.
7.2 Init ializarea sistemului Brands
Se cauta doua numere prime mari p si q cu proprietatea q|p 1 (p si q sunt alese la fel ca n
schema de identicare Schnorr) si H o funct ie de dispersie far a coliziuni tari. Se genereaza un
subgrup G
q
de ordin q al lui Z
p
(aici se vor efectua toate calculele din sistem).
Init ializarea sistemului consta n generarea de catre banca a urmatoarelor cinci numere
distincte:
1. g G
q
, x Z

q
; se calculeaza h = g
x
(mod q). Tuplul generator (g, h) G
q
G
q
constituie cheia publica a bancii, iar x Z

q
cheia secreta.
2. Un tuplu generator (g
1
, g
2
) cu g
1
, g
2
G
q
.
3. Un generator d G
q
.
Vom presupune pentru nceput ca exista n sistem monezi de o singura valoare, apoi vom
arata cum se pot introduce monezi de valori diferite.
Securitatea acestei scheme consta n alegerea numerelor g, h, g
1
, g
2
, d astfel nc at nici un
utilizator sa nu poata exprima oricare din aceste numere ca o combinat ie de puteri ale celorlalte.
Acest lucru este din punct de vedere al complexitat ii la fel de dicil ca si gasirea unei reprezentari
netriviale a lui 1 n raport cu (g, h, g
1
, g
2
, d) o problema NP-completa pentru p si q convenabil
alese (prelegerea precedent a).
Cand utilizatorul U si deschide un cont n banca, el genereaza aleator numerele u
1
, u
2
Z

q
si calculeaza I = g
u
1
1
g
u
2
2
(mod p). (u
1
, u
2
) va constitui cheia secreta a lui U, iar I G
q
va
pseudonimul folosit de B pentru identitatea reala a lui U. B stocheaza ntr-o baza de date
identitatea reala a lui U, num arul contului sau si I. Este important ca U sa cunoasca o singura
reprezentare a lui I n raport cu (g
1
, g
2
). Daca U utilizeaza o moneda de doua ori, B poate sa
determine (u
1
, u
2
).
O moneda electronica este reprezentat a sub forma (m, sig
K
(m)) cu anumite restrict ii asupra
lui m, dupa cum vom vedea in continuare.
86 PRELEGEREA 7. SISTEMUL ELECTRONIC DE PLAT

A BRANDS
7.3 Tehnici pentru crearea sistemului
7.3.1 Protocolul de semnatura Chaum - Pedersen
Protocolul de semnatur a Chaum - Pedersen este un protocol de tip Schnorr. Fie m G
q
mesajul care trebuie semnat. Presupunem ca U doreste o semnatur a de la B asupra lui m.
Pasii protocolului sunt urmatorii:
1. B genereaza aleator w Z
q
si trimite lui U numerele z = m
x
(mod p), a =
g
w
(mod p) si b = m
w
(mod p).
2. U genereaza aleator provocarea c = H(m z a b) si o trimite lui B.
3. B raspunde cu r = w + cx (mod q).
4. U accepta daca si numai daca h
c
a = g
r
(mod p) si z
c
b = m
r
(mod p).
(de vericat; nu coincide cu pag 22 din licenta)
Se observa ca singura diferent a fat a de schema lui Schnorr este trimiterea la pasul 1 a nca
doua numere: z si b. sig
K
(m) = (z, a, b, r) va constitui semnatura asupra mesajului m.
Formal, protocolul de semnatura Chaum-Pedersen este:
P =G
q
,
A =G
3
q
Z
q
,
K= {(p, q, g, h, x)| p, q prime, q|p 1, h = g
x
(mod p)}.
Cheia (p, q, g, h) este publica, iar x este secreta.
K K , m G
q
si w Z
q
aleator, denim
sig
K
(m, w) = (z, a, b, r), unde z = m
x
(mod p), a = g
w
(mod p), b = m
w
(mod p),
c = H(m z a b), r = w + cx (mod q).
ver
K
(m, (z, a, b, r)) = T h
c
a = g
r
(mod p), z
c
b = m
r
(mod p).
Daca U si B urmeaza protocolul, dupa primii 3 pasi avem:
g
r
= g
w+cx
= (g
x
)
c
g
w
= h
c
a (mod p),
m
r
= m
w+cx
= (m
x
)
c
m
w
= z
c
b (mod p),
deci U accepta n pasul 4.
7.3.2 Protocolul restrictiv de semnatura blind Chaum - Pedersen

In aceasta sect iune descriem o variant a simplicata a schemei de semnatura blind folosita
n protocolul de extragere. Pentru a transforma protocolul de semnatur a Chaum - Pedersen
ntr-un protocol de semnatura blind, U trebuie sa obt in a un nou mesaj m

si noile numere
a

, b

, z

, c

= H(m

). B raspunde cu r, pe care U l transforma n r

astfel nc at
(z

, a

, b

, r

) sa e o semnatur a valida asupra lui m

. Protocolul este urmatorul:


7.3. TEHNICI PENTRU CREAREA SISTEMULUI 87
1. B genereaza aleator w Z
q
si trimite lui U valorile z = m
x
(mod p), a = g
w
(mod p)
si b = m
w
(mod p).
2. U genereaza aleator trei numere s Z

q
, u, v Z
q
, apoi calculeaza:
m

= m
s
(mod p), w

= uw + v (mod q), a

= a
u
g
v
= g
w

(mod p),
b

= a
us
(m

)
v
= (m

)
w

(mod p), z

= z
s
= (m

)
x
(mod p), c

= H(m

||z

||a

||b

)
si trimite lui B numarul c = c

u
1
(modq).
3. B raspunde cu r = w + cx (mod q).
4. U accepta daca si numai daca h
c
a = g
r
(mod p) si z
c
b = m
r
(mod p).
Se observa ca (z, a, b, r) nu este o semnatur a valida asupra lui m deoarece r este un raspuns
la o provocare diferita de H(m||z||a||b). Dar U poate calcula r

= ur + v (mod q) si obt ine


sig
K
(m

) = (z

, a

, b

, r

), o semnatura valida asupra lui m

. Semnatura poate vericat a de


oricine.
U accepta la pasul 4 deoarece relat iile sunt vericate la fel ca n protocolul anterior.
Propozit ia 7.1 Daca r

= ur + v (mod q), atunci (z

, a

, b

, r

) constituie o semnatura valida


asupra lui m

.
Demonstrat ie:
Pentru K = (p, q, g, h, x, w), ver
K
(m

, (z

, a

, b

, r

)) = T

h
c

= g
r

(mod p)
(z

)
c

= (m

)
r

(mod p)
Dar r

= ur+v = u(w+cx)+v (mod p) = g


r

= g
u(w+cx)+v
= g
ucx
g
v+uw
= (g
x
)
uc
g
w

=
h
c

(mod p) si (m

)
r

= (m

)
ucx
(m

)
uw+v
= (m

)
xc

(m

)
w

= (z

)
c

(mod p),
deci sig
K
(m

) = (z

, a

, b

, r

). 2
Protocolul este de tip blind deoarece B nu cunoaste m

, mesajul pentru care U a obt inut


o semnatur a.
Propozit ia 7.2
1. Daca U urmeaza protocolul pas cu pas, atunci perechea (m

, sig
K
(m

)) nu poate legata
de nici o execut ie specica a protocolului.
2. Chiar daca B aa m

, reprezentarea (s, t) a lui m

n raport cu (m, g) cunoscuta de U i


este ascunsa lui B n setul tuturor reprezentarilor lui m

.
Demonstratie:
La nalul protocolului, B este n posesia urmatoarelor informat ii: w, z, a, b, c. Arat am ca
exista q alegeri posibile pentru (s, u, v) care produc n nal aceeasi pereche (m

, sig
K
(m

)).
Fie s Z
q
xat (sunt posibile q 1 alegeri pentru s) si m

, sig
K
(m

) = (z

, a

, b

, r

) xate.
Sa analizam n cate moduri putem alege u, v.
Se calculeaza n mod unic c

= H(m

||z

||a

||b

) (mod q). Deci uc = c

(mod q) = u =
c

c
1
(mod q), deci si u este unic determinat.
88 PRELEGEREA 7. SISTEMUL ELECTRONIC DE PLAT

A BRANDS
r

= ur +v = u(w +cx) +v = uw +c

x +v (mod q) = v = r

uw c

x (mod q). Sa
arat am ca u si v astfel determinate veric a relat iile pentru a

si b

.
a
u
g
v
= a
u
g
r

uwc

x
= a
u
g
r

(g
w
)
u
(g
x
)
c

= a
u
h
c

a
u
h
c

= a

(mod p)
(m

)
w

= (m

)
uv+w
= b
us
(m

)
v
= b
us
(m

)
r

uwc

x
= (m
w
)
us
(m

)
r

(m

)
uw
((m

)
x
)
c

=
m
wus
(z

)
c

(m
s
)
uw
(z

)
c

= b

(mod p)
Am demonstrat asfel ca exista exact q1 alegeri pentru (s, u, v) care produc aceeasi pereche
(m

, sig
K
(m

)), deci B nu realizeaza n care execut ie specica a protocolului s-a semnat mesajul
m

. 2
7.3.3 Generarea aleatoare a unei reprezentari

In faza de init ializare a sistemului, U trebuie sa genereze un tuplu (u


1
, u
2
) pentru a-si deschide
un cont n banca si a calcula pseudonimul sau I = g
u
1
1
g
u
2
2
(mod p). Banca trebuie sa se asigure
ca U nu cunoaste doua reprezentari ale lui I n raport cu (g
1
, g
2
).
Prin urmatorul protocol U si B genereaza mpreuna un num ar aleator h Z
q
si o reprezen-
tare a acestuia n raport cu tuplul generator (g
1
, . . . , g
k
).
1. U genereaza aleator tuplul (x
1
, . . . , x
k+1
) si trimite lui B h

=
k+1

i=1
g
x
i
i
(mod p).
2. B trimite lui U un tuplu ales aleator (y
1
, . . . , y
k
).
3. U trimite x
k+1
lui B.
Daca U a fost corect la pasul 3, (x
1
+ y
1
, . . . , x
k
+ y
k
) este o reprezentare a lui h =
h

g
x
k+1
k+1
(
k

i=1
g
y
i
i
) (mod p) n raport cu (g
1
, . . . , g
k
).

Intr-adevar, g
x
1
+y
1
1
. . . g
x
k
+y
k
k
=
k

i=1
g
x
i
i
k

i=1
g
y
i
i
= h

g
x
k+1
k+1
k

i=1
g
y
i
i
= h (mod p).
7.4 Sistemul de baza Brands

In aceasta sect iune sunt descrise cele trei protocoale care formeaza sistemul de baza: protocolul
de extragere a monezilor electronice, protocolul de plata si protocolul de depozit. Se presupune
ca n sistem exista monezi de o unica valoare. Ulterior vom arata cum se pot introduce n
sistem monezi de diferite valori.
7.4.1 Protocolul de extragere a monezilor
Daca utilizatorul U avand identitatea I = g
u
1
1
g
u
2
2
(mod p) doreste sa extraga o moneda din
contul sau, mai ntai trebuie sa conving a banca ca ntr-adevar el este posesorul contului de unde
se face extragerea. Pentru aceasta U si B vor executa protocolul din prelegerea anterioar a, prin
care U i demonstreaza lui B cunoasterea unei reprezentari a lui I n raport cu (g
1
, g
2
), far a a
o revela.
7.4. SISTEMUL DE BAZ

A BRANDS 89
Pentru ecare extragere a unei monezi, este executat urmatorul protocol:
1. U i demonstreaza lui B cunoasterea reprezentarii (u
1
, u
2
) a lui I n raport cu (g
1
, g
2
)
prin protocolul din prelegerea anterioara.
2. B realizeaza urmatoarele operat ii:
(a) extrage din contul lui U valoarea xata a monezii;
(b) calculeaza m = Id (mod p);
(c) genereaza aleator w Z
q
;
(d) trimite lui U: z = m
x
(mod p), a = g
w
(mod p) si b = m
w
(mod p).
3. U realizeaza urmatoarele operati:
(a) calculeaza m = Id (mod p);
(b) genereaza aleator s Z

q
, u, v Z
q
;
(c) calculeaza: m

= m
s
= I
s
d
s
= g
u
1
s
1
g
u
2
s
2
d
s
(mod p),
z

= z
s
(mod p), w

= uw + v (mod q), a

= a
u
g
v
= g
w

(mod p), b

=
b
us
(m

)
v
= (m

)
w

(mod p);
(d) determina aleator a descompunere a lui m

in A si B (m

= AB (mod p)) astfel:


determina aleator ecare din numerele u
1
s, u
2
s ca suma de doua numere:
u
1
s = x
1
+ x
2
(mod q), u
2
s = y
1
+ y
2
(mod q), s = z
1
+ z
2
(mod q),
apoi calculeaza A = g
x
1
1
g
y
1
2
d
z
1
(mod p) si B = g
x
2
1
g
y
2
2
d
z
2
(mod p);
(e) calculeaza c

= H(m

||z

||a

||b

||A);
(f) trimite lui B mesajul c = c

u
1
(mod q).
4. B raspunde cu r = cx + w (mod q).
5. U accepta daca si numai daca g
r
= h
c
a (mod p), m
r
= z
c
b (mod p).

In nal, U calculeaza r

= ru + v (mod q).
Conform propozit iilor 7.1 si 7.2, n nal U este n posesia unui mesaj semnat
(A, B, sig
K
(A, B)) = (z

, a

, b

, r

)
care nu poate legat de nici o execut ie specica a protocolului.

In plus, m

= AB (mod p).
Descompunerea lui m

n A si B a fost facuta pentru ca U sa poate sa demonstreze n protocolul


de plata identitatea sa, fara a o dezvalui.
Daca U urmeaza protocolul, atunci se va aa n nal n posesia reprezentarilor lui m

, A, B
n raport cu (g
1
, g
2
, d) care sunt (u
1
s, u
2
s, s), (x
1
, y
1
, z
1
) si respectiv (x
2
, y
2
, z
2
). Din Corolarul
?.1 (prelegerea precedenta), U nu poate aa doua reprezent ari ale lui m

n timp polinomial.
Cum (x
1
+ x
2
, y
1
+ y
2
, z
1
+ z
2
) este de asemenea o reprezentare a lui m

rezulta ca trebuie
ndeplinite simultan condit iile (toate modulo q):
u
1
s = x
1
+ x
2
, u
2
s = y
1
+ y
2
, s = z
1
+ z
2
.
Faptul ca U accepta n pasul 5 se deduce similar protocolului din ?.3.2.
90 PRELEGEREA 7. SISTEMUL ELECTRONIC DE PLAT

A BRANDS
7.4.2 Protocolul de plata
Cand U doreste sa foloseasca o moneda la magazinul S este executat urmatorul protocol:
1. U i trimite lui S:
A = g
x
1
1
g
y
1
2
d
z
1
(mod p), B = g
x
2
1
g
y
2
2
d
z
2
(mod p), sig
K
(A, B) = (z

, a

, b

, r

).
(Daca n sistem sunt monezi de valori diferite U trebuie sa trimita si valoarea mo-
nezii.)
2. S se asigura ca AB = 1.
Apoi el veric a semnatura bancii:
ver
K
(m

, sig
K
(m

)) = T

g
r

= h
c

(mod p)
(m

)
r

= (z

)
c

(mod p)
cu c

= H(AB||z

||a

||b

||A).
Daca relat iile sunt ndeplinite, S este convins ca moneda a fost emisa de banca si
trimite lui U o provocare c Z

q
\ {1}.
3. U raspunde cu
r
1
= x
1
+ cx
2
, r
2
= y
1
+ cy
2
, r
3
= z
1
+ cz
2
(toate calculele sunt modulo q).
4. S accepta daca si numai daca g
r
1
1
g
r
2
2
d
r
3
= AB
c
(mod p).
Teorema 7.1
1. (Completitudinea) Daca U urmeaza protocolul pas cu pas si protocolul de extragere a
monezii a fost executat corect, atunci S accepta la pasul 4.
2. (Consistent a) Daca U nu cunoaste cate o reprezentare a lui A, respectiv B n raport cu
(g
1
, g
2
, d), atunci nu exista strategie pentru el astfel ncat S sa accepte cu o probabilitate
de succes ne-neglijabila.
3. (Ascunderea informat iei) Chiar daca S dispune de o putere de calcul nelimitata, iar
U si S executa protocolul pas cu pas, S nu va reusi sa ae n nal identitatea lui U cu o
probabilitate ne-neglijabila.
Demonstrat ie:
1. Daca protocolul este executat pas cu pas, la pasul 4 avem:
g
r
1
1
g
r
2
2
d
r
3
= g
x
1
+cx
2
1
g
y
1
+cy
2
2
d
z
1
+cz
2
= g
x
1
1
g
y
1
2
d
z
1
(g
x
2
1
g
y
2
2
d
z
2
)
c
= AB
c
(mod p),
deci S accepta.
2. U ar trebui sa determine numerele r
1
, r
2
, r
3
Z
q
asfel nc at g
r
1
1
g
r
2
2
d
r
3
= AB
c
(mod p),
ceea ce este echivalent cu determinarea unei reprezentari a lui AB
c
n raport cu (g
1
, g
2
, d),
care este o problema pe care U nu o poate rezolva n timp polinomial.
Astfel, se deduce un lucru foarte important pentru securitatea sistemului:
7.4. SISTEMUL DE BAZ

A BRANDS 91
S accepta U cunoaste cate o reprezentare a lui A si B n raport cu (g
1
, g
2
, d) si
este cinstit = U cunoaste o reprezentare a lui m

n raport cu (g
1
, g
2
, d).
Deci, daca U nu cunoaste o reprezentare a lui m

n raport cu (g
1
, g
2
, d), nu are nici o
sansa sa-l faca pe S sa accepte la pasul 4.
3. La sfarsitul protocolului, S se aa n posesia urmatoarelor informat ii:
A, B, z, a, b, r, c, r
1
, r
2
, r
3
.
Consideram sistemul (ntai cu necunoscutele u
1
, u
2
, s, r
1
, r
2
, r
3
, iar a doua oara cu ne-
cunoscutele x
1
, x
2
, y
1
, y
2
, z
1
, z
2
):

x
1
+ x
2
= u
1
s y
1
+ y
2
= u
2
s z
1
+ z
2
= s
x
1
+ cx
2
= r
1
y
1
+ cy
2
= r
2
z
1
+ cz
2
= r
3
(toate ecuat iile sunt scrise modulo q).
Din acest sistem se deduce ca problema determinarii lui (u
1
, u
2
) este echivalent a cu prob-
lema determinarii numerelor: x
1
, x
2
, y
1
, y
2
, z
1
, z
2
.
Informat iile pe care S le are despre x
1
, x
2
, y
1
, y
2
, z
1
, z
2
sunt:

x
1
+ cx
2
= r
1
(mod q) (1) A = g
x
1
1
g
y
1
2
d
z
1
(mod p) (4)
y
1
+ cy
2
= r
2
(mod q) (2) B = g
x
2
1
g
y
2
2
d
z
2
(mod p) (5)
z
1
+ cz
2
= r
3
(mod q) (3) g
r
1
1
g
r
2
2
d
r
3
= AB
c
(mod p) (6)
(1) x
1
= r
1
cx
2
(mod q), (2) y
1
= r
2
cy
2
(mod q) , (3) z
1
= r
3
cz
2
(mod q)

Inlocuind x
1
, y
1
, z
1
n (4) si folosind (6) rezulta:
A = g
r
1
cx
2
1
g
r
2
cy
2
2
d
r
3
cz
2
(mod p) g
r
1
1
g
r
2
2
d
r
3
= A(g
x
2
1
g
y
2
2
d
z
2
)
c
(mod p)
g
x
2
1
g
y
2
2
d
z
2
= (A
1
g
r
1
1
g
r
2
2
d
r
3
)
1
c
= B (mod p). (7)
Relatia (7) este echivalent a cu (5), ceea ce demonstreaza ca din relat iile (1),(2) si (3) nu
se obt ine nici o informat ie n plus, deci (4) si (5) sunt de fapt singurele informat ii esent iale
pe care S le are despre x
1
, x
2
, y
1
, y
2
, z
1
, z
2
.
De aici rezulta ca determinarea lui (x
1
, y
1
, z
1
) este echivalenta cu determinarea unei
reprezent ari a lui An raport cu (g
1
, g
2
, d), iar determinarea lui (x
2
, y
2
, z
2
) este echivalenta
cu determinarea unei reprezent ari a lui B.
Daca dispune de o putere de calcul nelimitata, S poate determina o reprezentare a lui A
si o reprezentare a lui B n raport cu (g
1
, g
2
, d). Probabilitatea ca aceste reprezent ari sa
e egale cu cele cunoscute de U este
1
q
2
1
q
2
=
1
q
4
din Propozit ia ?.2 (prelegerea anterioara).
Deci probabilitatea ca S sa ae identitatea lui U dupa executarea protocolului este
1
q
4
.
7.4.3 Protocolul de depozit
Dupa un anumit interval de timp, toate magazinele depoziteaza la banca monezile electronice
primite de la client i. Protocolul executat de un magazin S cu banca pentru trimiterea ecarei
monezi este urmatorul:
92 PRELEGEREA 7. SISTEMUL ELECTRONIC DE PLAT

A BRANDS
1. S si B urmeaza protocolul provocare/raspuns (prelegerea anterioar a) prin care S
demonstreaza cunoasterea reprezent arii identitat ii sale n raport cu (g
1
, g
2
).
2. S trimite lui B mesajele A, B, sig
K
(A, B), c, r
1
, r
2
, r
3
.
3. B verica validitatea semnaturii sig
K
(A, B), stocheaza A, B, sig
K
(A, B), c, r
1
, r
2
, r
3
ntr-o baza de date si crediteaza contul lui S cu valoarea monezii.
Teorema 7.2 Daca moneda (A, B, sig
K
(A, B)) apare de doua ori n baza de date a bancii,
atunci banca poate determina identitatea utilizatorului necinstit care a utilizat moneda de doua
ori.
Demonstrat ie:
Daca moneda (A, B, sig
K
(A, B)) apare de doua ori n baza de date, rezulta ca banca dispune
de doua seturi de raspunsuri ale lui U: (r
1
, r
2
, r
3
) si (r
1

, r
2

, r
3

) corespunzatoare celor doua


provocari c si c

ale lui S.
Din relat iile de vericare ale protocolului de plata rezulta:

g
r
1
1
g
r
2
2
d
r
3
= AB
c
(mod p) (1)
g
r
1

1
g
r
2

2
d
r
3

= AB
c

(mod p) (2)
Ridicand (1) la puterea c

si (2) la puterea c, rezulta:

A
c

B
cc

= g
r
1
c

1
g
r
2
c

2
d
r
3
c

(mod p)
A
c
B
cc

= g
r
1

c
1
g
r
2

c
2
d
r
3

c
(modp)

Impart ind cele doua relat ii rezulta:


A
c

c
= g
r
1
c

r
1

c
1
g
r
2
c

r
2

c
2
d
r
3
c

r
3

c
(mod p) =
A = g
(r
1
c

r
1

c)(c

c)
1
1
g
(r
2
c

r
2

c)(c

c)
1
2
d
(r
3
c

r
3

c)(c

c)
1
(mod p) (3)
Analog se obt ine: B = g
(r
1
r
1

)(cc

)
1
1
g
(r
2
r
2

)(cc

)
1
2
d
(r
3
r
3

)(cc

)
1
(mod p) (4)
Dar A = g
x
1
1
g
y
1
2
d
z
1
(mod p) (5) si B = g
x
2
1
g
y
2
2
d
z
2
(mod p) (6)
Cum nu se cunoaste o reprezentare netriviala a lui 1 n raport cu (g
1
, g
2
, d), din (3),(4),(5)
si (6) rezulta (toate relat iile sunt modulo q):

(r
1
c

r
1

c)(c

c)
1
= x
1
(r
2
c

r
2

c)(c

c)
1
= y
1
(r
3
c

r
3

c)(c

c)
1
= z
1
(r
1
r
1

)(c c

)
1
= x
2
(r
2
r
2

)(c c

)
1
= y
2
(r
3
r
3

)(c c

)
1
= z
2
Ceea ce nseamn a ca banca poate sa calculeze:
u
1
s = x
1
+ x
2
= (r
1
c

r
1

c)(c

c)
1
+ (r
1
r
1

)(c c

)
1
(mod q) (7)
u
2
s = y
1
+ y
2
= (r
2
c

r
2

c)(c

c)
1
+ (r
2
r
2

)(c c

)
1
= y
2
(mod q) (8)
s = z
1
+ z
2
= (r
3
c

r
3

c)(c

c)
1
+ (r
3
r
3

)(c c

)
1
= z
2
(mod q) (9)
Din (9) = s = (c

c)
1
(r
3
(c

1) r
3

(c 1)) (mod q) =
s
1
= (r
3
(c

1) r
3

(c 1))
1
(c

c) (mod q) (10).
Din (7) si (10) rezulta u
1
= u
1
ss
1
= (c

c)
1
(r
1
(c

1) r
1

(c 1))(r
3
(c

1) r
3

(c
1))
1
(c

c) = (r
1
(c

1) r
1

(c 1))(r
3
(c

1) r
3

(c 1))
1
(mod q)
si analog u
2
= (r
2
(c

1) r
2

(c 1))(r
3
(c

1) r
3

(c 1))
1
(mod q),
deci banca poate sa calculeze identitatea utilizatorului necinstit. 2
7.5. CORECTITUDINEA SISTEMULUI DE BAZ

A 93
7.5 Corectitudinea sistemului de baza
Urmatoarea teorema este fundamental a pentru demonstrarea securitat ii sistemului:
Teorema 7.3

In protocolul de extragere a monezilor, U nu poate sa obt ina o semnatura asupra
unui mesaj m

pentru care cunoaste o reprezentare n raport cu (g


1
, g
2
, d), dar care nu este o
putere a lui m.
Demonstrat ie:
Presupunem prin reducere la absurd ca U poate sa obt in a o semnatur a asupra lui m

, cu
m

de forma m

= m
s
g
r
1
= g
u
1
s+r
1
g
u
2
s
2
d
s
(mod p), cu s, r Z
q
arbitrare. Celelalte cazuri pentru
forma lui m

se vor rezolva analog.


Daca U poate obt ine o semnatura valida asupra lui m

, rezulta ca U poate sa calculeze


sig
K
(m

) = (z

, a

, b

, r

) n timp polinomial.
Sa vedem cat de difcila este pentru U calcularea lui b

.
b

= (m

)
w

= (m

)
uw+v
= (m
s
g
r
1
)
uw+v
= m
suw
m
sv
(g
ru
1
)
w
g
rv
1
= b
su
m
sv
g
rv
1
(g
ru
1
)
w
(mod p).
Notam g
3
= g
ru
1
= g
w
3
= g
rv
1
m
sv
b
su
b

(mod q), cu g
1
, m, b, s, u, v, r, g
3
cunoscute, iar w
necunoscut lui U (w este ales de B aleator la ecare execut ie a protocolului). Deci calcularea
lui b

este la fel de dicila ca si calcularea lui g


w
3
.
Fie s Z
p
astfel ncat g
3
= g
s
(mod p).
Presupunand ca b

se poate calcula n timp polinomial, rezulta ca si g


w
3
se poate calcula n
timp polinomial.
Dar U cunoaste g
3
= g
s
, g
w
, g, m, m
w
si reuseste sa determine g
ws
= g
w
3
, adica cheia Die-
Hellman unica pentru g
w
, g
s
.
Cum u si w sunt alese aleator, avem ca si g
w
, g
s
= g
3
= g
ru
1
sunt aleatoare n G
q
. Am
construit asfel un algoritm polinomial care are la intrare numerele aleatoare g
s
, g
w
si calculeaza
cheia unica Die-Hellman, ceea ce reprezinta o contradict ie cu NP-completitudinea acestei
probleme.
De aici rezulta ca b

nu se poate calcula polinomial, deci U nu poate obt ine o semnatura


asupra lui m

care nu e multiplu de m. 2
Consecint a: Din Teoremele 7.1 si 7.3 deducem ca U poate sa obt ina o semnatura asupra
lui m

pe care o poate folosi ntr-un protocol de plata daca si numai daca impunem urmatoarele
restrict ii asupra lui m

(care justica calicativul restrictiv dat acestui protocol de semnatur a):


1. m

este de forma m
s
m G
q
;
2. U cunoaste o reprezentare a lui m

n raport cu (g
1
, g
2
, d) care este multiplu al reprezent arii
lui m.
Sa enunt am cateva proprietat i importante ale sistemului:
1. Securitatea:
Din consecint a anterioara rezulta ca identitatea utilizatorului este inclusa n m

(m

=
m
s
= I
s
d
s
); astfel, daca utilizatorul foloseste moneda o singura data i este garantat a
anonimitatea.

In schimb, daca moneda este folosita de doua ori, se poate detecta identi-
tatea utilizatorului necinstit, cum am aratat n Teorema 7.2.
94 PRELEGEREA 7. SISTEMUL ELECTRONIC DE PLAT

A BRANDS
Securitatea acestui sistem se bazeaza pe presupunerea de NP-completitudine a problemei
reprezent arii n grupuri, a problemei determinarii cheii unice Die-Hellman si pe ipoteza
ca funct ia de dispersie folosita n sistem este far a coliziuni tari.
Falsicarea unei monezi presupune imitarea semnaturii bancii, ceea ce este calculabil
dicil. Presupunand totusi ca U fasica o moneda (m

, sig
K
(m

)) (dispunand de o
putere de calcul foarte mare), pentru a avea vreo sansa ca moneda sa i e acceptata n
protocolul de plata, trebuie sa cunoasca o reprezentare a lui m

n raport cu (g
1
, g
2
, d)
(din Teorema 7.1). Astfel, sarcina falsicatorului devine si mai dicila.
2. Anonimitatea utilizatorilor este de asemenea garantat a de Teorema 7.1.
3. Sistemul este fara legaturi.
O moneda nu poate legata de nici o execut ie specica a protocolului de extragere,
conform Propozit iei 7.2.
4. Sistemul este fara urmarire.
Tranzact iile utilizatorului nu pot urmarite de banca dupa protocolul de extragere a
monezilor.

In momentul n care moneda este depozitata n banca de catre un magazin,
banca nu poate deduce din care cont a fost extrasa init ial.
5. Sistemul este o-line.
6. Sistemul asigura protejarea utilizatorilor mpotriva acuzarii nedrepte a bancii.
Daca banca acuza un utilizator U ca a folosit o moneda de doua ori, ea trebuie sa dezvaluie
juriului o reprezentare a identitatii lui U, de exemplu (u
1
, u
2
). Daca U este onest,
reprezentarea (u
1
, u
2
) coincide cu cea cunoscuta de U cu o probabilitate
1
q
(prelegerea
anetrioara). Deci, cu o probabilitate mare (1
1
q
), cele doua reprezent ari sunt dis-
tincte. Asfel, U se aa n posesia a doua reprezentari ale lui I n raport cu (g
1
, g
2
),
deci poate calcula o reprezentare a lui 1 n raport cu (g
1
, g
2
). U prezinta juriului aceasta
reprezentare a lui 1, ceea ce constituie proba nevinovat iei sale (U nu ar putut calcula
altfel o reprezentare a lui 1, deoarece aceasta este o problema NP - completa).
7. Introducerea monezilor de valori diferite. Exista cel put in doua metode:
Banca poate sa utilizeze cate o cheie publica diferita pentru ecare tip de moneda.
Astfel, daca n sistem exista k monezi distincte, banca dispune de k chei publice:
(g, h
1
), . . . , (g, h
k
) si de k chei secrete corespunzatoare: x
1
, . . . , x
k
cu x
i
= log
g
i
h
i
,
i = 1, 2, . . . k.
Se utilizeaza k generatori d
1
, . . . , d
k
(n loc de unul singur d utilizat n sistemul de
baza). Fiecare generator d
i
reprezinta o anumit a valoare (de exemplu d
i
reprezint a
valoarea 2
i1
). Atunci se poate forma orice moneda de valoare cuprinsa ntre 1
si 2
k
folosind reprezentarea n binar a valorii monezii. Generatorul d
i
apare n
reprezentarea monezii daca bitul i din reprezentarea binara este 1.
De exemplu, pentru o moneda de valoarea 11 = 1011
2
, m = Id
4
d
2
d
1
, iar pentru o
moneda de valoare 18 = 10010
2
, m = Id
5
d
2
.

Inlocuirea lui m = Id cu m = Id
i
p
. . . d
i
1
este singura modicare realizata n proto-
coalele sistemului de baza.
Prelegerea 8
Cecuri electronice
8.1 Sistemul de plata cu cecuri nedivizibile
Sistemele de plata cu monezi electronice pot extinse n mod natural la sisteme care utilizeaza
cecuri electronice.
Ideea acestei extensii se bazeaza pe intrpducerea a k noi generatori (f
1
, . . . , f
k
) G
k
g
, unde
f
i
reprezint a o anumita valoare (de exemplu 2
i1
unitat i). Dupa cum s-a vazut n prelegerea
anterioar a, orice suma de cel mult 2
k
1 poate reprezentata ca un produs de generatori f
i
,
conform reprezentarii binare a valorii sumei.
Succesiunea de evenimente n sistemul de cecuri nedivizibile este urmatoarea:
1. Protocolul de extragere a cecului electronic:
Daca utilizatorul U (cunoscut bancii prin identitatea sa I = g
u
1
1
g
u
2
2
mod p)) doreste sa
extraga din banca un cec de valoare maxima 2
k
1, genereaza aleator (a
1
, . . . , a
k
) Z
k
q
si calculeaza m =
m

i=1
f
a
i
i
(mod p). Banca extrage din contul lui U valoarea 2
k
1 si
stocheaz a ntr-o baza de date identitatea lui U mpreuna cu m.
2. Protocolul de plata:
Utilizatorul U doreste sa foloseasca la magazinul S o suma de valoare mai mica sau egala
cu 2
k
1 (presupunem, pentru claritate, k 3 si U utilizeaza suma de 5 = 101
2
unitat i).
Atunci, U trebuie sa i releve lui S: valorile A, B, semnatura pe care a obt inut-o de
la banca asupra lui (A, B) si numerele (a
1
, a
3
), corespunzatoare reprezent arii n binar a
valorii sumei.
3. Protocolul de depozit:
Magazinul S depoziteaza la banca cecul electronic (A, B, sig
K
(A, B)) mpreun a cu partea
folosita din cec: (a
1
, a
3
). Banca stocheaz a perechea (a
1
, a
3
) ntr-o lista de recuperare.
4. Protocolul de recuperare a sumei nefolosite:
Utilizatorul U doreste sa recupereze suma din cec pe care nu a utilizat-o (corespunzatoare
generatorilor f
2
, f
4
, . . . , f
k
). U trimite bancii (A, B, sig
K
(A, B) si (a
2
, a
4
, . . . , a
k
). Banca
veric a faptul ca m = AB este asociat cu I n baza sa de date si ca (a
2
, a
4
, . . . , a
k
) nu
sunt pe lista de recuperare.
95
96 PRELEGEREA 8. CECURI ELECTRONICE
Daca banca accepta, ea sterge din baza de date m si crediteaza contul lui U cu suma
nefolosita din cec: 2
k
1 5 = 2
k
6.
Deoarece cecul este nedivizibil, un utilizator are dreptul sa foloseasca un cec o singura
data. Daca nu a utilizat valoarea maxima a cecului, U trebuie sa urmeze mpreun a cu banca
protocolul de recuperare.
Vom construi mai tarziu si un sistem de cecuri cu proprietatea de divizibilitate.
8.1.1 Init ializarea sistemului de cecuri
Numerele p, q, g, x, h, g
1
, g
2
, funct ia de dispersie H si subgrupul G
q
al lui Z
q
sunt generate ca
n sistemul de baza. Apoi, banca genereaza urmatoarele numere:
Doua tupluri generatoare de lungime k: (e
1
, . . . , e
k
) G
k
q
si (f
1
, . . . , f
k
) G
k
q
.
Doi generatori: d
1
, d
2
G
k
q
.
Deschiderea unui cont se similar ca n sistemul de baza, utilizatorul U ind cunoscut prin
pseudonimul sau I = g
u
1
1
g
u
2
2
(mod p), cu u
1
, u
2
generate aleator n Z
q
.
Un cec electronic este de forma (m

, sig
K
(m

)) cu restrict ia ca exista s Z

q
cu m

=
m
s
(mod p), unde m cont ine de aceasta data atat identitatea utilizatorului care a extras cecul,
cat si valoarea maxima a cecului:
m = (
2

i=1
g
u
i
i
)d
z
1
1
. .
identitate
(
k

i=1
e
a
i
i
f
b
i
i
)d
a
k+1
2
. .
valoare
(mod p)
Rolul generatorului d
1
este acelasi ca n sistemul de baza (sa asigure ca identitatea utiliza-
torului ram ane ascunsa daca acesta este onest), iar rolul lui d
2
va sa mpiedice realizarea de
legaturi de catre banca dupa protocolul de recuperare.
8.1.2 Protocolul de extragere a cecurilor
Presupunand ca utilizatorul U cu identitatea I = g
u
1
1
g
u
2
2
(mod p) doreste sa extraga un cec de
valoare maxima 2
k
1, U si B urmeaza protocolul urmator:
1. U i demonstreaza lui B cunoasterea reprezentarii (u
1
, u
2
) a lui I n raport cu (g
1
, g
2
),
prin protocolul din Prelegerea ? (cunoasterea unei reprezentari).
2. U genereaza aleator 2k + 1 numere distincte a
1
, a
2
, . . . , a
k+1
, b
1
, b
2
, . . . , b
k
Z

q
.
Apoi U calculeaza m
1
= (
k

i=1
e
a
i
i
f
b
i
i
)d
a
k+1
2
si trimite m
1
lui B.
3. B efectueaza urmatoarele operat ii:
(a) extrage din contul lui U valoarea maxima a cecului;
(b) stocheaza m
1
si I ntr-o baza de date a cecurilor emise;
(c) calculeaza m
2
= Id
1
(mod p), m = m
1
m
2
(mod p);
8.1. SISTEMUL DE PLAT

A CU CECURI NEDIVIZIBILE 97
(d) genereaza aleator w Z
q
;
(e) trimite lui U numerele z = m
x
(mod p), a = g
w
(mod p) si b = m
w
(mod p).
4. U realizeaza urmatoarele operat ii:
(a) calculeaza m
2
= Id
1
(mod p), m = m
1
m
2
(mod p);
(b) genereaza aleator s Z

q
, u, v Z
q
;
(c) calculeaza m

= m
s
= m
s
1
m
s
2
= g
u
1
s
1
g
u
2
s
2
d
s
1
(
k

i=1
e
a
i
s
i
f
b
i
s
i
)d
a
k+1
s
2
(mod p);
z

= z
s
(mod p), w

= uw + v (mod q), a

= a
u
g
v
= g
w

) (mod p), b

=
b
us
(m

)
v
= (m

)
w

) (mod p);
(d) U determina aleator o descompunere a lui m

n A si B (m

= AB (mod p)) astfel:


determina aleator ecare din numerele u
1
s, u
2
s, s, a
1
s, b
1
s, . . . , a
k
s, b
k
s, a
k+1
s ca sume
de cate doua numere:
u
1
s = x
1
+ x
2
(mod q) u
2
s = y
1
+ y
2
(mod q) s = z
1
+ z
2
(mod q),
a
1
s =
1A
+
1B
(mod q) b
1
s =
1A
+
1B
(mod q) . . .
a
k
s =
kA
+
kB
(mod q) b
k
s =
kA
+
kB
(mod q) a
k+1
s =
A
+
B
(mod q)
apoi U calculeaza
A = g
x
1
1
g
y
1
2
d
z
1
1
(
k

i=1
e

iA
i
f

iA
i
)d

A
2
(mod p), B = g
x
2
1
g
y
2
2
d
z
2
1
(
k

i=1
e

iB
i
f

iB
i
)d

B
2
(mod p) si
c

= H(m

||z

||a

||b

||A);
(e) trimite lui B numarul c = c

u
1
(mod q).
5. B raspunde cu r = cx + w (mod q).
6. U accepta protocolul daca si numai daca g
r
= h
c
a (mod p), m
r
= z
c
b (mod p).

In nal, el calculeaza r

= ru + v (mod q).
(z

, a

, b

, r

) constituie o semnatura valid a asupra lui m

confomr Propozit iei ?.1 (prelegerea


anterioar a).
Rezultatele demonstrate pentru sistemul de baza ram an valabile si n sistemul cu cecuri.
Propozit ia 8.1 Daca U urmeaza protocolul anterior, atunci perechile (m

, sig
K
(m

)) nu pot
legate de nici o execut ie specica a protocolului.
Demonstrat ia este similara celei de la Propozitia ?.2, aratand ca exista exact q valori posibile
pentru (s, u, v) care produc aceeasi pereche (m

, sig
K
(m

)). 2
Propozit ia 8.2

In protocolul de extragere a monezilor, U nu poate sa obt ina o semnatura
asupra unui mesaj m

pentru care cunoaste o reprezentare n raport cu (g


1
, g
2
, d
1
, e
1
, f
1
, . . . , e
k
,
f
k
, d
2
), dar care nu este o putere a lui m.
Demonstrat ia este similara celei de la Teorema ?.3, arat and ca obt inerea unei semnaturi
pentru un mesaj m

, unde m

nu este multiplu de m, este echivalenta din punct de vedere


al complexitat ii cu construct ia unui algoritm care rezolva problema determinarii cheii unice
Die-Hellman. 2
98 PRELEGEREA 8. CECURI ELECTRONICE
Observat ia 8.1 Cheia publica folosita de banca pentru cecuri trebuie sa difere de cheia publica
pentru monezi.
Aceasta deoarece, daca ar egale, U ar putea sa trimita la pasul 2 al protocolului de extragere
a cecului electronic, m
1
= g
t
1
cu t aleator in Z
q
si sa obt ina o semnatura asupra lui m

= m
s
cu m = g
u
1
+t
1
g
u
2
2
d
1
(mod p). Apoi, U ar putea sa foloseasca aceasta semnatura ca o moneda si
ar ncalca armat iile demonstrate n Teorema ?.2, cu consecint e asupra securitat ii sistemului.
Sa demonstram acest lucru.
Propozit ia 8.3 Daca utilizatorul U foloseste de doua ori n sistemul de baza o moneda de
forma (m

, sig
K
(m

)) cu m

= m
s
(mod p) si m = g
u
1
+t
1
g
u
2
2
d
1
(mod p), t ales aleator n Z

q
,
atunci B nu are suciente informat ii pentru a determina identitatea lui U cu o probabilitate
ne-neglijabila.
Demonstrat ie:
Similar demonstrat iei Teoremei ?.2, B poate calcula
(u
1
+ t)s = x
1
+ x
2
= (r
1
c

r
1

c)(c

c)
1
+ (r
1
r
1

)(c c

)
1
(mod q),
u
2
s = y
1
+ y
2
= (r
2
c

r
2

c)(c

c)
1
+ (r
2
r
2

)(c c

)
1
= y
2
(mod q),
s = z
1
+ z
2
= (r
3
c

r
3

c)(c

c)
1
+ (r
3
r
3

)(c c

)
1
= z
2
(mod q),
unde r
1
, r
2
, r
3
, respectiv r
1

, r
2

, r
3

sunt raspunsurile date de U n cele doua protocoale de


plata n care acesta a utilizat moneda.
De aici, B deduce u
2
si u
1
+t. Cum t a fost ales aleator de U n Z

q
, B are q 1 posibilitat i
de alegere pentru t, deci cunoaste identitatea lui U cu probabilitatea
1
q 1
2
8.1.3 Protocolul de plata
Daca U doreste sa foloseasca suma 2
j
1 din cecul sau (corespunzatoare generatorilor
(e
1
, f
1
), . . . , (e
j
, f
j
)) la magazinul S, este este parcurs urmatorul protocol:
1. U i trimite lui S numerele A, B, sig
K
(A, B) = (z

, a

, b

, r

).
De asemenea, el l informeaza pe S asupra sumei pe care doreste sa o utilizeze (2
j
1 n
acest caz).
2. S se asigura ca AB = 1.
Apoi el veric a semnatura bancii: ver
K
(m

, sig
K
(m

) = T
_
g
r

= h
c

(mod p)
(m

)
r

= (z

)
c

(mod p)
cu c

= H(AB||z

||a

||b

||A)
si trimite lui U o provocare c Z

q
\ {1}.
3. U verica daca c = 1, apoi calculeaza si trimite lui S raspunsurile:
for i = 1 to j do r
i
= (r
i1
, r
i2
, r
i3
, r
i4
) (
iA
,
iB
,
iA
,
iB
)
for i = j + 1 to k do r
i
= (r
i1
, r
i2
) (
iA
+ c
iB
,
iA
+ c
iB
)
r
k+1
= (r
(k+1)1
, r
(k+1)2
, r
(k+1)3
) (x
1
+ cx
2
, y
1
+ cy
2
, z
1
+ cz
2
)
r
k+2

A
+ c
B
.
8.1. SISTEMUL DE PLAT

A CU CECURI NEDIVIZIBILE 99
Pentru ecare generator care apare n expresia sumei, U releva puncte, iar pentru gener-
atorii care nu apar, U releva drepte.
4. S accepta
_

_
r
13
+ r
14
= 0 . . . r
j3
+ r
j4
= 0
AB = 1
AB
c
=
j

i=1
e
r
i1
i
f
r
i3
i
_
_
j

i=1
e
r
i2
i
f
r
i4
i
_
_
c
_
_
k

i=j+1
e
r
i1
i
f
r
i2
i
_
_
g
r
(k+1)1
1
g
r
(k+1)2
2
d
r
(k+1)3
1
d
r
k+2
2
(mod p)
Teorema urmatoare este o consecint a imediata a Teoremei ?.1:
Teorema 8.1
1. (Completitudinea) Daca U urmeaza protocolul pas cu pas si protocolul de extragere a
cecului electronic a fost executat corect, atunci S accepta n pasul 4.
2. (Consistent a) Daca U nu cunoaste cate o reprezentare a lui A respectiv B n raport
cu (g
1
, g
2
, d
1
, e
1
, f
1
, . . . , e
k
, f
k
, d
2
), atunci nu exista strategie pentru el astfel ncat S sa
accepte cu o probabilitate de succes ne-neglijabila.
3. (Ascunderea informat iei) Chiar daca S dispune de o putere de calcul nelimitata, iar
U si S executa protocolul pas cu pas, S nu va reusi sa ae n nal identitatea lui U cu o
probabilitate ne-neglijabila.
Demonstrat ie:
1. Daca protocolul este executat pas cu pas, la pasul 4 avem:
r
i3
+ r
i4
=
iA
+
iB
= b
i
s, i, 1 i j.
Cum b
i
= 0, s = 0 daca U urmeaza protocolul, rezulta r
i3
+ r
i4
= 0, i, 1 i j.
m

= m
s
, s = 0 = m

= 1 = AB = 1.
j

i=1
e
r
i1
i
f
r
i3
i
_
_
j

i=1
e
r
i2
i
f
r
i4
i
_
_
c
_
_
k

i=j+1
e
r
i1
i
f
r
i2
i
_
_
g
r
(k+1)1
1
g
r
(k+1)2
2
d
r
(k+1)3
1
d
r
k+2
2
=
j

i=1
e

iA
i
f

iA
i
_
_
j

i=1
e

iB
i
f

iB
i
_
_
c
_
_
k

i=j+1
e

iA
+c
iB
i
f

iA
+ciB
i
_
_
g
x
1
+cx
2
1
g
y
1
+cy
2
2
d
z
1
+cz
2
1
d

A
+c
B
2
=
g
x
1
1
g
y
1
2
d
z
1
1
_
k

i=1
e

iA
i
f

iA
i
_
d

A
2
_
g
x
2
1
g
y
2
2
d
z
2
1
_
k

i=1
e

iB
i
f

iB
i
_
d

B
2
_
c
= AB
c
(mod p)
deci S accepta n pasul 4.
2. U ar trebui sa determine numerele r
1
, r
2
, . . . , r
k+2
Z
q
astfel ncat
AB
c
=
j

i=1
e
r
i1
i
f
r
i3
i
_
_
j

i=1
e
r
i2
i
f
r
i4
i
_
_
c
_
_
k

i=j+1
e
r
i1
i
f
r
i2
i
_
_
g
r
(k+1)1
1
g
r
(k+1)2
2
d
r
(k+1)3
1
d
r
k+2
2
(mod p),
ceea ce este echivalent cu determinarea unei reprezent ari a lui AB
c
n raport cu
(g
1
, g
2
, d
1
, e
1
, f
1
, . . . , e
k
, f
k
, d
2
), care este o problema pe care U nu o poate rezolva n timp
polinomial.
100 PRELEGEREA 8. CECURI ELECTRONICE
Similar demonstrat iei Teoremei ?.1, se deduce ca daca U nu cunoaste o reprezentare a
lui m

n raport cu (g
1
, g
2
, d
1
, e
1
, f
1
, . . . , e
k
, f
k
, d
2
), nu are nici o sans a sa-l faca pe S sa
accepte la pasul 4.
3. La sfarsitul protocolului, S se aa n posesia urmatoarelor informat ii:
A, B, z

, a

, b

, r

, c, r
1
, r
2
, . . . , r
k+2
.
Analog demonstrat iei folosite la Teorema ?.1, se deduce ca problema determinarii lui
(u
1
, u
2
) este echivalenta cu problema determinarii numerelor: x
1
, x
2
, y
1
, y
2
, z
1
, z
2
. Deter-
minarea lui (x
1
, y
1
, z
1
) se poate face doar prin determinarea unei reprezent ari a lui A n
raport cu (g
1
, g
2
, d
1
, e
1
, f
1
, . . . , e
k
, f
k
, d
2
), iar determinarea lui (x
2
, y
2
, z
2
) prin aarea unei
reprezent ari a lui B.
Daca dispune de o putere de calcul nelimitata, S poate sa determine o reprezentare a lui
A si o reprezentare a lui B n raport cu (g
1
, g
2
, d
1
, e
1
, f
1
, . . . , e
k
, f
k
, d
2
). Probabilitatea ca
aceste reprezentari sa e egale cu cele cunoscute de U este (cf. Propozit iei ?.4)
1
q
2k+3
. Deci
probabilitatea ca S sa ae identitatea lui U dupa executarea protocolului, este neglijabila.
2
8.1.4 Protocolul de depozit
Pentru a depozita un cec electronic, magazinul S urmeaza mpreuna cu B protocolul urmator:
1. S demonstreaza lui B cunoasterea reprezent arii identit at ii sale n raport cu (g
1
, g
2
), prin
protocolul din Prelegerea ?.
2. S trimite lui B numerele: A, B, sig
K
(A, B), c, r
1
, r
2
, . . . r
k+2
.
3. B verica validitatea semnaturii sig
K
(A, B), stocheaza A, B, sig
K
(A, B), c, r
1
, r
2
, . . . , r
k+2
ntr-o baza de date si crediteaza contul lui S cu valoarea cecului.

In plus fat a de protocolul de depozit pentru monezi electronice, B introduce n lista de


recuperare termenii (r
i1
+ r
i2
)(r
i3
+ r
i4
)
1
(mod q), pentru 1 i j.
Propozit ia 8.4 Daca moneda (A, B, sig
K
(A, B)) apare de doua ori n baza de date a bancii,
atunci banca poate determina identitatea utilizatorului necinstit care a utilizat moneda de doua
ori.
Demonstrat ia acestei propozit ii este analoga cu demonstrat ia Teoremei ?.2 pentru sistemul de
baza. 2
8.1.5 Protocolul de recuperare
Daca utilizatorul U doreste sa recupereze valoarea nefolosita din cecul (m

, sig
K
(m

)) (core-
spunzatoare generatorilor (e
j+1
, f
j+1
), . . . , (e
k
, f
k
)), el urmeaza mpreun a cu banca urmatorul
protocol:
1. U i trimite lui B identitatea sa I mpreun a cu m
1
.
2. B verica daca m
1
este asociat lui I n baza de date a cecurilor emise.
8.1. SISTEMUL DE PLAT

A CU CECURI NEDIVIZIBILE 101


3. U trimite lui B a
i
, b
i
, cu j < i k.
4. B veric a daca b
i
= 0, i, j < i k si daca a
i
(b
i
)
1
(mod q), (i = j +1, . . . k) nu apart in
listei de recuperare.
Daca B accepta, se trece la pasul 5.
5. U i demonstreaza lui B prin protocolul din Prelegerea ? cunoasterea unei reprezentari a
lui m
1
_
_
k

i=j+1
e
a
i
i
f
b
i
i
_
_
1
(mod p) n raport cu (e
1
, f
1
, . . . , e
j
, f
j
, d
2
).
6. Daca B accepta proba lui U, el crediteaza contul lui U cu suma corespunzatoare si imtro-
duce a
i
(b
i
)
1
, i = j + 1, . . . , k n lista de recuperare. Apoi sterge m
1
din baza de date a
cecurilor emise
Teorema 8.2 Presupunand ca protocoalele de extragere, de plata si de depozit sunt executate
corect, daca U este necinstit n protocolul de recuperare, atunci B nu accepta sa-i returneze
suma ceruta la pasul 6.
Demonstrat ie:

In cazul n care U este necinstit, ar doua situat ii de analizat:


1. U a utilizat anterior cel put in una din perechile (a
i
, b
i
), j < i k.

In acest caz, n protocolul de depozit al cecurilor, banca a stocat n lista de recuperare


valoarea (r
i1
+ r
i2
)(r
i3
+ r
i4
)
1
= (
iA
+
iB
)(
iA
+
iB
)
1
= a
i
s(b
i
s)
1
= a
i
b
1
i
. Deci
protocolul de recuperare se opreste la pasul 4 si B nu accepta sa-i returneze lui U valoarea
ceruta de acesta.
2. U ncearc a sa genereze perechi (a
i

, b
i

), j < i k care nu au fost generate n protocolul


de extragere a cecurilor.

In acest caz U ar trebui sa determine numerele (a
i

, b
i

), j <
i k astfel nc at sa cunoasca o reprezentare a lui m
1
_
_
k

i=j+1
e
a
i

i
f
b
i

i
_
_
1
n raport cu
(e
1
, f
1
, . . . , e
j
, f
j
, d
2
). Acest lucru este echivalent pentru U cu determinarea numerelor
a
i

, (1 i k + 1) si b
i

, (1 i k) astfel nc at:
m
1
_
_
k

i=j+1
e
a
i

i
f
b
i

i
_
_
1
=
_
_
j

i=1
e
a
i

i
f
b
i

i
_
_
d
a
k+1

2
m
1
=
_
k

i=1
e
a
i

i
f
b
i

i
_
d
a
k+1

2
(mod q).
Deoarece protocolul de extragere a fost executat corect, avem:
m
1
=
_
k

i=1
e
a
i
i
f
b
i
i
_
d
a
k+1
2
(mod q).
Cum U nu poate determina n timp polinomial doua reprezentari diferite ale lui m
1
n
raport cu (e
1
, f
1
, . . . , e
K
, f
K
, d
2
), rezulta ca a
i

= a
i
, i {1, 2, . . . , k +1} si b
i

= b
i
, i
{1, 2, . . . , k}.
Am demonstrat astfel ca U este obligat sa foloseasca n protocolul de recuperare perechi (a
i
, b
i
)
care au fost generate n protocolul de extragere. Deci n niciunul din cele doua cazuri, B nu
accepta sa-i returneze lui U suma ceruta, iar alta strategie pentru U nu exista. 2
102 PRELEGEREA 8. CECURI ELECTRONICE
Din punct de vedere al securitat ii, sistemul de cecuri este echivalent cu sistemul de baza,
toate proprietat ile demonstrate pentru sistemul de baza raman and valabile si la sistemul de
cecuri.
Sistemul de cecuri nu este ns a ecient, deoarece orice cec poate utilizat o singura data, iar
dupa protocolul de plata utilizatorul este obligat sa urmeze mpreun a cu banca protocolul de
recuperare. Aceste dezavantaj poate eliminat part ial folosind un protocol de cecuri divizbile.
8.2 Sistemul de plata cu cecuri divizibile
Un cec divizibil este caracterizat de o valoare maxima si de proprietatea de divizibilitate:
utilizatorul care a extras cecul din banca poate sa utilizeze parti ale lui n diferite tranzact ii, cu
condit ia sa nu depaseasca suma maxima.

In orice moment, utilizatorul poate sa ceara bancii
sa-i returneze suma neutilizata a cecului, caz n care banca si utilizatorul vor urma protocolul
de recuperare.
Pentru a obt ine proprietatea de divizibilitate, modicam sistemul de plata cu cecuri nedi-
vizibile n felul urmator:
1. La init ializarea sistemului, banca genereaza toate numerele si tuplurile generatoare folosite
n sistemul de cecuri nedivizibile.

In plus, banca genereaza nc a un tuplu generator
(h
1
, h
2
, . . . , h
k
) G
k
q
.
2. Un cec electronic este reprezentat sub forma (m

, sig
k
(m

)) cu restrict ia ca exista s Z

q
astfel nc at m

= m
s
(mod p), unde forma lui m este de aceasta data:
m = (g
u
1
r
1
g
u
2
r
2
d
1
)
k

i=1
_
e
a
i
i
f
b
i
i
h
a
i
r
i
_
d
a
k+1
2
(mod p),
cu a
1
, . . . , a
k+1
, b
1
, . . . , b
k
, r alese aleator de U la pasul al doilea al protocolului de ex-
tragere.
Valoarea cecului este data de termenii de forma e
a
i
i
f
b
i
i
h
a
i
r
i
(n acest caz ea este 2
k
1),
iar generatorii d
1
si d
2
au acelasi rol ca n sistemul de cecuri nedivizibile.
Sa arat am cum se modica n acest caz protocoalele de extragere a cecurilor, de plata si de
depozit.
8.2.1 Protocolul de extragere a cecurilor electronice divizibile
Presupunand ca utilizatorul U cu identitatea I = g
u
1
1
g
u
2
2
(mod p) doreste sa extraga un cec de
valoare maxima 2
k
1, U si B urmeaza protocolul urmator:
1. U i demonstreaza lui B cunoasterea reprezent arii (u
1
, u
2
) a lui I n raport cu (g
1
, g
2
) prin
protocolul din Prelegerea ?.
2. U genereaza aleator 2k + 2 numere distincte a
1
, a
2
, . . . , a
k+1
, b
1
, . . . , b
k
Z

q
. Apoi el
calculeaza m = (g
u
1
r
1
g
u
2
r
2
d
1
)
k

i=1
_
e
a
i
i
f
b
i
i
h
a
i
r
i
_
d
a
k+1
2
(mod p) si trimite m lui B.
3. B realizeaza urmatoarele operat ii:
8.2. SISTEMUL DE PLAT

A CU CECURI DIVIZIBILE 103


(a) extrage din contul lui U valoarea maxima a cecului;
(b) stocheaza m si I ntr-o baza de date a cecurilor emise;
(c) genereaza aleator w Z
q
;
(d) trimite lui U numerele z = m
x
(mod p), a = g
w
(mod p) si b = m
w
(mod p).
4. U realizeaza urmatoarele operat ii:
(a) genereaza aleator s Z

q
, u, v Z
q
;
(b) calculeaza: m

= m
s
= (g
u
1
rs
1
g
u
2
rs
2
d
s
1
)
k

i=1
_
e
a
i
s
i
f
b
i
s
i
h
a
i
rs
i
_
d
a
k+1
s
2
(mod p),
z

= z
s
(mod p), w

= uw + v (mod q), a

= a
u
g
v
(= g
w

) (mod p),
b

= b
us
(m

)
v
(= (m

)
w

) (mod p),
(c) determina o descompunere aleatoare m

= AB (mod p) astfel: scrie n mod aleator


ecare dintre numerele u
1
rs, u
2
rs, s, a
1
rs, . . . , a
k
rs, a
k+1
s ca suma de doua numere
(toate calculele se fac modulo q):
u
1
rs = x
1
+ x
2
, u
2
rs = y
1
+ y
2
, s = z
1
+ z
2
,
a
1
rs =
1A
+
1B
. . . , a
k
rs =
kA
+
kB
, a
k+1
s =
A
+
B
(d) calculeaza:
A = (g
x
1
1
g
y
1
2
d
z
1
1
)
_
k

i=1
e
a
i
s
i
f
b
i
s
i
h

iA
i
_
d

A
2
(mod p),
B = (g
x
2
1
g
y
2
2
d
z
2
1
)
_
k

i=1
h

iB
i
_
d

B
2
(mod p) si c

= H(m

||z

||a

||b

||A),
(e) trimite lui B numarul c = c

u
1
(mod q).
5. B raspunde cu r = cx + w (mod q).
6. U accepta daca si numai daca g
r
= h
c
a (mod p), m
r
= z
c
b (mod p).

In nal, U calculeaza r

= ru + v (mod q).
(z

, a

, b

, r

) va constitui o semnatur a valida asupra lui m

(dupa cum rezulta din Propozit ia


?.1).
8.2.2 Protocolul de plata
Daca U doreste sa foloseasca suma 2
j
1 din cecul sau (corespunzatoare generatorilor
(e
1
, f
1
, h
1
), . . . , (e
j
, f
j
, h
j
)) la magazinul S, este executat urmatorul protocol:
1. U i trimite lui S numerele A, B, sig
K
(A, B) = (z

, a

, b

, r

).

In plus, U l informeaza pe S asupra sumei pe care doreste sa o cheltuiasca (2


j
1 n
acest caz).
2. S se asigura ca AB = 1.
Apoi S verica semnatura bancii: ver
K
(m

, sig
K
(m

) = T
_
g
r

= h
c

(mod p)
(m

)
r

= (z

)
c

(mod p)
104 PRELEGEREA 8. CECURI ELECTRONICE
cu c

= H(AB||z

||a

||b

||A)
si trimite o provocare c Z

q
\ {1}.
3. U verica daca c = 1, apoi calculeaza si trimite lui S raspunsurile:
for i = 1 to j do r
i
= (r
i1
, r
i2
, r
i3
) (a
i
s, b
i
s,
iA
+ c
iB
)
r
k+1
= (r
(k+1)1
, r
(k+1)2
, r
(k+1)3
) (x
1
+ cx
2
, y
1
+ cy
2
, z
1
+ cz
2
)
r
k+2

A
+ c
B
r
k+3

k

i=j+1
e
a
i
s
i
f
b
i
s
i
h

iA
+c
iB
i
.
Pentru ecare generator (e
i
, f
i
, h
i
) care apare n expresia sumei, U releva puncte pentru
exponent ii lui e
i
si f
i
si o dreapta pentru exponentul lui h
i
, iar pentru generatorii care nu
apar, U nu releva nimic.
4. S accepta
_

_
r
i1
, r
i2
= 0, i = 1, . . . , j
AB = 1
AB
c
= (g
r
(k+1)1
1
g
r
(k+1)2
2
d
r
(k+1)3
1
)
j

i=1
(e
r
i1
i
f
r
i2
i
h
r
i3
i
) d
r
k+2
2
r
k+3
(mod p)
Propozit ia 8.5 (Completitudinea) Daca U este onest n protocolul de plata, atunci S ac-
cepta la pasul 4.
Demonstrat ie:
Daca protocolul este executat pas cu pas, la pasul 4 avem r
i1
= a
i
s, r
i2
= b
i
s, i, (1 i j).
Cum a
i
= 0, b
i
= 0, s = 0 rezulta r
i1
= 0, r
i2
= 0, i, (1 i j).
m

= m
s
, s = 0 = m

1 = AB = 1.
_
g
r
(k+1)1
1
g
r
(k+1)2
2
d
r
(k+1)3
1
_
j

i=1
(e
r
i1
i
f
r
i2
i
h
r
i3
i
) d
r
k+2
2
r
k+3
=
=
_
g
x
1
+cx
2
1
g
y
1
+cy
2
2
d
z
1
+cz
2
1
_
j

i=1
_
e
a
i
s
i
f
b
i
s
i
h

iA
+c
iB
i
_
d

A
+c
B
2
k

i=j+1
_
e
a
i
s
i
f
b
i
s
i
h

iA
+c
iB
i
_
=
= (g
x
1
1
g
y
1
2
d
z
1
1
)
k

i=1
_
e
a
i
s
i
f
b
i
s
i
h

iA
i
_
d

A
2
_
(g
x
2
1
g
y
2
2
d
z
2
1
)
_
k

i=1
h

iB
i
_
d

B
2
_
c
= AB
c
(mod p)
8.2.3 Protocolul de depozit
Pentru a depozita un cec electronic, magazinul S urmeaza mpreun a cu B protocolul
urmator:
1. S demonstreaza lui B cunoasterea reprezent arii identitat ii sale n raport cu (g
1
, g
2
) prin
protocolul din Prelegerea ?.
2. S trimite lui B numerele A, B, sig
K
(A, B), c, r
1
, r
2
, . . . r
j
, r
k+1
, r
k+2
, r
k+3
.
3. B verica validitatea semnaturii sig
K
(A, B), stocheaza A, B, sig
K
(A, B), c, r
1
, r
2
, . . . , r
j
,
r
k+1
, r
k+2
, r
k+3
ntr-o baza de date si crediteaza contul lui S cu valoarea cecului.
B introduce n lista de recuperare termenii r
i1
(r
i2
)
1
(mod q), pentru 1 i j.
8.2. SISTEMUL DE PLAT

A CU CECURI DIVIZIBILE 105


Teorema 8.3
1. Daca U foloseste de doua ori aceeasi parte a unui cec divizibil, B poate aa identitatea
sa.
2. Daca U utilizeaza un cec de doua ori, dar este onest (utilizeaza de ecare data part i
nefolosite ale cecului), atunci probabilitatea ca B sa ae identitatea lui U este neglijabila.
Demonstrat ie:
1. Presupunem fara a restrange generalitatea, ca U utilizeaza n doua protocoale de plata
distincte valoarea corespunzatoare generatorului (e
1
, f
1
, h
1
).
B se va aa n posesia urmatoarelor informat ii: A, B, c, r
1
, r
k+1
, r
k+2
, r
k+3
, c

, r
1

, r
k+1

,
r
k+2

, r
k+3

, unde c = c

sunt cele doua provocari trimise de S n doua protocoale de plata.


_
r
(k+1)1
= x
1
+ cx
2
(mod q)
r
(k+1)1

= x
1
+ c

x
2
(mod q)
Acesta este un sistem liniar cu determinantul c

c = 0; el admite solut ia unica:


_
x
1
= (c
1
(c

)
1
)
1
(c
1
r
(k+1)1
(c

)
1
r
(k+1)1

) (mod q)
x
2
= (c c

)
1
(r
(k+1)1
r
(k+1)1

) (mod q)
Analog se determina:
_
y
1
= (c
1
(c

)
1
)
1
(c
1
r
(k+1)2
(c

)
1
r
(k+1)2

) (mod q)
y
2
= (c c

)
1
(r
(k+1)2
r
(k+1)2

) (mod q)
_
z
1
= (c
1
(c

)
1
)
1
(c
1
r
(k+1)3
(c

)
1
r
(k+1)3

) (mod q)
z
2
= (c c

)
1
(r
(k+1)3
r
(k+1)3

) (mod q)
_

1A
= (c
1
(c

)
1
)
1
(c
1
r
13
(c

)
1
r
13

) (mod q)

1B
= (c c

)
1
(r
13
r
13

) (mod q)
Apoi se pot calcula:
_
u
1
rs = x
1
+ x
2
(mod q) (1) u
2
rs = y
1
+ y
2
(mod q) (2)
s = z
1
+ z
2
(mod q) (3) a
1
rs =
1A
+
1B
(4)
Din r
11
= a
1
s si din (4) rezulta r = (a
1
rs)(a
1
s)
1
= (
1A
+
1B
)r
1
11
(mod q) (5).
Din (1), (2) si (3) se pot calcula:
_
u
1
r = (u
1
sr)(s)
1
= (x
1
+ x
2
)(z
1
+ z
2
)
1
(mod q)
u
2
r = (u
2
sr)(s)
1
= (y
1
+ y
2
)(z
1
+ z
2
)
1
(mod q)
Din (5) va rezulta acum:
u
1
= (u
1
r)r
1
= (x
1
+ x
2
)(z
1
+ z
2
)
1
[(
1A
+
1B
)r
1
11
] = (x
1
+ x
2
)(z
1
+ z
2
)
1
r
11
(
1A
+

1B
)
1
(mod q), u
2
= (y
1
+ y
2
)(z
1
+ z
2
)
1
r
11
(
1A
+
1B
)
1
(mod q).
Deci B a calculat identitatea lui U: (u
1
, u
2
).
2. Valoarea unui cec ind 2
k
1, putem presupune ca U utilizeaza n primul protocol de
plata valoarea 2
j
1 (corespunzatoare generatorilor (e
1
, f
1
, h
1
), . . . , (e
j
, f
j
, h
j
)), iar n al
doilea protocol, valoarea 2
k
2
j
(corespunzatoare generatorilor (e
j+1
, f
j+1
, h
j+1
), . . . ,
(e
k
, f
k
, h
k
)). Atunci B se va aa n posesia informat iilor:
106 PRELEGEREA 8. CECURI ELECTRONICE
A, B, c, r
1
, . . . , r
j
, r
k+1
, r
k+2
, r
k+3
, c

, r
j+1

, . . . , r
k

, r
k+1

, r
k+2

, r
k+3

.
Valorile x
1
, x
2
, y
1
, y
2
, z
1
, z
2
se determina la fel ca n demonstrat ia primului punct, iar
pentru
A
,
B
avem:
_

A
= (c
1
(c

)
1
)
1
(c
1
r
k+2
(c

)
1
r
k+2

) (mod q)

B
= (c c

)
1
(r
k+2
r
k+2

) (mod q)
r
i1
= a
i
s, r
i2
= b
i
s, (1 i j), r
i1

= a
i
s, r
i2

= b
i
s, (j + 1 i k).
Cum s = z
1
+ z
2
(mod q) =
_

_
a
i
= r
i1
(z
1
+ z
2
)
1
(mod q)i = 1, . . . , j
a
i
= r
i1

(z
1
+ z
2
)
1
(mod q)i = j + 1, . . . , k
a
k+1
= (
A
+
B
)(z
1
+ z
2
)
1
(mod q)
b
i
= r
i2
(z
1
+ z
2
)
1
(mod q), i = 1, . . . , j
b
i
= r
i2

(z
1
+ z
2
)
1
(mod q), i = j + 1, . . . , k
u
1
rs, u
2
rs, u
1
r, u
2
r se calculeaza identic cu primul punct.
B mai stie ca m

= m
s
(mod p). Din m

si s = z
1
+ z
2
(mod q), B va determina
m = (m

)
1
s
(mod p).
Dar m = (g
u
1
r
1
g
u
2
r
2
d
1
)
k

i=1
_
e
a
i
i
f
b
i
i
h
a
i
r
i
_
d
a
k+1
2
(mod p) md
1
1
_
k

i=1
e
a
i
i
f
b
i
i
_
1
d
a
k+1
2
=
_
I
k

i=1
h
a
i
i
_
r
(mod p).
Notand m
1
= md
1
1
_
k

i=1
e
a
i
i
f
b
i
i
_
1
d
a
k+1
2
si m
2
=
k

i=1
h
a
i
i
, obt inem m
1
= (Im
2
)
r
(mod p)
cu m
1
, m
2
cunoscute.
B trebuie sa determine identitatea lui U din urmatoarea ecuat ie cu necunoscutele I si r:
m
1
= (Im
2
)
r
(mod p).
Ecuat ia are exact q 1 solut ii: pentru ecare valoare a lui r Z

q
, se determina n mod
unic I = m
1
r
1
m
1
2
(mod p).
Deci B determina I (identitatea lui U), cu probabilitatea
1
q1
. 2
Protocolul de recuperare este identic cu cel pentru sistemul de cecuri nedivizibile, Teorema
8.2 ram anand adevarat a si n cazul sistemului de cecuri care accepta divizibilitatea.
Se observa ca n protocolul de plata U trebuie sa releve m

, deci toate plat ile efectuate cu


part i ale aceluiasi cec pot legate ntre ele. Gasirea unei reprezent ari a cecului astfel ncat sa
nu poata realizate legaturi ntre plat ile facute cu acelasi cec ramane o problema deschisa.
Prelegerea 9
Protocoale de vot electronic
Guvernele si organizat iile democratice au nevoie de anumite mecanisme pentru a permite
alegatorilor sa voteze.

In mod tradit ional, alegerile reprezinta pentru persoanele cu drept de vot
mecanismele ociale prin care acestea si pot exprima opt iunile n mod democratic, n timp ce
sondajele constituie una din cele mai bune metode neociale de aare a opt iunilor electoratului.
At at n alegeri cat si n sondaje intimitatea si securitatea sunt deziderate obligatorii dar al caror
cost poate creste substant ial. Mecanismele care asigura securitatea si intimitatea alegatorilor
pot scumpe si/sau consumatoare de timp pentru administratorii acestora si neconvenabile
pentru alegatori. Organizarea de alegeri sigure devine si mai dicila atunci cand alegatorii sunt
distribuit i pe o mare zona geograca.
Acestea sunt cateva motive pentru care poate propusa cu succes modalitatea de vot
electronic. Primele idei apar n anii 80, iar ideile dezvoltate n acest interval de timp l fac din
ce n ce mai credibil pentru utilizarea sa ntr-un mediu informatizat.
9.1 Caracteristici ale unui sistem de vot
Desi exista numeroase protocoale si sisteme de votare, procedura de baza pentru organizarea de
alegeri democratice este standard. Aceasta procedura indiferent daca este vorba de o votare
clasica sau una electronica implica n general ndeplinirea a patru sarcini:
1.

Inregistrarea: crearea unei liste de persoane care au dreptul sa voteze;
2. Validarea: vericarea datelor personale ale celor care doresc sa voteze. Se permite
votarea numai pentru cei care au drept sa voteze si nu au votat deja.
3. Colectarea voturilor de la centrele de votare.
4. Numararea voturilor.
Pentru a avea ncredere n rezultatul alegerilor, oamenii trebuie sa aiba dovezi ca aceste sarcini
au fost ndeplinite n mod corect. Exista ns a numeroase posibilitat i de corupere a sistemului
n timpul ndeplinirii ecareia din aceste sarcini. De exemplu:
Autoritat ile electorale pot trisa permit and alegatorilor far a drept de vot sa se nregistreze
la vot, iar alegatorilor nregistrat i sa voteze de mai multe ori. De asemenea poate pierde
107
108 PRELEGEREA 9. PROTOCOALE DE VOT ELECTRONIC
sau adauga voturi suplimentare.
1
Alegatorii fara drept de vot se pot nregistra (cel mai frecvent folosind numele unei per-
soane decedate) sau cei cu drept de vot se pot nregistra sub mai multe nume.
Se poate ncerca participarea la vot sub o identitate falsa.
Cutiile cu voturi, voturile sau masinile de num arat pot compromise.
Atunci cand se proiecteaza un sistem electronic de vot este esent ial sa se implementeze modali-
tat i prin care cele patru condit ii ment ionate mai sus sa e ndeplinite fara a sacrica intimitatea
alegatorilor sau a oferi posibilitat i de frauda.

In plus, mai trebuie ndeplinite cateva condit ii
specice unui astfel de sistem. Conform cu [5], [6], un sistem de vot electronic trebuie sa
satisfaca urmatoarele cerint e:
1. Anonimitatea votant ilor: Nu exista nici o modalitate prin care poate dezvaluita
identitatea unei persoane care voteaza.
2. Acuratet e: Oricine poate verica validitatea voturilor si se poate asigura ca voturile nu
au fost schimbate, multiplicate sau eliminate de cineva (inclusiv de autoritat i).
3. Necoliziune: Garant ia ca toate voturile legale difera ntre ele.
4. Corectitudine de numar: Suma voturilor repartizate pe candidat i este egala cu numaul
de voturi valide.
5. Vericabilitate: Orice votant poate controla daca votul sau a fost num arat si repartizat
candidatului pe care l-a votat.
6. Detectarea dublei votari: Daca apare un vot dublu, organizatorii pot identica per-
soana care a votat de mai multe ori.

In aceasta prelegere vom prezenta cateva protocoale de vot care sa ndeplineasca cat mai multe
din aceste cerint e.
9.2 Protocol independent de vot
Cele mai simple protocoale de vot nu folosesc nici o autoritate, bazajndu-se numai pe alegatori.
Sunt primele protocoale concepute pentru votare, bazate pe aplcari succesive de criptari si/sau
semnari digitale de mesaje. Anonimitatea se obt ine prin aplicarea de permut ari n diverse faze.
Pentru exemplicare, prezent am protocolul lui Michael Merritt:
Sunt N alegatori, ecare alegator i av and cheia publica de criptare e
i
si cheia privata d
i
,
precum si o semnatur a electronica sig
i
. Protocolul este urmatorul;
1. Fiecare alegator i ataseaz a un num ar aleator r
i
la votul sau m
i
.
1
Este celebra declarat ia dictatorului rus I.V.Stalin: Nu este important pe cine voteaza lumea; important este
cine numara voturile.
9.3. PROTOCOL CU AUTORITATE CENTRRAL

A 109
2. Cripteaza perechea (m
i
, r
i
) cu cheile publice ale tuturor alegatorilor n ordinea 1, . . . , N,
obt in and secvent a e
N
(e
N1
(. . . (e
1
(m
i
, r
i
)) . . .).
3. Repeta pasul anterior, adaug and dupa ecare criptare cate un numar aleator R
i
distinct
(pe care-l trimite lui i). Se obt ine
e
N
(R
N
, e
N1
(. . . (R
2
, e
1
(R
1
, e
N
(e
N1
(. . . (e
1
(m
i
, r
i
)) . . .)
4. Toate aceste voturi sunt stranse de alegatorul N. Fiecare alegator i:
(a) Decripteaza mesajul cu cheia sa secreta d
i
, scoate num arul R
i
si se asigura ca este
pe lista numerelor aleatoare primite.
(b) Amesteca cele N voturi si le trimite lui i 1 (alegatorul 1 le trimite lui N).
Dupa afectuarea acestui pas, alegatorul N dispune de N mesaje de forma
e
N
(e
N1
(. . . (e
1
(m
i
, r
i
)) . . .).
pe care le semneaza cu semnatura sa sig
N
.
5. Procedeul se reia, ecare alegator i:
(a) Veric a validitatea semnaturii alegatorului i + 1;
(b) Decripteaza mesajele primite;
(c) Aplica propria sa semnatur a sig
i
si trimite lui i 1 cele N mesaje de forma
sig
i
(e
i
(. . . (e
1
(m
i
, r + i) . . .).
6. Tot i alegatorii conrma semnatura alegatorului 1. Voturile sunt num arate n comun,
ecare alegator putandu-se convinge de existent a votului sau datorita num arului aleator
atasat.

In timpul procesului de votare numarul de voturi este constant, deci pierderea sau adaugarea
unui vot este usor de detectat.
Amestecul voturilor asigura anonimitatea.
De asemenea, voturile nu pot nlocuite; o astfel de ncercare pe parcursul primei runde este
depistata prin num arul aleator introdus incorect. Daca alegatorul i nlocuieste votul alegstorului
j (j > i), atunci alegatorul j va detecta acest lucru la nceputul celei de-a doua runde de
decriptari (pasul 5).
O ncercare de nlocuire pe parcursul celei de-a doua runde este depistata la decriptarea
nala cand ecare alegator si veric a prpriul sau numar r
i
.
Un defect major al acestui protocol consta n implementarea dicila datorata numarului
mare de calcule, dependent de num arul de votant i N.
9.3 Protocol cu autoritate centrrala
Pentru micsorarea volumului de calcule se poate itnroduce o noua entitate care se ocupa cu
nregistrarea alegatorilor; ea este numit a de obicei autoritate centrala (AC). Prezentam o
variant a de protocol cu autoritate centrala. Se presupune ca prin carta de alegator, ecare
persoana k dispune de doua chei e
k
(publica) si d
k
(secreta).
110 PRELEGEREA 9. PROTOCOALE DE VOT ELECTRONIC
1. AC ntreaba ecare alegator daca doreste sau nu sa participe la alegeri.
2. Se publica o lista cu tot i alegatorii nregistrat i.
3. Fiecare alegator primeste de la AC un ID (printr-un protocol de dezvaluire part ial a a
secretelor)
4. Fiecare alegator i trimite spre AC perechea (ID, e
i
(ID, m)).
5. AC publica e
i
(ID, m) pentru tot i alegatorii de pe lista de la punctul (2).
6. Fiecare alegator i trimite anonim spre AC perechea (ID, d
i
).
7. AC asociaza mesajele dupa ID, le decripteaza, verica autenticitatea voturilor si publica
perechile (ID, m) pentru tot i participant ii la vot.
Acest sistemmpiedica atat alegatorii neautorizat i sa voteze, cat si pe cei neautorizat i sa voteze
de doua ori. Alegatorilor nu li se pot aa identitatea reala, deoarece ecare ID se obt ine printr-
un protocol de dezvaluire part iala a secretelor, deci AC nu stie la cine a ajuns ecare ID.
Exista si n acest protocol cateva neajunsuri. Primul si cel mai important este acela ca
o autoritate centrala reprezint a un punct de corupt ie asupra caruia nu exista control. ea poate
falsica voturi n numele alegatorilor care se abt in, poate pierde voturi valide (nici un alegator
nu poate demonstra ca a trimis ntr-adevar un vot).

In plus, implementarea sa ramane destul
de complexa.
O prima idee de mbunat at ire a sistemului a constat n introducerea mai multor autoritat i
centrale, dependente una de alta. De exemplu, se pot introduce doua autoritat i: una care se
ocupa de legitimitatea alegatorilor (sa i spunem AL - agente de legimitate), alta care se ocupa
de num ararea efectiva a voturilor (AT - agent ie de tabulare). Un vot valid trebuie sa treaca
prin ambele agent ii pentru validare. Prima recunoaste dreptul alegatorului de a vota (fara a
vedea cont inutul votului), eliberandu-i un buletin. A doua agent ie primeste votul mpreuna cu
buletinul de validare. O varianta de astfel de protocol (n ipoteza ca cele doua agent ii nu se
aliaza pentru falsicarea vot arii) este:
1. Fiecare alegator (dupa demonstrarea identitat ii sale) solicita AL un num ar de autenti-
care.
2. AL genereaza aleator numere de autenticare si le distribuie.
3. AL trimite spre AT lista tuturor numerelor de autenticare.
4. Fiecare votant alege aleator un ID (num ar de validare) si trimite spre AT un triplet
format din numarul de autenticare, ID si votul sau.
5. AT veric a numarul de autenticare si daca este pe lista l bifeaza si publica votul
mpreun a cu nunm arul de validare.
9.4. PROTOCOLUL MU-VARADHARAJAN 111
9.4 Protocolul Mu-Varadharajan
Dupa 1986 au fost publicate diverse protocoale de vot, ecare av and avantajele si dezavantajele
sale. A se vedea de exemplu [1] (primul protocol de vot utilizabil pe scara larga), [2], [4], [7],
[8], [9].

In continuarea acestei prelegeri vom prezenta un protocol de vot electronic pentru o ret ea
informatica (bazat pe schemele de semnatur a electronica ElGamal si RSA) propus de Mu si
Varadjarajan n 1998 ([6]). Ulterior n [3] sunt demonstrate si corectate cateva slabiciuni.
Componentele protocolului Mu-Varadharajan sunt:
V - mult ime nita nevida de votant i;
AS - un server de autenticare a votantilor;
V S - o mult ime nita de servere de votare;
TCS - un server de num arare a buletinelor de vot;
CA - un certicat de autenticitate.
Protocolul cont ine trei etape:
1. Obt inerea buletinului de vot;
2. Votarea (si colectarea buletinelor de vot);
3. Numararea buletinelor de vot.
9.4.1 Init ializarea
Vom nota cu p un num ar prim mare si cu t stampila de timp. De asemenea, va reprezenta
concatenarea secvent elor si b.

Inainte de a incepe protocolul de vot:


Fiecare participant V primeste o pereche de chei RSA : (e
V
, d
V
) si un modul n
V
obt inut
prin nmult irea a doua numere prime mari. Reamintim, conform algoritmului RSA:
e
V
d
V
1 (mod (n
V
))
AS det ine un modul n
AS
si o pereche de chei RSA (e
AS
, d
AS
). n
AS
si e
AS
sunt publice,
cunoscute de toti votant ii.
Orice votant valid V are un certicat de votant Cert
V
eliberat pe termen lung de CA.
Acesta este semnat de cheia secreta a lui CA, iar cont inutul lui include
un num ar serial,
identitatea votantului V ,
identitatea CA,
cheia publica e
V
si modulul n
V
,
intervalul de valabilitate,
o stampil a de timp.
112 PRELEGEREA 9. PROTOCOALE DE VOT ELECTRONIC
9.4.2 Etapa I: Obt inerea buletinului de vot
1. V trebuie sa demonstreze ca este un alegator valid. Pentru aceasta el alege un factor
blind b si trei numere aleatoare g, r, k
1
Z

p
. Pe baza lor calculeaza parametrii
a = g
r
(mod p),
x
1
= gb
e
AS
(mod n
AS
), (1)
x
2
= g
k
1
b
e
AS
(mod n
AS
),
x
3
= ab
e
AS
(mod n
AS
) (2)
si trimite lui AS cvadruplul (V, AS, Cert
V
, (x
1
x
2
x
3
t)
d
V
(mod n
V
)).
2. AS verica ntai validitatea certicatului si valideaza semnatura
(x
1
x
2
x
3
t)
d
V
(mod n
V
)). Apoi AS alege un num ar aleator k
2
si calculeaza
x
4
= (k
2
t)
e
V
(mod n
V
)
x
5
= (x
3k
2
1
x
2
2
x
3
)
d
AS
(mod n
AS
) = (y
1
y
2
a)
d
AS
b
3(k
2
+1)
(mod n
AS
)
unde y
1
= g
k
1
+k
2
, y
2
= g
k
1
+2k
2
. Mesajul (AS, V, x
4
, (x
5
t)
e
V
(mod n
V
)) este trimis lui V .
Parametrul k
2
este diferit pentru ecare votant, iar AS stocheaza n baza sa de date k
2
mpreun a cu identitatea lui V (Cert
V
).
3. Prin decriptarea lui x
4
, V obt ine k
2
. Deci V poate calcula y
1
si y
2
, dupa care determina
s = x
5
b
3(k
2
+1)
= (y
1
y
2
a)
d
AS
(mod n
AS
)
s este semnatura RSA pentru produsul y
1
y
2
a.
Pentru un vot m, V poate genera acum o semnatura (s
1
, s
2
) de tip ElGamal:
s
1
= (k
1
+ k
2
)
1
(ma r) (mod p 1), (3)
s
2
= (k
1
+ 2k
2
)
1
(ma r) (mod p 1). (4)
Buletinul de vot al lui V este
T = a g y
1
y
2
s s
1
s
2
m.
9.4.3 Etapa II: Votarea (si colectarea buletinelor de vot)

In aceasta faza V poate trimite prin ret ea buletinul sau de vot spre un server de votare V S.
Scopul principal al unui V S este de a garanta validitatea buletinului de vot. Protocolul cont ine
doi pasi:
1. V trimite T spre V S;
2. V S decripteaza T si veric a validitatea lui a, y
1
, y
2
folosind semnatura s si cheia publica
e
AS
. Apoi V S determina corectitudinea semnaturii (s
1
, s
2
) pentru m, folosind relat iile:
ay
s
1
1
= g
ma
(mod p), (5)
ay
s
2
2
= g
ma
(mod p) (6)
Daca rezultatul acestei vericari este pozitiv, atunci V S are certitudinea ca buletinul T
este valid.
V S stocheaza toate buletinele de vot si trimite n nal baza de date prin ret ea catre serverul
de numarare a buletinelor TCS.
9.5. SL

ABICIUNI ALE PROTOCOLULUI MU-VARADHARAJAN 113


9.4.4 Etapa III: Numararea buletinelor de vot
Toate V S-urile trimit buletinele catre TCS. Scopul acestuia este de a numara voturile si de a
depista pe cei care au votat de mai multe ori.
Sa presupunem ca V foloseste parametrii a, g, k
1
, k
2
pentru a semna si un alt vot m

si sa
trimita un al doilea buletin T = a g y
1
y
2
s s

1
s

2
m

spre alt V S.
Pentru a detecta o dubla votare, V S veric a parametrii a, g, y
1
, y
2
din toate buletinele T
pentru a vedea daca ei se repeta.

In caz armativ, el rezolva sistemul liniar
k
1
+ k
2
=
ma

ma
s

1
s
1
(mod p 1) (7)
k
1
+ 2k
2
=
ma

ma
s

2
s
2
(mod p 1) (8)
si aa k
2
. Folosind baza de date a lui AS, se identic a n mod unic votantul V .
9.5 Slabiciuni ale protocolului Mu-Varadharajan

In [3] se arata ca totusi exista doua modalitat i prin care cineva poate vota de mai multe ori
far a sa e depistat.
Sa presupunem ca V a obt inut buletinul valid de vot T = a g y
1
y
2
s s
1
s
2
m.
Pe baza lui poate genera un alt buletin valid T

astfel:
9.5.1 Atacul 1
La nceput V calculeaza g

, y

1
, y

2
, a

cu relat iile
g

= q
c
0
(mod p),
y

1
= (g

)
(k
1
+k
2
+c
1
)c
1
0
(mod p),
y

2
= (g

)
(k
1
+2k
2
+c
2
)c
1
0
(mod p),
a

= (g

)
(r+c
3
)c
1
0
(mod p),
unde c
0
, c
1
, c
2
, c
3
sunt numere ntregi care evrica condit iile c
1
+ c
2
+ c
3
= 0, c
1
c
2
c
3
= 0.
Acum V genereaza buletinul T

= a

1
y

2
s s

1
s

2
m unde (s

1
, s

2
) este semnatura
votului m cu cheile (k
1
+ k
2
+ c
1
)c
1
0
respectiv (k
1
+ 2k
2
+ c
2
)c
1
0
; anume
s

1
= ((k
1
+ k
2
+ c
1
)c
1
0
)
1
(ma

(r + c
3
)c
1
0
) (mod p 1)
s

2
= ((k
1
+ 2k
2
+ c
2
)c
1
0
)
1
(ma

(r + c
3
)c
1
0
) (mod p 1)

In faza de votare si de colectare a buletinelor, V poate trimite catre V S si al doilea buletin


T

. V S veric a nt ai semnatura s, apoi validitatea lui a

, y

1
, y

2
folosind ecuat ia
s
e
AS
= y
1
y
2
a (mod n
AS
) = y

1
y

2
a

(mod n
AS
)

In continuare V S verica validitatea lui (s

1
, s

2
) cu ecuat iile (5) si (6). Cum toate sunt
corecte, V S crede ca T

este un buletin valid si-l trimite lui TCS. Aici, pentru protejarea contra
dublei vot ari, TCS verica parametrii a

, g

, y

1
, y

2
si decide ca ei au fost folosit i o singura data.
Deci atacul funct ioneaz a. Chiar daca V S detecteaza ca semnatura s a mai fost utilizata, el nu
va putea detecta identitatea votantului ilegal (cu (7) si (8)).
9.5.2 Atacul 2
Similar primului atac, V alege ntai aleator numarul h si calculeaza
g

= g
h
, a

= a
h
2
, y

1
= y
h
2
1
, y

2
= y
h
2
2
, s

= s
h
2
114 PRELEGEREA 9. PROTOCOALE DE VOT ELECTRONIC
Apoi, semnatura (s

1
, s

2
) pentru m poate calculata cu o variant a a relat iilor (3) si (4)
folosind cheile (k
1
+ k
2
)h respectiv (k
1
+ 2k
2
)h:
s

1
= (k
1
+ k
2
)
1
h
1
(ma

hr) (mod p 1),


s

2
= (k
1
+ 2k
2
)
1
h
1
(ma

hr) (mod p 1).


Deci V poate genera un nou buletin de vot T

= a

1
y

2
s

1
s

2
m.
V S este convins de validitatea lui T

pentru ca relat iile


(s

)
e
AS
= (y
1
y
2
a)
h
2
= y

1
y

2
a

(mod n
AS
)
(y

1
)
s

1
a

= (g

)
a

m
(mod p)
(y

2
)
s

2
a

= (g

)
a

m
(mod p)
sunt vericate.
Cu aceste atacuri, un votant poate vota de oricate ori vrea, fara sa e detectat.
9.6 Protocolul Mu-Varadharajan modicat
Pentru a evita slabiciunile n fat a atacurilor prezentate anterior, este construita o variant a
mbunat at it a a protocolului de vot Mu-Varadharajan. Noua schem a are tot trei etape; acestea
sunt (s-au folosit aceleasi notat ii):
9.6.1 Etapa I: Obt inerea buletinului de vot
1. V alege doi factori blind b
1
, b
2
si doua nuemre aleatoare k
1
, r. Cu acesti parametri cal-
culeaza w
1
si w
2
dupa formulele
w
1
= g
r
b
e
AS
1
(mod n
AS
)
w
2
= g
k
1
b
e
AS
2
(mod n
AS
)
unde g Z

p
este un parametru public al sistemului.
V trimite lui AS structura {V, AS, Cert
V
, t, w
1
, w
2
, ((w
1
w
2
t)
d
V
(mod n
V
))}.
2. V S veric a validitatea certicatului si valideaza semnatura (w
1
w
2
t)
d
V
(mod n
V
).
Daca rezultatul veric arii este pozitiv, AS poate sigur ca parametrii primit i sunt corect i.
El continu a alegand un num ar aleator k
2
diferit pentru ecare votant si calculeaza
w
3
= (k
2
t)
e
V
(mod n
V
)
w
4
= (w
1
AS)
d
AS
(mod n
AS
) = (a AS)
d
AS
b
1
(mod n
AS
)
w
5
= (w
2
g
k
2
AS)
d
AS
(mod n
AS
) = (y
1
AS)
d
AS
b
2
(mod n
AS
)
w
6
= (w
2
2
g
k
2
AS)
d
AS
(mod n
AS
) = (y
2
AS)
d
AS
b
2
2
(mod n
AS
)
unde a = g
r
, y
1
= g
k
1
+k
2
, y
2
= g
k
1
+2k
2
.
Mesajul {AS, V, w
3
, ((w
4
w
5
w
6
t)
e
V
(mod n
V
))} este trimis lui V .

In paralel, AS
stocheaz a n baza sa de date k
2
mpreuna cu identitatea lui V .
3. V obt ine k
2
prin decriptarea lui w
3
, iar pe baza lui poate determina y
1
si y
2
. Mai departe,
V determina semnatura (s
1
, s
2
, s
3
) (eliminand factorii blind) conform relat iilor
s
1
= w
4
b
1
1
= (a AS)
d
AS
quad(mod n
AS
)
s
2
= w
5
b
1
2
= (y
1
AS)
d
AS
quad(mod n
AS
)
9.6. PROTOCOLUL MU-VARADHARAJAN MODIFICAT 115
s
3
= w
6
b
2
2
= (y
2
AS)
d
AS
quad(mod n
AS
)
4. V aplica o schem a de semnatur a ElGamal pentru a semna votul m. Fie y
1
, y
2
cheile
publice ale sistemului de criptare ElGamal si x
1
= k
1
+ k
2
, x
2
= 2k
1
+ k
2
cheile se-
crete corespunzatoare; deci y
1
= g
k
1
+k
2
(mod p) si y
2
= g
2k
1
+k
2
(mod p). Semnatura
((a, s
4
), (a, s
5
)) pentru votul m este generata de ecuat iile
s
4
= x
1
1
(ma r) (mod p 1) respectiv
s
5
= x
1
2
(ma r) (mod p 1).
Buletinul de vot al lui V este T = s
1
s
2
s
3
s
4
s
5
a y
1
y
2
m.
9.6.2 Etapa II: Votarea (si colectarea buletinelor de vot)
1. V trimite buletinul de vot T lui V S.
2. V S verica validitatea lui a, y
1
, y
2
folosind ecuat iile
AS a = s
e
AS
1
(mod n
AS
) (9)
AS y
1
= s
e
AS
2
(mod n
AS
) (10)
AS y
2
= s
e
AS
3
(mod n
AS
) (11)
Daca toate sunt vericate, V S trece la vericarea corectitudinii semnaturii ((a, s
4
), (a, s
5
))
folosind relat iile:
g
ma
= y
s
4
1
a = y
s
5
2
a (mod p)
Daca ele se veric a, V S accepta T ca valid.

In nal, V S formeaza o baza de date cu toate
buletinele de vot valide, pe care o trimite prin ret ea lui TCS.
9.6.3 Etapa III: Numararea buletinelor de vot
Dupa ce primeste buletinele de vot de la toate V S-urile, TCS face public cont inutul lor si le
num ara.

In plus, el este responsabil cu detectarea dublei vot ari.
Sa presupunem ca un votant V foloseste aceiasi parametri y
1
, y
2
, a pentru a semna un vot
diferit m

si trimite acest buletin unui alt V S. Atunci:


1. TCS veric a y
1
, y
2
, a pentru toate buletinele T pentru a vedea daca apar de mai multe
ori.
2. Daca aceste valori au aparut de doua ori si m = m

se ia n considerare un singur buletin.


Daca m = m

rezulta ca este un caz de dubla votare si TCS aa identitatea acestuia,


calculand
x
1
=
m

a ma
s

4
s
4
(mod p 1) si
x
2
=
m

a ma
s

5
s
5
(mod p 1).
De aici, x
2
x
1
= (2k
1
+ k
2
) (k
1
+ k
2
) = k
1
si deci k
2
= x
1
k
1
. Cu ajutorul lui k
2
se
poate aa cine a ncercat sa triseze.
116 PRELEGEREA 9. PROTOCOALE DE VOT ELECTRONIC
9.7 Securitatea protocolului Mu-Varadharajan modicat

In ipoteza ca serverul de autenticare SA este sigur si deci nu va genera nici un buletin de vot
far a consimt am antul votantului, sistemul construit verica toate restrict iile unui sistem de vot
electronic.

In plus, el are o securitate sporita, rezultata din urmatoarele observat ii:
9.7.1 Rezistent a la atacurile 1 si 2
Sa presupunem ca un votant fort eaz a parametrii a, y
1
, y
2
n conformitate cu Atacul 1; el nu va
putea totusi sa obt in a semnatura (s
1
, s
2
, s
3
) data de ecuat iile (9), (10), (11) pentru ca nu stie
cheia secreta d
AS
.

In al doilea atac, V poate obt ine usor componenta s

2
= (AS y

2
)
d
AS
dar nu poate gebera
restul semnaturiii pentru vatul m. De exemplu, sa presupunem s

2
= s
2
2
= (AS
2
y
2
2
)
d
AS
si y

2
= AS y
2
2
. Deci parametrul y

2
poate trece de vericare. Dar din cauza problemei
logaritmilor discret i votantul nu poate obt ine cheia secreta corespunzatoare x

1
. Far a cheia
secreta, V nu poate genera o semnatura corecta.
9.7.2 Rezistent a fat a de un atac aliat
Sa presupunem ca doi votant i V
1
, V
2
cu semnaturile valide (s
11
, s
12
, s
13
) respectiv (s
21
, s
22
, s
23
)
colaboreaza pentru obt inerea unei noi semnaturi (s

1
, s

2
, s

3
) denita prin
s

i
= s
1i
s
2i
(mod n
AS
), i = 1, 2, 3, 4.
Totusi ei nu vor putea calcula parametrii r

, x

1
, x

2
din cauza dicultat ii de rezolvare a
problemei logaritmului discret.
Bibliograe
[1] J. Benaloh Veriable sectret-ballot elections, Ph.D thesis, Yale University, Technical report
561 (1987)
[2] J.D. Cohen Improving Privacy in Cryptographic Elections
[3] I.Chang Lin, M.Hwang, C.Chang Security enhancement for anonymous secure e-voting
over a network, Computer Science $ interfaces 25 (2003), 131-139
[4] K. Iversen A criptographic scheme for cmputerized general elections, proc. Crypto 1,
Springer LNCS 576 (1992), 405 - 419.
[5] C.I. Lei, C.I. Fan A universal single-authority election system, IEICE Transactions on
Fundamentals E81-A (10) (1998), 2186-2193
[6] Y.Mu, V. Varadharajan Anonymous e-voting over a network, Proc. of the 14th Annual
Computer Security Applications Conference, ASAC8 (1998) 293-299
[7] H. Nurmi, A. Salomaa, L. Santean Secret ballot elections in computer networks, Computer
and Security 10 (1991), 553 - 560.
[8] C. Park, K. Itoh, K. Kurosawa it Ecient anonymous channel and all or nothing election
scheme, Proc. Eurocrypt 3, Springer LNCS 765 (1994), 248 - 259.
[9] A. Renvall Cryptogtaphic Protocols and techniques for Communication, Ph.D. Thesis
117

Você também pode gostar