Documente Academic
Documente Profesional
Documente Cultură
IntroCripto PDF
IntroCripto PDF
Bogdan Groza
Prefa
Timioara, 2012
Cuprins
1 INTRODUCERE ............................................................................................................................. 9
1.1 SECURITATEA INFORMAIEI, DEFINIREA PROBLEMEI ..................................................................... 9
3.2 FUNCII HASH FRECVENT UTILIZATE N PRACTIC: MD5 I FAMILIA SHA ............................. 61
7.3 VARIANTE SIGURE N PRACTIC PENTRU SEMNTUR RSA: FDH, PSS, PKCS V.1.5 ........115
10 BIBLIOGRAFIE .........................................................................................................................183
11 ANEXE ........................................................................................................................................191
1 INTRODUCERE
unei ui este un dispozitiv de securitate fizic, dar unui astfel de lact i se poate
ataa un dispozitiv de autentificare bazat pe tehnici criptografice, cum ar fi de
exemplu un smart-card. Acest nivel de detaliere este suficient pentru prezentul
capitol, dar n practic nu este nici pe departe complet deoarece n cazul
securitii electronice exist de asemenea multe alte moduri n care adversarul
poate ajunge la sistem i problema se complic n continuare (de exemplu poate
ajunge de pe un suport de date, sau prin intermediului unei reele etc.).
i) ii)
FIGURA 1.1. CAUZELE INCIDENTELOR DE SECURITATE I) N PERIOADA 1982-2000 II)
N PERIOADA 2001-2003
i) ii)
FIGURA 1.2. CDEREA DE ENERGIE ELECTRIC DIN AUGUST, 2003: I) NAINTE II)
DUP (COPYRIGHT: POZELE APARIN DOMENIULUI PUBLIC I SUNT FCUTE DE U.S.
NATIONAL OCEANIC AND ATHMOSPHERIC ADMINISTRATION )
1. Introducere 13
fizic dar pentru a nu ncrca figura le vom omite. n principiu orice element al
imaginii poate s lipseasc, mai puin un participant care este ntotdeauna
necesar i adversarul n faa cruia dorim s asigurm diverse obiective de
securitate.
Adv
Parte de incredere
FIGURA 1.3. CADRUL DE LUCRU: CLIENI ONETI (A,B), ADVERSAR (ADV), PARTE DE
NCREDERE I TIMP.
ASDF
ASDF
ASDF
ASDF
ASDF
ASDF
ASDF
CANAL PUBLIC (NESIGUR) ASDF
ASDF
Adv
INTERCEPTAREA CONVERSATIILOR
*-+#
*-+#
*-+#
ASDF
ASDF
ASDF
ASDF
CANAL PUBLIC (NESIGUR) ASDF
ASDF
Adv
ANALIZA DE TRAFIC
Desigur, exist i alte atacuri asupra securitii unui sistem pentru a cror
contracarare nu se folosesc n general tehnici criptografice, ele fiind contracarate
prin alte mijloace. Exemple de cauze ale unor astfel de atacuri sunt: i) virui
informatici care duc n general la distrugerea software-ului prin infiltrare n
fiiere existente i fac imposibil funcionarea sistemului prin execuia unor
aciuni duntoare, ii) programe tip Cal Troian sunt programe folosite n scopul
obinerii accesului la anumite informaii, de exemplu aflarea parolelor n sisteme
de operare perimate gen Win98, iii) programe tip Vierme care sunt programe
care se propag automat fr controlul unui utilizator i n general afecteaz rata
de transfer a reelei (spre deosebire de virui nu se infiltreaz n fiiere existente).
22 Funcii Criptografice, Fundamente Matematice i Computaionale
ASDF
ASDF
ASDF
ASDF
ASDF
ASDF
QWER
CANAL PUBLIC (NESIGUR) QWER
QWER
Adv
CANAL PUBLIC (NESIGUR)
B
MODIFICAREA
ASDF
ASDF
ASDF
ASDF
ASDF
ASDF
IMPOSTURA
ASDF
ASDF
ASDF
ASDF
ASDF
ASDF
ASDF
ASDF
ASDF ASDF
ASDF
ASDF
ASDF
CANAL PUBLIC (NESIGUR) ASDF
Adv ASDF
B
RETRANSMISIA
ASDF
ASDF
ASDF
ASDF
ASDF
ASDF
criptografia fiind definit ca: scriere secret cu ajutorul unui cod de semne
convenionale. Aceast descriere corespunznd stadiului domeniului de acum
cteva secole.
Domeniul criptografiei se ocup de construcia funciilor criptografice.
Diverse funcii criptografice vor fi descrise n capitolele urmtoare, iar pe moment
putem s ne formm o imagine intuitiv asupra unei funcii criptografice ca fiind o
funcie care depinde de un parametru numit cheie i se aplic unui mesaj
(plaintext) pentru a obine un mesaj criptat numit criptotext (ciphertext)
aceasta este ceea ce n principiu numim funcie de criptare. Totodat obiectivul
criptografiei este i cel de a construi inversa acestei funcii cu ajutorul creia din
criptotext alturi de cheie se poate recupera mesajul original aceasta fiind ceea
ce numim funcie de decriptare. Toate acestea sunt sugerate n Figura 1.7.
Subliniem c aceast imagine este doar intuitiv deoarece nu toate funciile
criptografice au cheie, i mai mult, nu toate funciile criptografice admit o invers.
Domeniul care are ca obiectiv recuperarea din criptotext a mesajului i a
cheii se numete criptanaliz i este ceea ce n limbaj comun numim spargerea
funciilor criptografice care din punct de vedere intuitiv poate fi vzut ca
inversarea acestora. Subliniem ns c n general a sparge o funcie criptografic
presupune aciuni mult mai simple dect inversarea ei, imaginea creat avnd din
nou doar valoare intuitiv. Criptografia i criptanaliza sunt cele dou ramuri ale
domeniului numit criptologie.
k h@6k
...
*/A,
@4h
asdf
ALGORITM DE CRIPTARE
c 0gQ1
i7R1
m
asdf asdf
asdf ...
m
asdf
ALGORITM DE DECRIPTARE
asdf asdf
... asdf
...
k h@6k
...
Evoluia criptografiei, i mai mult sau mai puin a oricrui alt domeniu,
poate fi vzut ca urmnd urmtorul drum: Teorie, Practic, Standarde. Fr a
1. Introducere 25
reduce rolul aplicaiilor practice i a standardelor care ne fac viaa mai uoar
este de remarcat c standardele acoper doar probleme care sunt implementate
practic, implementrile practice urmeaz doar probleme fundamentate teoretic n
prealabil iar teoria reprezint baza cea mai solid i consistent a domeniului. Mai
mult, soluiile de vrf ale domeniului se gsesc n teorie i doar rar n
implementrile practice, care trateaz n general aspecte demult cunoscute (de
exemplu curbele eliptice sunt utilizate n practic doar n ultimii ani, n ciuda
faptului c au fost propuse de Miller i Kobliz nc din 1985).
n=3107418240490043721350750035888567930037346022842727545
720161948823206440518081504556346829671723286782437916272838033
415471073108501919548529007337724822783525742386454014691736602
477652346609.
Cei doi factori primi ai si sunt:
p=1634733645809253848443133883865090859841783670033092312
181110852389333100104508151212118167511579,
q=1900871281664822113126851573935413975471896789968515493
666638539088027103802104498957191261465571.
Nivelul de securitate al funciilor criptografice este frecvent clasificat dup
urmtoarele categorii: securitate necondiionat, securitate bazat pe
complexitate, securitate demonstrat. Aceast clasificare nu se refer la o
cuantificare numeric a nivelului de securitate ci la garania pe care acesta se
bazeaz. ncercm s explicm aceste trei noiuni. Securitate necondiionat au
acele criptosisteme care nu pot fi sparte, indiferent de puterea de calcul de care
dispune adversarul (one-time pad este un astfel de sistem). Discutm de
securitate bazat pe complexitate atunci cnd nivelul de securitate este dat de
complexitatea (timpul de calcul ilustrat n numr de pai) al unui algoritm care
poate rezolva problema i acest algoritm este cea mai bun cale de a rezolva
problema. Noiunea de securitate demonstrabil (provable security) se folosete
cu privire la acele criptosisteme despre care se poate demonstra c spargerea lor
conduce la rezolvarea altei probleme care se tie c este greu de rezolvat.
Curbe
Securitate AES RSA eliptice Durata de
la nivel de (dimensiunea (dimensiunea (valoarea utilizare
bii cheii) modulului) ordinului recomandat
bazei)
80 x 1024 160-223 Pn n 2010
112 x 2048 224-255 Pn n 2030
128 128 3072 256-383 Dup 2030
192 192 7680 384-511 x
256 256 15360 512+ x
TABELUL 1.1. NIVELE COMPARATIVE DE SECURITATE (CONFORM CU [64]).
1. Introducere 27
TABELUL 1.2. RECOMPENSE (EXPIRATE) PENTRU SPARGEREA UNOR CHEI RSA [71].
iv) Cifrul (mesajul criptat) trebuie s fie uor de transmis prin telegraf.
(i) (ii)
(i) (ii)
FIGURA 1.9. MAINI CRIPTOGRAFICE: (I) IERI (MAINA ENIGMA) I (II) AZI (SMART-
CARD)
pk pub!1c
...
*/A,
@4h
asdf
ALGORITM DE CRIPTARE
c 0gQ1
i7R1
m
asdf asdf
asdf ...
m
asdf
asdf ALGORITM DE DECRIPTARE
asdf
... asdf
...
sk pr1v@t3
...
cheie secret (sau cheie simetric), criptosisteme cu cheie public (sau cheie
asimetric) i criptosisteme fr cheie. Criptosistemele cu cheie simetric
utilizeaz aceeai cheie pentru criptare i decriptare; avantajul lor este c necesit
resurse de calcul reduse n timp ce dezavantajul este necesitatea unei chei secrete
cunoscute de participanii la comunicare (deci un secret partajat). Criptosistemele
cu cheie asimetric presupun utilizarea de chei diferite pentru
criptare/decriptare; avantajul este posibilitatea de a efectua transmisii pe canale
nesigure n absena unor secrete partajate iar dezavantajul este puterea de calcul
relativ ridicat de care este nevoie. n principiu securitatea nu se poate construi
dect n prezena funciilor din ambele categorii. Pe lng criptosistemele cu cheie
simetric i asimetric mai exist i criptosistemele fr cheie. O taxonomie a
criptosistemelor este sugerat n Figura 1.12.
Scheme de
Scheme de criptare
Coduri de criptare cu cheie
Generatoare de Functii hash cu cheie simetrica Scheme de
autentificare a asimetrica
numere aleatoare criptografice (Criptarea cu cheie semnare digitala
mesajelor (MAC) (Criptarea cu cheie
secreta)
publica)
Cri moderne despre criptografie. Crile lui Mao [60] i Katz i Lindell
[54] sunt cri moderne care conin noiuni de securitate moderne i demonstraii
(reducii) de securitate actuale. Prima prezint o abordarea bazat pe soluiile
existente n lumea real i este cartea pe care o recomand n primul rnd. Este
excelent ca lucrare de ansamblu, suficient de scurt i totui enciclopedic i
modern, cursul inut la MIT de Bellare i Goldwasser [4]. Acesta poate fi ns
greu de neles pentru cititorul lipsit de o baz oarecare n domeniu i este un
material extrem de dens. Cri solide pentru fundamente ale criptografiei sunt
cele dou volume publicate de Goldreich [42], [43].
Cri despre securitatea informaiei. Pentru o vedere general asupra
aplicaiilor de securitate i parial a criptografiei este util cartea lui Anderson [1]
dei nu are prea mult de a face cu ingineria aa cum titlul sugereaz. Tot orientat
spre practic este i cartea lui Stallings [80].
Cri despre Teoria Numerelor. Din punct de vedere al criptografiei cu
cheie public sunt foarte relevante aspectele de teoria numerelor, pentru acestea
au devenit referin n domeniu crile lui Apostol [2] i a lui Hardy i Wright [49].
Pentru teoria probabilitilor trebuie consultat [34]. Abordri ale criptografiei
prin prisma matematicii (n special algebr i teoria numerelor) pot fi gsite n
cartea lui Koblitz [56] i cea a lui Cohen [23]. Este de asemenea o mare realizare
n domeniu materialul oferit de Shoup [77] care se focalizeaz asupra elementelor
de calcul necesare (pe Internet este disponibil i o bibliotec de funcii
implementate n C). Tot ca abordare din perspectiva teoriei numerelor recomand
i cartea lui Wagstaff [83]. Pentru cei interesai de criptografia pe curbe eliptice
(extensie a criptosistemelor lui Diffie-Hellman i ElGamal), care poate fi vzut n
sine ca un domeniu, recomand n primul rnd lucrarea lui Cohen et al. [24] apoi
lista continu cu lucrarea lui Washington [84] i lucrarea lui Hankerson et al. [48]
care o recomand n special pentru cei care vor s implementeze, primele dou
cri le recomand celor interesai de aspectele de matematic. Cele dou cri
publicate la Cambridge despre curbe eliptice avnd coautor pe Gadiel Seroussi
sunt clduros recomandate [10], [11], personal nu le-am consultat dar am asistat
la cursurile lui Serrousi pe aceast tema de la Bonn, Germania, n septembrie
2007.
Articole de specialitate. n ceea ce privete articolele de specialitate din
conferine i jurnale aici lista recomandrilor ar fi enorm. Am inclus la
bibliografie doar cteva articole de referin. n general sunt recomandate
lucrrile publicate n conferinele centrale ale criptografiei, organizate de
International Association for Cryptologic Research (IACR) [52]: Crypto, Eurocrypt,
Asiacrypt, International Workshop on Practice and Theory in Public Key
Cryptography (PKC), Fast Software Encryption (FSE) i mai recent Theory of
1. Introducere 39
| m | *
| K | ct. , e.g., 128
K
| EK (m) || m |
Algoritm (functie) de
c decriptare cu cheie secreta m EK 1 c
Sym.Dec(c,K)
valoare aleatoare
1k (pseudo-aleatoare)
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.
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
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
FIGURA 2.4. COMPONENTELE MAINII ENIGMA: A) CELE 3 (fiecare are 26 de
ROTOARE, B) TABELA CU BECURI, C) TASTATURA, D)
poziii), setarea
TABELA DE TECHERE
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:
26!
263 138953282533065000 variante de cheie. Aceasta nu ine cont de
13! 213
setarea inelului pe fiecare rotor i de ordinea rotoarelor i tot este mai mult dect
cei 56 de bii de cheie ai DES, criptosistem care a fost sigur pn la nivelul anilor
90.
Astfel, spaiul din care provine cheia este impresionant, mult mai mare
dect al DES-ului i chiar mai mare dect n cazul AES dac Enigma este folosit la
46 Funcii Criptografice, Fundamente Matematice i Computaionale
puterea ei maxim. Dar nici aceast dimensiune a spaiului din care provine cheia
nu este suficient pentru securitate, maina Enigma realizeaz doar o simpl
substituie polialfabetic. Se poate observa o deficien constructiv chiar i dup
aceast descriere sumar: prin apsarea unei litere circuitul electric nu se putea
nchide sub acea liter i deci o liter nu se putea cripta n ea nsi. Acest lucru
este o deficien major deoarece o bun parte din mesajele surs pot fi eliminate
din start (n special n rzboi, variantele de mesaj surs sunt puine deoarece n
general reprezentau ordine militare scurte, etc.).
mesaj criptotext
F F
K0 Kl-1
F F
K1 Kl-2
etc. etc.
F F
Kl-1 K0
criptotext mesaj
FIGURA 2.5. REEA FEISTEL
58 50 42 34 26 18 10 2 40 8 48 16 56 24 64 32
60 39
52 44 36 28 20 12 4 7 47 15 55 23 63 31
62 54 46 38 30 22 14 6 38 6 46 14 54 22 62 30
IP
64 56 48 40 32 24 16 8 1 37 5 45 13 53 21 61 29
IP
57 49 41 33 25 17 9 1 36 4 44 12 52 20 60 28
59 51 43 35 27 19 11 3 35 3 43 11 51 19 59 27
61 53 45 37 29 21 13 5 34 2 42 10 50 18 58 26
63 55 47 39 31 23 15 7 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 14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7
2 13 1 10 6 12 11 9 5 3 8
13 14 15 16 17 S 0 15 7 4 14
E
12
16
1
4 1 14 6 2 11 15 12 9 7 3 10 5 0
17 18 19 20 21
8 13
15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13
20 21 22 23 24 25
24 25 26 27 28 29
28 29 30 31 32 1
16 7 20 21
29 12 28 17
1 15 23 26 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
5 18 31 10 S2
P 0 14 7 11 10 4 13 1 5 8 12 6 9 3 2 15
2 8 24 14
13 8 10 1 3 15 4 2 11 6 7 12 0 5 14 9
32 27 3 9
19 13 30 6
22 11 4 25
14 17 11 24 1 5
57 49 41 33 17 9 3 28 6 21 10
25
1 58 50 42 34 26 18 15
PC1' 23 19 12 4 26 8
10 2 59 51 43 35 27
PC 2
16 7 27 20 13 2
19 11 3 60 52 44 36
41 52 31 37 47 55
63 55 47 39 31 23 15
7 62 54 46 38 30 22 30 40 51 45 33 48
PC1'' 44 49 56 34 53
14 6 61 53 45 37 29
39
21 13 5 28 20 12 4
46 42 50 36 29 32
RX (32 BITI)
E
mesaj
L0 R0
K1 S1 S2 S3 S4 S5 S6 S7 S8
L1 R1
F
32 BITI
K2
ii)
mesaj
L2 R2
etc.
PERMUTARE 1
C0 D0
F
LEFT SHIFT LEFT SHIFT
K16 C1 D1
PERMUTARE 2 K1
R16 L16
etc.
PERMUTARE 2 K16
i) 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
c EK 3 DK 2 EK 1 m ,
m DK 1 EK 2 DK 3 c
Conform standardului, exist urmtoarele variante de utilizare a cheilor:
opiunea 1 cu 3 chei independente, opiunea 2 cu K1 i K 2 independene iar
K1 K3 i opiunea 3 cu o singur cheie independent K1 K2 K3 . 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.
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
m0 m 1 m 1
c0 c1 c 1
FIGURA 2.8.CRIPTAREA N MODUL DE FUNCIONARE ELECTRONIC CODE BOOK (ECB)
c0 c1 c 1
m0 m 1 m 1
FIGURA 2.9. DECRIPTAREA N MODUL DE FUNCIONARE ELECTRONIC CODE BOOK
(ECB)
m0 m 1 m 1
IV
Functie Criptare Functie Criptare Functie Criptare
k Bloc k Bloc k Bloc
c0 c1 c 1
FIGURA 2.10. CRIPTAREA N MODUL DE FUNCIONARE CIPHER BLOCK CHAINING
(CBC)
56 Funcii Criptografice, Fundamente Matematice i Computaionale
c0 c1 c 1
IV
m0 m1 m 1
IV
Functie Criptare Functie Criptare
k Bloc k Bloc k Functie Criptare
Bloc
m0 m 1 m 1
c0 c1 c 1
FIGURA 2.12. CRIPTAREA N MODUL DE OUTPUT FEEDBACK BLOCK CHAINING (OFB)
IV
Functie Criptare Functie Criptare
k Bloc k Bloc k Functie Criptare
Bloc
m0 m 1 m 1
c0 c1 c 1
FIGURA 2.13. CRIPTAREA N MODUL DE FUNCIONARE CIPHER FEEDBACK (CFB)
2. Scheme de criptare cu cheie simetric 57
m0 m 1 m 1
IV
Functie Criptare Functie Criptare Functie Criptare
k Bloc k Bloc k Bloc
c0 c1 c 1
FIGURA 2.14. CRIPTAREA N MODUL DE FUNCIONARE PROPAGATING CIPHER
BLOCK CHAINING (PCBC)
c0 c1 c 1
IV
m0 m 1 m 1
m0 m 1 m 1
c0 c1 c 1
FIGURA 2.16. CRIPTAREA N MODUL DE FUNCIONARE COUNTER MODE (CM)
58 Funcii Criptografice, Fundamente Matematice i Computaionale
| m | *
| H (m) | ct. , e.g., 128 256
m Functie Hash H m
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
A= 0x67452301,
B= 0xefcdab89,
C= 0x98badcfe,
D= 0x10325476.
Funcia de rund are la baz una din cele 4 funcii definite dup cum
urmeaz:
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 ).
A BCD b[i], 0 i 63
0 i 15
Runda 1 (16 x)
16 i 31
Runda 2 (16 x)
32 i 47
Runda 3 (16 x)
48 i 63
Runda 4 (16 x)
D C,
C B,
.
B B (( A FR( B, C , D) M K ) S ),
A D.
Ch( E, F , G) ( E F ) (E G),
Ma( A, B, C ) ( A B) ( A C ) ( B C ),
0 ( A) ( A 2) ( A 13) ( A 22),
1 ( E ) ( E 6) ( E 11) ( E 25).
4. Funcii criptografice fr cheie 65
FIGURA 3.4. EXEMPLE DE VECTORI DE TEST PENTRU MD5 CONFORM RFC 1321
valoare aleatoare
(pseudo-aleatoare)
Algoritm de generarea a
1k cheii MAC.Gen(1k) K
| m | *
| K | ct., e.g.,128
| MACK ( M ) | ct., e.g.,128 256
= b 0,1
valoare aleatoare
1k (pseudo-aleatoare)
IV 0
Functie Criptare Functie Criptare Functie Criptare
k Bloc k Bloc k Bloc
MACk m
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.
X i 1 aX i c mod n
ceilali parametrii sunt bine alei). Knuth ofer o analiz detaliat a acestui
generator n [55].
X i X i 12 mod n ,
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)
valoare aleatoare
(pseudo-aleatoare)
Algoritm de generarea a
PK
1k cheii PKE.Gen(1k)
SK
Uzual:
| m || PK |
PK ct. , e.g., 1024 4096 (ECC de la 160)
| EPK m | PK
PK
SK
Algoritm (functie) de
c decriptare cu cheie m DSK c
asimetrica PKE.Dec(c,SK)
valoare aleatoare
1k (pseudo-aleatoare)
PK SK
Diffie-Hellman, 1976
Rivest-Shamir-Adleman,
1978
Rabin, 1979
Williams, 1980
ElGamal, 1983
Goldwasser-Micali
(algoritmi asimetrici
non-deterministi, 1984)
Miller-Koblitz, 1985
(Diffie-Hellman si ElGamal pe
curbe eliptice)
cheia secret poate fi utilizat pentru orice alt operaie criptografic, de exemplu
pentru criptarea simetric.
1. A B : g a mod p
2. B A : g b mod p
1. A : g a mod p
2. B : g b mod p
c m1 k n m mod n , deoarece mk n m n
k
1mod n .
PK , n
SK , n
RSA.Dec P IFP
RSAGen
. PFI
1 x 1 2 1 0mod n 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
1
respectarea primei condiii numerele sunt alese aleator ca avnd fiecare log 2 n
2
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:
PK n
SK Factorizare n
Rabin.Dec PFI
PK , a mod p, p
c1 m a mod p
k
m c c1 , c2
c2 k mod p
SK a
c m c2 a c1 mod p m
ElGamal.Dec CDH
c
GM .Dec c, SK : Pentru i 1, t calculeaz simbolul Legendre i
p
c
i dac i 1 atunci mi 0 altfel mi 1 .
p
Decripteaz mesajul ca m c mod n .
GM .Dec QRP
1. A B : aP
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.
c=memodn
m=cdmodn
Criptotext tinta c1
Restrictie c1!=c2
c2=m2emodn
m2=c2dmodn
Restrictie c1!=c2
c2=c1m2emodn
m2=c2d=m1m2modn
Nici criptosistemul ElGamal nu este rezistent n faa unui atac CCA2. Din
nou, un adversar, avnd un criptotext int
c1 1 k1 mod p, 1 m1 ( a )k1 mod p poate altera a doua valoare din
criptotext prin nmulirea ei cu o valoare arbitrar i obine 2 m2 1 mod p .
Acum criptotextul nou creat c2 1 , 2 este oferit mainii de decriptare i
102 Funcii Criptografice, Fundamente Matematice i Computaionale
k1 mod p,
c2 1
2 m2 1 mod p
m2 " 2 1 a mod p
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.
pk , sk K 1k , x0 , x1 , s 1O1 pk ,
Advind,atl k 2 Pr 1
b 0,1 , y E pk xb : O2 2 x0 , x1 , s, y b
m0k1 r
m0k1 G r r H m0k1 G r
SK
m Functie de semnatura
digitala
Sig enitate m
| m | *
| SK | ct. , e.g., 1024 4096 (ECC de la 160)
| Sig A (m) || SK | ., e.g.,1024 4096
FIGURA 7.1. SCHEMA BLOC A UNEI FUNCII DE SEMNTUR DIGITAL CU ANEX.
| m || R m || Sig R m |
R x Sig x
m R(m) Sig(R(m))
Sig 1 x R 1 x
Sig(R(m)) R(m) m
m Rm
RSA.Sign m, SK : Calculeaz i s m mod n .
Returneaz s m mod n .
. s, PK : Se obine cheia public n, a entitii n cauz i
RSAVer
se calculeaz m s mod n i verific dac mesajul
aparine spaiului de redundan, returneaz 0 n
caz contrar altfel returneaz 1 i recupereaz
mesajul ca m R 1 m .
SISTEMUL 7-1. SCHEMA DE SEMNARE DIGITAL RSA CU RECUPERAREA MESAJULUI.
m
| m |
Functie hash
h(m)
Functia RSA
h(m)d mod n
Aa cum n cazul criptrii RSA era doar padding-ul OAEP cel care fcea
criptarea s fie sigur, este i cazul semnturii RSA care devine sigur doar n
momentul n care este corect folosit. Exist diverse metode prelucrare a
mesajului naintea aplicrii exponenierii folosind exponentul privat RSA, trei
dintre aceste variante sunt de mare relevan practic i totodat sigure: Full
Domain Hash (FDH), Probabilistic Standard Signature (PSS) i PKCS v.1.5.
m
| m |
Functie hash
h(m)
| h(m) | log 2 n,
e.g.,| h(m) | 4096
Functia RSA
h(m) d mod n
Cea mai sigur dintre acestea este PSS, varianta din PKCS1 discutat n
continuare este o adaptare a variantei iniiale propuse de Bellare i Rogaway, iar
cele mai simple FDH i PKCS v.1.5 dar mai puin sigure.
| m |
Functie hash
m h(m)
| EM | log 2 n,
Functia RSA
e.g.,| EM d mod n | 4096
EM d mod n
| EM d mod n | log 2 n,
e.g.,| EM d mod n | 4096
m
| m |
Functie hash
MGF
maskedDB H 0xbc
PSS aplic de dou ori o funcie hash, de dou ori padding i mai folosete
i o funcie de generare masc (MGF Mask Generation Function) aa cum este
sugerat n Figura 7.6. Funcia MGF este implementat tot pe o funcie hash.
Valoarea de salt este aleas random ceea ce face semntura s fie non-
118 Funcii Criptografice, Fundamente Matematice i Computaionale
m R 1 m m6
16
.
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
m m k i m m k 1 iar funcia de semnare RSA fiind S m m 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):
2. A B : m*
3.
B A : s * m*
mod n (practic B semneaz m * folosind RSA)
DSAGen
. 1k : Genereaz un numr prim p n intervalul 2
1023
, 21024
astfel nct p 1 s fie divizibil cu un numr prim q n
intervalul 2159 , 2160 . Alege un numr aleator g al crui
ordin n Z p este q , un numr aleator a n intervalul
0, q i calculeaz g a mod p . Cheia public este
PK p, q, g , g a iar cea privat este SK a .
. sig , m, PK :
DSAVer Se obine cheia public a entitii
PK p, q, g , g a . Verific dac 1 r q i 1 s q iar
n caz contrar respinge semntura. Calculeaz
w s1 mod q , u1 H m w mod q , u2 r w mod q ,
v g u1
y u2 mod p mod q i accept semntura dac i
numai dac v r .
SISTEMUL 7-6. SCHEMA DE SEMNARE DIGITAL DSA
Modulul p este ales astfel nct p 1 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 Z p ci un numr care are ordinul
8. Scheme de Semnare Digital 123
ECDSAGen
. 1k : Alege un numr prim p , coeficienii a i b ai unei curbe
eliptice E : y2 x3 ax b mod 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 .
. sig , m, PK :
ECDSAVer 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. w s1 mod q ,
Calculeaz
u1 H m w mod q , u2 r w mod q , v u1P u2dP 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
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
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. Pr E1 E2 0 .
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
Pr 2 Aur Pr 1 Aur 2 Aur
Bayes. Avem de calculat: Pr 2 Aur 1 Aur Pr 1 Aur
.
Desigur Pr 2 Aur 1/ 3 , Pr 1 Aur 2 Aur 1 n timp ce Pr 1 Aur 1/ 2
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 E1 i E2 prin repetarea experimentului de n ori
probabilitatea ca evenimentul E1 s fi rezultat de k ori (bineneles c E2 va
rezulta de n k fiind complementar) este Cnk Pr E1 Pr E2
k nk
.
adunare.
Remarca 8.1. Z ,
*
n formeaz un grup abelian (simbolul denot
nmulire) deoarece urmtoarele proprieti sunt satisfcute:
i) Legea este asociativ pentru c a b c a b c mod n .
astfel nct c.m.m.d .c. ni , n j 1, i j,0 i k ,0 j k . Atunci urmtorul
sistem de congruene are o soluie unic x n Zn unde n n1n2 ...nk :
x a1 mod n1
x a mod n
2 2
......
x ak mod nk
Mai mult, soluia acestui sistem poate fi calculat, folosind algoritmul lui
k
n
Gauss, ca fiind x a N M
i 1
i i i mod n unde N i
ni
iar M i Ni 1 mod ni .
x c1 mod n1
x c2 mod n2
x c mod n
3 3
8. Fundamente matematice 133
la m respectiv n care pot fi dedui n acest fel prin Teorema Chinez a Resturilor
este chiar m n .
ei 1 1
ei
r r r r
n pi pi pi 1 n 1 .
ei
i1 i1 i 1 pi i 1 pi
Teorema 8.6. (Mica Teorem a lui Fermat). Fie p un numr prim i a un
ntreg astfel nct c.m.m.d .c. a, p 1 atunci a p1 1mod p .
f x x iar g x x x n
deci
xZ n* xZ n* xZ n* xZ n* xZ n*
xZ n* xZ n*
p sau 0 .
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
f x 0 mod p 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 x a 0 mod 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
y a2 b2 mod p
1
xy a2 mod p b2 y a2 mod p de unde avem
x ' y ' a4 z ' a2 mod p x ' y ' z '1 a 1 mod p . Este uor de observat c dac
2
2
non-reziduu trebuie s dea tot un non-reziduu, dar a 1 este reziduu cvadratic
deci presupunerea fcut este fals.
Toate aceste demonstraii pot fi fcute direct cu ajutorul simbolului
Legendre introdus n paragraful urmtor, lsm aceasta ca exerciiu cititorului.
Considerm de asemenea relevante i interesante demonstraiile din [86, p. 18].
Lema 8.2. (pentru Z *p ): dac p este un numr prim atunci exact jumtate
din elementele din Z p sunt reziduuri cvadratice i jumtate nu sunt reziduuri
p 1
cvadratice Q p Q p . Mai mult fiecare reziduu cvadratic din Z p are exact
2
dou rdcini ptrate.
Demonstraia acestei leme se poate face dup cum urmeaz: din moment
ce p este un numr prim nseamn c Z p are generatori. Fie Z *p un
generator din Z p , atunci toate elementele din Z p pot fi scrise sub forma
a x mod p,1 x p 1 iar n cazul n care x este par (n exact jumtate din
cazuri) numerele sunt reziduuri cvadratice. De asemenea numerele a x mod p
pentru x impar nu pot fi reziduuri cvadratice i rezultatul este uor de
demonstrat pentru c dac presupunem c a este reziduu cvadratic i
a x mod p pentru un x impar, deci b astfel nct a b2 mod p urmeaz c
y astfel nct b y mod p a b2 2 y mod p deci a este o putere par a
generatorului ceea ce este o contradicie cu ipoteza. Demonstraia faptului c
fiecare reziduu cvadratic are exact dou rdcini este o consecin imediat a
teoremei 8.12 i rmne ca exerciiu cititorului.
p e1 p 1
numrul de reziduuri cvadratice din Z *pe este . Mai mult dac x este
2
rdcina ptratic a lui a modulo p e la fel este i x i orice alt rdcin y a lui
140 Funcii Criptografice, Fundamente Matematice i Computaionale
pe1 p 1
a satisface y x mod p . Mai mult a 0 mod p avem a 2
1mod p i
p e1
p 1
a Qp a 2
1mod pe .
Demonstraie: Demonstraia se poate face n manier similar cu cea
anterioar deoarece i Z *pe are generatori de ordin p e p e p e1 i rezultatul
teoremei decurge imediat. Din nou, demonstrarea teoremei rmne ca potenial
exerciiu pentru cititor.
n
Qn r
. Mai mult dac a Qn atunci a are exact 2 r rdcini distincte.
2
Demonstraie: am stabilit prin Lema 8.3 numrul de reziduuri cvadratice
r
din Z *pe . Din moment ce factorizarea lui n este n piei i
i 1
x
Definiia 8.14. Definim simbolul Legendre pentru un ntreg x i un
p
1 x Qp
x
numr prim p dup cum urmeaz: 1 x Q p .
p 0 p| x
Remarca 8.3. Urmtoarele proprieti pot fi deduse direct din definiie
(nu se insist asupra demonstraiei):
xy x y
i) x, y, p i p prim
p p p
x2
ii) 1 x, p i p prim
p
x y
iii) x y mod p x, y, p i p prim
p p
Lema 8.5. (Euler): Fie p un numr prim i x Z *p atunci x Q p dac i
p 1
numai dac x 2
1mod p respectiv x Qp dac i numai dac
p 1
x 2
1 mod p .
Demonstraie: Conform teoremei introduse n capitolul referitor la
p 1
p 1
congruene polinomiale ecuaia x 2
1mod p are cel mult 2
soluii, pe de alt
parte toate reziduurile cvadratice verific aceast proprietate deoarece dac
p 1
p 1
x Qn y atunci x y mod n x 2 2
y
1mod n conform teoremei
2 2
p 1
lui Fermat. Din moment ce numrul de reziduuri cvadratice Qn urmeaz
2
142 Funcii Criptografice, Fundamente Matematice i Computaionale
1 p 1
Corolarul 8.2. 1 2 1 Q p dac p 1 mod 4 respectiv
p
1 Q p dac p 3 mod 4 .
2 p 2 1
Corolarul 8.3. 1 8 m o dp 2 Q p dac p 1 mod 8 sau
p
p 7 mod 8 respectiv 2 Q p dac p 3 mod 8 sau p 5 mod 8 .
p p 1q 1 q
q 239 , conform legii reciprocitii cvadratice avem 1 4
q p
111 2391 239mod11 22 2
11 8 2
1 4
i
239 11 11 11 11 11
2 11 1
11
2
cum 1 8 1 1.
11 239
Simbolurile Jacobi sunt o generalizare a simbolurilor Legendre pentru
cazul ntregilor compozii.
Definiia 8.15. (Simbolul Jacobi): Pentru un ntreg impar n 3 a crui
r
factorizare este n piei i un numr a definim simbolul Jacobi
i 1
e1 e2 er
a a a a
... (se remarc faptul c simbolul Jacobi este identic cu
n p1 p2 pr
Simbolul Legendre pentru numere prime).
Remarca 8.4. Urmtoarele proprieti reies direct din definiie (nu se
insist asupra demonstraiei):
x
i) c.m.m.d .c. x, n 1 0
n
x
ii) n 0 c.m.m.d .c. x, n 1
x y
iii) Dac x y mod n
n n
xy x y x x x
iv) i
n n n st s t
x2
1 i 2 1
x
v)
n n
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
1 s 1
Lema 8.6. 1 2 pentru orice s impar.
s
2 s 2 1
Lema 8.7. 1 8 pentru orice s impar.
s
Teorema 8.16. (Reciprocitatea cvadratic pentru simboluri Jacobi)
s t s 1t 1 s t
1 4 i n consecin dac s 1 mod 4 i t 1 mod 4
t s t s
s t
respectiv dac s 3 mod 4 i t 3 mod 4 .
t s
Pentru demonstraia acestei teoreme trimitem ctre [86, p. 24], [2, p.
189].
a
Definiia 8.16. Pentru orice ntreg n 3 definim J n a Z n* | 1 .
n
Mulimea pseudo-reziduurilor cvadratice Z *
n o vom nota cu Qn i este
Qn J n Qn .
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
DK1 EK2 EK1 m EK2 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)
E A m1 , E A m2
iii. Bob alege un mesaj la ntmplare i l cripteaz cu cheia sa public
apoi l trimite lui Alice EB E A mx .
i) ii)
O 1
Co Co
mp f Rabin x x 2 mod n mp
any any
x
11/12/2007
Na f(x)
11/12/2007
Na
me me
f 1Rabin x 2 x mod n
3
O log 2 n
2
FIGURA 9.1. CALCULUL DIN CRIPTOSISTEMUL RABIN PENTRU UN UTILIZATOR
LEGITIM.
O 1
Co Co
mp f Rabin x x 2 mod n mp
any any
x
11/12/2007
Na
me
f(x)
11/12/2007
Na
me
f 1Rabin x 2 x mod n
O e
c o1 3 ln n 3 ln ln n
2
FIGURA 9.2. CALCULUL DIN CRIPTOSISTEMUL RABIN PENTRU UN UTILIZATOR
NELEGITIM (ADVERSAR).
150 Funcii Criptografice, Fundamente Matematice i Computaionale
O n! , dublu exponenial O 2c .
n
ii) f n g n f n Og n f n g n
iii) f n Ohn g n Ohn f g n Ohn
iv) f n Ohn g n Oin f g n Ohn in
v) f n O f n reflexivit ate
vi) f n Og n g n Ohn f n Ohn tranzitivitate
Reinem de asemenea urmtoarele aproximri utile:
i) f n ak n k ak 1 n k 1 ... a1 n a0 f n n k
ii)
n! o nn n! 2n
1 ln ln n ln n e n nc nln n cn nn cc
n
(ln n)(lnln n)
iii)
Pentru a ilustra importana cunoaterii complexitii prezentm
urmtorul tabel al unor magnitudini uzuale i de asemenea vom considera 4
algoritmi A1 , A2 , A3 , A4 avnd complexitile On , O n 2 , O n 3 , O 2 n
10
precum i un sistem capabil s execute 10 operaii/secund, n scopul unei
comparaii vom evalua timpul necesar rezolvrii algoritmilor pentru n 10 6 .
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 A1 i A2 care au complexitate
polinomial, chiar dac A2 devine subrutin a lui A1 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 se
reduce n timp polinomial la 2 i notm 1 P 2 dac exist un algoritm A1
care rezolv 1 i primete ca subrutin un algoritm A2 care rezolv 2 iar
complexitatea lui A1 este polinomial dac complexitatea lui A2 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
Secunde ntr-un an 3 10 7
Vrsta sistemului solar n secunde 2 1017
Electroni n univers 8.37 10 77
Chei pe 256 bii 1.2 10 77
Chei pe 1024 bii 1.8 10 308
Timpul pentru a rezolva A1 110 3
Timpul pentru a rezolva A2 1 10 2
Timpul pentru a rezolva A3 1 10 8
1. Seteaz i k .
2. Atta timp ct xi yi i i 1 calculeaz i i 1 .
1. Seteaz c 0 .
2. Pentru i 1, k :
zi xi yi c mod b ,
c xi yi c divb ,
3. zk 1 c .
4. Returneaz z zk 1 zk ...z1 b .
IEIRE: z x y .
1. Seteaz c 0 .
2. Pentru i 1, k :
zi xi yi c mod b ,
3. Returneaz z zk zk 1...z1 b
IEIRE: z x y .
ALGORITMUL 9-3. SCDEREA A DOI NTREGI
158 Funcii Criptografice, Fundamente Matematice i Computaionale
1. Seteaz c 0 .
2. Seteaz z zk l zk l 1...z1 b 0 .
3. Pentru i 1, k :
Pentru j 1, l :
zi j zi j xi y j c mod b ,
c zi j xi y j c divb ,
zi l zi j xi y j c divb ,
4. Returneaz z .
IEIRE: z xy .
ALGORITMUL 9-4. NMULIREA A DOI NTREGI
10. Fundamente computaionale 159
1. Seteaz r x .
2. Pentru i k l 1 pn la 0 :
qi r bi y ,
r r bi qi y .
3. Returneaz q, r
IEIRE: q, r astfel nct x yq r .
3
vi) Ridicarea la putere presupune O log 2 e multiplicri
2
(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,
160 Funcii Criptografice, Fundamente Matematice i Computaionale
4. Seteaz aux x , y 1
5. Pentru i 1, l :
aux aux 2 ,
6. Returneaz y
IEIRE: y xe .
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.
x y mod n x n y mod n .
10. Fundamente computaionale 161
3. Returneaz a
1. 97 5 17 12
2. 17 112 5
3. 12 2 5 2
4. 5 2 2 1
5 2 2 1 5 2 12 2 5 1 5 5 2 12 1 5 17 112 2 12 1
5 17 7 12 1 5 17 7 97 5 17 1 40 17 7 97 1
INTRARE: ntregul x , exponentul cu c.m.m.d .c. , n 1 i
modulul n a crui factorizare este cunoscut.
3. Calculeaz y x mod n .
4. Returneaz y .
Pentru calculul rdcinilor ptrate vom distinge trei cazuri dup cum
calculul se desfoar n Z p , Z pl sau Z n unde p este un numr prim iar n un
compozit.
Pentru cazul Z p distingem primul caz ca fiind p 3 mod 4 , caz n care se
p 1
observ c dac x Q p i x y mod p atunci y x
2 4
mod p . Deci urmtorul
algoritm poate fi utilizat dac p 3 mod 4 :
10. Fundamente computaionale 165
Pe de alt parte, cel de-al doilea caz este cnd p 1 mod 4 i algoritmul
anterior nu mai poate fi aplicat (intuitiv se poate observa c
p 1 1 4k 1 22k 1
nu este un numr ntreg). Pentru acest caz nu se
4 4 4
cunosc algoritmi determiniti pentru calculul rdcinilor10 i problema gsirii
unui algoritm determinist a crui complexitate depinde doar de n rmne o
problem deschis n criptografie. Exist algoritmi non-determiniti eficieni i
simplu de neles care folosesc ca intrare adiional un non-reziduu cvadratic din
Z *p pentru acest caz, i.e. p 1 mod 4 , recomandm pentru expunerea concis [4,
p. 32] i evitm a prezenta un algoritm n ideea c n criptografie n general se
folosesc preponderent ntregi de tipul p 3 mod 4 pentru care exist relaia
direct de extragere a rdcinii ptrate.
Pentru cazul Z p e se folosete procedeul numit Hensell Lifting, se poate
consulta pentru detalii [77, p. 288].
Pentru cazul Z n unde n este un ntreg compozit calculul reziduurilor
cvadratice este posibil doar dac se cunoate factorizarea ntregului n , altfel spus
este adevrat c problema factorizrii unui ntreg n se reduce n timp polinomial
la problema calculului rdcinilor ptrate n Z n i invers. Deci problemele sunt
echivalente din punct de vedere computaional. Dac factorizarea lui n este
10n lucrarea [5, p. 32] se face referire ctre un algoritm determinist care are o
complexitate ce depinde de valoarea lui n i a lui a .
166 Funcii Criptografice, Fundamente Matematice i Computaionale
x
ii) Dac simbolul Jacobi 1 atunci
n
n p q 5
x, x Qn
x 4
mod n .
n x, x Qn
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:
2e
4. Calculeaz s (se poate utiliza relaia 9.30 dar deoarece
n
aceasta presupune o exponeniere se prefer urmtorul calcul care este
echivalent: dac e este par atunci s 1, dac n 1 mod 8 atunci s 1 ,
dac e este impar i n 3 mod 8 atunci s 1 .
5. Dac n 3 mod 4 i a1 3 mod 4 atunci s s (conform legii
reciprocitii cvadratice).
6. Calculeaz n1 n moda1 .
a
OUTPUT: simbolul Jacobi .
n
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
Algoritmi generali
Algoritmi dedicati
Random Square
Factoring Methods
(RSFM)
Quadratic Sieve
Cautare exhaustiva, Pollard p-1, Pollar rho, Factoring, Number
Euclid, Fermat etc. Curbe eliptice etc. Field Sieve etc.
Test de Primalitate
qi B
mai mici dect B . Dac un numr p este un factor al lui n i toi divizori lui
p 1 sunt mai mici dect B atunci c.m.m.d .c. xQ 1, 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:
n 13 17
17 1 este 2 neted
logq n
Q q 2log2 221 128
q2
cmmdc x128 1, n 17 x relativ primla17
recurent vor ncepe la un moment s descrie un ciclu iar dac se gsesc dou
elemente xi x j , i j , deci o coliziune, putem obine factorizarea lui n dac,
similar cu cazul metodei
Fermat, putem scrie o relaie de forma
a b mod n a b a b kn i deci aa cum s-a observat i anterior
2 2
Exemplu:
n 13 17 221 , f x x 2 1, xi f xi 1
bi ai mod n
2
-
t
bi p jij - ceea ce nseamn conform definiiilor introduse anterior
e
-
j 1
c bi 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 bi astfel nct n
produsul tuturor elementelor bi din mulimea T exponenii numerelor prime pi
sa fie numere pare. Pentru simplificarea problemei fiecrui element bi i se
asociaz un vector ei ei1 , ei 2 , ei 3 ,..., eit care conine exponenii tuturor
numerelor prime din factorizarea sa:
Fiecare vector este pus n coresponden cu un vector binar ei ' care reine
doar paritatea elementelor din ei :
e1 e11 , e12 ,..., e1t e1 ' e11 mod 2, e12 mod 2,..., e1t mod 2
e2 e21 , e22 ,..., e2t e2 ' e21 mod 2, e22 mod 2,..., e2t mod 2
... ...
et et1 , et 2 ,..., ett et ' et1 mod 2, et 2 mod 2,..., ett mod 2
Ceea ce trebuie aflat pentru rezolvarea problemei este dac sistemul format
de vectori ei ' 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
t
caz factorizarea este gsit deoarece n mod evident bi x 2 ai2 i astfel
bi T i 1
Exemplu:
n 13 17 221
S 2,3,5,7
58 2 mod 221 49 7 2 e1 (0,0,0,0)
56 2 mod 221 42 2 3 7 e2 (1,1,0,1)
19 2 mod 221 140 2 2 5 7 e3 (0,0,1,1)
35 2 mod 221 120 23 3 5 e4 (1,1,1,0)
45 2 mod 221 36 2 2 32 e5 (0,0,0,0)
Seobservacae2 e3 e4 0 mod 2
56 19 35 2 6 32 52 7 2 mod 221
2
56 19 35 23 3 5 7 56 19 35 23 3 5 7 k n
cmmdc 56 19 35 23 3 5 7, n 13, cmmdc 56 19 35 23 3 5 7, n 17
178 Funcii Criptografice, Fundamente Matematice i Computaionale
i
pentru i 1, k valoarea lui k x
mod p i se verific dac aceast
valoare se afl n tabel. n caz afirmativ valorile lui i i j au fost determinate i
deci x poate fi calculat. n mod evident algoritmul are nevoie de cel mult O k
pai, fiecare pas constnd ntr-o multiplicare i o cutare iar cutarea are timp
logaritmic deci poate fi neglijat. Problema este faptul c algoritmul utilizeaz
O k memorie aceasta fiind limitarea major a sa. Pentru a elimina
necesitile de memorie se poate utiliza algoritmul Pollar-rho.
10. Fundamente computaionale 179
INTRARE: 1k
1. Genereaz k bii aleatori bk bk 1...b1 .
1. Pentru i 1, t
calculeaz x a p1 mod p ,
dac x 1 returneaz 0.
2. Returneaz 1.
IEIRE: dac x este prim 1 altfel 0.
Dac algoritmul returneaz 0 este foarte clar c numrul nu este prim, dar
dac returneaz 1 atunci nu se poate tii sigur ci doar cu o probabilitate care
depinde de numrul t . Exist ns suficient de multe numere a pentru care
a p1 1mod p chiar dac p nu este prim aceste numere poart numele de
Fermat liar. Pentru a crete probabilitatea de succes a testului de primalitate
poate fi utilizat i criteriul lui Euler pentru calculul simbolului Legendre din Lema
10. Fundamente computaionale 181
p 1
x
8.5 folosind relaia x 2 . Testul construit pe acest principiu este cunoscut
p
sub numele de Soloway-Strassen i are urmtoarea descriere:
3. Pentru i 1, t :
x
Calculeaz y folosind algoritmul pentru
p
simboluri Jacobi din 10.6.
Dac x y returneaz 0.
4. Returneaz 1.
IEIRE: dac x este prim 1 altfel 0.
1. Seteaz aux P , y 1
2. Pentru i l ,1 :
3. Returneaz aux
IEIRE: kP .
[17] R.P. Brent, (1990), Primality Testing and Integer Factorization, The
Australian National University TR-CS-90-03.
[19] E. Byres, J. Lowe, (2004), The Myths and Facts behind Cyber Security Risks
for Industrial Control Systems. VDE Congress04.
[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.
[31] D. Dzung, M. Naedele, T.P. Hoff, M. Crevatin, (2005), Security for Industrial
Communication Systems, Proceedings of the IEEE, vol. 93, no. 6.
[33] T. ElGamal, (1985), A public key cryptosystem and a signature scheme based
on discrete logarithms, IEEE Transactions on Information Theory.
[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.
[41] M.R. Garey, D.S. Johnson, (1979), Computers and Intractability A Guide to
the Theory of NP-Completness, Bell Telephone Laboratories.
[49] G.H. Hardy, E.M. Wright, (1975), An Introduction to the Theory of Numbers,
Oxford University Press, 456 pagini, ISBN 0198531710.
[58] E. Landquist, (2002), The Number Field Sieve Algorithm, MATH 420:
Computer Algebra Systems,
http://www.math.uiuc.edu/~landquis/nfsieve.pdf .
[60] W. Mao, (2003), Modern Cryptography: Theory and Practice, Prentice Hall
PTR, 740 pagini, ISBN 0130669431.
188 Funcii Criptografice, Fundamente Matematice i Computaionale
[62] A.J. Menezes, P.C. Oorschot, S.A. Vanstone, (1996), Handbook of Applied
Cryptography, CRC Press, 816 pagini, ISBN 0849385237.
[66] H. Riesel, (1994), Prime Numbers and Computer Methods for Factorization,
Birkhuser Boston; 2nd ed. edition, 494 pagini, ISBN 0817637435.
[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.
[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.
[79] V. Shoup, (2001), A proposal for an ISO standard for public key encryption,
Input for Committee.
[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.
ct. - constant
|m| - lungimea n bii a unui mesaj (sau a altui obiect dup caz)
x
- simbolul Jacobi, x i n sunt ntregi oarecare.
n
v k - funcie (cantitate) neglijabil.
NM - non-maleabilitate (Non-malleability).
13 Din lucrarea Random oracles are practical: A paradigm to design efficient protocols.
194 Funcii Criptografice, Fundamente Matematice i Computaionale
Co Usor de calculat Co
(complexitate polinomiala)
mp mp
any any
x
10/29/2007
Na f(x)
10/29/2007
Na
me
me
Greu de calculat
(complexitate exponentiala)
construi uor funcia f ' x f x0 || f x1 || ... || f xd 1 , 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 xi , i 0, d 1 (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 F fi fi : D fi C fi
unde i I iar I este o mulime de indici. Spunem despre F c este o colecie de
funcii cu trap one-way dac:
public. n cele ce urmeaz vom nota cu Z n* mulimea numerelor din Zn care sunt
prime raportate la n adic Zn* x Z n | cmmdc x, n 1 .
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:
1
f RSA 1
: Z n* Z n* , f RSA x x mod n, 1 mod n
Din nou n pq este un ntreg produs a exact dou numere prime. Prin
Qn se noteaz mulimea ptratelor perfecte din Z n* , i.e.
Qn x Z n* y Z n* , x y 2 mod n . De subliniat faptul c funcia Rabin nu este
un caz particular al funciei RSA deoarece funcia RSA impune ca
c.m.m.d .c. , n 1 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 Z n* 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 p 3mod 4, q 3mod 4 funcia Rabin definit pe Qn
devine o permutare one-way cu trap.
n acest caz funcia are i o inversa care poate fi definit dup cum
urmeaz:
200 Funcii Criptografice, Fundamente Matematice i Computaionale
n p q5
f 1
Rabin Williams : Qn Qn , f 1
RabinWilliams x x 8
mod n
f Samoa : Z *pq N R n , N R n x Z n* y Z n* , x y n mod n
f Samoa x x n mod n