Sunteți pe pagina 1din 164

UNIVERSITATEA DE STAT DIN MOLDOVA

FACULTATEA DE MATEMATIC I INFORMATIC


CATEDRA INFORMATIC I OPTIMIZARE DISCRET


Cu titlu de manuscris
C.Z.U: 004.056.55


ZGUREANU AURELIU

SECURITATEA INFORMAIONAL I METODE DE CRIPTARE
BAZATE PE MULIMI DE RELAII MULTI-ARE

01.01.09 CIBERNETIC MATEMATIC I CERCETRI
OPERAIONALE


Tez de doctor n tiine fizico-matematice


Conductor tiinific: CATARANCIUC Sergiu,
doctor n tiine fizico-matematice

Consultant tiinific: BULAT Mihai,
doctor n tehnic

Autor:



CHIINU, 2011
2

















Zgureanu Aureliu, 2011

















3
CUPRINS
ADNOTARE .............................................................................................................................4
ABSTRACT ..............................................................................................................................5
.........................................................................................................................6
INTRODUCERE ......................................................................................................................7
1. ANALIZA SITUAIEI N DOMENIUL CRIPTOGRAFIEI...........................................16
1.1. Problema securitii informaiei......................................................................................16
1.2. Elemente fundamentale din Criptografie.........................................................................24
1.3. Bazele matematice ale criptografiei moderne.................................................................27
1.3.1. Teoria informaiei ....................................................................................................27
1.3.2. Teoria complexitii.................................................................................................32
1.4. Algoritmi simetrici de tip bloc........................................................................................34
1.5. Algoritmi simetrici de tip ir...........................................................................................39
1.6. Algoritmi cu chei publice...............................................................................................42
1.7. Criptarea cuantic...........................................................................................................47
1.8. Concluzii la Capitolul 1..................................................................................................50
2. MULIMI DE RELAII MULTI-ARE. MATRICE MULTIDIMENSIONALE ...........51
2.1. Relaii pe mulimi. Mulimi de relaii..............................................................................51
2.2. Reprezentarea funciilor booleene prin submulimi de coloan. ......................................59
2.2.1. Submulimi de coloan. Proprieti. Tabelul submulimilor de coloan ale funciilor
booleene............................................................................................................................59
2.2.2. Determinarea submulimilor de coloan ale funciilor booleene reprezentate n form
algebric............................................................................................................................71
2.2.3. Submulimi de coloan ale derivatelor funciilor booleene. Polinomul Zhegalkin.
Seria Taylor.......................................................................................................................75
2.3. Reprezentarea funciilor q-valente prin submulimi de coloan ......................................85
2.4. Generarea numerelor prime. ...........................................................................................88
2.5. Concluzii la capitolul 2...................................................................................................95
3. SISTEME DE CRIPTARE BAZATE PE MULIMI DE RELAII MULTI-ARE ........96
3.1. Sistem de criptare cu set de chei bazat pe numere prime.................................................96
3.2. Sistem simetric de criptare bazat pe dezvoltarea polinomial a numerelor.....................102
3.3. Sistem de criptare bazat pe funcii booleene .................................................................111
3.4. Sistem de criptare bazat pe funcii de logica q-valent ..................................................122
3.5. Concluzii la capitolul 3.................................................................................................124
CONCLUZII GENERALE I RECOMANDRI............................................................... 125
BIBLIOGRAFIE................................................................................................................... 127
ANEXA 1. Diagrame. Reflectarea timpului de criptare-decriptare ...................................135
ANEXA 2. Listingul softului................................................................................................. 149
DECLARAIA PRIVIND ASUMAREA RSPUNDERII ................................................. 162
CV AL AUTORULUI ........................................................................................................... 163
4
ADNOTARE
Zgureanu Aureliu, Securitatea informaional i metode de criptare bazate pe
mulimi de relaii multi-are, tez de doctor n tiine fizico-matematice la specialitatea
01.01.09 Cibernetic Matematic i Cercetri Operaionale, Chiinu, 2011.
Teza cuprinde introducerea, trei capitole, concluzii cu recomandri, bibliografia din 130
titluri i 2 anexe. Ea este perfectat pe 164 pagini, dintre care 125 pagini constituie partea de
baz, conine 62 figuri i 24 tabele. Rezultatele obinute sunt publicate n 13 lucrri tiinifice.
Cuvinte-cheie: sistem de criptare, matrice multidimensional, numr prim, funcie
boolean, funcie q-valent, derivat parial, mulimi de relaii multi-are.
Domeniul de studiu al tezei const n cercetarea i elaborarea unor noi algoritmi de
criptare a informaiei. Baza teoretic a acestor algoritmi include numerele prime mari, matricele
multidimensionale, ecuaiile polinomiale cu coeficieni nedeterminai, funciile booleene i cele
din logica q-valent.
Ca obiective principale ale tezei pot fi menionate: elaborarea unui algoritm determinist
de generare a numerelor prime mari, cercetarea relaiilor multi-are reprezentate cu ajutorul
matricelor multidimensionale i aplicarea acestora la elaborarea algoritmilor de criptare,
studierea funciilor booleene i implementarea lor n elaborarea unor algoritmii noi de criptare,
descrierea aspectelor teoretice a algoritmilor propui, elaborarea softului i prezentarea unor
rezultate evaluative i comparative.
Noutatea i originalitatea tiinific const n: elaborareaunor metode noi de protecie a
datelor prin criptare. n tez sunt expuse patru metode noi de criptare. Pentru una dintre aceste
metode este elaborat un algoritm determinist de generare a numerelor prime mari, ceea ce ne
permite s o plasm printre metodele de criptare cu o securitate nalt. O particularitate
important a metodelor prezentate n tez const n aplicarea matricelor multidimensionale (n
sensul generalizrii directe a matricelor bidimensionale obinuite) la elaborarea a trei dintre
aceti algoritmi. O alt particularitate o constituie aplicarea funciilor booleene i a funciilor din
logica q-valent. Aceste funcii sunt definite prin submulimi de coloan pentru a putea efectua
mai simplu unele operaii asupra lor, una dintre operaiile de baz fiind calculul derivatelor
pariale ale acestor funcii.
Problema tiinific important soluionat. Sunt propuse metode eficiente de criptare a
informaiei care depesc metodele actuale dup un ir de parametri (timpul de criptare, volumul
memoriei, securitatea algoritmului etc). Este dezvoltat baza teoretic pentru aceste metode care
const n proprieti noi ale funciilor booleene, funciilor q-valente i matricelor multidimensionale.
Semnificaia teoretic: la elaborarea metodelor de criptare, expuse n tez, au fost
obinute rezultate teoretice noi ce in de studierea teoriei relaiilor multi-are, a proprietilor
matricelor multidimensionale, precum i a funciilor booleene. Prezint interes rezultatele ce in
de implementareafunciilor din logica q-valent. Metodele de criptare obinute asigur un grad
nalt de securitate i o fiabilitate major a sistemului de criptare a informaiei.
Valoarea aplicativ a lucrrii: pentru fiecare metod de criptare a fost implementat cte
o aplicaie care o realizeaz. Softul elaborat este simplu, eficient i nu necesit resurse de calcul
mari.
5
ABSTRACT
of the thesis Information security and encryption methods based on sets of multi-
ary relations submitted by Aureliu Zgureanu, to the Moldova State University in partial
fulfillment of the requirements for the degree of Doctor in Physics and Mathematics,
speciality 01.01.09 Mathematical Cybernetics and Operational Research, Chisinau, 2011.
The thesis contains the introduction, three chapters, conclusions and recommendations,
the bibliography (130 titles) and 2 annexes. It consists of 164 pages, from which 125 pages of the
main part, including 62 figures and 24 tables. Obtained results are published in 13 scientific papers.
Keywords: encryption system, multidimensional matrix, prime number, Boolean
function, q-valent function, partial derivative, sets of multi-ary relations.
The area of study refers to the research and elaboration of new information encryption
algorithms. Theoretical basis of these algorithms include large prime numbers, multidimensional
matrixes, polynomial equations with undetermined coefficients, Boolean and q-valent functions.
The aim of this work consists in following: elaboration of a deterministic algorithm for
generating of large prime numbers, researching of multidimensional matrices for use their in
cryptography, study of Boolean functions and their implementation in elaboration of encryption
algorithms with reduced resources, description of the theoretical aspects of the proposed
algorithms, software development and presentation of evaluative and comparative results.
The scientific novelty and originality of obtained results consist in elaboration of new
methods of data protection using encryption. In this thesis are presented four new methods of
encryption. For one of these methods is developed a deterministic algorithm for generate large
prime numbers, which allows us to place it among methods of encryption with high security. An
important feature of the presented methods in the thesis is to apply multidimensional matrices
(meaning direct generalization of the usual two-dimensional matrices) in the development of
three of these algorithms. Another feature is the application of Boolean functions and functions
of q-valent logic. These functions are defined by subsets of the column to perform some simple
operations on them, one of the basic operations is calculation of partial derivatives of these
functions.
Important scientific problem solved. In this thesis are proposed new effective methods of
encryption, that exceed current methods by a number of parameters (time of encryption, volume
memory, security algorithm etc). Is developed the theoretical basis for these methods based on
new properties of the Boolean functions, functions of q-valent logic and of multidimensional
matrices.
The theoretical signification consists in: in the development of the methods of encryption,
exposed in the thesis were obtained new theoretical results related to the study of multi-ary
relations theory, properties of multidimensional matrices and Boolean functions. The results
related to the implementation of the functions of q-valued logic represents interest. Obtained
encryption methods ensure a high degree of security and reliability of the system of information
encryption.
The practical value of the work: for every proposed method has been developed a
program. Elaborated software is simple, efficient and does not require considerable computing
resources.
6


, ,
- ,
- 01.01.09
, , 2011.

, , c ,
130 2- . 164 ,
125 , 62 24 .
13 .
: , , ,
, q- , , - .

.
, ,
, q- .
:
, -

,
,
,
.
:
.
.
,
.
(
) .
q- .
,
,
.
. ,
( ,
, .).
, q- ,
.
:
,
- ,
.
q- .
.
: .

.
7
INTRODUCERE

Actualitatea i importana problemei abordate.
Una dintre caracteristicile societii moderne o reprezint Informatizarea. Tehnologii
informaionale noi sunt permanent implementate n diverse domenii ale activitii umane. Prin
utilizarea calculatoarelor i a software-ului respectiv sunt dirijate procese complexe din cele mai
diverse domenii de activitate. Calculatoarele stau la baza mulimilor de sisteme de prelucrare a
informaiei, care nfptuiesc pstrarea, prelucrarea informaiei, distribuirea ei ctre utilizator,
realiznd astfel tehnologii informaionale moderne.
Odat cu dezvoltarea mecanismelor, metodelor i formelor de automatizare a proceselor
de prelucrare a informaiei crete i dependena societii de gradul de securitate a a proceselor
de gestionare a informaiei, realizat prin intermediul diverselor tehnologii informaionale
aplicate, de care depinde bunstarea, sau uneori i viaa multor oameni.
Relevana i importana problemei de securitate a informaiei i a tehnologiilor
informaionale rezult din urmtoarele:
- sporirea brusc a potenialului de calcul al calculatoarelor moderne i simplificarea
exploatrii lor;
- creterea rapid a volumului de informaie cu care opereaz societatea prin intermediul
calculatorului i a altor mijloace tehnice;
- concentrarea n baze de date unice a diverselor tipuri de informaie (dup scop i
apartenen);
- sporirea impresionant a numrului de calculatoare personale utilizate n diverse domenii de
activitate;
- lrgirea considerabil a cercului de utilizatori care au acces direct la resursele de calcul i la
blocurile de date;
- dezvoltarea rapid a instrumentelor software care nu ndeplinesc norme minime de siguran;
- implementarea pe scar larg a tehnologiilor de reele i conectarea reelelor locale la cele
globale;
- dezvoltarea Internetului, care practic nu mpiedic nclcrile referitoare la securitatea
sistemelor de prelucrare a informaiei din ntreaga lume.
Soluionarea problemelor legate de securitatea informaiei constituie obiectul de studiu al
Criptografiei [94], care este o ramur a matematicii moderne, ce se ocup de elaborarea
metodelor matematice capabile s asigure confidenialitatea, autentificarea i non-repudierea
mesajelor, precum i integritatea datelor vehiculate. Criptografia este un set de standarde i
8
protocoale pentru codificarea datelor i mesajelor, astfel nct acestea s poat fi stocate i
transmise mai sigur. Ea st la baza multor servicii i mecanisme de securitate, folosind metode
matematice pentru transformarea datelor, n intenia de a ascunde coninutul lor sau de a le
proteja mpotriva modificrii. Criptografia ne ajut s avem comunicaii mai sigure, chiar i
atunci cnd mediul de transmitere (de exemplu, Internetul) nu este de ncredere. Ea poate fi
utilizat pentru a contribui la asigurarea integritii datelor, precum i la meninerea lor n calitate
de date secrete, ne permite s verificm originea datelor i a mesajelor prin utilizarea
semnturilor digitale i a certificatelor.
Unul dintre instrumentele principale ale criptografiei este sistemul de criptare, la baza
cruia se afl algoritmul de criptare. Unul dintre cei mai timpurii algoritmi de criptare este
considerat cifrul lui Cezar [52], [60], care nlocuia fiecare liter a mesajului cu a treia liter dup
ea din alfabet. La timpul su acest algoritm de criptare a fost destul de eficient, cu toate c este
foarte simplu s restabileti textul original avndu-l pe cel criptat. Odat cu trecerea timpului au
fost mbuntite i sistemele de criptare, fiind elaborate sisteme cu cheie privat [74], [96], [98],
[112], [121]), precum i sisteme cu cheie public [38], [43], [45],[90], [93].
Sistemele de criptare cu cheie privat sau sistemele simetrice de criptare sunt sistemele n
care cheia de criptare coincide cu cheia de decriptare. Sistemele simetrice sunt folosite pentru
protecia datelor memorate n fiiere, baze de date sau a informaiilor transmise n reele.
Dintre sistemele cu cheie privat putem meniona urmtoarele:
Algoritmul Lucifer [102] un proiect al companiei IBM iniiat n anul 1970. Acest
algoritm prezint o reea de permutri i substituii.
Algoritmul DES (Data Encryption Standard) [49] a fost elaborat de ctre firma IBM i n
1977 a fost aprobat ca standard oficial n SUA. DES are blocuri de 64 de bii i o
structur Feistel de 16 cicluri, folosind o cheie de 56 de bii i o combinare de
transformri liniare i neliniare la criptare.
Cifrul RC4 [74] un cifru ir cu cheie de lungime variabil, dezvoltat n 1987 de ctre
Ron Rivest pentru compania RSA Data Security. Criptograma se obine sumnd modulo
2 textul clar cu cheia, care este generat n mod pseudoaleator.
RC5 [91] un cifru pe blocuri, notabil pentru simplitatea sa. A fost elaborat de cte Ron
Rivest pentru RSA Data Security n anul 1994. El are un numr variabil de blocuri i
runde precum i o lungime variabil a cheii. Spre deosebire de predecesorii si folosete
operaia de strmutare cu un numr variabil de bii.
Algoritmul AES (Advanced Encryption Standard) [48], sau Rijndael este un algoritm pe
blocuri (lungimea blocului este de 128 bii, lungimea cheii este de 128, 192 sau 256 bii),
aprobat n calitate de standard de criptare n SUA n 2002.
9
Sistemele de criptare n locul unei singure chei secrete, folosesc dou chei diferite: una
pentru cifrare, alta pentru descifrare. Deoarece este imposibil deducerea unei chei din cealalt,
una din chei este fcut public, fiind pus la ndemna oricui dorete s transmit un mesaj
cifrat. n practica aplicaiilor Internet, cifrurile cu chei publice sunt folosite n general pentru
semntura digital asociat mesajelor, pentru autentificarea coninutului i a emitorului, dar i
pentru cifrarea i distribuia cheilor simetrice, folosite n secretizarea mesajelor, operaie numit
anvelopare a cheii.
Printre sistemele cu cheie public se numr:
Algoritmul Merkle-Hellman [74], [121], publicat n 1978 de ctre Ralph Merkle i
Martin Hellman. Algoritmul bazat pe problema rucsacului, o problem NP-complet.
Algoritmul RSA [90] a fost publicat n 1978 de Ron Rivest, Adi Shamir i Leonard
Adleman la Massachusetts Institute of Technology. Puterea sa criptografic se bazeaz pe
dificultatea problemei factorizrii numerelor ntregi, problem la care se reduce
criptanaliza RSA i pentru care toi algoritmii de rezolvare cunoscui au complexitate
exponenial.
Algoritmul ElGamal [43] este elaborat de Taher Elgamal n 1984 i publicat in 1985. La
baza algoritmului se afl problema calculrii logaritmului discret ntr-un cmp finit.
n paralel cu perfectarea sistemelor de criptare i elaborarea noilor sisteme, se depun
eforturi considerabile n scopul determinrii metodelor de criptanaliz a acestor sisteme, iar
dezvoltaea tehnicii de calcul nlesnete aceste eforturi. Ca urmare unele sisteme de criptare devin
impracticabile iar altele necesit o perfecionare serioas. Aceste considerente, precum i faptul
c serviciile de spionaj de diferite nivele i din diferite domenii ating performane noi n
interceptarea informaiei i mai ales n restabilirea informaiei criptate, impun cercetarea i
inventarea de noi sisteme de criptare mai performante, mai eficiente, mai sigure. Aceasta
reprezint o problema actual de importan major n societatea modern. Astfel, ntr-o
societate informatizat, Criptografiei i revine un rol important n asigurarea funcionalitii
acesteia, deoarece orice domeniu de activitate este bazat pe un volum tot mai mare de informaie,
folosit n diverse procese manageriale.







10
Scopul i obiectivele tezei
innd cont de faptul c sistemele actuale de criptare sunt vulnerabile i n cazul unor
volume mari de informaie necesit un volum destul de mare de memorie i au vitez redus de
lucru, rmne actual problema elaborrii unor metode (sisteme) mai performante. n aceast
tez autorul propune cteva idei noi elaborarea unor astfel de metode, bazate pe rezultate
teoretice recente obinute la studierea mulimilor de relaii multi-are [22], [24], [117], [108],
precum i a aplicaiilor acestora n studierea funciilor booleene [15], [25], [109].
nzilele noastre este inadmisibil operarea cu date secrete fr asigurare de utilizarea lor
de ctre ruvoitori n caz de interceptare. Orice ar are un algoritm standardizat pentru criptarea
datelor, orice companie care se respect folosete unul dintre sistemele de criptare pentru
operarea cu date confideniale i majoritatea aplicaiilor care opereaz cu date mai mult sau mai
puin confideniale au incorporate i sisteme de criptare.
La baza oricrui sistem de criptare se afl o teorie bine fundamentat, ce utilizeaz
rezultate din diverse ramuri ale matematicii moderne: teoria numerelor, teoria probabilitilor,
statistica matematic, teoria informaiei, teoria complexitii algoritmilor, structurile algebrice
etc.
Acest lucru l vedem la Claude Elwood Shannon unul dintre cei care a pus bazele
tiinifice ale criptografiei moderne publicnd n anul 1949 articolul Teoria comunicaiilor n
sistemele cu secretizare (Communication Theory of Secrecy Systems [98]), n care autorul a
demonstrat imposibilitatea spargerii cifrului aleator Vernam [105] i a stabilit hotare clare pentru
mrimea cheii secrete. Totodat aceast lucrare a pus bazele sistemelor simetrice de criptare
[74], [94].
n anul 1976 Whitfield Diffie i Martin E. Hellman au publicat articolul New Directions
in Cryptography [38], n care au artat c comunicaia secret poate fi fcut fr transmiterea
cheii secrete, inventnd astfel criptografia cu chei publice [74], [94]. Aici a fost aplicat
problema logaritmului discret [43], iar un an mai trziu a fost inventat celebrul algoritm RSA
[90], la baza cruia st problema complicat a factorizrii numerelor mari de forma q p n =
[122] unde p i q sunt numere prime mari.
Scopul tezei const n cercetarea relaiilor pe mulimi, a mulimilor de relaii multi-are,
a matricelor multidimensionale (n sensul generalizat al matricelor dreptunghiulare obinuite), a
algoritmilor de generare a numerelor prime mari, a proprietilor funciilor booleene i aplicarea
acestor proprieti n crearea algoritmilor care pot sta la baza unor sisteme de criptare fiabile.
Dezvoltnd n continuare ideile legatre de elaborarea metodelor moderne de criptare
expuse de ctre diferii cercettori, n lucrare se propun metode noi de criptare bazate pe dou
principii de elaborare:
11
a) aplicarea numerelor prime;
b) utilizarea proprietilor funciilor booleene.
n aceste sisteme un rol important l au matricele multidimensionale, prin intermediul
crora se reprezint mulimile de relaii multi-are.
Aplicarea matricelor multidimensionale reprezint un interes deosebit nu numai n plan
teoretic, dar n special aplicativ, mai ales din punct de vedere al eficienei algoritmilor
elaborai fa de cei existeni.
Printre obiectivele principale ale tezei pot fi menionate:
1. elaborarea unui algoritm determinist de generare a numerelor prime;
2. cercetarea matricelor multidimensionale i utilizarea proprietilor acestora la elaborarea
unor algoritmi noi de criptare;
3. studierea unor proprieti speciale ale funciilor booleene, necesare pentru elaborarea
algoritmilor simetrici noi de criptare cu resurse de lucru reduse;
4. descrierea aspectelor teoretice a algoritmilor propui;
5. analiza comparativ a algoritmilor elaborai i a celor existeni;
6. elaborarea softului i prezentarea unor rezultate evaluative.
Noutatea tiinific a rezultatelor obinute
n prezent exist multe sisteme de criptare bazate pe diveri algoritmi. Fiecare algoritm
sau sistem i are specificul su i s-ar prea c descoperirea unui nou algoritm de criptare fiabil
este dificil de realizat. Ba mai mult, chiar dac se creeaz un astfel de algoritm nou, se pune
ntrebarea pe ct de eficient este el, de ce este mai acceptabil dect celelalte? Se cere o
argumentare n care cazuri i situaii acest algoritm este preferabil fa de celelalte.
Teza conine fundamentarea teoretic i descrierea algoritmilor respectivi pentru patru
metode noi de criptare bazate pe utilizarea numerelor prime mari (Cripto 1 i Cripto 2) i a
funciilor booleene (Cripto 3 i Cripto 4).
Cripto 1 este o variaie a sistemului RSA i spre deosebire de acesta folosete un cortegiu
de chei pentru criptarea (decriptarea) informaiei. Acest element inovativ al algoritmului Cripto 1
ne permite s evitm necesitatea mririi cheii odat cu creterea performanelor tehnicii de
calcul. Securitatea nalt a algoritmului Cripto 1 este asigurat de un generator de numere prime,
expus n lucrare, care poate fi utilizat cu succes i n alte scopuri.
Ceilali algoritmi sunt bazai pe aplicarea matricelor multidimensionale prin repartizarea
codurilor caracterelor textului clar n celulele acestor matrice. Matricele multidimensionale sunt
proiectate n matrice bidimensionale obinuite cu numrul de linii i coloane dependent de unii
parametri ai algoritmilor.
12
Ca i n cazul lui Cripto 1, algoritmul Cripto 2 utilizeaz, n afar de matricele
multidimensionale, acelai generator de numere prime, care reprezint n acest caz cheia privat
a sistemului simetric. Utiliznd cheia dat, algoritmul calculeaz, utiliznd liniile matricei
bidimensionale obinute, nite numere ntr-un sistem de numeraie, baza cruia este cheia privat.
Procesul de decriptare se produce n ordine invers. La baza securitii acestui algoritm de
criptare se afl problema rezolvrii unui sistem de ecuaii liniare cu mai multe variabile i cu
coeficienii nedeterminai.
Al treilea i al patrulea algoritm de criptare sunt construii n baza unor proprieti ale
funciilor booleene, demonstrate n tez. Cheia sistemului, la fel ca i textul plan, genereaz cte
o matrice multidimensional de aceleai dimensiuni. Cu ajutorul acestor matrice se efectueaz
operaii logice. n rezultat se obine o a treia matrice, liniile creia reprezint textul cifrat. Cheia
de criptare poate fi schimbat de la un mesaj la altul, dar i pe parcursul criptrii unuia i
aceluiai mesaj. Algoritmul Cripto 3 utilizeaz funciile booleene, iar algoritmul Cripto 4
funciile din logica q-valent.
Numrul de chei din spaiul cheilor pentru algoritmii Cripto 3 i Cripto 4, este suficient
de mare pentru a face inutile atacurile cu fora brut, iar alte tipuri de atac cunoscute nu prezint
pericol la momentul actual.
Importana teoretic i valoarea aplicativ a lucrrii
Lucrarea de fa propune metode noi de criptare a informaiei. Aceste metode stau la baza
elaborrii algoritmilor respectivi de criptare prin aplicarea matricelor multidimensionale, care
generalizeaz noiunea de matrice clasic, concomitent cu alte aspecte din domeniul
matematicilor aplicate.
Metodele de criptare descrise conin o argumentare teoretic riguroas. Lucrarea dat
conine o serie de teoreme, n care sunt demonstrate proprieti ale funciilor booleene, sunt
studiate mulimile de relaii multi-are reprezentate prin matrice multidimensionale, necesare la
elaborarea sistemelor.
n acelai timp a fost elaborat un algoritm determinist de generare a numerelor prime
mari care sunt ntrebuinate la elaborarea unor sisteme de criptare moderne, iar n aceast tez la
primii doi algoritmi.
Pentru fiecare algoritm descris n tez a fost elaborat cte un program care l realizeaz
n mediul de calcul Mathematica. Softul elaborat este simplu, lucreaz eficient i nu necesit
resurse de calcul considerabile(n special al treilea i al patrulea algoritm).
Problema tiinific important soluionat. Sunt propuse metode eficiente de criptare a
informaiei care depesc metodele actuale dup un ir de parametri (timpul de criptare, volumul
memoriei, securitatea algoritmului etc). Este dezvoltat baza teoretic pentru aceste metode care
se bazeaz pe proprieti noi ale funciilor booleene, funciilor q-valente i matricelor
multidimensionale.
13
Aprobarea rezultatelor
Rezultatele de baz ale tezei au fost relatate la urmtoarele conferine i seminare:
1. The XIVth Conference on Applied and Industrial Mathematics, Satellite Conference of the
ICM, Chisinau 2006.
2. International Algebraic Conference dedicated to the 100
th
anniversary of D. K. Faddeev. St
Petersburg, Russia, 2007.
3. ASADE Moldova, August 21, 2007.
4. Conferina tiinific internaional Modelare matematic, optimizare i tehnologii
informaionale. Chiinau, 19-21 martie, 2008. ATIC.
5. , (-08),
, , 2008.
6. Conferina Internaional ICT+ TEHNOLOGII INFORMAIONALE I DE
COMUNICAII - 2009. 19 20 MAI 2009, or. CHIINU.
7. Conferina Managementul ntreprinderii n mediul economic contemporan. 24-25
septembrie, 2009. Chiinu.
8. Conferina tiinific internaional. Modelare matematic, optimizare i tehnologii
informaionale. Chiinau, 26-28 martie, 2010
9. Tiberiu Popoviciu seminar, Cluj-Napoca 6-7 september, 2010.
10. International Student Conference on Pure and Applied Mathematics (ISCOPAM), Iai, July
12-16, 2010.
11. MITRE-2011, International Conference dedicated to the 65th anniversary of Moldova State
University, Chiinu, 2011.
Printre publicaii cu tematica abordat n tez se consider:
1. Bulat, M., Leon,D., Bivol, L., Ciobanu I., Zgureanu,A..(2006) Generadores de numeros
primos y factorizadores de numeros compuestos Revista de Matematica: Teoria y
Aplicaciones, 2006 ,13(1) CIMPA-UCR-CCSS: pp. 1-15.
2. Bulat, M.; Zgureanu, A.; Ciobanu, I.; Bivol, L. (2006) A method for obtaining arbitrary
form prime numbers, Satellite Conference of the ICM 2006. The XIVth Conference on
Applied and Industrial Mathematics, Chisinau: pp. 7073.
3. Bulat M., Zgureanu A., Ciobanu I., Bivol L. Generating of prime numbers based on the
multidimensional matrices. International Algebraic Conference dedicated to the 100
th

anniversary of D. K. Faddeev. St Petersburg, Russia, 2007, pp. 98-99.
4. Bulat M., Zgureanu A., Ciobanu I., Bivol L. The inverse transformations of multidimensional
matrices. ASADE Moldova, August 21, 2007, pag. 34-34.
14
5. Bulat M., Zgureanu A., Ciobanu I., Bivol L. Sisteme de criptare cu chei vectoriale.
Conferina tiinific internaional. Modelare matematic, optimizare i tehnologii
informaionale. Chiinau, 19-21 martie, 2008. ATIC, pp. 281 285.
6. .., .., .., .. - n-
. , (-08),
, , 2008: pp. 66-67.
7. Aureliu Zgureanu, Mihai Bulat. Sisteme de criptare bazate pe funcii booleene. Conferina
Internaional ICT+ TEHNOLOGII INFORMAIONALE I DE COMUNICAII- 2009.
19 20 MAI 2009, or. CHIINU.
8. Zgureanu Aureliu, Sisteme de criptare cu chei variabile. Analele ATIC-2007-2008, vol. I
(XII). pp. 92-98, Chiinu. Evrica. 2009.
9. Zgureanu A., Bulat M., Protecia informaiei i managementul ntreprinderii. Materialele
conferinei Managementul ntreprinderii n mediul economic contemporan. 24-25
septembrie, 2009. Chiinu. Evrica. 2009. pp. 312-314.
10. Mihai Bulat, Aureliu Zgureanu, Iacob Ciobanu, Vladimir Izba. Sistem de criptare bazat pe
derivarea funciilor booleene. Conferina tiinific internaional. Modelare matematic,
optimizare i tehnologii informaionale. Chiinau, 26-28 martie, 2010. pp. 132-141.
11. Aureliu Zgureanu, Sergiu Cataranciuc. Encryption systems based on multidimensional
matrixes. Tiberiu Popoviciu seminar, Cluj-Napoca 6-7 september, 2010, 11 pagini.
12. Zgureanu Aureliu, Information encryption systems based on Boolean functions. The
Computer Science J ournal of Moldova, vol.18, no.3(54), 2010, pp. 319-335.
13. Mihai Bulat, Sergiu Cataranciuc, Aureliu Zgureanu. A method for calculating the Zhegalkin
polynomial coefficients. MITRE-2011, International Conference dedicated to the 65th
anniversary of Moldova State University, Chiinu, 2011, pp. 19-20.

Sumarul compartimentelor tezei
Teza de fa conine introducere, trei capitole, concluzii cu recomandri, lista
bibliografic i 2 anexe.
n Capitolul I se face o sintez a lucrrilor din domeniu, a rezultatelor cunoscute pn n
prezent. Se accentueaz rolul lui Claude Elwood Shannon care a pus bazele teoretice ale
sistemelor cu secretizare [98], precum i al matematicienilor Whitfield Diffie i Martin E.
Hellman, care n anul 1976 prin publicarea articolului New Directions in Cryptography [38] au
artat c comunicaia secret poate fi fcut fr transmiterea cheii secrete, inventnd astfel
criptografia cu chei publice [74], [94]. n tez sunt descrise diverse tipuri de sisteme de criptare
aplicate n trecut i prezent, cu trecerea n revist a celor mai frecvent ntlnite n practic. Sunt
15
evideniate prile slabe i cele puternice ale acestor sisteme i domeniile de aplicabilitate ale
unora dintre ele. Este abordat problema criptrii cuantice, una foarte polemizat n prezent.
Capitolul este finalizat cu enumerarea avantajelor i dezavantajelor tipurilor sistemelor de
criptare, cu justificarea necesitii modernizrii continue a sistemelor de criptare i sunt propuse
unele probleme care se vor ncerca a rezolva n urmtoarele capitole ale tezei. Aspectul teoretic
abordat a servit drept temelie pentru cercetrile i rezultatele din capitolele doi i trei.
Capitolul doi conine rezultatul cercetrilor relaiilor ntre mulimi i a mulimilor de
relaii multi-are [24] reprezentate prin intermediul matricelor multidimensionale. Este analizat
transformarea ) (R A
R
,
u = [24] care pune n coresponden unei mulimii de relaii R
,
un cortegiu
) ,..., (
... 1 ... 11
1 n
m m
a a A =
,
pe proprietile creia sunt bazate rezultate teoretice importante din tez,
printre care se numr i algoritmul de generare a numerelor prime mari [20], [22]. Sunt
demonstrate cteva teoreme referitoare la repartizarea numerelor prime n liniile matricelor
obinute la proiectarea matricelor multidimensionale pe matrice dreptunghiulare obinuite. n
acest capitol sunt expuse i demonstrate un ir de proprieti ale funciilor booleene, fiind
aplicat reprezentarea acestor funcii prin intermediul submulimilor de coloan [25], [109]. Este
abordat problema dezvoltrii funciei booleene n serie Taylor, i determinrii coeficienilor
polinomului Zhegalkin [15] aplicnd submulimile de coloan ale funciei booleene. O bun
parte dintre aceste teoreme (proprieti) este generalizat [109] i pentru funcii din logica q-
valent.
Capitolul trei nsumeaz rezultatele teoretice noi obinute pentru elaborarea algoritmilor
de criptare expui n tez. Astfel, sunt prezentai doi algoritmi de criptare care funcioneaz n
baza numerelor mari prime (Cripto 1 [23] i Cripto 2 [117], [108]), precum i doi algoritmi
(Cripto 3 [108], [109] i Cripto 4 [109]) care funcioneaz n baza funciilor booleene bivalente
i q-valente respectiv, n combinare cu aplicarea matricelor multidimensionale. Sunt prezentate
date statistice comparative referitoare la timpul de lucru al algoritmilor n funcie de mrimea
mesajului pentru criptare.
La tez se anexeaz listingul softului elaborat. Pentru fiecare metod elaborat a fost
implementat un program aparte care, luate mpreun, formeaz un pachet de aplicaii. Aplicaiile
au fost elaborate n mediul de calcul Mathematica.





16
1. ANALIZA SITUAIEI N DOMENIUL CRIPTOGRAFIEI

Pe ntreg parcursul dezvoltrii societii umane din antichitate pn n prezent
informaia confidenial era pstrat n secret n diferite moduri. A rmas celebru modul n care
Cezar fcea schimb de informaii cu generalii si, aplicnd cifrul care i poart numele. Timpul
s-a scurs, noi ne-am dezvoltat ncontinuu, dar problema pstrrii n secret a informaiei
confideniale, problema comunicaiilor secretizate a rmas actual i ncepnd cu anii 40 ai
secolului XX s-a desfurat o intens cercetare ([38], [43], [90], [91], [96], [97], [98], [99],
[128]) n domeniul comunicaiilor secretizate, obiectul de studiu al crora este Criptografia.
1.1. Problema securitii informaiei
Soluionarea problemei de securitate informaional nu poate fi realizat ffr a lua n
consideraie doi factori importani, ce influeneaz nemijlocit atingerea scopului final:
a) dezvoltarea mijloacelor de comunicaii informaionale;
b) dezvoltarea sistemelor performante de criptare.
Aceste dou domenii de activitate se completeaz reciproc i permit obinerea unor
rezultate importanten asigurarea securitii de manipulare cu masive mari de informaie.

a) etapele dezvoltrii mijloacelor de comunicaii informaionale.
n ziua de azi n toate domeniile activitii umane sunt implementate noi tehnologii
informaionale. Apariia reelelor locale i globale de transmitere a datelor le-a permis
utilizatorilor calculatoarelor s foloseasc metode noi n schimbul de informaii. Apariia
Internetului a dus la utilizarea reelelor globale, n scopul transmiterii datelor, practic de ctre
fiecare om. Pe msur ce se dezvolt i se complic mijloacele, metodele i formele de
automatizare a proceselor de prelucrare a informaiei se mrete i dependena societii de
gradul de securitate a tehnologiilor informaionale utilizate.
Metodele contemporane de prelucrare, transmitere i stocare a informaiei au contribuit la
apariia riscurilor legate de posibilitatea pierderii, denaturrii, destinuirii datelor care sunt
adresate sau care aparin utilizatorilor finali. De aceea asigurarea securitii informaiei este una
dintre direciile cele mai importante n dezvoltarea tehnologiilor informaionale.
Protecia informaiei este activitatea ndreptat spre prevenirea scurgerii informaiei
protejate, spre prevenirea aciunilor nesancionate sau neintenionate asupra acestor informaii
[55]. Securitatea informaional reprezint protejareainformaiei de familiarizarea ilegal cu ea,
transformarea sau lichidarea ei, dar i ocrotirea resurselor informaionale de influenele
ndreptate spre dereglarea capacitii lor de lucru [67]. Aceste influenri pot fi de natur diferit:
17
tentative de ptrunderi a ruvoitorilor, erorile personalului, ieirea din funcie a mijloacelor
tehnice sau a softului, dar i calamitile naturale (cutremur, uragan, incendiu) etc.
n mod obiectiv noiunea de securitate informaional a aprut odat cu inventarea
mijloacelor de comunicaii informaionale ntre oameni [60], dar i odat cu nelegerea de ctre
om a faptului c ali oameni sau comuniti au interese, crora li se pot cauza daune prin
intervenia asupra mijloacelor de comunicaii informaionale, existena i dezvoltarea crora
asigur schimbul de informaii ntre toate elementele societii umane.
Dac lum n consideraie influena transformrilor de idei n securitatea informaional,
putem evidenia cteva etape ale dezvoltrii mijloacelor de comunicaii informaionale [129]:
Etapa I pn la anul 1816 este caracterizat de mijloacele de comunicaii
informaionale aprute pe cale fireasc. n aceast perioad problema de baz a securitii
informaionale consta n protecia datelor referitoare la evenimente, fapte, avere, amplasament i
a altor date care au pentru om personal sau pentru societate o importan vital.
Etapa II ncepnd cu anul 1816 este corelat cu nceputul aplicrii mijloacelor tehnice
artificiale ale comunicaiilor electrice i radio. Pentru asigurarea secretizrii i proteciei de
perturbaii ale comunicaiilor radio era necesar de utilizat experiena acumulat pe parcursul
primei etape ale securitii informaionale la un nivel tehnologic mai nalt i anume aplicarea
unei codificri a mesajului (semnalului) rezistente la perturbaii cu decodificarea ulterioar a
mesajului (semnalului) primit.
Etapa III ncepnd cu 1935 este n legtur direct cu inventarea mijloacelor de radar
i sonar. Metoda de baz n asigurarea securitii informaionale n aceast perioad era o
combinare de msuri tehnice i organizatorice direcionate spre mrirea securitii.
Principala modalitate de a asigura securitatea informaiilor, n aceast perioad a fost o
combinaie de msuri organizatorice i tehnice care vizeaz mbuntirea proteciei mijloacelor
radar de la efectele asupra receptorilor lor generate de bruiajul electronic activ de mascare i cel
pasiv de simulare.
Etapa IV ncepe cu anul 1946 i este condiionat de inventarea i implementarea n
activitatea practic a mainilor electronice de calcul calculatoarelor. Problemele securitii
informaionale erau rezolvate prin metode de control a accesul fizic la hardware-ul mijloacelor
de colectare, prelucrare i transmitere ainformaiilor.
Etapa V ncepe din 1965 i este n corelaie cu crearea i dezvoltarea reelelor de
comunicaii informaionale. Problema securitii informaiei era rezolvat, n principiu, la fel
prin metode i procedee de protecie fizic a mijloacelor de dobndire, prelucrare i transmitere a
informaiei, unite n reeaua local. Acest lucru se fcea pe calea administrrii i dirijrii
accesului la resursele din reea.
18
Etapa VI ncepe cu anul 1973 este legat de utilizarea dispozitivelor ultra mobile de
comunicaie cu o gam larg de sarcini. Ameninrile la adresa securitii informaionale au
devenit mai periculoase. Pentru asigurarea proteciei informaiei n sistemele de calculatoare cu
reelele fr fir de transmitere a datelor a fost necesar de stabilit noi criterii de securitate. S-au
format comuniti de oameni hackerii ce aveau drept scop prejudicierea securitii
informaionale a utilizatorilor individuali, a companiilor dar i a unor state ntregi. Resursele
informaionale au devenit cele mai importante resurse ale statului iar asigurarea proteciei lor a
devenit o component obligatorie i cea mai important pentru securitatea naional. n aceast
perioad se nate i o nou ramur a sistemului juridic legat de protecia informaiilor.
Etapa VII ncepe n 1985 este legat de crearea i dezvoltarea reelelor de comunicaii
informaionale cu implementarea mijloacelor de asigurare spaiale.
Astzi suntem ntr-o nou etap de dezvoltare a securitii informaionale. Acum se aplic
pe scar larg mijloacele ultra-mobile de comunicaii cu o gam larg de sarcini i acoperire
global n spaiu i timp, i cu asigurarea sistemelor spaiale de comunicaii. Pentru rezolvarea
problemelor securitii informaionale la aceast etap este necesar de creat macrosisteme ale
securitii informaionale a umanitii sub egida forumurilor internaionale de frunte.
Securitatea informaional este un domeniu mult prea vast, cu prea multe domenii
conexe, pentru a fi detaliat complet undeva.
Din aceste considerente n aceast tez sunt analizate i propuse noi metode criptografice
de protecie a datelor. Aceste metode sunt cele mai eficiente pentru protecia datelor n sistemele
automatizate, iar n procesul de transmitere a datelor prin intermediul liniilor de comunicare
extinse ele sunt unicele mijloace reale de prevenire a accesului nesancionat.

b) Etapa iniial n dezvoltarea criptografiei
Cifrul Cezar menionat mai sus nu este primul cifru din istorie utilizat de om. nc din
cele mai vechi timpuri oamenii fceau schimb de informaii, scriind unul altuia scrisori, care
deseori trebuiau s fie pstrate n secret. Date exacte i dovezi incontestabile despre apariia
scrierii secrete n antichitate nu sunt. Se cunoate c n Grecia antic pentru transmiterea unui
mesaj a fost folosit un rob cruia i s-a ras capul, dup care pe cap a fost scris mesajul. Dup ce
prul a crescut robul a fost trimis spre adresat cu mesajul Rade-i capul [60].
ns i mai demult, circa 4000 de ani n urm, n oraul Menet Khufu de pe malul Nilului
un scrib cu experien a desenat ieroglife care relatau viaa stpnului su, devenind astfel cel
care a pus bazele istoriei criptografiei [60]. Sistemul su nu este un sistem al scrierii secrete n
sens contemporan. Pentru aceasta el nu a folosit un cifru complet. Aceast nscriere, fcut circa
n 1900 .Hr. pe mormntul lui Khnumphotep, numai alocuri consta din simboluri ieroglifice
19
neobinuite n locul unora uzuale la acel moment. Marea lor parte se ntlnete n ultimele
douzeci de coloane n care sunt enumerate monumentele create de ctre Khnumphotep n timpul
serviciului su la faraonul Amenemhet II. Aceste nscrieri au fost fcute mai degrab pentru a da
o importan textului i nu pentru a mpiedica citirea lui. Astfel scribul nu a aplicat scrierea
secret dar, fr ndoial, a aplicat unul dintre elementele de baz ale criptrii transformarea
deliberat a celor scrise.
Astfel, adugarea la textele de acest fel a elementelor de secret a dat natere criptografiei.
Este adevrat, acest fapt semna mai mult cu un joc, deoarece avea scopul de a amna dezlegarea
ghicitorii pentru un interval de timp scurt. Deci i criptanaliza lui consta numai n rezolvarea
problemei. Aadar putem afirma c criptanaliza Egiptului antic, spre deosebire de cea
contemporan, foarte serioas, era numai o quasi-tiin. ns orice lucru mre are un nceput
modest. Hieroglifele Egiptului antic conineau, ntr-o form departe de cea impecabil, dou
dintre elementele de baz ale criptografiei secretul i transformarea textului. Astfel s-anscut
criptologia.
n primii 3000 de ani dezvoltarea ei nu a fost una continu. n unele locuri criptologia se
ntea i murea odat cu civilizaia ce i-a dat natere. n altele ea a rezistat ptrunznd n
literatur pentru ca generaiile urmtoare s poat urca spre nivele mai nalte ale criptologiei.
naintarea spre aceste nivele era lent i anevoioas. Mai multe erau pierdute dect pstrate.
Cunotinele acumulate au cptat amploare numai la nceputul Renaterii europene.
Unul dintre primele tipuri de cifruri cunoscute este cifrul cu deplasare [60], [67], [74].
Procesul de cifrare const n nlocuirea unei litere cu alta care se afl cu un numr fix de poziii
mai departe n alfabet n funcie de valoarea cheii. Astfel, dac cheia este k =3, atunci litera a a
textului clar se transform n litera d din textul cifrat, litera z n c. pentru textul clar ac
textul cifrat va fi df . Pentru acest caz (n care cheia k = 3), acest cifru se numete cifrul lui
Cezar, deoarece anume Cezar a folosit acest cifru cu aceast cheie pentru a comunica cu
generalii si.
Dac considerm alfabetul latin cu 26 de litere, putem opera matematic foarte simplu pe
un inel nit: Z
26
. Vom avea P =C =K =Z
26
. Pentru un ke K ales arbitrar,
e
k
(m)=m+k (mod 26) i d
k
(e
k
()) = k (mod 26).
Cifrul Cezar poate fi spart uor chiar i avnd la dispoziie numai criptograma [51], [52].
Deoarece numrul de deplasri posibile e limitat (spre exemplu 31 in romn), fiecare din ele
poate fi testata printr-un atac prin fora brut. O alta abordare a atacului prin for brut este
identificarea literelor conform distribuiei lor n limba n care a fost scris textul. Prin crearea
graficului frecvenelor literelor din textul criptat i prin cunoaterea distribuiei obinuite, un om
poate descoperi valoarea deplasrii prin observarea decalajului dintre anumite caracteristici ale
20
graficului. Aceasta este cunoscut ca analiza frecvenei. i computerele pot determina acest
lucru prin msurarea echivalentei dintre distribuia curenta i distribuia ateptat; de exemplu,
poate fi utilizat testul chiptrat.
Neajunsul de baz al acestui cifru este existena unui numr foarte mic de chei
cantitatea literelor din alfabetul limbii n care se face criptarea.
n scopul eliminrii acestui neajuns a fost inventat cifrul de substituie [60], [101].
Pentru a obine textul cifrat fiecare liter a textului clar este nlocuit cu o alt liter n
conformitate cu o anumit substituie a ordinei literelor din alfabetul dat. Astfel de substituii
sunt n! pentru un alfabet cu n litere (pentru alfabetul latin avem 25! substituii). Aceasta face
dificil atacul prin for brut asupra cheii. Dar, ca i n cazul cifrului cu deplasare, analiza
frecvenei permite spargerea a astfel de cifruri.
Sistemele cu deplasare sunt sisteme monoalfabetice, adic sisteme care substituie fiecare
caracter cu alt caracter totdeauna acelai, indiferent de poziie. Punctul slab al sistemelor de
criptare monoalfabetice const n frecvena de apariie a caracterelor n text [51], [52]. Dac un
text criptat este suficient de lung i se cunoate limba n care este scris textul clar, sistemul poate
spart printr-un atac bazat pe frecvena apariiei literelor ntr-o limb. Sunt construite diverse
structuri de ordine relative la frecvena apariiei literelor n fiecare limb european. De obicei,
cu ct un text criptat este mai lung, cu att frecvena literelor folosite se apropie de aceast
ordonare general. O comparare ntre cele dou relaii de ordine (cea a caracterelor din textul
criptat i cea a literelor din alfabetul limbii curente) conduce la realizarea ctorva corespondene
(liter text clar liter text criptat), ceea ce stabilete n mod univoc cheia de criptare.
Pentru limba romn, un tabel al literelor cele mai frecvent ntlnite este Tabelul 1.1 [93] (restul
caracterelor au n mod normal o frecven de apariie sub 1 %).

Tabelul 1.1 Cele mai frecvent ntlnite litere n limba romn
Litera A I E R T N U S C L O D M P F V
Procent
1
3
,
0
4

%

1
2
,
8
9

%

1
1
,
7
5

%

7
,
3
9

%

6
,
6
2

%

6
,
4
4

%

6
,
4
4

%

5
,
5
0

%

5
,
4
7

%

4
,
5
8

%

3
,
8
5

%

3
,
6
8

%

3
,
3
3

%

2
,
9
1

%

1
,
5
0

%

1
,
2
6
%


Acelai lucru este valabil i pentru sistemul cu substituie.
Unadinte cile de rezolvare a problemei date este de utiliza mai multe seturi de simboluri
n loc de alfabetul standard, i de a cifra literele textului clar alegnd simbolurile corespunztoare
din diferite seturi n consecutiviti determinate. Astfel de cifruri se numesc cifruri
polialfabetice.
21
n calitate de exemplu putem considera corespunderea reprezentat n Tabelul 1.2, n care
prima linie reprezint alfabetul englez iar liniile a doua i a treia primul i respectiv al doilea
alfabet al textului cifrat.

Tabelul 1.2. Exemplu de corespundere pentru un cifru polialfabetic
a b c d e f g h i j k l m n o p q r s t u v w x y z
D C B A H G F E M L K J I Z Y X W V U T S R Q P O N
T M K G O Y D S I P E L U A V C R J W X Z N H B Q F

n aceast situaie literele textului clar care se afl pe poziii impare se nlocuiesc cu
literele din primul alfabet (linia 2), iar cele de pe poziii pare cu literele din alfabetul al doilea
(linia 3). Astfel, cuvntul iniial happy va fi criptat n ETXCN i litera p care apare de dou
ori n textul clar este criptat cu diferite simboluri. Acest fapt mpiedic esenial atacul asupra
cifrului prin aplicarea analizei statistice a limbii.
n exemplul dat se cifreaz de fapt dou litere la un singur pas, adic de fapt lucrm cu
blocuri de litere de lungimea doi. n practic se pot utiliza pn la cinci alfabete diferite ale
textului cifrat, multiplicnd astfel spaiul cheilor. Dac e s aplicm 5 alfabete diferite atunci
numrul cheilor posibile este egal cu 26!
5
2
441
. Utilizatorul cifrului trebuie ns s in cont de
faptul c cheia este o consecutivitate de 265=130 litere. Firete, pentru a complica situaia Evei
(persoanei care ncearc s sparg cifrul), este necesar de a ascunde cantitatea de alfabete,
considernd acesta ca o component a cheii [51], [53]. ns pentru un utilizator de mijloc din
secolul XIX acest sistem de criptare prea prea voluminos, deoarece cheia era prea mare pentru a
o memoriza. Cu toate acestea cele mai cunoscute cifruri ale secolului XIX se bazau anume pe
acest principiu.
Cifrul Vigenere [60] era o variaie a cifrului polialfabetic i concomitent avea o cheie
uor de memorizat. Definim P =C =Z
26
, K = .
26
+
Z O cheie keK a este un cuvnt avnd
codificarea numeric k
0
k
1
... k
p1
.
Fie m =m
0
m
1
... m
n
codificarea textului clar care trebuie transmis. Textul criptat va
e
k
(m)= c =c
0
c
1
... c
n
, unde c
i
=m
i
+ k
i (mod p)
(mod 26)
Sistemul Vigenere a fost utilizat secole de-a rndul, fiind considerat la timpul su ca unul
din cele mai sigure sisteme de criptare. n 1917 de exemplu, prestigioasa revist Scientific
American l considera imposibil de atacat. Numai c acest sistem a fost spart de Kasiski [52]
nc din 1863 (i independent de Babbage n 1854) [120].
22
Criptanaliza sistemului Vigenere const n urmtoarele: fie c =c
0
c
1
... c
n-1
textul criptat
cu cheia k =k
0
k
1
... k
p1
; putem aranja acest text sub forma unei matrice cu p linii i
(
p n/
coloane [51], [53], astfel

0
c
p
c
p
c
2

1
c
1 + p
c
1 2 + p
c
. . . .
1 p
c
1 2 p
c
1 3 p
c

Elementele de pe prima linie au fost criptate dup formula
0 ), 26 (mod
0
> + = k k a c
pr pr

adic cu un sistem Cezar (
0
k fiind o valoare fixat din Z
26
). n mod similar i celelalte linii.
Deci, dac s-ar cunoate lungimea p a cheii, problema s-ar reduce la criptanaliza a p texte
criptate cu Cezar sistem de criptare monoalfabetic. Sunt cunoscute dou metode pentru aflarea
lungimii cheii: testul lui Kasiski [60] i indexul de coinciden.
Prima metod const n studiul textului criptat i aflarea de perechi de segmente de cel
puin 3 caractere (aceast lungime este propus de Kasiski) identice. Pentru fiecare astfel de
pereche, se determin distanta dintre segmente. Dup ce s-au gsit mai multe astfel de distane,
valoarea lui p va cel mai mare divizor comun al lor (sau eventual un divizor al acestuia).
A doua metod de aare a lungimii cheii de criptare ntr-un sistem Vigenere se bazeaz
pe un concept denit n 1920 de Wolfe Friedman: indexul de coinciden [52].
Definiia 1.8. Dac
n
c c c c ...
2 1
= este o secven de n caractere alfabetice, se numete index de
coinciden ) (x I
c
al lui c probabilitatea ca dou caractere din c, alese aleator, s e identice.
O alt categorie mare de cifruri o alctuiesc cifrurile cu transpoziie [60]. Cifrul care
modific numai ordinea simbolurilor fr a modifica simbolurile nsui se numete cifru de
transpoziie.
S examinm transformarea din cifrul de transpoziie pentru o consecutivitate de n
simboluri. Putem reprezenta aceasta cu ajutorul substituiei
,
...
... 2 1
2 1
|
|
.
|

\
|
n
i i i
n

unde i
1
este numrul locului textului cifrat unde nimerete prima liter a textului clar n rezultatul
transformrii alese, i
1
numrul locului pentru litera a doua etc. n linia de sus a tabelului sunt
nscrise n ordine cresctoare numerele naturale de la 1 la n, iar n linia de jos aceleai numere
n ordine aleatoare. Adic acest tabel este o permutare de ordinul n. tiind permutarea ce
genereaz transformarea putem efectua criptarea i decriptarea textului.
23
Un exemplu de astfel de cifru destinat pentru cifrarea mesajelor de lungime n este cifrul
la care spaiul cheilor este mulimea tuturor permutrilor de ordinul n, iar transformarea textului
se face cum s-a artat mai sus. Numrul de chei al acestui cifru este n!. Pentru aplicarea n
practic acest cifru nu este comod, deoarece pentru valori suficient de mari ale lui n suntem
nevoii s lucrm cu tabele foarte lungi.
O aplicare larg au avut cifrurile de transpoziie care folosesc o figur geometric.
Transformrile n astfel de cifru constau n faptul c n figur textul clar se nscrie pe o cale iar
apoi pe alt cale se copie de acolo obinnd textul cifrat. Spre exemplu, putem nscrie textul
clar ntr-un tabel dreptunghiular pe orizontal, ncepnd cu colul stng de sus mergnd
consecutiv de la stnga spre dreapta i de la dreapta spre stnga. Copiem apoi mesajul care va fi
textul criptat mergnd pe o alt cale: pe vertical, ncepnd cu colul de dreapta de sus mergnd
consecutiv de sus n jos i de jos n sus.
Aceste cifruri, precum i multe altele care n fond sunt modificri ale lor, sunt
principalele tipuri de cifruri care fac parte din era pretiinific a criptografiei.
De menionat c n aceast perioad de dezvoltare a criptografiei, anume n sec. XIX,
olandezul Kerkhoff [60], a formulat cerina de baz a unui sistem criptografic, valabil i n
zilele noastre: secretul cifrului trebuie s se bazeze pe secretul cheii i nu a algoritmului.
n sfrit, ultimul cuvnt n era pretiinific a criptografiei au fost sistemele de
criptare cu rotor. Ele au asigurat o securitate i mai nalt i au permis automatizarea
(mecanizarea) procesului de cifrare i decifrare. Una dintre primele sisteme de acest fel a fost
maina mecanic inventat n anul 1790 de ctre Thomas Jefferson, viitorul preedinte al SUA
[60], [61]. Substituia polialfabetic n maina cu rotor se realizeaz prin variaia poziiei
rotoarelor care se rotesc, fiecare dintre ele efectund o anumit substituie nscris pe el.
Aplicarea practic a acestor maini a nceput numai la nceputul secolului XX. Una dintre
primele maini cu rotor a fost maina german Enigma, elaborat n anul 1917 de ctre Eduard
Hebern i perfectat mai trziu de mai multe ori.
O main rotor (rotor machine) [36], [37] are o tastatur i o serie de rotoare ce permit
implementarea unei versiuni a cifrului Vignre. Fiecare rotor face o permutare arbitrar a
alfabetului, are 26 de poziii i realizeaz o simpl substituie. Deoarece rotoarele se mic cu
viteze de rotaie diferite, perioada unei maini cu n rotoare este n26!.
Cel mai celebru cifru bazat pe o main rotor este Enigma, utilizat de germani n cel de-
al doilea rzboi mondial. El a fost inventat de Arthur Scherbius i Arvid Gerhard Damm n
Europa i a fost patentat n SUA. Germanii au mbuntit considerabil proiectul inventatorilor
si, dar a fost spart de criptanalitii polonezi care au explicat atacul englezilor.
24
Mainile cu rotor au fost folosite activ pe parcursul rzboiului II mondial [59]. Pe lng
maina german Enigma au fost folosite i Sigaba (SUA), Typex (Marea Britanie), Red, Orange,
Purple (J aponia) [76]. Mainile cu rotor au fost vrful criptografiei formale deoarece relativ
simplu realizau cifruri suficient de rezistente.
Atacurile ncununate de succes asupra mainilor cu rotor au fost posibile numai la
nceputul anilor 40 odat cu apariia mainilor electronice de calcul [37]. Tot n aceast perioad
criptografia devine tiinific ramur aparte a matematicii odat cu publicarea (anul 1949)
articolului lui Claude Elwood Shannon Communication Theory of Secrecy Systems [98].
1.2. Elemente fundamentale din Criptografie
Criptografia reprezint o ramur a matematicii care se ocup cu securizarea informaiei,
precum i cu autentificarea i restricionarea accesului ntr-un sistem informatic. n realizarea
acestora se utilizeaz n mare parte metode matematice, profitnd de unele probleme cu
complexitate de rezolvare suficient de nalt. Termenul criptografie este compus din cuvintele
de origine greac krypts (ascuns) i grfein (a scrie). Criptografia urmrete
urmtoarele obiective [5] :
1. Confidenialitatea (privacy) proprietatea de a pstra secretul informaiei, pentru ca
aceasta s e folosit numai de persoanele autorizate.
2. Integritatea datelor proprietatea de a evita orice modificare (inserare, tergere,
substituie) neautorizat a informaiei.
3. Autentificare proprietatea de a identifica o entitate conform anumitor standarde. Este
compus din:
a) autentificarea unei entiti;
b) autentificarea sursei informaiei;
4. Nonrepudierea proprietatea care previne negarea unor evenimente anterioare.
Celelalte obiective legate de securitatea informaiei (autentificarea mesajelor, semnturi,
autorizare, validare, controlul accesului, certificare, timestamping, confirmarea recepiei,
anonimitate, revocare) pot derivate din aceste patru.
mpreun cu Criptografia se dezvolt Criptanaliza (din greac, krypts, ascuns, i
analein, a dezlega) este studiul metodelor de obinere a nelesului informaiilor criptate, fr
a avea acces la informaia secret necesar n mod normal pentru aceasta. De regul, aceasta
implic gsirea unei chei secrete [48, 89].
Criptografia i Criptanaliza mpreun constituie Criptologia (din greac, krypts,
ascuns, i , cuvnt) tiina care se ocup cu metodele de criptare i decriptare.
25
Definiia 1.1. O mulime nevid T se numete alfabet. Elementele alfabetului T se numesc litere.
O consecutivitate finit de elemente din alfabetul T se numete cuvnt.
Una i aceeai liter poate intra ntr-un cuvnt de mai multe ori. Un cuvnt ce nu conine
nici o liter se numete cuvnt nul. Lungimea cuvntului, notat cu w, este numrul de litere n
acest cuvnt, unde fiecare liter se consider de cte ori se ntlnete n el.
Notam cu T
*
mulimea tuturor cuvintelor alfabetului T.
Definiia 1.2. Submulimile mulimii T
*
le vom numi limbaje (formale) peste T.
Definiia 1.3. Un mesaj n forma sa originar se numete text clar (uneori text n clar, n englez
plaintext). Text criptat (n englez ciphertext) se numete textul obinut n rezultatul operaiei de
criptare a textului plan.
Definiia 1.4. Rescrierea textului clar, folosind o metod cunoscut numai de expeditor (eventual
i de destinatar), se numete criptare (sau cifrare) a mesajului. Procesul retransformrii
criptogramei n textul original este numit decriptare.
Definiia 1.5. Criptograma este un text ilizibil rezultant din criptarea textului clar.
Definiia 1.6. Un canal este o cale pentru fluxul de informaii.
Destinatarul primete printr-un canal textul cifrat i l decripteaz, tiind metoda folosit
pentru criptare, i obine mesajul iniial. n literatura de specialitate expeditorul de obicei este
numit Alice iar destinatarul este numit Bob. Deci, Alice i Bob trebuie s stabileasc n prealabil
detaliile modalitii de criptare i de decriptare. Aadar, metoda de camuflare a textului clar n
aa fel nct substana s nu sufere modificri semantice, este denumita criptare [60].
Criptarea se folosete pentru a fi siguri c informaia este inaccesibil oricrei persoane
care nu deine instrumentul necesar decriptrii, chiar dac oricine poate vedea datele n form
criptografic. Oricum nu va nelege nimic, care s conduc spre descifrarea textului original.
Persoana care intercepteaz criptograma i ncearc s obin textul clar aplicnd diverse
metode, ns fr a avea cheia de decriptare, este numit criptanalist.
Siatemul care realizeaz operaiile de criptare i decriptare se numete sistem de criptare
(sau sistem criptografic, sau criptosistem).
Definiia 1.7. n criptografia modern un sistem de criptare este definit ca o structur cu cinci
componente (P, C, K, E, D), [8]:
- P={pt/ pteT
*
} spaiul textelor n clar, scrise pentru un alfabet nevid T (n mod obinuit
T={0,1});
- K spaiul cheilor de criptare keK;
- Familia funciilor de criptare dependent de chei i de un algoritm de criptare E
E
k
: P C , E
k
={e
k
/ e
k
(pt)=ct i e
k
este injectiv};
- Familia funciilor de decriptare dependent de chei i de un algoritm de decriptare D
26
D
k
: C P , D
k
= {d
k
/ d
k
(e
k
(pt))= t teP}
- C spaiul mesajelor cu text criptat unde:
C={ct / -ke K, aeP, ct = E
k
(a)}.
Schema aplicrii unui sistem de criptare este prezentat n Figura 1.1.


Fig. 1.1. Schema aplicrii unui sistem de criptare

Pentru ca un sistem de criptare s e considerat bun, el trebuie s ndeplineasc trei
criterii (enunate de Francis Bacon n sec. XVII) [2]:
1. Fiind date e
k
i aeP s fie uor de calculat e
k
(a).
2. Fiind date d
k
i weC s fie uor de determinat d
k
(w).
3. S fie imposibil de determinat t din w, fr a cunoate d
k
.
Criteriile 1 i 2 implic c pentru utilizatorii legali sistemul de criptare nu trebuie s fie
prea complicat (se presupunec utilizatorii au un timp acceptabil pentru calcule). n criteriul 3
imposibilitatea e nlocuit n prezent cu dificultatea de a calcula. Se presupune c un
interceptor de asemenea are acces la tehnica de calcul. Ultimul criteriu definete sub o form
vag ideea de securitate a sistemului. La aceste criterii, Bacon aduga i o a patra regul:
4. Textul criptat trebuie s e un text banal, fr suspiciuni.
Aceast condiie nu mai poate fi considerat important [60] i este utiliz astzi doar de
un subdomeniu strict al criptografiei, numit steganografie tiina despre transmiterea secret a
informaiei prin pstrarea secretului a nsui faptului transmiterii acestei informaii.
Printre metodele moderne de criptare deosebim dou direcii principale [60]: sistemele cu
cheie secret (sau sisteme simetrice) sistemele n care e
k
este bijectiv i sisteme cu chei
publice (sau sisteme asimetrice) sistemele n care e
k
nu este bijectiv.
Exist dou tipuri de sisteme simetrice [60], [62], [67]: sisteme care se bazeaz pe
algoritmi de tip bloc i sisteme care se bazeaz algoritmi de tip ir. Algoritmii de tip bloc
acioneaz asupra blocurilor de text clar i text cifrat. Algoritmii de tip ir se aplic irurilor de
text clar i text cifrat, la nivel de bit sau octet. Tipurile de cifruri sunt prezentate n Figura 1.2.


e
k
(pt)=ct

d
k
(ct)=pt
Expe-
ditorul
Desti-
natarul
Criptanalistul
27


Fig. 1.2. Tipurile de cifruri

n paragraful ce urmeaz este descris perioada de pn la 1949 perioada
pretiinific a criptografiei, adic perioada de la primii si pai i pn la apariia unor articole
n care se pun bazele matematice ale sistemelor criptografice.
1.3. Bazele matematice ale criptografiei moderne
Criptografia modern este bazat pe rezultate fundamentale n aa domenii ale
matematicii ca teoria informaiei, complexitatea algoritmilor, teoria numerelor etc. n prezent
este imposibil de imaginat un algoritm funcionabil de criptare fr o asigurare matematic.
1.3.1. Teoria informaiei
Teoria contemporan a informaiei a fost publicat pentru prima dat n anul 1948 de
ctre Claude Elmwood Shannon [97], [98]. Ideile de fundamentale ale acestor articole sunt:
entropia i incertitudinea, norma limbii, securitatea sistemului de criptare, distana de unicitate,
confuzia i difuzia.
n teoria informaiei, entropia Shannon sau entropia informaional msoar
incertitudinea asociat cu o variabil aleatoare . Aceast msur indic i cantitatea de informaie
coninut ntr-un mesaj, exprimat de obicei n bii sau n bii pe simbol. Cnd este exprimat n
bii, ea reprezint lungimea minim pe care trebuie s o aib un mesaj pentru a comunica
informaia, considernd toate mesajele cu lungime egal. Spre exemplu, pentru un cmp al bazei
de date ce reprezint ziua sptmnii este suficient s utilizm trei bii de informaie, deoarece
toat informaia poate fi codificat n trei bii: LUNI 000, MARI 001, MIERCURI 010,
JOI 011, VINERI 100, SMBT 101, DUMINIC 110.
Cifruri
Clasice
Moderne
Maini cu rotor
Cu substituie Cu transpoziie Cu cheie privat Cu cheie public
Cifruri bloc Cifruri ir
28
Dac vom reprezenta informaia aceasta prin intermediul simbolurilor codului ASCII, ea
ar fi ocupat mai mult spaiu n memorie fr a conine ns mai mult informaie. n mod
analogic, cmpul sexul al unei bazei da date conine numai un singur bit de informaie, pe cnd
aceeai informaie poate fi pstrat ca unul dintre cele dou cuvinte de 6 bii ai codului ASCII:
brbat sau femeie.
n mod formal, cantitatea de informaie n mesajul M este msurat cu entropia mesajului
care se noteaz cu H(M). Entropia mesajului ce determin sexul este egal cu 1 bit iar entropia
mesajului ce exprim ziua sptmnii este puin mai mic de 3 bii. n acest caz entropia
mesajului, exprimat n bii, este egal cu n
2
log , unde n este cantitatea de valori posibile,
considernd c toate valorile sunt echiprobabile.
Entropia unui mesaj este de asemenea i msura incertitudinii mesajului. Aceasta este
cantitatea de bii ai textului clar care trebuie demascat pentru a obine textul n ntregime. Spre
exemplu, dac blocul textului cifrat AH*S5 nseamn numai BRBAT sau FEMEIE,
atunci incertitudinea mesajului este 1. Criptanalistului i este suficient s afle numai un singur bit
corect pentru a decripta mesajul.
Pentru o limb dat norma limbii este egal cu
N
M H
r
) (
=
unde N este lungimea mesajului. Pentru valori mari ale lui N norma limbii engleze ia valori
cuprinse ntre 1,0 bit/liter i 1,5 bit/liter. C. Shannon a spus [99] c entropia este o funcie de
lungimea textului. El artat c pentru blocurile de 8 litere norma este egal cu 2,3 bit/liter, iar
valoarea ei nimerete ntre 1,3 i 1,5 pentru blocurile de 16 litere. Thomas Cover a utilizat o
metod a teoriei jocurilor pentru evaluare i a determinat c entropia este egal cu 1,3 bit/simbol
[31]. Norma absolut a limbii este egal cu cantitatea maxim de bii care pateu fi transmis cu
fiecare simbol cu condiia c toate irurile de simboluri sunt echiprobabile. Dac n limb sunt L
simboluri atunci norma absolut este egal cu . log
2
L R = Aceasta este maximul entropiei
simbolurilor luate aparte.
Pentru limba englez cu 26 de litere norma absolut este egal cu 26 log
2
sau
aproximativ 4,7 bit/liter [31]. Norma real a limbii engleze este, deci, mult mai mic, limbile
fireti au o redundan mare. Redundana limbii se noteaz cu D i se definete ca . r R D =
Considernd norma limbii engleze egal cu 1,3 obinem o redundan egal cu 3,4
bit/liter. Aceasta nseamn c fiecare liter a limbii engleze conine 3,4 bii de informaie
excedentar.
Mesajele ASCII care constau numai din litere engleze cantitatea de informaie la fiecare
octet este de 1,3 bii. Deci, n fiecare octet se conin 6,7 bii de informaie excedentar, ce
29
implic o redundan de 0,84 bii de informaie la un bit de text ASCII i o entropie de 0,16 bii
de informaie la un bit de text ASCII. Acelai mesaj scris cu codul Baudot, cu 5 bii/simbol, are
redundana 0,74 bii pe un bit i entropia de 0,26 bii pe un bit. Spaiile, semnele de punctuaie i
formatarea textului modific rezultatele date.
Shannon a definit exact modelul matematic pentru Securitatea sistemului de criptare
[98]. Sensul lucrului criptanalistului const n determinarea cheii k, a textului clar pt sau a
ambelor concomitent. Pe de alt parte el poate fi satisfcut i de o informaie probabilistic a lui
pt, cum ar fi: este oare acest text clar un sunet digitalizat, text scris n limba german, date ale
unor tabele electronice sau altceva concret.
n criptanaliza real exist o informaie probabilistic despre pt nc pn la nceputul
lucrului. Criptanalistul cel mai probabil tie deja limba textului clar. Aceast limb conine o
redundan corelat cu ea. Dac mesajul este pentru Bob, este probabil c el ncepe cu Drag
Bob. Evident, Drag Bob este mai probabil dect J 4)*%?kj5. Scopul criptanalistului este
modificrile probabilitilor dependente de fiecare text clar eventual. n final din infinitatea de
texte n clar va fi ales unul concret (sau n cel mai ru caz unul foarte probabil).
Exist sisteme de criptare ce ating o securitate perfect. Acestea sunt sistemele n care
textul cifrat nu d nici o informaie despre textul clar (posibil cu excepia lungimii lui). Shannon
a demonstrat n mod practic c acest lucru este posibil numai n cazul n care numrul de chei
posibile este la fel de mare ca i numrul de mesaje posibile. Altfel spus, cheia nu trebuie s fie
mai mic dect mesajul i nu poate fi folosit repetat. Acesta nseamn c unicul sistem care
atinge securitatea perfect este sistemul numit one-time pad, inventat n 1917 de ctre major
Jeseph Mauborgne i Glbert Vernam [105] din AT&T [60]. Sistemul one-time pad este un ir
mare de simboluri ale cheii, simboluri care nu se repet, sunt repartizate aleator, scrise pe
bucele de hrtie i ncleiate ntr-un carnet. Fiecare liter a cheii se utilizeaz numai pentru
criptarea unui singur simbol al textului clar. Cifrarea reprezint suma dup modului 26 a
simbolurilor textului clar i a cheii din carnetul de o singur folosin. Fiecare simbol al cheii se
folosete numai o dat i pentru un singur mesaj. Dup cifrare foile utilizate ale carnetului sunt
distruse. La fel procedeaz i adresantul, care are acelai carnet.
Cu excepia sistemelor cu securitate perfect textul cifrat inevitabil conine o cantitate
anumit de informaie despre textul clar respectiv. Un algoritm criptografic bun pstreaz
minimul de astfel de informaie iar un criptanalist bun folosete aceast informaie pentru un text
clar anumit.
Criptanalitii folosesc redundana fireasc a limbii pentru minimizarea numrului de texte
n clar. Cu ct limba are o redundan mai mare cu att se supune mai uor criptanalizei. Din
aceste motive multe implementri criptografice realizate efectueaz comprimarea textului pn
30
la cifrare. Comprimarea micoreaz redundana concomitent cu volumul de lucru necesar pentru
cifrare i decifrare.
Entropia sistemului de criptare este o unitate de msur a spaiului cheilor K. Ea este
egal aproximativ cu logaritmul n baza 2 de la numrul de chei [99]: . log ) (
2
K K H =
Entropia sistemului de criptare cu cheia de 64 bii este de 64 de bii, entropia sistemului
cu cheie de 56 de bii este de 56 de bii. n caz general, cu ct entropia este mai mare, cu att mai
dificil este spargerea sistemului.
Pentru un mesaj de lungime n cantitatea de chei diferite care descifreaz textul cifrat ntr-
un text clar cu sens n limba textului original se determin de formula 1 2
) (

nD K H
[31], [99].
Shannon a definit [98] distana de unicitate, U, care se mai numete punct de unicitate, o
cantitate aproximativ de text cifrat pentru care suma entropiei textului clar respectiv i entropiei
cheii de criptare este egal cu cantitatea de bii ai textului cifrat. De asemenea Shannon a artat
c are sens s considerm c textele cifrate care sunt mai lungi dect distana de unicitate pot fi
descifrate cu sens numai ntr-un singur mod. Textele cifrate care sunt vizibil mai scurte ca
distana de unicitate pot fi descifrate cu sens, cel mai probabil n mai multe moduri, fiecare dintre
ele avnd posibilitatea de a fi corect, asigurnd astfel securitatea, punnd inamicul n faa alegerii
textului clar corect.
Pentru majoritatea sistemelor simetrice distana de unicitate se definete ca raportul
entropiei sistemului mprit la redundana limbii:
D
K H
U
) (
=
Distana de unicitate nu este o mrime exact ci una probabilistic. Ea permite s
evalum cantitatea minim de text cifrat pentru spargerea cruia prin for brut exist, probabil,
numai o singur metod raional de descifrare. De obicei cu ct e mai mare distana de unicitate,
cu att e mai bun sistemul de criptare. Pentru sistemul DES cu o cheie de 56 de bii i un mesaj
scris n limba englez cu coduri ASCII, distana de unicitate este aproximativ egal cu 8,2
simboluri ASCII sau 66 bii. n [35] sunt date distanele de unicitate pentru diverse lungimi ale
cheii. Distanele de unicitate pentru unele sisteme de criptare clasice sunt prezentate n [35].
Distana de unicitate nu este o msur a textului cifrat necesar pentru criptanaliza ci
cantitatea de text cifrat necesar pentru unicitatea rezultatului criptanalizei. Un sistem de criptare
poate fi invulnerabil chiar dac teoretic ea poate fi spart, folosind o cantitate mic de text
cifrat. Distana de unicitate este proporional redundanei. Dac redundana tinde spre zero chiar
i un cifru trivial pateu s nu fie spart folosind numai textul cifrat.
Shannon a definit sistemul de criptare cu o distan infinit de unicitate ca unul ce are un
secret ideal. Trebuie de menionat ns c un sistem ideal nu este neaprat perfect pe cnd un
31
sistem perfect este i ideal. Dac sistemul are un secret ideal atunci chiar i dup o criptanaliz
reuit rmne o urm de nedeterminare despre coincidena textului clar restabilit i a textului
clar original.
Utilizarea practic a teoriei informaiei are o importan teoretic foarte mare. Cu toate
acestea criptanaliza real folosete foarte rar cele spuse mai sus. Distana de unicitate garanteaz
sigurana sistemului dac este foarte mic, pe cnd valoarea mare a ei nu garanteaz securitatea.
Civa algoritmi practici nu pot fi supui analizei absolut deloc, comportamentul parametrilor
teoriei informaiei ar putea contribui la spargerea unor mesaje cifrate. ns unele considerente ale
teorie informaiei uneori sunt utile, spre exemplu pentru determinarea intervalului recomandat de
modificare a cheilor ntr-un algoritm concret. Criptanalitii mai folosesc o serie de teste bazate
pe statistic i teoria informaiei pentru a alege direcia mai cu perspectiv a analizei textului
cifrat. n acest context trebuie de spus c n mare parte literatura referitoare la aplicarea teoriei
informaiei n criptanaliz este secret, inclusiv i lucrarea de baz a lui Alan Turing, scris n
1940.
Dou dintre metodele de baz de frustrare a analizei statistice (altele dect recurgerea la
sistemele ideale) sunt confuzia i difuzia [98]. Ele sunt dou concepte suplimentare care se leag
de cantitatea de munc necesar unei criptri. Un algoritm de criptare trebuie s ia informaia din
textul clar i s o transforme astfel nct interceptorul s nu poat recunoate mesajul.
Interceptorul nu trebuie s poat prezice efectul schimbrii unei litere n textul clar asupra
textului cifrat. Aceasta caracteristica se numete confuzie. Un algoritm care prezint un grad
ridicat de confuzie va prezenta o relaie funcional complex ntre perechea text clar/cheie i
textul cifrat. De exemplu, cifrul Cezar nu are un grad suficient de ridicat de confuzie, deoarece
din descoperirea transformrii a cteva litere, se poate prezice transformarea celorlalte litere, fr
informaie suplimentar. Cea mai simpl modalitate de a produce confuzia este substituia.
Cifrurile cu substituie contemporane sunt mai complicate dect cele clasice: blocurile lungi ale
textului clar sunt nlocuite cu blocuri ale textului cifrat i modalitatea de nlocuire se modific cu
fiecare bit al textului sau a cheii. Aa fel de substituie este ns insuficient algoritmul
complicat al mainii germane Enigma a fost spart n timpul celui de-al Doilea Rzboi Mondial.
Cifrul trebuie s distribuie informaia din textul clar n ntreg textul cifrat. Schimbrile
din textul clar trebuie s afecteze ct mai multe poriuni din textul cifrat. Acest principiu se
numete difuzie, caracteristica distribuirii informaiei de la literele textului clar la textul cifrat n
totalitatea sa. O difuzie bun nseamn c interceptorul are nevoie de o cantitate importanta de
text cifrat pentru a descoperi algoritmul. Cea mai simpl modalitate de a produce confuzia este
transpoziia (permutarea). Cifrurile de substituie i transpoziii nu prezint o buna difuzie,
deoarece un caracter din textul clar determin doar un singur caracter din text cifrat. Cifrurile
32
contemporane de asemenea utilizeaz transpoziia, dar se folosesc i aa forme ale difuziei care
permit mprtierea prilor mesajului prin ntreg mesajul.
Cifrurile cu flux de caractere folosesc numai confuzie, cu toate c o serie de scheme cu
conexiune invers (feedback) adaug difuziune. Algoritmii de tip bloc aplic att difuzia ct i
confuzia. De regul, este simplu de spart difuzia ca atare cu toate c cifrurile cu transpoziie
dubl sunt mai rezistente dect alte sisteme necomputerizate.
1.3.2. Teoria complexitii
Teoria complexitii asigur metodologia analizei complexitii de calcul a diverilor
algoritmi de criptare. Ea compar metodele i algoritmii de criptare i determin securitatea lor.
Teoria informaiei ne informeaz c orice sistem de criptare (cu excepia one-time pad) pot fi
sparte. De asemenea teoria informaiei ne informeaz dac sistemele pot fi sparte pn la
moartea universului
Complexitatea algoritmului este determinat de puterea de calcul necesar pentru
executarea lui. Complexitatea computaional a algoritmului deseori este apreciat prin doi
parametri: T (complexitatea temporal) i S (complexitatea spaial sau cerinele memoriei).
Ambii parametri sunt prezentai ca funcii de variabila n, unde n este mrimea datelor de intrare.
Exist de asemenea i alte modaliti de msurare a complexitii cum ar fi cantitatea de bii
aleatori, limea bandei de comunicaie, volumul de date etc.
De obicei algoritmii se clasific n conformitate cu complexitatea lor temporal sau
spaial. Un algoritm se numete constant dac complexitatea lui nu este n funcie de n: ). 1 ( O
Algoritmul este liniar, dac complexitatea temporal a lui este ). (n O Algoritmii pot fii ptratici,
cubici etc. Toi aceti algoritmi sunt polinomiali, complexitatea lor fiind ), (
m
n O unde m
constant. Algoritmii cu o complexitate temporal polinomial se numesc algoritmi cu timp
polinomial.
Algoritmii cu complexitatea ), (
) (n f
t O unde t constant mai mare ca 1 iar f(n) o
funcie polinomial de variabil n, se numesc algoritmi exponeniali. Submulimea logaritmilor
exponeniali care au complexitatea ), (
) (n f
c O unde c este constant iar f(n) crete mai repede ca
constanta i mai lent ca funcia liniar, se numesc algoritmi suprapolinomiali. n caz ideal
criptograful ar dori s afirme c cel mai bun algoritm de spargere a algoritmului de cifrare
proiectat, are un timp exponenial. n practic, la nivelul actual de dezvoltare a teoriei
complexitii, n cel mai bun caz putem spune: toi algoritmii de spargere cunoscui pentru
sistemul de criptare dat au o complexitate de timp suprapolinomial. Adic toi algoritmii de
spargere cunoscui au complexitatea de timp suprapolinomial, ns nc nu este posibil de
demonstrat c nu se poate descoperi un algoritm de spargere cu complexitate polinomial. Este
33
posibil ca dezvoltarea teoriei informaiei s permit crearea unui algoritm de criptare pentru care
existena algoritmilor cu timp polinomial de spargere poate fi exclus cu exactitate matematic.
Odat cu creterea lui n complexitatea temporal a algoritmilor poate deveni att de mare,
nct va influena realizarea practic a algoritmului. Dac considerm microsecunda ca unitate de
timp, calculatorul poate executa algoritmul constant ntr-o microsecund, pe cel liniar ntr-o
secund iar pe cel ptratic n 11,6 zile iar cel cubic are nevoie de 32000 de ani i , n principiu
se poate realiza ctre urmtoarea er glaciar. Realizarea algoritmului exponenial este zdarnic
indiferent de extrapolarea creterii puterii calculatoarelor, calculului paralel etc.
Complexitatea temporal a problemei spargerii algoritmului cu for brut este
proporional cu cantitatea de chei posibile, care depinde exponenial de lungimea cheii. Dac n
este lungimea cheii, atunci complexitatea spargerii cu for brut este ). 2 (
n
O
Teoria complexitii clasific nu numai complexitatea algoritmilor concrei pentru
rezolvarea problemei ci i complexitatea problemelor ca atare. Teoria studiaz timpul minim i
volumul memoriei necesar pentru rezolvarea celui mai complicat caz al problemei pe un
calculator teoretic, cunoscut ca maina Turing, ce reprezint un automat finit cu o band de
memorie infinit pentru citire-scriere i este un model real de calcul.
Dintre clasele cele mai importante de complexitate ale problemelor P, NP, NP-
complete, PSAPCE, PSPACE-complete, EXPTIE cea mai important pentru criptografie este
clasa NP. Importana aceste clase const n urmtoarele: muli algoritmi clasici i algoritmi cu
chei publice se pot sparge ntr-un timp polinomial nedeterminat. Pentru un text cifrat c,
criptanalistul pur i simplu ghicete textul clar x i cheia k i ntr-un timp polinomial execut
algoritmul de cifrare cu datele de intrare x i k i verific dac rezultatul este egal cu c. Aceasta
are o mare importan teoretic deoarece se determin limitata de sus a complexitii
criptanalizei acestor algoritmi. n practic desigur, acesta este un algoritm determinist cutat de
criptanalist, algoritm executabil ntr-un timp polinomial. Mai mult dect att, acest argument nu
poate fi aplicat la toate clasele de cifruri, mai concret, pentru one-time pad oricare ar fi c, exist
o mulime de perechi x, k din care rezult c la executarea algoritmului de cifrare, ns majoritatea
acestor x sunt texte fr sens, texte n clar inadmisibile.
Trebuie de menionat c o importan practic foarte mare n criptografie o au noiunile:
clasele de resturi, numerele prime, calculele n cmpul Galois, descompunerea n factori,
logaritmii discrei ntr-un cmp finit etc.
n practica modern se aplic pe larg rezultatele matematice din domeniile menionate
(dar i din altele) la elaborarea algoritmilor de criptare cu cheie public [90] sau privat, de tip
bloc sau ir de caractere [57], [121].
34
n continuare sunt prezentai cei mai frecvent utilizai algoritmi incluznd o varietate ct
mai mare posibil de tipuri ale lor. Practicamodern aplic n diverse scopuri anumii algoritmi
de criptare pornind de la gardul de securitate, timpul de lucru, viteza de schimb a datelor,
resursele necesare pentru funcionare, de durata necesar pstrrii datelor etc.
De exemplu sistemele de criptare cu chei publice sunt mai lente dect cele ci cheie
privat. Multe tranzacii financiare dureaz o perioad de timp foarte scurt. De aceea atacul
poate interveni numai pe durata acestui interval de timp i numai att ct activeaz cheia pentru
aceast edin. Datele personale, cum ar fi informaia despre conturile bancare, despre codurile
asigurrii sociale etc. pot fi pstrate ani n ir. n acest caz atacatorul va avea acest timp pentru
tentative de intervenii. Deci, n dependen de necesitate se aplic un tip de sistem de criptare
sau altul.
1.4. Algoritmi simetrici de tip bloc
Algoritmii de tip bloc cripteaz mesajul n blocuri de 64 sau 128 de bii. Pentru acesta se
aplic o funcie matematic ntre un bloc de bii ai mesajului n clar i cheie (care poate varia ca
mrime), rezultnd acelai numr de bii pentru mesajul criptat. Funcia de criptare este realizat
astfel nct s ndeplineasc urmtoarele cerine [80]:
- tiind un bloc de bii ai textului n clar i cheia de criptare, sistemul s poat genera rapid
un bloc al textului criptat;
- tiind un bloc de bii ai textului criptat i cheia de criptare/decriptare, sistemul s poat
genera rapid un bloc al textului n clar;
- tiind blocurile textului n clar i ale textului criptat, sistemului s-i fie dificil s genereze
cheia.
Acest tip de algoritmi este foarte folosit n criptografia modern. Mai jos sunt prezentai
civa algoritmi care au fcut carier, dup prezentarea modurilor criptografice care stau la
baza funcionrii algoritmilor de tip bloc.
Algoritmul Lucifer [102] este un proiect al companiei IBM iniiat n anul 1970 pentru
crearea unui cifru bloc rezistent. Rezultatele cercetrilor au contribuit la crearea a dou metode
de construire a cifrurilor bloc rezistente reelele Feistel [44] i reelele SP (Substitution-
Permutation Network). Acest algoritm a pus bazele criptografiei simetrice moderne. n proiect au
participat Horst Feistel i Don Coppersmith, care mai trziu au devenit criptografi vestii.
Lucifer este o reea de permutri i substituii, bazate pe aa numitele cutiile-S care au
intrri i ieiri de 4 bii. Intrarea este o permutare a biilor ieirii din faza anterioar, iar intrarea
din prima faz este chiar textul n clar. Un bit cheie este folosit pentru a alege ntre cutia-S
actual din dou posibile Lucifer implementeaz aceasta printr-o cutie-T cu 9 bii la intrare i
35
8 la ieire). Lucifer are 16 faze, blocuri de 128 de bii i o manipulare a cheii suficient de
complicat. n Figura 1.3 este prezentat schema unei cutii-S iar n Figura 1.4 a reelei
Feistel.
n reeaua Feistel informaia este divizat n blocuri de lungime fix: 64, 128 bii. Fiecare
bloc este divizat n 2 sub-blocuri L0 i R0. Asupra blocului L0 se aplic funcia f(L0,K0) iar
rezultatul se adun modulo 2 cu R0 i se atribuie blocului nou de stnga L1, care este jumtatea
datelor de intrare a rundei urmtoare. Iar blocul de stnga L0 se atribuie fr modificri blocului
nou de dreapta R1, care este a doua jumtate. Operaia se repet n funcie de numrul rundelor
n algoritm iar la fiecare etap se modific, conform unei reguli matematice, cheile de rund K0
cu K1.
S
0
S
1
S
0
S
1

S
0
S
1

S
0
S
1

S
0
S
1
S
0
S
1

S
0
S
1

S
0
S
1

S
0
S
1
S
0
S
1

S
0
S
1

S
0
S
1

P
S
0
S
1
P
S
0
S
1

P
S
0
S
1

P
S
0
S
1


Fig. 1.3. Schema unei cutii-S

Folosind criptografia diferenial mpotriva primei forme de Lucifer, criptologii Biham i
Shamir au artat c Lucifer cu 8 faze i 32 de bii poate fi spart cu 40 de texte n clar alese i 2
29

pai; acelai atac poate sparge Lucifer cu 8 faze i 128 bii cu 60 de texte n clar alese i 2
53
pai.
Analize ulterioare au artat c peste jumtate din chei nu sunt sigure, ceea ce conduce la
posibilitatea de a sparge Lucifer cu 128 de bii, cu orice numr de faze, cu 2
33
texte n clar alese,
sau cu 2
65
texte n clar cunoscute cu chei alese [4], [9]. n concluzie, a doua form de Lucifer
este mai slab.
Cu toate neajunsurile care la avea, algoritmul Lucifer a contribuit la dezvoltarea
ulterioar a cifrurilor bloc i chiar a unora foarte importante cum ar fi DES.
Algoritmul DES (Data Encryption Standard) a fost elaborat pentru guvernul Statelor Unite i
pentru folosin public. El a fost dezvoltat plecnd de la algoritmul Lucifer. n mai 1973,
revista Federal Register a sintetizat principiile care trebuie s stea la baza proiectrii unui
algoritm criptografic standard [94]: algoritmul trebuie s asigure un nalt nivel de securitate; s
fie complet specificat i simplu de neles; securitatea algoritmului trebuie s fie asigurat de
cheie i nu trebuie s depind de pstrarea secret a algoritmului; algoritmul trebuie s fie
disponibil tuturor utilizatorilor; s fie adaptabil pentru diverse aplicaii; s fie implementabil pe
Mesajul

Criptograma

36
dispozitivele electronice; s fie eficient n utilizare; s poat fi validat; algoritmul trebuie s fie
exportabil.
DES a fost oficial adoptat ca standard federal n 23 noiembrie 1976, iar n 1977
specificaiile sale au fost fcute publice [77], [103].
Algoritmul DES este o combinaie complex folosind dou blocuri fundamentale n
criptografie: substituia i permutarea (transpoziia) [49], [71]. Acest cifru bloc accept un bloc
de 64 de bii la intrare i genereaz un bloc cifrat de 64 de bii. DES este un algoritm simetric.
Acelai algoritm i aceeai cheie sunt folosii att la criptare ct i la decriptare.
Algoritmul este constituit din 16 cicluri repetate ale blocurilor fundamentale. Textul
iniial este descompus n blocuri de 64 de bii. Cheia este de 64 bii din care doar 56 sunt efectivi,
ceilali fiind bii de paritate. Folosirea substituiei provoac confuzie prin sistematica substituire
a unor bii cu alii. Transpoziiile provoac difuzie prin reordonarea biilor. DES folosete numai
operaii clasice aritmetice i logice cu numr de pn la 64 de bii, ceea ce face relativ uor de
implementat att software ct mai ales hardware: unul din scopurile declarate ale algoritmului
fiind uoara lui implementare hardware ntr-un cip specializat [33], [50], [104].


Fig. 1.4. Schema reelei Feistel
Text cifrat Text plan
Criptare Decriptare
Text plan Text cifrat
37
Cu algoritmul DES se poate face att cifrarea ct i decifrarea unui mesaj.
Dei DES a fost cel mai celebru algoritm al secolului XX este considerat la aceast or
nesigur pentru multe aplicaii. Pare paradoxal, dar aceasta este consecina mririi considerabile a
puterii de calcul de la confirmarea DES-ului ca un standard criptografic i pn in anul 2000.
Slbiciunea pleac de la lungimea prea mic a cheii de 56 de bii [6], [7], [8], [29], [30], [39],
[63], [106]. Varianta algoritmului cunoscut ca triplu-DES [78] este cea care este considerat
sigur i la aceast or [70], [72].
Insecuritatea DES-ului pleac de la premiza c un atac n for are anse de reuit n
condiiile puterii de calcul disponibile astzi (a se vedea atacurile EFF); pn n 2004 cel mai
eficient atac este datorat criptanalizei liniare [70] care folosind 2
43
texte cunoscute genereaz o
complexitate temporal de 2
39-43
(Junod 2001); n condiiile unui atac cu text ales complexitatea
poate fi redus de patru ori (Knudsen i Mathiassen, 2000).
n ianuarie 1997, NIST a organizat un concurs de criptografie deschis cercettorilor din
ntreaga lume [81], avnd ca subiect crearea unui nou standard, care urma s se numeasc AES
Advanced Encryption Standard [79]. Regulile concursului erau: algoritmul s fie un cifru bloc
simetric; proiectul trebuia s fie public; AES trebuia s suporte chei de 128, 192 i 256 bii;
algoritmul trebuia s se poat implementa att hardware ct i software; AES trebuia s fie un
standard public sau oferit cu licen ne discriminatorie.
n august 1998 NIST a selectat cinci finaliti pe criterii de securitate, eficien,
flexibilitate i cerine de memorie iar n octombrie 2000 NIST a stabilit ctigtorul. Acesta este
algoritmul Rijndael, dezvoltat de doi tineri cercettori belgieni, Joan Daemen i Vincent Rijmen
i care devine standard guvernamental al SUA. Se sper ca Rjindael s devin standardul
criptografic dominant n lume pentru urmtorii 10 ani.
Rijndael permite lungimi de chei i mrimi de blocuri de la 128 de bii la 256 de bii, n
pai de cte 32 de bii. Lungimea cheii i lungimea blocului pot fi alese n mod independent, dar
n practic se vor folosi dou variante: bloc de 128 bii cu cheie de 128 bii i bloc de 128 bii cu
cheie de 256 bii. O cheie de 128 bii permite un spaiu al cheilor de 2
128
chei. La 26 mai 2002
AES a fost anunat standard de criptare n SUA. La moment este cel mai rspndit algoritm de
criptare simetric.
Rijndael se bazeaz pe teoria cmpului Galois, n sensul c anumite operaiuni sunt
definite la nivel de octet iar octeii reprezint elemente n cmpul finit GF(2
8
) [32], [47], [48].
Cum toate reprezentrile cmpului finit GF(2
8
) sunt izomorfe, se poate alege reprezentarea
clasic polinomial, cu impact pozitiv asupra complexitii implementrii. Octetul b, format din
biii b
7
, b
6
, b
5
, b
4
, b
3
, b
2
, b
1
i b
0
, este considerat ca fiind un polinom de gradul 7 cu coeficieni 0
sau 1:
38
b
7
x
7
+ b
6
x
6
+ b
5
x
5
+ b
4
x
4
+ b
3
x
3
+ b
2
x
2
+ b
1
x +b
0
.
Operaiunea de adunare este definit ca suma a dou polinoame n care coeficienii se
adun modulo 2 i care corespunde operrii XOR a celor doi octei corespondeni. Sunt
ndeplinite axiomele grupului abelian: operaia este intern, asociativ, comutativ, exist
element neutru i element invers.
Operaiunea de nmulire corespunde produsului a dou polinoame modulo, un polinom
ireductibil de grad 8 i care pentru AES este
m(x) = x
8
+ x
4
+ x
3
+ x + 1
nmulirea este intern (rezultatul este un polinom de grad strict mai mic ca 8), asociativ i
exist element neutru. Elementul invers se determin cu algoritmul lui Euclid, iar
distributivitatea celor doua operaii se verific.
Concluzia este c mulimea celor 256 de valori posibile ale unui octet, mpreun cu cele
dou operaiuni definite mai sus formeaz un corp algebric finit, respectiv GF(2
8
).
n proiectarea AES s-a inut cont de 3 criterii: rezistena mpotriva tuturor atacurilor
cunoscute; viteza i compactitatea codului pe un mare numr de platforme; simplicitatea
proiectrii [82], [89], [103].
Ca i DES, AES folosete substituie i permutri, ca i runde multiple. Numrul de runde
depinde de mrimea cheii i de mrimea blocului, fiind 10 n cazul 128/128 i mrindu-se pn
la 14 pentru cazul 256/128. Spre deosebire de DES, toate operaiile sunt la nivel de octet, pentru
a permite implementri eficient hardware i software.
La momentul implementrii AES nu se cunoteau metode de atac asupra lui. ns
cutarea permanent a rezultat cu succese pentru criptanaliti. Atacul cel mai realizabil mpotriva
AES este ndreptat mpotriva variantelor Rijndael cu numr redus de iteraii [46]. AES are 10
iteraii la o cheie de 128 de bii, 12 la cheie de 192 de bii i 14 la cheie de 256 de bii. La nivelul
anului 2008, cele mai cunoscute atacuri erau accesibile la 7, 8, respectiv 9 iteraii pentru cele trei
lungimi ale cheii. Au fost gsite [10], [11], [34], [54], [69], [86], [111] metode eficiente pentru a
ataca AES cu mai puine runde (10) i o cheie de 256 bii aplicnd metoda cheilor nrudite. De
aceea pentru siguran e recomandat [94] trecerea de la 10 la 16 runde pentru AES-128, de la 12
la 20 pentru AES 192 i de la 14 la 28 pentru AES-256 .
Din categoria de algoritmi simetrici de tip bloc se mai poate meniona algoritmul
Blowfish [80], [94], [95], [96], [112] care este proiectat pentru a fi implementat pe procesoare
puternice, i este optimizat pentru aplicaii n care cheia nu trebuie s se schimbe des, cum ar fi
legturi de comunicaie sau un criptor automat pentru fiiere. Este semnificativ mai rapid dect
DES cnd este implementat pe procesoare de 32 de bii dotate cu memorie cache mare, cum ar fi
39
Pentium. Blowfish nu este potrivit pentru comutarea de pachete, cu schimbri dese de cheie, ca
funcie hash one-way sau n aplicaii smart-card, unde memoria este insuficient.
1.5. Algoritmi simetrici de tip ir
Cifrurile ir formeaz o clas important de algoritmi de criptare; ele pot fi cifruri cu chei
simetrice sau cu chei publice. Ceea ce le caracterizeaz i le difereniaz fa de cifrurile bloc
este faptul c cifrurile ir proceseaz textul de criptat n uniti orict de mici, chiar bit cu bit,
aplicnd funcia XOR ntre biii cheii i biii de cifrat, iar funcia de criptare se poate modifica n
cursul criptrii [42], [92], [94]. Cifrurile ir sunt algoritmi cu memorie, n sensul c procesul de
criptarea nu depinde doar de cheie i de textul n clar, ci i de starea curent. n cazul n care
probabilitatea erorilor de transmisie este mare, folosirea cifrurilor ir este avantajoas deoarece
au proprietatea de a nu propaga erorile. Ele se folosesc i n cazurile n care datele trebuie
procesate una cte una, datorit lipsei de spaiu de memorie.
Algoritmii simetrici de tip ir se mpart n dou clase mari: cifruri ir sincrone i cifruri
ir asincrone.
Un cifru ir sincron este unul care genereaz irul de chei independent de textul clar i
de textul cifrat. Criptarea n acest caz poate fi descris de urmtoarele ecuaii:
S
i+1
= f (S
i
, k); z
i
= g (S
i
, k); c
i
= h (z
i
, m
i
),
unde i=0, 1, 2, L, iar L reprezint lungimea mesajului.
n aceast formul starea iniial S
0
se determin din cheia k, f este funcia de stare, g este
funcia care produce irul de chei z, iar h este funcia de ieire, care combin irul de chei cu
textul clar m
i
pentru obinerea textului cifrat c
i
.
Printre proprietile cifrurilor ir sincrone sunt:
- sincronizarea att expeditorul ct i destinatarul trebuie s fie sincronizai, n sensul de a
folosi aceeai cheie i a opera cu aceeai stare respectiv, astfel nct s fie posibil o
decriptare corect. Dac sincronizarea se pierde prin inserarea sau lipsa unor bii din textul
cifrat transmis, atunci decriptarea eueaz i poate fi reluat doar prin tehnici suplimentare de
re-sincronizare, adic re-iniializarea, plasarea de markeri speciali sau dac textul n clar
conine suficient redundan i se ncearc toate deplasrile posibile ale irului de chei.
- nepropagarea erorii un bit de text cifrat care este modificat n timpul transmisiei nu trebuie
s afecteze decriptarea celorlali bii cifrai.
- atacuri active ca o consecin a sincronizrii, inserarea, tergerea sau retransmisia unor bii
de text cifrat de ctre un adversar activ va cauza o pierdere instantanee a sincronizrii i
crete posibilitatea detectrii atacului de ctre decriptor. Ca o consecin a nepropagrii
erorii, un atacator ar putea s modifice bii alei din textul cifrat i s afle exact ce efect au
40
modificrile n textul n clar. Trebuie deci, s se foloseasc mecanisme suplimentare de
autentificare a expeditorului i de garantare a integritii datelor.
Un cifru ir asincron sau autosincronizabil este unul care genereaz irul de chei ca o
funcie de cheie i un numr de bii din textul cifrat anterior. Funcia de criptare n acest caz
poate fi descris de urmtoarele ecuaii:
S
i
= (c
i-t
, c
i-t+1
, , c
i-1
); z
i
= g (S
i
, k); c
i
= h (z
i
, m
i
),
unde i=0, 1, 2, L, iar L reprezint lungimea mesajului.
n aceast formul S
0
= (c
-t
, c
-t+1
, , c
-1
), este starea iniial (nesecret), k este cheia, g este
funcia care produce irul de chei z, iar h este funcia de ieire care combin irul de chei cu
textul n clar m
i
pentru a obine textul cifrat c
i
.
Cifrurilor ir asincrone posed urmtoarele proprieti:
- auto-sincronizarea este posibil dac bii din textul cifrat sunt terse sau adugate,
deoarece decriptarea depinde doar de un numr determinat de bii cifrai anterior. Astfel de
cifruri sunt capabile s-i restabileasc automat procesul de decriptare corect dup pierderea
sincronizrii.
- propagarea limitat a erorii s presupunem c starea unui cifru ir asincron depinde de t
bii cifrai anteriori. Dac un singur bit cifrat este modificat, ters sau inserat n timpul
transmisiei, atunci decriptarea a cel mult t bii urmtori de text cifrat va fi incorect, dup
care se reia decriptarea corect.
- atacuri active limitarea propagrii erorii face ca orice modificare a textului cifrat de ctre
un adversar activ s aib ca i consecin decriptarea incorect a altor bii cifrai, ceea ce
poate mri posibilitatea ca atacul s fie observat de ctre decriptor. Pe de alt parte, datorit
auto-sincronizrii este mai dificil dect n cazul cifrurilor ir sincrone s se detecteze
inserarea, tergerea sau modificarea unor bii n textul cifrat. Trebuie deci s se foloseasc
mecanisme suplimentare de autentificare a expeditorului i de garantare a integritii datelor.
- difuzia statisticilor textului n clar deoarece fiecare bit de text clar influeneaz toi biii
cifrai urmtori, proprietile statistice ale textului n clar sunt dispersate n textul cifrat. Ca o
consecin, cifrurile ir asincrone trebuie s fie mai rezistente dect cifrurile ir sincrone fa
de atacurile bazate pe redundana textului n clar.
Majoritatea cifrurilor ir folosite n practic sunt proiectate folosind Linear Feedback
Shift Registers (LFSR) [55], [56], [62], [71], [74] care sunt simplu de implementat software sau
hardware. n structura LFSR se regsesc urmtoarele elemente: de ntrziere (bistabili D), de
adunare modulo 2, demultiplicare scalar modulo 2.
Problema este c aceste implementri sunt ineficiente din punct de vedere al vitezei.
Pentru a rezista atacului de corelaie, funcia de feedback trebuie s fie un polinom dens, ceea ce
41
presupune multe calcule, care produc la ieire un singur bit, deci trebuie repetate des. Totui, cele
mai multe sisteme de criptare militare se bazeaz pe LFSR [13].
O metric important folosit pentru a analiza generatoarele bazate pe LFSR este
complexitatea liniar, definit ca fiind lungimea n a celui mai scurt LFSR care poate produce
ieirea generatorului. Orice ir generat de o main de stare finit peste un cmp finit are o
complexitate liniar finit. [93]. Complexitatea liniar este important deoarece un algoritm
simplu, Berlekamp-Massey, poate genera LFSR-ul de definiie examinnd doar 2n bii din cheie,
ceea ce nsemn spargerea cifrului ir.
Concluzia este c o complexitate liniar ridicat nu nseamn neaprat un generator sigur,
dar o complexitate liniar sczut indic un generator fr securitate.
Criptografii ncearc s obin o complexitate liniar ridicat prin combinarea ieirilor
mai multor LFSR-uri ntr-un mod nonliniar. Pericolul este ca unul sau mai multe iruri generate
interne de obicei ieiri ale LFSR-urilor individuale s fie corelate cu irul combinat, ceea ce
permite un atac bazat pe algebra liniar numit atac de corelaie. [70]. Thomas Siegenthaler a
artat c imunitatea de corelare poate fi precis definit i c exist o legtur ntre aceasta i
complexitatea liniar [45]. Ideea de baz a atacului de corelaie este identificarea unor corelaii
ntre ieirea generatorului i ieirea uneia din componentele sale interne. Apoi, observnd irul
de ieire, se pot obine informaii despre ieirea intern. Folosind aceste informaii i alte
corelaii se colecteaz informaii despre celelalte ieiri interne ale generatorului, pn cnd acesta este
spart n totalitate.
Printre cifrurile de tip ir mai frecvent utilizate se numr cifrurile A5, RC4, RC5 [91], FISH etc.
Cifrul A5 [109 ]este un cifru ir folosit pentru a cripta fluxul de date GSM (Group
Special Mobile), reprezentnd standardul non-american pentru telefonia mobil celular. A5
cripteaz linia dintre telefon i celula de baz, restul legturii rmnnd necriptat. A5 este
format din trei LFSR-uri, care au registrede lungime 19, 22 i respectiv 23. Toate polinoamele
de feedback sunt cu un numr redus de coeficieni. Ieirea este obinut prin operarea XOR a
celor trei LFSR-uri. A5 folosete un clock control variabil. Fiecare registru face un clocking
bazat pe bitul central, care este operat XOR cu inversa funciei prag (threshold function) a biilor
de la mijlocul celor trei registre. n mod normal, dou din LFSR-uri sunt clock-ate la fiecare
iteraie.
Exist un atac trivial care necesit 2
40
criptri: se ghicete coninutul primelor dou
LFSR-uri, apoi se determin al treilea din irul generat [45]. n ciuda acestui fapt, A5 este bine
proiectat i este extrem de eficient. El trece cu succes toate testele statistice cunoscute i singura
sa slbiciune rezid n faptul c registrele sunt scurte, ceea ce face posibil o cutare exhaustiv.
Variantele A5 cu registrelungi i polinoame feedback dense au un grad de siguran sporit.
42
Cifrul RC4 este un cifru ir cu cheie de lungime variabil, dezvoltat n 1987 de ctre Ron
Rivest pentru RSA Data Security [121]. n 1994 codul surs al algoritmului este fcut public pe
Internet. RC4 este un algoritm simplu de descris: irul cheie este independent de textul n clar.
Funcioneaz n baza cutiilor-S: S
0
, S
1
, ..., S
255
. Intrrile sunt permutri ale numerelor de la 0 la
255, iar permutarea este o funcie de o cheie de lungime variabil. Exist doi indici, i i j,
iniializai cu zero. Pentru a genera un octet aleator se procedeaz astfel:
i =(i +1) mod 256; j =(j +S
i
) mod 256; T =S
i
; S
i
=S
j
; S
j
=T; t =(S
i
+S
j
) mod 256; K =S
t
.
Octetul K este operat XOR cu textul n clar pentru a produce text cifrat sau operat XOR
cu textul cifrat pentru a obine textul n clar. Criptarea este aproape de 10 ori mai rapid dect
DES-ul.
Iniializarea cutiilor-S este simpl. Se iniializeaz liniar: S
0
=0, S
1
=1, , S
255
=255
i un alt vector de 256 de octei cu cheia, repetnd cheia, dac este necesar, pentru a completa
vectorul cu componentele: K
0
, K
1
, , K
255
.
j =0; For i =0 to 255: j =( j +S
i
+K
i
) mod 256; se schimb S
i
cu S
j
ntre ele.
Nu exist rezultate publice ale criptanalizei. Se crede ca algoritmul este imun la analiza
diferenial i liniar; RC4 poate fi n aproximativ 2
1700
stri posibile. Cutiile-S evolueaz lent
n timpul ntrebuinrii: i asigur c fiecare element se schimb, iar j c aceste schimbri sunt
aleatoare. RC4 are un statut special de export, acesta fiind permis doar pentru chei de pn la 40
de octei. Acest algoritm este implementat n multe produse comerciale, dintre care Lotus Notes
i Oracle Secure SQL.
n sistemele simetrice de criptare, Alice i Bob i aleg o cheie secret k care definete
regulile de criptare e
k
i decriptare d
k
. n aproape toate cazurile e
k
i d
k
coincid sau se pot deduce
imediat una din alta. Un punct slab al sistemelor cu cheie privat este acela c necesit o
comunicare prealabil a cheii ntre Alice i Bob printr-un canal sigur, nainte de transmiterea
mesajului criptat. Practic, n condiiile cererii tot mai mari de securizare a comunicaiilor, acest
lucru este din ce n ce mai dicil de realizat. Astfel a aprut necesitatea de a crea sisteme care au
alt concept de transmitere a cheii.
1.6. Algoritmi cu chei publice
Conceptul de criptografie cu chei publice a fost inventat de Whitfield Diffie i Martin
Hellman [38], [40]. Contribuia lor const n propunerea de a folosi un nou criptosistem n care
cheile de criptare i decriptare sunt diferite, iar cheia de decriptare (care este secret) nu poate fi
dedus din cheia de criptare (care este public). n anul 1976 conceptul a fost prezentat n
premier la National Computer Conference SUA, iar cteva luni mai trziu lucrarea a fost
publicat [38].
43
Sistemele cu cheie public au un mare avantaj fa de sistemele cu chei secrete: oricine
poate transmite un mesaj secret utilizatorului (cunoscndu-i cheia public), iar mesajul rmne
protejat fa de interceptor. Cu un sistem cu cheie convenional, o cheie separat secret este
necesar pentru fiecare pereche de utilizatori.
ntr-un mediu privat, canalul este protejat mpotriva accesului din exterior. n general,
un sistem cu n utilizatori necesit
2
) 1 ( n n
chei, pentru ca oricare pereche de utilizatori s poat
comunica ntre ei i mesajele lor s rmn secrete fa de ceilali utilizatori. Numrul de chei
crete rapid o dat cu numrul de utilizatori; generarea, distribuirea i meninerea securitii
cheilor constituie o problem datorit numrului lor mare.
ntr-un sistem cu cheie public, un utilizator deine dou chei: o cheie public i o cheie
privat. Utilizatorul i poate face cunoscut oricui cheia public. Fie k
priv
cheia privat i k
pub

cheia public corespunztoare. Atunci:
p=d(k
priv
, e(k
pub
, p)).
Utilizatorul poate decripta cu cheia privat ceea ce oricine altcineva a criptat cu cheia public
corespunztoare.
Cu al doilea algoritm de criptare cu cheie public
p=d(k
pub
, e(k
priv
, p))
utilizatorul poate cripta un mesaj cu cheia privat, iar mesajul poate fi decriptat doar cu cheia
public corespunztoare.
Aceste dou proprieti presupun c cele dou chei, public i privat, pot fi aplicate n
orice ordine (sistemul RSA nu face distincie ntre cheia public i cheia privat; orice cheie din
perechea de chei poate fi folosit fie ca cheie public, fie ca cheie privat).
Unul dintre primii algoritmi de acest fel este Algoritmul Merkle-Hellman [74], [121].
Ralph Merkle i Martin Hellman au dezvoltat un algoritm de criptare bazat pe problema
rucsacului, o problem NP-complet, care a fost publicat n anul 1978 [66], [67]. Problema
rucsacului conine o mulime de ntregi pozitivi i o sum int, i const n gsirea unei
submulimi de ntregi a cror sum coincide cu suma int.
Ideea pe care se bazeaz schema rucsacului Merkle-Hellman este codificarea unui mesaj
binar ca o soluie la o problem a rucsacului, reducnd mesajul n text cifrat la suma int
obinut prin adunarea termenilor corespunztori valorilor de 1 din irul binar.
Un rucsac este reprezentat ca un vector de numere ntregi n care ordinea termenilor este
foarte important. Exist dou tipuri de rucsacuri: unul simplu, pentru care exist un algoritm
rapid (ntimp liniar) i unul complicat, obinut din cel simplu prin modificarea elementelor sale.
Modificarea este astfel proiectat nct o soluie cu elementele oricrui rucsac este de asemenea
44
soluie pentru cellalt. Aceast modificare se numete trap, permind utilizatorilor legitimi s
rezolve problema simplu. Deci, problema general este NP-complet, dar exist o versiune
restrns care are o soluie foarte rapid.
Algoritmul ncepe cu o mulime de ntregi n care fiecare element este mai mare dect
suma predecesorilor si. S presupunem c avem un ir n care fiecare element a
k
este mai mare
dect a
1
+a
2
+...+a
k-1
. Dac o sum este ntre a
k
i a
k+1
, trebuie s-l conin pe a
k
, deoarece nici o
combinaie de termeni a
1
, a
2
, ..., a
k-1
nu pot produce un total mai mare dect a
k
. Analog, dac o
sum este mai mic dect a
k
, evident nu l va conine ca termen pe a
k
.
Modificarea algoritmului schimb elementele mulimii din problema simpl a rucsacului,
prin alterarea acestei proprieti de ordonare cresctoare ntr-un fel care pstreaz soluia.
Modificarea se realizeaz prin nmulire cu o constant modulo n.
Problema rucsacului presupune un ir a
1
, a
2
, ..., a
n
de ntregi i o sum int T. Problema
este de a gsi un vector de valori 0 i 1 astfel nct suma ntregilor asociai cu 1 s dea T. Deci,
dndu-se S=[a
1
, a
2
, ..., a
n
], i T, s se gseasc un vector V cu valori 0 i 1 astfel nct:

=
=
n
i
i i
T v a
1
.
Rezolvarea se face considernd fiecare ntreg din S ca participnd la T i reducnd
problema corespunztor. Cnd o soluie nu produce suma int, se elimin ntregul ales iniial i
se continu cu urmtorul. Acest back-traking deterioreaz viteza soluiei.
S presupunem problema rucsacului cu o restricie suplimentar: ntregii din S formeaz
un ir supercresctor, adic unul n care fiecare ntreg este strict mai mare dect suma
predecesorilor si. Atunci, orice ntreg a
k
satisface relaia

=
>
1
1
k
j
j k
a a .
Soluia rucsacului supercresctor (numit i rucsacul simplu) este uor de gsit. Se ncepe
cu T, care se compar cu cel mai mare ntreg din S. Dac acesta este mai mare dect T, nu este
termen al sumei, deci valoarea corespunztoare din V este 0. Dac acest cel mai mare ntreg din S
este mai mic sau egal cu T, el este termen al sumei, deci valoarea corespunztoare din V este 1.
Relum algoritmul pentru T din care scdem sau nu termenul analizat (conform cu valoarea din
V) i pentru ntregii rmai.
Tehnica de criptare Merkle-Hellman este un sistem de criptare cu cheie public. Fiecare
utilizator are o cheie public, care poate fi distribuit oricui i o cheie privat, care se pstreaz
secret. Cheia public este mulimea ntregilor din problema rucsacului (nu unul supercresctor);
cheia privat este rucsacul supercresctor corespondent. Contribuia lui Merkle i Hellman a fost
45
s proiecteze o tehnic de conversie a rucsacului supercresctor ntr-unul normal, prin
schimbarea numerelor de o manier reversibil.
Un alt criptosistem bazat pe o problem dificil este Algoritmul RSA, numit astfel dup
inventatorii si, Rivest, Shamir i Adelman. A fost publicat n 1978 [90] i rmne un algoritm
foarte folosit i astzi, n ciuda eforturilor criptanalitilor de a-l sparge.
Algoritmul de criptare RSA incorporeaz rezultate din teoria numerelor [64], combinate
cu dificultatea determinrii factorilor primi pentru un numr int. Ca n cazul algoritmului
Merkle-Hellman i algoritmul RSA opereaz cu aritmetica modulo n. Un bloc n text clar este
tratat ca un ntreg, iar pentru criptare i decriptare se folosesc dou chei, e i d, care sunt
interschimbabile. Blocul de text clar P este criptat ca P
e
mod n. Deoarece exponenierea este
modulo n, este foarte dificil s se factorizeze P
e
pentru a descoperi textul original. Pentru
aceasta, cheia de decriptare d este astfel aleas nct (P
e
)
d
=P mod n. Astfel P este regsit fr a
fi necesar descompunerea n factori primi a lui P
e
.
Problema pe care se bazeaz algoritmul de criptare este cea a factorizrii numerelor mari.
Problema factorizrii nu se cunoate a fi NP-complet; cel mai rapid algoritm cunoscut este
exponenial n timp.
Cu algoritmul RSA, mesajul n text clar p este criptat n, mesajul n text cifrat c prin
intermediul cheii de criptare e:
c =p
e
mod n.
Mesajul n text clar este regsit cu ajutorul cheii de decriptare d:
p =c
d
mod n.
Din cauza simetriei din aritmetica modular, criptarea i decriptarea sunt mutual inverse
i comutative:
p =c
d
mod n =(p
e
)
d
mod n =(p
d
)
e
mod n.
Cheia de criptare const n perechea de ntregi (e, n), iar cheia de decriptare este (d, n).
Punctul de plecare n gsirea cheilor pentru acest algoritm este selectarea unei valori pentru n.
Valoarea lui n trebuie s fie suficient de mare, dat de un produs a dou numere prime p i q.
Att p ct i q trebuie s fie ele nsele suficient de mari. n mod obinuit, p i q au aproximativ
100 de cifre fiecare, astfel nct n are aproximativ 200 de cifre. Aceast lungime inhib
ncercarea de a factoriza pe n, pentru a afla pe p i pe q [122].
n continuare, se alege un ntreg e relativ mare, astfel nct e este relativ prim cu
(p1) (q1). Satisfacerea acestei condiii se face alegndu-l pe e ca un numr prim mai mare
dect p1 i q1. n final, se alege d astfel nct:
e d 1 mod (p1) (q1).
46
Funcia lui Euler (n) este numrul ntregilor pozitivi mai mici dect n care sunt relativ
primi cu n. Dac p este prim, atunci:
(p) =p1
Dac n =p q, unde p i q sunt ambele prime,
(n) = (p) (q) =(p1) (q1)
Identitatea Euler-Fermat afirm c :
x
(n)
1 mod n
pentru orice ntreg x, dac n i x sunt reciproc prime.
S presupunem c mesajul n text clar p este criptat cu algoritmul RSA, astfel nct
e(p)=p
e
. Trebuie s fim siguri c putem decripta mesajul. Valoarea e este astfel aleas nct
inversa sa d s poat fi gsit uor. Deoarece e i d sunt inverse modulo (n),
e d 1 mod (n) sau e d =k (n) +1
pentru anumii ntregi k.
La implementarea practic a algoritmului, utilizatorul algoritmului RSA alege numerele
prime p i q, din care se obine n=pq. Apoi alege e, relativ prim la (p1)(q1), de obicei un
numr prim mai mare dect p1 i dect q1. n final, d se calculeaz ca inversul lui e mod (n).
Utilizatorul distribuie e i n, i pstreaz cheia d secret; p, q i (n) pot fi ignorate, dar
nu fcute publice. Chiar dac se tie c n este produsul a dou numere prime [64], [66], [67],
[113], datorit mrimii sale peste 200 de cifre, nu va fi posibil s se determine factorii p i q, i
nici cheia privat, d din e. De asemenea, verificarea c p i q sunt prime, presupune luarea n
considerare a 10
50
factori.
La momentul actual n RSA se utilizeaz numere prime gsite prin intermediul
algoritmilor probabilistici [123], cel mai performant fiind testul Miller-Rabin. El este considerat
suficient de bun pentru generarea numerelor prime aplicate n criptografie, ns exist o foarte
mic probabilitate ca acest test s genereze un numr compus, ceea ce implic urmri
imprevizibile pentru utilizatorii algoritmului RSA.
Teoretic sunt trei posibiliti de abordare a unui atac n cazul algoritmului RSA: atacul n
for, atacul bazat pe metode matematice (ncercarea factorizrii produsului a dou numere prime
mari) i atacul temporal. Analiza acestor atacuri duce la concluzia c nici unul nu are sori de
izbnd. n pofida unor intense cercetri, au fost identificate doar probleme minore n comparaie
cu cele din cazul algoritmului rucsacului a lui Merkle i Hellman.
Acetia sunt algoritmii de baz utilizai n criptografia modern i care au un fundament
pur matematic. ns n ultima perioad sunt efectuate ncercri, i unele dintre ele cu succes, de a
implementa n algoritmii de criptare i performanele fizicii moderne, n deosebi cele din fizica
cuantic.
47
1.7. Criptarea cuantic
Criptarea cuantic este o abordare bazat pe fizica cuantic pentru a realiza comunicaii
securizate. Spre deosebire metodele de criptografie tradiionale, care folosesc diverse metode
matematice pentru a mpiedica interceptarea i decodificarea mesajului, criptarea cuantic se
bazeaz pe legile fizicii n ceea ce privete transmiterea informaiei. Interceptarea poate fi vzut
ca o msurare a unui obiect fizic n acest caz purttorul de informaie. Folosind fenomene
cuantice cum ar fi suprapunerea cuantic sau legtura cuantic, se poate proiecta i implementa
un sistem de comunicaie care s evite ntotdeauna interceptarea. Aceasta este din cauz c
msurrile efectuate asupra unui purttor cuantic i modific proprietile i astfel rmn urme
ale interceptrii [5].
Dispozitivele care folosesc criptarea cuantic utilizeaz fotoni individuali, i se bazeaz
fie pe principiul lui Heisenberg sau pe principiul legturii cuantice.
Actul de a msura este o parte integrant a mecanicii cuantice, nu doar un proces extern i
pasiv, ca n cazul fizicii clasice. Este deci posibil s se codeze informaia n anumite proprieti
ale fotonului, astfel nct orice efort de a le monitoriza le modific ntr-un mod uor de detectat.
Acest efect apare din cauz c n teoria cuantic, anumite perechi de proprieti fizice sunt
complementare, n sensul c msurarea uneia dintre aceste proprieti o modific pe cealalt.
Acest fenomen este cunoscut ca principiul incertitudinii al lui Heisenberg. Cele dou proprieti
complementare care sunt des folosite n criptarea cuantic sunt cele dou tipuri de polarizare a
fotonului, de exemplu liniar (vertical/orizontal) sau diagonal (la 45 si 135 de grade).
Legtura este o stare a dou sau mai multe particule cuantice (de exemplu fotoni) n care
multe din proprietile lor fizice sunt puternic corelate. Particulele legate nu pot fi descrise
specificnd strile individuale ale particulelor, deoarece acestea pot s conin informaie ntr-un
mod care nu poate fi accesat prin experimente fcute asupra vreuneia dintre ele n particular.
Acest fenomen se produce indiferent de distana dintre particule.
Pe baza acestor dou proprieti neintuitive ale mecanicii cuantice (incertitudinea i
legtura), au fost inventate dou tipuri de protocoale de criptare cuantic. Primul folosete
polarizarea fotonilor pentru a codifica biii de informaie i se bazeaz pe natura aleatoare a
fizicii cuantice pentru a evita interceptarea mesajului. Al doilea folosete fotoni legai pentru a
codifica bii, i se bazeaz pe faptul c informaia apare doar dup msurtori fcute de prile ce
comunic.
Protocoalele de criptare cuantic au proprieti la care nu se poate ajunge prin metodele
tradiionale de criptare. Cei doi ageni care comunic pot genera i interschimba chei aleatorii
care sunt foarte similare - n condiii ideale ar trebui sa fie identice, dar n realitate va exista o
48
anumit rat a erorii. De asemenea aceste protocoale permit estimarea nivelului de interceptare a
comunicaiei, i se poate deduce ct din cheile lor aleatorii este cunoscut de o tera parte. Aceste
rezultate sunt interesante, dar nu suficiente pentru a rezolva problema interschimbrii cheilor.
Interceptarea chiar a unei mici pri din chei poate avea efecte semnificative: o ter parte poate
sa citeasc o bucat (poate critic) a mesajului secret. Din cauza faptului c erorile i zgomotul
de fond nu pot fi evitate n totalitate, nu se poate garanta ca nici o cheie nu a fost interceptat -
erorile de comunicaie i ncercrile de interceptare nu pot fi deosebite, aa c se poate presupune
c n cazul cel mai defavorabil, toate erorile se datoreaz interceptrii mesajului.
n criptarea cuantic, atacul tradiional cu intermediar este imposibil din cauza
principiului incertitudinii [65]. Orice interceptare a fotonilor duce inevitabil la modificarea
proprietilor lor, dac se folosete un detector incorect. De asemenea nu se pot reemite
electronii, deoarece asta ar duce la erori inacceptabile. n cazul folosirii metodei de criptare cu
electroni legai, ei sunt aproape imposibil de interceptat, deoarece crearea a trei electroni legai ar
slbi legtura att de mult nct acest lucru s-ar detecta imediat. Atacul cu intermediar nu
poate fi folosit pentru ca ar fi nevoie de msurarea unui electron legat, ceea ce l-ar modifica i pe
celalalt, urmat de reemiterea ambilor fotoni, lucru imposibil dup legile mecanicii cuantice. Din
cauza faptului c o linie de fibr optic e necesar ntre cei doi ageni care folosesc criptarea
cuantic, ntreruperea comunicaiei poate fi fcut foarte uor tind linia sau, mai discret,
ncercnd interceptarea informaiei transmise. Dac se poate interveni n echipamentul folosit,
s-ar putea modifica astfel nct cheile generate s nu mai fie sigure, ajungndu-se astfel la un
atac cu generator de numere aleatoare. Atacul cu intermediar (n englez man-in-the-middle
attack) poate fi totui folosit n cazul criptrii cuantice, dac intermediarul se prezint fiecrei
pri autorizate ca fiind cealalt; dup aceea, tot ce trebuie s fac este s respecte protocolul de
transmisie a datelor, fcnd schimb de chei cu cei doi ageni autorizai. Acest fel de atac poate fi
evitat prin folosirea unei metode de autentificare prin care cele doua pari se pot recunoate.
Criptarea cuantic a fost propus pentru prima oar de Stephen Wiesenr, pe atunci la
Universitatea Columbia din New York, cnd, la nceputul anilor 70, a introdus un concept de
codare cu conjugat cuantic. Lucrarea sa intitulat Conjugate Coding a fost respins de
Comisia de Teoria Informaiei a IEEE, dar a fost in cele din urm publicat n 1983 n SIGACT
News. El arat cum se poate reine sau transmite dou mesaje codate in dou observabile
conjugate, cum ar fi polarizarea liniar sau circular a luminii, astfel nct oricare dintre ele, dar
nu amndou, pot fi recepionate i decodificate. El i-a ilustrat ideea cu un proiect de bancnote
care nu pot fi falsificate. Un deceniu mai trziu, pe baza acestei lucrri, Charles H. Bennett, de la
Centrul de Cercetare Thomas J. Watson al IBM, i Gilles Brassard, de la Universitatea din
Montral, au propus o metod de comunicaie securizat bazat pe observabilele conjugate ale
49
lui Wiesener. n 1990, n mod independent i fr s fie la curent cu lucrrile precedente, Artur
Ekert, pe atunci doctorand la Universitatea din Oxford, a folosit o abordare diferit bazat pe
proprietatea de Entanglement cuantic.
Strile legate sunt rareori destul de stabile pentru a putea fi folosite n aplicaii
comerciale, care sunt astfel limitate (cel puin deocamdat) la aproximativ 100 de kilometri. Se
studiaz totui folosirea sateliilor pentru transmiterea strilor legate, pentru c n afara
atmosferei perturbaiile ar fi mult reduse.
Dispozitive comerciale bazate pe criptarea cuantic au aprut, i pot nlocui cu succes
protocoale cum ar fi schimbul de chei Diffie-Hellman n aplicaiile care au nevoie de maximum
de securitate posibil. Dezavantaje ale acestei tehnologii, care fac ca ea s nu fie larg rspndit,
sunt costul echipamentelor i al liniei de fibr optic dedicat, ca i necesitatea de a avea
ncredere n firma productoare, ceea ce nu este cazul dac se folosesc tehnologiile curente,
bazate pe software liber i calculatoare standard, ca i lipsa vreunei vulnerabiliti majore a
acestor tehnologii. Existena unor mijloace de stocare a datelor de mare capacitate i relativ
ieftine face ca transmiterea unor cantiti mari de date sensibile s poat fi fcut prin curier;
aceste date pot s reprezinte chei folosite n cadrul unui algoritm cum ar fi AES.
Bruce Schneier, expert n domeniul criptologiei, este de prerea c implementarea
reelelor nzestrate cu tehnologia criptrii cuantice este practic lipsit de sens fiind aplicat n
practic. n octombrie 2008 n Austria a fost pus n funcie prima reea cuantic, despre care
Schneier a scris n revista Wireed c implementarea acestor tipuri de reea nu va schimba nimic
din punct de vedere al securitii informaionale. Ideea de baz, n teorie, este la fel de tare pe
ct de lipsit de sens n viaa real. Chiar i cifrarea cuantic nu va rezolva toate problemele
criptografice. Cheia se transmite cu fotoni, ns n baza procesului de cifrare rmne acelai
algoritm matematic. Schneier a remarcat c veriga cea mai slab a oricrei reele sunt punctele
finale ale reelei i nu momentul de transmitere a datelor. Criptarea cuantic nu propune soluii
pentru izvorul tuturor problemelor. Asta e acelai lucru ca i cum te-ai apra de atacatori cu un
stlp btut n pmnt. E inutil de discutat despre nlimea lui necesar 15 sau 30 de metri,
deoarece atacatorul pur i simplu l vor ocoli.






50
1.8. Concluzii la Capitolul 1
Criptografia modern utilizeaz dou tipuri de sisteme de criptare: sistemele cu cheie
privat i sisteme cu chei publice. La baza oricrui tip de sistem de cripatre se afl o teorie
matematic bine fundamentat, n funcie de care sistemul poate fi utilizat ntr-un scop sau altul.
Astfel, la elaborarea sistemelor de criptare, sunt aplicate cele mai noi rezultate tiinifice
din teoria nnumerelor, teoria informaiei, teoria complexitii, teoria probabilitilor i statistica
mateamtic, matematica disret, teoria grupurilor etc.
Totodat este n continu dezvoltare i Criptanaliza, care le fel utilizeaz cele mai
performante rezultate tiinifice pentru a gsi prile slabe ale algoritmilor de criptare elaborai de
criptologi. Dezvoltarea vertiginoas a tehnicii de calcul accelereaz ambele aceste procese.
Deoarece unicul cifru perfect este cifrul aleator Vernam [105] (iar implementarea lui practic nu
este posibil la momentula actual), concurena ntre aceste dou ramuri ale Criptoliogiei va da
natere la noi algoritmi de cripatre i va necesita perfecionarea continu a sistemelor utilizate.
Lund n consideraie necesitatea asigurrii unui grad nalt de securitate a informaiei,
nivelul actual de dezvoltare a sistemelor de criptare i problemele legate de utilizarea acestora,
precum i ncercrile multiple ale ruvoitorilor de a sparge aceste sisteme, cercettorii n
domeniu continu investigaiile n privina perfecionrii i elaborrii de algoritmi noi de
criptare. n viitor se va lucra tot mai mult n scopul crerii sistemelor de criptare cu urmtoarele
particulariti:
a) utilizarea cheilor variabile fr mrirea lungimii lor;
b) substituirea operaiilor cu numerele mari prin operaii asupra sistemelor de funcii logice;
O cale de atingere a acestui scop ar fi aplicarea proprietilor mulimilor de relaii multi-
are i a matricelor multidimensionale.











51
2. MULIMI DE RELAII MULTI-ARE. MATRICE
MULTIDIMENSIONALE

n acest capitol este prezentat baza teoretic a algoritmilor de criptare elaborai n tez.
Sunt demonstrate o serie de teoreme referitoare la mulimi de relaii multi-are i la aplicaii ale
lor, n special cele refiritoare la distribuirea numerelor prime n mulimea numerelor naturale i
cele ce se refer la unele proprieti ale funciilor booleene care permit efectuarea mai eficient a
operaiilor cu aceste funcii. Rezulattele obinute de autor i descrise n capitolul 2 se bazeaz pe
unele lucrri ale dlui M. Bulat, [14], [16], [17], [18], [21], [115], [118], i ale dlui S. Cataranciuc
[26], [27], [28]. Pornind de la lucrrile dlui M. Bulat i ale dlui S. Cataranciuc, autorul a obinut
mai multe rezultate importante, care au stat la baza fundamentrii teoretice ale metodelor de
criptare elaborate. Printre rezultatele de baz ale acestui capitol, obinute de ctre autor, se
numr teoremele 2.62.10 i 2.14 2.16, precum i algoritmul determinist de generare a
numerelor prime.
2.1. Relaii pe mulimi. Mulimi de relaii.
Fie date dou mulimi finite } ,..., , {
2 1 m
x x x X = si } ,..., , {
2 1 n
y y y Y = .
Definiia 2.1. O relaie binar de la X la Y (se noteaz
XY
R sau Y X ) se numete o
submulime a produsului cartezian )}. , ( ..., ), , ( ), , {(
2 1 1 1 n m
y x y x y x Y X =
Relaia poate fi reprezentat printr-o matrice bidimensional

(
(
(
(
(
(

= =

mn mj m
in ij i
n j
n m ij
a a a
a a a
a a a
n j
m
i
a A

. . .

. . .


.
.
1
1
1 1 11
1
1
) ( , unde

e
e
=
. ) , ( dac , 0
, ) , ( dac , 1
XY j i
XY j i
ij
R y x
R y x
a
Liniilor i coloanelor li se asociaz numai indicii elementelor, adesea nsi elementele.
Aceast matrice poate fi scris i n o alt form:
XY ij
a
A=
mn
ij
.
.
11

mn
ij
a
a
a
.
.
11


52
n funcie de problema care se rezolv vom folosi una dintre aceste forme de reprezentare a
matricelor date.
Fcnd analogie cu definiia matricelor bidimensionale obinuite i n conformitate cu
[124] definim matricea multidimensional n felul urmtor:
Definiia 2.2. Un sistem A de
p A
n n n n N = ...
3 2 1
elemente
p
i i i i
a
...
3 2 1
( ; ,..., 3 , 2 , 1
o o
n i =
p ,..., 3 , 2 , 1 = o ) ce aparin mulimii O, plasate n punctele spaiului p-dimensional i determinate
de coordonatele , ..., , ,
2 1 p
i i i se numete matrice multidimensional peste mulimea O. Numrul
p arat numrul de indici n notarea elementelor matricei i se numete dimensiunea matricei.
Mrimea
A
N arat numrul total de elemente n matricea dat. Mrimea
o
n a indicelui
o
i arat
cte valori (de la 1 la
o
n ) parcurge acest indice.
Aadar, n lucrarea de fa, matricea multidimensional este o generalizare direct a
matricei obinuite bidimensionale.
Prin analogie cu relaia binar definim relaia n-ar ntre n mulimi } ,..., , {
1
1 12 11 1 m
x x x X = ,
} ,..., , {
2
2 22 21 2 m
x x x X = , ..., } ,..., , {
2 1
n
nm n n n
x x x X = ca o submulime a produsului cartezian
, ...
2 1 n
X X X notat prin
n
X X X
R
...
2 1
[108], [109],. Deci , ...
2 1 ...
2 1
n X X X
X X X R
n
_ iar
elementele lui
n
X X X
R
...
2 1
reprezint nite cortegii de lungime n ), ,..., , (
2 1 n
j j j
x x x unde
. , 1 , n i X x
i j
i
= e Matricea acestei relaii este o matrice n-dimensional care are urtoarea form:
n
X X X
2 1

n
j j j
a
...
2 1

= =

n n
m m j j j
a A
... ...
1 2 1
) (
n
n
m m m
j j j

. . .

. . .

2 1
2 1
1 1 1
,
...
...
1 ... 11
2 1
2 1
n
n
m m m
j j j
a
a
a
.
.


unde ,
) ,..., , ( dac , 0
) ,..., , ( dac , 1
...
...
...
2 1 2 1
2 1 2 1
2 1

e
e
=
n n
n n
n
X X X j j j
X X X j j j
j j j
R x x x
R x x x
a }. ,..., 1 { },..., ,..., 1 {
1 1 n n
m j m j e e
Aceasta matrice poate fi scrisa sub form de matrice bidimensional [20] n felul urmtor
(
(
(
(
(

=
n
n
n
m m m m m
m m
m m
a a a
a a a
a a a
A
... 2 ... 1 1 ... 1
... 2 2 ... 21 1 ... 21
... 1 2 ... 11 1 ... 11
2 1 1 1
2
2
. . . .

.
53
n caz general elementele matricei A pot fi de origine arbitrar. Fie } ,.., {
1 m
e e = O
mulimea elementelor acestei matrice. Matricele tridimensionale pot fi reprezentate geometric n
spaiul R
3
. O matrice tridimensional este reprezentat n Figura 2.1.

Fig. 2.1. Exemplu de matrice tridimensional

Aceast matrice reprezint relaia
3 2 1
X X X
R ntre mulimile }, , , {
13 12 11 1
x x x X =
} , {
23 , 22 21 2
x x x X = i } , , {
33 32 31 3
x x x X = cu elementele din mulimea }. , , { T M O = O Ea
corespunde matricei din Tabelul 2.1 ntr-o form mai compact matricea este reprezentat n
Tabelul 2.2.
Cu ajutorul matricelor multidimensionale putem reprezenta i mulimile de relaii [17],
[24], [108], [109]. Fie o familie de mulimi } ,..., {
1 n
X X X = i mulimea } ,..., {
1 m
e e = O cu
elemente arbitrare. Pe aceast familie sunt definite k relaii ,
....
1
j
d j j
X X j
R R = , , 1 , 2 k j n d
j
= s s
}. ..., , 2 , 1 { ..., , ,
2 1
n j j j
d
e Elementele matricelor acestor relaii aparin mulimii O. Notm prin R
,

M
T
O
X
1
X
2
X
3
1

2

3

4

1

2

1

2

3

M
M
T
O
O T
O
O M M O
O
T T O
T
O
T
M
T O
M
3

54
vectorul cu componentele
j
R , adic ). .., , ..., , (
1 k j
R R R R =
,
Acestui vector i punem n
coresponden o matrice n-dimensional [108], [109], [110], [117]

) (R A
R
,
u = , ( 2.1)
conform unei reguli indicate in Figura 2.2.

Tabelul 2.1. Mod de reprezentare
a matricei tridimensionale
Tabelul 2.2. Mod de reprezentare
a matricei tridimensionale











= A
1
X
2
X
3
X
3 2 1
j j j
a
4
4
4
4
4
4
3
3
3
3
3
3
2
2
2
2
2
2
1
1
1
1
1
1

2
2
2
1
1
1
2
2
2
1
1
1
2
2
2
1
1
1
2
2
2
1
1
1

3
2
1
3
2
1
3
2
1
3
2
1
3
2
1
3
2
1
3
2
1
3
2
1

O
T
M
M
O
T
T
O
M
O
T
M
T
M
O
M
T
O
O
M
T
M
O
T




3
X
2 1
X X 3 2 1
= A
2 4
1 4
2 3
1 3
2 2
1 2
2 1
1 1

O T M
M O T
T O M
O T M
T M O
M T O
O T M
M O T


n Figura 2.2
j
R
A este matricea unei relaii
a c b
X X X j
R R = din mulimea de relaii, iar
a c b
i i i ij
r r = un element al acestei matrice. n aa mod elementele matricei n-dimensionale care
55
reprezint mulimea de relaii sunt vectorii ), ,..., ,..., (
1 ik ij i i
r r r r =
,
u i , 1 = componentele crora
sunt elemente ale matricelor relaiilor ntre mulimile familiei X. n acelai timp componentele
vectorilor sunt i elemente ale mulimii } ,..., {
1 m
e e = O . Notm elementele acestei mulimi n
conformitate cu substituia
|
|
.
|

\
|
1 1 0
2 1
m
m

e e e
. n rezultatul acestei substituii vectorului
i
r
,
i
se pune n coresponden un numr
n
i i
a
...
1
n baza m. Trecndu-l n baza 10 obinem

n
i i
a
...
1
=

k
j
j k
ij
m r
1
, u i , 1 = (2.2)

Astfel, transformarea ) (R A
R
,
u = pune n coresponden mulimii de relaii R
,
un cortegiu
) ,..., (
... 1 ... 11
1 n
m m
a a A =
,
[108], [109], [110], adic

) (R A
, ,
u = (2.3)



n c b a
n c b a
n c b a
R
u u u u u u
i i i i i i
X X X X X
A

.

.


1
1
1
. . . . . . .
. . . . . . .
1 1 1 1 1 1
=
uk uj u
ik ij i
k j
r r r
r r r
r r r
k j



1
1
1 1 11
1

n
n
n
u u
i i
i i
a
a
a
a
...
...
1 ... 1
...
1
1
1
.
.

Figura 2.2. Regula de corespionden ) (R A
R
,
u =

Reprezentarea mulimilor de relaii prin intermediul matricelor multidimensionale ne
permite s abordm nu numai problema comprimrii informaiei, dar i s efectum cu eficien
operaii cu sisteme de mari dimensiuni [18]. n funcie de elementele matricelor acestor relaii
[24] i ale mulimii O obinem diferite cortegii A
,
. Transformarea inversa ) (
1
A R
, ,

u = nu este
univoc. Din aceast cauz cunoscnd cortegiul A
,
nu este simplu de aflat cortegiul R
,
. Exist
cazuri particulare n care problema dat se rezolv i aceasta implic unele aplicaii practice [21].
S analizm unul dintre aceste cazuri. Se tie [114] c n orice ir de numere naturale,
care reprezint o progresie aritmetic, n care raia este reciproc prim cu primul termen, se
j
R
A
56
conine o mulime infinit de numere prime (teorema lui Legendre, care a fost demonstrat de
Dirichlet). Fie c componentele vectorului A
,
formeaz o partiie din m progresii aritmetice cu
raia m, cu primii termeni 0,1, ..., m1 respectiv i cu un numr de termeni egal cu
1 n
m . Adic
( )
( )
( )
( ) ( ) }) 1 ,..., 1 2 , 1 , 1 {
..., }, 2 ,..., 2 2 , 2 , 2 {
}, 1 ,..., 1 2 , 1 , 1 {
}, 0 ,..., 0 2 , 0 , 0 ({
+ +
+ +
+ +
+ + =
n
n
n
n
m m m m m m
m m m m
m m m m
m m m m A
,

Notm mulimile partiiei prin
1 1 0
,..., ,
n
K K K i construim o matrice bidimensional cu
liniile 1 , 0 , = m i K
i
:
( )
( )
( )
( ) ( )
(
(
(
(
(
(

+ +
+ +
+ +
+ +
=

1 1 2 1 1
2 2 2 2 2
1 1 2 1 1
0 0 2 0 0
1
2
1
0
n
n
n
n
m
m m m m m m
m m m m
m m m m
m m m m
K
K
K
K
A

. . . .

.
(2.4)

n acest caz matricea ndimensional (2.3) se reprezint prin matricea bidimensionala
(2.4), n care, conform teoremei lui Legendre, numerele prime sunt distribuite numai pe unele
dintre liniile acestei matrice. Acest fapt ne permite s construim numere prime cu anumite
proprieti, care sunt utile pentru elaborarea unor sisteme de criptare a informaiei [16], [22].

Teorema 2.1. Numrul natural N aparine liniei
i
K dac i numai dac ) (modm i N .
Demonstraie. Fie .
i
K N e Atunci exist un aa numr natural k nct . m k i N + = Aceasta
implic , k
m
i N
=

ceea ce nseamn c ) (modm i N .


Reciproc, fie ). (modm i N Atunci exist aa numr natural k nct . k
m
i N
=

n acest caz
m k i N + = ceea ce implic
i
K N e .
Teorema este demonstrat.
Teorema 2.2. Dacanumrul natural
1
N aparine liniei
i
K iar numrul natural
2
N aparine liniei
j
K atunci suma acestor numere
2 1
N N + aparimie liniei
) )(mod ( m j i
K
+
, iar produsul lor
2 1
N N
liniei .
) )(mod ( m j i
K


Demonstraie. Fie
1
N aparine liniei
i
K iar
2
N aparine liniei
j
K . n acest caz exist dou
numere naturale
1
k i
2
k

astfel nct m k i N
1 1
+ = i m k j N
2 2
+ = , de unde rezult c
57
m k k j i N N ) ( ) (
2 1 2 1
+ + + = + . Notm
2 1
k k k + = . Atunci km j i N N + + = + ) (
2 1
. Aceasta
nseamn c ). )(mod (
2 1
m j i N N + + Conform teoremei precedente avem:
.
) )(mod ( 2 1 m j i
K N N
+
e +
Produsul acest dou numere m k j k i j i N N ) (
1 2 2 1
+ + = . Notm
1 2
jk ik k + = . Atunci
km j i N N + =
2 1
, de underezult c ) )(mod (
2
1
m j i N N , adic
) )(mod ( 2 1 m j i
K N N

e , ceia ce
trebuia de demonstrat.
Fie numrul m reprezentat n form canonic ca produs de factori primi
k
k
p p p m

...
2 1
2 1
= , unde
i
p sunt numere prime, k i , 1 = , iar
i
multiplicitatea respectiv a
factorului .
i
p Vom calcula raportul procentual al numrului de linii ale matricei A careconin un
numr infinit de numere prime fa de numrul total de linii. Conform teoremei lui Legendre
linia
i
K conine un numr infinit de numere prime, dac 1 ) , ( = i m , adic n cazul n care m i i
sunt reciproc prime. Numrul acestor linii este egal cu funcia lui Euler ) (m . n cazul
investigat, conform [114], avem:
).
1
1 ( )...
1
1 ( )
1
1 ( ) 1 ( )... 1 ( ) 1 ( ) ... (
2
2
1
1
1
2
1
2 1
1
1 2 1
2 1 2 1 2 1
k
k k k k
p
p
p
p
p
p p p p p p p p p p
k k k
= =


Atunci
.
...
) ... (
...
) 1 )...( 1 )( 1 (
...
)
1
1 ( )...
1
1 ( )
1
1 (
) (
2 1
2 1
2 1
2 1
2 1
2
2
1
1
2 1
2 1
k
k
k
k
k
k
k
p p p
p p p
p p p
p p p
p p p
p
p
p
p
p
p
m
m
k
k



=

=

=

Vom nota cu q raportul procentual cutat. Atunci

% 100
...
) 1 )...( 1 )( 1 (
% 100
) (
2 1
2 1


= =
k
k
p p p
p p p
m
m
q (2.5)

n [114] aceast mrime este numit constanta structural, care determina divizarea structurala a
mulimii numerelor naturale n mulimea de numere prime i compuse. Din (2.5) se observ c q
nu este n funcie de
i
sau de numrul n de mulimi pe care este definit matricea
n-dimensional. Acest raport procentual este n funcie numai de divizorii simpli
i
p ai lui m.
Dac m reprezint un singur numr prim p, atunci numerele prime sunt repartizate pe toate liniile
matricei A. Linia
0
K conine un singur numr prim - numrul p. Pentru fiecare divizor
i
p al lui
m linia
i
p
K conine un singur numr prim numrul
i
p .
58
Aadar, este adevrat urmtoarea teorem:
Teorema 2.3. Dac numrul natural m are urmtoarea form canonic de produs de factori primi
k
k
p p p m

...
2 1
2 1
= , atunci constanta structural
% 100
...
) 1 )...( 1 )( 1 (
2 1
2 1
k
k
p p p
p p p
= q

n [114] este investigat (nu prin intermediul matricelor multidimensionale) repartizarea
numerelor prime n irul natural de numere pentru 5 3 2 90
2
= = m . n acest caz % 6 , 26 ~ q .
Conform teoremei 2.1.3 aceeai valoare se obine pentru . 5 3 2 30 = = m Odat cu creterea
numrului de factori n m descrete q , iar cantitatea de numere pe fiecare linie crete. Pentru
m =2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73
79 83 89 se obine % 16 , 12 ~ q . Pentru m =6, n =3 obinem matricea

(
(
(
(
(
(
(
(

=
215 95 89 77 65 35
214 94 88 82 76 70 64 58 52 46 40 34 28 22 16 10 4
213 93 87 81 75 69 63 57 51 45 39 33 27 21 15 9
212 92 86 80 74 68 62 56 50 44 38 32 26 20 14 8
211 91 85 55 49 25 1
210 90 84 78 72 66 60 54 48 42 36 30 24 18 12 6 0
5
4
3
2
1
0

83 71 59 53 47 41 29 23 17 11 5
3
2
79 73 67 61 43 37 31 19 13 7
K
K
K
K
K
K
A

Pentru aceast matrice . 3 2 6 = = m Numerele 1 i 5 sunt reciproc prime cu 6. Prin
urmare liniile
1
K i
5
K conin un numr infinit de numere prime (pentru = n ).
2
K conine un
singur numr prim numrul 2, deoarece 2 este divizor al lui 6. Din aceeai cauz
3
K conine
numrul prim 3. Numerele prime sunt scrise cu cifre aldine. Pentru 5 3 2 30 = = m doar pe 8
linii din 30 sunt distribuite numerele prime. Numerele prime sunt neuniform distribuite n irul
de numere naturale. Adesea ne ntlnim cu problema determinrii intervalelor cu o densitate
mai sporita a numerelor prime. Modificnd vectorul R

putem modifica coninutul liniilor fr a


schimba numrul de elemente a acestora. Pentru soluionarea acestei probleme vom analiza
noiunea de funcie boolean n contextul noiunii de relaii ntre mulimi.



59
2.2. Reprezentarea funciilor booleene prin submulimi de coloan.
2.2.1. Submulimi de coloan. Proprieti. Tabelul submulimilor de coloan ale funciilor
booleene

Considerm funcia ) ,..., ,..., (
1 n
x x x F
t
creia i este caracteristic faptul c att variabilele
n
x x x ,..., ,...,
1 t
ct i funcia F nu pot lua dect doua valori distincte, 0 sau 1 [14], [107], [109],
[115], [116], [130]. Astfel de funcie se numete funcie boolean. Aceast funcie este o relaie
n-ar ,
n
X
R unde } 1 , 0 { = O = X i poate fi reprezentat prin tabelul veridicitii (Tabelul 2.3),
1 2 , , 1 }, 1 , 0 { = = e
n
i
u u i c

Tabelul 2.3. Tabelul veridicitii unei funcii booleene

n
x x x
t 1
) ,..., (
1 n
x x F
u
i
.
.
0

1 1 1
0 0 0
1


n
o o o
t

u
i
c
c
c
.
.
0



n cazul n care numrul de variabile este mare reprezentarea funciilor booleene cu
ajutorul tabelului veridicitii este foarte dificil. n acest caz se propune o alt form de
reprezentare a funciei booleene, care simplific operaiile cu aceste funcii.
Vom examina o alt reprezentare a funciei booleene. Conform [14], [115], [116], [118]
pe mulimea } ,..., {
1 n
x x X = construim partiia }}. ,..., { }, ,..., {{ }
~
,
~
{
1 1 2 1 n
x x x x X X
+
=
t t
Construim
dou mulimi: } ,.., , {
1 2
1 0

=
t
y y y Y (format din strile binare ce corespund variabilelor din
1
~
X )
i = Z } ,..., , {
1 2
1 0

t n
z z z (format din strile binare, care corespund variabilelor din
2
~
X ). Atunci
funcia booleana ) ,..., (
1
n
x x F poate fi considerat o relaie binar
YZ
R ntre mulimile Y i Z cu
matricea

60
(
(
(
(
(
(

=
mp mj m
ip ij i
p j
m
i
p j
YZ
a a a
a a a
a a a
y
y
y
z z z
R


.
.

0
0
0 0 00 0
0
, 1 2 =
t
m , 1 2 =
t n
p ,

j i,

=
=
=
. 0 ) , ( dac , 0
, 1 ) , ( dac , 1
j i
j i
ij
z y F
z y F
a

Definiia 2.3. Submulimea
j
z
F
S
c
a mulimii Y
}} 1 , 0 { , ) , ( , : { e = e = c c
c
j i i i
z
F
z y F Y y y S
j

se numete submulime de coloan a funciei ) ,..., (
1
n
x x F pentru coloana
j
z .
Funcia boolean poate fi reprezentata i cu ajutorul tabelului submulimilor de coloan
(Tabelul 2.4):

Tabelul 2.4. Tabelul submulimilor de coloan ale unei funcii booleene

0
z
j
z
p
z
1
F
0
1
z
F
S

j
z
F
S
1

p
z
F
S 1


Este evident c
j j
z
F
z
F
S Y S
1 0
\ = . Din aceast consideraie submulimile
j
z
F
S
0
nu sunt indicate
n Tabelul 2.4. Construim pe mulimea Y partiiile
t
t t
x x
,...,
1
[116]. De exemplu, n cazul n care
n=5 iar 3 = t obinem:
}, , , {
~
3 2 1 1
x x x X = } , {
~
5 4 2
x x X =
}, 111 , 110 , 101 , 100 , 011 , 010 , 001 , 000 { } , , , , , , , {
7 6 5 4 3 2 1 0
= = y y y y y y y y Y
= = } , , , {
3 2 1 0
z z z z Z }. 11 , 10 , 01 , 00 {
Construim partiiile:
} , , , ; , , , {
1
1 7 6 5 4
0
1 3 2 1 0
1
y y y y y y y y
x
= t ,
} , , , ; , , , {
1
2 7 6 3 2
0
2 5 4 1 0
2
y y y y y y y y
x
= t ,
} , , , ; , , , {
1
3 7 5 3 1
0
3 6 4 2 0
3
y y y y y y y y
x
= t .
61
Pentru simplitate n submulimile de coloan i n partiii scriem n loc de elementele
i
y
numai indicii respectivi i. Conform [115], [116] notm cu
k j i
m
k j i

o o o
(unde
}, ,..., 2 , 1 { ,..., ,..., n k j i e } 1 , 0 { ,..., e
k i
o o cu condiiile ) 0 ( 1 =
i
o dac ),... (
0 1
i i i
m m x e ) un bloc al
produsului partiiilor . ,...,
k i
x x
t t De exemplu, pentru partiiile de mai sus avem
} 7 , 6 ; 5 , 4 ; 3 , 2 ; 1 , 0 {
1 , 1
2 , 1
0 , 1
2 , 1
1 , 0
2 , 1
0 , 0
2 , 1
2 1
=
x x
t t .
Aflm toate produsele posibile (de 2, 3, ..., factori) ale partiiilor . ,...,
1 t
t t
x x
Din fiecare
produs excludem blocurile care se ntlnesc n produse de un numr mai mic de partiii.
Blocurile rmase mpreun cu mulimea } 1 2 ,..., 1 , 0 {
t
alctuiesc mulimea de blocuri B [116].
Definiia 2.4. Blocul
k j i
m
k j i

o o o
se numete bloc maximal al submulimii
j
z
F
S
c
dac:
1)
j
z
F
k j i
S
k j i
m
c
o o o
_


,
2) pentru orice B
d c
m
d c
e

o o
, astfel nct
k j i
m
d c
m
k j i d c

o o o o o
,
are loc .
d c
m
d c

o o
j
z
F
S
c
.
Conform [116] pentru argumentul
i
x introducem notaia

=
=
=
. 0 dac ,
, 1 dac ,
i i
i i
i
x
x
x
i
o
o
o

Din definiia conjunciei variabilelor rezult c

k
x
i
x
k i
o o
. .... =

= e -
= e
. : } ,..., { dac , 0
, : } ,..., { dac , 1
j j
j j
x k i j
x k i j
o
o
(2.6)

Notm cu } ,..., {
1
1
k
M o o = i } ,..., {
1
0
m
M | | = mulimile de stri binare ale variabilelor
funciei ) ,..., (
1
n
x x F pentru care ( ) 1
~
= o F i ( ) 0
~
= | F respectiv.
Definiia 2.5. Conjuncia
k
j
i
k j i
x x x U
o
o
o
. . . . = ... ... care respect condiiile a) c)
a)
1
M e -o pentru care 1 ) ( = o U ,
b) pentru
0
M e | are loc 0 ) ( = | U ,
62
c) pentru U
~
care se obine din U prin excluderea unei variabile arbitrare
0
~
M e -|
pentru care 1 )
~
(
~
= | U ,
se numete termen minimal al funciei ) ,..., (
1
n
x x F :

Conform [115], [116], dac
k j i
m
k j i

o o o
este bloc maximal al submulimii
j
z
F
S
c
atunci

k j i
k j i
x x x U
o o o
. . . . . = ... ... (2.7)
este termen minimal al funciei ) ,..., (
1
n
x x F , unde este un termen minimal al funciei
) ,..., (
1 n
x x f
+ t
pentru care
j f
z M =
1
iar
0
f
M conine strile binare
t
z pentru care se respect
condiia
t
z
F
k j i
S
k j i
m
1
.

o o o
. (2.8)

Dac blocul maximal este compus din toate elementele mulimii Y, adic are forma
1 2 ,..., 2 , 1 , 0
t
(acest bloc nu conine indici) atunci = U . Prin urmare, U nu depinde de
variabilele
t
x x ,...,
1
.
Dac condiia
t
z
F
k j i
S
k j i
m
1
_

o o o
se ndeplinete pentru orice
t
z atunci 1 iar
k j i
k j i
x x x U
o o o
. . . . = ... ... ,
adic U nu depinde de variabilele
n
x x ,...,
1 + t
.

Definiia 2.6. Disjuncia
s
U U V v v = ...
1 min
, unde s i U
i
, 1 , = sunt termeni minimali ai
funciei ), ,..., (
1 n
x x F care respect condiiile 1) 3)
1) pentru
1
M e o 1 ) (
min
= o V ,
2) pentru
0
M e | 0 ) (
min
= | V ,
3) pentru V
~
care se obine din
min
V prin excluderea unui termen minimal arbitrar
1
M e -o pentru care 0 ) (
~
= o V ,
se numete form minimal normal disjunctiv a acestei funcii.

63
Menionm c forma minimal
min
V nu este unic.
S revenim la problema de mai sus determinarea componentelor
j
R ale vectorului R
,

avnd componentele vectorului A
,
. Reprezentm n baza 2 fiecare component a lui A
,
. n acest
caz obinem elementele
ij
r din Figura 2.2, iar
R
A reprezint un sistem de k funcii booleene
). ,..., (
1 n j
x x F S analizm funcia ) ,..., (
1 n j
x x F care corespunde relaiei .
....
1
j
d j j
X X j
R R = Fie c se
cunoate o form minimal
s
U U V v v = ...
1 min
a funciei ). ,..., (
1 n j
x x F Notm cu
i
N mulimea de
variabile
j
x din care este compus termenul minimal ,
i
U s i , 1 = . Fie N reuniunea acestor
mulimi:
s
N N N ...
1
= .
Teorema 2.4. Fie relaiei
j
d j j
X X j
R R
....
1
= i corespunde funcia booleana ) ,..., (
1 n j
x x F cu o form
minimal
s
U U V v v = ...
1 min
, atunci
N N N d
s j
= > ...
1
(2.9)
Demonstraie. Notm cu
j
d
j j
o o ,...,
1
valorile respective ale variabilelor , ,...,
1
j
d
j j
x x adic
. ,...,
1 1 j d j d
j j j j
x x o o = = Atunci conjuncia . 1 ...
1
1
= . . =
j
d
j
j
d
j
j j
x x U
o
o
Fie c starea binara o din
1
M conine valorile indicate. Atunci 1 ) ( = o F . Daca n d
j
< atunci exist o alt stare binar
care conine valorile variabilelor indicate mai sus. Aceast stare n mod obligator trebuie s
aparin mulimii
1
M . Aceasta nseamn c orice variabil din conjuncia U trebuie s aparin
cel puin unui termen minimal al funciei ) ,..., (
1 n j
x x F . Prin urmare N x x
j
d
j j
= } ,..., {
1
, adic
. N d
j
= Pe de alt parte, dac la termenul minimal adugam noi variabile, atunci condiiile a) i
b) sunt verificate, ceea ce este suficient pentru formarea relaiei care corespunde funciei
booleene ). ,..., (
1 n j
x x F Prin urmare N d
j
> .
Teorema este demonstrat.
Aceast teorem permite s determinm nu numai mulimile pe care este definit relaia,
dar i dimensiunea
j
d a matricei care reprezint aceast relaie. Alegnd o succesiune a
elementelor mulimii N aflm elementele matricei .
j
R n aa mod putem determina
componentele vectorului R
,
avnd componentele vectorului A
,
.
S analizm acum care sunt condiiile pentru vectorul R
,
nct prin transformarea (2.3) s
se obin matricea (2.4). Din condiiile expuse mai sus rezult c
n
m u = iar m n k = = . Vom
examina cazul n care }, 1 , 0 { = O , 4 = n } 1 , 0 {
4 3 2 1
= = = = X X X X iar ). , , , (
4 3 2 1
R R R R R =

n
64
acest caz vectorul ( ) 15 , 13 , 11 , 9 , 7 , 5 , 3 , 1 , 14 , 12 , 10 , 8 , 6 , 4 , 2 , 0 = A

conine doua progresii aritmetice


cu raia egal cu 2. S determinm componentele vectorului R
,
. Pentru aceasta reprezentm
fiecare element n form binar i construim matricea
R
A (Figura 2.3) n care matricea
bidimensional cu coloanele
i
X reprezint produsul cartezian al mulimilor
}, 1 , 0 { }, 1 , 0 { }, 1 , 0 { } 1 , 0 { iar matricea bidimensional cu coloanele
j
R este compus din
elementele matricelor relaiilor
j
R conform regulii expuse n Figura 2.2.
S determinm matricele relaiilor
j
R . Din Figura 2.3 se vede c acestor relaii le
corespund patru funcii booleene ( )
4 3 2 1
, , , x x x x f
j
, . 4 , 1 = j Fie 4 2
, ....
1
s s = d R R
j
d j j
X X j
iar N
mulimea de variabile } , , , {
4 3 2 1
x x x x x
i
e din care sunt formai toi termenii minimali ai unei
forme minimale normale disjunctive a funciei ( )
4 3 2 1
, , , x x x x f
j
.

15
13
11
9
7
5
3
1
14
12
10
8
6
4
2
0
1 1 1 1
1 0 1 1
1 1 0 1
1 0 0 1
1 1 1 0
1 0 1 0
1 1 0 0
1 0 0 0
0 1 1 1
0 0 1 1
0 1 0 1
0 0 0 1
0 1 1 0
0 0 1 0
0 1 0 0
0 0 0 0
1 1 1 1
0 1 1 1
1 0 1 1
0 0 1 1
1 1 0 1
0 1 0 1
1 0 0 1
0 0 0 1
1 1 1 0
0 1 1 0
1 0 1 0
0 0 1 0
1 1 0 0
0 1 0 0
1 0 0 0
0 0 0 0
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
4 3 3 1
4 3 2 1 4 3 2 1
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.
|

\
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.
|

\
|
j j j j
a R R R R X X X X

Figura 2.3. Reprezentarea matricei
R
A

Pentru determinarea termenilor minimali ai funciilor n acest caz nu este necesar s
construim submulimile de coloan. Cazul este extrem de simplu i termenii minimali se
determina nemijlocit din Figura 2.3. Funcia ) , , , (
4 3 2 1 1
x x x x F are un singur termen minimal
2 1
x U = . Prin urmare }. {
2
x N = Conform ipotezei 4 2 s s d . Din cele demonstrate anterior
65
rezult c putem aduga o variabil arbitrar, spre exemplu
1
x . n aa mod funciei
2 4 1 1
) ,..., ( x x x F = i corespunde relaia .
2 1
1 X X
R R = n mod analog avem ,
3 2
2 X X
R R = ,
4 3
3 X X
R R =
iar .
1 4
4 X X
R R = S determinm elementele acestor matrice. Din Figura 2.3 se observ c fiecare
matrice conine acelai numr de zerouri i de uniti. Adic ele au forma:
(

1 1
0 0
,
(

0 0
1 1
,
(

1 0
1 0
,
(

0 1
0 1
,
(

1 0
0 1
,
(

0 1
1 0
. (2.10)
S examinm relaia .
2 1
1 X X
R R = Matricea este compus din elementele mulimii }. 1 , 0 { = O
Liniile i coloanele le notm cu elementele lui }. 1 , 0 { = O Aadar, obinem o matrice de forma
.
* *
* *
1
0
1 0
(

Din Figura 2.3 (conform regulii din Figura 2.2) aflam: , 0


00
= r , 1
01
= r , 0
10
= r
. 1
11
= r Adic
.
1 0
1 0
1
0
1 0
2
1
1
(

= =
X X
R R
Am obinut prima matrice. Prin analogie gsim:
,
1 0
1 0
1
0
1 0
3 2
2
(

= =
X X
R R
,
1 0
1 0
1
0
1 0
4
3
3
(

= =
X X
R R
.
1 0
1 0
1
0
1 0
1
4
4
(

= =
X X
R R
Ultimele dou matrice nu corespund nici uneia dintre relaiile posibile. n aa mod se obine
.
1 0
1 0
1
0
1 0
1 4 4 3 3 2 2 1
4 3 2 1
(

= = = = = = = =
X X X X X X X X
R R R R R R R R (2.11)
Egalitile (2.11) au loc pentru orice n deoarece mulimile
j
N rmn neschimbate pentru
orice n. Adic
(

= = = = = = = = = = =

1 0
1 0
1
0
1 0
... ...
1 1 4 3 3 2 2 1
1 2 1 X X X X X X X X X X n n
n n n
R R R R R R R R R , (2.12)
pentru }. 1 , 0 { ...
2 1
= = = =
n
X X X
66
Prin analogie pentru cazul cnd } 1 ,..., 2 , 1 , 0 { ...
2 1
= = = = = O m X X X
n
se obin funcii
din logica m-valent cu aceleai submulimi
j
N ns cu matricele
(
(
(
(

=
1 1 0
1 1 0
1 1 0
1
1
0
1 1 0
m
m
m
m
m
R
j
.
. . . .

pentru orice j. Aadar, din cele, expuse este adevrat


Teorema 2.5. Dac pentru vectorul ) .., , ..., , (
1 k j
R R R R =
,
sunt satisfcute condiiile
, 2 , = = d n k (2.13)
}, 1 ,..., 2 , 1 , 0 { ...
2 1
= O = = = = m X X X
n
(2.14)
), , ,..., , (
1 1 3 2 2 1
X X X X X X X X
n n n
R R R R R

=
,
(2.15)
(
(
(
(

= = = = = =

1 1 0
1 1 0
1 1 0
1
1
0
1 1 0
...
1 1 3 2 2 1
m
m
m
m
m
R R R R R
j X X X X X X X X
n n n
.
. . . .

, (2.16)

atunci aplicnd transformarea (2.3) se obine matricea (2.4) n care liniile reprezint progresii
aritmetice cu raia m iar primii termeni sunt elementele din O scrise n ordine cresctoare.

Teorema 2.6. Dac ( )
k i n
F F F x x x x F v v v v =
+
... ... ,..., , ,...,
1 1 1 t t
,
atunci
} 1 2 ,..., 0 { ,
1
1 1
e =

=
t n
k
i
z
F
z
F
j S S
j
i
j

(2.17)

Demonstraie. Fie c cunoatem
j
z
F
S
1
i k i S
j
i
z
F
, 1 ,
1
= . Conform definiiilor submulimii de
coloan i a disjunciei funciilor booleene avem:

k
i
z
F
z
F
j i i j
z
F
j
i
j
i
j
S S z F F z F S
1
1 1 1
) 1 ) , ( : ( ) 1 ) , ( (
=
e e = - = e o o o o o , (2.18)
j j
i
j
i
z
F
j j i
z
F
k
i
i
z
F
S z F z F S F S
1 1 1
) 1 ) , ( ( ) 1 ) , ( ( ) : (
1
e = = e - e
=
o o o o o

. (2.19)
Din (2.18) i (2.19) rezult } 1 2 ,..., 0 { ,
1
1 1
e =

=
t n
k
i
z
F
z
F
j S S
j
i
j

, ceia ce trebuia de demonstrat.







67
Teorema 2.7. Dac
k i n
F F F x x x x F . . . . =
+
... ... ) ,..., , ,..., (
1 1 1 t t
,
atunci
} 1 2 ,..., 0 { ,
1
1 1
e =

=
t n
k
i
z
F
z
F
j S S
j
i
j


Demonstraie. Fie c cunoatem
j
z
F
S
1
i k i S
j
i
z
F
, 1 ,
1
= . Conform definiiilor submulimii de coloan
i a conjunciei funciilor avem:

k
i
z
F
z
F
j i j
z
F
j
i
j
i
j
S S k i z F k i z F S
1
1 1 1
: ) , 1 ( ) 1 ) , ( : , 1 ( ) 1 ) , ( (
=
e e = = = = e o o o o o ,
j j
i
j
i
z
F
j j i
z
F
k
i
z
F
S z F z F k i S k i S
1 1 1
) 1 ) , ( ( ) 1 ) , ( : ) , 1 )( : ) , 1 (
1
e = = = e = e
=
o o o o o


Din ultimele dou relaii rezult c } 1 2 ,..., 0 { ,
1
1 1
e =

=
t n
k
i
z
F
z
F
j S S
j
i
j

, ceia ce trebuia de
demonstrat.

Teorema 2.8. Dac
k i n
F F F x x x x F =
+
... ... ) ,..., , ,..., (
1 1 1 t t
,
atunci
=
j
z
F
S
1
1 =
A
i
k
j
i
z
F
S
1
, } 1 2 ,..., 0 { e
t n
j ,

unde A este diferena simetric a submulimilor de coloan.
Demonstraie. Fie c cunoatem k i S
j
i
z
F
, 1 ,
1
= . S aflam
j
z
F
S
1
. Conform definiiilor submulimii de
coloan, a sumei dup modulul 2 i a diferenei simetrice avem:
impar ) 1 ) , ( (
1
q z F S
j
z
F
j
- = e o o astfel nct }. , 1 { ,
, 1 , 0 ) , (
, 1 , 1 ) , (
k i
k q p z F
q p z F
p
j i
j i
p
p
e

+ = =
= =
o
o

+ = e
= e
k q p S
q p S
j
p
i
j
p
i
z
F
z
F
, 1 ,
, 1 ,
1
1
o
o
e o
1 =
A
i
k
j
i
z
F
S
1
.

e o
1 =
A
i
k

+ = =
= =
e

+ = e
= e
-
k q p z F
q p z F
k i
k q p S
q p S
impar q S
j i
j i
p z
F
z
F z
F
p
p
j
p
j
p
i j
i
, 1 , 0 ) , (
, 1 , 1 ) , (
} , 1 { ,
, 1 ,
, 1 ,
:
1
1
1
1
o
o
o
o

j
z
F
j
S z F
1
1 ) , ( e = o o .
Din ultimele relaii rezult c =
j
z
F
S
1
1 =
A
i
k
j
i
z
F
S
1
, } 1 2 ,..., 0 { e
t n
j

68
Teorema 2.9. Fie
2 1 1 1
) ,..., , ,..., ( F F x x x x F
n
=
+ t t
,
atunci

j j j
z
F
z
F
z
F
S S S
1
2
0
1
1
=
Demonstraie. Conform definiiei funciei Implicaia i proprietilor Conjunciei,
Disjunciei i Negaiei avem:
2 1 2 1 2 1 2 1
F F F F F F F F F + = + + = .
Deoarece
j j
z
F
z
F
S S
0
1
1
1
= , atunci

j j j
z
F
z
F
z
F
S S S
1
2
0
1
1
= .
Teorema este demonstrat.

n Exemplul 2.1 sunt aplicate teoremele de mai sus.
Exemplul 2.1. De aflat submulimile de coloan ale funciilor ,
2 1
F F v ,
2 1
F F .
2 1
F F i
2 1
F F definite prin intermediul tabelului submulimilor de coloan (n partea de sus a
Tabelului 2.5).

Tabelul 2.5. Determinarea submulimilor de coloan pentru ,
2 1
F F v ,
2 1
F F .
2 1
F F ,
2 1
F F
5 4
x x
00 01 10 11

0
z
1
z
2
z
3
z
1
1
F 0,1,2,3,4,5,6,7 C 0,3,5 1,2,7
1
2
F 6,7 0,6,7 1,3,5,6 0,1,2,3,4,5,6,7
1
2 1
) ( F F v 0,1,2,3,4,5,6,7 0,6,7 0,1,3,5,6 0,1,2,3,4,5,6,7
1
2 1
) ( F F . 6,7 C 3,5 1,2,7
1
2 1
) ( F F 0,1,2,3,4,5 0,6,7 0,1,6 0,3,4,5,6
1
2 1
) ( F F 6,7 0,1,2,3,4,5,6,7 1,2,3,4,5,6,7 0,1,2,3,4,5,6,7

Soluie. n conformitate cu teoremele 2.6, 2.7, 2.8 i 2.9 obinem ultimele patru linii ale
Tabelului 2.5 care reprezint submulimile de coloan ale funciilor date.
n soluionarea multor probleme, relaionate cu funcii booleene, de multe ori ne ntlnim
cu noiunea de stri binare vecine.
Definiia 2.7. Doua stri binare
j
z i
k
z care difer numai prin valoarea variabilei
i
x se numesc
stri binare vecine [130] dup variabila
i
x .
69
Teorema 2.10. Dac pentru strile binare
j
z i
k
z ( } 1 2 ,..., 1 , 0 { , e
n
k j ) se verific condiia

+
=

impar este
2
dac , 2
par este
2
dac , 2
i n
i n
i n
i n
j
j
j
j
k , (2.20)
atunci aceste stri sunt vecine dup variabila } ,..., , {
2 1 n i
x x x x e

Demonstraie. Pe mulimea } 1 2 ,..., 1 , 0 {
n
construim partiiile } ; {
2 , 1 , r r r
m m = t (
1
2 , 1

=
i
r ) cu
proprietile:

1) primul element al blocului
1 , 1
m este egal cu zero;
2) fiecare bloc reprezint o mulime alctuit din
i n
2 elemente care formeaz o
progresie aritmetica cu raia 1;
3) pentru orice } 2 ,..., 2 , 1 {
1
e
i
r primul element al blocului
2 , r
m difer de ultimul
element al blocului
1 , r
m printr-o unitate. Aceeai condiie o avem i pentru primul
element al blocului
1 , 1 + r
m i ultimul element al blocului
2 , r
m .
Din blocurile obinute construim matricea

|
|
.
|

\
|
=

+
+
2 , 2
2 , 1 2 , 2 , 1 2 , 2 2 , 1
1 , 2
1 , 1 1 , 1 , 1 1 , 2 1 , 1
1
1
i
i
m m m m m m
m m m m m m
A
r r r
r r r




Sunt posibile urmtoarele cazuri:
a)
(

i n
j
2
este un numr par .
n acest caz, conform condiiilor 1) 3) pentru orice r este adevrat apartenena
1 , r
m j e , adic j se afl n unul dintre blocurile din prima linie a matricei A. Dac la elementul j
adunm numrul
i n
2 obinem un element
i n
j k

+ = 2 , care aparine blocului
2 , r
m . Fie c
numrului j i corespunde starea binara
n i i i j
z o o o o o ... ...
1 1 1 +
= . Pentru 0 = j obinem 0 ... 0
0
= z
i
1 , 1 0
m z e . Pentru o astfel de stare binara 0 =
i
o . Dac la numrul 0 adunm un numr par de
numere egale cu
i n
2 , atunci valoarea lui
i
o rmne neschimbat, adic n
j
z , care corespunde
lui
1 , r
m j e , valoarea lui
i
x este egala cu 0. Prin analogie se obine c valoarea lui
i
x din
k
z ,
care corespunde lui
2 , r
m k e , este egal cu 1.
70
Aadar, pentru orice } 2 ,..., 2 , 1 {
1
e
i
r elementele blocurilor
1 , r
m i
2 , r
m formeaz n
matricea A coloane, elementele crora corespund la dou stri care pot fi vecine dup variabila
i
x . Odat cu ndeplinirea condiiilor 1) 3) se obine c pentru
n i i i j
z o o o o o ... ...
1 1 1 +
= i
n i i i k
z o o o o o ' ' ' ' ' =
+
... ...
1 1 1
are loc
. ,..., , ,...,
1 1 1 1 1 1 n n i i i i
o o o o o o o o ' = ' = ' = ' =
+ +

Acesta nseamn c
j
z i
k
z sunt vecine dup variabila
i
x .
b)
(

i n
j
2
este un numr impar .
Prin analogie, examinam cazul n care
(

i n
j
2
este un numr impar, obinem
i n
j k

= 2 .
Teorema este demonstrat.
Teorema dat ne permite sa gsim simplu perechi de stri vecine pentru funcii de un
numr mare de variabile.

Consecin. Valoarea lui
i
x din starea binara
j
z poate fi determinata din relaia

impar este
2
j
dac , 1
par este
2
dac , 0
i n
i n
i
j
x . (2.21)

Exemplu 2.2 Pentru funcia de n variabile de aflat starea
k
z vecina cu starea
j
z dup variabila
i
x , dac , 100 = n j= 17 2
97
+ = j i . 98 = i
Soluie. =
(

+
98 100
97
2
17 2
39614081257132168796771975172. Acest numr este par. Prin urmare
. 2 17 2
2 97
+ + = k
Verificare. Scriem numerele n baza 2:
= + = 17 2
97
j 001000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000010001
k=001000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000010101
Deci strile sunt vecine dup variabila
98
x .
71
2.2.2. Determinarea submulimilor de coloan ale funciilor booleene reprezentate n form
algebric

Fie ca funcia boolean ) ,..., (
1 n
x x F este reprezentat n form normal disjunctiv
k i n
U U U x x F v v v v = ... ... ) ,..., (
1 1

unde
q
j
q
j
s
i
s
i
j j i i i
x x x x U
o
o o o
. . . . . = ... ...
1
1
1
1
,
,
0 dac ,
1 dac ,

=
=
=
a a
a a
a
x
x
x
a
o
o
o
} ,..., , ,..., {
1 1 q s
j j i i a e ,
1
~
,...,
1
X x x
s
i i
e ,
2
~
,...,
1
X x x
q
j j
e .

Considerm fiecare conjuncie
i
U ca o funcie booleana cu un singur termen minimal
i
U . n
acest caz, conform Teoremei 2.6 obinem
j
z
F
S
1
=

k
i
z
u
j
i
S
1
1
=
. n baza acestei relaii construim Tabelul
2.6.

Tabelul 2.6. Tabelul submulimilor de coloan ale funciei booleene reprezentate n form
normal disjunctiv

0
z

j
z
p
z
1
1
u
0
1
1
z
u
S

j
z
u
S
1
1


p
z
u
S
1
1

1
2
u
0
1
2
z
u
S

j
z
u
S
1
2


p
z
u
S
1
2

. . . . . .
1
k
u
0
1
z
u
k
S
...
j
k
z
u
S
1


p
k
z
u
S
1


0
1
z
F
S =

k
i
z
u
i
S
1
0
1
=

...
j
z
F
S
1
=

k
i
z
u
j
i
S
1
1
=


p
z
F
S
1
=

k
i
z
u
p
i
S
1
1
=


Cunoscnd submulimile de coloan ale fiecrei conjuncii putem afla
j
z
F
S
1
, } 1 2 ,..., 0 { e
t n
j .
Sunt posibile trei cazuri elucidate n urmtoarele trei teoreme :



72
Teorema 2.11. Fie
q
j
q
j
j j i
x x U
o
o
. . = ...
1
1
,
2
~
,...,
1
X x x
q
j j
e .
Atunci

= e - C
= e
=
a a
a a j
i
j j
j j z
U
x q a
x q a
S
o
o
t
: } ,..., 1 { dac ,
: } ,..., 1 { dac }, 1 2 ,..., 0 {
1

Demonstraie. Conform (2.6) avem

= e -
= e
= . . =
a a
a a q
j
q
j
j j
j j
j j i
x q a
x q a
x x U
o
o
o
o
: } ,..., 1 { dac , 0
: } ,..., 1 { dac , 1
...
1
1
(2.22)
n acest caz
i
U nu sunt n funcie de variabilele
t
x x ,...,
1
. Prin urmare, acestei conjuncii i
corespunde blocul maximal compus din mulimea } 1 2 ,..., 0 {
t
. Conform definiiei submulimii
de coloan, submulimea
j
i
z
u
S
1
conine orice element al mulimii } 1 2 ,..., 0 {
t
cnd 1 =
i
U i nu
conine nici un element al acestei mulimi cnd 0 =
i
U . Aadar,

= e - C
= e
=
a a
a a j
i
j j
j j z
U
x q a
x q a
S
o
o
t
: } ,..., 1 { dac ,
: } ,..., 1 { dac }, 1 2 , ,... 0 {
1
.
Teorema este demonstrat.
Valorile lui
a
j
x din starea binara
j
z pot fi determinate din relaia (2.21)

Teorema 2.12. Fie
s
i
s
i
i i i
x x U
o o
. . = ...
1
1
,
1
~
,...,
1
X x x
s
i i
e .
Atunci
s
i i z
u
i i
m S
s j
i
o o

1
1
1
= , } 1 2 ,..., 1 , 0 { e
t n
j (2.23)

Demonstraie.
n acest caz
i
U nu sunt n funcie de variabilele
n
x x ,...,
1 + t
i, prin urmare, submulimile de
coloan sunt egale ntre ele pentru orice
j
z , i sunt formate din elementele blocului
s
i i
i i
m
s
o o

1
1
[115], [116]. Prin urmare
s
i i z
u
i i
m S
s j
i
o o

1
1
1
= , } 1 2 ,..., 1 , 0 { e
t n
j , ce se cerea
de demonstrat.


73
Teorema 2.13. Fie
q
j
q
j
c
i
c
i
j j i i i
x x x x U
o
o o o
. . . . . = ... ...
1
1
1
1
,
unde
} ,..., { ,...,
1
1
t
x x x x
c
i i
e , } ,..., { ,...,
1
1
n j j
x x x x
q
+
e
t
.
Atunci

= e
= e - C
=
a a
c
a a
j
i
j j
c
i i
j j
z
U
x q a
i i
m
x q a
S
o
o o
o
: } ,..., 1 { dac ,
: } ,..., 1 { dac ,
1
1
1

.

Demonstraie. n acest caz avem o combinaie a situaiilor din ultimele doua teoreme. Facem
urmtoarele notaii:
q
j
q
j
j j i
x x U
o
o
. . = ...
1
1
1 ,
,
c
i
c
i
i i i
x x U
o o
. . = ...
1
1
2 ,
.
Atunci
2 , 1 , i i i
U U U . =
Dac C =
j
i
z
U
S
1
1 ,
, atunci C =
j
i
z
U
S
1
. Dac } 1 2 ,..., 1 , 0 {
1
1 ,
=
t j
i
z
U
S , iar
s
i i z
u
i i
m S
s j
i
o o

1
1
1
2 ,
= , atunci
= } 1 2 ,..., 0 {
1
t j
i
z
U
S
s
i i
i i
m
s
o o

1
1
=
s
i i
i i
m
s
o o

1
1
.
Prin urmare
.
: } ,..., 1 { dac ,
: } ,..., 1 { dac ,
1
1
1

= e
= e - C
=
a a
c
a a
j
i
j j
c
i i
j j
z
U
x q a
i i
m
x q a
S
o
o o
o


Teorema este demonstrat.

Teoremele 2.6, 2.7, 2.8, 2.10, 2.11, 2.12, 2.13 permit determinarea submulimilor de
coloan ale funciei booleene reprezentat n form normal disjunctiv.
Exemplul 2.3. De aflat submulimile de coloan ale funciei ) ,..., (
5 1
x x F , dac
) ( ) ( ) ,..., (
4 1 3 2 4 2 1 5 4 5 1
x x x x x x x x x x x F + = .
Soluie. Facem urmtoarele notaii:
4 2 1 5 4 1
x x x x x F = ,
4 1 3 2 2
x x x x F + = ,
5 4 1
x x U = ,
4 2 1 2
x x x U = , ,
3 2 3
x x U = .
4 1 4
x x U =
Atunci ,
2 1 1
U U F = ,
4 3 2
U U F + =
2 1
F F F = .
74
Considerm 3 = t . n aa caz } , , {
~
3 2 1 1
x x x X = , } , {
~
5 4 2
x x X = , ) 7 , 6 , 5 , 4 , 3 , 2 , 1 , 0 ( = Y , } 3 , 2 , 1 , 0 { = Z
(sunt indicai numai indicii). Conform [116], [117] construim partiiile
} 7 , 6 , 5 , 4 ; 3 , 2 , 1 , 0 {
1
1
0
1
1
=
x
t , } 7 , 6 , 3 , 2 ; 45 , 1 , 0 {
1
1
0
1
2
=
x
t , } 7 , 5 , 3 , 1 ; 6 , 4 , 2 , 0 {
1
1
0
1
3
=
x
t .
Aflam produsele partiiilor
} 7 , 6 ; 5 , 4 ; 3 , 2 ; 1 , 0 {
1 , 1
2 , 1
0 , 1
2 , 1
1 , 0
2 , 1
0 , 0
2 , 1 2 , 1
= t ,
} 7 , 5 ; 6 , 4 ; 3 , 1 ; 2 , 0 {
1 , 1
3 , 1
0 , 1
3 , 1
1 , 0
3 , 1
0 , 0
3 , 1 3 , 1
= t ,
} 7 , 3 ; 6 , 2 ; 5 , 1 ; 4 , 0 {
1 , 1
3 , 2
0 , 1
3 , 2
1 , 0
3 , 2
0 , 0
3 , 2 3 , 2
= t ,
} 7 ; 6 ; 5 ; 4 ; 3 ; 2 ; 1 ; 0 {
1 , 1 , 1
3 , 2 , 1
0 , 1 , 1
3 , 2 , 1
1 , 0 , 1
3 , 2 , 1
0 , 0 , 1
3 , 2 , 1
1 , 1 , 0
3 , 2 , 1
0 , 1 , 0
3 , 2 , 1
1 , 0 , 0
3 , 2 , 1
0 , 0 , 0
3 , 2 , 1 3 , 2 , 1
= t .
Aplicam teoremele respective si construim Tabelul 2.7
Pentru
5 4 1
x x U = aplicm Teorema 2.11, deoarece
2 5 4
~
, X x x e . Din conjuncie avem
0
4
= o i 0
5
= o . Condiiile
4 4
o = x i
5 5
o = x se verific numai pentru
0
z . De aceea
} 7 , 6 , 5 , 4 , 3 , 2 , 1 , 0 {
0
1
1
=
z
U
S i C = = =
3
1
1
2
1
1
1
1
1
z
U
Z
U
z
U
S S S .
Pentru
4 2 1 2
x x x U = aplicm Teorema 2.13, deoarece
1 2 1
~
, X x x e , iar
2 4
~
X x e . Din
conjuncie avem . 0 , 1 , 1
4 2 1
= = = o o o n produsul
2 , 1
t alegem blocul cu indicii superiori 1,1.
Acesta este blocul
1 , 1
2 , 1
7 , 6 . Condiia 0
4 4
= = o x este verificat de
0
z si
1
z . Prin urmare
} 7 , 6 {
1
1
2
0
1
2
= =
Z
U
z
U
S S i C = =
3
1
2
2
1
2
Z
U
z
U
S S .

Tabelul 2.7. Tabelul submulimilor de coloan ale funciei ) ,..., (
5 1
x x F din Exemplul 2.3.
5 4
x x
00 01 10 11

0
z
1
z
2
z
3
z
1
1
U 0,1,2,3,4,5,6,7 C C C
1
2
U 6,7 6,7 C C
1
1
F 0,1,2,3,4,5 6,7 C C
1
3
U 1,5 1,5 1,5 1,5
1
4
U 4,5,6,7 4,5,6,7 C C
1
2
F 1,4,5,6,7 1,4,5,6,7 1,5 1,5
1
F
1,4,5,6,7 0,1,2,3,4,5,6,7 0,1,2,3,4,5,6,7 0,1,2,3,4,5,6,7
75
Pentru
3 2 3
x x U = aplicm Teorema 2.12, deoarece
1 3 2
~
, X x x e . Din conjuncie avem
1 , 0
3 2
= = o o . Cutm n produsul
3 , 2
t blocul cu indicii superiori 0,1. Acesta este blocul
1 , 0
3 , 2
5 , 1 .
Prin urmare } 5 , 1 {
1
3
=
j
z
U
S pentru } 3 , 2 , 1 , 0 { e j .
Pentru
4 1 4
x x U = aplicam Teorema 2.13, deoarece
1 1
~
X x e , iar
2 4
~
X x e . Din conjuncie
avem . 0 , 1
4 1
= = o o n partiia
1
t cutm blocul cu indicele superior egal cu 1. Acesta este
blocul
1
1
7 , 6 , 5 , 4 . Condiia 0
4 4
= = o x se ndeplinete pentru
0
z si
1
z . Prin urmare
} 7 , 6 , 5 , 4 {
1
1
4
0
1
4
= =
Z
U
z
U
S S i C = =
3
1
4
2
1
4
Z
U
z
U
S S .
Pentru determinarea submulimilor
j j j
z
F
z
F
z
F
S S S
1 1
2
1
1
, , aplicm Teoremele 2.8, 2.6 i 2.9
respectiv. Rezultatul final se obine n ultima linie a Tabelului 2.7.
n Mediul de Calcul Mathematica este elaborat un programcare asigur un calcul rapid al
submulimilor de coloan ale funciilor de zeci, sute i chiar mii de variabile, reprezentate n
form analitic (Anexa 2).
Nu orice funcie boolean poate fi cu succes utilizat n soluionarea problemelor
criptografice. Funciile respective trebuie s satisfac unor condiii. Pentru examinarea acestor
condiii vom examina o operaie cu aceste funcii, i anume operaia de derivare lor.
2.2.3. Submulimi de coloan ale derivatelor funciilor booleene. Polinomul Zhegalkin.
Seria Taylor.
n conformitate cu [12] avem urmtoarea definiie:
Definiia 2.8. Derivata parial a funciei ) ,..., , , ,..., (
1 1 1 n i i i
x x x x x F
+
dup variabila
i
x se
numete expresia
( ) ( )
n i i n i i
i
x x x x F x x x x F
x
F
,..., , 0 , ,..., ,..., , 1 , ,...,
1 1 1 1 1 1 + +
=
c
c
, (2.24)
Conform [12] unele proprieti ale derivatelor pariale ale funciilor booleene sunt:

i i i i i
x
F
x
F
x
F
F
x
F
F
x
F F
c
c
.
c
c

c
c
.
c
c
. =
c
v c
2 1 1
2
2
1
2 1
) (
(2.25)

i i i i i
x
F
x
F
x
F
F
x
F
F
x
F F
c
c
.
c
c

c
c
.
c
c
. =
c
. c
2 1 1
2
2
1
2 1
) (
(2.26)

76
i i i
x
F
x
F
x
F F
c
c

c
c
=
c
c
2 1 2 1
) (
(2.27)

Calculul derivatelor pariale n conformitate cu formulele (2.24)-(2.27) este suficient de
anevoios. Acest calcul poate fi simplificat esenial dac utilizm n scopul dat reprezentarea
funciei booleene cu ajutorul submulimilor de coloan.
n conformitate cu [118], dac
2
~
X x
i
e , iar
j
z i
k
z sunt stri binare vecine dup
variabila
i
x , atunci
=
|
|
.
|

\
|
c
c
j
i
z
x
F
S
1
k j k
i
z
F
z
F
z
x
F
S S S
1 1 1
A =
|
|
.
|

\
|
c
c
, (2.28)
unde A este diferena simetric a mulimilor.

Derivatele pariale de ordin superior le putem calcula conform relaiei

|
|
.
|

\
|
c c
c
c
c
=
c c
c

1 1 1
... ...
1
s s s
i i
s
i i i
s
x x
F
x x x
F
(2.29)

calculnd consecutiv
s
i i i
s
i i i
x x x
F
x x
F
x
F
c c c
c
c c
c c
....
..., , ,
2 1 2 1 1
2
. Rezultatul derivrii nu depinde de ordinea
variabilelor dup care se face derivarea [12]. Aceste calcule se pot reduce dac aplicm
urmtoarea teorem:
Teorema 2.14. Fie
2
~
,..,.
1
X x x
s
i i
e , } 1 2 ,..., 1 , 0 { e
t n
j .
Atunci.
k
j
s
i i i
s
j
F
j
F
j
F
z
x x x
F
S S S S
1
2
1
1
1 1
2 1
...
...
A A A =
|
|
.
|

\
|
c c c
c
, (2.30)
unde:
1) A este diferena simetric a submulimilor de coloan,
2)
s
k 2 = , } 1 2 ,..., 2 , 1 , 0 { ,...,
1
e
t n
k
j j , } ,..., {
1 k
j j j e ,
3) pentru orice k a z
a
j
, 1 , = exist s stri binare vecine dup variabilele
s
i i
x x ,...,
1
.
77
Demonstraie. Din definiia derivatei funciei rezult c derivata
s
i i i
s
x x x
F
c c c
c
....
2 1
este o funcie
boolean care nu depinde de variabilele
s
i i
x x ,..,.
1
. Acesta nseamn [115], [116] c exist o
submulime de numere naturale } ,..., , {
2 1 k
j j j ,
s
k 2 = , } 1 2 ,..., 2 , 1 , 0 { ,...,
1
e
t n
k
j j astfel
nct
=
|
|
.
|

\
|
c c c
c
1
1
2 1
...
j
s
i i i
s
z
x x x
F
S =
k
j
s
i i i
s
z
x x x
F
S
1
2 1
...
|
|
.
|

\
|
c c c
c
.
Prin urmare, pentru determinarea submulimii
j
s
i i i
s
z
x x x
F
S
1
2 1
...
|
|
.
|

\
|
c c c
c
, unde } ,..., , {
2 1 k
j j j j e i
s
k 2 = ,
este suficient s gsim numai
1
1
2 1
...
j
s
i i i
s
z
x x x
F
S
|
|
.
|

\
|
c c c
c
. S artm cum aflam aceast submulime de
coloan. Strile binare
k
j j
z z ,...,
1
formeaz un cub unitar s-dimensional. n acest cub fiecare stare
binar are s stri vecine. n conformitate cu Teorema 2.10 alctuim
1
2
s
perechi de stri vecine
dup variabila
1
i
x cu condiia
1
j j
z z = (n aceste perechi scriem numai indicii):
:
1
i
x ), , (
2 1
j j ), , (
4 3
j j ), , (
6 5
j j ), , (
8 7
j j ), , (
6 7 k k
j j ), , (
4 5 k k
j j ), , (
2 3 k k
j j ). , (
1 k k
j j


n conformitate cu (2.28) avem:

2
1
1
1
1
1
1
j j j
i
z
F
z
F
z
x
F
S S S A =
|
|
.
|

\
|
c
c
i
4
1
3
1
3
1
1
j j j
i
z
F
z
F
z
x
F
S S S A =
|
|
.
|

\
|
c
c
. (2.31)
Teorema 2.10 ne permite s aflm starea binar vecin cu starea binara
1
j
z dup variabila
2
i
x .
Fie c aceast stare este
3
j
z . Atunci din Teorema 2.10 rezult c
2
j
z i
4
j
z sunt vecine dup
variabila
2
i
x . Prin urmare strile
3 2 1
, ,
j j j
z z z i
4
j
z formeaz un cub unitar bidimensional dup
variabilele
1
i
x i
2
i
x . n conformitate cu relaiile (2.28) i ( 2.29) avem
|
|
.
|

\
|
c
c
c
c
=
c c
c
1 2 2 1
2
i i i i
x
F
x x x
F
i
3
1
1
1
1
1
1
1
2 1
2
j
i
j
i
j
i i
z
x
F
z
x
F
z
x x
F
S S S
|
|
.
|

\
|
c
c
|
|
.
|

\
|
c
c
|
|
.
|

\
|
c c
c
A = . (2.32)

Conform (2.28) se obine ) (
4
1
3
1
2
1
1
1
1
1
2 1
2
j j j j j
i i
z
F
z
F
z
F
z
F
z
x x
F
S S S S S A A A =
|
|
.
|

\
|
c c
c
sau (aplicnd proprietatea
asociativ)

78
4
1
3
1
2
1
1
1
1
1
2 1
2
j j j j j
i i
z
F
z
F
z
F
z
F
z
x x
F
S S S S S A A A =
|
|
.
|

\
|
c c
c
(2.33)

Efectund aceleai calcule pentru perechile ) , (
6 5
j j i ) , (
8 7
j j vom obine

8
1
4
1
3
1
2
1
1
1
1
1
3 2 1
3
...
j j j j j j
i i i
z
F
z
F
z
F
z
F
z
F
z
x x x
F
S S S S S S A A A A A =
|
|
.
|

\
|
c c c
c
(2.34)

Procesul de calcul se termin cu ultimele dou perechi ) , (
2 3 k k
j j i ). , (
1 k k
j j

n rezultat
obinem relaia (2.30).
Teorema este demonstrat.
Formula (2.30) ne permite s calculm derivata de ordinul s fr a calcula derivatele de
ordin inferior. Pentru aceasta este necesar s calculm elementele mulimii } ,..., , , {
3 2 1 k
j j j j J = ,
unde
s
k 2 = , iar j j =
1
. Cunoscnd j putem afla toate celelalte elemente. Acest lucru l putem
face n felul urmtor [25]:
- n conformitate cu Teorema 2.10 aflam
2
j , vecin (n sistemul binar) cu
1
j dup
variabila
s
x , i construim mulimea } , {
2 1
j j ;
- aplicm aceeai teorem i aflam
3
j i
4
j vecine respectiv cu
1
j i
2
j dup variabila
1 s
i
x i construim mulimea } , , , {
4 3 2 1
j j j j ;
- repetm calculele de mai sus i aflm
7 6 5
, , j j j i
8
j , vecine respectiv cu
3 2 1
, , j j j i
4
j dup variabila
2 s
i
x ;
- continum procesul pn la determinarea lui
k
j i construirea mulimii
} ,..., , , {
3 2 1 k
j j j j J = . Pentru determinarea acestei mulimi este elaborat un program n
mediul de calcul Mathematica (Anexa 2).

Teorema 2.15. Fie
1
~
X x
i
e i } ,..., , {
2 1 1 k
z
F
j
S o o o = .
Atunci
} , { } , { } , {
2 2 1 1 1 k k
z
x
F
j
i
S | o | o | o A A A =
|
|
.
|

\
|
c
c
, (2.35)
unde
k
| | | ,..., ,
2 1
sunt vecine respectiv cu
k
o o o ,..., ,
2 1
dup variabila
i
x .
79
Demonstraie. Fie
t
o o o o o o o ... ...
1 1 2 1 1 +
=
i i i
( } 1 , 0 { , , 1 e =
i
i o t ). Atunci starea vecin cu
1
o
dup variabila
i
x este starea =
1
|
t
o o o o o o ... ...
1 1 2 1 + i i i
. Fie
j
z
F
S
0
1
e | , unde
n
j o o
t
...
1 +
= . n aa
caz 1 ) , (
1
= j F o , iar ( ) 0 ,
1
= j F | . n conformitate cu definiia derivatei pariale a funciei
booleene obinem
j
i
z
x
F
S
1
1 1
,
|
|
.
|

\
|
c
c
e | o . Admitem c
j
z
F
S
1
1
e | , atunci ( ) 1 ,
1
= j F | i, prin urmare,
j
i
z
x
F
S
1
1 1
,
|
|
.
|

\
|
c
c
e | o . Aadar
j
i
z
x
F
S
1 1 1
,
|
|
.
|

\
|
c
c
e | o , dac
j
z
F
S
1 1
e | (2.36)

j
i
z
x
F
S
1 1 1
,
|
|
.
|

\
|
c
c
e | o , dac
j
z
F
S
1 1
e | (2.37)
Aceste condiii se obin i pentru alte elemente ale submulimii de coloan } ,..., , {
2 1 1 k
z
F
j
S o o o = .
Presupunem c am aflat toate perechile k c
c c
, 1 }, , { = | o (efectum acest lucru aplicnd
Teorema 2.10 ). Sunt posibile urmtoarele cazuri:
a) toate perechile sunt diferite.
n acest caz avem

} , { } , { } , {
2 2 1 1 1 k k
z
x
F
j
i
S | o | o | o =
|
|
.
|

\
|
c
c
(2.38)

Deoarece toate elementele sunt diferite atunci reuniunea poate fi substituita cu diferena
simetric A. n rezultat se obine (2.35).
b) Exista perechi egale.
Aceasta se ntmpl atunci cnd pentru
c
o i
c
| se ndeplinete
j
z
F
c
S
1
e | . n aa caz din
reuniunea tuturor perechilor trebuie s scdem reuniunea tuturor perechilor egale. innd cont c
C = A } , { } , {
c c c c
o | | o , rezultatul scderii se poate obine din (2.38) prin nlocuirea reuniunii
cu diferena simetric A adic vom obine (2.35) Aadar, n ambele cazuri submulimea de
coloan a derivatei o aflam n baza relaiei (2.35)
Teorema estedemonstrat.

80
Consecin. Daca } 1 2 ,..., 2 , 1 , 0 {
1
=
t j
z
F
S sau
j
z
F
S
1
este o mulime vid, atunci
} ,..., 1 { ,
1
t e C =
|
|
.
|

\
|
c
c
i S
j
i
z
x
F
.

n baza acestor teoreme sunt elaborate programe de calcul ale derivatelor pentru funcii
reprezentate prin submulimi de coloan sau n forma analitic (forma normala disjunctiva).
Exemplul 2.4. De aflat derivatele pariale
3
x
F
c
c
,
6
x
F
c
c
i
6 5 4
3
x x x
F
c c c
c
ale funciei
) , , , , , (
6 5 4 3 2 1
x x x x x x F reprezentata prin tabelul submulimilor de coloan Tabelul 2.8 (partea
superioar).
Soluie. n acest caz } , , {
~
3 2 1 1
x x x X = , } , , {
~
6 5 4 2
x x x X = . S calculm, de exemplu,
3
1
3
Z
x
F
S
|
|
.
|

\
|
c
c
.
Deoarece
1 3
~
X x e , aplicm Teorema 2.15. Conform relaiei (2.35) gsim perechile de stri
vecine dup variabila
3
x , aplicnd Teorema 2.10. Aceste perechi sunt: } 7 , 6 { }, 4 , 5 { i } 6 , 7 { . n
acest caz =
|
|
.
|

\
|
c
c
3
1
3
Z
x
F
S } 5 , 4 { } 6 , 7 { } 7 , 6 { } 4 , 5 { = A A . n mod analog calculm celelalte submulimi de
coloan.
Tabelul 2.8. Tabelul submulimilor de coloan din Exemplul 2.4
6 5 4
x x x
0
z
1
z
2
z
3
z
4
z
5
z
6
z
7
z
000 001 010 011 100 101 110 111
1
F

0,4,5 0,4,5 C 5,6,7 1 0,3,5,7 1, 4,7 1,3,5,6,7
1
3
|
|
.
|

\
|
c
c
x
F
0,1 0,1 C 4,5 0,1 0,1,2,3,4,5,6,7 4,5,6,7 0,1,2,3,4,5
1
6
|
|
.
|

\
|
c
c
x
F
C C
5,6,7 5,6,7 0,1,3,5,7 0,1,3,5,7 3,4,5,6 3,4,5,6
1
6 5 4
3
|
|
.
|

\
|
c c c
c
x x x
F
0,1,4,5 0,1,4,5 0,1,4,5 0,1,4,5 0,1,4,5 0,1,4,5 0,1,4,5 0,1,4,5

81
Trecem la calculul derivatei
6
x
F
c
c
. Vom calcula
0
1
6
Z
x
F
S
|
|
.
|

\
|
c
c
. Deoarece
2 6
~
X x e , iar
0
z este vecin cu
1
z dup variabila
6
x , atunci, conform (2.28 ) obinem
0
1
6
Z
x
F
S
|
|
.
|

\
|
c
c
= C =
|
|
.
|

\
|
c
c
1
1
6
Z
x
F
S . n mod analog
calculm celelalte submulimi de coloan.
Trecem la calculul derivatei
6 5 4
3
x x x
F
c c c
c
. n acest caz
2 6 5 4
~
, , X x x x e , , 3 = s , 8 2
3
=
} , , , , , , , {
7 6 5 4 3 2 1 0
j j j j j j j j J = i aplicnd (2.30) obinem pentru orice 7 . 0 , = i z
i
:
=
|
|
.
|

\
|
c c c
c
i
Z
x x x
F
S
1
6 5 4
3
{0,4,5}{0,4,5}{C}{5,6,7}{1}A{0,3,5,7}{1,4,7}{1,3,5,6,7}={0,1,4,5}.
Toate submulimile calculate le includem n Tabelul 2.8 (partea inferioar). Avnd
completat acest tabel i aplicnd metoda blocurilor maximale [115], [116] putem afla simplu
formele minimale normale disjunctive ale derivatelor. De exemplu, pentru ultima derivata avem
un singur bloc maximal
0
2
5 , 4 , 1 , 0 , care genereaz termenul minimal
2
x . Prin urmare
2
6 5 4
3
x
x x x
F
=
c c c
c
. n cazul n care funcia este definit n form analitic, o transformm n form
de submulimi de coloan i dup aceasta aflm derivatele pariale necesare.
Sa analizm unele aplicaii ale acestor derivate pariale.
Un rol decisiv n elaborarea sistemelor de criptare i revine procedurii de generare a
cheilor de criptare-decriptare a informaiei. La generarea acestor chei putem aplica coeficienii
polinomului Zhegalkin [15] a unei funcii booleene ) ,..., , (
2 1 n
x x x F , luate n mod arbitrar . Fie
= ... ... ) ,..., , (
2 1 2 , 1 2 2 1 1 0 2 1
x x C x C x C x C C x x x F
n n n

n n n n n n
x x x x C x x x C x x C ... ...
3 2 1 ,..., 3 , 2 , 1 3 2 1 3 , 2 , 1 1 , 1


, (2.39)
polinomul Zhegalkin pentru funcia ) ,..., , (
2 1 n
x x x F . n lucrrile [12] , [119] s-a demonstrat c

k
k
i i i
k
i i i
x x x
F
C
c c c
c
=
...
) 0 (
2 1
2 1
,..., ,
, } ,..., 1 { ,...,
1
n i i
k
e . (2.40)

Aadar, coeficienii pot fi calculai cu ajutorul derivatelor pariale ale funciei date. Fie funcia
este definit prin submulimi de coloan. n baza derivatelor pariale construim Tabelul 2.9


82
Tabelul 2.9. Tabelul submulimilor de colan ale derivatelor pariale ale funciei booleene F
n
x x ...
1 + t


0
z
j
z

p
z
1
F
0
1
z
F
S
j
z
F
S
1

p
z
F
S
1

1
1
|
|
.
|

\
|
c
c
x
F

0
1
1
z
x
F
S
|
|
.
|

\
|
c
c


j
z
x
F
S
1
1
|
|
.
|

\
|
c
c


p
z
x
F
S
1
1
|
|
.
|

\
|
c
c

. . . . . .
1
|
|
.
|

\
|
c
c
n
x
F

0
1
z
x
F
n
S
|
|
.
|

\
|
c
c


j
n
z
x
F
S
1
|
|
.
|

\
|
c
c


p
n
z
x
F
S
1
|
|
.
|

\
|
c
c

1
2 1
2
|
|
.
|

\
|
c c
c
x x
F

0
1
2 1
2
z
x x
F
S
|
|
.
|

\
|
c c
c


j
z
x x
F
S
1
2 1
2
|
|
.
|

\
|
c c
c


p
z
x x
F
S
1
2 1
2
|
|
.
|

\
|
c c
c

. . . . . .
1
2 1
...
|
|
.
|

\
|
c c c
c
n
n
x x x
F

0
1
2 1
...
z
x x x
F
n
n
S
|
|
.
|

\
|
c c c
c


j
n
n
z
x x x
F
S
1
2 1
...
|
|
.
|

\
|
c c c
c


p
n
n
z
x x x
F
S
1
2 1
...
|
|
.
|

\
|
c c c
c



Coeficienii aparin mulimii {0,1}. Din (2.40) i Tabelul 2.9 rezult c coeficientul
k
i i i
C
,..., ,
2 1

este egal cu 1 n cazul n care elementul 0 aparine submulimii de coloan a derivatei pariale
determinate de indicii coeficientului, i este egal cu zero n catul n care 0 nu aparine
submulimii menionate. Cu alte cuvinte, este adevrat

Teorema 2.16. n polinomul Zhegalkin pentru funcia booleana ) ,..., , ,... (
1 1 n
x x x x F
+ t t
coeficienii
satisfac condiiile
) 0 ,..., 0 (
0
F C = ,
} ,..., 1 { ,..., ,
0 dac , 1
0 dac , 0
1
...
...
,..., ,
0
1
2 1
0
1
2 1
2 1
n i i
S
S
C
k z
x x x
F
z
x x x
F
i i i
k
i i i
k
k i i i
k
k
e

e
e
=
|
|
.
|

\
|
c c c
c
|
|
.
|

\
|
c c c
c
(2.41)

Demonstraie. Din (2.39) rezult c ) 0 ..., , 0 (
0
F C = pentru 0 ...
2 1
= = = =
n
x x x . n
conformitate cu (2.40) i cu definiia submulimii de coloan avem:
1 1
...
) 0 ... 0 (
1
...
) , 0 (
0
...
0
...
2 1
2 1 2 1
0
1
2 1
= =
c c c
c
=
c c c
c
e
|
|
.
|

\
|
c c c
c
k
k k
k
i i i
k
i i i
i i i
k
i i i
k
Z
x x x
F
C
x x x
F
x x x
z F
S ,

83
0 0
...
) 0 ... 0 (
0
...
) , 0 (
0
...
0
...
2 1
2 1 2 1
0
1
2 1
= =
c c c
c
=
c c c
c
e
|
|
.
|

\
|
c c c
c
k
k k
k
i i i
k
i i i
i i i
k
i i i
k
Z
x x x
F
C
x x x
F
x x x
z F
S .
Teorema este demonstrat.

Polinomul (2.39) cu coeficienii din (2.40) se numete seria Taylor n vecintatea punctului
00...0 pentru funcia ) ,..., , ,... (
1 1 n
x x x x F
+ t t
[12]. n vecintatea unui punct arbitrar
} 1 , 0 { , ...
2 1
e =
i n
o o o o o aceast serie are forma
) ( ... ) (
...
) (
... ) (
) (
) ( ) ,..., (
1 1
1
1 1
1
1 n n
n
n
n
x x
x x
x
x
F
F x x F o o
o
o
o
o . . .
c c
c
.
c
c
=
(2.42)
Pentru construirea polinomului (2.39) cu coeficienii (2.40) este suficient s calculm
numai derivatele pariale din coloana
0
z . Aceste derivate le putem calcula, aplicnd Teoremele
2.14 i 2.15, numai n baza submulimilor de coloan din linia
1
F . Aceste derivate pariale se
aplic i la construirea seriei Taylor (2.39) n vecintatea punctelor ) , (
0
z y
i
, } 1 2 ,..., 2 , 1 { e
t
i .

Exemplul 2.5. De dezvoltat n seria Taylor funcia boolean
.
5 4 3 5 3 2 4 2 1 5 3 1 4 3 1 3 2 1
x x x x x x x x x x x x x x x x x x F + + + + + =

Soluie. Considerm 3 = t . Avem o funcie de 5 variabile. Mulimile Y X X ,
~
,
~
2 1
i Z precum i
partiiile respective sunt construite n Exemplul 2.3.
Ca i n exemplul indicat calculm submulimile de coloan
j
Z
F
S
1
i construim tabelul acestor
submulimi (partea superioar a Tabelului 2.10). Aa cum este artat n Exemplul 2.4 aflm
submulimile de coloan ale derivatelor pariale i construim Tabelul 2.10. n prima coloan sunt
indicai indicii variabilelor dup care se calculeaz derivatele pariale. Pentru 00000 = o avem
000
0
= y , iar 00
0
= z . Prin urmare, seria se obine conform coloanei
0
z . Elementul 0 aparine
submulimilor din liniile
4; 5; 1,3; 1,4; 3,4; 4,5; 1,2,4; 1,3,4; 1,3,5; 2,3,5; 3,4,5; 1,2,3,4; 1,2,3,4,5.
Seria Taylor respectiv are forma
=
5 4 3 5 3 2 5 3 1 4 3 1 4 2 1 5 4 4 3 4 1 3 1 5 4 5 1
) ,..., ( x x x x x x x x x x x x x x x x x x x x x x x x x x x F
5 4 3 2 1 4 3 2 1
x x x x x x x x x .



84
Tabelul 2.10. Tabelul pentru soluionarea Exemplului 2.5
5 4
x x
00 01 10 11
0
z
1
z
2
z
3
z
1
F
5,7 0,1,2,4,5,6 0,2,5,6,7 0,1,2,5,6,7
1 1,3,5,7 C 0,1,3,4,5,7 0,3,4,7
2 C 1,3,5,7 4,6 1,3,4,6
3 4,5,6,7 2,3,6,7 0,1,2,3,4,5 2,3,4,5
4 0,2,6 4,7 0,2,6 4,7
5 0,1,2,4,6,7 0,1,2,4,6,7 1 1
1,2 C C 0,2,4,6 0,1,2,3,4,5,6,7
1,3 0,1,2,3,4,5,6,7 C 2,3,6,7 0,1,2,3,4,5,6,7
1,4 0,4 0,3,4,7 0,4 0,3,4,7
1,5 1,3,5,7 1,3,5,7 1,5 1,5
2,3 C 0,1,2,3,4,5,6,7 4,5,6,7 0,1,2,3,4,5,6,7
2,4 4,6 4,5,6,7 4,6 4,5,6,7
2,5 1,3,5,7 1,3,5,7 1,3 1,3
3,4 0,1,2,3,6,7 4,5,6,7 0,1,2,3,6,7 4,5,6,7
3,5 2,3,4,5 2,3,4,5 0,1 0,1
4,5 0,2,4,6,7 0,2,4,6,7 0,2,4,6,7 0,2,4,6,7
1,2,3 C C 0,1,2,3,4,5,6,7 C
1,2,4 0,2,4,6 0,1,2,3,4,5,6,7 0,2,4,6 0,1,2,3,4,5,6,7
1,2,5 C C 1,3,5,7 1,3,5,7
1,3,4 0,1,4,5 0,1,2,3,4,5,6,7 0,1,4,5 0,1,2,3,4,5,6,7
1,3,5 0,1,2,3,4,5,6,7 0,1,2,3,4,5,6,7 0,1,4,5 0,1,4,5
1,4,5 3,7 3,7 3,7 3,7
2,3,4 4,5,6,7 C 4,5,6,7 C
2,3,5 0,1,2,3,4,5,6,7 0,1,2,3,4,5,6,7 0,1,2,3 0,1,2,3
2,4,5 5,7 5,7 5,7 5,7
3,4,5 0,1,2,3,4,5 0,1,2,3,4,5 0,1,2,3,4,5 0,1,2,3,4,5
1,2,3,4 0,1,2,3,4,5,6,7 C 0,1,2,3,4,5,6,7 C
1,2,3,5 C C 0,1,2,3,4,5,6,7 0,1,2,3,4,5,6,7
1,2,4,5 1,3,5,7 1,3,5,7 1,3,5,7 1,3,5,7
1,3,4,5 2,3,6,7 2,3,6,7 2,3,6,7 2,3,6,7
2,3,4,5 4,5,6,7 4,5,6,7 4,5,6,7 4,5,6,7
1,2,3,4,5 0,1,2,3,4,5,6,7 0,1,2,3,4,5,6,7 0,1,2,3,4,5,6,7 0,1,2,3,4,5,6,7

Fie c trebuie s aflm reprezentarea funciei n seria Taylor n vecintatea punctului
01110. = o Din reprezentarea funciei prin submulimi de coloan rezult c 011
3
= y , iar
10
2
= z . Aceasta nseamn c pentru aflarea coeficienilor din seria Taylor trebuie s folosim
coloana
2
z i s aflm n care dintre submulimile de coloan se afl elementul 3. Acest lucru se
verifica pentru submulimile din liniile cu indicii
85
1; 3; 1,3; 2,5; 3,4; 1,2,3; 1,2,5; 1,4,5; 2,3,5; 3,4,5; 1,2,3,4; 1,2,3,5; 1,2,4,5; 1,3,4,5; 1,2,3,4,5.
n conformitate cu (2.42) obinem:
= ) 1 )( 1 )( 0 )( 1 ( ) 1 )( 0 ( ) 1 ( ) 0 ( ) , , , , (
4 3 5 2 3 1 3 1 5 4 3 2 1
x x x x x x x x x x x x x F
) 0 )( 1 )( 0 ( ) 0 )( 1 )( 0 ( ) 1 )( 1 )( 0 (
5 4 1 5 2 1 3 2 1
x x x x x x x x x
) 1 )( 1 )( 1 )( 0 ( ) 0 )( 1 )( 1 ( ) 0 )( 1 )( 1 (
4 3 2 1 5 4 3 5 3 2
x x x x x x x x x x
) 0 )( 1 )( 1 )( 0 ( ) 0 )( 1 )( 1 )( 0 (
5 4 2 1 5 3 2 1
x x x x x x x x
) 0 )( 1 )( 1 )( 1 )( 0 ( ) 0 )( 1 )( 1 )( 0 (
5 4 3 2 1 5 4 3 1
x x x x x x x x x =
=
5 4 3 5 3 2 5 4 1 5 2 1 3 2 1 4 3 5 2 3 1 3 1
x x x x x x x x x x x x x x x x x x x x x x x
.
5 4 3 2 1 5 4 3 1 5 4 2 1 5 3 2 1 4 3 2 1
x x x x x x x x x x x x x x x x x x x x x

Dac pentru orice 2 > k se are loc 0
,..., ,
2 1
=
k
i i i
C , atunci funcia se numete liniar. n criptografie
se accepta funcii ct mai diferite de funciile liniare (funcii neliniare [73]). n baza Teoremelor
2.6, 2.7, 2.8, 2.10, 2.11, 2.12, 2.13 putem construi dup dorin diverse funcii neliniare. n
Anexa 2 este prezentat o program n mediul de calcul Mathematica, care construiete
momentan astfel de funcii. Funcia boolean reprezentat n Tabelul 2.11 conine n polinomul
Zhegalkin toate conjunciile posibile.

Tabelul 2.11. Exemplu defuncie boolean cu toate conjunciile posibile n polinomul Zhegalkin
5 4
x x
00 01 10 11
0
z
1
z
2
z
3
z
1
F
3,5,6 1,2,4,7 1,2,4,7 0,3,5,6

2.3. Reprezentarea funciilor q-valente prin submulimi de coloan
S analizm funcia ) ,..., (
1 n
x x F care are n calitate de caracteristic faptul c att
variabilele ei ct i nsi funcia dat admit valori din mulimea } 1 ,..., 1 , 0 { = O q . O astfel de
funcie se numete funcie din logica q-valent [130]. Ea poate fi definita ca o aplicaie
O
n
X X X ...
2 1
pentru
n
X X X = = = ...
2 1
= } 1 ,..., , 1 , 0 { q i reprezentat cu ajutorul
Tabelului 2.12

86
Tabelul 2.12. Reprezentareafunciei din logica q-valent.

n
q
n
q q q
F x x x
c
c
c
t
1 1 1
1 0 0
0 0 0
2
1
1

.





unde
n
u
q u q , 1 }, 1 ,... 1 , 0 { = e c . Funcia poate fi privita i ca o relaie n-ara
n
X
R n matricea
creia elementele sunt din mulimea . O Ca i pentru funciile booleene obinuite construim
mulimile } ,.., , {
1
1 0

=
t
q
y y y Y i } ,..., , {
1
1 0

=
t n
q
z z z Z cu ajutorul crora definim submulimea de
coloan:
} ) , ( , : { c
c
= e =
j i i i
Z
F
z y F Y y y S
j
, } 1 ,..., 1 , 0 { e q c (2.43)
Funcia o putem reprezenta cu ajutorul tabelului submulimilor de coloana (Tabelul 2.13).
Menionm c Y S
q
Z
F
j
=

1
0 c
c
pentru orice j. Multe dintre teoremele anterioare valabile pentru
funciile booleene pot fi generalizate i pentru funcii q-valente. n Capitolul 3 este elaborat un
sistem de criptare care funcioneaz n baza acestor funcii.

Tabelul 2.13. Tabelului submulimilor de coloan ale unei funcii q-valente


0
z
... j
z
... p
z
0
F
0
0
Z
F
S
...
Zj
F
S
0

...
p
Z
F
S
0

. . ... . ... .
c
F
0
Z
F
S
c

...
j
Z
F
S
c
...
p
Z
F
S
c

. . ... . .
1 q
F
0
1
Z
F
q
S


...
j
q
Z
F
S
1
...
Zp
F
q
S
1





87
Exemplul 2.6. De reprezentat prin tabelul submulimilor de coloan funcia ) , , (
3 2 1
x x x F din
logica 3-valent, definit prin intermediul Tabelului 2.14

Tabelul 2.14. Funcia 3-valent ) , , (
3 2 1
x x x F din Exemplul 2.3
1
x 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2
2
x 0 0 0 1 1 1 2 2 2 0 0 0 1 1 1 2 2 2 0 0 0 1 1 1 2 2 2
3
x
0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2
) , , (
3 2 1
x x x F
1 2 2 1 0 0 1 2 1 0 0 0 1 1 2 2 2 0 0 1 2 0 1 1 0 2 1

Soluie. n acest caz } 2 , 1 , 0 { = O . Considerm 2 = t . Atunci } , {
~
2
1 1
x x X = , iar } {
~
3 2
x X = .
Mulimile de stri ternare sunt
} , , , , , , , , {
8 7 6 5 4 3 2 1 0
y y y y y y y y y Y = ={00, 01, 02, 10, 11, 12, 20, 21, 22}
i
Z= } , , {
2 1 0
z z z ={0,1,2,}.

Tabelul 2.15. Reprezentarea matricei 3-dimensionale referitoare la Exemplu 2.6

i
z
i
y
1
x
2
x 0 1 2
0
1
2
3
4
5
6
7
8
0
0
0
1
1
1
2
2
2
0
1
2
0
1
2
0
1
2
1
1
1
0
1
2
0
0
0
2
0
2
0
1
2
1
1
2
2
0
1
0
2
0
2
1
1

n conformitate cu Tabelul 2.14 construim matricea 3-dimensional reprezentat n
Tabelul 2.15. n baza acestei matrice i n conformitate cu definiia submulimii de coloan
construim tabelul submulimilor de coloan (Tabelul 2.16). n coloanele pentru respective ale lui
i
y i
j
z din Tabelul 2.16 sunt indicai numai indicii elementelor.

88
Tabelul 2.16. Tabelul submulimilor de coloan ale funcii ) , , (
3 2 1
x x x F din Exemplul 2.6

0
z
1
z
2
z
0
F
3,6,7,8 1,3 1,3,5
1
F
0,1,2,4 4,6,7 2,7,8
2
F
5 0,2,5,8 0,4,6

2.4. Generarea numerelor prime.
n scopuri criptogarfice se utlizeaz numerele prime mari care sunt gsite cu ajutorul
testelor probabilistice de primalitate.
Unul dintre astfel de teste este testul Fermat [64], [68], [85] care are la baz mica teorem
Femat: pentru n >1 se alege a >1 i se calculeaz
1 n
a mod n, dac rezultatul este diferit de 1,
atunci numrul n este compus, n caz contrar n este considerat numr pseudoprim. Acest test ns
poate considera un numr compus ca fiind prim (n special numerele Carmichael, care sunt
compuse iar testul Fermat le consider prime indiferent de numrul de iteraii). Probabilitatea
erorii n testul Fermat este de ,
t
c unde t reprezint numrul de iteraii ale testului,
n
n) (
c s ,
unde (n) este funcia Euler. Se recomand de efectuat circa 50 de iteraii n realizarea acestui
test. n prezent testul Fermat n forma sa original nu se mai folosete nicieri, el nu are un
control al erorii i nu se folosete n practic deoarece exist alte teste mai bune, dar poate fi
utilizat n fazele incipiente la verificarea primalitii unor numere foarte mari.
Testul SolovayStrassen [68], [85], [100] este un alt test de primalitate i se bazeaz pe
diferena dintre simbolurile Jacoby i Legendre, aceste simboluri pentru numerele prime n fiind
identice. Probabilitatea erorii n testul Fermat este de ,
t
c unde t reprezint numrul de iteraii ale
testului, .
2
1
2
) (
< s
n
n
c n scopul utilizrii acestui test n criptografie este necesar de a lua o
valoare suficient de mare a lui t, aproape de 100. n acest caz ansa de a obine un numr compus
este att de mic nct putem aplica aceste numere n scopuri criptografice. De menionat c
acest algoritm numerele Carmichael le determin ca compuse.
Un test mai performant este testul Miller-Rabin [68], [75], [85], [87], [88] cel mai utilizat
test de generare a numerelor pseudoprime pentru algoritmii de criptare. De obicei pentru
verificarea unui numr prim testul Miller-Rabin este necesar o singur iteraie, dar numrul
recomandabil de iteraii este 5. Probabilitatea erorii n testul Miller-Rabin este considerabil mai
89
mic dect n primele dou teste i la o iteraie ea este .
4
1
4
) (
< s
n
n
c Adic limita de sus a erorii
la singur iteraie este de 2 ori mai mic dect la testul SolovayStrassen i de 4 ori mai mic
dect la testul Fermat. Astfel testul Miller-Rabin este mai eficient dect celelalte astfel de teste.
Cu toate c testul Miller-Rabin este considerat suficient de bun pentru generarea
numerelor prime aplicate n criptografie, exist o foarte mic probabilitate ca acest test s
genereze un numr compus. Testele deterministe ns genereaz n mod obligatoriu numere
prime.
Revenind la Teorema 2.5, trebuie de menionat c condiiile din aceast teorem sunt
doar suficiente. Am putea modifica unele dintre aceste condiii pentru a transforma matricea
(2.4). Fie c condiia (2.13) nu se ndeplinete, dar are loc condiia n k > [33]. Consideram un
vector )) ( ),..., ( , ,..., , (
1 1 , 3 , 2 2 , 1
*
c n
s R s R R R R R =
,
unde
j i
X X j i
R R j i
, ,
, = i ) (
i
s R este o matrice care
se obine din matricea (2.12) prin substituia fiecrui element cu } 1 ,..., 1 , 0 { e m s
i
, adic
(
(
(

=
i i
i i
i
s s
s s
s R

) ( . (2.44)
Teorema 2.17. Fie
) (R A
,
u = i ( )
* *
R A
,
u =
iar
n
j j
a
...
1
,
*
...
1 n
j j
a dou elemente arbitrare ale matricelor respective. Atunci
s m a a
c
j j j j
n n
+ =
...
*
...
1 1
, unde (2.45)
c
c c
s m s m s s + + + =

...
2
2
1
1
(2.46)
Demonstraie. Elementele matricelor A i
*
A sunt numere ntregi nenegative reprezentate n
baza m. Fie c
n j j
n
a o o o ...
2 1 ...
1
= , unde }. 1 ,..., 2 , 1 , 0 { e m
i
o Atunci
n
n n
j j
m m a
n
o o o + + + =

...
2
2
1
1 ...
1

i
= + + + + + + + =
+ +
c
c c c
n
c n c n
j j
s m s m s m m m a
n
... ...
2
2
1
1
2
2
1
1
*
...
1
o o o
s m a s m s m s m m m
c
j j c
c c
n
n n c
n
+ = + + + + + + + =

...
2
2
1
1
2
2
1
1
1
... ) ... ( o o o ,
unde
c
c c
s m s m s s + + + =

...
2
2
1
1
.
Teorema este demonstrat.

Consecina 1. Coloanele i liniile matricei
*
A sunt progresii aritmetice cu raiile respectiv egale
cu
c
m i .
1 + c
m
90
ntr-adevr, conform structurii matricei date, pentru coloane avem
( )
c
j j j j j j
c c
j j j
c
j j j
m a a m s m a s m a
n n n n
= = + +
+ +
) ( ) ( ) (
... ... 1 ... ... ) 1 (
2 1 2 1 2 1 2 1
.
Pentru linii se obine:
( ) ( ) ( )
. ) ( ) ( ) (
1
... 1 ... ... 1 ...
*
...
*
1 ...
2 1 2 1 2 1 2 1 2 2 1
+
+ + +
= = = + + =
c c
j j j j j j
c c
j j j
c
j j j j j j j j j
m m m a a m s m a s m a a a
n n n n n n


Consecina 2. Dac
i
K s e din matricea A n condiiile (2.9) (2.12) atunci toate elementele
*
...
1 n
j j
a din matricea
*
A aparin liniei
i
K a matricei (n+c)-dimensionale n aceleai condiii (2.9)
(2.12) i n care n este substitut prin n +c.
ntr-adevr, se tie [16] c dac
j i
K K e e | o , , atunci
m j i
K
mod ) (
) (
+
e + | o iar
m j i
K
mod ) (
e | o . Fie s un element al matricei A i
i
K s e . Deoarece
0
K me , atunci
i
c
j j
K s m a
n
e + ) (
...
1
pentru orice
n
J j
a
...
1
. Prin urmare
i j j
K a
n
e
*
...
1
.
Din aceast consecin rezult c dac s aparine unei linii care nu conine numere prime
atunci matricea
*
A este compus numai din numere compuse. Matricea
*
A poate s conin
numere prime numai n cazul n care
i
K s e i (i,m)=1. Constatm de asemenea c dac
i
K s e
atunci
i
c
j j
K s m a
n
e + ) (
...
1
pentru orice c. Prin urmare, pentru obinerea intervalelor de numere
cu anumite proprieti de la linia
i
K putem admite pentru c valori arbitrare. Modificnd valorile
parametrilor c si s putem modifica i elementele matricelor .
*
A S revenim la matricea (2.5)
pentru care m=6 iar n=3. Aceast matrice conine 47 de numere prime din cele 216. Dac
considerm s=13 i k =2 atunci matricea
*
A conine 85 de numere prime din acelai numr total
de 216. n mediul de calcul Mathematica a fost elaborat un program care construiete matricele
A i
*
A , determin numerele prime n aceste matrice i numrul de cifre n fiecare dinte aceste
numere. n Anexa 2 este prezentat acest program cu un exemplu pentru cazul m =6, n =2 i
c =507. Programul a lucrat 0,2 sec. i a depistat n matricea
*
A trei numere prime: unul de 2
cifre i altele dou a cte 392 de cifre.

Teorema 2.18. Fie
), ,..., , (
1 , 3 , 2 2 , 1 n
R R R R =
,
), ..., , , ), ( ),..., ( (
1 , 3 , 2 2 , 1 1
*
n c
R R R s R s R R =
,
) (R A
,
u = i ). (
* *
R A
,
u =
Atunci
n
j j j J
m s a a
n n
+ =
...
*
...
1 1
, (2.47)
unde
. ...
2
2
1
1 c
c c
s m s m s s + + + =


91
Demonstraie. Fie
n j j
n
a o o o ...
2 1 ...
1
= , unde } 1 ,..., 2 , 1 , 0 { e m
i
o . Atunci, n conformitate cu
transformarea u avem:
... ) ... ( ... ... ... ...
1
1
1
1
1
1
1
1 2 1 2 1
*
...
1
+ + + + = + + + + + = =
+ n
c
c n
n
n n
c
n c
n c j j
m s m s m m m s m s s s s a
n
o o o o o o
,
...
1
n
j j n
m s a
n
+ = +o ce implic . ...
2
2
1
1 c
c c
s m s m s s + + + =


Consecina 1. Coloanele i liniile matricei
*
A sunt progresii aritmetice cu raiile 1 i m respectiv.
Consecina 2. Dac
i j j
K a
n
e
...
1
atunci
i j j
K a
n
e
*
...
1
.
ntr-adevr, dac
0
K me atunci
0
K m s
n
e . Deoarece
i j j
K a
n
e
...
1
obinem
i
n
j j
K m s a
n
e +
...
1
, adic
i j j
K a
n
e
*
...
1
.

Una dintre problemele de ordin superior din secolul informaticii este problema proteciei
informaiei, lupta contra sprgtorilor sistemelor de criptare. Un rol important n soluionarea
acestei probleme o au numerele prime mari care stau la baza elaborrii unor sisteme de criptare
[64]. Problema descifrrii mesajelor devine foarte complicat n cazul n care numerele indicate
sunt mari (conin sute sau mii de cifre zecimale), deoarece ea este relaionat cu problema
factorizrii numerelor mari. Cu cat mai mari sunt aceste numere cu att mai dificil devine
problema spargerii cifrului bazat pe utilizarea numerelor prime. Majoritatea metodelor de
generare a numerelor mari prime sunt probabilistice [1] i, din aceast cauz, nu totdeauna pot
face fa cerinelor utilizatorilor. Aadar, apare problema elaborrii metodelor non-probabilistice
(metode deterministe) de generare a numerelor mari prime de o form general.
Dup cum s-a menionat mai sus, dac (r,m)=1 (r i m sunt reciproc prime) atunci linia K
r

conine un numr infinit de numere prime. Aceste numere au forma
N=bm+r, b=0, 1, 2,..., m
n
1. (2.48)
Elementele liniei K
r
formeaz o progresie aritmetic cu primul termen egal cu r i cu raia
m. Linia K
1
conine un numr infinit de numere prime pentru orice valoare a lui m. Structura
matricei este invariant fa de valorile lui m i n [20]. Pe linia K
1
putem obine numere prime
orict de mari. Pentru r =1 din (2.48) obinem
N1=bm . (2.49)
Conform criteriului lui Lucas-Lehmer [64], [75] numrul N este prim daca:
) (mod 1 :
1
N a a
N
-

i ), (mod 1 :
1
N a c
c
N
=

(2.50)
undec este divizor prim al lui N1.
Din (2.49) si (2.50) rezult c N1 trebuie s fie factorizat. Fie
s
s
p p p m

= ...
2 1
2 1
,
k
k
q q q b
| | |
= ...
2 1
2 1
(2.51)
92
Atunci
N1=
s k
s k
p p p q q q
| | |
... ...
2 1 2 1
2 1 2 1
(2.52)
n mediul de calcul Mathematica au fost elaborat programe, care avnd valorile date ale
lui
i
i
p

(i=1, , s) determin pentru care valori ale lui


j
j
q
|
( j=1, , k) numrul N este prim. Un
program care construiete numere prime cu un numr determinat de cifre este prezentat n Anexa
2. Este dat un exemplu de lucru n care generatorul BUZGUCIBI PRIM 1 n 2,8 sec. a
construit 3 numere prime de 354, 353 i de 354 cifre. Generatorul este compus din trei module.
Primul modul al programei determin numerele prime
i
p i puterile lor
i
cu condiia ca
p s aib un numr dat c de cifre zecimale. Numerele
i
p se aleg dintr-o mulime P de numere
prime cunoscute, iar exponenii
i
sunt funcii de argumente ntregi nenegative
i
n ( ) (
i i
n = ).
Al doilea modul determin numerele
j
q i puterile lor
j
| cu condiia c m are forma
determinat de primul modul. Pe linia
1
K a matricei A modulul caut numrul N cu valorile lui
m i b determinate. n rezultat se obine numrul factorizat n form canonic
N1=
s k
s k
p p q q
| |
... ...
1 1
1 1
,
ce ne permite uor s aplicm criteriul lui Lucas-Lehmer de primalitate a numrului N, ceea ce se
ndeplinete n modulul al treilea. Pentru determinarea numrului N este suficient s introducem
n generator un singur parametru numrul c de cifre zecimale pe care trebuie s le conin acest
numr.
Generatorul poate construi i o mulime
*
N de numere prime cu numrul dat de cifre
zecimale. Fiecare modul n parte poate fi folosit pentru soluionarea problemelor pentru care este
destinat. n Anexa 2 este prezentat modulul al treilea TESTER DE NUMERE PRIME
BUZGUCIBI TEST care a testat la un numr de 3018 cifre zecimale timp de 13,6 sec. pentru
care descompunerea lui N1 n factori conine trei numere prime cu 1004 cifre zecimale fiecare.
Pentru 1 2
86243
= m (al 28-lea numr prim Mersenne [20]) se obine numrul prim
N= 1 ) 1 2 ( 453 13 2
86243
+ , care conine 25966 de cifre zecimale. Investigaiile arat c pentru
obinerea unui numr prim cu un numr de cifre mai mare ca 10000000 am putea folosi un
numr m de forma , ) ... . 21 (
1727
20 5 4
p p p m = unde
i
p este al i-lea numr prim Mersenne. Cel
mai mare numr prim construit cu acest generator este numrul




93
N =6076(797512048017273358771793207819539153918901790748260408799953261
787673811495857496211787058921713269004801775990905626676159421
765537779322671805451760618661061963874171758773991714198399941
755699542801255942891754469763236078960071736637959541012709181)
130
+1,
care conine 32589 cifre zecimale.
Matricele multidimensionale pot fi aplicate de asemenea la factorizarea numerelor de
forma 1
i
a . Pentru a = 2 i i numr prim avem aa numitele numere Mersenne [20] . Ele pot
fi att prime ct i compuse. Cel mai mare numr prim Mersenne cunoscut n prezent este
numrul 1 2
43112609
care conine 12978189 cifre zecimale. A fost descoperit la 23.08.2008 n
cadrul proiectului GIMPS (Great Internet Mersenne Prime Search). n total sunt cunoscute doar
47 numere prime Mersenne. Numere compuse Mersenne sunt mult mai multe. Pentru astfel de
numere apare problema factorizrii lor. Aceste numere le putem cuta pe linia
1
K . Este elaborat
o programa n mediul de calcul Mathematica care construiete numere compuse Mersenne i n
acelai timp gsete un divizor prim al acestui numr [20]. Cel mai mare numr Mersenne
compus gsit de aceasta program este numrul 1 2
p
, unde

p =375662093344890464881445680922948330514227905416290750436039035193113427960
02563317961928227247467514201588721186924893262288479372404158434263818462065
33709297018957433725284154692096039964739360811191607181481220358909313084517
19609498867813426976014647805530184630477159733866963269642334825861866906474
98417876722482308474728847448834198727492857350730001814074054395386577331967
42459478128659636386492058066281959601200721692299694744825286559153755776722
86548912154147055591112766026414615089316423169849566512856572461922842660864
53530055308127171898542626967064306829748306299659537928642062378119553961547
18392291715372804009352110292082457271811311597136633337146896762908153186751
92145889526838878199852726233520193989760157276653077739577411643650600839089
31250128185602087151549765139791238422988511958507121831373840715454168939282
50434822872548348979502943763622511181338463862168552261151839528701458852800
80373253203512894219098076914576581640321158512789744937640515640969096392544
78507218537346290382647945537653532393918686640643071936605435920613489508262
5943166067763036796988950518528130951459622923007,

iar un divizor prim al acestui numr este

94
d =01059349351824743810313089476717328822764648666065200697662456308981484736
04101308739085163595948022722541953899079829219661566995846653494822109539304
53934875230331893960454647507353663943582977297906571490369952574254900935227
51375198188501483161623436488848295408763455574187141231427735721378987050359
97468602755971693559566155918134717963988571761168002902518487032618523731147
87935165005855418218387292906051135361921154707679511591720458494646009242756
58478259446635288945780425642263384142906277071759306420570515939076548257383
25648088493003475037668203147302890927597290079455260685827299804991286338475
49427666744596486414963376467331931634898098555418613339435034820653045098803
07433423242942205119764361973632310383616251642644924383323858629840961342542
90000205096963339442479624223665981476781619133611394930198145144726670302852
00695716596077358367204710021796017890141542179469683617842943245922334164481
28597205125620630750556923063322530624513853620463591900224825025550554228071
65611549659754064612236712860245651830269898625028915098568697472981583213220
15090657084208588751823208296450095223353966768113,
care conine 1126 cifre zecimale.
Menionm c pn n prezent nu se cunoate nici un divizor al numerelor compuse
Mersenne 1 2 , 1 2 , 1 2 , 1 2
1061 997 809 751
.

















95
2.5. Concluzii la capitolul 2
Capitolul curent conine partea teoretic necesar pentru elaborarea algoritmilor de
criptare, descrii n Capitolul.
Teoremele din 2.4 permit sa investigam repartizarea numerelor prime pe diferite intervale
ale liniilor matricei multidimensionale.
Faptul, c generatoarele elaborate construiesc rapid numere mari prime cu proprieti
concrete, permite sa perfecionm sistemele existente de criptare bazate pe numere prime. Dou
sisteme de acest fel sunt propuse in capitolul urmtor. Un sistem este bazat pe numere mari
prime, iar altul pe numere prime i complexitatea problemei determinrii rdcinilor
polinoamelor de grad superior.
Odat cu creterea lungimilor cheilor brusc descrete viteza prelucrrii informaiei.
Problema poate fi soluionat prin substituirea operaiilor aritmetice cu numere mari prin operaii
logice asupra mulimilor de funcii booleene reprezentate prin matrice multidimensionale.
Teoremele cuprinse n 2.2 constituie baza teoretica a sistemelor de criptare bazate pe funcii
booleene. Una din aceste sisteme este prezentata in capitolul urmtor.
Investigaiile n domeniul aplicaiilor funciilor din logica q-valent n sisteme de criptare
a informaiei se afla la nceput de cale. Considerm c aceste funcii au un viitor promitor n
aplicarea lor la sistemele de criptare, deoarece anume ele permit reprezentarea sistemelor de mari
dimensiuni prin mulimi de relaii [18] cu care ne ntlnim tot mai des n soluionarea
problemelor care necesit o prelucrare rapid a informaiei. n urmtorul capitol este prezentat
un sistem de criptare care utilizeaz aceste funcii.
Rezultatele investigaiilor fcute n 2.3 pot servi ca baz teoretic pentru elaborarea
sistemelor de criptare cu chei publice variabile care uor pot fi transmise mpreun cu mesajul
criptat. Rezistena spargerii sistemului este asigurat de complexitatea mare a problemei
determinrii funciei dup unele fragmente ale derivatelor pariale ale ei [23]. Rezultatele
indicate pot fi aplicate i la soluionarea altor probleme, cum ar fi problema izomorfismului
grafurilor i a sistemelor de grafuri [17], [19], problema colorrii vrfurilor grafului, problema
minimizrii funciilor booleene i altele. Reprezentarea funciilor prin submulimi de coloan
face posibil calculul fragmentelor derivatelor funciilor de zeci, sute, ba chiar si mii de variabile.





96
3. SISTEME DE CRIPTARE BAZATE PE MULIMI DE RELAII MULTI-ARE

n zilele noastre este inadmisibil operarea cu date secrete fr asigurare de utilizarea lor
de ctre ruvoitori n caz de interceptare. Orice ar are un algoritm standardizat pentru criptarea
datelor, orice companie care se respect folosete unul dintre sistemele de criptare pentru
operarea cu date confideniale, majoritatea aplicaiilor care opereaz cu date mai mult sau mai
puin confideniale au incorporate i sisteme de criptare.
Problemele legate de sistemele de criptare au fost cercetate n literatura de specialitate i
monografii, n particular n ([38], [43], [90], [91], [96], [97], [98], [99], [128]).
n acest capitolul, innd cont de sursele bibliografice studiate i avnd la baz cercetrile
efectuate n capitolul 2, au fost obinute rezultate de baz, care includ elaborarea, descrierea i
analiza a patru algoritmi de cripatre noi: Cripto 1 [23], Cripto 2 [108], [117], Cripto 3 [107],
[109] i Cripto 4 [109].
3.1. Sistem de criptare cu set de chei bazat pe numere prime
Pe numerele prime sunt bazate unele sisteme de criptare, n particular sistemul RSA
[90]. Acest sistem reprezint un algoritm criptografic cu chei publice, primul algoritm utilizat
att pentru criptare, ct i pentru semntura electronic. Rezistena sa criptografic se bazeaz pe
dificultatea problemei factorizrii numerelor ntregi mari. Acest algoritm funcioneaz n baza
unei perechi de chei legate matematic ntre ele: o cheie public, cunoscut de toat lumea, i una
secret (cheia privat), cunoscut numai de ctre deintorul acesteia. Generarea cheilor se face
n felul urmtor:
1. se genereaz dou numere prime, de preferin mari, p i q;
2. se calculeaz produsul acestor numere q p n = ;
3. se calculeaz funcia lui Euler [64], [75], [100] ) 1 ( ) 1 ( ) ( = q p n .
4. se alege un ntreg aleator e, < < e 1 astfel nct e si s fie reciproc prime, adic
. 1 ) , ( = e Pentru sporirea vitezei de calcul, numrul e se alege astfel nct reprezentarea
lui binar s conin ct mai puine uniti. Perechea (n, e) este cheia public.
5. se calculeaz un numr ntreg d cu proprietatea
) (mod 1 n e d (3.1)
Pentru calcularea lui d poate fi aplicat algoritmul Euclid extins [75]. Perechea (n, d ) este
cheia secret.
Notam cu m mesajul clar, iar cu c mesajul cifrat i calculam
) (modn m c
e
= (3.2)
97
Mesajul clar este restabilit prin formula
) (modn c m
d
= (3.3)
Cheile de criptare RSA sigure n prezent au lungimi de peste 2048 de bii.
Menionm c rezistena criptografic a sistemului dat poate fi mrit numai prin
creterea numerelor p si q, deci i a cheii publice n. Ca rezultat descrete viteza de prelucrare a
informaiei.
Pentru generarea numerelor prime mari p si q sunt aplicate diverse teste de primalitate:
Fermat [64], [68], [85], SolovayStrassen [68], [85], [100], Miller-Rabin [68], [75], [85], [87],
[88] cel mai utilizat test. Toate aceste teste sunt probabilistice, adic genereaz numere prime
cu o probabilitate diferit de 1, dar foarte aproape de unitate.
Cu toate c testul Miller-Rabin este considerat suficient de bun pentru generarea numerelor
prime aplicate n criptografie, exist o foarte mic probabilitate ca acest test s genereze un numr
compus, ceea ce implic urmri imprevizibile pentru utilizatorii algoritmului RSA.
n baza generatorului de numere prime descris n Capitolul 2 am perfecionat sistemul
RSA n scopul sporirii rezistenei sale criptografice i a stoprii descreterii vitezei de
funcionare a acestui algoritm prin nlocuirea unei singuri perechi de chei cu un cortegiu de
perechi de chei de lungime necesar [23]. Fiecare simbol al mesajului (pn la simbolul ce are
numrul de ordine r) este cifrat cu cheie diferit, apoi se revine la nceputul cortegiului de chei i
se reia criptarea n continuare repetnd procesul.
Astfel este realizat un algoritm de criptare, numit Cripto1 care conine:
a) Generatorul de chei, care construiete trei cortegii de numere
) ,..., , (
2 1 r
e e e e = , (3.4)
) ,..., , (
2 1 r
d d d d = , (3.5)
i
) ,..., , (
2 1 r
n n n n = , (3.6)
unde
i i i
q p n = ,
i i
q p = , i care verific condiia
,... 2 , 1 ,
) 1 )( 1 ( 1
, 1 =
+
= = k
e
q p k
d r i
i
i i
i
(3.7)
Perechile de numere prime
i
p i
i
q se construiesc cu condiia c descompunerile numerelor
1
i
p si 1
i
q n produs de factori primi s conin numere mari prime. Aceasta asigur o
rezistena criptografica mare [84]. Numerele
i
e se construiesc cu condiia c reprezentarea lor
binara s conin un numr minim de uniti. Aceasta asigur o vitez mai mare de calcul la
98
criptarea informaiei. Generatorul de chei BUZGUCIBI CRIPTO GEN RSA timp de 1,6 sec. a
generat 5 chei este prezentat n Anexa 2;
b) Codificatorul, care avnd cortegiul de numere ) ,..., , (
2 1 t
m m m m = , ce reprezint
codificarea numeric a mesajului ntr-un sistem oarecare de codificare a caracterelor (de exemplu
ASCII), construiete, cu ajutorul cheilor publice ) , (
i i
e n un alt cortegiu de numere
) ,..., , (
2 1 t
c c c c = ,
aplicnd formula
) (mod
i
e
i i
n m c
i
= , . , 1t i = (3.8)
Codificatorul BUZGUCIBI CRIPTO COD RSA care construiete cortegiul c al
mesajului este prezentat n Anexa 2.
c) Decodificatorul, care avnd cortegiile c

, d

i n
,
construiete cortegiul
) ,..., , (
2 1 t
m m m m = ,
prin aplicarea formulei
) (mod
i
d
i i
n c m
i
= (3.9)
Decodificatorul numit BUZGUCIBI CRIPTO DEC RSA, care decodific criptograma
primit este prezentat n Anexa 2.
Timpul de decriptare este mult mai mare ca cel de criptare (acelai lucru se ntmpl i
la RSA). Aceasta se datoreaz faptului c componentele
i
d ale cortegiului d sunt mult mai mari
dect componentele
i
e ale cortegiului e . Odat cu creterea lungimii cheilor diferena observat
este considerabila, ns aceasta este valabil i pentru algoritmul RSA obinuit. Lund n
consideraie principiul de funcionare al algoritmului Cripto 1, timpul de lucru al su este acelai
ca i al algoritmului RSA, ns rezistena criptografic a algoritmului propus este de cel puin r
ori mai mare dect rezistena algoritmului RSA, deoarece pentru spargerea lui trebuie s aflm r
chei n loc de o singur cheie.
Astfel, avantajul algoritmului Cripto 1 fa de algoritmul RSA const n urmtoarele:
avnd chei de aceeai lungime ca la algoritmul RSA rezistena este sporit iar
timpul de lucru este acelai;
avnd chei de lungime mai mic dect la RSA dar n cantitatemai mare se mrete
viteza de lucru al algoritmului, rezistena fiind nu mai mic ca la RSA.
Metodele de spargere pentru Cripto 1 sunt aceleai ca i pentru RSA. La momentul actual
se cunoate o singur metod de spargere factorizarea cheii publice n care avnd o mrime de
2048 de bii este considerat sigur. Cu toate acestea pentru sigurana documentelor secrete cheia
public n RSA trebuie s aib o mrime de 4096 de bii i deja timpul de criptare i mai ales cel
99
de decriptare crete considerabil. n acest context algoritmul de criptare Cripto 1 poate fi o
soluie pentru evitarea creterii ineluctabile a timpului de execuie a RSA odat cu mrirea
lungimii cheii.
n Tabelul 3.1 i n Figurile 3.1 3.4 sunt prezentate date comparative ntre algoritmul
RSA i algoritmul Cripto1 cu o mrime a cheii de 2048 bii (n Anexa 1 este expus un set mai
complet de diagrame). Testrile au fost efectuate pentru un set de 5 chei ale algoritmului Cripto
1 la un calculator cu procesor AMD Phenom-II cu 3 nuclee, 2.8 GHz, 2 GB RAM. Algoritmii
inclui n tabel au fost testai pe aceleai texte, ele avnd lungimile specificate n tabele. Adic
algoritmii au fost testai pe texte reale de lungimile menionate. Acelai principiu este aplicat i
la testrile efectuate n compartimentele ce urmeaz. Pentru estimarea algoritmului RSA este
utilizat algoritmul Cripto 1 cu o singur cheie.

Tabelul 3.1. Date statistice de lucru pentru algoritmii de criptare RSA i Cripto1
Sistemul de criptare
Numrul de simboluri
n mesaj
Timpul pentru
criptare
Timpul pentru
decriptare
RSA 0,008 3,74
Cripto 1
100
0,03 3,76
RSA 0,01 7,47
Cripto 1
200
0,03 7,52
RSA 0,013 11,22
Cripto 1
300
0,03 11,25
RSA 0,016 14,96
Cripto 1
400
0,03 14,97
RSA 0,021 18,69
Cripto 1
500
0,05 18,80
RSA 0,03 37,36
Cripto 1
1 000
0,06 37,53
RSA 0,11 74,68
Cripto 1
2 000
0,12 75,08
RSA 0,16 112,05
Cripto 1
3 000
0,20 112,76
RSA 0,36 186,90
Cripto 1
5 000
0,39 187,71
RSA 1,15 373,93
Cripto 1
10 000
1,18 376,21
RSA 29,20 1901,36
Cripto 1
50 000
29,87, 1907,32
RSA
Cripto 1
100 000

100
Criptare 1000 - 10 000
0
0,2
0,4
0,6
0,8
1
1,2
1,4
1000 2000 3000 5000 10000
Lungi me mesaj (si mb.)
T
i
m
p
u
l

d
e

l
u
c
r
u

(
s
e
c
.
)
RSA
Cripto 1

Fig. 3.1. Diagrama comparativ RSACripto 1 pentru mesaje de 1000-10000 simboluri
Decriptare 1000 - 10 000
0
50
100
150
200
250
300
350
400
1000 2000 3000 5000 10000
Lungi me mesaj (si mb.)
T
i
m
p
u
l

d
e

l
u
c
r
u

(
s
e
c
.
)
RSA
Cripto 1

Fig. 3.2. Diagrama comparativ RSACripto 1 pentru mesaje de 1000-10000 simboluri

Criptare 1000 - 50 000
0
5
10
15
20
25
30
35
1000 2000 3000 5000 10000 50000
Lungime mesaj (si mb.)
T
i
m
p
u
l

d
e

l
u
c
r
u

(
s
e
c
.
)
RSA
Cripto 1

101
Fig. 3.3. Diagrama comparativ RSACripto 1 pentru mesaje de 1000-50000 simboluri

Decriptare 1000 - 50 000
0
500
1000
1500
2000
2500
1000 2000 3000 5000 10000 50000
Lungi me mesaj (si mb.)
T
i
m
p
u
l

d
e

l
u
c
r
u

(
s
e
c
.
)
RSA
Cripto 1

Fig. 3.4. Diagrama comparativ RSACripto 1 pentru mesaje de 1000-50000 simboluri

Pentru mesajele cu un numr de simboluri de pn la 1000 criptarea este mai rapid la
RSA deoarece n Cripto1 se memorizeaz un set din 5 perechi de chei i n rezultat obinem o
diferen de 0,01-0,02 sec. Aceasta este i diferena de timp la criptarea i decriptarea mesajelor
de lungime mai mare, ns n raport cu timpul total de criptare i decriptare al acestor mesaje
diferena dat este neglijabil.
Cu algoritmul Cripto 1 au mai fost efectuate multiple testri cu aceleai texte, ns cu
seturi de un numr variat de chei, mrimea lor rmnnd aceeai (2048 bii). Aceste testri au
confirmat c numrul de chei n set practic nu influeneaz viteza de lucru al algoritmului,
diferena de timp la seturi de lungime diferit fiind de ordinul sutimilor de secund. Aceast
diferen este cauzat numai de operarea cu locuri diferite ale memoriei calculatorului i poate fi
neglijat, mai ales pentru procesul de deciptare, unde timpul este esenial mai mare ca la cripatre.
Numerele prime mari aplicate la elaborarea sistemelor de criptare cu cheie public
implic un timp suficient de mare pentru criptare i decriptare, iar n cazul RSA decriptarea are
loc ntre-un interval de timp i mai mare dect criptarea.
n acest context este actual ntrebarea: ct de eficieni sunt algoritmii simetrici de
criptare care funcioneaz n baza numerelor prime mari? n aceast direcie se propune de
elaborat un sistem de criptare n care s fie utilizate numerele prime mari n combinare cu
matricele multidimensionale



102
3.2. Sistem simetric de criptare bazat pe dezvoltarea polinomial a numerelor
n paragraful dat este elaborat un sistem simetric de criptare Cripto 2 ns care la fel ca
RSA i Cripto 1 funcioneaz n baza numerelor prime mari, a matricelor multidimensionale care
reprezint mulimile de relaii multi-arei a dezvoltrii polinomiale a numerelor.
S examinm un caz particular al relaiilor pe mulimi analizate n Capitolul 2. Fie o
familie de mulimi } ..., , , {
2 1 n
X X X X = unde } ..., , , {
2 1
i
i i i i
x x x X

= , n i , 1 = i o mulime
} ,..., {
1 r
e e = O cu elemente arbitrare (n cazul nostru numere ntregi). Pe aceast familie sunt
definite k relaii
j
d j j
X X j
R R
....
1
= , , 1 , 2 ( k j n d
j
= s s }), ..., , 2 , 1 { ,..., ,
2 1
n j j j
j
d
e
ca submulimi ale produselor carteziene
j d
j j j
X X X ...
2 1
. Matricele acestor relaii sunt
matrice
j
d - dimensionale cu elemente din mulimea O. Notm cu R cortegiul cu componentele
j
R , adic ). ,..., ..., , (
1 k j
R R R R = Acestui cortegiu i punem n coresponden o matrice
n-dimensional
) (R A
R
u = , (3.10)
elementele creia sunt notate cu
n
s s s
a
... ...
1 t
. S explicm obinerea acestor elemente. Construim
produsul cartezian
} ,..., { ... } ,..., { ...
1 1 11 2 1
1 n
n n n
x x x x X X X

= ,
care, evident conine
n
u = ...
1
elemente. Cu aceste elemente compunem o matrice
bidimensional cu u linii i n coloane care corespunde familiei de mulimi X (Figura 3.5, partea
stng).
=
R
A
u
i
.
.
1

|
|
|
|
|
|
.
|

\
|
n
n
n
ns s s
n
n
x x x
x x x
r x x
X X X
t
t
t
t
t
t



1
1
1
1
1 1 11
1

|
|
|
|
|
|
.
|

\
|
uk uj u
ik ij i
k j
k j
r r r
r r r
r r r
R R R



1
1
1 1 11
1

Fig. 3.5. Reprezentarea matricei n-dimensionale care corespunde cortegiului R

Compunem o alt matrice bidimensional || ||
ij
r cu u linii i k coloane care corespunde
relaiilor din R (Figura 3.5, partea dreapt), unde
d
j j
s s ij
r r
...
1
= cu elementele
d
j j
s s ..., ,
1
selectate
103
n linia i pe locurile
d
j j ..., ,
1
. Aceste locuri indic mulimile
d
j j
X X ..., ,
1
pe care este definit
relaia
j
R .
Pentru simplitate substituim elementele
t
ts
x cu indicele respectiv
t
s aa cum e artat n
Figura 3.6. Liniile matricei din partea stng n Figura 3.6 reprezint indicii elementelor matricei
R
A . Liniile matricei din partea dreapt formeaz elementele matricei
R
A :
), ,..., ,..., (
1 ... ...
1
ik ij i s s s
r r r a
n
=
t
(3.11)
Cortegiului (3.11) i se asociaz un numr
i
c n baza y care verific condiia , max
h
y e >
r h , 1 = :
ik
j k
ij
k
i i
r y r y r c + + + + =

... ...
1
1
=

k
j
j k
ij
y r
1
, u i , 1 = . (3.12)
Astfel obinem cortegiul
) ,..., ,..., (
1 u i
c c c c = . (3.13)
=
R
A
u
i
.
.
1

|
|
|
|
|
|
.
|

\
|
n
n
n
s s s
X X X

t
t
t



1
1
1
1 1 1

|
|
|
|
|
|
.
|

\
|
uk uj u
ik ij i
k j
k j
r r r
r r r
r r r
R R R



1
1
1 1 11
1

|
|
|
|
|
|
.
|

\
|
u
i
c
c
c
c
.
.
1

Fig. 3.6. Reprezentarea simplificat a matricei n-dimensionale ce corespunde cortegiului R
Astfel, prin transformarea (3.10), cortegiul c (3.12), (3.13) este pus n coresponden
cortegiului R . Transformarea invers
) (
1
c R
,

u = (3.14)
n general este mult mai complicat [21], [23], [24], [110].
n unele cazuri particulare putem gsi coordonatele vectorului cortegiului R dup
coordonatele cortegiului c (acest lucru a fost realizat la investigarea distribuiei numerelor prime
n mulimea numerelor naturale, n rezultat fiind elaborat un algoritm de generare a numerelor
prime).
Dac transformarea (3.14) este dificil, putem folosi acest lucru la elaborarea sistemelor
de criptare a informaiei.
Fie c trebuie s cifrm coordonatele cortegiului ) ,..., , (
2 1 t
m m m m =
,
, care reprezint
codificarea numeric a textului clar dat, n unul din sistemele de codificare dorite (fie ASCII).
Considerm coordonatele acestui cortegiu ca fiind elemente ale mulimii . O n aa caz aceste
104
coordonate trebuie sa fie elemente ale matricelor .
j
R Dac coordonatele vectorului nu se repet
conform unei legi determinate atunci toate matricele
j
R
A trebuie s fie de ordinul n [110]. Fie c
b a t = (3.15)
Atunci matricea
R
A poate avea forma din Figura 3.7, unde
(
a n
2
log = , b k = iar
coordonatele cortegiului c se calculeaz dup formula
. , 1 , max , , 1 ,
1
) 1 (
t h y a i y m c
h i
j b
i
b
j
j b i i
= > = =

=
+
e (3.16)
Scris n form desfurat aceast formul are forma:

+ + + =
+ + + =
+ + + =
+ + + =

+

,
...
...
...
...
2
2 ) 1 (
1
1 ) 1 (
3
2
3 2 2
1
3 1 2 3
2
2
2 2
1
2 1 2
2
1 2
1
1 1 1
ab
b
a b a
b
a b a a
b
b
b
b
b
b
b
b
b
b
b
b b
m y m y m c
m y m y m c
m y m y m c
m y m y m c

(3.17)
unde
a
y y y ,..., ,
2
1
sunt chei private. n particular, se poate lucra i cu o singur cheie privat y.


1
R ...
j
R ...
b
R

a
i
.
.
1

n g
n g
n g
s s s
x x x



1
1
1
1 1 1

|
|
|
|
|
|
.
|

\
|
+ +
+ +
ab j b a b a
ib j b i b i
b j
b j
m m m
m m m
m m m
R R R



) 1 ( 1 ) 1 (
) 1 ( 1 ) 1 (
1
1

a
i
c
c
c
c
.
.
1

Fig. 3.7. O form de reprezentare a matricei
R
A

S analizm egalitile din (3.17). Spre exemplu, prima egalitate poate fi considerat ca o
ecuaie liniar n raport cu necunoscutele
b
m m ,...,
1
, cu coeficienii nedeterminai
1
2
1
1
1
,..., , y y y
b b

i termenul liber necunoscut
1
c m
b
. Soluiile n numere ntregi ale acestei ecuaii, pentru
1
y
cunoscut i care satisfac condiiilor (3.17), se afl uor prin reprezentarea numrului
1
c in baza
1
y . ns n cazul n care
1
y este necunoscut soluionarea este foarte dificil.
105
Pe de alta parte, aceast egalitate poate fi considerat ca o ecuaie algebric de gradul b1
n raport cu necunoscuta
1
y i cu coeficieni nedeterminai, pentru care
1
y este soluie. Aceasta
nseamn ca
1
y poate fi cutat printre divizorii termenului liber
b
m c
1
, unde O e
b
m . Dnd
valori lui
b
m i factoriznd termenul liber putem ncerca s aflm cheia
1
y . Pentru ca aceast
ncercare s aib mai puini sori de izbnd este necesar ca
1
y s fie un numr mare prim.
Fie t este un numr compus de forma

r
r
t
| | |
o o o = ...
2 1
2 1
(3.18)

innd cont de cele expuse mai sus alegem un factor (sau un produs de civa factori)
i
i
|
o i considerm
i
i
b
|
o = . Numrul a este egal cu produsul factorilor rmai. Dac , 1 = r adic
1
1
|
o = t i 1
1
> | atunci reprezentm
1 1 1
| + = i considerm
1
1

o = a ,
2
1

o = b . n cazul n care
1
1
= | , adic, atunci cnd numrul t este prim, adugm una sau cteva componente fictive ale
cortegiului m i obinem un alt numr t compus. Componentele fictive nu se descifreaz de
decodificator. n mod analog aplicm acest procedeu asupra tuturor egalitilor din sistemul
(3.17).
n baza celor expuse a fost elaborat un sistem de criptare, numit Cripto 2, care este
alctuit din:
generatorul de chei, care construiete numerele mari prime
a
y y ,...,
1
(cheile private) cu
ajutorul generatorului elaborat n tez, mrimea lor fiind n funcie de cerinele concrete
(securitatea sporit necesit chei mai mari, viteza mai mare de prelucrare a informaiei cere chei
mai mici, volumul de informaie la fel necesit diferite lungimi de chei, modul de funcionare a
sistemului dac se utilizeaz a chei ele pot fi mai mici, dac mai puine sau una singur
trebuie s fie mai mari etc., toate aceste cerine fiind interdependente);
codificatorul, care construiete cortegiul c n baza coordonatelor cortegiului m , a
parametrilor a, b, t i cheilor private
a
y y ,...,
1
care la fel se cripteaz aplicnd unul din sisteme
sigure de criptare;
decodificatorul, care construiete cortegiul m n baz cortegiilor ) ,..., ,..., (
1 u i
c c c c = i
) ,..., (
1 a
y y y = , decodific cortegiul m i imprim textul decodificat, restabilind-ul dup codurile
ASCII obinute n m.


106
Descrierea algortimului Cripto2. Fie T un text arbitrar, ce conine N caractere (inclusiv
spaiul liber). Numrul N se numete lungime a textului T. Vom considera c Textul T este
reprezentat n codurile ASCII. Prin urmare, textul T poate fi privit ca un cortegiu numeric de
lungime N:
). ,..., ,..., (
1 N i
m m m T =
Fie acest text trebuie criptat cu ajutorul unu set de chei Y. n aceste condiii criptarea
textului T poate fi efectuat n confofrmitate cu urmtorul algoritm:
Pasul 1. Reprezentm numrul N ca un produs de dou numere N=ab. n acest scope e suficient
de luat n calitate de a primul divizor mai mare dect unu al numrului N.
Pasul 2. Formm matricea
R
A cu numrul de linii a i numrul de coloane b. Elementele
matricei
R
A se calculeaz dup formula:
. ) , (
) 1 ( j b i R
m j i A
+
=
Aceast matrice conine N elemente (N=ab).
Pasul 3. Calculm setul de chei
), ,..., , (
2 1 l
y y y Y = unde . a l s
Pentru acesta folosim generatorul de numere prime BUZGUCIBI PRIM 1.
Pasul 4. Pentru fiecare linie i a matricei A se calculeaz un numr
i
c n conformitate cu formula
(3.16).
Pasul 5. Stop. Cortegiul ) ,..., ,..., (
1 a i
c c c C = conine textul iniial T n varianta criptat.
Remarc. Dac numrul N este prim atunci la textul iniial T adugm un simbol oarecale pentru
a obine text de lungime, care nu este numr prim.
Din descrierea algoritmului Cripto 2, observm c numrul de linii a i numrul de
coloane b ale matricei
R
A sunt estimate prin O(N).
Pentru a gsi reprezentarea numrului N ca produs a dou numere a i b (N=ab) e
suficient s alegem n calitate de a primul divizor al lui N. Pentru aceasta sunt necesare O(N)
operaii.
Realizarea pasului 2 se face n timp constant O(1), i nu poate depinde de lungimea N a
textului T. calcularea matricei
R
A , evident necesit O(N) operaii (se calculeaz ab elemente ale
matricei). Generarea unei chei se face prin intermediul algoritmului BUZGUCIBI PRIM 1,
complexitatea cruia nu depinjde de lungimea textului T. deci generarea unei chei se face n timp
constant O(1). Pentru criptarea textului, algoritmul Cripto 2 folosete un set de chei
), ,..., , (
2 1 l
y y y Y = ). (N O a l = s Prin urmare, generarea celor l chei se face n timp O(N).
107
Menionm, c deoarece , 2 > a setul Y ar putea fi limitat la un numr fixat de chei, de
exemplu l =2 (sau l = 3), ceea ce ar nsemna c timpul necesar pentru generarea setului de chei
nu deinde de N.
Pentru a obine textul criptat, la pasul 5 se calculeaz cortegiul de numere
) ,..., ,..., (
1 a i
c c c C = , pentru care se folosesc O(N) operaii. Astfel obinem estimarea
complexitii algoritmului Cripto 2.

Teorema 3.1. Algoritmul Cripto 2 rezolv problema criptrii unui text T de lungimea N n timp
O(N).

Sistemul este elaborat i testat n mediul de calcul Mathematica. Unele date referitoare la
timpul de funcionare a sistemului Cripto 2 n comparaie cu sistemele RSA i sistemul AES care
este la fel ca Cripto 2 un algoritm simetric, sunt indicate n Tabelul 3.2 i n Figurile 3.8 3.11
(n Anexa 1 este prezentat un set mai larg de diagrame referitoare la aceste date). Pentru aceste
date comparative au fost alei algoritmii RSA i AES, deoarece cheile sistemului Cripto 2 sunt
comparabile cu cele ale lui RSA (particip numere prime mari), iar AES este un sistem simetric
(ca i Cripto 2) utilizat la momentul actual n calitate de standard naional de criptare n SUA.
Pentru estimarea lui RSA a fost utilizat algoritmul Cripto 1 cu o singur cheie, iar algoritmul
AES este parte component a mediului Mathematica ca pachet adiional.

Tabelul 3.2. Date statistice de lucru pentru algoritmii de criptare RSA, Cripto2 i AES-256
Sistemul de criptare
Numrul de
simboluri n mesaj
Timpul pentru
criptare
Timpul pentru
decriptare
RSA 0,008 3,74
Cripto 2 0,06 2,21
AES 256
100
0,03 0,03
RSA 0,01 7,47
Cripto 2 0,06 2,22
AES 256
200
0,04 0,05
RSA 0,013 11,22
Cripto 2 0,06 2,22
AES 256
300
0,08 0,08
RSA 0,016 14,96
Cripto 2 0,06 2,23
AES 256
400
0,09 0,09
108
RSA 0,021 18,69
Cripto 2 0,06 2,22
AES 256
500
0,13 0,13
RSA 0,03 37,36
Cripto 2 0,08 2,23
AES 256
1 000
0,22 0,23
RSA 0,11 74,68
Cripto 2 0,09 2,25
AES 256
2 000
0,45 0,45
RSA 0,16 112,05
Cripto 2 0,09 2,28
AES 256
3 000
0,64 0,70
RSA 0,36 186,90
Cripto 2 0,14 2,34
AES 256
5 000
1,09 1,15
RSA 1,15 373,93
Cripto 2 0,17 2,65
AES 256
10 000
2,20 2,29
RSA 29,20 1901,36
Cripto 2 0,70 11,61
AES 256
50 000
10,94 11,41
RSA
Cripto 2 1,54 39,22
AES 256
100 000
21,81 22,78
RSA
Cripto 2 4,57 169,37
AES 256
200 000
43,54 45,55
RSA
Cripto 2 9,95 440,20
AES 256
300 000
68,37 69,46
RSA
Cripto 2 10,08 1386,25
AES 256
500 000
109,01 114,02

109
Criptare 100 - 1 000
0
0,05
0,1
0,15
0,2
0,25
100 200 300 400 500 1000
Lungi me mesaj (si mb.)
T
i
m
p
u
l

d
e

l
u
c
r
u

(
s
e
c
.
)
RSA
Cripto 2
AES 256

Fig. 3.8. Diagram comparativ RSAAES256Cripto 2 pentru mesaje de 100-1000 simboluri

Decriptare 100 - 1 000
0
5
10
15
20
25
30
35
40
100 200 300 400 500 1000
Lungi me mesaj (si mb.)
T
i
m
p
u
l

d
e

l
u
c
r
u

(
s
e
c
.
)
RSA
Cripto 2
AES 256

Fig. 3.9. Diagram comparativ RSAAES256Cripto 2 pentru mesaje de 100-1000 simboluri

Cri ptare 1 000 - 10 000
0
0,5
1
1,5
2
2,5
1000 2000 3000 5000 10000
Lungimea mesajului (simb.)
T
i
m
p
u
l

d
e

l
u
c
r
u

(
s
e
c
.
)
Cripto 2
AES 256

110
Fig. 3.10. Diagram comparativ AES256Cripto 2 pentru mesaje de 1000-10000 simboluri
Decriptare 1000 - 10 000
0
0,5
1
1,5
2
2,5
3
1000 2000 3000 5000 10000
Lungi mea mesajul ui (si mb)
T
i
m
p
u
l

d
e

l
u
c
r
u

(
s
e
c
.
)
Cripto 2
AES 256

Fig. 3.11. Diagram comparativ AES256Cripto 2 pentru mesaje de 1000-10000 simboluri

Testrile date au fost efectuate la un calculator cu procesor AMD Phenom-II cu 3 nuclee,
2.8 GHz, 2 GB RAM.
Din tabelul 3.2 se observ c Cripto 2 n comparaie cu RSA posed un timp de criptare
mai bun, ncepnd cu un anumit volum de informaie ). 200 ( > V n cazul volumului mic de
informaie ), 200 1 ( < sV cu toate c RSA este mai rapid, diferena de timp este nesemnificativ.
Rezultate impuntoare pentru Cipto 2 obinem la un volum de . 000 100 > V n ce privete
decriptarea informaiei, algoritmul Cripto 2 este ntotdeauna mai rapid dect RSA.
Dac s facem comparaie cu algoritmul AES lund n consideraie timpul total de
criptare i decriptare, atunci pentru mesaje cu circa 5000 de caractere aceste dou sisteme sunt
comparabile, iar pentru mesaje de volum , 000 100 000 50 < sV Cripto 2 este mai rapid. n
celelalte cazuri AES are prioritate la viteza de execuie. Aadar Cripto 2 poate fi utilizat cu
succes pentru mesajele de volum , 000 100 000 50 < sV ntrecnd la capitolul vitezade execuie
ambii algoritmi RSA i AES.
Din acest tabel i diagrame se mai observ c n general, productivitatea sistemului
Cripto 2 este mult mai mare dect la RSA (adic sistemul Cripto 2 este mai rapid i poate opera
n mod eficient cu mesaje de volum mare de informaie; de exemplu, sistemul RSA devine
impracticabil n cazul unor volume mari de informaie), dar mai mic dect la AES. Aceasta se
explic prin principiile de funcionare diferite ale acestor algoritmi, dar i prin lungimi diferite a
cheilor. Algoritmul Cripto 2 pe care a fost efectuat testarea are a chei de lungime 192 bii
fiecare, deci mrimea total a cheii este de 192a bii. ns numrul de chei poate varia (de la 1 la
a) iar viteza de lucru se modific nesemnificativ (la fel ca la Cripto 1 n raport cu RSA), diferena
constnd numai n timpul de criptare sau decriptare a acestor chei.
111
Un lucru important este c cheile n sistemul Cripto 2 se schimb de la mesaj la mesaj,
ele fiind criptate prin intermediul algoritmului Cripto 1 (sau altui algoritm sigur de exemplu
RSA care este adesea practicat n aceste scopuri), apoi alipite la cortegiul c i transmise spre
adresant. Aici trebuie de menionat c pentru criptarea cheilor se pot folosi diferite sisteme de
criptare practicate n prezent, iar rapiditatea acestor sisteme de asemena va influena viteza de
lucru al lui Cripto 2. La decriptare cheia criptat se selecteaz din cortegiul c , se decripteaz i
apoi se purcede la decriptarea criptogramei.
Pentru spargerea acestui sistem este necesar de rezolvat sistemul (3.17) n care cunoatem
doar termenii din partea stng a fiecrei ecuaii cu coeficieni nedeterminai. Termenul liber al
ecuaiei polinomiale i din (3.17) nu este cunoscut, el fiind egal cu c
i
m
ib
, unde m
ib
este codul
unui caracter din ASCII. Pentru a rezolva fiecare ecuaie din (3.17) se poate ncerca factorizarea
termenului liber pentru gsi eventualele rdcini ale polinomului respectiv, ns datorit faptului
c coeficienii sunt nedeterminai, acest lucru nu are sori de izbnd.
Cu toate c sistemele bazate pe numere prime mari sunt suficient de sigure ele nu pot
lucra cu un volum de informaie la fel de mare precum alte sisteme (de exemplu AES), deoarece
necesit un timp de lucru semnificativ. n acest scop se pot folosi sisteme care funcioneaz n
baza altor principii, o direcie n acest sens fiind utilizarea funciilor booleene pentru care n
capitolul 2 au fost demonstrate o serie de proprieti utile n scopul dat.
3.3. Sistem de criptare bazat pe funcii booleene
Funciile booleene i proprietile lor sunt pe larg aplicate n criptografie. Operaiile cu
funciile booleene sunt foarte rapide i acest lucru permite elaborarea algoritmilor criptografici
cu vitez de lucru sporit. Un astfel de algoritm este propus n acest paragraf. Algoritmul este
bazat pe proprieti ale mulimilor de relaii multi-are, matricelor multidimensionale ca un
instrument de efectuare a operaiilor cu funciile booleene i reprezentarea funciilor booleene
prin submulimi de coloan.
n Capitolul 2 au fost studiate funciile booleenei demonstrate unele proprieti ale lor
care pot fi aplicate la elaborarea sistemelor de criptare n combinare cu matricele
multidimensionale.
S consideram un caz particular pentru familia de mulimi } ..., , , {
2 1 n
X X X X = ,
studiat de asemenea n capitolul 2, i anume cazul n care
}. 1 , 0 { ...
2 1
= O = = = =
n
X X X


112
Notm relaiile definite pe aceste mulimi cu
j
d j j
X X j
M M
....
1
= ,
unde , , 1 , 2 ( k j n d
j
= s s }), ..., , 2 , 1 { ,..., ,
2 1
n j j j
j
d
e
obinnd astfel cortegiul
). .., , ..., , (
1 k j
M M M M =
Acestui cortegiu i punem n coresponden o matrice n-dimensional
), (M A
M
,
u =
cu u i , 0 = , k j , 1 = [107], [109] reprezentat n Figura 3.12. n aceast matrice
n
X X j
M M
....
t
=
iar
} 1 , 0 {
...
e =
n
m m
ij o o
t
.
Prin urmare, matricea dat reprezint un sistem de k funcii booleene de variabilele
n
x x ,...,
1
.
Punem n coresponden acestei matrice un cortegiu de numere
u t m m m m
t i
s = ), ,..., ,..., (
0
, . , 0 , 2
1
t i m m
k
j
j k
ij i
= =

(3.19)
(
t n
2
log = ,
(
. max log
2 i
m k = (3.20)

=
M
A
u
i
.
.
0
|
|
|
|
|
|
.
|

\
|
1 1 1
0 0 0
1
1



n
n
x x x
o o o
t
t

|
|
|
|
|
|
.
|

\
|
uk uj u
ik ij i
k j
k j
m m m
m m m
m m m
M M M



1
1
0 0 01
1

|
|
|
|
|
|
.
|

\
|
u
i
m
m
m
m
.
.
0

Fig. 3.12. Reprezentarea matricei
M
A

Prin analogie (Figura 3.13) construim o alt matrice
D
A creia i punem n coresponden
un cortegiu de numere d
u t d d d d
t i
s = ), ,..., ,..., (
0
, . , 0 , 2
1
t i d d
k
j
j k
ij i
= =

(3.21)

113
=
D
A
u
i
.
.
0

|
|
|
|
|
|
.
|

\
|
1 1 1
0 0 0
1
1



n
n
x x x
o o o
t
t

|
|
|
|
|
|
.
|

\
|
uk uj u
ik ij i
k j
k j
d d d
d d d
d d d
D D D



1
1
0 0 01
1

|
|
|
|
|
|
.
|

\
|
u
i
d
d
d
d
.
.
0

Fig. 3.13. Reprezentarea matricei
D
A

Cu aceste dou matrice putem efectua operaii logice cum ar fi ,
D M
A A . ,
D M
A A v
D M
A A etc., obinnd n rezultat alte matrice de aceleai dimensiuni. S analizm, de exemplu,
operaia (suma dup modulul 2). Fie c
C D M
A A A = . n acest caz
ij ij ij
d m c = . innd
cont de proprietile operaii de adunare dup modulul 2, obinem:

. ) ( ) (
M D D M D D M
A A A A A A A = =

Aadar
C D M
A A A = , .
M D C
A A A = (3.22)

Din (3.22) rezult c matricea
D
A poate servi n calitate decheie privat pentru criptarea
i decriptarea cortegiului m care reprezint codul ASCII (sau oricare alt cod) al textului clar M
prin intermediul cortegiului c (textul cifrat):
u t c c c c
t i
s = ), ..., ,..., (
0
, , , 0 , 2
1
t i c c
k
j
j k
ij i
= =

ij ij ij
d m c = (3.23)
S analizm cum putem construi cheia privat. Pentru aceasta revenim la Figura 3.12
Dup cum am menionat mai sus, acest tabel reprezint un sistem de funcii booleene
k j
F F F ,..., ,...,
1
de variabilele
n
x x ,...,
1
. Fie c relaiilor
k j
D D D ,..., ,...,
1
le corespund respectiv
funciile
k j
F F F ,..., ,...,
1
cu valorile din coloanele respective n Figura 3.13. Presupunem c
funciile sunt reprezentate prin submulimile de coloan (Tabelul 3.3), k i , 1 = .

Tabelul 3.3. Reprezentarea funciilor
j
F prin submulimi de coloan

0
z
j
z

s
z
1
i
F
0
1
z
F
i
S

j
i
z
F
S
1


s
i
z
F
S
1

114
Vom considera numai funcii
j
F pentru care se ndeplinesc condiiile
k j S S S S
j
z
F
z
F
z
F
s
j j j
, 1 , ...
1
1
1
0
1
= = = = = . (3.24)
Pentru toate valorile lui j vom obine un cortegiu ) ,..., ,..., (
1 k j
S S S S = care poate juca
rolul de cheie privat.
Fie c n indicele i al lui
i
d , valorile primelor t variabile formeaz starea binar
q
y =
t
o o ...
1
(Figura 3.13). Atunci, conform definiiei submulimii de coloan valorile lui
ij
d se
obin din relaia

e
e
=
j q
j q
ij
S y
S y
d
dac , 0
dac , 1
(3.25)
Aadar, cortegiul S determina univoc matricea
D
A . Submulimile
j
S se aleg cu condiia

Y S
k
j
j
=
=

1
(3.26)
Aceast condiie asigur schimbarea componentelor cortegiului m prin intermediul
cortegiului d . Relaia (3.25) asigur un calcul rapid al valorii funciei pe starea binara
n
i o o o
t
... ...
1
= .

Deoarece
t
2 = Y , atunci pentru o singur funcie putem construi
t
2
2 submulimi de
coloan, iar pentru k funcii avem
t

2
2

=
k


chei diferite. Prin urmare securitatea sistemului, care este n funcie i de cantitatea de chei
private, poate fi aleas prin parametrul t i submulimile
j
S .
n baza celor expuse n mediul de calcul Mathematica 6 a fost elaborat un sistem de
criptare a informaiei Cripto 3 [107], [109] (codul-surs este prezentat n Anexa 2) format
din:
generatorul de chei, care genereaz cortegiul ). ,..., ,..., (
1 k j
S S S S = Componentele
j
S ale
cortegiului S sunt alese n mod aleator ca submulimi ale mulimii Y i cu respectarea condiiei
(3.26). Utiliznd (3.25) i (3.21) construim cortegiul ); ,..., (
0 t
d d d =
115
codificatorul, care construiete cortegiul ) ,..., (
0 t
c c c = (n baza cortegiilor m i d
utiliznd (3.23), codific cortegiul ) ,..., ,..., (
1 k j
S S S S = prin intermediul sistemului Cripto 2 sau
cu oricare alt sistem sigur i, prin concatenarea lui cu cortegiul c , construiete cortegiul g ;
decodificatorul, care decodific cortegiul ) ,..., ,..., (
1 k j
S S S S = selectat din cortegiul g ,
construiete cortegiul ) ,..., (
0 t
d d d = utiliznd formulele (3.21) i (3.25), construiete cortegiul
) ,..., ,..., (
0 t i
m m m m = n baza cortegiilor ) ,..., (
0 t
c c c = i ) ,..., (
0 t
d d d = utiliznd formula (3.22)
i imprim textul decodificat, restabilind-ul dup codurile ASCII obinute n m.

Descrierea algoritmului Cripto 3. Fie M un mesaj arbitrar ce conine N caractere (inclusiv spaiile
libere). Numrul N se numete lungime a mesajului M. Vom considera c mesajul M este
reprezentat n codurile ASCII. Prin urmare, mesajul M poate fi privit ca un cortegiu numeric de
lungime N:
). ,..., ,..., (
1 N i
m m m M =
Fie c acest text trebuie criptat cu ajutorul unei chei, care la fel reprezint un cortegiu de
numere ). ,..., ,..., (
1 t i
d d d D =
n acest scop vom utiliza urmtorul algoritm (Cripto 3):
Pasul 1. n conformitate cu formulele (3.20) calculm
(
N n
2
log = i
(
. max log
2 i
m k =
Pasul 2. Formm matricea
M
A cu numrul de linii N i numrul de coloane k. Elementele
ij
m de
pe linia i a matricei
M
A reprezint cifrele lui M m
i
e scris n baza 2, adic }. 1 , 0 { e
ij
m Deci
calculm aceste elemente. Dac numrul M m
i
e n baza 2 are mai puin de k cifre el se
completeaz cu zerouri n faa acestor cifre pn la numrul de cifre k.
Pasul 3. Se genereaz aleator cheia, care este un cortegiu cu k componente. Fiecare component
la rndul su este un cortegiu cu lungimea aleas aleatoriu. Deci, se genereaz aleatoriu k numere
, ,..., ,
2 1 k
o o o
care stabilesc aceste lungimi, toate cuprinse ntre 0 i , 1 2
t
valoarea lui fiind 3 sau 4 n
funcie de lungimea aleas a cheii. Apoi, pentru fiecare component i a cheii se genereaz
i
o
numere diferite cuprinse la fel ntre 0 i , 1 2
t
completnd astfel componentele acestei chei. Se
aranjeaz toate componentele cheii n ordine cresctoare.
Pasul 4. Alctuim matricea cheii care particip la adunarea modulo 2 cu matricea mesajului.
Aceasta este o matrice
M
D cu numrul de linii
t
2 i numrul de coloane k. Pentru acesta
116
parcurgem de toate numerele de la 0 la 1 2
t
i verificm dac ele aparin cortegiului
componentei respective a cheii. n cazul cnd aparine n linia respectiv i coloana respectiv a
lui
M
D se scrie 1, n caz contrar se scrie 0.
Pasul 5. Se opereaz suma modulo 2 a matricelor
M
A i
M
D , cazul n care nu ajung linii n
M
D ele se iau de la nceputul acestei matrice. n rezultat se obine matricea
M
C cu numrul de
linii N i numrul de coloane k.
Pasul 6. Pentru fiecare linie a acestei matrice calculm un numr n baza 10 considernd
elementele acestei linii n calitate de cifre ale unui numr n baza 2:
. , 0 , 2
1
N i c c
k
j
j k
ij i
= =


Obinem astfel textul cifrat reprezentat prin cortegiul
). ..., ,..., (
1 N i
c c c c C = =
Pasul 7. STOP. Cortegiul C conine mesajul M n varianta criptat.

Sistemul dat este foarte rapid, decriptarea se efectueaz cu o exactitate de 100% (n toate
testele efectuate nu au fost depistate abateri, ele nici nu pot s apar avnd n vedere principiul
matematic de funcionare a algoritmului) i datorit faptului c cheile se schimb de la un mesaj
la altul, dar i n timpul criptrii mesajului, algoritmul dat este unul foarte sigur.
n Tabelul 3.4 i n Figura 3.143.17 sunt prezentate unele date statistice referitoare la
funcionarea sistemului Cripto 3 n comparaie cu sistemul AES (n Anexa 2 sunt prezentate o
serie mai complet de figuri). Pentru algoritmul Cripto 3 testele sunt efectuate pentru cazurile
cnd cheia are lungimea de 186 i respectiv 743 de bii. Aceste lungimi sunt n funcie de i se
obin pentru valorile lui egale cu 3 i respectiv 4. Pentru valori mai mari ale lui mrimea cheii
lui Cripto 2 nu poate fi comparat cu cheia lui AES. Pentru algoritmul AES am testat toate trei
variante, adic AES-128, AES-192 i AES-256. Testele au fost efectuate la calculatorul cu
procesor AMD Phenom-II cu 3 nuclee, 2.8 GHz, 2 GB RAM.
Tabelul 3.4. Date statistice de lucru pentru algoritmii de criptare Cripto 3 i AES
Sistemul de criptare
Numrul de
simboluri n mesaj
Timpul pentru
criptare
Timpul pentru
decriptare
Cripto 3 186 ( =3)
Cripto 3 743 ( =4)
0,01
0,014
0,005
0,014
AES 128
AES 192
AES 256
100 0,03
0,03
0,03
0,03
0,03
0,03
117
Cripto 3 186 ( =3)
Cripto 3 743 ( =4)
0,013
0,015
0,08
0,015
AES 128
AES 192
AES 256
200 0,03
0,04
0,04
0,04
0,04
0,05
Cripto 3 186 ( =3)
Cripto 3 743 ( =4)
0,016
0,016
0,012
0,016
AES 128
AES 192
AES 256
300 0,06
0,06
0,08
0,06
0,06
0,08
Cripto 3 186 ( =3)
Cripto 3 743 ( =4)
0,018
0,016
0,014
0,016
AES 128
AES 192
AES 256
400 0,06
0,08
0,09
0,07
0,08
0,09
Cripto 3 186 ( =3)
Cripto 3 743 ( =4)
0,02
0,016
0,015
0,016
AES 128
AES 192
AES 256
500 0,09
0,09
0,13
0,09
0,09
0,13
Cripto 3 186 ( =3)
Cripto 3 743 ( =4)
0,03
0,03
0,03
0,03
AES 128
AES 192
AES 256
1000 0,17
0,18
0,22
0,17
0,19
0,23
Cripto 3 186 ( =3)
Cripto 3 743 ( =4)
0,059
0,06
0,057
0,06
AES 128
AES 192
AES 256
2 000
0,39
0,42
0,45
0,40
0,41
0,45
Cripto 3 186 ( =3)
Cripto 3 743 ( =4)
0,086
0,09
0,087
0,09
AES 128
AES 192
AES 256
3 000 0,51
0,56
0,64
0,50
0,57
0,70
118
Cripto 3 186 ( =3)
Cripto 3 743 ( =4)
0,0138
0,14
0,0142
0,15
AES 128
AES 192
AES 256



5 000


0,8
0.92
1,09
0,8
0,97
1,15
Cripto 3 186 ( =3)
Cripto 3 743 ( =4)
0,277
0,28
0,286
0,31
AES 128
AES 192
AES 256
10 000
1,56
1,86
2,20
1,58
1,92
2,29
Cripto 3 186 ( =3)
Cripto 3 743 ( =4)
1,37
1,48
1,43
1,50
AES 128
AES 192
AES 256
50 000 7,84
9,21
10,94
7.85
9,61
11,41
Cripto 3 186 ( =3)
Cripto 3 743 ( =4)
2,71
2,93
2,91
3,02
AES 128
AES 192
AES 256
100 000 15,64
18,39
21,81
16,41
19,33
22,78
Cripto 3 186 ( =3)
Cripto 3 743 ( =4)
5,51
5,83
5,82
6,04
AES 128
AES 192
AES 256
200 000
31,21
36,80
43,54
32,77
38,40
45,55
Cripto 3 186 ( =3)
Cripto 3 743 ( =4)
8,30
8,74
8,84
8,97
AES 128
AES 192
AES 256
300 000
46,94
55,11
68,37
48,26
57,77
69,46
Cripto 3 186 ( =3)
Cripto 3 743 ( =4)
13,95
14,94
14,93
15,68
AES 128
AES 192
AES 256
500 000 78,98
91,99
109,01
80,82
96,40
114,02
119
Cripto 3 186 ( =3)
Cripto 3 743 ( =4)
28,59
30,82
31,52
34,02
AES 128
AES 192
AES 256
1 000 000
157,50
189,07
222,75
164,24
196,29
232,44
Cripto 3 186 ( =3)
Cripto 3 743 ( =4)
62,72
64,17
77,69
78,74
AES 128
AES 192
AES 256
2 000 000 320,05
369,98
441.88
333,04
389,01
461,48
Cripto 3 186 ( =3)
Cripto 3 743 ( =4)
99,74
102,99
134,40
136,20
AES 128
AES 192
AES 256
3 000 000 476,12
561,64
660,52
497,8
581,81
687,74
Cripto 3 186 ( =3)
Cripto 3 743 ( =4)
141,39
149,16
203,61
211,36
AES 128
AES 192
AES 256
4 000 000 638,46
762,99
889,90
675,04
791,75
924,97
Cripto 3 186 ( =3)
Cripto 3 743 ( =4)
190,55
197,71
296,15
288,66
AES 128
AES 192
AES 256
5 000 000 791,42
961,85
1106,59
819,11
986,84
1149,84
Criptare 100 - 1000
0
0,1
0,2
0,3
0,4
0,5
0,6
0,7
100 200 300 400 500 1000
Lungi mea mesaj ul ui (si mb.)
T
i
m
p
u
l

d
e

l
u
c
r
u

(
s
e
c
.
)
AES 256
AES 192
AES 128
Cripto 3 743
Cripto 3 186

Fig. 3.14. Diagram comparativ AESCripto 3 pentru mesaje de 100-1000 simboluri
120
Decriptare 100 - 1000
0
0,1
0,2
0,3
0,4
0,5
0,6
0,7
100 200 300 400 500 1000
Lungi mea mesaj ul ui (si mb.)
T
i
m
p
u
l

d
e

l
u
c
r
u

(
s
e
c
.
)
AES 256
AES 192
AES 128
Cripto 3 743
Cripto 3 186

Fig. 3.15. Diagram comparativ AESCripto 3 pentru mesaje de 100-1000 simboluri

Criptare 10 000 - 1 000 000
0
100
200
300
400
500
600
700
10000 50000 100000 200000 300000 500000 1000000
Lungi mea mesaj ul ui (si mb.)
T
i
m
p
u
l

d
e

l
u
c
r
u

(
s
e
c
.
)
AES 256
AES 192
AES 128
Cripto 3 743
Cripto 3 186

Fig. 3.16. Diagram comparativ AESCripto 3 pentru mesaje de 10000-1000000 simboluri
Decriptare 10 000 - 1 000 000
0
100
200
300
400
500
600
700
10000 50000 100000 200000 300000 500000 1000000
Lungi mea mesaj ul ui (si mb.)
T
i
m
p
u
l

d
e

l
u
c
r
u

(
s
e
c
.
)
AES 256
AES 192
AES 128
Cripto 3 743
Cripto 3 186

Fig. 3.17. Diagram comparativ AESCripto 3 pentru mesaje de 10000-1000000 simboluri
121
Din Tabelul 3.4 i din Figurile 3.143.17 observm c criptarea i decriptarea se
efectueaz mai rapid n sistemul Cripto 3 dect n AES, indiferent de lungimea cheii i nectnd
la faptul c una dintre aceste chei 743 este de circa 3 ori mai mare ca la AES-256. n acelai
timp criptarea n Cripto 3 i decriptarea dureaz la fel. Pentru cheile de mrime 186 i 743 de bii
ale algoritmului Cripto 3 timpul de lucru practic nu difer. Odat cu creterea lui crete i
mrimea cheii, i pentru valori ale lui >4 mrimea cheii crete exponenial ce implic o cretere
a timpului de lucru la criptare i decriptare. Aceast diferen se datoreaz faptului c odat cu
creterea cheii se va cheltui mai mult timp pentru criptarea i decriptarea acestei chei, pe cnd
timpul net de criptare i decriptare a mesajului nu este afectat de mrimea cheii. De aceea,
aplicnd pentru criptarea i decriptarea cheilor un algoritm de criptare mai econom se va reduce
i timpul total de lucru al algoritmului Cripto 3.
Pentru algoritmul Cripto 3 la moment nu sunt cunoscute metode eficiente de spargere, iar
faptul c cheia este schimbat de la un mesaj la altul complic i mai mult eventualele atacuri.
Mai mult dect att, exist posibilitatea de modifica cheia i pe parcursul criptrii aceluiai
mesaj.
Din cele expuse rezult c algoritmul de criptare Cripto 3 este mai are o vitez sporit
fa de AES pentru lungimi de chei ale lui Cripto 3 de 186 i 743 de bii i pentru ntreg spectrul
de chei al lui AES. Dac mai lum n consideraie i faptul criptrii cheilor la Cripto 3, ele fiind
schimbte la fiecare mesaj, ceea ce face practic imposibil spargerea lui, atunci Cripto 3 poate fi
cu succes utilizat pe scar larg n procesul de criptare a informaiei.
Funciile booleene sunt un caz particular al funciilor din logica q-valent i, n acest
context, este natural s fie naintat problema analizei funciilor q-valente n perspectiva
elaborrii sistemelor de criptare bazate pe aceste funcii. Astfel de proprieti sunt analizate n
Capitolul 2, paragraful 2.3.











122
3.4. Sistem de criptare bazat pe funcii de logica q-valent
Algoritmul Cripto 3 poate fi generalizat i pentru cazul cnd funciile booleene se
nlocuiesc cu cele din logica q-valent.
Fie funciile
k j
F F F ,..., ,...,
1
din logica q-valent. n aa caz att variabilele
n
x x ,...,
1
ct i
funciile
j
F admit valori din mulimea }. 1 ,..., 1 , 0 { = O q n Figura 3.12 O e
ij
m i n Figura 3.13
O e
ij
d Aceste matrice reprezint sisteme de funcii q-valente. Formulelor (3.19), (3.20) i (3.21)
din 3.3 le corespund respectiv formulele, (3.27).(3.28) i (3.29):

u t m m m m
t i
s = ), ,..., ,..., (
0
,
, unde . , 0 ,
1
t i q m m
k
j
j k
ij i
= =

(3.27)
n =log
q
t, k =log
q
max m
i
(3.28)

u t d d d d
t i
s = ), ,..., ,..., (
0
, . , 0 ,
1
t i q d d
k
j
j k
ij i
= =

(3.29)

Compunem o matrice nou
) (modq A A A
D M C
+ = ,
Unde
( ) q d m c
ij ij ij
mod + = .
Aa cum pentru q matrice
D
A are loc relaia
0 ) (mod ... = + + + q A A A
ori q de
D D D

(matricea nula),

atunci egalitilor (3.22) i (3.23) le corespund respectiv egalitile (3.30) i (3.31):

C D M
A q A A = + ) (mod ,
M D C
A q A q A = + ) (mod ) 1 ( ( 3.30)

u t c c c c
t i
s = ), ..., ,..., (
0

, t i q c c
k
j
j k
ij i
, 0 ,
1
= =

i ) (modq d m c
ij ij ij
+ = ( 3.31)
Din (3.31) rezult c dac pentru criptarea cortegiului m aplicm matricea
D
A atunci
pentru decriptarea acestui vector aplicm matricea . ) 1 (
D
A q
123
Din (3.29) rezult c componentele
h
d ale cortegiului d aparin mulimii } 1 ,..., 1 {
k
q
(0 nu se include n aceast mulime deoarece starea 0....0 nu schimb componentele cortegiului
m). Pentru compunerea acestui cortegiu lum ultimele t variabile din mulimea
} ,..., ,..., {
1 n n
x x x
t
, alegem ntr-un mod aleator
t
q numere din mulimea } 1 ,..., 1 {
k
q i cu aceste
numere construim cortegiul
, 1 ), ,..., ,..., (
1
0
t q d d d d
q
h
s =

t
t
(3.32)

care reprezint cheia privat. Componentele
h
d se pot repeta de un numr arbitrar de ori. Prin
urmare, numrul de chei private diferite este
. ) 1 (
t

q k
q =

Utiliznd ( 3.31 ) construim cortegiul c . Din (3.30) rezult c

. , 0 , ) )(mod ) 1 ( (
1
t i q q d q c m
k
j
j k
ij ij i
= + =



Algoritmul generalizat obinut este numit Cripto 4. Pentru el de asemenea a fost scris
soft-ul respectiv n mediul de calcul Mathematica. Acest algoritm este cu o vitez variabil n
funcie de valorile lui q, t si t . De exemplu, pentru 4 , 3 , 2000000 = = = t q t durata criptrii i
decriptrii mesajului este mai sczut fa aceeai parametri n Cripto 3. n caz general pentru
determinarea valorilor optimale pentru parametrii q ,t i t dar i pentru i interdependena dintre
aceti parametri i timpul de lucru al algoritmului este necesar o investigare mai profund.
Pentru cazul n care 2 > q cheia privat poate fi reprezentat i prin submulimi de
coloan. n acest caz n cortegiul ) ,..., ,..., (
1 k j
S S S S = fiecare component
j
S reprezint mulimi
de forma }} { },..., { }, {{
1 2 1 q
j j j
S S S , unde pentru orice } 1 ,..., 1 { e q c
c
j
S este o submulime a
mulimii }, 1 ,..., 1 , 0 {
t
q iar pentru orice } 1 ,..., 1 { , e q s k are loc C =
s
j
k
j
S S . nsa odat cu
creterea lui q apar i unele dificulti n reprezentarea i transmiterea cheii private. Aici la fel
sunt necesare investigaii adiionale.




124
3.5. Concluzii la capitolul 3
Capitolul curent conine implementarea practic a rezultatelor teoretice realizate n
Capitolul 2. Aceast implementare const n elaborarea a patru algoritmi de criptare i elaborarea
softului pentru realizarea acestor algoritmi. Softul dat este elaborat n mediul de calcul de
Mathematica, ceea ce este suficient pentru testare i obinere a datelor comparative n raport cu
ali algoritmi utilizai n prezent. Pentru realizarea algoritmilor de criptare n scopuri practice este
necesar de a ale implementa n unul din limbajele moderne, (C++, C#etc.).
Doi algoritmi dintre cei patru au la baz numerele prime mari. Datorit algoritmului
determinist de generare a numerelor prime mari elaborat n tez obinerea acestor numere nu
prezint dificultate. Primul algoritm Cripto 1 este o modificare a renumitului algoritm RSA care
se utilizeaz pe larg n prezent dar spre deosebire de acesta folosete n loc de o singur pereche
de chei un set de perechi. Acest fapt mrete rezistena sistemului pe de o parte dac se folosesc
chei de aceleai dimensiuni ca la RSA, viteza rmnnd neschimbat, iar pe de alt parte sporesc
viteza de lucru a sistemului dac micorm dimensiunea cheilor i mrim numrul lor.
Algoritmul Cripto 2 este un sistem simetric care folosete numerele prime n calitate de
chei i este realizat n baza matricelor multidimensionale care reprezint mulimile de relaii
multi-are. De asemenea n baza algoritmului st dezvoltarea polinomial a numerelor foarte
mari. Pentru a sparge acest algoritm este necesar de a rezolva un sistem ecuaii polinomiale cu
coeficieni nedeterminai, ceea ce, ncepnd cu un anumit grad al polinomului, este imposibil din
punct de vedere practic. Viteza de lucru a acestui algoritm este mai mic dect a algoritmului
RSA dar mai mare ca la algoritmul simetric AES. Algoritmul Cripto 2 poate fi aplicat pentru
criptarea informaiei cu grad sporit de confidenialitate, dar nu poate fi implementat cu resurse
reduse.
Pentru elaborarea algoritmilor cu o vitez de lucru sporit au fost aplicate matricele
multidimensionale i funciile booleene (algoritmul Cripto 3) sau funciile din logica q-valent
(algoritmul Cripto 4). n procesul de realizare a algoritmilor se efectueaz operaii logice cu
aceste funcii ceea ce determin timpul mic de lucru al acestor algoritmi, acest timp fiind mai
mic dect la algoritmul AES. Acest fapt, dar i resursele reduce necesare, permite implementarea
algoritmilor dai pe diverse carduri.
Criptanaliza algoritmului Cripto 1 se bazeaz pe aceleai principii ca la RSA, de aceea se
poate afirma cu certitudine securitatea lui Cripto 1. Pentru algoritmii Cripto 2, Cripto 3, i
Cripto 4 la momentul actual nu sunt cunoscute metode de criptanaliz n afar de atacul cu for
brut. Lund n consideraie mulimea de chei la fiecare dintre aceti algoritmi acest atac nu are
anse practice de realizare. Mai mult dect att, la aceti trei algoritmi cheile se modific de la
mesaj la mesaj i se transmit criptate cu unul din algoritmii siguri odat cu criptograma ceea ce
asigur o securitate sporit algoritmilor.

125
CONCLUZII GENERALE I RECOMANDRI

Teza este dedicat analizei proprietilor mulimilor de relaii multi-are reprezentate cu
ajutorul matricelor multidimensionale n scopul aplicrii acestor proprieti la elaborarea
metodelor de criptare a informaiei cel mai sigur mod de protecie a ei. n acelai context au
fost cercetate unele proprieti ale funciilor booleene i a funciilor din logica q-valent, aceste
funcii fiind reprezentate cu ajutorul submulimilor de coloan. Sunt demonstrate o serie de
teoreme care permit elaborarea unor algoritmi de criptare eficieni din punct de vedere al
securitii i a vitezei de lucru.
n baza teoremelor demonstrate au fost realizateurmtoarele:
un algoritm non-probabilistic eficient de generare a numerelor prime mari;
un algoritm de criptare (Cripto 1) care este o modificare a algoritmului cu cheie
public RSA i care utilizeaz seturi de chei, ceea ce poate mri viteza de lucru
sau poate spori rezistena sistemului;
un algoritm de criptare (Cripto 2) ce utilizeaz n calitate de chei numerele mari
prime i funcioneaz n baza dezvoltrii polinomiale a numerelor ntregi i a
matricelor multidimensionale;
doi algoritmi de criptare n baza crora se afl matricele multidimensionale i
funciile booleene (Cripto 3) sau funciile din logica q-valent (Cripto 4), timpul
de lucru al acestor algoritmi fiind mult mai mic dect la algoritmul simetric AES
utilizat n prezent n calitate de standard naional n USA.
Astfel, a fost soluionat o problema tiinific important: au fost propuse metode
eficiente de criptare a informaiei care depesc metodele actuale dup un ir de parametri
(timpul de criptare, volumul memoriei, securitatea algoritmului etc). A fost dezvoltat baza
teoretic pentru aceste metode care const n proprieti noi ale funciilor booleene, funciilor
q-valente i a matricelor multidimensionale.
Toate cercetrile i rezultatele realizate n tez se bazeaz, n cea mai mare parte, pe
noiunile i teoremele fundamentale din teoria numerelor, teoria informaiei, matematica discret,
algebra polinoamelor i au ca scop de a propune instrumentarii noi, simple n realizare i
eficiente pentru criptarea/decriptareainformaiei.
Printre direcii de cercetare ulterioar, care s foloseasc metodele elaborate i ideile
conceptuale utilizate n cadrul lor, pot servi: extinderea spectrului de probleme care pot fi
soluionate cu ajutorul mulimilor de relaii, a matricelor multidimensionale. Un interes sporit l
au funciile booleene cu anumite proprieti de neliniaritate funciile bent [41], [58],[125],
[126], [127], care pot fi gsite aplicnd proprietile funciilor booleene demonstrate n tez.
126
Aceste proprieti pot fi aplicate i la determinarea coeficienilor polinomului Zhegalkin, el fiind
o metod eficient de reprezentare a funciilor booleene. n scopuri criptografice o perspectiv
promitoare o prezint aplicarea funciilor booleene cu proprietile examinate n tez pentru
generarea cheilor sistemelor de criptare (n deosebi aplicarea noiunii de derivat a funciilor
booleene reprezentate prin submulimi de coloan).
Teza prevede i aspectele practice: a fost creat un pachet de programe simplu i uor de
folosit. Programele au fost implementate n mediul de calcul Mathematica, dar este binevenit
realizarea lor n unul dintre limbajele moderne cum ar fi C++, C# sau altele de acest fel.



























127
BIBLIOGRAFIE

1. Adleman L., Pomerance C. and Rumley R., On Distinguishing Prime Numbers from
Composite Numbers, Annals of Mathematics 117 (1), 1983, pp. 173206
2. Bacon F., De Augmentis Scientarum, Book 6, Chapter i, 1889
3. Bauer F., An error in the history of rotor encryption devices, Cryptologia 23(3), J uly 1999,
page 206
4. Ben-Aroya I., Biham E., Differential Cryptanalysis of Lucifer, J ournal of Cryptology 9(1),
pp. 2134, 1996
5. Bernstein D. J ., Buchmann J ., Dahmen E. (Editors), Post-Quantum Cryptography,
Springer, 2008
6. Biham E. and Biryukov A., An Improvement of Davies' Attack on DES, J . Cryptology
10(3): 195206 (1997)
7. Biham E. and Shamir A., Differential Cryptanalysis of the Full 16-Round DES, Advances
in Cryptology, Proceedings of CRYPTO '92, 1992, pp. 487496
8. Biham E., and Shamir A., Differential Cryptanalysis of the Data Encryption Standard,
Springer Verlag, 1993
9. Biham E., Shamir A., Differential Cryptanalysis of Snefru, Khafre, REDOC-II, LOKI and
Lucifer, CRYPTO 1991: pp. 156171
10. Biryukov A., Khovratovich D., Related-key Cryptanalysis of the Full AES-192 and AES-
256, Luxemburg Univ. 2009
11. Biryukov A., Dunkelman O., Keller N., Khovratovich D., Shamir A., Key Recovery Attacks
of Practical Complexity on AES. Variants With Up To 10 Rounds, Crypto 2009 rump
session
12. Bochmann D., Posthoff C., Binare Dinamishe Sisteme, Academic-Verlag, Berlin, 1981
13. Bowers M., (pseudonym Zembie), Major F. W. Kasiski Cryptologist, The Cryptogram,
Vol. XXXI(3) (J anuary-February 1964) pp. 53,58-59
14. Bulat M., Bivol L., Unele transformri i aplicaii ale funciilor booleene, Analele ATIC,
Chiinu, Evrica, 2002.
15. Bulat M., Cataranciuc S., Zgureanu A., A method for calculating the polynomial
coefficients Zhegalkin. International Conference dedicated to the 80th anniversary of P.
Soltan. Chiinu, 2011
16. Bulat M., Distribuia numerelor prime n matrice multidimensionale, Analele ATIC.
Chiinu, Evrica, 2003, pp.
17. Bulat M., Isomorfismo de conjundtos de relaciones, Revista de matematica: Teoria y
Aplicaciones, 2001, 8(1), pp. 33-46
128
18. Bulat M., Isomorsmo de grandes sistemas, Acta Academia 2001, Evrica, Chiinau, pp.
161170
19. Bulat M., Isomorphic sistems of graphs, 3-rd European Congress of Mathematics, Section
06: Discrete Mathematics and Computer Science, Poster number 236, Barcelona
20. Bulat M., Leon D., Bivol L., Ciobanu I., Zgureanu,A., Generadores de numeros primos y
factorizadores de numeros compuestos, Revista de Matematica: Teoria y Aplicaciones,
2006, 13(1) CIMPA-UCR-CCSS: pp. 1-15
21. Bulat M., Unele aplicaii ale matricelor multidimensionale, Analele ATIC-2002, v.I (II),
pp. 7582
22. Bulat M., Zgureanu A., Ciobanu I., Bivol L., Generating of prime numbers based on the
multidimensional matrices, International Algebraic Conference dedicated to the 100
th

anniversary of D. K. Faddeev. St Petersburg, Russia, 2007, pp. 98-99
23. Bulat M., Zgureanu A., Ciobanu I., Bivol L., Sisteme de criptare cu chei vectoriale,
Conferina tiinific internaional. Modelare matematic, optimizare i tehnologii
informaionale. Chiinau, 19-21 martie, 2008. ATIC, pp. 281 285
24. Bulat M., Zgureanu A., Ciobanu I., Bivol L., The inverse transformations of
multidimensional matrices, ASADE Moldova, August 21, 2007, pp. 34-34
25. Bulat M., Zgureanu A., Ciobanu Ia., Izba V., Sistem de criptare bazat pe derivarea
funciilor booleene. Conferina tiinific internaional. Modelare matematic, optimizare
i tehnologii informaionale. Chiinau, 26-28 martie, 2010, pp. 132-141
26. Cataranciuc S., G-complexul de relaii multi-are. Analele tiinifice al Universitii de Stat
din Moldova. Seria tiine fizico-matematice. Chiinu 2006, pp. 119-122
27. Cataranciuc S., Soltan P., The generalized complex of multi-ary relations and its homology.
2008, Vol. 6, Cluj-Napoca, Romania, pp. 17-144
28. Cataranciuc S., Soltan P., Abstract complexes, their homologies and applications. Buletinul
Academiei de tiine a Republicii Moldova, 2010, 24(63), pp. 31-58
29. Campbell K., Wiener M., DES is not a Group, CRYPTO 1992: pp. 512520
30. Chaum D. and Evertse J . H. , Cryptanalysis of DES with a reduced number of
rounds, in Lecture Notes in Computer Science 218; Advances in Cryptology: Proc. Crypto
'85, H. C. Williams, Ed., Santa Barbara, CA, Aug. 18-22, 1985, pp. 192-211. Berlin:
Springer-Verlag, 1986
31. Cover T., King R., A Convergent Gambling Estimate of the Entropy of English, IEEE
Transactions of Information Theory, v. IT-24, n. 4, 1978, pp. 413-421
32. Daemen J ., Rijmen V., The Design of Rijndael: AES - The Advanced Encryption Standard,
Springer-Verlag, 2002
129
33. Data Encryption Standard, National Bureau of Standards, Federal Information Standard 46,
USA; 1977
34. De Mulder Y., Wyseur B., and Preneel B., Cryptanalysis of a Perturbated White-Box AES
Implementation, Progress in Cryptology - INDOCRYPT 2010. 11th International
Conference on Cryptology in India. Hyderabad, India, December 12-15, 2010, pp. 292-310
35. Deavours C., Unicity points in Criptanalysis, Criptologia, v. 1, 1977, pp. 46-68
36. Devours C., Kahn D., Kruh L., Mellen G., Winkel B., Cryptology: Machines, history and
Methods, Artech House, 1989
37. Devours C., Kruh L., Machine Cryptography and Modern Cryptanalysis, Artech House,
1985
38. Diffie W. and Hellman M. E., New Directions in Cryptography. IEEE Transactions on
Information Theory, vol. IT-22, Nov. 1976, pp. 644654
39. Diffie W. and Hellman M., Exhaustive Cryptanalysis of the NBS Data Encryption
Standard, IEEE Computer 10 (6), 1977, pp. 74-84
40. Diffie W. and Hellman M., Privacy and authentication: An introduction to cryptography,
Proc. IEEE, vol. 67, 1979, pp. 397427
41. Dillon J . F., A survey of bent functions. NSA Technical J ournal unclassied 1972; pp.
191215.
42. Ding C, Xiao G, Shan W. The stability theory of stream ciphers. LNCS, vol. 561, Berlin:
Springer; 1991
43. El Gamal T., A Public Key Cryptosystem and Signature Scheme Based on Discrete
Logarithms, IEEE Transactions in Information Theory 31 (4), 1985, pp. 469472
44. Feistel H., Cryptography and computer privacy, Scientic American 1973; 228: pp. 1523
45. Ferguson N. and Schneir B., Practical Cryptography, Wiley N. Y. (2003)
46. Ferguson N., Kelsey J ., Lucks S., Schneier B., Stay M., Wagner D. et al. Improved
cryptanalysis of Rijndael. In: Fast software encryptionNew York 2000. LNCS, vol. 1978,
Berlin: Springer, 2001, pp. 213230
47. Ferguson N., Schroeppel R., Whiting D., A simple algebraic representation of Rijndael. In:
Selected areas crypt. 2001. LNCS, vol. 2259. Berlin: Springer; 2001, pp. 149165
48. FIPS PUB 197, The official AES standard
49. FIPS PUB 46-3, DES, (Federal Information Processing Standards Publication). NIST,
1999.
50. Forr R., Methods and instruments for designing S-boxes, J ournal of Cryptology 1990, 2,
pp. 115130
51. Fourche H., Cryptanalysis: A Study of Ciphers and their Solution, Dover Publications, 1939
130
52. Friedman W. F., Military Cryptanalysis Part I, Monoalphabetic Substitution Systems,
United States Government Printing Office, Washington, 1939
53. Friedman W. F., Military Cryptanalysis Part II: Simpler Varieties of Polyalphabetic
Substitution Systems, United States Government Printing Office, Washington, 1938
54. Gorski M., Lucks S., New Related-Key Boomerang Attacks on AES (Full Version).
Information Security and Privacy: 14th Australasian Conference, Acisp 2009
55. Gustavus J . Simmons, editor, Contemporary cryptology: the science of information
integrity, IEEE Press, 1992
56. Henk C. A. van Tilborg (Editor), Encyclopedia of Cryptography and Security, Springer
Science+Business Media, Inc., 2005
57. Hoffstein J ., Pipher J ., Silverman J . H., An Introduction to Mathematical Cryptography,
Springer Science+Business Media, LLC, 2008
58. Hou X. D. and Langevin Ph., Results on bent functions. J ournal of Combinatorial Theory
(A), 80:, 1997, pp. 232246
59. Kahn D., Codebreaking and the Battle of the Atlantic, US Air Force Academy, Colorado
Springs, CO, 1994
60. Kahn D., The Codebreakers - The Story of Secret Writing, abridget ed. New York, NY:
Signet, 1973
61. Karl de Leeuw, The Dutch invention of the rotor machine, 1915 - 1923." Cryptologia 27(1),
J anuary 2003, pp. 7394
62. Katz J . & Lindell Y., Introduction to Modern Cryptography, Chapman & Hall/CRC (2008)
63. Kilian J . and Rogaway Ph, How to protect DES against exhaustive key search, Advances in
Cryptology Crypto96, Springer-Verlag (1996), pp. 252267
64. Koblitz N. A., Course in Number Theory and Cryptography, Springer-Verlag 1987
65. Kollmitzer C., Pivk M. (Editors), Applied Quantum Cryptography, Springer, 2010
66. Konheim A.G., Cryptography: A Primer, J ohn Wiley and Sons, New York, 1981
67. Konheim Alan G., Computer Security and Cryptography, John Wiley & Sons, Inc., 2007
68. Kranakis E., Primality and Cryptography, Stuttgart: Teubner, Wiley, 1986
69. Mala H., Dakhilalian M., Rijmen V. and Modarres-Hashemi M., Improved Impossible
Dierential Cryptanalysis of 7-Round AES-128. Progress in Cryptology - INDOCRYPT
2010. 11th International Conference on Cryptology in India, Hyderabad, India, December
12-15, 2010, pp. 282-291
70. Matsui M., Linear cryptanalysis method for DES cipher, Advances in Cryptology
EUROCRYPT93, Workshop on the theory and application of cryptographic techniques
(Lofthus, Norway. May 2327, 1993). Proc. Berlin: Springer, 1994
131
71. Matsui M., On correlation between the order of S-boxes and the strength of DES. In: Adv.
In crypt.Eurocrypt 94. LNCS, vol. 950. Berlin: Springer; 1995. p. 366375
72. Matsui M., The First Experimental Cryptanalysis of the Data Encryption Standard, Lecture
Notes in Computer Science 839: 111. 1994.
73. Meier W., Staffelbach O., Nonlinearity criteria for cryptographic functions, In: Adv.
In crypt.Eurocrypt 89. LNCS, vol. 434. Berlin: Springer; 1990, pp. 549562.
74. Menezes A., Van Oorschot P. C., Vanstone S. A., Handbook of applied cryptography,
CRC Press, 1997
75. Minu P., Teoria numerelor, Vol. 1, EdituraCrengua Gldu, Iai 1997
76. Mogollon M., Cryptography and Security Services: Mechanisms and Applications, New
York, Cybertech Publishing, 2008
77. National Bureau of Standards, Data Encryption Standard, FIPS PUB 46 (J an. 1977)
78. National Bureau of Standards, DES Modes of Operation, FIPS PUB 81 (Dec. 1980)
79. National Institute of Standards and Technology, Advanced Encryption Standard (AES),
FIPS PUB 197 (Nov. 2001)
80. NIST, Modes of operations for symmetric block ciphers (available at:
http://csrc.nist.gov/CryptoToolkit/modes/)
81. NIST, Request for AES proposals, http://csrc.nist.gov/CryptoToolkit/aes/pre-
round1/aes_.9709.htm
82. Oswald E., Daemen J ., Rijmen V., AES The state of the art of Rijndaels security,
Technical report (October 30, 2002), http://citeseerx.ist.psu.edu/viewdoc/ summary?doi=
10.1.1.3.164
83. Paar C., Pelzl J ., Understanding Cryptography. A Textbook for Students and Practitioners,
Springer, 2009
84. Pollard J . M., A Monte Carlo method for factorization. BIT, 15(3): pp. 331-334, 1975
85. Pomerance C., Recent Developments in Primality Testing, The Mathematical Intelligencer,
v. 3, n. 3, 1981, pp. 97105
86. Prouff E. and Roche T., Attack on a Higher-Order Masking of the AES Based on
Homographic Functions. Progress in Cryptology - INDOCRYPT 2010. 11th International
Conference on Cryptology in India. Hyderabad, India, December 12-15, 2010, pp. 262-281
87. Rabin M. O., Probabilistic Algorithm for Testing Primality, SIAM J ournal on
Computing, v. 9, n. 2, May 1980, pp. 273-280
88. Rabin M.O., Probabilistic Algorithm for Testing Primality, J ournal of Number Theory, v.
12, n. 1, Feb 1980, pp. 128138
132
89. Rijmen V., Cryptanalysis and design of iterated block ciphers, doctoral dissertation,
October 1997
90. Rivest R. L., Shamir A., Adleman L., A method for obtaining digital signatures and public
key cryptosystems, Comm ACM 21, 1978, pp. 120126
91. Rivest R. L., The RC5 encryption algorithm, In: Fast software encryptionLeuven 1994.
LNCS, vol. 1008. Berlin: Springer; 1995, pp. 8696
92. Rueppel R. A., Stream ciphers, In: G. J . Simmons, Editor, Contemporary CryptologyThe
Science of Information Integrity, IEEE Press, New York, 1992, pp. 65134
93. Salomaa A., Criptograe cu chei publice, Ed. Militar, 1994
94. Schneier B., Applied Cryptography, Second Edition. John Wiley & Sons, 1996
95. Schneier B., Description of a New Variable-Length Key, 64-bit Block Cipher (Blowfish).
Fast Software Encryption 1993: 191204
96. Schneier B., The Blowfish Encryption Algorithm. One Year Later, Dr. Dobb's J ournal,
20(9), p. 137, September 1995.
97. Shannon C. E., A Mathematical Theory of Communication, Bell System Technical J ournal.
v. 27, n. 4, 1948, pp. 379-426
98. Shannon C. E., Communication Theory of Secrecy Systems, Bell System Technical J ournal.
v. 28, n. 4, 1949, pp. 656-715
99. Shannon C. E., Predication and Entropy in Printed English, Bell System Technical J ournal.
v. 30, n. 1, 1951, pp. 50-64
100. Shoup V., A computational introduction to number theory and algebra, Cambridge
University Press, 2005
101. Smith, Laurence D. Substitution Ciphers. Cryptography the Science of Secret Writing,
Dover Publications. pp. 81. 1943
102. Sorkin A., LUCIFER: a cryptographic algorithm, Cryptologia, 8(1), 22-35, 1984
103. Stinton D., Cryptography, Theory and Practice, Chapman& Hall/CRC, 2002
104. Tuchman W. L. and Meyer C., Efficacy of the Data Encryption Standard in Data
Processing, Proceedings of Compcon78, 1978, pp. 340347
105. Vernam G., Cipher Printing Telegraph Systems For Secret Wire and Radio Telegraphic
Communications, Journal of the IEEE, Vol 55, pp. 109-115 (1926)
106. Whitfield D. and Hellman M., Exhaustive Cryptanalysis of the NBS Data Encryption
Standard, IEEE Computer 10(6), J une 1977, pp. 7484
107. Zgureanu A., Bulat M., Sisteme de criptare bazate pe funcii booleene. Conferina
Internaional ICT+ Tehnologii informaionale i de comunicaii - 2009, 19 20 mai,
Chiinu, 2009: pp.
133
108. Zgureanu A., Cataranciuc S., Encryption systems based on multidimensional matrixes,
Tiberiu Popoviciu seminar, Cluj-Napoca 6-7 september, 2010, pp. 99-110
109. Zgureanu A., Information encryption systems based on Boolean functions. The Computer
Science J ournal of Moldova, vol.18, no.3(54), 2010, pp. 319-335
110. Zgureanu A., Sisteme de criptare cu chei variabile. Analele ATIC-2007-2008, vol. I (XII),
Chiinu, Evrica, 2009, pp. 92-98
111. Zhang Ch., Yu Q., and Wei Liu X. An Algorithm Based Concurrent Error Detection
Scheme for AES, Cryptology and Network Security. 9th International Conference, CANS
2010, Kuala Lumpur, Malaysia, December 12-14, 2010, pp. 31-43
112. . ., . ., ,
, , 2009
113. ., ., ,
Acta Academia, Chiinu, 1999. pp. 93-101.
114. . ., ,
, , 1999, ,-40
115. . .
. .
""., 1972, . 49-64
116. . ., . ., ,
. . , 1978.
117. . ., . ., . ., . ., - n-
. , (-08),
, , 2008: pp.
66-67
118. ., , Analele ATIC-
2001, v.I (I), pp. 4047
119. .., .., .., .,
, 2006
120. .., .., (1792-1871), , , 1973
121. ., ( ), .: , 2005
122. ., . Acta Academia,
Chiinu, 2002. pp. 57-72
123. ., ,
Acta Academia. Chiinu, 1999. pp. 101-127
124. . ., , 1960
134
125. . ., : - ,
LAP. Saarbrucken, Germany, 2011
126. . ., -. ,
, 2010. 17, 1. pp. 3362
127. . ., : - .
- .
2008
128. ., . , , 2003
129. .. . .
. .: , 2009. 352 .
130. . . . 2- . .: , 1986. 384.
2.





























135
ANEXA 1. Diagrame. Reflectarea timpului de criptare-decriptare

Criptare 100 - 1 000
0
0,01
0,02
0,03
0,04
0,05
0,06
0,07
100 200 300 400 500 1000
Lungi me mesaj (si mb.)
T
i
m
p
u
l

d
e

l
u
c
r
u

(
s
e
c
.
)
RSA
Cripto 1

Fig. A1.1. Diagram comparativ RSACripto 1 pentru mesaje de 100-1000 simboluri

Decriptare 100 - 1 000
0
5
10
15
20
25
30
35
40
100 200 300 400 500 1000
Lungi me mesaj (si mb.)
T
i
m
p
u
l

d
e

l
u
c
r
u

(
s
e
c
.
)
RSA
Cripto 1

Fig. A1.2. Diagram comparativ RSACripto 1 pentru mesaje de 100-1000 simboluri

Criptare 100 - 1 000
0
0,01
0,02
0,03
0,04
0,05
0,06
0,07
100 200 300 400 500 1000
Lungi me mesaj (si mb.)
T
i
m
p
u
l

d
e

l
u
c
r
u

(
s
e
c
.
)
RSA
Cripto 1

Fig. A1.3. Diagram comparativ RSACripto 1 pentru mesaje de 100-1000 simboluri
136
Decriptare 100 - 1 000
0
5
10
15
20
25
30
35
40
100 200 300 400 500 1000
Lungi me mesaj (si mb.)
T
i
m
p
u
l

d
e

l
u
c
r
u

(
s
e
c
.
)
RSA
Cripto 1

Fig. A1.4. Diagram comparativ RSACripto 1 pentru mesaje de 100-1000 simboluri

Criptare 1000 - 10 000
0
0,2
0,4
0,6
0,8
1
1,2
1,4
1000 2000 3000 5000 10000
Lungi me mesaj (si mb.)
T
i
m
p
u
l

d
e

l
u
c
r
u

(
s
e
c
.
)
RSA
Cripto 1

Fig. A1.5. Diagram comparativ RSACripto 1 pentru mesaje de 1000-10000 simboluri

Decriptare 1000 - 10 000
0
50
100
150
200
250
300
350
400
1000 2000 3000 5000 10000
Lungi me mesaj (si mb.)
T
i
m
p
u
l

d
e

l
u
c
r
u

(
s
e
c
.
)
RSA
Cripto 1

Fig. A1.6. Diagram comparativ RSACripto 1 pentru mesaje de 1000-10000 simboluri
137
Criptare 1000 - 10 000
0
0,2
0,4
0,6
0,8
1
1,2
1,4
1000 2000 3000 5000 10000
Lungi me mesaj (si mb.)
T
i
m
p
u
l

d
e

l
u
c
r
u

(
s
e
c
.
)
RSA
Cripto 1

Fig. A1.7. Diagram comparativ RSACripto 1 pentru mesaje de 100-1000 simboluri

Decriptare 1000 - 10 000
0
50
100
150
200
250
300
350
400
1000 2000 3000 5000 10000
Lungime mesaj (si mb.)
T
i
m
p
u
l

d
e

l
u
c
r
u

(
s
e
c
.
)
RSA
Cripto 1

Fig. A1.8. Diagram comparativ RSACripto 1 pentru mesaje de 100-1000 simboluri

Criptare 100 - 1 000
0
0,05
0,1
0,15
0,2
0,25
100 200 300 400 500 1000
Lungi me mesaj (si mb.)
T
i
m
p
u
l

d
e

l
u
c
r
u

(
s
e
c
.
)
RSA
Cripto 2
AES 256

Fig. A1.9. Diagram comparativ RSACripto 2AES256 pentru mesaje de 100-1000 simb.
138
Deriptare 100 - 1 000
0
5
10
15
20
25
30
35
40
100 200 300 400 500 1000
Lungi me mesaj (si mb.)
T
i
m
p
u
l

d
e

l
u
c
r
u

(
s
e
c
.
)
RSA
Cripto 2
AES 256

Fig. A1.10. Diagram comparativ RSACripto 2AES256 pentru mesaje de 100-1000 simb.

Criptare 100 - 1 000
0
0,05
0,1
0,15
0,2
0,25
100 200 300 400 500 1000
Lungi me mesaj (si mb.)
T
i
m
p
u
l

d
e

l
u
c
r
u

(
s
e
c
.
)
RSA
Cripto 2
AES 256

Fig. A1.11. Diagram comparativ RSACripto 2AES256 pentru mesaje de 100-1000 simb.

Decriptare 100 - 1 000
0
5
10
15
20
25
30
35
40
100 200 300 400 500 1000
Lungi me mesaj (si mb.)
T
i
m
p
u
l

d
e

l
u
c
r
u

(
s
e
c
.
)
RSA
Cripto 2
AES 256

Fig. A1.12. Diagram comparativ RSACripto 2AES256 pentru mesaje de 100-1000 simb.
139
Cri ptare 1 000 - 10 000
0
0,5
1
1,5
2
2,5
1000 2000 3000 5000 10000
Lungimea mesajului (simb.)
T
i
m
p
u
l

d
e

l
u
c
r
u

(
s
e
c
.
)
RSA
Cripto 2
AES 256

Fig. A1.13. Diagram comparativ RSACripto 2AES256 pentru mesaje de 1000-10000 simb.

Decriptare 1000 - 10 000
0
50
100
150
200
250
300
350
400
1000 2000 3000 5000 10000
Lungi mea mesaj ul ui (si mb)
T
i
m
p
u
l

d
e

l
u
c
r
u

(
s
e
c
.
)
RSA
Cripto 2
AES 256

Fig. A1.14. Diagram comparativ RSACripto 2AES256 pentru mesaje de 1000-10000 simb.

Cri ptare 1 000 - 10 000
0
0,5
1
1,5
2
2,5
1000 2000 3000 5000 10000
Lungimea mesajului (simb.)
T
i
m
p
u
l

d
e

l
u
c
r
u

(
s
e
c
.
)
RSA
Cripto 2
AES 256

Fig. A1.15. Diagram comparativ RSACripto 2AES256 pentru mesaje de 1000-10000 simb.
140

Decriptare 1000 - 10 000
0
50
100
150
200
250
300
350
400
1000 2000 3000 5000 10000
Lungi mea mesaj ul ui (si mb)
T
i
m
p
u
l

d
e

l
u
c
r
u

(
s
e
c
.
)
RSA
Cripto 2
AES 256

Fig. A1.16. Diagram comparativ RSACripto 2AES256 pentru mesaje de 1000-10000 simb.

Cri ptare 1 000 - 10 000
0
0,5
1
1,5
2
2,5
1000 2000 3000 5000 10000
Lungi mea mesaj ului (si mb.)
T
i
m
p
u
l

d
e

l
u
c
r
u

(
s
e
c
.
)
Cripto 2
AES 256

Fig. A1.17. Diagram comparativ Cripto 2AES256 pentru mesaje de 1000-10000 simb.

Decriptare 1000 - 10 000
0
0,5
1
1,5
2
2,5
3
1000 2000 3000 5000 10000
Lungi mea mesaj ul ui (si mb)
T
i
m
p
u
l

d
e

l
u
c
r
u

(
s
e
c
.
)
Cripto 2
AES 256

Fig. A1.18. Diagram comparativ Cripto 2AES256 pentru mesaje de 1000-10000 simb.
141
Cri ptare 1 000 - 10 000
0
0,5
1
1,5
2
2,5
1000 2000 3000 5000 10000
Lungimea mesajului (simb.)
T
i
m
p
u
l

d
e

l
u
c
r
u

(
s
e
c
.
)
Cripto 2
AES 256

Fig. A1.19. Diagram comparativ Cripto 2AES256 pentru mesaje de 1000-10000 simb.

Decriptare 1000 - 10 000
0
0,5
1
1,5
2
2,5
3
1000 2000 3000 5000 10000
Lungi mea mesaj ul ui (si mb)
T
i
m
p
u
l

d
e

l
u
c
r
u

(
s
e
c
.
)
Cripto 2
AES 256

Fig. A1.20. Diagram comparativ Cripto 2AES256 pentru mesaje de 1000-10000 simb.

Criptare 100 - 1000
0
0,1
0,2
0,3
0,4
0,5
0,6
0,7
100 200 300 400 500 1000
Lungi mea mesaj ul ui (si mb.)
T
i
m
p
u
l

d
e

l
u
c
r
u

(
s
e
c
.
)
AES 256
AES 192
AES 128
Cripto 3 743
Cripto 3 186

Fig. A1.21. Diagram comparativ Cripto 3AES pentru mesaje de 100-1000 simb.
142
Decriptare 100 - 1000
0
0,1
0,2
0,3
0,4
0,5
0,6
0,7
100 200 300 400 500 1000
Lungi mea mesaj ul ui (si mb.)
T
i
m
p
u
l

d
e

l
u
c
r
u

(
s
e
c
.
)
AES 256
AES 192
AES 128
Cripto 3 743
Cripto 3 186

Fig. A1.22. Diagram comparativ Cripto 3AES pentru mesaje de 100-1000 simb.

Criptare 100 - 1000
0
0,05
0,1
0,15
0,2
0,25
100 200 300 400 500 1000
Lungi mea mesaj ul ui (si mb.)
T
i
m
p
u
l

d
e

l
u
c
r
u

(
s
e
c
.
)
Cripto 3 186
Cripto 3 743
AES 128
AES 192
AES 256

Fig. A1.23. Diagram comparativ Cripto 3AES pentru mesaje de 100-1000 simb.

Decriptare 100 - 1000
0
0,05
0,1
0,15
0,2
0,25
100 200 300 400 500 1000
Lungi mea mesaj ul ui (si mb.)
T
i
m
p
u
l

d
e

l
u
c
r
u

(
s
e
c
.
)
Cripto 3 186
Cripto 3 743
AES 128
AES 192
AES 256

Fig. A1.24. Diagram comparativ Cripto 3AES pentru mesaje de 100-1000 simb.
143
Criptare 1000 - 10 000
0
1
2
3
4
5
6
7
1000 2000 3000 5000 10000
Lungi mea mesaj ul ui (si mb.)
T
i
m
p
u
l

d
e

l
u
c
r
u

(
s
e
c
.
)
AES 256
AES 192
AES 128
Cripto 3 743
Cripto 3 186

Fig. A1.25. Diagram comparativ Cripto 3AES pentru mesaje de 1000-10000 simb.

Decriptare 1000 - 10 000
0
1
2
3
4
5
6
7
1000 2000 3000 5000 10000
Lungi mea mesaj ul ui (si mb.)
T
i
m
p
u
l

d
e

l
u
c
r
u

(
s
e
c
.
)
AES 256
AES 192
AES 128
Cripto 3 743
Cripto 3 186

Fig. A1.26. Diagram comparativ Cripto 3AES pentru mesaje de 1000-10000 simb.

Criptare 1000 - 10 000
0
0,5
1
1,5
2
2,5
1000 2000 3000 5000 10000
Lungi mea mesaj ul ui (si mb.)
T
i
m
p
u
l

d
e

l
u
c
r
u

(
s
e
c
.
)
Cripto 3 186
Cripto 3 743
AES 128
AES 192
AES 256

Fig. A1.27. Diagram comparativ Cripto 3AES pentru mesaje de 1000-10000 simb.
144
Decriptare 1000 - 10 000
0
0,5
1
1,5
2
2,5
1000 2000 3000 5000 10000
Lungi mea mesaj ul ui (si mb.)
T
i
m
p
u
l

d
e

l
u
c
r
u

(
s
e
c
.
)
Cripto 3 186
Cripto 3 743
AES 128
AES 192
AES 256

Fig. A1.28. Diagram comparativ Cripto 3AES pentru mesaje de 1000-10000 simb.

Criptare 10 000 - 1 000 000
0
100
200
300
400
500
600
700
10000 50000 100000 200000 300000 500000 1000000
Lungi mea mesaj ul ui (si mb.)
T
i
m
p
u
l

d
e

l
u
c
r
u

(
s
e
c
.
)
AES 256
AES 192
AES 128
Cripto 3 743
Cripto 3 186

Fig. A1.29. Diagram comparativ Cripto 3AES pentru mesaje de 10000-1000000 simb.

Decriptare 10 000 - 1 000 000
0
100
200
300
400
500
600
700
10000 50000 100000 200000 300000 500000 1000000
Lungi mea mesaj ul ui (si mb.)
T
i
m
p
u
l

d
e

l
u
c
r
u

(
s
e
c
.
)
AES 256
AES 192
AES 128
Cripto 3 743
Cripto 3 186

Fig. A1.30. Diagram comparativ Cripto 3AES pentru mesaje de 10000-1000000 simb.
145
Criptare 10 000 - 1 000 000
0
50
100
150
200
250
10000 50000 100000 200000 300000 500000 1000000
Lungi mea mesaj ul ui (si mb.)
T
i
m
p
u
l

d
e

l
u
c
r
u

(
s
e
c
.
)
Cripto 3 186
Cripto 3 743
AES 128
AES 192
AES 256

Fig. A1.31. Diagram comparativ Cripto 3AES pentru mesaje de 10000-1000000 simb.

Decriptare 10 000 - 1 000 000
0
50
100
150
200
250
10000 50000 100000 200000 300000 500000 1000000
Lungi mea mesaj ul ui (si mb.)
T
i
m
p
u
l

d
e

l
u
c
r
u

(
s
e
c
.
)
Cripto 3 186
Cripto 3 743
AES 128
AES 192
AES 256

Fig. A1.32. Diagram comparativ Cripto 3AES pentru mesaje de 10000-1000000 simb.

Criptare 1 000 000 - 5 000 000
0
500
1000
1500
2000
2500
3000
3500
1000000 2000000 3000000 4000000 5000000
Lungimea mesajului (simb.)
T
i
m
p
u
l

d
e

l
u
c
r
u

(
s
e
c
.
)
AES 256
AES 192
AES 128
Cripto 3 743
Cripto 3 186

Fig. A1.33. Diagram comparativ Cripto 3AES pentru mesaje de 1000000-5000000 simb.
146
Decriptare 1 000 000 - 5 000 000
0
500
1000
1500
2000
2500
3000
3500
4000
1000000 2000000 3000000 4000000 5000000
Lungi mea mesaj ul ui (si mb.)
T
i
m
p
u
l

d
e

l
u
c
r
u

(
s
e
c
.
)
AES 256
AES 192
AES 128
Cripto 3 743
Cripto 3 186

Fig. A1.34. Diagram comparativ Cripto 3AES pentru mesaje de 1000000-5000000 simb.

Criptare 1 000 000 - 5 000 000
0
200
400
600
800
1000
1200
1000000 2000000 3000000 4000000 5000000
Lungi mea mesaj ul ui (si mb.)
T
i
m
p
u
l

d
e

l
u
c
r
u

(
s
e
c
.
)
Cripto 3 186
Cripto 3 743
AES 128
AES 192
AES 256

Fig. A1.35. Diagram comparativ Cripto 3AES pentru mesaje de 1000000-5000000 simb.

Decriptare 1 000 000 - 5 000 000
0
200
400
600
800
1000
1200
1400
1000000 2000000 3000000 4000000 5000000
Lungi mea mesaj ul ui (si mb.)
T
i
m
p
u
l

d
e

l
u
c
r
u

(
s
e
c
.
)
Cripto 3 186
Cripto 3 743
AES 128
AES 192
AES 256

Fig. A1.36. Diagram comparativ Cripto 3AES pentru mesaje de 1000000-5000000 simb.
147
Criptare
0
200
400
600
800
1000
1200
1
0
0
2
0
0
3
0
0
4
0
0
5
0
0
1
0
0
0
2
0
0
0
3
0
0
0
5
0
0
0
1
0
0
0
0
5
0
0
0
0
1
0
0
0
0
0
2
0
0
0
0
0
3
0
0
0
0
0
5
0
0
0
0
0
1
0
0
0
0
0
0
2
0
0
0
0
0
0
3
0
0
0
0
0
0
4
0
0
0
0
0
0
5
0
0
0
0
0
0
Lungimea mesaj ul ui (si mb.)
T
i
m
p
u
l

d
e

l
u
c
r
u

(
s
e
c
.
)
Cripto 3 186
Cripto 3 743
AES 128
AES 192
AES 256

Fig. A1.37. Diagram comparativ Cripto 3AES pentru mesaje de 100-5000000 simb.

Decriptare
0
200
400
600
800
1000
1200
1400
1
0
0
2
0
0
3
0
0
4
0
0
5
0
0
1
0
0
0
2
0
0
0
3
0
0
0
5
0
0
0
1
0
0
0
0
5
0
0
0
0
1
0
0
0
0
0
2
0
0
0
0
0
3
0
0
0
0
0
5
0
0
0
0
0
1
0
0
0
0
0
0
2
0
0
0
0
0
0
3
0
0
0
0
0
0
4
0
0
0
0
0
0
5
0
0
0
0
0
0
Lungi mea mesal ukui (si mb.)
T
i
m
p
u
l

d
e

l
u
c
r
u

(
s
e
c
.
)
Cripto 3 186
Cripto 3 743
AES 128
AES 192
AES 256

Fig. A1.38. Diagram comparativ Cripto 3AES pentru mesaje de 100-5000000 simb.

Criptare
0
500
1000
1500
2000
2500
3000
3500
1
0
0
2
0
0
3
0
0
4
0
0
5
0
0
1
0
0
0
2
0
0
0
3
0
0
0
5
0
0
0
1
0
0
0
0
5
0
0
0
0
1
0
0
0
0
0
2
0
0
0
0
0
3
0
0
0
0
0
5
0
0
0
0
0
1
0
0
0
0
0
0
2
0
0
0
0
0
0
3
0
0
0
0
0
0
4
0
0
0
0
0
0
5
0
0
0
0
0
0
Lungi mea mesajului (si mb.)
T
i
m
p
u
l

d
e

l
u
c
r
u

(
s
e
c
.
)
AES 256
AES 192
AES 128
Cripto 3 743
Cripto 3 186

Fig. A1.39. Diagram comparativ Cripto 3AES pentru mesaje de 100-5000000 simb.
148
Decriptare
0
500
1000
1500
2000
2500
3000
3500
4000
1
0
0
2
0
0
3
0
0
4
0
0
5
0
0
1
0
0
0
2
0
0
0
3
0
0
0
5
0
0
0
1
0
0
0
0
5
0
0
0
0
1
0
0
0
0
0
2
0
0
0
0
0
3
0
0
0
0
0
5
0
0
0
0
0
1
0
0
0
0
0
0
2
0
0
0
0
0
0
3
0
0
0
0
0
0
4
0
0
0
0
0
0
5
0
0
0
0
0
0
Lungi mea mesal ukui (si mb.)
T
i
m
p
u
l

d
e

l
u
c
r
u

(
s
e
c
.
)
AES 256
AES 192
AES 128
Cripto 3 743
Cripto 3 186

Fig. A1.40. Diagram comparativ Cripto 3AES pentru mesaje de 100-5000000 simb.


































149
ANEXA 2. Listingul softului.
Este prezentat codul-surs al programelor elaborate ce implementeaz metodele i
algoritmii descrii. Fiecrei metode i corespunde programul su. Ele sunt structurate n aa fel
nct formeaz un pachet de aplicaii. Ca limbaj de programare este folosit limbajul mediului de
calcul Mathematica.

Codul surs al programului de calcul a submulimilor de coloane a funciei booleene de
forma F= U
1
U
2
U
k
(compartimentul 2.2.2).

timp1=AbsoluteTime[];
tau=3;n=5;
jjj=2^(n-tau)-1;
sigmaa={{{1,1},{2,1},{3,1},{4,1}},{{1,1},{2,1},{3,1},{5,1}},{{1,1},{2,1},{4,1},{5,1}},{{1,1},{3,1},{4,1},{5,1}},{{2,1},
{3,1},{4,1},{5,1}},{{1,1},{2,1},{3,1},{4,1},{5,1}},{{1,1},{2,1},{3,1}},{{1,1},{2,1},{4,1}},{{1,1},{2,1},{5,1}},{{1,1},{3,
1},{4,1}},{{1,1},{3,1},{5,1}},{{1,1},{4,1},{5,1}},{{2,1},{3,1},{4,1}},{{2,1},{3,1},{5,1}},{{2,1},{4,1},{5,1}},{{3,1},{4,1
},{5,1}},{{1,1},{2,1}},{{1,1},{3,1}},{{1,1},{4,1}},{{1,1},{5,1}},{{2,1},{3,1}},{{2,1},{4,1}},{{2,1},{5,1}},{{3,1},{4,1}},
{{3,1},{5,1}},{{4,1},{5,1}}};
For[ij=0,ijjjj,ij++,j=ij;
vectorjfinal={}; reuniune={};vectordif={};
For[ii=1,iiLength[sigmaa],ii++,
sigma=sigmaa[[ii]]; sigma11={};sigma12={};
For[i=1,iLength[sigma],i++,If[sigma[[i,1]]<=tau,sigma11=Append[sigma11,sigma[[i]]],sigma12=Append[sig
ma12,sigma[[i]]]]];
x=Table[i,{i,n}]; x1=Table[i,{i,tau}]; x2=Table[i,{i,tau+1,n}];
multimetau=Table[i-1,{i,2^tau}]; sigmax={};
For[i=1,iLength[sigma],i++,sigmax=Append[sigmax,sigma[[i,1]]]];
If[Intersection[x1,sigmax]{},
sigma1={};sigma2={};
For[i=1,iLength[sigma],i++,sigma1=Append[sigma1,sigma[[i,2]]]];
For[i=1,iLength[sigma],i++,jaja=IntegerPart[j/(2^(n-sigma[[i,1]]))];
If[Mod[jaja,2] 0,sigma2=Append[sigma2,0],sigma2=Append[sigma2,1]]];
If[sigma1==sigma2,vectorj=multimetau,vectorj={}];
vectorcaz1=vectorj;
,If[Intersection[x2,sigmax] {},j1=0;For[i=1,iLength[sigma],i++,j1=j1+sigma[[i,2]]*2^(tau-sigma[[i,1]])];
vectorj={};vectorj=Append[vectorj,j1];
If[tau==Length[sigma],vectorj={j1},
vector={};vectori1={};
For[i=1,iLength[sigma],i++,vectori1=Append[vectori1,sigma[[i,1]]]];
vectori=Complement[x1,vectori1];(*(indicii din diferenta)*)
s=Length[vectori];
For[i=1,is,i++,lungimej=Length[vectorj];
For[k=1,klungimej,k++,partintr=IntegerPart[vectorj[[k]]/2^(tau-vectori[[i]])];
partintr=partintr+1; numar=vectorj[[k]];
If[Mod[partintr,2] 0,numar=numar-2^(tau-vectori[[i]]),numar=numar+2^(tau-
vectori[[i]])];vectorj=Append[vectorj,numar]]];
vectorcaz2=vectorj;],
sigma=sigma12; sigmax={};
For[i=1,iLength[sigma],i++,sigmax=Append[sigmax,sigma[[i,1]]]];
sigma1={};sigma2={};
For[i=1,iLength[sigma],i++,sigma1=Append[sigma1,sigma[[i,2]]]];
For[i=1,iLength[sigma],i++,jaja=IntegerPart[j/(2^(n-sigma[[i,1]]))];
If[Mod[jaja,2] 0,sigma2=Append[sigma2,0],sigma2=Append[sigma2,1]]];
If[sigma1==sigma2,vectorj=multimetau,vectorj={}];
vectorcaz1=vectorj; sigma=sigma11; sigmax={};
For[i=1,iLength[sigma],i++,sigmax=Append[sigmax,sigma[[i,1]]]];
If[Intersection[x2,sigmax]{},j1=0;For[i=1,iLength[sigma],i++,j1=j1+sigma[[i,2]]*2^(tau-sigma[[i,1]])];
vectorj={};vectorj=Append[vectorj,j1];
If[tau-Length[sigma] 0,vectorcaz2=vectorj;vectorj=Intersection[vectorcaz1,vectorcaz2];,
150
vector={};vectori1={};
For[i=1,iLength[sigma],i++,vectori1=Append[vectori1,sigma[[i,1]]]];
vectori=Complement[x1,vectori1];(*(indicii din diferenta)*)
s=Length[vectori];
For[i=1,is,i++,lungimej=Length[vectorj];
For[k=1,klungimej,k++,partintr=IntegerPart[vectorj[[k]]/2^(tau-vectori[[i]])];
partintr=partintr+1; numar=vectorj[[k]];
If[Mod[partintr,2] 0,numar=numar-2^(tau-vectori[[i]]),numar=numar+2^(tau-
vectori[[i]])];vectorj=Append[vectorj,numar]]];
vectorcaz2=vectorj; vectorj=Intersection[vectorcaz1,vectorcaz2] ]]]];
vectorjfinal=Union[vectorjfinal,vectorj];vectordif=Append[vectordif,vectorj];
alipire=Flatten[vectordif]; alipire=Tally[alipire]; difersimetr={};
For[i13=1,i13<=Length[alipire],i13++,If[Mod[alipire[[i13,2]],2]>0,
difersimetr=Append[difersimetr,alipire[[i13,1]]]]]; ];
Print["j=",ij,"; Diferen a simetric este: ",difersimetr] ];
timp2=AbsoluteTime[];
Print["In total au trecut ",timp2-timp1 ," secunde."];

Codul surs al programului de calcul a submulimilor de coleane a funciei booleene de
forma F= U
1
U
2
U
k
(compartimentul 2.2.2).

timp1=AbsoluteTime[];
tau=3;n=5;
jjj=2^(n-tau)-1;
sigmaa={{{1,1},{2,1},{3,1},{4,1}},{{1,1},{2,1},{3,1},{5,1}},{{1,1},{2,1},{4,1},{5,1}},{{1,1},{3,1},{4,1},{5,1}},{{2,1},
{3,1},{4,1},{5,1}},{{1,1},{2,1},{3,1},{4,1},{5,1}}};
For[ij=0,ijjjj,ij++,j=ij;
vectorjfinal={};
For[ii=1,iiLength[sigmaa],ii++,
sigma=sigmaa[[ii]]; sigma11={};sigma12={};
For[i=1,iLength[sigma],i++,If[sigma[[i,1]]<=tau,sigma11=Append[sigma11,sigma[[i]]],sigma12=Append[sig
ma12,sigma[[i]]]]];
x=Table[i,{i,n}]; x1=Table[i,{i,tau}]; x2=Table[i,{i,tau+1,n}]; multimetau=Table[i-1,{i,2^tau}]; sigmax={};
For[i=1,iLength[sigma],i++,sigmax=Append[sigmax,sigma[[i,1]]]];
If[Intersection[x1,sigmax]{},
sigma1={};sigma2={};
For[i=1,iLength[sigma],i++,sigma1=Append[sigma1,sigma[[i,2]]]];
For[i=1,iLength[sigma],i++,jaja=IntegerPart[j/(2^(n-sigma[[i,1]]))];
If[Mod[jaja,2]0,sigma2=Append[sigma2,0],sigma2=Append[sigma2,1]]];
If[sigma1==sigma2,vectorj=multimetau,vectorj={}];
vectorcaz1=vectorj;
,If[Intersection[x2,sigmax]{},j1=0;For[i=1,iLength[sigma],i++,j1=j1+sigma[[i,2]]*2^(tau-sigma[[i,1]])];
vectorj={};vectorj=Append[vectorj,j1];
If[tau==Length[sigma],vectorj={j1},
vector={};vectori1={};
For[i=1,iLength[sigma],i++,vectori1=Append[vectori1,sigma[[i,1]]]];
vectori=Complement[x1,vectori1];(*(indicii din diferenta)*)
s=Length[vectori];
For[i=1,is,i++,lungimej=Length[vectorj];
For[k=1,klungimej,k++,partintr=IntegerPart[vectorj[[k]]/2^(tau-vectori[[i]])];
partintr=partintr+1; numar=vectorj[[k]];
If[Mod[partintr,2] 0,numar=numar-2^(tau-vectori[[i]]),numar=numar+2^(tau-
vectori[[i]])];vectorj=Append[vectorj,numar]]];
vectorcaz2=vectorj;], sigma=sigma12; sigmax={};
For[i=1,iLength[sigma],i++,sigmax=Append[sigmax,sigma[[i,1]]]];
sigma1={};sigma2={};
For[i=1,iLength[sigma],i++,sigma1=Append[sigma1,sigma[[i,2]]]];
For[i=1,iLength[sigma],i++,jaja=IntegerPart[j/(2^(n-sigma[[i,1]]))];
If[Mod[jaja,2] 0,sigma2=Append[sigma2,0],sigma2=Append[sigma2,1]]];
If[sigma1==sigma2,vectorj=multimetau,vectorj={}];
vectorcaz1=vectorj; sigma=sigma11; sigmax={};
For[i=1,iLength[sigma],i++,sigmax=Append[sigmax,sigma[[i,1]]]];
151
If[Intersection[x2,sigmax]{},j1=0;For[i=1,iLength[sigma],i++,j1=j1+sigma[[i,2]]*2^(tau-sigma[[i,1]])];
vectorj={};vectorj=Append[vectorj,j1];
If[tau-Length[sigma] 0,vectorcaz2=vectorj;vectorj=Intersection[vectorcaz1,vectorcaz2];,
vector={};vectori1={};
For[i=1,iLength[sigma],i++,vectori1=Append[vectori1,sigma[[i,1]]]];
vectori=Complement[x1,vectori1];(*(indicii din diferenta)*)
s=Length[vectori];
For[i=1,is,i++,lungimej=Length[vectorj];
For[k=1,klungimej,k++,partintr=IntegerPart[vectorj[[k]]/2^(tau-vectori[[i]])];
partintr=partintr+1; numar=vectorj[[k]];
If[Mod[partintr,2] 0,numar=numar-2^(tau-vectori[[i]]),numar=numar+2^(tau-
vectori[[i]])];vectorj=Append[vectorj,numar]]];
vectorcaz2=vectorj; vectorj=Intersection[vectorcaz1,vectorcaz2] ]]]];
vectorjfinal=Union[vectorjfinal,vectorj]; ];
Print["Vectorul J pentru J=",ij," este: ",vectorjfinal]];
timp2=AbsoluteTime[];
Print["In total au trecut ",timp2-timp1 ," secunde."];

Codul surs al programului de calculare a mulimii J a derivatei funciei booleene
(compartimentul 2.2.3).

timp1=AbsoluteTime[];
vector={};numar=2^265-13;n=3000;
vectorj={};
vectorj=Append[vectorj,numar];
vectori={1357,10,2582,1937,2987,30};
s=Length[vectori];
For[i=1,is,i++,
lungimej=Length[vectorj];
For[j=1,jlungimej,j++,
partintr=IntegerPart[vectorj[[j]]/2^(n-vectori[[i]])];
partintr=partintr+1;
numar=vectorj[[j]];
If[Mod[partintr,2] 0,numar=numar-2^(n-vectori[[i]]),numar=numar+2^(n-
vectori[[i]])];vectorj=Append[vectorj,numar]]];
vectorj
timp2=AbsoluteTime[];
Print["In total au trecut ",timp2-timp1 ," secunde."];

Codul surs al programului de calculare a derivatei funciei booleene (compartimentul
2.2.3).

tau=3;
n=13;deriv={};
sf1={4,5,7};
card=2^n;card1=2^tau;
variabile={3,1};
y={};For[i=1,icard1,i++,y=Append[y,i-1]];
For[k=1,kLength[variabile],k++,deriv={};sf0=Complement[y,sf1];sf=sf0;
If[Length[sf1]<Length[sf0],sf=sf1];
For[j=1,j Length[sf],j++,
partintr=IntegerPart[sf[[j]]/2^(tau-variabile[[k]])]+1;
numar=sf[[j]];
If[Mod[partintr,2]0,vecin=numar-2^(tau-variabile[[k]]),vecin=numar+2^(tau-variabile[[k]])];
If[MemberQ[sf,vecin],deriv=Append[deriv,numar];deriv=Append[deriv,vecin]]; sf1=deriv]];
Sort[deriv]




152
Codul surs al generatorului de numere prime (compartimentul 2.4)

data12=Date[];
Print["Am nceput lucrul la ",Date[]];
tabelnou={};numcifretabelnou={};
numnumprime=2;
contornumprom=0;
While[contornumprom<numnumprime,
data1=Date[];
Print["Numarul ",contornumprom+1];
nfb=9;
depozit1={3,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103};
ClearAll[i,i1,j,j1,l,t,t1,b,b1,q,q1,p,p1,s,s1];
ClearAll[exponentinitial];
diferentadecifre=0;
contorrandom=1; depozit=depozit1;
Array[,nfb];Array[ni,nfb];
For[i=1,infb,i++,[i]=i*exponentinitial+1];
cm=500;
exponentinitial=0; numarcautat=1;
RandomRelist[xxxx_List]:=Block[{rand=xxxx,pppp},Do[pppp=Random[Integer,{1,iiii}];rand[[{pppp,iiii}]]=rand[
[{iiii,pppp}]],{iiii,Length[xxxx]}];rand];
(Label["reluare"];
hhh=RandomRelist[Range[Length[depozit1]]];
For[j=1,jnfb,j++,depozit[[j]]=depozit1[[hhh[[j]]]]];
For[j=1,jnfb,j++,numarcautat=numarcautat*depozit[[j]]^[j];];
While[Length[IntegerDigits[numarcautat]]<cm,cm1=Length[IntegerDigits[numarcautat]];
numarcautat=1;exponentinitial=exponentinitial+1;For[j=1,jnfb,j++,
numarcautat=numarcautat*depozit[[j]]^[j]];];
cm1=Length[IntegerDigits[numarcautat]];
For[j=1,jnfb,j++,ni[j]=exponentinitial];
For[i=1,infb,i++,[i]=i*ni[i]+1];
For[j=1,jnfb,j++,While[Length[IntegerDigits[numarcautat]]>cm&&ni[j]>0,ni[j]=ni[j]-1;numarcautat=1;
For[j1=1,j1nfb,j1++,numarcautat=numarcautat*depozit[[j1]]^(j1*ni[j1]+1)];If[Length[IntegerDigits[numarcau
tat]]<cm,ni[j]=ni[j]+1]]];
numarcautat=1;
For[j1=1,j1nfb,j1++,numarcautat=numarcautat*depozit[[j1]]^(j1*ni[j1]+1)];
If[Length[IntegerDigits[numarcautat]]>cm,ni[nfb]=ni[nfb]-1];
numarcautat=1;For[j1=1,j1nfb,j1++,numarcautat=numarcautat*depozit[[j1]]^(j1*ni[j1]+1)];
If[Length[IntegerDigits[numarcautat]]<cm,ni[nfb]=ni[nfb]+1];
Array[ni,nfb];numarcautat=1;
For[j1=1,j1nfb,j1++,numarcautat=numarcautat*depozit[[j1]]^(j1*ni[j1]+1)];
Array[ni,nfb];cm1=Length[IntegerDigits[numarcautat]];
If[cm1-cm>diferentadecifre||cm1-cm<0,contorrandom=contorrandom+1;Goto["reluare"]]);
nnm=numarcautat; baz=Table[depozit[[j1]],{j1,nfb}];
exp=Table[j1*ni[j1]+1,{j1,nfb}]; d=nfb;mmm=Table[{,},{d}];
Do[mmm[[i,1]]=baz[[i]];mmm[[i,2]]=exp[[i]],{i,d}]; mm=Sort[mmm];
Print["Nucleul oferit este mm=",mm," si are ",Length[IntegerDigits[numarcautat]]," cifre " ];
data2=Date[]; datamodul2=Date[];
data3=data2[[3]]*3600*24+data2[[4]]*3600+data2[[5]]*60+data2[[6]];
data4=data1[[3]]*3600*24+data1[[4]]*3600+data1[[5]]*60+data1[[6]];
data5=data3-data4;
zile=IntegerPart[data5/(3600*24)]; ore=IntegerPart[data5/3600]; inute=IntegerPart[data5/60]-ore*60;
secunde=data5-(zile*3600*24+ore*3600+minute*60);
(*Simplu la maximum*)
Print["................ Programul Simplu la Maximum ....................."];
nnm=numarcautat; d=numarcautat; n=1;
For[i=n,in+100000000,i++, qwerty=0; prim=1+(2*(i-1)*(2*i-3)-(i-1))*d;
If[PrimeQ[prim],t=prim;qwerty=1;Print[];k=(prim-1)/d;Print[i," ",prim," ", Length[IntegerDigits[prim]],"
cifre axa 1"," k=",FactorInteger[(prim-1)/d]]];
If[qwerty==1,break[];Goto[modulul2]];
prim=1+2*(i-1)*(2*i-3)*d;
153
If[PrimeQ[prim],t=prim;qwerty=1;Print[];k=(prim-1)/d;Print[i," ",prim," ",
Length[IntegerDigits[prim]]," cifre diagonala 1"," k=",FactorInteger[(prim-1)/d]]];
If[qwerty==1,break[];Goto[modulul2]];
prim=1+(2*(i-1)*(2*i-3)+(i-1))*d;
If[PrimeQ[prim],t=prim;qwerty=1;Print[];k=(prim-1)/d;Print[i," ",prim," ",
Length[IntegerDigits[prim]]," cifre axa 2"," k=",FactorInteger[(prim-1)/d]]];
If[qwerty==1,break[];Goto[modulul2]];
prim=1+4*(i-1)
2
*d;
If[PrimeQ[prim],t=prim;qwerty=1;Print[];k=(prim-1)/d;Print[i," ",prim," ",
Length[IntegerDigits[prim]]," cifre diagonala 2"," k=",FactorInteger[(prim-1)/d]]];
If[qwerty==1,break[];Goto[modulul2]];
prim=1+(2*(i-1)*(2*i-1)-(i-1))*d;
If[PrimeQ[prim],t=prim;qwerty=1;Print[];k=(prim-1)/d;Print[i," ",prim," ",
Length[IntegerDigits[prim]]," cifre axa 3"," k=",FactorInteger[(prim-1)/d]]];
If[qwerty==1,break[];Goto[modulul2]];
prim=1+2*(i-1)*(2*i-1)*d;
If[PrimeQ[prim],t=prim;qwerty=1;Print[];k=(prim-1)/d;Print[i," ",prim," ",
Length[IntegerDigits[prim]]," cifre diagonala 3"," k=",FactorInteger[(prim-1)/d]]];
If[qwerty==1,break[];Goto[modulul2]];
prim=1+(2*(i-1)*(2*i-1)+(i-1))*d;
If[PrimeQ[prim],t=prim;qwerty=1;Print[];k=(prim-1)/d;Print[i," ",prim," ",
Length[IntegerDigits[prim]]," cifre axa 4"," k=",FactorInteger[(prim-1)/d]]];
If[qwerty==1,break[];Goto[modulul2]];
prim=1+(4*i*(i-1))*d;
If[PrimeQ[prim],t=prim;qwerty=1;Print[];k=(prim-1)/d;Print[i," ",prim," ",
Length[IntegerDigits[prim]]," cifre diagonala 4"," k=",FactorInteger[(prim-1)/d]]];
If[qwerty==1,break[];Goto[modulul2]];];
Label[modulul2];
data2=Date[];
datamodul3=Date[];
data3=data2[[3]]*3600*24+data2[[4]]*3600+data2[[5]]*60+data2[[6]];
data4=datamodul2[[3]]*3600*24+datamodul2[[4]]*3600+datamodul2[[5]]*60+datamodul2[[6]];
data5=data3-data4;
zile=IntegerPart[data5/(3600*24)]; ore=IntegerPart[data5/3600];
minute=IntegerPart[data5/60]-ore*60; secunde=data5-(zile*3600*24+ore*3600+minute*60);
Print["............................Testarea..................................."];
Print["k=",k,"=",FactorInteger[k]];
km=FactorInteger[k]; lmm=Length[mm]; lkm=Length[km]; j=1;
Label[iute];While[j<=lkm,
For[i=1,ilmm,i++,
If[km[[j,1]] mm[[i,1]], mm[[i,2]]=mm[[i,2]]+km[[j,2]];j=j+1;Goto[iute]];];
mm= Append[mm,km[[j]]];j=j+1];
mp= mm;dim=Length[mp];mp=Sort[mp];mp1=mp;
Print[" t-1 = k*mm= ",mp];
Do[mp[[i]]=Reverse[mp[[i]]],{i,dim}];mp=Sort[mp];
Print["t=",t];
Print["========================================"];
au={2,3,5,6,7,10,11,12,13,14,15,17,18,19,20,21,22,21,24,26,28,29,30,31,33,34,35,36,37,38,39,40,41,42,43,44,45,4
6,47,48,50,51,52,53,54,55,56,57,58,59,60,61,62,63,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,82,83,84,85,86
,87,88,89,90,91,92,93,94,95,96,97,98,99,100};
lua=Length[au];
b=1; a=au[[b]]; rest1=1;
If[rest1==1,
b=1; Label[repet]; a=au[[b]]; rest1=PowerMod[a,t-1,t];
If[rest1==1,
For[i=1,iLength[mp1],i++,
If[PowerMod[a,(t-1)/mp1[[i,1]],t]==1,
b=b+1;If[b<lua,Goto[repet]],If[(i==Length[mp1])&&(blua),Print[];
contornumprom=contornumprom+1;tabelnou=Append[tabelnou,prim];
numcifretabelnou=Append[numcifretabelnou,Length[IntegerDigits[prim]]]]]],Print["Numarul dat nu este
prim!!!"]],
Print["Numarul dat nu este prim!!!"]];
data2=Date[]; data3=data2[[3]]*3600*24+data2[[4]]*3600+data2[[5]]*60+data2[[6]];
154
data4=datamodul3[[3]]*3600*24+datamodul3[[4]]*3600+datamodul3[[5]]*60+datamodul3[[6]];
data5=data3-data4; zile=IntegerPart[data5/(3600*24)];
ore=IntegerPart[data5/3600]; minute=IntegerPart[data5/60]-ore*60;
secunde=data5-(zile*3600*24+ore*3600+minute*60);
data2=Date[];
data3=data2[[3]]*3600*24+data2[[4]]*3600+data2[[5]]*60+data2[[6]];
data4=data1[[3]]*3600*24+data1[[4]]*3600+data1[[5]]*60+data1[[6]];
data5=data3-data4; zile=IntegerPart[data5/(3600*24)]; ore=IntegerPart[data5/3600];
minute=IntegerPart[data5/60]-ore*60;secunde=data5-(zile*3600*24+ore*3600+minute*60); ]
Print["Am obtinut urmatoarele ",numnumprime," numere prime:"];
Print[tabelnou];
Print["Numarul de cifre respectiv:"];
Print[numcifretabelnou];
data2=Date[];
data3=data2[[3]]*3600*24+data2[[4]]*3600+data2[[5]]*60+data2[[6]];
data4=data12[[3]]*3600*24+data12[[4]]*3600+data12[[5]]*60+data12[[6]];
data5=data3-data4;zile=IntegerPart[data5/(3600*24)];
ore=IntegerPart[data5/3600];minute=IntegerPart[data5/60]-ore*60;
secunde=data5-(zile*3600*24+ore*3600+minute*60);
Print["In total au trecut ","Au trecut ",zile," zile, ",ore," ore, ",minute," minute, ",secunde," secunde."];

Codul surs al generatorului de chei pentru algoritmul Cripto 1 (compartimentul 3.1).

timp1=AbsoluteTime[];
tabelnou={};numcifretabelnou={};
numnumprime=50;numarnou=2;contornumprom=0;
While[contornumprom<numnumprime,
nfb=10;
depozit1={3,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103};
ClearAll[i,i1,j,j1,l,t,t1,b,b1,q,q1,p,p1,s,s1];
ClearAll[exponentinitial];
diferentadecifre=0; contorrandom=1; depozit=depozit1;
Array[,nfb];Array[ni,nfb];
For[i=1,infb,i++, [i]=i*exponentinitial+1];
cm=150; exponentinitial=0; numarcautat=1;
RandomRelist[xxxx_List]:=Block[{rand=xxxx,pppp},Do[pppp=Random[Integer,{1,iiii}];
rand[[{pppp,iiii}]]=rand[[{iiii,pppp}]],{iiii,Length[xxxx]}];rand];
(Label["reluare"];
hhh=RandomRelist[Range[Length[depozit1]]];
For[j=1,jnfb,j++,depozit[[j]]=depozit1[[hhh[[j]]]]];
For[j=1,jnfb,j++,numarcautat=numarcautat*depozit[[j]]^[j];];
numarcautat;
While[Length[IntegerDigits[numarcautat]]<cm,cm1=Length[IntegerDigits[numarcautat]];
numarcautat=1;exponentinitial=exponentinitial+1;
For[j=1,jnfb,j++,numarcautat=numarcautat*depozit[[j]]^[j]];];
cm1=Length[IntegerDigits[numarcautat]];
For[j=1,jnfb,j++,ni[j]=exponentinitial]; For[i=1,infb,i++,[i]=i*ni[i]+1];
For[j=1,jnfb,j++,While[Length[IntegerDigits[numarcautat]]>cm&&ni[j]>0,ni[j]=ni[j]-1;numarcautat=1;
For[j1=1,j1nfb,j1++,numarcautat=numarcautat*depozit[[j1]]^(j1*ni[j1]+1)];If[Length[IntegerDigits[numarcau
tat]]<cm,ni[j]=ni[j]+1]]];
numarcautat=1;
For[j1=1,j1nfb,j1++,numarcautat=numarcautat*depozit[[j1]]^(j1*ni[j1]+1)];
If[Length[IntegerDigits[numarcautat]]>cm,ni[nfb]=ni[nfb]-1];
numarcautat=1;For[j1=1,j1nfb,j1++,numarcautat=numarcautat*depozit[[j1]]^(j1*ni[j1]+1)];
If[Length[IntegerDigits[numarcautat]]<cm,ni[nfb]=ni[nfb]+1];
Array[ni,nfb];
numarcautat=1;
For[j1=1,j1nfb,j1++,numarcautat=numarcautat*depozit[[j1]]^(j1*ni[j1]+1)];
Array[ni,nfb];
cm1=Length[IntegerDigits[numarcautat]];
If[cm1-cm>diferentadecifre||cm1-cm<0,contorrandom=contorrandom+1;Goto["reluare"]]);
nnm=numarcautat;
155
baz=Table[depozit[[j1]],{j1,nfb}];
exp=Table[j1*ni[j1]+1,{j1,nfb}];
d=nfb;mmm=Table[{,},{d}];
Do[mmm[[i,1]]=baz[[i]];mmm[[i,2]]=exp[[i]],{i,d}];
mm=Sort[mmm];
(*Simplu la maximum*)
nnm=numarcautat; d=numarcautat; n=1;
For[i=n,in+100000000,i++,
qwerty=0; prim=1+(2*(i-1)*(2*i-3)-(i-1))*d;
If[PrimeQ[prim],t=prim;qwerty=1;k=(prim-1)/d;];
If[qwerty==1,break[];Goto[modulul2]];
prim=1+2*(i-1)*(2*i-3)*d;
If[PrimeQ[prim],t=prim;qwerty=1;k=(prim-1)/d;];
If[qwerty==1,break[];Goto[modulul2]];
prim=1+(2*(i-1)*(2*i-3)+(i-1))*d;
If[PrimeQ[prim],t=prim;qwerty=1;k=(prim-1)/d;];
If[qwerty==1,break[];Goto[modulul2]];
prim=1+4*(i-1)
2
*d;
If[PrimeQ[prim],t=prim;qwerty=1;k=(prim-1)/d;];
If[qwerty==1,break[];Goto[modulul2]];
prim=1+(2*(i-1)*(2*i-1)-(i-1))*d;
If[PrimeQ[prim],t=prim;qwerty=1;k=(prim-1)/d;];
If[qwerty==1,break[];Goto[modulul2]];
prim=1+2*(i-1)*(2*i-1)*d;
If[PrimeQ[prim],t=prim;qwerty=1;k=(prim-1)/d;];
If[qwerty==1,break[];Goto[modulul2]];
prim=1+(2*(i-1)*(2*i-1)+(i-1))*d;
If[PrimeQ[prim],t=prim;qwerty=1;k=(prim-1)/d;];
If[qwerty==1,break[];Goto[modulul2]];
prim=1+(4*i*(i-1))*d;
If[PrimeQ[prim],t=prim;qwerty=1;k=(prim-1)/d;];
If[qwerty==1,break[];Goto[modulul2]]; ];
Label[modulul2];
km=FactorInteger[k]; lmm=Length[mm]; lkm=Length[km]; j=1;
Label[iute];While[j<=lkm,
For[i=1,ilmm,i++, If[km[[j,1]] mm[[i,1]], mm[[i,2]]=mm[[i,2]]+km[[j,2]];j=j+1;Goto[iute]];];
mm= Append[mm,km[[j]]];j=j+1];
mp= mm;dim=Length[mp];mp=Sort[mp];mp1=mp;
Do[mp[[i]]=Reverse[mp[[i]]],{i,dim}];mp=Sort[mp];
au={2,3,5,6,7,10,11,12,13,14,15,17,18,19,20,21,22,21,24,26,28,29,30,31,33,34,35,36,37,38,39,40,41,42,43,44,45,4
6,47,48,50,51,52,53,54,55,56,57,58,59,60,61,62,63,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,82,83,84,85,86
,87,88,89,90,91,92,93,94,95,96,97,98,99,100};lua=Length[au];
b=1; a=au[[b]]; rest1=1; If[rest1==1, b=1;
Label[repet];
a=au[[b]];
rest1=PowerMod[a,t-1,t];
If[rest1==1,
For[i=1,iLength[mp1],i++,
If[PowerMod[a,(t-1)/mp1[[i,1]],t] 1,
b=b+1;If[b<lua,Goto[repet]],If[(i==Length[mp1])&&(blua),contornumprom=contornumprom+1;
tabelnou=Append[tabelnou,prim];numcifretabelnou=Append[numcifretabelnou,Length[IntegerDigits[prim]]]]]]]
]; ]
(*--------------------------------Partea 2--------------------------------*)
depozit1=tabelnou;listak={};hhhnou=RandomRelist[Range[Length[depozit1]]];
tabelnou={};numcifretabelnou={};
numarperechi=5;
numnumprime=numarperechi*2;
contornumprom=0;While[contornumprom<numnumprime, nfb=numarnou;
ClearAll[i,i1,j,j1,l,t,t1,b,b1,q,q1,p,p1,s,s1]; ClearAll[exponentinitial];
diferentadecifre=0; contorrandom=1; depozit=depozit1; exponentinitial=0; numarcautat=1;
RandomRelist[xxxx_List]:=Block[{rand=xxxx,pppp},Do[pppp=Random[Integer,{1,iiii}];rand[[{pppp,iiii}]]=rand[
[{iiii,pppp}]],{iiii,Length[xxxx]}];rand];
hhh=RandomRelist[Range[Length[depozit1]]];
156
For[j=1,jnfb,j++,depozit[[j]]=depozit1[[hhh[[j]]]]];
For[j=1,jnfb,j++,numarcautat=numarcautat*depozit[[j]]];
cm=Length[IntegerDigits[numarcautat]];
nnm=numarcautat;
baz=Table[depozit[[j1]],{j1,nfb}];
(* Exponentii sunt egali cu 1!!!*)
exp=Table[1,{j1,nfb}];
d=nfb;mmm=Table[{,},{d}];
Do[mmm[[i,1]]=baz[[i]];mmm[[i,2]]=exp[[i]],{i,d}];
mm=Sort[mmm];
(*Simplu la maximum*)
nnm=numarcautat;
d=numarcautat; n=1;
For[i=n,in+100000000,i++,
qwerty=0; prim=1+(2*(i-1)*(2*i-3)-(i-1))*d;
If[PrimeQ[prim],t=prim;qwerty=1;k=(prim-1)/d;];
If[qwerty==1,break[];Goto[modulul2]];
prim=1+2*(i-1)*(2*i-3)*d;
If[PrimeQ[prim],t=prim;qwerty=1;k=(prim-1)/d;];
If[qwerty==1,break[];Goto[modulul2]];
prim=1+(2*(i-1)*(2*i-3)+(i-1))*d;
If[PrimeQ[prim],t=prim;qwerty=1;k=(prim-1)/d;];
If[qwerty==1,break[];Goto[modulul2]];
prim=1+4*(i-1)
2
*d;
If[PrimeQ[prim],t=prim;qwerty=1;k=(prim-1)/d;];
If[qwerty==1,break[];Goto[modulul2]];
prim=1+(2*(i-1)*(2*i-1)-(i-1))*d;
If[PrimeQ[prim],t=prim;qwerty=1;k=(prim-1)/d;];
If[qwerty==1,break[];Goto[modulul2]];
prim=1+2*(i-1)*(2*i-1)*d;
If[PrimeQ[prim],t=prim;qwerty=1;k=(prim-1)/d;];
If[qwerty==1,break[];Goto[modulul2]];
prim=1+(2*(i-1)*(2*i-1)+(i-1))*d;
If[PrimeQ[prim],t=prim;qwerty=1;k=(prim-1)/d;];
If[qwerty==1,break[];Goto[modulul2]];
prim=1+(4*i*(i-1))*d;
If[PrimeQ[prim],t=prim;qwerty=1;k=(prim-1)/d;];
If[qwerty==1,break[];Goto[modulul2]]; ];
Label[modulul2];
km=FactorInteger[k]; contor1=0;
For[i=1,iLength[tabelnou],i++,If[primtabelnou[[i]],contor1=contor1+1]];
If[contor10,
lmm=Length[mm]; lkm=Length[km]; j=1;
Label[iute];While[j<=lkm,
For[i=1,ilmm,i++, If[km[[j,1]] mm[[i,1]], mm[[i,2]]=mm[[i,2]]+km[[j,2]];j=j+1;Goto[iute]];];
mm= Append[mm,km[[j]]];j=j+1];
For[i=1,ilkm,i++,listak= Append[listak,km[[i]]]];
mp= mm;dim=Length[mp];mp=Sort[mp];mp1=mp;
Do[mp[[i]]=Reverse[mp[[i]]],{i,dim}];mp=Sort[mp];
au={2,3,5,6,7,10,11,12,13,14,15,17,18,19,20,21,22,21,24,26,28,29,30,31,33,34,35,36,37,38,39,40,41,42,43,44,45,4
6,47,48,50,51,52,53,54,55,56,57,58,59,60,61,62,63,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,82,83,84,85,86
,87,88,89,90,91,92,93,94,95,96,97,98,99,100};lua=Length[au];
b=1; a=au[[b]]; rest1=1; If[rest1==1, b=1;
Label[repet];
a=au[[b]]; rest1=PowerMod[a,t-1,t];
If[rest1==1,
For[i=1,iLength[mp1],i++,
If[PowerMod[a,(t-1)/mp1[[i,1]],t] 1,
b=b+1;If[b<lua,Goto[repet]],If[(i==Length[mp1])&&(blua),contornumprom=contornumprom+1;tabelnou=Ap
pend[tabelnou,prim];numcifretabelnou=Append[numcifretabelnou,Length[IntegerDigits[prim]]]]]]]]]; ]
pmare={};qmare={};numcifree={};einitial={};
For[i=1,i<=numnumprime/2,i++,pmare=Append[pmare,tabelnou[[i]]]];
For[i=numnumprime/2+1,i<=numnumprime,i++,qmare=Append[qmare,tabelnou[[i]]]];
157
For[i=1,i<=numnumprime/2,i++,einitial=Append[einitial,IntegerPart[Log[(pmare[[i]]*qmare[[i]])/Log[9]]]];nu
mcifree=Append[numcifree,Length[IntegerDigits[IntegerPart[Log[(pmare[[i]]*qmare[[i]])/Log[9]]]]]]];
(*Print["Vectorul E initial este: ",einitial];
Print["Numarul de cifre al lui E ste : ",numcifree];*)
listapentrue={};
For[i=1,inumarperechi,i++,copk=1;While[copk0,copk=0;einitial[[i]]=NextPrime[einitial[[i]]];For[j=1,jLen
gth[listak],j++,If[einitial[[i]] listak[[j,1]],copk=copk+1]];
If[copk0,listapentrue=Append[listapentrue,einitial[[i]]]]]];
vectorule={};vectoruld={};
For[i=1,i<=numarperechi,i++,p=pmare[[i]];q=qmare[[i]];
f=(p-1)*(q-1); e=listapentrue[[i]]; b=e; contord=0; k=0;
While[contord<1,k=k+1;a=1+k*f;If[Mod[a,b]0,contord=contord+1;d=a/b;]];
vectorule=Append[vectorule,e];vectoruld=Append[vectoruld,d]]
vectoruln={};
For[i=1,i<=numarperechi,i++,vectoruln=Append[vectoruln,pmare[[i]]*qmare[[i]]]];
biti={};
For[i=1,i<=numarperechi,i++,biti=Append[biti,Length[IntegerDigits[vectoruln[[i]],2]]]]
Print["Vectorul E este: "];
Print[vectorule];
Print["Vectorul D este: "];
Print[vectoruld];
Print["Vectorul N este: "];
Print[vectoruln];
Print["Bitii vectorului N sunt: "];
Print[biti];
timp2=AbsoluteTime[];
Print["In total au trecut ",timp2-timp1 ," secunde."]

Codul surs al codificarorului algoritmului Cripto 1 (compartimentul 3.1).

t1=AbsoluteTime[];
submsimboluri="textul";
t=StringLength[submsimboluri];
textdinnumere=ToCharacterCode[submsimboluri];
(*Print["Textul codificat este> ",textdinnumere];*)
vectorulm=textdinnumere;
vectorule={-se nscriu coordonatele vectorului e-}
vectoruln={-se nscriu coordonatele vectorului n-};
lungimecheie=Length[vectoruln];
vectorulc={};
numarintreg=IntegerPart[t/lungimecheie];
restul=t-lungimecheie*numarintreg;
For[inou=1,inounumarintreg,inou++,
For[i=1,ilungimecheie,i++,c=PowerMod[vectorulm[[lungimecheie*(inou-
1)+i]],vectorule[[i]],vectoruln[[i]]];vectorulc=Append[vectorulc,c]]];
For[i=1,irestul,i++,c=PowerMod[vectorulm[[lungimecheie*(inou-1)+i]],vectorule[[i]],vectoruln[[i]]];
vectorulc=Append[vectorulc,c]]
Print["Vectorul C este: "];
Print[vectorulc];
t2=AbsoluteTime[];
Print["In total au trecut ",t2-t1 ," secunde."];

Codul surs al decodificarorului algoritmului Cripto 1 (compartimentul 3.1).

t1=AbsoluteTime[];
vectoruld={-se nscriu coordonatele vectorului d-};
vectoruln={-se nscriu coordonatele vectorului n-};
vectorulc={-se nscriu coordonatele vectorului c-};
lungimecheie=Length[vectoruld];
t=Length[vectorulc];
vectorulm={};
numarintreg=IntegerPart[t/lungimecheie];
158
restul=t-lungimecheie*numarintreg;
For[inou=1,inounumarintreg,inou++,
For[i=1,ilungimecheie,i++,m=PowerMod[vectorulc[[lungimecheie*(inou-
1)+i]],vectoruld[[i]],vectoruln[[i]]];vectorulm=Append[vectorulm,m]]];
For[i=1,irestul,i++,m=PowerMod[vectorulc[[lungimecheie*(inou-
1)+i]],vectoruld[[i]],vectoruln[[i]]];vectorulm=Append[vectorulm,m]];
(*Print["Vectorul M este: ",vectorulm];*)
text=FromCharacterCode[vectorulm];
Print["Textul decodificat este: "];
Print[text];
t2=AbsoluteTime[];
Print["In total au trecut ",t2-t1 ," secunde."];

Codul surs al algorimului Cripto 2 (compartimentul 3.2).

t1=AbsoluteTime[];
textul="-se introduce mesajul pentru criptare-";
t=StringLength[textul];
If[PrimeQ[t],t=t+1];
factori=FactorInteger[t];
factoriputeri={};
For[i=1,iLength[factori],i++,factoriputeri=Append[factoriputeri,factori[[i,1]]^factori[[i,2]]]];
a=Max[factoriputeri];b=t/a;a=Max[b,a];b=t/a;
Print["a=",a];
Print["b=",b];
vectorulm=ToCharacterCode[textul];
factori=FactorInteger[Length[vectorulm]];
baza=3704967094349503434556768789807876246246452103549875251520;
matrcod=Table[1,{i,1,a},{j,1,b}];
contorvectorulm=0;
For[i=1,ia,i++,For[j=1,jb,j++,contorvectorulm=contorvectorulm+1;
matrcod[[i,j]]=vectorulm[[contorvectorulm]]]];
MatrixForm[matrcod];vectorulg={};
For[i=1,ia,i++,gintermed=0;For[j=1,jb,j++,gintermed=gintermed+(matrcod[[i,j]])*baza^(b-
j)];vectorulg=Append[vectorulg,gintermed]];
vectorulg=Append[vectorulg,a];vectorulg=Append[vectorulg,b];submsimboluri=ToString[baza];
t=StringLength[submsimboluri];textdinnumere=ToCharacterCode[submsimboluri];
(*Print["Textul codificat este> ",textdinnumere];*)
vectorulm=textdinnumere;
vectorule={-se introduc coordonatele vectorului e pentru criptarea cheii private-};
vectoruln={-se introduc coordonatele vectorului n pentru criptarea cheii private-};
lungimecheie=Length[vectoruln];
vectorulc={};numarintreg=IntegerPart[t/lungimecheie];restul=t-lungimecheie*numarintreg;
For[inou=1,inounumarintreg,inou++,
For[i=1,ilungimecheie,i++,c=PowerMod[vectorulm[[lungimecheie*(inou-1)+i]],vectorule[[i]],vectoruln[[i]]];
vectorulc=Append[vectorulc,c]]];
For[i=1,irestul,i++,c=PowerMod[vectorulm[[lungimecheie*(inou- 1)+i]],vectorule[[i]],vectoruln[[i]]];
vectorulg=Append[vectorulg,c]];
vectorulg=Append[vectorulg,Length[IntegerDigits[baza]]];
(*Print["Vectorul G este: "];
Print[vectorulg];
Print["a=",a];
Print["b=",b];*)
t2=AbsoluteTime[];
Print["Criptare In total au trecut ",t2-t1 ," secunde."];
(*DECRIPTARE*)
t1=AbsoluteTime[];
baza=vectorulg[[Length[vectorulg]]];a=vectorulg[[Length[vectorulg]-
(baza+2)]];b=vectorulg[[Length[vectorulg]-(baza+1)]];
matrcod=Table[1,{i,1,a},{j,1,b}];
vectoruld={-se introduc coordonatele vectorului d pentru decriptarea cheii private-};
vectorulc={-se introduc coordonatele vectorului c pentru decriptarea cheii private-};
159
For[i=1,ibaza,i++,vectorulc=Prepend[vectorulc,vectorulg[[Length[vectorulg]-(i)]]]];
lungimecheie=Length[vectoruld];
t=Length[vectorulc];
vectorulm={};
numarintreg=IntegerPart[t/lungimecheie];
restul=t-lungimecheie*numarintreg;
For[inou=1,inounumarintreg,inou++,
For[i=1,ilungimecheie,i++,m=PowerMod[vectorulc[[lungimecheie*(inou-
1)+i]],vectoruld[[i]],vectoruln[[i]]];vectorulm=Append[vectorulm,m]]];
For[i=1,irestul,i++,m=PowerMod[vectorulc[[lungimecheie*(inou-
1)+i]],vectoruld[[i]],vectoruln[[i]]];vectorulm=Append[vectorulm,m]];
baza=FromCharacterCode[vectorulm];
baza=FromDigits[baza];
For[i=1,ia,i++,matrcod[[i]]=IntegerDigits[vectorulg[[i]],baza]]
MatrixForm[matrcod];
contorvectorulm=0;
vectorulm={};
For[i=1,ia,i++,For[j=1,jb,j++,contorvectorulm=contorvectorulm+1;
vectorulm=Append[vectorulm,matrcod[[i,j]]]]];
vectorulm;
text=FromCharacterCode[vectorulm];
(*Print["Textul decodificat este: "];
Print[text];*)
t2=AbsoluteTime[];
Print["Decriptare In total au trecut ",t2-t1 ," secunde."];

Codul surs al algorimului Cripto 3 (compartimentul 3.3).

timp1=AbsoluteTime[];
submsimboluri="se introduce mesajul criptat";
m=ToCharacterCode[submsimboluri];
t=Length[m];n=Ceiling[Log[2,t]];k=Ceiling[Log[2,Max[m]]];
m2={};
Print["t=",t,"; n=",n,"; k=",k];
RandomRelist[xxxx_List]:=Block[{rand=xxxx,pppp},Do[pppp=Random[Integer,{1,iiii}];rand[[{pppp,iiii}]]=rand[
[{iiii,pppp}]],{iiii,Length[xxxx]}];rand];
tau=3;k=k;
cardtau=2^tau;
Print["k=",k]
Print["key[i]{0,1,2,...,",2^tau-1,"}"];
key={};
For[i=1,ik,i++,numb=RandomInteger[cardtau];subm1=RandomRelist[Range[cardtau]]-1;
submkey=Drop[subm1,-(cardtau-numb)];submkey=Sort[submkey];key=Append[key,submkey]];
Print["Cheia este: "];
Print[key];
reuniunekey={};
For[i=1,ik,i++,reuniunekey=Union[reuniunekey,key[[i]]]]
If[Length[reuniunekey]<cardtau,i23=RandomInteger[cardtau];key[[i23]]=Union[key[[i23]],Complement[b,reuni
unekey]]];
t1=2^(n-tau);
b={};For[i=1,i2
tau
,i++,b=Append[b,i-1]];c={};m2={};
For[i=1,it,i++,m1=IntegerDigits[m[[i]],2];If[Length[m1]<k,dif=k-
Length[m1];For[j=1,jdif,j++,m1=Prepend[m1,0]]];m2={};int=IntegerPart[(i-1)/t1];
For[j=1,jk,j++,If[MemberQ[key[[j]],int],m2=Append[m2,1],m2=Append[m2,0]]];m3=Mod[m1+m2,2];
c=Append[c,FromDigits[m3,2]]];
Print["Textul codificat este: "];
Print[c];
Print["Decodificarea imediat este: "]
FromCharacterCode[c]
textul=ToString[key];
(* Criptare cheie *)
numcifbaza=50;
160
t=StringLength[textul];t1=t;
Print["Num rul de simboluri n CHEIE este t=",t];
If[PrimeQ[t],textul=textul<>"*";t=StringLength[textul];Print["Num rul nou de simboluri (avem num r prim de
simboluri) este t=",t]];
factori=FactorInteger[t];factoriputeri={};
For[i=1,iLength[factori],i++,factoriputeri=Append[factoriputeri,factori[[i,1]]^factori[[i,2]]]];
a=Max[factoriputeri];
If[Length[factori]1,a=factori[[1,1]]^IntegerPart[factori[[1,2]]/3]]
b=t/a;a=Max[b,a];b=t/a;
baza=RandomInteger[{10
numcifbaza-1
+1,10
numcifbaza
}];
vectorulm=ToCharacterCode[textul];
factori=FactorInteger[Length[vectorulm]];
matrcod=Table[1,{i,1,a},{j,1,b}];
contorvectorulm=0;
For[i=1,ia,i++,For[j=1,jb,j++,contorvectorulm=contorvectorulm+1;
matrcod[[i,j]]=vectorulm[[contorvectorulm]]]];
MatrixForm[matrcod];
vectorulg={};
For[i=1,ia,i++,gintermed=0;For[j=1,jb,j++,gintermed=gintermed+(matrcod[[i,j]])*baza^(b-
j)];vectorulg=Append[vectorulg,gintermed]];
vectorulg=Append[vectorulg,baza];vectorulg=Append[vectorulg,a];vectorulg=Append[vectorulg,b];
vectorulg1={};vectorulg1=Prepend[vectorulg1,vectorulg];vectorulg1=Prepend[vectorulg1,c];
Print["Vectorul G este: "];
Print[vectorulg1];
factori;
timp2=AbsoluteTime[];
Print["In total au trecut ",timp2-timp1 ," secunde."]
(* Decriptarea *)
timp1=AbsoluteTime[];
vectorulg1={se introduce criptograma};
vectorulg=vectorulg1[[2]];
baza=vectorulg[[Length[vectorulg]-2]];
a=vectorulg[[Length[vectorulg]-1]];b=vectorulg[[Length[vectorulg]]];
matrcod=Table[1,{i,1,a},{j,1,b}];
vectorulc={};vectorulc=Drop[vectorulg,-2];
For[i=1,ia,i++,matrcod[[i]]=IntegerDigits[vectorulg[[i]],baza]];
MatrixForm[matrcod];
contorvectorulm=0;vectorulm={};
For[i=1,ia,i++,For[j=1,jb,j++,contorvectorulm=contorvectorulm+1;
vectorulm=Append[vectorulm,matrcod[[i,j]]]]];
If[vectorulm[[Length[vectorulm]]] 42,vectorulm=Delete[vectorulm,Length[vectorulm]]];
key=FromCharacterCode[vectorulm];
key=ToExpression[key];
Print["Cheia decodificat este: "];
Print[key];
k=Length[key];
c=vectorulg1[[1]];t=Length[c];n=Ceiling[Log[2,t]];reuniunekey={};
For[i=1,ik,i++,reuniunekey=Union[reuniunekey,key[[i]]]]
tau=Log[2,Length[reuniunekey]];t1=2^(n-tau);m2={};
Print["t=",t,"; n=",n,"; k=",k];
m5={};m2={};
For[i=1,it,i++,m1=IntegerDigits[c[[i]],2];If[Length[m1]<k,dif=k-Length[m1];
For[j=1,jdif,j++,m1=Prepend[m1,0]]];
m2={};For[j=1,jk,j++,int=IntegerPart[(i-1)/t1];
If[MemberQ[key[[j]],int],m2=Append[m2,1],m2=Append[m2,0]]];
m3=Mod[m1+m2,2];m5=Append[m5,FromDigits[m3,2]]];
FromCharacterCode[m5]
timp2=AbsoluteTime[];
Print["In total au trecut ",timp2-timp1 ," secunde."]



161
Codul surs a unei variante simplificate a algorimului Cripto 4 (compartimentul 3.4).

timp1=AbsoluteTime[];
submsimboluri="mesajul";
q=2;
tau=5;
m=ToCharacterCode[submsimboluri];t=Length[m];n=Ceiling[Log[q,t]];k=Ceiling[Log[q,Max[m]]];
mmax=Max[m];
m2={};
Print["t=",t,"; n=",n,"; k=",k];
RandomRelist[xxxx_List]:=Block[{rand=xxxx,pppp},Do[pppp=Random[Integer,{1,iiii}];rand[[{pppp,iiii}]]=rand[
[{iiii,pppp}]],{iiii,Length[xxxx]}];rand];
k=k+0;
exp1=q^tau;
exp2=q^k-1;
key={};
For[i=1,iexp1,i++,key=Append[key,RandomInteger[{1,exp2}]]];
keymax=Max[key];
k1=Max[{Length[IntegerDigits[mmax,q]],Length[IntegerDigits[keymax,q]]}];
Print["Cheia este:"];
Print[key];
c={};m2={};
For[i=1,it,i++,j1=Mod[i-1,exp1]+1;m1=IntegerDigits[m[[i]],q];If[Length[m1]<k1,dif=k1-
Length[m1];For[j=1,jdif,j++,m1=Prepend[m1,0]]];m2=IntegerDigits[key[[j1]],q];
If[Length[m2]<k1,dif=k1-Length[m2];For[j=1,jdif,j++,m2=Prepend[m2,0]]];
m3=Mod[m1+m2,q];c=Append[c,FromDigits[m3,q]]];
Print["Criptograma este:"];
codcod=FromCharacterCode[c];
Print[InputForm[codcod]];
timp2=AbsoluteTime[];
Print["In total au trecut ",timp2-timp1 ," secunde."]
timp1=AbsoluteTime[];
c=ToCharacterCode[codcod];
t=Length[c];n=Ceiling[Log[q,t]];
exp1=Length[key];
exp2=q^k-1;tau=Log[q,exp1];
m2={};mmax=Max[m];keymax=Max[key];
Print["t=",t,"; n=",n,"; k=",k]
k1=Max[{Length[IntegerDigits[mmax,q]],Length[IntegerDigits[keymax,q]]}];
m5={};m2={};
For[i=1,it,i++,j1=Mod[i-1,exp1]+1;m1=IntegerDigits[c[[i]],q];If[Length[m1]<k1,dif=k1-
Length[m1];For[j=1,jdif,j++,m1=Prepend[m1,0]]];m2=IntegerDigits[key[[j1]],q];If[Length[m2]<k1,dif=k1-
Length[m2];For[j=1,jdif,j++,m2=Prepend[m2,0]]];m3=Mod[m1-
m2+q,q];m5=Append[m5,FromDigits[m3,q]]];
Print["Textul decodificat este:"]
FromCharacterCode[m5]
timp2=AbsoluteTime[];
Print["In total au trecut ",timp2-timp1 ," secunde."]














162
DECLARAIA PRIVIND ASUMAREA RSPUNDERII



Subsemnatul, declar pe proprie rspundere c materialele prezentate n teza de doctorat, se refer
la propriile activiti i realizri, n caz contrar urmnd s suport consecinele, n conformitate cu
legislaia n vigoare.

Numele de familie, prenumele: Zgureanu Aureliu

Semntura:

Data: 15.10.2011






















163
CV AL AUTORULUI


Zgureanu Aureliu
Adresa: Republica Moldova, m. Chiinu, c. Bubuieci, str. D. Cantemir 20/2
Telefon: +373 415755, +373 79234829 (mob.)
Email: aurelzgureanu@gmail.com, aurelzgureanu@yahoo.com
Data i locul naterii:
10 noiembrie 19870, s. Gura Camencii, r. Floreti, Rep. Moldova
Studii:
Iunie 1987, Absolvent al M Gura Camnecii
Iulie 1992, Absolvent al USM, matematician, profesor
2008-2011, Doctorand la specialitatea 01.01.09 (Cibernetic Matematic i Cercetri
Operaionale)
Activitatea profesional
Iunie 1992-Iulie 1994, profesor, M nr. 63, Chiinu
Iulie 1994 - Noiembrie 1996, inginer pe pregtirea cadrelor, Moldovahidroma
Noiembrie 1996 - August 2000, profesor de matematic i informatic, Colegiul Tehnic
August 2003 - Aprilie 2003, lector, Universitatea de Criminologie
Iulie 2003 - 2011, lector superior ATIC
Domenii de activitate
tiinific
Teoria numerelor, Mulimi de relaii multi-are, Funcii Booleene, Metode de criptare
Participri la foruri
tiinifice internaionale
1. The XIVth Conference on Applied and Industrial Mathematics, Satellite
Conference of the ICM, Chisinau 2006.
2. International Algebraic Conference dedicated to the 100
th
anniversary of D. K.
Faddeev. St Petersburg, Russia, 2007.
3. ASADE Moldova, August 21, 2007.
4. Conferina tiinific internaional Modelare matematic, optimizare i
tehnologii informaionale. Chiinau, 19-21 martie, 2008. ATIC.
5. , (-08),
, , 2008.
6. Conferina Internaional ICT+ TEHNOLOGII INFORMAIONALE I DE
COMUNICAII - 2009. 19 20 MAI 2009, or. CHIINU.
7. Conferina Managementul ntreprinderii n mediul economic contemporan. 24-
25 septembrie, 2009. Chiinu.
8. Conferina tiinific internaional. Modelare matematic, optimizare i tehnologii
informaionale. Chiinau, 26-28 martie, 2010
9. Tiberiu Popoviciu seminar, Cluj-Napoca 6-7 september, 2010.
10. International Student Conference on Pure and Applied Mathematics (ISCOPAM),
Iai, July 12-16, 2010.
11. MITRE-2011, International Conference dedicated to the 65th anniversary of
Moldova State University, Chiinu, 2011.
Lucrri tiinifice
publicate
1. Bulat, M., Leon,D., Bivol, L., Ciobanu I., Zgureanu,A..(2006) Generadores de
numeros primos y factorizadores de numeros compuestos Revista de
Matematica: Teoria y Aplicaciones, 2006 ,13(1) CIMPA-UCR-CCSS: pp. 1-15.
2. Bulat, M.; Zgureanu, A.; Ciobanu, I.; Bivol, L. (2006) A method for obtaining
arbitrary formprime numbers, Satellite Conference of the ICM 2006. The XIVth
Conference on Applied and Industrial Mathematics, Chisinau: pp. 7073.
3. Bulat M., Zgureanu A., Ciobanu I., Bivol L. Generating of prime numbers based
on the multidimensional matrices. International Algebraic Conference dedicated to
the 100
th
anniversary of D. K. Faddeev. St Petersburg, Russia, 2007, pp. 98-99.
4. Bulat M., Zgureanu A., Ciobanu I., Bivol L. The inverse transformations of
multidimensional matrices. ASADE Moldova, August 21, 2007, pag. 34-34.
5. Bulat M., Zgureanu A., Ciobanu I., Bivol L. Sisteme de criptare cu chei vectoriale.
Conferina tiinific internaional. Modelare matematic, optimizare i
tehnologii informaionale. Chiinau, 19-21 martie, 2008. ATIC, pp. 281 285.
6. .., .., .., .. -
n- . , (-08),
, ,
2008: pp. 66-67.
7. Aureliu Zgureanu, Mihai Bulat. Sisteme de criptare bazate pe funcii booleene.
Conferina Internaional ICT+ TEHNOLOGII INFORMAIONALE I DE
COMUNICAII- 2009. 19 20 MAI 2009, or. CHIINU.

164
8. Zgureanu Aureliu, Sisteme de criptare cu chei variabile. Analele ATIC-2007-2008,
vol. I (XII). pp. 92-98, Chiinu. Evrica. 2009.
9. Zgureanu A., Bulat M., Protecia informaiei i managementul ntreprinderii.
Materialele conferinei Managementul ntreprinderii n mediul economic
contemporan. 24-25 septembrie, 2009. Chiinu. Evrica. 2009. pp. 312-314.
10. Mihai Bulat, Aureliu Zgureanu, Iacob Ciobanu, Vladimir Izba. Sistem de criptare
bazat pe derivarea funciilor booleene. Conferina tiinific internaional.
Modelare matematic, optimizare i tehnologii informaionale. Chiinau, 26-28
martie, 2010. pp. 132-141.
11. Aureliu Zgureanu, Sergiu Cataranciuc. Encryption systems based on
multidimensional matrixes. Tiberiu Popoviciu seminar, Cluj-Napoca 6-7
september, 2010, 11 pagini.
12. Zgureanu Aureliu, Information encryption systems based on Boolean functions.
The Computer Science Journal of Moldova, vol.18, no.3(54), 2010, pp. 319-335.
13. Mihai Bulat, Sergiu Cataranciuc, Aureliu Zgureanu. A method for calculating the
Zhegalkin polynomial coefficients. MITRE-2011, International Conference
dedicated to the 65th anniversary of Moldova State University, Chiinu, 2011,
pp. 19-20.

S-ar putea să vă placă și