Escolar Documentos
Profissional Documentos
Cultura Documentos
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 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
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.
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.
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
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
11 10
6 15
1 3
0 9
1 3
0 9
11 10
6 15
3 3
2 5
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
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 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
.
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 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.
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
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].
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)
, unde L
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 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.
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.
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
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
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
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
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
, C
j
, C
j
) = {B
j
Z
6
2
| S
j
(B
j
) S
j
(B
j
B
j
) = C
j
,
N
j
(B
j
, C
j
) = card(IN
j
(B
j
, C
j
)).
Distribut ia 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
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
j
sunt subsecvent e construite pentru intrarea n S-cutia S
j
, iar
C
j
j
, C
j
).
Cum se poate remarca, exista exact N
j
(E
j
, C
j
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
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
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
) = 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
, C
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
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
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
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
= 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
).
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
= 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
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
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
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
, 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
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
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
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
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 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
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 .
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
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
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
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
X
3
+
01
X
2
+
01
X +
02
b
0
b
1
b
2
b
3
02 03 01 01
01 02 03 01
01 01 02 03
03 01 01 02
a
0
a
1
a
2
a
3
X
3
+
0D
X
2
+
09
X +
0E
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.
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
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.
INTRE CRIPTAREASIMETRIC
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
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.
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
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
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
_
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
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
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.
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
=
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
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
a
2i
b
2i
=
a
i
b
i
Notand c = log
a
2i
+cb
2i
=
a
i
+cb
i
Cum are ordinul n, rezulta
a
2i
+cb
2i
a
i
+cb
i
(mod n)
sau
c(b
2i
b
i
) a
i
a
2i
(mod n)
Daca cmmdc(b
2i
b
i
, n) = 1, atunci se poate obt ine c:
c =
a
i
a
2i
b
2i
b
i
(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.
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
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 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
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
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).
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).
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
=
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
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) = 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.
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
) 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
).
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
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
.
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
, p
) = 1, se poate determina = (
)
1
(mod p
).
Valoarea lui k verica deci relat ia k x
+ ip
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
/
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
.
= (
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
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).
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
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
) 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
. Ar mai
posibilitatea ca Oscar sa poata calcula o semnatur a y = sig
K
(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
.
1.9
In protocolul de semnatura Bos-Chaum, Bob semneaza doua mesaje x, x
. Fie s =
card((x) (x
,= x cu h(x
) = h(x).
Daca Oscar reuseste, (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
, 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
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.
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
: 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.
(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
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
[.
2.5. EXTENSIA UNEI FUNCT II DE DISPERSIE 25
Se poate presupune, fara a micsora generalitatea, ca [x[ < [x
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
(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
)
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
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 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.
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
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
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).
-
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
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 .
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
, 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(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 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.
= 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
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
.
1,2
= P
2
, P
3
, P
3
, P
4
si
T
2
=
2,1
,
2,2
cu
2,1
= P
1
, P
2
, P
2
, P
3
2,2
= P
3
, P
4
1,2
= P
2
, P
3
, P
2
, P
4
, P
3
, P
4
si
T
2
=
2,1
,
2,2
cu
2,1
= P
1
, P
2
, P
2
, P
3
, P
2
, P
4
2,2
= P
3
, P
4
T
1
corespunde lui K
2
si K
3
, iar T
2
lui K
2
si K
1,3
; deci ambele sunt / - descompuneri.
Aplicand Teorema 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.
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.
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
= 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
.
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
).
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.
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
astfel nc at
(z
, a
, b
, r
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
) = (z
, a
, b
, r
, a
, b
, r
.
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
= 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
, sig
K
(m
)) nu poate legata
de nici o execut ie specica a protocolului.
2. Chiar daca B aa 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) = 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
=
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
= 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
, 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
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
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)
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
, 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
) = (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
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
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
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
, 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
, unde 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
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.
, 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
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:
, b
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
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
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
, a
, b
, r
).
, 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
, r
1
, r
k+1
,
r
k+2
, r
k+3
, unde c = c
= x
1
+ c
x
2
(mod q)
Acesta este un sistem liniar cu determinantul 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
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.
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
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)
, 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
)
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
2
= (k
1
+ 2k
2
)
1
h
1
(ma
= a
1
y
2
s
1
s
2
m.
V S este convins de validitatea lui T
)
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
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
.
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