You are on page 1of 9

Securitatea unui sistem de criptare – noțiuni de teoria probabilităților și teoria

informației; complemente de matematică

Dezvoltarea unui sistem de criptare are la bază aspecte fundamentale din domeniile: matematică
discretă, statistică și probabilități și teoria informației.
În 1949, Shannon publica lucrarea ”Communication theory of secrecy systems” – piatra de
temelie în elaborarea sistemelor de criptare, care urmăresc să asigure o comunicare sigură printr-un canal
de comunicare nesigur.
Conceptul de entropie, dezvoltat în contextul Teoriei Informației, ca măsură a gradului de
incertitudine al informației, este utilizat în proiectarea algoritmilor moderni de criptare. Acest concept,
cât și tehnicile utilizate în domeniul Teoriei Informației, au natură probabilistă și în acest sens, Teoria
Informației are o strânsă legătură cu Teoria Probabilităților.

Elemente de teoria probabilităților în criptografie

experiment aleator ► experiment cu mai multe rezultate posibile.


evenimente ►rezultatele unui experiment aleator
De exemplu, aruncarea unui zar constituie un experiment cu 6 evenimente posibile, în care: evenimentul
sigur este apariția oricărei fețe, evenimentul imposibil este apariția feței 7.
probabilitatea unui eveniment ► număr care exprimă șansa să se întâmple un eveniment. Este
exprimată ca un număr între 0 și 1, unde 0 înseamnă „niciodată” și 1 înseamnă „întotdeauna”. Cu cât
este mai mare probabilitatea, cu atât este mai mare șansa de a se întâmpla evenimentul.
Este exprimată ca raportul dintre numărul de cazuri favorabile evenimentului si numărul total de cazuri
posibile.
De exemplu, cunoscând semnificația unei chei criptografice, ca fiind o secvență cu o lungime de n biți
introdusă într-un algoritm de criptare, probabilitățile intervin în aprecierea șanselor de reușită ale unui
atac: contorizarea numărului de evenimente reușite, cum ar fi identificarea unicei chei secrete corecte;
de exemplu pentru o cheie pe n biți, numărul de posibilități care pot fi generate este de 2n, deci 2n valori
posibile ale cheii. Atunci, probabilitatea ca printr-o alegere aleatoare să fie aleasă cheia corectă este 1/2n.
În general, dacă probabilitatea unui eveniment este p, atunci probabilitatea ca evenimentul să nu se
întâmple este de 1-p. Astfel, probabilitatea de a alege o cheie greșită în exemplul anterior este, prin
urmare, 1 - 1/2n, care un număr foarte apropiat de 1, ceea ce înseamnă aproape certitudine.

Axiomele probabilităților:
P(E) ≥ 0 probabilitatea unui eveniment este un număr nenegativ
P(S) =1 probabilitatea evenimentului sigur este egală cu 1
Dacă {E1, E2, …, Ei, …} este o secvență de evenimente mutual exclusive a.î. Ei ∩ Ej = ⏀, ∀ i și j, atunci
P(E1 ⋃ E2 ⋃ …⋃ Ei ⋃ …) = P(E1) + P(E2) + ... + P(Ei) + ....
probabilitatea mai multor evenimente mutual exclusive este egală cu suma probabilităților
evenimentelor.
Două evenimente se numesc independente, dacă realizarea unuia nu influenţează realizarea celuilalt; în
caz contrar, când realizarea unui eveniment influenţează realizarea altui eveniment, ele sunt numite
evenimente dependente.
Fie A,B evenimente independente. Atunci P(AB) = P(A)⋅P(B), adică probabilitatea producerii
simultane a evenimentului A şi B, este egală cu produsul probabilităţilor acestor evenimente.

Alte proprietăți:
Pr(∅) = 0
P(non E) = 1 - P(E) , unde P(non E) este probabilitatea evenimentului contrar
Dacă E1⊆E2 (evenimentul E1 este implicat în evenimentul E2) atunci P(E1) ≤ P(E2)
Pentru orice evenimente Ei și Ej are loc egalitatea: P(Ei ⋃ Ej) = P(Ei) + P(Ej) - P(Ei ∩ Ej)

probabilitatea producerii evenimentului Ei sau Ej

Exemplu: Două urne conțin bile albe și bile negre, astfel:


- prima urnă conține: 6 bile albe - a doua urnă conține: 2 bile albe
4 bile negre 8 bile negre
Din fiecare urnă se extrage câte o bilă. Care este probabilitatea ca cel puțin o bilă extrasă să fie albă?
Fie E1 – evenimentul ca bila extrasă din prima urnă să fie albă
Fie E2 – evenimentul ca bila extrasă din a doua urnă să fie albă
P(E1 ⋃ E2) = P(E1) + P(E2) - P(E1 ∩ E2)
Cum evenimentele E1 și E2 sunt independente, P(E1 ∩ E2) = P(E1) ⋅P(E2) = 6/10 ⋅ 2/10 = 12/100
Deci P(E1 ⋃ E2) = 6/10 + 2/10 -12/100 = 68/100 = 0.68

probabilități condiționate ► probabilitatea unui anumit eveniment care urmează să aibă loc, cunoscând
deja că alt eveniment a avut loc:
Fie evenimentele arbitrare Ei și Ej. Se definește probabilitatea condiționată a lui Ei de către Ej ca
probabilitatea de a se realiza evenimentul Ei dacă în prealabil s-a realizat evenimentul Ej și se calculează
conform formulei:
P( Ei  E j )
P( Ei | E j ) 
P( E j )

Ei este evenimentul condiționat, iar Ej este evenimentul care condiționează.


Deci probabilitatea unui eveniment, condiționată de realizarea unui alt eveniment, este egala cu raportul
dintre probabilitatea intersecției (producerii simultane) a celor două evenimente și probabilitatea
evenimentului ce condiționează.
De exemplu, în urma unui sondaj pe un anumit număr de persoane, au rezultat următoarele date
procentuale, grupate într-un tabel de contingență.
Tabelele de contingență (crosstabs) sunt utilizate în statistică pentru a rezuma relația dintre mai multe
variabile categoriale.
SS (cu Studii Superioare) FSS (fără Studii Superioare) Total
B(Bărbați) 0.35 0.09 0.44 (total Bărbați)
F (Femei) 0.51 0.05 0.56 (total Femei)
Total 0.86 (total persoane cu SS) 0.14 (total persoane fără SS) 1

Care este probabilitatea ca o persoană aleasă aleator să fie bărbat, cunoscând faptul că persoana are studii
superioare?
P( B  SS ) 0.35
Trebuie calculat: P( B | SS )    0.4069  40.69%
P( SS ) 0.86

Teorema lui Bayes:


Se consideră două evenimente Ei și Ej, care nu sunt independente.

P( Ei  E j ) P( Ei  E j )
Atunci: P( Ei | E j )  și P( E j | Ei )  ⟹
P( E j ) P( Ei )

P( Ei )  P( E j | Ei )
Dacă P(Ej)>0, atunci: P( Ei | E j ) 
P( E j )

variabilă aleatoare ► este o funcție care asociază fiecărui eveniment o valoare: X : E → R

experiment aleator evenimente rezultate


variabilă
eveniment rezultat valoare numerică
aleatoare
E X R
Exemplu: aruncarea zarului
X : E = {E1, …, E6} → {1, …, 6},
unde 1, …, 6 reprezintă realizările particulare ale variabilei aleatoare X

Definiția axiomatică: o variabilă aleatoare discretă X se definește prin mulțimea valorilor pe care
aceasta le poate lua, Ẋ, și printr-o distribuție de probabilitate definită pe mulțimea valorilor Ẋ.
Probabilitatea ca variabila aleatoare X să ia valoarea x ∈ Ẋ se notează PX(x) sau P(X=x), iar pentru
ușurința scrierii P(x).
De exemplu, în aruncatul monedei, distribuția este 1/2 pentru cap și 1/2 pentru pajură, iar suma
probabilităților este 1/2 +1/2 = 1.
Schematic, distribuţia unei variabile aleatoare discrete X se scrie sub forma unui tablou unde pe primul
rând se trec valorile posibile ale variabilei aleatoare X, iar sub fiecare valoare posibilă, probabilitatea cu
care X ia această valoare:
x1 x2 ....... xi ........ xn xi
X: = i = 1, 2, ..., n
p1 p2 ....... pi ........ pn pi

Deoarece într-un experiment variabila aleatoare ia una şi numai una din valorile sale posibile,
avem relaţia: P(X=x1) + P(X=x2) + ... + P(X=xn) = 1, deci

distribuția de probabilitate PX : Ẋ → [0,1] trebuie să îndeplinească condiția ca  P ( x )  1.



X
x X

distribuție uniformă ► când toate probabilitățile din distribuție sunt egale, ceea ce înseamnă că toate
rezultatele au aceeași probabilitate de apariție. Dacă sunt N evenimente, atunci fiecare eveniment are
probabilitatea de apariție egală cu 1/N.
De exemplu, dacă o cheie pe 27 – 128 biți este aleasă la întâmplare, conform unei distribuții uniforme,
atunci fiecare dintre cele 2128 chei posibile vor avea o probabilitate de 1/2128.

distribuție neuniformă ► când probabilitățile din distribuție nu sunt toate egale.


De exemplu, în aruncatul monedei, distribuția este deplasată și poate genera cap cu o probabilitate de
1/3 și pajură cu o probabilitate de 2/3.

perechi de variabile aleatoare discrete ► fie:



variabila aleatoare discretă X, definită prin mulțimea valorilor pe care le poate lua, X ={x1, x2, ..., xn}
și

variabila aleatoare discretă Y, definită prin mulțimea valorilor pe care le poate lua, Y ={y1, y2, ..., yn}
Se notează cu pij probabilitatea comună ca X să ia valoarea xi și Y să ia valoarea yj
pij = PX,Y(x,y) = P(X=xi , Y =yj)
Pentru funcția de probabilitate comună avem proprietățile:
PX ,Y ( x , y )  0

P
 
X ,Y ( x, y )  1
xX ,yY

independența statistică ►
► două evenimente Ei și Ej sunt independente dacă:
P(Ei , Ej) = P(Ei) ⋅ P(Ej)
deci probabilitatea comună de realizare a evnimentelor Ei și Ej este egală cu produsul dintre
probabilitatea ca evenimentul Ei să se realizeze și probabilitatea ca evenimentul Ej să se realizeze

► perechea de variabile aleatoare discrete X și Y sunt independente statistic dacă oricare dintre
realizările lor particulare sunt independente:
PX ,Y ( x , y )  PX ( x )  PY ( y )

unde: x este o realizare particulară a lui X


y este o realizare particulară a lui Y

► variabilele aleatoare discrete X1 , X2 , .... Xn sunt independente statistic dacă:

PX1 ,...,,X n ( x1 ,..., xn )  PX1 ( x1 )  .....  PX n ( xn )

Entropia variabilelor aleatoare discrete

Teoria Informației
apreciază criptografic: care este dimensiunea unei chei a.î. criptosistemul să nu poată fi spart
criptanalitic: de câtă informație criptată e nevoie pt. a sparge un mecanism de criptare
noțiunea de bază entropia: măsură a gradului de incertitudine a informației

D.p.d.v. al Teoriei Informației, entropia este utilizată pentru a calcula numărul de biți necesari
pentru a codifica o anumită informație:
Astfel, în contextul teoriei informației, în general, o sursă discretă de informație generează un
număr de simboluri dintr-un alfabet S={s1, s2, …, sn} – mulțimea tuturor simbolurilor posibile.
Indiferent de alfabetul utilizat, codarea unui mesaj transmis de sursă presupune ca fiecare simbol
sk să fie reprezentat printr-un șir de biți – cuvânt de cod, utilizând în acest scop cât mai puțini biți.

► Codificare cu lungime fixă a cuvintelor de cod:


În general, pentru un alfabet cu n simboluri este nevoie de log2n biți per simbol în reprezentare:
De exemplu:
- pentru un alfabet de 4 simboluri {s1, s2, s3, s4}sunt necesari 2 biți per simbol, iar cuvintele de cod
generate vor fi: {00, 01, 10, 11}
- pentru un alfabet de 16 simboluri {s1, s2, …, s16}sunt necesari 4 biți per simbol, iar cuvintele de
cod generate vor fi: {0000, 0001, 0010, 0100, 1000, 0011, 0101, 1001, 0110, 1010, 1100, 1110, 1011,
0111, 1101, 1111}.

► Codificare cu lungime variabilă a cuvintelor de cod:


În cazul în care probabilitățile de apariție ale simbolurilor într-un șir de date sunt diferite, este
indicată o codificare cu lungime variabilă, astfel încât simbolurile cu probabilități de apariție mai mari
să aibă cuvinte de cod mai scurte, iar cele cu probabilități de apariție mai mici să aibă cuvinte de cod
mai lungi.
La modul general, pentru un alfabet cu n simboluri, S={s1, s2, …, sn}, unde simbolul sk are
probabilitatea de apariție p(sk) și este codificat cu l(sk) biți, numărul mediu de biți per simbol într-un text
care este codificat cu acest alfabet este calculat prin formula:

_ n
l   p ( sk )  l ( sk )
k 1

Pentru a aprecia cantitatea de informație conținută într-un mesaj, Shannon definește:


1
► Informația asociată unui simbol este i(sk) =- log2p(sk)= log2 – măsurată în biți. Se observă
p ( sk )
că cu cât probabilitatea asociată unui simbol este mai mare, cu atât informația asociată simbolului este
mai mică.

► Informația medie generată de sursă se numește entropia informațională a sursei și se calculează


cu formula:
n n
H ( S )   p ( sk )  log2 p ( sk )   p ( sk )  log2 (1 / p ( sk ))
k 1 k 1

De exemplu, se consideră o sursă discretă de informație ce se caracterizează prin următoarea


distribuție de probabilități:

s1 s2 s3 s4 s5
S:
0.0625 0.0625 0.125 0.25 0.5

H(S) = 0.0625*log2(1/0.0625) + 0.0625*log2(1/0.0625) + 0.125*log2(1/0.125) +


0.25*log2(1/0.25) + 0.5*log2(1/0.5) = 0.0625*log224 + 0.0625*log224 + 0.125*log223 + 0.25*log222 +
0.5*log22 = 0.0625*4 + 0.0625*4 + 0.125*3 + 0.25*2 + 0.5*1 = 0.25 + 0.25 + 0.375 + 0.5 + 0.5 =1.875

Relația dintre entropie și lungimea medie a unui cuvânt de cod: în mod evident se urmărește ca
_
l să fie cât mai mic și se poate demonstra că:

_
H( S )  l  H( S ) 1

► Fie o variabilă aleatoare discretă X, definită prin mulțimea valorilor pe care aceasta le poate lua,
{x1, x2, ..., xn}cu P(X=xi)=pi .
Care sunt informațiile obținute prin rezultatul unui experiment care are loc în funcție de această
distribuție a probabilităților? În mod echivalent, dacă experimentul nu a avut loc încă, care este
incertitudinea cu privire la rezultat? Această cantitate se numește entropia lui X și este notată de H (X).
H(X) se definește ca:
n
H ( X )   pi log2 pi
i 1

Convenție: dacă pi = 0 se consideră pi log2 pi  0


► În general, pentru o variabilă aleatoare X, modelată de distribuția de probabilitate PX : Ẋ →
[0,1], se definește entropia a Shannon sau incertitudinea variabilei aleatoare X:

H( X )   p 
X ( x ) log2 p X ( x )
xX

Teoremă

0  H ( X )  log 2 | X |

H ( X )  0  (  )x  X a .î .PX ( x )  1
  1
H ( X )  log2 | X | (  )x  X avem PX ( x )  
|X|

Obs: Entropia poate fi calculată în raport cu toate componentele unui criptosistem. De exemplu, cheia

K poate fi gândită ca o variabilă aleatoare cu valori în mulțimea K și se poate calcula entropia H(K).
Analog, se poate calcula entropia H(P) și H(C) ale variabilelor aleatoare asociate cu mesajul în clar
(”plain text”) și respectiv mesajului cifrat (”cipher text”).

► Pentru o variabilă aleatoare X, se definește redundanța variabilei prin formula:



R( X )  log2 | X |  H ( X )

► Se definește entropia variabilelor aleatoare X1, ... , Xn ca o extensie a definiției entropiei variabilei
aleatoare X:

H ( X 1 ,..., X n )   p X1 ,...X n ( x1 ,..., xn ) log2 p X1 ,...X n ( x1 ,..., xn )

► Se definește redundanța variabilelor aleatoare X1, ... , Xn ca o extensie a definiției redundanței


variabilei aleatoare X:

Rn ( X 1 ,..., X n )  n  log2 | X |  H ( X 1 ,..., X n )

► Pentru un criptosistem descris prin structura: (P, C, K, ε, D), entropia (per literă) a unui limbaj
natural L, notată HL este o măsură a informației medii per literă dintr-un text clar, cu înțeles (cu
semnificație), deci HL măsoară cantitatea medie de informație per literă (biți per caracter) într-un astfel
de text.
Într-o codificare cu lungime fixă, pentru un alfabet cu 26 simboluri este nevoie de log226 ≈ 4.76 biți per
simbol în reprezentare, deci pentru alfabetul englez, fiecare caracter transmite 4.76 biți de informație.
Deci, la modul ideal, un șir aleator de litere – textul clar (în care fiecare literă are aceeași probabilitate
de apariție) are entropia log2|L| = log226 ≈ 4.76.
Dar, ținând cont de frecvența de apariție a literelor în limba engleză (Tabelul 1), s-a apreciat empiric:
1.0 ≤ HL ≤ 1.5, deci conținutul informațional în limba engleză este de aproximativ 1.25 biți pe literă.
► Se definește redundanța unui limbaj, notată RL ca fiind fracția de caractere în exces care sunt
presupuse a fi redundante:
HL
RL  1  ,
log2 | P |

log2 | P |fiind entropia unui limbaj aleator, care are redundanța nulă astfel încât R L măsoară fracția de
caractere în exces care sunt presupuse a fi redundante.

Considerând HL = 1.25 și log2 | P | = 4.76 ⟹ RL = 0.74,

adică d.p.d.v al codificării, limba engleză este 74% redundantă, în sensul că pentru un text suficient de
mare, este posibil să se găsească o anumită „codificare“ ce va comprima textul în limba engleză la
aproximativ un sfert din lungimea inițială.

► D.p.d.v al criptanalizei, pentru un criptosistem descris prin structura: (P, C, K, ε, D), din totalitatea
cheilor posibile pentru criptarea unui text clar, cheile posibile dar incorecte sunt numite chei
false/înșelătoare.
Se consideră un criptosistem cu chei alese echiprobabil și fie RL redundanta limbajului utilizat. Pentru
un text criptat de lungime n, unde n este suficient de mare, numărul mediu estimat de chei false, sn,
satisface relația:
|K|
sn  1
| P |nRL

► Pentru un sistem de criptare cu spațiul cheii K și spațiul textelor clare P, se definește distanța de
unicitate, notată cu U, ca valoarea lui n la care numărul mediu statistic al cheilor false devine zero, altfel
spus cantitatea medie de text criptat necesară pentru a calcula cheia, admițând un timp de calcul suficient.
Considerând sn = 0, se obține formula:
log2 | K |
U
RL  log2 | P |

De exemplu:
- în cazul cifrului de substituție simplă, unde |P |= 26, iar |K| = 26!, considerând RL = 0.74, se obține o
estimare a distanței U: U ≃ 25, ceea ce înseamnă că pentru o lungime de text criptat de cel puțin 25 de
caractere se poate obține o decriptare unică.
- în cazul cifrului de deplasare, unde |P| = |K| = 26, considerând RL = 0.74, se obține o estimare a distanței
U: U ≃ 1.33
Deci, bazându-se pe redundanța mesajului în clar, distanta de unicitate a unui cifru estimează cantitatea
de text cifrat necesară pentru regăsirea cheii, asigurând astfel descifrarea unică.
În general, cu cât distanța de unicitate este mai mare, cu atât criptosistemul este mai bun.
Distanța de unicitate poate fi mărită prin reducerea redundanței. Un mod de a face acest lucru este
compresia datelor înainte de criptare, reducând cantitatea de date care trebuie criptate.

Obs: Pentru majoritatea criptosistemelor simetrice, distanța de unicitate este definită ca entropia
spațiului cheilor divizată prin redundanța limbajului:
H( K )
U 
RL

You might also like