criptografie 600
TRANSCRIPT
Sisteme generale de criptare
1
Caracteristicile unui sistem de criptare
1. Confidentialitate (privacy): proprietatea de
a pastra secretul informatiei, pentru ca
aceasta sa fie folosita numai de persoanele
autorizate.
2. Integritatea datelor: proprietatea de a evita
orice modificare (inserare, stergere, substi-
tutie) neautorizata a informatiei.
3. Non - repudierea: Proprietatea care previne
negarea unor evenimente anterioare.
2
4. Autentificare: Proprietatea de a identifica
o entitate conform anumitor standarde.
Este compusa din
(a) Autentificarea unei entitati;
(b) Autentificarea sursei informatiei.
Definitia 1. Criptografia este studiul metode-
lor matematice legate de securitatea informa-
tiei, capabile sa asigure confidentialitatea,
autentificarea si non-repudierea mesajelor, pre-
cum si integritatea datelor vehiculate.
Termenul criptografie ınseamna scriere secreta∗
Domeniul cuprinde atat operatia de criptare
(cifrare) a unui text, cat si eventualele ıncercari
de descifrare si de aflare a cheii de criptare.
In unele lucrari, cadrul general de lucru este
numit criptologie, termenul de criptografie de-
semnand numai operatia de cifrare si descifrare
legala.
∗Cuvantul – inventat ın 1658 de fizicianul englezThomas Browne – este format din cuvintele grecesticryptos – ascuns si grafie – scriere.
3
Situatia generala de care se ocupa criptografia
este urmatoarea:
Criptanalist
Expeditor Destinatar6-
4
In general, hackerul Oscar poate avea doua
tipuri de comportament:
• Pasiv: se multumeste sa intercepteze mesa-
jele si sa le citeasca, folosindu-le ın scop
personal;
• Activ: doreste sa modifice mesajele, sa le
schimbe ordinea sau sa introduca propriile
sale mesaje, ın intentia de a fi acceptat de
Bob drept Alice.
In acest caz, mesajul va trebui sa verifice –
ınafara de conditia de confidentialitate – si pe
cea de autenticitate: Bob trebuie sa fie sigur
ca mesajul primit a fost de la Alice.
5
In unele cazuri, problema se poate complica
prin faptul ca exista anumite mesaje pe care
Alice neaga ca ıi apartin, desi le-a trimis chiar
ea.
In acest caz trebuie prevazute anumite proto-
coale care sa ıntareasca proprietatile de au-
tentificare; proprietati care sa o sileasca pe
Alice sa ısi recunoasca propriile mesaje (non-
repudiere).
6
Terminologie:
Un mesaj ın forma sa originara este numit text
clar.
Expeditorul rescrie acest mesaj folosind o meto-
da cunoscuta numai de el (eventual si de desti-
natar); spunem ca el cripteaza (sau cifreaza)
mesajul, obtinand un text criptat.
Destinatarul primeste textul cifrat si ıl decrip-
teaza, stiind metoda folosita pentru criptare.
Deci Alice si Bob trebuie sa stabileasca ıntr-o
etapa preliminara toate detaliile de criptare si
de decriptare.
7
Definitia 2.Un sistem de criptare este o struc-
tura (P, C,K, E,D), unde:
• P= {w | w ∈ V ∗} este multimea ”textelor
clare”, scrise peste un alfabet nevid V
(uzual V = {0,1}).
• C= {w | w ∈ W ∗} este multimea ”textelor
criptate”, scrise peste un alfabet nevid W
(uzual W = V ).
• K este o multime de elemente numite ”chei”.
• Fiecare cheie K ∈ K determina o metoda
de criptare eK ∈ E si o metoda de de-
criptare dK ∈ D.
eK : P−→ C si dK : C−→ P sunt functii cu
proprietatea dK(eK(w)) = w, ∀w ∈ P.
8
In general se considera C= {α | ∃a ∈ P, ∃k ∈K, α = eK(a)}.
Functia eK este evident injectiva (de remar-
cat ca aceasta conditie de injectivitate nu este
obligatorie pentru functia de decriptare dK).
Daca eK este bijectiva (si deci dK = e−1K ), sis-
temul de criptare se numeste ”simetric” sau
sistem de criptare bloc.
9
Un mesaj de intrare x este descompus ın
x = x1x2 . . . xn, xi ∈ P.
Apoi fiecare xi este criptat folosind regula de
criptare eK, specificata de o cheie fixata K ∈ K.
Deci Alice calculeaza yi = eK(xi) (1 ≤ i ≤ n) si
obtine textul criptat
y = y1y2 . . . yn, yi ∈ C
pe care ıl trimite prin canalul de comunicatie.
Bob primeste mesajul y = y1y2 . . . yn, pe care ıl
decripteaza folosind functia dK :
xi = dK(yi) (1 ≤ i ≤ n)
10
Pentru ca un sistem de criptare sa fie consi-
derat bun, trebuie ındeplinite trei criterii
(enuntate de Francis Bacon ın sec. XV II):
1. Fiind date eK si α ∈ P, este usor de deter-
minat eK(α);
2. Fiind date dK si w ∈ C, este usor de deter-
minat dK(w);
3. α este imposibil de determinat din w, fara
a cunoaste dK.
Ultimul criteriu defineste ideea de ”securitate”
a sistemului.
11
La aceste criterii, Bacon adauga si o a patra
regula:
4 Textul criptat trebuie sa fie un text banal,
fara suspiciuni.
Aceasta ultima conditie este utilizata astazi
doar de unele subdomenii al criptografiei, cum
ar fi steganografie sau watermarking.
12
Intreaga disciplina numita ”criptografie” se ba-
zeaza pe conjectura
P6= NP.
P reprezinta clasa problemelor rezolvabile prin
algoritmi a caror complexitate este marginita
superior de o functie polinomiala ın lungimea
datelor de intrare. Modelul standard de calcu-
labilitate este masina Turing.
NP este clasa problemelor rezolvabile prin al-
goritmi nedeterministic polinomiali (care sunt
inclusi ın algoritmii de complexitate cel putin
exponentiala).
Evident, P⊆ NP, dar se pare ca problema egali-
tatii este nedecidabila (ın termeni matematici).
13
Exemplul 1.Unul din primele sisteme de criptare
cunoscute este sistemul de criptare Cezar.
Sa consideram alfabetul latin scris, ın ordine
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
Fie k un numar ıntreg din intervalul [0,25].
Rescriem alfabetul latin permutat ciclic, ıncepand
ınsa cu litera avand numarul de ordine k (litera
A are numarul de ordine 0).
Aceasta noua scriere o asezam sub prima scriere,
astfel (am presupus k = 2):
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
C D E F G H I J K L M N O P Q R S T U V W X Y Z A B
14
NIMIC NOU =⇒ PKOKEPQW
(din motive suplimentare de securitate, spatiile
dintre cuvinte se ignora de obicei).
Bob cunoaste (fiind destinatar legal) cheia de
criptare ek.
Cheia sa de decriptare este dk = e26−k.
Pe baza ei Bob va putea construi cele doua linii
ale tabelului:
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
Y Z A B C D E F G H I J K L M N O P Q R S T U V W X
PKOKEPQW =⇒ NIMICNOU
15
Codificare:
A B C D E F G H I J K L M0 1 2 3 4 5 6 7 8 9 10 11 12N O P Q R S T U V W X Y Z13 14 15 16 17 18 19 20 21 22 23 24 25
In acest fel putem opera pe inelul finit Z26.
P = C = K= Z26
Pentru K ∈ K ales arbitrar (si m ∈ P, α ∈ C):
eK(m) = m + K (mod 26)
si
dK(α) = α−K (mod 26)
16
Exista doua tehnici de constructie a sistemelor
de criptare (Claude Shannon, 1949):
• Confuzie: Scopul este de a bloca orice
informatie obtinuta prin analize statistice
sau redondante ale textului criptat.
O modalitate simpla de a obtine un grad
ridicat de confuzie se bazeaza pe utilizarea
de substitutii.
• Difuzie: Aceasta tehnica disipeaza redon-
danta specifica textului clar.
Practic, o modificare a unui singur caracter
din textul clar provoaca multiple modificari
ın textul criptat.
Deci pentru distingerea unei redondante din
textul clar este necesara studierea unei can-
titati apreciabile de text criptat.
17
Secret perfect (perfect secrecy)
Un sistem de criptare are proprietatea de se-
cret perfect daca din textul criptat, Oscar nu
poate obtine nici o informatie referitoare la tex-
tul clar.
Definitia 3. Un sistem de criptare este perfect
secret daca
Pr[x|y] = Pr[x]
pentru orice x ∈ P, y ∈ C.
Probabilitatea aposteriori ca textul clar x sa fie
criptat ın textul receptionat y este identica cu
probabilitatea apriori ca textul clar sa fie x.
18
Urmatoarea teorema caracterizeaza proprieta-
tea de secret perfect pentru majoritatea sis-
temelor de criptare simetrice:
Teorema 1. Fie (P, C,K, E,D) un sistem de
criptare cu
card(K) = card(C) = card(P).
El asigura un secret perfect daca si numai daca
toate cheile sunt utilizate cu probabilitati egale
si ∀x ∈ P, ∀y ∈ C exista o cheie unica K ∈ K cu
y = eK(x).
19
Criptanaliza sistemelor de criptare
Definitia 4. Procesul de determinare a unei
chei K folosind un text criptat α (asociat even-
tual cu alte informatii auxiliare) se numeste
”criptanaliza”.
Decriptarea si criptanaliza au ın final acelasi
scop: aflarea textului clar.
Diferenta consta ın faptul ca ın criptanaliza
acesta trebuie aflat fara a sti cheia de de-
criptare.
20
Nu subestimati niciodata pe criptanalist.
regula verificata din punct de vedere istoric
pentru toate sistemele create pana ın prezent:
acestea sau au fost sparte sau trebuie sa se
revizuiasca periodic pentru a rezista atacurilor
permanente ale intrusilor.
21
Oscar are la dispozitie facilitati de calcul ex-
celente, adesea superioare celor de care dispun
cei doi parteneri Alice si Bob.
In secolul XIX Kirkoff lanseaza o ipoteza fun-
damentala (numita ”Principiul lui Kerkoff”):
Criptanalistul stie toate detaliile sistemului de
criptare folosit, inclusiv algoritmii utilizati pre-
cum si implementarile lor.
Ca o consecinta, securitatea unui sistem de
criptare se bazeaza ın totalitate pe cheie.
22
Definitia 5. Un atac este un algoritm eficient
care – pentru un sistem de criptare fixat –
gaseste elemente protejate care pot fi determi-
nate (mult mai) rapid decat au fost specificate
de autori.
Evident, unele atacuri pot sa nu contrazica se-
curitatea sistemului ci doar sa prevada anumite
slabiciuni posibile, de care utilizatorii trebuie sa
tina cont.
23
In general, scopul criptografiei este desemnarea
de algoritmi (protocoale, scheme, servicii) de
criptare siguri (din punct de vedere al com-
plexitatii), ın timp ce criptanaliza se concen-
treaza pe construirea de atacuri asupra sis-
temelor de criptare, avand ca scop determin-
area cheilor de criptare.
Ulterior, atacurile potential reusite furnizeaza
criterii de constructie a sistemelor de criptare,
si vor face parte implicit din criptografie.
Criteriile de constructie obtinute dintr-un atac
permit realizarea de sisteme de criptare imune
(rezistente) la atacul respectiv.
24
Criptanaliza examineaza cu atentie toate slabi-
ciunile (faliile) unui sistem si ıncearca sa con-
struiasca atacuri bazate pe aceste slabiciuni,
pentru a demonstra ca sistemul nu este sigur
(si deci poate fi spart de Oscar).
In general este imposibil de demonstrat ca un
sistem rezista la orice fel de atac, ın timp ce
opusul sau este totdeauna posibil: este sufi-
cient de descris un atac.
Metodele de atac (cum ar fi furtul, mituirea,
presiuni fizice si psihice asupra persoanelor im-
plicate ın construirea si utilizarea sistemului de
criptare) care nu sunt legate direct de slabi-
ciunile sistemului de criptare, nu intra ın dome-
niul criptanalizei.
25
In general un sistem de criptare poate fi
• neconditionat sigur,
• conditionat sigur.
Un sistem neconditionat sigur este imun la orice
tip de atac.
In acest caz, securitatea sa depinde de difi-
cultatea de a rezolva problema matematica pe
care se bazeaza construirea cheii.
26
In general, un criptanalist este pus ın fata urma-
toarelor situatii (care solicita strategii diverse):
1. Oscar stie numai textul criptat w; ın acest
caz atacurile sunt direct legate de lungimea
textului.
Cel mai simplu atac ın acest caz consta ın par-
curgerea tuturor cheilor posibile si verificarea
textului criptat, pana se gaseste cheia corecta.
Este atacul prin forta bruta si el reuseste tot-
deauna.
27
Teorema 2. Pentru a ghici o cheie din n vari-
ante posibile sunt necesare ın medie (n + 1)/2
ıncercari.
De exemplu, pentru un sistem de criptare cu
card(K) = 256, se folosesc aproximativ 255
ıncercari pana se gaseste cheia corecta.
In cazul cand numarul cheilor posibile este mic,
aceasta cheie se poate afla foarte usor dupa un
numar mic de ıncercari.
De aceea sunt folosite obligatoriu sisteme de
criptare cu card(K) foarte mare.
Pentru o cheie care ocupa n biti sunt necesare
ın medie 2n−1 ıncercari (daca nu exista nici o
informatie suplimentara).
O extindere a lungimii cheii la n+1 biti dubleaza
deci spatiul de cautare.
28
In momentul de fata, tehnica de calcul ofera
atacuri prin forta bruta eficiente pentru cheile
de lungimi mai mici de 128 biti; asa ca sis-
temele de criptare actuale folosesc ın general
chei de 1024 biti sau chiar mai mult (exceptie:
sistemele bazate pe curbe eliptice).
Atacul prin forta bruta poate fi ımbunatatit
semnificativ cu alte informatii legate de sis-
tem, informatii care pot reduce numarul cheilor
posibile.
Multe atacuri folosesc diverse strategii pentru
a reduce semnificativ spatiul cheilor posibile,
dupa care se foloseste atacul prin forta bruta.
29
2. Oscar stie cel putin o pereche de caractere
(text clar, text criptat).
Din cunoasterea catorva perechi (x, eK(x)) cu
x ∈ P Oscar va ıncearca sa decripteze ıntregul
text criptat interceptat.
Exemplul 2. La sistemul de criptare Cezar, o
singura pereche (a, eK(a)), dezvaluie imediat
cheia si – implicit duce la decriptare.
Exemplul 3. Aceasta a fost situatia ın care s-a
aflat orientalistul francez Jean Francois Cham-
pollion, cand a descifrat hieroglifele folosind
piatra de la Rosetta.
30
Oscar cunoaste criptarea unor texte clare
selectate de el.
Acesta este atacul cu text clar ales, luat ın con-
siderare de majoritatea studiilor de criptanaliza.
31
Exemplul 4. Sistemul de criptare Hill (creat ın
1929 de Lester Hill).
Definim un numar ıntreg fixat d (d ≥ 2). Se
construiesc multimile
P= C= (Z26)d,
K= {M | M ∈Md(Z26), det(M) 6= 0}.
Textul clar w se ımparte ın blocuri de lungime
d : w = α1α2 . . . αn, |αi| = d
(ultimul bloc se completeaza eventual pana ajun-
ge la lungimea d).
Textul criptat va fi x = β1β2 . . . βn unde
βi = eM(αi) = αi·M (mod 26), (1 ≤ i ≤ n).
Pentru decriptare se foloseste relatia
dM(βi) = βi ·M−1 (mod 26).
32
Sa luam de exemplu d = 2 si cheia
M =
(3 32 5
)cu inversa
M−1 =
(15 1720 9
)
Daca textul clar este w = FRAC, vom avea
α1 = (F R) = (5 17), α2 = (A C) = (0 2)
Din relatiile
β1=α1·M (mod 26)=(5 17)·
(3 32 5
)=(23 22)=(X W )
β2=α2·M (mod 26)=(0 2)·
(3 32 5
)=(4 10)=(E K)
se obtine textul criptat x = XWEK.
33
Sa ne situam acum pe pozitia lui Oscar: pre-
supunem ca am gasit dimensiunea d = 2 si
ıncercam sa aflam matricea M (sau – echiva-
lent – M−1), stiind perechea (text clar, text
criptat)= (FRAC, XWEG).
Care este matricea
M =
(a bc d
)cu a, b, c, d ∈ {0,1, . . . ,25}, astfel
ca (5 170 2
)·(
a bc d
)=
(23 224 10
).
Oscar afla ıntai inversa lui A =
(5 170 2
).
Cum det(A) = 10 si cmmdc(10,26) > 1, rezulta
ca 10−1 (mod 26) nu exista; deci A nu este
inversabila.
34
Sa presupunem acum ca Oscar lucreaza ın ipo-
teza (3); alege un text clar a carui matrice este
inversabila si ıi afla criptarea.
Fie BRAD acest text clar, a carui matrice aso-
ciata este
A =
(1 170 3
)
Oscar solicita criptarea lui BRAD si primeste
LKGP , de matrice
B =
(11 106 15
)
Deci el dispune de perechea (BRAD, LKGP ).
35
Oscar determina ıntai
A−1 =
(1 30 9
)Apoi, din ecuatia A ·M = B, va gasi solutia
M = A−1 ·B =
(1 30 9
)·(
11 106 15
)=
(3 32 5
)
36
4. Oscar stie cheia de criptare eK. Pe baza
ei ıncearca sa determine dK ınainte de inter-
ceptarea mesajelor criptate.
Aceasta este situatia tipica sistemelor de cripta-
re cu cheie publica: cheia de criptare eK este
cunoscuta public cu mult ınainte de a fi folosita
pentru criptare.
Deci criptanalistul are la dispozitie destul de
mult timp pentru prelucrarea ei si orice clarifi-
care ın perioada cand timpul este ”ieftin” are
o valoare deosebita; dupa ce se primesc mesaje
criptate, timpul devine ”scump”, si el trebuie
sa fie scurtat cat mai mult.
37
Sisteme simetrice de criptare
1
In general, sistemele de criptare clasice
se numesc si sisteme simetrice.
Motive:
• Odata cu aflarea cheii de criptare eK, cheia
de decriptare dK se obtine imediat, fiind
functia inversa.
• Alice si Bob dispun de aceeasi informatie
relativ la sistemul de criptare.
Sistemele de criptare simetrice se ımpart ın
doua clase mari: cifruri de permutare si cifruri
de substitutie.
2
Cifruri de permutare
Textul clar se ımparte ın blocuri de n (n ≥ 2)
caractere, dupa care fiecarui bloc i se aplica o
permutare π ∈ Sn (multimea permutarilor de n
elemente).
Elementele n si π sunt fixate.
π este cheia de criptare, iar π−1 va fi cheia de
decriptare.
3
Exemplul 1. Cheie de criptare
(1 2 32 1 3
).
Un text clar, de exemplu
FLOARE ALBASTRA
se ımparte ın grupuri de cate trei caractere (s-a
considerat si caracterul spatiu, notat )
FLO ARE AL BAS TRA
Textul criptat va fi
LFO RAE A L ABS RTA
sau – eliminand gruparile,
LFORAEA LABSRTA.
4
Exemplul 2. Sistemul de criptare Richelieu
(Jules Verne – Mathias Sandorf).
Fie cartonul 6× 6, ın care zonele hasurate
constituie gauri.
Vrem sa criptam textul
EMINESCU A FOST UN MARE POET NATIONAL
5
Vom scrie acest text sub forma unui tabel cu
sase linii si sase coloane, astfel:
E M I N E SC U A FO S T U NM A R E PO E T N AT I O N A L
Aplicand cartonul peste acest text, vor ramane
vizibile 9 caractere:
MNS TA AN
6
Vom roti acum cartonul cu 90o ın sensul acelor
de ceasornic. El va arata
Asezand acum peste text, raman vizibile
caracterele
F MPTNIL
La a treia rotire a cartonului se obtine
ICSUEETOA, iar la a patra – EEUAOURO
Deci textul criptat este
MNS TA AN F MPTNILICSUEETOAEEUAOURO
Operatia de decriptare se realizeaza similar.
7
Definitia 1. Fie n un numar natural nenul. Un
cifru de permutare este un sistem (P, C,K, E,D)
unde P= C= (Z26)n, K= Sn.
Pentru o cheie (permutare) π ∈ Sn
eπ(a1a2 . . . an) = aπ(1)aπ(2) . . . aπ(n)
dπ(b1b2 . . . bn) = bπ−1(1)bπ−1(2) . . . bπ−1(n)
8
Lema 1. Un cifru de permutare este un sistem
de criptare Hill.
Demonstratie. Pentru fiecare permutare
π ∈ Sn putem construi o matrice de permutare
Mπ = (mi,j) definita
mi,j = 1 ⇐⇒ i = π(j)
Se verifica usor faptul ca sistemul de criptare
Hill cu matricea Mπ este echivalent cu un cifru
de permutare bazat pe cheia π.
Mai mult, M−1π = Mπ−1.
9
Exemplul 3. (continuarea Exemplului 1)
Permutarii
(1 2 32 1 3
)ıi corespunde matricea
de permutare
0 1 01 0 00 0 1
.
Operatia de criptare este imediata.
De exemplu, criptarea textului FLO este
(5 11 14) ·
0 1 01 0 00 0 1
= (11 5 14)
adica LFO.
10
Cifruri de substitutie
Cele mai utilizate sisteme de criptare simetrice.
Cifrul consta ın ınlocuirea fiecarui caracter din
V cu alt caracter (din W ).
• sisteme monoalfabetice;
• sisteme polialfabetice.
11
Sisteme de criptare monoalfabetice
Substituie fiecare caracter cu alt caracter –
totdeauna acelasi, indiferent de pozitie.
Cand cele doua alfabete coincid (V = W ),
sistemele monoalfabetice sunt cazuri particu-
lare de cifruri de permutare.
12
Sistemul de criptare Cezar
Odata stabilita cheia de criptare eK, fiecare
caracter x se ınlocuieste prin caracterul
eK(x) = x + k (mod 26).
Decriptarea se realizeaza dupa formula
dK(x) = x− k (mod 26).
13
Sistemul Cezar are numai 26 chei;deci este vul-
nerabil la atacul prin forta bruta.
Pentru a-i mari rezistenta, se poate utiliza o
varianta, numita sistem Cezar cu cheie:
Se defineste un cuvant (cheie), care se aseaza
la ınceputul alfabetului.
Dupa ce se termina, sirul de completeaza cu
literele care nu existau ın cuvantul cheie, ın
ordine alfabetica.
14
Exemplul 4. Sa presupunem ca s-a ales cuvan-
tul cheie MARTOR.
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
M A R T O B C D E F G H I J K L N P Q S U V W X Y Z
Pentru textul clar se vor folosi caracterele de
pe primul rand, iar pentru criptare – caracterele
corespondente de pe randul al doilea.
STUDENT −→ QSUTOJS,
ARGINT −→MPCEJS
Sistemul Cezar cu cheie rezista mai bine la
atacul cu forta bruta, numarul cheilor putand
ajunge la card(S26) = 26!.
15
Sistemul de criptare afin
Generalizare a sistemului Cezar.
P = C= Z26,
K= {(a, b) | a, b ∈ Z26, cmmdc(a,26) = 1},
Pentru o cheie K = (a, b) fixata:
eK(x) = ax + b (mod 26)
dK(y) = a−1y + a−1(26− b) (mod 26)
Conditia cmmdc(a,26) = 1 asigura existenta lui
a−1 ın Z26.
16
Exemplul 5. Functia de criptare
eK(x) = 3x + 50 1 2 3 4 5 6 7 8 9 10 11 125 8 11 14 17 20 23 0 3 6 9 12 15
13 14 15 16 17 18 19 20 21 22 23 24 2518 21 24 1 4 7 10 13 16 19 22 25 2
sau – scris direct pentru caractere
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
F I L O R U X A D G J M P S V Y B E H K N Q T W Z C
PRIMAVARA TARZIE −→ YEDPFQFEF KDECDR.
Deoarece 3−1 = 9 (mod 26), decriptarea serealizeaza folosind functia dK(x) = 9x + 7(sau – practic – inversand cele doua linii aletabelului de mai sus).
Conditia cmmdc(a,26) = 1 asigura injectivi-tatea aplicatiei eK.
Pentru eK(x) = 10x + 1, A si N se transformaambele ın B, iar O nu apare ca imagine ın al-fabetul substitutiei.
17
Spatiul cheilor ıntr-un sistem de criptare
afin.
Orice cheie K ∈ K este determinata complet
de valorile ıntregi (a, b) cu cmmdc(a,26) = 1.
Sunt posibile 12 valori pentru a:
1,3,5,7,9,11,15,19,21,23,25
Pentru b sunt posibile 26 valori, care se iau
independent de a, cu singura exceptie
a = 1, b = 0.
Deci card(K) = 311, numar suficient de mic
pentru reusita unui atac prin forta bruta.
18
Sistemul de criptare Polybios
Initial a fost un sistem maritim de semnalizare
cu torte; ulterior i s-a dat o semnificatie crip-
tografica.
Alfabetul latin, din care se elimina o litera de
frecventa cat mai redusa; fie aceasta W .
Cele 25 litere ramase se aseaza ıntr-un patrat
5× 5 (numit careu Polybios) ın felul urmator:
A B C D EA A B C D EB F G H I JC K L M N OD P Q R S TE U V X Y Z
In operatia de criptare, fiecare caracter a va fi
reprezentat printr-o pereche (x, y)
(x, y ∈ {A, B, C, D, E}) care dau linia respectiv
coloana pe care se afla a.
19
Variante ale sistemului Polybios.
Daca se folosesc drept coordonate cifrele 1,2,
3,4,5 ın loc de A, B, C, D, E, sistemul a fost
folosit ın penitenciarele rusesti, iar ulterior de
catre prizonierii americani din Vietnam.
Este foarte simplu de ınvatat si poate fi aplicat
folosind diverse semne drept coordonate (cifre,
puncte, figuri, batai de toba etc).
A fost utilizat de asemenea ın cadrul altor sis-
teme de criptare, cum ar fi sistemul nihilist,
cifrul ADFGVX (utilizat de armata germana ın
primul razboi mondial) sau sistemul Bifid, in-
ventat de Dellastell ın 1901.
20
Sistemul cavalerilor de Malta
Sistem de criptare monoalfabetic bazat pe stili-
zarea unei cruci.
A : B : C :D : E : F :G : H : I :
J. K. L.M. N. O.P. Q. R.
S T UV W XY Z
Liniile care ıncadreaza fiecare caracter (inclusiv
spatiul), ımpreuna cu punctele (doua, unul sau
zero) indica substitutia caracterului respectiv.
DUPA DOUAZECI DE ANI
: . : : . : : : : : : : . :
21
Criptanaliza sistemelor de criptare monoalfabetice
Frecventa de aparitie a caracterelor ın text.
Daca un text criptat este suficient de lung sise cunoaste limba ın care este scris textul clar,sistemul poate fi spart printr-un atac bazat pefrecventa aparitiei literelor ıntr-o limba.
Cu cat un text criptat este mai lung, cu atatfrecventa literelor folosite ın text este mai apro-piata de frecventa literelor utilizate ın limba ıncare este scris mesajul.
O comparare ıntre cele doua relatii de ordine(cea a caracterelor din textul criptat si cea aliterelor din alfabetul limbii curente) conducela realizarea catorva corespondente
(litera text clar −→ litera text criptat),
care releva cheia de criptare.
Pentru sistemul Cezar este suficienta stabilireaunei singure perechi; pentru sistemul afin tre-buiesc doua perechi etc.
22
Pentru limba romana, un tabel al literelor cele
mai frecvent ıntalnite este
Litera FrecventaA 13,04 %I 12,89 %E 11,75 %R 7,39 %T 6,62 %N 6,44 %U 6,44 %S 5,50 %C 5,47 %
Litera FrecventaL 4,58 %O 3,85 %D 3,68 %M 3,33 %P 2,91 %F 1,50 %V 1,26%
(restul caracterelor au o ın mod normal o
frecventa de aparitie sub 1 %).
23
Exemplul 6. S-a interceptat urmatorul text,
criptat cu un sistem monoalfabetic (nu se stie
exact ce sistem a fost utilizat).
lqakc sp gcxk aca pcmgqb kq kxc pkersmpqsb
vk vsmgxkbc mkacpc tcacpbqlqs vk cgele
cmtxq ms nocxgsb mbxcsp vk exsgk oxcbqsbcbk
texbslk spclbk gcxk cmgqpvkcq bxkgcbexslk
gqxbslk xktxknkpbcq tkpbxq mbxcsps qp
cfkxbsmakpb mqtcxcbex vcx lsatkvk pq
bxkrqscq mc zsk txkc gqxsems psgs mc mk
cmbktbk mc czlk acxk lqgxq vk lc gks gq
gcxk fkpkcq sp gepbcgb
In prima etapa, vom numara de cate ori apare
ın text fiecare caracter.
c k x b s q g p m l e39 38 27 25 23 20 19 18 18 11 9p a v b n o f z8 7 7 2 2 2 2 2
24
Caracterele cele mai frecvente sunt c si k.
Pe de-alta parte, cele mai frecvente caractere
din limba romana sunt A, I si E. In mod cert,
A ∈ {c, k}.
Sunt patru optiuni posibile, din care trei se
elimina rapid. Raman
c←− A, k ←− E.
lqaEA sp gAxE aAa pAmgqb Eq ExA pEersmpqsb
vE vsmgxEbA mEaApA tAaApbqlqs vE Agele
Amtxq ms noAxgsb mbxAsp vE exsgE oxAbqsbAbE
texbslE spAlbE gAxE AmgqpvEAq bxEgAbexslk
gqxbslE xEtxEnEpbAq tEpbxq mbxAsps qp
AfExbsmaEpb mqtAxAbex vAx lsatEvE pq
bxErqsAq mA zsE txEA gqxsems psgs mA mE
AmbEtbE mA AzlE aAxE lqgxq vE lA gEs gq
gAxE fEpEAq sp gepbAgb
25
Cuvantul ExA de pe primul rand are carac-
terul din mijloc (x) de frecventa ridicata (27
aparitii); deci el trebuie sa corespunda unei
litere frecvente din limba romana si – ın plus –
sa aiba semnificatie semantica.
Concluzie: acest cuvant este ERA. Deci
x←− R
lqaEA sp gARE aAa pAmgqb Eq ERA pEersmpqsb
vE vsmgREbA mEaApA tAaApbqlqs vE Agele
AmtRq ms noARgsb mbRAsp vE eRsgE oRAbqsbAbE
teRbslE spAlbE gARE AmgqpvEAq bREgAbeRsleR
gqRbslE REtREnEpbAq tEpbRq mbRAsps qp
AfERbsmaEpb mqtARAbeR vAR lsatEvE pq
bRErqsAq mA zsE tREA gqRsems psgs mA mE
AmbEtbE mA AzlE aARE lqgRq vE lA gEs gq
gARE fEpEAq sp gepbAgb
26
Cuvantul REtREnEpbAq are corespondent ın
limba romana numai pe
REPREZENTA{I, M, U}.
Se obtin decriptarile
t←− P, n←− Z, p←− N, b←− T
lqaEA sp gARE aAa NAmgqT Eq ERA NEersmNqsT
vE vsmgRETA mEaANA PAaANTqlqs vE Agele
AmPRq ms ZoARgsT mTRAsN vE eRsgE oRATqsTATE
PeRTslE sNAlTE gARE AmgqNvEAq TREgATeRsleR
gqRTslE REPREZENTAq PENTRq mTRAsNs qN
AfERTsmaENT mqPARATeR vAR lsaPEvE Nq
bRErqsAq mA zsE PREA gqRsems Nsgs mA mE
AmTEPTE mA AzlE aARE lqgRq vE lA gEs gq
gARE fENEAq sN geNTAgT
27
PENTRq este corect numai pentru q ←− U ,
AmTEPTE pentru m←− S.
Apoi NASgUT da g ←− C, SUPARATeR da
e←− O, iar din fENEAU deducem f ←− V .
lUaEA sp CARE MAM NASCUT EU ERA NEOrsSNUsT
DE vsSCRETA SEaANA PAaANTUlUs DE ACOlO ASPRU
Ss ZoARCsT STRAsN vE ORsCE oRATUsTATE
PORTslE sNAlTE CARE ASCUNvEAU TRECATORslOR
CURTslE REPREZENTAU PENTRU STRAsNs UN
AfERTsSaENT SUPARATOR vAR lsaPEvE NU
bRErqsAU SA zsE PREA CURsOms NsCs SA SE
ASTEPTE mA AzlE aARE lUCRU vE lA CEs CU
CARE VENEAU sN CONTACT
28
Ultimele caractere:
l←− L, a←−M, r ←− B, s←− I, v ←− D
Textul clar final este:
LUMEA IN CARE MAM NASCUT EU ERA NEOBISNUIT
DE DISCRETA SEMANA PAMANTULUI DE ACOLO ASPRU
SI ZGARCIT STRAIN DE ORICE GRATUITATE
PORTILE INALTE CARE ASCUNDEAU TRECATORILOR
CURTILE REPREZENTAU PENTRU STRAINI UN
AVERTISMENT SUPARATOR DAR LIMPEDE NU
TREBUIAU SA FIE PREA CURIOSI NICI SA SE
ASTEPTE SA AFLE MARE lUCRU DE LA CEI CU
CARE VENEAU IN CONTACT
(textul provine din romanul ”Viata ca o corida”
de Octavian Paler).
29
Tabelele de frecventa a literelor pentru prin-
cipalele limbi europene (din fiecare limba sunt
numai cele mai frecvente 9 litere):
Engleza FrecventaE 12,31 %T 9,59 %A 8,05 %O 7,94 %N 7,19 %I 7,18 %S 6,59 %R 6,03 %H 5,14 %
Germana FrecventaE 18,46 %N 11,42 %I 8,02 %R 7,14 %S 7,04 %A 5,38 %T 5,22%U 5,01%D 4,94%
Franceza FrecventaE 15,87 %A 9,42 %I 8,41 %S 7,90 %T 7,26 %N 7,15 %R 6,46 %U 6,24 %L 5,34 %
Spaniola FrecventaE 13,15 %A 12,69 %O 9,49 %S 7,60 %N 6,95 %R 6,25 %I 6,25 %L 5,94 %D 5,58 %
30
Sisteme de criptare polialfabetice
Substitutia unui caracter variaza ın text, ın
functie de diversi parametri (pozitie, context
etc.).
Se pare ca primul sistem de criptare polialfa-
betic a fost creat de Leon Battista ın 1568.
31
Sistemul homofonic
Este un sistem intermediar ıntre sistemelemono si cele poli-alfabetice.
Principalul lui scop este de a evita atacul prinfrecventa de aparitie a caracterelor.
Fiecarui caracter a ∈ P i se asociaza o multimeH(a) ⊂ C astfel ıncat:
1. H(a) ∩H(b) = ∅ ⇐⇒ a 6= b;
2. Daca a apare mai frecvent ın textele clare,atunci card((H(a)) ≥ card(H(b)).
Criptarea unui caracter a ∈ P se face cu unelement ales aleator din H(a).
Pentru decriptarea lui y ∈ C se cauta o multimeH(a) astfel ca y ∈ H(a).
32
Exemplul 7. Sa consideram P= {a, b} si
H(a) = {001,010}, H(b) = {000,011,101,111}.
Pentru criptarea textului ab se poate folosi ori-
care din secventele
001000,001011,001101,001111,
010000,010011,010101,010111
Sistemul homofonic este mult mai rezistent
la un atac bazat numai pe textul criptat, dar
cedeaza usor la un atac cu text clar ales.
33
Sistemul de criptare Playfair
A fost inventat 1854 de Sir Charles Wheat-stone. Promovat si sustinut (pentru a fi adop-tat ca cifru oficial al Marii Britanii) de catrebaronul Lyon Playfair de St. Andrews.
Din cele 26 litere ale alfabetului se elimina unade frecventa minima; sa spunem Q.
Restul literelor se aranjeaza arbitrar sub formaunui patrat 5× 5.
Constructia va fi exemplificata folosind tabloul:
S Y D W ZR I P U LH C A X FT N O G EB K M J V
Acest tabel va forma atat cheia de criptare catsi cea de decriptare.
34
Regulile de criptare/decriptare:
• Textul clar este separat ın blocuri de catedoua caractere (ignorand spatiile).
Nici un bloc sa nu contina aceiasi litera, iartextul sa fie de lungime para.
• Criptarea unui bloc: daca cele doua literenu sunt plasate ın tabel pe aceeasi liniesau coloana, se cerceteaza colturile drep-tunghiului determinat de cele doua litere.Perechea este criptata ın celelalte doua col-turi opuse.
Daca cele doua litere se gasesc pe aceeasilinie (coloana), se merge ciclic cu o pozitiela dreapta (respectiv jos).
Deci CA se cripteaza ın AX, WX ın UG,CA ın AX etc.
AFARA PLOUA −→ XHHPPDPEPX.35
O permutare ciclica a liniilor si coloanelor numodifica criptarea. De exemplu, patratul
P U L R IA X F H CO G E T NM J V B KD W Z S Y
obtinut prin deplasarea cu doua pozitii sprestanga si o pozitie ın sus, este echivalent cu celinitial (ambele dau aceiasi cheie de criptare).
Regulile de baza pot fi modificate sau comple-tate dupa necesitati.
Astfel, se poate adauga din loc ın loc cate olitera falsa (cu frecventa foarte redusa, cum arfi X, Y ) care sa modifice textul criptat.
Patratul 5×5 poate fi ınlocuit cu un dreptunghi4×6 sau 3×8, cu schimbarile corespunzatoareın alegerea literelor care se elimina.
36
Pentru a pastra cheia ın siguranta, se reco-
manda memorarea acesteia.
Cum o astfel de cheie este extrem de greu de
memorat, se foloseste un cuvant cheie sau o
propozitie cu toate literele distincte.
Acesta cuvant este scris la ınceputul tabloului.
Spatiile ramase sunt completate cu restul lite-
relor alfabetului, scrise ın ordinea aparitiei lor.
37
In preajma primului razboi mondial, armata
romana folosea un dreptunghi 3 × 8 din care
lipseau literele Q si K.
Cuvantul cheie era ROMANESC. Un astfel de
tablou putea avea de exemplu forma
R O M A N E S CB D F G H I J LP T U V W X Y Z
Ca si sistemul anterior, Playfair rezista la
atacuri bazate pe frecventa aparitiei, dar nu si
la cele prin text clar ales.
Implementari actuale folosesc o reprezentare
binara a literelor; ın plus, dupa ce s-a obtinut o
pereche criptata, aceasta se combina printr-un
XOR (adunare modulo 2) cu perechea criptata
anterior.
38
Sistemul de criptare Vigenere
Numele sistemului vine de la baronul francez
Blaise de Vigenere (1523 − 1596) diplomat la
curtea regelui Henry III (alte surse indica drept
real inventator al sistemului pe Giovan Batista
Belaso ın 1553).
Reamintim codificarea:
A B C D E F G H I J K L M0 1 2 3 4 5 6 7 8 9 10 11 12
N O P Q R S T U V W X Y Z13 14 15 16 17 18 19 20 21 22 23 24 25
Definim P = C= Z26, K= Z+26.
39
O cheie K ∈ K este un cuvant avand codifi-
carea numerica k0k1 . . . kp−1.
Fie
a = a0a1 . . . an
codificarea textului clar care trebuie transmis.
Textul criptat va fi
eK(a) = x = x0x1 . . . xn
unde
xi = ai + ki (mod p) (mod 26)
40
Exemplul 8. Fie cuvantul cheie FOCAR; deci
p = 5 si K = 5 14 2 0 17.
Sa criptam cheie textul clar
NU POT VENI AZI
Codificarea sa este
a = 13 20 15 14 19 21 4 13 8 0 25 8.
Sub fiecare numar din a se aseaza cate un
numar din K; cand cheia se termina, ea se
reia ciclic, pana se termina a.
Deci vom avea
13 20 15 14 19 21 4 13 8 0 25 85 14 2 0 17 5 14 2 0 17 5 14
18 8 17 14 10 0 18 15 8 17 4 22S I R O K A S P I R E W
Linia a treia contine suma modulo 26 a nu-
merelor de pe primele doua linii; acesta este
textul criptat rezultat.
41
Decriptarea se realizeaza similar, scazand
(modulo 26) din codul caracterului criptat,
codul caracterului corespunzator din cheie.
O varianta a sistemul Vigenere este sistemul
Beaufort; aici relatia de criptare este
xi = ki (mod p) − ai (mod 26), (i ≥ 0)
Avantajul sistemului Beaufort consta ın faptul
ca ecuatia de criptare se aplica si la decriptare
(ai = ki (mod p) − xi).
42
Alta varianta este sistemul Autoclave, atribuit
matematicianului Cardano.
Aici cheia se foloseste doar pe primele pozitii,
dupa care este utilizat drept cheie textul clar.
Exemplul 9. Cuvantul cheie COV OR si textul
clar
A VENIT TOAMNA
Text clar: A V E N I T T O A M N ACheie: C O V O R A V E N I T T
Text criptat C J Z B Z T O S N U G T
43
Sistemul Vigenere a fost considerat unul din
cele mai sigure sisteme de criptare.
In 1917 de exemplu, revista ”Scientific Ameri-
can” ıl considera imposibil de atacat.
Numai ca acest sistem a fost spart de Kasiski
ınca din 1863 (si independent de Babbage ın
1854).
44
Criptanaliza sistemului Vigenere
Fie
x = x0x1 . . . xn−1
textul criptat cu cheia
K = k0k1 . . . kp−1.
Putem aranja acest text sub forma unei matricicu p linii si dn/pe coloane, astfel
x0 xp x2p . . .x1 xp+1 x2p+1 . . .
...xp−1 x2p−1 x3p−1 . . .
Elementele de pe prima linie au fost criptatedupa formula
xpr = apr + k0 (mod 26), (r ≥ 0)
adica folosind un sistem Cezar(k0 fiind o valoare fixata din Z26).
In mod similar si celelalte linii.
45
Daca se cunoaste lungimea p a cheii, problemase reduce la criptanaliza a p texte criptate cuCezar – sistem de criptare monoalfabetic.
Sunt cunoscute doua metode pentru aflarealungimii cheii:
• testul lui Kasiski
• indexul de coincidente (definit ın 1920 decriptanalistul american Wolfe Friedman).
Prima metoda consta ın studiul textului criptatsi aflarea de perechi de segmente de cel putin3 caractere identice.
Pentru fiecare astfel de pereche, se determinadistanta dintre segmente.
Dupa ce s-au gasit mai multe astfel de distan-te, valoarea lui p va fi cel mai mare divizorcomun al lor (sau – eventual un divizor al aces-tuia).
46
Exemplul 10. Oscar intercepteaza urmatorul
text criptat, despre care banuie ca s-a folosit
Vigenere:
D V L O E G O G L C G I W W A F R S C K A
R V S S R A A K R S T U H D A Q L N C J T
S R U J V C W E A W K O H Z T I E U A R I
Q L N C J C I K A Q V A G K A S J T S G R
W D A G K R C W A O L N S Z P C V Z W Z C
S C E P I E R V M W Y A W V M W E E G T U
Folosind metoda Kasiski, Oscar gaseste secven-
ta QLNCJ care apare de doua ori, avand distan-
ta 27.
De asemenea, apar doua cuvinte foarte asema-
natoare: AQLN si AOLN , la distanta 57 unul
de altul.
Deci putem banui ca avem de-a face cu un
cuvant cheie de lungime cmmdc(27,57) = 3.
47
Rescriem textul pe coloane, fiecare coloanaavand trei elemente. Anume:
D O O C W F C R S A S H Q C S J W W H I A Q C I Q GV E G G W R K V R K T D L J R V E K Z E R L J K V KL G L I A S A S A R U A N T U C A O T U I N C A A A
S S W G C O S C W S P R W W W GJ G D K W L Z V Z C I V Y V E TT R A R A N P Z C E E M A M E U
Numaram frecventa aparitiei literelor pe fiecare
linie
A B C D E F G H I J K L MI 2 0 6 1 0 1 3 2 2 1 0 0 0
II 0 0 1 2 4 0 3 0 1 3 6 3 0III 11 0 3 0 3 0 1 0 2 0 0 2 2
N O P Q R S T U V W X Y ZI 0 3 1 3 2 7 0 0 1 8 0 0 0
II 0 0 0 0 4 0 2 0 6 2 0 1 3III 3 1 1 0 3 2 3 4 0 0 0 0 1
48
In limba romana, primele litere ca frecventa
sunt A−E − I, aflate la distanta egala una de
alta.
Deci vom cauta pe fiecare linie tripletele de
litere situate pe pozitiile
(k, k + 4, k + 8)
avand frecventa semnificativ de mare.
- Pentru linia 3, alegerea este simpla: ea este
chiar A−E−I (16 aparitii din 49 posibile), deci
o deplasare 0 ın codul Cezar.
- Pentru prima linie, sunt doua posibilitati: O−S−W (deplasare 14) sau S−W −A (deplasare
18), ambele cu cate 18 aparitii.
- Tot doua variante apar si pentru a doua linie:
C − G − K (deplasare 2) cu 10 aparitii, sau
R− V − Z (deplasare 14) cu 13 aparitii.
49
Deplasarile dau exact codificarile cheii.
Deci trebuie luate ın considerare patru variante
de cuvant cheie: OCA, ORA, SCA sau SRA.
O simpla verificare retine drept cuvant cheie
ORA, care conduce la decriptarea corecta a
textului (spatiile si semnele de punctuatie se
pun corespunzator):
PELANGAPLOPIIFARASOT
ADESEAAMTRECUT
MACUNOSTEAUVECINIITOTI
TUNUMAICUNOSCUT
ACEASTAESTEPRIMASTROFAAUNEINPOEZIICELEBRE
DEMIHAIEMINESCU
50
Sisteme mecanice de criptare
1
Ordin crescut de complexitate si securitate.
Simplifica operatiile de criptare/decriptare.
Capabile sa genereze un numar semnificativ de
chei posibile.
2
Sistemul Skitala
Skitala (”baston” ın greceste) permite realiza-
rea unui sistem de criptare cu permutari.
Spartanii foloseau skitala (ıncepand cu sec. V
ı.H.) ın timpul campaniilor militare.
Ea a fost mentionata prima oara de poetul grec
Archilochus (sec. VII ı.H). Abia la mijlocul se-
colului III ı.H. Apollonius din Rhodos specifica
limpede utilizarea lui ca mijloc de criptare.
O descriere a modului de operare este data
apoi de Plutarh (50-120 A.D.).
Avantaj: rapid; nu comporta erori de trans-
mitere.
Dezavantaj: usor de spart.
3
Exemplul 1.O skitala ale carei dimensiuni per-
mit scrierea a 4 randuri, cu 5 caractere pe
fiecare rand.
VINO MAINE LA INTALNIRE
Ignorand spatiile, mesajul va apare scris sub
forma:
________________________
| | V | I | N | O | M |
|__| A | I | N | E | L |__
| A | I | N | T | A | |
| L | N | I | R | E | |
|___|___|___|___|___|__|
Dupa derulare, mesajul scris pe banda de hartie
este:
VAALIIINNNNIOETRMLAE.
La decriptare, banda va fi rulata din nou si
fiecare a patra litera va fi pe aceeasi linie.
4
Criptanaliza este foarte simpla.
Se iau pe rand valorile n = 2,3,4, . . ..
Pentru o astfel de valoare fixata, se formeaza
n randuri de tipul
n + i,2n + i,3n + i, . . . (i = 1,2, . . .)
care ulterior se concateneaza.
Exista o valoare a lui n pentru care textul astfel
format este inteligibil.
5
Cilindrul Jefferson
Ideea de masina de criptare apare clar prima
data la Thomas Jefferson, primul secretar de
Stat al Statelor Unite; acesta a inventat un
aparat de criptat numit roata de criptare, folo-
sit pentru securitatea corespondentei cu aliatii.
Thomas Jefferson a folosit acest aparat ın pe-
rioada 1790−1802, dupa care se pare ca ideea
s-a pierdut.
6
Un cilindru Jefferson este format din n discuri
de dimensiuni egale (initial n = 26 sau n = 36)
asezate pe un ax.
Discurile se pot roti independent pe ax, iar pe
muchea fiecaruia sunt inscrise cele 26 litere ale
alfabetului, ıntr-o ordine aleatoare.
La criptare, textul clar se ımparte ın blocuri de
n caractere.
Fiecare astfel de bloc se scrie pe o linie (gene-
ratoare) a cilindrului, rotind corespunzator fie-
care disc pentru a aduce pe linie caracterul
cautat.
Oricare din celelalte 25 linii va constitui blocul
de text criptat.
7
Pentru decriptare este necesar un cilindru iden-
tic, ın care se scrie pe o linie textul criptat (de
n caractere) si apoi se cauta printre celelalte
25 linii un text cu semnificatie semantica.
Probabilitatea de a avea un singur astfel de
text creste cu numarul de discuri din cilindru.
8
Daca textul clar nu are nici o semnificatie se-
mantica (s-a folosit o dubla criptare), atunci
trebuie convenita dinainte o anumita distanta
de criptare s (1 ≤ s ≤ 25).
Un cilindru cu n = 10 discuri poate realiza
10! = 3.628.800 texte criptate diferite pentru
acelasi text clar.
Cilindrul Jefferson realizeaza o substitutie po-
lialfabetica de perioada n.
9
Exemplul 2. Fie n = 10 si cilindrul:
1 2 3 4 5 6 7 8 9 101 A A A A A A A A A A2 R R P N V S P E I I3 I O S I O O U S R H4 E S Y M T R H U E E5 K U L O Y P I P S T6 O V U C L M S B L O7 B I K U E U E L B M8 C J B L B B N C C U9 U L R T C D R D D C10 D B C Y D Y Y H F D11 J V D B G E D I N F12 T C T F F C B J Y G13 L G F G K V F F T J14 N K G S N H G O G P15 P N O H H F V G H Q16 W P N J U K J K J B17 Q Q E D P L K M K N18 M T H E Q Q M N M V19 S H M K R I T Q P W20 V E Q P S J O R Q X21 X D V Q W N L V V L22 Z Y W V X G W W W Y23 G W X X M T Q Y O K24 H X Z R I W X X U R25 Y Z I Z J X Z T X S26 F M J W Z Z C Z Z Z
10
Text clar
TREI CULORI
T R E I C U L O R IL O H M D B W G E HN S M O G D Q K S EP U Q C F Y X M L TW V V U K E Z N B OQ I W L N C C Q C MM J X T H V A R D US L Z Y U H P V F CV B I B P F U W N DX F J F Q K H Y Y FZ C A G R L I X T GG G P S S Q S T G JH K S H W I E Z H PY N Y J X J N A J QF P L D M N R E K BA Q U E I G Y S M NR T K K J T D U P VI H B P Z W B P Q WE E R Q A X F B V XK D C V V Z G L W LO Y D X O A V C O YB W T R T S J D U KC X F Z Y O K H X RU Z G W L R M I Z SD M O A E P T J A ZJ A N N B M O F I A
11
Daca se considera o dubla criptare cu distanta
s = 3, atunci textul clar
AAAAAAAAAA
va fi criptat cu cilindrul anterior ın
ESYMTRHUEE
Cilindrul Jefferson a fost reinventat ulterior de
mai multe ori, cea mai notabila fiind se pare
masina de criptat M − 94, care a fost utilizata
pana la ınceputul celui de al doilea razboi mon-
dial.
12
Enigma
Prima jumatate a sec. XX este dominata de
masinile de criptat, o combinatie ıntre masinile
de scris si sisteme de criptare mecanice bazate
pe discuri.
Poate cea mai celebra masina de criptat a fost
masina germana Enigma.
Ea a fost proiectata la Berlin ın 1918, de in-
ginerul german Arthur Scherbius.
Primul model (A) este prezentat la Congresele
Uniunii Postale Internationale din 1923 si 1924.
Modele ulterioare sunt folosite ın mai multe
tari europene si asiatice (Suedia, Olanda,
Marea Britanie, Japonia, Italia, Spania, SUA,
Polonia, Elvetia) ın scopuri comerciale, militare
sau diplomatice.
13
Din 1926 ıncepe sa fie preluata si de armata
germana, care dupa 1928 ısi defineste propriile
modele (G, I, K).
In total au fost construite circa 100.000 masini
Enigma, din care 40.000 ın timpul razboiului.
Dupa 1945 aliatii au capturat toate masinile
de pe teritoriul german, acestea fiind ınca mult
timp considerate sigure.
Abia ın 1970 au aparut primele informatii
despre decriptarea de catre aliati a unui mare
numar de mesaje criptate prin modelul mili-
tar Enigma si transmise prin radio ın timpul
razboiului.
14
In linii mari, o masina Enigma are urmatoarele
componente:
• Tastatura: Este o componenta mecanica
formata din:
– Un pupitru de taste (similar unei masini
de scris);
– n discuri adiacente, care se rotesc ın ju-
rul unui ax.
Pe fiecare disc sunt scrise cele 26
caractere alfabetice (la care uneori se
mai adauga trei caractere speciale);
– Un mecanism de avans (similar ceasuri-
lor mecanice) care permite – la apasarea
unei taste – rotirea unuia sau mai multor
discuri cu un numar de pozitii.
15
• Circuite electrice: Criptarea unui caracter
se realizeaza electric.
La apasarea unei taste se ınchide un cir-
cuit si lumineaza una sau mai multe lampi,
indicand litera de iesire.
• Reflector (Umkehrwalze): Componenta
specifica masinilor de criptat Enigma, cu
scopul de a realiza un sistem de criptare
Beaufort.
In majoritatea variantelor, reflectorul este
asezat pe ax dupa ultimul disc (din stanga);
el realizeaza o substitutie (fixata), dupa
care reintroduce noul caracter prin discuri
ın sens invers, dar pe alt drum.
Deci o masina Enigma cu n discuri va re-
aliza criptarea unui caracter prin 2n + 1
substitutii.
16
• Tabela de conexiuni (Steckerbrett): Com-
ponenta (pozitionata ın fata, sub tastele
literelor) ın care se pot face conexiuni ıntre
perechi de litere, prin intermediul unor ca-
bluri (similar centralelor telefonice vechi).
Deci la un mesaj sunt posibile maxim 13
conexiuni.
De exemplu, daca printr-un cablu sunt
conectate literele S si W , de cate ori este
tastat S, semnalul este comutat pe W ına-
inte de a intra pe discuri.
Introdusa ın 1930, aceasta componenta
asigura un plus de securitate si a fost prin-
cipalul obstacol ın criptanaliza.
17
Starea initiala a unei masini Enigma se refera
la:
• Ordinea discurilor (Walzenlage): alegerea
numarului de discuri si ordinea lor de uti-
lizare;
• Pozitia initiala a discurilor: pozitionarea ın
mod independent a fiecarui disc, diferita
pentru fiecare mesaj;
• Initializarea inelului de caractere (Ringstel-
lung): pozitionarea alfabetului relativ la
primul disc.
• Initializarea conexiunilor (Steckerverbin-
dungen): conexiunile dintre litere ın cadrul
tabelei de conexiuni.
18
Enigma cripteaza fiecare litera dupa o proce-
dura care poate fi exprimata prin produs de
permutari.
Fie o masina Enigma cu 3 discuri si
- P transformarea tabelei de conexiuni,
- U – reflectorul,
- S, M, D – actiunile celor 3 discuri (din stanga,
mijloc si respectiv dreapta).
Atunci criptarea e poate fi scrisa sub forma:
e = PDMSUS−1M−1D−1P−1
Dupa fiecare apasare a unei taste, discurile se
rotesc schimband transformarea.
19
De exemplu, daca discul din dreapta se roteste
cu i pozitii, atunci transformarea devine
ρiDρ−i
where ρ este permutarea ciclica stanga a vec-
torului (A, B, C, . . . , Z).
Similar, discurile din mijloc si stanga pot fi
reprezentate prin j respectiv k rotiri ale lui M
respectiv S.
Atunci functia de criptare este:
e = P (ρiDρ−i)(ρjMρ−j)(ρjSρ−k)U
(ρjS−1ρ−k)(ρjM−1ρ−j)(ρiD−1ρ−i)P−1
Decriptarea se efectueaza dupa aceeasi for-
mula.
20
Care este numarul de variante posibile pentrucriptarea unui mesaj ?
Fie o masina Enigma cu 3 discuri.
Atunci numarul de situatii initiale posibile este26 · 26 · 26 = 17.576.
Cum cele 3 discuri pot fi permutate ın 6 mo-duri, numarul variantelor se ridica la6 · 17.576 = 105.456.
Pentru fiecare din acestea, o tabela de cone-xiuni cu 10 perechi de litere conectate ridicanumarul variantelor la 150.738.274.937.250.
La acestea se adauga si modul de pozitionare alinelului de caractere la mecanismul discurilor,care mai ridica ordinul de marime al variantelorcu aproximativ 105.
Aceste estimari arata ca Enigma era cea maisigura masina de criptat a momentului respec-tiv.
21
Sa detaliem functionarea matematica a unei
masini Enigma:
• Fiecare disc poate fi reprezentat ca un set
de permutari pentru litere – codificate cu
valori ıntre 0 si 25; fie α1, α2, α3 permutarile
de pe cele trei discuri (de la dreapta spre
stanga).
• Fie r1, r2, r3 setarile initiale de pe cele trei
discuri (caracterele situate initial pe poziti-
ile accesibile ale discurilor).
• Pentru simplificare, ignoram rolul tabelei
de conexiuni.
• Vom nota cu β substitutia reflectorului
(reprezentata ca un set de permutari ıntre
perechi de caractere).
22
Sa urmarim un traseu care pleaca de la sem-
nalul de intrare (un caracter din textul clar),
trece prin cele trei discuri si reflector si da ca
rezultat caracterul criptat.
Text
clar
Text
criptat
YI�
>6
�
=�
Y�
+�
6
-
s -
>-
j -
Reflector
aa
a′a′
b
b′
c
c′
d
e Tabela deconexiuni
Disc1Disc2Disc3
23
Exemplul 3. Sa presupunem ca cele permuta-rile celor trei discuri sunt:α1 = (0 15 6 10 14 8 19 17 22 18 11)(1 2 9 13 21 25)
(3 4 23 5 24 7 12 16 20)
α2 = (0 7 9 4 6 18 23 25 8)(1 17 19)(2 20 10)(3 12)(5 11 13 21)(14 22 15 16 24)
α3 = (0 2 4 7 16 17 19 5)(1 6 3 8 21 24 11 13 9 10 25 12 14 15)
(18 23 20 22)
Substitutia β este definita
β = (0 4)(1 7)(2 9)(3 16)(5 20)(6 8)(10 19)(11 17)(12 25)(13 18)
(14 24)(15 22)(21 23).
Deci, cu α1, 0 este mutat ın 15, 15 este mutatın 6, 25 este mutat ın 1 etc.
Inversele celor trei permutari sunt:α−1
1 = (11 18 22 17 19 8 14 10 6 15 0)(25 21 13 9 2 1)(20 16 12 7 24 5 23 4 3)
α−12 = (8 25 23 18 6 4 9 7 0)(19 17 1)(10 20 2)(12 3)(21 13 11 5)
(24 16 15 22 14)
α−13 = (5 19 17 16 7 4 2 0)(15 14 12 25 10 9 13 11 24 21 8 3 6 1)
(22 20 23 18)
24
Setarile initiale: r1 = 22 (primul rotor are
”vizibila” litera V ), r2 = 7, r3 = 12.
Substitutiile celor trei discuri:
b = [a + r1 (mod 26)]α1,
c = [b + r2 (mod 26)]α2,
d = [c + r3 (mod 26)]α3,
unde xα = y, y fiind elementul care urmeaza
lui x ın permutarea α.
De exemplu 3α1 = 4, 8α2 = 0 etc.
Notatia permite sa scriem e = dβ.
In continuare, semnalul parcurge cele trei dis-
curi ın sens invers:
c′ = eα−13 − r3 (mod 26),
b′ = (c′)α−12 − r2 (mod 26),
a′ = (b′)α−11 − r1 (mod 26).
25
Dupa criptarea unui caracter, cele trei discuri
sunt resetate dupa regula:
r1 := r1 + 1 (mod 26);
daca r1 = 0 atunci r2 := r2 + 1 (mod 26);
daca r2 = 0, atunci r3 := r3 + 1 (mod 26).
26
Sa criptam litera K (cod numeric 10):
a = 10;
b = [a + r1 (mod 26)]α1 = [10 + 22 (mod 26)]α1 = 6α1 = 10;
c = [b + r2 (mod 26)]α2 = [10 + 7 (mod 26)]α2 = 17α2 = 22;
d = [c + r3 (mod 26)]α3 = [22 + 12 (mod 26)]α3 = 8α3 = 21.
Trecerea prin reflector da e = dβ = 21β = 23.
Apoi se parcurg cele trei discuri ın sens invers:
c′ = eα−13 −r3 (mod 26) = 23α−1
3 −12 (mod 26) = 18−12 (mod 26) = 6;
b′ = (c′)α−12 −r2 (mod 26) = 6α−1
2 −7 (mod 26) = 4−7 (mod 26) = 23;
a′ = (b′)α−11 −r1 (mod 26) = 23α−1
1 −22 (mod 26) = 4−22 (mod 26) =
8.
Deci criptarea caracterului K este I (cod 8).
Setarile pentru criptarea urmatorului caracter
sunt r1 := 23, r2 = 7, r3 = 12.
27
C − 36 (M − 209 C)
Masina C−36 este conceputa de inginerul sue-
dez Boris Hagelin, la solicitarea armatei ame-
ricane de a avea o masina de criptat portabila,
usor de manuit, care sa poata fi folosita dupa
un instructaj sumar.
Este cunoscuta si sub numele de M −209 C, la
baza fiind un model creat de Hagelin ın Suedia
la sfarsitul anilor ′30.
Ea ıncepe sa fie produsa – dupa cateva modifi-
cari legate de design – ın 1940 si ınlocuieste
treptat masina de criptat M − 94.
Se apreciaza ca ın timpul razboiului au fost
produse circa 140.000 masini de criptat C−36.
28
Definitia 1. Se numeste matrice lug o matrice
binara M6×27 ın care fiecare din cele 27 coloane
contine cel mult doi de 1.
Exemplul 4. Fie matricea lug
M =
000100001010001110000000001100010001001100010010010100000000000000000000000000000001100010100001001000111111001010000001000100100000000000000010010010000010001000
Fie v un vector binar de dimensiune 6.
Atunci c ·M este un vector cu 27 componente
avand elemente din multimea {0,1,2}.
Numarul de elemente nenule din v · M se
numeste ponderea lui v ın raport cu M .
29
O configuratie de ınceput se obtine prin aseza-
rea unul sub altul (aliniati la stanga) a 6 sase
vectori binari de lungimi 17,19,21,23,25,26.
Exemplul 5. Structura
01100010000000110011111000000000000000100000100000000000000000000000100100010001101000000000000000000000011000000000000100010000001
formeaza o posibila configuratie de ınceput.
Spre deosebire de matricea lug, la configuratia
de ınceput nu exista restrictii privind numarul
de 1.
30
Se pot genera o infinitate de vectori de dimen-siune 6 ın felul urmator:
1. Primii 17 vectori sunt coloanele completeale configuratiei de ınceput.
2. Fiecare vector linie se repeta ciclic din mo-mentul cand s-a terminat.
Pe baza acestor elemente se poate descrie sis-temul de criptare al masinii C − 36.
Folosim codificarea numerica a literelor: A− 0pana la Z−25; toate calculele sunt modulo 26.
Fie x codul celui de-al i-lea caracter din textulclar si h ponderea celui de-al i-lea vector gen-erat de configuratia de ınceput ın raport cumatricea lug.
Atunci
y = h − x − 1.
31
Exemplul 6. Text clar
NU PUTEM REUSI DECAT IMPREUNA
Matricea lug si configuratia de ınceput sunt
cele anterioare.
Codificarea numerica a textului:
13 20 15 20 19 4 12 17 4 20 18 8 3 4 2 0 19 8 12 15 17 4 20 13 0.
Se calculeaza ponderile primilor 25 vectori si
se formeaza tabela:h 10 17 16 9 9 9 7 0 0 0 0 12 0x 13 20 15 20 19 4 12 17 4 20 18 8 3
h − x − 1 22 20 0 14 15 4 20 8 21 5 7 3 22W W A O P E U I V F H D W
h 0 18 7 0 0 18 7 9 9 19 14 9x 4 2 0 19 8 12 15 17 4 20 13 0
h − x − 1 21 15 6 6 17 5 17 17 4 24 0 8V P G G R F R R E Y A I
Deci textul criptat este
WWAOPEUIVFHDWVPGGRFRREYAI
32
Remarca 1. Ecuatia de decriptare este iden-
tica cu cea de criptare:
x = h − y − 1.
Deci din acest punct de vedere sistemul de
criptare este de tip Beaufort si masina C − 36
poate fi folosita atat pentru criptare cat si pen-
tru decriptare.
Deoarece liniile din configuratia de ınceput au
lungimi numere prime ıntre ele, vectorii gene-
rati ıncep sa se repete sigur dupa
17 · 19 · 21 · 23 · 25 · 26 = 101.405.850
pasi; deci cuvantul cheie poate fi considerat
mai lung decat orice text clar.
33
Masina de criptat M − 209 avea si ea o se-
rie de slabiciuni (un atac cu texte clare alese
care au anumite componente comune poate
duce la informatii asupra matricii lug), astfel ca
ın 1943 criptanalistii germani puteau decripta
mesajele.
Totusi – din punct de vedere militar tactic –
ea a fost considerata perfect adaptata nece-
sitatilor si a fost folosita de armata americana
pana dupa razboiul din Coreea (1953− 1956).
Ulterior, Hagelin a elaborat un model ımbuna-
tatit: masina C − 52.
Aceasta avea o perioada de 2.756.205.443; dis-
curile puteau si scoase si reinserate ın alta or-
dine; exista un disc al carui alfabet putea fi
permutat.
34
Sisteme fluide de criptare
1
Sisteme sincrone si auto-sincronizabile
Pana acum: Fie K ∈ K o cheie de criptare si
x = x1x2x3 . . .
un text clar. Textul criptat este
y = y1y2y3 . . . = eK(x1)eK(x2)eK(x3) . . .
Sunt sisteme de criptare bloc (block cyphers).
Alta maniera: sisteme de criptare fluide
(stream cyphers).
2
Definitia 1. Fie M= (P, C,K, E,D) un sistem
de criptare. O secventa de simboluri
k1k2k3 . . . ∈ K+
se numeste cheie fluida.
Definitia 2.M= (P, C,K, E,D) este un sistem
fluid de criptare daca cifreaza un text clar
x = x1x2x3 . . .
ın
y = y1y2y3 . . . = ek1(x1)ek2
(x2)ek3(x3) . . .
unde
k = k1k2k3 . . .
este o cheie fluida din K+.
3
Problema: generarea unei chei de criptare flu-
ide (teoretic infinita).
Aceasta se poate realiza fie aleator, fie pe baza
unui algoritm care pleaca de la o secventa mica
de chei de criptare.
Un astfel de algoritm se numeste generator de
chei fluide.
4
Exemplul 1. (Sistemul de criptare Vernam):
Aici
xi, ki, yi ∈ {0,1}
Criptarea:
yi = xi ⊕ ki (i ≥ 1).
Cand cheia fluida este aleasa aleator si nu maieste folosita ulterior, sistemul se numeste ”one- time pad”.
Un sistem de criptare one-time pad asigura unsecret perfect:
Fiind dat un text criptat cu un astfel de sistem,Oscar nu are nici o informatie privind cheiafluida sau textul clar.
Dificultatea consta ınsa atat ın lungimea cheii(egala cu cea a textului clar), cat si ın moda-litatea de transmitere a ei ıntre Alice si Bob.
5
Pentru sistemul Vernam exista o modalitate de
atac bazata pe ”criptanaliza diferentiala”:
Daca y1y2 . . . yn si y′1y′2 . . . y′n sunt doua texte
criptate cu aceiasi cheie fluida K = k1k2 . . . kn,
atunci
yi = xi ⊕ ki, y′i = x′i ⊕ ki (1 ≤ i ≤ n)
deci yi ⊕ y′i = xi ⊕ x′i, si cheia K nu mai este
necesara; redundanta ultimei relatii va permite
criptanaliza.
Sistemele de criptare fluide sunt clasificate ın:
- sisteme sincrone;
- auto-sincronizabile.
6
Definitia 3. Un sistem de criptare fluid sincron
este o structura (P, C,K,L, E,D), unde:
• P, C,K sunt multimi finite nevide cu
semnificatia cunoscuta;
• L este o multime finita nevida numita
”alfabet de chei”;
• g : K−→ L+ este un generator de chei
fluide: pentru
∀K ∈ K, g(K) = k1k2k3 . . . ∈ L+
este o cheie fluida (teoretic infinita);
• ∀z ∈ L exista o regula de criptare ez ∈ E si
o regula de decriptare dz ∈ D astfel ca
∀x ∈ P, dz(ez(x)) = x
7
Exemplul 2. Sistemul Vigenere poate fi definitca un sistem de criptare fluid sincron.
Fie m lungimea cuvantului cheie din sistemulVigenere.
Definim
P = C = L =Z26, K =(Z26)m ,
ez(x) = x + z (mod 26),
dz(y) = y − z (mod 26)
Cheia z1z2z3 . . . este definita
zi =
{ki daca 1 ≤ i ≤ mzi−m daca i ≥ m + 1
Din cheia fixa K = (k1, k2, . . . , km) se obtinecheia fluida
k1k2 . . . kmk1k2 . . . kmk1k2 . . .
8
Procesul de criptare cu un sistem fluid sincron
poate fi reprezentat ca un automat descris de
relatiile
qi+1 = δ(qi, K), zi = g(qi, K), yi = h(zi, xi)
unde
- q0 este starea initiala – care poate fi deter-
minata din cheia K,
- δ este functia de tranzitie a starilor,
- g este functia care produce cheia fluida zi,
- h este functia de iesire care produce textul
criptat yi pe baza textului clar xi si a cheii
fluide zi.
� �� � ��� �� qi
- - -6
6-
?�
?δ
g hK
qi+1
zi
xi
yi � �� � ��� �� qi
- - -6
6-
?�
?δ
g h−1K
qi+1
zi
yi
xi
(a) Criptare (b) Decriptare
9
Remarca 1.
• Un sistem de criptare bloc poate fi privit
ca un caz particular de sistem de criptare
fluid, ın care ∀i ≥ 1, zi = K.
• (sincronizare): In sistemele de criptare flu-
ide sincrone, Alice si Bob trebuie sa-si sin-
cronizeze cheia fluida pentru a putea ob-
tine o criptare/decriptare corecta.
Daca ın timpul transmisiei sunt inserati sau
eliminati biti ın textul criptat, atunci de-
criptarea esueaza si ea poate fi reluata nu-
mai pe baza unor tehnici de resincronizare
(cum ar fi de exemplu reinitializarea sau
plasarea unor marcatori speciali la intervale
regulate ın textul transmis).
10
Remarca 2.
• Modificarea unui bit din textul criptat (fara
a se elimina sau adauga nimic) nu va afecta
decriptarea altor caractere (nepropagarea
erorii).
• Un adversar activ care elimina, insereaza
sau retrimite componente ale mesajului
criptat, va provoca desincronizari si va fi
deci detectat la receptie.
De asemenea, el poate face modificari ın
textul criptat si sa observe cum vor afecta
ele textul clar.
Deci un text criptat cu un sistem fluid sin-
cron necesita mecanisme separate de
autentificare si de garantare a integritatii
datelor.
11
Definitia 4. Un sistem aditiv fluid binar de
criptare este un sistem fluid sincron ın care
P = C = L =Z2 iar functia de iesire h este
⊕ (XOR).
Gen.chei ⊕- -
?-K
zi
xi
yiGen.chei ⊕- -
?-K
zi
yi
xi
(a) Criptare (b) Decriptare
12
Definitia 5. Un sistem de criptare fluid este
auto-sincronizabil (sau ”asincron”) daca func-
tia de generare a cheii fluide depinde de un
numar fixat de caractere criptate anterior.
Deci comportamentul poate fi descris astfel:
qi = (yi−t, yi−t+1, . . . , yi−1),
zi = g(qi, K),
yi = h(zi, xi)
unde
- q0 = (y−t, y−t+1, . . . , y−1) este starea initiala,
- K este cheia,
- g este functia de generare a cheii fluide,
- h este functia de iesire care cripteaza textul
clar xi.
13
Proprietati:
1. Auto-sincronizare: Desincronizarea, rezul-
tata eventual prin inserarea/stergerea de
caractere criptate – se poate evita.
Astfel de sisteme de criptare pot restabili
proprietatea de sincronizare, afectand doar
un numar finit de caractere din textul clar.
2. Propagarea limitata a erorii: Daca starea
unui sistem auto-sincronizabil depinde de
t caractere anterioare, atunci modificarea
(eventual stergerea sau inserarea) unui ca-
racter din textul criptat poate duce la de-
criptarea incorecta a maxim t caractere;
dupa aceea decriptarea redevine corecta.
14
3 Difuzia textelor clare: Deoarece fiecare
caracter din textul clar afecteaza ıntregul
text criptat care urmeaza, eventualele pro-
prietati statistice ale textului clar sunt dis-
persate prin textul criptat.
Deci, din acest punct de vedere, procesul
de difuzie al sistemelor auto-sincronizabile
este mai bun decat al celor sincronizabile.
4 Rezistenta la criptanaliza activa: Din pro-
prietatile anterioare rezulta ca este destul
de dificil de depistat un atac venit de la un
adversar activ (care poate modifica, insera
sau sterge caractere).
De aceea sunt necesare mecanisme supli-
mentare pentru a asigura autentificarea si
integritatea datelor.
15
SEAL
Software - optimized Encryption ALgorithm
(SEAL) este un sistem de criptare aditiv binar,
definit ın 1993 de Coppersmith si Rogaway.
Este unul din cele mai eficiente sisteme imple-
mentabile pe procesoare de 32 biti.
La un astfel de sistem este importanta des-
crierea generatorului de chei fluide (care se
aduna modulo 2 cu textul clar).
SEAL este ın fond o functie pseudo-aleatoare
care scoate o cheie fluida de L biti folosind un
numar n de 32 biti si o cheie secreta a de 160
biti.
16
Fie A, B, C, D, Xi, Yj cuvinte de 32 biti. Notatii:
1. A: complementul lui A (bit cu bit);
2. A ∨ B, A ∧ B, A ⊕ B: operatiile OR, AND siXOR (definite pe biti);
3. A << s: rotirea ciclica a lui A spre stangacu s pozitii;
4. A >> s: rotirea ciclica a lui A spre dreaptacu s pozitii;
5. A + B (mod 232): suma lui A si B (consi-derate ca numere ıntregi fara semn);
6. f(B, C, D) = (B ∧ C) ∨ (B ∧D);g(B, C, D) = (B ∧ C) ∨ (B ∧D) ∨ (C ∧D)h(B, C, D) = B ⊕ C ⊕D.
17
7 A||B: concatenarea lui A cu B;
8 (X1, X2, . . . , Xn)←− (Y1, Y2, . . . , Yn):
atribuire simultana: variabila Yi ia valoarea
Xi simultan pentru toate valorile lui
i = 1,2, . . . , n.
Algoritmul SEAL 1.0 este bazat pe functia
de dispersie SHA, iar SEAL 2.0 – pe functia
SHA− 1:
18
Algoritmul de generare a tabelei G pentru
SEAL 2.0
Intrare: Sirul a = H0H1H2H3H4 de 160 biti si i (0 ≤ i < 232).
Iesire: Ga(i) – sir de 160 biti.
Algoritm 1:
1. Se definesc constantele (de 32 biti):
y1 = 5A827999, y2 = 6ED9EBA1,y3 = 8F1BBCDC, y4 = CA62C1D6
2. a. X0 ←− i;
b. for j ←− 1 to 15 do Xj ←− 00000000;
c. for j ←− 16 to 79 doXj ←− ((Xj−3 ⊕Xj−8 ⊕Xj−14 ⊕Xj−16) << 1);
d. (M0, M1, M2, M3, M4)←− (H0, H1, H2, H3, H4);
e. (Runda 1): for j ←− 0 to 19 do
t←− ((M0 << 5) + f(M1, M2, M3) + M4 + Xj + y1);
(M0, M1, M2, M3, M4)←− (t, M0, M1 << 30, M2, M3);
f. (Runda 2): for j ←− 20 to 39 do
t←− ((M0 << 5) + h(M1, M2, M3) + M4 + Xj + y2);
(M0, M1, M2, M3, M4)←− (t, M0, M1 << 30, M2, M3);
g. (Runda 3): for j ←− 40 to 59 do
t←− ((M0 << 5) + g(M1, M2, M3) + M4 + Xj + y3);
(M0, M1, M2, M3, M4)←− (t, M0, M1 << 30, M2, M3);
19
h. (Runda 4): for j ←− 60 to 79 do
t←− ((M0 << 5) + h(M1, M2, M3) + M4 + Xj + y4);
(M0, M1, M2, M3, M4)←− (t, M0, M1 << 30, M2, M3);
i. Hi ←− Hi + Mi, (0 ≤ i ≤ 4);
Ga(i) = H0||H1||H2||H3||H4.
20
SEAL(a, n)
(Generatorul de chei fluide pentru SEAL 2.0):
Intrare:a – cheia secreta (160 biti),n ∈ [0,232) ıntreg,L - lungimea solicitata pentru cheia fluida.
Iesire:Cheia fluida y, |y| = L′ (L′ - primul multiplu de 128 din [L,∞)).
1. Se genereaza tabelele T, S, R avand ca elemente cuvinte.
Fie constanta Y = 000007FC si functia Fa(i) = Hii (mod 5)
unde Hi0H
i1H
i2H
i3H
i4 = Ga(bi/5c).
a. for i←− 0 to 511 do T [i]←− Fa(i);
b. for j ←− 0 to 255 do S[j]←− Fa(00001000 + j);
c. for k ←− 0 to 4 · d(L− 1)/8192e − 1 doR[k]←− Fa(k + 00002000);
2. Procedure Initialize(n, l, M1, M2, M3, M4, n1, n2, n3, n4)
a.M1 ←− n⊕R[4 · l], M2 ←− (n >> 8)⊕R[4 · l + 1],M3 ←− (n >> 16)⊕R[4 · l + 2], M4 ←− (n >> 24)⊕R[4 · l + 3].
b. for j ←− 1 to 2 do
P ←−M1∧Y, M2 ←−M2+T [P/4], M1 ←− (M1 >> 9),
P ←−M2∧Y, M3 ←−M3+T [P/4], M2 ←− (M2 >> 9),
P ←−M3∧Y, M4 ←−M4+T [P/4], M3 ←− (M3 >> 9),
P ←−M4∧Y, M1 ←−M1+T [P/4], M4 ←− (M4 >> 9),
(n1, n2, n3, n4)←− (M4, M1, M2, M3);
21
P ←−M1 ∧ Y, M2 ←−M2 + T [P/4], M1 ←− (M1 >> 9),
P ←−M2 ∧ Y, M3 ←−M3 + T [P/4], M2 ←− (M2 >> 9),
P ←−M3 ∧ Y, M4 ←−M4 + T [P/4], M3 ←− (M3 >> 9),
P ←−M4 ∧ Y, M1 ←−M1 + T [P/4], M4 ←− (M4 >> 9),
3 y ←− ε (sirul vid);
4 for l −→ 0 to ∞ do
a. Initialize(n, l, M1, M2, M3, M4, n1, n2, n3, n4);
b. for i←− 1 to 64 do
P ←−M1 ∧ Y, M2 ←−M2 + T [P/4],M1 ←− (M1 >> 9), M2 ←−M2 ⊕M1;
Q←−M2 ∧ Y, M3 ←−M3 + T [Q/4],M2 ←− (M2 >> 9), M3 ←−M3 ⊕M2;
P ←− (P + M3) ∧ Y, M4 ←−M4 + T [P/4],M3 ←− (M3 >> 9), M4 ←−M4 ⊕M3;
Q←− (Q + M4) ∧ Y, M1 ←−M1 + T [Q/4],M4 ←− (M4 >> 9), M1 ←−M1 ⊕M4;
P ←− (P + M1) ∧ Y, M2 ←−M2 + T [P/4], M1 ←− (M1 >> 9);
Q←− (Q + M2) ∧ Y, M3 ←−M3 + T [Q/4], M2 ←− (M2 >> 9);
P ←− (P + M3) ∧ Y, M4 ←−M4 + T [P/4], M3 ←− (M3 >> 9);
Q←− (Q + M4) ∧ Y, M1 ←−M1 + T [Q/4], M4 ←− (M4 >> 9);
y ←− y||(M2+S[4 · i−4])||(M3⊕S[4 · i−3])||(M4+S[4 · i−2])||(M1⊕S[·i− 1]).
if |y| ≥ L then return(y) STOP
else if i (mod 2) = 1 then (M1, M3)←− (M1 + n1, M3 + n2)
else (M1, M3)←− (M1 + n3, M3 + n4)
22
Remarca 3. In majoritatea aplicatiilor pentru
SEAL 2.0 se foloseste L ≤ 219.
Algoritmul functioneaza si pentru valori mai
mari, dar devine ineficient deoarece creste mult
dimensiunea tabelei R.
O varianta este concatenarea cheilor fluide
SEAL(a,0)||SEAL(a,1)||SEAL(a,2)|| . . .
Deoarece n < 232, se pot obtine astfel chei
fluide de lungimi pana la 251, pastrand
L = 219.
23
RC4
Sistemul RC4 (Rivest Code #4) a fost creat
ın 1987 de Ron Rivest pentru societatea RSA
Data Security Inc (astazi RSA Security).
Este un sistem aditiv fluid de criptare.
Printre sistemele care folosesc RC4:
SQL (Oracle), Lotus Notes, AOCE (Apple
Computer), WEP WPA CipherSaber
Secure Sockets Layer (optional), Secure Shell
(optional)
RC4 este utilizat pentru criptarea fisierelor ın
protocoale cum ar fi RSA SecurPC sau ın stan-
darde de comunicatii (WEP, WPA pentru car-
duri, criptarea traficului de date sau a site-
urilor de web bazate pe protocolul SSL).
De asemenea, el face parte din Cellular Digital
Packet Data specification.
24
Pentru generarea cheii fluide se foloseste o
stare interna secreta) din doua componente:
• Un tablou de 256 octeti: S[0], . . . , S[255],
numit S − box.
• Doi pointeri de cate un octet
(notati ”i” respectiv ”j”).
S − boxul este initializat cu o cheie de lungime
variabila – de obicei ıntre 40 si 256 biti, folosind
un algoritm numit KSA (key-sheduling algo-
rithm).
In faza a doua, cheia fluida este generata folo-
sind algoritmul PRGA (pseudo-random gene-
ration algorithm).
25
Algoritmul PRGA
i j
+
? ?
?�?-?�
6
�
?
S0 1 2 S[i]+S[j] 254 255
K
. . . . . . . . . . . .
i := 0
j := 0
while GeneratingOutput:
i := (i + 1) mod 256
j := (j + S[i]) mod 256
swap(S[i],S[j])
output S[(S[i] + S[j]) mod 256]
26
Algoritmul KSA
KSA este utilizat la initializarea S − boxului.
Fie n (1 ≤ n ≤ 255) numarul de octeti din cheie(ın majoritatea implementarilor n ∈ [5,16]).
Initial ın S se introduce permutarea identica.Ulterior se realizeaza 256 transpozitii. Formal
for i from 0 to 255 do S[i] := i
j := 0
for i from 0 to 255 do
j := (j + S[i] + key[i mod n]) mod 256;
swap(S[i],S[j])
Implementarea sistemului RC4 este simpla: selucreaza cu octeti. Sunt necesari 256 octetipentru S − box, n octeti de memorie pentrucheie, plus trei variabile ıntregi i, j, k.
Operatiile folosite sunt XOR si AND (sau – peunele platforme – simpla adunare pe biti, faratransport).
27
Sistemul A5/1
A5/1 este un sistem de criptare fluid utilizat ın
retelele de telefonie mobila GSM (ınafara algo-
ritmului de criptare A5/1, retelele GSM folo-
sesc si un algoritm de autentificare A3/8).
Construit ın 1987 special pentru Europa si SUA
(o versiune intentionat mai slaba – A5/2 – a
fost definita ın 1989 pentru export ın alte zone
geografice), el a fost facut public dupa ce ın
2000 s-a demonstrat vulnerabilitatea sa.
28
A5/1 este un AF bazat pe trei registri seriali
cu feedback (LFSR) sincroni R1, R2, R3.
Acestia contin 19, 22, 23 DFF .
La un tact, fiecare registru poate ramane pe
loc sau ısi poate deplasa continutul spre sta-
nga, aducand pe ultima pozitie o combinatie
liniara de alti biti.
Cele trei combinatii liniare sunt definite astfel:
R1[0] ←− R1[13]⊕R1[16]⊕R1[17]⊕R1[18]R2[0] ←− R2[20]⊕R2[21]R3[0] ←− R3[7]⊕R3[20]⊕R3[21]⊕R3[22]
×
×
×
⊕
⊕ ⊕ ⊕
⊕
⊕ ⊕ ⊕
�
?��
�
6
?- ?- ? - ? -
6�
?- ? -6
�
?- ?- ? - ? -6
�
Automatul A5/1
29
Pentru a decide ce registri se deplaseaza la un
tact, se folosesc trei biti de tact (notati ×).
La fiecare tact se determina valoarea majori-
tara din acesti biti; un registru se deplaseaza
(si scoate o valoare) daca bitul sau de tact are
aceeasi valoare cu cea majoritara.
Deci, la fiecare pas, cel putin doi registri vor
suferi o deplasare.
La fiecare tact, valoarea emisa de automat este
k = R1[18]⊕R2[21]⊕R3[22]
Apoi y se combina prin XOR cu bitul curent
din mesajul de informatie (ca la one-time-pad).
30
Exemplul 3. Sa presupunem ca cei trei registrisunt (bitii de tact au fost marcati):
R1 = 0110 1011 1010 1001 011,R2 = 1010 1100 0010 1101 1001 11,R3 = 1100 0101 1011 0010 1010 010
1. Tact 1: Iesire: y ←− 0⊕ 1⊕ 1 = 0.
Bit majoritar: 0. Se deplaseaza R2 si R3.Noua stare:
R1 = 0110 1011 1010 1001 011,R2 = 0101 1000 0101 1011 0011 11,R3 = 1000 1011 0110 0101 0100 100
2. Tact 2: Iesire: y ←− 0⊕ 0⊕ 1 = 1.
Bit majoritar: 1. Se deplaseaza R1 si R2.Noua stare:
R1 = 1101 0111 0101 0010 110,R2 = 1011 0000 1011 0110 0111 11,R3 = 1000 1011 0110 0101 0100 100
31
3 Tact 3: Iesire: y ←− 1⊕ 1⊕ 1 = 1.
Bit majoritar: 0. Se deplaseaza R1 si R3.
Noua stare:
R1 = 1010 1110 1010 0101 101,R2 = 1011 0000 1011 0110 0111 11,R3 = 0001 0110 1100 1010 1001 000
4 Tact 4: Iesire: y ←− 1⊕ 1⊕ 0 = 0.
Bit majoritar: 1. Deplasare R1, R2, R3.
Noua stare:
R1 = 0101 1101 0100 1011 011,R2 = 0110 0001 0110 1100 1111 11,R3 = 0010 1101 1001 0101 0010 000
Deci cheia fluida de criptare este z = 01100 . . .
32
A5/1 necesita o intializare, bazata pe o cheiede criptare K de 64 biti si anumiti parametriGSM stocati ıntr-o constanta Count de 22 biti.
Cum GSM transmite mesajele ın pachete decate 114 biti, A5/1 va genera chei fluide de114 biti; deci este necesara o initializare a au-tomatului la fiecare pachet nou primit.
Algoritmul de initializare:
1. Se reseteaza toti registrii.
2. for i←− 0 to 63 do
2.1. R1[0]←− R1[0]⊕K[i];
2.2. R2[0]←− R2[0]⊕K[i];
2.3. R3[0]←− R3[0]⊕K[i];
2.4. Deplasare stanga toti registrii;
3. for i←− 0 to 21 do
3.1. R1[0]←− R1[0]⊕ Count[i];
3.2. R2[0]←− R2[0]⊕ Count[i];
3.3. R3[0]←− R3[0]⊕ Count[i];
3.4. Deplasare stanga toti registrii;
4. for i←− 0 to 99 do
Functioneaza un tact automatul A5/1, cu ignorarea iesirii.
33
Sisteme simetrice de criptare
moderne
Sistemul de criptare DES
1
Retele Feistel
Avantaj: operatiile de criptare si decriptaresunt similare.
Aceasta permite o reducere substantiala amarimii codului (circuitelor) care implementea-za sistemul de criptare.
Retelele Feistel apar la sistemul de criptare Lu-cifer, construit pentru IBM de o echipa con-dusa de Horst Feistel si Don Coppersmith.
Succesul a fost asigurat odata cu desemnareasistemului DES ca standard oficial de criptare.
Blowfish, Camellia, CAST-128, DES, FEAL,KASUMI, LOKI97, Lucifer, MAGENTA,MISTY1, RC5, TEA, Triple DES, Twofish,XTEA sunt bazate pe retele Feistel.
CAST-256, MacGuffin, RC2, RC6, Skipjackutilizeaza diverse generalizari ale retelelor Feis-tel.
2
Desi se stie de mult cum sa se construiascafunctii cu caracter aleator (care sa creeze ”di-fuzie” si ”confuzie”), pana la retelele Feistelnu se cunosteau algoritmi de constructie pen-tru functii bijective aleatoare.
S D
L R
����f
?PPPPPq
?
?�
������
?
Algoritmul de criptare va opera cu blocuri de2n biti, imaginea criptata a unui bloc printr-oretea Feistel fiind tot un bloc de 2n biti.
Transformarea este bijectiva:din perechea (L, R) se poate regasi (S, D) prinD = L, S = R⊕ f(L).
Functia f nu este obligatoriu inversabila. Decele mai multe ori ea se compune din operatiisimple care sunt executate rapid de calculator.
3
Exemple de operatii folosite frecvent:
• Permutari de biti (implementate sub forma
unor tabele de permutare: P − boxuri).
• Functii simple neliniare (implementate sub
forma unor tabele de substitutie, numite
S − boxuri).
• Operatii liniare (deplasari, adunari, XOR)
Operatii pot fi implementate direct pe struc-
turi hardware (extrem de rapide).
Cum dupa criptare, jumatatea din dreapta a
blocului nu a suferit nici o transformare (doar
o deplasare spre stanga), reteaua Feistel se
aplica de mai multe ori – fiecare aplicatie
fiind numita runda.4
Consideratii generale DES
In mai 1973, Biroul National de Standarde din
SUA a lansat ın Registrul Federal (jurnalul ofi-
cial al guvernului) un apel la construirea unui
sistem de criptare oficial care sa se numeasca
Data Encryption Standard (DES).
Firma IBM a construit acest sistem –
publicat ın Registrul Federal la 17 martie 1975,
modificand sistemul Lucifer, pe care deja ıl
testa.
Dupa dezbateri publice, DES a fost adoptat la
17 ianuarie 1977 drept standard de criptare.
De atunci, el a fost re-evaluat la fiecare 5 ani,
fiind ın acest moment cel mai popular sistem
de criptare cu cheie simetrica.
Spargerea sa ın iulie 1998 a coincis cu durata
sa oficiala de utilizare pe teritoriul SUA.
5
Descrierea sistemului DES
1. Fie α textul clar initial, de 64 biti.
Lui i se aplica o permutare IP initiala,obtinandu-se α0 = IP (α) = L0R0.
2. Se efectueaza 16 runde (iteratii) ale uneifunctii care se va preciza.
La fiecare runda se calculeaza LiRi(1 ≤ i ≤ 16) dupa regula
Li = Ri−1Ri = Li−1 ⊕ f(Ri−1, Ki)
unde f este o functie care se va preciza,iar K1, K2, . . . , K16 sunt secvente de 48 biticalculati din cheia K.
3. Blocului R16L16 i se aplica inversa permu-tarii initiale pentru a obtine textul criptat
β = IP−1(R16L16).
6
Functia de criptare f(A, J) are ca argumente
doua secvente binare: una de 32 biti, iar a
doua de 48 biti.
Rezultatul este o secventa de 32 biti.
1. Argumentul A este extins la 48 biti folosind
o functie de expansiune E.
2. Se calculeaza B = E(A) ⊕ J; rezultatul se
descompune ın 8 subsecvente de cate 6
biti:
B = B1B2B3B4B5B6B7B8.
3. Se folosesc 8 S − boxuri S1, S2, . . . , S8,
fiecare fiind un tablou 4 × 16 cu elemente
numere ıntregi din intervalul [0,15].
7
Pentru o secventa Bj = b1b2b3b4b5b6 se cal-
culeaza un sir de 4 biti Sj(Bj):
bitii b1b6 dau reprezentarea binara a indicelui
unei linii r (0 ≤ r ≤ 3) din Sj; ceilalti patru biti
b2b3b4b5 dau reprezentarea binara a indicelui
unei coloane c (0 ≤ c ≤ 15) din tablou.
Atunci Cj = Sj(Bj) = [Sj(r, c)]2 (1 ≤ j ≤ 8).
4 Secventa C = C1C2C3C4C5C6C7C8 – de
lungime 32 – se rearanjeaza folosind o per-
mutare fixata P .
Rezultatul final este
f(A, J) = P (C).
8
Permutarea initiala IP :
58 50 42 34 26 18 10 260 52 44 36 28 20 12 462 54 46 38 30 22 14 664 56 48 40 32 24 16 857 49 41 33 25 17 9 159 51 43 35 27 19 11 361 53 45 37 29 21 13 563 55 47 39 31 23 15 7
Permutarea inversa IP−1:
40 8 48 16 56 24 64 3239 7 47 15 55 23 63 3138 6 46 14 54 22 62 3037 5 45 13 53 21 61 2936 4 44 12 52 20 60 2835 3 43 11 51 19 59 2734 2 42 10 50 18 58 2633 1 41 9 49 17 57 25
9
Functia de expansiune E:
32 1 2 3 4 54 5 6 7 8 98 9 10 11 12 1312 13 14 15 16 1716 17 18 19 20 2120 21 22 23 24 2524 25 26 27 28 2928 29 30 31 32 1
Permutarea fixata P :
16 7 20 2129 12 28 171 15 23 265 18 31 102 8 24 1432 27 3 919 13 30 622 11 4 25
10
Cele opt cutii S (S − boxuri):
S114 4 13 1 2 15 11 8 3 10 6 12 5 9 0 70 15 7 4 14 2 13 1 10 6 12 11 9 5 3 84 1 14 8 13 6 2 11 15 12 9 7 3 10 5 015 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13
S215 1 8 14 6 11 3 4 9 7 2 13 12 0 5 103 13 4 7 15 2 8 14 12 0 1 10 6 9 11 50 14 7 11 10 4 13 1 5 8 12 6 9 3 2 1513 8 10 1 3 15 4 2 11 6 7 12 0 5 14 9
S310 0 9 14 6 3 15 5 1 13 12 7 11 4 2 813 7 0 9 3 4 6 10 2 8 5 14 12 11 15 113 6 4 9 8 15 3 0 11 1 2 12 5 10 14 71 10 13 0 6 9 8 7 4 15 14 3 11 5 2 12
S47 13 14 3 0 6 9 10 1 2 8 5 11 12 4 1513 8 11 5 6 15 0 3 4 7 2 12 1 10 14 910 6 9 0 12 11 7 13 15 1 3 14 5 2 8 43 15 0 6 10 1 13 8 9 4 5 11 12 7 2 14
11
S52 12 4 1 7 10 11 6 8 5 3 15 13 0 14 914 11 2 12 4 7 13 1 5 0 15 10 3 9 8 64 2 1 11 10 13 7 8 15 9 12 5 6 3 0 1411 8 12 7 1 14 2 13 6 15 0 9 10 4 5 3
S612 1 10 15 9 2 6 8 0 13 3 4 14 7 5 1110 15 4 2 7 12 9 5 6 1 13 14 0 11 3 89 14 15 5 2 8 12 3 7 0 4 10 1 13 11 64 3 2 12 9 5 15 10 11 14 1 7 6 0 8 13
S74 11 2 14 15 0 8 13 3 12 9 7 5 10 6 113 0 11 7 4 9 1 10 14 3 5 12 2 15 8 61 4 11 13 12 3 7 14 10 15 6 8 0 5 9 26 11 13 8 1 4 10 7 9 5 0 15 14 2 3 12
S813 2 8 4 6 15 11 1 10 9 3 14 5 0 12 71 15 13 8 10 3 7 4 12 5 6 11 0 14 9 27 11 4 1 9 12 14 2 0 6 10 13 15 3 5 82 1 14 7 4 10 8 13 15 12 9 0 3 5 6 11
12
Procesul de diversificare al cheii K
K este o secventa de 64 biti, din care 56 de-
finesc cheia, iar bitii de pe pozitiile
8,16,24, . . . ,64 sunt biti de paritate.
1. Din cheie se elimina bitii de paritate, iar
asupra celorlalti se aplica o permutare PC1,
obtinandu-se PC1(K) = C0D0
(C0 sunt primii 28 biti din secventa).
Permutarea PC1 este
57 49 41 33 25 17 91 58 50 42 34 26 1810 2 59 51 43 35 2719 11 3 60 52 44 3663 55 47 39 31 23 157 62 54 46 38 30 2214 6 61 53 45 37 2921 13 5 28 20 12 4
13
2 Pentru i = 1,2, . . . ,16 se calculeaza
Ci = LSi(Ci−1),Di = LSi(Di−1)
unde LSi este o rotatie circulara la stangacu una sau 2 pozitii: daca i = 1,2,9,16,atunci cei 28 biti se rotesc cu o pozitie,altfel rotirea este cu doua pozitii.
In final Ki = PC2(CiDi) unde PC2 este opermutare si o selectie de 48 biti;daca renumerotam bitii din CiDi, ın urmalui PC2 se elimina bitii 9,18,22,25,35,38,43 si 54:
14 17 11 24 1 53 28 15 6 21 1023 19 12 4 26 816 7 27 20 13 241 52 31 37 47 5530 40 51 45 33 4844 49 39 56 34 5346 42 50 36 29 32
14
Decriptarea se realizeaza plecand de la tex-
tul criptat β si utilizand acelasi algoritm, ın
ordine inversa; se vor folosi ın ordine cheile
K16, . . . , K1.
Exemplul 1. Sa consideram textul clar
”Now is time for all”
reprezentat ca o secventa de caractere ASCII
scrise ın hexazecimal.
Daca se face o criptare DES folosind cheia
K = 0123456789ABCDEF , se obtineα = 4E6F772069732074
68652074696D6520666F7220616C6C20
β = 3FA40E8A984D48156A271787AB8883F9893D51EC4B563B53
15
Chei slabe
Definitia 1. O cheie DES slaba este o cheie
K cu proprietatea eK(eK(α)) = α, ∀α ∈ P.
O pereche de chei (K1, K2) este semi-slaba
DES daca eK1(eK2
(α)) = α, ∀α ∈ P.
In DES sunt 4 chei slabe si 6 perechi de cheisemi-slabe, date de tabelele urmatoare:
Chei slabe (hex) C0 D0
0101010101010101 028 028
FEFEFEFEFEFEFEFE 128 128
1F1F1F1F0E0E0E0E 028 128
E0E0E0E0F1F1F1F1 128 028
C0 D0 Perechi de chei semi− slabe (hex) C0 D0
(01)14 (01)14 01FE01FE01FE01FE, FE01FE01FE01FE01 (10)14 (10)14
(01)14 (10)14 1FE01FE00EF10EF1, E01FE01FF10EF10E (10)14 (01)14
(01)14 028 01E001E001F101F1, E001E001F101F101 (10)14 028
(01)14 128 1FFE1FFE0EFE0EFE, FE1FFE1FFE0EFE0E (10)14 128
028 (01)14 011F011F010E010E, 1F011F010E010E01 028 (10)14
128 (01)14 E0FEE0FEF1FEF1FE, FEE0FEE0FEF1FEF1 128 (10)14
Nesansa ca printr-o alegere aleatoare a cheii
sa se obtina o cheie slaba sau semi-slaba este
deci 2−52.16
Fiind data o cheie semi-slaba K, cealalta cheie
din pereche poate fi obtinuta sectionand K ın
doua parti egale si rotind fiecare jumatate cu
8 biti.
Pentru fiecare cheie slaba K exista 232 puncte
fixe: texte clare α cu proprietatea eK(α) = α.
Pentru fiecare cheie semi-slaba K din partea
superioara a tabelului exista 232 puncte anti-
fixe: texte clare α cu eK(α) = α.
Aceste patru chei semi-slabe se numesc si
chei anti - palindromice, deoarece subcheile
generate sunt complementare:
K1 = K16, K2 = K15 etc.
17
Controverse legate de DES
O prima obiectie: S − boxurile.Toate calculele din DES sunt liniare,cu exceptia acestor S − boxuri.
NSA afirma ın 1976 ca S − boxurile au fostconstruite pe baza urmatoarelor criterii:
1. O linie este o permutare pentru (0, . . . ,15);
2. Un S − box nu este o functie liniara/afina;
3. La modificarea unui bit din operand, unS − box provoaca modificarea cel putin adoi biti din rezultat;
4. Pentru fiecare cutie S si α (|α| = 6), S(α)si S(α ⊕ 001100) difera prin cel putin doibiti.
18
Alte doua proprietati au fost mentionate drept
”consecinte ale criteriilor de constructie”:
5. Pentru orice cutie S si orice α,
S(α) 6= S(α⊕ 11ab00), ∀a, b ∈ {0,1};
6. Daca un bit din operand este mentinut con-
stant si se urmareste un bit al rezultatu-
lui, numarul de valori care produc 0 este
”apropiat” de numarul de valori care pro-
duc 1.
Mai exact, acest numar este ın intervalul
[13,19].
Nici un alt criteriu referitor la S − boxuri nu a
mai fost recunoscut public.
19
Alta obiectie se refera la marimea prea mica
(numai 256) a spatiului cheilor.
S-au conceput numeroase masini dedicate ata-
curilor prin forta bruta, care sa caute cheia.
Fiind dat un text clar α de 64 biti si textul sau
criptat β, se verifica toate cheile K posibile
(aproximativ 255), pana se obtine eK(α) = β
(solutia exista totdeauna).
20
Moduri de implementare ale DES -ului
Sistemul de criptare DES a cunoscut patru
moduri de implementare
(extinse ulterior la toate sistemele de criptare):
• Modul ECB (Electronic Codebook Mode):
fiind dat un text clar x = α1α2 . . ., fiecare
bloc αi de 64 biti este criptat cu cheia K
dupa formula
βi = eK(αi), (i ≥ 1)
Se obtine textul criptat y = β1β2 . . .
21
• Modul CBC (Cypher Block Chaining
Mode):
β1
eK eK
β2
α1 α2
V I = β0 ⊕ ⊕
Criptare
-?
?
?-
6- ?
?
?-
6- . . .
α1 α2
dK dK
β1 β2
V I = β0 -
?
?
?
-
?-
?
?
?
-
?-⊕ ⊕ . . .
Decriptare
Bloc cu valoare initiala V I = β0.
Functia de criptare
βi = eK(βi−1 ⊕ αi) (i ≥ 1)
Functia de decriptare
αi = βi−1 ⊕ dK(βi) (i ≥ 1)
nu este recursiva.
De aceea, decriptarea se poate efectua mai
rapid (comparativ cu operatia de criptare),
printr-un proces de calcul paralel.
22
Modurile OFB si CFB sunt construite con-
form sistemelor de criptare cu chei fluide: se
genereaza cheia fluida, care se combina apoi cu
textul clar (similar sistemului one-time-pad).
• OFB (Output Feedback Mode):
Criptare sincronizabila aditiva: componen-
tele cheii fluide sunt obtinute prin criptarea
iterativa a unui bloc initial V I de 64 biti.
Se defineste γ0 = V I si se calculeaza
γ1, γ2, . . . cu formula
γi = eK(γi−1), (i ≥ 1)
Textul clar x = α1, α2, . . . este criptat apoi
conform relatiei
βi = αi ⊕ γi, (i ≥ 1)
23
• Modul CFB (Cypher Feedback Mode):
1. Se ıncepe cu blocul initial β0 = V I;
2. Se calculeaza cheia fluida γi:
γi = eK(βi−1) (i ≥ 1)
3. (ca la modul OFB)
βi = αi ⊕ γi (i ≥ 1)
Functia eK este folosita atat la procesul decriptare cat si la cel de decriptare.
β1
eKV I = β0
α1
eK
β2
α2
- -?
?-
6- -
?
?-
6-⊕⊕
Criptare
. . .
α1
eKV I = β0
β1
eK
α2
β2
- -?
?
-
?- -?
?
-
?-⊕⊕
Decriptare
. . .
Si aici este posibila o decriptare ın paralel,datorita formulei
αi = βi ⊕ eK(βi−1) (i ≥ 1)
Modurile OFB si CFB pot fi extinse la blocuride k biti (1 ≤ k ≤ 64).
24
Remarca 1.
La ECB si OFB, modificarea unui bloc de textclar αi provoaca modificarea unui singur blocde text criptat, βi.
Modul OFB este utilizat adesea pentru trans-misiile prin satelit.
In modurile CBC si CFB dimpotriva, modi-ficarea unui bloc αi de text clar antreneazamodificari ın toate blocurile de texte criptate,ıncepand cu βi.
De aceea, aceste moduri sunt adaptate ın par-ticular problemelor de autentificare a mesajelor(MAC - Message Authentication Code).
Un MAC este adaugat la un text clar cu scopulde a-l convinge pe Bob ca textul primit a fostscris de Alice si nu a fost alterat de Oscar.
El garanteaza astfel integritatea (sau autenti-citatea) mesajului, dar nu si confidentialitateasa.
25
Constructia unui MAC folosind CBC.
Se pleaca de la blocul initial V I ın care toti bitii
sunt 0.
Se construieste textul criptat β1, β2, . . . , βn cu
cheia K, ın modul CBC, iar MAC este blocul
βn.
Alice va transmite mesajul α1, α2, . . . , αn, aso-
ciat cu MAC-ul βn.
Cand Bob primeste mesajul α1, α2, . . . , αn, el
genereaza β1, . . . , βn folosind cheia (secreta) K
si verifica 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 modificare a mesajelor
clare este depistata astfel usor.
26
Se poate realiza si o combinare a integritatiicu confidentialitatea:
Alice utilizeaza cheia K1 pentru a calcula unMAC bazat pe α1, . . . , αn; fie αn+1 acest MAC.
Apoi, ea cripteaza mesajul α1, . . . , αn+1 ınβ1, . . . , βn+1 folosind o a doua cheie K2.
Cand Bob primeste mesajul, el decripteaza ınprima faza (cu cheia K2), apoi verifica cu cheiaK1 daca αn+1 este MAC-ul lui α1, . . . , αn.
Varianta:
Alice poate utiliza K1 pentru criptarea mesaju-lui α1, . . . , αn; apoi, pentru β1, . . . , βn determinaMAC-ul βn+1 folosind cheia K2.
Bob va face ıntai verificarea corectitudinii datade MAC si – daca totul este ın ordine – vatrece la decriptare.
27
Parole UNIX
Algoritmul UNIX crypt – de criptare al parolelor
din sistemul UNIX – este bazat pe DES.
DES DES DES- - - - - -
-
6
6-
6�6 6
? -
?
�
? ?
′0′ . . .
w
Salt
/etc/passwrd
56
64 64
1212
88
64 64 64
Versiunea criptata a unei parole este stocata
ıntr-o baza de date /etc/passwrd (a carei confi-
dentialitate nu este obligatoriu asigurata).
Atunci cand un utilizator da parola, sistemul o
cripteaza si o compara cu varianta din baza de
date.
28
Modul de criptare:
1. Parola este trunchiata la primele opt ca-
ractere ASCII (sau completata cu 0 daca
parola are mai putin de 8 caractere).
Fiecare caracter da 7 biti, formand o cheie
DES de 56 biti.
2. Se realizeaza o criptare ın serie prin 25 sis-
teme DES, textul clar initial fiind 00 . . .0.
3. Cei 64 biti obtinuti dupa ultima criptare
se combina cu 12 biti dati de Salt si cu
un bit suplimentar, formand 11 caractere
printabile de cate 7 biti.
Bitii de paritate completeaza parola crip-
tata pana la 88 biti.
29
Sistemul UNIX ofera pentru criptare un pa-
chet de 12 biti – numit Salt – generat de sis-
temul de ceas al sistemului la momentul creerii
parolei si stocat ın baza de date, ın cadrul
parolei criptate.
Acesti biti sunt folositi pentru modificarea
functiei de expansiune E din DES, oferind
212 = 4096 variante.
Anume: fiecare bit din Salt este asociat cu o
pereche fixata din blocul de 48 biti din E.
Daca el este 1, atunci bitii din E asociati lui
sunt interschimbati; altfel, sunt lasati pe loc.
Aceasta modificare previne utilizarea de imple-
mentari ale sistemului DES externe sistemului
UNIX.
30
Triplu DES (3DES)
Triplu DES (cunoscut si sub numele 3DES sau
– mai rar – DES − ede) este propus de Walter
Tuchman (seful echipei IBM care a construit
DES).
Numele oficial este FIPS Pub 46− 3.
Formal, 3DES este definit prin formula
c = DESk3(DES−1
k2(DESk1
(m)))
Introducerea la pasul 2 a decriptarii nu afectea-
za securitatea algoritmului.
Uneori – dar destul de rar – se foloseste pentru
3DES o criptare ın lant de trei criptari DES
(numita si DES − eee):
c = DESk3(DESk2
(DESk1(m))).
31
Criptarea ın trei pasi (ede sau eee) este esenti-ala pentru protejarea contra unui atac de tipulmeet-in-the-middle (posibil ın cazul unei dublecriptari).
Fie un sistem de criptare bloc unde marimeacheii este n.
Pentru un text clar dat m, sa presupunem caputem stoca multimea {eK(m) | K ∈ K}.
Fie x un text criptat dupa formulax = ek2
(ek1(m)),
unde cheile k1 si k2 sunt secrete.
Pentru fiecare cheie p exista o cheie unica q
astfel ca dp(x) = eq(m).
In particular exista exact 2n chei posibile de-terminate de perechea (m, x), chei care pot figasite ın aproximativ O(2n) pasi.
32
Pentru oricare din situatiile
k1 = k2, k2 = k3, k1 = k2 = k3,
DES − ede se reduce la un simplu DES, lucru
utilizat frecvent pentru a verifica compatibili-
tatea.
Cheia pentru 3DES are 3 × 56 = 168 biti, la
care se adauga 3 × 8 = 24 biti de paritate; ın
total sunt 192 biti.
O varianta, numita ”3DES cu doua chei”
foloseste k1 = k3; aici marimea de stocare a
cheii va fi de numai 128 biti (din care 16 biti
de paritate).
33
Sistemul de criptare 3DES nu este ınca spart,
dar utilizarea sa este ıngreunata din cauza vite-
zei mici de criptare.
Totusi multe sisteme continua sa foloseasca
3DES; ca exemple mai recente sunt cardurile
bancare (Mastercard si partial – Visa) care din
2002 sunt configurate pe baza acestui sistem
de criptare.
De asemenea, sistemul de telefonie mobila
Zapp foloseste 3DES ca sistem de criptare.
34
DES −X
Varianta a sistemului de criptare DES, dez-
voltata pentru a rezista mai bine unui atac prin
forta bruta.
Este propus de Rivest ın 1984 ın ideea de a
creste marimea cheii K fara a modifica prea
mult algoritmul DES.
DES −X foloseste doua chei suplimentare
K1, K2 (de cate 64 biti) si efectueaza criptarea
dupa formula
DESXK,K1,K2(x) = K2 ⊕DESK(x⊕K1)
Marimea cheii creste deci la 56 + 2 ∗ 64 = 184
biti.
35
IDEA
Apare initial ın 1990, sub denumirea PES
(Proposed Encryption Standard).
Deoarece ın acelasi an, Biham si Shamirpublica sistemul de atac al DES-ului prin crip-tanaliza diferentiala, ın 1991 autorii (Xuejia Laisi James Massey) modifica sistemul de criptarepentru a rezista acestui gen de atac.
Noul sistem este numit IPES (Improved Pro-posed Encryption Standard); ın 1992 numelese schimba ın IDEA (International Data En-cryption Standard Algorithm).
In opinia lui Bruce Schneider, ın 1996 IDEA
constituia cel mai sigur sistem de criptare uti-lizabil fara restrictii.
Este o componenta a sistemului de securitateprin posta electronica PGP , unde asigura crip-tarea datelor.
36
IDEA este un sistem simetric care opereazacu blocuri de texte clare de 64 biti, folosind ocheie de 128 biti.
Textul clar de 64 biti este despartit ın 4 sub-blocuri X1, X2, X3, X4, de cate 16 biti fiecare.
Aceste patru componente formeaza intrarea laprima runda a algoritmului.
Sunt 8 runde, care folosesc operatiile de adu-nare, ınmultire (modulo 216) si XOR; toate pe16 biti.
De asemenea sunt implicate si 16 subchei acate 16 biti fiecare.
Intre runde, subblocurile 2 si 3 sunt schimbateıntre ele.
Dupa runda 8, cele patru subblocuri sunt com-binate cu 4 subchei, formand iesirea.
37
O runda contine 14 operatii, anume:
1. Se ınmulteste X1 cu prima subcheie;
2. Se aduna X2 cu a doua subcheie;
3. Se aduna X3 cu a treia subcheie;
4. Se ınmulteste X4 cu a patra subcheie;
5. Ce s-a obtinut la pasii 1 si 3 se combina
prin XOR;
6. Ce s-a obtinut la pasii 2 si 4 se combina
prin XOR;
7. Se ınmulteste rezultatul pasului 5 cu sub-
cheia 5;
8. Se aduna rezultatele pasilor 6 si 7;
38
9. Se ınmulteste rezultatul pasului 8 cu sub-
cheia 6;
10. Se aduna rezultatele pasilor 7 si 9;
11. Ce s-a obtinut la pasii 1 si 9 se combina
prin XOR;
12. Ce s-a obtinut la pasii 3 si 9 se combina
prin XOR;
13. Ce s-a obtinut la pasii 2 si 10 se combina
prin XOR;
14. Ce s-a obtinut la pasii 4 si 10 se combina
prin XOR.
Rezultatele pasilor 11− 14 formeaza iesirea
dintr-o runda; cele patru subblocuri (dupa ce
subblocurile doi si trei sunt interschimbate)
formeaza intrarea ın runda urmatoare.39
Dupa ultima runda, are loc o transformare fi-
nala:
1. Se ınmulteste X1 cu prima subcheie;
2. Se aduna X2 cu a doua subcheie;
3. Se aduna X3 cu a treia subcheie;
4. Se ınmulteste X4 cu a patra subcheie.
Cela patru subblocuri obtinute ın final
formeaza textul criptat.
40
Prelucrarea subcheilor se face dupa urmatorul
algoritm:
1. Cheia de 128 biti este desfacuta ın 8 sub-
chei a cate 16 biti fiecare;
2. Primele 6 subchei sunt folosite la prima
runda, iar urmatoarele doua, la runda a doua;
3. Cheia este rotita spre stanga cu 25 biti
si se desface din nou ın 8 subchei, folosite la
rundele 2 si 3 (cate patru subchei);
4. Se repeta pasul 3 cat timp este necesar.
Operatia de decriptare se realizeaza urmand
aceiasi pasi, cu singura diferenta ca subcheile
se introduc ın ordine inversa.
41
Ce a urmat dupa DES
La sfarsitul anilor ′90 se decide ınlocuirea sis-
temului de criptare DES. Motive:
• In iulie 1998 sistemul DES pe 56 biti este
spart de catre organizatia Electronic Fron-
tier Foundation; s-a folosit un calculator
construit special ın acest scop, iar timpul
necesar spargerii a fost de 3 zile.
• In luna septembrie a aceluiasi an, adminis-
tratia americana acorda companiilor pro-
ducatoare de soft de securitate permisi-
unea de a exporta implementari ale algo-
ritmului DES bazate pe chei de criptare de
56 biti.
42
Pe 20 august 1998 NIST (National Institute
of Standards and Technology) anunta un set
de 15 algoritmi candidati sa ınlocuiasca DES
(CAST − 256, CRY PTON, DEAL, DFC, E2,
FROG, HPC, LOKI97, MAGENTA, MARS,
RC6, Rijndael, SAFER+, Serpent, Twofish).
Este ales si numele noului sistem de criptare:
AES (Advanced Encryption Standard).
43
• Sa fie un sistem de criptare simetric peblocuri de 128 biti.
• Sa accepte chei de lungime 128, 192 si 256biti;
• Sa nu aiba chei slabe;
• Sa fie eficient atat pe platforme Intel Pen-tium Pro cat si pe alte platforme softwaresau hardware;
• Sa poata fi implementat atat pe procesoarede 32 biti cat si pe smart - carduri (proce-soare de 8 biti);
• Sa fie cat mai simplu.
• Sa fie mai rapid decat DES si sa ofere osecuritate mai mare decat 3DES.
44
A doua conferinta AES are loc ın martie 1999;
Sunt selectata 5 algoritmi:
Mars, RC6, Rijndael, Serpent si Twofish.
Acestia sunt supusi testelor si discutiilor pub-
lice, folosind drept criterii de evaluare:
securitate, cost, implementare.
In mai 2000 NIST anunta drept ”castigator”
sistemul de criptare Rijndael, care devine ofi-
cial AES.
Rijndael a castigat cu 86 voturi,
contra Serpent cu 59, Twofish cu 31,
RC6 cu 23 si Mars cu 13 voturi.
Principalul atu: desi Serpent este considerat
mai sigur, Rijndael are mai putine transformari
si este mai rapid.
45
Sistemul de criptare AES
Similar sistemelor anterioare (inclusiv DES),
sistemul AES cripteaza blocuri de text clar de
lungime fixa, folosind subchei ale unei chei
generate aleator.
Lungimile folosite sunt de 128, 192 sau 256
biti.
In schimb AES nu foloseste structura Feistel
ın constructia sa.
46
Descrierea sistemului AES
Definitia 2. Un rezultat intermediar al
sistemului de criptare se numeste ”stare”.
Starea unui bloc este un tablou cu 4 linii si Nb
coloane, ale carui elemente sunt octeti; deci
Nb = N/32
unde N este lungimea blocului text care se
cripteaza.
Similar, o cheie de criptare se va reprezenta
printr-un tablou 4×Nk, unde
Nk = K/32
(K – lungimea cheii).
47
Exemplul 2. O stare cu Nb = 6 si o cheie cu
Nk = 4 au forma urmatoare:
a0,0 a0,1 a0,2 a0,3 a0,4 a0,5a1,0 a1,1 a1,2 a1,3 a1,4 a1,5a2,0 a2,1 a2,2 a2,3 a2,4 a2,5a3,0 a3,1 a3,2 a3,3 a3,4 a3,5
k0,0 k0,1 k0,2 k0,3k1,0 k1,1 k1,2 k1,3k2,0 k2,1 k2,2 k2,3k3,0 k3,1 k3,2 k3,3
48
Un bloc se reprezinta uneori sub forma unui
vector ın care fiecare element este coloana unei
stari (deci, un cuvant).
In functie de marimea N a blocului de criptare
(respectiv K a cheii), un astfel de vector are
4, 6 sau 8 componente, numite cuvinte.
Octetii unui cuvant se noteaza (a, b, c, d);
octetul 0 este a, octetul 1 este b s.a.m.d.
Intrarea si iesirea din sistemul AES sunt defi-
nite sub forma unor vectori avand drept com-
ponente octeti, numerotati de la 0 la 4Nb − 1.
Un vector de intrare/iesire are deci 16, 24 sau
32 componente, numerotate 0 . . .15, 0 . . .23
respectiv 0 . . .31.
49
Similar, cheia de criptare este definita ca unvector de 16, 24 sau 32 octeti, numerotati dela 0 la 4Nk−1 (unde Nk = 128, 192 si respectiv256).
Octetii care formeaza intrarea ın sistem(textul clar pentru modul de criptare ECB)completeaza pe coloane un tablou, numitstarea initiala.
Similar se procedeaza cu cheia de criptare.
Procedeul este identic la sfarsit, cand se obtineblocul criptat prin liniarizarea pe coloane astarii finale rezultate dupa criptare.
Criptarea se realizeaza ın Nr runde, unde Nr
depinde de Nb si Nk.
Nr Nb = 4 Nb = 6 Nb = 8Nk = 4 10 12 14Nk = 6 12 12 14Nk = 8 14 14 14
50
Fiecare runda are la intrare o stare si foloseste
o cheie de runda.
Cu exceptia rundei finale, o runda este formata
din patru transformari:
• ByteSub(Stare);
• ShiftRow(Stare);
• MixColumn(Stare);
• AddRoundKey(Stare, Cheie).
Ultima runda contine numai trei transformari,
fiind eliminata MixColumn(Stare).
51
ByteSub(Stare):
Substitutie neliniara care opereaza pe octeti.
Tabela de substitutie (S - box) este o matrice
inversabila formata din compunerea a doua
transformari:
1. Fiecare octet nenul α este ınlocuit cu in-
versul sau α−1 ∈ GF (28);
octetul 00 este lasat nemodificat.
2. Rezultatul este trecut printr-o transfor-
mare afina:y0y1y2y3y4y5y6y7
=
1 0 0 0 1 1 1 11 1 0 0 0 1 1 11 1 1 0 0 0 1 11 1 1 1 0 0 0 11 1 1 1 1 0 0 00 1 1 1 1 1 0 00 0 1 1 1 1 1 00 0 0 1 1 1 1 1
x0x1x2x3x4x5x6x7
+
11000110
52
Transformarea ByteSub se aplica tuturor
octetilor starii de intrare ın runda, rezultatul
fiind o alta stare (de iesire din runda).
Inversa transformarii se obtine aplicand fiecarui
octet transformarea afina inversa, dupa care
se ia inversul multiplicativ din GF (28) (daca
octetul nu este nul).
53
ShiftRow(Stare):
Liniile unei stari sunt permutate ciclic stanga.
Numarul de octeti cu care se face ciclarea:
0 pentru linia 0, Ci pentru linia i (1 ≤ i ≤ 3).
Valorile Ci depind de lungimea Nb a blocului:
Nb C1 C2 C34 1 2 36 1 2 38 1 3 4
54
Exemplul 3. Aplicam transformarea ShiftRow
starii din Exemplul 2 (cu Nb = 6):
a0,0 a0,1 a0,2 a0,3 a0,4 a0,5a1,1 a1,2 a1,3 a1,4 a1,5 a1,0a2,2 a2,3 a2,4 a2,5 a2,0 a2,1a3,3 a3,4 a3,5 a3,0 a3,1 a3,2
55
Inversa transformarii ShiftRow:
permutare ciclica spre stanga cu Nb−Ci octeti
pentru linia i (1 ≤ i ≤ 3).
In acest fel, fiecare octet aflat pe pozitia j ın
linia i se deplaseaza pe pozitia
j + Nb − Ci (mod Nb).
56
MixColumn(Stare):
Fiecare coloana a starii este considerata un
polinom p(X) ∈ GF (28)[X] de gradul 3.
Fiecare astfel de polinom este ınmultit cu
c(X) = ′03′X3 + ′01′X2 + ′01′X + ′02′
ın algebra polinoamelor modulo X4 + 1.
Transformarea poate fi reprezentata ca o
ınmultire matriciala, care transforma starea
coloana cu coloana:
b0b1b2b3
=
02 03 01 0101 02 03 0101 01 02 0303 01 01 02
a0a1a2a3
57
Operatia inversa este similara.
Fiecare coloana este transformata prin ınmulti-
re cu polinomul invers lui c(X) modulo X4+1:
d(X) = ′0B′X3 + ′0D′X2 + ′09′X + ′0E′.
58
AddRoundKey(Stare, Cheie):
Consta ın aplicarea unui XOR ıntre stareacurenta si cheia de runda.
De exemplu, pentru Nb = 6, transformareaeste:
a0,0 a0,1 a0,2 a0,3 a0,4 a0,5a1,0 a1,1 a1,2 a1,3 a1,4 a1,5a2,0 a2,1 a2,2 a2,3 a2,4 a2,5a3,0 a3,1 a3,2 a3,3 a3,4 a3,5
⊕
k0,0 k0,1 k0,2 k0,3 k0,4 k0,5k1,0 k1,1 k1,2 k1,3 k1,4 k1,5k2,0 k2,1 k2,2 k2,3 k2,4 k2,5k3,0 k3,1 k3,2 k3,3 k3,4 k3,5
=
b0,0 b0,1 b0,2 b0,3 b0,4 b0,5b1,0 b1,1 b1,2 b1,3 b1,4 b1,5b2,0 b2,1 b2,2 b2,3 b2,4 b2,5b3,0 b3,1 b3,2 b3,3 b3,4 b3,5
unde bi,j = ai,j ⊕ ki,j (0 ≤ i ≤ 3, 0 ≤ j ≤ 5).
59
Cheia de runda are lungimea Nb si se deduce
din cheia de criptare.
Transformarea AddRoundKey si inversa ei sunt
identice.
60
Algoritmul de criptare AES este format din:
1. O transformare AddRoundKey initiala;
2. Nr − 1 runde;
3. O runda finala.
61
Generarea cheilor de runda
Cheile de runda se obtin din cheia de criptareprin:
1. extinderea cheii, si
2. alegerea cheii de runda.
Principiile de baza ale prelucrarii sunt:
• Numarul total al bitilor din toate cheile derunda este Nb(Nr + 1).
• Cheia de criptare este extinsa ıntr-o CheieExpandata.
• Cheia de runda se obtine luand primii Nb
octeti din Cheia Expandata, care nu au fostfolositi pentru alte chei.
62
Extinderea cheii
Cheia expandata (notata W [Nb(Nr + 1)]) este
un tablou liniar ale carui elemente sunt cuvinte.
Primele Nk cuvinte sunt cheia de criptare; cele-
lalte cuvinte se obtin recursiv din cuvintele de-
finite anterior.
Functia de extindere a cheii depinde de val-
oarea lui Nk; exista o versiune pentru Nk ≤ 6
si o alta pentru Nk > 6.
63
Pentru Nk ≤ 6:
KeyExpansion(byte Key[4 ∗Nk] word W [Nb ∗ (Nr + 1)])
{
for (i = 0; i < Nk; i + +)
W [i] = (Key[4 ∗ i], Key[4 ∗ i + 1], Key[4 ∗ i + 2], Key[4 ∗i + 3]);
for (i = Nk; i < Nb ∗ (Nr + 1); i + +)
{
temp = W [i− 1];
if (i % Nk == 0)
temp = SubByte(RotByte(temp)) ˆ Rcon(i/Nk);
W [i] = W [i−Nk] ˆ temp;
}
}
64
SubByte(W ) este o functie care ıntoarce uncuvant ın care fiecare octet este rezultatul apli-carii S - boxului definit de ByteSub fiecaruioctet din cuvantul de intrare.
RotByte(w) ıntoarce un cuvant ın care octetiisunt rotiti ciclic la stanga:
(a, b, c, d) −→ (b, c, d, a).
Ideea algoritmului:
Primele Nk cuvinte sunt completate cu cheiade criptare.
Apoi W [i] = W [i− 1]⊕W [i−Nk].
Pentru cuvintele aflate pe pozitii multipli deNk, ınainte de aceasta operatie, lui W [i − 1]i se aplica o permutare ciclica spre stanga aoctetilor, urmata de aplicarea unui S - box.
In final se face ınca un XOR ıntre rezultat si oconstanta de runda.
65
Pentru Nk > 6:
KeyExpansion(byte Key[4 ∗Nk] word W [Nb ∗ (Nr + 1)])
{
for (i = 0; i < Nk; i + +)
W [i] = (Key[4 ∗ i], Key[4 ∗ i+1], Key[4 ∗ i+2], Key[4 ∗i + 3]);
for (i = Nk; i < Nb ∗ (Nr + 1); i + +)
{
temp = W [i− 1];
if (i % Nk == 0)
temp = SubByte(RotByte(temp)) ˆ Rcon(i/Nk);
else if (i % Nk == 4)
temp = SubByte(temp)
W [i] = W [i−Nk] ˆ temp;
}
}
66
Apare conditia suplimentara: cand i − 4 este
multiplu de Nk, procedura SubByte este apli-
cata lui W [i− 1] ınainte de XOR.
Constantele de runda:
Rcon[i] = (RC[i], ′00′, ′00′, ′00′)
unde RC[i] = αi−1 (α este un generator al lui
GF (28))
67
Selectarea cheii de runda
Cheia rundei i este formata din secventa de
cuvinte
W [Nb ∗ i] . . . W [Nb ∗ (i + 1)− 1]
Cheia poate fi calculata treptat, pe masura ce
se ajunge la runda respectiva.
68
Atacuri asupra sistemelor decriptare bloc
1
Compromisul spatiu - timp
Este un tip de atac cu text clar ales, bazat
pe un compromis ıntre complexitatea spatiu
si complexitatea timp a atacurilor prin forta
bruta.
Oscar dispune de cel putin o pereche (α, β) cu
β = eK(α).
Scop: determinarea cheii K.
Referintele se fac (implicit) la sistemul DES:
textele clare si cele criptate sunt de 64 biti, iar
cheia are 56 biti.
2
i. O cautare exhaustiva consta ın a ıncerca
toate cele 256 chei posibile.
Operatia nu necesita memorie, dar sunt nece-
sare ın medie 255 chei pentru a o gasi pe cea
buna.
ii. Fiind dat un text clar α, Oscar poate forma
anterior (ın faza de precalcul) o tabela cu 256
perechi (βk, K), ordonata dupa βK = eK(α).
Dupa ce Oscar obtine mesajul β (criptat din
textul clar α), el va cauta ın tabela si va afla
imediat cheia K.
Astfel, aflarea cheii va necesita un timp de cal-
cul neglijabil (complexitate logaritmica), dar
un spatiu de memorie gigantic si un timp de
precalcul important.
3
Avantajul variantei (ii) apare cand este nece-
sara cautarea mai multor chei (deoarece tabela
precalculata a fost construita o singura data).
Compromisul spatiu - timp permite obtinerea
unui timp de calcul (precalculul nu se include)
inferior celui unei cautari exhaustive, cu un
spatiu de memorie inferior celui necesar reti-
nerii tuturor cheilor.
4
Algoritmul foloseste o functie de reducere R,
care reduce o secventa de 64 biti la una de 56
biti (de exemplu, R poate sterge pur si simplu
8 biti din secventa initiala).
Fie α un text clar de 64 biti; se defineste
g(K0) = R(eK0(α))
pentru orice secventa K0 de 56 biti (rezultatul
g(K0) este de asemenea de lungime 56).
Algoritmul mai foloseste doi parametri ıntregi
pozitivi m, t.
5
In faza de precalcul, Oscar defineste m
secvente arbitrare de 56 biti fiecare,
notate X(i,0), 1 ≤ i ≤ m.
Apoi, folosind relatia de recurenta
X(i, j) = g(X(i, j − 1)), (1 ≤ i ≤ m, 1 ≤ j ≤ t)
Oscar determina valorile X(i, j), 1 ≤ j ≤ t,
formand cu ele o matrice Xm×t.
Din aceste valori, Oscar pastreaza ıntr-o tabela
T numai 2m perechi
(X(i,0), X(i, t)), (1 ≤ i ≤ m)
(sunt memorate numai prima si ultima coloana
a matricii X).
6
In momentul atacului, Oscar obtine textul crip-
tat β al textului clar α ales de el.
El va cauta cheia K ın cele t coloane ale ma-
tricii X, consultand tabela T .
Presupunem K = X(i, t−j) pentru j (1 ≤ j ≤ t)
dat (K este ın una din cele t coloane ale lui X).
Vom avea gj(K) = X(i, t), si
gj(K) = gj−1(g(K)) = gj−1(R(eK(α))) =
= gj−1(R(β)).
7
Se calculeaza sirul βj (1 ≤ j ≤ t) definit prin
relatia de recurenta
βj =
{R(β) daca j = 1g(βj−1) daca 2 ≤ j ≤ t
Daca K = X(i, t− j), vom avea βj = X(i, t).
8
Reciproca nu este adevarata: nu este suficient
ca βj = X(i, t) pentru a avea K = X(i, t − j),
deoarece functia de reducere R nu este injec-
tiva (R reduce un spatiu de 264 valori ın unul
de 256 valori; deci fiecare valoare provine ın
general din 28 = 256 elemente).
Trebuie verificata egalitatea
β = eX(i,t−j)(α)
pentru a decide daca 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).
9
Oscar aplica algoritmul:
1. β1 ← R(β)
2. for j ←− 1 to t do
2.1. if ∃ i cu βj = X(i, t) then
2.1.1. X(i, t− j) = gt−j(X(i,0))
2.1.2. if β = eX(i,t−j)(α) then K ← X(i, t−j), STOP
2.2. βj+1 ← g(βj)
10
Daca mt2 ≈ N = 256, atunci probabilitatea
aflarii cheii K ın cele t coloane ale matricii X
este de circa 0,8mt/N .
Coeficientul 0,8 provine din faptul ca valorile
X(i, t) pot sa nu fie distincte.
O sugestie este de a alege m ≈ t ≈ N1/3 si de
a construi N1/3 tabele, fiecare cu alta functie
de reducere R.
Astfel, spatiul de memorie necesar este de 112·N2/3 biti (trebuie pastrati 2N2/3 valori de 56
biti).
Timpul de precalcul este liniar O(N).
11
Timpul de calcul al atacului este mai dificil de
evaluat.
Pasul 2.1 poate fi implementat ın cel mai rau
caz ıntr-un timp O(log m), utilizand arbori bi-
nari de cautare.
Daca acest pas esueaza (deci nu se gaseste nici
o valoare), timpul de calcul este O(N2/3).
Ceilalti pasi care urmeaza cresc acest timp doar
cu un factor constant.
12
Atacul meet-in-the-middle
Atac cu text clar ales, dezvoltat ın 1981 de
Merkle si Hellman ca raspuns la ideea unei
duble criptari cu doua chei diferite, conform
schemei
e e- - -? ?
m x y
K1 K2
13
Lema 1. Pentru un sistem de criptare bloc, odubla criptare poate fi atacata folosind O(2n)operatii si O(2n) spatiu de memorie, unde neste lungimea cheii.
Fie (α, β) o pereche (text clar, text criptat)obtinuta pe baza schemei de mai sus.
1. Pentru fiecare din cele 2n chei posibile secalculeaza xi = eKi
(α);
2. Se stocheaza (xi, Ki) sortate dupa xi.
3. Pentru fiecare din cele 2n chei posibile:
3.1 Se calculeaza xj = dKj(β);
3.2. In lista creata se cauta o pereche(xi, Ki) cu xi = xj;
4. O pereche de chei posibile este (Ki, Kj);
Algoritmul se reia cu alte perechi (α, β), panace perechea de chei folosite este determinataın mod unic.
14
Exemplul 1. Un atac direct asupra unei duble
criptari cu DES ar necesita un timp de ordin
2112 si un spatiu neglijabil.
Daca se foloseste un atac meet-in-the-middle,
timpul va fi 256 iar spatiul 256.
Strategii complementare de genul compromi-
sului spatiu - timp pot duce la variante de
genul: 2p spatiu, 2q timp, unde p + q = 112.
15
Criptanaliza diferentiala
A fost introdusa de Biham si Shamir ın 1991.
Cu toate ca nu da o modalitate practica de
spargere a functiei DES ın 16 tururi, ea asigura
atacuri eficace pentru variantele de DES cu un
numar redus de runde.
De exemplu, un DES cu 8 runde poate fi spart
ın cateva minute cu un PC obisnuit.
Ulterior, criptanaliza diferentiala a fost extinsa
ca metoda standard de atac pentru toate sis-
temele de criptare bloc.
16
Criptanaliza diferentiala exploateaza faptul caunele diferente dintre texte clare pot genera –cu probabilitate semnificativa – diferente fixateıntre mesajele criptate corespunzatoare.
Fie un sistem de criptare pe blocuri de n biti,cu intrarea (textul clar) α = (a1, a2, . . . , an) siiesirea (textul criptat) β = (b1, b2, . . . , bn).
Fie α′ si α′′ doua blocuri de intrare si β′, β′′
blocurile de iesire corespunzatoare.
Diferenta dintre bitii de intrare este data de
∆α = α′ ⊕ α′′ = (∆a1,∆a2, . . .∆an)
unde ∆ai = ai′ ⊕ ai
′′, iar ai′ si ai
′′ reprezinta ali-lea bit din α′, respectiv α′′.
Similar,
∆β = β′ ⊕ β′′ = (∆b1,∆b2, . . . ,∆bn)
este diferenta dintre mesajele de iesire (unde∆bi = bi
′ ⊕ bi′′).
17
Intr-un sistem de criptare ideal, probabilitatea
ca, fiind data o diferenta de intrare ∆α, sa
apara o anumita diferenta de iesire ∆β, este
1/2n (n este marimea blocului de criptare).
Criptanaliza diferentiala exploateaza situatia
cand pentru o anumita diferenta de intrare ∆α,
o diferenta de iesire ∆β apare cu o probabili-
tate pD semnificativ mai mare decat 1/2n.
Perechea (∆α,∆β) pentru care exista o astfel
de situatie se numeste diferentiala.
In esenta, criptanaliza diferentiala este un atac
cu text clar ales: Oscar alege perechi de intrari
(α′, α′′), care verifica o anumita diferenta ∆α,
stiind ca pentru aceasta valoare ∆α, exista o
diferentiala (∆α,∆β).
18
Cel mai important pas consta ın construirea
unei diferentiale (∆α,∆β), folosind bitii textu-
lui clar pentru α, si intrarea ın ultima runda a
sistemului de criptare pentru β.
Aceasta se poate realiza examinand diverse
diferentiale caracteristice.
O diferentiala caracteristica este o secventa
(∆α1,∆α2, . . . ,∆αn) unde (∆αi,∆αi+1) este
o diferentiala a rundei i din sistemul de criptare
(deci α1 = α, αn = β).
Pe baza unei diferentiale caracteristice putem
exploata informatia care intra ın ultima runda a
sistemului, pentru a afla o parte din bitii cheii.
19
Pentru construirea de diferentiale caracteris-
tice se exploateaza unele particularitati ale S-
boxurilor.
Practic se considera toate diferentele de in-
trare si iesire din fiecare S-box, determinand
perechile (∆α,∆β) cu probabilitati mari.
Combinand aceste perechi de la o runda la alta,
astfel ca diferentele dintre doua iesiri dintr-o
runda sa coincida cu diferentele dintre doua
intrari ın runda urmatoare, se poate determina
o diferentiala ıntre doua texte clare si intrarile
a doua texte ın ultima runda.
In final, bitii ultimei sub-chei vor dispare (sunt
folositi ın ambele texte si, prin XOR-are, se
anuleaza reciproc).
20
Analiza componentelor unui sistem de criptare
Fie un 4× 4 S-box, cu intrarea
α = (a1, a2, a3, a4)
si iesirea
β = (b1, b2, b3, b4)
4× 4 S-box
? ?? ?
? ? ? ?
a1 a2 a3 a4
b1 b2 b3 b4
Toate perechile de diferente (∆α,∆β) ale unui
astfel de S - box vor fi examinate.
Se fixeaza o diferenta ∆α si se calculeaza san-
sele de aparitie pentru toate diferentele de iesiri
∆β, peste multimea perechilor de intrare
(α′, α′′) cu α′ ⊕ α′′ = ∆α.
21
Ordinea perechilor nu este relevanta; deci pen-
tru un 4× 4 S-box sunt necesare doar cele 16
valori posibile ale unei intrari α′; a doua intrare
α′′ va fi calculata cu formula α′′ = α′ ⊕∆α.
Prezentarea foloseste prima linie a primului S-
box din DES:
Intrare 0 1 2 3 4 5 6 7 8 9 A B C D E FIesire E 4 D 1 2 F B 8 3 A 6 C 5 9 0 7
Fiecare pereche (intrare, iesire) poate fi con-
siderata ca un 4 × 4 S-box cu intrari si iesiri
pe 4 biti.
22
Putem calcula diferenta de iesire ∆β pentru
orice pereche de intrare (α′, α′′ = α′ ⊕∆α).
Tabela 1 prezinta valorile (binare) pentru α, β,
si valorile ∆β pentru perechile de intrare
(α, α⊕∆α), unde ∆α are valorile
1011 (hex B), 1000 (hex 8) si 0100 (hex 4).
α β ∆α = 1011 ∆α = 1000 ∆α = 01000000 1110 0010 1101 11000001 0100 0010 1110 10110010 1101 0111 0101 01100011 0001 0010 1011 10010100 0010 0101 0111 11000101 1111 1111 0110 10110110 1011 0010 1011 01100111 1000 1101 1111 10011000 0011 0010 1101 01101001 1010 0111 1110 00111010 0110 0010 0101 01101011 1100 0010 1011 10111100 0101 1101 0111 01101101 1001 0010 0110 00111110 0000 1111 1011 01101111 0111 0101 1111 1011
Tabela 1. Perechi de diferente ıntr-un S - box
23
De exemplu, pentru α = 0000 si ∆α = 1011
avem α′ = α⊕∆α = 1011.
Iesirea (din S - box) pentru intrarea α′ este
β′ = 1100 (hex C), deci
∆β = β ⊕ β′ = 1110⊕ 1100 = 0010,
valoare care apare ın tabela pe coloana a treia.
In Tabela 1: numarul aparitiilor lui ∆β = 0010
pentru ∆α = 1011 (coloana 3) este 8 din 16
valori posibile (deci probabilitate 8/16).
Similar, numarul de aparitii ∆β = 1011 pentru
∆α = 1000 este 4 (din 16), iar numarul de
aparitii ale lui ∆β = 1010 pentru ∆α = 0100
este 0 (din 16).
24
Se aduna toate datele unui S - box ıntr-o tabelade distributie a diferentelor, ın care liniile repre-zinta valorile ∆α, iar coloanele – valorile ∆β
(toate ın hexazecimal).
Tabela de distributie a diferentelor pentru S-boxul luat ca exemplu, este:
0 1 2 3 4 5 6 7 8 9 A B C D E F0 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 01 0 0 0 2 0 0 0 2 0 2 4 0 4 2 0 02 0 0 0 2 0 6 2 2 0 2 0 0 0 0 2 03 0 0 2 0 2 0 0 0 0 4 2 0 2 0 0 44 0 0 0 2 0 0 6 0 0 2 0 4 2 0 0 05 0 4 0 0 0 2 2 0 0 0 4 0 2 0 0 26 0 0 0 4 0 4 0 0 0 0 0 0 2 2 2 27 0 0 2 2 2 0 2 0 0 2 2 0 0 0 0 48 0 0 0 0 0 0 2 2 0 0 0 4 0 4 2 29 0 2 0 0 2 0 0 4 2 0 2 2 2 0 0 0A 0 2 2 0 0 0 0 0 6 0 0 2 0 0 4 0B 0 0 8 0 0 2 0 2 0 0 0 0 0 2 0 2C 0 2 0 0 2 2 2 0 0 0 0 2 0 6 0 0D 0 4 0 0 0 0 0 4 2 0 2 0 2 0 2 0E 0 0 2 4 2 0 0 0 6 0 0 0 0 0 2 0F 0 2 0 0 6 0 0 0 0 4 0 2 0 0 2 0
Tabela 2. Tabela de distributie a diferentelor
Fiecare element al tabelei reprezinta numarulde aparitii ale diferentei de iesire ∆β, fiind datadiferenta de intrare ∆α.
25
1. Inafara de cazul (∆α = 0, ∆β = 0), cea
mai mare valoare din tabela este 8; cores-
punde lui ∆α = B si ∆β = 2.
Deci, pentru o pereche de intrari arbitrare
cu ∆α = B, probabilitatea ca ∆β = 2 este
8/16 = 1/2.
2. Cea mai mica valoare din tabela este 0;
deci probabilitatea de aparitie a valorii ∆β
pentru ∆α corespunzator, este 0.
3. Suma elementelor pe fiecare linie este
2n = 16; similar, suma pe fiecare coloana
este tot 2n = 16.
4. Toate valorile din tabel sunt numere po-
zitive pare, deoarece perechile de valori de
intrare/iesire (α′, α′′) si (α′′, α′) au aceeasi
diferenta ∆α.
26
5 Pentru un S - box injectiv, o diferenta de
intrare ∆α = 0 va duce la o diferenta de
iesire ∆β = 0.
Ca o consecinta, prima linie si prima coloa-
na vor fi 0, cu exceptia intersectiei lor, unde
va fi valoarea 2n = 16.
27
Daca s-ar putea construi un S - box ideal, care
sa nu ofere nici o informatie de tip diferential
ıntre intrari si iesiri, atunci toate valorile din
tabela sa de distributie a diferentelor vor fi
egale cu 1, iar probabilitatea de aparitie a unei
diferente ∆β atunci cand diferenta de intrare
este ∆α, va fi 1/2n = 1/16.
Totusi pe baza proprietatilor enuntate mai sus,
un astfel de S - box ideal nu este posibil.
28
Retea substitutie - permutare
O retea substitutie - permutare (Substitution
Permutation Network – SPN) este un sistem
de criptare bloc, format din mai multe runde,
fiecare runda continand o substitutie si o per-
mutare.
Cheia este expandata ın mod similar sistemelor
uzuale si fiecare cheie de runda va fi XOR-
ata cu mesajul de intrare la ınceputul fiecarei
runde.
Un SPN pastreaza proprietatile generale ale
sistemelor de criptare uzuale (inclusiv DES si
AES).
29
Vom utiliza un SPN care cripteaza un text clar
de 16 biti ıntr-un mesaj de 16 biti.
Cheia are tot 16 biti si este expandata ın 5
sub-chei de runda, de cate 16 biti fiecare.
La fiecare runda, cei 16 biti de intrare sunt
XOR - ati cu cheia de runda, apoi sunt separati
ın patru blocuri de cate 4 biti, iar fiecare bloc
trece prin cate un S - box.
La sfarsitul rundei, cei 16 biti sunt permutati.
Folosim acelasi S - box pentru toate blocurile si
toate rundele: prima linie din S1 - boxul DES.
30
Permutarea utilizata este aceiasi pentru toate
rundele:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 161 5 9 13 2 6 10 14 3 7 11 15 4 8 12 16
Tabela 3
31
Structura unui SPN :
XOR cu sub-cheia K5
S41 S44S42 S43
XOR cu sub-cheia K4
S31 S34S32 S33
XOR cu sub-cheia K3
S21 S24S22 S23
XOR cu sub-cheia K2
S11 S14S12 S13
XOR cu sub-cheia K1
������
��
runda 1
runda 2
runda 3
runda 4
m1 m16. . . . . .text clar
y1 . . . y16. . .text criptat
32
Diferentiala caracteristica ıntr-un SPN
O modalitate de atac prin criptanaliza diferen-
tiala asupra unui SPN .
Scop: aflarea unui set de biti din sub-cheia
folosita ın ultima runda.
Notatie:
- Ui intrarea ın S- boxurile din runda i,
- Vi – iesirea din S - boxuri ın runda i.
33
Doua texte clare, cu diferenta
∆U1 = [0000 1011 0000 0000]
Deci singurul S - box activ ın prima runda este
S12 (celelalte S - boxuri sunt inactive: intrarea
este 0, deci si iesirea va fi tot 0).
Tabela 1: diferenta de iesire
∆V1 = [0000 0010 0000 0000]
Altfel spus,
S12 : ∆α = 1116 = 1011 =⇒∆β = 216 = 0010
cu probabilitate 8/16 = 1/2.
34
Mesajul de intrare ın S - boxurile rundei a doua:
∆U2 = [0000 0000 0100 0000]
cu probabilitate 1/2.
In a doua runda, singurul S - box activ este
S23.
Vom avea perechea de diferente
S23 : ∆α = 416 = 0100 =⇒∆β = 616 = 0110
cu probabilitate 6/16 = 3/8.
Iesirea este deci
∆V2 = [0000 0000 0110 0000]
iar permutarea de la sfarsitul rundei a doua da
∆U3 = [0000 0010 0010 0000]
cu probabilitate 3/8.
35
In a treia runda sunt active doua S - boxuri:
S32 si S33:
S32 : ∆α = 216 = 0010 =⇒∆β = 516 = 0101
cu probabilitate 6/16 = 3/8, si
S33 : ∆α = 216 = 0010 =⇒∆β = 516 = 0101
cu probabilitate 6/16 = 3/8.
Deci, iesirea din S - boxurile din runda a treia
este
∆V3 = [0000 0101 0101 0000]
iar intrarea ın runda a patra (dupa efectuarea
permutarii) este
∆U4 = [0000 0110 0000 0110]
36
Deci
∆U1 = [0000 1011 0000 0000] =⇒∆V3 = [0000 0101 0101 0000]
si
∆V3 = [0000 0101 0101 0000] =⇒∆U4 = [0000 0110 0000 0110]
Rezulta
∆U1 = [0000 1011 0000 0000] =⇒∆U4 = [0000 0110 0000 0110]
cu probabilitate 12 ·
38 ·
38 ·
38 = 27
1024.
37
Extragerea bitilor din cheie
Dupa ce s-a obtinut diferentiala caracteristica
a rundelor, se poate construi un atac din care
sa rezulte o parte din bitii care formeaza cheia
de criptare.
Intr-un sistem de criptare bloc cu N runde,
vom ataca runda N − 1 .
Astfel, ın cazul retelei SPN , vom putea extrage
biti din sub-cheia K5 atacand runda 4.
Pentru o decriptare a textului obtinut dupa ul-
tima runda, trebuie sa mergem ın sens invers:
realizam un XOR ıntre textul criptat si sub-
cheia ultimei runde – care este influentata de
diferentialele nenule – iar apoi trecem datele ın
sens invers prin S-boxuri.
Un XOR ıntre textul criptat si toate subcheile
posibile; apoi se aplica inversele S-boxurilor.
38
Cautarea cheii poate fi redusa daca se iau nu-
mai perechile ”bune” (perechile pentru care se
obtin diferentiale caracteristice).
Exemplu de pereche ”buna”: cea anterioara,
cu U41 = U43 = 0000, care a dus la diferentia-
lele nenule U42 si U44 (Uij reprezinta intrarea
ın S - boxul j din runda i).
Decriptarea este obtinuta pentru toate pere-
chile de mesaje criptate care corespund pere-
chilor de texte clare cu diferenta de intrare
fixata ∆α.
39
O reprezentare a modalitatii de atac
pentru diferentiala caracteristica detaliata
anterior:
S41 S44S42 S43
S31 S34S32 S33
S21 S24S22 S23
S11 S14S12 S13
∆α = [0000 1011 0000 0000]
K5,5, . . . , K5,8 K5,13, . . . , K5,16
∆U4,5,...,∆U4,8 ∆U4,13,...∆U4,16
���������
XXXXXXXXXXXXXXXXX
? ? ?
����������
aaaaaaaa
?
40
Pentru fiecare sub-cheie posibila, ai carei bitisunt influentati de diferentele nenule din dife-rentiale, definim cate un counter.
Acesti counteri sunt incrementati atunci candintrarea ın ultima runda coincide cu valoareaprevazuta de diferentiala caracteristica.
In final, sub-cheia cu valoare maxima a coun-terului atasat va fi considerata cea corecta;restul bitilor din sub-cheie vor fi gasiti cu ocautare prin forta bruta.
In exemplul anterior, diferentiala caracteristicaa influentat S - boxurile S42 si S44 din ul-tima runda; deci – pentru orice pereche demesaje criptate – ıncercam toate cele 256 vari-ante pentru [K5,5 . . . K5,8, K5,13 . . . K5,16], si –de cate ori diferenta la intrarea ın ultima rundadeterminata de decriptare este
∆U4 = [0000 0110 0000 0110]
va fi incrementat counterul asociat.41
Criptanaliza diferentiala pentru DES
Intr-un astfel de atac se ignora permutarea
initiala IP si inversa sa (nu joaca nici un rol
ın criptanaliza).
Consideram un DES restrans pe n (n ≤ 16)
runde.
Textul clar este L0R0, iar cel criptat – LnRn
(se ignora si inversarea finala dintre Ln si Rn).
Fie textele clare L0R0, L∗0R∗0 si textele criptate
corespunzatoare LnRn respectiv L∗nR∗n.
Diferentele sunt
L0′R0′ = L0R0⊕L∗0R∗0 si Ln
′Rn′ = LnRn⊕L∗nR∗n.
42
Definitia 1. Fie Sj (1 ≤ j ≤ 8) un S - box din
sistemul de criptare DES.
Pentru orice pereche (Bj, B∗j ) de siruri de 6
biti, se defineste XOR-ul de intrare pentru Sj
prin Bj′ = Bj ⊕ B∗j , iar XOR-ul de iesire prin
Sj(Bj)⊕ Sj(B∗j ).
Un XOR de intrare este o secventa de 6 biti,
iar un XOR de iesire este o secventa de 4 biti.
Definitia 2. Pentru orice Bj′ ∈ Z6
2 se noteaza
∆(Bj′) multimea perechilor (Bj, B
∗j ) care prin
XOR dau B′j.
• O multime ∆(Bj′) contine 26 = 64 ele-
mente;
• ∆(Bj′) = {(Bj, Bj ⊕Bj
′)| Bj ∈ Z62}.
43
Pentru fiecare pereche din ∆(Bj′) se calculeaza
XOR-ul de iesire al lui Sj si se construieste o
tabela de distributii ale valorilor obtinute (sunt
64 iesiri pe un spatiu de 24 = 16 valori posi-
bile).
Exemplul 2. Sa consideram primul S - box S1
si XOR-ul de intrare 110100. Vom avea:
∆(110100) = {(000000,110100), (000001,110101), . . .
. . . , (111111,001011)}.
Pentru fiecare pereche din ∆(110100) se de-
termina XOR-ul de iesire al lui S1.
De exemplu
S1(000000) = E16 = 1110,
S1(110100) = 916 = 1001
deci XOR-ul de iesire S1 al perechii
(000000,110100) este 0111.
44
Pentru toate cele 64 perechi din ∆(110100)
se obtine distributia urmatoare a XOR-urilor
de iesire pentru S1:
0000 0001 0010 0011 0100 0101 0110 01110 8 16 6 2 0 0 12
1000 1001 1010 1011 1100 1101 1110 11116 0 0 0 0 8 0 6
In exemplu au aparut numai 8 din cele 16 valori
de iesire posibile.
In general, daca se fixeaza un S - box Sj si un
XOR de intrare diferit de 000000, se constata
ca vor apare aproximativ 75−80 % din valorile
posibile de iesire.
45
Definitia 3. Pentru 1 ≤ j ≤ 8 si secventeleBj′, Cj
′ de 6 respectiv 4 biti, definim
INj(Bj′, Cj
′) = {Bj ∈ Z62 | Sj(Bj)⊕ Sj(Bj ⊕Bj
′) = Cj′},
Nj(Bj′, Cj
′) = card(INj(Bj′, Cj
′)).
Distributia data ın Exemplul anterior da valorile
N1(110100, C1′), C1
′ ∈ Z42.
XOR de iesire intrari posibile00000001 000011, 001111, 011110, 011111, 101010, 101011,
110111, 1110110010 000100, 000101, 001110, 010001, 010010, 010100,
011010, 011011, 100000, 100101, 010110, 101110,101111, 110000, 110001, 111010
0011 000001, 000010, 010101, 100001, 110101, 1101100100 010011, 100111010101100111 000000, 001000, 001101, 010111, 011000, 011101,
100011, 101001 101100, 110100, 111001, 1111001000 001001, 001100, 011001, 101101, 111000, 11110110011010101111001101 000110, 010000, 010110, 011100, 100010, 100100,
101000, 11001011101111 000111, 001010, 001011, 110011, 111110, 111111
Tabela 4: Distributia valorilor intrare/iesire pentru S1
46
Pentru fiecare din cele 8 S - boxuri exista 64XOR-uri de intrare posibile; deci ın total vorfi 512 date de distribuit, lucru usor de realizatcu un calculator.
Intrarea ıntr-un S - box la runda i esteB = E ⊕ J,
unde E = E(Ri−1) este rezultatul expandariilui Ri−1, iar J = Ki este un subsir reordonat alcheii K.
XOR-ul de intrare (al celor 8 S - boxuri) estedeci
B ⊕B∗ = (E ⊕ J)⊕ (E∗ ⊕ J) = E ⊕ E∗.
Detaliat pe grupuri de cate 6 biti:
B = B1B2B3B4B5B6B7B8,
E = E1E2E3E4E5E6E7E8,
J = J1J2J3J4J5J6J7J8
In mod similar se scriu B∗ si E∗.47
Sa presupunem ca se stiu valorile Ej si E∗j pen-
tru un j (1 ≤ j ≤ 8) dat, precum si valoarea
XOR de iesire Cj′ = Sj(Bj)⊕ Sj(B
∗j ) a lui Sj.
Vom avea
Ej ⊕ Jj ∈ INj(Ej′, Cj
′)
unde Ej′ = Ej ⊕ E∗j .
Se defineste multimea testj:
testj(Ej, E∗j , Cj
′) = {Bj⊕Ej| Bj ∈ INj(Ej′, Cj
′)}
(s-au luat toate XOR-urile lui Ej cu elemente
din INj(Ej′, Cj
′)).
48
Teorema 1. Daca Ej, E∗j sunt subsecvente
construite pentru intrarea ın S - boxul Sj, iarCj′ este XOR-ul de iesire al lui Sj, atunci bitii
sub-cheii Jj apar ın testj(Ej, E∗j , Cj
′).
Exista exact Nj(Ej′, Cj
′) secvente de 6 biti ıntestj(Ej, E
∗j , Cj
′); valoarea corecta Jj este unadin acestea.
Exemplul 3. Sa consideramE1 = 000001, E∗1 = 110101, C1
′ = 1101.
Deoarece
N1(110100,1101) = {000110,010000,010110,011100,100010,
101000,110010}
are 8 elemente, exista 8 secvente posibile pen-tru J1, cumulate ıntest1(000001,110101,1101) = {000111,010001,010111,011101,
100011,100101,101001,110011}.
Daca se ia un alt triplet (E1, E∗1, C1′), vom
obtine alta multime test1 cu valori pentru J1,deci valoarea corecta se va gasi ın intersectialor.
49
Atacul unui DES definit pe trei runde
Incepem cu o pereche de texte clare L0R0 si
L∗0R∗0, criptate ın L3R3 respectiv L∗3R∗3.
Vom avea
R3 = L2 ⊕ f(R2, K3) = R1 ⊕ f(R2, K3) =
= L0 ⊕ f(R0, K1)⊕ f(R2, K3).
Constructia pentru R∗3 este similara. Deci
R3′ = L0
′⊕f(R0, K1)⊕f(R∗0, K1)⊕f(R2, K3)⊕f(R∗2, K3).
50
Se alege R0 = R∗0, deci R0′ = 00 . . .0.
Atunci f(R0, K1) = f(R∗0, K1) si deci
R3′ = L0
′ ⊕ f(R2, K3)⊕ f(R∗2, K3).
R3′ se poate calcula pe baza textelor criptate,
iar L0′ – pe baza textelor clare; deci se poate
determina f(R2, K3)⊕ f(R∗2, K3) = R3′ ⊕ L0
′.
Avem f(R2, K3) = P (C), f(R∗2, K3) = P (C∗)unde C respectiv C∗ sunt iesirile din cele 8 S -
boxuri (P este o permutare fixata din DES).
Deci P (C)⊕ P (C∗) = R3′ ⊕ L0, de unde
C′ = C ⊕ C∗ = P−1(R3′ ⊕ L0
′).
Acesta este XOR-ul de iesire din cele opt S -
boxuri, dupa a treia runda.
51
R2 = L3 si R∗2 = L∗3 sunt cunoscute (com-
ponente ale textelor criptate); deci se poate
calcula
E = E(L3), E∗ = E(L∗3)
folosind functia de expansiune E.
Aceste valori sunt intrarile ın S - boxuri la
runda a treia.
Se cunosc deci E, E∗, C′ la a treia runda si se
pot construi multimile test1, test2, . . . , test8 de
valori posibile pentru J1, J2, . . . , J8.
52
Un algoritm pentru aceasta metoda este:
Intrare: L0R0, L∗0R∗0, L3R3, L∗3R∗3 cu
R0 = R∗0.
1. C′ ← P−1(R3′ ⊕ L0
′)
2. E ← E(L3), E∗ ← E(L∗3)
3. for j := 1 to 8 do testj(Ej, E∗j , Cj).
Atacul foloseste mai multe triplete E, E∗, C′.
Se utilizeaza opt tabele de valori si se deter-
mina astfel cei 48 biti ai subcheii K3 de la a
treia runda.
Cheia de 56 biti se calculeaza apoi printr-o
cautare exhaustiva a celor 28 = 256 posibilitati
pentru cei 8 biti ramasi necunoscuti.
53
Criptanaliza liniara
Definita de Mitsuru Matsui (1992).
Prima oara s-a aplicat asupra sistemului de
criptare FEAL.
Ulterior, Matsui a publicat un atac similar
asupra sistemului DES, probabil prima
criptanaliza experimentala prezentata public
asupra unui sistem de criptare bloc.
Practic, un atac asupra sistemului DES nu este
ınsa viabil, el necesitand 243 texte clare cunos-
cute.
Ulterior au fost construite diverse rafinari ale
atacurilor prin criptanaliza liniara, folosind
aproximari liniare multiple sau aproximari lo-
cale cu expresii neliniare.
54
Prezentare generala
Criptanaliza liniara este un atac cu text clar
ales, bazata pe o relatie liniara de aproximare
care descrie sistemul de criptare.
Plecand de la un numar suficient de mare de
perechi (text clar, text criptat) se pot obtine
informatii despre cheie, cu o probabilitate ac-
ceptabila.
Pentru ilustrare este folosita aceiasi structura
SPN de la criptanaliza difererentiala, bazata
pe prima linie din S1 - boxul DES (privita ca
un 4 × 4 S - box) si permutarea definita ın
Tabela 3.
55
Se aproximeaza statistic functionarea unei
portiuni din sistemul de criptare printr-o
expresie liniara (bazata pe operatia XOR).
O astfel de expresie are forma
ai1 ⊕ ai2 ⊕ . . .⊕ aiu ⊕ bj1 ⊕ bj2 ⊕ . . .⊕ bjv = 0
unde ai reprezinta al i-lea bit al intrarii
α = (a1, a2, . . .), iar bj reprezinta al j-lea bit al
iesirii β = (b1, b2, . . .).
Scopul criptanalizei liniare este de a determina
astfel de expresii, avand o probabilitate de apa-
ritie cat mai diferita de 1/2.
56
Rezistenta unui sistem de criptare la criptana-
liza liniara este cu atat mai mare cu cat astfel
de relatii sunt mai putine.
Existenta unei relatii liniare (cu probabilitate
mare sau mica) denota o slaba abilitate a sis-
temului de criptare privind difuzia datelor crip-
tate.
Daca alegem aleator valori pentru u + v biti
si le plasam ıntr-o relatie liniara, probabilitatea
ca relatia sa fie verificata este ın general 1/2.
Cu cat o astfel de probabilitate va fi mai depar-
tata de 1/2, cu atat va fi mai usor pentru
criptanalist sa atace sistemul, folosind relatia
respectiva.
57
Daca o expresie liniara are loc cu probabilitate
pL pentru texte clare si texte criptate alese
aleator, vom nota tendinta relatiei respective
prin
εL = pL − 1/2
Cu cat magnitudinea tendintei |pL − 1/2| estemai mare, cu atat mai putine texte clare va
avea nevoie un atac ca sa reuseasca.
Remarca 1.
Daca pL = 1, atunci expresia liniara descrie
complet comportarea sistemului de criptare;
deci acesta nu va asigura nici o securitate.
Daca pL = 0, atunci ea reprezinta o relatie
afina ın sistemul de criptare, de asemenea in-
diciul unei slabiciuni catastrofice.
Cand operatia de adunare folosita este mod 2
(deci XOR), atunci o functie afina este com-
plementara unei functii liniare.
58
La evaluarea proprietatilor neliniare ale unui S
- box, este posibil sa gasim aproximari liniare
ıntre seturi de biti de intrare si de iesire din S
- box.
Ulterior, este posibil sa concatenam astfel de
aproximari liniare ale diverselor S - boxuri,
astfel ıncat sa eliminam bitii intermediari (aflati
ın interiorul sistemului) si sa obtinem o expresie
liniara – cu tendinta semnificativa – ıntre seturi
de biti din textul clar si biti de intrare ın ultima
runda.
59
Lema Piling-Up
Fie X1, X2 doua variabile aleatoare.
Relatia X1 ⊕ X2 = 0 este o expresie liniara,
echivalenta cu X1 = X2.
Similar, X1 ⊕ X2 = 1 este o expresie afina
echivalenta cu X1 6= X2.
Sa consideram o probabilitate definita
Pr[X1 = i] =
{p1, daca i = 01− p1 daca i = 1
si
Pr[X2 = i] =
{p2, daca i = 01− p2 daca i = 1
Daca cele doua variabile aleatoare sunt inde-pendente, atunci
Pr[X1 = i, X2 = j] =
p1p2, daca i = 0, j = 0p1(1− p2), daca i = 0, j = 1(1− p1)p2, daca i = 1, j = 0(1− p1)(1− p2), daca i = 1, j = 1
60
Formulele pot fi simetrizate folosind variabila
tendinta:
Pr[Xi = 0] =1
2+ εi, P r[Xi = 1] =
1
2− εi
Lema 2. (Piling - up): Fie X1, X2, . . . Xn
variabile aleatoare independente si pentru
1 ≤ i1 < i2 < . . . < ik ≤ n, fie εi1,i2,...ik tendinta
variabilei aleatoare Xi1 ⊕Xi2 ⊕ . . .⊕Xik.
Atunci
εi1,i2,...ik = 2k−1k∏
j=1
εij
sau – echivalent:
Pr[X1 ⊕ . . .⊕Xk = 0] = 1/2 + 2k−1k∏
i=1
εi
61
Corolarul 1.
1. Daca ∃j cu εij = 0 atunci εi1,i2,...,ik = 0.
2. Daca εij = ±1/2 (j = 1, . . . , k) atunci
εi1,i2,...,ik = ±1/2.
62
Exemplul 4. Fie patru variabile aleatoare
independente X1, X2, X3, X4.
Fie Pr[X1 ⊕X2 = 0] = 1/2 + ε1,2
si Pr[X2 ⊕X3 = 0] = 1/2 + ε2,3.
Suma X1 ⊕X3 poate fi obtinuta adunand
X1 ⊕X2 cu X2 ⊕X3.
Deci
Pr[X1⊕X3 = 0] = Pr[(X1⊕X2)⊕(X2⊕X3) = 0].
Deci prin combinarea expresiilor liniare se vor
obtine expresii liniare noi.
Considerand ca variabilele aleatoare X1⊕X2 si
X2⊕X3 sunt independente, putem aplica lema
Piling - Up, pentru a determina
Pr[X1 ⊕X3 = 0] = 1/2 + 2ε1,2ε2,3
Deci ε1,3 = 2ε1,2ε2,3.
63
Relatii de aproximare pentru S - boxuri
Folosim S - boxul 4 × 4 definit la criptanali-
za diferentiala, (a1, a2, a3, a4) reprezentarea ın
binar a intrarii si (b1, b2, b3, b4) reprezentarea
binara a iesirii din acest S - box.
Sa luam de exemplu expresia liniara
a2 ⊕ a3 ⊕ b1 ⊕ b3 ⊕ b4 = 0
sau – echivalent: a2 ⊕ a3 = b1 ⊕ b3 ⊕ b4.
Aplicand la intrare toate cele 24 = 16 valori
posibile si examinand valorile de iesire cores-
punzatoare, expresia este verificata pentru 12
din cele 16 cazuri.
Deci tendinta de probabilitate este
12/16− 1/2 = 1/4.
64
(a1, a2, a3, a4) (b1, b2, b3, b4) a2 ⊕ a3 b1 ⊕ b3 ⊕ b4 a1 ⊕ a4 a3 ⊕ a4 b1 ⊕ b4(0,0,0,0) (1,1,1,0) 0 0 0 0 1(0,0,0,1) (0,1,0,0) 0 0 1 1 0(0,0,1,0) (1,1,0,1) 1 0 0 1 0(0,0,1,1) (0,0,0,1) 1 1 1 0 1(0,1,0,0) (0,0,1,0) 1 1 0 0 0(0,1,0,1) (1,1,1,1) 1 1 1 1 0(0,1,1, ) (1,0,1,1) 0 1 0 1 0(0,1,1,1) (1,0,0,0) 0 1 1 0 1(1,0,0,0) (0,0,1,1) 0 0 1 0 1(1,0,0,1) (1,0,1,0) 0 0 0 1 1(1,0,1,0) (0,1,1,0) 1 1 1 1 0(1,0,1,1) (1,1,0,0) 1 1 0 0 1(1,1,0,0) (0,1,0,1) 1 1 1 0 1(1,1,0,1) (1,0,0,1) 1 0 0 1 0(1,1,1,0) (0,0,0,0) 0 0 1 1 0(1,1,1,1) (0,1,1,1) 0 0 0 0 1
Tabela 5: Exemple de aproximari liniare ale unui S - box
In general se pot construi 28 = 256 expresii
liniare cu (a1, a2, a3, a4) si (b1, b2, b3, b4).
Pentru fiecare din ele se poate da o reprezenta-
re uniforma de tipul: 4⊕i=1
xi · ai
⊕ 4⊕
i=1
yi · bi
unde xi, yi ∈ {0,1}, (1 ≤ i ≤ 4) iar operatiile
folosite sunt AND (·) si XOR (⊕).
65
Vectorii binari (x1, x2, x3, x4) – numiti sume deintrare si (y1, y2, y3, y4) (sume de iesire) vor ficodificati prin cifre hexazecimale.
Astfel, fiecare din cele 256 expresii liniare se vascrie ın mod unic ca o pereche de doua cifrehexazecimale.
a1 a2 a3 a4 b1 b2 b3 b40 0 0 0 1 1 1 00 0 0 1 0 1 0 00 0 1 0 1 1 0 10 0 1 1 0 0 0 10 1 0 0 0 0 1 00 1 0 1 1 1 1 10 1 1 0 1 0 1 10 1 1 1 1 0 0 01 0 0 0 0 0 1 11 0 0 1 1 0 1 01 0 1 0 0 1 1 01 0 1 1 1 1 0 01 1 0 0 0 1 0 11 1 0 1 1 0 0 11 1 1 0 0 0 0 01 1 1 1 0 1 1 1
66
Exemplul 5.Expresia a1⊕a4⊕b2 va avea suma
de intrare (1,0,0,1) 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).
67
Pentru o expresie cu suma de intrare
x = (x1, x2, x3, x4)
si suma de iesire
y = (y1, y2, y3, y4),
fie NL(x, y) numarul octetilor binari
(x1, x2, x3, x4, y1, y2, y3, y4)
cu 4⊕i=1
xi · ai
⊕ 4⊕
i=1
yi · bi
= 0
Tendinta unei astfel de expresii (alese aleator)
este
ε(x, y) =NL(x, y)− 8
16.
68
Tabela de aproximari liniare da o enumerare
completa a tuturor tendintelor pentru S - boxul
folosit de sistemul nostru de criptare (nu s-a
efectuat si ımpartirea la 16):
0 1 2 3 4 5 6 7 8 9 A B C D E F0 +8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 01 0 0 −2 −2 0 0 −2 +6 +2 +2 0 0 +2 +2 0 02 0 0 −2 −2 0 0 −2 −2 0 0 +2 +2 0 0 −6 +23 0 0 0 0 0 0 0 0 +2 −6 −2 −2 +2 +2 −2 −24 0 +2 0 −2 −2 −4 −2 0 0 −2 0 +2 +2 −4 +2 05 0 −2 −2 0 −2 0 +4 +2 −2 0 −4 +2 0 −2 −2 06 0 +2 −2 +4 +2 0 0 +2 0 −2 +2 +4 −2 0 0 −27 0 −2 0 +2 +2 −4 +2 0 −2 0 +2 0 +4 +2 0 +28 0 0 0 0 0 0 0 0 −2 +2 +2 −2 +2 −2 −2 −69 0 0 −2 −2 0 0 −2 −2 −4 0 −2 +2 0 +4 +2 −2A 0 +4 −2 +2 −4 0 +2 −2 +2 +2 0 0 +2 +2 0 0B 0 +4 0 −4 +4 0 +4 0 0 0 0 0 0 0 0 0C 0 −2 +4 −2 −2 0 +2 0 +2 0 +2 +4 0 +2 0 −2D 0 +2 +2 0 −2 +4 0 +2 −4 −2 +2 0 +2 0 0 +2E 0 +2 +2 0 −2 −4 0 +2 −2 0 0 −2 −4 +2 −2 0F 0 −2 −4 −2 −2 0 +2 0 0 −2 +4 −2 −2 0 +2 0
Tabela 6: Tabela de aproximari liniare
69
Proprietati:
• Probabilitatea ca pentru o intrare 0 sa se
obtina o anumita suma nevida de biti de
iesire este 1/2 (ıntr-un S - box bijectiv,
orice combinatie liniara de biti de iesire tre-
buie sa contina un numar egal de 0 si 1).
• Daca suma bitilor de iesire este 0, atunci
suma bitilor de intrare este 0 (o tendinta
+1/2 si o valoare +8 ın Tabela 6).
Deci prima linie din Tabela 6 este 0, cu
exceptia primului element.
Aceeasi proprietate o are si prima coloana.
• Suma elementelor pe o linie sau coloana
este ±8.
70
Construirea aproximarilor liniare
Dupa ce au fost stabilite aproximari liniare
pentru S - boxurile unui SPN , se poate deter-
mina o aproximare liniara pentru tot sistemul
de criptare.
Aceasta se va realiza prin concatenarea
aproximarilor liniare ale S -boxurilor consecu-
tive.
Pe baza acestei relatii liniare se va putea
ataca sistemul, gasind un subset de biti din
cheia folosita ın ultima runda.
71
Sa consideram urmatoarele aproximari liniare
pentru cutiile S12, S22, S32 si S34:
S12 : a1 ⊕ a3 ⊕ a4 = b2cu probabilitate 12/16 si tendinta +1/4;
S22 : a2 = b2 ⊕ b4cu probabilitate 4/16 si tendinta −1/4;
S32 : a2 = b2 ⊕ b4cu probabilitate 4/16 si tendinta −1/4;
S34 : a2 = b2 ⊕ b4cu probabilitate 4/16 si tendinta −1/4.
72
- Ui(Vi) reprezinta blocul (de 16 biti) de intrare
(iesire) din S - boxuri la runda i,
- Ui,j(Vi,j) este al j-lea bit din blocul Ui(Vi)
(bitii sunt numerotati de la 1 la 16).
- Ki reprezinta sub-cheia folosita ın runda i
(exceptie: sub-cheia K5 se combina prin XOR
cu bitii de la iesirea din runda 4).
Deci U1 = P ⊕ K1 unde P = (P1, . . . , P16)
reprezinta textul clar (de 16 biti).
73
Dupa aproximarea liniara de la prima runda:
V1,6 = U1,5 ⊕ U1,7 ⊕ U1,8 = (P5 ⊕K1,5)⊕ (P7 ⊕K1,7)⊕ (P8 ⊕K1,8) (2)
cu probabilitate 3/4.
Aproximarea din runda 2 da relatia
V2,6 ⊕ V2,8 = U2,6
cu probabilitate 1/4.
Deoarece U2,6 = V1,6 ⊕ K2,6, putem gasi oaproximare de forma
V2,6 ⊕ V2,8 = V1,6 ⊕K2,6
cu probabilitate 1/4.
Combinand aceasta relatie cu (2) (care are loccu probabilitate 3/4), se obtine
V2,6 ⊕ V2,8 ⊕ P5 ⊕ P7 ⊕ P8 ⊕K1,5 ⊕K1,7 ⊕K1,8 ⊕K2,6 = 0 (3)
cu probabilitate1/2 + 2(3/4− 1/2)(1/4− 1/2) = 3/8
(deci o tendinta −1/8) obtinuta prin aplicareaLemei Piling - up.
74
Pentru runda 3:
V3,6 ⊕ V3,8 = U3,6
cu probabilitate 1/4 si
V3,14 ⊕ V3,16 = U3,14
tot cu probabilitate 1/4.
Deci U3,6 = V2,6⊕K3,6 si U3,14 = V2,8⊕K3,14.
Se aplica din nou Lema Piling - up:
V3,6 ⊕ V3,8 ⊕ V3,14 ⊕ V3,16 ⊕ V2,6 ⊕K3,6 ⊕ V2,8 ⊕K3,14 = 0 (4)
cu probabilitate 1/2 + 2(1/4 − 1/2)2 = 5/8
(deci, cu o tendinta +1/8).
75
Combinam acum relatiile (3) si (4) pentru aincorpora toate cele patru aproximari ale S -boxurilor:
V3,6 ⊕ V3,8 ⊕ V3,14 ⊕ V3,16 ⊕ P5 ⊕ P7 ⊕ P8 ⊕K1,5 ⊕K1,7 ⊕K1,8 ⊕K2,6 ⊕
K3,6 ⊕K3,14 = 0.
Tinem cont ca
U4,6 = V3,6 ⊕K4,6,
U4,8 = V3,14 ⊕K4,8,
U4,14 = V3,8 ⊕K4,14,
U4,16 = V3,16 ⊕K4,16
si putem rescrie aceasta relatie sub formaU4,6 ⊕ U4,8 ⊕ U4,14 ⊕ U4,16 ⊕ P5 ⊕ P7 ⊕ P8 ⊕ σK = 0
unde
σK = K1,5⊕K1,7⊕K1,8⊕K2,6⊕K3,6⊕K3,14⊕K4,6⊕K4,8⊕K4,14⊕K4,16
Ea este verificata cu probabilitate1/2 + 23(3/4− 1/2)(1/4− 1/2)3 = 15/32
(deci o tendinta −1/32).
76
σK este o valoare fixata (0 sau 1), dependenta
de cheia sistemului de criptare.
Deci relatia
U4,6 ⊕ U4,8 ⊕ U4,14 ⊕ U4,16 ⊕ P5 ⊕ P7 ⊕ P8 = 0 (5)
are loc cu probabilitate
15/32 sau (1− 15/32) = 17/32
(dupa cum σK = 0, respectiv 1).
Am obtinut deci o aproximare liniara a primelor
trei runde ale sistemului de criptare, cu o ten-
dinta 1/32, remarcabil de buna pentru constru-
irea unui atac.
77
S41 S44S42 S43
S31 S34S32 S33
S21 S24S22 S23
S11 S14S12 S13
K1,5 K1,7 K1,8
K2,6
K3,6 K3,14
K4,6 K4,8 K4,14 K4,16
K5,5 K5,6 K5,7 K5,8 K5,13 ... K5,16
P5 P7 P8
?U4,6 U4,8 U4,14 U4,16
?
Figura 3: Exemplu de aproximare liniara
78
Extragerea bitilor cheii
Dupa ce s-a aflat o aproximare liniara pentru
R − 1 runde dintr-un sistem de criptare cu R
runde, aproximare avand o tendinta semnifica-
tiv de mare, sistemul poate fi atacat cautand
biti din ultima sub-cheie.
Se numeste sub-cheie tinta setul de biti din
ultima sub-cheie, asociati S - boxurilor active
din ultima runda (S - boxuri influentate de bitii
utilizati ın aproximarea liniara gasita).
Pentru fiecare valoare posibila a sub-cheii tinta
este definit un contor (initializat cu zero).
79
Procesul va simula decriptarea partiala data deultima runda a sistemului de criptare: pentrutoate valorile posibile ale sub-cheii tinta, bitiidin textul criptat sunt XOR-ati cu bitii din sub-cheia tinta si rezultatul este trecut ın sens in-vers prin S - boxurile corespunzatoare.
Procedura este aplicata tuturor perechilor(text clar, text criptat) folosite ın atac.
Daca aproximarea liniara este verificata pen-tru bitii din textul clar folosit si pentru rezul-tatul obtinut de procedura, contorul asociatsub-cheii respective este incrementat.
Sub-cheia tinta al carei contor difera cel maimult de jumatatea numarului de perechi folo-site, este cel mai probabil cea corecta.
Pentru o sub-cheie incorecta rezultata dintr-o alegere aleatoare, aproximarea asociata esteverificata ın general cu o probabilitate foarteapropiata de 50% (deci tendinta 0).
80
Exemplul 6. Expresia liniara (5) afecteaza
intrarile ın S - boxurile S42 si S44.
Deci, pentru fiecare pereche (α, β) aleasa pen-
tru atac, vom ıncerca 28 = 256 valori ale sub-
cheii tinta
[K5,5, . . . , K5,8, K5,13, . . . , K5,16].
Pentru fiecare valoare incrementam contorul
respectiv ori de cate ori relatia (5) este veri-
ficata (valorile [U4,5, . . . , U4,8, U4,13, . . . , U4,16]
sunt determinate trecand datele ın sens invers
prin sub-cheia tinta si S - boxurile S24 si S44).
Contorul care difera cel mai mult de jumatate
din numarul de perechi (α, β) folosite ın atac
va indica sub-cheia tinta prezumtiv corecta.
81
Valorile bitilor din sub-cheie folositi ın calculul
lui σK vor indica daca tendinta este pozitiva
sau negativa.
Cand σK = 0, aproximarea liniara (5) va servi
ca estimare cu probabilitate < 1/2, iar cand
σK = 1, relatia (5) va avea loc cu probabilitate
> 1/2.
K5,5 . . . K5,8,K5,13 . . . K5,16
|tendinta| K5,5 . . . K5,8,K5,13 . . . K5,16
|tendinta|1 C 0.0031 2 A 0.00441 D 0.0078 2 B 0.01861 E 0.0071 2 C 0.00941 F 0.0170 2 D 0.00532 0 0.0025 2 E 0.00622 1 0.0220 2 F 0.01332 2 0.0211 3 0 0.00272 3 0.0064 3 1 0.00502 4 0.0336 3 2 0.00752 5 0.0106 3 3 0.01622 6 0.0096 3 4 0.02182 7 0.0074 3 5 0.00522 8 0.0224 3 6 0.00562 9 0.0054 3 7 0.0048
Tabela 7. Rezultate experimentale pentru un atac liniar
Atacul foloseste 10000 perechi cunoscute
(text clar, text criptat).
82
Tabela 7 prezinta doar partial rezultatele rela-
tive la contori (un tabel complet va avea 256
linii, cate una pentru fiecare valoare posibila a
sub-cheii tinta).
Cea mai mare tendinta apare pentru valoarea
[K5,5 . . . K5,8, K5,13 . . . K5,16] = [2,4],
rezultat care ramane valabil pentru toata tabe-
la cu 256 valori.
Valoarea 0.0336 gasita experimental este
foarte apropiata de estimarea 1/32 = 0.03125.
In tabel apar si alte valori destul de mari ale
tendintei (teoretic, ele ar trebui sa fie foarte
apropiate de zero).
Acestea rezulta – printre altele – din alegerea
aleatoare a perechilor de test, a proprietatilor
particulare ale S - boxurilor, a impreciziei
ipotezei de independenta.
83
Criptanaliza liniara pentru DES
Cea mai buna aproximare liniara pentru un S -
box din DES este
a2 ⊕ b1 ⊕ b2 ⊕ b3 ⊕ b4 = 0
asociata lui S5.
Aceasta relatie are probabilitatea 12/64.
Daca se analizeaza componentele liniare ale
functiei f , va rezulta ca aceasta relatie con-
duce la aproximarea
a15 ⊕ f(α, K)7 ⊕ f(α, K)18 ⊕ f(α, K)24 ⊕ f(α, K)29 ⊕K22 = 0 (6)
cu probabilitatea 16/24.
Relatia (6) poate fi folosita cu succes pentru
un atac contra sistemului DES cu 3 runde.
84
Pentru a ataca un DES complet (cu 16 runde)
sunt folosite aproximarile liniare:
a15 ⊕ f(X, K)7 ⊕ f(X, K)18 ⊕ f(X, K)24 ⊕ f(X, K)29 ⊕K22 = 0a27 ⊕ a28 ⊕ a30 ⊕ a31 ⊕ f(X, K)15 ⊕K42 ⊕K43 ⊕K45 ⊕K46 = 0a29 ⊕ f(X, K)15 ⊕K44 = 0a15 ⊕ f(X, K)7 ⊕ f(X, K)18 ⊕ f(X, K)24 ⊕K22 = 0a12 ⊕ a16 ⊕ f(X, K)7 ⊕ f(X, K)18 ⊕ f(X, K)24 ⊕K19 ⊕K23 = 0
Dupa estimarea lui Matsui, atacul original pro-
pus de el necesita 247 perechi (text clar, text
criptat) pentru a avea succes cu probabilitate
mare.
Ulterior,atacul este ımbunatatit si reduce acest
numar la 243 perechi.
Cercetari experimentale ulterioare sugereaza
ca sunt suficiente 241 perechi pentru ca atacul
ımbunatatit al lui Matsui sa dea rezultate.
85
Comparare ıntre criptanaliza diferentiala si liniara
Similaritati:
1. Diferentialele caracteristice corespund
aproximarilor liniare.
Tabelele de distributie a diferentelor sunt
ınlocuite cu tabelele de aproximare liniara.
2. Regula de combinare a diferentialelor
caracteristice: ”substituie diferentele si ınmul-
teste probabilitatile” corespunde regulii de
combinare a aproximarilor liniare (Lema piling-
up): ”substituie elementele comune si ınmul-
teste tendintele”.
3. Algoritmii de cautare pentru cea mai
buna caracteristica sau cea mai buna aproxi-
mare liniara sunt ın esenta identici.
86
Diferente:
1. Criptanaliza diferentiala lucreaza cu blo-
curi de biti, ın timp ce criptanaliza liniara lu-
creaza ın esenta cu un singur bit.
2. Tendinta unei aproximari liniare este un
numar cu semn.
Deci, fiind date doua aproximari cu aceleasi
structuri de intrare si iesire, aceiasi probabili-
tate, dar semne opuse, aproximarea rezultata
va avea tendinta zero (datorita faptului ca cele
doua aproximari se vor anula reciproc).
87
Sisteme de criptare cu cheie publica
1
Sistemele simetrice necesita o comunicare
prealabila a cheii ıntre Alice si Bob printr-un
canal sigur, ınainte de transmiterea mesajului
criptat.
Obiectivul sistemelor de criptare cu cheie
publica este acela de a face ”imposibil” de
obtinut cheia dK plecand de la eK.
Astfel, regula de criptare eK poate fi publicata
ıntr-un ”registru public” (de unde si numele
sistemelor).
Avantajul consta ın faptul ca Alice (sau oricare
alta persoana) poate trimite lui Bob un mesaj
criptat cu eK.
Bob este singura persoana capabila sa decrip-
teze textul, utilizand cheia sa secreta dK.
2
Ideea de sistem de criptare cu cheie publica
apare ın 1976 ıntr-un articol scris de Diffie si
Hellman.
Se pare ca prima idee de cheie publica este
schitata ın ianuarie 1970 de catre britanicul
James Ellis – membru ın Communication-
Electronic Security Group – ın articolul The
possibility of non-secret encryption.
Informatia este facuta publica de catre British
Government Communications Headquarters
abia ın 1997.
3
Securitatea sistemelor de criptare cu cheiepublica este bazata pe probleme NP complete.
• RSA: bazat pe dificultatea descompuneriiın factori primi a numerelor mari (de sutede cifre).
• El Gamal: bazat pe dificultatea calcululuilogaritmului discret ıntr-un corp finit.
• Merkle - Hellman: bazat pe problema{0,1} a rucsacului.
• Sistemul McEliece: bazat pe teoria al-gebrica a codurilor, decodificarea unui codliniar fiind o problema NP - completa.
• Curbe eliptice: Sisteme de criptare careısi desfasoara calculele pe multimeapunctelor unei curbe eliptice (ın locul unuiinel finit Zn).
4
Functii neinversabile
Un sistem cu cheie publica nu este sigur ın mod
neconditionat; oricine – putand sa efectueze
criptari – are posibilitatea sa gaseasca anumite
puncte slabe care sa ıi permita sa si decripteze
mesajele.
Ideea de baza folosita este cea de
functie neinversabila.
Exemplul 1. Strazi cu sens unic dintr-un oras.
Este usor ca mergand pe astfel de strazi sa
ajungi de la punctul A la punctul B; dar uneori
este imposibil sa ajungi de la B la A.
In acest mod, criptarea este privita ca directia
A→ B; desi este foarte usor de parcurs drumul
ın aceasta directie, nu te poti ıntoarce ınapoi
spre A (adica sa decriptezi mesajul).
5
Exemplul 2. Cartea de telefoane.
Cu ajutorul ei este usor de gasit numarul detelefon al unei anumite persoane.
In schimb, este extrem de greu - practic im-posibil - sa afli persoana care are un anumitnumar de telefon.
Pe baza unei astfel de carti se poate construiun sistem de criptare cu cheie publica.
Criptarea se face litera cu litera.
Pentru fiecare litera a textului clar se alege unnume care ıncepe cu acest caracter si numarulde telefon al persoanei respective va constituicriptarea.
Sistemul este homofonic; doua aparitii diferiteale aceleiasi litere vor fi codificate foarteprobabil cu numere diferite.
6
Textul clar SOLIST se poate cripta:
S Simion Pavel 6394502O Olaru Stefan 7781594L Lambru Stelian 6300037I Ilie Romeo 3134971S Solovean Raluca 6281142T Tecuceanu Paul 3359962
Deci, textul criptat va fi639450 277815 946300 037313 497162 811423 359962.
Metoda este nedeterminista; din acelasi textclar se pot obtine multe texte criptate.
In schimb, orice text criptat conduce la un textclar unic.
Bob va avea la dispozitie pentru decriptareo carte ordonata crescator dupa numerele detelefon.
Aceasta ıi va permite sa decripteze mesajele cuun algoritm de complexitate O(log n).
7
In general, o functie neinversabila f trebuie sa
verifice doua conditii:
• Fiind dat x, f(x) este usor de calculat;
• Calculul lui x din f(x) este imposibil.
Din punct de vedere strict matematic, nu se
cunosc astfel de functii.
A demonstra ca exista functii neinversabile este
echivalent cu a demonstra conjectura P 6= NP.
8
Termenii folositi sunt relativi la complexitatea
calculatorie.
O problema este:
1. usoara – daca se poate rezolva cu un algo-
ritm cel mult liniar;
2. grea – daca se poate rezolva cu un algoritm
polinomial neliniar;
3. imposibila – daca este NP - completa.
9
Exemplul 3. Sa consideram ”problema rucsa-cului”.
Ea consta dintr-un vector
A = (a1, a2, . . . , an)
cu elemente numere ıntregi, pozitive, distincte,si un numar ıntreg pozitiv k.
Trebuiesc aflati acei ai din A (daca exista) acaror suma este k.
De exemplu, fieA = (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 solutie.
Pentru |A| foarte mare, problema rucsaculuieste NP - completa.
10
Cu ajutorul lui A se poate defini o functie f
astfel:
Fie x ∈ [0,2n − 1]; x poate fi reprezentat ın
binar ca un cuvant de lungime n (completand
eventual ın fata cu 0 - uri).
Atunci
f(x) = A ·BTx
unde Bx este reprezentarea binara a lui x, scrisa
ca un vector coloana.
11
Un sistem de criptare bazat pe problema
rucsacului.
Textul clar este codificat initial ın binar si
segmentat apoi ın blocuri de cate n biti.
Fiecare bloc rezultat este apoi criptat calcu-
land valoarea corespunzatoare a functiei f .
Pentru alfabetul latin sunt suficienti 5 biti pen-
tru codificarea binara a literelor si a spatiului.
− 00000 A − 00001 B − 00010C − 00010 D − 00011 E − 00101F − 00110 G − 00111 H − 01000I − 01001 J − 01010 K − 01011L − 01100 M − 01101 N − 01110O − 01111 P − 10000 Q − 10001R − 10010 S − 10011 T − 10100U − 10101 V − 10110 W − 10111X − 11000 Y − 11001 Z − 11010
12
Text clar: FLOARE DE COLT.
In fiecare bloc intra doua caractere:
FL OA RE D E CO LT.
Codificand,se obtin sapte blocuri de cate
10 biti:
0011001100 0111100001 1001000101 0000000100
0000000101 0001101111 0110010100.
Folosind vectorul rucsac
A = (43,129,215,473,903,302,561,1165,696,1523)
se ajunge la textul criptat:
(2414,3243,3204,1165,1118,5321,1811).
13
Privit ca un sistem clasic (cu cheie privata),
criptanalistul trebuie sa afle vectorul de baza
A si apoi sa rezolve problema rucsacului.
Daca el foloseste un atac cu text clar ales, ıl
va afla usor pe A: este suficient sa trimita n
texte clare cu cıte un singur 1 iar restul 0.
Problema apare ın momentul rezolvarii proble-
mei rucsacului.
Aici atat Bob cat si Oscar sunt pusi ın fata
aceleiasi probleme NP - complete.
Ori, practic, doar Oscar trebuie sa rezolve o
problema dificila, nu si Bob.
14
Trapa secreta
Bob trebuie sa dispuna de o informatie secreta
care sa ıi permita sa transforme problema pu-
blica NP - completa, ıntr-o problema usoara.
Aceasta informatie este numita trapa secreta.
In primul exemplu, trapa secreta era cartea de
telefon ordonata dupa numerele de telefon.
15
Exemplul 4. Sunt clase de probleme ale ruc-sacului usor de rezolvat; una din ele o formeazavectorii cu crestere mare.
Spunem ca vectorul rucsac A = (a1, a2, . . . , an)este super-crescator daca
∀ j ≥ 2, aj >j−1∑i=1
ai.
Pentru a rezolva problema rucsacului (A, k),este suficient sa parcurgem vectorul A de ladreapta spre stanga.
Cunoscand valoarea k, cercetam ıntai valoareade adevar a relatiei k ≥ an.
Daca raspunsul este FALSE, an nu poate apar-tine sumei pe care o cautam.
Daca se obtine TRUE, atunci an trebuie sa fieın suma, deoarece toate elementele ai ramasenu pot depasi ın suma pe k.
16
Fie vectorul rucsac super-crescatorA = (1,3,5,11,21,44,87,175,349,701)
si vrem sa decodificam mesajul 278.
Numar Componenta lui A Bit rezultat278 701 0278 349 0278 175 1103 87 116 44 016 21 016 11 15 5 10 3 00 1 0
Se defineste
k1 =
{k daca an > kk − an daca an ≤ k
si repetam procedeul pentru k si a1.
In final se obtine secventa 00110 01100 careeste codificarea pentru FL.
17
Daca se foloseste public o trapa secreta, orice
utilizator – inclusiv Oscar – poate decripta
mesajele, folosind un algoritm liniar.
Ori s-a presupus ca, pentru orice intrus, aflarea
mesajului clar trebuie sa se reduca la rezolvarea
unei probleme NP - complete.
18
Exemplul 5. Pentru sistemul bazat pe proble-
ma rucsacului, Bob va proceda astfel:
Alege un numar m (m >m∑
i+1
ai) numit modul
si un numar t, (m, t) = 1 numit multiplicator.
Exista atunci un numar s astfel ca
m · s ≡ 1 (mod m).
Plecand de la vectorul super-crescator
A = (a1, a2, . . . , an)
Bob genereaza vectorul
B = (b1, b2, . . . , bn)
unde bi = t · ai (mod m).
Vectorul B este declarat public pentru criptare,
iar m, t (si s) formeaza trapa secreta a lui Bob.
19
Pentru m = 1590 si t = 43, vectorul super-
crescator
A = (1,3,5,11,21,44,87,175,349,701)
devine
B = (43,129,215,473,903,302,561,1165,697,1523),
prezentat ın Exemplul 3.
In plus, s = t−1 = 37.
Pentru calculul inversului unui numar se poate
folosi algoritmul lui Euclid extins.
20
Cel care doreste sa trimita lui Bob un mesaj
criptat va folosi vectorul rucsac B si va cripta
mesajul x ın
y = B ·BTx .
La receptie, Bob va calcula ıntai
z = s · y (mod m),
dupa care va decripta mesajul z folosind vec-
torul super-crescator A.
Se poate arata usor ca solutia este chiar x.
Astfel, de exemplu Alice poate cripta mesajul
FL ın 2414 (cf. Exemplului 3).
La primirea acestui numar, Bob va determina
ıntai
s · 2414 = 37 · 2414 (mod 1590) = 278.
S-a vazut ca decriptarea mesajului 278 cu vec-
torul A conduce la textul clar FL.21
Principii generale de construire a unui sistem
de criptare cu cheie publica:
1. Se ıncepe cu o problema dificila P , prefe-
rabil NP - complea.
2. Se selecteaza o subproblema P1 a lui P ,
rezolvabila ın timp liniar.
3. Se aplica o transformare problemei P1 ast-
fel ıncat sa se obtina o problema P2 care sa
nu semene cu P1 dar sa fie foarte apropiata
de problema P .
4. Se face publica problema P2 si se descrie
algoritmul de criptare bazat pe aceasta.
Informatia referitoare la modul ın care se
obtine P1 din P2 formeaza trapa secreta.
22
5 Se construiesc detaliile sistemului de crip-
tare, astfel ıncat principiile de lucru sa dife-
re esential pentru destinatar fata de
criptanalist.
Astfel, ın timp ce primul va folosi trapa se-
creta si va rezolva problema P1, al doilea
va trebui sa rezolve problema P2, imposi-
bila datorita asemanarii ei cu problema P .
La aceste principii generale de constructie se
adauga o serie de detalii legate de problema
NP - completa folosita ca baza de lucru.
23
Securitatea sistemelor de criptare
cu cheie publica
In majoritatea sistemelor de criptare, aparatul
matematic folosit este bazat pe teoria numere-
lor, functii recursive, probabilitati si statistica.
Pe o scara mult mai restransa apar functiile
eliptice, teoria automatelor, calcul neconven-
tional (cuantic, molecular etc).
Sistemele de criptare cu cheie publica au un
avantaj major fata de sistemele clasice: nu este
necesara transmiterea ın prealabil a cheii.
24
Un sistem de criptare cu cheie publica nu ofera
ınsa o securitate absoluta.
Oscar poate oricand sa dezvolte atacuri (pasive
sau active):
• Daca dispune de un text criptat y, el poate
cauta exhaustiv un text clar x astfel ca
eK(x) = y.
Singura aparare contra unui astfel de atac
consta ın gradul de complexitate al sis-
temului.
• Un criptanalist activ poate efectua cu suc-
ces un atac numit man-in-the-middle.
25
Atacul man-in-the-middle
Alice si Bob doresc sa stabileasca un contact.
Ei fac publice cheile de criptare eA respectiv
eB.
Daca acest contact este nepersonalizat,
Oscar poate controla mesajele schimbate ıntre
cei doi:
Alice
Oscar
Bob
? - -
66
�6
-
?
(eA, eB)e1B e1
A
y1 = e1B(m) y = eB(m)
1. Oscar ”opacizeaza” cheile publice si trimite
lui Alice cheia e1B ca din partea lui Bob;
similar, substituie (pentru Bob) cheia eA
cu e1A.
26
2 Fie m mesajul pe care Alice vrea sa ıl trimi-
ta lui Bob. Ea va cripta si expedia
y1 = e1B(m).
3 Oscar intercepteaza mesajul si afla
m = d1B(y1).
4 Oscar recripteaza y = eB(m) si trimite y
lui Bob.
Bineınteles, daca doreste, Oscar poate modi-
fica, interschimba sau ıntarzia mesajele inter-
ceptate.
27
Pentru sistemele de criptare cu cheie publica
apare necesitatea autentificarii mesajului sau a
expeditorului, precum si aceea a confidentiali-
tatii.
Definitia 1. Confidentialitatea (conform ISO)
asigura accesul la informatie doar partilor au-
torizate de a avea acest acces.
Definitia 2. Autentificarea (gr. ”authentes”
- author) este procesul prin care un utilizator
ıncearca sa confirme unui destinatar ca mesajul
primit de acesta vine (sau nu vine) din partea
sa.
28
Metodele prin care un expeditor uman se poate
autentifica sunt clasificate ın:
1. ”ceva ce utilizatorul este” (de exemplu am-
prente digitale, de retina, de voce, secventa
DNA, recunoasterea semnaturii, identifica-
tori biometrici).
2. ”ceva de utilizatorul are” (de exemplu card
ID, date de securitate soft aflate pe calcu-
lator sau telefon).
3. ”ceva ce utilizatorul stie” (de exemplu un
password, o parola, un numar de identifi-
care - PIN).
4. Orice combinatie ıntre metodele anterioare
(exemplu: un card bancar cu PIN asigura
o dubla autentificare).
29
Termenul de integritate se refera la validitatea
datelor.
Definitia 3. Integritatea este siguranta ca
datele la care se refera un utilizator pot fi
accesate si eventual modificate numai de
cei autorizati sa o faca.
In general integritatea poate fi compromisa ın
doua moduri:
1. Prin alterare intentionata (de exemplu mo-
dificarea unui cont bancar, a unei adrese de
e-mail, a unui document de identitate);
2. In mod accidental (transmisii perturbate de
zgomote de canal, zgarierea harddiscului).
De recuperarea informatiei pierduta ın acest
mod se ocupa Teoria Codurilor detectoare si
corectoare de erori.30
Sa presupunem ca Alice si Bob sunt doi uti-
lizatori cu posibile conflicte de interese.
Cand Alice trimite un mesaj lui Bob, ambele
parti trebuie sa se asigure ca:
• Mesajul nu este trimis de o terta persoana
care pretinde a fi Alice;
• Bob sa nu poata obliga pe Alice sa tina
cont de mesaje care nu-i apartin, iar Alice
sa nu poata repudia propriile mesaje.
Intr-o oarecare masura, cele doua conditii sunt
contradictorii: conform primei conditii, Bob
trebuie sa stie ceva despre modul de criptare
al lui Alice, care ıi va permite sa autentifice
mesajul, iar conform celei de-a doua conditii,
el nu trebuie sa stie prea mult.
31
O modalitate frecvent utilizata pentru auten-
tificarea mesajelor este folosirea codurilor de
autentificare.
Exemplul 6.MAC-ul (Message Authentication
Code) definit ın cadrul sistemului de criptare
DES este o varianta prin care se poate asigura
atat autenticitatea cat si integritatea mesaju-
lui.
Daca se solicita si autentificarea partenerilor,
atunci se foloseste de obicei semnatura elec-
tronica.
32
Exemplul 7. Alice vrea sa trimita mesajul m.
Daca se foloseste un sistem de criptare cu cheie
publica ın care functiile de criptare/decriptare
sunt comutative, iar
(eA, dA), (eB, dB)
sunt perechile (cheie publica, cheie privata) ale
celor doi, ei pot urma urmatorul protocol:
1. Alice trimite lui Bob y1 = eA(m);
2. Bob trimite lui Alice y = eB(y1);
3. Alice trimite lui Bob dA(y) = eB(m);
4. Bob calculeaza dB(eB(m)) = m.
Sunt verificate cele doua conditii de autentifi-
care si – ın plus – protocolul rezista unui atac
de tip man-in-the-middle.
33
Avantaje ale sistemelor simetrice de criptare
1. Pot transmite volume mari de date.Exista implementari hard care pentru unelesisteme de criptare asigura rate de criptarede sute de mega-octeti pe secunda (sunt siimplementari soft cu rate de mega-octetipe secunda).
2. Cheile sunt relativ scurte.
3. Pot fi folosite drept baza de constructiepentru generatori de numere pseudoalea-toare, generatori de functii de dispersie,scheme de semnatura etc.
4. Prin compunere pot conduce la sisteme decriptare puternice.
5. Au o istorie bogata ın evenimente si expe-rienta.
34
Dezavantaje ale sistemelor de criptare simetrice
1. Cheia trebuie sa ramana permament se-
creta ın (cel putin) doua locuri distincte.
2. Cu cat lungimea unui mesaj criptat este
mai mare, cu atat el este mai usor de spart.
3. In retele mari, o gestionare a cheilor devine
extrem de dificila.
4. Necesita un canal sigur de comunicare, cel
putin pentru transmiterea cheii.
Acest lucru devine dificil mai ales pentru
sistemele care necesita schimbari frecvente
ale cheilor de criptare/decriptare.
35
Avantaje ale sistemelor de criptare cu cheie publica
1. Sistemul este ideal pentru transmitereainformatiei prin canale nesigure.
2. Sistemele cu cheie publica sunt simplu dedefinit si elegante matematic.
3. Doar cheia de decriptare trebuie tinuta se-creta, la un singura adresa (destinatar).
4. In functie de modul de utilizare, o perechede chei (publica, privata) poate fi pastratao perioada mai lunga de timp.
5. Conduc la aplicatii de mare ıntindere:semnaturi electronice, algoritmi de auten-tificare, componente de comert electronicetc.
36
Dezavantaje ale sistemelor de criptare
cu cheie publica
1. Sunt semnificativ mai lente decat sistemele
simetrice.
2. Sunt necesare chei de lungimi mult mai
mari.
3. Nu se poate garanta securitatea absoluta
a nici unei scheme de criptare cu cheie pu-
blica.
4. Implementarea trebuie realizata cu foarte
mare grija.
Sisteme cu grad teoretic ridicat de securi-
tate pot fi sparte usor printr-o implemen-
tare neglijenta.
37
Cele doua clase de sisteme de criptare dispun
de o serie de avantaje complementare.
Acest lucru sugereaza o utilizare combinata.
Exemplul 8. Multe sisteme de criptare ıncep
comunicarea transmitand – via un sistem cu
cheie publica – cheia unui sistem simetric.
In faza a doua, mesajele sunt criptate folosind
sistemul simetric de criptare.
Aceasta asigura o viteza mare de transmitere
si un spor de autenticitate a mesajelor.
38
Algoritmul lui Euclid extins
Algoritmul lui Euclid constituie o modalitateeficace de determinare a celui mai mare divizorcomun a doua numere ıntregi pozitive.
El poate fi extins pentru a determina si in-versele elementelor dintr-un corp finit Zn.
Forma clasica a algoritmului Euclid:
Fie r0, r1 ∈ N∗.Se efectueaza secventa de ımpartiri succesive:
r0 = q1r1 + r2 0 < r2 < r1r1 = q2r2 + r3 0 < r3 < r2...rm−2 = qm−1rm−1 + rm 0 < rm < rm−1rm−1 = qmrm.
Deoarece
cmmdc(r0, r1) = . . . = cmmdc(rm−1, rm) = rm,
rezulta cmmdc(r0, r1) = rm.
39
Fie sirul t0, t1, . . . , tm definit:
t0 = 0, t1 = 1
tj = tj−2 − qj−1tj−1 (mod r0), j ≥ 2 (2)
Teorema 1. Pentru 0 ≤ j ≤ m avem
rj ≡ tjr1 (mod r0)
unde rj si tj sunt definite mai sus.
Corolarul 1. Daca (r0, r1) = 1 atunci
tm = r−11 (mod r0).
40
Algoritmul lui Euclid extins (pentru n > 1 si
b ∈ Z∗n va determina b−1 mod n - daca exista).
1. n0 ←− n, b0 ←− b, t0 ←− 0, t←− 1;
2. q ←−[
n0
b0
], r ←− n0 − q · b0;
3. while r > 0 do
3.1. temp←− t0 − q · t
3.2. if temp ≥ 0 then temp←− temp (mod n)
else temp←− n− ((−temp) (mod n))
3.3. n0 ←− b0, b0 ←− r, t0 ←− t, t←− temp;
3.4. q ←−[
n0
b0
], r ←− n0 − q · b0;
4. if b0 6= 1 then b nu are inversa mod n.
else b−1 (mod n) = t.
41
Exemplul 9. Sa calculam 28−1 mod 75,
folosind algoritmul lui Euclid extins:
n0 b0 q r t0 t temp75 28 2 19 0 1 7328 19 1 9 1 73 319 9 2 1 73 3 679 1 9 0 3 67
Deci 28−1 mod 75 = 67.
42
Teorema chineza a resturilor
Teorema 2. Se dau numerele p1, p2, . . . , pr
prime ıntre ele si fie n = p1p2 . . . pr.
Atunci sistemul de ecuatii
x ≡ ai (mod pi), 1 ≤ i ≤ r
are solutie comuna ın intervalul [0, n− 1].
Pentru fiecare i, cmmdc(pi, n/pi) = 1;deci exista numerele yi astfel ıncat
n
pi· yi ≡ 1 (mod pi).
De asemenea, pentru j 6= i, deoarecepj|cmmdc(n/pi), avem
n
pi· yi ≡ 0 (mod pj).
Solutia sistemului este
x =r∑
i=1
n
pi· yi · ai (mod n).
43
Exemplul 10. Fie r = 3, p1 = 7, p2 = 11,
p3 = 13, deci n = 1001.
Notand mi =n
pi, avem
m1 = 143, m2 = 91 si m3 = 77.
Folosind algoritmul lui Euclid, se obtiney1 = 5, y2 = 4, y3 = 12.
Solutia generala este atunci
x = 715a1 + 364a2 + 924a3 (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.
Verificarea se realizeaza reducand x modulo7, 11 si 13.
44
Sistemul de criptare RSA
1
Descrierea sistemului
Sistemul de criptare RSA este prezentat ın
1977 de Ron Rivest, Adi Shamir si Len Adle-
man ın cadrul unui proiect de cercetare la MIT.
Dupa declasificarea ın 1997 a unor documente
din Marea Britanie, se pare ca matematicianul
Clifford Cocks a elaborat ın 1973 un sistem
echivalent, prezentat ıntr-un document intern
GCHQ (Government Communications Head-
quarters).
Este cel mai cunoscut si utilizat sistem de
criptare cu cheie publica.
Aceasta se datoreaza ın primul rand modalitatii
foarte simple de criptare si decriptare, care se
realizeaza cu aceleasi module de calcul (pro-
prietate ıntalnita la unele sisteme simetrice).
2
Fie p, q numere prime impare distincte si
n = pq.
Indicatorul sau Euler este φ(n) = (p−1)(q−1).
Fie P = C= Zn,
K= {(n, p, q, a, b)| n = pq, ab ≡ 1 (mod φ(n))}
Pentru K = (n, p, q, a, b) se definesc
(∀x, y ∈ Zn):
eK(x) = xb (mod n)
si
dK(y) = ya (mod n)
Valorile n si b sunt publice, iar p, q si a sunt
secrete.
3
Deoarece ab ≡ 1 (mod φ(n)), avem
ab = tφ(n) + 1
Atunci, pentru un x ∈ Z∗n = Zn \ {0}, putem
scrie (calcule ın Zn):
(xb)a ≡ xtφ(n)+1 ≡(xφ(n)
)tx ≡ 1tx ≡ x
Pentru x = 0 afirmatia este banala.
4
Exemplul 1. Bob alege p = 101, q = 113.
Atunci n = 11413, φ(n) = 11200.
Deoarece 11200 = 26527, un numar b poate fiutilizat ca exponent de criptare daca si numaidaca nu este divizibil cu 2,5 sau 7.
Fie de exemplu b = 3533.
Atunci b−1 = 6597 (mod 11200).
Deci, exponentul de decriptare este a = 6597.
Bob face public n = 11413 si b = 3533.
Daca Alice doreste sa-i transmita lui Bobmesajul m = 9726, ea calculeaza
97263533 mod 11413 = 5761
si trimite prin canal textul criptat c = 5761.Cand Bob primeste acest numar, el determina
57616597 mod 11413 = 9726.5
Securitatea sistemului de criptare RSA se
bazeaza pe ipoteza ca functia de criptare
eK(x) = xb mod n
este neinversabila din punct de vedere al
complexitatii.
Trapa secreta de care dispune Bob pentru
decriptare este descompunerea n = pq.
Deoarece Bob stie aceasta factorizare, el poate
calcula φ(n) = (p− 1)(q− 1) si apoi determina
exponentul de decriptare a folosind algoritmul
lui Euclid extins.
6
Implementarea sistemului RSA
Pentru a realiza criptarea, Bob trebuie sa
parcurga urmatorii pasi:
1. Genereaza doua numere prime mari p, q.
2. Afla n = pq si φ(n) = (p− 1)(q − 1).
3. Alege aleator un numar b ∈ (1, φ(n)),
astfel ca cmmdc(b, φ(n)) = 1.
4. Calculeaza a = b−1 mod φ(n) folosind
algoritmul lui Euclid extins.
5. Face public n si b.
7
Un atac consta ın ıncercarea de factorizare alui n.
Daca se realizeaza aceasta, este usor de de-terminat φ(n) = (p − 1)(q − 1) si de calculatexponentul de decriptare a plecand de la b.
Deci, pentru ca sistemul RSA sa fie sigur, estenecesar ca n sa fie suficient de mare pentru cafactorizarea sa sa fie imposibila.
Un numar n de maxim 256 biti poate fi facto-rizat de un PC obisnuit ın cateva ore.
Daca n are pana la 512 biti, el poate fi factor-izat folosind o retea de cateva sute de calcu-latoare (schema prezentata ın 1999).
Aproape toate implementarile actuale ale sis-temului folosesc chei de 1024− 2048 biti.
In 2003 a fost pusa sub semnul ıntrebarii se-curitatea modulelor de 1024 biti.
8
Daca n ocupa k biti ın memorie
(k = [log2n] + 1), suma a doua numere de k
biti se face ın O(k), iar ınmultirea ın O(k2).
La fel si reducerea modulo n.
Deci, pentru x, y ∈ Zn, numarul xy (mod n) se
poate determina prin calcule de complexitate
O(k2).
Aceasta operatie este numita
multiplicare modulara.
9
Complexitatea exponentierii modulare
xc mod n
Efectuarea de c− 1 multiplicari modulare esteproces foarte ineficient pentru c mare (algorit-mul devine de complexitate exponentiala).
Fie
c =s−1∑i=0
ci2i
descompunerea binara a lui c.(s ≤ k este numarul de biti din c, iar ci ∈ {0,1}).
Exponentiere rapida (doar prin ridicari la patratsi maxim s ınmultiri modulare):
z ←− 1;for i←− s− 1 downto 0 doz ←− z2 mod n;if ci = 1 then z ←− z · x mod n
Complexitatea algoritmului: O(k3).
10
Exemplul 2. Calculul lui 97263533 mod 11413
se efectueaza ın numai 12 pasi; anume:
i ci z
11 1 12 · 9726 = 972610 1 97262 · 9726 = 26599 0 26592 = 56348 1 56342 · 9726 = 91677 1 91672 · 9726 = 49586 1 49582 · 9726 = 77835 0 77832 = 62984 0 62982 = 46293 1 46292 · 9726 = 101852 1 101852 · 9726 = 1051 0 1052 = 110250 1 110252 · 9726 = 5761
Deci textul clar 9726 este criptat de Alice ın
5761.
11
Pentru aplicarea sistemului de criptare RSA,
trebuie generate ıntai numerele prime p, q.
Etapa a doua se efectueaza ın O((log2n)2).
Etapele 3 si 4 folosesc algoritmul lui Euclid
extins (calculul celui mai mare divizor comun
cmmdc(a, b) se poate realiza cu complexitatea
O((log2a)2)).
In general, un algoritm RSA este cam de 1000
ori mai lent decat DES pentru o implementare
harwdare, cam de 100 ori la o implementare
software.
12
Teste de primalitate probabiliste
Pasul 1 solicita generarea aleatoare de numere
prime cu numar mare de cifre.
Practic, se realizeaza aleator numere, a caror
primalitate se testeaza, pana se ajunge la un
numar prim.
Pentru teste se folosesc algoritmi probabilisti,
al caror avantaj este rapiditatea (complexitate
log n) dar care pot afirma uneori primalitatea
unor numere care nu sunt prime.
Aceste erori se pot reduce la o marja accep-
tabila prin multiplicarea testelor.
13
Problema generarii aleatoare este posibila din
urmatorul considerent.
Teorema rarefierii numerelor prime: sunt circa
n/log n numere prime mai mici decat n.
Astfel, pentru un modul de 512 biti, un numar
p de 256 biti are o probabilitate 1/logp ≈ 1/177
de a fi prim.
Deci se fac ın medie cam 177 generari de
numere p pentru a obtine un numar prim;
faptul ca se genereaza numai numere impare
reduce numarul de ıncercari la jumatate.
Rezulta ca este practic sa se construiasca nu-
mere mari, care sunt probabil prime, pe baza
carora sa se realizeze criptarea RSA.
14
Definitia 1. O problema de decizie este o
problema care pune o ıntrebare al carui raspuns
este dicotomic (Da/Nu).
Un algoritm probabilist este un algoritm
care foloseste numere aleatoare.
Definitia 2. Un algoritm Monte - Carlo pozi-
tiv este un algoritm probabilist care rezolva o
problema de decizie ın care orice raspuns
pozitiv este corect, dar pentru care un raspuns
negativ poate fi incorect.
In mod similar se defineste algoritmul Monte -
Carlo negativ.
Un algoritm Monte - Carlo pozitiv are o proba-
bilitate de eroare ε daca pentru orice problema
al carei raspuns ar trebui sa fie pozitiv, algorit-
mul da un raspuns negativ cu probabilitate cel
mult ε.
15
Problema de descompunere:
Fiind dat un numar ıntreg n, se poate el
descompune ın produs de alte numere
supraunitare ?
Vom prezenta doi algoritmi de tip Monte Carlo
pozitiv care rezolva aceasta problema de
decizie.
16
Algoritmul Solovay - Strassen
Definitia 3. Fie p ≥ 3 numar prim si a ∈ Z∗p.a este rest (reziduu) patratic modulo p daca
ecuatia x2 ≡ a (mod p) are solutie ın Zp.
In caz contrar, un numar a 6= 0 nu este rest
patratic.
Exemplul 3. Resturile patratice modulo 11
sunt 1,3,4,5,9.
Aceasta deoarece ın Z11 avem
(±1)2 = 1, (±5)2 = 3, (±2)2 = 4, (±4)2 = 5, (±3)2 = 9.
17
Problema resturilor patratice: a decide daca
un numar n dat este sau nu un rest patratic.
Un algoritm determinist pentru rezolvarea
acestei probleme se bazeaza pe
Teorema 1. (Criteriul lui Euler). Daca p ≥ 3
este prim, un numar a este rest patratic
modulo p daca si numai daca
ap−12 ≡ 1 (mod p)
Definitia 4.Daca p ≥ 3 este prim, pentru orice
numar a ≥ 0 se defineste simbolul Legendre
prin(a
p
)=
0 daca a ≡ 0 (mod p)1 daca a este rest patratic modulo p−1 daca a nu este rest patratic modulo p
18
Teorema 2. Daca p este numar prim impar,
atunci
(a
p
)≡ a
p−12 (mod p)
Generalizare simbolul lui Legendre:
Definitia 5. Fie n = pe11 . . . p
ekk un numar impar
descompus ın factori primi.
Daca a ≥ 0 este un numar ıntreg, se defineste
simbolul Jacobi prin
(a
n
)=
k∏i=1
(a
pi
)ei
19
Exemplul 4. Sa calculam simbolul Jacobi(6278
9975
)
9975 = 3 · 52 · 7 · 19.
(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
20
Fie n > 1 un numar impar.
Daca n este prim, atunci pentru orice a, avem(a
n
)≡ a
n−12 (mod n).
Invers, daca n nu este prim, este posibil ca
egalitatea de sus sa fie falsa.
Daca congruenta se verifica, spunem ca n este
numar Euler pseudo - prim pentru baza a.
De exemplu, 91 este pseudo-prim pentru baza
10 deoarece(10
91
)= −1 = 1045 (mod 91).
21
Testul de primalitate Solovay - Strassen pentru
un numar impar n:
1. Se genereaza aleator un numar a ∈ Z∗n;
2. x←−(
a
n
);
3. if x = 0 then ”n nu este prim”
4. y ←− an−12 (mod n);
5. if x ≡ y (mod n) then ”n este prim”,
else ”n nu este prim”.
22
Pentru evaluarea an−12 (mod n) se poate folosi
un algoritm de complexitate O((log n)3).
Pentru evaluarea simbolului Jacobi(
a
n
)(fara
factorizarea lui n) se folosesc lemele:
Lema 1. Fie n un ıntreg pozitiv impar. Atunci
1. Daca x ≡ y (mod n) atunci(
x
n
)=(
y
n
);
2.(2
n
)=
{1 daca n ≡ ±1 (mod 8)−1 daca n ≡ ±3 (mod 8)
3.(
x · yn
)=(
x
n
)·(
y
n
);
Lema 2. Fie m, n doua numere ıntregi pozitiveimpare. Atunci(
m
n
)=
−(
nm
)daca m ≡ n ≡ 3 (mod 4)(
nm
)altfel
23
Exemplul 5. Calculul(7411
9283
):
(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
Simbolul Jacobi(
mn
)se poate calcula folosind
cel mult O(log n) reduceri modulare, fiecare ın
timp O((log n)2).
24
Numarul de baze a pentru care un numar n
neprim este pseudo - prim Euler, este cel mult
n/2.
Deci testul de primalitate Solovay - Strassen
este un algoritm Monte Carlo pozitiv pentru
problema de descompunere, cu probabilitate de
eroare 1/2.
25
Algoritmul Miller - Rabin
Este cunoscut si sub numele de ”testul de tarepseudo - primalitate”.
1. Se descompune n− 1 = 2km, m impar;
2. Se alege aleator ıntregul a ∈ [2, n− 2];
3. b←− am (mod n)
4. if b ≡ 1 (mod n) then ”n prim”, Stop;
5. for i←− 0 to k − 1 doif b ≡ −1 (mod n) then ”n prim”, Stop;
else b←− b2 (mod n)
6 ”n neprim”, Stop
Algoritmul are complexitatea O((log n)3).
26
Teorema 3. Algoritmul Miller - Rabin este un
algoritm Monte Carlo pozitiv pentru problema
de descompunere.
27
In general testul Miller - Rabin este mai bun
decat Solovay - Strassen:
1. Solovay - Strassen este mai complex din
punct de vedere computational.
2. Implementarea lui Solovay - Strasen este
mai dificila din cauza calculului simbolului
Jacobi.
3. Probabilitatea de eroare pentru Solovay -
Strasen este 1/2; la Miller - Rabin ea se
reduce la 1/4.
4. Deoarece orice valoare a lui a pentru care
testul Miller - Rabin este gresit este un
numar Euler pseudo-prim, un test Miler -
Rabin nu este niciodata inferior unui test
Solovay - Strasen.
28
Orice implementare a unui sistem RSA trebuie
ınsotita de un generator de numere prime mari.
Varianta Bruce Schneier:
1. Genereaza un numar aleator p de n biti.
2. Verifica daca primul si ultimul bit sunt 1.
3. Verifica daca p nu este divizibil cu numere
prime mici (3,5,7,11, . . .).
4. Aplica testul Miller - Rabin cu o valoare
aleatoare a. Daca p trece testul, se ia alta
valoare pentru a.
Pentru viteza, se iau valori mici pentru a.
Cinci teste sunt suficiente. Daca p esueaza
la unul din ele, algoritmul se reia.
29
Securitatea sistemului RSA
RSA nu rezista la un atac de tipul man-in-the
middle.
De aceea, un sistem RSA este ınsotit perma-
nent de un certificat generat conform unui pro-
tocol PKI (Public Key Infrastructure) si –
bineınteles – de un generator de numere prime.
30
Informatii despre p si q
Cunoasterea lui φ(n) este suficienta pentru
spargerea sistemului.
In acest caz, totul se reduce la rezolvarea
(ın N ×N) sistemului
{pq = n
(p− 1)(q − 1) = φ(n)
sau - dupa substitutie - a ecuatiei
X2 − (n− φ(n) + 1)X + n = 0
Deci, daca Oscar determina φ(n), el poate fac-
toriza n si sparge sistemul.
Cu alte cuvinte, calculul lui φ(n) nu este mai
simplu decat factorizarea lui n.
31
Alta slabiciune consta ın alegerea unor numere
p, q prime apropiate unul de altul.
In acest caz (cu p > q), vom avea (p − q)/2
un numar foarte mic, iar (p + q)/2 un numar
foarte apropiat de√
n.
In plus,
(p + q)2
4− n =
(p− q)2
4,
deci membrul stang este patrat perfect.
Atunci, pentru factorizarea lui n se testeaza
toate numerele ıntregi x >√
n pana se gaseste
unul astfel ıncat x2 − n este patrat perfect;
fie acesta y2.
Atunci vom avea imediat p = x + y, q = x− y.
32
Exemplul 6. Pentru n = 97343 se gaseste√
n = 311,998.
Apoi 3122 − n = 1, ceea ce conduce la
factorizarea p = 313, q = 311.
Deci, ın general este recomandabil ca cele doua
numere prime p si q sa difere prin numarul de
biti.
33
Factorizarea modulului
stiind exponentul de decriptare
Daca exista un algoritm care calculeaza expo-
nentul de decriptare a, acesta poate fi utilizat
ca oracol ıntr-un algoritm probabilist care
descompune n.
Definitia 6. Fie ε (0 ≤ ε < 1). Un algoritm tip
Las Vegas este un algoritm probabilist care,
pentru orice aparitie a unei probleme, poate
oferi un raspuns - totdeauna corect - sau poate
esua si sa nu dea nici un raspuns, cu probabili-
tate ε.
Deci, daca avem un algoritm Las Vegas pentru
rezolvarea unei probleme, putem sa ıl apelam
de mai multe ori, pana se obtine un raspuns.
Probabilitatea ca el sa nu raspunda la m ten-
tative consecutive este εm.34
Fie A un algoritm (ipotetic) care calculeaza
exponentul de decriptare a plecand de la expo-
nentul de criptare b.
Se poate defini un algoritm Las Vegas care
utilizeaza A ca oracol.
El este bazat pe studiul radacinilor patrate ale
unitatii modulo n, cand n = pq, p si q fiind
numere prime impare.
35
In acest caz x2 ≡ 1 (mod p) are ca singure
solutii x ≡ ±1 (mod p).
La fel, x2 ≡ 1 (mod q).
Din Teorema chineza a resturilor rezulta ca
congruenta x2 ≡ 1 (mod n) este echivalenta
cu x2 ≡ 1 (mod p) si x2 ≡ 1 (mod q).
Deci sunt patru radacini patrate ale unitatii
modulo n.
Doua sunt solutiile triviale ±1 (mod n),
iar celelalte - numite netriviale - sunt opuse
modulo n.
Exemplul 7. Fie n = 403 = 13 · 31.
Cele patru radacini patrate ale lui 1 modulo
403 sunt 1,92,311 si 402.
36
Sa presupunem ca x este o radacina patratanetriviala a lui 1 modulo n, deci o solutie aecuatiei x2 ≡ 1 (mod n).Avem
n|(x− 1)(x + 1)
Rezultacmmdc(x + 1, n) = p, cmmdc(x− 1, n) = q.
Algoritm:
1. Se genereaza aleator w ∈ Z∗n, w 6= 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 = 2sr, r impar;6. v ←− wr (mod n);7. if v ≡ 1 (mod n) then Stop (esec);8. while v 6≡ 1 (mod n) do
8.1. v0 ←− v;8.2. v ←− v2 (mod n);
9. if v0 ≡ −1 (mod n) then Stop (esec);else x←− cmmdc(v0 + 1, n), Stop (p = x).
37
Exemplul 8. Fie
n = 89855713, b = 34986517, a = 82330933
si sa consideram ca s-a tras aleator w = 5.
ab− 1 = 23 · 360059073378795.
La pasul 6 se obtine v = 85877701,
iar la pasul 8.2, v = 1.
La pasul 9 se va obtine atunci
cmmdc(85877702, n) = 9103
Al doilea factor al lui n este n/9103 = 9871.
Lema 3. Procedeul descris este un algoritm.
Se poate arata ca acest algoritm se termina cu
succes cu probabilitate 1/2.
38
Atacul lui Wiener
Atac asupra sistemului de criptare RSA ın care
exponentul de decriptare a este mic.
Conditii de atac
3a < n1/4, q < p < 2q.
Din a · b ≡ 1 (mod φ(n)) rezulta ca exista un
ıntreg t astfel ca
a · b− t · φ(n) = 1.
Sau ∣∣∣∣∣ b
φ(n)−
t
a
∣∣∣∣∣ = 1
a · φ(n)
Folosind φ(n) = (p − 1)(q − 1) si n = pq > q2
se poate ajunge la evaluarea∣∣∣∣ bn − t
a
∣∣∣∣ <1
a · n1/4<
1
3 · a2.
39
Rezulta ca valoarea fractiei t/a este foarteapropiata de valoarea lui b/n.
Din teoria fractiilor continue se stie ca oriceaproximare suficient de buna a lui b/n este unadin convergentele dezvoltarii ın fractiecontinua a lui b/n.Definitia 7. O fractie continua (finita) este unm-tuplu [q1, q2, . . . , qm] de numere naturale carereprezinta notarea expresiei
q1 +1
q2 + 1q3+...+ 1
qm
Fie a, b doua numere ıntregi pozitive prime ıntreele si (q1, q2, . . . , qm) secventa caturilor obtinuteprin aplicarea algoritmului lui Euclid.
Atuncia
b= [q1, q2, . . . , qm].
[q1, q2, . . . , qm] este dezvoltarea ın fractie con-tinua a lui a/b.
40
Acum, pentru fiecare j (1 ≤ j ≤ m) definim
Cj = [q1, q2, . . . , qj] ca fiind a j-a convergenta
a lui [q1, q2, . . . , qm].
Fiecare Cj se poate scrie ca un numar rational
cj/dj, unde valorile cj si dj se definesc recursiv:
cj =
1 daca j = 0q1 daca j = 1qj · cj−1 + cj−2 daca j ≥ 2
dj =
0 daca j = 01 daca j = 1qj · dj−1 + dj−2 daca j ≥ 2
41
Exemplul 9. Sa dezvoltam ın fractie continua
34/99.
Folosind algoritmul lui Euclid se obtine
[0,2,1,10,3],
care este notarea fractiei
34
99= 0 +
1
2 + 11+ 1
10+13
Convergentele sunt:
[0] = 0[0,2] = 1/2
[0,2,1] = 1/3[0,2,1,10] = 11/32
[0,2,1,10,3] = 34/99
42
Teorema 4. Dacacmmdc(a, b) = cmmdc(c, d) = 1 si∣∣∣ab − c
d
∣∣∣ < 12·d2
atunci c/d este una din convergentele dezvolta-rii ın fractie continua a lui a/b.
In conditiile 3a < n1/4 si q < p < 2q, exista unalgoritm de factorizare a lui n:
1. Plecand de la n si b (publice), se afla dez-voltarea ın fractie continua a lui b/n (algo-ritmul lui Euclid).
2. Se parcurg pe rand convergentele acesteidezvoltari.Daca exista convergenta t/a care verifica
t|(a · b− 1), se calculeaza φ(n) =a · b− 1
t.
3. Cu n si φ(n) se afla p si q.
43
Detalierea algoritmului lui Wiener:
Intrare: [q1, q2, . . . , qm] - dezvoltarea ın fractie
continua a lui b/n.
Algoritm:
1 c0 ←− 1, c1 ←− q1, d0 ←− 0, d1 ←− 1;
2. for j ←− 1 to m do
2.1. if cj|(dj · b− 1) then
2.1.1. m←− (dj · b− 1)/cj;
2.1.2. Fie p, q radacinile x2 − (n−m + 1)x + n = 0
2.1.3. if p, q ∈ Zn then return(p, q);
2.2. j ←− j + 1;
2.3. cj ←− qj · cj−1 + ck−2, dj ←− qj · dj−1 + dj−2;
3. return(”esec”);
44
Exemplul 10. Fie
n = 160523347, b = 60728973.
Dezvoltarea ın fractie continua a lui b/n este
[0,2,1,1,1,4,12,102,1,1,2,3,2,2,36]
Primele convergente sunt: 0,1
2,1
3,2
5,3
8,14
37. . .
Primele cinci convergente nu verifica conditia
de divizibilitate.
Pentru 14/37 avem:
m =37 · 60728973− 1
14= 160498000
Din ecuatia x2 − 25348x + 160523347 = 0
se afla radacinile 12347 si 13001.
S-a gasit factorizarea
160523347 = 12347 · 13001
45
Informatie partiala despre textul clar
Este posibil sa existe informatie ın textul clar
care ar putea trada sistemul RSA.
Stiind y = eK(x), vom considera doua exemple
de informatie partiala data de y despre x:
1. par(y) - da valoarea ultimului bit din scrie-
rea binara a lui x;
2. jum(y) - va da 0 daca x ∈ [0, n/2),
1 daca x ∈ [n/2, n− 1].
46
Orice algoritm care poate calcula par(y) sau
jum(y) poate fi utilizat ca oracol pentru regasi-
rea textului clar x.
Altfel spus, a calcula una din aceste functii este
la fel de dificil cu a decripta tot textul y.
Cele doua functii sunt polinomial echivalente
deoarece
jum(y) = par(y · eK(2) mod n)
par(y) = jum(y · eK(2−1) mod n)
si eK(x1x2) = eK(x1)eK(x2).
47
Se poate calcula x = dK(y) cu ajutorul unui
oracol care da valoarea jum(y):
1. k ←− [log2n];
2. for i = 0 to k do
2.1. yi ←− jum(y)
2.2. y ←− (y · eK(2)) mod n
3. jos←− 0;
4. sus←− n;
5. for i = 0 to k do
5.1. mijloc←− (jos + sus)/2;
5.2. if yi = 1 then jos←− mijloc
else sus←− mijloc
6. x←− [sus]
Practic, x este localizat printr-o cautare
binara realizata de pasul 5.
48
Exemplul 11. Fie n = 1457, b = 779,si textul criptat y = 722.
Calculam eK(2) = 946.
Sa presupunem ca oracolul jum da urmatoareleraspunsuri (pasul 2.1):
i 0 1 2 3 4 5 6 7 8 9 10yi 1 0 1 0 1 1 1 1 1 0 0
Cautarea binara este realizata ın tabelul:i jos mijloc sus0 0,00 728,50 1457,001 728,50 1092,75 1457,002 728,50 910,62 1092,753 910,62 1001,69 1092,754 910,62 956,16 1001,695 956,16 978,92 1001,696 978,92 990,30 1001,697 990,30 996,00 1001,698 996,00 998,84 1001,699 998,84 1000,26 1001,69
10 998,84 999,55 1000,26998,84 999,55 999,55
Textul clar este deci x = [999,55] = 999.
49
Algoritmi de descompunere ın factori primi
Sunt extrem de numeroase lucrarile care tra-
teaza descompunerea ın factori primi.
Vom face doar o trecere ın revista a celor mai
cunoscuti algoritmi de factorizare.
Cel mai simplu pare a fi ciurul lui Eratostene
care consta ın ıncercarea de ımparti numarul
n impar prin toate numerele ıntregi impare din
intervalul [3,√
n].
Pentru n < 1012 tehnica este destul de efi-
cienta.
50
Metoda p− 1
Enuntata de Pollard ın 1974.
Sunt folosite trei variabile de intrare: numarul
n (impar) care trebuie descompus, o margine
B si un numar oarecare g ∈ [2, n− 1].
Intrare: n, B, g.
1. a←− g
2. for j = 2 to B do a←− aj mod n
3. d←− cmmdc(a− 1, n)
4. if d > 1 then ”d este factor al lui n”, Stop
else ”nu s-a gasit divizor al lui n”
51
Exemplul 12. Fie n = 15770708441.
Aplicand metoda p− 1 cu B = 180, se gaseste
a = 11620221425, iar d = 135979.
Se ajunge la descompunerea finala
15770708441 = 135979 · 115979.
Descompunerea a reusit deoarece 135978 are
numai factori primi ”mici”:
135978 = 2 · 3 · 131 · 173.
Luand deci B ≥ 173 se obtine 135978|B!.
52
Remarca 1. Conditia ca metoda sa functione-
ze este ca divizorii primi la puterile la care
apar ın descompunerea lui p − 1 sa fie mai
mici decat b.
Daca s-ar solicita ca doar divizorii primi sa
verifice aceasta conditie, rezultatul ar fi fals.
Astfel, sa consideram p = 17 si B = 3.
Atunci p− 1 = 24. Vom avea 2 < 3 dar 16 nu
este un divixor al lui 3 !!
Pentru valori relativ mici ale lui B algoritmul
este de complexitate (O(BlogB(log n)3)).
Metoda p − 1 nu este mai rapida decat ciurul
lui Eratostene.
Pentru a rezista la acest atac, se recomanda
folosirea numerelor prime tari.
53
Definitia 8. Se numeste numar prim tare un
numar prim p care verifica conditiile:
1. p− 1 are un divizor prim mare r;
2. p + 1 are un divizor prim mare;
3. r − 1 are un divizor prim mare.
54
Algoritmul lui Gordon de generare a numerelorprime tari:
1. Se genereaza aleator doua numere primemari s, t distincte.
2. Se alege un numar aleator i0.Se afla primul numar prim de forma2 · i · t + 1, unde i←− i0, i0 + 1, . . ..
Fie r = 2 · i · t + 1 acest numar prim.
3. p0 ←− 2 · (sr−2 (mod r)) · s− 1;
4. Se alege un numar aleator j0.Se afla primul numar prim de formap0 + 2 · j · r · s, unde j ←− j0, j0 + 1, . . ..Fie p = p0 + 2 · j · r · s acest numar prim.
5. return(p)
Numarul p generat de algoritmul Gordon esteun numar prim tare.
55
Generarea unui numar prim tare se realizeaza
ın trei pasi:
- Cu un generator de numere aleatoare, se
genereaza numerele s, t, i0, j0;
- Se testeaza daca s si t sunt numere prime,
folosind algoritmul Miller - Rabin;
- In caz afirmativ, se aplica algoritmul lui
Gordon, bazat de asemenea pe algoritmul
Miller - Rabin.
De multe ori, pentru criptarea RSA este
suficient sa se foloseasca numere prime mari
p cu proprietatea cap− 1
2este de asemenea
numar prim.
56
Exemplul 13. In practica este folosit frecvent
exponentul de criptare b = 3.
In acest caz ınsa, este necesar ca p− 1 si q− 1
sa nu fie divizibile cu 3.
Rezultatul este o criptare extrem de rapida,
deoarece se foloseste o singura ınmultire
modulara si o singura ridicare la patrat (tot
modulara).
De asemenea este utilizat des si exponentul de
criptare
b = 216 + 1 = 65537.
Acest numar are numai doi de 1 ın reprezen-
tarea binara, asa ca o criptare foloseste 16
ridicari la patrat modulare si o ınmultire mo-
dulara.
57
Algoritmul lui Dixon si sita patratica
Daca se pot afla doua numere x, y cu
x 6≡ y (mod n) dar x2 ≡ y2 (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 x2 mod n sunt ın B.
Se formeaza apoi produse cu aceste numere,
ın asa fel ıncat fiecare factor prim al patratului
produsului sa apara de un numar par de ori.
Aceasta conduce la o relatie x2 ≡ y2 (mod n)
care va da – eventual – o descompunere a lui
n.
58
Exemplul 14. Fie n = 15770708441 si alegemmultimea
B= {2,3,5,7,11,13}.
Selectam
83409341562 ≡ 3 · 7 (mod n)120449429442 ≡ 2 · 7 · 13 (mod n)27737000112 ≡ 2 · 3 · 13 (mod n)
Produsul lor este(8340934156 · 12044942944 · 2773700011)2 ≡≡ (2 · 3 · 7 · 13)2 (mod n).
Reducand continutul parantezelor modulo n,se obtine
95034357852 ≡ 5462 (mod n).
Atuncicmmdc(9503435785− 546,15770708441) = 115759
da 115759 drept divizor al lui n.
59
Fie B= {p1, p2, . . . , pB}.Consideram un numar C > B si presupunem ca
am gasit C relatii de forma
x2j ≡ p
α1j1 · pα2j
2 · . . . · pαBjB 1 ≤ j ≤ C
Pentru fiecare j se considera vectorul binar
αj = (α1j, . . . , αBj) ∈ ZB2 .
Daca se poate determina o submultime a
acestor vectori a caror suma modulo 2 sa fie
(0,0, . . . ,0), atunci patratul produsului elemen-
telor xj corespunzatoare va avea fiecare divizor
ın B de un numar par de ori.
60
Exemplul 15. Revenind la Exemplul anterior,
cei trei vectori care se construiesc sunt
α1 = (0,1,0,1,0,0),
α2 = (1,0,0,1,0,1),
α3 = (1,1,0,0,0,1).
Se verifica imediat ca
α1 + α2 + α3 ≡ (0,0,0,0,0,0) (mod 2)
61
Atac bazat pe proprietati multiplicative
ale criptarii RSA
Fie m1, m2 doua texte clare si c1 respectiv c2textele criptate corespunzatoare.
Vom avea
(m1m2)b ≡ mb
1mb2 ≡ c1c2 (mod n)
Atac cu text clar ales:
Oscar vrea sa decripteze c = mb (mod n),
mesaj trimis de Bob lui Alice.
El alege un numar aleator x ∈ Z∗n, calculeaza
c1 = c · xb (mod n) si solicita decriptarea lui.
Afla m1 = ca1 (mod n).
Deoarece
m1 ≡ ca1 ≡ ca(xb)a ≡ mx (mod n)
Oscar va afla imediat m = m1 · x−1 (mod n).
62
Atac bazat pe un exponent mic de criptare
In general, exponenti mici de criptare asigurao securitate redusa pentru mesajele mici m:daca m < n1/b atunci textul clar poate fi dedusdin textul criptat c = mb calculand radacina deordin b a lui c.
Alice trimite acelasi text clar m la trei desti-natari diferiti, care au modulele ni, dar acelasiexponent de criptare b = 3.
Textele criptate vor fici = m3 (mod ni) i = 1,2,3.
Oscar le intercepteaza si rezolva sistemul
x ≡ ci (mod ni), i = 1,2,3
folosind teorema chineza a resturilor.Fie x ∈ [0, n1 · n2 · n3) solutia sistemului.
Deoarece m3 < n1·n2·n3, va rezulta ca x = m3.
Acum Oscar afla m extragand radacina deordinul 3 din solutia x.
63
Folosirea unui modul comun de criptare decatre mai multi utilizatori permite de aseme-nea un atac.
Alice trimite acelasi mesaj m catre doi uti-lizatori care au cheile publice b1, b2 dar acelasimodul n.
Deci
c1 ≡ mb1 (mod n), c2 ≡ mb2 (mod n).
Vom presupune cmmdc(b1, b2) = 1.
Oscar foloseste algoritmul lui Euclid pentru adetermina numerele ıntregi r, s astfel ca
r · b1 + s · b2 = 1
Unul din numerele r sau s este negativ; sa pre-supunem ca este r).
Atunci Oscar obtine textul clar m folosind ega-litatea
(c−11 )−r · cs
2 ≡ m (mod n)
64
Sistemul de criptare Rabin
Sistemul (propus ın 1979) este o varianta a sis-
temului RSA, cu o securitate de calcul echiva-
lenta.
Fie n = pq cu p, q numere prime distincte si
p ≡ 3 (mod 4), q ≡ 3 (mod 4).
P = C= Zn,
K= {(n, p, q, B) | 0 ≤ B ≤ n− 1}.
Pentru cheia K = (n, p, q, B) se definesc:
eK(x) = x(x + B) (mod n)
dK(y) =
√B2
4+ y −
B
2
65
Exista patru texte clare distincte care se pot
cripta ın acelasi text.
Fie α una din cele patru radacini patrate mod
n ale unitatii, si x ∈ Zn.
Efectuam calculele (ın Zn):
eK
(α
(x +
B
2
)−
B
2
)= α2
(x +
B
2
)2
−(
B
2
)2
= x2 + Bx = eK(x)
(ımpartirea la 2 si 4 s-a facut prin ınmultirea
ın Zn cu 2−1 respectiv 4−1).
Cele patru texte clare care se cifreaza ın eK(x)
sunt
x, −x−B, α(x + B/2)−B/2,
− α(x + B/2)−B/2.
In general, Bob nu are nici un mijloc de a dis-
tinge care din cele patru mesaje este cel corect,
daca nu dispune de informatii suplimentare.
66
Bob primeste mesajul criptat y si ıncearca sa
sa determine x astfel ca x2 + Bx ≡ y (mod n).
Termenul de gradul 1 al acestei ecuatii se
elimina cu substitutia x1 = x + B/2.
Se ajunge la ecuatia
x21 ≡
B2
4+ y (mod n).
Notand membrul drept cu C, aceasta ecuatie
se scrie x21 ≡ C (mod n).
Deci decriptarea se reduce la extragerea
radacinilor patrate modulo n; operatie echiva-
lenta cu rezolvarea sistemului
x21 ≡ C (mod p) x2
1 ≡ C (mod q)
care, prin combinarea solutiilor fiecarei ecuatii
va da patru radacini patrate modulo n.
67
Daca p ≡ 3 (mod 4), exista o formula simpla
pentru extragerea radacinilor patrate dintr-un
rest patratic C modulo p.
Avem (calcule modulo p):(±C(p+1)/4
)2≡ C(p+1)/2 ≡ C(p−1)/2C ≡ C
Cele patru radacini patratice sumt
±C(p+1)/4 (mod p), ±C(q+1)/4 (mod q).
Pe baza teoremei chineze a resturilor, ele dau
cele patru radacini patrate ale lui C.
In final se afla x = x1 − B/2, rezultat care da
formula de decriptare pentru sistemul Rabin.
Remarca 2. Nu se cunoaste un algoritm poli-
nomial determinist pentru aflarea radacinilor
patratice mod p pentru p ≡ 1 (mod 4); ın acest
caz exista doar algoritmi Las Vegas.
68
Exemplul 16. Fie n = 77 = 7 · 11 si B = 9.
Functia de criptare esteeK(x) = x2 + 9x (mod 77)
iar cea de decriptaredK(y) =
√1 + y − 43 (mod 77).
Bob vrea sa decripteze textul y = 22.
El va trebui sa determine radacinile patrate alelui 23 modulo 7 si 11:
23(7+1)/4 ≡ 22 ≡ 4 (mod 7)
23(11+1)/4 ≡ 13 ≡ 1 (mod 11).
Folosind teorema chineza a resturilor, se obtinvalorile ±10, ±32.
Textele clare (calculate mod 77):10− 43 = 44, 67− 43 = 24,
32− 43 = 66, 45− 43 = 2.
Toate se cripteaza ın 22.
69
Securitatea sistemului de criptare Rabin.
Sa presupunem ca exista un algoritm de de-criptare A; acesta poate fi utilizat ıntr-un al-goritm Las Vegas care descompune modulul n
cu probabilitate 1/2:
1. Se alege aleator r ∈ Zn;2. y ←− r2 −B2/4 mod n;3. x←− A(y);4. x1 ←− x + B/2;5. if x1 ≡ ±r (mod n) then Stop (esec)
else cmmdc(x1 + r, n) = p, Stop
Deoarece y = eK
(r −
B
2
), x se decripteaza la pasul 3
sub forma r −B/2.
La pasul 5 avem x21 ≡ r2 (mod n); deci x1 ≡ ±r (mod n)
sau x1 ≡ ±αr (mod n), unde α este o radacina netrivialamodulo n a unitatii.
In al doilea caz, n|(x1−r)(x1+r) si n nu divide nici unuldin cei doi factori.
Deci, calculul lui cmmdc(x1 + r, n) sau cmmdc(x1 − r, n)
va da p sau q, adica o descompunere a lui n.
70
Sistemul de criptare El Gamal
1
Descrierea algoritmului
Sistemul de criptare El Gamal decris ın 1985 de
Taher ElGamal, se bazeaza pe problema loga-
ritmului discret (PLD), care este urmatoarea:
Fie p numar prim si α, β ∈ Zp, β 6= 0.
Sa se determine a ∈ Zp−1 astfel ca
αa ≡ β (mod p).
Acest ıntreg a – daca exista – este unic
si se noteaza logαβ.
2
Exemplul 1. Fie p = 11 si α = 6.
Toate elementele din Z∗11 pot fi exprimate ca
puteri ale lui α:
a 0 1 2 3 4 5 6 7 8 96a (mod 11) 1 6 3 7 9 10 5 8 4 2
Rezulta imediat tabelul logaritmilor ın baza 6:
β 1 2 3 4 5 6 7 8 9 10log6β 0 9 2 8 6 1 3 7 4 5
Pentru α = 3 ınsa nu vom avea totdeauna
solutie.
Deoarece
a 0 1 2 3 4 5 6 7 8 93a (mod 11) 1 3 9 5 4 1 3 9 5 4
valorile β ∈ {2,6,7,8,10} nu pot fi exprimate
ca logaritmi ın baza 3.
Altfel spus, ecuatia log3x = β nu are solutie ın
Z11 pentru aceste valori ale lui β.
3
Daca se face o alegere convenabila a lui p, PLD
este NP - completa.
Pentru siguranta, p se alege de minim 512 biti,
iar p− 1 are cel putin un divizor prim ”mare”.
Pentru un astfel de modul p, spunem ca
problema logaritmului discret este dificila ın Zp.
Desi este foarte dificil de calculat un logaritm
discret, operatia inversa – de exponentiere –
este foarte simpla.
4
Sistemul de criptare El Gamal:
Fie p numar prim pentru care PLD este dificila
ın Zp, si fie α ∈ Z∗p primitiv.
Definim P= Z∗p , C= Z∗p × Z∗p si
K= {(p, α, a, β) | β ≡ αa (mod p)}.
Valorile p, α, β sunt publice, iar a este secret.
Pentru K = (p, α, a, β) si k ∈ Zp−1 aleator
(secret) se defineste
eK(x, k) = (y1, y2)
unde y1 = αk (mod p), y2 = x · βk (mod p).
Pentru y1, y2 ∈ Z∗p se defineste
dK(y1, y2) = y2 · (ya1)−1 (mod p)
5
Verificarea:
y2 · (ya1)−1 ≡ x · βk · (αka)−1 ≡ x · βk(βk)−1 ≡ x (mod p)
Sistemul este nedeterminist: criptarea depinde
de x si de o valoare aleatoare aleasa de Alice.
Exista deci mai multe texte criptate corespun-
zatoare unui anumit text clar.
6
Exemplul 2. Fie p = 2579, α = 2, a = 765.
Prin calcul se obtine
β = 2765 (mod 2579) = 949.
Sa presupunem ca Alice vrea sa trimita mesajul
x = 1299.
Ea alege aleator k = 853 si calculeaza
y1 = 2853 = 435, apoi
y2 = 1299 · 949853 = 2396
(toate calculele se fac modulo 2579).
Cand Bob primeste mesajul criptat
y = (435,2396),
el va determina
x = 2396 · (435765)−1 = 1299 (mod 2579).
7
Remarca 1.
1. Dezavantaj al sistemului El Gamal:se dubleaza lungimea textului criptat (compa-rativ cu lungimea textului clar).
2. Daca (y1, y2), (z1, z2) sunt textele criptateale mesajelor m1, m2 atunci (y1z1, y2z2) este untext criptat pentru m1m2.Similar poate fi dedusa o criptare pentru 2m1(sau 2m2).Acest lucru face sistemul El Gamal permeabilla un atac cu text clar ales.
3. Pentru criptarea a doua texte diferite tre-buie folosite valori diferite ale parametrului k.
Sa presupunem ca textele m1, m2 au fost crip-tate ın (y1, y2) respectiv (z1, z2) folosind acelasik.
Atunci y2/z2 = m1/m2 si cunoasterea unuia dinmesaje ın determina imediat pe celalalt.
8
Calculul logaritmului discret
Fie p numar prim si α o radacina primitiva deordinul p− 1 a unitatii.
PLD se poate reformula astfel:
Fiind dat un β ∈ Z∗p, sa se determine expo-
nentul a ∈ Zp−1 astfel ca αa ≡ β (mod p).
Problema se poate rezolva printr-o cautare di-recta (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), afla-rea valorii cautate se poate face ın O(1), darcu un spatiu de complexitate O(p).
Toti algoritmii construiti pentru calculul loga-ritmului discret stabilesc un compromis spatiu- timp.
9
Algoritmul Shanks
Fie m =⌈√
p− 1⌉.
1. Se construieste lista
L1 = {(j, αmj (mod p)) | 0 ≤ j ≤ m− 1};
2. Se construieste lista
L2 = {(i, βα−i (mod p)) | 0 ≤ i ≤ m− 1};
3. Se determina perechile
(j, y) ∈ L1, (i, y) ∈ L2.
4. Se defineste
logαβ = m · j + i (mod (p− 1))
10
Prin alegerea perechilor (j, y) ∈ L1, (i, y) ∈ L2
vom avea
αmj = y = βα−i, deci αmj+i = β.
Invers, pentru orice β putem scrie
logαβ = m · j + i
cu 0 ≤ i, j ≤ m− 1.
Deci cautarea de la pasul 3 se termina tot-
deauna cu succes.
Implementarea algoritmului Shanks se poate
face ın timp O(m) si spatiu O(m).
11
Exemplul 3. Daca p = 809, sa aflam log3525.
Avem deciα = 3, β = 525, m = d
√808e = 29,
iar α29 mod 809 = 99.
Lista L1 a perechilor (j,99j (mod 809)):(0,1) (1,99) (2,93) (3,308) (4,559)
(5,329) (6,211) (7,664) (8,207) (9,268)(10,644) (11,654) (12,26) (13,147) (14,800)(15,727) (16,781) (17,464) (18,632) (19,275)(20,528) (21,496) (22,564) (23,15) (24,676)(25,586) (26,575) (27,295) (28,81)
Lista L2 a cuplurilor (i,525 ·(3i)−1 (mod 809)):(0,525) (1,175) (2,328) (3,379) (4,396)(5,132) (6,44) (7,554) (8,724) (9,511)(10,440) (11,686) (12,768) (13,256) (14,355)(15,388) (16,399) (17,133) (18,314) (19,644)(20,754) (21,521) (22,713) (23,777) (24,259)(25,356) (26,658) (27,489) (28,163)
Parcurgand cele doua liste se gaseste(10,644) ∈ L1, (19,644) ∈ L2.
Deci log3525 = 29 · 10 + 19 = 309.
Se verifica usor ca 3309 ≡ 525 (mod 809).
12
Algoritmul Pohlig - Hellman
Un rezultat complementar (matematic):
Lema 1. Fie x ∈ Zp un element primitiv.
Atunci
xm ≡ xn (mod p)⇐⇒ m ≡ n (mod (p− 1))
Pentru sistemul de criptare El Gamal:
fie descompunerea ın factori primi
p− 1 =k∏
i=1
qcii .
Daca s-ar putea calcula a (mod qcii ) pentru toti
i = 1, . . . , k, atunci – folosind Teorema chineza
a resturilor – s-ar putea determina
a mod (p− 1).
13
Fie q numar prim astfel ca p − 1 ≡ 0 (mod qc)
si p− 1 6≡ 0 (mod qc+1).
Sa aratam cum se poate calcula atunci
x ≡ a (mod qc) pentru orice x, (0 ≤ x ≤ qc− 1).
Sa descompunem ıntai x ın baza q folosind
egalitatea
x =c−1∑i=0
aiqi (0 ≤ ai ≤ q − 1, 0 ≤ i ≤ c− 1)
Atunci, se poate scrie a = x + qc · s pentru un
anumit numar ıntreg pozitiv s.
14
La primul pas trebuie calculat a0.
Observatie:
β(p−1)/q ≡ α(p−1)a0/q (mod p).
Se determina β(p−1)/q (mod p).
Daca β(p−1)/q ≡ 1 (mod p), atunci a0 = 0.
Altfel se calculeaza ın Zp γ = α(p−1)/q, γ2, . . .
pana se obtine un numar ıntreg pozitiv i pentru
care γi ≡ β(p−1)/q.
Atunci a0 = i.
Daca c = 1, algoritmul se termina;
altfel (c > 1), se cauta valoarea lui a1.
15
Pentru aceasta se defineste
β1 = βα−a0
si se noteaza x1 = logαβ1 (mod qc).
Deoarece (evident) x1 =c−1∑i=1
aiqi, se va ajunge
la relatia β(p−1)/q2
1 ≡ α(p−1)a1/q (mod p).
Se calculeaza atunci β(p−1)/q2
1 (mod p) si se
cauta i astfel ca
γi ≡ β(p−1)/q2
1 (mod p).
Se ia a1 = i.
Daca c = 2, s-a terminat; ın caz contrar, se
mai efectueaza c− 2 pasi pentru determinarea
coeficientilor a2, . . . , ac−1.
16
Formal, algoritmul Pohlig - Hellman este:
1. Se calculeaza
γi = α(p−1)i/q (mod p), 0 ≤ i ≤ q − 1;
2. β0 ←− β;
3. for j = 0 to c− 1 do
3.1 δ ←− β(p−1)/qj+1
j (mod p);
3.2. Se cauta i astfel ca δ = γi;
3.3. aj ←− i;
3.4. βj+1 ←− βjα−ajq
jmod p.
Algoritmul calculeaza a0, a1, . . . , ac−1
unde logαβ (mod qc) =c−1∑i=0
aiqi.
17
Exemplul 4. Fie p = 29.
Avem n = p− 1 = 28 = 2271.
Alegem α = 2, β = 18 si vrem sa determinam
a = log2 18.
Pentru aceasta se va calcula
a (mod 4) si a (mod 7).
Sa ıncepem cu q = 2, c = 2.
Avem (calcule modulo 29):
γ0 = 1, γ1 = α28/2 = 214 = 28, deci
δ = β28/2 = 1814 = 28; rezulta a0 = 1.
β1 = β0 · α−1 = 9, β28/41 = 97 = 28.
Cum γ1 = 28, rezulta a1 = 1.
Avem deci a ≡ 3 (mod 4).
18
Fie acum q = 7, c = 1.
Vom avea (modulo 29):
β28/7 = 184 = 25, γ1 = α28/7 = 24 = 16,
apoi γ2 = 24, γ3 = 7, γ4 = 25,
deci a0 = 4 si a ≡ 4 (mod 7).
Se obtine sistemul
a ≡ 3 (mod 4), a ≡ 4 (mod 7)
de unde – folosind teorema chineza a resturilor
– a ≡ 11 (mod 28).
Deci, log218 = 11 ın Z29.
19
Algoritmul Pollard Rho
Fie p prim si α ∈ Zp un element de ordin n
(n < p).
Consideram Gα ⊆ Zp subgrupul ciclic generat
de α.
Ne punem problema calcularii lui logαβ, unde
β ∈ Gα este arbitrar.
Fie Zp = S1 ∪ S2 ∪ S3 o partitie a lui Zp ın trei
multimi de cardinale aproximativ egale;
definim functia
f : Gα × Zn × Zn −→ Gα × Zn × Zn
prin
f(x, a, b) =
(βx, a, b + 1) daca x ∈ S1(x2,2a,2b) daca x ∈ S2(αx, a + 1, b) daca x ∈ S3
20
Pe baza acestei functii generam recursivtriplete (x, a, b) cu proprietatea x = αaβb.
Fie (1,0,0) tripletul initial.
(xi, ai, bi) =
{(1,0,0) daca i = 0f(xi−1, ai−1, bi−1) daca i ≥ 1
In faza a doua, se compara (x2i, a2i, b2i) si(xi, ai, bi) pana se gaseste un i cu x2i = xi.In acel moment,
αa2iβb2i = αaiβbi.
Notand c = logαβ, relatia poate fi rescrisa
αa2i+cb2i = αai+cbi.
Cum α are ordinul n, rezulta
a2i + cb2i ≡ ai + cbi (mod n)
sau
c(b2i − bi) ≡ ai − a2i (mod n).
Daca cmmdc(b2i − bi, n) = 1, atunci se poateobtine c:
c = (ai − a2i) · (b2i − bi)−1 (mod n)
21
Exemplul 5. Fie p = 809 si α = 89; ordinul luiα ın Z∗809 este n = 101.
Evident β = 618 ∈ G89. Vom calcula log89618.
Sa presupunem ca alegem partitiaS1 = {x | x ∈ Z809, x ≡ 1 (mod 3)}S2 = {x | x ∈ Z809, x ≡ 0 (mod 3)}S3 = {x | x ∈ Z809, x ≡ 2 (mod 3)}
Pentru i ≥ 1 se obtin tripletele:i (xi, ai, bi) (x2i, a2i, b2i)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 x10 = x20 = 422.
Se poate calcula atunci (ın Z∗809):
log89618 = (11−5) · (11−15)−1 (mod 101) = 6 ·25 (mod 101) = 49
22
Algoritm Pollard Rho(Zp, n, α, β)
1 Se defineste partitia Zp = S1 ∪ S2 ∪ S3;
2. (x, a, b)←− f(1,0,0),
(x1, a1, b1)←− f(x, a, b)
3. while x 6= x1 do
3.1. (x, a, b)←− f(x, a, b);
3.2. (x1, a1, b1)←− f(x1, a1, b1),
(x1, a1, b1)←− f(x1, a1, b1);
4. if cmmdc(b1−b, n) > 1 then return(Esec)
else return((a−a1)·(b1−b)−1 (mod n))
procedure f(x, a, b)
1. if x ∈ S1 then f ←− (β · x, a, b + 1);
2. if x ∈ S2 then f ←− (x · x, 2 · a, 2 · b));3. if x ∈ S3 then f ←− (α · x, a + 1, b);
4. return(f).
end procedure
(toate calculele se fac modulo n).
23
Metoda de calcul a indicelui
Seamana cu unul din cei mai buni algoritmi de
descompunere ın factori.
Se foloseste o baza de divizori B compusa din
B numere prime ”mici”.
I: Se construiesc C = B + 10 congruente mo-
dulo p de forma
αxj ≡ paij1 p
a2j2 . . . p
aBjB (mod p), (1 ≤ j ≤ C).
Cu aceste C ecuatii de necunoscute logαpi
(1 ≤ i ≤ B) se ıncearca aflarea unei solutii
unice modulo (p− 1).
In caz de reusita, primul pas este ıncheiat.
O metoda de aflare a celor C congruente: se
ia un x aleator, se determina αx (mod p) si se
verifica daca acesta are toti divizorii ın B.24
II: Se determina logαβ cu un algoritm de tip
Las Vegas.
Se alege aleator un numar ıntreg s ∈ Z∗p−1 si se
determina γ = βαs (mod p).
Se ıncearca apoi descompunerea lui γ ın baza
B.
Daca acest lucru este posibil, se obtine o relatie
de forma
βαs ≡ pc11 p
c22 . . . p
cBB (mod p)
care poate fi transformata ın
logαβ+s ≡ c1logαp1+. . .+cBlogαpB (mod (p−1)).
Prin evaluarea membrului drept se poate de-
termina logαβ.
25
Exemplul 6.Fie p = 10007 si α = 5 (primitiv).
Consideram baza de divizori B= {2,3,5,7}.
Cum log55 = 1, trebuie determinati doar trei
logaritmi din baza.
Trei numere aleatoare ”norocoase” pot fi
4063, 5136, 9865.
Pentru x = 4063 calculam
54063 (mod 10007) = 42 = 2 · 3 · 7,
care conduce la congruenta
log52 + log53 + log57 ≡ 4063 (mod 10006).
In mod similar se obtin
55136 (mod 10007) = 54 = 2 · 33,
59865 (mod 10007) = 189 = 33 · 7.
26
Ele dau relatiile
log52 + 3log53 ≡ 5136 (mod 10006),
3log53 + log57 ≡ 9865 (mod 10006).
Rezolvarea acestui sistem de trei ecuatii ın
Z10006 conduce la solutia unica
log52 = 6578, log53 = 6190, log57 = 1301.
Sa presupunem ca se cauta log59451.
Daca se genereaza aleator numarul s = 7736,
avem
9451 · 57736 (mod 10007) = 8400 = 24315271.
Acesta se poate factoriza ın B. Deci
log59451 = 4log52+ log53+2log55+ log57−s =
4 · 6578 + 6190 + 2 · 1 + 1301 − 7736 = 6057
(calcule modulo 10006).
Verificare: 56057 ≡ 9451 (mod 10007).
27
Securitatea PLD fata de informatii partiale
Un tip de atac care ıncearca sa determine va-loarea cel putin a unui bit din reprezentareabinara a logaritmilor discreti.
Se ıncearca aflarea lui Li(β): al i-lea bit (ınce-pand cu cel mai putin reprezentativ) din scrie-rea ın binar a lui logαβ peste Z∗p.Evident 1 ≤ i ≤ dlog2(p− 1)e.Lema 2. L1(β) poate fi calculat printr-un al-goritm de complexitate polinomiala.
Fie functia f : Z∗p ←− Z∗p definita
f(x) = x2 (mod p).
Notam RP (p) multimea resturilor patraticemodulo p:
RP (p) = {x | ∃y ∈ Z∗p , x ≡ y2 (mod p)}.
Avem card(RP (p)) = (p − 1)/2 (jumatate dinelementele lui Z∗p sunt resturi patratice).
28
Fie α ∈ Zp primitiv. Deci αi ∈ RP (p) pentru i
par.
Cum (p − 1)/2 astfel de puteri sunt distincte,
rezulta
RP (p) ={α2i
∣∣∣∣ 0 ≤ i ≤p− 3
2
}.
Deci β este rest patratic daca si numai daca
logαβ este par, adica L1(β) = 0.
β este rest patratic daca si numai daca
βp−12 ≡ 1 (mod p)
fapt care poate fi testat cu un algoritm de com-
plexitate polinomiala.
Deci se poate da o formula pentru calculul lui
L1(β):
L1(β) =
{0 daca β(p−1)/2 ≡ 1 (mod p)1 altfel
29
Lema 3. Daca p− 1 = 2s(2t + 1), atunci
1. Calculul lui Li(β) pentru 1 ≤ i ≤ s este usor.
2. Orice algoritm (sau oracol) care poate cal-
cula Ls+1(β) permite rezolvarea problemei
logaritmului discret ın Zp.
Lema 4. Daca p ≡ 3 (mod 4) si β 6= 0, atunci
L1(p− β) = 1− L1(β).
Fie acum β = αa pentru un exponent par a,
necunoscut.
Atunci
±β(p+1)/4 ≡ αa/2 (mod p)
Cum L2(β) = L1(αa/2), valoarea L2(β) poate
determina care din cele doua variante (cu +
sau −) este corecta.
30
Acest lucru este folosit de urmatorul algoritm
care da valoarea logaritmului discret logαβ
(s-a presupus ca valoarea L2(β) se poate afla,
folosind de exemplu un oracol):
Algoritm aflare bit(p, α, β)
1. x0 ←− L1(β);
2. β ←− β/αx0 (mod p)
3. i←− 1;
4. while β 6= 1 do
4.1. xi ←− L2(β);
4.2. γ ←− β(p+1)/4 (mod p);
4.3. if L1(γ) = xi then β ←− γ
else β ←− p− γ;
4.4. β ←− β/αxi (mod p);
4.5. i←− i + 1;
5. return(xi−1, xi−2, . . . , x0).
In final, se obtine
logαβ =∑j≥0
xj · 2j.
31
Exemplul 7. Fie p = 19, α = 2, β = 6.
Deoarece numerele sunt foarte mici, se pot de-termina usor valorile pentru L1 si L2:
x L1(x) L2(x) x L1(x) L2(x) x L1(x) L2(x)1 0 0 7 0 1 13 1 02 1 0 8 1 1 14 1 13 1 0 9 0 0 15 1 14 0 1 10 1 0 16 0 05 0 0 11 0 0 17 0 16 0 1 12 1 1 18 1 0
Pe baza acestor informatii se obtine:
x0 ←− 0, β ←− 6, i←− 1;
x1 ←− L2(6) = 1, γ ←− 5,L1(5) = 0 6= x1, β ←− 14, β ←− 7, i←− 2;
x2 ←− L2(7) = 1, γ ←− 11,L1(11) = 0 6= x2, β ←− 8, β ←− 4, i←− 3;
x3 ←− L2(4) = 1, γ ←− 17,L1(17) = 0 6= x3, β ←− 2, β ←− 1, i←− 4.
return(1,1,1,0).
Deci log26 = 11102 = 14.
32
Generalizarea sistemului de criptare
El Gamal
Sistemul El Gamal se poate construi pentru
orice grup (ın loc de Z∗n) ın care problema loga-
ritmului (definita corespunzator) este dificila.
Fie (G, ◦) un grup finit. Problema logaritmului
discret se defineste ın G astfel:
Fie α ∈ G si H = {αi | i ≥ 0} subgrupul gene-
rat de α.
Daca β ∈ H, sa se determine un a (unic)
(0 ≤ a ≤ card(H)− 1) cu αa = β, unde
αa = α ◦ α ◦ . . . ◦ α︸ ︷︷ ︸a ori
33
Definirea sistemului de criptare El Gamal ın
subgrupul H ın loc de Z∗n:
Fie (G, ◦) un grup si α ∈ G pentru care PLD ın
H = {αi | i ≥ 0} este dificila.
Fie P= G, C= G×G, K= {(G, α, a, β) | β = αa}.
Valorile α, β sunt publice iar a este secret.
Pentru K = (G, α, a, β) si un k ∈ Zcard(H) alea-
tor (secret), se defineste
eK(x, k) = (y1, y2) unde y1 = αk, y2 = x ◦ βk.
Pentru y = (y1, y2), decriptarea este
dK(y) = y2 ◦ (ya1)−1.
34
Deoarece H este subgrup ciclic, orice versiunea problemei este echivalenta cu PLD ıntr-ungrup ciclic.
In schimb, se pare ca dificultatea problemei de-pinde mult de reprezentarea grupului utilizat.
De exemplu ın grupul aditiv Zn, problemaeste simpla; aici exponentierea αa este de faptınmultirea cu a modulo n.
Deci, PLD consta ın aflarea unui numar ıntrega astfel ca
aα ≡ β (mod n).
Daca se alege α astfel ca cmmdc(α, n) = 1 (αeste generator al grupului), α are un inversmultiplicativ modulo n, care se determina cualgoritmul lui Euclid extins.
Atunci,
a = logαβ = βα−1 (mod n)
35
Reprezintarea PLD ın grupul multiplicativ Z∗pcu p prim.
Acesta este ciclic de ordin p − 1; deci izomorfcu grupul aditiv Zp−1.
Deoarece PLD se poate rezolva usor ıntr-ungrup aditiv, putem rezolva aceasta problemaın Z∗p reducand-o la Zp−1 ?
Stim ca exista un izomorfism φ : Z∗p −→ Zp−1,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, determinarea lui a se realizeaza cu
logαβ = φ(β)(φ(α))−1 (mod (p− 1))
36
Deci, daca se gaseste o metoda eficace pentru
calculul izomorfismului φ, se obtine un algoritm
eficace pentru calculul logaritmului discret ın
Z∗p.
Nu se cunoaste ınsa nici o metoda generala
de constructie a lui φ pentru un numar prim p
oarecare.
Desi se stie ca cele doua grupuri sunt izomorfe,
nu exista ınca un algoritm eficient pentru cons-
tructia explicita a unui izomorfism.
Aceasta metoda se poate aplica problemei
logaritmului discret ıntr-un grup finit arbitrar.
Implementarile au fost realizate ın general
pentru Zp, GF (2p) (unde PLD este dificila) sau
curbe eliptice.
37
Sisteme de criptarebazate pe curbe eliptice
1
In 1985, Victor Miller si Neal Koblitz propun– independent unul de altul – o criptografie ıncare baza de calcul sa fie multimea punctelorunei curbe eliptice.
• Asigura o eficienta sporita timp/spatiu aalgoritmilor.
”Criptografia pe curbe eliptice asigura osecuritate sporita, precum si performantesuperioare tehnicilor de criptare cu cheiepublica cunoscute pana acum.” (NSA)
Estimare NIST a marimii cheilor (ın biti)la un nivel echivalent de securitate:Sistem simetric RSA Sistem pe curbe eliptice
80 1024 160112 2048 224128 3072 256192 7680 384256 15360 521
• Ofera variante de implementare superioarepentru noi aparate matematice de calcul(exemplu: aplicatii biliniare).
2
Aritmetica curbelor eliptice
Definitia 1. O curba eliptica E peste un corp
K este definita de ecuatia
(E) : y2+a1xy+a3y = x3+a2x2+a4x+a6(1)
a1, a2, a3, a4, a6 ∈ K si ∆ 6= 0, unde ∆ este
discriminantul lui E, definit prin
∆ = −d22d8 − 8d3
4 − 27d26 + 9d2d4d6, (2)
iar
d2 = a2
1 + 4a2,d4 = 2a4 + a1a3,
d6 = a23 + 4a6,
d8 = a21a6 + 4a2a6 − a1a3a4 + a2a2
3 − a4.
3
Fie L o extensie a lui K; multimea punctelorcurbei E pe L este
E(L) = {(x, y) ∈ L×L | y2+a1xy+a3y−x3+a2x2+a4x+a6 = 0}∪{O}
unde O este ”punctul de la infinit”.
Elementele lui E(L) se numesc punctele L -
rationale ale curbei E.
In general se lucreaza cu un corp K = Zp, unde
p este un numar prim.
Prin extensie, vom numi curba eliptica peste Zp
multimea (x, y) ∈ Zp × Zp a solutiilor ecuatiei
y2+a1xy+a3y ≡ x3+a2x2+a4x+a6 (mod p)
si dintr-un punct la infinit O.
4
1. p = 2. Doua subcazuri:
(a) Daca a1 6= 0, atunci curba E poate fi
adusa la forma
y2 + xy = x3 + ax + b (3)
unde a, b ∈ K.
Se numeste non-supersingulara,
cu ∆ = b.
(b) Daca a1 = 0, atunci ecuatia poate fi
adusa la forma
y2 + cy = x3 + ax + b (4)
unde a, b, c ∈ K.
Se numeste supersingulara,
cu ∆ = c4.
5
2 p = 3. Doua subcazuri:
(a) Daca a21 6= −a2, atunci curba E poate fi
adusa la forma
y2 = x3 + ax2 + b (5)
cu a, b ∈ K. Este non-supersingulara,cu ∆ = −a3b.
(b) Daca a21 = −a2, atunci E se aduce la
forma
y2 = x3 + ax + b (6)
cu a, b ∈ K. Curba este supersingulara,cu ∆ = −a3.
3 Pentru p > 3, curba eliptica E poate fiadusa la forma
y2 = x3 + ax + b (7)
unde a, b ∈ K. Descriminantul este∆ = −16(4a3 + 27b2).
6
Vom lucra cu definitia (7) a unei curbe eliptice
(corpuri de caracteristica p > 3).
O astfel de curba eliptica E se poate structura
ca un grup abelian finit.
Legea de compozitie (notata aditiv):
Fie P, Q ∈ E(L), P = (x1, y1), Q = (x2, y2).
Daca x2 = x1, y2 = −y1, atunci P + Q = O;
altfel, P + Q = (x3, y3) unde
x3 = λ2 − x1 − x2, y3 = λ(x1 − x3)− y1,
iar
λ =
y2−y1x2−x1
daca P 6= Q
3x21+a
2y1daca P = Q
Se mai defineste P +O= O+P = P, ∀P ∈ E.
Elementul neutru este O.7
Reprezentare geometrica:
Fie P = (x1, y1) si Q = (x2, y2) doua puncte
distincte pe curba eliptica E.
Suma R = P + Q se defineste: linia PQ taie
curba ıntr-un al treilea punct.
R este simetricul acestui punct fata de axa xx′
(figura (a)).
P=(x1,y1)
Q=(x2,y2)
R=(x3,y3)
P=(x1,y1)
R=(x3,y3)
x
y y
x
(a) Adunarea P + Q = R(b) Dublarea: P + P = R
8
Exemplul 1. Fie E : y2 = x3 + x + 5 peste
Z19.
Calculam punctele lui E:
∀x ∈ Z11 se calculeaza z = x3+x+5 (mod 19);
apoi se testeaza daca z este rest patratic.
In caz afirmativ, deoarece 19 ≡ 3 (mod 4),
radacinile patrate ale lui z sunt
± z(19+1)/4 (mod 19) = ±z5 (mod 19).
a 0 1 2 3 4 5 6 7 8 9a2 0 1 4 9 16 6 17 11 7 5
x x3 + x + 5 y x x3 + x + 5 y x x3 + x + 5 y0 5 9,10 1 7 8,11 2 15 −3 16 4,15 4 16 4,15 5 2 −6 18 − 7 13 − 8 12 −9 2 − 10 8 − 11 17 6,13
12 16 4,15 13 11 7,12 14 8 −15 13 − 16 13 − 17 14 −18 3 −
(toate calculele se realizeaza modulo 19).
9
E admite deci 15 puncte; cum ordinul grupuluinu este numar prim, grupul nu este ciclic.
Alegem ca generator α = (0,9) (primitiv)
Calculam ”puterile” lui α (de fapt multiplii,grupul fiind aditiv).
Pentru 2α se calculeaza ıntai (modulo 19):
λ = (3 · 02 + 1)(2 · 9)−1 = 1 · 18−1 = 18.
Acum se pot determinax3 = 182 − 0− 0 = 361 ≡ 1 (mod 19),y3 = 18 · (0− 1)− 9 = −27 ≡ 11 (mod 19),
deci 2α = (1,11).α = (0,9) 2α = (1,11) 3α = (3,4)4α = (4,4) 5α = (13,12) 6α = (11,6)7α = (12,15) 8α = (12,4) 9α = (11,13)10α = (13,7) 11α = (4,15) 12α = (3,15)13α = (1,8) 14α = (0,10) 15α = O
De remarcat ca – de exemplu – (3,4) nu esteelement primitiv, avand ordinul 5.
10
O curba eliptica definita pe Zp (p > 3 prim) are
aproximativ p puncte.
Teorema lui Hasse:
p + 1− 2√
p ≤ card(E(Zp)) ≤ p + 1 + 2√
p
Valoarea t = 2√
p se numeste urma lui E peste
Zq, iar intervalul [p+1− t, p+1+ t] este numit
interval Hasse.
Calculul efectiv al lui card(E(Zp)) este destul
de dificil. Practic, nu se cunoaste o formula
care sa dea valoarea card(E(Zp)); conjectura
Birch and Swinnerton-Dyer (una din cele sapte
probleme ale mileniului) trateaza acest subiect.
Exista un algoritm al lui Schoof de numarare
a punctelor unei curbe eliptice, de complexi-
tate O(log6p) (O(log9p) ın versiunea originala)
ınmultiri si inversiuni, si O(log3p) memorie.
11
Fie p = qm.
Exista o curba eliptica E definita peste Zp, cu
card(E(Zp)) = p + 1− t
daca si numai daca este adevarata una din
conditiile:
• t 6≡ 0 (mod q) si t2 ≤ 4p.
• m este impar si
− t = 0, sau
− t2 = 2p si q = 2, sau
− t2 = 3p si q = 3.
• m este par si
− t2 = 4p, sau
− t2 = p si q 6≡ 1 (mod 3), sau
− t = 0 si q 6≡ 1 (mod 4).
12
Teorema 1. (Teorema lui Ruck) Fie E o curba
eliptica peste Zp cu p > 3 numar prim.
Atunci exista doua numere ıntregi n1, n2 astfel
ca E(Zp) sa fie izomorfa cu Zn1 × Zn2, iar
n2|n1, n2|(p− 1).
De remarcat ca card(E(Zp)) = n1n2.
Daca n2 = 1, atunci E(Zp) este grup ciclic.
Daca n2 > 1, atunci E(Zp) are rangul 2.
Daca valoarea lui n2 este mica (n2 ≤ 4), E(Zp)
este aproape ciclic.
Cum n2 divide n1 si p−1, se asteapta ca E(Zp)
sa fie ciclic sau aproape ciclic pentru majori-
tatea curbelor eliptice peste Zp.
13
Sisteme de criptare
construite pe curbe eliptice
Principalul avantaj al sistemelor construite pe
curbe eliptice: dimensiunea mica ale cheilor.
In general, se bazeaza pe problema logaritu-
muluin discret si sunt inspirate de sistemul de
criptare El Gamal.
14
Exemplul 2. O criptare El Gamal pe curbaeliptica definita ın Exemplul anterior.
Fie α = (0,9) si a = 7.
Atunci β = 7α = (12,15)
eK(x, k) = (k · (0,9), x + k · (12,15))
unde x ∈ E, 0 ≤ k ≤ 14.
Pentru decriptare se foloseste operatia
dK(y1, y2) = y2 − 7y1
O criptare a mesajului x = (3,4); daca folosimk = 8, atunciy1 = 8 · (0,9) = (12,4), siy2 = (3,4) + 8 · (12,15) = (3,4) + (4,15) == 3α + 8 · 7α = 3α + 11α = 14α = (0,10)(calcule modulo 15).Deci y = ((12,4), (0,10)).
La receptie, Bob decripteaza mesajul astfel:x = (0,10)− 7 · (12,4) = 14α− 7 · 8α = 3α.
15
Sistemul Menezes - Vanstone
Este o varianta a lui El Gamal, curba elipticafiind utilizata pentru ”mascare”.
Fie E o curba eliptica peste Zp (p > 3 prim)care contine un subgrup ciclic H ın care pro-blema logaritmului discret este dificila.
P= Z∗p × Z∗p , C= E × Z∗p × Z∗p siK= {(E, α, a, β)|α ∈ E, a ∈ Z∗p , β = aα}.
Valorile α, β sunt publice, iar a este secret.
Pentru K = (E, α, a, β), k ∈ Zcard(H) aleator(secret) si x = (x1, x2) ∈ P:
eK(x, k) = (y0, y1, y2),
unde y0 = k · α, (c1, c2) = k · β,yi = ci · xi (mod p), i = 1,2.
Pentru y = (y0, y1, y2):
dK(y) = (y1 · c−11 (mod p), y2 · c−1
2 (mod p)),
unde a · y0 = (c1, c2).
16
Exemplul 3. Fie y2 = x3 + x + 5 peste Z19.
Criptarea Menezes - Vanstone cripteaza18×18 = 324 texte clare (fata de numai 15 ınsistemul El Gamal adaptat).
Sa luam α = (0,9) si a = 7.Deci β = 7α = (12,15).
Textul clar x = (x1, x2) = (5,11) criptat cuk = 4:
y0 = k · α = 4 · (2,7) = (4,4)sik · β = 4(12,15) = (1,8)
deci c1 = 1, c2 = 8.
Apoi se calculeaza (modulo 19):y1 = c1 · x1 = 1 · 5 = 5y2 = c2 · x2 = 8 · 11 = 12.Alice trimite deci lui Bob mesajul criptat
y = (y0, y1, y2) = ((4,4),5,12).
La receptie, se calculeaza(c1, c2) = a · y0 = 7 · (4,4) = 7 · 4α = (1,8),apoix = (y1 · c−1
1 (mod 19), y2 · c−12 (mod 19)) =
(5,11).
17
Problema logaritmului discret
pe curbe eliptice
Principalele sisteme de criptare pe curbe elip-
tice folosesc problema logaritmului discret.
In cazul curbelor eliptice, ea se enunta ın felul
urmator:
Problema logaritmului discret pe curbe
eliptice (ECDLP):
Fiind data o curba eliptica E peste corpul Zp,
un punct P ∈ E(Zp) de ordin n si
Q ∈ < P > = {sP | 1 ≤ s ≤ n− 1}
sa se determine k astfel ıncat Q = kP .
Numarul k este numit logaritmul discret al lui
A ın baza P : k = logPQ.
18
Atacul Pohlig - Hellman
Atacul prin forta bruta: se calculeaza R = kP
pentru k = 1,2,3, . . ., verificandu-se perma-
nent egalitatea R = Q.
Atunci cand egalitatea este verificata, s-a gasit
valoarea k = logPQ.
Timp de rulare: O(n), n - ordinul lui P .
Pohlig si Hellman au observat ca problema
logaritmului discret ıntr-un grup G are acelasi
ordin de dificultate ca si problema logaritmului
discret ın cel mai mare subgrup prim din G.
Concluzie: ın criptografia pe curbe eliptice,
se vor selecta curbe eliptice E cu proprietatea
card(E(Zp)) = n = h · s, unde s este un numar
prim mare, iar h este un numar foarte mic (de
obicei h = 1,2 sau 4).
In acest caz, ECDLP este dificila.
19
Atacul Pohling - Hellman:
Fie n = pe11 p
e22 . . . per
r .
1. Se calculeaza ki = k (mod peii ) (1 ≤ i ≤ r).
2. Se rezolva sistemul de congruente
x ≡ ki (mod peii ) (1 ≤ i ≤ r).
Teorema chineza a resturilor asigura
existenta unei solutii unice
logPQ = k = x ∈ [0, n− 1]
20
Determinarea fiecarui ki se poate reduce laaflarea exponentului ei ıntr-un subgrup ciclic< P > de ordin pi;pentru simplificare, vom nota pi cu p.
Reprezentarea lui ki ın baza p:
ki =ei−1∑j=0
zjpj
unde zj ∈ [0, p− 1].
Pentru determinarea lui z0:
• Se calculeaza P0 = (n/p)P, Q0 = (n/p)Q;
• Deoarece ordinul lui P0 este p, avem
Q0 =n
pQ = k
(n
pP
)= kP0 ≡ z0P0 (mod p)
Deci z0 = logP0Q0 poate fi obtinut rezolvand o
instanta ECDLP ın grupul ciclic < P >.
21
La pasul urmator se determina
Q1 =
(n
p2
)(Q− z0P ):
Q1 =
(n
p2
)(Q− z0P ) =
n
p2 (k − z0)P =
= (k − z0)
(n
p2P
)= (z0 + z1p− z0)
(n
p2P
)=
= z1
(n
pP
)≡ z1P0 (mod p)
Valoarea z1 = logP0Q1 se poate obtine deci
rezolvand o instanta ECDLP ın < P >.
In general, daca z0, z1, . . . , zt−1 au fost calcu-late, atunci zt = logP0
Qt, unde
Qt =n
pt+1
(Q− z0P − z1pP − z2p
2P − . . .− zt−1pt−1P
).
22
Atacul BSGS (Baby-Step/Giant-Step)
Consecinta a atacului Pohlig Hellman: se cauta
rezolvarea problemei logaritmului discret doar
ın grupuri ciclice de ordin prim.
Atacul BSGS este atacul Shanks adaptat pen-
tru curbe eliptice.
G =< P > un subgrup ciclic de ordin p (p prim)
al unui grup E(Zq) pe o curba eliptica.
Fiind dat Q ∈ G, problema cere aflarea unei
valori k (1 ≤ k < p) astfel ıncat Q = kP .
23
Atacul BSGS:
Fie reprezentarea
k = k0 + k1b√
pcunde k0, k1 ∈ [0, b√pc).
1. Se calculeaza listaA = {(Pi, i) | Pi = iP, 0 ≤ i < b√pc}
2. Fie R = b√pcP . Se calculeaza listaB = {(Qj, j) | Qj = Q− jR, 0 ≤ j < b√pc}
Ambele liste sunt ordonate crescator dupaprima componenta.
3. Se cauta (Pi, i) ∈ A, (Qj, j) ∈ B astfel caPi = Qj.Daca asa ceva exista, atunci k0 = i, k1 = j.
Justificare: iP = Q− jb√pcP , deci(i + jb√pc)P = Q.
24
Complexitatea spatiu si complexitatea timp a
unui atac BSGS sunt ambele egale cu O(b√pc).
Shoup arata ca atacul BSGS este cea mai rapi-
da metoda pentru rezolvarea problemei loga-
ritmului discret ıntr-un grup ”cutie neagra”
(un grup ”cutie neagra” este un grup ın care nu
se foloseste nici o structura pentru reprezenta-
rea elementelor sale).
25
Atacul Pollard Rho
Se cauta doua perechi distincte (c1, d1),(c2, d2) de numere ıntregi din Zp astfel ıncat
c1P + d1Q = c2P + d2Q.
Rezulta (c1− c2)P = (d2− d1)Q = (d2− d1)kP ,deci
(c1 − c2) ≡ (d2 − d1)k (mod p),
si valoarea k = logPQ se obtine prin
k = (c1 − c2)(d2 − d1)−1 (mod p)
Se genereaza aleator doua valori c, d ∈ Zp si seretine ıntr-o tabela tripletul (c, d, cP + dQ).Procedeul se repeta pana se obtine a doua oaraun punct cP + dQ.
Conform paradoxului nasterilor, o astfel decoliziune se obtine dupa aproximativ√
πp/2 ≈ 1,2533√
piteratii.
Neajunsul atacului: necesitatea de stocare a√πp/2 triplete.
26
Algoritmul Pollard Rho gaseste perechile
(c1, d1), (c2, d2)
cam ın acelasi timp ca si metoda de mai sus,
dar folosind o cantitate neglijabila de memorie.
Ideea este de a defini o functie recursiva
f :< P >−→< P >
astfel ıncat, ∀X ∈< P > si c, d ∈ Zp cu
X = cP + dQ, sunt usor de calculat X ′ = f(X)
si c′, d′ ∈ Zp cu X ′ = c′P + d′Q.
27
Algoritmul Pollard Rho:
Intrare: P ∈ E(Zq), ord(P ) = p prim, Q ∈< P >.Iesire: k = logPQ.
1. Selecteaza numarul L al ramificatiilor.2. Selecteaza o functie de partitie
H :< P >−→ {1,2, . . . , L}
cu card(H−1(i)) ' p/L, (1 ≤ i ≤ L).
3. for j ←− 1 to L do
3.1. Selecteaza (aleator) aj, bj ∈ Zp.
3.2. Calculeaza Rj = ajP + bjQ.
4. Selecteaza (aleator) c′, d′ ∈ Zp
si calculeaza X ′ = c′P + d′Q.
5. X”←− X ′, c”←− c′, d”←− d′.
6. repeat
6.1. Calculeaza j = H(X ′).
X ′ ←− X ′+ Rj, c′ ←− c′+ aj, d′ ←− d′+ bj.
6.2. for i←− 1 to 2 do
6.2.1. Calculeaza j = H(X”).
6.2.2. X” ←− X” + Rj, c” ←− c” + aj, d” ←−d” + bj.
until X ′ = X”.
7. if d′ = d” then return(”esec”)
else return k = (c′ − c”)(d”− d′)−1 (mod p).
8. Stop
28
Algoritmul Pollard Rho este un algoritm pro-
babilist de tip Las Vegas.
Probabilitatea de esec este neglijabila.
Exemplul 4. Sa consideram L = 32 si fie
{S1, S2, . . . , S32} o partitie a lui < P > defi-
nita astfel: daca X ∈< P > si ultimii ultimii 5
biti semnificativi ai primei coordonate a lui X
reprezinta numarul j, atunci H(X) = j + 1.
Multimile Sj = {X | H(X) = j} au acelasi
numar de elemente pentru orice j = 1, . . . ,32.
29
Detaliere algoritmul Pollard Rho:
Fie aj, bj ∈ Zp si functia f :< P >−→< P >
definita
f(X) = X + ajP + bjQ unde j = H(X).
Daca X = cP + dQ, atunci
f(X) = X ′ = c′P +d′Q unde c′ = c+aj (mod p)
si d′ = d + bj (mod p).
Pentru un punct arbitrar X0 ∈< P > se poate
determina o secventa {Xi}i≥0 definita
Xi = f(Xi−1) pentru i ≥ 1.
Cum toate punctele sunt grupul finit < P >, la
un moment dat functia va cicla.
Deci exista un t minim pentru care Xt = Xt+s
cu s ≥ 1.
Valoarea t se numeste ”lungimea cozii”, iar s
– ”lungimea ciclului”.
30
Algoritmul lui Floyd de aflare a doua puncte
Xi, Xj cu Xi = Xj si i 6= j, exploreaza perechile
de puncte de forma (Xi, X2i) pana gaseste un
indice i cu Xi = X2i.
Dupa calcularea unei perechi, perechea ante-
rioara de puncte poate fi eliminata; astfel me-
moria utilizata este de marime neglijabila.
Numarul n al perechilor calculate pana se obti-
ne egalitatea Xi = X2i verifica t ≤ n ≤ t + s.
Daca f este o functie aleatoare, atunci
n ' 1,0308√
p, deci numarul de operatii pe
grupul curbelor eliptice este 3√
p.
31
Factorizari bazate pe curbe eliptice
Metoda p − 1 de factorizare a unui numar n
poate fi definita si pe multimea punctelor unei
curbe eliptice.
ECM (Elliptic Curve Method).
Se genereaza aleator doua numere a, b ∈ Zn, si
se construieste curba
Ea,b : y2 ≡ x3 + ax + b (mod n) (1)
Pe aceasta curba se efectueaza diverse calcule
modulo p (desi p nu se cunoaste), ”ascunse”
de calculele modulo n.
32
Ordinul grupului Ea,b(Zp) este un numar din
intervalul [p + 1− 2√
p, p + 1 + 2√
p].
Daca acest ordin are divizorii primi (la puterile
cu care apar) mai mici decat marginea B sta-
bilita de metoda p − 1, putem aplica aceasta
metoda (adaptata la grupul definit pe E(Zn)),
cu o complexitate de O(B) operatii aritmetice.
Succesul ei corespunde deci probabilitatii ca
ordinul grupului Ea,b(Zp) sa aiba toti divizorii
primi mai mici decat B.
Aceasta probabilitate este u−u unde u =log p
log B.
33
Exemplul 5. Factorizarea lui n = 44023.
Alegerea unui punct (initial) X pe curba (1).
Practic, ın loc de a alege a, b si apoi X, vom
genera ıntai a, X si ulterior b.
Fie a = 13 si X = (x, y) = (23482,9274).
Vom avea imediat
b = y2 − x3 − ax = 21375 (mod 44203)
Vom calcula
Xi = i!X = (xi, yi)
pentru i = 1,2, . . . pana se ajunge la un punct
Xi 6= O (ın Ea,b(Zn)), care este punctul de la
infinit ın Ea,b(Zp).
Aceste lucru se poate ıntampla la aparitia unei
operatii imposibile – de obicei ımpartirea la un
element neinversabil.34
X1 = X = (23482,9274),
X2 = 2X1 = (18935,21838),
X3 = 3X2 = 2X2 + X2 = (15187,29168),
X4 = 4X3 = 2(2X3) = (10532,5412)
Se ajunge la X5 = 5X4 = 2(2X4) + X4.
Aici calculam ıntai 2X4 = (30373,40140), apoi
2(2X4) = (27556,42335).
In momentul cand vrem sa adunam acest punct
cu X4, ajungem la calculul valorii
λ =42335− 5412
27556− 10532(mod 44023)
care nu se poate efectua, deoarece 27556 −10532 = 17024 nu este inversabil modulo n.
Daca ıncercam sa calculam inversul folosind al-
goritmul lui Euclid extins, ajungem la
cmmdc(17024,44023) = 133,
care este un factor al lui n = 44023.35
Alte sisteme de criptarecu cheie publica
1
Sistemul de criptare Merkle - Hellman
Numim vector rucsac un tablou unidimensionalA = (a1, a2, . . . , an) (n ≥ 3) cu elemente nu-mere ıntregi pozitive distincte.
Aparitia problemei rucsacului: o pereche (A, x)cu A vector rucsac, x - numar ıntreg pozitiv.
O solutie a aparitiei problemei (A, x) este unvector B = (ai1, . . . , aik) de elemente din A
astfel ca x =k∑
j=1
aij.
Cea mai obisnuita abordare a problemei ruc-sacului este de a decide daca o anumita aparitie(A, x) a problemei rucsacului are solutie sau nu.
Varianta criptografica: obtinerea acestei solutiipentru (A, x), stiind ca ea exista.
Ambele probleme sunt NP - complete.
2
Un vector rucsac este folosit pentru criptarea
unui bloc M de n biti; daca M este scris ca un
vector coloana binar, criptarea este
x = A ·M
Decriptarea revine la a determina M stiind x
sau – pentru varianta cu cheie publica – de a
afla M din A si x.
Exemplul 1. Fie n = 6 si vectorul rucsac
A = (3,41,5,1,21,10).
Atunci textul clar M1 = (1,1,0,0,1,0) este
criptat ın x1 = 65, iar M2 = (1,0,1,1,0,1)
ın x2 = 19.
Pentru vectorul A astfel definit, multimea tex-
telor criptate este inclusa ın intervalul [0,81].
3
Pentru a putea fi utilizat ın criptare, un vector
rucsac A trebuie sa fie injectiv: pentru orice
x ∈ N , aparitia problemei rucsacului (A, x) are
cel mult o solutie.
Exemplul 2. Pentru vectorul rucsac
A = (14,28,56,82,90,132,197,284,341,455)
textul criptat x = 515 se poate obtine din trei
texte clare distincte:
(1,1,0,0,0,1,0,0,1,0),
(0,1,1,0,1,0,0,0,1,0),
(1,0,0,1,1,1,1,0,0,0).
4
Sunt anumiti vectori rucsac A pentru care
toate aparitiile (A, x) sunt usor de rezolvat.
Vectorii cu crestere mare au aceasta
proprietate.
Definitia 1. Un vector rucsac
A = (a1, a2, . . . , an)
este crescator (super-crescator) daca
∀j ≥ 2, aj > aj−1 (respectiv aj >j−1∑i=1
ai).
Evident, orice vector super-crescator este
crescator.
5
Pentru A = (a1, . . . , an) definim
max(A) = max{aj | 1 ≤ j ≤ n}.
Fie A un vector rucsac, m > max(A) si
t ∈ (0, m) astfel ca cmmdc(t, m) = 1.
Daca B = (b1, b2, . . . , bn) este un vector definit
prin
bi ≡ t · ai (mod m) (1 ≤ i ≤ n)
spunem ca B rezulta din A prin ınmultire
modulara ın raport cu perechea (m, t).
Conditia cmmdc(t, m) = 1 asigura existenta lui
u ∈ (1, m), astfel ca t · u ≡ 1 (mod m).
Are loc si proprietatea reciproca: vectorul ruc-
sac A rezulta din B prin ınmultire modulara ın
raport cu (m, u).
6
Daca relatia m > max(A) este ınlocuita cu
conditia m >n∑
i=1
ai, spunem ca B rezulta din A
prin ınmultire modulara tare ın raport cu (m, t).
In acest caz, proprietatea inversa nu mai este
valabila deoarece m >n∑
i=1
bi nu mai este adeva-
rata totdeauna.
Se poate spune (evident) ca A rezulta din B
prin ınmultire modulara ın raport cu (m, u).
7
Constructia sistemului de criptare rucsac:
1. Bob alege m, t cu cmmdc(m, t) = 1,
si vectorul super-crescator
A = (a1, . . . , an)
cu m >n∑
i=1
ai.
2. Determina vectorul rucsac B obtinut din A
prin inmultire modulara tare ın raport cu
(m, t).
3. Face public B si pastreaza drept cheie se-
creta elementele A, m, t si u ≡ t−1 (mod m).
8
Pentru criptare, Alice procedeaza astfel:
1. Sparge mesajul ın blocuri de lungime n
(lungimea vectorului B).
Fie x un astfel de bloc.
2. Calculeaza y = x ·B si ıl trimite lui Bob.
In acest fel, un criptanalist va trebui sa rezolve
aparitia (B, y) a problemei rucsacului.
Bob va determina ıntai x ≡ u · y (mod m), dupa
care va rezolva aparitia (A, x).
9
Exemplul 3. Fie n = 10 si vectorul super-
crescator
A = (103,107,211,430,863,1718,3449,6907,
13807,27610)
Alegem m = 55207 (mai mare decat suma
componentelor lui A) si t = 25236.
Deoarece cmmdc(t, m) = 1, se determina
u = t−1 = 1061.
Ca rezultat al ınmultirii modulare tari ın raport
cu (m, t) se obtine vectorul rucsac
B = (4579,50316,24924,30908,27110,
17953,32732,16553,22075,53620)
B este cheia publica de criptare, ın timp ce
(A, t, m, u) formeaza trapa secreta.
10
Folosind cheia publica B, sa criptam mesajul
PELIN DE MAI.
El se ımparte ın perechi de cate doua litere,
care se codifica ın secvente binare de 10 biti.
PE 10000 00101 74.752LI 01100 01001 161.592N 01110 00000 106.148DE 00100 00101 95.097MA 01101 00001 155.970I 01001 00000 77.426
Pe ultima coloana sunt criptarile blocurilor de
pe prima coloana.
11
Sa decriptam blocul 74.752 (celelalte blocurisunt tratate analog):
74752·1061 = 79311872 = 1436·55207+34620
Consideram aparitia problemei rucsacului
(A,34.620)
Solutia se obtine parcurgand vectorul A de ladreapta spre stanga:
Numar Componenta lui A Bit35.620 27.610 17.010 13.807 07.010 6.907 1
103 3.449 0103 1.718 0103 863 0103 430 0103 211 0103 107 0103 103 1
Citind ultima coloana din tabel, de jos ın sus,obtinem 10000 00101, care este codificarea bi-nara pentru perechea de litere PE.
12
Sa procedam invers: criptam textul clar PE
folosind vectorul A.
Se obtine (evident) 34.620.
Aplicam ınmultirea modulara tare ın raport cu
(55.207,25.236):
34620 ·25236 = 873670320 = 15825 ·55207+
19545
Dar aparitia (B,19.545) nu are solutie; evident,
deoarece ın B, singurele numere mai mici decat
19.545 sunt 4.579,19.953 si 16.553, iar 19.545
nu se poate obtine din nici o combinatie a lor.
13
Criptanaliza sistemului de criptare rucsac
Avem problema de criptanaliza: se stie un vec-
tor rucsac B = (b1, b2, . . . , bn) folosit drept
cheie publica de criptare.
Se stie de asemenea ca B este obtinut dintr-
un vector super-crescator A printr-o ınmultire
modulara tare ın raport cu un modul m si un
ınmultitor t.
Nu cunoastem A, m, t; vrem sa le aflam.
Daca determinam m si u = t−1, putem gasi
imediat vectorul super-crescator A si decripta
mesajele interceptate.
Calculul lui u plecand de la t (sau invers) se
bazeaza pe Algoritmul extins al lui Euclid.
14
Atacul dezvoltat de Adi Shamir.
Algoritmul opereaza ın timp polinomial, gradul
polinomului de complexitate fiind determinat
de numarul si marimea componentelor vectoru-
lui B.
Prim scop: gasirea valorilor m si u.
Nu este necesara aflarea valorilor pe care le-a
definit Bob pentru sistemul de criptare.
Orice pereche (m, u) care, plecand de la vec-
torul B duce la un vector super-crescator A,
poate fi utilizata la decriptare.
Astfel de perechi se numesc ”perechi trapa”.
Exista cel putin o pereche trapa (deoarece sis-
temul de criptare rucsac se bazeaza pe o astfel
de constructie).
15
Pentru aflarea unei perechi trapa se considera
graficul functiilor
fi(u) = biu (mod m)
pentru i = 1,2, . . . , n.
Este format din segmente de linii paralele,
rupte ın punctele u = p ·m/bi, p = 1,2, . . .
-
6
u
biu
m
m
16
In particular, a1 ≡ b1u (mod m).
Pentru ca a1 este prima componenta ıntr-unvector super-crescator, iar m depaseste sumatuturor componentelor, elementul a1 trebuie safie foarte mic ın comparattie cu m.
Deci valoarea lui u trebuie sa fie suficient deaproape de un minim al grafului y = f1(u).
Similar, valoarea lui u din perechea trapa (m, u)trebuie sa fie destul de apropiata de un minimal grafului lui f2(u).
Dci doua minime ale lui f1(u) si f2(u) trebuiesa fie apropiate.
Putem proceda ın acest fel si pentru alte valori.
Faptul ca valoarea lui u este apropiata de unminim al fiecarei curbe fi(u) implica faptul caaceste minime sunt apropiate unul de altul.
17
Vom considera temporar valoarea m = 1.
Algoritmul consta din doua parti: ın prima
etapa vom afla o multime de numere ıntregi
p cu proprietatea ca al p-lea punct de minim al
curbei f1(u) este punct de acumulare.
Pentru a evita generarea unui numar prea mare
de valori p, se fixeaza un parametru r care sa
indice numarul maxim de valori posibile per-
mise.
Daca prima parte a algoritmului genereaza mai
mult de r valori, el se va termina cu esec.
In etapa urmatoare vom explora pe rand punc-
tele de acumulare gasite anterior.
Unul din teste va reusi, deoarece valoarea lui u
folosita de Bob ın sistemul de criptare desem-
neaza un astfel de punct de acumulare.
18
I. Coordonata u a celui de-al p-lea punct de
minim al curbei f1(u) este p/b1 (momentan
m = 1).
Conditia ca minimele curbelor f1(u) sif2(u) sa fie apropiate:
−e <p
b1−
q
b2< e, 1 ≤ p ≤ b1 − 1, 1 ≤ q ≤ b2 − 1
unde e este o valoare rezonabil de mica.
−δ < b2p− b1q < δ, 1 ≤ p ≤ b1− 1, 1 ≤ q ≤ b2− 1.
Consideram s astfel de puncte de minim si
scriem s−1 inegalitati de acest tip, pentru
b1, b2, . . . , bs.
Pentru δ <√
b1/2 probabilitatea ca algorit-
mul sa esueze este maxim (2/r)s−1.
Prima parte a algoritmului rezolva acest
sistem de inecuatii, afland toate valorile lui
p pentru care exista q, . . . astfel ıncat sa fie
satisfacute cele s− 1 inecuatii.
19
II. Fie un p fixat arbitrar.
Se ordoneaza crescator toate punctele dediscontinuitate ale curbelor
fi(u) (1 ≤ i ≤ n) din
[p
b1,p + 1
b1
].
Fie xj, xj+1 doua puncte consecutive dediscontinuitate.
In intervalul [xj, xj+1] fiecare curba fi(u)este un segment reprezentat prinfi(u) = biu− c
ji , unde c
ji este o constanta.
Construim sistemul de inecuatii liniarexj ≤ u ≤ xj+1
n∑i=1
(biu− cji) < 1
(b1u− cj1) + . . . + (bi−1u− cj
i−1) < biu− cji , (2 ≤ i ≤ n)
Solutia este un subinterval (posibil vid) allui [xj, xj+1].
(m, u) formeaza o pereche trapa daca sinumai daca exista p si un j astfel ca u/msa apartina unui astfel de subinterval.
20
Exemplul 4. Fie vectorul public B = (7,3,2).
Prima etapa: rezolvarea unui sistem de douainegalitati duble:
−δ < 3p− 7q < δ,−δ < 2p−7r < δ, (1 ≤ p ≤ 6, 1 ≤ q ≤ 2, r = 1)
Trecem la etapa a doua, considerand dreptcandidati pentru testare toate valorile lui p.
Impartim intervalul (0,1) ın subintervalele(0,
1
7
),
(1
7,2
7
),
(2
7,1
3
),
(1
3,3
7
),
(3
7,1
2
),
(1
2,4
7
),(
4
7,2
3
),
(2
3,5
7
),
(5
7,6
7
),
(6
7,1
).
In fiecare subinterval cele trei curbe sunt deforma fi(u) = biu− c
ji (i = 1,2,3, iar indicele j
indica intervalul).
Toate intervalele sunt deschise (nici un punctde discontinuitate nu corespunde unei perechitrapa).
21
Pentru fiecare subinterval:(7u− i1) + (3u− i2) + (2u− i3) < 17u− i1 < 3u− i2(7u− i1) + (3u− i2) < 2u− i3
cu 0 ≤ i1 ≤ 6, 0 ≤ i2 ≤ 2, 0 ≤ i3 ≤ 1.
Sistemul se rescrie
12u < i, 4u < j, 8u < k
unde
i = 1+ i1+ i2+ i3, j = i1− i2, k = i1+ i2− i3.
(0, 1
7
) (17, 27
) (27, 13
) (13, 37
) (37, 12
) (12, 47
) (47, 23
) (23, 57
) (57, 67
) (67,1)
i1 0 1 2 2 3 3 4 4 5 6i2 0 0 0 1 1 1 1 2 2 2i3 0 0 0 0 0 1 1 1 1 1i 1 2 3 4 5 6 7 8 9 10j 0 1 2 1 2 2 3 2 3 4k 0 1 2 3 4 3 4 5 6 7
12u < i PT PT NU NU NU NU PT NU PT NU4u < j NU PT DA NU DA NU DA NU PT DA8u < k NU NU NU PT DA NU NU NU PT PT
Un interval contine perechi trapa daca si numai
daca pe coloana sa apar numai DA sau PT.
22
Singurul interval valid este (5/7,6/7).
Alegem ın el numere rationale u/m care verifica
cele trei inecuatii.
Primul numar rational: 8/11; deci u = 8 si
m = 11.
Atunci relatia ai ≡ biu (mod 11) transforma
vectorul B = (7,3,2) ın vectorul cu crestere
mare A = (1,2,5).
Alte solutii pot fi de exemplu:
• (u, m) = (41,56): A = (7,11,26),
• (u, m) = (61,84): A = (7,15,38),
• (u, m) = (223,308): A = (25,35,138).
23
Exemplul 5. Fie vectorul rucsac public
B = (43,129,215,473,903,302,561,1165,697,1523)
La prima etapa:
|129p−43q| ≤ δ, |215p−43r| ≤ δ, |473p−43s| ≤ δ
Pentru ca 43 = cmmdc(129,215,473), p = 1
este un candidat posibil.
Restrangem investigatia la intervalul(
143, 2
43
).
Considerand si puncte de discontinuitate ale
altor curbe ın acest interval, vom putea re-
strange subintervalul solutiilor la(
143, 36
1523
).
Cele 10 curbe sunt:
f1(u) = 43u− 1, f2(u) = 129u− 3,f3(u) = 215u− 5, f4(u) = 473u− 11,f5(u) = 903u− 21 f6(u) = 302u− 7,f7(u) = 561u− 13, f8(u) = 1165u− 27,f9(u) = 697u− 16, f10(u) = 1523u− 35.
24
Inecuatia a doua:10∑
i=1
fi(u) < 1 sau
6011u− 139 < 1, cu solutia u < 140/6011.
Cum 140/6011 < 36/1523, intervalul solutiiloreste:
(143, 140
6011
).
Inecuatiile care dau conditia de super-crestere:129u− 3 > 43u− 1 u > 1/43215u− 5 > 172u− 4 u > 2/43473u− 11 > 387u− 9 u > 1/43903u− 21 > 860u− 20 u > 1/43302u− 7 > 1763u− 41 u < 34/1461561u− 13 > 2065u− 48 u < 35/15041165u− 27 > 2626u− 61 u < 34/1461697u− 16 > 3791u− 88 u < 72/30941523u− 35 > 4488u− 104 u < 69/2965
Cea mai mica margine superioara este72/3094 = 36/1547.
In final ramane intervalul(
143, 36
1547
).
Pentru 37/1590 se obtineA = (1,3,5,11,21,44,87,175,349,701).
Pentru 72/3095 se obtineA = (1,3,5,11,21,79,157,315,664,1331).
25
Vectori rucsac cu densitate mare
Spargerea sistemului de criptare rucsac ın vari-
anta propusa de Merkle si Hellman, nu ınseam-
na rezolvarea problemei rucsacului, ci numai
exploatarea slabiciunii provenite din modul de
alegere a cheii secrete.
Ulterior au fost generate si alte constructii de
cripto-sisteme rucsac.
In varianta Merkle - Hellman, sistemul de crip-
tare rucsac se baza pe vectori cu densitate
mica, ın sensul ca elementele vectorului erau
foarte rare ın raport cu numarul lor.
Noul sistem propune o constructie bazata pe
vectori rucsac cu densitate mare.
26
Fie p un numar prim si h ≥ 1.
Un element α este algebric de gradul h peste Zp
daca satisface o ecuatie polinomiala P (x) = 0
de gradul h si nici o ecuatie de grad mai mic
(P (x) este un polinom ireductibil peste Zp).
Considerand extensia GF (ph), elementele sale
pot fi reprezentate sub forma
x =h−1∑j=0
cjαj (0 ≤ cj ≤ p− 1)
Exemplul 6. Fie p = 3, h = 2 si α o radacinaa ecuatiei X2 −X − 1 = 0.Elementele corpului GF (32) pot fi exprimateın functie de α:
GF (32) = {0, 1, 2, α, α+1, α+2, 2α, 2α+1, 2α+2}.
27
Similar aritmeticii modulare definite pe Zp,
putem folosi notiunea de logaritm discret si ın
extensiile Galois GF (ph).
Un element β este un generator al lui GF (ph)∗
daca ∀x ∈ GF (ph)∗ exista un ıntreg i ∈ [0, ph−1]
cu x = βi.
Deci i = logβx.
Exemplul 7. Pentru GF (32), radacina α a
ecuatiei X2 −X − 1 = 0 este un generator.
Logaritmii elementelor nenule din aceastaextensie sunt:
x 1 2 α α + 1 α + 2 2α 2α + 1 2α + 2logαx 8 4 1 2 7 5 3 6
Tot un generator al lui GF (32)∗ este si 2α+1.
Tabela de logaritmi ın aceasta baza estex 1 2 α α + 1 α + 2 2α 2α + 1 2α + 2
log2α+1x 8 4 3 6 5 7 1 2
28
Fiind date numerele ıntregi pozitive n si h,exista un vector A = (a1, a2, . . . , an) cu ele-mente nenegative distincte, astfel ıncat toatesumele de exact h componente de elemente(nu neaparat distincte) din A, sunt diferite.
Un astfel de vector A este usor de construit,luand ai = hi−1 (1 ≤ i ≤ n).Constructia corespunde vectorilor rucsac cudensitate mica.
Pentru vectorii rucsac cu densitate mare:
Lema 1. Fie p un numar prim si h ≥ 2 un numar ıntreg.Atunci exista un vector rucsac A = (a1, a2, . . . , ap) caresatisface conditiile
1. 1 ≤ ai ≤ ph − 1, (1 ≤ i ≤ p),
2. Daca x, yi (1 ≤ i ≤ p) sunt numere ıntregi nenega-tive cu (x1, x2, . . . , xp) 6= (y1, y2, . . . , yp) iar
p∑i=1
xi =
p∑i=1
yi = h,
atunci
p∑i=1
aixi 6=p∑
i=1
aiyi.
29
Concluzia lemei se poate ınlocui cu:
p∑i=1
aixi 6≡p∑
i=1
aiyi (mod ph − 1)
Sa construim un sistem de criptare rucsac.
Textul clar va contine cuvinte (blocuri) de p
biti, astfel ıncat ın fiecare bloc sunt exact h
biti egali cu 1.
In general, un text clar arbitrar nu poate fi
segmentat ın astfel de blocuri; totusi, se pot
defini codificari convenabile premergatoare ale
textului clar.
O astfel de codificare este asigurata de:
Lema 2. Fie n ≥ 3 si h < n. Atunci exista o
aplicatie injectiva a multimii secventelor binare
de lungime blog2Chnc ın multimea secventelor
binare de n biti ın care apar h de 1.
30
Exemplul 8. Fie n = 5 si h = 2.
Atunci blog2C25c = 3; deci putem codifica
blocuri de 3 biti.
Corespondenta se realizeaza dupa tabelul:
0 0 0 −→ 0 0 0 1 10 0 1 −→ 0 0 1 0 10 1 0 −→ 0 0 1 1 00 1 1 −→ 0 1 0 0 11 0 0 −→ 0 1 0 1 01 0 1 −→ 0 1 1 0 01 1 0 −→ 1 0 0 0 11 1 1 −→ 1 0 0 1 0
Secventele 10100 si 11000 raman neutilizate.
31
Sistemul de criptare:
• Se alege un numar prim p si fie h < p.
Se alege α algebric de gradul h peste Zp si
un generator g al lui GF (ph)∗.
• Se calculeaza A = (a1, a2 . . . , ap) definit
ai = logg(α + i− 1), (1 ≤ i ≤ p)
• Se construieste vectorul B = (b1, b2, . . . , bp)
prin bi = aπ(i) + d
unde π ∈ Sp este o permutare, iar
d ∈ [0, ph − 2] este o constanta arbitrara.
Cheia publica de criptare este B, p, h.
Trapa secreta consta din α, g, d, π.
32
Fie C o secventa binara de lungime p ın caresuma elementelor este h.
Considerat sub forma unui vector coloana, Ceste criptat prin produsul scalar
e(C) = B · C (mod ph − 1)
Protocolul de decriptare urmat de Bob este:
1. Daca x este mesajul criptat, se determinay = x− h · d (mod ph − 1).
2. Se calculeaza gy ın GF (ph). Acesta esteun polinom ın α, de grad cel mult h− 1.α satisface o ecuatie de forma αh = r(α), under(X) ∈ Zq[X] este un polinom de grad cel multh− 1.3. Polinomul s(α) = αh + gy − r(α) se des-compune ın factori liniari peste Zp.Fie s(α) = (α+ i1−1)(α+ i2−1) . . . (α+ ih−1)aceasta descompunere.
4. Pozitia elementelor 1 din textul clar estedata de valorile
(π−1(i1), π−1(i2), . . . , π
−1(ih)).
33
Exemplul 9. Vom ignora π si d.
Fie extensia GF (32) generata de 2α + 1, undeα verifica ecuatia X2 = X + 1.
Deoarece logaritmii elementelor α, α+1 si α+2sunt 3,6 si respectiv 5, se obtine cheia publicade criptare B = (3,6,5).In plus, p = 3 si h = 2.
Un text clar este compus cu vectori binari cu3 componente, cu suma componentelor 2.
Sa consideram vectorii (2,0,0) si (0,1,1).Ei sunt criptati ın numerele 6 respectiv 3 (cal-culele se efectueaza modulo ph − 1 = 8).
La decriptare, Bob:- calculeaza ıntai puterile (2α + 1)6 = α + 1 si(2α + 1)3 = α.- La ambele expresii, aduna α2−α−1, rezultandpolinoamele α2 si α2 − a = (α + 1)(α + 2).- Se deduc textele clare (2,0,0) si (0,1,1).
34
Sistemul de criptare McEliece
Sistemul McEliece – propus ın 1978 – este
destul de apropiat de problema rucsacului.
El utilizeaza teoria codurilor liniare; ın general
decodificarea unui cod liniar binar corector de
erori este o problema NP - completa.
Pentru unele clase de coduri sunt construiti
algoritmi de decodificare polinomiali; o astfel
de clasa o formeaza codurile Goppa – baza
sistemului de criptare McEliece.
35
Definitia 2. Fie k, n ∈ N (k ≤ n). Un (n, k) -
cod liniar binar este un subspatiu liniar C ⊆ Zn2
de dimensiune k.
O matrice generatoare a lui C este o matrice
binara k × n ale carei linii sunt o baza a lui C.
Pentru a ∈ Zn2 se defineste ponderea w(a) prin
numarul de elemente nenule din a.
Pentru a,b ∈ Zn2 , distanta Hamming este
d(a,b) = w(a− b).
Pentru un (n, k) - cod liniar binar C, distanta
minima este
dC = min{d(a,b)|a,b ∈ C, a 6= b}
Un (n, k, d) - cod este un (n, k) - cod de distan-
ta minima d.
36
Rolul unui cod corector de erori este de a corijamodificari aleatoare care apar ın transmitereaunui set de date (binare) printr-un canal.
In linii mari, acesta functioneaza astfel: dacaa este un mesaj de informatie de k biti, Alice ılcodifica ıntr-un cuvant de n biti b = aG, undeG este matricea generatoare a codului.
Bob primeste r ∈ Zn2 (eventual r = b) si cauta
b1 ∈ C cu d(r,b1) minim posibil.
Va decodifica r ın b1 dupa care va calcula unmesaj de informatie a1 astfel ca b1 = a1G.
Cazul ideal este cand b1 = b, a1 = a.
Daca numarul de erori care apar nu depaseste(d − 1)/2, acest procedeu corecteaza efectiverorile.
Daca Bob cauta cuvantul - cod cel mai apropi-at comparand r pe rand cu fiecare element dinC, algoritmul va fi exponential.
37
Majoritatea algoritmilor de decodificare folo-
sesc notiunea de sindrom:
Matricea de control a unui (n, k, d) - cod liniar
binar de matrice generatoare G este o ma-
trice H de dimensiune (n− k)×n ale carei linii
formeaza o baza a unui spatiu liniar ortogonal.
Evident, G ·HT = 0.
Pentru un cuvant r ∈ Zn2 , se numeste sindrom
secventa de n− k biti definita H · rT .
Teorema 1. a este un cuvant - cod daca si
numai daca H · aT = 0.
In plus, daca a ∈ C, e ∈ Zn2 si r = a + e, atunci
H · rT = H · eT .
38
e poate fi considerat drept vectorul de eroricare au aparut ın transmiterea mesajului a.
Teorema anterioara afirma ca sindromul de-pinde doar de erori, nu si de cuvantul - codtransmis.
Metoda de decodificare bazata pe sindrom:- Se calculeaza ıntai s = H · rT .
- Daca s = 0, decodificarea lui r este tot r.Altfel, se ıncearca cuvintele de pondere 1.Pentru fiecare astfel de cuvant e se calculeazaH · eT .
- Daca s-a gasit un e cu H · eT = s, r se de-codifica ın r− e.
- In caz contrar se ıncearca vectorii de pondere2,3, . . . , [(d− 1)/2].
- Daca nu s-a gasit nici un cuvant e cuH ·eT = s, se deduce ca au aparut mai mult de[(d− 1)/2] erori ın cursul transmisiei.
39
Algoritmul de criptare McElliece se bazeaza pe
aceasta idee.
Trapa secreta o constituie o clasa de coduri
pentru care exista algoritmi eficace de decodi-
ficare - codurile Goppa.
In plus, exista un numar mare de coduri Goppa
neechivalente, avand aceiasi parametri.
40
Sistemul de criptare McElliece:
Fie: G matricea generatoare a unui (n, k, d) -
cod Goppa cu n = 2m, d = 2t+1, k = n−m·t,S – matrice inversabila binara k × k,
P – matrice de permutare n× n.
Fie P= Zk2, C= Zn
2 , K= {(G, S, P, G′) | G′ =
S ·G · P}.G′ este publica iar G, S, P sunt secrete.
Pentru K = (G, S, P, G′) se defineste
eK(a, e) = a ·G′ + e
e ∈ Zn2 este un cuvant aleator de pondere t.
Bob decripteaza un mesaj b ∈ Zn2 astfel:
1. Calculeaza b1 = b · P−1;
2. Decodifica b1 = a1 + e1 unde a1 ∈ C;
3. Calculeaza a0 ∈ Zk2 astfel ca a0 ·G = a1;
4. Calculeaza a = a0 · S−1.
41
Corectitudinea algoritmului de decriptare:
b1 = b ·P−1 = (a ·G′+ e) ·P−1 = (a ·S ·G ·P +e) · P−1 = (a · S) ·G + e · P−1
si w(e · P−1) ≤ t.Deci algoritmul de decodificare al codului dematrice generatoare G poate decodifica corectpe b1 si obtine un mesaj sursa a0 = a · S.
La ultimul pas se afla mesajul initial
a = a0 · S−1.
Pentru o implementare practica a criptarii,McEliece propune m = 10, t = 50, deci un(1024,524,101) - cod Goppa.
Un text clar este o secventa de 524 biti, iar untext criptat este o secventa de 1024 biti.
Cheia publica este o matrice binara de dimen-siuni 524× 1024.
42
Exemplul 10. Fie un (8,2,5) - cod Goppa
(n = 23, k = 2, d = 5).
El este generat de
G =
(0 0 1 1 1 1 1 11 1 0 0 1 0 1 1
)Sa presupunem ca Bob alege matricile
S =
(1 01 1
)cu S−1 =
(1 01 1
)
si
P =
0 1 0 0 0 0 0 00 0 0 1 0 0 0 00 0 0 0 0 0 1 01 0 0 0 0 0 0 00 0 1 0 0 0 0 00 0 0 0 0 1 0 00 0 0 0 1 0 0 00 0 0 0 0 0 0 1
cu P−1 =
0 0 0 1 0 0 0 01 0 0 0 0 0 0 00 0 0 0 1 0 0 00 1 0 0 0 0 0 00 0 0 0 0 0 1 00 0 0 0 0 1 0 00 0 1 0 0 0 0 00 0 0 0 0 0 0 1
Matricea publica generata este deci
G′ = S ·G · P =
(1 0 1 0 1 1 1 11 1 0 1 0 1 1 0
)
43
Sa presupunem ca Alice vrea sa cripteze textulclar a = (0,1) folosind vectorul - eroaree = (0,0,1,0,0,1,0,0) de pondere 2.Textul criptat este
b = a ·G′ + e = (1,1,1,1,0,0,1,0).
Dupa receptionarea mesajului, Bob calculeazaıntai
b1 = b · P−1 = (1,1,1,1,1,0,0,0),
pe care ıl scrie sub forma a1 + e1 undea1 = (1,1,1,1,0,1,0,0) este un cuvant - cod,iar e1 = (0,0,0,0,1,1,0,0) 6= e (din cauzaınmultirii cu P−1).
Bob calculeaza apoi mesajul a0 = (1,1),singurul cu proprietatea a0 ·G = a1.
Ultimul pas este determinarea textului clar
a = S−1 · a0 = (0,1)
44
Algoritmul McElliece s-a dovedit sigur.
1. Din informatia publica, Oscar ıncearca saafle matricea G sau o matrice G1 a unuicod Goppa echivalent.Nu se cunoaste nici un algoritm eficientpentru un astfel de demers.
2. Oscar ıncearca sa afle mesajul clar a directdin textul criptat b.El ia aleator k coloane din matricea G′.
Notand G′k,bk, ek restrictiile lui G′,b, e la
aceste k coloane, vom avea a·G′k = bk+ek.
Daca bk = 0 si G′k este nesingulara, atunci
a poate fi aflat rezolvand sistemul liniara ·G′
k = bk.
Probabilitatea ca cei k biti selectati sa nu facaparte din eroare (deci ek = 0) este Ck
n−t/Ckn,
neglijabila pentru valorile alese ale parametrilorn, k, t.
45
Securitatea sistemului McElliece este mult
diminuata daca se foloseste alta clasa de coduri
liniare ın locul codurilor Goppa.
Totusi, ın ciuda securitatii sale si a vitezei rela-
tiv mari de criptare/decriptare sistemul nu este
folosit practic.
Cauza principala o constituie cheia sa excesiv
de mare.
De exemplu, pentru n = 1024, t = 38,
k ≥ 644, cheia are aproximativ 219 biti.
46
Generatoride numere pseudo - aleatoare
1
Numere aleatoare si numere pseudo-aleatoare
In general nu se poate vorbi de un singur numaraleator decat ıntr-un context statistic.Termenul corect este acela de sir de numerealeatoare.
Folosirea calculatorului reduce termenul de nu-mere aleatoare la un sir de biti generati aleator,grupati dupa o anumita regula.
Nu exista o modalitate mai scurta de a speci-fica sirul decat secventa ınsasi.
Definitia 1. Un generator de numere aleatoa-re, sau ”generator real aleator” (GA) este undispozitiv sau un algoritm care produce osecventa de numere independente si nepredicti-bile.
In majoritatea cazurilor, un GA genereazasecvente binare, care ulterior sunt convertite ınnumere ıntregi.
2
In criptografie este esential ca un numar alea-
tor sa nu poata fi aflat.
Un numar perfect aleator este acela pe care
Oscar nu-l poate ghici decat prin forta bruta.
Multe atacuri se bazeaza pe exploatarea imper-
fectiunilor unor functii care genereaza numere
aleatoare.
O generare de numere pur aleatoare se rea-
lizeaza prin colectarea si procesarea de date
obtinute dintr-o sursa de entropie exterioara
calculatorului.
Surse de entropie: variatiile miscarii mouse-
ului; intervalul de timp dintre apasarea a doua
taste; surse radioactive sau bazate pe zgomote
din atmosfera.
3
Proprietatea de a fi aleator a fost introdusa ın
domeniul tehnicii de calcul cu ajutorul genera-
torilor de numere pseudo-aleatoare.
Definitia 2. Fie m, k (0 < k < m) numere
ıntregi.
Un (k, m) generator de numere pseudo-alea-
toare este o aplicatie recursiva
f : Zk2 ←− Zm
2
calculabila ın timp polinomial.
In aplicatii, m = h(k) unde h este o functie
polinomiala.
4
Un generator de numere pseudo-aleatoare tre-
buie:
• Sa fie simplu si rapid.
• Sa produca siruri de numere de lungime ar-
bitrara care sa nu contina repetitii.
In calculator nu se poate construi un gene-
rator cu perioada infinita. Generatorul tre-
buie sa aiba totusi o perioada de repetitie
cat mai mare.
• Sa produca numere independente unul de
altul (sau cu o corelare cat mai vaga).
• Sa genereze numere cu o repartitie uni-
forma ın spatiul valorilor.
5
Generatori liniari congruentiali
Construit de Lehmer ın 1949. Este definit
xn+1 = axn + b (mod m)
Valorile a (multiplicatorul), b (incrementul) si
m (modulul) sunt constante.
Cheia de generare este valoarea initiala x0.
Cand b = 0, generatorul este multiplicativ.
Perioada maxima a unui generator liniar este
evident m.
Ea poate fi atinsa pentru anumite valori ale
perechii (a, b)
(de exemplu daca cmmdc(b, m) = 1).
6
Un generator liniar congruential de perioada m
se numeste generator de perioada maximala.
Cativa generatori de perioada maximala.a b m a b m
105 1283 6075 1277 24749 117128211 1663 7875 2311 25367 120050421 1663 7875 3877 29573 139968430 2531 11979 8121 28411 134456171 11213 53125 9301 49297 233280141 28411 134456 2416 374441 1771875421 17117 81000 17221 107839 5103001093 18257 86436 84589 45989 217728
Avantaj: viteza mare de calcul.
7
Criptanaliza a fost realizata de Jim Reeds ın
1977 si Joan Boyar ın 1982.
Ea a spart si generatorii patratici
xn+1 = (ax2n + bxn + c) (mod m)
si cubici
xn+1 = (ax3n + bx2
n + cxn + d) (mod m)
Alti cercetatori au extins metodele de atac
pentru spargerea oricarui generator polinomial
congruential.
Generatorii liniar congruentiali sunt folositi cu
predilectie ın aplicatii necriptografice; de exem-
plu, ın simulare ei asigura o comportare statis-
tica buna ın majoritatea testelor.
8
Generatori Ranrot
Au fost definiti de Agner Fog ın 1997, initial
pentru algoritmi de tip Monte Carlo.
Se bazeaza pe generatori de numere Fibonacci,
cu deplasare ciclica pe biti.
Sunt cunoscute si studiate trei variante degeneratori Ranrot:
• Tip A: xn = ((xn−j + xn−k) (mod 2b))� r;
• Tip B:xn = ((xn−j � r1) + (xn−k � r2)) (mod 2b);
• Tip B3:xn = ((xn−i � r1)+(xn−j � r2)+(xn−k � r3)) (mod 2b);
• Tip W:zn = ((yn−j � r3) + (yn−k � r1)) (mod 2b/2),yn = ((zn−j � r4) + (zn−k � r2)) (mod 2b/2),xn = yn + zn · 2b/2.
9
Conventii:
1. Toate numerele x sunt ıntregi binare pe b
biti;
2. 0 < i < j < k ≤ n numere ıntregi;
3. α� s este rotatia secventei α spre dreaptacu s pozitii;
4. 0 ≤ ri ≤ b − 1 pentru primele doua tipuri,0 ≤ bi ≤ b/2 pentru tipul W .
Valorile sunt calculate ıntr-un buffer Sn.Starea initiala este
S1 = (x1, x2, . . . , xk)iar trecerea de la o stare la alta se realizeazaprintr-o deplasare de forma
(xn−k, xn−k+1, . . . , xn−1)←− (xn−k+1, . . . , xn−1, xn)
10
Fie p = cmmdc(j, k).
Daca p > 1, atunci sistemul se poate descom-
pune ın p sisteme independente.
Deci o prima conditie de performanta este
cmmdc(j, k) = 1.
Din acelasi motiv, la tipul W numarul k−j este
impar.
Pentru ca toate elementele din Sn sa ramana
interdependente, trebuie ca cel putin un r sa
fie nenul.
Prin experimente s-a gasit ca cele mai bune
valori pentru numarul de pozitii rotite este
aproximativb
2pentru tipul A,
b
3si
2b
3pentru
tipul B sib
4,
b
2,3b
4pentru tipul B3.
Lungimea maxima a unei perioade la un gen-
erator Ranrot este (2k − 1) · 2b−1.
11
Nu se cunoaste un algoritm de obtinere de
generatori Ranrot de perioada maximala.
Cel mai mare generator analizat are 232 stari.
Exemplul 1. Un generator Ranrot de tipul A
cu j = 1, k = 4, b = 7, r = 4 are 24 cicluri de
perioade
1,5,9,11,14,21,129,6576,8854,16124,17689,
135756,310417,392239,488483,1126126,
1355840,1965955,4576377,7402465,
8393724,57549556,184256986.
12
Importanta restrictiilor impuse diverselor tipuride generatori Ranrot:
Regula A B B3 Wcmmdc(j, k) =cmmdc(j, i) =
cmmdc(k, i) = 1*** *** *** ***
1 < i < j < k − 1 ** * * *k − j impar - - - ***un r 6= 0 *** *** *** **toti r 6= 0 *** ** * -r distincti - ** ** **
r > 1 *** ** * *cmmdc(r, b) = 1 * * * *cmmdc(b, k) = 1 * * * *
S-a notat cu:
− o regula fara importanta,
∗ - importanta minora,
∗∗ - nerespectarea ei duce la aparitia unor
cicluri de perioada mica,
∗ ∗ ∗ - regula importanta.
13
Generatorii Ranrot sunt usor de spart, deoarece
starea initiala se poate deduce usor din k valori
consecutive ale lui x.
Daca ınsa parametrii nu se cunosc, generatorii
Ranrot pot fi folositi cu succes ın criptografie,
avand o securitate sporita.
Exista un sistem de criptare (Power Crypto)
bazat pe generatorul Ranrot de tip B3.
14
Generatorul Blum - Blum - Shub
Cel mai simplu si – se pare – cel mai eficientgenerator de numere pseudo - aleatoare este:BBS (numit si generator rezidual patratic).
Definitia 3. Fie p, q doua numere prime. Daca
p ≡ 3 (mod 4), q ≡ 3 (mod 4)
atunci numarul n = pq se numeste ıntreg Blum.
Algoritmul BBS pe scurt:
Fie n = pq un ıntreg Blum, unde p, q sunt nu-mere prime pe k/2 biti.
Fie x0 un reziduu patratic modulo n.Se defineste secventa
xi+1 = x2i (mod n)
Daca zi = xi (mod 2) pentru 1 ≤ i ≤ m, atuncinumarul aleator generat este
f(x0) = z1z2 . . . zm.
15
Bitii zi (1 ≤ i ≤ m) se pot calcula direct:
zi = x2i (mod (p−1)(q−1))0 (mod 2)
Exemplul 2. Fie p = 383, q = 503; deci
n = 192649.
Alegand x0 = 1013552 = 20749 (modn),
generatorul BBS va produce
110011100001001110
i 0 1 2 3 4 5xi 20749 143135 177671 97048 89992 174051zi − 1 1 0 0 1
i 6 7 8 9 10 11xi 80649 45663 69442 186894 177046 137922zi 1 1 0 0 0 0
i 12 13 14 15 16 17 18xi 123175 8630 114386 14863 133015 106065 45870zi 1 0 0 1 1 1 0
16
Securitatea BBS se bazeaza pe dificultatea
factorizarii lui n.
Mai mult, fiind data o parte a secventei,
nu exista nici o modalitate de a prezice bitul
anterior sau cel ulterior secventei.
Algoritmul BBS este destul de lent, dar are
unele implementari mai rapide.
Astfel, daca n este lungimea lui xi, pot fi
pastrati ultimii blog2xic biti.
In acest moment BBS este considerat cel mai
bun generator de numere pseudo-aleatoare
pentru protocoale de generare si distributie a
cheii.
17
Circuite liniare
Circuitele liniare (Shift Registers) sunt folosite
ın teoria codurilor detectoare si corectoare de
erori precum si ın unele sisteme de criptare
bloc.
Asigura viteza mare de calcul.
Un LFSR (Linear Feedback Shift Register)
este un circuit liniar format dintr-un registru
serial si o functie de ıntoarcere (feedback).
Daca registrul este compus din n flip-flopuri de
date (DF − F ), avem un n− LFSR.
Functie de ıntoarcere
bn bn−1 . . . b2 b1 -
????
�
6-
Functia de ıntoarcere este un XOR ıntre anu-
miti biti din registru.
18
Exemplul 3. Sa consideram un 4− LFSR:
� ��- - - -
?��
6-
?
s s+
Sa presupunem ca initial cei patru biti
din registru sunt 1001.
La fiecare tact se obtine o noua configuratie:
0100, 0010, 0001, 1000, 1100, 1110, 1111, 0111,
1011, 0101, 1010, 1101, 0110, 0011
dupa care apare din nou 1001.
La iesire va apare secventa
1001000111101011
Este un generator de perioada 16.
19
Un n − LFSR poate avea maxim 2n − 1 staridistincte.
Fie g(X) ∈ Z2[X], g(X) = 1+g1X + . . .+gnXn
polinomul asociat unui n− LFSR, unde gi = 1daca si numai daca bitul i participa la o adunaremodulo 2.In Exemplul 3: g(X) = 1 + X + X4.
Fie polinomul g(X) ∈ Z2[X], grad(g(X)) = nsi m cel mai mic numar astfel ca g(X)|Xm +1.Atunci secventa binara generata de unn− LFSR asociat lui g(X) are perioada m.
Daca g(X) este un polinom ireductibil pesteZ2, atunci m = 2n − 1 (maxim).
Lema 1. Un polinom g(X) ∈ Z2[X] este ire-ductibil daca si numai daca
1. Are un numar impar de termeni;
2. Cel putin un termen este de forma X2p+1.
20
Generatorul Geffe
Combina ıntr-o forma neliniara trei LFSR:
LFSR1
LFSR3
LFSR2
EMUX
-
-
-
6
-
i0
i1
Daca a1, a2, a3 sunt iesirile din LFSR-uri,
iesirea din generatorul Geffe este
b = (a1 ∧ a2)⊕ (a1 ∧ a3)
Perioada generatorului este cel mai mic multi-
plu comun al perioadelor celor trei LFSR-uri.
Deci, daca cele trei polinoame care definesc
circuitele au grade prime ıntre ele, perioada
generatorului Geffe este produsul celor trei pe-
rioade.
21
Din punct de vedere criptografic generatorulGeffe nu rezista unui atac prin corelare.
Iesirea din generator coincide cu iesirea dinLFSR2 cam 75% din timp.
Deci, daca definitiile polinomiale ale circuitelorsunt cunoscute se poate ghici valoarea initialadin LFSR2 si genera secventa sa de iesire.
Apoi se numara de cate ori iesirea din LFSR2
coincide cu iesirea din generator.
Statistic, daca nu s-a ghicit corect, cele douasecvente coincid cam 50%;daca s-a ghicit corect, ele coincid cam 75%.
Similar, iesirea generatorului coincide cu ceadin LFSR3 cam 75% din timp.
Cu aceste corelari secventa poate fi ghicitacomplet.
22
Generatorul Geffe poate fi extins la 2k + 1
LFSR legati printr-un MUXk.
Acest lucru nu va mari ınsa securitatea
generatorului.
23
Generatori ”Stop-and-Go”
1. Cel mai cunoscut este Beth - Piper:
LFSR3
LFSR2 ��
��
��
��
LFSR1
-6
-
6-
-
? --6
-
6--
-6
ss
CK
a1(t)a2(t)
a3(t)
b(t)
Acest generator controleaza ceasurile celor trei
circuite.
Ceasul de intrare ın LFSR2 este controlat de
iesirea din LFSR1. LFSR2 schimba starea la
momentul t numai daca iesirea din LFSR1 la
momentul t− 1 a fost 1.
Nu se cunosc studii asupra complexitatii aces-
tui generator.
El totusi nu a rezistat atacurilor prin corelare.
24
2. Stop-and-Go alternativ
Foloseste trei LFSR de lungimi diferite:
LFSR3
LFSR2LFSR1
����
��
��
��
-
?-XX��e-
-
6-
6
-
-? -6
-
? -6
-
? -
-
6-
-
ss
s
CK
Cand iesirea din LFSR1 este 1 ea activeaza
LFSR2; ın caz contrar este activat LFSR3.
Acest generator are o perioada mare.
Exista un atac prin corelare asupra sa (mai
precis asupra LFSR1), dar acesta nu i-a slabit
substantial securitatea.
25
3. Generator Gollmann
Extensie ”ın cascada” a mai multor circuite
LFSR, ceasul fiecarui LFSR fiind controlat de
circuitul anterior.
LFSR1
��
��
��
�� LFSR2
��
��
��
�� LFSR2
��
��
��
��
-6-
6-
6
- - -
? -6
-- -
? -6
?- 6-
?- 6-
?-- -
s ss
ss1
CK . . .
. . .
Daca la momentul t−1 iesirea din LFSRi este
1, atunci la momentul t este activat LFSRi+1.
Daca toate circuitele liniare au aceiasi lungime
n, complexitatea unui generator Gollmann cu
k LFSR-uri este n · (2n − 1)k−1.
26
Generatorul Blum - Micali
Fie g un numar prim, p un numar prim impar
si x0 o valoare initiala.
Se genereaza numerele
xi+1 = gxi (mod p)
Iesirea din generator este 1 daca xi <p− 1
2si
0 altfel.
Securitatea acestui sistem se bazeaza pe
problema logaritmului discret.
Daca p este suficient de mare astfel ca
problema logaritmului discret sa fie dificila,
generatorul este considerat sigur.
27
Generatorul RSA
Fie n = pq un modul obtinut prin produsul a
doua numere prime mari, un numar e astfel ca
cmmdc(e, (p − 1) · (q − 1)) = 1 si x0 o valoare
initiala (x0 < n).
Se defineste
xi+1 = xei (mod n)
Iesirea din generator este zi = xi (mod 2).
Securitatea generatorului se bazeaza pe difi-
cultatea spargerii sistemului RSA.
Daca n este suficient de mare, sistemul este
considerat sigur.
28
Generatorul Mother-of-all
Este propus de George Marsaglia, fiind extremde rapid ın implementare pe limbaj de asam-blare.
Se aleg cinci numere ıntregi x0, x1, x2, x3, c
(nu toate nule), stocate pe 32 biti fiecare.Algoritmul este:
1. n←− 4;
2. while n ≤MAX do
(a) S ←− 2111111111 · xn−4 + 1492 · xn−3 + 1776 ·xn−2 + 5115 · xn−1 + c;
(b) xn ←− S (mod 232), c←−⌊
S
232
⌋;
(c) n←− n + 1;
Suma intermediara S este stocata pe 64 biti.
Valoarea MAX este stabilita ın functie delungimea secventei pseudo-aleatoare generate.
29
Generatorul 1/P
Fie P un numar prim impar si b un generator
al lui Z∗P .
Secventa produsa de generatorul 1/P cu in-
trarea (b, P ) este sirul de cifre din reprezentarea
numerica a fractiei 1/P ın baza b.
Secventa obtinuta este periodica de perioada
P − 1 : 1/P = q1q2 . . . qP−1qP . . .
Exemplul 4. Fie b = 10 si P = 7.
Secventa produsa de 1/P cu intrarea (10,7)
este 142857142 . . ., deoarece
1/7 = 0,142857142 . . .
Evident, lungimea perioadei este P − 1 = 6.
30
Desi generatorul 1/P are proprietati care ıl
situeaza printre generatorii performanti din
punct de vedere al distributiei datelor,
criptografic este slab.
Astfel, notand cu s numarul de cifre din
reprezentarea binara a lui P , se poate
demonstra:
- Daca se stie P si o secventa de caractere
din sir egala cu s, aceasta se poate extinde la
dreapta si la stanga.
- Daca se stiu orice 2s+1 elemente consecutive
din sir, se poate reconstitui valoarea lui P .
31
Generatorul ANSI X9.17
ANSI X9.17 este standard FIPS folosit pen-tru generarea de chei pseudo-aleatoare si vec-tori de initializare (V I) din modurile de operareDES.
Foloseste sistemul de criptare 3DES.
Intrare:
- s: secventa aleatoare secreta de 64 biti;
- K: cheia de criptare pentru 3DES;
- m: numar ıntreg (lungimea secventei
generate).
Iesire: m secvente de cate 64 biti.
Algoritm:
1. I = eK(s);
2. for i←− 1 to m do
2.1. xi ←− eK(s⊕ I);
2.2. s←− eK(xi ⊕ I).
3. output(x1, x2, . . . , xm).
32
Securitatea generatorilor de numere
pseudo-aleatoare
Proprietatea de aleatorism a secventelor se
masoara prin teste statistice.
Un generator de secvente pseudo-aleatoare
trece testele statistice daca se comporta
similar sau identic cu un generator real aleator.
Din punct de vedere criptografic, securitatea
generatorului depinde de eficienta computatio-
nala a algoritmului folosit, precum si de posi-
bilitatea ca un adversar – cunoscand secventa
pseudo-aleatoare rezultata – sa determine
parametrii secreti ai algoritmului.
Un sir poate fi bun din punct de vedere sta-
tistic, dar sa prezinte numeroase defecte de
securitate criptografica.
33
Definitia 4.Un generator G este ”nediferentia-
bil (ın timp) polinomial” daca nu exista nici un
text statistic eficient care sa poata decide ca G
este diferit de un generator real aleator (GA).
Lema 2.Daca generatorul G este nediferentia-
bil polinomial, atunci nu exista nici un algoritm
de complexitate polinomiala (”eficient”) care
sa-l poata sparge.
34
Exemplul 5. Pentru generatorul 1/P se poate
construi un test statistic care determina daca –
pentru un numar prim arbitrar de n cifre binare
– o secventa de 3n numere a fost extrasa din
1/P sau a fost generata aleator.
Astfel, pentru generarea lui P se utilizeaza
2n + 1 elemente (din cele 3n).
Apoi, folosind acest P se genereaza 3n cifre,
care se compara cu secventa data.
Daca cele doua secvente se potrivesc, atunci
(cu o probabilitate de cel putin 1− 12n−1)
sirul a fost produs de generatorul 1/P .
35
Teste statistice
Pachete de teste utilizate ca standarde pentru
evaluarea securitatii generatorilor de numere
pseudo-aleatoare:
• DIEHARD (15 teste elaborate de George
Marsaglia)
• NIST (16 teste elaborate de Institutul de
Standarde din SUA).
Testele au o valoare direct proportionala cu
lungimea n a secventei testate.
In general ordinul de marime al lui n este ın
intervalul [103,107].
36
Exemple de teste
• Verifica daca numarul de 0 si de 1 dinsecventa sunt aproximativ egale.
• Calculeaza si analizeaza frecventabigramelor, trigramelor etc.
• Determina frecventa de aparitie a bitului 1ın cadrul blocurilor de M caractere conse-cutive (M fixat).
• Analizeaza numarul de iteratii din sir(”iteratie” = o secventa neıntrerupta debiti identici).
• Calculeaza rangul submatricilor create dinsecventa ce este testata; scopul este de averifica independenta liniara a subsirurilorde lungime fixata. Acest test apare atat ınpachetul DIEHARD cat si ın NIST .
37
• Determina numarul de aparitii ale unorsecvente tinta fixate.
• Calculeaza frecventa secventelor de oanumita lungime.
• Cerceteaza daca secventa poate fi compri-mata semnificativ fara pierderi de informa-tie; un sir care poate fi comprimat esteconsiderat nealeator.
• Calculeaza abaterea maxima de la 0 asumelor partiale ale secventei (ın care 0este ınlocuit cu −1), pentru a determinadaca suma cumulativa a unui subsir esteprea mare sau prea mica ın comparatie cucea corespunzatoare a unui sir aleator(unde aceste sume sunt apropiate de zero).Tot aici se urmareste de cate ori sumelepartiale au valoarea 0.
38
Prelegerea 7
Sisteme de partajare a secretelor
1
2 PRELEGEREA 7. SISTEME DE PARTAJARE A SECRETELOR
7.1 Sistemul confidential al lui Shamir
Intr-o banca, seiful trebuie deschis ın fiecare zi.Banca are trei directori, dar nu ıncredinteaza combinatia 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 fie imposibil pentruunul singur.
In Rusia, accesul la arma nucleara utilizeaza tot un sistem doi - din -trei.
Cele trei persoane sunt Presedintele tarii, Presedintele Parlamentului siMinistrul Apararii.
(Time Magazin 4 mai 1992)
7.1. SISTEMUL CONFIDENTIAL AL LUI SHAMIR 3
Sistem de partajare a secretului numit sistem confidential(Threshold scheme ın engleza, a seuil ın franceza).
Definitia 7.1 Fie t, w doua numere ıntregi pozitive, t ≤ w. Un sistemconfidential (t, w) este o metoda de partajare a unei chei K ıntre mem-brii unei multimi P de w participanti, astfel ıncat orice asociere de t
participanti sa poata calcula K, lucru imposibil pentru asocieri de t − 1sau mai putini participanti.
Valoarea lui K este aleasa de un arbitru D.Se presupune ca D 6∈ P .
D va distribui ın secret componente ale cheii membrilor grupului P ,astfel ıncat nici un participant sa nu cunoasca componentele celorlalti sinici sa fie capabil ca din componenta sa sa poata recompune cheia K.
Ulterior, participantii unei submultimi B ⊆ P pot pune ın comun com-ponentele cheii cunoscute de ei (sau sa le dea unei autoritati ın care auıncredere) cu scopul de a determina K.
Ei trebuie sa poata reusi ın aceasta tentativa daca si numai daca
card(B) ≥ t
4 PRELEGEREA 7. SISTEME DE PARTAJARE A SECRETELOR
P= {Pi | 1 ≤ i ≤ w}
multimea celor w participanti.K este spatiul tuturor cheilor posibile, iar S este spatiul componentelor
(toate componentele posibile ale cheii).Sistemul este creat de Shamir ın 1979.
Fie p (p ≥ w +1) un numar prim si K= Zp, S= Zp (cheile si componen-tele sunt numere din Zp).
Sistemul confidential al lui Shamir se bazeaza pe un polinom aleatora(X) de grad cel mult t− 1, ın care termenul liber este K.
Fiecare participant Pi afla un punct (xi, yi) de pe graficul acestui poli-nom.
1. (Initializare): D alege w elemente distincte x1, . . . , xw ∈ Zp
(xi publice), fiecare xi fiind comunicat lui Pi.
2. Sa presupunem ca D doreste sa repartizeze cheia K ∈ Zp. D va selectaaleator t− 1 elemente a1, . . . , at−1 ∈ Zp si construieste polinomul
a(X) = Kt−1∑j=1
ajXj (mod p).
3. D calculeaza yi = a(xi) si comunica aceasta valoare lui Pi (1 ≤ i ≤ w).
7.1. SISTEMUL CONFIDENTIAL AL LUI SHAMIR 5
Fie o submultime {Pi1, . . . , Pit} de participanti care doresc sa reconsti-tuie cheia.
Ei stiu valorile xij si yij = a(xij) pentru 1 ≤ j ≤ t;a(X) ∈ Zq[X] este polinomul (secret) folosit de D.
Cum gradul lui este cel mult t− 1, putem scriea(X) = a0 + a1X + . . . + at−1X
t−1
unde a0 = K iar a0, . . . , at−1 ∈ Zq sunt necunoscute.Ele se afla rezolvand sistemul liniar de t ecuatii yij = a(xij).Daca ecuatiile sunt independente, solutia este unica, iar valoarea lui a0
este chiar cheia K.
Exemplul 7.1 Sa presupunem p = 17, t = 3, w = 5, iar xi = i, (1 ≤ i ≤5). Daca B = {P1, P3, P5} vor sa afle cheia aducand fiecare informatiile8, 10 si respectiv 11, ei vor scrie polinomul general a(X) = a0+a1X+a2X
2
si vor reduce problema la rezolvarea ın Z17 a sistemului liniara(1) = a0 + a1 + a2 = 8a(3) = a0 + 3a1 + 9a2 = 10a(5) = a0 + 5a1 + 8a2 = 11
Acesta admite solutia unica ın Z17 : a0 = 13, a1 = 10, a2 = 2.Deci valoarea cautata este K = 13.
Teorema 7.1 In sistemul confidential al lui Shamir, orice multime B det participanti poate reconstitui ın mod unic cheia K.
6 PRELEGEREA 7. SISTEME DE PARTAJARE A SECRETELOR
Ce se ıntampla daca un grup de t− 1 participanti ıncearca sa calculezecheia K ?
Daca procedeaza conform algoritmului anterior, vor obtine un sistem det− 1 ecuatii cu t necunoscute.
Fie y0 o valoare arbitrara a cheii K.Vom avea y0 = a0 = a(0), care formeaza a t - a ecuatie a sistemului.Acesta ofera de asemenea solutie unica.Deci, pentru orice valoare K ∈ Zp exista un polinom unic aK(X) ∈
Zp[X] care verifica toate conditiile:yij = aK(xij) (1 ≤ j ≤ t− 1), y0 = aK(0).
Rezulta ca orice valoare a lui K este consistenta cu componentele detinutede cei t− 1 participanti; asocierea lor nu ofera nici o informatie suplimen-tara pentru aflarea cheii.
7.1. SISTEMUL CONFIDENTIAL AL LUI SHAMIR 7
Plecand de la alta reprezentare sub forma de polinoame de interpolareLagrance, se poate construi o varianta mai simpla a algoritmului Shamirpentru cazul w = t.
Ea functioneaza pentru K= Zm, S= Zm (m nu este obligatoriu numarprim si – chiar mai mult – este posibil ca m ≤ w). Noul algoritm este:
1. D alege aleator t− 1 elemente y1, . . . , yt−1 ∈ Zm;
2. D calculeaza yt = K −t−1∑i=1
yi (mod m);
3. Fiecare element yi este transmis ın secret lui Pi (1 ≤ i ≤ t).
Cei t participanti pot determina cheia K pe baza formulei
K =t∑
i=1yi (mod m).
Evident, t−1 participanti nu pot obtine cheia K. Chiar daca pun ın comuncomponentele lor, ei pot determina valoarea K−y, unde y este componentacelui care lipseste. Cum y este o valoare aleatoare din Zm, nu se va obtinenici o informatie suplimentara referitoare la cheie.
Acesta este deci un sistem confidential (t, t).
8 PRELEGEREA 7. SISTEME DE PARTAJARE A SECRETELOR
7.2 Structura de acces si partaj a secretului general
Am studiat situatia cand orice asociere de t participanti din totalul de w
poate calcula cheia.Restrangem conditia, specificand ce submultimi de participanti pot avea
acces la cheie si pentru ce submultimi acest acces este interzis.
Fie Γ o multime de submultimi ale lui P , fiecare din ele reprezentand oasociatie autorizata sa calculeze cheia K.
Γ se numeste structura de acces, iar submultimile ei se numesc submultimiautorizate.
Fie K o multime de chei si S o multime de componente.Cand arbitrul D doreste sa repartizeze o cheie K ∈ K, el va distribui
cate o componenta fiecarui participant, urmand ca ulterior, o submultimede participanti sa ıncerce sa determine K punand ın comun componentelecunoscute de ei.
Definitia 7.2 Un sistem perfect de partajare a secretelor cu structura deacces Γ este un procedeu de partajare a secretului unei chei K peste omultime P de participanti, astfel ıncat:
1. Orice submultime autorizata B ⊆ P de participanti poate reconstituicheia din componentele cunoscute de ei;
2. Orice submultime neautorizata B ⊆ P de participanti nu poseda nicio informatie despre valoarea lui K.
7.2. STRUCTURA DE ACCES SI PARTAJ A SECRETULUI GENERAL 9
Un sistem confidential (t, w) realizeaza structura de acces
Γ= {B ⊆ P | card(B) ≥ t}.
O asemenea structura de numeste structura confidentiala.
Sistemul confidential al lui Shamir este perfect si realizeaza o structuraconfidentiala.
10 PRELEGEREA 7. SISTEME DE PARTAJARE A SECRETELOR
Securitatea sistemelor de partajare a secretelor.
Fie B ∈ Γ si B ⊆ C ⊆ P.
Daca C cauta sa determine cheia K, ea va reusi lucrand numai cu B siignorand participantii din C \B.
Altfel spus, structura de acces satisface conditia de monotonie:Daca B ∈ Γ si B ⊆ C ⊆ P, atunci C ∈ Γ.
In continuare vom presupune ca orice structura de acces este monotona.
Un element B ∈ Γ este minimal daca ∀A ⊂ B =⇒ A 6∈ Γ.
Vom nota cu Γ0 multimea elementelor minimale din Γ.
Se observa ca aceasta multime caracterizeaza complet Γ:
Γ= {C ⊆ P | ∃B ∈ Γ0, B ⊆ C}.
Spunem ca Γ este ınchiderea lui Γ0 si notam prin Γ = Γ0.
Exemplul 7.2 Fie P= {P1, P2, P3, P4} si
Γ0= {{P1, P2, P4}, {P1, P3, P4}, {P2, P3}}.Vom avea
Γ= {{P1, P2, P4}, {P1, P3, P4}, {P2, P3}, {P1, P2, P3}, {P2, P3, P4}, {P1, P2, P3, P4}}.
Invers, fiind dat Γ, se vede imediat ca Γ0 este multimea partilor saleminimale.
In cazul structurilor confidentiale de acces, baza este multimea submultimilorformate cu t participanti.
7.3. CONSTRUCTIA CIRCUITELOR MONOTONE 11
7.3 Constructia circuitelor monotone
Ideea apartine lui Benaloh si Leichter; ea consta ın construirea unui circuitcombinational care recunoaste structura de acces si genereaza un sistem departajare a secretului.
Un astfel de circuit este numit circuit monoton.
Fie C un circuit computational cu w intrari notate prin variabilelebooleene x1, . . . , xw (corespunzatoare celor w participanti P1, . . . , Pw) sio iesire booleana y = C(x1, . . . , xw).
Presupunem ca la constructia circuitului sunt folosite numai porti AND
si OR (fara porti NOT ).Un astfel de circuit este numit ”monoton” daca modificarea unei intrari
din 0 ın 1 nu va implica niciodata transformarea iesirii y din 1 ın 0.
Se noteaza
B(x1, . . . , xw) = {Pi | xi = 1}
multimea participantilor asociati ın multimea B.Presupunand ca circuitul C este monoton, vom avea
Γ(C)= {B(x1, . . . , xw) | C(x1, . . . , xw) = 1}.
Circuitul C fiind monoton, Γ(C) este o multime monotona de parti alelui P .
12 PRELEGEREA 7. SISTEME DE PARTAJARE A SECRETELOR
Fiind data o multime monotona Γ de parti ale lui P , se poate construiusor un circuit monoton C cu Γ(C)= Γ.
Exemplu de constructie:Fie Γ0 o baza a lui Γ. Vom construi formula booleana (ın forma normal
disjunctiva) ∨B∈Γ0
∧Pi∈B
Pi
Fiecare clauza din aceasta forma normala este legata printr-o poarta
AND, iar disjunctia finala corespunde unei porti OR.Numarul total de porti folosite este card(Γ0) + 1.
7.3. CONSTRUCTIA CIRCUITELOR MONOTONE 13
Fie C un circuit monoton care recunoaste Γ.Algoritm care permite arbitrului D sa construiasca un sistem perfect de
partajare a secretului cu structura de acces Γ.Se foloseste sistemul confidential (t, t) prezentat anterior.Multimea cheilor este deci K= Zm.Algoritmul parcurge circuitul de la iesire spre intrare, marcand recursiv
cu xV ∈ K, fiecare arc V parcurs (ın sens invers).Initial, arcului care marcheaza iesirea y i se atribuie valoarea xout = K
a cheii.
1. xout ← K;
2. pentru orice poarta G din care iese un arc marcat x, iar arcele careintra sunt nemarcate, executa:
(a) Daca G este o poarta OR, atunci xV ← x pentru orice arc V careintra ın G;
(b) Daca G este o poarta AND si V1, . . . , Vt sunt arcele care intra ınG, atunci
i. Alege aleator xV,1, . . . , xV,t−1 ∈ Zm;
ii. Calculeaza xV,t = x−t−1∑i=1
xV,i (mod m);
iii. Marcheaza arcul Vi cu xV,i, (1 ≤ i ≤ t).
14 PRELEGEREA 7. SISTEME DE PARTAJARE A SECRETELOR
Exemplul 7.3 Pentru multimea din Exemplul 7.2, avemΓ0= {{P1, P2, P4}, {P1, P3, P4}, {P2, P3}}
Expresia booleana asocialta
(P1 ∧ P2 ∧ P4) ∨ (P1 ∧ P3 ∧ P4) ∨ (P2 ∧ P3).
Circuitul monoton asociat este (au fost marcate si arcele, conform algo-ritmului descris):
� �� ��� � � ��
?
? -?
?�??
u uuu? -
??
?�
? ?
?�
?
-
?
?�
?
-
?
x1 x2 x3 x4
K
K KK
a1 b1a2 c1 K−c1 b2K−a1−a2 K−b1−b2
Aici a1, a2, b1, b2, c1, c2 sunt numere alese aleator ın Zm. Fiecare participantprimeste drept componenta doua numere:
1. a1 si b1 pentru P1,2. a2 si c1 pentru P2,3. b2 si K − c1 pentru P3,4. K − a1 − a2 si K − b1 − b2 pentru P4.Fiecare submultime autorizata poate calcula valoarea lui K.Astfel, {P1, P2, P4} determina K = a1 +a2 +(K−a1−a2), submultimea
{P1, P3, P4} calculeaza K = b1 + b2 + (K − b1− b2), iar {P2, P3} va calculaK = c1 + (K − c1).
7.3. CONSTRUCTIA CIRCUITELOR MONOTONE 15
Sa vedem ce se ıntampla cu multimile neautorizate.
Daca o multime B este neautorizata, orice submultime a sa va fi deasemenea neautorizata.
Definitia 7.3 O multime B ⊆ P este maximal neautorizata daca∀B1 ⊂ B =⇒ B1 ∈ Γ.
Este suficient deci de demonstrat ca multimile maximal neautorizate nupot afla cheia din informatiile pe care le detin.
Exemplul 7.4 Revenind la exemplul anterior, multimile maximal neau-torizate sunt
{P1, P2}, {P1, P3}, {P1, P4}, {P2, P4}, {P3, P4}.
In fiecare caz, pentru determinarea cheii K lipseste o informatie definitaaleator.
De exemplu, {P1, P2} detin informatiile a1, a2, b1 si c1.Pentru a reconstitui cheia K ar avea nevoie cel putin de numarul
K − a1 − a2, sau de K − c1.
Sisteme cu aceeasi structura de acces pot fi obtinute folosind si alte circuite.
Cand o multime autorizata B doreste aflarea cheii, ea trebuie sa stiecircuitul utilizat de arbitru pentru construirea sistemului si sa deduca deaici ce componente sunt necesare pentru parcurgerea arcelor respective.
Aceasta informatie trebuie sa fie publica.Numai valorile componentelor trebuie sa fie secrete.
16 PRELEGEREA 7. SISTEME DE PARTAJARE A SECRETELOR
7.4 Rata de informatie
Fie P o multime de participanti si S spatiul tuturor componentelor posibileale cheii.
O distributie de componente este o functief : P−→ S
Ea codifica modalitatea de repartizare a informatiilor ıntre participanti.f(Pi) va fi componenta distribuita participantului Pi (1 ≤ i ≤ w).
Pentru fiecare K ∈ K, fie FK multimea tuturor distributiilor posibileale cheii K.
In general, FK este publica.
DefinimF=
⋃K∈KFK .
F este ansamblul complet al tuturor distributiilor posibile de chei.Rolul arbitrului va fi de a selecta aleator un element f ∈ FK si de a
distribui componentele ın conformitate cu aceasta alegere.
Pentru o submultime B ⊆ P (autorizata sau nu) de participanti, sedefineste S(B) = {f |B | f ∈ F}, unde functia
fB : B −→ S
este restrictia distributiei de parti f la submultimea B,definita prin fB(Pi) = f(Pi), ∀Pi ∈ B.
Deci S(B) este multimea tuturor distributiilor posibile ale componen-telor la elementele submultimii B.
7.4. RATA DE INFORMATIE 17
Ne punem problema evaluarii performantelor sistemelor perfecte de par-tajare a secretelor construite anterior, pe baza structurilor de acces monotone.
In cazul unui sistem confidential (t, w), circuitul boolean construit pebaza expresiei ın forma normal disjunctiva are 1 + Ct
w porti.Fiecare participant primeste o componenta formata din Ct−1
w−1 numeredin Zm.
Aceasta partajare este foarte slaba comparativ cu sistemul confidentialal lui Shamir (t, w), care ofera acelasi rezultat folosind componente formatedintr-un singur numar.
Pentru masurarea performantelor sistemelor perfecte de partajare a se-cretelor, vom folosi un instrument numit rata de informatie.
Definitia 7.4 Fie un sistem perfect de partajare a secretelor cu structurade acces Γ. Rata de informatie a unui participant Pi este prin definitie
ρi =log2(card(X))
log2(card(S(Pi))).
S(Pi) ⊆ S este multimea componentelor posibile pe care le poate primiparticipantul Pi.
S-a notat cu X = K multimea cheilor posibile.Rata de informatie a sistemului este
ρ = min{ρi | 1 ≤ i ≤ w}.
Exemplul 7.5 Sistemul din Exemplul 7.3 are rata de informatie
ρ =log2m
log2m2 =1
2
18 PRELEGEREA 7. SISTEME DE PARTAJARE A SECRETELOR
In general, daca se construieste un sistem de partajare a secretelorplecand de la un circuit monoton C, rata sa de informatie se obtine folosindurmatoarea teorema:
Teorema 7.2 Fie C un circuit boolean monoton. Exista atunci un sistemperfect de partajare a secretelor, cu structura de acces Γ(C), care admiteca rata de informatie
ρ = max1≤i≤w
{1
ri
}unde ri este numarul de arce de intrare ın circuit (pentru valorile xi).
Evident, este preferabila o rata de informatie cat mai mare. Valoarea eieste ınsa limitata superior:
Teorema 7.3 Pentru orice sistem perfect de partajare a secretelor cu struc-tura de acces Γ, rata de informatie verifica inegalitatea ρ ≤ 1.
Un sistem cu ρ = 1 va fi numit ideal.De exemplu, sistemul confidential al Shamir are ρ = 1, deci este un
sistem ideal.In schimb, rata de informatie pentru un sistem confidential (t, w) bazat
pe circuite monotone construite cu forma normal disjunctiva este1
Ct−1w−1
,
extrem de ineficienta daca 1 < t < w.
7.5. SISTEMUL DE PARTAJARE AL LUI BRICKELL 19
7.5 Sistemul de partajare al lui Brickell
Sistemul este cunoscut si sub numele: constructia vectoriala a lui Brickell.
Fie Γ o structura de acces, p un numar prim, iar d ≥ 2 un numar ıntreg.Fie
π : P−→ Zdp
o functie cu proprietatea
(1, 0, . . . , 0) ∈ 〈π(Pi) | Pi ∈ B〉 ⇐⇒ B ∈ Γ. (A)
Altfel spus, vectorul (1, 0, . . . , 0) este o combinatie liniara de vectoridin multimea {π(Pi) | Pi ∈ B} daca si numai daca B este o submultimeautorizata.
20 PRELEGEREA 7. SISTEME DE PARTAJARE A SECRETELOR
Construim un sistem de partajare a secretelor cuK= S(Pi) = Zp (1 ≤ i ≤ w).
Pentru orice a = (a1, . . . , ad) ∈ Zdp . vom defini o functie de distributie
a componentelor fa : P−→ S prin fa(x) = a · π(x).
S-a notat cu ”·” produsul scalar a doi vectori.Algoritmul de partajare a secretelor Brickell:
1. (Initializare) D atribuie lui Pi vectorul π(Pi) ∈ Zdp (1 ≤ i ≤ w).
Acesti vectori sunt publici.
2. Pentru repartizarea cheii K ∈ Zp, arbitrul D alege aleator d − 1 ele-mente a2, . . . , ad ∈ Zp.
3. Folosind vectorul a = (K, a2, . . . , ad), arbitrul calculeaza componenta
yi = a · π(Pi) (1 ≤ i ≤ w), pe care o da lui Pi.
Vom avea rezultatul urmator:
Teorema 7.4 Daca π verifica proprietatea (A), multimea distributiilor decomponente FK ,
K ∈ K formeaza un sistem perfect de partajare a secretelor, cu structurade acces Γ.
Sistemul confidential (t, w) al lui Shamir este un caz particular al acesteiconstructii. Intr-adevar, fie d = t si π(Pi) = (1, xi, x
2i , . . . x
t−1i ), pentru
1 ≤ i ≤ w, unde xi este coordonata x data de Pi.Sistemul obtinut astfel este echivalent cu cel al lui Shamir.
7.5. SISTEMUL DE PARTAJARE AL LUI BRICKELL 21
Un alt rezultat general se refera la structurile de acces care admit cabaza un ansamblu de perechi care definesc un graf multipartit complet.
Reamintim, un graf G = (V, E) este multipartit complet daca V sepoate partitiona ın submultimile V1, . . . , Vs astfel ıncat {x, y} ∈ E daca sinumai daca x ∈ Vi, y ∈ Vj cu i 6= j.
Multimile Vi se numesc componente. Daca card(Vi) = ni (1 ≤ i ≤ s),graful este notat Kn1,...,ns
. Graful multipartit complet K1,...,1 cu s compo-nente este de fapt un graf complet si se noteaza Ks.
Teorema 7.5 Fie G = (V, E) un graf multipartit complet. Atunci existaun sistem perfect de partajare a secretelor, ideal, cu structura de acces E
peste multimea V de participanti.
22 PRELEGEREA 7. SISTEME DE PARTAJARE A SECRETELOR
Aplicam acest rezultat considerand structurile de acces posibile pentrupatru participanti.
Va fi suficient sa luam ın calcul numai structurile a caror baza nu sepoate partitiona ın doua multimi nevide.
O lista completa a structurilor de acces neizomorfe pentru 2, 3 sau 4participanti este(s-a notat cu ρ∗ valoarea maxima a ratei de informatiepentru structura respectiva):
Nr.crt w Submultimile lui G0 ρ∗ Rezultate
1. 2 P1P2 1 Confidential (2, 2)
2. 3 P1P2, P2P3 1 Γ0 ' K1,2
3. 3 P1P2, P2P3, P1P3 1 Confidential (2, 3)
4. 3 P1P2P3 1 Confidential (3, 3)
5. 4 P1P2, P2P3, P3P4 2/3
6. 4 P1P2, P1P3, P1P4 1 Γ0 ' K1,3
7. 4 P1P2, P1P4, P2P3, P3P4 1 Γ0 ' K2,2
8. 4 P1P2, P2P3, ; P2P4, P3P4 2/3
9. 4 P1P2, P1P3, P1P4, P2P3, P2P4 1 Γ0 ' K1,1,2
10. 4 P1P2, P1P3, P1P4, P2P3, P2P4, P3P4 1 Confidential (2, 4)
11. 4 P1P2P3, P1P4 1
12. 4 P1P3P4, P1P2, P2P3 2/3
13. 4 P1P3P4, P1P2, P2P3, P2P4 2/3
14. 4 P1P2P3, P1P2P4 1
15. 4 P1P2P3, P1P2P4, P3P4 1
16. 4 P1P2P3, P1P2P4, P1P3P4 1
17. 4 P1P2P3, P1P2P4, P1P3P4, P2P3P4 1 Confidential (3, 4)
18. 4 P1P2P3P4 1 Confidential (4, 4)
Se pot construi sisteme ideale pentru 10 din aceste 18 structuri de acces.
7.6. CONSTRUCTIA PRIN DESCOMPUNERE 23
7.6 Constructia prin descompunere
Alta modalitate de construire a sistemelor de partajare a secretelor, remar-cabila prin performantele rezultatelor, care maximizeaza rata de informatie.
Definitia 7.5 Fie Γ o structura de acces cu baza Γ0 si K un set de chei.O K - descompunere ideala a lui Γ0 este un set {Γ1, . . . , Γn} cu proprieta-
tile
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 multimea de chei K, peste multimea de participantiPk =
⋃B∈Γk
B.
Pentru o K - descompunere ideala a structurii de acces Γ se poate construiusor un sistem perfect de partajare a secretelor.
Teorema 7.6 Fie Γ o structura de acces cu baza Γ0, K un set de chei sio K - descompunere ideala {Γ1, . . . , Γn} a lui Γ.
Pentru fiecare participant Pi, fie Ri = card{k | Pi ∈ Pk}.Exista atunci un sistem perfect de partajare a secretelor cu structura de
acces Γ si rata de informatie ρ = 1/R, unde R = max1≤i≤w
{Ri}.
24 PRELEGEREA 7. SISTEME DE PARTAJARE A SECRETELOR
O generalizare a acestui rezultat – pentru s K - descompuneri ideale sebazeaza pe teorema
Teorema 7.7 (Constructia prin descompunere): Fie Γ o structura de ac-ces de baza Γ0, s ≥ 1 un numar ıntreg, si K un set de chei.
Presupunem ca s-a construit o K - descompunere idealaDj = {Γj,1, . . . , Γj,nj
}a lui Γ0, si fie Pj,k multimea participantilor la structura de acces Γj,k.Pentru fiecare participant Pi definim
Ri =s∑
j=1card{k | Pi ∈ Pj,k}.
Exista atunci un sistem perfect de partajare a secretelor, cu structurade acces Γ, a carui rata de informatie este ρ = s/R, unde R = max
1≤i≤w(Ri).
Exemplul 7.6 Sa consideram structura de acces 5 din tabel, a carei bazanu este un graf multipartit complet.
Fie p un numar prim si sa consideram doua Zp - descompuneri:
D1 = {Γ1,1, Γ1,2} cuΓ1,1 = {{P1, P2}}Γ1,2 = {{P2, P3}, {P3, P4}}
si
D2 = {Γ2,1, Γ2,2} cuΓ2,1 = {{P1, P2}, {P2, P3}}Γ2,2 = {{P3, P4}}
Aceste descompuneri corespund lui K2 si K1,2, deci sunt descompuneriideale.
Ambele ofera o rata de informatie ρ = 1/2.Daca le vom combina conform Teoremei 7.7 cu s = 2, vom obtine o rata
de informatie maxima ρ = 2/3.
7.6. CONSTRUCTIA PRIN DESCOMPUNERE 25
Luand ca baza Teorema 7.5, putem obtine efectiv un astfel de sistem.D alege aleator patru elemente b1,1, b1,2, b2,1, b2,2 ∈ Zp. Pentru o cheie(K1, K2) ∈ Z2
p , arbitrul va distribui componentele astfel:1. P1 primeste b1,1 si b2,1;2. P2 primeste b1,1 + K1, b1,2 si b2,1 + K2;3. P3 primeste b1,2 + K1, b2,1 si b2,2;4. P4 primeste b1,2 si b2,2 + K2.(toate calculele sunt efectuate ın Zp).
Exemplul 7.7 Fie structura de acces 8 si consideram K= Zp pentru unnumar prim p ≥ 3.
Vom utiliza doua K - descompuneri ideale
D1 = {Γ1,1, Γ1,2} cuΓ1,1 = {{P1, P2}}Γ1,2 = {{P2, P3}, {P2, P4}, {P3, P4}}
si
D2 = {Γ2,1, Γ2,2} cuΓ2,1 = {{P1, P2}, {P2, P3}, {P2, P4}}Γ2,2 = {{P3, P4}}
D1 corespunde lui K2 si K3, iar D2 – lui K2 si K1,3; deci ambele suntK - descompuneri. Aplicand Teorema 7.7 cu s = 2 se va obtine ρ = 2/3.
Similar exemplului precedent, o constructie efectiva se realizeaza astfel:D alege aleator (si independent) patru elemente b1,1, b1,2, b2,1, b2,2 ∈ Zp.
Pentru o cheie (K1, K2) ∈ Z2p , arbitrul va distribui componentele astfel:
1. P1 primeste b1,1 + K1 si b2,1 + K2;2. P2 primeste b1,1, b1,2 si b2,1;3. P3 primeste b1,2 + K1, b2,1 + K2 si b2,2;4. P4 primeste b1,2 + 2K1, b21 + K2 si b2,2 + K2.(toate calculele sunt efectuate ın Zp).