Explorați Cărți electronice
Categorii
Explorați Cărți audio
Categorii
Explorați Reviste
Categorii
Explorați Documente
Categorii
................................................................
1
Ca exemplu, ultima egalitate implic
16
0 1 i / 21 = i / 21 + 29i + 47 j
1 1 j / 21 j / 21 47i + 76k
ceea ce d 400 de puncte fixe pentru transformarea T16, puncte cu coordonatele
(i/21, j/21), 0 < i, j < 21. (De observat c proprietatea toroidal implic faptul c
ambele coordonate ale vectorului cel mai din dreapta sunt nule.)
2
Principiul confuziei
Toate cele cinci simboluri pot fi utilizate pentru transmitere. Dar deoarece se
urmreste evitarea erorilor, se pot trimite cel mult dou: fie a, c, fie a, d, fie b,
d, fie b, e, fie c, e, adic o multime independent de noduri si rata informatiei
este 1 = log2.
Graful G definit astfel este numit si graful de confuzie al simbolurilor.
Rata informatiei poate fi crescut prin transmiterea a n simboluri deodat,
pentru n = 1, 2, 3,
Cum poate fi perechea xy confundat cu perechea xy? Dac are loc una din
situatiile:
x = x si y y pot fi confundate
y = y si x x pot fi confundate
x x pot fi confundate si y y pot fi confundate.
Aceasta echivaleaz cu a lua produse ale grafului cu el nsusi, de pild G, G2 =
GG, G3 = GGG,
Gn se numeste graful de confuzie de lungime n.
Pentru un graf G, fie (G) dimensiunea celei mai mari (sub)multimi
independente.
Rata informatiei pentru siruri de lungime n este definit ca
log (G n )
= log(( (G n ))1 / n )
n
Este usor de vzut c (Gn) ((G))n.
Shannon a definit drept capacitatea la eroare zero a unui graf G prin (G) =
supn ( (G n ))1/ n . Astfel, pentru graful ciclic pentagonal C5, (C5) = 2 si rata
informatiei este 1.
3
Se poate calcula (C5)? Iat imediat graful C5C5.
Multimea aa, bc, ce, db, ed este independent. Asadar, (C5C5) = 5. Decurge
de aici c (C5) 5 si mai departe, rata informatiei pe dou simboluri este de
cel putin
log 5
1,16 > 1
2
Nu este foarte simplu a arta c (C5) 5 . O problem celebr deschis este
evaluarea limitei (C7) si mai general a limitelor (Cn) pentru n impar.
4
Nu are nici un sens a itera cifruri idempotente. Dar chiar dac un cifru nu este
idempotent nu exist vreo garantie c iterarea (repetat) conduce la un cifru bun
(exemplu mai jos).
Ideea cifrurilor produs si iteratiile sunt utilizate n construirea cifrurilor de
genul DES (Data Encryption Standard).
DIFUZIA SI CONFUZIA
Siguranta neconditionat
5
Calculele care urmeaz pot fi fcute de oricine cunoaste distributiile
probabilistice a textelor n clar si a spatiului cheilor.
Pentru un text cifrat dat y C are loc:
pC ( y ) = p (k ) pP ( Dk ( y ))
{k: y C ( k )}
K
Un sistem de criptare este perfect secret dac pP(x|y) = p(x) pentru orice x P
si y C.
Exemplu: Fie P = {a, b}, K = {k1, k2, k3}, cu pP(a) = 1/4, pP(b) = 3/4, pK(k1) =
1/2 si pK(k2)= pK(k3) = 1/4. Fie C = {1, 2, 3, 4}.
Criptarea Ek:
6
pP ( y k ) 1 1
k 25 26
=
26 k 25
pP ( y ) =
26
Pentru fiecare pereche x, y exist un k unic (si anume, k = y x) astfel nct
Ek(x) = y. Astfel, pC(y|x) = pK(y x) = 1/26. Prin mijlocirea formulei lui Bayes
se obtine:
p ( x) pC ( y | x ) pP ( x) / 26
pP ( x | y ) = P = = pP ( x )
pC ( y ) 1 / 26
Asadar, cifrul prin deplasare (shift cipher0 este inatacabil (nu poate fi spart) dat
fiind faptul c o cheie nou aleatoare este folosit la criptarea fiecrui caracter
din textul clar.
Secretul perfect
Astfel, pentru fiecare y C exist cel putin o cheie k K astfel nct Ek(x) = y.
Decurge de aici c |K| |C|. n orice sistem de criptare totdeauna trebuie ca |C|
|P|, astfel c, n sintez |K| |C| |P|.
Ce se ntmpl n cazul limit |K| = |C| = |P|?
Teorema lui Shannon: Se presupune c un sistem de criptarea (P, C, K, E, D)
satisface conditia |K| = |C| = |P|. Atunci ele este perfect secret dac si numai
dac (a) fiecare cheie este utilizat cu probabilitate egal 1/|K| si (b) x P
!k K (Ek(x) = y).
( ) Se admite c sistemul de criptare asigur secretul perfect, adic pP(x|y) =
pP(x), x P, y C. Din observatia precedent, pentru fiecare x P si y
C exist cel putin o cheie k K astfel nct Ek(x) = y. Asadar, |C| = |{Ek(x):k
K}| |K|. Prin ipotez |C| = |K|. De aici decurge c nu exist chei k1 k2 astfel
nct Ek1 ( x ) = Ek 2 ( x) = y .
Aceasta dovedeste partea (b) a implicatiei: x P !k K (Ek(x) = y).
Urmeaz demonstratia prtii (a). Se fixeaz y C. Se pune n = |K| si fie P =
{x1, x2, , xn} si K = {k1, k2, , kn} n asa fel nct
Ek1 ( x) = Ek 2 ( x ) = ... = Ek n ( x) = y .
Conditia de secret perfect si teorema lui Bayes conduc la
p ( y | xi ) pP ( xi ) pK (ki ) pP ( xi )
pP ( xi ) = pP ( xi | y ) = C =
pC ( y ) pC ( y )
7
Aceasta implic pK(ki) = pC(y) pentru orice i = 1, 2, , n si completeaz
demonstratia prtii (b).
Reciproc, dac (a) si (b) implic secretul perfect repet demonstratia secretului
perfect pentru cifrurile cu deplasare parcurs mai devreme.
ENTROPIE
8
efectiv? Pare rational a lua ca msur a acestei informatii lungimea medie a
mesajului, cunoscut fiind c M este scris ntr-un mod economic. De pild, se
poate presupune c se utilizeaz un cod binar de lungime t, o secvent de biti
b1b2bt. Este evident c exist 2t astfel de secvente de lungime t. Pentru a
identifica n conditii de unicitate toate evenimentele, trebuie ales un t astfel
nct n < 2t. Asadar, t = logn ar putea fi o definitie rezonabil a cantittii de
informatie continut n mesaj.
Fie acum evenimentele E1, E2, , En asociate cu alte probabilitti, diferite, p1,
p2, , pn. Se execut acum un experiment de N ori si se trimite un mesaj M care
poart rezultatul ntregii secvente de ncercri. Un experiment este o secvent
Ei1 , Ei2 , ..., Ei N cu Eik rezultatul ncercrii numrul k.
Dac Nk este numrul de aparitii ale evenimentului Ek, atunci pk Nk/N,
conform legii numerelor mari; astfel Nk Npk si N = N1 + N2 + + Nn.
Numrul total de rezultate este
N!
sn
N1!...N n !
Aceast relatie sugereaz c numrul mediu de biti t necesar pentru a coda
mesajul M ar trebui s satisfac relatia t = lnsn/N. Utiliznd aproximarea Stirling
n relatia de mai sus se obtine
2 N N N e N
sn
2 N1 N1N1 e N1 ... 2 N n N nN n e N n
Urmeaz c
N N
ln sn N ln N
k=1
N k ln( N k ) = N ln N
k=1
Npk ln( Npk ) =
N N N
= N ln N
k=1
Npk ln( N )
k=1
Npk ln( pk ) = N pk ln( pk )
k=1
si n final
N
ln sn
t= = pk ln( pk )
N k=1
Exemplul 1: Fie X notatia pentru aruncarea unei monede corecte cu Pr[X = cap]
= Pr[X = pajur] = 1/2. Informatia sau entropia aruncrii unei asemenea
monede este 1 bit deoarece este necesar un singur bit pentru a coda cele dou
rezultate. Similar, entropia a n aruncri independente logn.
Exemplul 2: Fie X notatia pentru o variabil aleatoare care ia valorile x1, x2, x3
cu probabilittile Pr[X = x1] = 1/2, Pr[X = x2] = Pr[X = x3] = 1/4. Codarea cea
mai eficient a celor trei evenimente const n a pune 0 pentru X = x1, 01,
respectiv 11 pentru X = x2 si X = x3. Numrul mediu de biti al acestei codri este
(1/2)1 + (1/4)2 + (1/4)2 = 3/2.
Cele dou exemple sugereaz c numrul de biti potrivit codrii unui
evenimemt X = x ar putea fi aproximativ logPr[X = x] ceea ce d nastere
definitiei care urmeaz.
9
Entropia unei variabile aleatoare X se defineste ca
H ( X ) = Pr[ X = x] log Pr[ X = x ]
x
Pentru un sistem de criptare, prezint interes entropiile H(K), H(P), H(C) ale
variabilelor aleatoare din K, P, C.
Remarc: Dac Pr[X = x] = 0 se defineste Pr[ X = x] log Pr[ X = x] = 0
(conform limitei limt0tlogt = 0).
Fie variabila aleatoare X care ia valorile x1, , xn.
Dac Pr[X = xi] = 1/n pentru orice i, atunci
n
H ( X ) = Pr[ X = xi ] log Pr[ X = xi ] = log n
i= 1
Este usor de a vedea c dac pentru un i Pr[X = xi] = 1 si celelalte probabilitti
sunt nule, atunci H(X) = 0.
Exemplu (reluat): Fie P = {a, b}, K = {k1, k2, k3} cu distributiile (1/4, 3/4),
respectiv (1/2, 1/4, 1/4). Fie C = {1, 2, 3, 4}. Distributia pC este
pC(1) = 1/8
pC(2) = 3/8 + 1/16 = 7/16
pC(3) = 3/16 + 1/16 = 1/4
pC(4) = 3/16
Se pot calcula imediat entropiile
H(P) = (1/4)log(1/4) (3/4)log(3/4) 0,81
H(K) = (1/2)log(1/2) 2(1/4)log(1/4) = 1,5
H(C) 1,85
CODRILE HUFFMAN
Fie X o variabil aleatoare care ia un numr finit de valori. O codare a lui X este
o functie f: X {0, 1}*. Functia f poate fi extins la o functie functie f: X*
{0, 1}* n maniera evident. Fiind dat un sir finit de evenimente x1xn se
defineste
f(x1, , xn) = f(x1)||||f(xn)
cu || operatorul de concatenare. Dac sirul x1xn este propus de o surs fr
memorie potrivit unei distributii pe X, atunci probabilitatea sirului x1xn este
produsul p(x1)p(xn).
Exemplu: Fie X = {a, b, c, d} si fie urmtoarele codri:
f(a) = 1 f(b) = 10 f(c) = 100 f(d) = 1000
g(a) = 0 g(b) = 10 g(c) = 110 g(d) = 111
h(a) = 0 h(b) = 01 h(c) = 10 h(d) = 11
Se observ c f si g sunt injective dar h nu este deoarece h(ac) = h(ba) = 010.
10
L( f ) =
x X
p( x) | f ( x) |
a b c d e
0,05 0,10 0,12 0,13 0,60
0 1
0,15 0,12 0,13 0,60
0 1
0,15 0,25 0,60
0 1
0,40 0,60
0 1
1,00
000 001 010 011 1
Arborele Huffman
11
Entropia conditionat msoar informatia medie despre X evidentiat prin Y.
Pentru variabilele aleatoare X, Y se defineste entropia conditionat prin relatiile
H ( X | y ) = p ( x | y ) log p ( x | y )
x
H ( X | Y ) = p( y) H ( X | y)
y
Fie variabila aleatoare X care ia valorile x1, , xm si fie pi = Pr[X = xi]. Fie
variabila aleatoare Y care ia valorile y1, , yn si fie pj = Pr[Y = yj].
1. H(X) logm cu egalitate numai cnd pi = 1/m pentru orice indice i.
2. H(X, Y) H(X) + H(Y) cu egalitate numai pentru X, Y independente.
3. H(X, Y) = H(Y) + H(X|Y).
4. H(X|Y) H(X), cu egalitate numai pentru X, Y independente.
Pentru demonstratii este necesar inegalitatea lui Jensen. Dac f este o functie
continu si strict concav pe intervalul I (de pild logx) si ai > 0 pentru orice i,
a1 + + am = 1 atunci
m
m
i = 1 i i i = 1 ai xi
a f ( x ) f
H(X) + H(Y) = i= 1
pi log pi
j= 1
q j log q j =
m n n m m n
=
i= 1 j= 1
ri , j log pi
j= 1 i= 1
ri , j log q j =
i= 1 j= 1
ri , j log( pi q j )
si
1
H(X, Y) =
i, j
ri , j log ri , j = i, j
ri , j log
ri , j
Din acestea si din inegalitatea lui Jensen rezult
H(X, Y) H(X) H(Y) =
pi q j pq
= ri , j log log ri , j i j = log pi q j = 0
i, j ri , j i, j ri , j i, j
cu egalitate dac si numai dac numerele ri,j/piqj iau toate aceeasi valoare, 1.
12
Demonstrarea propriettilor 3 si 4 este facil.
CHEI NSELTOARE
ENTROPIE SI REDUNDANT
13
Pentru un limbaj natural dat L, entropia lui L este definit prin
H (Pn )
H L = lim n
n
si este cantitatea medie de informatie pe liter ntr-un sir de text clar cu
semnifcatie, cu sens. De observat c un sir aleator de litere are entropia log26
4,76. Redundanta limbajului L este dat de
HL
RL = 1
log | P |
Un limbaj aleator are entropia log|P| si redundanta nul astfel nct RL msoar
fractia de caractere n exces care sunt presupuse a fi redundante.
Exemplu: Pentru limba englez s-au fcut tabele cu H(Pn). n capul tabelului se
regsesc H(P) 4,19, H(P2) 3,90. Printr-o statistic a tri-gramelor etc. limita
obtinut este situat astfel: 1,0 HL 1,5, adic continutul informational n
limba englez este de cca. 1,5 biti pe liter. Prin substitutie
HL RL
1,00 1 1,00/log26 = 0,79
1,25 1 1,25/log26 = 0,74
1,50 1 1,50/log26 = 0,69
Asadar, redundanta n limba englez este ntre 69% si 79%, astfel dac RL =
1,25 se poate stabili o codare Huffman pentru n-grame (pentru n suficient de
mare) care comprim engleza la aproximativ un sfert din lungimea obisnuit,
original.
Teorem: Se consider un sistem criptat cu |P| = |C|, cu chei alese echiprobabil
si cu RL redundanta limbajului utilizat. Pentru n suficient de mare, nurul mediu
statistic (notat sn ) de chei nseltoare pentru un sir dat ca text cifrat de lungime
n satisface relatia
|K|
sn 1
| P |nRL
Demonstratie: Se consider multimea cheilor posibile stiind c textul cifrat
este y C n , adic
K ( y ) = {k K : x P n ( Ek ( x) = y pP ( x) > 0)}
Deoarece numai una din cheile posibile este corect, numrul de chei
nseltoare este |K(y)| 1.
Numrul mediu statistic de chei nseltoare este dat de
sn = p( y )(| K ( y ) | 1) = p ( y ) | K ( y ) | p ( y ) = 1 + p ( y ) | K ( y ) |
y C n y C n y C n y C n
14
Totodat
H(K|Cn) = n
p( y ) H ( K | y) =
y C
= p ( y ) log | K ( y ) | p( y ) | K ( y ) | = log(s + 1)
n
y C n y C n
DISTANTA DE UNICITATE
Distanta de unicitate unui sistem de criptare este valoarea lui n la care numrul
mediu statistic al cheilor nseltoare devine zero, altfel spus media cantittii de
text cifrat necesar pentru a calcula cheia admitnd un timp de calcul suficient.
Dac se face sn = 0 si se rezolv pentru n se obtine formula
log | K |
n
RL log | P |
Exemplul 1: n cifrul cu substitutie |P| = 26 si |K| = 26!. Dac se ia RL = 0,75 se
obtine ca distant de unicitate valoarea
log(26!)
n 25
0,75 log 26
ceea ce nseamn c fiind dat un cifru de cel putin 25 de caractere este posibil
o decriptare unic.
Exemplul 2: n cifrul cu deplasare |P| = |K| = 26 si distanta de unicitate este
aproximativ 1,33.
DES-ul simplu este un cifru bloc care cripteaz un bloc de 10 biti de text n clar
utiliznd o cheie de 10 biti si care produce un bloc de 8 biti de text cifrat.
Algoritmul de criptare implic cinci functii executate n ordinea urmtoare:
1. O permutare initial IP
2. O functie fK
3. O functie de comutare SW care comut dou jumtti
4. Din nou functia fK
5. Inversa IP1 a permutrii IP.
Pasii 2 si 3 utilizeaz keile K1 si K2, respectiv, chei care sunt generate printr-un
algoritm de generare a cheilor.
GENERAREA CHEILOR
Generarea cheilor implic trei functii care sunt aplicate ntr-o secvent de cinci
pasi pentru a produce dou subchei:
15
1. O permutare P10 care permut intrarea de 10 biti.
2. O deplasare la stnga.
3. O permutare pe 8 biti care produce o iesire tot de 8 biti; rezultatul este
prima subcheie K1.
4. Iesirea de la pasul 2 este supus din nou unei deplasri duble spre stnga.
5. O permutare pe 8 biti care produce o a doua iesire de 8 biti; aceasta este
subcheia a doua K2.
Ar putea fi aplicate mai multe alternative, ca, de pild, fie utilizarea unei chei
mai lungi, fie utilizarea a dou chei independente.
Casetele S (S-Boxes):
1 0 3 2 0 1 2 3
0 3
S0 = 03 2
2
1
1 3 S1 = 2
3
0
0
1
1 0
3 1 3 2 2 1 0 3
Permutarea P10:
3 5 2 7 4 10 1 9 8 6
1 2 3 4 5 6 7 8 9 10
Permutarea P8:
6 3 7 4 8 5 10 9
1 2 3 4 5 6 7 8
Permutarea P4:
2 4 3 1
1 2 3 4
16
FUNCTIILE DE BAZ ALE DES-ULUI SIMPLU
17
pe siruri de 4 biti, nu n mod absolut necesar biunivoc, si SK este o subcheie
(fie K1, fie K2, dup caz).
Exemplu: Se presupune F(R, SK) = 1110 si L = 1011, R = 1101 pentru care
fK(L, R) = (L F(R, SK), R) = (1011 1110, 1101) = (0101, 1101)
5a. Operatia de expandare E: Se extinde un sir de 4 biti la un sir de 8 biti
4 1 2 3 2 3 4 1
1 2 3 4 5 6 7 8
(E nu este o permutare!). Iesirea pentru intrarea n1n2n3n4 este reprezentat de
n n n n
E(n1n2n3n4) = n4 n1 n3 n4
2 3 4 1
K1 = (k11, k12, k13, k14, k15, k16, k17, k18) este pus acum ntr-un sau exclusiv (XOR)
pentru a obtine
n4 k11 n1 k12 n3 k13 n4 k14
n2 k15 n3 k16 n4 k17 n1 k18
abreviat ca
p00 p01 p02 p03
p10 p11 p12 p13
Acestea sunt introduse acum n casetele S: partea de sus n S0, partea de jos n
S1.
5b. Casetele S: Primii 4 biti (prima linie) sunt introdusi acum n caseta S0
pentru a produce o iesire de 2 biti si ceilalti 4 biti (linia a doua) se introduc n
caseta S1 pentru a produce o alt iesire de 2 biti. Casetele S opereaz astfel:
primul si al patrulea bit de intrare sunt tratati ca un numr de 2 biti care
specific o linie a casetei S, iar al doilea si al treilea bit specific o coloan.
Iesirea, rezultatul este acum elementul casetei n acea linie/coloan. Similar
decurg lucrurile si n caseta S1.
Exemplu: Fie p00p01p02p03 = 0110 linia de sus. Atunci p00p03 = 00 = 0 si p01p02 =
11 = 3 si iesirea este din linia 0 si coloana 3 a lui S0 care este 2 (= 10 n binar).
n faza urmtoare cei 4 biti produsi sunt permutati conform P4 si aceast iesire
este totodat iesirea lui F.
Atacul exclusiv asupra textului cifrat: Atacul brutal este fezabil deoarece sunt
numai 210 posibilitti pentru cheile de 10 biti.
Atacul pe text n clar cunoscut: Se poate descrie relatia ntre un bloc de text n
clar unic p1p2p3p4p5p6p7p8 si un text cifrat unic c1c2c3c4c5c6c7c8 n termeni de
ecuatii matematice (neliniare) cu necunoscute cei 10 biti din cheia
k1k2k3k4k5k6k7k8k9k10.
Aceasta implic expresii din procedura de criptare de mai sus.
De pild, dac
p0p1p2p3
q0q1q2q3
sunt cele dou linii de iesire de 4 biti ale operatorului de expansiune din (5a)
atunci se obtine o iesire de 4 biti xyzw din cele dou caste S.
18
ANALIZA CRIPTOGRAFIC A DES-ului SIMPLU
Dac xy este iesirea de 2 biti a lui S0 atunci urmtoarele ecuatii sunt adevrate
x = p0p1p2p3 + p0p1 + p0p2 + p3
y = p0p1p2p3 + p0p1p3 + p0p1 + p0p2 + p0p3 + p0 + p2 + 1
n care adunrile sunt toate modulo 2.
O pereche similar de ecuatii se obtine si pentru zw din caseta S1.
La suprafat aceasta nu este o analiz criptografic eficient deoarece sunt
implicate prea multe ecuatii si prea multe necunoscute.
CIFRURILE FEISTEL
19
Pentru ca criptarea s fie revesibil (adic decriptarea s fie posibil) blocurile
generate trebuie s fie unice. Asta nseamn c transformarea este biunivoc.
Dimensiunea blocului nu poate fi prea mic deoarece cifrul rezultat ar putea fi
insuficient de complicat. n acelasi timp, o permutare mare a unui bloc nu este
practic. Feistel a propus o aproximare a sistemelor cu cifru bloc ideal, pentru
dimensiuni de bloc mari, din componente mai mici usor de construit.
Intrarea cifrului este un text clar de lungime 2n si o cheie K.
Blocul de text clar este divizat n dou prti: L0 (stnga) si R0 (dreapta).
Cele dou jumtti trec prin r runde de procesare si apoi se combin pentru a
produce blocul de text cifrat.
Intrarea (Li1, Ri1) pentru runda i se obtine ca iesire a rundei (i 1) odat cu o
subcheie. Subcheile sunt diferite de K si sunt diferite una de alta.
Fiecare rund este parametrizat de subcheia de rund si are aceeasi structur:
Se execut o subtitutie asupra jumttii din stnga prin aplicarea unei functii F
de rund pe jumtatea din dreapta a datelor. Urmtoare substitutiei este o
permutare care const n interschimbarea celor dou jumtti ale datelor.
PARAMETRI DE PROIECTARE
Dimensiunea blocului si a cheii: Cu ct este mai mare blocul (si cheia) cu att
se asigur o securitate mai bun si cu att viteza criptrii/decriptrii este mai
redus. Dimensiunea de bloc acceptat curent este de 64 de biti, iar
dimensiunea cheii este de 128 de biti.
Numrul de runde: O dimesiune tipic este cea de 16 runde.
Generarea de subchei si functia de rund: Cu ct complexitatea algoritmului
este mai mare cu att mai voluminoas este analiza critografic.
Viteza de criptare/decriptare: Este preocuparea major n orice aplicatie.
Usurinta analizei: Algoritmul trebuie s fie usor de analizat pentru a-i ntelege
slbiciunile si a spori ncrederea utilizatorului.
20
= LE16i1
Asadar, decriptarea este inversa criptrii.
RUNDA FEISTEL
Exist multi algoritmi care difer prin dimensiunile de bloc si de cheie utilizate
ca si prin numrul de runde.
21
4. Sistemul s fie accesibil tuturor utilizatorilor.
5. Adaptabilitate pentru aplicatii diverse.
6. Implementare economic cu dispozitive electronice.
7. Algoritmi eficienti n utilizare.
8. Algoritmii trebuie s fie usor de validat.
9. Algoritmii trebuie s fie exportabili.
Aceste principii erau orientate spre cresterea ncrederii publice si spre utilizarea
larg a sistemelor criptate.
DES a fost adoptat ca standard n ianuarie 1977 si este cel mai larg utilizat
sistem de criptare, n special n tranzactiile financiare, generarea codurilor PIN
etc.
A fost publicat prima oar n Registrul Federal n martie 1975.
Dezvoltat de IBM, este o modificare a unui sistem mai vechi cunoscut sub
numele LUCIFER.
Rennoirea cea mai recent dateaz din ianuarie 1994 si nu urmeaz vreo alt
rennoire.
Nu este considerat sigur pentru tranzactii viitoare. Este de asteptat ca un
recent apel la propuneri noi s conduc la un succesor al lui DES.
................................................................
22
TRAPDOOR
NUMERE PRIME
Un ntreg n > 1 este prim dac numerele 1 si n sunt singurii lui divizori.
Euclid: Exist o infinitate de numere prime.
Dac p1 < p2 < < pn sunt primele n numere prime, atunci orice divizor prim al
ntregului 1 + p1p2 pn trebuie s fie mai mare dect pn.
Numrul (n) de numere prime mai mici sau egale cu n este asimptotic egal cu
n/lnn. Mai general,
Dirichlet-Hadamard-de la Vall Poussin: Dac gcd(a, b) = 1 atunci numrul
a,b(n) al numerelor prime p n de forma p = ak + b este asimptotic egal cu (1/
(a))( n/lnn).
Postulatul lui Bertrand: Pentru orice ntreg n, exist totdeauna un numr prim
ntre n + 1 si 2n. Erds a dat o demonstratie elementar elegant.
1
gcd(a, b) greatest common divisor cel mai mare divizor comun a dou ntregi; a b mod n
congruenta modulo n a doua numere ntregi.
23
Ce se observ dac se scriu ntregi consecutivi ntr-o spiral rulat n sens
antiorar?
(n) este numrul de ntregi nenegativi mai mici dect n care sunt relativ primi
cu n.
24
TEORIA NUMERELOR
Reprezentri n baza b.
n mod b = akbk + ak 1bk 1 + + a0 mod b = a0
n k1 k2
b mod b = ak 1b + ak 2b + + a1 mod b = a1
n
bi mod b = ai
Folosind acest fapt se poate scrie un algoritm de schimbare a reprezentrii unui
numr n orice baz.
25
ak := q mod b
q
q :=
b
k := k + 1
end while
return (ak 1a1a0)b
OPERATII CU NUMERE
26
ATACUL PRIN TEMPORIZARE
Acest atac este similar celui prin care un pungas observ ct timp i ia cuiva
pentru a forma la disc cifrul unui seif. Genul acesta de atac se poate aplica si
altor sisteme cu criptare.
Un analist criptolog poate calcula o cheie privat prin urmrirea pas cu pas a
duratei necesare unui calculator pentru a descifra un mesaj. Exponentul este
calculat bit cu bit ncepnd cu bitul cel mai putin semnificativ.
Pentru un text cifrat dat este posibil a msura ct timp este necesar pentru a
executa exponentierea modular. Se pot asadar determina bitii necunoscuti prin
exploatarea diferentelor de timp n rspuns (acest atac a fost implementat de
Koeher n 1996).
Problema este eliminat prin utilizarea unui din urmtoarele remedii: (a) timp
de exponentiere constant, (b) ntrzieri aleatoare sau (c) orbirea prin
multiplicarea textului cifrat cu un numr aleator nainte de exponentiere.
27
Dreptunghiul mare are dimensiunile ab. Dreptunghiul mic are dimensiunile
a(a b). Asemnarea cere ca
a b 1
R= = , R=
b a b 1 R
Prin tratarea ultimei egalitti ca o ecuatie, se obtine R = (1 + 5 ) / 2 .
Prin inductie se poate dovedi c rni fi. Pasul de nceput, pentru i = 0 este facil.
Apoi
rn(i + 1) = qnirni + rn+1i rni + rn+1i fi + fi1 = fi+1
Rezult c a = r0 fn si n = O(loga).
Teorem: Dac a si b sunt ntregi pozitivi, atunci exist doi ntregi s si t astfel
nct gcd(a, b) = sa + tb. n plus, s, t se pot calcula ntr-un timp logaritmic n
lungimea argumentelor.
Exemplu: 1 = gcd(50, 21).
50 mod 21 8 8 = 50 221
21 mod 8 5 5 = 21 28
8 mod 5 3 3 = 8 15
5 mod 3 2 3 = 5 13
3 mod 2 1 1 = 3 12
Prin inversarea pasilor se obtine succesiv
8 = 50 221
5 = 21 28
5 = 21 2(50 221)
5 = 521 250
3 = 8 15
3 = (50 221) 1 (521 250)
3 = 721 +350
2 = 5 13
28
2 = (521 250) 1 ( 721 250)
2 = 1221 550
1 = 3 12
1 = ( 721 + 350) 1 (1221 550)
1 = 1921 + 850
Acest mod de calcul poate fi utilizat pentru stabilirea inverselor modulare, de
pild 501 mod 21 = 8.
29
Zn : multimea de ntregi 0 a < n este un grup aditiv modulo n.
Zn* : multimea de numere ntregi 0 a < n care sunt prime cu n este grup
multiplicativ modulo n.
Exemplu: Tablele de adunare pentru (Z6, +) si de multiplicare pentru (Z6*, ):
= { g0, g1, , g p1}. Faptul acesta a fost dovedit prima oar de Gauss care a
dovedit si un adevr ceva mai general:
Pentru orice m, Zm* este ciclic dac si numai dac m este de forma 1, 2, 4, pk,
2pk, cu p un numr prim impar si cu k un ntreg pozitiv.
Ordinul unui element a Zp* este cel mai mic i 1 pentru care a i = 1.
Teorema lui Lagrange: Dac H este un subgrup al unui grup G, atunci |H|
divide pe |G|.
Demonstratie: Se defineste pe multimea elementelor lui G relatia de
echivalent
a ~ b ab1 H
Este usor de artat c clasele de echivalent sunt comultimile Ha = {ha: h
H}. Toate aceste comultimi au acelasi cardinal si anume |H|. Urmeaz c |H|
divide pe |G|.
30
Pentru un generator g al lui Zp*, elementul gk are ordinul (p 1)/gcd(p 1, k).
Mai mult, gk genereaz pe Zp* dac si numai dac gcd(p 1, k) = 1.
Grupul Zp* are (p 1) generatori.
Teorema lui Euler: Dac a este un ntreg care este prim cu n, atunci a(n) 1
mod n.
Exist un algoritm eficient prin care, fiind dat un n (produs de dou numere
prime), s se calculeze (n)?
Se presupune c un asemenea algoritm n (n) exist!
Se poate dovedi c n + 1 (n) = p + q. Acest fapt se ntmpl deoarece
(n) = (p 1)(q 1) = pq p q + 1 = n p q + 1
Urmeaz c (n) = (p 1)(n/p 1) = n n/p p + 1 si apoi ecuatia de gradul al
doilea
p2 (n + 1 (n))p + n = 0
Formula binecunoscut conduce la
n + 1 ( n) ( n + 1 (n)) 2 4n
p=
2
Asadar, existenta unui algoritm eficient n (n) implic existenta unui
algoritm eficient de factorizare a lui n.
Sistemul RSA este vulnerabil la atacurile prin textul cifrat ales n conformitate
cu argumentul care urmeaz.
Atacul descris imediat arat c sistemul RSA nu este bun pentru semntur!
Se presupune c un analist criptolog care ascult comunicarea citeste un text
cifrat C si vrea s recupereze M astfel nct M = Cd mod n.
Analistul alege la ntmplare un numr r inferior lui n si utilizeaz cheia public
pentru a calcula x = re mod n, y = xC mod n, t = r1 mod n si obtine y semnat cu
cheia privat d, adic u = yd mod n. Analistul criptolog poate s calculeze acum
tu r1(xC)d r1xdCd r1rM M mod n.
Un remediu care va fi discutat mai departe const n utilizarea hashing-ului.
ATACURILE RSA-BIT
31
Parity(M e mod n) = bitul de ordinul cel mai de jos al lui M, adic 0 dac M este
par, 1 n caz contrar.
Half(M e mod n) = 0 dac 0 M < n/2 si 1 dac n/2 M < n, adic Half(M e mod
n) = 0 dac si numai dac 2M < n. Asadar,
Half(M e mod n) = Parity((2M)e mod n)
Parity(M e mod n) = Half((M/2)e mod n)
Cu aceste definitii si cu aceste precizri
n
Half(M e mod n) = 0 M 0,
2
n n 3n
Half((2M)e mod n) = 0 M 0, ,
4 2 4
n n 3n n 5n 3n 7 n
Half((4M)e mod n) = 0 M 0, , , ,
8 4 8 2 8 4 8
Prin cutare binar se poate localiza precis valoarea lui M.
Aceasta nseamn c exist un algoritm eficient pentru calculul bitului RSA de
cel mai sczut ordin (adic functia Parity) si mai departe exist un algoritm
eficient de a calcula mesajul original.
Asadar, bitul de ordinul cel mai sczut RSA este la fel de sigur ca RSA.
RESTURI PTRATICE
p2 1 p2 1
a 1 a 1 a + 1 0 mod p
p 1
Se definesc simbolurile lui Legendre astfel
p 1
+ 1 a 2
+ 1mod p (a 0 mod p)
a p 1
= 1 a 2 1mod p (a 0 mod p)
p 0 a 0 mod p
Aceasta implic faptul c
p 1
a
a 2 mod p
p
Mai general, fiind dat factorizarea n = p11 p22 ... pkk se defineste simbolul lui
r r r
Jacobi
r1 r2 rk
a a a a
= ...
n p1 p2 pk
Exemplu: Dac se cunoaste factorizarea 9975 = 35279 atunci se poate calcula
32
2
6278 6278 6278 6278 6278
= =
9975 3 5 7 19
2
2 3 6 8
= = ( 1)( 1) 2 ( 1)( 1) = 1
3 5 7 19
Calculul simbolului lui Jacobi nu necesit factorizarea lui n. Se discut mai
departe un algoritm n stil euclidian. Se presupun m, n impare. Sunt corecte
urmtoarele proprietti:
a b
1. a b mod n =
n n
2
2a. = 1 dac n 1 mod 8
n
2
2b. = 1 dac n 3 mod 8
n
k
2k t 2 t
2c. = dac t este impar
n n n
ab a b
3. =
n n n
m n
4a. = dac m n 3 mod 4
n m
m n
4b. = altminteri.
n m
Exemplu: Dac nu se cunoaste factorizarea lui 383 se poate utiliza algoritmul
de calcul urmtor:
2
219 383 2 41 41 219
= = = = =
383 219 219 219 219 41
14 2 7 7 41 1
= = = = = =1
41 41 41 41 7 7
Definitie: a este un reziduu cuadratic modulo p (se noteaz a QR p ) dac si
numai dac b Z p astfel nct a b2 mod p.
*
a
Important: Dac pentru un a Z p , a QR p = 1 atunci presupunnd a
*
p
p 1 p 1
b2 mod p pentru b Z p rezult a
*
2
(b )
2 2
b p 1 1 mod p .
33
Invers, lund un generator g al lui Zp*, urmeaz c a = gi pentru un anumit i. Se
a p 1 p 1 i ( p 1)
admite c = 1 . Asadar, a 2 1mod p si, deci, a 2 g 2 1mod p .
p
i ( p 1)
De aici, ( p 1) | si i trebuie s fie par si a QR p .
2
Acest fapt are aplicatii semnificative n testarea primalittii.
Intrare: n
Se ia la ntmplare a [1, n].
Se calculeaz g = gcd(a, n).
Dac g 1 atunci n este compus.
Dac g = 1 atunci se calculeaz e = an1 mod n.
Dac e 1 atunci n n-a trecut testul.
Dac e = 1 atunci n a trecut testul.
Care este probabilitatea ca numr compus s treac testul? Se pare c prin
repetarea testului sansa unui rspuns corect creste!
Din nefericire exist numere compuse care trec testul pentru toate bazele fat
de care ele sunt relativ prime (acestea sunt cunoscute ca numere Carmichael si
sunt o infinitate de asemenea numere!)
Intrare: n
1. Se alege aleator 1 a n
2a. Dac a Pn atunci Iesire = PRIM
2b. Dac a Pn atunci Iesire = COMPUS
34
TESTUL SOLOVAY-STRASSEN
Intrare: n (impar)
1. Se alege aleator 1 a n
n 1
a
2a. Dac a 2 mod n atunci Iesire = PRIM
n
a n 1
2b. Dac a 2
mod n atunci Iesire = COMPUS
n
n 2
Desigur, se observ mai nti c multimea de mai sus este un subgrup al lui Zn*.
Conform teoremei lui Lagrange din teoria grupurilor, afirmatia decurge dac se
* a
n 1
dovedeste c acesta este un subgrup propriu, adic a Z n : a 2 mod n
n
Zn . Fr pierdere n generalitate se poate presupune n = pq. Se ia u QRp.
*
TESTUL MILLER-RABIN
Intrare: n (impar)
1. Se alege aleator 1 a n
Se scrie n 1 =2km, cu m impar.
l
2a. Dac a m 1mod n sau l < k (a 2 m 1mod n) atunci Iesire =
PRIM
2b. Dac se produce contrarul, atunci Iesire = COMPUS
35
l
mod n sau l < k (a 2 m 1mod n) , adic testul va produce verdictul n este
PRIM.
Fr demonstratie, se afirm
Teorema: Dac n este compus atunci Pr[Iesire = PRIM] 1/4.
CONGRUENTE
36
2. Se calculeaz d = A(e), care satisface ed 1 mod (n). Se scrie ed 1 = 2sr
cu r impar si se calculeaz v = wr mod (n). n mod clar, 2sr 0 mod (n),
s s
ceea ce implic v 2 w2 r w0 1mod n . Urmeaz c
(s 1
)(
s 2
)
v 2 + 1 v 2 + 1 (v + 1)(v 1) 0 mod n
3. De aici rezult testul urmtor:
37
2p1q1/3 + p1q12i+j/3
= 2p1q1/3 + (n)/3 = 2p1q1/3 + n/3
De aici
Pr[eec] (p1q1/n)(2/3) + 1/3 (1/4)(2/3) + 1/3 = 1/2
Ceea ce ncheie demonstratia.
Public: n, 0 b n 1.
Privat: p, q astfel nct n = pq si p q 3 mod 4.
Criptare:
M E(M) = M(M + b) mod n
Decriptare:
b2 b
N D(N) = + N mod n
4 2
Exist o ambiguitate la decriptare deoarece sunt posibile patru rdcini ptrate
modulo n. Dac este o rdcin ptrat netrivial a unittii modulo n, atunci
este usor a observa c cele patru rdcini ptrate sunt
M, M b, (M + b/2) b/2, (M + b/2) b/2
Dac p 1 mod 4, nu este cunoscut vreun algoritm pentru a afla rdcnile
ptrate.
Dac p 3 mod 4, atunci exist o formul. Acum, fie x QRn. Atunci x QRp
si x QRq. Deoarece p 3 mod 4, are loc 4|(p + 1). De aici
2
p+ 1
p+ 1 p 1
x 4 x 2 mod p x 2 x mod p x mod p
p 1 p+ 1
(de observat c x 2 1 mod p pentru c x QRp). Asadar, x 4 sunt
rdcini ptrate ale lui x mod p. Cu un rationament similar se poate conchide c
q+ 1
x4 sunt rdcini ptrate ale lui x mod q.
Acum, cu cele dou rdcini ptrate modulo p si cu cele dou rdcini ptrate
modulo q, folosind teorema restului chinezesc, se pot afla cele patru rdcini
ptrate modulo n.
Exemplu: n = 77 = 711, b = 9. Se observ c 7 11 3 mod 4. Se observ c
21 = 39 mod 77 si 41 = 58 mod 77.
Criptare: M E(M) = M(M + 9) = M2 + 9M mod 77.
81 9
Decriptare: N D(N) = ( )
+ N = 1 + N 43 mod 77.
4 2
Dac de pild textul criptat este N = 22, trebuie calculat 23 mod 77. Aceasta
nseamn, n etape
23(p + 1)/4 232 22 4 mod 7
38
23(q + 1)/4 233 13 1 mod 11
Teorema restului chinezesc conduce la cele patru rdcini ptrate ale lui 23
modulo 77. Acestea sunt
10 mod 77, 32 mod 77.
Cele patru texte criptate posibile sunt
(10 43) 44 mod 77, (10 43) 24 mod 77
(32 43) 66 mod 77, (32 43) 2 mod 77.
Decriptarea: Fiind dat N trebuie gsit x astfel nct x(x + b) N mod n. Pentru
aceasta se completeaz ptratele.
x(x + b) N mod n
x2 + 2x(b/2) + (b2/4) N + (b2/4) mod n
(x + (b/2))2 N + (b2/4) mod n
Fiind date N, n, b se calculeaz N + (b2/4) care trebuie s fie un ptrat rezidual
modulo n. Cum s-a artat mai sus, se pot calcula toate rdcinile ptrate modulo
n.
Securitatea criptrii: Exist un algoritm eficient A prin care fiind dat un text
criptat N s rezulte x = A(N) astfel nct x(x + b) N mod n? Admitnd c un
asemenea algoritm exist, este dat imediat un algoritm Las Vegas de factorizare
a lui n cu probabilitate de cel putin de 1/2.
Ideea de plecare: Dac x2 y2 mod n, atunci n|(x y)(x + y). Atunci, dac nu
are loc x y mod n, atuci gcd(x y, n) este un factor al lui n netrivial.
Intrare: n, b
1. se alege aleator 1 r < n
2. se calculeaz y (r2 b2/4) mod n
3. se calculeaz x = A(y)
4. se calculeaz x1 = x + b/2
5. dac x1 r mod n
atunci final (esec)
altminteri evalueaz si returneaz gcd(x1 + r, n)
final.
Teorem: Probabilitatea succesului este cel putin de 1/2.
Demonstratie: Se defineste o relatie de echivalent
r ~ s r2 s2 mod n.
Clasele de echivalent sunt n numr de patru [y] = {y, y}, cu o rdcin
netrivial a unittii modulo n. Se consider valoarea returnat de oracolul A
pentru argumentul y, adic x = A(y). Dac r = y, atunci algoritmul esueaz,
dac r = y, atunci algoritmul reuseste. Deoarece r este aleator uniform
repartizat, teorema este dovedit.
39
ALGORITMI DE FACTORIZARE
40
Pentru sigurant, cu certitudine se pot utiliza chei foarte mari, dar, de retinut,
timpul de calcul devine nerezonabil de ndelungat. Iat n tabelul urmtor unele
predictii n lungimi n biti:
METODA POLLARD p 1
Input: n, B
1. a=2
2. for j = 2 to B do a aj mod n
3. d = gcd(a 1, n)
4. if 1 < d < n then d este factor al lui n
else eec
Ideea algoritmului: Fie p un divizor prim al lui n. Fie B ales astfel nct fiecare
putere a unui prim care divide pe p 1 este cel mult egal cu B. Urmeaz c (p
1)|B!. De aceea, la finalul buclei for a = 2B! 1 mod n. Deoarece p|n, are loc
41
si a = 2B! 1 mod p. Urmeaz c p|(a 1) si deci p|gcd(a 1, n) = d. n faza
urmtoare se evidentiaz factori d, n/d s.a.m.d.
Timpul de rulare: Fiecare exponentiere modular necesit O(logB)
multiplicri modulare care iau, fiecare, un timp O(log2n). Cel mai mare divizor
comun (gcd) poate fi calculat ntr-un timp O(logn). Asadar, complexitatea este
O(BlogBlog2n + log3n).
Exemplu
Dezavantaj: Se cere ca n s aib un factor prim p astfel nct p 1 s aib
factori mici ca valoare.
Fie n = 15770708441. Nu este este cunoscut vreun factor de-al lui n. Se
presupune c exist unul, fie acela p, astfel nct p 1 are factori mici. Se
bnuieste c toti acei factori primi ai lui p 1 sunt cel mult egali cu B = 180.
Se itereaz si la pasul 3 se calculeaz valoarea a = 11620221425.
Din aceasta se calculeaz d = gcd(a 1, n) = 135979.
Factorizarea complet a lui n este stabilit a fi
n = 135979115979
Dac p = 135979 se vede c p 1 = 23131173. Prin urmare alegerea lui B =
180 a fost corect si productiv. Se putea lua chiar ceva mai mic, de pild B =
173.
42
gcd(9703435785 546, 15770708441) = 115759
Cei trei vectori sunt
a1 = (0, 1, 0, 1, 0, 0)
a2 = (1, 0, 0, 1, 0, 1)
a3 = (1, 1, 0, 0, 0, 1)
si satisfac relatia
a1 + a2 + a3 = (0, 0, 0, 0, 0, 0)
Clase de grupuri
43
Sistemul de criptare ElGamal
REPREZENTRI DE GRUP
44
Nu! A stabili izomorfismul nseamn a gsi generatorul! Dar sunt prea multi
generatori posibili!
O metod general
45
Exemplu: f:Zp* Zp*: u u.
Fie definit orbita lui x X ca Orbf(x) = [x, f(x), f2(x), , fn(x)]. Fiind dat un y
Orbf(x), s se gseasc un ntreg k astfel nct y = fk(x).
Se pune m = n . Prin mprtirea euclidian, orice ntreg a < n este de forma a
= qm + r, cu 0 q, r < n. Asadar,
fa(x) = fqm+r(x) = fqm(fr(x)) = fmfm(fr(x))
r
Se calculeaz (r, f (y)) pentru r m si se sorteaz dup coordonata a doua. Se
calculeaz de asemenea (q, fqm(x)) pentru q m si se sorteaz dup a doua
coordonat.
Se gsesc dou perechi (q, fqm(x)), (r, fr(y)) care au a doua coordonat identic,
adic fr(y) = fqm(x). Decurge de aici c y = fqm+r(x).
Timpul de cutare este O( n ) .
46
(10, 644) si (19, 644) au acceasi a doua coordonat. Asadar, log3525 = 2910 +
19 = 309.
POHLIG-HELLMAN (p, , )
e
Fie p 1 = p1 1 p2 2 ... pk k . Dac = a mod p atunci a = log este unic
e e
e
determinat modulo p 1. Astfel este suficient a calcula a mod pi i , i = 1, , k
si a utiliza teorema restului chinezesc.
Se presupune q prim n conditiile p 1 mod qc i (p 1 mod qc+1). Se exprim
c 1
x= i= 1
i qi
q
q
mod p
Demonstratie:
p 1 p 1 p 1
a ( x + sq c )
q q q
mod p
Este, prin urmare, suficient a arta c
p 1 p 1
( x + sq c ) 0
q
mod p q
47
p 1 p 1 c c 1
( x + sq c 0 ) = sq 0 + i q i =
q q i= 0
p 1 c c 1
c 1
= sq + i q i = ( p 1) sq c 1 + i q i 1 0 mod ( p 1)
q i= 1 i= 1
p 1 p 1
Se calculeaz acum q . Dac q
1mod p atunci 0 = 0. Dac nu, atunci
se calculeaz
p 1 p 1 p 1
2 i
q
mod p , q
mod p , , q
mod p ,
p 1 p 1
pn cnd q q mod p . Urmeaz c 0 = i.
i
i= 1
1 q2
mod p . Se poate calcula 1 ca ma sus. Dac c =
2 calculul s-a ncheiat, altminteri c > 2 si se continu ca mai sus.
p 1
i
1. Se calculeaz q mod p pentru i < q.
i
2. Se pune j = 0 si j =
while j c 1 do
p 1
calculeaz = q j + 1 mod p
caut i astfel nct = i
j = i
jq j
j + 1 = j mod p
j=j+1
128 / 4 = 97 = 28 mod 29
asadar 1 = 1 si a = 3
q = 7, c = 1: 28/4 = 24 = 16 mod 29
28/4 = 1814 = 25 mod 29
48
asadar 0 = 4 si a = 4.
Se utilizeaz teorema restului chinezesc pentru a rezolva sistemul x 3 mod 4,
x 4 mod 7 pentru a obtine x = 11. Asadar, log218 = 11.
EXEMPLU
49
BITII LOGARITMULUI DISCRET
p 1 p 1
+a
p 2
a
2
mod p
ceea ce implic
p 1
log ( p ) + a mod( p 1)
2
Implicatia invers ( ) se demonstreaz prin parcurgerea invers a pasilor.
Fie date , , p. Se urmreste stabilirea lui log.
Fie L2() al doilea bit ca semnificatie al lui log.
Dac L1() este impar, atunci se nlocuieste cu 1 mod p. Acest nou
satisface L1() = 0.
Fie a mod p, pentru un a par. Atunci
p+ 1 a
4
2
mod p
50
Prin ipotez, valoarea L2() poate fi calculat eficient si, n plus, L2() = L1(a/
2
). Asadar, si L1(a/2) poate fi calculat eficient. n consecint se poate determina
care din cele dou posibilitti de semn () este corect.
p4+ 1 p+ 1
Dac 2 L ( ) = L
1
atunci se pune
4 , altminteri se pune
p 1
L2 ( )
p 4 . Apoi se pune si se itereaz.
(Zp, +, ) este un cmp Galois pentru orice p prim. Cmpul are p elemente.
Fie Zp[x] multimea polinoamelor n nedeterminata x, cu coeficienti n Zp.
Polinoamele acestea se pot aduna, se pot multiplica. Astfel, (Zp[x], +, ) se
structureaz ca un inel.
Se defineste o relatie de echivalent g(x) h(x) mod f(x) dac si numai dac
f(x)|[g(x) h(x)]. Multimea claselor de echivalent se structureaz ca inel notat
uzual ca Zp[x]/f(x).
Dac plinomul f(x) este ireductibil, adic dac el nu are divizori proprii, atunci
Zp[x]/f(x) devine un cmp finit.
Dac plinomul f(x) este ireductibil si are gradul n, atunci Zp[x]/f(x) este un cmp
Galois de dimensiune pn.
Cum se construiesc polinoamele ireductibile?
Exemplu: O privire asupra lui Z2[x]. Sunt patru polinoame de gradul 3 cu
termenul liber egal cu unitatea: x3 + 1, x3 + x + 1, x3 + x2 + 1, x3 + x2 + x + 1.
Dintre acestea, x3 + 1 = (x + 1)(x3 + x + 1) si x3 + x2 + x + 1 = (x + 1)(x2 + 1).
Celelalte dou sunt ireductibile. Acestea produc cmpurile Zp[x]/(x3 + x + 1) si
Zp[x]/(x3 + x2 + 1). Cele dou cmpuri sunt identice si au 23 elemente. n
particular pentru x3 + x + 1:
51
Prin urmare, pentru orice n 1, exist un cmp Galois (unic) cu pn elemente,
notat uzual ca GF(pn).
Desigur, GF(p) este izomorf cu Zp.
Grupul multiplicativ GF(pn) este ciclic si are pn 1 elemente.
Cele mai studiate cmpuri sunt cmpurile Galois GF(2n). Algoritmii precedenti
(cum sunt Shanks si Pohlig-Hellman) pot fi modificati pentru a lucra n
conditiile curente. Logaritmul discret este considerat intractabil (de nerezolvat)
pentru n mare n conditiile n care 2n 1 are un factor prim mare. Exist
implementri hardware pentru GF(2127), cu p(x) = x127 + x + 1.
i= 1
xi si = T ?
for i = n downto 1 do
if T si then T = T si, xi = 1 else xi = 0
n
if
i= 1
xi si = T then x1, x2, , xn este solutia else nu exist solutie
Reprezentarea de mai sus a lui T este unic dac secventa s1, s2, , sn este
supercresctoare.
n
Pentru s = (s1, s2, , sn) se consider functia de criptare Es: {0, 1}n [0,
i= 1
si
]:
n
x = (x1, x2, , xn) Es(x) =
i= 1
xi si
52
Strategie: Se permut valorile si astfel nct secventa s nu mai fie
n
supercresctoare. Fie p un numr prim mai mare dect
i= 1
si .
CODURI
53
Demonstratie: d(y, y) d(y, r) + d(r, y) 2d(r, y) 2(d 1)/2 = d 1 < d.
Astfel, d(y, y) = 0.
SISTEMUL McELIECE
Matricea G este generatoarea unui cod C [n, k, d] Goppa (aceasta este o clas de
coduri pentru care decodarea este facil), n = 2m, d = 2t + 1, k = n mt. S este o
matrice inversabil kk, P este o matrice de permutri nn si G = SGP.
Public: G
Privat: G, S, P
Criptare: x xG + e, pentru un vector aleator de pondere t
Decriptare: y D(y)
Se calculeaz y1 = yP1
Se decodeaz y1 ca y1 = x1 + e1 dac x1 C
Se calculeaz x0 din x0G = x1
Se calculeaz x = x0S1
Corectitudinea:
xG + e = x0S1SGP + e = x0GP + e = x1P + e = y1P e1P + e = y e1P + e = y
Matricea
1 0 0 0 1 1 0
G = 0 1 0 0 1 0 1
0 0 1 0 0 1 1
0 0 0 1 1 1 1
54
genereaz un cod [7, 4, 3]. Se aleg matricile
0 1 0 0 0 0 0
1 1 0 1 0 0 0 1 0 0 0
, P = 1 0 0 0 0 0 0
0 0 0 0 0 0 1
S = 10 10 10 1
1 0 0 1 0 0 0 0
1 1 0 0
0 0 0 0 0 1 0
0 0 0 0 1 0 0
Matricea generatoare public este
1 1 1 1 0 0 0
G' = 1 1 0 0 1 0 0
1 0 0 1 1 0 1
0 1 0 1 1 1 0
Textul n clar x = [1 1 0 0] este criptat ca y = xG + e = [0 1 1 0 1 1 0] cu e un
vector eroare [0 0 0 0 1 0 0].
ECUATII LINIARE
ax + by = c, a, b, c Z
Ecuatia are o solutie ntreag dac si numai dac gcd(a, b)|c cel mai mare
divizor comun al coeficientilor a, b divide pe c si dac are o solutie, are o
infinitate de solutii.
Multimea solutiilor rationale este infinit.
55
EXEMPLE
56
Teorem (Legendre): Exist un ntreg m care depinde de a, b, c astfel nct
ecuatia (2) s aib o solutie ntreag netrival dac si nuai dac aX2 + bY2 cZ2
mod m are o solutie n Zm*.
Exemplu: Se poate aplica metoda pe cercul C: x2 + y2 = 1. Se consider punctul
(x, y) mobil pe cerc. Se ia linia L care leag (0, 0) de (x, y). Aceast linie
intersecteaz axa y n (0, t).
ECUATII CUBICE
57
y2 = x3 + ax2 + bx + c
Admitnd c rdcinile ei sunt distincte ea este expresia unei curbe eliptice.
Polinomul x3 + ax2 + bx + c are fie o rdcin real si dou complexe, fie toate
trei rdcinile reale.
Se consider elipsa
x2 y 2
+ =1
a 2 b2
Rezult
b2 x2
y 2 = b2
a2
Prin diferentiere se obtine
b2 x
yy =
a2
si mai departe
b4 x2 b4 x2
( y ) 2 = =
a4 y2 a4 b2 x2
b2 2
a
58
1 u
, y= xu=
2
x=
x 1 ( x 1) 2
u2 = g(x) devine u2 = f( x ) asa nct
1 1 1
f ( x ) = g ' (1) x 3 + g ' ' (1) x 2 + g ' ' ' (1) x + g ' ' ' ' (1)
2 6 24
si ecuatia (3) devine
1 k 2 x2
+ = u dx
2
1 ( y ) dx
SINGULARITTI
59
Afirmatie: Dac dou rdcini ale unei curbe eliptice sunt rationale, tot
rational este si a treia.
Mai general, dac P, Q sunt puncte rationale pe curba eliptic, tot rational este
si punctul P*Q nftisat n figur. Aceast operatie nu defineste nc un grup
(pentru c nu este asociativ) dar poate fi una de acest gen dac se adaug un
punct suplimentar O.
60
PROPRIETTILE GRUPULUI
61
FORMULE EXPLICITE
EVITAREA SINGULARITTILOR
62
S-a artat c o curb eliptic nu are puncte singulare dac si numai dac f(x) nu
are rdcin dubl.
A avea rdcin dubl echivaleaz cu a avea f(x) = f(x) = 0, adic
x3 + ax + b = 3x2 + a = 0 (4)
Urmeaz c x = a/3. Dar totodat x4 + ax2 + bx = 0. Asta implic a2/9 + a(a/
2
3 x1 + a pentru P1 = P2
2 y1
Se consider totodat c (x1, y1) + (x1, y1) = O si P1 + O = O + P1 = P1. Acesta
este un grup abelian denumit Ep(a, b).
Acceasi idee se potriveste si cmpului finit GF(pn).
PROPRIETTI
63
Calculul acesta cere evaluarea de radicali modulo 11. Exist o formul explicit
pentru aceasta deoarece 11 3 mod 4. De fapt rdcinile ptrate ale unui rest
ptratic r sunt r(11 + 1)/4 r3 mod 11. Pentru calcul se completeaz tabelul
urmtor:
x x3 + x + 6 QR11? y
0 6 nu
1 8 nu
2 5 da 4, 7
3 3 da 5, 6
4 8 nu
5 4 da 2, 9
6 8 nu
7 4 da 2, 9
8 9 da 3, 8
9 7 nu
10 4 da 2, 9
Curba eliptic are pe ea 13 puncte (x, y), incluznd si punctul de la infinit. Fiind
de ordinul prim 13 ea nssi trebuie s fie un grup ciclic. De pild, dac se ia
generatorul = (2, 7).
Puterile lui , de pild (2, 7) + (2, 7), pot fi calculate dup cum urmeaz. Se
evalueaz mai nti :
= (322 + 1)(27)1 mod 11 = (23)1 mod 11 = 24 mod 11 = 8
Asadar x3 = 82 2 2 = 5 mod 11 si y3 = 8(2 5) 7 = 2 mod 11. Decurge de
aici c (2, 7) + (2, 7) = (5, 2).
Apoi, (2, 7) + (2, 7) + (2, 7) = 2(2, 7) + (2, 7) = (5, 2) + (2, 7).
Algoritmul ElGamal se poate aplica la un subgrup ciclic Z n1 al lui Ep(a, b), dar
factorul lui de dezvoltare este 4 (fat de 2 peste Zp). n plus, spatiul textelor n
clar (plaintext space) const din punctele din Ep(a, b) si nu exist metod
convenabil de a genera n mod determinist puncte din Ep(a, b).
Se ia o curb eliptic Ep care contine un subgrup ciclic H = Z n1 cu algoritm
discret intractabil. Spatiul textelor n clar este Z p Z p si spatiul textelor cifrate
* *
(ciphertext) este E p Z p Z p .
* *
64
Sistemul Menezes Vanstone:
Public: , Ep
Privat: a astfel ca = a
Criptare: Se alege aleator k Z n1
(x, k) E(x, k) = (y0, y1, y2):
y0 = k, (c1, c2) = k
x = (x1, x2), y1 c1x1 mod p i y2 c2x2 mod p
Decriptare: ( )
(y0, y1, y2) D(y0, y1, y2) = y1c1 1 mod p, y2c2 1 mod p cu
ay0 = (c1, c2).
65