Documente Academic
Documente Profesional
Documente Cultură
Criptare Curs An6
Criptare Curs An6
1. INTRODUCERE
ntotdeauna informaia (religioas, militar, economic, etc.) a nsemnat putere, prin urmare
dorina de a o proteja, de a o face accesibil doar unor elite, unor iniiai, s-a pus din cele mai vechi
timpuri. Primele texte cifrate descoperite pn n prezent dateaz de circa 4000 de ani i provin din
Egiptul antic, dar existena acestora dateaz fr doar i poate de la apariia scrierii n toate
civilizaiile umane.
n Grecia antic scrierile cifrate erau folosite nc din secolul al V-lea .e.n. Pentru cifrare se
folosea un baston n jurul cruia se nfura, spiral lng spiral, o panglic ngusta de piele,
papirus sau pergament, pe care paralel cu axa se scriau literele mesajului. Dup scriere panglica era
derulat, mesajul devenind astfel indescifrabil. Citirea mesajului putea fi fcut doar de persoana
posesoare a unui baston identic cu cel utilizat n cifrare. n secolul al IV-lea .e.n. n Grecia se
cunoteau 16 scrieri cifrate. Istoricul grec Polybius (sec I .e.n.) este inventatorul unui tabel de
cifrare ptrat de dimensiune 5x5, tabel aflat la baza elaborrii unui numr mare de sisteme de cifrare
utilizate i astzi.
n Roma antic secretul informaiilor politice i militare se fcea utiliznd scrierea secret.
Amintim cifrul lui Cesar, utilizat nc din timpul rzboiului galic.
Documentele atest chiar existena nc din antichitate a scrierilor secrete n Asia. Astfel
literatura indian d o serie de indicii dintre care Artha-sastra (321-300 .e.n.), Lalita-Vistara i
Kamasutra sunt cele mai cunoscute.
Stenografia, tiia scrierilor secrete insesizabile camuflate n texte n clar, constituie o forma
particular de secretizare.
De o importan remarcabil la dezvoltarea criptologiei este contribuia arab. David Kahn,
unul din cei mai de seam istoriografi ai domeniului, sublinia n cartea s The Codebreakers c, de
fapt criptologia s-a nscut n lumea arab. Primele trei secole ale civilizaiei islamice (700-1000 e.n)
au constituit, pe lng o mare extindere politic i militar i o epoca de intense traduceri n limba
arab ale principalelor opere ale antichitii greceti, romane, indiene, armene, ebraice, siriene.
Unele cri surs erau scrise n limbi deja moarte, deci prezentau n fapt texte cifrate. Astfel nct
primii pai n traducerea lor au fost traducerea acestora, deci originile criptologiei pot fi atribuite
arabilor. Cartea lui Ahmad ibn Wahshiyyah (cca. 900 e.n.) conine 93 de alfabete ale diferitelor
limbi, moarte sau vii.
Cartea a fost tradus n limba englez i publicat la Londra nou secole mai trziu sub
numele Ancient Alfabets and Hieroglyphic Caracters Explained, iar aceasta din urm a fost tradus
i publicat la Paris n 1810 i este posibil s-l fi ajutat pe celebrul arheolog J. F. Champollion n
descifrarea hieroglifelor (scrierea de la Rosseta, aflat la British Museum). Dezvoltrile
criptanalizei au fost sprijinite de studiile lingvistice ale limbii arabe care n primele patru secole ale
1
imperiului islamic a constituit limba oficial unificatoare pentru un imperiu de o uria ntindere i,
n acelai timp, i limba tiinific. Arabii au preluat cunotinele matematice ale civilizaiilor
greceti i indiene. Arabii sunt cei care au introdus sistemele de numeraie zecimal i cifrele arabe
drept urmare unii termeni cum ar fi zero, algebr li se datoreaz tot lor. Ultimele descoperiri
demonstreaz faptul ca manuscrise referitoare la probabiliti i statistici erau realizate cu 800 de
ani naintea celor scrise de Pascal i Fermat i nsui termenul de cifru provine de la arabi
originea lui fiind reprezentat de cuvntul arab ifr care reprezint traducerea din sanscrit a cifrei
zero.
Odat trezit interesul
lucrrile criptografiei din antichitate. Extinderea relaiilor diplomatice dintre diferitele state feudale
a determinat o dezvoltare puternic a secretizrii informaiei. Curile regale i n special statul papal
dispuneau de criptologi de mare valoare cum ar fi Giambattista della Porta, Vignre, Cardan
(secolul XIV) i Rossignol (secolul XVIII), cel mai abil criptolog din Europa regilor Ludovic al
XIII-lea i Ludovic al XIV-lea.
Dezvoltare sau recesiunea criptografiei / criptologiei conchide cu evoluia marilor imperii i
civilizaii. Ea nu apare i nu se dezvolt dect acolo unde puterea trebuie protejata, drept urmare,
apariia telegrafului i a radioului n secolul al XIX-lea precum i cele dou rzboaie mondiale din
secolul XX au fost stimulente puternice n dezvoltarea metodelor i tehnicilor de criptare.
Apariia i dezvoltarea continua a utilizrii calculatoarelor n practic toate domeniile de
activitate, existenta i evoluia puternic a reelelor teleinformatice la nivel naional, globalizarea
comunicaiilor, existenta unor baze de date puternice, apariia i dezvoltarea comerului electronic, a
potei electronice, constituie premisele societii informatice n care pim. Toate acestea indic o
cretere extraordinar a volumului i importanei datelor transmise sau stocate i implicit a
vulnerabilitii acestora. Protecia n aceste sisteme vizeaz:
domeniul diplomatic, militar, politic, la cel cu caracter economic i social. La ora actual, 99% nu
este utilizat pentru protejarea secretelor militare ci pentru carduri bancare, pli de taxe radio/TV,
taxe de drumuri, acces autorizat n cldiri sau la calculatoare, terminale de loterie, instrumente
electronice de pli anticipate. n aceste aplicaii rolul criptografiei este de a face furturile dac nu
imposibil cel puin mai greu de realizat.
ISO 7498-2 folosete termenii de cifrare / descifrare (encipher / decipher), probabil pentru
ca primul set de termeni amintete de mori (cript).
Criptograf (cryptographer) este persoana care se ocup cu criptografia.
Algoritm criptografic / cifru (cryptographic algorithm / cipher) este funcia sau funciile
matematice utilizate pentru criptare / decriptare; n general exista dou funcii: una pentru criptare
(E) i alta pentru decriptare (D).
Cheia criptografica (K) (key) este mrimea (n majoritatea cazurilor secret) necesar
realizrii criptrii i decriptrii.
Criptosistem (cryptosistem) este sistemul format din:
-
algoritm
Criptanaliz
M
C=E(M)
Ke
D(C)=M
Kd
K
Figura I.1 Schema bloc a unui criptosistem
analiza traficului.
conectrile neautorizate.
Autentificarea(autentification) se aplica la :
-
n sensul
Nr.
Obiectivul
crt.
3
4
5
Confidenialitatea
autentificarea
Definirea
pstrarea secretului pentru neavizai
Emitor /
identificare
originii datelor
integritii
datelor
surse neautorizate
Semntur
Nerepudierea
Autorizare
Validare
6
Revocare
Controlul
9
10
11
12
13
14
accesului
Certificare
Certificare
temporala
a informaiei
Mrturia
confirmarea
dreptul de
proprietate
anonimatul
Observaii:
(1.1)
Cheia K este secret, fapt ce conduce la denumirea de sisteme cu cheie secret. Criptarea i
decriptarea se realizeaz extrem de simplu dac se cunoate K :
E K (M ) = C
D K (C ) = DK ( E K ( M )) = M
(1.2)
(1.3)
Problema ce se pune n cazul acestor sisteme este distribuia cheii K, care necesit un canal
sigur.
Dup tipul algoritmului folosit, criptosistemele cu chei simetrice se clasific n dou
categorii:
cu cifruri bloc (block ciphers) sunt cifrurile care acioneaz asupra unei diviziuni a
textului n clar; blocurile de la intrare se cifreaz independent, lungimea tipic a
blocurilor fiind n=32 128 bii. Transformrile de baz folosite pentru criptare i
decriptare sunt substituiile i transpoziiile, repetate iterativ.
Doar destinatarul, care deine cea de-a doua cheie, poate descifra i utiliza mesajul. n sistemele cu
chei publice, protecia i autentificarea sunt realizate prin transformri distincte.
Criptosistemele cu chei publice sunt criptosistemele pentru care cheile folosite la criptare i
decriptare difer, de unde deriv i denumirea de sisteme asimetrice:
Ke Kd
(1.4)
Cheia public - aa cum i spune i numele - poate fi accesata public (asemntor unei
cri de telefon), iar cheia privat este secret. Caracteristic acestor sisteme este ca funcia de
criptare i cea de decriptare se realizeaz uor dac se cunosc K d i K e :
E K e ( M ) = C
DK d (C ) = M
( 1.5)
Atacul asupra securitii unui sistem criptografic definete orice aciune ce compromite
securitatea acelui sistem.
Atacurile criptografice pot fi ndreptate mpotriva :
-
algoritmilor criptografici
protocoalelor
O ilustrare sugestiv a principalelor tipuri de atacuri asupra unui sistem informatic este
prezentat succint n figura alturat:
flux normal
intercepie
Atac pasiv
(atac la confidenialitate)
ntrerupere
modificare
fabricare
Atacuri active
Dup modelul de atacare al unui atacator / intrus / persoan neautorizat / pirat ( attacker /
intruder / pirat), aceste atacuri se pot clasifica dup cum urmeaz:
atacuri active :
- de ntrerupere (atac la disponibilitate)
9
msurile ce pot fi luate pentru evitarea acestor atacuri sunt acelea care fac
Atacurile active sunt atacuri n care intrusul are o intervenie activ att n desfurarea
normal a traficului, ct i n configurarea datelor (modificarea datelor, crearea unor date false).
Dintre atacurile active amintim :
ntreruperea / refuzul serviciului (denial of service) un bloc funcional este distrus, sau se
inhib funcionarea normal sau managementul facilitailor de comunicaie; acest tip de atac
este un atac la disponibilitate( attack on availability)
modificarea: mesajul iniial este ntrziat, alterat, reordonat pentru a produce efecte
neautorizate cum ar fi :
- schimbare de valori n fiiere de date;
- modificri n program astfel nct acesta va lucra diferit;
- modificarea coninutului mesajelor transmise n reea
fabricarea: un neavizat insereaz informaii false n sistem; acest atac este un atac de
autenticitate. Din aceast categorie fac parte i:
- masacrarea (masaquerade): o entitate pretinde a fi alt entitate.
Exemplu: secvenele de autentificare pot fi capturate i dup validarea unei autentificri se
nlocuiesc, permind astfel unei entiti s obin privilegii pe care nu le are de drept.
- reluarea(replay) const n capturarea prin atac pasiv a unei cantiti de informaie i
-dei pot fi detectate, prevenirea lor este foarte grea, deoarece ar nsemna protecie fizic
permanent a ntregului sistem.
10
2.2
ATACURI CRIPTANALITICE
Atacurile criptanalitice sunt atacuri asupra textelor cifrate n vederea obinerii textului n clar
sau a cheilor folosite pentru decriptare .
Exist mai multe tipuri de asemenea atacuri dintre care amintim:
1)
Atac asupra textului cifrat (cipher text-only attack): criptanalistul are criptograma
Atac asupra unui text cunoscut (chiper text - only attack): criptanalistul are
Atac cu text n clar ales (chosen plain-text attack) : se pot alege o serie de mesaje
dac costul spargerii unui algoritm este mai mare dect valoarea datelor criptate, algoritmul
este probabil sigur (PS);
dac timpul necesar spargerii este mai mare dect valabilitatea datelor criptare, algoritmul
11
este PS;
dac mulimea datelor necesare spargerii este mai mare dect mulimea datelor criptate la un
moment dat de o cheie, algoritmul este PS;
Lars Knudsen - n teza de doctorat susinut n 1944 - a clasificat diferitele categorii de spargere
a unui algoritm n ordine cresctoare a securitii:
1)Spargere total (total break) / securitate zero: un criptanalist gsete cheia, deci orice
criptograma va fi decriptat: Dk (C ) = M .
2)Deducie global (global deduction): criptanalistul gsete un algoritm alternativ echivalent
cu Dk (C ) fr a cunoate cheia k.
3)Deducie local (local deduction): un criptanalist gsete textul n clar al unui text cifrat
interceptat.
4)Deducia informaional (informaional deduction): criptanalistul capt unele informaii
privitor la cheie sau la textul n clar (de exemplu civa bii ai cheii, anumite informaii privitoare la
M etc.)
5)Algoritm computaional puternic (computaional strong) este algoritmul care poate fi spart cu
resursele existente, att la momentul curent, ct i ntr-un viitor predictibil.
6)Algoritm necondiionat sigur (unconditional secure) este algoritmul pentru care indiferent ct
text cifrat are criptanalistul, informaia nu este suficient pentru a deduce textul n clar. Privitor la
aceti din urm termeni trebuie atenionat c sunt extrem de expui interpretrilor.
Observaii:
Doar cheia de unic folosin (one time pad), inventat n 1917 de Major J. Maubergue
i GilbertVernon, avnd aceeai lungime cu a textului n clar, este de nespart.
Toi ceilali algoritmi pot fi spari cu ajutorul unui atac cu text cifrat, prin ncercarea
tuturor cheilor, pn cnd textul descifrat are sens. Acest atac se numete atac prin for
brut (brute force attack).
reprezint complexitatea atacului prin fora brut, deci n cazul unui algoritm necondiionat sigur,
128 indicnd lungimea cheii n bii).
Observaie: Multe atacuri se preteaz paralelismului, deci complexitatea scade fa de
regula anterior enunat.
12
C=E (M)
D (C)
1.
Cifruri substituie;
2.
Cifruri transpoziie;
3.
Cifruri combinate.
13
fiecare caracter al textului n clar (M) este nlocuit cu un caracter corespondent al textului cifrat
(C).Vom aminti cteva dintre cifrurile de substituie cele mai cunoscute:
A. Cifrul Caesar
pai n alfabet. n sistemul CAESAR i n alte sisteme naturale se folosete codificarea numeric
natural:
A
D E
F G H
9 10
11 12
W X
13 14 15 16 17 18 19 20 21 22 23 24 25
Notnd literele de la 0 la 25, n CAESAR fiecare litera
devine + k , calculele
Este un cifru de substituie. Literele alfabetului latin sunt aezate ntr-un ptrat de
dimensiune 5x5. Literele I i J sunt combinate pentru a forma un singur caracter, deoarece alegerea
final (ntre I i J) poate fi uor decis din contextul mesajului. Rezult 25 de caractere aezate ntrun ptrat 5x5 cifrarea oricrui caracter fcndu-se alegnd perechea potrivit de numere (intersecia
liniei i a coloanei) corespunztoare dispunerii caracterului n ptrat.
1
IJ
11233111344443221144 1354534411.
Observaie: Codul poate fi schimbat prin rearanjarea literelor n ptratul 5x5.
14
de substituie n care un caracter al alfabetului mesajului n clar (alfabet primar) poate s aib mai
multe reprezentri.
Ideea utilizat n aceste cifruri este uniformizarea frecvenelor de apariie a caracterelor
textului cifrat (alfabet secundar), pentru a ngreuna atacurile criptanalitice.
Astfel, litera A cu cea mai mare frecven de apariie n alfabetul primar poate fi
nlocuit cu F, * sau K.
Concluzii:
dei mai greu de spart dect cifrurile de substituie simple (monoalfabetice), ele
nu mascheaz total proprietile statistice ale mesajului n clar.
n cazul unui atac cu text n clar cunoscut, cifrul se sparge extrem de uor.
atacul cu text cifrat este mai dificil, dar unui calculator i va lua doar cteva
secunde pentru al sparge.
substituind blocuri de caractere ale alfabetului primar numite poligrame - cu alte blocuri de
caractere, de exemplu:
ABA RTQ
SLL ABB
Cifrurile bazate pe substituia poligramic realizeaz substituirea unor blocuri de caractere
(poligrame) din textul clar, distrugnd astfel semnificaia, att de util n criptanaliz, a frecvenelor
diferitelor caractere.
Considerm un mesaj M=m1m2...mdmd+1... i un cifru care prelucreaz poligrame de lungime
d. Criptograma rezultat este C=c1c2...cdcd+1...cd+d. Fiecare poligram mid+1...mid+d va fi prelucrat n
poligrama cid+1...cid+d prin funcia de substituie fi astfel : Cid+j=fj (mid+1, ..., mid+d) .
15
n cazul cifrrii literelor singulare frecvena de apariie a acestora n textul cifrat este
aceeai cu frecvena de apariie a literelor corespondente din textul clar. Aceast lucru furnizeaz o
cantitate de informaie suficient criptanalistului pentru spargerea sistemului. Pentru minimizarea
informaiei furnizate de frecvena de apariie a literelor s-a procedat la cifrarea grupurilor de litere
(n-grame). n cazul n care un grup de n litere este substituit printr-un alt grup de n litere,
substituia se numete poligramic; cel mai simplu caz se obine pentru n=2, cnd diagrama m1m2
din textul clar se substitue cu diagrama c1c2 din textul cifrat.
Un exemplu clasic pentru substituia diagramelor este cifrul lui Playfair.
Metoda const n dispunerea literelor alfabetului latin de 25 de litere ntr-un ptrat de 5 linii i 5
coloane (i=j) de forma :
V
De regul, n prima linie a ptratului se scrie un cuvnt cheie i apoi se completeaz celelalte
linii cu literele alfabetului, fr repetarea literelor din prima linie. Cifrarea se execut dup
urmtoarele reguli :
- dac m1, m2 sunt dispuse n vrfurile opuse ale unui dreptunghi, atunci c1, c2 sunt
caracterele din celelalte vrfuri ale dreptunghiului, c1 fiind n aceeai linie cu m1. De exemplu GS
devine MN.
- dac m1 i m2 se gsesc ntr-o linie, atunci c1 i c2 se obin printr-o deplasare ciclic spre
dreapta a literelor m1 i m2. De exemplu AD devine BF sau CF, DA.
- dac m1 i m2 se afl n aceeai coloan atunci c1 i c2se obin prin deplasarea ciclic a lui
m1, m2 de sus n jos. De exemplu UO devine BW, iar EZ devine FE. Descifrarea se execut dup
reguli asemntoare cu cele de cifrare.
3.1.4. Cifruri de substituie polialfabetice sunt formate din mai multe cifruri de substituie
simple. Au fost inventate de Leon Battista, n 1568. Cifrurile bazate pe substituia polialfabetic
constau din utilizarea unor substituii monoalfabetice diferite.
Fie d alfabete de cifrare c1, c2, ..., cd, i d funcii fi care realizeaz substituia de forma:
fi : ACi, 1 i d .
Un mesaj clar M = m1m2...mdmd+1...m2d... va fi cifrat prin repetarea secvenelor de funcii f1, f2, ...,
fd: Ek (M) = f1 (m1) ...fd (md) f (md+1).
16
Utilizarea unei secvene periodice de substitiii ale alfabetului mrete n mod semnificativ
securitatea criptogramei prin nivelarea caracteristicilor statistice ale limbii. Aceeai liter din textul
cifrat poate reprezenta mai multe litere din textul clar, cu diferite frecvene de apariie. n acest caz
numrul cheilor posibile se mrete de la 26!, cte erau la substituia monoalfabetic, la (26!)n .
A. cifrul lui Vigenere,
POLIALFABETIC ;
ACADEMIEACADEMIEACADEMIEA;
criptotextul deja creat folosete drept cheie adugndu-se n continuarea cuvntului cheie.
Observaie: Dei fiecare caracter utilizat drept cheie poate fi gsit din caracterul anterior al
textului cifrat, el este funcional dependent de toate caracterele anterioare ale mesajului, inclusiv de
cheia de ncercare. Urmare a acestui fapt este efectul de fuziune a proprietilor statistice ale
textului n clar asupra textului cifrat, ceea ce face ca analizele statistice s devin foarte grele pentru
criptanalist.
Schemele de cifrare Vignre nu sunt foarte sigure avnd n vedere standardele actuale ns
contribuia important a lui Vignre const n faptul ca a descoperit ca pot fi generate secvene
nerepetitive drept cheie, prin utilizarea a nsui mesajului sau a unor pri ale acestuia.
17
C. Cifrul Vernam
Cifrul Vigenere cu o perioad n, dei mult mai puternic dect un cifru bazat pe substituia
monoalfabetic, poate fi spart dac criptanalistul dispune de cel puin 2n caractere din textul cifrat.
O variant mai nou a acestui cifru peste un alfabet binar, este cifrul Vernam care se difereniaz
prin cheia de cifrare, care este reprezentat de o secven de caractere aleatoare care nu se repet.
Fie M=m1m2...mn un mesaj clar binar i K=k1k2...kn un ir binar care reprezint cheia. Criptograma
C = Ek (M) = c1c2...cn se obine determinnd fiecare caracter ci astfel : Ci = (mi+ki) (mod n),
i=1, 2, ... ,n .
Utilizarea o singur dat a cheii ne d un exemplu de criptosistem care face ca mesajul s
fie foarte rezistent la criptanaliz, practic imposibil de spart; textul clar este o secven finit de bii,
s zicem cel mult 20. Cheia este i ea o secvena de 20 de bii. Ea este utilizat att pentru criptare,
ct i pentru decriptare i este comunicat receptorului printr-un canal sigur. S lum cheia
11010100001100010010;
un text clar, s zicem 010001101011, este criptat prin sumare bit cu bit cu biii cheii, pornind cu
nceputul acesteia.
11010100001100010010
010001101011
100100101000
Deci criptotextul este 100100101000. Acesta nu d informaii criptanalistului, deoarece el nu tie
nici ce bii vin din textul clar, nici care au fost schimbai de ctre cheie. Aici este esenial faptul c o
cheie este folosit o singur dat, altfel, un text clar anterior mpreun cu criptotextul corespunztor
ofer posibilitatea aflrii cheii sau cel puin prefixul ei.
Dezavantajul evident al acestei tehnici este gestionarea dificil a cheilor. Cheia, cel puin la fel de
lung ca i textul clar, trebuie comunicat printr-un canal sigur. Aceste cifruri au o larg utilizare n
comunicaiile diplomatice i militare.
D.Cifrul lui Trithemius
Este un cifru polialfabetic. Alfabetul este dispus pe 26 de linii numerotate de la 0 la 25, unde
numrul de ordine al liniei indic numrul de caractere cu care se deplaseaz ciclic alfabetul spre
dreapta. Linia numerotat cu 0 constituie tocmai alfabetul n ordinea iniial. Acest cifru poate fi
utilizat astfel: primul caracter se cifreaz selectndu-l din linia 1, al doilea din linia a 2-a i aa mai
departe.
Exemplu: 1 2 3 4 5 6 7
8 9 10 11 12 13 14 15 16 17
Mesajul: T R E B U I E
N V I
18
N G E
M ,
Cifrul simplu cu transpunere n coloane: textul n clar se scrie orizontal ntr-o anumit
form, ca la Polybius sau ceva asemntor, iar textul cifrat se citete pe coloane:
N
19
caracterele vor fi trimise la ieire (irul poziiilor din textul de intrare pentru fiecare caracter din
succesiunea generat).
3.3 MAINI ROTOR
Cel mai celebru cifru bazat pe o main rotor este Enigma, utilizat de germani n cel de-al
doilea rzboi mondial. El a fost inventat de Arthur Scherbius i Arvid Gerhard Damm n Europa i a
fost patentat n SUA. Germanii au mbuntit considerabil proiectul inventatorilor si, dar a fost
spart de criptanalitii polonezi care au explicat atacul englezilor.
20
21
n figura 4.2. se d o schem general pentru algoritmul DES. Exist dou intrri n
algoritm i anume un bloc de text n clar de 64 de bii i o cheie de 56 de bii.
Din figur se poate observa c n partea dreapt a desenului avem generarea cheilor iar n
partea stng se prelucreaz textul. Intrarea n bloc se va supune nti unei permutri iniiale dup
care au loc 16 iteraii succesive, o interschimbare pe 32 de bii i n ncheiere se va aplica inversa
permutrii iniiale.
n cazul algoritmului DES, i cheia de 56 de bii va fi supus unei permutri de tipul 1
dup care va fi mprit n dou blocuri de 28 de bii iniial. Dup aceasta, asupra ambelor pri
astfel obinute se va efectua o rotaie circular spre stnga cu un numr de bii corespunztor
numrului iteraiei. Prezentarea unei singure iteraii a algoritmului DES se d n figura 4.3.
22
1
57
15
10
29
63
43
14
2
49
16
2
30
55
44
6
3
41
17
59
31
47
45
61
4
33
18
51
32
39
46
53
5
25
19
43
33
31
47
45
6
17
20
35
34
23
48
37
7
9
21
27
35
15
49
29
8
1
22
19
36
7
50
21
9
58
23
11
37
62
51
13
10
50
24
3
38
54
52
5
11
42
25
60
39
46
53
28
12
34
26
52
40
38
54
20
13
26
27
44
41
30
55
12
14
18
28
36
42
22
56
4
23
Iteraia
Nr. bii
1
1
2
1
3
2
4
2
5
2
6
2
7
2
8
2
9
1
10
2
11
2
12
2
13
2
14
2
15
2
16
1
1
14
17
26
33
51
2
17
18
8
34
45
3
11
19
16
35
33
4
24
20
7
36
48
5
1
21
27
37
44
6
5
22
20
38
49
7
3
23
13
39
39
8
28
24
2
40
56
9
15
25
41
41
34
10
6
26
52
42
53
11
21
27
31
43
46
12
10
28
37
44
42
13
23
29
47
45
50
14
19
30
55
46
36
15
12
31
30
47
29
16
4
32
40
48
32
1
58
17
62
33
57
49
61
2
50
18
54
34
49
50
53
3
42
19
46
35
41
51
45
4
34
20
38
36
33
52
37
5
26
21
30
37
25
53
29
6
18
22
22
38
17
54
21
7
10
23
14
39
9
55
13
8
2
24
6
40
1
56
5
9
60
25
64
41
59
57
63
10
52
26
56
42
51
58
55
11
44
27
48
43
43
59
47
12
36
28
40
44
35
60
39
13
28
29
32
45
27
61
31
14
20
30
24
46
19
62
23
15
12
31
16
47
11
63
15
16
4
32
8
48
3
64
7
12
15
28
13
44
11
60
9
13
55
29
53
45
51
61
49
14
23
30
21
46
19
62
17
15
63
31
61
47
59
63
57
16
31
32
29
48
27
64
25
1
40
17
38
33
36
49
34
2
8
18
6
34
4
50
2
3
48
19
46
35
44
51
42
4
16
20
14
36
12
52
10
5
56
21
54
37
52
53
50
6
24
22
22
38
20
54
18
7
64
23
62
39
60
55
58
8
32
24
30
40
28
56
26
9
39
25
37
41
35
57
33
10
7
26
5
42
3
58
1
11
47
27
45
43
43
59
41
24
rezultnd un nou cuvnt w, primii 3 bii ai acestuia fiind 58, 50, 42 ai lui w. Scriem acum w=L0R0,
unde L0 i R0 sunt cuvinte de cte 32 de bii. Avnd definite Ln-1 i Rn-1, 1 n 16, definim Ln i Rn
prin:
Ln = Rn-1
Rn= Ln-1 f(Rn-1, Kn)
unde semnific adunarea bit cu bit modulo 2, iar f va fi definit mai jos. Criptarea c a blocului
original w se va obine prin aplicarea inversei permutri iniiale, blocului R16L16 de cte 64 de bii.
nc n-am definit funcia f, dar, nainte de a o face, s vedem cum se procedeaz pentru
decriptare. Scriind ecuaiile de mai sus sub forma:
Rn-1= Ln
Ln-1= Rn f (Ln, Kn)
putem afirma c am indicat o cale de deducere recursiv a lui L0 i R0 din L16 R16, dup care
decriptarea este clar.
Funcia f realizeaz un bloc de 32 de bii din dou blocuri, unul de 32 bii, Rn-1 sau Ln, i
altul de 48 bii, Kn, n felul urmtor:
Bit ieire
Bit intrare
Bit ieire
Bit intrare
Bit ieire
Bit intrare
1
32
17
12
33
22
2
1
18
13
34
23
3
2
19
12
35
24
4
3
20
13
36
25
5
4
21
14
37
24
6
5
22
15
38
25
7
4
23
16
39
26
8
5
24
17
40
27
9
6
25
16
41
28
10
7
26
17
42
29
11
8
27
18
43
28
12
9
28
19
44
29
13
8
29
20
45
30
14
9
30
21
46
31
15
10
31
20
47
32
16
11
32
21
48
1
S2
S3
S4
Rnd
0
1
2
3
0
1
2
3
0
1
2
3
0
1
2
3
0
14
0
4
15
15
3
0
13
10
13
13
1
7
13
10
3
1
4
15
1
12
1
13
14
8
0
7
6
10
13
8
6
15
2
13
7
14
8
8
4
7
10
9
0
4
13
14
11
9
0
3
1
4
8
2
14
7
11
1
14
9
9
0
3
5
0
6
4
2
14
13
4
6
15
10
3
6
3
8
6
0
6
12
10
5
15
2
6
9
11
2
4
15
3
4
15
9
6
15
11
1
6
11
13
2
1
3
8
13
4
15
6
3
8
9
0
7
13
25
7
8
1
11
7
4
14
1
2
5
10
0
7
10
3
13
8
8
3
10
15
5
9
12
5
11
1
2
11
4
1
4
15
9
9
10
6
12
11
7
0
8
6
13
8
1
15
2
7
1
4
10
6
12
9
3
2
1
12
7
12
5
2
14
8
2
3
5
11
12
11
7
14
13
10
6
12
7
14
12
3
5
12
14
11
12
5
9
3
10
12
6
9
0
11
12
5
11
11
1
5
12
13
9
5
10
0
0
9
3
5
4
11
10
5
12
10
2
7
14
0
3
5
6
5
11
2
14
2
15
14
2
4
14
8
2
15
7
8
0
13
10
5
15
9
8
1
7
12
15
9
4
14
S5
S6
S7
S8
0
1
2
3
0
1
2
3
0
1
2
3
0
1
2
3
2
14
4
11
12
10
9
4
4
13
1
6
13
1
7
2
12
11
2
8
1
15
14
3
11
0
4
11
2
15
11
1
4
2
1
12
10
4
15
2
2
11
11
13
8
13
4
14
1
12
11
7
15
2
5
12
14
7
13
8
4
8
1
7
7
4
10
1
9
7
2
9
15
4
12
1
6
10
9
4
10
7
13
14
2
12
8
5
0
9
3
4
15
3
12
10
11
13
7
2
6
9
12
15
8
1
7
10
11
7
14
8
6
1
8
13
8
5
3
10
13
10
14
7
1
4
2
13
8
5
15
6
0
6
7
11
3
14
10
9
10
12
0
15
5
0
9
15
13
1
0
14
12
3
15
5
9
5
6
12
3
15
12
0
3
13
4
1
9
5
6
0
3
6
10
9
15
10
5
9
4
14
10
7
7
12
8
15
14
11
13
0
13
3
6
10
14
0
1
6
5
2
0
14
5
0
15
3
0
9
3
4
7
11
13
0
10
15
5
2
0
14
3
5
14
8
0
5
5
3
11
8
6
8
9
3
12
9
5
6
9
6
14
3
11
8
6
13
1
6
2
12
7
2
8
11
1
16
17
2
2
7
18
8
3
20
19
24
4
21
20
14
5
29
21
32
6
12
22
27
7
28
23
3
8
17
24
9
9
1
25
19
10
15
26
13
11
23
27
30
12
26
28
6
13
5
29
22
14
18
30
11
15
31
31
4
16
10
32
25
26
Criptotextul se obine deci scriind, unul dup altul, toate numerele care apar n coloana din
dreapta. Un receptor legal al mesajului trebuie s aib o carte de telefon, cu numere aranjate n
ordine cresctoare. O astfel de list de numere face ca decriptarea s fie mai simpl. Lista numerelor
de telefon ordonate cresctor constituie trapa secret, cunoscut numai de utilizatorii legali ai
acestui sistem.
27
Fie mesajul semnat de A, transmis ctre receptorul B. Semntura lui A trebuie s aib
urmtoarele proprieti:
29
Implementarea semnturii digitale este extrem de simpl n cazul sistemelor cu chei publice.
n acest caz, DA poate servi ca semntura digital pentru A. Receptorul B al mesajului M, semnat de
A, este sigur att de autenticitatea emitorului ct i a datelor.
Protocolul semnturii digitale se desfoar astfel:
A semneaz pe M : S=DA(M);
M, n acelai mod ca i B.
Metoda propus permite comunicaii sigure ntre utilizatorii care nu au stabilit contacte
prealabile. De exemplu, dac utilizatorul A dorete s transmit un mesaj confidenial utilizatorului
B, A va cuta n fiierul public EB i se va transmite la B: C=EB(M). Conform proprietii a treia, B
este singurul utilizator care tie s descifreze criptograma C aplicnd cheia DB inut secret.
n plus, pentru ridicarea gradului de securitate al transmisiei s-a propus ca E i D s
ndeplineasc i urmtoarea proprietate adiional:
(4) dac S=D(M), atunci M=E(S) sau E(D(M))=M pentru M {M}.
Varianta S este numit semntur digital i reprezint o metod de autentificare reciproc.
n timp ce B poate fi sigur c mesajul recepionat a venit de la adevratul A, A poate fi sigur c
nimeni nu va putea s-i atribuie un mesaj fals. Utilizatorul A poate semna mesajul ctre B astfel:
S=DA(M), apoi, trimind criptograma: C=EB(S).
n aceste condiii numai B poate recunoate pe S din C calculnd:
DB(C)=DB(EB(S))=S. Apoi mesajul se poate obine calculnd :
EA(S)=EA(DA(M))=M.
Diffie i Hellman sugereaz o metod de implementare practic a conceptului propus. Se
indic utilizarea unor funcii greu inversabile. O funcie este greu inversabil dac este inversabil
i uor de calculat, dar pentru aproape toate valorile y din codomeniu este imposibil computaional
s se calculeze
x=f-1(y).
Cu alte cuvinte este imposibil s se calculeze f-1 dac se dispune de o descriere complet a
lui f. n concluzie, o funcie este greu inversabil dac:
numai dac se dispune de o informaie numit trap; necunoaterea acestei informaii face ca
funcia s fie greu inversabil. O astfel de pereche de funcii (f, f-1) poate constitui perechea (E, D) a
unui criptosistem cu chei publice. n general pentru procedurile E i D se indic scheme bazate pe
operaii modulo n cu elemente din inelul claselor de resturi modulo n. Securitatea algoritmilor
implementai prin metoda cifrrii asimetrice au la baz dificultatea calculului logaritmului modulo
numr prim.
Fie q un numr prim i un ntreg X, X [1, q-1]. Se pot calcula:
Y=ax(mod q), unde a este un element primitiv al cmpului Galois GF(q).
Dup cum se tie, clasele de resturi modulo q formeaz un inel; dac q este un numr prim
acesta formeaz un cmp Galois GF(q). ntr-un cmp Galois GF(q) exist (q-1) numere care se
31
numesc elemente primitive ale cmpului. Dac a,a2,...,a(q) sunt puterile lui a, acestea au ca resturi
modulo q pe 1,2,...,(q), unde (q) este indicatorul lui Euler, (q)=q-1.
Fiecare utilizator A alege n mod aleator un numr XA, XA={1,2,...,q-1} i se calculeaz
YA=aXA(mod q). Numrul XA este inut secret n timp ce YA se face public. Dac utilizatorii A i B
doresc s comunice, ei utilizeaz urmtoarea cheie de comunicaie:
XA
XAXB
(mod q).
KAB=Y XB
A =Y B =Y B
Cel mai larg utilizat i verificat criptosistem cu chei publice a fost cel introdus de Rivest,
Shamir i Adleman, care este acum cunoscut ca RSA.
Acest cifru reprezint standardul n domeniul semnturilor digitale i al confidenialitii cu
chei publice. Sub diferite forme de implementare, prin programe sau dispozitive hardware speciale,
RSA este astzi recunoscut ca cea mai sigur metod de cifrare i autentificare disponibil
comercial.
Acest cifru se bazeaz pe o idee uimitor de simpl din teoria numerelor i totui a rezistat la
toate atacurile criptanalitilor de pn acum.Ideea se bazeaz pe faptul c, dei este uor s
nmuleti dou numere prime mari, este ns extrem de greu s se factorizeze produsul lor.Astfel,
produsul poate fi fcut cunoscut i utilizat ca o cheie de criptare.Numerele prime nsele nu pot fi
reconstituite din produsul lor.Pe de alt parte, numerele prime sunt necesare pentru decriptare.
n continuare voi prezenta detalii despre sistemul RSA.Fie p i q dou numere prime mari
distincte i aleatoare(avnd aproximativ 100 cifre zecimale fiecare).Se noteaz :
n = pq i (n) = (p-1)(q-1)
unde este funcia Euler.Se alege un numr aleator mare D>1 astfel nct (D,(n)) = 1 i se
calculeaz numrul E,1<E<(n) care s satisfac congruena:
ED = 1(mod(n)).
Numrul n este modulul, E este exponentul de criptare i D exponentul de decriptare.Numerele n i
E formeaz cheia public de criptare, iar p, q, (n) i D formeaz trapa secret.Evident c
informaia despre trapa secret nu const n patru parametri independeni.De exemplu, cunoaterea
lui p conduce imediat la aflarea i a celorlali trei parametri.
32
Metoda de criptare implic calcul exponenial ntr-un cmp finit(modulo n). Mesajul cifrat
se obine din mesajul n clar printr-o transformare(codare) bloc. Fie unul din aceste blocuri din
mesaj M, bloc ce are proprietatea M (0, n-1); proprietate care se obine prin modul de mprire a
mesajului n blocuri. Blocul cifrat, C, corespunztor blocului n clar, se obine calculnd
exponeniala: C=ME(mod n), E i n reprezentnd astfel cheia secret de decriptare.
Decriptarea se face prin operaia : M=CD(mod n), unde D este cheia secret de decriptare.
Cele dou chei E i D trebuie s satisfac relaia:
M=CD(mod n)=MED(mod n), pentru ca algoritmul s poat fi ntr-adevr folosit. Pentru aceasta
plecm de la teorema Euler-Fermat: P este un numr prim dac ap-1=1(mod p) oricare ar fi a,
a [1,p]. Astfel, dac am ales un numr prim n, pentru orice bloc n (0,1) avem proprietatea de la
care pornim M(n)(mod n)=1,
Dac E i D satisfac relaia ED(mod (n))=1, putem scrie:
ED=K(n)+1=(n)+(n)+(n)++(n)+1, MED=M(n)+(n)+(n)+...+(n)+1=
M(n)M(n)M(n)...M(mod n). Deci ED(mod (n))=1 MED=M(mod n).
Astfel am asigurat o transformare reversibil de criptare pe baza unei exponeniale ntr-un cmp
finit. Mai rmne s asigurm securitatea cheii de criptare, iar n cazul de mai sus este uor de
determinat avnd la dispoziie E i n, tiind c ED(mod (n))=1 i (n)=n-1.
Securitatea se bazeaz pe ideea de factorizare a unui numr mare. Pornind de la aceast idee
numrul n se poate obine prin produsul a dou numere prime mari p i q: n=pq, astfel nct
indicatorul lui Euler, (n)=(p-1)(q-1), devine mult mai greu de determinat avnd la dispoziie n.
Folosind aceast schem se poate obine un sistem performant de criptare cu chei publice.
Un sistem care asigur confidenialitatea va avea ca elemente urmtoarele perechi:
Un criptanalist care are la dispoziie perechea (E, n) va trebui s determine D innd cont c
ED(mod (n))=1. Pentru aceasta trebuie determinat (n)=(p-1)(q-1), deci implicit p i q, problem
care se reduce la a factoriza numrul n, problem practic imposibil pentru un numr n mare.
Exemplu
33
34
sa secret xA ntr-o astfel de manier nct semntura s poate fi verificat de orice alt utilizator pe
baza cheii publice yA.
1) Procedura de semnare
Fiind dai m,r,s, este uor s se verifice autenticitatea semnturii calculnd am (mod p), yrrs
(mod p) i verificnd apoi dac sunt egale. Este indicat ca valoarea lui k, aleas aleator, s fie
folosit o singur dat. Se poate folosi n acest scop un generator de k bazat pe un model DES
(generator cu contor).
Generalizare a schemei El Gamal:
- cheia public: EA=a DA (mod n), unde a = este o constant a sistemului cunoscut de ctre toi
parametrii; n = este un numr prim;
- cheia secret: DA, un numr natural.
(1)
Ca urmare semntura lui M realizat cu nivelul de securitate p este reprezentat de: S=(a1,a2,...,ap).
(2)
Valoarea 1 = aM mod n
i
Valoarea 2 = eAa1a1a2...ap-1ap mod n
i comparndu-le dac sunt egale.
Aceast
securitate, ceea ce sporete rezistena schemei la atac criptanalitic. Criptanalistul este confruntat cu
necesitatea inversrii tuturor funciilor exponeniale ai=aki (mod n) n cmp finit, ceea ce reprezint
o problem grea computaional dac n este mare (128,256,512 bii).
35
Metoda de cifrare cu cheie public MH este bazat pe cunoscuta problem a rucsacului, care
const n a determina ntr-o mulime de numere ntregi, o submulime de o sum dat. Merkle i
Hellman propun o metod a crei securitate depinde de dificultatea rezolvrii urmtoarei probleme:
fiind dat un ntreg pozitiv C i un vector A=(a1,a2,...,an) de ntregi pozitivi, s se gseasc o
submulime a lui A a crei sum s fie C. Cu alte cuvinte este necesar s se determine un vector
binar M=(m1,...,mn), astfel c C=AM sau: C = ai m i .
Intuitiv problema este urmtoarea: cunoscnd greutatea unui rucsac nchis i greutile mai
multor obiecte care s-ar putea afla n interiorul su, s se determine setul de obiecte aflate n rucsac,
fr a se face deschiderea lui.
Cel mai bun algoritm cunoscut pentru rezolvarea ei n cazul n care dimensiunea rucsacului este n
cere (2n/2) timp i o memorie de (2n/2).
Exist totui o clas special de probleme de un asemenea tip, numit rucsac simplu, ce
pot fi rezolvate ntr-un timp ce depinde liniar de n.
ntr-un rucsac simplu elementele ai (i=1,...,n) sunt n relaie de dominan, adic ai > a j ,
j=1,...,i.
Relaia de dominan simplific soluia rucsacului, ea putndu-se face dup urmtoarea
procedur:
Procedura RUCSAC-SIMPLU (C,A,M)
Pentru j=N,1 execut
Dac caj atunci mj=1
altfel
mj=0
atribuie c=c-ajmj
dac c=0 atunci Soluia este M
altfel
Nu exist soluie
sfrit.
n [MERK 78] se prezint 2 variante ale metodei, ambele utilizabile doar n secretizare, nu
i n autentificare.
1) Algoritmul MH cu trap aditiv
n proiectarea unui astfel de criptosistem trebuie convertit mesajul simplu ntr-un mesaj cu
trap (trapdoor knapsack), care este greu de rezolvat. Mai nti se selecteaz un vector rucsac
simplu A=(a1,a2,...,an). Acesta permite o soluie simpl a problemei C=AM.
36
w este w=3.
Acest rucsac simplu este transformat ntr-unul cu trap A:
A=(71 mod 20, 73 mod 20, 75 mod 20, 710 mod 20)=(7,1,15,20).
Considerm urmtorul mesaj M care va fi cifrat:
(M)10=13 deci (M)2=(1101).
Criptograma C este obinut cu ajutorul vectorului trap A:
C=EA(M)=7+1+10=18
C=(10010).
La descifrare se obine mesajul clar cu vectorul simplu A care este secret:
M=DA(C)=DA(18)=RUCSAC_SIMPLU(318 mod 20, A)=
= RUCSAC_SIMPLU(14,A)=(1101)=13.
Cifrul Merkle Hellman este folosit n sistemul de operare UNIX pentru protecia confidenialitii
scrisorilor n comenzile enroll, xget i xsend.
2)
Un rucsac cu trap multiplicativ este uor de rezolvat dac elementele vectorului A sunt
relativ prime. Fiind date A=(6,11,35,43,169) i M=2838, este uor de determinat c M=61143,
deoarece 6,11 i 43 divid pe M, n timp ce 35 i 169 nu. Un rucsac multiplicativ este transformat
ntr-unul aditiv prin folosirea logaritmilor. Pentru ca ambii membri s aib valori rezonabile,
logaritmii sunt luai peste cmpul Galois GF(n), unde n este un numr prim.
Exemplu. Fie m=4 (numrul de componente ale rucsacului), n=257, A'=(2,3,5,7) i b=131
131a2=3(mod 257)
131a3=5(mod 257)
131a4=7(mod 257)
rezult a1=80, a2=183, a3=81, a4=195 i deci A=(80,183,81,195) este vectorul fcut public.
Gsirea logaritmilor peste GF(n) este relativ uoar dac (n-1) are numai factori primi mici
(aceasta nseamn valori de ordinul a 106 pn la 1012).
Presupunem c avem dat criptograma C=183+81=264 i vrem s gsim soluia C=AX.
Cunoscnd informaia trap n, A' i b putem calcula c'=bc(mod n).n exemplul C'=131264 (mod
257)=15=(20)(31)(51)(70). Rezult c X=(0,1,1,0), deoarece b c = b( ai xi ) = ai
acest caz este necesar ca
`xi
`xi
(mod n). n
ai
`xi
38
39