Documente Academic
Documente Profesional
Documente Cultură
4.1. Introducere
1
4.2. Alfabet, cuvinte.
Exemple
1. Dacă Σ = {A, B,..., X, Y, Z} este alfabetul latin, atunci ADPP și XUVNE sunt
cuvinte peste alfabetul Σ și aparțin lui Σ 4 , respectiv Σ5 , iar prin concatenare se obține
cuvântul ADPPXUVNE ∈ Σ 9 .
2. Dacă Σ = {0,1} atunci 010101 și 11011 sunt cuvinte peste alfabetul binar
Σ = {0,1} și prin concatenare se obține cuvântul 01010111011 ∈ Σ11 .
2
4.3. Unități de mesaj. Echivalenți numerici pentru unități de mesaj.
A B C D E F G H I J K L M
0 1 2 3 4 5 6 7 8 9 10 11 12
N O P Q R S T U V W X Y Z
13 14 15 16 17 18 19 20 21 22 23 24 25
Exemplu
1. Dacă Σ = {A, B,..., X, Y, Z} și ca unitate de mesaj avem digraful IN, atunci
{
echivalentul său numeric este 26 ⋅ 8 + 13 = 221 ∈ 0,1,..., 262 − 1 . }
2. Dacă Σ = {A, B,..., X, Y, Z, □} , unde □ reprezintă blankul și are echivalent numeric
pe 26, atunci Σ = 27 , trigraful BAC are ca echivalent numeric pe
3
N 3−1 x3−1 + N 3− 2 x3− 2 + N 3−3 x3−3 =
= N 2 x2 + Nx1 + x0 =
= 27 2 ⋅1 + 27 ⋅ 0 + 1 ⋅ 2 = 731 ∈ {0,1,..., 27 2 − 1} .
4.4. Criptosisteme
Definiție
O schemă de criptare, cifru sau criptosistem este un tuplu ( P , C , K, E , D ) undeː
1. P este o mulțime numită spațiul textelor în clar;
2. C este o mulțime numită spațiul textelor în cifrate;
3. K este o mulțime numită spațiul cheilor; iar elementele lui K sunt numite chei;
{ }
= Ek k ∈ K este o familie de funcții, Ek : P → C , numite funcții de criptare;
4. E
= {D
5. D k k ∈ K} este o familie de funcții, D k : C → P , numite funcții de
decriptare;
( )
6. Pentru orice e ∈ K , există d ∈ K astfel încât Dd Ee ( m ) = m, ∀m ∈ P .
Exemple
1. Criptosistemul Caesar
Fie Σ = {A, B,..., X, Y, Z} alfabetul latin și 0,1, 2,..., 25 echivalenții numerici
al lui A, B,..., X, Y, Z .
Identificăm pe Σ cu mulțimea {0,1, 2,..., 25} .
= = {0,1, 2,..., 25} = Σ .
Luăm PC
Dacă e ∈ Σ , Ee : Σ → Σ , Ee ( x ) = ( x + e ) mod 26 și d ∈ Σ , Dd : Σ → Σ ,
Dd ( x ) = ( x − d ) mod 26 și evident, De ( Ee ( m ) ) = m, ∀m ∈ Σ .
{
= Ee e ∈ K și D
Notăm cu . E }
= Dd d ∈ K . { }
Evident ( P , C , K, E , D ) = ( Σ, Σ, Σ, E , D ) este un criptosistem în sensul
definiției adoptate în aceastî secțiune și a fost atribuit în Roma antică lui Iulius Caesar.
Textul PARIS se identifică cu secvența 15, 0, 17, 8, 18 și prin funcția de
criptare E19 trece în secvența de numere 8, 19, 10, 1, 11.
4
(15 + 19 ) mod 26 = 8 ,
( 0 + 19 ) mod 26 = 19 ,
(17 + 19 ) mod 26 = 10 ,
(18 + 19 ) mod 26 = 1 ,
(18 + 19 ) mod 26 = 11 .
Asadar, textul ales PARIS se criptează cu funcția de criptare E19 în textul cifrat
ITKBL.
La rândul său textul cifrat ITKBL se identifică cu secvența 8, 19, 10, 1, 11, care
prin funcția de decriptare D19 trece la secvența de numere 15, 0, 17, 8, 18 pentru că
D19 ( 8 ) = ( 8 − 19 ) mod 26 = 15 ,
D19 (19 ) = (19 − 19 ) mod 26 = 0 ,
D19 (10 ) = (10 − 19 ) mod 26 = 17 ,
D19 (1) = (1 − 19 ) mod 26 = 8 ,
D19 (11) = (11 − 19 ) mod 26 = 18 .
Secvența de numere 15, 0, 17, 8, 18 se identifică cu mesajul PARIS, adică
textul de la care a pornit cifrarea.
Observație
Sistemul de criptare Caesar (Cezar) este unul din primele sisteme de
criptare. Conform istoricului Suetoniu, acest sistem a fost folosit de Cezar în
corespondența sa. Cezar, în cartea „De bello gallico”, el amintește de un sistem de
criptare, făra a da detalii. Apoi, în cartea „Viața lui Cezar”, Suetoniu descrie
sistemul folosit de Cezar, care consta în înlocuirea literelor romane cu cele grecești,
utilizând deplasarea k = 3 . Împăratul Augustus, nepotul lui Cezar a folosit acest
sistem cu k = 1 .
Datorită simplității sale a fost folosit timp îndelungat, de exemplu, în 1915
a fost utilizat de către armata rusă, drept înlocuitor pentru sistemele proprii de
criptare, prea sofisticate pentru a fi întrbuințate de către trupele terestre.
Folosind deplasarea k = 13 este inclus în ROT 13, implementat pe
sistemul UNIX.
Sistemul de criptare Cezar este in sistem generat de permutările ciclice din
P26 . Cum sunt numai 26 de chei posibile, acest sistem este extrem de vulnerabil la
atacul prin forță brută (prin parcurgerea tuturor cheilor posibile). (Atanasiu
Prelegerea 2).
5
Pentru a-i mări rezistența se poate folosi varianta, numită sistem Cezar cu
cheie, astfelː
Considerăm un cuvânt cheie, de preferință cu toate caracterele distincte (]n
caz contar, literele identice se folosesc doar la prima apariție). Cuvântul cheie se
așează la începutul alfabetului. După ce se termină, șirul se va completa cu liteele
care nu există în cuvântul cheie, în ordine alfabetică.
De exemplu, fie cuvântul cheie TURN
A B C D E F G H I J K L M
T U R N A B C D E F G H I
N O P Q R S T U V W X Y Z
J K L M O P Q S V W X Y Z
Pentru textul clar se vor folosi caracterele de pe primul rând, iar pentru
criptare se vor utiliza caracterele de pe cel de al doilea rând.
Astfel, cuvântul STUDIOS se va cripta PQSNEKP.
Acest sistem, sistemul Cezar generalizat cu cheie va rezista la atacul prin
forță brută mult mai bine, deoarece numărul cheilor va fi P26 = 26! .
Definiție
Procesul de determinare a unei chei k folosind un text criptat α (asociat cu
informații auxiliare) se numește criptanaliză.
scop
CRIPTAREA
⇒ AFLAREA TEXTULUI CLAR
DECRIPTAREA
comun
În general sistemele de criptare clasice se numesc și sisteme simetrice,
deoarece o data cu aflarea cheii de criptare Ek , cheia de decriptare Dk se va obține
imediat, fiind funcția inversă. De exemplu, la sistemul Cezar Dk = E26− k
reprezintă cheia de decriptare pentru cheia de criptare Ek .
SISTEME DE CRIPTARE − cifruri de permutare
SIMETRICA − cifruri de substitutie
2. Cifruri de permutare
Fie Σ un alfabet n ∈ ℕ∗ și Sn grupul permutărilor de n obiecte. Un cifru de
permutare este un tuplu ( P , C , K, E , D ) , unde PC = Sn . Dacă σ ∈ K ,
= = Σ n și K
atunci
→ C
Eσ : P
Eσ ( x1 , x2 ,..., xn ) = xσ (1) xσ ( 2) ...xσ ( n ) , oricare ar fi cuvântul
x1 x2 ...xn ∈ Σ n , iar
6
→P,
Dσ : C
Dσ ( x1 , x2 ,..., xn ) = xσ −1 (1) xσ −1 ( 2) ...xσ −1 ( n ) .
Observație
La aceste sisteme de criptare, textul clar se împarte în blocuri de n ( n ≥ 2 )
caractere, după care fiecare bloc i se aplică o permutare fixată.
3. Cifruri afine
7
Am arătat că, într-adevăr f a ,b este aplicație bijectivă.
Dacă f a′,b′ este inversa lui f a ,b atunci ∀ m ∈ Σ trebuie să avem
m = f a ′ ,b ′ ( f a , b ( m ) ) =
= a′ ( am + b ) + b′ = .
= a′am + a′b + b′
Ceea ce se verifică în acest caz că
a′a ≡ 1(mod N ) ,
ba′ + b′ ≡ 0 (mod N )
Cum c.m.m.d.c ( a, N ) = 1 , există a′ ∈ Σ , unic astfel încât
a′a ≡ 1(mod N ) .
Pentru calculul lui a′ putem folosi Teorema lui Euler și avem
a′ = aϕ ( N )−1 (mod N ) ,
Mai convenabil este să calculăm pe a′ cu algoritmul lui Euclid extins și
apoi
ba′ + b′ ≡ 0 (mod N ) ⇒ b′ ≡ ( −ba′ ) (mod N )
Fie Σ un alfabet cu N caractere. Definim criptosistemul ( P , C , K, E , D )
luând
= = Σ ≡ {0,1, 2,..., N − 1} ,
PC
{
= ( a, b ) ∈ Σ × Σ c.m.m.d.c ( a, N ) = 1 ,
K }
={f
E a ,b ( a, b ) ∈ K} ,
{ }
= f a−1 ,b−1 ( a, b ) ∈ K , unde a −1 este inversul modulo N al lui a ∈ Σ ,
D
c.m.m.d.c ( a, N ) = 1 .
Se obține astfel cifrul ( Σ, Σ, K, E , D ) numit cifrul afin peste alfabetul Σ
cu N caractere.
Exemplul 1
Fie Σ = {A, B,..., X, Y, Z} ≡ {0,1, 2,..., 25} și funcția afină f 7,12 asociată
cheii
= {( a, b ) ∈ Σ × Σ c.m.m.d.c ( a, 26 ) = 1} .
( 7,12 ) ∈ K
−1
a) Să se calculeze f 7,12 ,
b) Criptați cu funcția de criptare f 7,12 textul clar PAYME,
−1
c) Decriptați cu f 7,12 textul criptat obținut la punctul b).
8
Soluție
a) Aplicăm algoritmul lui Euclid extins numerelor 26 și 7.
26=7 ⋅ 3+5 ,
7=5 ⋅1+2 ,
5=2 ⋅ 2+1 ,
2=1 ⋅ 2+0 .
Întocmim tabelul
i qi ri si ti
0 - 26 1 0
1 3 7 0 1
2 1 5 1 -3
3 2 2 -1 4
4 2 1 3 -1
unde
sk = sk − 2 − qk −1sk −1 ,
tk = tk − 2 − qk −1tk −1
s0 = 1, t0 = 0 ,
s1 = 0, t1 = 1 .
Calculăm
s2 = s0 − q1s1 , t2 = t0 − q1t1
s2 = 1 − 3 ⋅ 0 , t2 = 0 − 3 ⋅1
s2 = 1 . t 2 = −3 .
s3 = s1 − q2 s2 , t3 = t1 − q2t2
s3 = 0 − 1 , t 3 = 1 − 1 ⋅ ( −3 )
s3 = −1 . t3 = 4 .
s4 = s2 − q3 s3 , t4 = t2 − q3t3
s4 = 1 − 2 ⋅ ( −1) , t 4 = −3 − 2 ⋅ 4
s4 = 3 . t4 = −11 .
Coeficienții Bezout sunt dați de s = 3, t = −11 pentru cuplul ( 26, 7 ) .
9
Avem
26 ⋅ 3+7 ⋅ ( −11) = 1 și 7-1 = ( −11) mod 26 = 15 .
Rezultă
( −ba ) (mod 26) = ( −7
−1 −1
⋅12 ) (mod 26) = 2 .
De unde
−1
f 7,12 = f15,2 .
b) textul clar PAYME se identifică cu secvența 15 0 24 12 4. Aplicăm f 7,12 și
obținem secvența 13 12 24 18 14, adică textul criptat N M Y S O.
În adevăr
f 7,12 (15 ) = ( 7 ⋅15 + 12 ) mod 26 = 13 , (N)
f 7,12 ( 0 ) = ( 7 ⋅ 0 + 12 ) mod 26 = 12 , (M)
f 7,12 (15 ) = ( 7 ⋅ 24 + 12 ) mod 26 = 24 , (Y)
f 7,12 (12 ) = ( 7 ⋅12 + 12 ) mod 26 = 18 , (S)
f 7,12 ( 4 ) = ( 7 ⋅ 4 + 12 ) mod 26 = 14 , (O)
−1
c) Aplicând f 7,12 = f15,2 numerelor 13, 12, 24, 18, 14 se obține secvența 15 0 24 12
4 ceea ce se identifică cu textul clar PAY ME.
Observație
Printre cheile de cifrare afină
{ }
= ( a, b ) ∈ Σ × Σ c.m.m.d.c ( a, N ) = 1 se găsesc și cele ale cifrului Caesar,
K
anume (1, b ) , b ∈ Σ .
4.5 CRIPTANALIZĂ
Criptografia studiază metodele matematice ce asigură securitatea informației.
Cu ajutorul tehnicilor matematice se asigură
• confidențialitatea (păstrarea secretă a informației)
• integritatea datelor (evitarea modificării neautorizate a datelor: inserare,
ștergere, substituție)
• autentificarea surselor de informație
• non-repudierea negării paternității informației.
Criptanaliza se ocupă cu metodele de atac asupra criptosistemelor. Obiectivul
principal al atactorului unui sistem criptografic este să determine cheia de
decriptare și să afle textul în clar.
Se presupune că atacatorul cunoaște tipul de cifru folosit și că are acces la toate
textele cifrate. Nu cunoaște cheia secretă a criptosistemului folosită și nu cunoaște
nici textele în clar.
10
O metodă de atac este să încerce să decripteze textele cifrate folosind toate
cheile posibile. Această metodă se numește căutarea exhaustivă (exhaustive search)
și este posibilă când Keste un număr mic, cum este cazul cifrului Cezar.
O metodă de atac eficace se fundamentează pe proprietăți de natură statistică a
limbii folosite în scrierea twextelor în clar, cum sunt frecvența literelor, digrafurile
etc.
Aceleași frecvențe pot fi identificate și textele cifrate suficient de lungi pentru
literele și diagrafurile care corespund prin criptare, ceea ce permite să se descopere
texte în clar sau cheile folosite. Acest procedeu de atac este cunoscut sub numele
de analiza frecvenței (frequency analysis).
Exemplu
Atacatorul Oscar cunoaște că s-a folosit criptosistemul Cezar și că mesajele
în clar sunt scrise în limba engleză. Așadar avem
Σ = {A,B,...,X, Y, Z} = {0,1, 2,..., 25} și criptarea se face cu funcție
f1,b : Σ → Σ, b ∈ Σ , f1,b ( x ) = ( x + b ) mod 26 .
Pentru determinarea parametrului b, Oscar că în textele criptate frecvența
cea mai mare o are litera U. Cum îm limba engleză cea mai mare frecvență o are
litera E, rezultă că prin funcția de criptare f1,b litera E trece în litera U, adică
numărul 4 este aplicat în 20. Așadar
20 = (1 + b ) mod 26 ⇒ b = 16 .
Observație Oscar poate folosi și metoda exhaustivă de atac. Alege un text criptat
de exemplu FQOCU pe care îl decriptează succesiv cu cheile
f1, − b ( x ) , b = 0,1,2,... și constată că decriptând cu f1, −16 = f1,10 obține textul cu
sens PAY ME și deduce b = 16 .
Exemplu
Atacatorul Oscar știe că textele în clar sunt în limba engleză și că s-a
folosit un cifru afin peste alfabetul Σ = {A,B,...,X, Y, Z} = {0,1, 2,..., 25} .
Analizând textele criptate Oscar constată că cele mai frecvente litere sunt R și W
în această ordine.
Atunci Oscar determină funcția de decriptare f a ′, b ′ : Σ → Σ , după cum
urmează. Folosind faptul că literele E și T, în această ordine, cu frecvența cea mai
mare în limba engleză, deduce că funcția f a ′, b ′ trece pe R în E și pe W în T.
Folosind echivalenții numerici ai literelor, avem
17 a′ + b′ ≡ 4(mod 26)
,
22a′ + b′ ≡ 19(mod 26)
Scăzând prima relație din cea de a doua găsim
5a′ ≡ 15(mod 26) .
11
Cum ( 5,26 ) = 1 , iar inversul 5−1 al lui 5 modulo 26 este 21, vom obține
a′ = (15 ⋅ 21)(mod 26) = 315(mod 26) = 3 ,
a′ = 3 și b′ = 5 .
Așadar, cheia de criptare este (a′, b′) = ( 21,5 ) .
Exemplu
Fie Σ = {A,B,...,X, Y, Z} = {0,1, 2,..., 25} și funcția de criptare f 35,17
f 35,17 : ℤ 676 → ℤ 676 , f 35,17 ( x ) = ( 35 x + 17 ) mod 676 .
Observăm că Σ
= 26 și N 2 = 262 = 676 .
Să criptăm mesajul clar LIVE. Avem două digrafuri LI și VE, iar
echivalențiii lor numerici sunt 11 ⋅ 26 + 8 = 294 , 21 ⋅ 26 + 4 = 550 .
Cu ajutorul funcției de criptare f 35,17 vom calcula
f 35,17 ( 294 ) = ( 35 ⋅ 294 + 17 ) mod 676 = 167 și
f 35,17 ( 550 ) = ( 35 ⋅ 550 + 17 ) mod 676 = 339 .
Cum scrierea în baza 26 a numerelor 167 și 339 este
167 = 6 ⋅ 26 + 11 = 611( 26) , respectiv 339 = 13 ⋅ 26 + 1 = 131( 26) , găsim că digraful
LI se criptează cu digraful GL, digraful VE se criptează cu digraful NB, așadar
mesajul LIVE se criptează cu GLNB.
12
CIFRUL DES
Cifruri bloc
Un cifru ( P , C , K, E , D ) peste un alfabet Σ cu Σ
= N litere se numește
cifru -bloc de lungime n, n ∈ ℕ* , dacă PC
= = Σn .
CIFRURI FEISTEL
Ceea ce este cunoscut sub numele de algoritmul DES este un cifru Feistel.
Cifrurile Feistel sunt cifruri-bloc peste alfabetul binar Σ = ℤ 2 = {0,1} .
Dacă t > 0 este un număr natural un cifru Feistel este un cifru-bloc de
lungime 2t peste alfabetul binar ℤ 2 = {0,1} și construcția sa se face pornind de la
un cifru-bloc S de lungime t peste alfabetul binar
( )
= ℤ t2 , ℤt2 , K,{ f k }k ∈K , unde f k : ℤt2 → ℤt2 este funcția de cifrare asociată
S
cheii k ∈ K .
Cifrul Feistel F în r runde, r ∈ ℕ* asociat lui S este un cifru-bloc de
lungime 2t peste alfabetul ℤ 2 = {0,1}
= ( ℤt2 , ℤt2 , C , K, E , D ) .
F
13
Totodată se presupune că se precizează o metodă conform căreia fiecare cheie
k ∈ K generează r chei k1 , k2 ,..., kr din K cu ajutorul cărora se construiește ăn r
runde criptarea
Ek : ℤt2 → ℤ t2 asociată cheii k ∈ K . Funcția de criptare Ek acționează asupra
textelor în clar p ∈ P
= ℤt2 după cum urmează. Se sparge p în două părți de
lungime t și avem p = ( L0 , R0 ) . Apoi secvențele
( L1, R1 ) , ( L2 , R2 ) ,..., ( Lr , Rr ) .
Se construiește în r runde prin
( Li , Ri ) = ( Ri −1 , Li −1 ⊕ ( Ri −1 ) ) , i = 1,2,..., r și în final punem
def
Ek ( p ) = ( Rr , Lr ) ∈ ℤ 22t .
Decriptarea corespunzătoare lui Ek se face aplicând Ek ( p ) ∈ ℤ 22t tot în r
(
runde prin ( Li −1 , Ri −1 ) = Li −1 , Ri ⊕ f ki ( Li ) )
uzând de cheile k1 , k2 ,..., kr în ordinea inversă celei utilizate la criptare, adică în
ordinea kr , kr −1 ,..., k1 .
CIFRUL DES
Cifrul DES este un cifru Feistel în care t = 32 , adică 2t = 64 , asociat
cifrului-bloc de lungime 32
= ( ℤ32
S 32
2 , ℤ 2 , K 2 ,...) .
= ℤ 48
Dacă considerăm cheia k ∈ ℤ 48 2 , atunci funcția de criptare f k : ℤ 2 → ℤ 2
32 32
2 → ℤ 2 a cărei acțiune se
Cuvântul R este expandat cu o funcție Ek : ℤ32 32
14
def
E ( R ) = R31R1R2 R3 R4 R5 R4 R5 R6 ...R31R32 R1 ∈ ℤ 48
2 .
Cuvântul E ( R ) ⊕ K ∈ ℤ 48
2 se împarte în 8 blocuri Bi , 1 ≤ i ≤ 8 , fiecare
de lungime 6 și avem
E ( R ) ⊕ K = B1B2 B3 B4 B5 B6 B7 B8 .
În etapa următoare se calculează
def
Ci = Si ( Bi ) ∈ ℤ 42 ,1 ≤ i ≤ 8 ,
unde Si : ℤ 62 → ℤ 42 , 1 ≤ i ≤ 8 sunt funcții numite S-boxe și a căror acțiune efectivă
va fi dată ulterior.
Se obține C = C1C2C3C4C5C6C7C8 .
Dacă biții cuvântului C ∈ ℤ 32
2 sunt notați cu xi , 1 ≤ i ≤ 32 și acestora
aplicăm permutarea σ descrisă cu matricea de tip 8 × 4 = 32
16 7 10 21
29 12 28 17
1 15 23 26
5 18 31 20
σ = ,
2 8 24 14
32 27 8 9
19 13 30 6
22 11 4 25
Atunci prin definiție
f k ( R ) = x16 x7 x10 x21 x23 ...x11 x4 x25 .
Descrierea S-boxelor
Avem 8 S-boxe, notarte S1 , S 2 ,..., S8 . Fiecare S-boxă este un tabel cu 4
linii și 16 coloane, notate 0, 1, 2, 3 respectiv 0,1, 2,...,15 . Pentru fiecare string
B = b1b2b3b4b5b6 ∈ ℤ 62 , avem S ( B ) ∈ ℤ 42 obținut scriind în baza 2 ca secvențe de
4 cifre binare numărul care în S-boxa lui S se află la intersecția liniei
2b1 + b6 ∈ {0,1,2,3} cu coloana 23 b2 + 22 b3 + 2b4 + b5 ∈ {0,1,...,15} .
Prezentăm S-boxa S1 (celelalte S-boxe pot fi găsite în [1])
Să calculăm S1 (101110 ) . Indicele de linie va fi b1b6 = 10 = 2 , iar cel de coloană
b2b3b4b5 = 0111 = 7 .
La intersecția liniei a doua cu coloana a șaptea în S-boxa S1 se găsește
11 = 1011( 2) , deci S1 (101110 ) = 1011 , analog S2 ( 001011) = 2 = 0010( 2)
15
S1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0 14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7
1 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8
2 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0
3 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13
Introducere
Un criptosistem este simetric dacă cheia d de decriptare coincide cu cheia
de criptare e, sau poate fi ușor calculată când se cunoaște e.
Dacă Alice și Bob doresc să comunice pe un canal sigur folosind un cifru
simetric trebuie ca în prealabil să stabilească o cheie secretă comună k de criptare
și decriptare, un algoritm E de criptare și un algoritm de decriptare D .
Dacă Alice dorește să transmită lui Bob mesajul în clar m, atunci
c = E (
calculează textul cifrat , k , m ) corespunzător și îl expediază având ca
destinatar pe Bob. Bob aplică lui c algoritmul de decriptare și obține mesajul în clar
m = D( k,c) .
Atacatorul Oscar poate intercepta mesajul cifrat c, dar nu poate obține
mesajul în clar m, dacă nu cunoaște cheia k, chiar dacă știe ce algoritmi de criptare
și de decriptare folosesc Alice, respectiv Bob.
Criptosistemele simetrice sunt numite și cifruri cu cheie privată.
Dacă o rețea de comunicație cu n utilizatori folosește un criptosistem simetric,
n ( n − 1)
n ( n − 1)
atunci cele cupluri de utilizatori trebuie să stabilească chei
2 2
secrete care trebuie ținute în siguranță.
⋅ 999
1000
Astfel, dacă n = 1000 , atunci avem = 499500 chei.
2
O simplificare importantă se poate face dacă fiecare utilizator își alege o
cheie de criptare și o încredințează unui centru de stocare. În acest fel, dacă Alice
vrea să îi transmită un mesaj m lui Bob, criptează pe m cu cheia de criptare k1 și
transmite mesajul criptat c A obținut, la un centru de stocare a cheilor. Aici mesajul
c A este decriptat folosind cheia k A și apoi m este criptat cheia lui Bob, k B și
transmis lui Bob.
Mesajul criptat , cB este decriptat de Bob cu cheia proprie k B . Astfel, numărul
cheilor necesare se reduce la n.
Un sistem criptografic este asimetric dacă este imposibil din punct de
vedere computațional, ca cheia de decriptare să fie dedusă din cea de criptare. Într-
16
un astfel de sistem criptografic fiecare utilizator stabilește o cheie de criptare e și o
cheie de decriptare d. Face publică cheia de criptare e și păstrează secretă cheia de
decriptare d.
Dacă cheia pubică a lui Bob este e = eB și cheia sa secretă este d = d B ,
iar Alice dorește să îi transmită mesajul în clar m, atunci aceasta îl criptează
folosind cheia publică e = eB și îl expediază lui Bob.
Singura persoană care poate obține pe m din mesajul criptat este Bob, căci
numai el cunoaște cheia de decriptare, d = d B și aceasta nu poate fi dedusă din
cheia publică e = eB .
Datorită celor de mai sus, criptosistemele asimetrice sunt numite și
criptosisteme cu cheie publică (public key cryptosystems).
Criptografia modernă are în vedere sisteme criptografice în care utilizatorii
legitimi dispun de algoritmi eficienți de criptare și de decriptare, iar adversarii nu
dispun decât de metode imposibile din punct de vedere computațional.
Legat de aceasta problemă s-a impus noțiunea de one-way function.
O funcție f : D → R este one-way function dacă imaginile
acesteia f ( x ) , x ∈ D sunt ușor de calculat, dar care sunt greu de inversat.
(dacă y ∈ R este imposibil de găsit din punct de vedere computațional, x ∈ D
astfel încât f ( x ) = y ).
Nu există până acum exemple de funcții pentru care să se fi demostrat că
sunt funcții one-way functions.
Pornind de la constatarea că în etapa actuală nu există algoritmi eficienți de
inversare pentru anumite funcții care intervin în criptografia modernă, s-a
conjecturat că sunt one-way functions. Dintre acestea menționăm:
1. Factorizarea
Funcția f : ℕ → ℕ, f ( x, y ) = xy este ușor de calculat și imposibil de
inversat.
2. Problema logaritmilor discreți
( )
Dacă g este un generator al grupului ℤ*p , ⋅ , p număr prim, atunci funcția
f : {0,1, 2,..., p − 2} → { 1,2,..., p − 1} , f ( x ) = g x mod p este ușor de
calculat și imposibil de inversat.
Sistemul RSA
Sistemul de criptare RSA (numit astfel după numele inventatorilor acestuia
Rivest-Shamir-Adelman) este unul dintre cele mai utilizate sisteme cu cheie
publică, fiind primul cifru cu cheie publică inventat în 1978 la MIT.
Securitatea acestui sistem constă în dificultatea descompunerii în factori
primi a numerelor foarte mari (care au aproximativ 500 de cifre în scrierea lor).
17
Așadar, securitatea cifrului RSA este asigurată de dificultatea factorizării unui
număr n egal cu produsul a două numere prime sistincte p și q foarte mari.
a. generarea cheilor RSA
1. Fiecare utilizator al cifrului RSA generează două numere prime foarte mari p și
q, p ≠ q (folosind de exeplu, testul Rabin-Muller).
2. Se calculează n = pq .
b. Criptarea RSA
Dacă Alice dorește să transmită lui Bob un mesaj în clar care are ca
echivalent numeric pe m, atunci trebuie ca 1 ≤ m < n = nB .
Mesajul în clar m este criptat de Alice folosind exponentul de criptare e = eB , care
apare în cheia publică (nB , eB ) a lui Bob. Alice calculează
c = me mod n
și numărul c este mesajul criptat, 0 ≤ c < n , apoi trimite pe c lui Bob.
c. Decriptarea RSA
( )
Rezultă că pq med − m , deci med ≡ m (mod n) .
Evident că m ed
≡ m (mod p) , dacă p m și analog med ≡ m (mod q) ,
dacă q m .
med (mod n) = m .
Cum 0 ≤ m < n , Bob obține folosind d = d B ,
Exemplu
Fie p = 3, q = 7, n = 21 și calculăm ϕ ( n ) = ϕ ( 21) = ( 3 − 1)( 7 − 1) = 12 .
Dacă luăm e = 5 , atunci cum ( 5,12 ) = 1 , există inversul lui 5 modulo 12 ,
5 −1 = 5 .
Fie textul clar m = 4 , atunci c = 45 mod 21 = 16 și avem
c d mod 21 = 165 mod 21 = 4 = m .
Exponențiere rapidă
19
Avem
k
∑ ei 2i
( )
k ei
a =a =∏ a 2i
= ∏ a2 .
i
e i =0
i =0 i =0
ei =1
( )
i +1 2
= a2
i
1. Folosind egalitatea a 2 se calculează succesiv
a 2 mod n,0 ≤ i ≤ k
i
2. Se calculează a e mod n = ( ∏a
i =0
2i
) mod n .
ei =1
Exemplu
Să se calculeze 673 mod100 .
Avem 73 = 26 + 23 + 1 = 1001001( 2 ) și trebuie să calculăm succesiv puterile
Obținem
62 mod100 = 36
62 mod100 = 362 mod100 = 96 = ( −4 ) mod100 ,
2
62 mod100 = 16 mod100 = 16 ,
3
( )
672 mod100 = 6 ⋅ 62 ⋅ 62 mod100 = ( 6 ⋅ 16 ⋅ ( −4 ) ) mod100 = 16 .
6 3
Exemplu
Fie alfabetul Σ = {a, b, c, d } cu echivalenții numerici 0, 1, 2, 3 respectiv
pentru literele a, b, c, d.
Avem Σ = N = 4 , și pentru n = 253 calculăm k = [ log 4 253] = 3 ,
pentru că 43 < 253 < 44 .
Să criptăm blocul bcc ∈ Σ 3 , ce corespunde blocului numeric 122, care la
rândul său corespunde numărului 122( 4 ) = 4 2 + 2 ⋅ 4 + 2 = 26 .
Luând exponentul de criptare e = 3 se găsește exponentul de decriptare
d = 147 .
Cu ajutorul criptării RSA găsim
263 mod 253 = 119 .
Reprezentăm pe 119 în baza 4 găsim
119 = 43 + 3 ⋅ 42 + 4 + 3 = 1313( 4)
și deci textului bloc în clar bcc ∈ Σ 3 îi corespunde textul bloc cifrat bdbd ∈ Σ 4 .
21
În adevăr, cum ϕ ( n ) = ( p − 1)( q − 1) = n − ( p + q ) + 1 , rezultă că
p + q = n + 1 − ϕ (n)
.
pq = n
Cum n + 1 − ϕ ( n ) este par, n + 1 − ϕ ( n ) = 2b, b ∈ ℤ și deci p și q sunt
sunt rădăcinile ecuației x 2 − 2bx + n = 0 , așadar p și q sunt numerele
b ± b2 − n .
22
m
a 2 ≡ 1(mod n) , atunci probabilitatea ca să nu existe a ∈ Pn astfel încât
m
1
a 2 ≡ 1(mod n) este 1 − → 1 , când r → ∞ .
2r
1
Astfel, cu probabilitatea 1 − r este corect să acceptăm că
2
m
a 2 ≡ 1(mod n) , ∀a ∈ Pn .
2
q −1
elemente sunt resturi pătratice și elemente nu sunt resturi pătratice modulo
2
q.
m
b. este multiplu nici de p − 1 și nici de q − 1 .
2
m m
În acest caz a 2 ≡ 1(mod p ) și a 2 ≡ 1(mod q ) în 25% cazuri pentru
a ∈ Pn .
m m
De asemenea a 2 ≡ −1(mod p ) și a 2 ≡ −1(mod q ) în 25% cazuri, iar în
m m
50% de numere a ∈ Pn avem a 2 ≡ 1(mod p ) și a 2 ≡ −1(mod q ) sau situația
m m
contrară, adică a 2 ≡ −1(mod p ) și a 2 ≡ 1(mod q ) .
23
Concucluzionăm că din cele două cazuri a și b de mai sus, dacă facem r
m
1
încercări cu a ∈ Pn , atunci cu probabilitatea 1 − r → 1 , avem p a 2 − 1 și
2
m m m
q a − 1 sau p a − 1 și q a − 1 .
2 2 2
m
Rezultă că pentru un asemenea a avem 1 < (a 2 − 1, n) < n ,deci
m m m
1 < (a − 1, n) < n , deci (a − 1, n) = p sau (a − 1, n) = q și astfel obținem
2 2 2
descompunerea n = pq .
2. Determină m = c . e
24
Exemplu
Presupunem că e = 3, n1 = 35, n2 = 33, n3 = 26 .
Fie N1 = n2 n3 = 33 ⋅ 26 = 858 , N 2 = n1n3 = 35 ⋅ 26 = 910 ,
N 3 = n1n2 = 35 ⋅ 33 = 1155 .
Aplicăm algoritmul lui Euclid extins pentru
( N1 , n1 ) = (858,35) , ( N 2 , n2 ) = (910,33) , ( N 3 , n3 ) = (1155, 26) , găsim
coeficienții Bezout, respectiv cuplurile de numere (2, − 49), (7, − 193), (−7,311)
și numerele de interpolare Lagrange l1 = 2 ⋅ 858 = 1716 ,
l2 = 7 ⋅ 910 = 6370 , l3 = ( −7 ) ⋅ 1155 = −8085 .
Dacă m este mesajul în clar transmis de bancă celor 3 clienți și textele
cifrate corespunzătoare sunt c1 = 13, c2 = 29, c3 = 25 . Aplicăm Lema chineză a
resturilor și găsim
c = (l1c1 + l2 c2 + l3 c3 ) mod n1n2 n3
c = (1716 ⋅ 13 + 6370 ⋅ 29 − 8085 ⋅ 25) mod 30030 = 4913 , rezultă
m = 3 c = 3 4913 = 17 .
25
Avem
c mod p = c dp mod p , c d mod q = c dq mod p .
d
Exemplu
Utilizăm metoda expusă mai sus pe exemplu precedent.
Avem
d11 = 147 mod10 = 7 , d 23 = 147 mod 22 = 15 ,
a11 = 1197 mod11 = 4 , a23 = 11915 mod 23 = 3 .
Aplicând lema chineză calculăm a, 0 ≤ a < 253 astfel încât a mod11 = 4 și
a mod 23 = 3 și găsim a = 26 . Rezultă că mesajul clar este m = 26 .
26
⌢
numește rădăcină primitivă modulo p dacă ord g = p − 1 , adică
{ ⌢ ⌢ ⌢
}
ℤ*p = 1̂, g , g 2 ..., g p − 2 .
Fie g rădăcină primitivă modulo p și A ∈ {1,2,..., p − 1} , atunci
∃!a ∈ {1, 2,..., p − 2} astfel încât A = g a mod p .
Numărul a este numit logaritmul discret al lui A în baza g și folosim
notația
a = d log g A .
Folosirea logaritmilor discreți în criptografie exploateazî faptul că nu există
algoritmi eficienți de calcul pentru logaritmii discreți. (DLP=discrete logarithm
problem)
Exemplu
Fie p = 13 . Un generator al grupului ℤ*13 = {1,2,...,12} este g = 2 și avem tabla
logaritmilor discreși modulo13 în baza g = 2 .
A 1 2 3 4 5 6 7 8 9 10 11 12
d log 2 A 0 1 4 2 9 5 11 3 8 10 7 6
Observație
Logaritmii discreți pot fi definiți în orice grup ciclic G de ordin finit n.
{ }
∀A ∈ G = 1, g , g 2 ,..., g n −1 există a ∈ {0,1, 2,..., n − 1} astfel încât A = g a în
grupul G și punem a = d log g A .
27
Transmite pe B lui Alice și păstrează secret pe b.
Cheia secretă comună este K = g ab mod p , care este obținută de Alice
calculăm
( )
a
B a mod p = g b mod p = K și este obținută de Bob calculând
mod p = ( g )
b
Ab a
mod p = K .
Exemplu
p = 17 și g = 2 Alice alege a = 7 și calculează A = 27 mod17 = 11 și transmite
lui Bob pe A = 11 .
Bob alege b = 4 și calculează B = 34 mod17 și transmite lui Alice pe 13.
Alice calculează K = B 7 mod17 = 4 și Bob calculează
K = Ab mod17 = 114 mod17 = 4 .
28
Decriptarea
Alice primește textul cifrat ( B, c ) din care poate obține textul în clar m
după cum urmează: împarte c cu cheia Diffie-Hellman K = B a mod p .
Pentru a evita calculul inversului modulo p al lui K se determină mai întâi
exponentul x = p − 1 − a și avem 1 ≤ x ≤ p − 2 . Mai mult
m = ( B x c) mod p ,
pentru că
( )
B x c = g b ( p −1− a ) Ab m = g p −1 g − ab g xb m = m mod p .
b
Exemplu
Fie p = 23, g = 7, a = 6 opțiunile lui Alice.
Avem A = g a mod p = 7 6 mod 23 = 4 .
Cheia publică a lui Alice este ( 23,7, 4 ) , iar a = 6 este cheia secretă.
Bob criptează textul în clar m = 7 . Alege b = 7 și calculează
B = g b mod 23 = 73 mod 23 = 21 și
( )
c = ( Ab m) mod 23 = 43 ⋅ 7 mod 23 = 11 .
Textul criptat este ( B, c ) = ( 21,11) .
Alice obține m = 7 calculând
( B( p −1− a )c) mod 23 = ( 21 ⋅ 11) mod 23 = 7 , deci m = 7 .
29
6. SEMNĂTURI DIGITALE
Exemple
1. Semnătura RSA
Nesituăm în ipoteza că Alice dorește să transmită lui Bob un document
electronic semnat. Fie ( n A , eA ) și ( nB , eB ) cheile pubice ale lui Alice, respectiv
Bob și d A , d B cheiile lor secrete. Fie x textul clar pe care Alice dorește să îl
expedieze însoțit de semnătura lui Bob. Alice calculează y = x eB mod nB ,
s = x d A mod n A și s′ = s eB′ mod nB = ( x d A mod n A )eB mod nB și expediază lui Bob
cuplul ( y, s′ ) .
Semnătura documentului x este s = x d A mod n A .
Pentru a obține textul în clar x Bob calculează
y dB mod nB = x eB d B mod nB = x .
Pentru a verifica semnătura s Bob calculează
30
( s′d B mod nB )eA mod n A = ( x d A mod nA )eA = x și obține pe x. Cum numai Alice
cunoaște cheia d A cu ajutorul căreia aceasta calculează s = x d A mod n A , Bob
autentifică semnătura s a documentului x.
Exemplu
Presupunem că ( n A , eA , d A ) = ( 33,7,3) , unde 33 = 3 × 11 și
( nB , eB , d B ) = ( 35,5,5) , unde 35 = 5 × 7 .
Presupunem că Alice dorește să transmită lui Bob documentul x = 6 și să îl
semneze.
Avem s = x d A mod n A = 63 mod 33 = 18 și
s′ = ( x d A mod nA )eB mod nB = 65 mod 35 = 23 .
De asemenea
y = x eB mod nB = 65 mod 35 = 6 .
Așadar, Alice expediază lui Bob documentul electronic semnat ( y, s′ ) = ( 6,23) .
Bob calculează y d B mod 35 = 65 mod35 = 6 și obține documentul în clar x = 6 .
Pentru validarea semnăturii s = 18 Bob calculează
s′d B mod nB = 235 mod 35 = 18 = s și apoi
( s dB mod nB )eA mod n A = 187 mod 33 = 6 = x .
Cum a obținut documentul în clar, x = 6 , autentifică semnătura lui Alice.
Exemplu
Dacă Σ = {0,1} ,
atunci f : {0,1} → {0,1} , b1b2 ...bk → b1 ⊕ b2 ⊕ ... ⊕ bk , unde ⊕ este simbolul
* h
31
O funcție de compresie este o aplicație h : Σ m → Σ n , m > n .
Dacă D este Σ* sau Σ m cu m > n și h : D → Σ n , (adică este o hash-
funcție sau o funcție de compresie), atunci pentru ca h să fie folosită în criptografie
trebuie să poată fi ușor de calculat. În plus h trebuie să fie one-way function, adică
imposibil de inversat din punct de vedere computațional (cere prea mult spațiu și
timp pentru a fi inversată). Aceasta înseamnă că dat s ∈ Σ n este imposibil de
calculat x ∈ D (unde D = Σ* sau D = Σ m cu m > n ) astfel încât h ( x ) = s .
Dacă h : D → Σ n , o coliziune a lui h este o pereche ( x, x′ ) ∈ D × D , cu
x ≠ x′ astfel încât h ( x ) = h ( x′ ) .
Spunem că h este weak collision resistant dacă dat x ∈ D este imposibil
din punct de vedere computațional să calculăm o coliziune ( x, x′ ) .
Spunem că h este strong collision resistant dacă este imposibil din punct
de vedere computațional să calculăm o coliziune ( x, x′ ) a lui h.
32
3. Semnătura digitală El Gamal
Semnătura digitală ElGamal este produsă similar cu cifrul ElGamal și securitatea
acestei semnături este asigurată de dificultatea calculării logaritmilor discreți în
grupul (ℤ*p , ⋅) , p prim, foarte mare.
α . Generarea cheii
Alice alege un număr prim p și o rădăcină primitivă g modulop. Alege la
întâmplare un număr a ∈ {0,1,2,..., p − 2} și calculeză A = g a mod p .
Cheia publică a lui Alice este ( p, g , A ) și cheia sa secretă este a.
β . Generarea semnăturii
Alice semnează un document x ∈ {0,1} , pentru aceasta folosește o funcție
*
( )
Deci (k , p − 1) = 1 atunci obținem s = k −1 h ( x ) − ar mod ( p − 1) .
Exemplu
Alice alege p = 23, g = 7, a = 6 și calculează
A = g a mod p = 76 mod 23 = 4 .
Cheia publică a lui Alice este ( 23,7, 4 ) , iar a = 6 este cheia secretă.
33
Alice dorește să semneze documentul x cu h ( x ) = 7 . Alege k = 5 și
găsește
r = g k mod p = 75 mod 23 = 17 , k −1 = 5−1 = 9 , inversul lui 5
mod ( p − 1) = mod ( 23 − 1) = mod 22 .
Atunci
s = k −1 ( h ( x ) − ar ) mod ( p − 1) = 9 ( 7 − 6 ⋅ 17 ) mod 22 = 3 .
34
− ( θ1 − θ2 ) ( θ 2 − θ3 ) ( θ1 − θ3 ) = (3θ12 + a )(3θ22 + a )(3θ32 + a ) , dar
2 2 2
{( x, y ) ∈ F }
def
E ( p, a, b ) = p
2
y 2 = x3 + ax + b ∪ {O} , unde O este un simbol
numit punctul de la infinit.
Exemplu
Fie curba eliptică y 2 = x3 + x + 6 peste F11 . Avem a = 1, b = 6 , calculăm modulo
11 în F11 4a 3 + 27b 2 = 4 ⋅ 13 + 27 ⋅ 6 2 = 8 ≠ 0 .
Se verificăcă singurele soluții ( x, y ) ∈ F112 pentru ecuația y 2 = x3 + x + 6 sunt
( 2, 4 ) , ( 2,7 ) , ( 3,5) , ( 3,6 ) , ( 5, 2 ) , ( 5,9 ) ,
( 7, 2 ) , ( 7,9 ) , ( 8,3) , ( 8,8 ) , (10, 2 ) , (10,9 ) .
Observație
Determinarea punctelor ( x, y ) ∈ Fp2 care verifică y 2 = x 3 + ax + b decurge în
mod natural astfel: pentru x = u ∈ Fp , calculăm w = u 3 + au + b și apoi căutăm
v ∈ Fp astfel încât v 2 = w . Dacă există un asemenea v ∈ Fp astfel încât v 2 = w ,
atunci (−v)2 = w , iar v ≠ −v pentru că p ≠ 2 . Deci dacă ( u , v ) ∈ E ( p, a, b )
atunci și ( u , − v ) ∈ E ( p, a, b ) . În particular, rezultă că E ( p, a, b ) are cel mult
2 p + 1 puncte.
Privind problema evaluării numărului punctelor unei curbe eliptice menționăm fără
demonstrație rezultatul
35
Teoremă (Hasse, 1933)
Dacă p > 3 este un număr prim, atunci
p + 1 − 2 p < E ( p , a, b ) < p + 1 + 2 p .
Observație
Dacă P1 și P2 sunt diferite de O , și P1 ≠ P2 , atunci x1 ≠ x2 , căci dacă x1 = x2 ,
atunci y2 = − y1 și deci P2 = − P1 (pentru că curba y 2 = x 3 + ax + b este simetrică
față de axa absciselor)
Definiție
Fie p > 2 este un număr prim. Un element w ∈ Fp = {0,1,2,..., p − 1} , w ≠ 0 se
numește rest pătratic modulo p dacă există v ∈ Fp astfel încât w = v 2 mod p .
36
Teoremă
p −1
Dacă p > 2 este un număr prim, atunci corpul Fp = {0,1, 2,..., p − 1} are
2
p −1
resturi pătatice modulo p și non-resturi pătratice modulo p.
2
Demonstrație
p −1
Fie wi ∈ Fp , wi = i 2 mod p, i = 1, 2,..., .
2
p −1
Evident wi este rest pătratic modulo p, 1 ≤ i ≤ .
2
Să arătăm că elementele w1 , w2 ,..., w p −1 ale lui sunt distincte.
2
p −1
În caz contrar există i, j ∈ Fp , 1 ≤ i < j ≤ astfel încât
2
i 2 mod p = j 2 mod p , adică p j 2 − i 2 . Cum j 2 − i 2 = ( j − i )( j + i ) și p este
prim, avem p ( j − i ) sau p ( j + i ) . Absurd, pentru că 0 < j − i < p ,
0< j+i< p.
p −1
Cum ( p − i ) mod p = i 2 mod p , pentru i = 1, 2,...,
2
, rezultă că în
2
p −1
nu mai sunt și alte resturi pătratice în afară de wi = i 2 mod p, 1 ≤ i ≤ .
2
Observație
Fie E ( p, a, b ) o curbă eliptică și x ∈ Fp = {0,1, 2,..., p − 1} . Dacă
w = x3 + ax + b este un rest pătratic modulo p și y 2 = w , atunci ( x, y ) și
( x, − y ) sunt puncte distincte ale lui E ( p, a, b ) . Dacă x3 + ax + b = 0 , atunci
( x,0 ) este punct al lui E ( p, a, b ) . Alte puncte de abscisă x ∈ Fp curba
E ( p, a, b ) nu are.
Exemplu
Fie E ( 5,0,1) o curbă eliptică, E ( 5,0,1) = {( x, y ) ∈ F 5
2
}
y 2 = x3 + 1 ∪ {O} .
Avem 4a 3 + 27b 2 = 27 mod 5 = 2 ≠ 0 , deci polinomul f = X 3 + 1 ∈ F5 [ X ] nu
are rădăcini multiple.
37
5 −1
Resturile pătratice în F5 = {0,1,2,3, 4} sunt în total = 2 și anume
2
1 = 12 mod 5, 4 = 22 mod 5 .
Ținând cont de Observația anterioară, putem determina punctele ( x, y ) ∈ F5 2 astfel
încât y 2 = x 3 + 1 , ca în tabelul următor:
x x3 + 1 y = ± x3 + 1 ( x, y )
0 1 1, 4 (0,1), ( 0,4 )
1 2 - -
2 4 2, 3 (2,2), ( 2,3)
3 3 - -
4 0 0 (4,0)
Curba E ( 5,0,1)
Așadar,
E ( 5,0,1) = {(0,1), ( 0, 4 ) ,(2, 2), ( 2,3) ,(4,0),O} și deci ( E ( 5,0,1) , + ) este un
grup de ordin 6.
Fie elementul G = ( 2,3) ∈ E ( 5,0,1) . Arătăm că G este element de ordin 6
al grupului ( E ( 5,0,1) , + ) , deci acest grup este ciclic.
Să calculăm G + G . Aplicăm regula A3 ) .
λ = 3 ⋅ 22 ( 2 ⋅ 3) mod 5 = 2 ,
−1
Avem
x3 = λ 2 − x1 − x2 , x3 = ( 4 − 2 − 2 ) mod5 = 0 ,
y3 = λ ( x1 − x3 ) − y ,
y3 = (2 ( 2 − 0 ) − 3) mod5 = 1 .
Deci 2G = ( 0,1) .
Calculăm in continuare
3G = 2G + G = ( 0,1) + ( 2,3) = ( x3 , y3 ) ,
y2 − y1 3 − 1
λ= = = 1,
x2 − x1 2
x3 = λ 2 − x1 − x2 = 4, y3 = λ ( x1 − x3 ) − y = 0 , deci 3G = ( 4,0 ) .
Similar vom obține:
4G = 3G + G = ( 4,0 ) + ( 2,3) = ( 0, 4 ) ,
5G = 4G + G = ( 0,4 ) + ( 2,3) = ( 2,2 ) ,
38
6G = 5G + G = ( 2, 2 ) + ( 2,3) = ( 2, 2 ) + ( 2, − 2 ) = 0 .
39
12 ( 28,13) 24 ( 20,29 )
Curba eliptică E ( 31,1,13)
(
grupului ( E , + ) . Punctul P va juca rolul generatorului g al grupului ℤ*p , ⋅ în )
protocolul Diffie-Hellman clasic și este numit punct de bază.
Alice alege a ∈ ℕ* , a < ordP și calculează A = aP = P + P + ... + P în
a ori
Exemplu
Fie E = E ( 31,1,13) și P = ( 9,10 ) ∈ E , avem ordP = 34 .
Alice a = 11 < 34 și calculează 11P = 11( 9,10 ) = ( 22,22 ) (vezi tabelul anterior
al curbei eliptice E ( 31,1,13) )
Bob alege b = 2 și calculează 2 P = 2 ( 9,10 ) = (18,29 ) .
Cheia secretă comună K = 22 ( 9,10 ) = ( 28,18 ) .
40
Pentru a cripta mesajul în clar Pm Alice alege la întâmplare
k ∈ ℕ* , k < ordP (P punctul de bază) și criptează pe Pm cu Pm + aB ( kP ) , unde
aB este cheia secretă a lui Bob și transmite lui Bob cuplul de puncte
(C1 , C2 ) = (kP, Pm + aB ( kP )) .
Pentru decriptare (adică pentru a obține pe Pm ) Bob calculează
C2 − aBC1 = Pm + k ( aB P ) − aB ( kP ) = Pm și obține în clar Pm .
Exemplu
Fie P ∈ E ( 31,1,13) , P = ( 22,22 ) = 11 ⋅ ( 9 ⋅ 10 ) , cum
ord ( 9,10 ) = 34, (11,34 ) = 1 , rezultă că ordP = 34 . Presupunem aB = 3 , iar Bob
calculează și face public aB P = 33 ( 9,10 ) = ( 9,21) .
Presupunem că Alice vrea să îi transmită mesajul Pm = ( 5,9 ) = 15 ( 9,10 ) .
Alice alege a A = k = 7 și calculează
C1 = kP = 7 ( 22, 22 ) = 77(9,10) = 9 ( 9,10 ) , pentru că ordP = 34 și
77 = 2 ⋅ 34 + 9 .
Alice mai calculează
k (aB P) = 7 ⋅ 22 ( 9,10 ) = 231( 9,10 ) = 27 ( 9,10 ) = ( 6,7 ) și deci
C2 = Pm + k ( aB P ) = ( 5,9 ) + ( 6,7 ) = ( 24, 29 ) .
Bob obține prin decriptare
C2 − aBC1 = ( 24,29 ) − ( 6,7 ) = 15 ( 9,10 ) = ( 5,9 ) = 15 ( 9,10 ) = Pm .
Bibliografie
1. A. Atanasiu, Teoria codurilor detectoare de erori, Ed. Univ., Bucuresti, 2001
2. C. Gheorge, D. Popescu, Criptografie. Coduri. Algoritmi, Ed. Univ., Bucuresti,
2005
3. I.D. Ion, S. Bârză, R. Ioan, Fundamentele algebrei, Editura Fundaţiei România
de Mâine, Bucureşti, 2012
4. I. D.Ion, S. Bărză, Aritmetica, teoria numerelor și metode algoritmice în algebră,
Editura Fundaţiei România de Mâine,, 2008
5. J. A. Buchmann, Introduction to Cryptography, Ed.Springer, 2000
6. J. Hoffstein, J. Piphen and Silverman, An Introduction to Mathematical
Cryptography,Springer, 2008
7. N. Koblitz, A course in Number Theory and Cryptography, Ed.Springer, 1998
8. S. Ling, C. Xing, Coding Theory, Cambridge Univ. Press,2008
9. J.H. van Lint, Introduction to Coding Theory, Springer, 1999
10. E. Simion, Enciclopedie Matematică, Ediție coordonată de M. Iosifescu și O.
Stanășilă, Editura AGIR, ISBN 978-973-720-288-8, pp. 905-944, 2010.
41
11. E. Simion, D. Naccache, A.Mihăiță, R.F.Olimid, A.G. Oprina, Criptografie și
securitatea informației, Ed. MatrixRom, 2011.
42