Documente Academic
Documente Profesional
Documente Cultură
= prin aceasta
nelegnd c putem calcula uor cheia de decriptare din cea de criptare.
Subliniem faptul c aceasta nu nseamn c aceste chei sunt identice (i nici nu
sunt n cele mai multe cazuri practice) ci doar c una este uor de dedus din
cealalt. Prin antitez, pentru algoritmii asimetrici ce vor fi introdui ntr-un
capitol urmtor avem
1
K K
=
K
FIGURA 2.2. SCHEMA BLOC A UNEI FUNCII DE DECRIPTARE CU CHEIE SECRET
42 Funcii Criptografice, Fundamente Matematice i Computaionale
.
Dou proprieti sunt esenial de subliniat n cazul schemelor simetrice:
i) Fr cheia K din criptotextul ( )
K
c E m = nu se poate afla
nimic despre mesajul m .
ii) Criptotextul ( )
K
c E m = alturi de orice informaie cu privire
la mesajul m nu aduce nici o informaie cu privire la K.
Nu sunt ns nicidecum singurele proprieti ale unei scheme de criptare
simetric. Acestora li se pot asocia i proprieti avansate, precum imposibilitatea
adversarului de a modifica mesajul din interiorul unui criptotext, adic fr
cunoaterea cheii K, chiar dac m este cunoscut, un adversar nu poate altera
( )
K
c E m = fr ca receptorul mesajului s poat detecta acest lucru la momentul
decriptrii. Aceast proprietate poart numele de non-maleabilitate (non-
maleability). O alt proprietate este imposibilitatea adversarului de a distinge
dac este criptat un bit de valoare 0 sau un bit de valoare 1. Adic, avnd
( ) 0
K
c E = i ( ) 1
K
c E = , fr cunoaterea cheii K un adversar nu poate spune
Algoritm (functie) de criptare
cu cheie simetrica (secreta)
Algoritm de generare a cheilor
Algoritm (functie) de decriptare
cu cheie simetrica (secreta)
k
m
( )
k
c E m =
1
k
valoare aleatoare
(pseudo-aleatoare)
FIGURA 2.3. SCHEMA DE CRIPTARE CU CHEIE SIMETRIC
2. Scheme de criptare cu cheie simetric 43
care este criptarea lui 1 i care a lui 0. Aceast proprietate se numete
imperceptibilitatea sau nedistingerea criptotextelor (indisinguishability of
encryptions).
Avantajul algoritmilor simetrici const n viteza ridicat de criptare i
decriptare. n comparaie cu cei asimetrici acetia sunt mai rapizi cu cteva ordine
de magnitudine, de 10, 100 sau chiar 1000 de ori. n ceea ce privete deficienele,
prima deficien a algoritmilor simetrici este aceea c nu permit efectuarea unei
comunicri pe un canal nesecurizat n prealabil (necesit partajarea prealabil a
unui secret). n acelai context, al cheilor partajate, deficiena algoritmilor
simetrici const n faptul c odat cu creterea numrului de participani la
comunicare crete i numrul de chei secrete care trebuie cunoscute; de exemplu
pentru comunicarea ntre n entiti avem nevoie de ( ) 1 / 2 n n chei secrete. O
alternativ ar fi utilizarea unui server de autentificare (parte de ncredere) care
stocheaz chei criptografice partajate cu fiecare entitate (aceste chei fiind valabile
pe termen lung de unde i denumirea de long-term key) i le folosete pentru a
transmite chei valabile pe termen scurt pentru comunicarea ntre entiti care nu
au avut un contact prealabil. ntr-un astfel de scenariu numrul de chei este egal
cu cel de participani.
2. 2 CLASIFICARE: CODURI BLOC I CODURI STREAM
Codurile de criptare cu cheie simetric pot fi mprite n dou mari
categorii dup modul n care prelucreaz mesajul ce urmeaz a fi criptat:
i) Coduri bloc: sunt algoritmi de criptare care opereaz asupra
mesajului ce trebuie criptat bloc cu bloc, fiecare bloc avnd
dimensiune fix (deci cripteaz un bloc la un moment dat).
ii) Coduri stream: sunt algoritmi de criptare care cripteaz bit cu bit
(practic lungimea blocului este 1) i transformarea de criptare se
poate modifica pentru fiecare caracter n parte.
Codurile stream sunt n special utile cnd exist erori de transmisie
(deoarece nu au erori de propagare) i atunci cnd datele trebuie procesate pe
msur ce ajung la destinaie (nu exist spaiu de stocare). Modurile de
funcionare ce urmeaz a fi discutate n acest capitol permit transformarea unui
cod bloc n cod stream. n practic se folosesc cu precdere coduri bloc, dar nu
sunt de neglijat nici cele stream, de exemplu n transmisii wireless. n general la
codurile stream operaia de criptare const ntr-o operaie simpl (de exemplu un
44 Funcii Criptografice, Fundamente Matematice i Computaionale
simplu XOR cu cheia curent) iar generarea cheii curente este mai intens
computaional.
2. 3 PRINCIPII CONSTRUCTIVE: SUBTITUIA I TRANSPOZIIA,
CIFRU PRODUS
n construcia funciilor criptografice simetrice exist dou operaii
universal utilizate:
i) Substituia nseamn nlocuirea unor simboluri sau grupuri de
simboluri prin alte simboluri sau grupuri de simboluri i creeaz
confuzie.
ii) Transpoziia (sau permutarea) nseamn permutarea
(amestecarea) simbolurilor din cadrul unui bloc i creeaz difuzie
(numit uneori i difuziune).
Aceste dou noiuni au fost introduse pentru prima dat de Claude
Shannon n 1949 i reprezint concepte fundamentale n construcia schemelor
moderne de criptare simetric. Toate schemele moderne conin casete de
substituie S-Box i permutare P-box pentru a crea confuzie i difuzie.
Se folosete termenul de cifru produs (product cipher) pentru a desemna
un cifru obinut din combinarea a dou sau mai multe proceduri care conduc la un
criptosistem mai sigur dect utilizarea individual a acestora. Astfel, o reea de
substituii (S) i permutri (P), denumit n general reea-SP (SP-network), este
unul dintre cele mai simple cazuri de cifruri produs.
2. 4 MAINA ENIGMA
Maina Enigma i componentele sale sunt ilustrate n Figura 2.4. Textul ce urma
a fi criptat era introdus de la tastatur i la fiecare tast apsat se aprindea becul
aferent criptotextului n tabela de becuri (rezultatul fiind notat pe hrtie de un
operator). Au existat i variante la care rezultatul era tiprit pe hrtie dar acestea
au fost mai puin frecvente (costuri suplimentare i greutate). Varianta standard
avea 3 rotoare alese dintru set de 5 i o tabel de techere unde maxim 13
techere se puteau folosi pentru a lega cte 2 litere. Variante mai evoluate au avut
i 4 rotoare sau mai mult. Pe scurt principiul de funcionare era urmtorul: la
apsarea unei taste se nchidea un circuit ce permitea curentului electric s treac
prin tabela de techere (unde o liter putea fi sau nu legat de alt liter) apoi
2. Scheme de criptare cu cheie simetric 45
prin cele 3 rotoare
care aveau i ele
cablaje diferite iar din
cel de-al patrulea
rotor (numit
reflector) curentul se
ntorcea prin cele 3
rotoare, revenea n
tabela de techere i
aprindea unul din
becurile din panou
(care era rezultatul
literei criptate).
Pe scurt, cheia
mainii Enigma avea
la baz urmtoarele
setri: ordinea
rotoarelor (alese ca 3
rotoare din 5 variante
i puse n orice
ordine), poziia
iniial a rotoarelor
(fiecare are 26 de
poziii), setarea
inelului (pe fiecare
rotor era un inel care
indica unde se
acioneaz micarea urmtorului rotor) i setarea tabelului de techere (unde
maxim 13 techere se puteau folosi pentru a conecta cele 26 de intrri). Dac
considerm doar cele 13 techere care leag 26 de poziii i faptul c avem 3
rotoare din care fiecare poate fi pus n 26 de poziii deja depim spaiul de chei al
DES-ului (aproape de 2 ori!) deoarece avem:
3
13
26!
26 138953282533065000
13! 2
=
ale celor l runde de criptare i funcia F care este funcia rundei de criptare. n
principiu aceast funcie poate fi orict de complex i nu trebuie s fie o funcie
reversibil. Un bun exemplu pentru utilizarea reelei Feistel este criptosistemul
DES ce l discutm n continuare.
2. Scheme de criptare cu cheie simetric 47
2. 6 CRIPTOSISTEMUL DES
Standardul n criptarea simetric, valabil pn n 2001, a fost DES (Data
Encryption Standard) [36]. DES este un cod construit pe o reea Feistel cu 16
runde care transform mesaje de 64 de bii n criptotext de 64 de bii.
F
F
F
etc.
mesaj criptotext
criptotext
K
0
K
1
K
l-1
F
F
F
etc.
K
l-1
K
l-2
K
0
mesaj
FIGURA 2.5. REEA FEISTEL
48 Funcii Criptografice, Fundamente Matematice i Computaionale
Cheia DES are ns doar 56 de bii i nu 64 (confuzie comun datorat
poate faptului c la fiecare 7 bii de cheie exist 1 bit de paritate ceea ce duce la o
dimensiune total de 64 de bii). nainte de intrarea n reeaua Feistel i dup
ieirea din aceasta, blocul de 64 de bii este trecut printr-o permutare respectiv
prin inversa acesteia. Acest lucru este sugerat n Figura 2.6 (i). Rolul permutrii
este desigur de a crea difuzie. Permutarea, denumit IP (Initial Permutation), i
inversa acesteia sunt ilustrate n Tabelul 2.1. Se observ (ca exemplu de
permutare) pe poziia 1 apare valoarea 58, adic bitul de pe poziia 58 vine pe
poziia 1, iar n permutarea invers, pe poziia 58 apare valoarea 1, adic bitul de
pe poziia 58 vine pe poziia 1, etc.
Funcia de rund, aa cum este descris n cadrul reelei Feistel, are ca
parametru de intrare blocul drept i cheia de rund. Dat fiind c blocul de intrare
este de 64 de bii, blocul drept (la fel ca i cel stng) are 32 de bii. Acesta este ns
trecut printr-o funcie de expansiune E care l aduce la 48 de bii pentru a face
XOR cu cheia de rund tot de 48 de bii. Rezultatul este folosit ca intrare pentru 8
casete de substituie S-box. Fiecare caset are la ieire 4 bii de unde rezult un
total de 32 de bii care sunt din nou trecui printr-o permutare P. Funcia de
expansiune E i permutarea P sunt prezentate n Tabelul 2.1.
Casetele de substituie S-box lucreaz n felul urmtor: sunt 8 casete la
intrarea fiecreia venind ct 6 bii din blocul de la intrare (6x8=48). Din cei 6 bii
4 au rolul de a selecta coloana i 2 de a selecta linia din S-box iar la ieire ofer
valoarea de pe poziia respectiv. Deoarece la intrarea unui S-box sunt 48 de bii
iar la ieire 32, S-box este de fapt o compresie (ne-bijectiv). Aceasta nu
influeneaz corectitudinea decriptrii. n Tabelul 2.1 sunt ilustrate casetele S1 i
S2, mai exist 6 casete, care nu le prezentm deoarece nu ofer informaii foarte
relevante (standardul poate fi consultat pentru valorile acestora).
Rmne de detaliat cum se calculeaz cheia de rund. Aa cum se observ n
Figura 2.6 (iii) aceasta trece printr-o permutare numit PC1 apoi la rndul ei este
spart n dou blocuri care pentru fiecare rund sunt shiftate la stnga.
Permutarea PC1 este mprit n dou componente, prim i secund, fiecare
corespunznd la cte 28 de bii de cheie (cheia ne amintim are 56 de bii).
Numrul de shiftri este 1 pentru rundele 1, 2, 9 i 16, respective 2 pentru
celelalte runde. La final cheia de rund trece printr-o nou permutare numit PC2.
Acest calcul din care provine cheia se mai numete i program de cheie (key
schedule).
2. Scheme de criptare cu cheie simetric 49
58 50 42 34 26 18 10 2
60 52 44 36 28 20 12 4
62 54 46 38 30 22 14 6
64 56 48 40 32 24 16 8
57 49 41 33 25 17
IP =
9 1
59 51 43 35 27 19 11 3
61 53 45 37 29 21 13 5
63 55 47 39 31 23 15 7
| |
|
|
|
|
|
|
|
|
|
|
|
\ .
1
40 8 48 16 56 24 64 32
39 7 47 15 55 23 63 31
38 6 46 14 54 22 62 30
37 5 45 13 53 21 61 29
36 4 44 12 52 20
IP
=
60 28
35 3 43 11 51 19 59 27
34 2 42 10 50 18 58 26
33 1 41 9 49 17 57 25
| |
|
|
|
|
|
|
|
|
|
|
|
\ .
32 1 2 3 4 5
4 5 6 7 8 9
8 9 10 11 12 13
12 13 14 15 16 17
16 17 18 19 20 21
20 21 22 23 24 25
24 25 26 27
E =
28 29
28 29 30 31 32 1
| |
|
|
|
|
|
|
|
|
|
|
|
\ .
1
14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7
0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8
4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0
15 12 8 2 4 9 1 7 5 11
S =
3 14 10 0 6 13
| |
|
|
|
|
\ .
16 7 20 21
29 12 28 17
1 15 23 26
5 18 31 10
2 8 24 14
32 27 3 9
19 13 30 6
22 11 4 25
P
| |
|
|
|
|
|
=
|
|
|
|
|
|
\ .
2
15 1 8 14 6 11 3 4 9 7 2 13 12 0 5 10
3 13 4 7 15 2 8 14 12 0 1 10 6 9 11 5
0 14 7 11 10 4 13 1 5 8 12 6 9 3 2 15
13 8 10 1 3 15 4 2 11 6
S =
7 12 0 5 14 9
| |
|
|
|
|
\ .
57 49 41 33 25 17 9
1 58 50 42 34 26 18
1'
10 2 59 51 43 35 27
19 11 3 60 52 44 36
63 55 47 39 31 23 15
7
1''
PC
PC
| |
|
|
=
|
|
\ .
=
62 54 46 38 30 22
14 6 61 53 45 37 29
21 13 5 28 20 12 4
| |
|
|
|
|
\ .
14 17 11 24 1 5
3 28 15 6 21 10
23 19 12 4 26 8
16 7 27 20 13 2
2
41 52 31 37 47 55
30 40 51 45 33 48
44 49 39 5
PC =
6 34 53
46 42 50 36 29 32
| |
|
|
|
|
|
|
|
|
|
|
|
\ .
TABELUL 2.1. ELEMENTE CONSTRUCTIVE DES CONFORM FIPS46-2: PERMUTAREA IP
(INITIAL PERMUTATION) I INVERSA EI, FUNCIA DE EXPANSIUNE E I
PERMUTAREA P, CASETELE DE SUBSTITUIE S1 I S2 (MAI SUNT NC 6 CASETE),
PERMUTRILE PENTRU PROGRAMUL DE CHEIE PC1 SI PC2
50 Funcii Criptografice, Fundamente Matematice i Computaionale
PERMUTARE INITIALA
F
F
F
etc.
mesaj
criptotext
K1
K2
K16
L0 R0
R16 L16
PERMUTARE INITIALA INVERSA
L1 R1
L2 R2
RX (32 BITI)
E
48 BITI KX (48 BITI)
S1 S2 S3 S4 S5 S6 S7 S8
32 BITI
P
PERMUTARE 1
mesaj
C0 D0
LEFT SHIFT LEFT SHIFT
C1 D1
LEFT SHIFT LEFT SHIFT
C16 D16
etc.
PERMUTARE 2
PERMUTARE 2
K1
K16
i)
ii)
iii)
FIGURA 2.6. DETALII CU PRIVIRE LA DES: (I) CELE 16 RUNDE ALE DES, (II) FUNCIA
DE RUND DES I (III) GENERAREA CHEII DE RUND
2. Scheme de criptare cu cheie simetric 51
2. 7 3DES
De muli ani DES nu mai ofer securitate corespunztoare, putnd fi spart
n cteva zile pe o main de calcul dedicat (de exemplu COPACOBANA sparge
DES n medie de 3.5 zile). DES supravieuiete ns sub forma 3DES (recomandat
nc din 1999) oferind un nivel de securitate suficient de bun n zilele de azi.
Acesta const n aplicarea transformrii DES de 3 ori dup cum urmeaz:
( ) ( ) ( )
( ) ( ) ( )
3 2 1 1 2 3
,
K K K K K K
c E D E m m D E D c = =
Conform standardului, exist urmtoarele variante de utilizare a cheilor:
opiunea 1 cu 3 chei independente, opiunea 2 cu
1
K i
2
K independene iar
1 3
K K = i opiunea 3 cu o singur cheie independent
1 2 3
K K K = = . Astfel cheia
de la 3DES poate fi pe 56, 112 i 168 de bii.
Dat fiind c 3DES este mai lent dect AES i nu ofer securitate mai bun,
nu exist motive serioase pentru a fi folosit n practic astzi. Poate un motiv ar fi
faptul c exist implementri hardware ce pot fi refolosite i n acest fel se mai
reduc din costuri, dar nu exist raiuni de securitate.
2. 8 CRIPTOSISTEMUL AES
La nivelul anilor 2001 DES nu mai ofer securitatea necesar (de fapt nc
din anii 90 sunt consemnate atacuri de succes asupra DES), pentru care, pe baz
de concurs se alege un nou standard AES (Advanced Encryption Standard).
Standardul curent este candidatul la AES numit Rijndael [38] ales din cei
5 finaliti: Rijndael, Serpent, Twofish, RC6 i MARS. AES este un cod bloc
disponibil n trei variante de dimensiuni pentru cheie 128, 192, 256. Chiar i cheia
de 128 de bii este considerat destul de sigur pentru cerinele din ziua de azi.
Necesit doar 10-14 runde n funcie de dimensiunea cheii, este sigur i este cel
mai rapid dintre candidai. Deoarece AES este mai rapid dect alte coduri
simetrice, chiar i dect 3DES, i ofer cel puin acelai nivel de securitate nu
exist nici un motiv de a utiliza altceva dect AES n arhitecturi de securitate
contemporane.
AES nu folosete structura Feistel, are meritul de a fi un criptosistem
inovator. El proceseaz matrici de 4x4 bytes prin intermediul a 4 transformri:
- AddRoundKey se adun cheia de rund printr-un simplu XOR,
52 Funcii Criptografice, Fundamente Matematice i Computaionale
- SubBytes se substituie fiecare byte prin intermediul unei tabele de
look-up (substituie neliniar),
- ShiftRows se shifteaz circular (rotire) fiecare linie astfel: prima
linie e neatins, a 2-a linie 1 la stnga, a 3-a cu 2 la stnga i a 4 cu 3 la
stnga,
- MixColumns se amestec coloanele prin aplicarea unei transformri
de aceast dat liniar i reversibil (de fapt este vorba de
multiplicare matricial).
Macrostructura rundei AES este sugerat n Figura 2.7. Fiecare rund
const n aplicarea tuturor celor 4 transformri i exist 10 runde la chei 128 de
bii, 12 la 192 i 14 la 256. Runda iniial const doar n adugarea cheii de rund
iar cea final nu are transformarea MixColumns. Pentru detalii poate fi consultat
FIPS-197.
Totui trebuie s precizm c singura suspiciune cu privire la securitatea
AES-ului este faptul c folosete un design destul de non-conformist, spre
deosebire de schemele simetrice clasice, care se construiesc pe reea Feistel. Acest
design nu a fost sub atenia comunitii criptologilor dect n ultimii ani, de la
propunerea AES-ului. n mod spectaculos, transformarea AES (Rijndael) este
echivalent cu o ecuaie algebric destul de simpl (comparativ cu alte coduri)
fa de care exist suspiciunea c ar putea duce n viitor la o serie de atacuri. Pn
n prezent nu a aprut ns nici un atac spectaculos asupra acestui procedeu
AES_Encrypt_Round(State, Key)
{
SubBytes(State) ;
ShiftRows(State);
MixColumns(State);
AddRoundKey(State, Key);
}
AES_Decrypt_Round(State, Key)
{
AddRoundKey
-1
(State, Key);
MixColumns
-1
(State);
ShiftRows
-1
(State);
SubBytes
-1
(State) ;
}
FIGURA 2.7. STRUCTURAINTUITIV A UNEI RUNDE DE CRIPTARE I DECRIPTARE
AES
2. Scheme de criptare cu cheie simetric 53
constructiv! Deci orice suspiciune nu are un fundament tiinific momentan. Pe de
alt parte o reea Feistel este o reea bine studiat i un cod construit pe reea
Feistel este puin probabil s aduc surprize n ceea ce privete securitatea. Ca
alternativ la Rijndael, poate fi utilizat oricare alt candidat la AES, dar sunt
necesare motive serioase pentru a utiliza altceva n practic. Un bun
contracandidat este codul Serpent, care nu este acoperit de nici un patent i poate
fi utilizat gratuit n soluii contemporane de securitate (desigur acesta este mai
lent dect AES) i este construit pe structur Feistel.
2. 9 MODURI DE OPERARE A CRIPTRILOR SIMETRICE: ECB,
CBC CM I ALTELE
Simpla existen a unui cod bloc, orict de sigur, nu este o garanie
suficient pentru securitatea unui criptotext. Aici intr n discuie modurile de
funcionare, adic cum se aplic transformarea (codul bloc) asupra blocurilor de
mesaj.
Cel mai simplu mod de aplicare al criptrii simetrice, numit electronic
codebook (ECB), este nesigur. Acesta const aa cum sugereaz i Figura 2.8 i
Figura 2.9 n extinderea mesajului prin padding la un numr de bii multiplu de
dimensiunea blocului de criptare i prin aplicarea transformrii bloc cu bloc (cele
trei careuri colorate ale ultimului bloc de mesaj sugereaz paddingul). Chiar dac
funcia de criptare a blocului este sigur, rezultatul poate fi n anumite cazuri o
criptare nesigur. Aceasta deoarece acelai bloc de text se va cripta ntotdeauna n
acelai bloc de criptotext, rezultatul fiind aadar predictibil.
Pentru a evita aceast problem de securitate, modul de funcionare
cipher block chaining (CBC) folosete ieirea blocului anterior la intrarea
blocului ce urmeaz a fi criptat fcnd un XOR cu acesta. Astfel, rezultatul fiecrui
bloc se propag i influeneaz pn la ultimul bloc rezultatul criptrii. Avantajul
este c criptotextul va arta perfect aleator, fr repetiii cauzate de repetarea
intrrii. Dezavantajul este c pierderea unui bloc duce la imposibilitatea de a
decripta blocurile urmtoare, chiar dac acestea sunt corect recepionate. Pentru
criptarea primului bloc se face XOR cu un vector de iniializare IV
(initialization vector) care este o valoare random dar nu secret ce joac rol de
bloc criptat anterior primului bloc. Criptarea i decriptarea CBC sunt sugerate n
Figurile 2.10 i 2.11.
54 Funcii Criptografice, Fundamente Matematice i Computaionale
Exist diverse variaiuni pentru nlnuirea blocurilor. Dintre acestea,
cipher feed-back (CFB) cripteaz IV-ul n loc de bloc de mesaj cu care se face
XOR i se propag rezultatul mai departe. n mod similar lucreaz output feed-
back (OFB) cu diferena c se propag mai departe doar rezultatul IV-ului criptat
nu rezultatul criptrii n sine. Modurile CFB i OFB au avantajul de a transforma
codul bloc ntr-un cod stream unde procesarea criptrii se face bit cu bit prin
operatorul XOR. Avantajul lui OFB fa de CFB este faptul c permite procesarea
stream-ului de cheie chiar dac mesajul nu este nc disponibil, deci permite
Functie Criptare
Bloc
k
Functie Criptare
Bloc
k
Functie Criptare
Bloc
k
0
m
1
m
1
m
0
c
1
c
1
c
FIGURA 2.8.CRIPTAREA N MODUL DE FUNCIONARE ELECTRONIC CODE BOOK (ECB)
Functie
Decriptare Bloc
k
Functie
Decriptare Bloc
k
Functie
Decriptare Bloc
k
0
m
1
m
1
m
0
c
1
c
1
c
FIGURA 2.9. DECRIPTAREA N MODUL DE FUNCIONARE ELECTRONIC CODE BOOK
(ECB)
2. Scheme de criptare cu cheie simetric 55
procesarea n avans ceea ce ofer avantaje computaionale. OFB are i avantajul c
permite decriptarea chiar dac se pierd din blocurile criptate. O alt variant este
Propagating Cipher Block Chaining (PCBC) care propag mai departe att
textul de la intrare ct i criptotextul rezultat din fiecare bloc. Criptarea OFB i
CFB sunt sugerate n Figurile 2.12 i 2.13 iar criptarea i decriptarea PCBC n
Figurile 2.14 i 2.15.
Foarte ntlnit n practic i cu un nivel de securitate crescut (fiind
tolerant la pierderea blocurilor intermediare) este Counter Mode (CM) care
folosete un counter, de obicei concatenat cu o valoare aleatoare numit salt.
Counterul este criptat i apoi se face XOR cu textul ce se dorete criptat.
Dezavantajul este necesitatea de a pstra un counter sincron de partea celor care
efectueaz criptarea respectiv decriptarea. Criptarea n modul counter este
sugerat n Figura 2.16.
De amintit i varianta cipher-text stealing permite construirea unui
criptotext care are lungime egal cu mesajul criptat (cu condiia ca acesta s
necesite minim 2 blocuri). Aceast tehnic este util deoarece de cele mai multe
ori textul nu are lungime multiplu de dimensiunea blocului criptat i n unele
medii este necesar economisirea pe ct se poate a volumului de date transmis
(de exemplu n reele de senzori).
Functie Criptare
Bloc
k
Functie Criptare
Bloc
k
IV
Functie Criptare
Bloc
k
0
m
1
m
1
m
0
c
1
c
1
c
FIGURA 2.10. CRIPTAREA N MODUL DE FUNCIONARE CIPHER BLOCK CHAINING
(CBC)
56 Funcii Criptografice, Fundamente Matematice i Computaionale
Functie
Decriptare Bloc
k
Functie
Decriptare Bloc
k
Functie
Deriptare Bloc
k
IV
0
m
1
m
1
m
0
c
1
c
1
c
FIGURA 2.11. DECRIPTAREA N MODUL DE FUNCIONARE CIPHER BLOCK CHAINING
(CBC)
Functie Criptare
Bloc
k
Functie Criptare
Bloc k
IV
Functie Criptare
Bloc k
0
m
1
m
1
m
0
c 1
c
1
c
FIGURA 2.12. CRIPTAREA N MODUL DE OUTPUT FEEDBACK BLOCK CHAINING (OFB)
Functie Criptare
Bloc
k
Functie Criptare
Bloc k
IV
Functie Criptare
Bloc k
0
m
1
m
1
m
0
c 1
c
1
c
FIGURA 2.13. CRIPTAREA N MODUL DE FUNCIONARE CIPHER FEEDBACK (CFB)
2. Scheme de criptare cu cheie simetric 57
Functie Criptare
Bloc
k
Functie Criptare
Bloc
k
IV
Functie Criptare
Bloc
k
0
m
1
m
1
m
0
c
1
c
1
c
FIGURA 2.14. CRIPTAREA N MODUL DE FUNCIONARE PROPAGATING CIPHER
BLOCK CHAINING (PCBC)
Functie Criptare
Bloc
k
Functie Criptare
Bloc k
Functie Criptare
Bloc k
0
m
1
m
1
m
0
c 1
c
1
c
salt counter salt 1 counter + salt counter +
FIGURA 2.16. CRIPTAREA N MODUL DE FUNCIONARE COUNTER MODE (CM)
IV
Functie
Decriptare Bloc
k
Functie
Decriptare Bloc
k
Functie
Decriptare Bloc
k
0
m
1
m
1
m
0
c
1
c
1
c
FIGURA 2.15. DECRIPTAREA N MODUL DE FUNCIONARE PROPAGATING CIPHER
BLOCK CHAINING (PCBC)
58 Funcii Criptografice, Fundamente Matematice i Computaionale
2. 10 TIPURI DE ATAC ASUPRA FUNCIILOR DE CRIPTARE
Am stabilit c criptanaliza este domeniul care se ocup de studiul
atacurilor asupra funciilor criptografice. n principiu atacul unei funcii
criptografice are la baz exploatarea unei vulnerabiliti ce se datoreaz n
general unei proprieti matematice a codului care nu a fost luat n calcul n
procesul de proiectare.
Este n general util remarca c printr-un atac criptanalitic se urmrete
fie recuperarea unui mesaj criptat fie a cheii utilizate (subliniem c algoritmul de
criptare este bine cunoscut de adversar, n prezent iese din discuie securitatea
obinut prin obscuritatea algoritmului). Aceast remarc ofer ns mai degrab
o perspectiv idealizat asupra unui atac criptanalitic. A recupera ntregul mesaj
criptat este o condiie mult prea restrictiv, n realitate criptosistemul poate fi
spart mult mai uor. Astfel, este unanim recunoscut c n cele mai multe cazuri
practice recuperarea unui singur bit din mesaj poate avea consecine dezastroase
asupra securitii. n acest context este necesar definirea unor obiective de
securitate i atacuri avansate, mult mai complexe dect recuperarea unei chei sau
a unui mesaj (acest lucru va fi fcut n relaie cu criptosistemele asimetrice ntr-un
capitol urmtor).
Totodat atacurile trebuie gndite ca fiind cauzate de adversari care au
acces la maina de criptare sau decriptare, deoarece n practic aceasta este
situaia general. De exemplu, n cazul criptosistemelor cu cheie public oricine
are acces la cheia de criptare (maina de criptare fiind disponibil n mod
nerestrictiv) iar semnarea digital se face pe baza cheii secrete (astfel maina de
decriptare este expus prin orice semntur efectuat). Lucrurile nu stau diferit
nici n cazul criptosistemelor simetrice, deoarece n cazul mainii Enigma rzboiul
a oferit prilejul de a captura maini de criptare sau decriptare, accesul fiind astfel
posibil.
Convenim astfel s clasificm atacurile dup cum urmeaz n funcie de
accesul la maina de criptare sau decriptare:
i) Mesaj ales (chosen-plaintext attack) adversarul are acces pe o
perioad fix de timp la maina de criptare care accept s cripteze
orice mesaj (pn la momentul la care primete un anume criptotext
pe care trebuie s l sparg).
ii) Mesaj ales adaptiv (adaptive chosen-plaintext) - adversarul are acces
nelimitat la maina de criptare care accept s cripteze orice mesaj.
2. Scheme de criptare cu cheie simetric 59
iii) Criptotext ales (chosen cipheretext) adversarul are acces pe o
perioad fix de timp la maina de decriptare care accept s de
cripteze orice mesaj (pn la momentul la care primete un anume
criptotext pe care trebuie s l sparg).
iv) Criptotext ales adaptiv (Adaptive chosen-chipertext) - adversarul are
acces nelimitat la maina de decriptare care accept s cripteze orice
mesaj.
n atacurile adaptive se presupune c adversarul are acces nelimitat la
maina criptografic cu o singur restricie: att adversarul ct i maina cunosc
un anume criptotext int, iar maina criptografic refuz s opereze asupra
acestuia, n schimb este dispus s lucreze pentru adversar asupra oricrui alt
criptotext.
Atacurile n care adversarul nu are acces la maina de criptare/decriptare,
sunt i ele de dou tipuri: doar criptotext cunoscut (ciphertext only), n care
adversarul are la dispoziie doar criptotextul, i mesaj cunoscut (known-
plaintext) n care adversarul cunoate i criptotextul i mesajul i dorete
recuperarea cheii. Acestea sunt considerate modele de atac nvechite deoarece n
practic un adversar se bucur de premize mai bune de att. Rezistena n faa
acestora este o cerin elementar.
Importana atacurilor cu acces la maina de decriptare va fi scoas n
lumin prin discuiile cu privire la adversari activi ai criptosistemelor asimetrice
ntr-un capitol urmtor.
3 FUNCII CRIPTOGRAFICE FR CHEIE: FUNCII
HASH
Discutm n acest capitol funciile hash, un obiect criptografic extrem de
simplu i totui greu de definit i construit. ntr-adevr nu demult acestea au fost
numite gaura neagr a criptografiei deoarece nu era foarte clar (i poate nici nu
este nc) ce proprieti trebuie s ndeplineasc i cum se construiesc corect.
Trebuie spus c o bun parte din ngrijorarea cauzat de funciile hash a venit
datorit atacurilor lui Wang asupra MD5 i SHA1 [85].
3. 1 DEFINIIE I PROPRIETI
O funcie hash este o funcie care primete ca intrare mesaje de
dimensiune variabil i returneaz un mesaj de lungime fix din care mesajul
iniial nu poate fi recuperat. Funciile hash nu folosesc nici un fel de cheie, i le
vom nota cu ( ) H m reprezentnd funcia hash aplicat mesajului m . Figura 3.1
prezint schema bloc a unei funcii hash. Ieirea unei funcii hash se mai numete
i etichet (tag).
Functie Hash m
( )
H m
| | *
| ( ) | . , . ., 128 256
m
H m ct e g
=
=
FIGURA 3.1SCHEMA BLOC A UNEI FUNCII HASH.
4. Funcii criptografice fr cheie 61
O funcie hash trebuie s rspund la urmtoarele proprieti de
securitate: i) rezistena imaginii (preimage resistance): avnd y o ieire a
funciei nu se poate gsi x astfel nct ( ) y H x = , ii) rezisten secundar a
imaginii (secondary preimage resistance) avnd ( ) , x H x nu se poate gsi ' x
astfel nct ( ) ( ) ' H x H x = i iii) rezisten la coliziune (collision resistance) nu
se poate gsi o pereche , ' x x astfel nct ( ) ( ) ' H x H x = .
Din punct de vedere computaional, proprietatea de baz a unei funcii
hash este eficiena. Scopul este de a construi funcii ct mai simplu de
implementat (cod compact) i ct mai rapide. n timp ce dimensiunea intrrii
poate fi orict, la ieire tagul are in general 128-256 bii, mai rar pn n 512 bii.
3. 2 FUNCII HASH FRECVENT UTILIZATE N PRACTIC: MD5 I
FAMILIA SHA
Standardul curent (nc) i probabil cea mai utilizat gam de funcii hash
este familia SHA2 (Secure Hash Algorithm) [37] pentru care dimensiunea ieirii
este 224, 256, 384, 512 bii indiferent de dimensiunea datelor de intrare. Varianta
mai veche de funcie din familia SHA, i nc folosit, este SHA-1. Trebuie spus c
n practic este nc foarte frecvent funcia MD5 (posibil chiar mai utilizat dect
SHA2).
Menionm ns faptul c funciile hash MD5 [68] i SHA-1 nu mai ofer
rezisten secundar a imaginii i sunt deci nesigure (n ciuda acestui fapt ele sunt
nc folosite n multe aplicaii datorit eficienei n special). O discuie relevant
cu privire la ce implicaii are pierderea rezistenei secundare a imaginii poate fi
gsit n [59]. De remarcat c nu orice categorie de aplicaii este pus n pericol de
aceasta i utilizarea lor este nc posibil dar trebuie fcut cu precauie. Atacuri
asupra SHA au fost anunate pentru prima oar n [85] dou articole non-tehnice
ale lui Schneier cu privire la atacurile asupra funciilor hash sunt n [74], [75].
Pentru implementri contemporane se recomand desigur folosirea SHA-256 i
nicidecum a MD5 sau SHA-1.
62 Funcii Criptografice, Fundamente Matematice i Computaionale
n practic, pentru construcia funciilor hash se folosete conceptul de
funcie hash iterat. Aceasta presupune spargerea intrrii n blocuri de
dimensiune fix care sunt trecute printr-o funcie de compresie n cadrul creia se
efectueaz operaii specifice. Una dintre metodele specifice de construcie este
construcia Merkle-Damgard (descris de Merkle n 1979) pe care o prezentm n
Figura 3.2.
MD5 a fost construit de Ron Rivest n 1991 i urmeaz construcia Merkle-
Damgard. MD5 opereaz cu blocuri de mesaj de cte 512 bii. Mesajul iniial se
concateneaz cu un bit de 1 i apoi cu numrul necesar de 0-uri. Ultimii 64 de bii
din mesajul preprocesat reprezint lungimea mesajului iniial.
Algoritmul MD5 const n 64 de iteraii, grupate n 4 runde de cte 16
iteraii, n fiecare rund folosindu-se una din 4 funcii neliniare de mai jos
(4x16=64). Figura 3.3 descrie aceast structur. Fiecare rund se efectueaz de 16
ori deoarece blocul procesat este de 512 bii, n timp ce funcia de rund
proceseaz 32 de bii la un moment dat (16x32=512). n figur se observ 4
blocuri de stare (A, B, C, D), acestea au cte 32 de bii. Cele 4 constante predefinite
de cte 32 de bii joac rol de vector de iniializare (IV) i sunt:
A= 0x67452301,
B= 0xefcdab89,
C= 0x98badcfe,
D= 0x10325476.
Funcia de rund are la baz una din cele 4 funcii definite dup cum
urmeaz:
Functie de
compresie
IV
Functie de
compresie
Functie de
compresie
Bloc mesaj 1 Bloc mesaj 2
Bloc mesaj n
H(m)
FIGURA 3.2. CONSTRUCTIA MERKLE-DAMGARD A UNEI FUNCTII HASH
4. Funcii criptografice fr cheie 63
( , , ) ( ) ( ),
( , , ) ( ) ( ),
( , , ) ,
( , , ) ( ).
F X Y Z X Y X Z
G X Y Z X Z Y Z
H X Y Z X Y Z
I X Y Z Y X Z
= . v .
= . v .
=
= v
Runda 1 (16 x)
A
Bloc mesaj (512 biti, procesat
pe cuvinte de 32 biti)
B C D
Runda 2 (16 x)
Runda 3 (16 x)
Runda 4 (16 x)
0 15 i s s
16 31 i s s
32 47 i s s
48 63 i s s
[ ], 0 63 b i i s s
FIGURA 3.3. STRUCTURA ITERAT A LUI MD5
64 Funcii Criptografice, Fundamente Matematice i Computaionale
Toate aceste funcii sunt neliniare i se bazeaz pe operaii simple la nivel
de bit. n cadrul fiecrei runde, folosind una din cele 4 funcii anterior definite se
efectueaz aceeai operaie de 16 ori, operaie ce const n:
(( ( , , ) ) ) B A FR B C D M K s + + + + <<< i rezultatul se depune n B. Valorile de
stare la sfritul fiecrei se interschimb dup cum urmeaz:
,
,
(( ( , , ) ) ),
.
D C
C B
B B A FR B C D M K S
A D
+ + + + <<<
.
Prin FR am desemnat funcia de rund (care este F n runda 1, G n runda
2, H n runda 3 i I n runda 4), M este un bloc de 32 de bii al mesajului (observm
c funcia de rund e pe 32 de bii) iar K i S sunt valori numerice predefinite (se
poate consulta RFC1321 pentru aceste valori, aici intereseaz doar la nivel
conceptual construcia lui MD5). n Figura 3.4 se prezint civa vectori de test
pentru MD5 conform cu RFC 1321 (se observ c rezultatul are ntotdeauna 128
de bii).
SHA2 este construit pe principii similare. n acest cazul exist tot 4 funcii
neliniare cu 3 intrri, dar de data aceasta sunt mai complexe i se folosesc 8
blocuri de stare (A, B, C, D, E, F, G, H) de cte 32 de bii. n mod concret, pentru
SHA-256 cele 4 funcii neliniare sunt:
0
1
( , , ) ( ) ( ),
( , , ) ( ) ( ) ( ),
( ) ( 2) ( 13) ( 22),
( ) ( 6) ( 11) ( 25).
Ch E F G E F E G
Ma A B C A B A C B C
A A A A
E E E E
= . .
= . . .
E = >>> >>> >>>
E = >>> >>> >>>
4. Funcii criptografice fr cheie 65
SHA2 folosete 64 de runde n cazul lui SHA-256 i SHA-224 i 80 de
runde n cazul lui SHA-384 i SHA-512 (din acest motiv se poate observa
experimental c SHA-384 i SHA-512 sunt la fel rapide). Detaliile se gsesc n
standardul FIPS 180-2.
3. 3 NOUA GENERAIE DE FUNCII HASH SHA3
n anul 2008 a fost deschis concursul pentru SHA3. n prezent exist 5
finaliti: BLAKE, Groestl, Skein, Keccak i JH. Este greu de prezis ctigtorul, dar
se pot face cteva remarci despre acestea. JH este deja subiect al unor atacuri i
deci nu va avea anse de ctig. BLAKE este se pare cea mai eficient
computaional i uor de implementat. Varianta cu output de 256 bii opereaz pe
32 de bii iar cea cu output de 512 bii pe 64. Permite ca output dimensiuni de
224, 256, 384 sau 512 bii la fel ca SHA2. Groestl folosete aceeai caset de
substituie (S-Box) ca i AES. Are un output de 256 sau 512 bii. Keccak pare s fie
n implementare hardware cel mai rapid dintre finaliti, ntre designeri este i
John Daemen (autor al AES). Aceleai dimensiuni de output ca n cazul SHA2 sunt
valabile. Skein se bazeaz pe codul bloc Threefish i permite dimensiune arbitrar
la ieire. ntre autorii lui Skein este i Bruce Schneier.
MD5 ("") = d41d8cd98f00b204e9800998ecf8427e
MD5 ("a") = 0cc175b9c0f1b6a831c399e269772661
MD5 ("abc") = 900150983cd24fb0d6963f7d28e17f72
MD5 ("message digest") = f96b697d7cb7938d525a2f31aaf161d0
MD5 ("abcdefghijklmnopqrstuvwxyz") = c3fcd3d76192e4007dfb496cca67e13b
MD5 ("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789")
= d174ab98d277d9f5a5611c2c9f419d9f
MD5 ("12345678901234567890123456789012345678901234567890123456...234567890")
= 57edf4a22be3c955ac49da2e2107b67a
FIGURA 3.4. EXEMPLE DE VECTORI DE TEST PENTRU MD5 CONFORM RFC 1321
4 CODURI DE AUTENTIFICARE A MESAJELOR (HASH-
URI CU CHEIE)
O gam aparte de sisteme criptografice sunt codurile de autentificare a
mesajelor MAC. Partea interesant vis-a-vis de acestea este c ele pot fi construite
att folosind funcii hash, opiunea mai uzual, dar i folosind scheme de criptare
simetric.
4. 1 DEFINIIE I PROPRIETI
Codurile de autentificare a mesajelor MAC (Message Authentication
Codes), le notm cu ( )
K
MAC m ceea ce nseamn cod de autentificare a mesajului
m calculat cu cheia K. Indiferent de dimensiunea mesajului dimensiunea ieirii
funciei este constant (de obicei dimensiunea cheii este egal cu dimensiunea
ieirii funciei). Codurile MAC se construiesc pe baza unei funcii hash, n general
se folosete MD5 sau SHA1, cu toate c ambele au un nivel de securitate destul de
sczut.
Rolul codurilor MAC este de a testa autenticitatea unei informaii, deci
pentru a verifica sursa de provenien a informaiei, implicnd astfel i o garanie
asupra integritii. n practic se folosesc construciile, unanim recunoscute ca
eficien i securitate, HMAC i NMAC propuse de Mihir Bellare, Ran Canetti i
Hugo Krawczyk n lucrarea [8]. Un cod de autentificare al mesajelor (MAC) l
definim dup cum urmeaz:
Definiia 4.1. (Cod de autentificare a mesajelor MAC) Un cod de
autentificare a mesajelor MAC const n trei algoritmi: algoritmul de generare a
cheii
( )
. 1
k
K MACGen care primete ca intrare nivelul de securitate k i
returneaz cheia K, algoritmul de etichetare ( ) ( ) . ,
K
MAC m MACTag m K
care primete mesajul m i cheia K returnnd eticheta ( )
K
MAC m t = i
algoritmul de verificare ( ) . , , MACVer m K t care primete mesajul, cheia i eticheta
returnnd o valoare binar care este 1 dac i numai dac eticheta corespunde
perechii cheie-mesaj. Toate acestea alturi de spaiile din care provin datele de
intrare ale acestora (care fr a pierde generalitatea sunt spaii ale stringurilor
binare).
4. Coduri de Autentificare a Mesajelor 67
Figura 4.1 ilustreaz schema bloc a algoritmului de generare a cheii care
primete ca intrare parametrul de securitate 1
k
(care reprezint de fapt
dimensiunea cheii i deci nivelul de securitate) i o valoare aleatoare (sau pseudo-
aleatoare). Figura 4.2 ilustreaz algoritmul de calcul pentru valoarea codului MAC
(eticheta) aferent mesajului, valoare notat cu eticheta t , iar figura 4.3 ilustreaz
schema bloc a algoritmului de verificare a acestuia, verificarea fcndu-se prin
compararea etichetei t cu codul nou generat asupra mesajului ( )
K
MAC m . n
Figura 4.4 sunt utilizai algoritmii din figurile 4.1, 4.2 i 4.3 pentru a construi
schema unui sistem criptografic de autentificare a mesajelor.
.
Algoritm de generarea a
cheii MAC.Gen(1
k
)
1
k
K
valoare aleatoare
(pseudo-aleatoare)
FIGURA 4.1. SCHEMA BLOC A ALGORITMULUI DE GENERARE A CHEII PENTRU CODUL
MAC
Algoritm (functie) de calcul
MAC MAC.Tag(m,K)
m
( )
K
MAC m t =
| | *
| | ., . .,128
| ( ) | ., . .,128 256
K
m
K ct e g
MAC M ct e g
=
=
=
K
FIGURA 4.2. SCHEMA BLOC A UNUI ALGORITM DE CALCUL MAC.
68 Funcii Criptografice, Fundamente Matematice i Computaionale
Algoritm (functie) de calcul
MAC MAC.Tag(m,K)
m
( )
K
MAC m
K
t
= { } 0,1 be
Algoritm de verificare MAC MAC.Ver(m,K,?)
FIGURA 4.3. SCHEMA BLOC A UNUI ALGORITM DE VERIFICARE MAC.
Algoritm de calcul (functie)
MAC
Algoritm de generare a cheilor
Algoritm de verificare MAC
K
m
( )
K
MAC m t =
m
{ } 0,1 be
1
k
valoare aleatoare
(pseudo-aleatoare)
FIGURA 4.4. SCHEMA BLOC A UNUI SISTEM DE CRIPTOGRAFIC DE AUTENTIFICARE A
MESAJELOR.
4. Coduri de Autentificare a Mesajelor 69
4. 2 CODURI MAC N PRACTIC: CBC-MAC I H-MAC
Dou construcii de coduri MAC sunt de mare relevan practic. CBC-MAC
permite construirea unui MAC folosind un simplu cod bloc. H-MAC se bazeaz pe
o funcie hash i se remarc prin simplitate i eficien, lucru pentru care este cel
mai comun n practic.
CBC-MAC se construiete n manier similar cu criptarea n modul CBC
(Cipher Block Chaining) cu urmtoarele modificri: vectorul de iniializare IV este
setat pe 0 i singura ieire este blocul final al criptrii (nu exist ieire pentru
fiecare bloc de plain-text ca n cazul criptrii). Figura 4.5 ilustreaz aceast
construcie. De remarcat c aceasta construcie este sigur doar pentru mesaje de
dimensiune fix. Pentru a remedia acest lucru i a face schema sigur pentru
mesaje de orice dimensiune, o soluie este ca la nceputul mesajului s fie
concatenat dimensiunea sa, deci || m m m = .
H-MAC const n aplicarea de dou ori a unei funcii hash folosind de
fiecare dat alt padding. Primul padding se numete ipad (inner-padding) i cel
de-al doilea opad (outer-padding) i reprezint valori numerice predefinite de
dimensiunea blocului care l proceseaz. Mai exact ipad este repetarea lui 0x36 i
opad a lui 0x5C de B-ori, unde B este dimensiunea n bytes a blocului procesat (de
exemplu B=64 n cazul lui MD5 deoarece MD5 proceseaz blocuri de 512 bii aa
cum am discutat anterior) . Practic HMAC const n urmtoarea transformare:
( , ) (( opad) || (( ipad) || )) HMAC K m H K H K m = .
Functie Criptare
Bloc
k
Functie Criptare
Bloc
k
0 IV =
Functie Criptare
Bloc
k
( )
k
MAC m
FIGURA 4.5. STRUCTURA CBC MAC
70 Funcii Criptografice, Fundamente Matematice i Computaionale
O transformare simpl, frumoas i sigur. De remarcat faptul c intuiia
de a construi un cod MAC folosind un simplu hash cu cheie adic utilizarea
( || ) H K m conduce la o problem de securitate datorat modului de calculare a
hashului. Dac este un hash iterat, aa cum se ntmpl cu mai toate construciile
practice, se pot falsifica MAC-uri prin concatenarea la mesajul iniial de valori
arbitrare (acest atac din nou nu funcioneaz dac toate mesajele are avea aceeai
lungime).
Funcia hash din cadrul H-MAC poate fi orice funcie hash din practic. Din
acest motiv n mediul de programare .NET unde avem funciile de hash SHA-256,
SHA-384 i SHA-512, vom avea i funciile H-MAC aferente H-MAC-SHA-256, H-
MAC-SHA-384 i H-MAC-SHA-512, etc.
Desigur, mai exist i alte construcii. De exemplu N-MAC (Nested MAC)
care este la fel de eficient ca i HMAC dar necesit modificarea IV-ului pentru
funcia hash, lucru care, dei nu costisitor, l face totui mai complicat dect H-
MAC i deci mai puin frecvent n practic.
5 GENERATOARE DE NUMERE ALEATOARE I
PSEUDO-ALEATOARE
Generatoarele de numere aleatoare sunt un bloc constructiv
indispensabil pentru criptografie deoarece securitatea unui criptosistem depinde
n primul rnd de calitatea cheilor cu care se efectueaz criptarea (chei alese
ntotdeauna plecnd de la valori aleatoare). Un generator de numere aleatoare
este un dispozitiv hard sau soft care genereaz o secven de numere care nu
urmeaz nici un fel de model i deci nu pot fi prezise.
n aceast seciune nu dorim o prezentare de detaliu a unor astfel de
funcii, dar ncercm s prezentm cteva alternative constructive. Generatoare
de numere pseudo-aleatoare se gsesc implementate n orice mediu de
programare dar ele trebuie atent alese pentru a asigura un nivel de securitate real
pentru criptosistemele implementate. Dac generatorul de numere aleatoare este
slab, indiferent de rezistena teoretic a criptosistemului care utilizeaz cheile
acesta va putea fi cu uurin spart n practic (un caz tipic este generatorul
utilizat de Netscape n primele variante de SSL).
Dificultatea practic nu st neaprat n construcia unor astfel de
generatoare (se cunosc alternative eficiente i sigure) ci mai degrab n a defini ce
proprieti trebuie s ndeplineasc acestea. Mai exact, avnd un black-box care
genereaz numere, cum putem stabili dac acesta este sau nu un generator de
numere aleatoare. De exemplu, avnd secvenele 1, 7, 3 i 3, 3, 3 care din cele
dou secvene este mai aleatoare? Ei bine, dac n grab cineva ar putea zice c
prima este mai aleatoare ca a doua, de fapt, la ieirea unui generator de numere
aleatoare ambele pot fi obinute iar o catalogare dup doar 3 ieiri este lipsit de
fundament. Amintim n acest context i paradoxul numit eroarea juctorului
(gambler's fallacy). Acesta poate fi ilustrat prin urmtoarea ntrebare: dac un
juctor a dat cu zarul de 3 ori consecutiv 6, probabilitatea ca a 4-a oara s dea 6
este 1/6 sau mai mic? Rspunsul corect este 1/6 deoarece evenimentul celei de a
4-a aruncri cu zarul este independent de celelalte i deci are tot probabilitatea
1/6. Sunt muli ns cei care cred c probabilitatea este mai mic a patra oar.
Exist teste implementate pentru stabilirea calitii unui generator de
numere aleatoare. Cea mai cunoscut suit este DieHarder
(http://www.phy.duke.edu/~rgb/General/dieharder.php). Pentru a stabili
calitatea unui generator sunt necesare fiiere de zeci, sute de mega-bytes sau
chiar mai mult. Problema real este ns faptul c este posibil a construi un
72 Funcii Criptografice, Fundamente Matematice i Computaionale
generator de numere aleatoare care s treac orice test i totui s poat fi
predictibil!
Exist dou tipuri de generatoare: hard i soft. Generatoarele hard se
numesc n general generatoare de numere aleatoare iar cele soft se numesc
pseudo-aleatoare. Cele hardware se bazeaz pe dificultatea modelrii (sau
necunoaterea exact a modelului) procesului fizic din dispozitivul hard, ceea ce
face ca ieirea s nu poat fi prezis. Cele software, sunt programe care pe baza
unei valori de iniializare (numit seed) produc secvene de numere aparent
aleatoare. Pentru scopuri practice, un generator software poate fi la fel de bun ca
unul hardware! n general cele software sunt ieftine i rapide, iar cele hardware
mai lente dar mai sigure. Din punct de vedere algoritmic, dezideratul constructiv
este de a construi un generator de numere aleatoare astfel nct s nu existe nici
un algoritm n timp polinomial care avnd ieirile generatorului de numere
pseudo-aleatoare i un generator de numere aleatoare s poat decide care este
generatorul de numere pseudo-aleatoare cu probabilitate mai mare de (
proprietate care numete computational indistinguishability).
5. 1 GENERATORUL LINEAR CONGRUENIAL
Cel mai simplu i eficient generator de numere aleatoare este generatorul
linear congruenial (linear congruential generator). Acesta se bazeaz pe
generarea irului recurent:
1
mod
i i
X aX c n
+
= +
Unde , , a c n, sunt parametrii fixai i
0
X este valoarea de iniializare
(seed). Acest generator este simplu de implementat dar nu este sigur din punct de
vedere criptografic! Adic, prin calcule matematice pot fi aflai parametrii, avnd
la dispoziie suficiente valori de ieire. Este ns un generator suficient de bun
pentru scopuri non-criptografice. Perioada maxim a acestuia este n .
Un caz particular se obine prin setarea lui 0 c = ceea ce duce la
1
mod
i i
X aX n
+
= . Acest generator se numete generatorul Lehmer (uneori referit
i ca generatorul Park-Miller). Alegeri uzuale pentru n sunt numere prime de
forma 2 1
k
deoarece acestea conduc la o perioad maxim (desigur dac i
5. Generatorare de numere aleatoare i pseudoaleatoare 73
ceilali parametrii sunt bine alei). Knuth ofer o analiz detaliat a acestui
generator n [55].
5. 2 GENERATOARE LFSR (FIBONACCI I GALOIS)
Registrele de deplasare liniar LFSR (Linear Feedback Shift Register)
reprezint una dintre cele mai eficiente metode de generare a unor secvene
pseudo-aleatoare. Atenie, nici acestea nu sunt destul de sigure pentru scopuri
criptografice. Dar, sunt simplu de implementat i utile n diverse alte aplicaii.
Dou exemple sunt codurile CRC i, n criptografie, codurile de criptare stream.
Exist dou tipuri de registre: LFSR standard (numite i Fibonacci) unde
valorile din registre se nsumeaz modulo 2 (XOR) pentru a obine feed-backul i
LFSR Galois unde valorile se nsumeaz modulo 2 (XOR) succesiv pentru a obine
valoarea din fiecare registru n parte. Figura 5.1 ilustreaz cele dou tipuri de
registru. Cele dou construcii sunt echivalente, dar varianta Galois are avantajul
c poate fi paralelizat deoarece se execut XOR independent la fiecare registru n
timp ce n cellalt caz se execut XOR asupra tuturor valorilor.
FIGURA 5.1. IMPLEMENTARE LFSR FIBONACCI (SUS) I GALOIS (JOS) A
POLINOMULUI
6 5
1 X X + +
74 Funcii Criptografice, Fundamente Matematice i Computaionale
Aceste registre lucreaz de fapt n cmpul finit
2
n
F (cmp Galois, a se
vedea capitolul de fundamente matematice) iar operaiile efectuate pot fi
interpretate ca operaii binare asupra coeficienilor unui polinom. Coeficienii
polinomului sunt 1 acolo unde exist cablaj ctre XOR i 0 altfel, vezi de exemplu
Figura 5.1. pentru polinomul
6 5
1 x x + + . Uor de imaginat, dac mai exista un
termen n
3
x de exemplu mai aprea un XOR la dou blocuri dup cel aferent
termenului n
5
x .
n mod clar perioada maxim a unui astfel de generator este 2 1
n
i
aceast perioad este atins pentru anumite polinoame numite polinoame
primitive (polinoame ale cror rdcini sunt generatori ai cmpului) indiferent
de valoarea de iniializare cu condiia ca ea s fie nenul. De exemplu pentru
4 3
1 x x + + perioada este 15 iar pentru
9 5
1 x x + + perioada este 511, etc.
Aa cum am spus, LFSR reprezint o soluie nesigur din punct de vedere
criptografic. Aceasta deoarece sunt algoritmi care pot afla coeficienii polinomului
pe baza ieirii registrului i deci pot n acest fel sparge generatorul RNG. O
soluie eficient pentru aflarea coeficienilor este algoritmul Berlekamp-
Massey.
5. 3 GENERATORUL BLUM-BLUM-SHUB
Cum am spus, generatorul anterior nu este sigur din punct de vedere
criptografic. n mod clar utilizarea lui pentru chei criptografice conduce la sisteme
nesigure. Un deziderat constructiv este construirea unui generator cu privire la
care s se poat demonstra c prezicerea informaiei de la ieire este echivalent
cu rezolvarea unei probleme despre care se tie c este imposibil de rezolvat n
practic (adic care s dein securitate demonstrabil n sensul descris n
capitolul introductiv).
Un exemplu ilustrativ n acest sens, i totodat ilustrativ pentru utilizarea
funciilor criptografice n construcia de generatoare pseudo-aleatoare, este
generatorul Blum-Blum-Shub (BBS) [14], [15] a crui securitate este
echivalent cu dificultatea problemei factorizrii ntregilor, i care utilizeaz
funcia ridicare la ptrat utilizat n multe criptosisteme cu cheie public (de
exemplu Rabin, vezi i [46], [69] pentru aplicaii).
Generatorul BBS se bazeaz pe calcularea irului recurent:
5. Generatorare de numere aleatoare i pseudoaleatoare 75
2
1
mod
i i
X X n
= ,
Aici n p q = este un ntreg suficient de mare astfel nct factorizarea lui
s nu poate fi uor calculat i
0
X este o valoarea de iniializare aleas aleator. La
ieirea generatorului nu se returneaz valoarea
i
X ci bitul de paritate al acesteia.
Ca exemplu artificial, cu numere foarte mici, pentru 13 17 221 n = = ,
0
100 X = avem
1
55 X = ,
2
152 X = ,
3
120 X = , etc., ieirea generatorului BBS
este ( )
0
1 paritate X = , ( )
1
1 paritate X = , ( )
2
1 paritate X = , ( )
3
0 paritate X = ,
etc. Acest generator este lent dar este suficient de sigur pentru a fi utilizabil n
scopuri criptografice.
5. 4 GENERATOARE HARDWARE
Exist suficient de multe surse hardware din care se pot extrage secvene
aleatoare. Exemple relevante constituie: zgomotul unei diode, drift-ul
oscilatoarelor, zgomotul termic, zgomotul atmosferic, etc. Uor de implementat
sunt primele dou alternative, cea bazat pe zgomotul unui diode i cea bazat pe
drift-ul a dou oscilatoare. Alternativa preferat de practic este zgomotul diodei
deoarece conduce la performane mai bune. n prezenta carte suntem interesai
de probleme fundamentale i deci detaliile constructive ale unor astfel de
generatoare nu prezint interes, le-am amintit doar pentru a aduce o imagine
complet n faa cititorului.
6 SCHEME DE CRIPTARE CU CHEIE ASIMETRIC
(CRIPTAREA CU CHEIE PUBLIC)
A private conversation can therefore be
held between any two individuals regardless of whether
they have ever communicated before. Each one sends
messages to the other enciphered in the receiver public
enciphering key and deciphers the messages he receives
using his own secret deciphering key. We propose some
techniques for developing public key cryptosystems, but the
problem is still largely open () We note that neither public
cryptosystems nor one-way authentication systems can
unconditionally secure because the public information
always determines the secret information uniquely among
members of a finite set. With unlimited computation,
problem could therefore be solved by a straightforward
touch. W. Diffie & M. Hellman
2
.
Discutm acum schemele de criptare cu cheie public. Aceste construcii
au jucat rolul fundamental n apariia criptografiei moderne, bazat pe o
comunitate academic activ i standarde deschise publicului larg. n continuare
vom discuta cele mai relevante criptosisteme de la schimbul de cheie Diffie-
Hellman i RSA pn la criptarea folosind curbe eliptice. Nu n ultimul rnd
discutm i atacuri ale adversarilor activi precum i tehnici moderne de padding
ce pot fi folosite pentru a spori securitatea acestor criptosisteme.
6. 1 DEFINIIE I PROPRIETI
n introducere a fost prezentat un scurt istoric al criptosistemelor cu cheie
public. Dorim acum s introducem formalismul necesar descrierii unui astfel de
criptosistem. Criptarea asimetric, o notm similar cu cea simetric, pentru
2
Din lucrarea care lanseaz criptografia cu cheie public New directions in
cryptography.
6. Scheme de criptare cu cheie asimetric 77
claritate ns schimbm cheia k cu PK (Public Key), astfel avem
( )
PK
c E m =
(aceasta semnificnd criptarea cu cheia PK a mesajului. Decriptarea se face
folosind cheia privat ca
( )
SK
m D c = (n general se folosete noiunea de cheie
privat i nu secret dar pentru a evita redundana notaiei vom scrie SK care
trimite ctre Secret Key).
Criptarea cu cheie public comparativ cu cea cu cheie secret are ca
dezavantaj viteza i prezint dou avantaje majore: i) nu necesit schimbul
prealabil de chei secrete, deci comunicaia poate fi efectuat i pe un canal nesigur
fr s existe secrete partajate i ii) numrul de chei partajate la comunicarea
ntre n entiti este minim (o cheie public i o cheie privat pentru fiecare
entitate). Un criptosistem cu cheie public l definim dup cum urmeaz:
Definiia 6.1. (Schem de criptare cu cheie public). O schem de
criptare cu cheie public (criptosistem cu cheie public) const n trei algoritmi:
algoritmul de generare a cheilor ( ) ( )
, . 1
k
PK SK PKEGen care primete ca
parametru nivelul de securitate k i returneaz perechea cheie public-privat
( ) , PK SK , algoritmul de criptare ( ) . , PKE Enc m PK care primete mesajul m i
cheia public PK i returneaz criptotextul
( )
PK
c E m = i algoritmul de
decriptare ( ) . , PKE Dec c SK care primete criptotextul c i cheia privat SK i
returneaz mesajul m . Toate acestea alturi de spaiile din care provin datele de
intrare ale acestora (care fr a pierde generalitatea sunt spaii ale stringurilor
binare).
Pentru corectitudinea criptosistemului, se impune ca pentru fiecare
pereche cheie public-privat ( ) ( )
, . 1
k
PK SK PKEGen i pentru orice mesaj
m , decriptarea aplicat criptrii conduce tot timpul la mesajul original, adic
( ) ( )
. . , , m PKE Dec PKE Enc m PK SK . Aceasta ne asigur c criptosistemul
furnizeaz rezultate corecte i ntotdeauna decriptarea criptrii unui mesaj
returneaz acelai mesaj.
Algoritmul de generare a cheii difer de cel de la primitivele cu cheie
simetric prin faptul c returneaz dou chei distincte, acest lucru este sugerat n
Figura 6.1. Figura 6.2 i Figura 6.3 sunt ilustrative pentru algoritmii de criptare i
decriptare iar n Figura 6.4 sunt utilizai algoritmii din Figura 6.1, Figura 6.2 i
Figura 6.3 pentru a construi schema unui sistem de criptare cu cheie asimetric.
78 Funcii Criptografice, Fundamente Matematice i Computaionale
Algoritm de generarea a
cheii PKE.Gen(1
k
)
1
k
PK
valoare aleatoare
(pseudo-aleatoare)
SK
FIGURA 6.1. SCHEMA BLOC A ALGORITMULUI DE GENERARE A CHEII PENTRU
CRIPTAREA ASIMETRIC.
Algoritm (functie) de
decriptare cu cheie
asimetrica PKE.Dec(c,SK)
( )
SK
m D c = c
SK
FIGURA 6.3. SCHEMA BLOC A UNEI FUNCII DE DECRIPTARE CU CHEIE ASIMETRIC.
Uzual:
( )
| | | |
. , . ., 1024 4096 (ECC de la 160)
| |
PK
m PK
PK ct e g
E m PK
<
=
=
Algoritm (functie) de criptare
cu cheie publica
PKE.Enc(m,PK)
m
( )
PK
c E m =
PK
FIGURA 6.2. SCHEMA BLOC A UNEI FUNCII DE CRIPTARE CU CHEIE ASIMETRIC.
6. Scheme de criptare cu cheie asimetric 79
6. 2 TAXONOMIE A CRIPTOSISTEMELOR CU CHEIE PUBLIC
nainte de a trece la descrierea celor mai eseniale criptosisteme cu cheie
public, n scopul crerii unei imagini de ansamblu, considerm util prezentarea
unei taxonomii simplificate a acestora n Figura 6.5. Sistemele au fost clasificate n
funcie de problema de teoria numerelor pe baza creia au fost dezvoltate.
Subliniem c dei criptografia cu cheie public are mai bine de 30 de ani de
existen, toate criptosistemele cu cheie public relevante n practic se bazeaz
fie pe problema factorizrii ntregilor fie pe problema logaritmului discret.
Singura noutate este c aceasta din urm a nceput s fie mai frecvent utilizat n
ultimul deceniu pe grupurile curbelor eliptice. n taxonomia din Figura 6.5 linia
continu semnific echivalena problemei cu problema de baz (factorizare sau
logaritm discret) iar linia punctat semnific faptul c o astfel de echivalen nu
exist sau nu a fost nc demonstrat.
Algoritm (functie) de criptare
cu cheie asimetrica (foloseste
cheia publica)
Algoritm de generare a cheilor
Algoritm (functie) de decriptare
cu cheie asimetrica (foloseste
cheia privata)
PK
m
( )
PK
c E m =
SK
1
k
valoare aleatoare
(pseudo-aleatoare)
FIGURA 6.4. SCHEMA DE PRINCIPIU A UNUI SISTEM DE CRIPTARE CU CHEIE
ASIMETRIC.
80 Funcii Criptografice, Fundamente Matematice i Computaionale
ntr-adevr, exist i alte probleme pe care se pot construi criptosisteme
cu cheie public. Una dintre acestea, relevant din punct de vedere istoric, este
problema de optimizare combinatoric cunoscut sub numele de suma unei
submulimi (knapsack problem) sau problema rucsacului. Un criptosistem
construit din aceasta a existat nc din 1978 fiind propus de Merkle i Hellman,
dar criptosistemul a fost prea ineficient pentru a avea interes practic. n ultimul
deceniu, par a fi promitoare criptosistemele bazate pe latici. Sunt probleme pe
care laticile le pot rezolva mai eficient dect alte construcii, precum criptarea
complet homomorfic (fully homomorphic encryption). Este posibil ca laticile s
ofere criptosistemele viitorului. Momentan ns peisajul este dominat de
criptosistemele bazate pe factorizare i logaritmi discrei.
Problema Factorizarii ntregilor
Rabin, 1979
Rivest-Shamir-Adleman,
1978
Diffie-Hellman, 1976
ElGamal, 1983
Problema Logaritmului Discret
Miller-Koblitz, 1985
(Diffie-Hellman si ElGamal pe
curbe eliptice)
Williams, 1980
Goldwasser-Micali
(algoritmi asimetrici
non-deterministi, 1984)
Calculul radacinilor
patrate in Zn
Calculul radacinii de ordin e
n Zn (cu exponent relativ
prim la ordinul lui Zn)
Ipoteza reziduurilor
cvadratice n Zn
FIGURA 6.5. O TAXONOMIE A ALGORITMILOR DE CRIPTARE CU CHEIE PUBLIC.
6. Scheme de criptare cu cheie asimetric 81
6. 3 SCHIMBUL DE CHEIE DIFFIE-HELLMAN-MERKLE
Schimbul de cheie Diffie-Hellman marcheaz nceputul criptografiei cu
cheie public. Prin schimbarea bazat pe informaii asimetrice a unei chei secrete
care poate fi apoi utilizat pentru criptarea unei informaii, se realizeaz n esen
funcionalitatea unui criptosistem cu cheie public. De fapt criptosistemul
ElGamal folosete exact paii acestui schimb, aceeai idee urmnd s apar sub
form de criptosistem n schema ElGamal discutat ntr-o seciune urmtoare. De
asemenea am adugat numele lui Merkle n titlu, conform recomandrii lui
Hellman, bazat pe faptul c ideile lui Merkle ca pionier al criptografiei cu cheie
public au dus la construcia acestui protocol.
Ideea pe care se bazeaz este faptul c operaia de ridicare la putere n
p
Z
este comutativ, i.e.
( ) ( )
mod
z y
y z
x x p , n timp ce extragerea logaritmului
discret (care presupune gsirea lui y astfel nct mod
y
x a p ) nu este
rezolvabil eficient pentru elemente ale grupului de ordin foarte mare. Ce
nseamn ordinului unui element vom discuta detaliat n capitolul de fundamente
matematice. Pentru moment, trebuie s tim doar c ordinul unui element x
este cel mai mic numr t pentru care mod 1
t
x p = . n plus, spunem c x este
generator al lui
p
Z dac ordinul su este 1 p .
Considerm pentru scenariul nostru doi participani A i B care aleg un
numr prim p i un generator g al grupului
*
p
Z , ambele informaii fiind publice.
Totodat A alege un umr aleator a pe care l pstreaz ca informaie privat
(fr s l anune pe B) respectiv B face acelai lucru alegnd un numr aleator
b . Schimbul de cheie const n paii ilustrai n Protocolul 6-1.
La sfritul celor dou sesiuni ambii participani pot calcula valoarea lui
mod
ab
g p. n mod evident A folosete valoarea lui mod
b
g p primit de la B i
valoarea lui a pe care o cunoate deoarece el a ales-o i calculeaz
( )
mod mod
a
b
g p p . Similar, B folosete mod
a
g p, b i calculeaz
( )
mod mod
b
a
g p p . Din moment ce logaritmul discret nu poate fi extras, un
potenial adversar nu poate calcula nici pe a i nici pe b fiind n imposibilitatea
de a extrage cheia comun mod
ab
g p. Subliniem c aceast cheie este aadar
secret i a fost obinut doar pe baza unui schimb de informaie public. Ulterior
82 Funcii Criptografice, Fundamente Matematice i Computaionale
cheia secret poate fi utilizat pentru orice alt operaie criptografic, de exemplu
pentru criptarea simetric.
6. 4 SECURITATEA SCHIMBULUI DE CHEIE DIFFIE-HELLMAN-
MERKLE
Pe lng problema logaritmului discret amintit anterior mai exist
dou probleme relevante n strns legtur cu aceasta i cu securitatea
schimbului de cheie Diffie-Hellman. Le amintim n cele ce urmeaz.
Definiia 6.2. (DDH - Decisional Diffie-Hellman). Problema decizional
Diffie-Hellman ntreab urmtoarele: avnd un numr prim p , un generator g al
( )
. 1
k
DH Setup : Fixeaz un numr prim p de k bii i un
generator g al grupului
*
p
Z ca parametri publici
ai protocolului.
. DH Exchange : A: alege un numr aleator a i trimite
1. A B : mod
a
g p
B: alege un numr aleator b i trimite
2. B A : mod
b
g p
Ai B: calculeaz cheia comun ca mod
ab
g p
PROTOCOLUL 6-1. SCHIMBUL DE CHEIE DIFFIE-HELLMAN
6. Scheme de criptare cu cheie asimetric 83
grupului
*
p
Z i valorile mod
a
g p, mod
b
g p respectiv un numr r s se decid
dac r este sau nu chiar mod
ab
g p.
Definiia 6.3. (CDH Computational Diffie-Hellman). Problema
computaional Diffie-Hellman ntreab urmtoarele: avnd un numr prim p un
generator g al grupului
*
p
Z i valorile mod
a
g p respectiv mod
b
g p s se
calculeze mod
ab
g p.
i problema decizional (DDH) i cea computaional Diffie-Hellman
(CDH) pot fi generalizate la fel ca problema logaritmului discret (DLP) introdus
pe diverse grupuri. Relaia ntre cele trei probleme este urmtoarea:
P P
DDH CDH DLP < <
Prin
P
P Q < notm faptul c problema P se reduce la Q n timp
polinomial, adic, dac avem un algoritm care rezolv P putem rezolva i Q. Aa
cum se observ, problemele nu sunt echivalente. Problema echivalenei ntre cele
trei probleme rmne n continuare deschis (pe unele grupuri este
demonstrat). n ceea ce privete securitatea schimbului de cheie Diffie-Hellman
aceasta este echivalent cu problema computaional CDH i nu cu cea a
logaritmului discret.
Subliniem faptul c acest schimb de cheie este neautentificat i un
adversar poate interveni n schimb introducnd alte valori. Aadar, acest schimb
nu este rezistent n faa unui atac de tip man-in-the-middle (n care un adversar
se interpune ntre cei doi participani) aa cum se poate uor observa n
protocolul urmtor:
1. A: mod
a
g p
1. Adversarul intercepteaz i trimite lui B mod
adv
g p
2. B : mod
b
g p
2. Adversarul intercepteaz i trimite lui A mod
adv
g p
84 Funcii Criptografice, Fundamente Matematice i Computaionale
La finalul protocolului A a schimbat cu adversarul cheia mod
adv a
g p
iar B
a schimbat cu adversarul cheia mod
adv b
g p
care
va fi utilizat la decriptare, o este un ntreg care satisface relaia
( ) n | co mod 1 . Desigur c inversarea acestei funcii este posibil dac se
cunoate factorizarea lui n . Schema de principiu este ilustrat n Figura 6.6. iar
Sistemul 6-1 este descrierea acestui criptosistem.Corectitudinea algoritmului
poate fi uor demonstrat observnd c ( ) n | co mod 1 implic
( )
n m m c
n k
mod
1
+ | o
, deoarece
( ) ( )
( )
1mod
k
k n n
m m n
| |
.
( ) mod
RSA
f x x n
c
=
( ) , PK n c =
m
mod c m n
c
=
( )
1
mod
RSA
f x x n
o
=
( ) , SK n o =
c
mod m c n
o
=
FIGURA 6.6. CRIPTAREA I DECRIPTAREA RSA.
6. Scheme de criptare cu cheie asimetric 85
6. 6 SECURITATEA CRIPTOSISTEMULUI RSA
Singura cale cunoscut de a sparge complet sistemul RSA este factorizarea
modulului, reamintim ns c nu exist nici o demonstraie c aceasta este singura
metod de a sparge complet RSA-ul. Adic, nu exist nici o demonstraie cu privire
la echivalena dintre RSA i problema factorizrii ntregilor IFP. Mai mult, recent
s-a instalat mult scepticism cu privire la echivalena ntre securitatea RSA i
problema factorizrii ntregilor odat cu apariia articolului lui Boneh i
Venkatesan [16].
( )
. 1
k
RSAGen : Genereaz dou numere prime aleatoare p , q i
calculeaz pq n = respectiv ( ) ( )( ) 1 1 = q p n |
(presupunem c numerele p i q au fost generate
n aa fel nct n are k bii). Genereaz un ntreg c
astfel nct ( ) ( )
. . . . . , 1 c mmd c n c | = , calculeaz o
astfel nct ) ( mod 1 n | co . Cheia public este
( ) , PK n c iar cea privat este ( ) , SK n o .
( ) . , RSAEnc m PK : Se obine cheia public a entitii aferente
( ) , PK n c i se reprezint mesajul ca ntreg n
intervalul ( ) n , 1 . Se calculeaz criptotextul ca
mod c m n
c
.
( ) . , RSADec c SK : Decripteaz mesajul ca mod m c n
o
.
SISTEMUL 6-1. SCHEMA DE CRIPTARE CU CHEIE PUBLIC RSA
86 Funcii Criptografice, Fundamente Matematice i Computaionale
Este ns demonstrat c a calcula o pereche de chei RSA (cheie public i
cheie privat) este echivalent cu problema factorizrii ntregilor. n acest sens
urmtoarele dou relaii sunt relevante cu privire la securitatea RSA-ului:
.
P
RSADec IFP <
. RSAGen PFI
Prima relaie ilustreaz faptul c decriptarea RSA se reduce polinomial la
factorizare (desemnat ca PFI de la Problema Factorizrii ntregi) i este
evident, calculul cheii de decriptare RSA fcndu-se pe baza factorilor modulului.
Cea de-a doua relaie ilustreaz faptul c a calcula o pereche de chei RSA
este o problem echivalent factorizrii i poate fi demonstrat dup cum
urmeaz. n mod evident dac cunoatem factorizarea modulului putem calcula
perechea de chei, rmne deci de artat doar c o pereche de chei poate fi utilizat
pentru a factoriza modulul. Presupunem c se cunosc c i o astfel nct
1mod ( ), n n pq co | = i dorim aflarea lui p i q . Enumerm dou metode
care pot fi folosite n acest scop:
i)
3
Se observ c 1mod ( ) n co | ( )( ) 1 1 1 k p q co = +
( ) 1 1 k n p q co = + deoarece discutm n contextul criptografiei cu cheie
public i numrul n are o magnitudine foarte mare raportat la ceilali membrii ai
ecuaiei n mod cert vom avea
1
k
n
co (
=
(
. Folosind aceast valoare pentru k
avem ( )
1 1
1 1 p q n
n n
co co
co
| | ( (
+ = + +
|
( (
\ .
. Din moment ce cunoatem
att suma factorilor ct i produsul, care este chiar valoarea lui n , putem extrage
cele dou numere ca rdcini ale unei ecuaii de gradul 2. Calculul este banal n
continuare i nu are sens s fie detaliat.
3
Metoda este preluat de la cursul de Security reductions for asymmetric systems
susinut de Pascal Paillier la Bonn, Germania n septembrie 2007 http://www.b-it-
center.de/Wob/en/view/class211_id867.html.
6. Scheme de criptare cu cheie asimetric 87
ii)
4
Se observ de asemenea c pentru x avem
mod x x n
co
1
1mod x n
co
i prin mprire succesiv a exponentului la 2
vom ajunge la un moment dat la
( ) 1 2
1mod
i
x n
co
= n timp ce
( )
1
1 2
1mod
i
x n
co
care implic
( )
( )
( )
( )
1 2 1 2
1 1 0mod
i i
x x n
co co
+ ceea ce
nseamn c membrii produsului din partea stng a ecuaiei ascund factori
distinci ai lui n i acetia pot fi extrai uor cu de calcul al celui mai mare divizor
comun (vezi seciunile de fundamente matematice i computaionale).
Alegerea corect a parametrilor din stadiul de iniializare a cheii este
extrem de important. Pentru a evita atacuri prin factorizarea modului n se
recomand utilizarea unui modul de 1024-4096 bii pentru o securitate pe termen
lung (vezi tabelul din seciunea introductiv). Alegerea celor dou numere prime
p i q este critic pentru securitate. Este recomandabil ca numerele s fie alese
astfel nct s aib acelai numr de bii iar p q s fie suficient de mare pentru a
preveni un atac exhaustiv prin cutarea unui factor mai mic dect n . Pentru
respectarea primei condiii numerele sunt alese aleator ca avnd fiecare
2
1
log
2
n
bii iar o alegere aleatoare garanteaz i respectarea celei de-a doua condiii cu o
probabilitate suficient de mare.
Pentru a spori rezistena n faa atacurilor prin factorizare a fost propus
i varianta RSA nebalansat n care factorii nu au numr egal de bii. Aceasta este
mult mai rezistent la factorizare dar are o vulnerabilitate fatal n faa unui atac
de tip criptotext ales care v-a fi discutat mai jos.
De asemenea exponentul public poate fi ales ca avnd forme speciale
pentru a face criptarea mai eficient. Sunt preferai exponenii care au ct mai
puini bii de 1, aceasta datorit algoritmului de exponeniere care consum mai
mult timp cnd bitul exponentului este 1. Din acest motiv ntre exponenii
preferai pentru criptarea RSA sunt numerele 3, 17 i 65537.
n mod cert RSA este criptosistemul cu cheie public cel mai intens studiat
(nu n ultimul rnd acest lucru se datoreaz simplitii sale). Astfel, de-a lungul
timpului o gam relativ larg de atacuri i vulnerabiliti ale RSA au fost publicate.
n primul rnd sunt relevante atacurile pasive, care au ca surs un adversar care
ncearc off-line s sparg criptosistemul, dintre acestea amintim:
4
Metoda este preluat din cartea lui Menezes et al. [62].
88 Funcii Criptografice, Fundamente Matematice i Computaionale
- Atacul prin factorizare presupune factorizarea ntregului n - cu ajutorul
algoritmilor cunoscui. n prezent acest lucru nu este posibil pentru valori
suficient de mari ale lui n .
- Atacul prin cutarea direct a mesajului (forward-search) este un
atac general, fezabil asupra oricrui criptosistem cu cheie public.
Deoarece cheia public este prin definiie public un adversar, avnd un
criptotext capturat, poate face o cutare exhaustiv n cazul n care spaiul
mesajului este redus. Pentru a evita acest lucru se folosesc tehnici de
padding precum OAEP sau PKCS prezentate la sfritul acestui capitol
(acestea fac atacul imposibil n sens practic).
n al doilea rnd i mult mai periculoase sunt atacurile active pentru cazul
n care un adversar are acces la maina de decriptare (fiind criptare cu cheie
public accesul la maina de criptare este evident). Dintre acestea amintim:
- Atacul prin temporizare. n mod cert cantitatea de timp necesar
decriptrii poate conduce la informaii suplimentare despre exponentul
utilizat. Paul Kocher este cel care a adus n discuie acest tip de atac. O
abordare temeinic asupra unui astfel de atac mpotriva OpenSSL este n
lucrarea [18] concluzia lucrrii este c astfel de atacuri sunt posibile i
deci trebuie contracarate. Soluia mpotriva acestor atacuri este fie de a
fixa un timp fix de calcul indiferent de dimensiunea exponentului, fie de a
efectua operaii suplimentare n mod aleator pentru a deruta adversarul,
detalii se gsesc n lucrarea [18].
- Adaptive chosen chipertext-attack se discut n contextul adversarilor
activi la sfritul acestui capitol.
Exist cteva vulnerabiliti ale RSA-ului comun cunoscute i care sunt
necesare de amintit, n practic astfel de scenarii trebuind evitate cu orice pre:
- Exponenii de criptare sau decriptare relativ mici. Atacurile asupra
exponenilor mici de criptare au fost introduse de [50] iar cele asupra
exponenilor mici de decriptare de Wiener. Atacul asupra unui exponent
mic de criptare presupune existena unei relaii ntre mesajele criptate i
se contracareaz prin extinderea mesajului cu bii aleatori. Exponenii
mici de decriptare trebuie evitai n practic (evitarea decurge n mod
natural deoarece n practic se utilizeaz exponeni de criptare mici sau cu
forme speciale i acetia fac ca exponenii de decriptare s fie mari). Tot n
categoria exponenilor de criptare mici intr i atacul bazat pe teorema
chinez a resturilor (vezi seciunea de fundamente matematice)
deoarece n cazul criptrii cu exponent mic a aceluiai mesaj folosind mai
multe module diferite, mesajul ar putea fi extras ca rdcin real a
6. Scheme de criptare cu cheie asimetric 89
criptotextului (calculul rdcinii reale este fezabil n timp polinomial, a se
vedea capitolul de fundamente matematice pentru teorema chinez a
resturilor).
- Problema modulului comun. Utilizarea aceluiai modul de ctre mai
muli participani nu este posibil deoarece cunoaterea unei perechi de
chei public-privat duce iminent la factorizarea modulului i pierderea
securitii ntre participani. Alte scheme asimetrice precum ElGamal
permit utilizarea unui modul comun fr a avea aceast deficien.
- RSA balansat i RSA nebalansat. Varianta de RSA n care cele dou
numere prime sunt alese ca avnd aproximativ aceeai dimensiune poart
numele de RSA balansat i este varianta recomandat i utilizat n
practic. Shamir a propus i utilizarea unei variante de RSA numite RSA
nebalansat care are rezisten mult mai mare dect RSA balansat
mpotriva factorizrii i are aceeai vitez de criptare/decriptare [4, p.
276]. Aceasta presupune utilizarea unui numr prim p relativ mic (cteva
sute de bii) i a unui numr prim q relativ mare (cteva mii de bii) iar
apoi decriptarea se va face modulo p pentru a ctiga timp (evident
pentru mesaje mai mici dect p ). Aceast schem are ns un dezavantaj
major nu rezist n faa unui atac de tip criptotext ales. Explicaia este
urmtoarea: presupunem c un adversar cripteaz un mesaj ' m p > iar
valoarea criptat este ' ' mod c m n
c
= dac maina de decriptare ofer ca
rspuns '' ' mod m c p
o
= n mod evident '' ' m m = i totodat
'' ' mod m m p deci ( ) . . . . . '' ', c mmd c m m n p = .
i nu n ultimul rnd cteva proprieti ale criptrii RSA sunt bine de
menionat cu specificaia c aceste proprieti s-au dovedit de-a lungul timpului a
fi pe de o parte avantajoase pentru c au permis dezvoltarea unor soluii de
securitate exotice (precum semntura blind introdus de Chaum ce va fi discutat
n capitolul urmtor) i pe de alt parte dezavantajoase deoarece au fost sursa
unor noi atacuri asupra RSA:
- Ciclicitatea criptrii. Funciile definite pe mulimi finite conduc la cicluri
prin compoziia lor succesiv. Astfel dac avem un mesaj criptat
n m c
e
mod = i continum s l criptm de un numr finit de ori se va
ajunge ca dup k runde sa obinem n c c
k
e
mod . n cele din urm acest
atac devine chiar o metod de factorizare (vezi metodele bazate pe
coliziuni din capitolul de fundamente matematice). Cum factorizarea nu
este fezabil, ciclicitatea criptrii nu reprezint un dezavantaj n practic.
90 Funcii Criptografice, Fundamente Matematice i Computaionale
- Criptarea identic se poate remarca c exist i mesaje care n urma
criptrii rmn neschimbate. Aceste mesaje sunt acele numere care
satisfac ecuaia n m m mod
c
n m mod 1
1
c
. Ne propunem s
determinm numrul de mesaje care satisfac aceast condiie. Datorit
izomorfismului descris de teorema chinez a resturilor este suficient s
lucrm modulo p i modulo q . Astfel n
p
Z ecuaia p m mod 1
1
c
are
exact ( ) . . . . . 1, 1 c mmd c p c = rdcini. Analog exist
( ) . . . . . 1, 1 c mmd c q c soluii ale ecuaiei n
q
Z iar din teorema chinez a
resturilor rezult c n
*
n
Z exist
( ) ( ) . . . . . 1, 1 . . . . . 1, 1 c mmd c p c mmd c q c c soluii. Numrul de mesaje
care verific aceast ecuaie este deci redus i nu poate afecta securitatea
schemei de criptare RSA.
- Proprietatea multiplicativ const n faptul c pentru dou mesaje
criptate
1 1
mod c m n
c
= i
2 2
mod c m n
c
= avem ( )
1 2 1 2
mod c c mm n
c
= .
Aceast proprietate a dus la multe construcii interesante bazate pe RSA
dar din nefericire i la atacul de tip criptotext ales adaptiv care va fi
prezentat la sfritul capitolului.
6. 7 CRIPTAREA ASIMETRIC RABIN
Se bazeaz pe utilizarea funciei ( ) n x x f mod
2
= unde pq n = este un
ntreg compozit produs a dou numere prime exact ca la RSA. Evident schema
Rabin nu este un caz particular al RSA deoarece RSA pretinde ca
( ) ( )
. . . . . , 1 c mmd c n c | = n timp ce ( ) ( )
. . . . . 2, 2 c mmd c n | = . Mai mult, funcia
( ) n x x f mod
2
= nu este o permutare a elementelor din
n
Z ca n cazul RSA fiind
clar c aceasta transform
*
n
Z n
n
Q i
( )( )
4
1 1
=
q p
Q
n
(se va consulta
capitolul de fundamente matematice pentru a lmuri de ce este aa). Pentru cazul
n care n este ntreg Blum (adic 4 mod 3 q p ) i domeniul de definiie se
schimb n
n n
Q Q f : , funcia Rabin devine o permutare, deoarece fiecare
reziduu cvadratic are exact patru rdcini din care exact una este reziduu
cvadratic. Criptosistemul este ilustrat n Figura 6.7 iar descrierea sa formal este
n Sistemul 6-2.
6. Scheme de criptare cu cheie asimetric 91
Se observ c este necesar prezena unui element de redundan pentru
a putea distinge ntre mesajul original i celelalte trei rdcini (reamintim c
fiecare reziduu cvadratic are exact 4 rdcini dac pq n = ). n practic,
introducerea unui astfel de element de redundan nu este o problem - fiind
suficient setarea ntr-o form prestabilit a ctorva bii sau transmisia pe lng
mesajul criptat a ctorva bii redundani. Din nou, tehnicile de padding ce vor fi
discutate la finalul acestui capitol rezolv i aceast problem, pe lng atacurile
active la care rspund.
( )
. 1
k
RabinGen : Genereaz dou numere prime aleatoare p , q i
calculeaz pq n = (presupunem c numerele p i
q au fost generate n aa fel nct n are k bii).
Cheia public este ( ) PK n iar cea privat este
( ) , SK p q .
( ) . , Rabin Enc m PK : Se obine cheia public a entitii aferente
( ) PK n i se reprezint mesajul ca ntreg n
intervalul ( ) n , 1 . Se calculeaz criptotextul ca
2
mod c m n .
( ) . , Rabin Dec c SK : Decripteaz mesajul ca mod m c n
(calculul rdcinii ptrate este descris n capitolul
de fundamente matematice).
SISTEMUL 6-2. SCHEMA DE CRIPTARE CU CHEIE PUBLIC RABIN
92 Funcii Criptografice, Fundamente Matematice i Computaionale
6. 8 SECURITATEA CRIPTOSISTEMULUI RABIN
Ne propunem s enumerm cteva atacuri clasice asupra algoritmului
Rabin. Atacul de tip criptotext ales este probabil cauza care a dus la
marginalizarea acestui algoritm de criptare. Posibilitatea de a gsi toate rdcinile
ecuaiei n a x mod
2
duce uor la factorizarea ntregului n . n acest context dac
un adversar are acces la maina de decriptare i poate obine decriptarea unui
mesaj ales arbitrar cu o probabilitate de 50% acesta va reui s factorizeze
ntregul n . Folosirea riguroas a redundanei poate duce la evitarea acestui tip de
atac. Atacul prin cutarea direct a mesajului este valid n acelai context ca la
RSA pentru orice criptosistem cu cheie public determinist. Atacul bazat pe
teorema chinez a este posibil i aici de aceast dat exponentul de criptare fiind
2.
Spre deosebire de RSA, n cazul cruia nu exist nici o demonstraie c
securitatea sa este echivalent cu factorizarea, pentru algoritmul Rabin o astfel de
( )
2
mod
Rabin
f x x n =
( )
PK n =
m
2
mod c m n =
Calculul radacinii patrate (vezi
sectiunea 4.4.) si alegerea
mesajului in baza unui
mecanism de redundanta
( )
SK Factorizare n =
c
2
mod m c n =
FIGURA 6.7. CRIPTAREA I DECRIPTAREA RABIN.
6. Scheme de criptare cu cheie asimetric 93
demonstraie este uor de fcut. De fapt demonstraia este direct deoarece
posibilitatea de a calcula reziduuri cvadratice conduce la factorizare aa cum
poate fi uor desprins din seciunea de fundamente matematice. Urmtoarea
echivalen este adevrat cu privire la schema Rabin:
. Rabin Dec PFI
6. 9 CRIPTAREA ASIMETRIC EL-GAMAL
Lucrarea lui Diffie i Hellman [29] propunea ideea de criptare asimetric
i un protocol de schimb de cheie asimetric. apte ani mai trziu, El-Gamal
utilizeaz ideile propuse de Diffie-Hellman pentru a construi un algoritm de
criptare asimetric i o semntur digital [33].
Principiul de funcionare al criptrii asimetrice este identic cu cel al
protocolului de schimb de cheie Diffie-Hellman cu meniunea c cheia simetric
este apoi utilizat pentru criptarea unui mesaj prin efectuarea unei multiplicri
modulare ntre aceasta i mesajul propriu-zis. Sistemul 6-3 ofer descrierea
schemei ElGamal, la fel i Figura 6.8.
( )
, mod ,
a
PK p p o o =
m
( )
1 2
, c c c =
( ) SK a =
m c
2 1
mod
a
m c c p
=
( )
1
2
mod
mod
k
a
k
c m p
c p
o
o
=
=
FIGURA 6.8. CRIPTAREA I DECRIPTAREA ELGAMAL.
94 Funcii Criptografice, Fundamente Matematice i Computaionale
Se observ c dimensiunea mesajului transmis este dubl n cazul criptrii
ElGamal deoarece trebuie transmis perechea o , .
6. 10 SECURITATEA CRIPTOSISTEMULUI ELGAMAL
Algoritmul El-Gamal este un algoritm de criptare non-determinist datorit
alegerii parametrului aleator k . Adic, un mesaj va rezulta n criptri diferite la
fiecare rulare a schemei. Se observ c utilizarea aceluiai exponent k nu este
posibil, deoarece dac acelai k este utilizat pentru a cripta mesaje diferite
atunci este valabil egalitatea
2
1
2
1
m
m
=
= .
SISTEMUL 6-3. SCHEMA DE CRIPTARE CU CHEIE PUBLIC ELGAMAL
6. Scheme de criptare cu cheie asimetric 95
Primul studiu serios asupra securitii criptosistemului ElGamal se
gsete n [82]. Securitatea criptosistemului ElGamal este echivalent cu
problema computaional Diffie-Hellman (CDH) i deci impune ca i problema
logaritmului discret (DLP) s nu poat fi eficient rezolvat pentru a fi sigur.
Urmtoarea relaie este adevrat:
. ElGamal Dec CDH
6. 11 CRIPTOSISTEMUL GOLDWASSER-MICALI
Criptosistemele RSA i Rabin aa cum au fost anterior prezentate sunt
criptosisteme deterministe. Marele dezavantaj al criptrii deterministe este c un
anume mesaj corespunde aceleiai valori de criptotext ntotdeauna, lucru care
face dificil transmiterea aceluiai mesaj ctre o anume entitate, deoarece un
adversar poate observa cel puin repetiia aceleiai informaii i deci obine o
informaie parial cu privire la mesajele vehiculate. Un alt dezavantaj este i
acela c unele mecanisme de criptare deterministe permit recuperarea unor bii
individuali de informaie din criptotext (ntr-un exemplu din seciunea de
fundamentare teoretic artm c simbolul Jacobi al mesajului poate fi recuperat
din criptotextul RSA). Tehnicile de padding discutate la finalul capitolului rezolv
acest neajuns, dar ele au venit la mai bine de un deceniu dup schemele iniiale.
Criptosistemul Goldwasser-Micali a aprut mult mai devreme fiind revoluionar
pentru vremea la care a aprut i rezolvnd aceast problem. Acesta este
avangardist ca procedeu constructiv i principii introduse n securitate, dar nu ca
i eficien (el este ineficient din punct de vedere computaional i absent n
practic). Sistemul este un sistem criptografic non-determinist, ceea ce nseamn
c rezultatul are o valoare randomizat (acelai mesaj criptat de mai multe ori va
rezulta n criptotexte diferite).
Principiul pe care se bazeaz criptosistemul este imposibilitatea de a
distinge reziduurile cvadratice de pseudo-reziduurile cvadratice din
*
n
Z fr
a cunoate factorizarea lui n - acest lucru mai se numete i problema
reziduurilor cvadratice (QRP Quadratic Residuosity Problem). Ce trebuie s
tim despre aceasta nainte de a citi capitolul de fundamente matematice, este c
reziduurile cvadratice sunt numerele ptrate perfecte din
*
n
Z iar pseudo-
reziduurile sunt numere care nu sunt ptrate perfecte dar nu se cunosc algoritmi
care pot face diferena dintre acestea i ptratele perfecte (dect dac se cunoate
96 Funcii Criptografice, Fundamente Matematice i Computaionale
factorizarea lui n ). Sistemul 6-4 este descrierea schemei de criptare asimetric
Goldwasser-Micali.
Aa cum se observ, entitatea care genereaz cheia cunoate i
factorizarea lui n i astfel poate face diferena ntre reziduuri i pseudo-reziduuri.
Pentru criptare, fiecare bit este criptat ntr-un reziduu sau pseudo-reziduu dup
cum este 1 sau 0 folosind un pseudo-reziduu publicat de cel care a generat cheia.
Evident prin nmulirea a unui reziduu cu un pseudo-reziduu se obine tot un
pseudo-reziduu, astfel n yx c
i
mod
2
= este un pseudo-reziduu pentru c y este
pseudo-reziduu n timp ce n x c
i
mod
2
= este un reziduu.
( )
. 1
k
GM Gen : Genereaz dou numere prime aleatoare p , q i
calculeaz pq n = . Alege
*
n
Z y e astfel nct y este
un pseudo-reziduu cvadratic, i.e.
n
y Q e (vezi
Definiia 9.44). Cheia public este ( ) , PK n y iar
cea privat este ( ) , SK p q .
( ) . , GM Enc m PK : Se obine cheia public a entitii aferente
( ) , PK n y i se reprezint mesajul m n binar ca
t
m m m m m ...
2 1 0
= . Pentru t i , 1 = alege un ntreg
aleator
*
n
Z xe dac 1 =
i
m atunci n yx c
i
mod
2
=
altfel n x c
i
mod
2
= . Mesajul criptat este ( )
t
c c c c ...
2 1 0
.
( ) . , GM Dec c SK : Pentru t i , 1 = calculeaz simbolul Legendre
|
|
.
|
\
|
p
c
i
i dac 1 =
|
|
.
|
\
|
p
c
i
atunci 0 =
i
m altfel 1 =
i
m .
Decripteaz mesajul ca mod m c n
o
.
SISTEMUL 6-4. SCHEMA DE CRIPTARE CU CHEIE PUBLIC GOLDWASSER-MICALI
6. Scheme de criptare cu cheie asimetric 97
Securitatea schemei este echivalent cu problema calculului apartenenei
la mulimea reziduurilor cvadratice, deci:
. GM Dec QRP
Nu securitatea sau eficiena acestei scheme este partea care o face
relevant, ci faptul c aceast schem atinge un obiectiv important de securitate
(imperceptibilitatea criptotextelor) care va fi discutat ntr-un capitol urmtor.
6. 12 SCHIMBUL DE CHEIE DIFFIE-HELLMAN FOLOSIND CURBE
ELIPTICE (ECDH)
Curbele eliptice erau cunoscute de criptografi nc din anii 80. Cu toate
acestea, ele au aprut n practic doar dup anii 2000. Dintre motivele ntrzierii,
cel puin dou par clare: faptul c sunt mai dificil de implementat i faptul c
matematica pe care se bazeaz este mai complex (nu toate proprietile curbelor
sunt perfect nelese).
Deloc surprinztor, schimbul de cheie Diffie-Hellman poate fi implementat
i folosind curbe eliptice. ntr-o seciune urmtoare discutm ce sunt acestea,
pentru moment ele pot fi interpretate ca un simplu obiect matematic. Aceast
implementare este comun referit n practic ca ECDH adic Elliptical-Curve
Diffie-Hellman. Poate ar fi corect, la fel cum protocolul Diffie-Hellman a fost
propus s se numeasc Diffie-Hellman-Merkle, ca acest protocol s se numeasc
Koblitz-Miller-Diffie-Hellman-Merkle (KMDHM) deoarece Koblitz i Miller au fost
pionierii curbelor eliptice n criptografie.
Spre deosebire de criptosisteme precum RSA, unde parametrii erau
generai aleator i pstrai secret, aici parametrii curbei sunt publici i pot fi
(re)folosii de oricte ori. Mai mult NIST recomand anumite curbe n FIPS 186-3
care sunt larg folosite de toate implementrile practice. Curbele recomandate de
NIST folosesc unul din cele 5 cmpuri prime generate de numere prime p de 192,
224, 256, 384 i 512 bii sau unul din cele 5 cmpuri binare de 163, 233, 283, 409
sau 571 bii. Pentru acestea din urm sunt recomandate att o curb simpl ct i
o curb Koblitz (care permite cu uurin calcularea numrului de puncte), deci n
98 Funcii Criptografice, Fundamente Matematice i Computaionale
total sunt 5 curbe n cmpuri prime i 10 curbe n cmpuri binare recomandate de
NIST. Protocolul 6-2 descrie schimbul de cheie ECDH.
( )
. 1
k
ECDH Gen : Alege un numr prim p de k bii, coeficienii a i
b ai unei curbe eliptice
2 3
: mod E y x ax b p = + + i
un generator P. Toi aceti parametrii sunt publici.
. ECDH Exchange : A: alege un numr aleator a i trimite
1. A B : aP
B: alege un numr aleator b i trimite
2. B A : bP
Ai B: calculeaz cheia comun ca abP
PROTOCOLUL 6-2. SCHIMBUL DE CHEIE DIFFIE-HELLMAN FOLOSIND CURBE ELIPTICE
6. Scheme de criptare cu cheie asimetric 99
6. 13 LIPSA SECURITII N VARIANTELE TEXT-BOOK
ALE ALGORITMILOR DE CRIPTARE
"Of concern with both of these
schemes is that there is no compelling reason
to believe that x is as hard to compute from
f(rx) as rx is hard to compute from f(rx) let
alone that all interesting properties of x are
well-hidden by f(rx). Indeed whether or not
[22, 15] "work" depends on aspects of f
beyond its being one-way, insofar as it is easy
to show that if there exists a trapdoor
permutation then there exists one for which
encryption as above is completely insecure."
M. Bellare & P. Rogaway
5
.
n trecut criptosistemele cu cheie public erau construite pentru a atinge
obiective de securitate rudimentare sau chiar vag definite, de exemplu un
adversar s nu poat afla mesajul criptat ceea ce era uzual asimilat cu inversarea
total a funciei one-way pe care se baza criptosistemul. Un astfel de deziderat de
securitate este ns ineficient n practic i este evident c folosirea schemelor
criptografice n variant text-book face posibil aflarea unor informaii pariale
despre textul criptat. De exemplu criptarea RSA nu modific simbolul Jacobi al
mesajului criptat, astfel, un adversar poate oricnd face distincie ntre criptrile a
dou mesaje cu simboluri Jacobi diferite.
Totodat, n trecut securitatea era gndit n faa unor adversari pasivi
care n principiu analizau criptotextul n vederea gsirii mesajului sau a cheii. n
lumea real adversarii nu sunt pasivi ci activi, avnd acces la mainile de criptare
i decriptare. n faa atacurilor active sistemele n variant text-book anterior
prezentate sunt nesigure.
Pentru claritatea expunerii vom considera un simplu atac de tip criptotext
ales adaptiv asupra schemei RSA. Un atac de tip criptotext ales adaptiv (CCA2)
5
Din lucrarea Optimal asymmetric encryption - How to encrypt with RSA.
100 Funcii Criptografice, Fundamente Matematice i Computaionale
presupune un adversar care nu cunoate cheia privat dar are acces la maina
de decriptare, la fel ca cel sugerat n Figura 6.9, iar faptul c criptotextul este ales
adaptiv nseamn c alegerea criptotextelor de ctre adversar se face pe baza unui
criptotext int care adversarul vrea s l decripteze, maina de decriptare fiind
dispus s decripteze orice criptotext mai puin criptotextul int. Adversarul cu
acces adaptiv este sugerat n Figura 6.10.
Adversar
Masina de decriptare
c=m
e
modn
m=c
d
modn
FIGURA 6.9. ADVERSAR CU ACCES LA MAINA DE DECRIPTARE.
Adversar
Masina de decriptare
c
2
=m
2
e
modn
m
2
=c
2
d
modn
Criptotext tinta c
1
Restrictie c
1
!=c
2
FIGURA 6.10. ADVERSAR CU ACCES ADAPTIV LA MAINA DE DECRIPTARE.
6. Scheme de criptare cu cheie asimetric 101
n acest scenariu este simplu de observat c adversarul poate ascunde
intenia de a decripta un mesaj
1 1
mod c m n
c
= calculnd
2 1 2
mod c c m n
c
pentru o valoare oarecare
2
m , iar apoi obine de la maina de decriptare
'
2 2
mod m c n
o
de unde poate calcula
1 '
1 2 2
mod m m m n
= . Atacul, sugerat i n
Figura 6.12, este pe ct de simplu pe att de fatal (criptotextul fiind spart).
Subliniem c toate criptosistemele anterior introduse sunt vulnerabile n faa unui
astfel de atac. Pentru a nltura aceast limitare vom introduce n paragraful
urmtor cteva obiective moderne de securitate i cteva conversii pentru a
construi criptosisteme rezistente n faa unor astfel de adversari.
Nici criptosistemul ElGamal nu este rezistent n faa unui atac CCA2. Din
nou, un adversar, avnd un criptotext int
( )
1 1
1 1 1 1
mod , ( ) mod
k k a
c p m p o o o = = = poate altera a doua valoare din
criptotext prin nmulirea ei cu o valoare arbitrar i obine
2 2 1
mod m p o o = .
Acum criptotextul nou creat ( )
2 1 2
, c o = este oferit mainii de decriptare i
Adversar
Masina de decriptare
c
2
=c
1
m
2
e
modn
m
2
=c
2
d
=m
1
m
2
modn
Adversarul vrea sa sparga criptotextul c
1
Restrictie c
1
!=c
2
Criptotextul este spart deoarece m
1
=m
2
m
2
-1
modn
FIGURA 6.11. ATAC ADAPTIV ASUPRA MAINII DE DECRIPTARE RSA FINALIZAT CU
SUCCES.
102 Funcii Criptografice, Fundamente Matematice i Computaionale
rspunsul acesteia
2 2 1
" mod
a
m p o
= poate fi folosit pentru a sparge
criptotextul iniial pentru c ntr-adevr
1
1 2 2
" mod m m m p
|
=
\ .
2 2 1
" mod
a
m p o
FIGURA 6.12. ATAC ADAPTIV ASUPRA MAINII DE DECRIPTARE ELGAMAL FINALIZAT
CU SUCCES.
6. Scheme de criptare cu cheie asimetric 103
introdus de Goldwasser i Micali [44], se nelege faptul c un adversar nu poate
afla nici un fel de informaie cu privire la un mesaj avnd doar valoarea
criptotextului aferent n mod ideal aceasta nseamn c ceea ce un adversar tie
avnd criptotextul, tie i fr criptotext. Prin NM, noiune introdus n [30], se
nelege faptul c un adversar nu poate construi un criptotext avnd un criptotext
dat la care nu cunoate mesajul aferent astfel nct ntre mesajele aferente s
existe o legtura cunoscut de ctre adversar. Noiunea de IND a aprut sub
diverse forme n literatura de specialitate, dintre acestea amintim: securitate
semantic i securitate polinomial (toate noiunile au aceeai semnificaie n
securitate).
Mai mult, toate aceste obiective trebuie s fie atinse n prezena unor
adversari activi care pot fi mprii n trei categorii:
i) CPA (chosen plaintext attack) desemneaz adversari care au
acces la maina de criptare. Este evident c orice criptosistem cu
cheie public trebuie s fie rezistent CPA deoarece orice
adversar are acces la maina de criptare cheia de criptare fiind
n mod evident public. n acest sens nu se discut niciodat de
rezistena CPA a unui criptosistem cu cheie public, aceasta fiind
o cerin mai mult dect evident.
ii) CCA1 (non-adaptive chosen ciphertext attack) desemneaz
adversari care au acces neadaptiv la maina de decriptare. Mai
exact adversarul are acces la maina de decriptare pn la
momentul la care primete valoarea criptotextului care trebuie
atacat, moment la care pierde accesul la maina de decriptare.
iii) CCA2 (adaptive chosen ciphertext attack) desemneaz
adversarii care au acces adaptiv la maina de decriptare, adic
accesul la main rmne valabil chiar i dup primirea valorii
criptotextului care trebuie atacat. Deoarece atacul CCA1 este
considerat oarecum perimat, adeseori n literatura de
specialitate se vorbete doar de atac CCA prin acesta
nelegndu-se de fapt atacul de tip CCA2.
Grupnd cele 3 obiective de securitate {IND, NM} cu cele 3 tipuri de
adversari {CPA, CCA1, CCA2} obinem 6 noiuni de securitate n cazul
criptosistemelor cu cheie public, acestea sunt:
104 Funcii Criptografice, Fundamente Matematice i Computaionale
IND-CPA, IND-CCA1, IND-CCA2, NM-CPA, NM-CCA1, NM-CCA2
Lucrarea [9] este cea care a oferit prima abordare unitar a acestor
noiuni de securitate definind legturile ntre ele. n Figura 6.13 sunt sintetizate
aceste legturi, figura este unanim acceptat n domeniu.
Cel mai esenial aspect n aceste relaii este echivalena
2 2 IND CCA NM CCA care nseamn c un criptosistem pentru care un
adversar cu acces adaptiv la maina de criptare nu poate asocia un criptotext unui
mesaj, chiar dac i se ofer mesajul original i un alt mesaj, cu o probabilitate mai
mare de atunci acest criptosistem este i non-maleabil, adic un adversar avnd
un criptotext nu poate construi un alt criptotext astfel nct mesajele aferente s
aib vreo legtur cunoscut de adversar.
Din punct de vedere formal rezistena IND-CCA2 poate fi definit dup
cum urmeaz (prelum definiia original din lucrarea n care au fost demonstrate
aceste noiuni [9]):
NM-CPA NM-CCA1 NM-CCA2
IND-CPA IND-CCA1 IND-CCA2
FIGURA 6.13. RELAII NTRE NOIUNI DE SECURITATE PENTRU CRIPTOSISTEME
CU CHEIE PUBLIC (DEMONSTRATE N [9]).
6. Scheme de criptare cu cheie asimetric 105
Definiia 6.1. (Rezistena IND-CPA, IND-CCA1, IND-CCA2) Fie
criptosistemul { } , , K E D = , { }
1 2
, A= A A un adversar al criptosistemului
{ } , 1, 2 at cpa cca cca e i k un parametru de securitate. Definim avantajul IND al
adversarului mpotriva criptosistemului ca fiind:
( )
,
ind atl
Adv k
A
=
( ) ( ) ( ) ( )
( ) ( ) ( )
1
2
0 1 1
2 0 1
, 1 , , , ,
2 Pr 1
0,1 , : , , ,
O k
O
pk b
pk sk K x x s pk
b y E x x x s y b
(
A
( =
(
A =
Avnd urmtoarele instane pentru at ,
1
O i
2
O :
- Dac at cpa = atunci ( )
1
O = i ( )
2
O =
- Dac 1 at cca = atunci ( ) ( )
1 sk
O D = i ( )
2
O =
- Dac 2 at cca = atunci ( ) ( )
1 sk
O D = i ( ) ( )
2 sk
O D =
n paragraful urmtor, dedicat criptosistemelor cu cheie public rezistente
CCA2 vom lucra cu cazul 2 at cca = . Lucrarea de fa nedorindu-se a fi exhaustiv,
nu introducem definiia pentru proprietatea NM datorit echivalenei
2 2 IND CCA NM CCA (practic pentru criptosistemele urmtoare odat
demonstrat rezistena IND-CCA2 aceasta implic i rezisten NM-CCA2).
6. 15 FUNCIA DE PADDING OAEP
Propunerile generice ale lui Bellare si Rogaway sunt primele propuneri cu
securitate demonstrat. Aceste propuneri, pe lng importana istoric, fiind
primele propuneri cu securitate demonstrat, sunt eseniale deoarece i
propuneri ulterioare (de exemplu RSA-KEM din [79]) chiar dac mult mai
elaborate i aparent mai complicate sunt extrem de apropiate ca tehnic
constructiv de mecanismele iniiale propuse de Bellare i Rogaway.
106 Funcii Criptografice, Fundamente Matematice i Computaionale
n [5] a fost introdus prima euristic n baza creia se poate demonstra
securitatea n faa adversarilor activi. Metoda are la baz utilizarea unui model
numit modelul oracolului aleatoare ROM (Random Oracle Model) i are ca baz
simularea comportamentului funciilor hash ca funcii perfect aleatoare (altfel
spus modelul presupune c un potenial adversar nu poate face diferena ntre
ieirea unei funcii aleatoare i ieirea unei funcii hash). Modelul ROM a adus i
criticism din partea unor nume puternice n domeniu [20] dar n cele din urm
este singura metod la momentul actual de a demonstra securitatea unui
criptosistem. Criticismul are la baz faptul c desigur, n cele din urm, o funcie
hash nu este o funcie aleatoare, deci Oracole Aleatoare nu exist n lumea real,
dar n cele din urm modelul este acceptat ca fiind cel puin un compromis i
reprezint cel puin un test necesar pentru criptosisteme. Un criptosistem care nu
este sigur n ROM nu trebuie pus sub nici o form n practic n timp ce un
criptosistem care rezist n ROM are anse bune ca i n practic s nu poat fi
eficient atacat. Totui trebuie menionat c exist criptosisteme care pot fi
demonstrate ca fiind sigure n ROM i totui pot fi sparte deci problema de baz
a modelului ROM este incompletitudinea. Dou tehnici de criptare sunt introduse
n [6]:
- Criptarea ( ) ( ) ( ) || E x f r G r x = are securitate IND n faa adversarilor
CCA1.
- Criptarea ( ) ( ) ( ) ( ) || || E x f r G r x H rx = are securitate IND i NM n faa
adversarilor CCA2 (la data publicrii lucrrii echivalena
2 2 IND CCA NM CCA nu era nc demonstrat aa c n [6] se gsesc
demonstraii separate pentru cele dou proprieti de securitate).
n criptosistemele de mai sus G este un generator de numere aleatoare,
H este o funcie hash, iar f este o funcie de criptare oarecare (n practic G i
H pot fi instaniate cu o funcie hash datorit comportamentului funciilor hash
similar cu funciile aleatoare).
Nu este de mirare, c tot Bellare i Rogaway introduc prima tehnic de
criptare pe baz de RSA care este rezistent CCA2. Aceasta este binecunoscuta
tehnic de formatare (padding) a mesajului OAEP (Optimal Asymmetric
Encryption Padding) folosit sub funcia RSA, ansamblu cunoscut sub numele de
RSA-OAEP [6]. n primul rnd sunt importante cteva meniuni istorice cu privire
la OAEP. Bellare i Rogaway au introdus OAEP n [6] susinnd c OAEP este o
6. Scheme de criptare cu cheie asimetric 107
tehnic de padding care funcioneaz pentru orice funcie one-way trapdoor
fcnd-o rezistent n faa atacurilor CCA2. Ulterior Shoup [78] demonstreaz c
OAEP nu poate s garanteze acest lucru pentru orice funcie, aducnd un contra-
exemplu cu o funcie XOR-maleabil. Deficiena descoperit de Shoup ridic mari
semne de ntrebare cu privire la RSA-OAEP i sunt Fujisaki, Okamoto, Pointcheval
i Stern [40] cei care reuesc s demonstreze c RSA-OAEP este rezistent CCA2.
n concluzie RSA-OAEP este un mecanism eficient i sigur de criptare folosind
RSA. Continum cu descrierea acestui criptosistem. Funcia de criptare f-OAEP
definete criptarea ca: ( ) ( ) ( ) ( ) ( )
|| E x f x G r r H x G r = . Se poate uor
observa c este vorba de includerea unei reele Feistel sub o funcie one-way cu
trap i acest lucru se observ uor n desenul din Figura 6.14.
OAEP este deci o tehnic de padding a crei securitate este demonstrat la
nivelul utilizrii funciei cu trap RSA. Desigur exist ns i alte funcii cu trap
dect RSA-ul. n acest context dezvoltarea unor metode ct mai variate de padding
a devenit necesar. Probabil cea mai bun propunere este cea a lui Fujisaki si
Okamoto. Pe scurt propunerea acestora este urmtoarea: criptarea
( ) ( ) ( ) ( )
|| || ,
pk
E x E x r H x r = , unde r este o valoare aleatoare, H este o funcie
hash. n modelul ROM Fujisaki i Okamoto au demonstrat c o astfel de criptare
este rezistent IND-CCA2 cu condiia ca funcia de criptare s fie sigur IND-CPA.
ntre exemplele oferite de autori se afl aplicarea unui astfel de padding asupra
schemelor Blum-Goldwasser, El-Gamal i Okamoto-Uchiyama [39]. Aceast
schem de padding mai este cunoscut i sub numele de Enhanced Probabilistic
Encryption.
nainte de a ncheia trebuie amintite i criptosistemele de criptare hibrid
rezistente IND/NM-CCA2 introduse de Shoup i Cramer n [27]. O soluie analoag
pentru construcia de criptosisteme hibride rezistente CCA2 este n [57] (ulterior,
[51] arat c o component a criptosistemului din [54] nu este rezistent CCA2) .
Este simplu de verificat i rmne ca exerciiu pentru cititor c folosind
aceste tehnici de padding atacurile anterior artate nu mai funcioneaz. Desigur
prezentarea din acest capitol nu este complet din dou motive: primul este c nu
a fost prezentat nici o demonstraie formal cu privire la rezistena acestor
criptosisteme i al doilea este c nu au fost oferite detalii complete cu privire la
parametrii de securitate care trebui utilizai n practic (dimensiunile cheilor, ale
valorilor aleatoare etc.). Tot ce am dorit n acest capitol a fost s trasm ideea de
rezisten IND/NM-CCA2 i s schim cteva soluii pentru aceasta, studiul n
continuare rmnnd deschis pentru cititor. n mediile de programare moderne,
108 Funcii Criptografice, Fundamente Matematice i Computaionale
de exemplu .NET, schema de criptare RSA este disponibil alturi de paddingul
OAEP (de altfel n .NET nici nu este posibil folosirea ei fr padding).
6. 16 FUNCIA DE PADDING PKCS
Dei nu ofer un nivel de securitate la fel de bun ca OAEP, standardele
oferite de RSA Laboratories prescriu o schem de padding cunoscut i sub
numele de PKCS padding. Aceasta apare n diverse implementri practice, de
exemplu n .NET.
Conform PKCS#1 (Public-Key Cryptography Standards) [70] acest
padding const n concatenarea unui octet cu valoarea 0, urmat de un octet cu
valoarea 2, urmat de un numr aleator de 3 k d bytes (unde d este
dimensiunea mesajului) urmat de un octet cu valoarea 0. Astfel criptarea se
efectueaz ca: ( ) 00...00|| 00...10|| || 00...00|| mod
e
random m n.
Utilizarea acestui padding este sigur n faa atacurilor asupra variantei
text-book indicate anterior i permite recuperarea ne-ambigu a mesajului criptat
(totui, acest padding nu are o demonstraie de securitate n faa unui adversar
activ CCA2 aa cum are OAEP deci trebuie considerat mai slab ca securitate).
G
H
1
0
k
m
r
( )
1
0
k
m G r ( ) ( )
1
0
k
r H m G r
f
FIGURA 6.14. SCHEMA BLOC A FUNCIEI F-OAEP
7 SCHEME DE SEMNARE DIGITAL
Semnturile digitale reprezint echivalentul electronic al semnturilor de
mn, acest concept fiind introdus ca funcionalitate adiional a criptosistemelor
cu cheie public de ctre Diffie i Hellman n 1976 dar n absena unei scheme
criptografice pentru acest scop. Obiectivul principal de securitate pe care l
asigur semnturile digitale l reprezint non-repudierea, i anume faptul c o
entitate odat ce a semnat o informaie nu poate nega c a emis acea informaie i
orice alt entitate neutr poate verifica acest lucru.
7. 1 PROPRIETI I CLASIFICARE: SEMNTURI CU APENDICE
I CU RECUPERAREA MESAJULUI
Semnturile digitale reprezint deci o valoare numeric care leag
coninutul unui mesaj de identitatea unei entiti (mai exact de o cheie privat cu
care s-a efectuat semntura). n cele mai multe cazuri, orice algoritm asimetric
poate fi utilizat pentru crearea unei semnturi digitale prin inversarea rolului
cheii publice cu cea privat, iar primele propuneri de semnturi digitale se gsesc
n lucrrile lui Rivest, Rabin i ElGamal [67], [65], [33]. Subliniem c i folosind
algoritmi simetrici se pot crea semnturi digitale (numite semnturi one-time
[12], [13], [32], [61]) dar acestea sunt rar utilizate n practic i nu sunt relevante
n contextul prezentei lucrri. Definiia unei scheme de semntur digital este
urmtoarea:
Definiia 7.1 (Schem de semntur digital). O schem de semntur
digital const ntr-un triplet de algoritmi: algoritmul generare a cheii
( ) ( )
, . 1
k
PK SK Sig Gen care primete ca parametru nivelul de securitate k i
returneaz perechea cheie public-privat ( ) , PK SK , algoritmul de semnare
( ) ( ) . ,
SK
Sig m Sig Sign m SK care primete mesajul m i cheia privat SK i
returneaz semntura
( )
SK
sig Sig m = i algoritmul de verificare
( ) . , , SigVer sig m PK care primete semntura sig , cheia privat SK i mesajul
m i returneaz 1 doar dac semntura este valid. Toate acestea alturi de
spaiile din care provin datele de intrare ale acestora (care fr a pierde
generalitatea sunt spaii ale stringurilor binare).
110 Funcii Criptografice, Fundamente Matematice i Computaionale
Pentru o semntur digital folosim n general notaia ( )
A
Sig m prin
aceasta nelegnd semntura entitii A asupra mesajului m . Semntur se
efectueaz ntotdeauna folosind cheia privat, din acest motiv putem folosi
notaia ( )
A
SK
Sig m cu sau fr nominalizare entitii dac nu este necesar
(uneori se folosete chiar i notaia ( )
A
SK
E m , adic criptare cu cheia secret). n
Figura 7.1 se prezint schema bloc a unei funcii de semntur digital.
Cteva proprieti computaionale ale semnturilor digitale trebuie
amintite: i) trebuie s fie uor de produs doar de ctre cel care semneaz mesajul
(funcia de semnare trebuie s fie uor de calculat), ii) trebuie s fie uor de
verificat de ctre oricine (funcia de verificare trebuie s fie uor de calculat), iii)
trebuie s dein o durat de via corespunztoare (adic semntura s nu
poat fi falsificat pn cnd nu mai este necesar scopului n care a fost creat).
Exist dou mari categorii distincte de semnturi digitale:
i) Semnturi digitale cu recuperarea mesajului mesajul
poate fi recuperat direct din semntura digital. Cel mai
simplu exemplu de construcie este prin inversarea rolului
cheii publice i private n cazul schemei RSA [67]. Pentru a
evita fraudarea lor este obligatorie folosirea unei funcii de
redundan asupra mesajului dup care semntura propriu-
zis se aplic asupra mesajului redundant. Acest lucru este
sugerat n Figura 7.2.
ii) Semnturi digitale cu apendice (sau cu anex) semnturi
digitale din care mesajul nu poate fi recuperat, drept care este
trimis adiional ca anex la semntura digital. Se pot construi
uor prin aplicarea unei funcii hash asupra mesajului i
semnarea hash-ului obinut, vezi Figura 7.3. Datorit eficienei
computaionale n semnarea mesajelor de dimensiuni mari
(deoarece se semneaz efectiv doar hash-ul mesajului care are
n jur de o sut, dou sute de bii indiferent de lungimea
mesajului), aceste semnturi sunt cele mai utilizate n practic.
Totodat orice schem de semntur digital cu recuperarea
mesajului poate fi uor convertit n semntur cu apendice.
8. Scheme de Semnare Digital 111
De asemenea semnturile digitale pot fi clasificate n semnturi
deterministe respectiv semnturi randomizate (non-deterministe) dup cum
algoritmul de semnare folosete valori aleatoare i returneaz sau nu aceeai
semntur pentru acelai mesaj de fiecare dat.
m R(m) Sig(R(m))
( ) R x ( ) Sig x
m R(m) Sig(R(m))
( )
1
R x
( )
1
Sig x
\
|
=
n
m
J . Dac 1 = J atunci
calculeaz n m s
d
mod = altfel calculeaz
n
m
s
d
mod
2
|
|
.
|
\
|
= . Returneaz s .
( ) . , RabinWilliamsVer s PK : Se obine cheia public a entitii n cauz
i se calculeaz n s m mod
2 '
= . n funcie de congruena
modulo 8 a acestei valori se calculeaz: 1. 8 mod 6
'
m
atunci
'
m m= 2. 8 mod 3
'
m atunci
'
2m m= 3.
8 mod 7
'
m atunci
'
m n m = 4. 8 mod 2
'
m atunci
( )
'
2 m n m = i verific dac mesajul aparine spaiului
de redundan, i.e.
R
M me . Recupereaz mesajul m ca
( )
16
6
1
= =
m
m R m .
SISTEMUL 7-4. SCHEMA DE SEMNARE DIGITAL RABIN-WILLIAMS
120 Funcii Criptografice, Fundamente Matematice i Computaionale
7. 5 SEMNTURA BLIND BAZAT PE RSA
Conceptul de blind-signature (preferm utilizarea termenului n limba
englez n locul traducerii de semntur oarb) a fost introdus de Chaum n
lucrarea [21] i de asemenea utilizat mai trziu n [22]. Ideea care st n spatele
acestui concept este foarte simpl i util. Scenariul urmrit este urmtorul: o
entitate dorete s obin semntura altei entiti, desigur cu consimmntul
acesteia, asupra unui mesaj fr ca s fac cunoscut mesajul sau semntura ctre
entitatea n cauz (posesoare a cheii private).
Realizarea unui astfel de mecanism este posibil dac pot fi gsite dou
funcii i astfel nct avnd algoritmul de semntur, pe care aici preferm
s l vedem ca pe o funcie aplicat unui mesaj ( ) S m s satisfac urmtoarea
relaie ( ) ( ) ( )
( ) S m S m = . Funcia poart denumirea de blinding-function
iar funcia de unblinding-function, denumirile indicnd foarte clar rolul
acestora. Pentru cazul n care se utilizeaz semntura digital RSA putem alege
( )
c
k m m = i ( )
1
= k m m iar funcia de semnare RSA fiind ( ) S m m
o
= este
evident c ( ) ( ) ( )
( ) S m S m = va fi satisfcut. Protocolul de blind-signature
care rezult n acest fel ntre dou entiti A i B este urmtorul (preferm
descrierea sub form de protocol i nu de semntur digital conform
formalismului anterior introdus deoarece este mai simplu de urmrit):
1. A: Alege o valoare aleatoare k i calculeaz n k m m mod
* c
=
2. A B :
*
m
3. B A : ( ) n m s mod
* *
o
= (practic B semneaz
*
m folosind RSA)
4. A: Calculeaz n k s s mod
1 *
= care este de fapt semntura
original s asupra lui m .
Cititorul poate uor imagina scenarii practice n care o astfel de schem de
semntur digital poate fi util iar funcionarea mecanismului prezentat este
evident i nu necesit explicaii suplimentare.
8. Scheme de Semnare Digital 121
7. 6 SEMNTURA DIGITAL ELGAMAL
Tot dificultatea de a calcula logaritmi discrei conduce la posibilitatea
construciei unui algoritm de semntur digital aa cum a observat ElGamal. Este
interesant ns c au trecut civa ani de la publicarea schimbului de cheie Diffie-
Hellman pn cnd aceast semntur bazat tot pe logaritmi discrei s fie
descoperit. Explicaia este faptul c schema de semnare nu este foarte intuitiv aa
cum se poate observa chiar din descrierea ei. Sistemul 7.5 descrie schema de semnare
digital ElGamal.
( )
. 1
k
ElGamal Gen : Genereaz un numr prim p , un generator g al
grupului
p
Z , un ntreg aleator 2 1 < < p a i
calculeaz mod
a
g p . Cheia public este
( )
, mod ,
a
PK g y g p p = iar cea privat este
( ) SK a .
( ) . , ElGamal Sign m SK : Genereaz un ntreg aleator 2 1 < < p k cu
( ) . . . . . , 1 1 c mmd c k p = , calculeaz mod
k
r g p = ,
( ) 1 mod
1
p k i ( ) { } ( )
1
mod 1 s k h m ar p
= .
Semntura digital a mesajului este perechea ( ) , r s .
Returneaz ( ) , sig r s .
( ) . , , ElGamal Ver s m PK : Se obine cheia public a entitii
( )
, mod ,
a
PK g g p p . Verific dac 1 1 < < p r i
n caz contrar respinge semntura. Calculeaz
1
mod
r s
v y r p = ,
( )
2
mod
h m
v g p = i accept
semntura dac i numai dac
2 1
v v = .
SISTEMUL 7-5. SCHEMA DE SEMNARE DIGITAL ELGAMAL
122 Funcii Criptografice, Fundamente Matematice i Computaionale
7. 7 SEMNTURA DIGITAL DSA
Digital Signature Algorithm (DSA) este standardul de semntur digital
propus de NIST n 1991 prin FIPS 186 Digital Signature Standard (DSS). n fapt
DSA este o variant a semnturii ElGamal. Se difereniaz ns prin cteva
restricii care conduc cel puin la dimensiune mai redus a semnturii. Iniial
modulul p , numr prim, era restricionat ca valoare ntre 512 i 1024 de bii (n
NET de exemplu, din acest motiv n timp ce cu RSA se pot face semnturi i la
4096 de bii, DSA nu permite dect pn n 1024).
Modulul p este ales astfel nct 1 p are un divizor prim q care conform
variantei FIPS 186-3 are 160 de bii dac modulul este de 1024 bii, respectiv 224
pentru module de 2048 de bii i 256 pentru module de 2048 sau 3072 de bii.
Mai departe, nu se folosete un generator al lui
p
Z ci un numr care are ordinul
( )
. 1
k
DSAGen : Genereaz un numr prim p n intervalul
( )
1023 1024
2 , 2
astfel nct 1 p s fie divizibil cu un numr prim q n
intervalul
( )
159 160
2 , 2 . Alege un numr aleator g al crui
ordin n
p
Z este q , un numr aleator a n intervalul
( ) 0, q i calculeaz mod
a
g p. Cheia public este
( )
, , ,
a
PK p q g g iar cea privat este ( ) SK a .
( ) . , DSASign m SK : Genereaz un ntreg aleator 1 k q < < , calculeaz
mod mod
k
r g p q = i ( ) { }
1
mod s k h m ar q
= .
Semntura digital a mesajului este perechea ( ) , r s .
Returneaz ( ) , sig r s .
( ) . , , DSAVer sig m PK : Se obine cheia public a entitii
( )
, , ,
a
PK p q g g . Verific dac 1 r q < < i 1 s q < < iar
n caz contrar respinge semntura. Calculeaz
1
mod w s q
= , ( )
1
mod u H m w q = ,
2
mod u r w q = ,
( ) ( )
1 2
mod mod
u u
v g y p q = i accept semntura dac i
numai dac v r = .
SISTEMUL 7-6. SCHEMA DE SEMNARE DIGITAL DSA
8. Scheme de Semnare Digital 123
q acest lucru conducnd la o semntur mai compact (din moment ce
generatorul are ordinul de 160-256 de bii, componentele semnturii vor avea tot
atia bii i nu numrul de bii ai lui p ca n cazul semnturii ElGamal).
Descrierea schemei DSA, care este similar cu algoritmul ElGamal pentru cazul
unui modul de 1024 de bii, este n Sistemul 7.6.
Conform standardului funcia h trebuie s fie o funcie hash aprobat
pentru semnturi digitale, de exemplu SHA-1 care este una dintre cele mai
comune alegeri. Parametrii pot fi partajai ntre mai multe entiti n sensul c
tripletul ( ) , , p q g poate fi folosit de mai muli participani n timp ce doar x este
secret. Se observ c spre deosebire de semntura ElGamal, valorile sunt reduse
modulo q , n rest schema este similar.
( )
. 1
k
ECDSAGen : Alege un numr prim p , coeficienii a i b ai unei curbe
eliptice
2 3
: mod E y x ax b p = + + . Alege un punct P al crui ordin
este q , un numr aleator d n intervalul ( ) 0, q i calculeaz dP.
Cheia public este ( ) , , , PK p a b xP iar cea privat este
( ) SK d .
( ) . , ECDSASign m SK : Genereaz un ntreg aleator 1 k q < < ,
calculeaz r kP = i ( ) { }
1
mod s k h m dr q
= . Semntura
digital a mesajului este perechea ( ) , r s . Returneaz
( ) , sig r s .
( ) . , , ECDSAVer sig m PK : Se obine cheia public a entitii
( ) , , , PK p a b dP . Verific dac 1 r q < < i 1 s q < < iar n caz
contrar respinge semntura. Calculeaz
1
mod w s q
= ,
( )
1
mod u H m w q = ,
2
mod u r w q = ,
1 2
v u P u dP = + i accept
semntura dac i numai dac coordonata x a lui r este egal
cu coordonata x a lui v .
SISTEMUL 7-7. SCHEMA DE SEMNARE DIGITAL DSA PE CURBE ELIPTICE (ECDSA)
124 Funcii Criptografice, Fundamente Matematice i Computaionale
7. 8 SEMNTURA DIGITAL FOLOSIND CURBE ELIPTICE
(ECDSA)
Eliptic Curve Digital Signature Algorithm (ECDSA), Sistemul 7.7, este
varianta lui DSA care folosete curbe eliptice. Avantajul este c ofer dimensiuni
ale cheii publice mult mai mici. De exemplu dac la DSA cheia public era de 1024
de bii, folosind ECDSA cheia scade pn la 160 de bii fr s schimbe nivelul de
securitate. Descrierea algoritmului este identic cu DSA cu excepia c acum se
genereaz parametrii curbei, la fel cum am artat n cadrul schimbului de cheie
Diffie-Hellman pe curbe eliptice (ECDH), iar semnarea se face prin operaii
asupra punctelor curbei.
7. 9 TIPURI DE ATAC ASUPRA SEMNTURILOR DIGITALE
Discuia devine i mai interesant n momentul n care discutm
despre atacuri asupra semnturilor digitale. n primul rnd raportat la
acestea este important s distingem ntre modurile n care semnturile pot
fi fraudate. Nivelele de fraudare sunt urmtoarele iar gravitatea lor crete
de la i la iv:
i) Fals existenial un adversar poate falsifica cel puin o semntur dar nu
are control total (sau parial) asupra mesajului semnat.
ii) Fals selectiv un adversar poate falsifica semntura asupra unui anumit
tip de mesaje.
iii) Fals universal adversarul poate calcula semnturi digitale asupra
oricrui mesaj (totui nu cunoate cheia cu care mesajele sunt semnate).
iv) Spargere total - adversarul este n posesia cheii private i poate falsifica
orice semntur.
n ceea ce privete atacul efectiv asupra sistemului de semnare digital,
distingem urmtoarele cazuri n funcie de posibilitile de acces ale adversarului
la maina de semnare digital:
8. Scheme de Semnare Digital 125
i) Atacuri bazate doar pe cheie este atacul n care adversarul are acces
doar la cheia public, de verificare, a semnturii digitale i nu are acces la
maina de semnare.
ii) Mesaj cunoscut adversarul are acces la mesaje semnate de posesorul
cheii private, dar aceste mesaje nu sunt la alegerea lui.
iii) Mesaj ales adversarul poate obine semntura pentru un anumit numr
de mesaje la alegerea sa.
iv) Mesaj ales adaptiv adversarul obine semnturi digitale la alegerea sa
pentru un anume set de mesaje, iar acest lucru se desfoar interactiv.
i n cazul atacului iv), la fel ca n cazul atacurilor de tip criptotext ales
adaptiv, posesorul cheii private nu vrea s semneze un anume mesaj int
cunoscut att de el ct i de adversar, dar este dispus s semneze alte mesaje pe
baza crora adversarul trebuie s construiasc semntura asupra mesajului int.
Atacurile ii), iii) i iv) sunt atacuri n care adversarul are acces la maina de
semnare digital. Prima metod de semnare digital rezistent n faa unor atacuri
active a fost introdus n [45].
8 FUNDAMENTE MATEMATICE
Nowadays, when a Number Theorist
applies for a grant, he says that Number Theory
is used in cryptography, and so doing Number
Theory is good for National Security. Back then,
since it was before the discovery of America,
they said Number Theory is used in music. But I
won't comment on the progress of civilization
since then. H.W. Lenstra
6
.
8. 1 ELEMENTE DE TEORIA PROBABILITILOR
Unul dintre domeniile la care se face frecvent apel n descrierea
criptosistemelor este teoria probabilitilor, cartea de referin n domeniu este
cea a lui Feller [34]. Aa cum s-a observat anterior, pn i definiia unei funcii
one-way, care este o noiune de baz a criptografiei, utiliza noiunea de
probabilitate. n practic nu avem de a face cu criptosisteme care nu pot fi sparte,
ci cu criptosisteme despre care se poate spune pe drept cuvnt c probabilitatea
de a fi sparte este neglijabil.
Definim un eveniment E ca fiind rezultatul unui experiment S i notm
probabilitatea ca evenimentul E s aib loc cu ( ) Pr E . Putem clasifica dou
evenimente
1
E i
2
E n:
i) Independente dac evenimentele nu sunt legate unul de altul, deci
apariia unuia nu influeneaz apariia celuilalt, i.e.
( ) ( ) ( )
1 2 1 2
Pr Pr Pr E E E E = (se mai numete i regula produs pentru
evenimente simultane).
6
Preluat de la http://www.matem.unam.mx/~magidin/lenstra.html.
8. Fundamente matematice 127
ii) Mutual exclusive dac evenimentele nu pot avea loc simultan, adic
apariia unuia face imposibil apariia celuilalt, i.e. ( )
1 2
Pr 0 E E = .
iii) Complementare dac unul nu apare implic apariia celuilalt i
invers, i.e. ( ) ( )
1 2
Pr Pr 1 E E + = .
Se poate uor observa c pentru dou evenimente
1
E i
2
E probabilitatea
ca oricare sau amndou s apar este egal cu
( ) ( ) ( ) ( ) ( ) ( )
1 2 1 2 1 2 1 2
Pr Pr Pr Pr Pr E E E E E E E E = + . Pentru cazul n
care valoarea lui ( ) ( )
1 2
Pr Pr E E este neglijabil (sau nul n cazul evenimentelor
mutual exclusive) se poate aproxima ( ) ( ) ( )
1 2 1 2
Pr Pr Pr E E E E = + .
Relevant este i definirea probabilitii condiionale ntre evenimente.
Definiia 8.1. (Probabilitate condiional) Pentru dou evenimente
1
E i
2
E definim probabilitatea condiional, adic probabilitatea ca
1
E s fie produs de
2
E ca fiind
( )
( )
( )
1 2
1 2
2
Pr
Pr
Pr
E E
E E
E
= .
Un rezultat imediat i foarte relevant legat de probabilitatea condiional
a dou evenimente este Teorema lui Bayes.
Teorema 8.1. (Teorema lui Bayes) Pentru dou evenimente
1
E i
2
E avem
( )
( ) ( )
( )
1 2 1
1 2
2
Pr Pr
Pr
Pr
E E E
E E
E
= .
Aplicarea teoremei lui Bayes este imediat n probleme care ntreab care
este probabilitatea unui eveniment dat fiind c s-a ntmplat un anume
eveniment. Una dintre aplicaiile frecvente n practic sunt filtrele anti-spam.
Trebuie avut atenie sporit deoarece de multe ori rezultatul este contra-
intuitiv. Un bun exemplu este paradoxul cutiilor a lui Bertrand. Avnd trei cutii
fiecare coninnd 2 monede dup cum urmeaz: prima dou de argint, a doua
dou de aur i a treia una de aur i una de argint, dac am ales o cutie i n ea este
o moned de aur, care este probabilitatea ca i cealalt s fie tot de aur? Un
rspuns pripit este plecnd de la faptul c dac am o moned de aur atunci: fie
este cutia aur-argint fie aur-aur i deci sunt n una din cele 2 situaii ce conduce la
probabilitate . Rspunsul este ns greit, deoarece probabilitatea este 2/3 dat
fiind c n momentul n care am ales aur m aflu n una din cele 3 variante: prima
128 Funcii Criptografice, Fundamente Matematice i Computaionale
moned din cutia aur-aur, a doua moned din cutia aur-aur, moneda aur din cutia
aur-argint. Dou din cele trei variante anterioare sunt ctigtoare i deci 2/3
este rspunsul corect. Acest rezultat poate fi explicat i prin prisma teoremei lui
Bayes. Avem de calculat:
( )
( ) ( )
( )
Pr 2 Pr 1 2
Pr 2 1
Pr 1
Aur Aur Aur
Aur Aur
Aur
=
.
Desigur ( ) Pr 2 1/ 3 Aur = ,
( )
Pr 1 2 1 Aur Aur = n timp ce ( ) Pr 1 1/ 2 Aur =
deoarece sunt 6 variante de moned (2 monede x 3 cutii) din care 3 sunt de aur
(deci 3/6). nlocuind n relaie conduce la 2/3 aa cum am artat i anterior.
Rezultatul se poate explica identic i folosind definiia probabilitii condiionale.
Cele mai frecvente experimente sunt cele care au ca rezultat doar dou
evenimente complementare. S presupunem c avem un generator de numere
aleatoare la ieirea cruia putem avea fie 0 fie 1, evident e vorba de dou
evenimente complementare. Pentru cazul n care generatorul este perfect
echilibrat probabilitatea de a da 0 sau 1 este egal cu . Dac presupunem c
generm o secven de 12 bii care este probabilitatea ca exact 7 bii s fie 1 i
exact 5 s fie 0 indiferent de ordinea n care apar? Rspunsul la aceast ntrebare
poate fi uor dat pe baza distribuiei binomiale.
Teorema 8.2. (Distribuia binomial) Dac un experiment se soldeaz cu
dou evenimente complementare
1
E i
2
E prin repetarea experimentului de n ori
probabilitatea ca evenimentul
1
E s fi rezultat de k ori (bineneles c
2
E va
rezulta de n k fiind complementar) este ( ) ( )
1 2
Pr Pr
k n k
k
n
C E E
.
Rmne ca exerciiu pentru cititor s rspund la ntrebarea anterioar, i
s imagineze diverse scenarii pentru cazul n care generatorul nu este perfect
echilibrat i probabilitatea ca ieirea s fie 0 nu este egal cu cea ca ieirea s fie 1.
O alt aplicaie imediat a probabilitilor n programare este construcia
tabelelor de hashuri (hashtable) n care mai multe valori sunt reinute indexat
dup chei de k bii. Fiecare cheie este generat aleator (sau are la baza un hash al
valorii pe care o indexeaz). ntrebarea este dup cte valori introduse n tabel
ne putem atepta la o coliziune cu probabilitate mai mare de ? ntrebarea este
relevant deoarece de exemplu 20 k = conduce la peste 1.000.000 de chei
posibile i aparent probabilitatea de coliziune este mic. Totui teoria ne arat c
nu este aa, probabilitatea de coliziune fiind n mare odat ce s-au atins
aproximativ 2
k
elemente. Deci 1000 de elemente sunt suficiente pentru o
coliziune cu probabilitate destul de mare. Acest fapt este cunoscut sub numele de
paradoxul zilelor de natere deoarece, n mod oarecum surprinztor,
8. Fundamente matematice 129
probabilitatea ca ntr-o camera cu 23 de persoane s existe cel puin 2 persoane
nscute n aceeai zi este aprox. iar intr-o camera cu 100 de persoane
0.999999.
Problema poate fi abstractizat considernd o urn cu m bile, i
ntrebnd care este probabilitatea ca dup n extrageri (cu reintroducere) s
exista cel puin 1 coliziune. Evident, exist
( )
!
( 1)( 2)...( 1)
!
n
m
m m m m m n
n
= = +
variante de a extrage n bile fr coliziune dintr-un total de
n
m variante de
extragere. Deci, probabilitatea s nu existe nici o coliziune este
( )
1
n
n
m
m
. Se poate
demonstra c dac m atunci numrul de extrageri pn la o coliziune este n
medie de
2
m t
.
8. 2 ELEMENTE DE ALGEBR: GRUPURI, INELE I CMPURI
Pentru a elimina confuzii de limbaj, re-amintim definiiile ctorva obiecte
matematice comun folosite n criptografie: grupuri, cmpuri i spaii vectoriale.
Definiia 8.2. (Grup i grup abelian) Un grup este format de o mulime G
alturi de o operaie binar notat - cu proprietile: - este asociativ adic
, , , ( ) ( ) a b c G a b c a b c e - - = - - , exist un element identitate notat cu 1 astfel
nct , 1 a G a a e - = i fiecare element din G are un invers, i.e.,
1
, a G a
e -
astfel nct
1
1 a a
- a a astfel nct
n a a mod 1
1
.
Inversul multiplicativ poate fi eficient calculat cu ajutorul Algoritmului
Euclidian Extins care va fi discutat n capitolul 4.
8.3.2 TEOREMA CHINEZ A RESTURILOR
Pentru doi ntregi oarecare a i b sunt bine cunoscute noiunile de cel
mai mare divizor comun, ca fiind cel mai mare ntreg care divide att pe a ct i
pe b , respectiv cea de cel mai mic multiplu comun, ca fiind cel mai mic ntreg
divizibil att cu a ct i cu b . Este util s introducem ns i relaiile matematice
care definesc aceste numere:
Definiia 8.8. (c.m.m.d.c. i c.m.m.m.c). Pentru doi ntregi b a, a cror
factorizare este
k
e
k
e e
p p p a ...
2 1
2 1
= respectiv
1 2
1 2
...
k
f f f
k
b p p p = cu 0 >
i
e , 0 >
i
f
(subliniem c am introdus n mod forat n factorizarea celor doi ntregi aceleai
numere prime, permind ca exponentul s fie 0) sunt adevrate egalitile:
132 Funcii Criptografice, Fundamente Matematice i Computaionale
( )
( ) ( ) ( )
1 1 2 2
min , min , min ,
1 2
. . . . . , ...
k k
e f e f e f
k
c mmd c a b p p p = ,
( )
( ) ( ) ( )
1 1 2 2
max , max , max ,
1 2
. . . . . , ...
k k
e f e f e f
k
c mmmc a b p p p = .
Teorema chinez a resturilor este un rezultat frecvent utilizat n
criptografie i criptanaliz.
Teorema 8.3. (Teorema Chinez a Resturilor): Fie ntregii
k
n n n ,..., ,
2 1
astfel nct
( )
. . . . . , 1, , 0 , 0
i j
c mmd c n n i j i k j k = = < s < s . Atunci urmtorul
sistem de congruene are o soluie unic x n
n
Z unde
k
n n n n ...
2 1
= :
k k
n a x
n a x
n a x
mod
......
mod
mod
2 2
1 1
Mai mult, soluia acestui sistem poate fi calculat, folosind algoritmul lui
Gauss, ca fiind
=
=
k
i
i i i
n M N a x
1
mod unde
i
i
n
n
N = iar
1
mod
i i i
M N n
= .
Posibilitatea de a calcula inverse multiplicative folosind Algoritmul
Euclidian Extins (vezi capitolul 4) duce la posibilitatea rezolvrii n timp
polinomial a sistemului de congruene din aceast teorem, deoarece aa cum se
poate observa soluia necesit calcularea de inverse multiplicative n , 1,
i
n
Z i k = .
Pentru a sublinia importana acestui rezultat s considerm c o entitate A
dorete s trimit un mesaj criptat ctre trei entiti care utilizeaz pentru
criptare trei module diferite
3 2 1
, , n n n i acelai exponent de criptare 3 c =
folosind funcia RSA (chiar dac criptosistemul nu a fost nc introdus funcia de
criptare RSA a fost prezentat n 2.2). Mesajele criptate transmise sunt
urmtoarele
1
3
1
modn m c = ,
2
3
2
modn m c = ,
3
3
3
modn m c = . Potenialul
adversar cunoate cheile publice, deci
3 2 1
, , n n n , 3 = e , iar dup interceptarea
mesajelor criptate are posibilitatea de a construi sistemul:
3 3
2 2
1 1
mod
mod
mod
n c x
n c x
n c x
8. Fundamente matematice 133
Conform Teoremei Chineze a Resturilor acesta are o soluie unic n
n
Z cu
3 2 1
n n n n = i din moment ce
1 2 3
, , m n m n m n < < < nseamn c
3
3 2 1
n n n m< i
deci
3
1 2 3
m n n n < . Deci evident soluia sistemului este chiar
3
m x = de unde
mesajul original m poate fi extras ca rdcin cubic a lui x n mulimea
numerelor reale. Deci securitatea transmisiei este compromis.
8.3.3 TEOREMELE LUI FERMAT I EULER
Mica teorem a lui Fermat i dezvoltarea acesteia n teorema lui Euler cu
privire la funcia Euler | reprezint un rezultat matematic pe baza cruia a fost
construit criptosistemul RSA precum i alte criptosisteme a cror securitate este
bazat pe problema factorizrii ntregilor.
Definiia 8.9. Pentru un ntreg n definim funcia Euler Fi ( ) n | ca fiind
numrul de ntregi pozitivi mai mici dect n i relativ primi la acesta.
Din definiie rezult c ( )
*
n
Z n = | (deci ( ) n | este chiar ordinul grupului
*
n
Z ). Se poate uor observa c pentru un numr prim p avem ( ) 1 = p p | . De
asemenea pentru un exponent ntreg pozitiv e avem ( )
|
|
.
|
\
|
=
p
p p
e e
1
1 | , aceast
relaie fiind uor de dedus deoarece din cei
e
p ntregi mai mici dect
e
p este
evident c avem exact
1 e
p ntregi care nu sunt relativ primi la p deci
( )
|
|
.
|
\
|
= =
p
p p p p
e e e e
1
1
1
| .
Teorema 8.4. Pentru orice pereche de ntregi pozitivi m n, dac
( ) . . . . . , 1 c mmd c n m = atunci ( ) ( ) ( ) m n nm | | | = .
Teorema poate fi uor demonstrat plecnd de la Teorema Chinez a
Resturilor. Prin definiie exist ( ) m | ntregi x astfel nct m x < s 0 cu
( ) . . . . . , 1 c mmd c x m = i ( ) n | ntregi y astfel nct n y < s 0 cu
( ) . . . . . , 1 c mmd c y n = . Atunci conform Teoremei Chineze a resturilor exist exact un
ntreg mn z < s 0 astfel nct m x z mod i n y z mod ; de asemenea z va fi i
el prim relativ la m i n . Urmeaz imediat c numrul de ntregi z relativ primi
134 Funcii Criptografice, Fundamente Matematice i Computaionale
la m respectiv n care pot fi dedui n acest fel prin Teorema Chinez a Resturilor
este chiar ( ) ( ) n m| | .
Urmtoarea teorem stabilete relaia dup care ( ) n | poate fi calculat i
pentru ntregi compozii.
Teorema 8.5. Pentru un ntreg compozit avnd factorizarea
[
=
=
r
i
e
i
i
p n
1
funcia lui Euler ( ) n | poate fi calculat dup relaia:
( )
|
|
.
|
\
|
|
|
.
|
\
|
|
|
.
|
\
|
=
r
p p p
n n
1
1 ...
1
1
1
1
2 1
| .
Demonstraia acestei teoreme este direct deoarece bazndu-ne pe faptul
c ( ) ( ) ( ) m n nm | | | = dac ( ) . . . . . , 1 c mmd c n m = precum i pe faptul c
( )
|
|
.
|
\
|
=
p
p p
e e
1
1 | din moment ce
[
=
=
r
i
e
i
i
p n
1
rezult imediat c
( ) ( )
[ [ [ [
= = = =
|
|
.
|
\
|
=
|
|
.
|
\
|
= =
|
|
.
|
\
|
=
r
i i
r
i i
e
i
r
i
e
i
r
i
e
i
p
n
p
p p p n
i i i
1 1 1 1
1
1
1
1 | | | .
Teorema 8.6. (Mica Teorem a lui Fermat). Fie p un numr prim i a un
ntreg astfel nct ( ) . . . . . , 1 c mmd c a p = atunci p a
p
mod 1
1
.
Demonstraie: Poate cea mai simpl demonstraie poate fi fcut plecnd
de la observaia c ( ) ( ) 1 1 1 1mod
p p
p
x x x p + + aceasta deoarece toi
coeficienii binomiali sunt divizibili cu p , fiind de forma
k
p
C , mai puin
coeficienii termenilor de rang p . Dar ( ) 1
p
x poate fi scris din nou ca
( ) ( ) 2 1 2 1mod
p p
x x p + + deci ( ) 2 1 1mod
p
p
x x p + + . Acelai lucru
putem s l facem i cu ( ) 2
p
x i procedeul se poate repeta pn ajungem la 1
p
.
Se poate uor observa c vom ajunge la 1 ... 1 1mod
p p
x ori
x p
+ + + - ceea ce trebuia
demonstrat.
O consecin imediat a teoremei 8.6 este faptul c dac ( ) 1 mod p s r
atunci p a a
s r
mod , deci cnd se lucreaz modulo p exponenii pot fi redui
modulo 1 p acest fapt fiind de mare importan n criptografie.
8. Fundamente matematice 135
Teorema este un caz particular al urmtoarei teoreme introduse de Euler
(n acest sens putnd fi utilizat i demonstraia teoremei 8.7 pentru a demonstra
Teorema 8.6).
Teorema 8.7. (Teorema lui Euler). Fie un ntreg oarecare 2 > n i
*
n
Z ae
atunci
( )
n a
n
mod 1
|
. Remarca referitoare la reducerea exponenilor poate fi
extins i pentru acest caz acum exponenii putnd fi redui modulo ( ) n | .
O demonstraie elegant a acestei teoreme se poate face dup cum
urmeaz: definim funcia ( ) x x f Z Z f
n n
= , :
* *
i funcia ( ) x x g Z Z g
n n
o = , :
* *
pentru orice parametru
*
n
Z e o . Este evident c ( ) ( ) n x g x f
n n
Z x Z x
mod
* *
[ [
e e
deoarece imaginile ambelor funcii conin toate elementele din
*
n
Z dar
( )
[ [
e e
=
* *
n n
Z x Z x
x x f iar ( )
( )
[ [ [
e e e
= =
* * *
n n n
Z x
n
Z x Z x
x x x g
|
o o deci
( )
[ [
e e
=
* *
mod mod
n n
Z x
n
Z x
n x n x
|
o de unde rezult
( )
n
n
mod 1
|
o .
Aceast teorem la rndul ei poate fi vzut ca fiind un caz particular al
unei teoreme a lui Lagrange care spune c ordinul oricrui element dintr-un grup
finit (vezi Definiia 8.10 pentru ordinul unui element din
*
n
Z ) divide ordinul
grupului.
8.3.4 ORDINUL UNUI ELEMENT I GENERATORI N ZN
Definiia 8.10. Pentru un ntreg
*
n
Z ae definim ordinul elementului a ca
fiind cel mai mic ntreg t astfel nct n a
t
mod 1 .
Teorema 8.8. Fie t ordinul lui
*
n
Z ae atunci n a a
h k
mod dac i numai
dac t h k mod .
Demonstraie: presupunem c t r h k mod , cu t r < , atunci
n a a a
r it h k
mod
n a a
r h k
mod
dar n a a
h k
mod deci n a
h k
mod 1
i deci n a
r
mod 1 0 r = 0mod k h t . : avem t h k mod deci
n a
h k
mod 1
n a a
h k
mod .
136 Funcii Criptografice, Fundamente Matematice i Computaionale
Lema 8.1. Fie t ordinul lui
*
n
Z ae atunci ( ) n t | | - adic ordinul fiecrui
element divide ordinul grupului.
Demonstraie: demonstraia decurge direct din proprietatea anterioar
pentru c din moment ce
( )
n a a
n t
mod
|
( ) ( ) t n t n t mod 0 mod | |
deci ( ) n t | | .
Definiia 8.11. Fie
*
n
Z e o dac ordinul lui o este ( ) n | atunci o se
numete generator al lui
*
n
Z .
Definiia 8.12. Dac grupul
*
n
Z are generatori atunci
*
n
Z se numete grup
ciclic.
Teorema 8.9.
*
n
Z are generatori, deci este ciclic, dac i numai dac
k k
p p n 2 , , 4 , 2 = unde p este prim iar k un ntreg pozitiv.
O demonstraie pentru Teorema 8.9 poate fi gsit n capitolul 10 din [2].
8.3.5 CONGRUENE POLINOMIALE N ZN
Teorema 8.10. Fie p un numr prim i numerele c b a , , ntregi relativ
primi la p . Ecuaia de gradul II p c bx ax mod 0
2
+ + este compatibil (are
soluie) dac i numai dac numrul ac b 4
2
= A este reziduu cvadratic modulo
p sau 0 = A .
Lsm demonstraia teoremei 8.10 ca exerciiu pentru cititor n special
datorit similitudinii cu calculul rdcinii unei ecuaii de ordinul doi n mulimea
numerelor reale cu care cititorul este familiarizat deja.
Teorema 8.11. Fie p un numr prim i f un polinom cu coeficieni ntregi
care nu sunt divizibili cu p . Atunci numrul de soluii ale congruentei
( ) p x f mod 0 este cel mult gradul polinomului f .
Nu insistm pe o demonstraie riguroas ci ne oprim asupra unei simple
schie. n primul rnd observm c un polinom de gradul nti are o singur
rdcin modulo p , este evident c ecuaia 0mod x a p + are o singur soluie.
Se poate apoi observa foarte simplu din Teorema mpririi cu Rest c orice
polinom de grad k poate fi scris ca ( ) ( ) ( ) f x x a g x c = + + prin mprire cu rest
8. Fundamente matematice 137
la un polinom oarecare x a + iar dac a este rdcin a lui f atunci 0 c = i deci
( ) ( ) ( ) f x x a g x = + iar numrul de rdcini ale lui f trebuie s fie 1 plus
numrul de rdcini ale lui g care acum are gradul 1 k . n mod evident
procedura se mai poate repeta i pentru g i aa mai departe pn ajungem la un
polinom de gradul 1 care va avea o singur rdcin, de unde rezult imediat c
f are cel mult k soluii.
8.3.6 REZIDUURI CVADRATICE N ZN
Acest paragraf trateaz problema reziduurilor cvadratice n
*
n
Z problem
care prezint un interes major deoarece i gsete aplicaii att n numeroase
construcii criptografice, de exemplu algoritmul Rabin [65] de criptare asimetric
i semntur digital, precum i n tehnicile de analiz criptografic, de exemplu
n factorizarea ntregilor (fiind demonstrat c posibilitatea de a calcula rdcini
ptrate n
*
n
Z duce la factorizarea lui n ). De asemenea exist i probleme rmase
nerezolvate legate de reziduurile cvadratice n
*
n
Z , dintre acestea enunm
urmtoarele probleme de importanta major n criptografie:
i) Nu se cunoate nici un algoritm PTP pentru a distinge
reziduurile de pseudo-reziduurile cvadratice n
*
n
Z fr a se
cunoate factorizarea lui n .
ii) Nu se cunoate nici un algoritm determinist n timp polinomial
n p pentru calcularea reziduurilor cvadratice n
*
p
Z , unde p
este un numr prim.
Definiia 8.13. Fie
*
n
Z xe , x se numete reziduu cvadratic modulo n , sau
ptrat perfect modulo n , dac exist
*
n
Z ye astfel nct n y x mod
2
. Dac nu
exist
*
n
Z ye astfel nct condiia anterioar s fie satisfcuta atunci x se va numi
non-reziduu cvadratic modulo n .
Convenim s notm mulimea reziduurilor cvadratice modulo n cu
n
Q iar
cea a non-reziduurilor cvadratice modulo n cu
n
Q , evident C =
n n
Q Q i
*
n n n
Z Q Q = .
138 Funcii Criptografice, Fundamente Matematice i Computaionale
Remarca 8.2. Prin definiie
*
0
n
Z e i deci
n
Q e 0 ,
n
Q e 0 (precizm c
exist i lucrri care consider c 0
n
Q e ).
Teorema 8.12. Dac p este un numr prim i p y x mod
2 2
atunci fie
p y x mod fie p y x mod .
Demonstraie:
p y x p y x mod 0 mod
2 2 2 2
( )( ) p y x y x mod 0 + deci fie
( ) | p x y fie ( ) | p x y + .
Teorema 8.13. Fie p un numr prim, urmtoarele relaii sunt adevrate:
i)
p
Q xe ,
p
Q ye
p
Q xy e , ii)
p
Q xe ,
p
Q y e
p
Q xye , iii)
p
Q xe ,
p
Q y e
p
Q xy e .
Demonstraie: i) Este evident c dac
p
Q xe ,
p
Q ye atunci , a b - astfel nct
p a x mod
2
i p b y mod
2
( ) p ab xy mod
2
deci
p
xy Q e . ii) Presupunem
c
p
xy Q e atunci avem
2
mod xy a p pentru un numr oarecare
p
a Z
-
e . Dar
cum
p
Q xe nseamn c b - astfel nct
2
mod x b p i atunci
2 2 2
mod mod xy a p b y a p de unde avem
( )
1
2 2
mod y a b p
( )
2
1
mod y ab p
i deci
p
Q ye ceea ce este o contradicie cu ipoteza, deci nu
rmne dect c presupunerea este greit i deci
p
xy Q e . iii) Presupunem c
produsul a dou non-reziduuri este tot un non-reziduu. Notm mod xy z p i
presupunem deci c
p
z Q e , n mod evident orice non-reziduu cvadratic poate
fi scris ca fiind produsul dintre un reziduu i un non-reziduu cvadratic, convenim
astfel pentru un numr oarecare
p
a Z
-
e s scriem
2
' mod x x a p ,
2
' mod y y a p ,
2
' mod z z a p i urmeaz c
4 2
' ' ' mod x y a z a p
( )
2
1 1
' ' ' mod x y z a p
. Este uor de observat c dac
'
p
z Q e atunci i
1
p
z Q
e pentru c
1 2
mod
p
z z p
iar ridicarea la puterea
2 p care este un numr impar nu poate schimba apartenena la reziduuri sau
non-reziduuri cvadratice. Dar noi am presupus c produsul a dou non-reziduuri
este tot un non-reziduu deci ' ' x y este non-reziduu i nmulit cu
1
z
p p
e
. Mai mult dac x este
rdcina ptratic a lui a modulo
e
p la fel este i x i orice alt rdcin y a lui
140 Funcii Criptografice, Fundamente Matematice i Computaionale
a satisface p x y mod . Mai mult p a mod 0 = avem
( )
1
1
2
1mod
e
p p
a p
= i
p
a Q e
( )
1
1
2
1mod
e
p p
e
a p
= .
Demonstraie: Demonstraia se poate face n manier similar cu cea
anterioar deoarece i
*
e
p
Z are generatori de ordin ( )
1
=
e e e
p p p | i rezultatul
teoremei decurge imediat. Din nou, demonstrarea teoremei rmne ca potenial
exerciiu pentru cititor.
Lema 8.4. (pentru pq n Z
n
= ,
*
): Fie ntregul compozit pq n = unde p i
q sunt numere prime (acest caz este important pentru criptografia cu cheie public
fiind utilizat n cteva criptosisteme) atunci:
( )( )
4
1 1
= =
q p
Q Q Q
q p n
i
( )( )
4
1 1 3
=
q p
Q
n
.
Demonstraia acestei leme poate fi dedus din urmtoarea teorem al
crei caz particular este:
Teorema 8.14. (pentru
*
n
Z ): Fie un ntreg compozit impar n a crui
factorizare este
[
=
=
r
i
e
i
i
p n
1
. Atunci numrul de reziduuri cvadratice modulo n este
( )
r
n
n
Q
2
|
= . Mai mult dac
n
Q ae atunci a are exact
r
2 rdcini distincte.
Demonstraie: am stabilit prin Lema 8.3 numrul de reziduuri cvadratice
din
*
e
p
Z . Din moment ce factorizarea lui n este
[
=
=
r
i
e
i
i
p n
1
i
n p Q a Q a
i p n
i
| e e cum teorema chinez a resturilor permite calcularea n
mod unic a unui reziduu cvadratic modulo n avnd congruenele modulo
n p p
i i
| , rezult evident c pentru
n
Q ae avem exact
r
2 rdcini distincte.
Din aceleai considerente se poate deduce uor i c numrul de reziduuri
cvadratice este
( )
r
n
2
|
.
8. Fundamente matematice 141
8.3.8 SIMBOLURILE LEGENDRE I JACOBI
Simbolurile Legendre i Jacobi sunt de asemenea frecvent utilizate n
construciile criptografice precum i n analiza criptografic, aplicaiile lor vor fi
ntlnite n seciunile urmtoare, pentru moment introducem cteva aspecte
teoretice legate de acestea.
Definiia 8.14. Definim simbolul Legendre
|
|
.
|
\
|
p
x
pentru un ntreg x i un
numr prim p dup cum urmeaz:
e
e
=
|
|
.
|
\
|
x p
Q x
Q x
p
x
p
p
| 0
1
1
.
Remarca 8.3. Urmtoarele proprieti pot fi deduse direct din definiie
(nu se insist asupra demonstraiei):
i)
|
|
.
|
\
|
|
|
.
|
\
|
=
|
|
.
|
\
|
p
y
p
x
p
xy
p y x , , i p prim
ii) 1
2
=
|
|
.
|
\
|
p
x
p x, i p prim
iii) p y x mod
|
|
.
|
\
|
=
|
|
.
|
\
|
p
y
p
x
p y x , , i p prim
Lema 8.5. (Euler): Fie p un numr prim i
*
p
Z xe atunci
p
Q xe dac i
numai dac p x
p
mod 1
2
1
respectiv
p
Q xe dac i numai dac
p x
p
mod 1
2
1
.
Demonstraie: Conform teoremei introduse n capitolul referitor la
congruene polinomiale ecuaia p x
p
mod 1
2
1
conform teoremei
lui Fermat. Din moment ce numrul de reziduuri cvadratice
2
1
=
p
Q
n
urmeaz
142 Funcii Criptografice, Fundamente Matematice i Computaionale
evident c aceasta relaie este satisfcut numai de ctre reziduuri cvadratice. n
cazul n care
p
Q xe cum p x
p
mod 1
1
i partea a doua a
lemei este rezolvat.
Corolarul 8.1.
|
|
.
|
\
|
=
p
x
p x
p
mod
2
1
.
Demonstraie: relaia este direct din Lema precedent, se observ n plus
c dac 0 mod |
2
1
p x x p
p
.
Corolarul 8.2. ( ) 2
1
1
1
=
|
|
.
|
\
|
p
p
p
Q e 1 dac 4 mod 1 p respectiv
p
Q e 1 dac 4 mod 3 p .
Demonstraie: Aceast relaie este din nou direct: se observ c semnul
lui ( ) 2
1
1
p
depinde de paritatea lui
2
1 p
iar aceasta este adevrat n cazul
4 mod 1 p respectiv fals n cazul 4 mod 3 p .
Corolarul 8.3. ( ) p
p
p
mo d 1
2
8
1
2
=
|
|
.
|
\
|
p
Q e 2 dac 8 mod 1 p sau
8 mod 7 p respectiv
p
Q e 2 dac 8 mod 3 p sau 8 mod 5 p .
Nu insistm pe o demonstraie dar pentru cititorii interesai trimitem
ctre [2, p. 181] sau [86, p. 20].
Teorema 8.15. (a reciprocitii cvadratice, faciliteaz calculul simbolului
Legendre): Pentru oricare dou numere prime p i q avem:
( )
( )( )
|
|
.
|
\
|
=
|
|
.
|
\
|
p
q
q
p
q p
4
1 1
1 . Sau echivalent ( )
( )( )
4
1 1
1
=
|
|
.
|
\
|
|
|
.
|
\
|
q p
p
q
q
p
. (Nu vom insista
pe demonstraia acestei teoreme, diverse demonstraii pot fi gsite n [86, p. 21], [2,
p. 185], [49, p. 76]).
Exemplu de utilizare: pentru clarificarea aplicabilitii acestui rezultat
recurgem la urmtorul exemplu. Dorim s calculm
|
|
.
|
\
|
q
p
pentru 11 = p i
8. Fundamente matematice 143
239 = q , conform legii reciprocitii cvadratice avem ( )
( )( )
|
|
.
|
\
|
=
|
|
.
|
\
|
p
q
q
p
q p
4
1 1
1
( )
( )( ) 11 1 239 1
4
11 239mod11
1
239 11
| | | |
= =
| |
\ . \ .
2
8 2 2 2
11 11 11 11
| |
| | | | | |
= = =
| | | |
\ . \ . \ .
\ .
i
cum ( ) 1 1
11
2
8
1 11
2
= =
|
.
|
\
|
1
239
11
=
|
.
|
\
|
.
Simbolurile Jacobi sunt o generalizare a simbolurilor Legendre pentru
cazul ntregilor compozii.
Definiia 8.15. (Simbolul Jacobi): Pentru un ntreg impar 3 > n a crui
factorizare este
[
=
=
r
i
e
i
i
p n
1
i un numr a definim simbolul Jacobi
r
e
r
e e
p
a
p
a
p
a
n
a
|
|
.
|
\
|
|
|
.
|
\
|
|
|
.
|
\
|
=
|
.
|
\
|
...
2 1
2 1
(se remarc faptul c simbolul Jacobi este identic cu
Simbolul Legendre pentru numere prime).
Remarca 8.4. Urmtoarele proprieti reies direct din definiie (nu se
insist asupra demonstraiei):
i) ( ) . . . . . , 1 0
x
c mmd c x n
n
| |
= =
|
\ .
ii) ( ) 0 . . . . . , 1
x
c mmd c x n
n
| |
= =
|
\ .
iii) Dac
|
.
|
\
|
=
|
.
|
\
|
n
y
n
x
n y x mod
iv)
|
.
|
\
|
|
.
|
\
|
=
|
.
|
\
|
n
y
n
x
n
xy
i
|
.
|
\
|
|
.
|
\
|
=
|
.
|
\
|
t
x
s
x
st
x
v) 1
2
=
|
|
.
|
\
|
n
x
i 1
2
=
|
.
|
\
|
n
x
Urmtoarele dou leme stabilesc valoarea simbolului Jacobi pentru
numerele -1 i 2, aceste valori fiind extrem de utile n calcule. Nu prezentm o
demonstraie pentru acestea pentru aceasta putnd fi consultat oricare din
lucrrile [2], [49], [86]:
144 Funcii Criptografice, Fundamente Matematice i Computaionale
Lema 8.6. ( ) 2
1
1
1
=
|
.
|
\
|
s
s
pentru orice s impar.
Lema 8.7. ( ) 8
1
2
1
2
=
|
.
|
\
|
s
s
pentru orice s impar.
Teorema 8.16. (Reciprocitatea cvadratic pentru simboluri Jacobi)
( )
( )( )
4
1 1
1
=
|
.
|
\
|
|
.
|
\
|
t s
s
t
t
s
i n consecin
|
.
|
\
|
=
|
.
|
\
|
s
t
t
s
dac 4 mod 1 s i 4 mod 1 t
respectiv
|
.
|
\
|
=
|
.
|
\
|
s
t
t
s
dac 4 mod 3 s i 4 mod 3 t .
Pentru demonstraia acestei teoreme trimitem ctre [86, p. 24], [2, p.
189].
Definiia 8.16. Pentru orice ntreg 3 > n definim
)
`
=
|
.
|
\
|
e = 1 |
*
n
a
Z a J
n n
.
Mulimea pseudo-reziduurilor cvadratice
*
n
Z o vom nota cu
n
Q i este
n n n
Q J Q = .
8.3.9 UTILIZAREA REZIDUURILOR CVADRATICE N CRIPTANALIZ
Dorim s prezentm i un exemplu n care proprietile reziduurilor
cvadratice sunt utilizate n criptanaliz. Considerm n acest sens protocolul
prezentat n [73, p. 90]
7
, menionm c sunt multe alte exemple mai relevante
dect acesta dar care sunt ceva mai greu de neles, exemplul prezent fiind
ilustrativ pentru faptul c un bit de informaie poate fi recuperat dintr-un
criptotext RSA (pentru claritate, acest paragraf poate fi citit i dup citirea
capitolului 5.2. cu privire la RSA). Alice i Bob doresc s dea cu banul pentru a
decide care dintre ei are ctig asupra unei cauze, acetia nu dispun ns de o
7
Protocolul este prezentat n [73, p. 90] ca fiind funcional n cazul general al unei
algoritm de criptare comutativ, i.e. pentru care este satisfcut relaia
( ) ( ) ( )
( )
1 2 1 2
K K K K
D E E m E m = , aici artm c pentru cazul n care funcia de criptare
este RSA (funcie care respect aceast condiie) protocolul poate fi spart.
8. Fundamente matematice 145
moned fizic deoarece comunicarea se face prin telefon (sau orice alt linie de
comunicare) i doresc s realizeze acest lucru prin mijloace criptografice.
Urmtorul protocol, care poate fi fraudat, este propus, se presupune c cei doi
utilizeaz aceeai funcie RSA fr a-i divulga cheile public/privat:
i. Alice i Bob genereaz cte o pereche de chei public/privat de
RSA cu acelai modul, comun cunoscut, dar nu fac cunoscui
exponenii public-privat.
ii. Alice genereaz dou mesaje: unul indicnd cap i altul stem.
Aceste mesaje sunt concatenate cu o secven aleatoare i sunt
criptate cu cheia public a lui Alice iar apoi trimise ctre Bob ntr-o
ordine aleatoare (pentru ca Bob s nu poat distinge ntre ele)
( ) ( )
2 1
, m E m E
A A
iii. Bob alege un mesaj la ntmplare i l cripteaz cu cheia sa public
apoi l trimite lui Alice ( ) ( )
x A B
m E E .
iv. Alice, care nu poate citi acest mesaj, l decripteaz cu cheia sa
public i l trimite ctre Bob ( )
x B
m E .
v. Bob decripteaz mesajul cu cheia s-a privat i i trimite rezultatul
lui Alice
x
m .
vi. Alice citete rezultatul i verific corectitudinea mesajului
(comparnd cu mesajul criptat la pasul ii).
vii. Ambii utilizatori i dezvluie cheile public/privat i verific
dac mesajele transmise de cealalt parte au fost corecte.
Atacul asupra protocolului este simplu. Moneda are dou fee, deci gradul
de incertitudine al mesajului, i.e. entropia, este 1 indiferent de valoarea sa. Alice
poate fura protocolul n pasul patru prin aflarea caracterului cvadratic al celor
dou mesaje, dac mesajele au fost intenionat alese cu caractere cvadratice
diferite atunci Alice poate afla nc din pasul 4 care este rezultatul (deci prezumia
c Alice nu poate citi acest mesaj la pasul 4 este fals). n cazul n care Alice nu
este mulumit de rezultat ea poate refuza s continue protocolul, i s solicite
repornirea lui pn cnd va avea n pasul 4 valorile dorite.
146 Funcii Criptografice, Fundamente Matematice i Computaionale
8.3.10 CURBE ELIPTICE
Definiia 8.17. (Curb eliptic) O curb eliptic peste un cmp K de
caracteristic diferit de 2 sau 3 este mulimea puncte care rspund ecuaiei
2 3
y ax bx c = + + alturi de punctul infinit notat cu O.
Cmpul K poate fi construit peste orice mulime, de exemplu mulimea
numerelor reale sau complexe, dar pentru scopuri criptografice se folosesc
cmpuri finite (numite i cmpuri Galois dup numele matematicianului care le-a
descoperit Evariste de Galois). Exemplu de astfel de cmpuri finite sunt
p
F i
n
p
F
unde p este un numr prim. Figura 8.1 prezint grafic dou curbe n mulimea
numerelor reale.
Deasemenea se impune condiia
3 2
4 27 0 a b + = pentru a evita auto-
intersecii ale curbei (aceast valoare provine din calculul discriminantului unei
ecuaii cubice).
i)
ii)
FIGURA 8.1. GRAFICUL A DOU CURBE ELIPTICE: I)
2 3
1 y x x = + I II)
2 3
y x x =
8. Fundamente matematice 147
Rmne de definit adunarea a dou puncte de pe curb ca o operaie a
grupului descris de curba eliptic.
Definim n primul rnd inversul unui punct P ca fiind P adic punctul
care are aceeai coordonat x dar coordonat opus pe y . Adic dac P are
coordonatele ( ) ,
P P
x y atunci P va avea coordonatele ( ) ,
P P
x y (adic inversul
punctului este imaginea sa n oglind fa de axa Ox). Observm c acest lucru este
ntotdeauna posibil datorit termenului n
2
y din ecuaia curbei. Pentru cazul
special cnd P este punctul la infinit O spunem c P este tot O.
Definim adunarea a dou puncte P i Q de pe curb dup cum
urmeaz: fie R punctul n care dreapta ce trece prin P i Q (tangent la curb n
cazul P Q = ) intersecteaz curba. Suma P Q + este R . Figura 8.2 prezint
grafic aceast operaie. Se poate observa uor c dac P Q = atunci prin
adunare P Q + se obine punctul la infinit O. La fel, P O P + = deci O este
elementul neutru la adunare.
FIGURA 8.2. ADUNAREA A DOU PUNCTE P I Q DE PE CURBA ELIPTIC
9 FUNDAMENTE COMPUTAIONALE
modern cryptography is based on a
gap between efficient algorithms provided for
legitimate users and the computational
infeasibility of abusing or breaking these
algorithms (via illegitimate adversarial
actions). O. Goldreich
8
.
Una dintre cele mai importante probleme nainte de a construi
criptosisteme este a lmuri ce se poate calcula eficient i ce nu se poate calcula
eficient n grupuri de ntregi. Aa cum sugereaz i fragmentul de mai sus
posibilitatea de a construi criptosisteme se bazeaz pe existena unei instane a
unui probleme care poate fi eficient rezolvat de ctre o anume entitate
(posesorul legitim al cheii de criptare/decriptare) i care nu poate fi eficient
rezolvat de ctre alt entitate (adversarul). n figurile 10.1 i 10.2 este sugerat
aceast discrepan pentru criptosistemul Rabin. Se observ c funcia de criptare
presupune efectuarea unei singure multiplicri ( ) 1 O , iar decriptarea pentru
utilizatorul legitim care cunoate factorizarea modului presupune
( )
2
3
log
2
O n |
| |
|
\ .
multiplicri (am considerat cazul pentru module Blum, vezi 4.4
i 4.5). n acelai timp pentru un adversar criptarea este fezabil dar decriptarea
presupune gsirea factorizrii modulului, operaie care necesit
( ) ( ) ( )
2
3 3
1 ln lnln
, 2
c o n n
O e c
+ | |
~
|
\ .
operaii folosind algoritmul General Number Field
Sieve care este unul dintre cei mai buni algoritmi cunoscui n prezent.
n acest capitol dorim doar crearea unei imagini de suprafa asupra
acestei probleme, astfel pentru algoritmi eficieni de calcul trimitem cititorul n
special ctre cartea lui Shoup [77] dar i ctre capitolul 14 din [62]. Pentru a crea
o imagine de ansamblu Tabelul 9.1 sintetizeaz operaiile care pot fi eficient
efectuate i Tabelul 9.2 pe cele care nu pot fi eficient efectuate, urmnd ca
procedurile s fie discutate n seciunile urmtoare.
8
Din volumul I al crii de referin Foundations of Cryptography.
10. Fundamente computaionale 149
Co
mp
any
Na
me
11/12/2007
x
Co
mp
any
Na
me
11/12/2007
f(x)
( )
2
mod
Rabin
f x x n =
( )
1 2
mod
Rabin
f x x n
=
Utilizator legitim (cunoaste factorizarea lui n)
( ) 1 O
( )
2
3
log
2
O n |
| |
|
\ .
FIGURA 9.1. CALCULUL DIN CRIPTOSISTEMUL RABIN PENTRU UN UTILIZATOR
LEGITIM.
Adversar (nu cunoaste factorizarea lui n)
( ) ( ) ( )
2
3 3
1 ln lnln c o n n
O e
+ | |
|
\ .
Co
mp
any
Na
me
11/12/2007
x
Co
mp
any
Na
me
11/12/2007
f(x)
( )
2
mod
Rabin
f x x n =
( )
1 2
mod
Rabin
f x x n
=
( ) 1 O
FIGURA 9.2. CALCULUL DIN CRIPTOSISTEMUL RABIN PENTRU UN UTILIZATOR
NELEGITIM (ADVERSAR).
150 Funcii Criptografice, Fundamente Matematice i Computaionale
Se pot calcula eficient Condiie
Operaii elementare: <, >, -, +, *, /,
x
a -
c.m.m.d.c., invers multiplicativ n
n
Z ,
1
x
,
c.m.m.m.c.
-
Simbolurile Legendre i Jacobi -
Testarea dac un numr este prim sau
compozit
-
Rdcina ptrat n
n
Z , i.e.
2
mod x n
Dac i numai dac se cunoate
factorizarea lui n
Rdcina de ordin c n
n
Z cnd
( ) ( )
. . . . . , 1 c mmd c n c | = , i.e. mod x n
c
Dac se cunoate factorizarea lui n
Apartenena la
n
Q Dac se cunoate factorizarea lui n
TABELUL 9.1. OPERAII CARE POT FI EFICIENT REZOLVATE.
Nu se pot calcula eficient Condiie
Logaritmul discret
Pentru orice element (de preferin
generator al grupului) care are un
ordin suficient de mare, sute, mii de
bii etc.
Factorizarea unui ntreg
ntregi mari de sute, mii de bii etc.,
excepie cazurile banale (de exemplu
putere a unui numr prim) i
numerele avnd factori care pot fi
eficient gsii datorit unor
proprieti algebrice ale acestora
Rdcina ptrat n
n
Z , i.e.
2
mod x n Dac nu se cunoate factorizarea lui n
Rdcina de ordin c n
n
Z cnd
( ) ( )
. . . . . , 1 c mmd c n c | = , i.e. mod x n
c
Dac nu se cunoate factorizarea lui n
Apartenena la
n
Q Dac nu se cunoate factorizarea lui n
TABELUL 9.2. OPERAII CARE NU POT FI EFECTUATE EFICIENT.
10. Fundamente computaionale 151
9. 1 ELEMENTE DE TEORIA COMPLEXITII
O problem este o mulime nevid de ntrebri ntre care exist o relaie,
pot fi una sau mai multe ntrebri i este obligatoriu ca ele s aib o dimensiune
finit. De exemplu factorizarea unui ntreg este o problem cu urmtorul enun:
avnd un ntreg n s se gseasc numerele prime al cror produs este. Un
algoritm este un set bine definit de pai pentru rezolvarea unei probleme. Altfel
spus, un algoritm este ansamblul de pai prin care un set de date de intrare este
transformat ntr-un set de date de ieire n scopul rezolvrii unei probleme. De
exemplu pentru rezolvarea problemei factorizrii ntregului de mai sus se poate
folosi urmtorul algoritm: pentru toi ntregii i de la 2 la radical din n verific dac
n este divizibil cu i.
Este evident c eficiena unui algoritm este o funcie care depinde de
dimensiunea datelor de intrare i totodat eficiena unui algoritm trebuie s fie o
caracteristic intrinsec a algoritmului care s nu depind de un anume model al
mainii de calcul. n acest context este impropriu s numim un algoritm ca fiind
eficient n baza faptului c pe un anumit procesor a avut un timp de rulare
oarecare, i mai mult, faptul c pe un procesor a avut un anume timp de rulare nu
va spune nimic cu privire la timpul de rulare n momentul n care dimensiunea
datelor de intrare se dubleaz. S presupunem ca exemplu naiv doi algoritmi care
caut un element ntr-un ir ordonat cresctor, algoritmul A1 implementeaz o
cutare naiv n care irul este parcurs de la un capt la altul element cu element
n scopul identificrii elementului cutat iar A2 implementeaz o cutare binar,
prin njumtirea succesiv a irului n care se face cutarea. S presupunem c
timpul de calcul pentru un tablou cu 1.000.000 de elemente este pentru primul
algoritm 5 milisecunde i pentru al doilea 5 microsecunde. La dublarea
dimensiunii datelor de intrare timpul de calcul pentru primul algoritm se va dubla
n timp ce pentru al doilea va crete nesemnificativ. Aceasta deoarece, pentru
gsirea unui element ntr-un ir de n elemente, primul algoritm efectueaz cel
mult n pai iar cel de-al doilea cel mult log2n pai. n consecin performana unui
algoritm nu trebuie descris n funcie de timpul de rulare al acestuia ci ca funcie
de numrul de pai pe care algoritmul i necesit. Aici intr n joc teoria
complexitii care este domeniul care ne ofer un rspuns cu privire la numrul
de pai necesari ca un algoritm s ofere un rezultat. n cazul nostru, al criptologiei,
ne putem referi la numrul de pai pentru a cripta, decripta informaie sau chiar
pentru a sparge un cod. Informal, din punct de vedere al criptanalizei teoria
complexitii ne spune ct timp i ct spaiu este necesar pentru a sparge un
criptosistem.
n general cu privire la un algoritm, sub raportul complexitii, ne
intereseaz att timpul (despre care s-a spus c se msoar n numr de pai) ct
152 Funcii Criptografice, Fundamente Matematice i Computaionale
i spaiul (care nseamn cantitate de memorie necesar) de aici i noiunile de
complexitate de timp i complexitate de spaiu. Pentru msurarea complexitii
folosim urmtorii indicatori de performan:
i) limita asimptotic superioar:
( ) ( ) ( ) ( )
0
0 . . , ) ( n n n g c n f i a n c n g O n f
o
> s s - =
ii) limita asimptotic inferioar:
( ) ( ) ( ) ( )
0
, 0 . . , ) ( n n n f n g c i a n c n g n f
o
> s s - O =
iii) limita asimptotic restrns:
( ) ( ) ( ) ( ) ( )
0 2 1 2 1
. . , , ) ( n n n g c n f n g c i a n c c n g n f
o
> s s - O =
iv) limitele asimptotice relaxate:
( ) ( ) ( ) ( )
0
0 . . ) ( n n n g c n f c i a n n g o n f
o
> < s - =
( ) ( ) ( ) ( )
0
0 . . ) ( n n n f n g c c i a n n g n f
o
> < s - =e
Este important de spus c ( ) ( )
f F g n = , unde F este oricare din
indicatorii , , , , nu se citete: f egal F de g(n), ci corect este f este de
ordinul F al lui g(n) sau mai simplu f este F(g(n)). Intuitiv semnul = nu are
semnificaia semnului egal, n acest caz este echivalent cu e.
Astfel n funcie de timpul de calcul algoritmii se mpart n clase dup cum
urmeaz: constant ( ) 1 O , logaritmic ( ) ( ) n O lg (se observ c
0 ), (lg log > O = c n n
c
), poli-logaritmic ( ) ( )
lg
c
O n , fracionar
( )
, 0 1
c
O n c < < ,
liniar ( ) n O , liniar logaritmic ( )
2
log O n n , ptratic (sau cvadratic) ( )
2
n O , cubic
( )
3
n O , polinomial ( )
m
n O (cu observaia c: liniar, ptratic, cubic sunt timpi
polinomiali), super-polinomial
( )
( )
n f
c O (unde c este o constant iar ( ) n f nu
este constant dar este mai mic dect ( ) n O ), exponenial
( )
( )
n f
c O (unde c este o
constant iar ( ) n f este un polinom de gradul 1), factorial (sau combinatorial)
( ) ! O n , dublu exponenial
( )
2
n
c
O .
Urmtoarele proprieti intuitive decurg direct din definiia acestor
indicatori:
i) ( ) ( ) ( ) ( ) ( ) ( ) n f n g n g O n f O = =
10. Fundamente computaionale 153
ii) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) n g n f n g O n f n g n f O = . = O =
iii) ( ) ( ) ( ) ( ) ( ) ( ) ( )( ) ( ) ( ) n h O n g f n h O n g n h O n f = + = . =
iv) ( ) ( ) ( ) ( ) ( ) ( ) ( )( ) ( ) ( ) ( ) n i n h O n g f n i O n g n h O n f = = . =
v) ( ) ( ) ( ) ate reflexivit n f O n f =
vi) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) tate tranzitivi n h O n f n h O n g n g O n f = = . =
Reinem de asemenea urmtoarele aproximri utile:
i) ( ) ( ) ( )
k k
k
k
k
n n f a n a n a n a n f O = + + + + =
0 1
1
1
...
ii) ( ) ( )
n n
n n o n 2 ! ! O = . =
iii)
(ln )(lnln ) ln
1 lnln ln
n
n n c n n n c
n n e n n n c n c
c
< < < < < < < < <
Pentru a ilustra importana cunoaterii complexitii prezentm
urmtorul tabel al unor magnitudini uzuale i de asemenea vom considera 4
algoritmi
1
A ,
2
A ,
3
A ,
4
A avnd complexitile ( ) n O , ( )
2
n O , ( )
3
n O , ( )
n
O 2
precum i un sistem capabil s execute
10
10 operaii/secund, n scopul unei
comparaii vom evalua timpul necesar rezolvrii algoritmilor pentru
6
10 = n .
Tabelul 9.1 sintetizeaz aceste rezultate.
Este necesar de asemenea s introducem noiunea de reducie n timp
polinomial. Se observ c dac avem doi algoritmi
1
A i
2
A care au complexitate
polinomial, chiar dac
2
A devine subrutin a lui
1
A algoritmul rezultat va
funciona tot n timp polinomial. Urmtoarea definiie introduce noiunea de
reducie n timp polinomial (polynomial reduction):
Definiia 9.1. (Reducie n timp polinomial) Spunem c problema
1
H se
reduce n timp polinomial la
2
H i notm
1 2 P
H < H dac exist un algoritm
1
A
care rezolv
1
H i primete ca subrutin un algoritm
2
A care rezolv
2
H iar
complexitatea lui
1
A este polinomial dac complexitatea lui
2
A este i ea
polinomial.
Cri de referin n domeniul algoritmilor i a complexitii sunt cartea
lui Knuth [55] i a lui Cormen et al. [25]. De asemenea este util glosarul de termeni
din [28] iar n ceea ce privete teoria cu privire la NP-completness, care aici nu a
fost prezentat dar are implicaii majore n criptografie deoarece faimoasa
154 Funcii Criptografice, Fundamente Matematice i Computaionale
problem P NP = condiioneaz existena funciilor criptografice one-way, este
de referin lucrarea lui Garey i Johnson [41].
9. 2 ELEMENTE DE TEORIA INFORMAIEI
n limbaj informal, din punct de vedere criptanalitic, Teoria Informaiei ne
spune de ct informaie criptat avem nevoie pentru a sparge un mecanism de
criptare, sau din considerente criptografice care este dimensiunea unei chei
pentru ca criptosistemul s nu poat fi spart. n ceea ce privete ultimul aspect,
este demonstrat c pentru a construi un algoritm de criptare care s nu poat fi
spart este necesar o cheie aleatoare de dimensiune egal cu a mesajului criptat,
bineneles cheia nu poate fi refolosit. Astfel teoria informaiei poate fi utilizat
pentru a construi criptosisteme care au securitate necondiionat (numit i
confidenialitate perfect (perfect secrecy)) care nu pot fi sparte chiar dac
puterea de calcul este infinit.
ntr-adevr exist i criptosisteme care sunt imposibil de spart. Sigur la o
prim vedere existena unor astfel de criptosisteme ar face s par c problemele
Secunde ntr-un an
7
10 3
Vrsta sistemului solar n secunde
17
10 2
Electroni n univers
77
10 37 . 8
Chei pe 256 bii
77
10 2 . 1
Chei pe 1024 bii
308
10 8 . 1
Timpul pentru a rezolva
1
A
3
10 1
Timpul pentru a rezolva
2
A
2
10 1
Timpul pentru a rezolva
3
A
8
10 1
Timpul pentru a rezolva
4
A
303020
10 1
TABELUL 9.3. CTEVA MAGNITUDINI UZUALE.
10. Fundamente computaionale 155
criptografiei sunt n totalitate rezolvate. Nu este nici pe departe aa, problema de
baz a criptografiei fiind dimensiunea cheii de criptare, despre care s-a afirmat
anterior c pentru ca criptosistemul s nu poat fi spart trebuie s fie egal cu
dimensiunea mesajului, ori n general n practic dorim cu ajutorul unei chei ct
mai mici s criptm cantiti ct mai mari de informaie, fiind ne-fezabil s avem
chei de dimensiunea unui mesaj.
Un exemplu de sistem care nu poate fi spart este binecunoscutul one-time
pad. Acesta este derivat din codul Vernam care este un cod stream ce presupune
utilizarea unei chei aleatoare k de aceeai dimensiune cu a mesajului m i
criptotextul c se calculeaz ca
i i i
c m k = (se face XOR bit cu bit ntre mesaj i
cheie) cheia nu poate fi reutilizat pentru transmiterea altui mesaj. Se cunoate c
sistemul a fost utilizat n practic pentru a cripta o linie de comunicaie ntre
Washington i Moscova, dar mai relevant dect att este faptul c sistemul mai
apare ca bloc constructiv i n protocoale de securitate contemporane.
Noiunea de baz cu care lucreaz teoria informaiei este entropia
informaiei. Entropia msoar gradul de incertitudine al informaiei. Ea este
utilizat, i poate fi mai uor vzut dintr-o perspectiv inginereasc n acest fel,
pentru a calcula numrul de bii necesari pentru a codifica o anume informaie.
Spre exemplu dac considerm un zar cu n fee, i considerm c zarul este
perfect echilibrat (probabilitatea ca fiecare fa s cad fiind egal) avem nevoie
de exact
2
log n bii pentru a codifica fiecare eveniment de aruncare a zarului
(eveniment finalizat prin marcarea numrului indicat de zar). Pentru cazul
general definim entropia ca fiind:
Definiia 9.2. (Entropia) Pentru o variabil X ce poate lua aleator valorile
1 2
, ,...,
n
x x x cu probabilitile
1 2
, ,...,
n
p p p , i.e. ( ) Pr
i i
X x p = = , definim entropia
lui X ca fiind ( )
2
1
log
n
i i
i
H X p p
=
=
(se consider
2
log 0
i i
p p = dac 0
i
p = ).
Definiia poate prea greoaie, dar putem s o clarificm uor printr-un
exemplu. Fie X o variabil aleatoare de k bii, conform definiiei entropia
trebuie s fie k . Avem ( ) ( )
2 2
2
1 1
1 1
log 2
2 2
k k
k
k k
i i
H X k k
= =
= = =
i astfel
valoarea este verificat. Pe baza definiiei putem nelege i de ce o parol de k
bii, n cazul n care anumite caractere sunt mai probabile dect altele, nu are de
fapt k bii de entropie ci mai puin.
156 Funcii Criptografice, Fundamente Matematice i Computaionale
9. 3 CALCULUL OPERAIILOR ELEMENTARE
n continuare convenim s notm cu ( )
1 1
...
k k
b
x x x
reprezentarea
ntregului x n baza b . Se poate demonstra uor, fiind o consecin imediat a
teoremei mpririi cu rest, c fiecare ntreg are o reprezentare unic n orice baz
2 b > . Reprezentarea ntr-o baza b se face prin mprire succesiv a ctului i
pstrarea restului, lucru care trebuie s fie deja cunoscut de cititor i care nu l
vom mai detalia.
Prin operaii elementare desemnm operaiile pe care le efectum n mod
uzual cu orice ntreg, aceste operaii sunt: adunare, scdere, multiplicare,
mprire i ridicare la putere. Subliniem c toate aceste operaii pot fi efectuate n
timp polinomial asupra ntregilor de orice dimensiune. Enumerm n continuare
schema de principiu i complexitatea acestor operaii:
i) Compararea a doi ntregi de k digii (dac au numr
diferit de digii este mai mare ntregul cu mai muli digii)
se face prin parcurgerea de la stnga la dreapta a digiilor
i compararea la nivel de digit presupune ( ) O k
comparaii la nivel de digit.
ii) Adunarea a doi ntregi de k digii n baza b presupune
( ) O k adunri la nivel de digit n baza b .
INTRARE: doi ntregi ( )
1 1
...
k k
b
x x x x
= , ( )
1 1
...
k k
b
y y y y
= .
1. Seteaz i k = .
2. Atta timp ct
i i
x y = i 1 i > calculeaz 1 i i = .
3. Dac
i i
x y > returneaz 1 altfel returneaz 0.
IEIRE: 1 dac x y > i 0 n caz contrar.
ALGORITMUL 9-1. COMPARAREA A DOI NTREGI
10. Fundamente computaionale 157
iii) Scderea a doi ntregi de k digii n baza b presupune
( ) O k scderi la nivel de digit n baza b .
INTRARE: doi ntregi ( )
1 1
...
k k
b
x x x x
= , ( )
1 1
...
k k
b
y y y y
= .
1. Seteaz 0 c = .
2. Pentru 1, i k = :
( ) mod
i i i
z x y c b = + + ,
( )div
i i
c x y c b = + + ,
3.
1 k
z c
+
= .
4. Returneaz ( )
1 1
...
k k
b
z z z z
+
= .
IEIRE: z x y = + .
ALGORITMUL 9-2. ADUNARA A DOI NTREGI
INTRARE: doi ntregi ( )
1 1
...
k k
b
x x x x
= , ( )
1 1
...
k k
b
y y y y
= cu x y > .
1. Seteaz 0 c = .
2. Pentru 1, i k = :
( )mod
i i i
z x y c b = + ,
Dac 0
i i
x y c + < atunci 1 c = altfel 0 c =
3. Returneaz ( )
1 1
...
k k
b
z z z z
=
IEIRE: z x y = + .
ALGORITMUL 9-3. SCDEREA A DOI NTREGI
158 Funcii Criptografice, Fundamente Matematice i Computaionale
iv) Multiplicarea a doi ntregi de k digii n baza b
presupune
( )
2
O k multiplicri i
( )
2
O k adunri la nivel
de digit n baza b . Operaia de nmulire avnd pondere
mai mare fa de adunare convenim s evalum
complexitatea ca fiind
( )
2
O k multiplicri la nivel de digit
n baza b . Ridicarea la ptrat a unui ntreg este un caz
particular de multiplicare, fiind vorba de multiplicarea
unui ntreg cu el nsui, i exist algoritmi optimizai
pentru acest caz, fiind n principiu de 2 ori mai simpl
dect multiplicarea a doi ntregi diferii. Dac ntregii au
numr diferii de digii, s spunem k respectiv l , atunci
complexitatea este ( ) O kl , urmtorul algoritm poate fi
utilizat:
INTRARE: doi ntregi ( )
1 1
...
k k
b
x x x x
= , ( )
1 1
...
l l
b
y y y y
= .
1. Seteaz 0 c = .
2. Seteaz ( )
1 1
... 0
k l k l
b
z z z z
+ +
= = .
3. Pentru 1, i k = :
Pentru 1, j l = :
( )
mod
i j i j i j
z z x y c b
+ +
= + + ,
( )
div
i j i j
c z x y c b
+
= + + ,
( )
div
i l i j i j
z z x y c b
+ +
= + + ,
4. Returneaz z .
IEIRE: z xy = .
ALGORITMUL 9-4. NMULIREA A DOI NTREGI
10. Fundamente computaionale 159
v) mprirea (ne referim la mprire cu rest ) este cea mai
costisitoare operaie, are complexitate tot ( ) O kl operaii
la nivel de digit dar indicatorul asimptotic pierde din
acuratee i n practic mprirea este mult mai
costisitoare dect multiplicarea. Algoritmul nu este att de
direct, pentru care evitm prezentarea detaliat a lui
(trimitem cititorul ctre algoritmul din [58] care este
simplu de implementat) i ne rezumm doar la
prezentarea unei strategii fr detalii (paii 2.1. i 2.2.
nefiind detaliai)
vi) Ridicarea la putere presupune
2
3
log
2
O e
| |
|
\ .
multiplicri
(acest timp a fost calculat avnd n vedere c multiplicarea
unui numr cu el nsui, i.e. ridicare la ptrat, cost
aproximativ jumtate dintr-o multiplicare). Algoritmul
poart numele de repeated square and multiply i
presupune c exponentul este codificat n binar. Atenie,
INTRARE: doi ntregi ( )
1 1
...
k k
b
x x x x
= , ( )
1 1
...
l l
b
y y y y
= .
1. Seteaz r x = .
2. Pentru 1 i k l = + pn la 0 :
i
i
q r b y ( =
,
i
i
r r b q y .
3. Returneaz , q r
IEIRE: , q r astfel nct x yq r = + .
ALGORITMUL 9-5. MPRIREA A DOI NTREGI
160 Funcii Criptografice, Fundamente Matematice i Computaionale
chiar dac aceast metod este suficient de rapid pentru a
face practic exponenierea, n implementri se folosete
n general un mecanism ceva mai avansat numit sliding-
window exponentiation.
n criptografie, toate aceste operaii le efectum n grupul de ntregi
n
Z . n
acest caz avem nevoie de efectuarea operaiilor modulo n dar tehnica rmne n
mare parte aceeai ca la cazul general cu urmtoarele observaii:
i) Comparaia este identic cu cazul general.
ii) La adunare modulo n dac rezultatul este mai mare dect n
(poate fi cel mult ( ) 2 1 n ) atunci scdem n din rezultat.
iii) Scderea modulo n este identic dac desczutul este mai mare
dect scztorul. Dac nu, atunci se face adunare cu opusul, deci
scderea din modul a scztorului i adunarea la desczut, i.e.
( ) mod mod x y n x n y n = + .
INTRARE: doi ntregi ( )
1 1
...
k k
b
x x x x
= , ( )
1 1
2
...
l l
e e e e
= .
4. Seteaz aux x = , 1 y =
5. Pentru 1, i l = :
Dac 1
i
e = atunci y y aux = ,
2
aux aux = ,
6. Returneaz y
IEIRE:
e
y x = .
ALGORITMUL 9-6. RIDICAREA LA PUTERE MODULO N FOLOSIND REPEATED SQUARE
AND MULTIPLY (RSM)
10. Fundamente computaionale 161
iv) Multiplicarea modulo n se face identic iar la final se recurge la
mprire cu rest la n .
v) mprirea modulo n este nmulire cu inversul multiplicativ
ceea ce nseamn c mai nti se calculeaz un invers
multiplicativ (vezi seciunea 4.2) i apoi se trece la multiplicare
modulo n ca la iii), i.e.
1
mod mod x y n xy n
= .
vi) Ridicarea la putere modulo n se face cu specificaia c fiecare
multiplicare (din paii 5.1. i 5.2.) se face modulo n .
Operaiile de multiplicare i ridicare la putere modulo n sunt operaiile
cele mai comun utilizate n criptografia cu cheie public i pentru acestea n
practic se impune utilizarea unor tehnici optimizate. Algoritmii prezentai aici au
doar scop didactic i chiar dac nu difer mult la nivel de complexitate n aplicaii
unde timpul de calcul conteaz nu se recomand folosirea lor. Pentru detalii
asupra unor tehnici optimizate poate fi consultat orice carte general de
criptografie [62], [73], subiectul este prea amplu pentru a fi discutat n aceast
lucrare. De asemenea este recomandat binecunoscuta carte a lui Knuth [55].
9. 4 CALCULUL C. M. M. D. C. I INVERSELOR MULTIPLICATIVE
Calculul celui mare divizor comun pe baza factorizrii ntregilor utiliznd
relaia din Definiia 8.8. nu este un procedeu convenabil din punct de vedere
computaional deoarece evident nu poate fi aplicat atunci cnd nu este cunoscut
factorizarea ntregilor (situaia cea mai uzual n practic) iar a factoriza un ntreg
nu este fezabil din punct de vedere computaional. Astfel, pentru cazul cnd
factorii celor dou numere sunt necunoscui poate fi utilizat algoritmul Euclidian.
Acesta se bazeaz pe faptul c dac avem doi ntregi b a > atunci
( ) ( ) . . . . . , . . . . . , mod c mmd c a b c mmd c b a b = i aceast relaie duce la posibilitatea
calculului c.m.m.d.c. n timp logaritmic (relaia nu o demonstrm deoarece este o
noiune bine-cunoscut de teoria numerelor) . Relaia poate fi aplicat recursiv
pentru a obine cel mai mare divizor al celor doi ntregi b a, i urmtorul algoritm
sintetizeaz acest rezultat:
162 Funcii Criptografice, Fundamente Matematice i Computaionale
Se poate demonstra c pentru oricare doi ntregi b a, dac
( ) . . . . . , d c mmd c a b = putem gsi o pereche de ntregi y x, astfel nct d by ax = + .
Acest calcul poate fi uor efectuat folosind Algoritmul Euclidian Extins (AEE)
pentru care trimitem ctre [62, p. 67]. Acum dorim s facem o expunere foarte
simpl asupra principiului pe care funcioneaz. Presupunem c 97, 17 a b = = i
dorim s calculm ( ) . . . . . 97,17 d c mmd c = conform algoritmului anterior, prin
mpririle succesive din pasul 2 obinem urmtoarele rezultate intermediare:
1. 97 5 17 12 = +
2. 17 1 12 5 = +
3. 12 2 5 2 = +
4. 5 2 2 1 = +
Dac acum introducem n relaia de la pasul 4 pe cea de la pasul 3 obinem
( ) 5 2 2 1 5 2 12 2 5 1 = = i continund tot aa pn la relaia de la pasul
1 cu schimbarea restului cu o combinaie liniar de termeni obinem succesiv
relaiile:
INTRARE: doi ntregi b a, cu b a >
1. Atta timp cat 0 = b execut:
2. r b b a b a r = = = , , mod
3. Returneaz a
IEIRE: ( ) . . . . . , c mmd c a b
ALGORITMUL 9-7. CEL MAI MARE DIVIZOR COMUN
10. Fundamente computaionale 163
( ) ( ) 5 2 2 1 5 2 12 2 5 1 5 5 2 12 1 5 17 1 12 2 12 1 = = = =
( ) 5 17 7 12 1 5 17 7 97 5 17 1 40 17 7 97 1 = = =
ntr-adevr la final am ajuns s scriem cel mai mare divizor a dou
numere ca i combinaie liniar ntre acestea. Este evident c pentru oricare doi
ntregi acest raionament poate fi aplicat i astfel prin parcurgerea n ordine
invers a rezultatelor intermediare ale Algoritmului Euclidian putem calcula
inverse multiplicative pentru c este evident c dac ( ) . . . . . , 1 c mmd c a b = avem
1
mod a x b
respectiv
1
mod b y a
9
. Urmtorul algoritm prezint acest rezultat:
9
Ceea ce nseamn de fapt mod x y n
o
i mod y x n
c
.
164 Funcii Criptografice, Fundamente Matematice i Computaionale
9. 6 CALCULUL RDCINII PTRATE
Pentru calculul rdcinilor ptrate vom distinge trei cazuri dup cum
calculul se desfoar n
p
Z ,
l
p
Z sau
n
Z unde p este un numr prim iar n un
compozit.
Pentru cazul
p
Z distingem primul caz ca fiind 4 mod 3 p , caz n care se
observ c dac
p
Q xe i p y x mod
2
atunci p x y
p
mod
4
1 +
= . Deci urmtorul
algoritm poate fi utilizat dac 4 mod 3 p :
INTRARE: ntregul x , exponentul c cu ( ) ( )
. . . . . , 1 c mmd c n c | = i
modulul n a crui factorizare este cunoscut.
1. Pe baza factorizrii lui n calculeaz ( ) n | dup relaia din
Teorema 8.13.
2. Calculeaz ( )
1
mod n o c |
\
|
n
x
atunci
e
e
=
+
n
n
q p n
Q x x n
Q x x
n x
,
,
mod
4
5
.
Proprietile i) i ii) le demonstrm simultan dup cum urmeaz: dac
n x
q p n
mod
8
5 +
este rdcina ptrat a lui x atunci
n
Q xe i
n x x
q p n
mod
2
8
5
|
|
.
|
\
|
+
. Datorit izomorfismului descris de teorema chinez a
resturilor este suficient s artam c
8
5 + q p n
x este o rdcin ptrata a lui x n
p
Z respectiv
q
Z , mai mult este suficient s artam pentru
p
Z deoarece relaia
este simetric n p i q . Se observ uor c
( )( )
1
4
1 1
4
5
+
=
+ q p q p n
deci
( )( )
p x x x x
q p q p n q p n
mod
4
1 1
4
5
2
8
5
|
|
.
|
\
|
+ +
dar
( )( ) ( )
( )
p x x
p
q q p
mod
2
1
2
1
4
1 1
|
|
.
|
\
|
i
cum
( )
2
1 q
este o cantitate impar urmeaz c
( )( )
p x
q p
mod
4
1 1
este chiar simbolul
Legendre pentru x n
p
Z deci p x x
q p n
mod
2
8
5
|
|
.
|
\
|
+
dup cum x este sau nu
reziduu cvadratic ceea ce trebuia demonstrat.
De asemenea este relevant de remarcat c dac 8 mod q p = atunci
n
Q e 2 i deci nmulirea cu 2 schimb simbolul Jacobi din 1 n -1 i invers (acest
lucru se demonstreaz direct din definiia simbolului Jacobi).
Aceste observaii sunt utile n diverse calcule precum cele de la semntura
digital Rabin-Williams.
9. 8 VERIFICAREA APARTENENEI LA MULIMEA
REZIDUURILOR CVADRATICE
Pentru verificarea apartenenei unui numr la
n
Q sau
n
Q este mai nti
necesar s discutm despre calculul simbolurilor Legendre i Jacobi. Simbolul
168 Funcii Criptografice, Fundamente Matematice i Computaionale
Legendre poate fi calculat fie pe baza relaiei din Lema 8.5 a lui Euler fie cu acelai
algoritm pentru simbolul Jacobi deoarece cele dou sunt egale pentru numere
prime. Bazat pe proprietile anterior amintite cu privire la reziduuri cvadratice,
mai exact legea reciprocitii cvadratice 8.15 i caracterul cvadratic al lui 2 din
8.42, urmtorul algoritm faciliteaz calculul simbolului Jacobi:
Acum, dac pentru un numr a dorim s verificm c este reziduu
cvadratic modulo p , unde p este numr prim, atunci acest lucru este posibil prin
calcularea simbolului Legendre dup urmtoarea relaia p a
p
a
p
mod
2
1
=
|
|
.
|
\
|
sau
aa cum am mai spus chiar cu algoritmul anterior.
INTRARE: un ntreg impar 3 > n i un ntreg oarecare n a < s 0 .
1. Dac 0 = a returneaz 0 .
2. Dac 1 = a returneaz 1.
3. Scrie
1
2 a a
e
= unde
1
a este un numr impar.
4. Calculeaz
2
e
s
n
| |
=
|
\ .
(se poate utiliza relaia 9.30 dar deoarece
aceasta presupune o exponeniere se prefer urmtorul calcul care este
echivalent: dac e este par atunci 1 = s , dac 8 mod 1 n atunci 1 = s ,
dac e este impar i 8 mod 3 n atunci 1 = s .
5. Dac 4 mod 3 n i 4 mod 3
1
a atunci s s = (conform legii
reciprocitii cvadratice).
6. Calculeaz
1 1
moda n n .
7. Dac 1
1
= a returneaz s altfel returneaz ( )
1 1
, a n Jacobi s .
OUTPUT: simbolul Jacobi
|
.
|
\
|
n
a
.
ALGORITMUL 9-11. SIMBOLUL JACOBI
10. Fundamente computaionale 169
Pentru cazul n care pentru un numr a dorim s verificam c este
reziduu cvadratic modulo
l
p , unde p este numr prim, acest lucru se poate face
prin verificarea rezultatului modulo p deoarece este evident c orice reziduu
cvadratic modulo
l
p este i reziduu cvadratic modulo p .
Altfel dac pentru un numr a dorim s verificm c este reziduu
cvadratic modulo n , unde n este un ntreg compozit acest lucru nu mai este
posibil deoarece prin calcularea simbolului Jacobi nu se poate trage o concluzie
final n cazul n care numrul este un pseudo-reziduu modulo n , deci
n
a Q e .
Putem ns calcula simbolul Jacobi
|
.
|
\
|
n
a
i n cazul n care 1 =
|
.
|
\
|
n
a
putem spune
cu certitudine c a nu este reziduu cvadratic iar dac 1 =
|
.
|
\
|
n
a
nu se poate trage
nici o concluzie. Pe de alt parte dac factorizarea lui n este cunoscut se poate
verifica dac un numr este sau nu reziduu cvadratic, prin verificare modulo
fiecare factor al lui n - este evident c un numr a este reziduu cvadratic modulo
n dac i numai dac este reziduu cvadratic modulo oricare factor al lui n .
Pentru a verifica dac un ntreg este reziduu cvadratic modulo un numr prim se
poate aplica acelai algoritm pentru calculul simbolului Jacobi, sau criteriul lui
Euler din Lema 8.5, aceast abordare ducnd la un timp de calcul ceva mai sczut.
9. 9 PROBLEMA FACTORIZRII NTREGI (IFP)
Problema factorizrii ntregilor (IFP Integer Factorization Problem) este
o problem de importan major deoarece probabil n jur de 50% din
criptografia cu cheie public are securitatea bazat pe imposibilitatea de a
factoriza ntregi mari. Un exemplu concret pentru a ilustra importana acestei
probleme l reprezint concursul oferit de RSA Security, detalii se gsesc la [71] i
sumele oferite au fost date n Tabelul 1.2. Totodat, problema factorizrii
ntregilor ofer un excelent studiu de caz unde elemente de teoria numerelor se
mpletesc cu elemente de teoria complexitii. Acest paragraf urmrete s fac o
trecere n revist a ctorva algoritmi utilizai n factorizare. Pentru prezentri
generale n problematica factorizrii se consider utile lucrrile [66], [87] i
articolul [17].
n principiu pentru factorizarea unui ntreg este suficient gsirea unui
algoritm care s poat descompune ntregul n produs de doi ntregi
170 Funcii Criptografice, Fundamente Matematice i Computaionale
supraunitari
11
i intereseaz o astfel de descompunere doar pentru ntregi
impari
12
. Pentru factorizarea ntregilor mari, vorbim de sute i mii de cifre, nu se
cunosc soluii eficiente. Excepie fac urmtoarele cazuri:
i) p n = , ntregul n este numr prim, n acest caz se pot aplica teste de
primalitate care dovedesc c ntregul este prim, demonstrarea
primalitii fiind mult mai uoar dect factorizarea (vezi seciunea
4.9).
ii)
e
p n = , ntregul n este o putere a unui numr prim, n acest caz se
poate calcula succesiv radicalul de ordin i pentru
n i
2
log 2 s s i
se verific dac rdcina de ordin i este numr ntreg. Deoarece
ridicarea la putere i radicalul sunt funcii monoton cresctoare pe
mulimea numerelor reale o astfel de cutare poate fi efectuat n timp
logaritmic (cutare binar).
iii) ntregii de forme speciale, avnd factori ale cror proprieti permit
gsirea eficient a acestora.
n continuare problema factorizrii se va aborda pentru situaii diferite de
cele de la punctele i), ii), iii) i subliniem c pentru criptografie este de mare
importan cazul q p n = unde p i q sunt numere prime. Algoritmii pentru
factorizare se mpart n dou mari categorii:
i) Algoritmi dedicai (pentru forme speciale) astfel de algoritmi sunt
utilizai n general pentru a calcula factori mai mici dect o margine
superioar i realizeaz acest lucru relativ repede (n practic marginea
superioar este aleas n funcie de resursele de calcul).
ii) Algoritmi generali aceti algoritmi sunt utilizai pentru a factoriza
ntregi cu factori relativ mari deoarece consum aceleai cantiti de timp
indiferent dac factorii sunt mici sau mari.
11
Aceast problem este cunoscut sub numele de splitting, iar dac un algoritm pentru
aceast problem ar fi cunoscut atunci el s-ar putea aplica recursiv pn la aflarea
factorizrii complete a oricrui ntreg.
12
Este important de remarcat c n fapt intereseaz doar factorizarea numerelor impare
deoarece a factoriza un numr par conduce la mprire cu 2 pn cnd se ajunge tot la un
numr impar, deci problema factorizrii ntregilor poate fi numit problema factorizrii
ntregilor impari.
10. Fundamente computaionale 171
Astfel o strategie general de factorizare, din motive evidente, arat ca n
Figura 9.3. Metodele prezentate n acest capitol pot fi clasificate conform cu Figura
9.4. Aceast taxonomie este doar orientativ ntruct pe de o parte prezentarea va
sintetiza numai o parte din metodele de factorizare existente n literatur, iar pe
de alt parte problema factorizrii poate fi considerat n continuare o problem
deschis.
Algoritmi de Factorizare a ntregilor
Cautare exhaustiva,
Euclid, Fermat etc.
Random Square
Factoring Methods
(RSFM)
Algoritmi dedicati
Algoritmi generali
Pollard p-1, Pollar rho,
Curbe eliptice etc.
Quadratic Sieve
Factoring, Number
Field Sieve etc.
Algoritmi clasici Algoritmi moderni
FIGURA 9.3. O TAXONOMIE SIMPLIFICAT A ALGORITMILOR DE FACTORIZARE.
172 Funcii Criptografice, Fundamente Matematice i Computaionale
9.9.1 ALGORITMI DE FACTORIZARE CLASICI
Cel mai bine-cunoscut algoritm de factorizare, cu toate c este i cel mai
ineficient, este cutarea exhaustiv. Aceasta presupune ncercarea de a-l mpri
pe n la valori succesive n intervalul
] , 2 [ n n scopul gsirii unui factor (n
mod cert orice ntreg compozit are cel puin un factor n acest interval).
Complexitatea algoritmului este ( ) n O , aceast soluie nefiind practic pentru
ntregii mari, de sute sau mii de bii.
Se poate relativ uor observa c Algoritmul Euclidian poate fi utilizat n
scopul factorizrii. Factorizarea bazat pe algoritmul lui Euclid presupune
construcia de produsului
1
k
k i
i
P p
=
=
[
a primelor k numere prime (sau, mai util n
practic construcia, mai multor produse a numerelor prime din anumite
intervale) i apoi calcularea ( ) . . . . . ,
k
c mmd c n P unde n este ntregul care trebuie
factorizat. Evident soluia nu este mai eficient dect cutarea exhaustiv, mai
Test de Primalitate
Algoritm de factorizare dedicat
Test de putere ntreaga
Algoritm de factorizare general
FIGURA 9.4. SCHEMA GENERAL A UNEI STRATEGII DE FACTORIZARE.
10. Fundamente computaionale 173
mult ea necesit i spaii de memorie pentru stocarea produsului, spaii care
pentru ntregi mari nu sunt disponibile. Cu toate acestea soluia prezint un
avantaj pentru care uneori a fost utilizat n practic, acesta este faptul c se pot
calcula apriori, nainte de a cunoate ntregul n care trebuie factorizat, tabele cu
aceste produse pentru valori rezonabile i apoi pot fi utilizate pentru scoaterea
factorilor mici din orice ntreg care se dorete factorizat. Problema algoritmului
nu const doar n timpul de calcul deoarece calculul celui mai mare divizor comun
se rezolv n timp polinomial, ci n spaiul necesar deoarece calcularea produselor
va necesita un spaiu de stocare care crete exponenial deci dac aplicm
aceast metod vom rmne rapid fr spaiu de stocare.
Factorizarea Fermat nu este nici ea mai eficient dect o cutare
exhaustiv, ns are mare interes att din punct de vedere didactic ct i pentru
faptul c algoritmi avansai de factorizare se bazeaz pe idei nrudite cu aceasta.
Fermat a observat c orice ntreg impar poate fi scris ca diferen de exact dou
ptrate perfecte, iar scrierea unui numr ca diferen de ptrate conduce spre
factorizarea lui pentru c ( )( )
2 2
n a b n a b a b = = + i ( ) . . . . . , c mmd c a b n
sau ( ) . . . . . , c mmd c a b n + pot da cte un factor al lui n . n mod cert soluia banal a
problemei, care este ( )
2
2
1 n k k = + unde
1
2
n
k
= , nu conduce dect la factorii
banali ai lui n care sunt 1 i n - deci intereseaz gsirea unei soluii non-banale.
Pentru ntregii de forma n pq = comun utilizai n criptografie se observ c
2 2
2 2
p q p q
n
+ | | | |
=
| |
\ . \ .
de unde prin calcularea celui mai mare divizor comun,
aa cum s-a artat anterior, rezult imediat cei doi factori primi. n acest scop se
alege i n
(
=
i se calculeaz succesiv ( )
2
1 j i n = + verificndu-se dac j
este ptrat perfect. n esen aceasta nseamn o cutare exhaustiv plecnd de la
n
(
n sus. Verificarea faptului c un numr este ptrat perfect poate fi
optimizat deoarece ptratele perfecte se termin doar n 0, 4, 5, 6, 9, mai mult
modulo 16, extrem de util n inginerie deoarece pot fi extrai doar ultimii patru
bii, sunt congruente doar cu 0, 1, 4, 9 prin aceast metod putnd fi eliminate
rapid numere care sigur nu sunt ptrate perfecte. Complexitatea algoritmului este
ns tot ( ) n O iar n practic algoritmul este de multe ori mai slab dect cutarea
exhaustiv (de exemplu n cazul cnd numrul are un factor foarte mic i unul
foarte mare).
174 Funcii Criptografice, Fundamente Matematice i Computaionale
Pentru prezenta lucrare este suficient prezentarea acestor algoritmi
clasici de factorizare, principii utilizate de acetia fiind utilizate i n algoritmii
moderni din urmtoarele dou seciuni. Menionm c mai exist i alte metode
clasice de factorizare pentru care cititorul este ndrumat ctre [66], [87]. Datorit
faptului c aceti algoritmi clasici pot fi utilizai destul de eficient pentru gsirea
factorilor relativ mici ei intr n categoria algoritmilor de factorizare dedicai.
9.9.2 ALGORITMI DE FACTORIZARE DEDICAI
Tehnicile introduse de Pollard i utilizarea curbelor eliptice propuse de
Lenstra sunt cele mai relevante metode dedicate de factorizare.
Algoritmul Pollard p-1 se bazeaz tot pe construcia unui produs
asemenea celui din cazul metodei Euclid dar acest produs va fi utilizat n
conjuncie cu mica teorem a lui Fermat. Astfel pentru un ntreg compozit n
construim produsul
[
<
=
B q
n
i
i
q
q Q
log
unde numerele
i
q sunt toate numerele prime
mai mici dect B. Dac un numr p este un factor al lui n i toi divizori lui
1 p sunt mai mici dect B atunci
( )
. . . . . 1,
Q
c mmd c x n p = (aceast proprietate
se poate demonstra imediat din mica teorem a lui Fermat). Un numr care are
toi factorii mai mici dect un numr B se numete B-neted. Considerm util
urmtorul exemplu:
Exemplu:
( )
( )
( )
2
log
log 221
2
128
13 17
17 1 2
2 128
1, 17 17
q
n
q
n
este neted
Q q
cmmdc x n xrelativ primla
(
(
s
=
= = =
=
[
Ceva mai eficiente i inovatoare sunt metodele bazate pe gsirea unor
coliziuni de ptrate perfecte, apropiate ca idee de metoda de factorizarea a lui
Fermat. Algoritmul Pollard-rho se bazeaz pe posibilitatea gsirii unei coliziuni
de numere n
n
Z folosind o funcie ( )
n n
Z Z x f : i calculnd irul recurent
( )
1
=
i i
x f x . Deoarece funcia este definit pe o mulime finit elemente irului
10. Fundamente computaionale 175
recurent vor ncepe la un moment s descrie un ciclu iar dac se gsesc dou
elemente j i x x
j i
= = , , deci o coliziune, putem obine factorizarea lui n dac,
similar cu cazul metodei Fermat, putem scrie o relaie de forma
( )( )
2 2
mod a b n a b a b kn + = i deci aa cum s-a observat i anterior
( ) . . . . . , c mmd c a b n sau ( ) . . . . . , c mmd c a b n + pot da cte un factor al lui n .
Complexitatea de timp a acestui algoritm este ( ) n O iar cea de spaiu este ( ) n O
deoarece lungimea unor astfel de cicluri pentru funcii cu un comportament
stohastic este de aproximativ
8
n t
. n mod cert complexitatea de spaiu face
imposibil utilizarea unui astfel de algoritm n practic. Acest dezavantaj este ns
nlturat prin utilizarea funciei ( ) ( ) p x x f Z Z x f
n n
mod 1 , :
2
+ = unde n p | .
Bineneles c factorul p al lui n este necunoscut dar calculul poate fi efectuat i
modulo n deoarece dac ( ) n a x f mod = atunci ( ) p a x f mod . Astfel vom
considera irul recurent ( ) 2 ,
0 1
= =
x x f x
i i
i calculm succesiv perechi ( )
i i
x x
2
,
pn la gsirea unei coliziuni
i i
x x
2
= . Dac se gsete o astfel de coliziune n mod
evident ( )
2
. . . . . ,
i i
c mmd c x x n p = ceea ce conduce la factorizare (se pot utiliza i
alte valori pentru
0
x sau pentru funcia ( ) f x , de exemplu orice ( ) c x x f + =
2
).
Conform acelorai raionamente asupra ciclului descris de irul recurent
complexitatea de timp acestui algoritm devine ( ) ( )
4
2
n O p O ~ , spaiul de stocare
solicitat este nesemnificativ. Considerm util urmtorul exemplu:
Exemplu:
( ) ( )
( )
( )
( )
( ) 13 221 mod 145 1 1 104 221 mod 197 1 26
1 221 mod 104 1 1 197 221 mod 14 1 26
1 221 mod 197 1 1 26 221 mod 26 1 5
1 221 mod 26 1 1 2 221 mod 5 1 2
) 221 , ( 2 2
, 1 , 221 17 13
2
2
8
2
4
2
2
6
2
3
2
2
4
2
2
2
2
2
2
1
2 0 0
1
2
+ + = + =
+ + = + =
+ + = + =
+ + = + =
= =
= + = = =
x x
x x
x x
x x
x x cmmdc x x
x f x x x f n
i i
i i
176 Funcii Criptografice, Fundamente Matematice i Computaionale
9.9.3 ALGORITMI DE FACTORIZARE GENERALI
Dezvoltm n continuare ideea de a gsi doi ntregi y x, astfel nct
n y x mod
2 2
i n y x mod = ca apoi s extragem factorii prin calcularea celui
mai mare divizor comun. Strategia pe care se bazeaz familia de algoritmi
Random Square Factoring Methods (RSFM) este urmtoarea:
i) Se alege o mulime { }
t
p p p p S ,..., , ,
3 2 1
= numit baz de factorizare
format din t numere prime.
ii) Se aleg perechi de ntregi ( )
i i
b a , astfel nct:
- n a b
i i
mod
2
-
[
=
=
t
j
e
j i
ij
p b
1
- ceea ce nseamn conform definiiilor introduse anterior
c
i
b este neted raportat la baza de factorizare, acest lucru fiind uor de verificat
prin mpriri succesive la elementele bazei de factorizare.
iii) Se ncearc gsirea unei mulimi de T de elemente
i
b astfel nct n
produsul tuturor elementelor
i
b din mulimea T exponenii numerelor prime
i
p
sa fie numere pare. Pentru simplificarea problemei fiecrui element
i
b i se
asociaz un vector ( )
1 2 3
, , ,..., i
i i i it
e e e e e = care conine exponenii tuturor
numerelor prime din factorizarea sa:
( )
( )
( )
1 11 12
2 21 22
1 2
1 11 12 1 1 1 2
2 21 22 2 2 1 2
1 2 1 2
, ,..., ...
, ,..., ...
... ...
... , ,...,
t
t
t t tt
e e e
t t
e e e
t t
e e e
t t t t t tt
e e e e b p p p
e e e e b p p p
b p p p e e e e
= =
= =
= =
)
10. Fundamente computaionale 177
Fiecare vector este pus n coresponden cu un vector binar '
i
e care reine
doar paritatea elementelor din
i
e :
( )
( )
( )
( )
( )
( )
1 11 12 1 1 11 12 1
2 21 22 2 2 21 22 2
1 2 1 2
, ,..., ' mod2, mod2,..., mod2
, ,..., ' mod2, mod2,..., mod2
... ...
, ,..., ' mod2, mod2,..., mod2
t t
t t
t t t tt t t t tt
e e e e e e e e
e e e e e e e e
e e e e e e e e
= =
= =
= =
)
Ceea ce trebuie aflat pentru rezolvarea problemei este dac sistemul format
de vectori '
i
e este sau nu liniar dependent. Dac este liniar dependent nseamn
c exist o combinaie liniar de vectori a crei sum este vectorul nul. n acest
caz factorizarea este gsit deoarece n mod evident
[ [
= e
= =
t
i
i
T b
i
a x b
i
1
2 2
i astfel
s-a gsit o congruen de tipul n y x mod
2 2
.
Exemplu:
{ }
( )
( ) ( )
( ) ( ) 17 , 7 5 3 2 35 19 56 , 13 , 7 5 3 2 35 19 56
7 5 3 2 35 19 56 7 5 3 2 35 19 56
221 mod 7 5 3 2 35 19 56
2 mod 0
) 0 , 0 , 0 , 0 ( 3 2 36 221 mod 45
) 0 , 1 , 1 , 1 ( 5 3 2 120 221 mod 35
) 1 , 1 , 0 , 0 ( 7 5 2 140 221 mod 19
) 1 , 0 , 1 , 1 ( 7 3 2 42 221 mod 56
) 0 , 0 , 0 , 0 ( 7 49 221 mod 58
7 , 5 , 3 , 2
221 17 13
3 3
3 3
2 2 2 6 2
4 3 2
5
2 2 2
4
3 2
3
2 2
2
2
1
2 2
= + =
= +
+ +
= = =
= = =
= = =
= = =
= = =
=
= =
n cmmdc n cmmdc
n k
e e ae Seobservac
e
e
e
e
e
S
n
178 Funcii Criptografice, Fundamente Matematice i Computaionale
Cel mai puternic i promitor algoritm de factorizare general cunoscut
este Number Field Sieve care face parte tot din familia RSFM. Detaliile acestui
algoritm sunt destul de complexe, pentru o prezentare mai detaliat trimitem
ctre [66], [87], [58].
9. 10 PROBLEMA LOGARITMULUI DISCRET (DLP)
Definiia 5.3. Problema logaritmului discret (DLP Discrete
Logarithm Problem): Avnd un numr prim p un generator o al grupului
*
p
Z
i valoarea lui mod
x
p o gsete-l pe x .
Desigur problema poate fi generalizat pe orice alt grup dect
*
p
Z i mai
mult pentru elemente care nu sunt neaprat generatori ai grupului desigur
problema avnd relevan pentru criptografie atunci cnd elementul are ordin
suficient de mare. n cele ce urmeaz vom nota ordinul lui o cu k , evident dac
o este generator al lui
*
p
Z i p este prim atunci 1 k p = .
Soluia banal este cutarea exhaustiv dar aceast presupune ( ) O k
multiplicri pentru care nu poate fi utilizat n practic. O optimizare direct a
acestei cutri este algoritmul baby-step giant-step. Acesta se bazeaz pe
observaia simpl c putem scrie x i k j
(
= +
i se poate calcula off-line o
tabel cu puterile lui o pn la j , n mod evident ca i consecin a teoremei
mpririi cu rest avem j k
(
<
. Tabela se pstreaz sortat dup valorile lui
, 1,
j
j k o
(
=
pentru gsirea rapid a valorilor din aceasta (prin cutare binar
care are timp logaritmic). Odat realizat aceast tabel se poate calcula succesiv
pentru 1, i k
(
=
valoarea lui
( )
mod
i
k x
p o o
.
2. Verific dac numrul ( )
1 1
2
...
k k
x x x x
= ,
dac 1 x = returneaz 0.
2. Returneaz 1.
IEIRE: dac x este prim 1 altfel 0.
ALGORITMUL 9-13. TESTUL FERMAT DE PRIMALITATE
10. Fundamente computaionale 181
8.5 folosind relaia
1
2
p
x
x
p
| |
=
|
\ .
. Testul construit pe acest principiu este cunoscut
sub numele de Soloway-Strassen i are urmtoarea descriere:
Probabilitatea ca un ntreg s fie declarat prim n mod fals de testul
Soloway-Strassen este
1
2
t
| |
|
\ .
iar testul Miller-Rabin, care nu l vom descrie, are o
probabilitate de eroare de
1
4
t
| |
|
\ .
. Numerele a care fraudeaz testul Solovay-
Strassen poart numele de Euler liar iar cele care fraudeaz testul Miller-Rabin
numele de strong liar. Se poate demonstra c sunt cel mult ( ) 2 n | astfel de
numere pentru orice compozit, de aici i valoarea probabilitii de a frauda acest
test.
INTRARE: un numr aleator p
3. Pentru 1, i t = :
Alege un numr aleator 1 a p < < .
Calculeaz
1
2
mod
p
x a p
= .
Dac 1 x = returneaz 0.
Calculeaz
x
y
p
| |
=
|
\ .
folosind algoritmul pentru
simboluri Jacobi din 10.6.
Dac x y = returneaz 0.
4. Returneaz 1.
IEIRE: dac x este prim 1 altfel 0.
ALGORITMUL 9-14. TESTUL SOLOWAY-STRASSEN DE PRIMALITATE
182 Funcii Criptografice, Fundamente Matematice i Computaionale
9. 12 MULTIPLICAREA UNUI PUNCT DE PE O CURB ELIPTIC
Dac exponenierea era operaia de baz n cadrul grupurilor construite
pe clase de resturi modulo n, operaia analoag n cazul grupurilor construite
peste puncte ale curbelor eliptice este adunarea punctelor de pe curb. Adic
operaia frecvent efectuat
k
g pentru un generator g i un numr aleator k
devine kP unde P este un punct de pe curb.
Multiplicarea unui punct cu o constant, care nseamn adunare succesiv,
se poate calcula eficient n manier similar cu exponenierea (care folosea
algoritmul Repeated-Square-and-Multiply) prin adunri succesive. De exemplu
pentru a calcula 99P nu este necesar s adunm punctul succesiv de 99 de ori cu
el nsui pentru c putem scrie simplu 99P=2(P+2* 2* 2* 2* 2(P+2* P)) +P
ceea ce conduce la 3 adunri i 7 multiplicri cu 2 (dublri) ale punctului.
INTRARE: punctul P i un ntreg ( )
1 1
...
l l
k k k k
= .
1. Seteaz aux P = , 1 y =
2. Pentru ,1 i l = :
aux aux aux = + ,
Dac 1
i
k = atunci aux aux P = + ,
3. Returneaz aux
IEIRE: kP .
ALGORITMUL 9-15. MULTIPLICAREA UNUI PUNCT DE PE O CURB ELIPTIC
10 BIBLIOGRAFIE
[1] R. J. Anderson, (2001), Security Engineering: A Guide to Building
Dependable Distributed Systems, Wiley, 640 pagini, ISBN 0471389226.
[2] T.M. Apostol, (1976), Introduction to Analytic Number Theory, Springer-
Verlag, 329 pagini, ISBN 0387901639.
[3] J. Bayne, (2002), An Overview of Threath and Risk Assesment, SANS
Institute.
[4] M. Bellare, S. Goldwasser, (2001), Lecture Notes on Cryptography, Curs:
MIT, disponibil la http://www.cs.ucsd.edu/users/mihir/papers/gb.html.
[5] M. Bellare, P. Rogaway, (1993), Random oracles are practical: A paradigm
for designing efficient protocols, ACM Conference on Computer and
Communications Security, pages 6273.
[6] M. Bellare, P. Rogaway, (1995), Optimal asymetric encryption How to
encrypt with RSA, Advances in Cryptology EuroCrypt 94, LNCS vol. 950,
Springer-Verlag.
[7] M. Bellare, P. Rogaway, (1996), The exact security of digital signatures-how
to sign with RSA and Rabin. In Proceedings of the 15th annual
international conference on Theory and application of cryptographic
techniques (EUROCRYPT'96), Ueli Maurer (Ed.). Springer-Verlag, Berlin,
Heidelberg, 399-416.
[8] M. Bellare, R. Canetti, H. Krawczyk, (1996), Keying Hash Functions for
Message Authentication, Advances in Cryptology CRYPTO 96, LNCS vol.
1109, Springer-Verlag.
[9] M. Bellare, A. Desai, D. Pointcheval, P. Rogaway, (1998), Relations among
notions of security for public-key encryption schemes, Advances in
Cryptology CRYPTO 98, LNCS, vol. 1462, pp.26 45, Springer-Verlag.
184 Funcii Criptografice, Fundamente Matematice i Computaionale
[10] I. Blake, G. Seroussi, N. Smart, (1999), Elliptic Curves in Cryptography,
Cambridge University Press, ISBN 0521653746.
[11] I. Blake, G. Seroussi, N. Smart, (2005), Advances in Elliptic Curve
Cryptography, Cambridge University Press, ISBN 052160415X.
[12] D. Bleichenbacher, U. Maurer, (1994), Directed Acyclic Graphs, One-way
Functions and Digital Signatures, Advances in Cryptology CRYPTO94, 75-
82, LNCS 839, Springer-Verlag.
[13] D. Bleichenbacher, U. Maurer, (1996), On the Efficiency of One-time Digital
Signatures, Advances in Cryptography ASIACRYPT 96, pp. 14558, LNCS
1163, Springer-Verlag.
[14] L. Blum, M. Blum, M. Shub, (1982), Comparison of Two Pseudo-Random
Number Generators, Advances in Cryptology CRYPTO 82, pp. 61-78,
Springer-Verlag.
[15] L. Blum, M. Blum, M. Shub, (1986), A Simple Unpredictable Pseudo-Random
Number Generator, SIAM Journal on Computing, Volume 15, Issue 2 , pp.
364 383.
[16] D. Boneh, R. Venkatesan, (1998), Breaking rsa may not be equivalent to
factoring, Proceedings of Eurocrypt 98, LectureNotes in Computer Science,
vol. 1233, pp. 5971, Springer-Verlag.
[17] R.P. Brent, (1990), Primality Testing and Integer Factorization, The
Australian National University TR-CS-90-03.
[18] D. Brumley, D. Boneh, (2003), Remote Timing Attacks are Practical,
Proceedings of the 12th Usenix Security Symposium.
[19] E. Byres, J. Lowe, (2004), The Myths and Facts behind Cyber Security Risks
for Industrial Control Systems. VDE Congress04.
[20] R. Canetti, O. Goldreich, S. Halevi, (2004), The random oracle methodology,
revisited, Journal of the ACM (JACM), Volume 51 , Issue 4, pp. 557 594.
[21] D. Chaum, (1982), Blind sigantures for Untraceable payments, Advances in
Cryptology CRYPTO 82, Springer-Verlag.
[22] D. Chaum, (1985), Security without identification Card Computers to
make Big Brother Obsolete, Communication of the ACM.
11. Bibliografie 185
[23] H. Cohen, (1993), A Course in Computational Algebraic Number Theory,
Springer, ISBN 0387942939, 534 pagini.
[24] H. Cohen, G. Frey et al., (2006), Handbook of Elliptic and Hyperelliptic Curve
Cryptography, Chapman & Hall/CRC, ISBN 1584885181, 848 pagini.
[25] T.H. Cormen, C.E. Leiserson, R.L. Rivest, (1990), Introduction to Algorithms,
MIT Press, Cambridge, Massachusets, 1048 pagini, ISBN 0262530910.
[26] CNSS, (2006), NATIONAL INFORMATION ASSURANCE (IA) GLOSSARY
http://www.cnss.gov/Assets/pdf/cnssi_4009.pdf.
[27] R. Cramer, V. Shoup, (2004), Design and analysis of practical public-key
encryption schemes secure against adaptive chosenciphertext attack, SIAM
Journal on Computing, vol. 33, Issue1, pp. 167 226.
[28] DADS, (2007), Dictionary of Algorithms and Data Structures, National
Institute of Standards and Technology, availlable at www.nist.gov/dads/.
[29] W. Diffie, M.E. Hellman, (1976), New directions in cryptography, IEEE
Transactions on Information Theory.
[30] D. Dolev, C.Dwork, M. Naor, (1991), Non-malleable cryptography.
Proceedings of the 23rd Symposium on Theory of Computing, ACM STOC,
pp. 542552.
[31] D. Dzung, M. Naedele, T.P. Hoff, M. Crevatin, (2005), Security for Industrial
Communication Systems, Proceedings of the IEEE, vol. 93, no. 6.
[32] S. Even, O. Goldreich, S. Micali, (1995), On-line/offline Digital Signatures,
Journal of Cryptology, pp. 35-67, Springer-Verlag.
[33] T. ElGamal, (1985), A public key cryptosystem and a signature scheme based
on discrete logarithms, IEEE Transactions on Information Theory.
[34] W. Feller, (1968), An Introduction to Probability Theory and Its
Applications, Volume 1, Wiley; 3 edition, 528 pagini, ISBN 0471257087.
[35] N. Ferguson, B. Schneier, (2003), Practical Cryptography, Wiley, 432
pagini, ISBN 0471223573.
[36] FIPS 46, (1976), re-nnoit n 1988, 1993, 1999 ca FIPS 46-1, 46-2, 46-3,
Data Encryption Standard (DES), National Institute of Standards and
Technology (NIST)., U.S. Department of Commerce.
186 Funcii Criptografice, Fundamente Matematice i Computaionale
[37] FIPS 180-1, (1995), 180-2, (2002), Announcing the Secure Hash Standard.,
National Institute of Standards and Technology (NIST)., U.S. Department
of Commerce.
[38] FIPS 197, (2001), Announcing the Advanced Encryption Standard.
http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf
[39] E. Fujisaki, T. Okamoto, (1999), How to enhance the security of public-key
encryption at minimum cost, Workshop on Practice and Theory in Public
Key Cryptography, PKC'99, LNCS, vol. 1560, pp. 5368, Springer-Verlag.
[40] E. Fujisaki, T.Okamoto, D. Pointcheval, J. Stern, (2001), RSA OAEP is secure
under the RSA assumption, Advances in Cryptology CRYPTO01, LNCS,
vol. 2139, Springer-Verlag.
[41] M.R. Garey, D.S. Johnson, (1979), Computers and Intractability A Guide to
the Theory of NP-Completness, Bell Telephone Laboratories.
[42] O. Goldreich, (2001), Foundations of Cryptography, Cambridge University
Press, 392 pagini, ISBN 0521791723.
[43] O. Goldreich, (2004), Foundations of Cryptography Volume II Basic
Applications, Cambridge University Press, 448 pagini, ISBN 0521830842.
[44] S. Goldwasser, S. Micali, (1984), Probabilistic encryption, Journal of
Computer and System Sciences, vol. 28, pp. 270-299.
[45] S. Goldwasser, S. Micali, R. Rivest, (1988), A digital signature scheme secure
against adaptive chosen-message attacks, SIAM Journal of computing,
17(2), pp. 281-308.
[46] B. Groza, (2007), Broadcast authentication protocol with time
synchronization and quadratic residues chains, Second International
Conference on Availability, Reliability and Security (ARES07),
International Symposium on Frontiers in Availability, Reliability and
Security (FARES'07), Vienna, Austria, pp. 550-557, IEEE Comp. Soc..
[47] B. Groza, (2007), An extension of the RSA trapdoor in a KEM/DEM
Framework, Symposium on Symbolic and Numeric Algorithms for
Scientific Computing, SYNASC'07, Main Track, pp. 168-173, IEEE Comp.
Soc..
[48] D. Hankerson, A. Menezes, S. Vanstone, (2003), Guide to Elliptic Curve
Cryptography, Springer-Verlag, 311 pagini, ISBN 038795273X.
11. Bibliografie 187
[49] G.H. Hardy, E.M. Wright, (1975), An Introduction to the Theory of Numbers,
Oxford University Press, 456 pagini, ISBN 0198531710.
[50] J. Hastad, (1988), Solving simultaneous modular equations of low degree,
SIAM Jorunal of Computing, vol. 17, pp. 336-341.
[51] J. Herranz, D. Hofheinz, E. Kiltz, (2006), The Kurosawa-Desmedt Key
Encapsulation is not Chosen-Ciphertext Secure,
http://eprint.iacr.org/2006/207.pdf .
[52] IACR, (2007), International Association for Cryptologic Research (IACR),
http://www.iacr.org.
[53] David Kahn, (1996), The Codebreakers: The Comprehensive History of
Secret Communication from Ancient Times to the Internet, Scribner, ISBN-
10: 0684831309, ISBN-13: 978-0684831305.
[54] Jonathan Katz, Yehuda Lindell, (2007), Introduction to Modern
Cryptography: Principles and Protocols, Chapman & Hall/CRC
Cryptography and Network Security Series, ISBN-10: 1584885513, ISBN-
13: 978-1584885511.
[55] D.E. Knuth, (1969), The Art of Computer Programming, vol. 2
Seminumerical Algorithms, Addison Wesley, 784 pagini, ISBN
0201896842.
[56] N. Koblitz, (1994), A Course in Number Theory and Cryptography,
(Graduate Texts in Mathematics), Springer, 235 pagini, ISBN 0387942939.
[57] K. Kurosawa, Y. Desmedt, (2004), A New Paradigm of Hybrid Encryption
Scheme, Advances in Cryptology - CRYPTO 2004, LNCS vol. 3152, pp. 426-
442, Springer-Verlag.
[58] E. Landquist, (2002), The Number Field Sieve Algorithm, MATH 420:
Computer Algebra Systems,
http://www.math.uiuc.edu/~landquis/nfsieve.pdf .
[59] A.K. Lenstra, (2005), Further progress in hashing cryptanalysis,
http://cm.bell-labs.com/who/akl/hash.pdf.
[60] W. Mao, (2003), Modern Cryptography: Theory and Practice, Prentice Hall
PTR, 740 pagini, ISBN 0130669431.
188 Funcii Criptografice, Fundamente Matematice i Computaionale
[61] R. C. Merkle, (1987), A digital signature based on a conventional encryption
function, Advances in Cryptology - CRYPTO 87, pp. 369-378, LNCS 293,
Springer-Verlag.
[62] A.J. Menezes, P.C. Oorschot, S.A. Vanstone, (1996), Handbook of Applied
Cryptography, CRC Press, 816 pagini, ISBN 0849385237.
[63] V. S. Miller, (1986), Use of elliptic curves in cryptography, Advances in
Cryptology - CRYPTO85, LNCS 218, Springer-Verlag.
[64] NIST, (2007), Recommendation for Key Management Part 1: general,
NIST Special Publication 800-57. March, 2007
http://csrc.nist.gov/publications/nistpubs/800-57/sp800-57-Part1-
revised2_Mar08-2007.pdf.
[65] M. Rabin, (1979), Digitalized signatures and public key functions as
intractable as factorization, MIT/LCS/TR-212, MIT Laboratory for
Computer Science.
[66] H. Riesel, (1994), Prime Numbers and Computer Methods for Factorization,
Birkhuser Boston; 2nd ed. edition, 494 pagini, ISBN 0817637435.
[67] R. Rivest, A. Shamir, L. Adleman, (1978), A method for obtaining digital
signatures and public-key cryptosystems, Communications of the ACM.
[68] R. Rivest, (1992), The MD5 Message-Digest Algorithm, MIT Laboratory for
Computer Science and RSA Data Security, RFC 1321.
[69] R. Rivest, A. Shamir, D.A. Wagner, (1996), Time-lock puzzles and timed-
release Crypto, available at
http://theory.lcs.mit.edu/~rivest/publications.html.
[70] RSA Laboratories, (2003), Public-Key Cryptography Standards (PKCS) #1:
RSA Cryptography Specifications Version 2.1, RFC 3447,
http://tools.ietf.org/html/rfc3447.
[71] RSA Laboratories, (2005), RSA Factoring Challenge
http://www.rsasecurity.com/rsalabs/challenges/ factoring/numbers.
http://www.rsa.com/rsalabs/node.asp?id=2093.
[72] W. F. Rush, J. A. Kinast, (2003), Here's what you need to know to protect
SCADA systems from cyber-attack, Pipeline & Gas Journal.
11. Bibliografie 189
[73] B. Schneier, (1996), APPLIED CRYPTOGRAPHY, John Wiley & Sons, 784
pagini, ISBN 0471117099.
[74] B. Schneier, (2004), Cryptanalysis of MD5 and SHA: Time for a New
Standard, http://schneier.com/essay-074.html.
[75] B. Schneier, (2005), Cryptanalysis of SHA-1, http://www.schneier.com
/blog /archives/2005/02/cryptanalysis_o.html
[76] K. Schmidt-Samoa, (2006), A new rabin-type trapdoor permutation
equivalent to factoring, Electronic Notes in Theoretical Computer Science,
157(3).
[77] V. Shoup, (2004), Computational Introduction to Number Theory and
Algebra availlable at www.shoup.net/ntb - 2004
[78] V. Shoup, (2001), OAEP reconsidered, Lecture Notes in Computer Science,
2139, Springer-Verlag.
[79] V. Shoup, (2001), A proposal for an ISO standard for public key encryption,
Input for Committee.
[80] W. Stallings, (2005), Cryptography and Network Security (4th Edition),
Prentice Hall, 592 pagini, ISBN 0131873164.
[81] D. R. Stinson, (2005), Cryptography: Theory and Practice, Third Edition
Chapman & Hall/CRC, 616 pagini, ISBN 1584885084.
[82] Y. Tsiounis, M. Yung, (1998), On the Security of ElGamal based Encryption,
Workshop on Practice and Theory in Public Key Cryptography, PKC98,
LNCS, vol. 1431, Springer-Verlag.
[83] Samuel S. Wagstaff, (2002), Cryptanalysis of Number Theoretic Ciphers,
Chapman & Hall/CRC, 336 pagini, ISBN 1584881534.
[84] L. C. Washington, (2003), Elliptic Curves: Number Theory and
Cryptography, Chapman & Hall/CRC, 440 pagini, ISBN 1584883650.
[85] X. Wang, Y.L. Yin, H. Yu, (2005), Collision search on SHA1,
http://theory.csail.mit.edu/~yiqun/shanote.pdf.
[86] D.R. Wilkins, (2001), Topics in Number Theory, Course 311: Michaelmas
Term 2001,
http://www.maths.tcd.ie/~dwilkins/Courses/311/311NumTh.pdf .
190 Funcii Criptografice, Fundamente Matematice i Computaionale
[87] Song Y. Yan, (2003), Primality Testing and Integer Factorization in Public-
Key Cryptography, Springer, 256 pagini, ISBN 1402076495.
[88] U.S. Department of Energy, 21 Steps to Improve Cyber Security of SCADA
Networks, 2002.
11 ANEXE
A - NOTAII COMUN UTILIZATE
* - denot o valoare oarecare
. ct - constant
| | m - lungimea n bii a unui mesaj (sau a altui obiect dup caz)
( ) n | - Funcia Euler Phi, n este un ntreg oarecare.
( ) O - limita asimptotic superioar (complexitate).
n
Q
- mulimea reziduurilor cvadratice (ptratelor perfecte)
modulo n.
n
Q - mulimea non-reziduurilor cvadratice modulo n.
n
Q - mulimea pseudo-reziduurilor cvadratice modulo n.
n
Z - mulimea resturilor modulo n.
*
n
Z - mulimea resturilor modulo n relativ prime la n.
192 Funcii Criptografice, Fundamente Matematice i Computaionale
|
|
.
|
\
|
p
x
- simbolul Legendre, x este un ntreg oarecare i p este un
numr prim.
x
n
| |
|
\ .
- simbolul Jacobi, x i n sunt ntregi oarecare.
( ) v k
- funcie (cantitate) neglijabil.
( ) v k - funcie (cantitate) ne-neglijabil.
. . . . . c mmd c - cel mai mare divizor comun.
. . . . . c mmmc - cel mai mic multiplu comun.
P
A B <
- algoritmul A se reduce n timp polinomial la B.
A B -
P
A B < i
P
B A < , deci algoritmul A este echivalent cu B.
CPA - atac de tip mesaj ales.
CCA - atac de tip criptotext ales.
CCA2 - atac de tip criptotext ales adaptiv.
DLP - problema logaritmului discret.
PFI - problema factorizrii ntregi.
DDH - problema decizional Diffie-Hellman.
CDH - problema computaional Diffie-Hellman.
IND - imposibilitatea de a distinge (Indistinguishability).
NM - non-maleabilitate (Non-malleability).
PTP - Probabilist n Timp Polinomial, Algoritm.
QRP - Problema reziduurilor cvadratice.
11.Anexe 193
B CTEVA DEFINIII MAI RIGUROASE
"Theorists view a one-way function as a
basic object and build pseudo-random functions
from them. But in practice, as indicated by Luby
and Rackoff, the DES provides a pseudorandom
function of 64 bits to 64 bits. Ironically, if one
needs a practical protocol for a one-way
function, likely one would construct it from DES
thereby reducing the "simple" primitive to the
"complex" one (...) Let us look at a second
efficiently-computable primitive: the map
defined by the MD5 algorithm (...) What really is
this object? To date, there has been no
satisfactory answer. That is, there is no formal
definition which captures a large fraction of the
nice properties this function seems to possess
and it is not clear that one can be found.- M.
Bellare & P. Rogway
13
.
Relaia ntre teorie i practic nu este una uoar. Am evitat ncrcarea
capitolelor anterioare cu definiii riguroase ale funciilor criptografice deoarece
cred c acestea i-ar gsi mai bine locul n volumul 3. Totui cred c este util a
defini n aceast anex mod riguros, din punct de vedere matematic, cteva dintre
noiunile frecvent ntlnite n construcia criptosistemelor.
Definiiile cu privire la criptosisteme, i n particular cu privire la
securitatea acestora, fac adeseori apel la noiunea de cantitate neglijabil sau
funcie neglijabil. De exemplu, putem spune c o funcie criptografic hash este
rezistent la coliziune dac probabilitatea de a gsi o coliziune este neglijabil.
13
Din lucrarea Random oracles are practical: A paradigm to design efficient protocols.
194 Funcii Criptografice, Fundamente Matematice i Computaionale
Subliniem ns c n general se lucreaz cu noiunea de funcie neglijabil,
valoarea neglijabil depinznd astfel de un parametru. Iat definiia unei funcii
neglijabile:
Definiia A.1. (Funcie neglijabil) O funcie :
v v
v D C se numete
neglijabil dac pentru orice constant 0 c > exist un ntreg
c
k astfel nct
( ) ,
c
c
v k k k k
< > .
ntr-o manier similar definim noiunea de funcie ne-neglijabil:
Definiia A.2. (Funcie ne-neglijabil) O funcie :
v
v
v D C se numete
ne-neglijabil dac exist un polinom ( ) P k astfel nct pentru valori suficient de
mari ale lui k avem ( )
( )
1
v k
P k
> .
Toate funciile criptografice sunt funcii one-way, adic funcii greu de
inversat. O funcie greu de inversat nu trebuie confundat cu o funcie ireversibila.
Din punct de vedere matematic o funcie ireversibila este o funcie care nu este
bijectiv, n timp ce o funcie greu de inversat este o funcie a crei invers nu
poate fi calculat n mod eficient. Aceast noiune poate fi uor formalizat
folosind noiunea de funcie neglijabil, presupunnd c probabilitatea cu care un
algoritm ar putea inversa aceast funcie este neglijabil. n general se merge ns
mult mai departe de att i se impune imposibilitatea gsirii unei coliziuni n
imaginea acestei funcii, condiie care este chiar mai puternic dect aceea de a
inversa efectiv funcia. Acest aspect este sintetizat n urmtoarea definiie.
Definiia A.3. (Funcie one-way (puternic one-way)) O funcie
:
f f
f D C se numete one-way dac:
1) Exist un algoritm PTP (Probabilist n Timp Polinomial) care calculeaz
( ) y f x = pentru aproape
14
orice valoare
f
x D e .
2) Orice algoritm PTP care primete ca intrare pe ( ) y f x = returneaz
cu o probabilitate neglijabil o valoare z astfel nct ( ) f z y = , adic pentru o
14
Noiunea de aproape orice valoare este i ea lipsit de rigurozitate, acum ns pentru
rigurozitate cititorul poate uor s pun n coresponden acest termen cu noiunea de
funcie neglijabil.
11.Anexe 195
valoare k numit parametru de securitate avem
( ) ( ) ( ) ( ) Pr , , 1 , :
k
f
x D y f x z y f z y v k
O
A
(
A = s
(simbolul
O
denot c valoarea a fost aleas aleator).
Este natural s considerm valoarea lui k ca fiind
2
log
f
k D
(
=
deoarece n mod evident dimensiunea domeniului de definiie este cea care face
s scad probabilitatea ca algoritmul PTP s returneze o valoare corect.
Definiia A.3 se refer la ceea ce se numete de fapt funcie one-way
puternic. Existena funciilor one-way puternice este condiionat ns de
existena funciilor one-way slabe i invers. Pentru aceasta se impune s definim
i ce este o funcie one-way slab, definiia este n cele din urm evident.
Definiia A.4. (Funcie slab one-way) O funcie :
f f
f D C se numete
one-way slaba dac:
1) Exist un algoritm PTP care calculeaz ( ) y f x = pentru aproape orice
valoare
f
x D e .
2) Orice algoritm PTP care primete ca intrare pe ( ) y f x = returneaz cu
o probabilitate ne-neglijabila o valoare z astfel nct ( ) f z y = , adic pentru o
valoare k numit parametru de securitate avem
( ) ( ) ( ) ( ) Pr , , 1 , :
k
A
f
x D y f x z y f z y v k
O
(
A = >
.
Co
mp
any
Na
me
10/29/2007
x
Co
mp
any
Na
me
10/29/2007
f(x)
Usor de calculat
(complexitate polinomiala)
Greu de calculat
(complexitate exponentiala)
FIGURA 11.1. IMAGINE INTUITIV ASUPRA UNEI FUNCII ONE-WAY.
196 Funcii Criptografice, Fundamente Matematice i Computaionale
Se poate demonstra c existena funciilor one-way slabe i cea a funciilor
one-way puternice este echivalent, pentru demonstraii pot fi consultate
lucrrile [4, p. 20] i [42, p. 20]. Altfel se poate observa imediat c o funcie
puternic one-way poate fi oricnd transformat n funcie slab one-way (i se
observ de altfel c orice funcie care respect Definiia A.4 respect i Definiia
A.3). n ceea ce privete reciproca, faptul c o funcie slab one-way poate fi
transformat n funcie puternic one-way, acest lucru de asemenea poate fi
intuitiv neles deoarece dac considerm o funcie slab one-way f putem
construi uor funcia
( )
( ) ( ) ( )
0 1 1
' || || ... ||
d
f x f x f x f x
= , unde x denot un
vector de dimensiune d i || denot concatenare, care devine mai greu de
inversat dect f deoarece probabilitatea de a inversa ' f devine produsul
probabilitilor de a inversa f n toate punctele , 0, 1
i
x i d = (evident
probabilitatea fiind o valoare subunitar, produsul probabilitilor tinde
exponenial la 0 odat cu creterea lui d ).
Blocul principal de construcie al sistemelor criptografice l reprezint
funciile one-way cu trap. Informal o funcie one-way cu trap este o funcie one-
way care poate fi inversat dac se folosete o informaie suplimentar numit
trap. Astfel definim o funcie one-way cu trap dup cum urmeaz:
Definiia A.5. (Funcie trapdoor one-way) O funcie one-way cu trap este
o funcie one-way pentru care exist o informaie numit trap t i un algoritm PTP
pe care l notm cu Inv astfel nct ( ) ( )
, z Inv t y f x = i ( ) ( ) f z f x = pentru
aproape orice valoare din domeniul de definiie al funciei.
n criptografie ns nu lucrm cu o anume funcie one-way, ci cu familii
(colecii) de funcii one-way. Acestea se definesc dup cum urmeaz, att n cazul
funciilor simple one-way ct i al celor cu trap:
Definiia A.6. (Colecii de funcii one-way) Fie
{ }
:
i i
i i f f
F f f D C =
unde i I e iar I este o mulime de indici. Spunem despre F c este o colecie de
funcii cu trap one-way dac:
1) Exist un algoritm PTP care primind ca intrare 1
k
(unde k este
parametru de securitate) returneaz { } 0,1
k
i I e .
2) Exist un algoritm PTP care la intrarea i I e returneaz o valoare
aleatoare
i
f
x D e aleas uniform din
i
f
D (prin aleas uniform nelegem faptul c
toate valorile din
i
f
D au anse egale de a fi selectate de algoritm).
11.Anexe 197
3) i I e ,
i
f
x D e exist un algoritm PTP care calculeaz ( )
i
f x .
4) Pentru orice algoritm PTP probabilitatea de a gsi o valoare pentru care
imaginea funciei este egal cu o valoare dat a imaginii este neglijabil:
( ) ( ) ( ) ( ) Pr , , , 1 , :
i
k
f i i
i I x D y f x z y f z y v k
O O
A
(
A = s
.
La 1) am folosit notaia 1
k
, aceast notaie se utilizeaz frecvent n
criptografie i nsemn prin convenie reprezentarea numrului k n baza 1, care
reprezint k valori succesive de 1.
Definiia A.7. (Colecii de funcii one-way cu trap) Fie
{ }
:
i i
i i f f
F f f D C = unde i I e iar I este o mulime de indici. Spunem despre
F c este o colecie de funcii one-way cu trap dac:
1) Exist un algoritm PTP care primind ca intrare 1
k
(unde k este
parametru de securitate) returneaz ( ) { } ( )
2
, , 0,1 ,
k
i i
i t i I t p k e < (ultima
condiie semnific faptul c dimensiunea trapei are complexitate polinomial) unde
i
t este trapa funciei
i
f .
2) Exist un algoritm PTP care la intrarea i I e returneaz o valoare
aleatoare
i
f
x D e aleas uniform din
i
f
D .
3) i I e ,
i
f
x D e exist un algoritm PTP care calculeaz ( )
i
f x .
4) i I e ,
i
f
x D e exist un algoritm PTP, care l notm cu Inv , i care
avnd
i
t i ( )
i
y f x = calculeaz ( ) ,
i
z Inv t y i avem ( ) f z y = (condiie
necesar pentru corectitudinea inversrii) i suplimentar n cazul n care funcia cu
trap este o permutare avem z x = .
5) Pentru orice algoritm PTP, care nu primete trapa ca intrare,
probabilitatea de a gsi o valoare pentru care imaginea funciei este egal cu o
imagine dat este neglijabil:
( ) ( ) ( ) ( ) Pr , , , 1 , :
i
k
f i i
i I x D y f x z y f z y v k
O O
A
(
A = s
.
Considerm util, pe de o parte pentru clarificarea definiiilor introduse
anterior, dar i pentru simplificarea expunerii ce va urma prezentarea unor funcii
cu trap one-way definite peste grupuri de ntregi. Importana acestor funcii
const n faptul c toate aceste funcii constituie baza unor criptosisteme cu cheie
198 Funcii Criptografice, Fundamente Matematice i Computaionale
public. n cele ce urmeaz vom nota cu
*
n
Z mulimea numerelor din
n
Z care sunt
prime raportate la n adic ( ) { }
*
| , 1
n n
Z x Z cmmdc x n = e = .
Funcia RSA st la baza criptosistemului propus de Rivest, Shamir i
Adlemann, care este poate cel mai rspndit criptosistem cu cheie public este i
totodat ofer prima soluie complet pentru criptare asimetric i semntur
digital [67]. Funcia RSA este definit ca:
* *
:
RSA n n
f Z Z , ( ) mod
RSA
f x x n
c
=
Aici, n pq = este un ntreg produs a exact dou numere prime, c
reprezint un ntreg oarecare pentru care este adevrat c
( ) ( )
. . . . . , 1 c mmd c n c | = , unde ( ) ( )( ) 1 1 n p q | = . Inversa acestei funcii este:
1 * *
:
RSA n n
f Z Z
, ( ) ( )
1 1
mod , mod
RSA
f x x n n
o
o c |
=
De subliniat c funcia RSA este o permutare one-way cu trap, deci o
funcie bijectiv. Funcia RSA se poate inversa dac se cunoate factorizarea lui n .
Nu se cunoate ns dac inversarea acestei funcii este echivalent cu
factorizarea lui n , deci dac securitatea RSA este echivalent cu problema
factorizrii ntregilor. n principiu RSA Security promoveaz aceast idee prin
concursurile de factorizare iniiate, dar recent exist lucrri care aduc destul de
mult scepticism n aceast direcie. Un lucru este ns foarte clar, n cei aproape
30 de ani de la introducerea acestei funcii n criptografie nu s-a fcut nici un fel
de progres n a demonstra echivalena securitii RSA-ului cu problema
factorizrii dar n acelai timp singura cale de a sparge RSA-ul (exceptnd cazuri
particulare cu exponeni de criptare, decriptare prost alei, utilizare
necorespunztoare etc.) este factorizarea ntregului folosit ca modul. O
generalizare a funciei RSA pentru construcia criptosistemelor poate fi gsit n
[47].
11.Anexe 199
Funcia Rabin este din punct de vedere cronologic al doilea candidat de
funcie one-way cu trap folosit n criptosisteme asimetrice [65]. Funcia este
definit ca:
*
:
Rabin n n
f Z Q , ( )
2
mod
Rabin
f x x n =
Din nou n pq = este un ntreg produs a exact dou numere prime. Prin
n
Q se noteaz mulimea ptratelor perfecte din
*
n
Z , i.e.
{ }
* * 2
, mod
n n n
Q x Z y Z x y n = e - e . De subliniat faptul c funcia Rabin nu este
un caz particular al funciei RSA deoarece funcia RSA impune ca
( ) ( )
. . . . . , 1 c mmd c n c | = n timp ce n cazul funciei Rabin exponentul 2 nu poate
ndeplini aceasta condiie, funcia lui Euler, i.e. ( ) n | , fiind ntotdeauna par.
Inversa funciei Rabin nu poate fi sintetizat ntr-o formul, dar exist algoritmi
pentru calculul acestei inverse dac i numai dac factorizarea lui n este
cunoscut (n capitolul 4 se prezint cteva metode pentru aceasta). Se subliniaz
de asemenea faptul c funcia Rabin nu este bijectiv i descrie n
*
n
Z o
transformare de tip 4 la 1. Funcia Rabin poate fi inversat dac i numai dac se
cunoate factorizarea lui n - deci are securitatea echivalent cu problema
factorizrii ntregilor.
Impunnd o restricie asupra modului compozit n , funcia Rabin poate fi
transformat ntr-o permutare cunoscut sub numele de funcia Rabin-
Williams.. Astfel n cazul n care n este un ntreg Blum, adic produsul a dou
numere prime , p q cu 3mod4, 3mod4 p q funcia Rabin definit pe
n
Q
devine o permutare one-way cu trap.
:
Rabin Williams n n
f Q Q
, ( )
2
mod
Rabin Williams
f x x n
=
n acest caz funcia are i o inversa care poate fi definit dup cum
urmeaz:
200 Funcii Criptografice, Fundamente Matematice i Computaionale
1
:
Rabin Williams n n
f Q Q
, ( )
5
1
8
mod
n p q
Rabin Williams
f x x n
+
=
Funcia Rabin-Williams are securitatea echivalent cu dificultatea
problemei factorizrii ntregilor.
Funcia Schmidt-Samoa este una dintre cele mai recente propuneri de
funcie one-way trapdoor a crei securitate este echivalent cu problema
factorizrii [76]. Funcia lucreaz cu un modul compozit de forma
2
n p q = i este
definit dup cum urmeaz:
( )
*
:
Samoa pq
f Z N R n , ( )
{ }
* *
, mod
n
n n
N R n x Z y Z x y n = e - e =
( ) mod
n
Samoa
f x x n =
Funcia are ca invers:
( )
1
mod
d
Samoa
f x x pq
= , ( )
1
mod d n pq |
=
Funcia este bijectiv, adic este o permutare one-way cu trap. Alte
detalii pot fi gsite n lucrarea [76].