Sunteți pe pagina 1din 6

ANALELE ŞTIINŢIFICE ALE UNIVERSITĂŢII „ALEXANDRU IOAN CUZA” DIN IAŞI

Tomul LII/LIII Ştiinţe Economice 2005/2006

UN MODEL DE CRIPTARE DESCRIS PE PAŞI

DANIEL HOMOCIANU∗

A Ciphering Model Described Step by Step

Abstract

The ciphering is a security technique used to protect information the way it could not be
theoretically understood by any unauthorized person that tries to intercept it as stored or transmitted
data. But the time and the deciphering machine are critical factors in order to practically find out the
meaning of the safe data.
This paper describes a ciphering / deciphering technique as it was implemented thru a Rapid
Application Development solution. The algorithms which implement it are followed by comments in
order to provide the understanding of the whole solution.

Key words: ciphering, RAD solution, algorithms, comments

1 Introducere

În condiţiile unui mediu economic competitiv, informaţiile şi tehnologiile


informaţionale au devenit esenţiale pentru atingerea obiectivelor unei firme [Oprea, 2002,
p.11]. Necesitatea dezvoltării tehnicilor de criptare - în calitate de măsuri recunoscute de
protecţie şi securitate a informaţiilor - a evoluat în sensul automatizării acestora, dar şi a
optimizării algoritmilor pentru codificarea mesajelor transmise.
În termeni generali, se obişnuieşte să se numească mesaj un ansamblu de date trimis de
un emiţător către un receptor. Printr-un algoritm de criptare, mesajele vor fi transformate, pe
baza unei chei de criptare, într-un rezultat inteligibil doar de către destinatar.
Soluţia descrisă în acest material foloseşte un sistem de criptare prin chei simetrice
(secrete), ştiut fiind că acest tip este cu mult mai rapid, mai sigur şi mai eficient - pentru
volume însemnate de date - decât orice sistem bazat pe chei de criptare asimetrice (publice),
dincolo de orice posibil dezavantaj legat de standardizare.
Algoritmii care compun acest model utilizează două tehnologii criptografice simple:
permutarea şi substituţia, plecând de la ideea că o combinare a acestora poate să conducă la
variante aproape imposibil de spart [Oprea, 2003, p.110]. Astfel, elementele esenţiale vor
consta în tipurile de deplasamente în şirurile de caractere, respectiv în legile de conversie ale
alfabetului.
Dificultatea descifrării mesajului codificat va rezulta, însă, din execuţia în cascadă a
procedurilor / funcţiilor criptografice şi, astfel, din diminuarea consistentă a relevanţei
rezultatelor posibile de obţinut prin analiza dispersiei (hashing) respectiv a frecvenţei


Doctorand, Catedra de Informatică Economică, Facultatea de Economie şi Administrarea Afacerilor,
Universitatea „Alexandru Ioan Cuza” Iaşi, e-mail: daniel.homocianu@feaa.uaic.ro
354 DANIEL HOMOCIANU

apariţiei. Un avantaj suplimentar ţine de lungimea variabilă a cheii finale de criptare


corespunzătoare ordinii de apelare a procedurilor şi, concomitent, de posibilitatea definirii
unui algoritm de generare a cheilor, sensibil la dimensiunea mesajului în clar.

2 Algoritmi de permutare

În limbajul de programare Visual Basic - un mediu rapid de dezvoltare de software


(RAD), algoritmii de permutare sunt implementaţi prin intermediul unor funcţii. Ele servesc
la schimbarea ordinii caracterelor din şirul original după metode variabile. Vom denumi
simbolic aceste funcţii prin: Ci (de la criptare). Primul algoritm va inversa textul de codificat
(figura 1), coincizând practic cu simetricul său, implementat prin funcţia de decriptare (D1).

Fig. 1 Algoritm de inversare a unui text

Cel de-al doilea algoritm va prelua mai întâi caracterele de pe poziţii impare şi,
ulterior, pe cele de pe poziţii pare (figura 2).

Fig. 2 Algoritmi de preluare / restaurare a caracterelor de pe poziţii impare, respectiv pare

Un alt algoritm va conduce la preluarea succesivă a caracterelor de pe poziţii simetrice


din şirul de prelucrat - parametru al funcţiei (figura 3).
Alţi 5 algoritmi preiau subşiruri de câte i caractere din şirul parametru, cărora le
interschimbă extremele, realizând în plus inversarea subşirului rămas, format din caractere
care însumează mai puţin de i poziţii. Mai menţionăm că i = 2, 3, 5 (figura 4), 7, 9, iar
funcţiile corespunzătoare de permutare sunt identice ca definiţie cu opusele lor.
Un model de criptare descris pe paşi 355

Fig. 3 Algoritmi de preluare succesivă / restaurare de caractere de pe poziţii simetrice în şir

Fig. 4 Algoritm de interschimbare a extremelor pe subşiruri de câte 5 caractere

Fig. 5 Fragment din Codul ASCII [Look Up Tables]


356 DANIEL HOMOCIANU

Fig. 6 Algoritmi de substituţie - conversie ASCII în zecimal / reconversie ASCII în text

3 Algoritm de substituţie

Funcţia care implementează algoritmul de substituţie converteşte alfabetul (domeniul


de valori) iniţial prin restrângere la un set mai simplu de caractere. Aici s-a utilizat conversia
ASCII (figura 5) între setul de caractere utilizat de un editor obişnuit de texte şi un domeniu
mixt, compus din setul zecimal (cifre de la 0 la 9) şi caracterul virgula, acesta din urmă
facilitând procesul invers substituţiei.
Apelând la un banal algoritm data/text mining de predicţie a valorilor, subşirul care
urmează după prima virgulă poate fi simplu perceput ca şir de poziţii, dată fiind diferenţa
mică (2 sau 3) dintre valorile seriilor foarte uşor de identificat [Airinei, 2002, p.140]. O
astfel de serie este: 0 2 5 8 11 14 17 (figura 6).
Interceptând şi subşirul propriu-zis codificat ASCII (cel de dinaintea primei virgule),
orice “spărgător” amator ar putea conchide că algoritmul este, prin concepţie, “condamnat”
să ofere o breşă de securitate. Intervin, însă, câteva facilităţi suplimentare, care, prin
combinaţie cu mecanismul în discuţie, determină succesul soluţiei finale:
a. posibilitatea de a defini o funcţie suplimentară (eventual C10) de transformare a
rezultatului astfel obţinut (numere şi virgule) prin redefinirea pe un domeniu nou,
conceput plecând de la semnificaţia unui grup de k cifre consecutive. De exemplu,
grupuri de 2 sau 3 cifre consecutive, cu valori în intervalul 32-126 se pot reconverti
ASCII în text obişnuit (în MS Word - normal text, basic latin subset);
b. apelarea în cascadă a altor algoritmi:
o de permutare - deoarece diminuează considerabil posibilităţile de depistare a unor
tipare de evoluţie a valorilor în şirul rezultat;
Un model de criptare descris pe paşi 357

o de adăugare de şiruri redundante - pentru că determină eşuarea multor algoritmi


de criptanaliză care se bazează pe descoperirea frecvenţei şi a dispersiei valorilor
într-o serie de date;
c. controlul execuţiei în cascadă folosind o cheie de criptare finală conţinând cifre ce
corespund numelui funcţiilor Ci executate şi având dimensiune variabilă, posibilă de
stabilit printr-un algoritm suplimentar de generare care va respecta câteva reguli
elementare:
o dimensiunea cheii va fi invers proporţională cu cea a mesajului în clar;
o funcţia de substituţie C6 (corespunzătoare valorii 6 în cheia finală) va fi executată
cu o frecvenţă restrânsă din câteva motive simple:
ƒ evitarea unei cantităţi enorme de caractere generate;
ƒ limitarea relevanţei tentativelor de depistare a valorilor repetitive;
o ultimul apel al funcţiei de substituţie va fi urmat, în mod obligatoriu, de permutări
şi adaos de text redundant în mesajul rezultat (algoritmii de la punctul b).

Fig. 7 Algoritm recursiv de criptare finală

4 Algoritm de inserare de şiruri redundante

Acest algoritm este tratat deocamdată de o manieră simplistă. Cu alte cuvinte, soluţia
dispune doar de o singură funcţie de acest tip, care preia fiecare caracter din şirul redundant
pentru a-l adăuga după fiecare poziţie din şirul de prelucrat.
Ulterior, pot fi stabilite tipare variate de inserare sau se poate defini o funcţie automată
de generare a unei chei de inserare pentru astfel de şiruri. Simplificat, aceasta va putea
returna ranguri sau poziţii de inserare în şirul original.
Cât priveşte alegerea şirului redundant, se poate apela, de asemenea, la un algoritm
suplimentar de generare depinzând de necesităţile de context (de pildă, alegerea valorilor
dintr-un domeniu diferit de cel al şirului în care se face inserarea, din raţiuni de sporire a
dispersiei valorilor înainte de următoarea substituţie).

5 Algoritm de aplicare a cheii finale de criptare

Rezultatul final va fi un set de 10 funcţii de manipulare a şirurilor. Ordinea aplicării


succesive a acestora pornind de la mesajul în clar poate fi generată şi salvată sub forma unei
chei de criptare finale care ia valori cifrice şi nu binare. Aceasta va presupune, bineînţeles, şi
un algoritm de apelare recursivă a funcţiilor precedente (figura 7).
358 DANIEL HOMOCIANU

Pentru procesul invers, s-a definit o funcţie recursivă asemănătoare (D). În ambele
cazuri reţin atenţia: posibilitatea de optimizare prin reducerea timpilor necesari
recursivităţii - renunţarea la structura alternativă generalizată, respectiv importanţa care
trebuie acordată preluării posibilelor erori - apelul funcţiilor de decriptare în altă ordine
decât cea corespunzătoare ordinii inverse a cifrelor din cheia de criptare finală conduce la
erori fatale care trebuie camuflate.
Alături de aceste necesităţi care se referă adesea la principii elementare în criptanaliză,
reţin atenţia şi câteva calcule de rezistenţă a soluţiei finale. Astfel, pentru o cheie de criptare
finală stocată pe 512 poziţii definite ca valori în sistemul zecimal (0-9), testul brut de
descifrare presupune validarea a 10512(>23x512) variante de chei, adică o nevoie de timp mai
mare decât pentru o cheie de criptare ipotetică pe 1536 biţi (3x512).
În plus, este cunoscut faptul că, nu demult, un procesor avea viteza exprimată în
milioane de cicluri pe secundă - MHz, în timp ce operaţiile elementare (o.e.) de executat
necesitau adesea un ciclu [Mueller ş.a., 2000, p.32] - la ora actuală doar o fracţiune. Astfel
că, un procesor rulând la n GHz operează la circa n x 109 cicluri (perioade) pe secundă şi va
executa (în operaţii pe secundă) n x 109 cicluri/secundă x nr.de o.e./ciclu.
Vom presupune că o unitate de procesare va putea ajunge la performanţa de a testa 2512
astfel de chei (aproximativ 1,34 x 10154) într-o secundă. Atunci, pentru a descifra mesajul
criptat folosind soluţia descrisă (considerând că se cunosc cei 10 algoritmi), tot va fi nevoie
de cel puţin 23x512/2512 secunde, într-un test brut. Mai precis 22x512 secunde sau (împărţind la
365 x 24 x 3600=3,1536 x 107 secunde/an) aproximativ 5,7 x 10300 ani - are la exponent cu
un ordin de mărime mai mult decât la acelaşi tip de rezultat pentru algoritmul Rijndael
(aplicat în standardul AES - Advanced Encryption Standard).

6 Concluzii

Modelul prezentat poate fi utilizat cu succes în transmiterea securizată a mesajelor


confidenţiale sau în codarea parolelor de salvat. Deşi optimizată pentru mesaje în clar de
dimensiuni rezonabile, soluţia pornind de la care s-a definit acest model teoretic poate
înregistra performanţe şi în zona mult mai complexă a bazelor de date - camuflarea valorilor
unor câmpuri confidenţiale din anumite tabele.
Modelul descris este eficient şi în măsura în care alfabetul destinaţie este suficient de
neobişnuit şi dificil de intuit ca şi reguli de transformare. Aceeaşi eficienţă depinde, însă,
esenţial, de performanţa şi complexitatea algoritmilor de generare a cheilor.

Bibliografie

Airinei, D., Depozite de date, Editura Polirom, Iaşi, 2002.


Andreica, A., Concepte şi evoluţii în informatică, Editura Facultăţii de Studii Europene,
Cluj-Napoca, 2000.
Mueller, S., Zacker, C., PC Depanare şi modernizare, Ediţia a III-a, Editura Teora,
Bucureşti, 2000.
Oprea, D., Protecţia şi securitatea sistemelor informaţionale, Editura Polirom, Iaşi, 2002.
Oprea, D., Protecţia şi securitatea informaţiilor, Editura Polirom, Iaşi, 2003.
*** http://www.ciphersbyritter.com/NEWS6/CASCADE.HTM.
*** http://www.lookuptables.com .