Documente Academic
Documente Profesional
Documente Cultură
Intro CripTo
Intro CripTo
Bogdan Groza
Prefa
Prezenta lucrare, extinde lucrarea autorului publicat n 2007 sub titlul
Introducere n criptografia cu cheie public1. Aceast extensie, care refolosete o
bun parte din textul anterior era necesar din dou motive: pe de o parte textul
anterior cerea mbuntiri i actualizri, pe de alt parte o carte dedicat strict
criptografiei cu cheie public adresa o ni pentru care era greu de gsit o
audien potrivit (cel puin n cadrul universitii n care autorul i desfoar
activitatea didactic).
Astfel, prezenta lucrare completeaz lucrarea anterioar cu detalii
privitoare la criptografia cu cheie simetric, funcii hash, coduri de autentificare,
noiuni de baz despre curbe eliptice, etc., oferind o imagine mult mai complet
asupra criptografiei. Nu n ultimul rnd, prezenta carte este vzut de autor ca
fiind prima dintr-o serie de trei volume ce formeaz un compendiu de criptografie
i securitatea informaiei. Volumul 1 este dedicat funciilor criptografice i
fundamentelor matematice i computaionale, n timp ce volumul 2 va fi dedicat
protocoalelor criptografice i aplicaiilor practice iar volumul 3 unor concepte
avansate n criptografie. Orizontul de timp n care se dorete publicarea celorlalte
dou volume este 5-10 ani.
Trecnd mai bine de trei decenii de la intrarea criptografiei n domeniul
academic, exist multe cri de referin ale domeniului i desigur ne putem
ntreba de ce este util nc o carte, aceasta. n contextul actual nu pare fezabil a
preda criptografie dup niciuna din crile mari ale domeniului, n special la
nivelul studiilor de licen. Poate acest lucru ar deveni fezabil n civa ani, sau
poate este parial fezabil i acum la ciclul master, dar din punctul de vedere al
autorului este necesar mult mai mult seriozitate din partea studenilor care
particip. Altfel riscm a preda criptografie doar pentru 5% din audien. Mijloace
moderne de predare (computerul i proiectorul) fac flexibil predarea i ne ofer
posibilitatea de a modela o program de studii dup cum dorim. Dar foliile de curs
n format de proiectare conin doar informaie fragmentar, incomplet, punnd
studentul la a rezolva un puzzle prin citirea lor. Desigur poate fi un puzzle mai
greu sau mai simplu n funcie de priceperea autorului, la fel i cartea, dar n orice
caz cartea ofer informaii mai fluente, mai uor de interpretat i este n general
un instrument de nvare mai bun.
3
Nu n ultimul rnd, o carte ofer viziunea personal a autorului asupra
domeniului i poate chiar modul n care autorul l-a nvat. Cu riscul de a nu fi cea
mai bun cale, n lipsa unui criteriu pentru aceasta, trebuie s ne asumm puterea
de a spune ce avem de spus.
Existena unor cri n limba romn, ntr-un moment n care limba
tiinei la nivel mondial este engleza, nu poate fi justificat prin prisma noiunii de
cultur tiinific naional, deoarece tiina nu are o naie, ea este n cele din
urm a tuturor (matematica nu difer ntre continente). Dar, existena unor cri
n limba naional, devine peste ani dovada incontestabil a existenei unui
nvmnt naional de tradiie n acel domeniu. Pentru a conserva partea pozitiv
din identitatea nvmntului romnesc, este bine s avem i cri de studiu n
limba romn.
Timioara, 2012
Cuprins
INTRODUCERE ............................................................................................................................. 9
1.1
1.2
EXTERNE
1.3
SECURITATE) ........................................................................................................................................................ 13
1.4
1.5
1.6
1.7
1.8
1.9
1.10
1.11
1.12
1.13
1.14
1.15
2.2
2.3
2.4
2.5
REEAUA FEISTEL.............................................................................................................................. 46
2.6
2.7
3DES ................................................................................................................................................... 51
2.8
2.9
2.10
3.2
3.3
4.2
5.2
5.3
5.4
6.2
6.3
6.4
6.5
6.6
6.7
6.8
6.9
6.10
6.11
6.12
6.13
6.14
VARIANTE CONTEMPORANE ALE CRIPTOSISTEMOR CLASICE DE CRIPTARE CU CHEIE PUBLIC
(REZISTENA IND/NM-CCA2) .....................................................................................................................102
6.15
6.16
7.2
7.3
VARIANTE SIGURE N PRACTIC PENTRU SEMNTUR RSA: FDH, PSS, PKCS V.1.5 ........115
7.4
7.5
7.6
7.7
7.8
7.9
8.2
7
8.3
8.3.1
8.3.2
8.3.3
8.3.4
8.3.5
8.3.6
8.3.7
8.3.8
8.3.9
8.3.10
9
9.2
9.3
9.4
9.5
9.6
9.7
9.8
9.9
9.9.1
9.9.2
9.9.3
9.10
9.11
9.12
10
BIBLIOGRAFIE .........................................................................................................................183
11
ANEXE ........................................................................................................................................191
1 INTRODUCERE
10
1. Introducere
11
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.).
12
i)
ii)
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
14
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.
1. Introducere
15
16
1. Introducere
17
18
1. Introducere
19
20
1. Introducere
21
ASDF
ASDF
ASDF
ASDF
ASDF
ASDF
ASDF
ASDF
ASDF
INTERCEPTAREA CONVERSATIILOR
*-+#
*-+#
*-+#
ASDF
ASDF
ASDF
ASDF
ASDF
ASDF
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
ASDF
ASDF
ASDF
ASDF
ASDF
ASDF
QWER
QWER
QWER
MODIFICAREA
ASDF
ASDF
ASDF
ASDF
ASDF
ASDF
Adv
A
B
IMPOSTURA
ASDF
ASDF
ASDF
ASDF
ASDF
ASDF
ASDF
ASDF
ASDF
ASDF
ASDF
ASDF
ASDF
ASDF
ASDF
RETRANSMISIA
ASDF
ASDF
ASDF
ASDF
ASDF
ASDF
Adv
1. Introducere
23
24
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.
h@6k
...
asdf
asdf
asdf
asdf
...
ALGORITM DE CRIPTARE
*/A,
@4h
0gQ1
i7R1
...
ALGORITM DE DECRIPTARE
asdf
asdf
asdf
asdf
...
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).
26
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.
Securitate
la nivel de
bii
RSA
AES
(dimensiunea (dimensiunea
cheii)
modulului)
Curbe
eliptice
(valoarea
ordinului
bazei)
Durata de
utilizare
recomandat
80
1024
160-223
Pn n 2010
112
2048
224-255
Pn n 2030
128
128
3072
256-383
Dup 2030
192
192
7680
384-511
256
256
15360
512+
1. Introducere
27
RSA-576
RSA-640
RSA-704
RSA-768
10.000$
20.000$
(factorizat n
decembrie 2003)
(factorizat n
noiembrie 2005)
30.000$
50.000$
RSA-896
RSA-1024
RSA-1536
RSA-2048
75.000$
100.000$
150.000$
200.000$
TABELUL 1.2. RECOMPENSE (EXPIRATE) PENTRU SPARGEREA UNOR CHEI RSA [71].
28
1. Introducere
29
iv) Cifrul (mesajul criptat) trebuie s fie uor de transmis prin telegraf.
v)
(i)
(ii)
30
(i)
(ii)
FIGURA 1.9. MAINI CRIPTOGRAFICE: (I) IERI (MAINA ENIGMA) I (II) AZI (SMARTCARD)
1. Introducere
31
32
pk
pub!1c
...
asdf
asdf
asdf
asdf
...
ALGORITM DE CRIPTARE
*/A,
@4h
0gQ1
i7R1
...
ALGORITM DE DECRIPTARE
sk
asdf
asdf
asdf
asdf
...
pr1v@t3
...
1. Introducere
33
34
1. Introducere
35
Valoare aleatoare
Mesaj
101
010
101
Cheie de criptare
Cheie de decriptare
Criptotext
110
100
111
Algoritm de criptare
Algoritm de decriptare
36
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.
Functii (algoritmi)
fara cheie
Generatoare de
numere aleatoare
Functii hash
criptografice
Sisteme (scheme) cu
cheie simetrica
Scheme de criptare
cu cheie simetrica
(Criptarea cu cheie
secreta)
Coduri de
autentificare a
mesajelor (MAC)
Sisteme (scheme) cu
cheie asimetrica
Scheme de
criptare cu cheie
asimetrica
(Criptarea cu cheie
publica)
Scheme de
semnare digitala
1. Introducere
37
38
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
2.1
DEFINIIE I PROPRIETI
41
| m | *
| K | ct. , e.g., 128
| EK (m) || m |
m
c EK m
Algoritm (functie) de
decriptare cu cheie secreta
Sym.Dec(c,K)
m EK 1 c
42
1k
valoare aleatoare
(pseudo-aleatoare)
k
Algoritm (functie) de criptare
cu cheie simetrica (secreta)
c Ek m
m
Algoritm (functie) de decriptare
cu cheie simetrica (secreta)
.
Dou proprieti sunt esenial de subliniat n cazul schemelor simetrice:
i)
ii)
decriptrii. Aceast proprietate poart numele de non-maleabilitate (nonmaleability). 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
c EK 0 i c EK 1 , fr cunoaterea cheii K un adversar nu poate spune
43
2.2
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
simplu XOR cu cheia curent) iar generarea cheii curente este mai intens
computaional.
2.3
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
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
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:
263
26!
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
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.).
2.5
REEAUA FEISTEL
47
criptotext
K0
Kl-1
K1
Kl-2
etc.
etc.
Kl-1
K0
criptotext
mesaj
2.6
CRIPTOSISTEMUL DES
48
62
64
IP
57
59
61
63
32
4
12
E
16
20
24
28
50
52
54
56
49
51
53
55
42
44
46
48
41
43
45
47
34
36
38
40
33
35
37
39
26
28
30
32
25
27
29
31
18
20
22
24
17
19
21
23
10
12
14
16
9
11
13
15
2
40
39
4
38
6
8 1 37
IP
36
1
3
35
34
5
7
33
1 2 3 4 5
5 6 7 8 9
14 4 13
9 10 11 12 13
13 14 15 16 17 S 0 15 7
1
4 1 14
17 18 19 20 21
15 12 8
21 22 23 24 25
25 26 27 28 29
29 30 31 32 1
16 7 20 21
29 12 28 17
1 15 23 26
5 18 31 10
P
2 8 24 14
32 27 3 9
19 13 30 6
22 11 4 25
49
1 2
4 14
8 13
2 4
8
7
6
5
4
3
2
1
25
34
43
52
17 9
26 18
35 27
44 36
63 55 47 39
7 62 54 46
PC1''
14 6 61 53
21 13 5 28
31
38
45
20
23 15
30 22
37 29
12 4
16
15
14
13
12
11
10
9
56
55
54
53
52
51
50
49
24
23
22
21
20
19
18
17
64
63
62
61
60
59
58
57
32
31
30
29
28
27
26
25
15 11 8 3 10 6 12 5 9 0 7
2 13 1 10 6 12 11 9 5 3 8
6 2 11 15 12 9 7 3 10 5 0
9 1 7 5 11 3 14 10 0 6 13
15 1 8 14 6
3 13 4 7 15
S2
0 14 7 11 10
13 8 10 1 3
57 49 41 33
1 58 50 42
PC1'
10 2 59 51
19 11 3 60
48
47
46
45
44
43
42
41
11 3 4 9
2 8 14 12
4 13 1 5
15 4 2 11
14 17
3 28
23 19
16 7
PC 2
41 52
30 40
44 49
46 42
7 2 13 12
0 1 10 6
8 12 6 9
6 7 12 0
11
15
12
27
31
51
39
50
0 5 10
9 11 5
3 2 15
5 14 9
24 1 5
6 21 10
4 26 8
20 13 2
37 47 55
45 33 48
56 34 53
36 29 32
50
RX (32 BITI)
mesaj
PERMUTARE INITIALA
L0
48 BITI
KX (48 BITI)
R0
F
S1
K1
L1
S2
S3
S4
S5
S6
S7
S8
R1
P
F
32 BITI
K2
ii)
L2
mesaj
R2
etc.
PERMUTARE 1
F
K16
R16
C0
D0
LEFT SHIFT
LEFT SHIFT
C1
D1
PERMUTARE 2
L16
K1
etc.
PERMUTARE INITIALA INVERSA
criptotext
LEFT SHIFT
LEFT SHIFT
C16
D16
PERMUTARE 2
i)
K16
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.7
51
3DES
c EK 3 DK 2 EK 1 m ,
m DK 1 EK 2 DK 3 c
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:
-
52
AES_Encrypt_Round(State, Key)
AES_Decrypt_Round(State, Key)
{
SubBytes(State) ;
ShiftRows(State);
MixColumns(State);
AddRoundKey(State, Key);
AddRoundKey-1(State, Key);
MixColumns-1 (State);
ShiftRows-1 (State);
SubBytes-1 (State) ;
}
53
2.9
54
m0
k
Functie Criptare
Bloc
c0
m 1
Functie Criptare
Bloc
Functie Criptare
Bloc
c 1
c1
c0
k
Functie
Decriptare Bloc
m0
c 1
c1
Functie
Decriptare Bloc
Functie
Decriptare Bloc
m 1
55
m0
m 1
IV
k
Functie Criptare
Bloc
c0
Functie Criptare
Bloc
c1
Functie Criptare
Bloc
c 1
56
c0
k
c 1
c1
Functie
Decriptare Bloc
Functie
Decriptare Bloc
Functie
Deriptare Bloc
IV
m0
m1
m 1
IV
k
Functie Criptare
Bloc
k
m
m0
Functie Criptare
Bloc
Functie Criptare
Bloc
m 1
c1
c0
c 1
IV
k
Functie Criptare
Bloc
k
m
m0
c0
Functie Criptare
Bloc
Functie Criptare
Bloc
m 1
c1
c 1
57
m0
m 1
IV
k
Functie Criptare
Bloc
Functie Criptare
Bloc
c0
Functie Criptare
Bloc
c 1
c1
c0
k
c 1
c1
Functie
Decriptare Bloc
Functie
Decriptare Bloc
Functie
Decriptare Bloc
IV
m
m0
m 1
salt
salt
counter
Functie Criptare
Bloc
k
m
m0
c0
counter 1
salt
Functie Criptare
Bloc
counter
Functie Criptare
Bloc
m 1
c1
c 1
58
ii)
59
iii)
iv)
3.1
DEFINIIE I PROPRIETI
| m | *
| H (m) | ct. , e.g., 128 256
Functie Hash
H m
61
3.2
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
IV
Functie de
compresie
Bloc mesaj 2
Functie de
compresie
Bloc mesaj n
Functie de
compresie
H(m)
A= 0x67452301,
B= 0xefcdab89,
C= 0x98badcfe,
D= 0x10325476.
Funcia de rund are la baz una din cele 4 funcii definite dup cum
urmeaz:
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
Runda 1 (16 x)
Runda 2 (16 x)
Runda 3 (16 x)
Runda 4 (16 x)
b[i], 0 i 63
0 i 15
16 i 31
32 i 47
48 i 63
64
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:
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).
65
MD5
MD5
MD5
MD5
MD5
MD5
("")
= d41d8cd98f00b204e9800998ecf8427e
("a")
= 0cc175b9c0f1b6a831c399e269772661
("abc")
= 900150983cd24fb0d6963f7d28e17f72
("message digest") = f96b697d7cb7938d525a2f31aaf161d0
("abcdefghijklmnopqrstuvwxyz") = c3fcd3d76192e4007dfb496cca67e13b
("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789")
= d174ab98d277d9f5a5611c2c9f419d9f
MD5 ("12345678901234567890123456789012345678901234567890123456...234567890")
= 57edf4a22be3c955ac49da2e2107b67a
FIGURA 3.4. EXEMPLE DE VECTORI DE TEST PENTRU MD5 CONFORM RFC 1321
3.3
4.1
DEFINIIE I PROPRIETI
cheii K MAC.Gen 1k
67
valoare aleatoare
(pseudo-aleatoare)
1k
Algoritm de generarea a
cheii MAC.Gen(1k)
| m | *
| K | ct., e.g.,128
| MACK ( M ) | ct., e.g.,128 256
K
MACK m
68
K
Algoritm (functie) de calcul
MAC MAC.Tag(m,K)
MACK m
b 0,1
valoare aleatoare
(pseudo-aleatoare)
1k
K
m
b 0,1
MACK m
4.2
69
IV 0
k
Functie Criptare
Bloc
Functie Criptare
Bloc
Functie Criptare
Bloc
MACk m
FIGURA 4.5. STRUCTURA CBC MAC
70
72
5.1
X i 1 aX i c mod n
73
ceilali parametrii sunt bine alei). Knuth ofer o analiz detaliat a acestui
generator n [55].
X 6 X 5 1
74
5.3
GENERATORUL BLUM-BLUM-SHUB
75
X i X i 12 mod n ,
Aici n p q este un ntreg suficient de mare astfel nct factorizarea lui
s nu poate fi uor calculat i X 0 este o valoarea de iniializare aleas aleator. La
ieirea generatorului nu se returneaz valoarea X i ci bitul de paritate al acesteia.
Ca exemplu artificial, cu numere foarte mici, pentru n 13 17 221 ,
X 0 100 avem X1 55 , X 2 152 , X 3 120 , etc., ieirea generatorului BBS
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.1
DEFINIIE I PROPRIETI
77
PK , SK PKE.Gen 1k
care primete ca
PK , SK , algoritmul de criptare
78
Algoritm de generarea a
cheii PKE.Gen(1k)
1k
PK
SK
Uzual:
| m || PK |
PK ct. , e.g., 1024 4096
(ECC de la 160)
| EPK m | PK
PK
c EPK m
SK
Algoritm (functie) de
decriptare cu cheie
asimetrica PKE.Dec(c,SK)
m DSK c
79
valoare aleatoare
(pseudo-aleatoare)
1k
PK
SK
c EPK m
m
Algoritm (functie) de decriptare
cu cheie asimetrica (foloseste
cheia privata)
6.2
80
Calculul radacinilor
patrate in Zn
Ipoteza reziduurilor
cvadratice n Zn
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)
6.3
81
x x
y z
z y
g
g
folosete
g a mod p ,
calculeaz
82
cheia secret poate fi utilizat pentru orice alt operaie criptografic, de exemplu
pentru criptarea simetric.
DH .Setup 1k :
DH .Exchange :
6.4
83
calculeze g ab mod 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:
1. A : g a mod p
1. Adversarul intercepteaz i trimite lui B g adv mod p
2. B : g b mod p
2. Adversarul intercepteaz i trimite lui A g adv mod p
84
6.5
c m1 k n m mod n , deoarece mk n m n
1mod n .
PK , n
f RSA x x mod n
c m mod n
SK , n
f 1RSA x x mod n
m c mod n
85
1, n .
Se calculeaz criptotextul ca
c m mod n .
6.6
86
RSA.Dec P 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 i astfel nct
1mod (n), n pq i dorim aflarea lui p i q . Enumerm dou metode
care pot fi folosite n acest scop:
i)3
Se
observ
1mod (n)
1 k p 1 q 1
Se
x x mod n x
vom
x 1
ajunge
i 1
la
87
x
de
asemenea
c
pentru
avem
1mod n i prin mprire succesiv a exponentului la 2
observ
1
un
moment
dat
x 1
la
2i
1mod n
timp
ce
1 x 1 2 1 0mod n ceea ce
i
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:
88
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:
-
89
rspuns
m '' m '
i totodat
90
c.m.m.d.c. 1, p 1
exact
rdcini.
Analog
exist
rezult
exist
Z n*
6.7
91
SK p, q .
Rabin.Enc m, PK : Se obine cheia public a entitii aferente
PK n i se reprezint mesajul ca ntreg n
intervalul
1, n .
Se calculeaz criptotextul ca
c m mod n .
2
Rabin.Dec c, SK :
Decripteaz
mesajul
ca
m c mod n
92
PK n
f Rabin x x 2 mod n
c m 2 mod n
SK Factorizare n
m 2 c mod n
6.8
93
Rabin.Dec PFI
6.9
c1 m a mod p
k
c2 k mod p
c c1 , c2
SK a
m c2 a c1 mod p
94
c k mod p, m ( a )k mod p .
1 m1
95
ElGamal.Dec CDH
96
y Qn
(vezi
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 .
SISTEMUL 6-4. SCHEMA DE CRIPTARE CU CHEIE PUBLIC GOLDWASSER-MICALI
97
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.
98
6.13
99
100
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
Masina de decriptare
Adversar
Criptotext tinta c1
Restrictie c1!=c2
c2=m2emodn
m2=c2dmodn
Adversar
Masina de decriptare
101
m2=c2d=m1m2modn
Masina de decriptare
Adversar
Criptotextul este spart deoarece m1=m2m2-1modn
nou,
Nici criptosistemul ElGamal nu este rezistent n faa unui atac CCA2. Din
un
adversar,
avnd
un
criptotext
int
102
c1 1 k1 mod p, 1 m1 ( a ) k1 mod p
Restrictie c1!=c2
k1 mod p,
c2 1
2 m2 1 mod p
m2 " 2 1 a mod p
Adversar
Masina de decriptare
103
ii)
iii)
104
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.
NM-CPA
NM-CCA1
NM-CCA2
IND-CPA
IND-CCA1
IND-CCA2
Cel
mai
esenial
aspect
aceste
relaii
este
echivalena
105
pk , sk K 1k , x0 , x1 , s 1O1 pk ,
1
b 0,1 , y E pk xb : O2 2 x0 , x1 , s, y b
Advind,atl k 2 Pr
106
CCA2
(la
data
publicrii
lucrrii
echivalena
IND CCA2 NM CCA2 nu era nc demonstrat aa c n [6] se gsesc
demonstraii separate pentru cele dou proprieti de securitate).
107
. 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
108
f
r
m0k1
m0k1 G r
r H m0k1 G r
7.1
PK , SK Sig.Gen 1k
PK , SK ,
algoritmul de semnare
semntura
sig SigSK m
algoritmul
de
verificare
110
ii)
111
SK
Sig enitate m
Functie de semnatura
digitala
| 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.
R x
R(m)
Sig x
Sig(R(m))
Sig(R(m))
Sig 1 x
R(m)
R 1 x
112
7.2
113
m Rm
Calculeaz
s m mod n .
Returneaz s m mod n .
RSAVer
. s, PK : Se obine cheia public n, a entitii n cauz i
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 .
114
RSA.Sign m, SK :
m H m
Calculeaz
s m mod n .
Returneaz s m mod n .
RSAVer
. s, m, PK : Se obine cheia public n, a entitii n cauz,
se calculeaz m s mod n i se verific dac
m H m . n caz afirmativ returneaz 0 iar n caz
contrar returneaz 1.
SISTEMUL 7-2. SCHEMA DE SEMNARE DIGITAL RSA CU APENDICE
m
| m |
Functie hash
h(m)
e.g.,| h(m) | 128
Functia RSA
h(m)d mod n
115
m
| m |
Functie hash
h(m)
| h(m) | log 2 n,
e.g.,| h(m) | 4096
Functia RSA
h(m) d mod n
116
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.
Varianta FDH se bazeaz pe utilizarea unei funcii hash care creeaz un
hash al mesajului de dimensiune egal cu modulul, apoi se continu cu semnarea
standard dup cum sugereaz Figura 7.5.
| m |
Functie hash
h(m)
| EM | log 2 n,
Functia RSA
EM d mod n
| EM d mod n | log 2 n,
e.g.,| EM d mod n | 4096
FIGURA 7.6. RSA-PKCS V.1.5
117
m
| m |
Functie hash
padding1
padding 2
salt
mHash
salt
Functie Hash
MGF
maskedDB
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
7.4
RabinVer
. s, PK : Se obine cheia public a entitii n cauz i se
calculeaz m s 2 mod n i verific dac mesajul
aparine spaiului de redundan, i.e. m M R ,
returneaz 0 n caz contrar altfel returneaz 1 i
recupereaz mesajul ca m R 1 m .
119
s m mod n
calculeaz
altfel
calculeaz
m
s mod n . Returneaz s .
2
RabinWilliamsVer
. s, PK : Se obine cheia public a entitii n cauz
'
2
i se calculeaz m s mod n . n funcie de congruena
m R 1 m
m6
.
16
120
7.5
relaie S m
S m . Funcia
evident c S m
S m
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 m* m k mod n
2.
A B : m*
3.
B A : s * m*
7.6
121
Z p , un ntreg aleator 1 a p 2 i
calculeaz
g a mod p .
Cheia
PK g , y g a mod p, p
iar
public
cea
este
privat
este
SK a .
k 1 mod p 1
calculeaz
r g k mod p ,
s k 1 h m ar mod p 1 .
r, s .
Returneaz sig r , s .
ElGamal.Ver s, m, PK :
Se
obine
cheia
public
entitii
caz
contrar
v1 y r mod p ,
r s
respinge
v2 g
h m
semntura.
mod p
semntura dac i numai dac v1 v2 .
SISTEMUL 7-5. SCHEMA DE SEMNARE DIGITAL ELGAMAL
Calculeaz
accept
122
7.7
DSAGen
.
1k : Genereaz un numr prim p n intervalul
1023
, 21024
0, q
i calculeaz
r g k mod p mod q
calculeaz
s k 1 h m ar mod q .
r, s .
Returneaz sig r, s .
DSAVer
. sig , m, PK :
Se
obine
cheia
public
entitii
u1
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
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
SK d .
ECDSA.Sign m, SK :
calculeaz
digital
Genereaz
r kP
mesajului
un
ntreg
1 k q ,
aleator
s k 1 h m dr mod q . Semntura
este
perechea
obine
cheia
r, s .
Returneaz
sig r, s .
ECDSAVer
. sig , m, PK :
Se
public
entitii
w s1 mod q ,
u1 H m w mod q , u2 r w mod q , v u1P u2dP i accept
contrar
respinge
semntura.
Calculeaz
124
7.8
7.9
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:
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
evenimente simultane).
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 .
iii) Complementare dac unul nu apare implic apariia celuilalt i
invers, i.e. Pr E1 Pr E2 1 .
Se poate uor observa c pentru dou evenimente E1 i E2 probabilitatea
ca
oricare
sau
amndou
apar
este
egal
cu
Pr E1 E2 E1 E2 Pr E1 Pr E2 Pr E1 Pr E2 . Pentru cazul n
Pr E1 E2
.
Pr E2
Pr E1 E2
Pr E1 Pr E2 E1
Pr E2
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 contraintuitiv. 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
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
nk
8. Fundamente matematice
129
m!
m(m 1)(m 2)...(m n 1)
n!
m n
extragere. Deci, probabilitatea s nu existe nici o coliziune este 1 n . Se poate
m
demonstra c dac m atunci numrul de extrageri pn la o coliziune este n
medie de
m
2
130
este 0.
8. Fundamente matematice
131
8.7.
Definim
ca
fiind
p avem
adunare.
Remarca 8.1.
Z ,
*
n
a a 1 1 mod n .
Inversul multiplicativ poate fi eficient calculat cu ajutorul Algoritmului
Euclidian Extins care va fi discutat n capitolul 4.
f
f
f
respectiv b p1 1 p2 2 ... pk k
cu ei 0 , f i 0
132
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
Gauss, ca fiind x
a N M
i 1
mod n unde N i
n
iar M i Ni 1 mod ni .
ni
x c1 mod n1
x c2 mod n2
x c mod n
3
3
8. Fundamente matematice
133
p e p e p e1 p e 1 .
p
c.m.m.d .c. x, m 1
ntregi
astfel
nct
0 yn
cu
134
la m respectiv n care pot fi dedui n acest fel prin Teorema Chinez a Resturilor
este chiar m n .
Urmtoarea teorem stabilete relaia dup care n poate fi calculat i
pentru ntregi compozii.
Teorema 8.5. Pentru un ntreg compozit avnd factorizarea n
poate
n
1
1
1
n n1 1 ...1 .
p1 p2 pr
funcia
lui
Euler
p
i 1
fi
calculat
dup
ei
i
relaia:
p e p e 1
p
din
moment
ce
n piei
rezult
i 1
r
r
r
r
1
1
ei
ei
ei
n pi pi pi 1 n 1 .
pi
pi
i 1
i 1
i1
i1
imediat
x 2 1
x 2 1mod p deci
p
demonstrat.
O consecin imediat a teoremei 8.6 este faptul c dac r s mod p 1
atunci a r a s mod p , deci cnd se lucreaz modulo p exponenii pot fi redui
modulo p 1 acest fapt fiind de mare importan n criptografie.
8. Fundamente matematice
135
f x g xmod n
xZ n*
xZ n*
f x x
xZ n*
iar
xZ n*
g x x x
n
xZ n*
xZ n*
deci
xZ n*
xZ n*
xZ n*
k h
136
8. Fundamente matematice
137
numrul de rdcini ale lui g care acum are gradul k 1 . 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.
ii)
Qn Qn Z n* .
138
deci
fie
y Q p xy Q p , ii) x Q p , y Q p xy Q p , iii) x Q p ,
y Q p xy Qp .
Demonstraie: i) Este evident c dac x Q p , y Q p atunci a, b astfel nct
2
x a 2 mod p i y b 2 mod p xy ab mod p deci xy Qp . ii) Presupunem
x Qp
nseamn
xy a2 mod p b2 y a2 mod p
astfel
de
x b2 mod p
nct
unde
avem
atunci
y a2 b2 mod p
1
y y ' a2 mod p ,
z z ' a2 mod p
urmeaz
x ' y ' a4 z ' a2 mod p x ' y ' z '1 a 1 mod p . Este uor de observat c dac
2
8. Fundamente matematice
139
p 1
. Mai mult fiecare reziduu cvadratic din Z p are exact
2
Demonstraia acestei leme se poate face dup cum urmeaz: din moment
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
p e1 p 1
. 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
numrul de reziduuri cvadratice din Z *pe este
140
e1
a Qp a
p 1
pe1 p 1
2
1mod p i
1mod pe .
q sunt numere prime (acest caz este important pentru criptografia cu cheie public
p 1q 1 i
fiind utilizat n cteva criptosisteme) atunci: Qn Q p Qq
4
3 p 1q 1
Qn
.
4
Demonstraia acestei leme poate fi dedus din urmtoarea teorem al
crei caz particular este:
Teorema 8.14. (pentru Z n* ): Fie un ntreg compozit impar n a crui
factorizare este n
Qn
n
2
p
i 1
ei
i
din
Z *pe .
Din
moment
ce
factorizarea
lui
este
n piei
i 1
n
2r
8. Fundamente matematice
141
1 x Qp
x
numr prim p dup cum urmeaz: 1 x Q p .
p 0 p| x
xy
p
i)
y
x, y, p i p prim
p
x2
ii) 1 x, p i p prim
p
x
p 1
2
dac
p 1
2
1mod p
respectiv
x Qp
dac
numai
dac
1 mod p .
Demonstraie: Conform teoremei introduse n capitolul referitor la
p 1
2
p 1
2
soluii, pe de alt
x Qn y atunci x y mod n x
p 1
2
p 1
2
142
p 1
2
p 1
2
x
mod p .
p
p 1
2
mod p 0 .
1
1
Corolarul 8.2.
p
p 1
2
1 Q p dac p 3 mod 4 .
Demonstraie: Aceast relaie este din nou direct: se observ c semnul
lui 1
p 1
2
p 1
2
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
8. Fundamente matematice
143
p 1q 1 q
p
q 239 , conform legii reciprocitii cvadratice avem 1 4
q
p
111 2391 239mod11
22 2
11
8
2
4
11
239
11
11
11 11
11 1
2
11
1.
1 8 1
239
11
2
cum
factorizare
este
n piei
un
numr
definim
simbolul
Jacobi
i 1
a a
n p1
e1
e2
er
a a
... (se remarc faptul c simbolul Jacobi este identic cu
p2 pr
x
c.m.m.d .c. x, n 1 0
n
ii)
x
n 0 c.m.m.d .c. x, n 1
iii)
Dac x y mod n
iv)
xy x y x x x
i
n n n st s t
v)
x2
x
1 i 2 1
n
n
x y
n n
144
Lema 8.6.
2
s
Lema 8.7. 1
s 2 1
8
a
n
*
n
o vom nota cu Qn
i este
Qn J n Qn .
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
7
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.
ii.
E A m1 , E A m2
iii.
iv.
v.
vi.
vii.
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
i)
ii)
y 2 x3 x 1 I II)
y2 x3 x
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 Fp i Fpn
unde p este un numr prim. Figura 8.1 prezint grafic dou curbe n mulimea
numerelor reale.
Deasemenea se impune condiia 4a3 27b2 0 pentru a evita autointersecii ale curbei (aceast valoare provine din calculul discriminantului unei
ecuaii cubice).
8. Fundamente matematice
147
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. Goldreich8.
legitim
care
cunoate
factorizarea
modului
presupune
O log 2 n multiplicri (am considerat cazul pentru module Blum, vezi 4.4
2
i 4.5). n acelai timp pentru un adversar criptarea este fezabil dar decriptarea
presupune
gsirea
factorizrii
modulului,
operaie
care
necesit
2
c o1 3 ln n 3 ln ln n
O e
, c 2 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.
149
O 1
Co
mp
any
11/12/2007
Na
me
f Rabin x x 2 mod n
Co
mp
any
11/12/2007
Na
me
f(x)
f 1Rabin x 2 x mod n
O log 2 n
2
O 1
Co
mp
any
11/12/2007
Na
me
f Rabin x x 2 mod n
Co
mp
any
11/12/2007
Na
me
f(x)
f 1Rabin x 2 x mod n
O e
c o1 3 ln n 3 ln ln n
150
Condiie
c.m.m.m.c.
Simbolurile Legendre i Jacobi
de ordin
x mod n
Zn
cnd
x mod n
Apartenena la Qn
Condiie
Logaritmul discret
x mod n
Apartenena la Qn
x mod n
151
152
f n g (n) c, no a.i. 0 c g n f n, n n0
iii)
f n g (n) c1 , c2 , no a.i. c1 g n f n c2 g nn n0
iv)
f n og (n) no a.i.c 0 f n c g nn n0
f n g (n) no a.i.c 0 c g n f nn n0
Este important de spus c
O n! , dublu exponenial O 2c .
n
f n Og n g n f n
153
ii)
f n g n f n Og n f n g n
iii)
iv)
v)
f n O f n reflexivit ate
vi)
i)
f n ak n k ak 1 n k 1 ... a1 n a0 f n n k
ii)
n! o nn n! 2n
iii)
1 ln ln n ln n e
(ln n)(lnln n)
n nc nln n cn nn cc
10
154
Secunde ntr-un an
3 10 7
2 1017
Electroni n univers
8.37 10 77
1.2 10 77
1.8 10 308
110 3
1 10 2
1 10 8
1 10 303020
155
p log
i 1
2
1
1
trebuie s fie k . Avem H X k log 2 2 k k k k i astfel
i 1 2
i 1 2
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
xk xk 1...x1 b
reprezentarea
Seteaz i k .
2.
3.
ii)
157
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 .
iii)
zi xi yi c mod b ,
Dac xi yi c 0 atunci c 1 altfel c 0
3. Returneaz z zk zk 1...z1 b
IEIRE: z x y .
ALGORITMUL 9-3. SCDEREA A DOI NTREGI
158
iv)
presupune O k 2
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
v)
159
qi r bi y ,
r r bi qi y .
3. Returneaz q, r
IEIRE: q, r astfel nct x yq r .
vi)
3
2
160
Seteaz aux x , y 1
5.
Pentru i 1, l :
Dac ei 1 atunci y y aux ,
aux aux 2 ,
6.
Returneaz y
IEIRE: y xe .
ii)
iii)
161
iv)
v)
vi)
162
a, b
dac
163
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
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 c.m.m.d.c. a, b 1 avem
x y mod n i y x mod n .
164
p 1
4
165
1.
Calculeaz r a
2.
Returneaz r mod p .
mod p .
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
n 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 .
10
166
Dac x Qn atunci x
n p q 5
8
Dac
simbolul
n p q 5
4
167
x
1
n
Jacobi
atunci
x, x Qn
.
mod n
n
x
,
x
Q
n
n p q 5
8
mod n
este
rdcina
ptrat
lui
x Qn
atunci
n p8q5
x
x mod n . Datorit izomorfismului descris de teorema chinez a
n p q 5
8
p i q . Se observ uor c
n p q 5
p 1q 1
p 1q 1
n p q 5
p 1q 1
n p8q5
q21
x
x 4 x 4 x mod p dar x 4
cum
q 1
2
deci
p 1
2
mod p i
p 1q 1
n p8q5
x mod p dup cum x este sau nu
Legendre pentru x n Z p deci x
168
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
(se poate utiliza relaia 9.30 dar deoarece
n
4. Calculeaz s
a
n
p 1
2
mod p sau
169
a
n
a
n
a
cu certitudine c a nu este reziduu cvadratic iar dac 1 nu se poate trage
n
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.
170
ii)
iii)
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.
11
171
Algoritmi generali
Algoritmi dedicati
Random Square
Factoring Methods
(RSFM)
Cautare exhaustiva,
Euclid, Fermat etc.
Algoritmi clasici
Quadratic Sieve
Factoring, Number
Field Sieve etc.
Algoritmi moderni
172
mod cert orice ntreg compozit are cel puin un factor n acest interval).
Complexitatea algoritmului este O
ntregii mari, de sute sau mii de bii.
p
i 1
173
n 1
, nu conduce dect la factorii
2
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
pq pq
n
de unde prin calcularea celui mai mare divizor comun,
2 2
2
aa cum s-a artat anterior, rezult imediat cei doi factori primi. n acest scop se
alege i n i se calculeaz succesiv j i 1 n verificndu-se dac j
ns tot O n 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
qi B
mai mici dect B . Dac un numr p este un factor al lui n i toi divizori lui
n 13 17
17 1 este 2 neted
logq n
Q q
q2
175
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
n
8
evident c.m.m.d .c. xi x2i , n p ceea ce conduce la factorizare (se pot utiliza i
n 13 17 221 , f x x 2 1, xi f xi 1
x0 2
x0 2
cmmdc( xi x2i ,221)
2
2
x1 2 1 5 mod 221
x2 2 1 1 26 mod 221
1
2
2
2
x2 5 1 26 mod 221
x4 26 1 1 197 mod 221
1
2
2
2
x3 26 1 14 mod 221 x6 197 1 1 104 mod 221
1
2
2
2
x4 26 1 197 mod 221 x8 104 1 1 145 mod 221
13
2
176
bi ai mod n
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)
...
...
et 1 et 2
ett
bt p1 p2 ... pt
et et1 , et 2 ,..., ett
177
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
...
...
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
178
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
179
INTRARE: 1k
1. Genereaz k bii aleatori bk bk 1...b1 .
2. Verific dac numrul x xk xk 1...x1 2 este prim i dac da
returneaz x dac nu ntoarce-te la pasul 1.
IEIRE: x prim.
ALGORITMUL 9-12. GENERARA UNUI NUMR PRIM
180
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
181
p 1
x
8.5 folosind relaia x 2 . Testul construit pe acest principiu este cunoscut
p
p 1
2
mod p .
Dac x 1 returneaz 0.
Calculeaz
x
y
p
folosind
algoritmul
pentru
1
Soloway-Strassen este iar testul Miller-Rabin, care nu l vom descrie, are o
2
t
1
4
Strassen poart numele de Euler liar iar cele care fraudeaz testul Miller-Rabin
numele de strong liar. Se poate demonstra c sunt cel mult n 2 astfel de
numere pentru orice compozit, de aici i valoarea probabilitii de a frauda acest
test.
182
Seteaz aux P , y 1
2.
Pentru i l ,1 :
Returneaz aux
IEIRE: kP .
ALGORITMUL 9-15. MULTIPLICAREA UNUI PUNCT DE PE O CURB ELIPTIC
10 BIBLIOGRAFIE
[1]
[2]
T.M. Apostol, (1976), Introduction to Analytic Number Theory, SpringerVerlag, 329 pagini, ISBN 0387901639.
[3]
J. Bayne, (2002),
Institute.
[4]
[5]
[6]
[7]
[8]
[9]
184
[10]
[11]
[12]
[13]
[14]
[15]
[16]
[17]
[18]
[19]
E. Byres, J. Lowe, (2004), The Myths and Facts behind Cyber Security Risks
for Industrial Control Systems. VDE Congress04.
[20]
[21]
[22]
11. Bibliografie
185
[23]
[24]
[25]
[26]
[27]
[28]
[29]
[30]
[31]
[32]
[33]
[34]
[35]
[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
[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]
[39]
[40]
[41]
[42]
[43]
[44]
[45]
[46]
[47]
[48]
11. Bibliografie
187
[49]
[50]
[51]
[52]
[53]
[54]
[55]
[56]
[57]
[58]
[59]
[60]
188
[61]
[62]
[63]
[64]
[65]
[66]
[67]
[68]
[69]
[70]
[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]
11. Bibliografie
189
[73]
[74]
[75]
[76]
[77]
[78]
[79]
V. Shoup, (2001), A proposal for an ISO standard for public key encryption,
Input for Committee.
[80]
[81]
[82]
[83]
[84]
[85]
[86]
190
[87]
Song Y. Yan, (2003), Primality Testing and Integer Factorization in PublicKey Cryptography, Springer, 256 pagini, ISBN 1402076495.
[88]
11 ANEXE
ct.
- constant
|m|
Qn
Qn
Qn
Zn
Z n*
192
x
p
x
n
v k
v k
c.m.m.d .c.
c.m.m.m.c.
A P B
A B
CPA
CCA
CCA2
DLP
PFI
DDH
CDH
IND
NM
- non-maleabilitate (Non-malleability).
PTP
QRP
11.Anexe
193
13
Din lucrarea Random oracles are practical: A paradigm to design efficient protocols.
194
v k k c , k kc .
1
.
P k
11.Anexe
valoare
195
numit
parametru
de
securitate
avem
Pr x
D f , y f x , z 1 , y : f z y v k (simbolul
deoarece n mod evident dimensiunea domeniului de definiie este cea care face
s scad probabilitatea ca algoritmul PTP s returneze o valoare corect.
Co
mp
any
10/29/2007
Na
me
Usor de calculat
(complexitate polinomiala)
Co
mp
any
10/29/2007
Na
me
f(x)
Greu de calculat
(complexitate exponentiala)
numit
parametru
de
securitate
Pr x
D f , y f x , z 1k , y : f z y v A k .
avem
196
11.Anexe
197
Pr i
I , x
D fi , y fi x , z 1k , y : fi z y v k .
Definiia
A.7.
(Colecii
de
funcii
one-way
cu
trap)
Fie
i, ti , i 0,1
I , ti 2 p k (ultima
Pr i
I , x
D fi , y fi x , z 1k , y : fi z y v k .
198
public. n cele ce urmeaz vom nota cu Z n* mulimea numerelor din Zn care sunt
11.Anexe
199
Qn
se
noteaz
mulimea
ptratelor
perfecte
din
Z n* ,
i.e.
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 RabinWilliams.. 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.
200
Rabin Williams
: Qn Qn , f
RabinWilliams
x x
n p q5
8
mod n