Documente Academic
Documente Profesional
Documente Cultură
11 martie 2002
2
Cuprins
1 Introducere 5
1.1 Prezentarea lucrării . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2 Scurtă istorie a steganografiei . . . . . . . . . . . . . . . . . . 5
2 Preliminarii teoretice 9
2.1 Gramatici . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.1.1 Gramatici independente de context . . . . . . . . . . . 9
2.1.2 Gramatici de tip LR(k) . . . . . . . . . . . . . . . . . 11
2.1.3 Algoritm de parsare pentru gramatici de tip LR(k) . . 14
2.2 Gramatici ponderate . . . . . . . . . . . . . . . . . . . . . . . 19
2.3 Coduri Huffman . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.3.1 Codificare . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.3.2 Construcţia codurilor Huffman . . . . . . . . . . . . . . 22
3 Sistemul de criptare 25
3.1 Prezentarea sistemului . . . . . . . . . . . . . . . . . . . . . . 25
3.2 Extinderea sistemului . . . . . . . . . . . . . . . . . . . . . . . 27
3.3 Algoritmii de criptare şi decriptare . . . . . . . . . . . . . . . 28
3.3.1 Algoritmul de criptare . . . . . . . . . . . . . . . . . . 28
3.3.2 Procesul de decriptare . . . . . . . . . . . . . . . . . . 30
3.4 Siguranţa sistemului . . . . . . . . . . . . . . . . . . . . . . . 31
3.4.1 Analiza teoretică a securităţii sistemului . . . . . . . . 31
3.4.2 Metode de ı̂mbunătăţire a securitătı̂i sistemului . . . . 32
4 Concluzii 35
A Coduri Huffman 39
3
4 CUPRINS
Capitolul 1
Introducere
5
6 CAPITOLUL 1. INTRODUCERE
tradus astfel, steganografia inseamnă scriere ascunsă, şi acesta este sensul
folosit ı̂n ziua de azi, adică scriere care nu este vizibilă unui observator oare-
care. De exemplu, scrierea de către copii a mesajelor cu ”cerneală simpatică”
este un exemplu de steganografie deoarece scrierea este ascunsă ı̂n sensul că
nu poate fi citită decât de cineva care ştie să o caute.
Dar sub această denumire, se găseşte o gamă largă de metode secrete de a
comunica. Inafară de cerneala invizibilă, mai sunt micropuncte (folosite in al
II-lea război mondial), rearanjarări ale caracterelor (altele decât permutările
şi substituţiile folosite ı̂n criptografie), semnături digitale, canale ascunse,
cominicaţii spread-spectrum (bazate pe ı̂mprăştierea semnalului).
,,Staganografia este arta şi ştiinţa comunicării ı̂ntr-un fel ı̂n care se as-
cunde existenţa comunicării. În contrast cu criptografia, ı̂n care inamicului
ı̂i este permis să detecteze, intercepteze şi să modifice mesaje, fără a putea
ı̂ncălca anumite premize de securitate garantate de un anumit criptosistem,
scopul steganografiei este de a ascunde mesaje ı̂n alte mesaje inofensive astfel
ı̂ncât să nu-i permită inamicului nici măcar să detecteze existenţa unui mesaj
ascuns.” (Markus Kuhn)[SH]
Unul dintre primele documente care atestă folosirea procedeelor steganografice
se găseşte ı̂n Istoriile lui Herodot. In Grecia antică, textul se scria pe plăcuţe
acoperite cu ceară. În una din povestiri, Demeratus voia să anunţe Sparta de
intenţiile lui Xerxes (ı̂mpăratul Persiei) de a invada Grecia. Pentru a evita
capturarea mesajului, el a răzuit ceara de pe plăcuţe şi a scris mesajul direct
pe lemn, apoi a acoperit din nou plăcuţele cu ceară. Astfel, tăbliţele păreau
goale şi nefolosite şi au trecut de inspecţia santinelelor fără ı̂ntrebări.
Altă metodă ingenioasă consta ı̂n următoarele: mesagerul era ras ı̂n cap şi
se scria mesajul pe pielea capului sau. Astfel, mesajul rămânea de nedetectat
până când mesagerul era din nou ras ı̂n cap.
Vechii chinezi, foloseau de asemenea o metodă ce implica ceara: mesajul
era scris pe mătase fină, care era apoi introdusă ı̂ntr-o bilă, acoperită cu ceară
şi ı̂nghiţită de mesager.
Cerneala invizibilă (simpatică) a fost folosită timp de secole de majori-
tatea civilizaţiilor fiind folosită cu succces şi ı̂n al II-lea război mondial.
Surse obişnuite de cerneală invizibilă sunt laptele, oţetul, sucurile de fructe şi
urina. Toate acestea se ı̂nnegresc la căldură. Metodele moderne care implică
cerneală invizibilă sunt mult mai complexe şi pentru obţinerea mesajului sunt
necesare procedee asemănătoare developării.
Odată cu tehnologia informaţiei şi informaţia digitală, steganografia şi-a
găsit locul ı̂n semnături digitale (care presupun ascunderea informaţiei ı̂n
date, fără a perturba prea mult ı̂ntelesul acestora).
Ascunderea informaţiei se poate ı̂n imagini (pe bitul cel mai puţin semni-
ficativ al culorilor, la imagini arhivate, etc.), ı̂n arhive, ı̂n fişiere executabile
1.2. SCURTĂ ISTORIE A STEGANOGRAFIEI 7
(asemănător viruşilor).
În al II-lea razboi mondial, germanii au descoperit tehnologia Mikrat
(micro-punct)[MD] care constă ı̂n proiectarea unei imagini ı̂ntr-o altă imag-
ine, mult micşorată de mărimea unui punct tipografic. Referindu-se la această
tehnică, directorul FBI J. Edgar Hoover o denumea ”capodopera spionajului
inamic”.
Comunicarea spread-spectrum (prin ı̂mprăştierea semnalului) [SS]presupune
existenţa unei game largi de canale de comunicaţie (de exemplu bandă ra-
dio) şi constă de exemplu ı̂n transmiterea de pachete mici aleator pe diferite
canale, sincronizarea făcându-se cu ajutorul unui generator de numere pseudo-
aleatoare.
O altă metodă, care e refolosită sub diverse forme şi astăzi este sistemul
de criptare folosit de cardinalul Richelieu care consta ı̂ntr-un şablon care se
aşeza peste foaia de hârtie, apoi se scrie ı̂n găurile şablonului mesajul, după
care se ı̂ndepărtează şablonul şi se completează foaia astfel ı̂ncât să rezulte
un mesaj inofensiv.
Putem include aici şi mesajele care ascund după o anumită regulă litere
ı̂n cuvintele unui text, spre exemplu ı̂n prima sau a doua literă din fiecare
cuvânt. Mesajul din exemplul următor a fost trimis de un spion german in
al II-lea război mondial:
Dacă selectăm a două literă din fiecare cuvânt, mesajul obţinut este
De asemenea, se pot ascunde mesaje si prin aşezarea ı̂n pagină sau spaţierea
unui text. De exemplu, să zicem că avem un mesaj M 1 ı̂n care dorim să
evidenţiem nişte cuvinte. pentru aceasta creem mesajul M 2 care este M 1 ı̂n
care am marit puţin spaţiul din faţa cuvintelor ce trebuie evidenţiate şi l-am
micşorat pe cel de dupa la fel de puţin. In acest fel, prin suprapunerea celor
2 texte, textul rezultat va avea ı̂ngroşate acele cuvinte.
Exemplu: Fie mesajele:
şi
8 CAPITOLUL 1. INTRODUCERE
ı̂n care dacă citim literele ı̂ngroşate ı̂n ordine obţinem numele Claudia.
Capitolul 2
Preliminarii teoretice
În acest capitol voi defini câteva din elementele matematice care stau la
baza sistemului de criptare propus. Ele fac parte fie din teoria limbajelor
formale (gramaticile de tip LR(k)), fie din teoria codurilor şi a compresiei
de date (arbori Huffman şi coduri Huffman). Le voi prezenta pe amândoua
acordându-le importanţă egală ı̂n cele două secţiuni ce urmează.
2.1 Gramatici
Definiţia 1.1 (V ∗ ):
Dată fiind o mulţime V numită alfabet, se defineşte V ∗ ca fiind monoidul
liber generat de V cu operaţia de concatenare. Elementele lui V ∗ se numesc
cuvinte peste alfabetul V şi sunt alaturări oarecare de simboluri din V .
Pentru w ∈ V ∗ , prin |w| ı̂ntelegem lungimea cuvăntului w (numărul de sim-
boluri care ı̂l formează.
9
10 CAPITOLUL 2. PRELIMINARII TEORETICE
∗
Notăm cu =⇒ ı̂nchiderea reflexivă şi tranzitivă a relaţiei =⇒ (corespunzând
+
derivării ı̂n mai multi paşi) şi cu =⇒ ı̂nchiderea tranzitivă a relaţiei =⇒ (core-
spunzând derivării ı̂n cel puţin un pas).
∗
Pentru a fi mai expliciţi, α =⇒ β dacă există derivările
α =⇒ α1 =⇒ α2 ... =⇒ αn =⇒ β
+
cu n ≥ 0 iar la α =⇒ β, diferenţa este că n ≥ 1.
Se poate observa că şirul de derivări drepte prin care este obţinut un
cuvânt este dat de parcurgerea in postordine a arborelui de derivare asociat
cuvântului.
Se observă că din γBx =⇒ αβy rezultă că există B −→ δ şi γδx = αβy,
d.d.
adică δ = β.
Intuitiv, dacă αβw şi αβy sunt obţinute prin derivări drepte şi avem
F IRSTk (w) = F IRSTk (y) şi dacă A −→ d.d.
β este ultima producţie folosită
ı̂n obţinerea lui αβw prin derivări drepte, atunci producţia A −→ d.d.
β tre-
buie folosită şi pentru a reduce αβw (la αAy) la parsare. Deoarece A de-
rivă ı̂n β independent de w, condiţia din definiţie spune că există suficientă
informaţie ı̂n F IRSTk (w) pentru a determina că αβ a fost derivat din αA.
Când parsăm, nu poate exista confuzie despre cum ar trebui să reducem o
producţie obţinută prin derivări drepte.
Condiţia ca S să nu apară ı̂n membrul drept al unei producţii a fost pusă
pentru a putea determina ı̂n timpul parsării dacă acceptăm şirul de intrare
când obţinem un S (ı̂n urma unei reduceri).
În general, gramaticile independente de context nu conţin suficientă informaţie
ı̂n F IRST (k) pentru a determina din ce a fost derivat şirul pe care ı̂l ex-
aminăm. Mai mult, aceste gramatici pot fi ambigue, pe când gramaticile
LR(k) nu.
Pentru a arăta că restricţia ca simbolul de start nu apare ı̂n dreapta nici
unei producţii nu restrânge din generalitate, dăm următoarea definiţie:
G0 = (N ∪ {S 0 , Σ ∪ {$}, S 0 , P ∪ {S 0 S$}}
Iesire: dacă avem acceptare procedura returneaza adevarat şi π este derivarea
dreaptă a lui z.
pentru o configuraţie (sS, aW, π). fie u, format din primele (cel mult)k
simboluri ale lui aW .
Cel mai simplu mod de a arăta cum funcţionează un parser LR(k) este
printr-un exemplu, ı̂n care avem deja construite tabelele actiune şi goto.
Procedeul de construire al acestor tabele ı̂l vom explica mai jos.
Gramatica care generează limbajul expresiilor aritmetice simple cu nu-
mere naturale separate de ’;’este LR(1). Definiţia gramaticii, şi tabelele,
actiune şi goto, sunt destul de elaborate şi le-am inclus ı̂n anexa 2.1.3.
Algoritmul procedează astfel: Extrage câte k litere din şirul de intrare
(fie u acest şir) şi aplică funcţia actiune perechii (s, u), unde s este starea
din capătul stivei stărilor. Dacă rezutatul este eroare, atunci algoritmul se
opreşte. Dacă rezultatul este i, iar regula i este A −→ α atunci se scot 2 | α |
simboluri din stivă stărilor. Această regulă se aplică până când nu mai avem
reduceri de făcut.
Şi pentru reducere şi pentru deplasare, se aplică funcţia goto primului
simbol din u (fie el u1 ) şi primei stări din stivă, apoi u1 şi starea obţinută se
adaugă stivei.
Pentru gramatica dată ca exemplu şi şirul de intrare 1 + 0$, algoritmul
de parsare va funcţiona astfel:
16 CAPITOLUL 2. PRELIMINARII TEORETICE
∗
bil αβ, dacă există o derivare S =⇒ αAw =⇒ αβγw astfel ı̂ncât u = F IRSTk (w$).
d.d. d.d.
J ←− I
repetă
pentru ∀A −→ α.Bβ; u ∈ J, B ∈ N
pentru ∀B −→ γ ∈ P
pentru ∀v ∈ F irstk (βu)
J ←− J ∪ {B −→ .γ; v}
Iesire: J
J ←− Inchidere(I)
Consideraţii teoretice
Pentru demonstraţiile acestor rezultate, vezi [AU72]
Această teoremă ne asigură că o gramatică este LR(k) dacă şi numai dacă
tabelele actiune şi goto pot fi create.
Teorema 1.2: Algoritmul 1.4 determină ı̂n mod corect mulţimea mulţimilor
canonice.
Teorema 1.3: Algoritmul 1.1 determină ı̂n mod corect o derivare dreaptă
a şirului de intrare, dacă există una, sau se termină cu eroare altfel.
2.3.1 Codificare
Observăm că o codificare prefix este evident unic decodabilă (din definiţie).
Avantajul codurilor instantanee este acela că dacă se cunoaşte dinainte
frecvenţa simbolurilor sursă, atunci simbolurile sursă care apar mai frecvent
pot fi codificate cu cuvinte cod mai scurte, realizăndu-se astfel o codificare
mai eficientă (cerinţă ı̂n compresia de date). O astfel de codificare eficientă
este realizată de codurile Huffman.
Coduri Huffman
0 ≤ P (ai ) ≤ 1, (1 ≤ i ≤ n);
Pn
P (ai ) = 1.
i=1
22 CAPITOLUL 2. PRELIMINARII TEORETICE
O codificare este eficientă dacă lungimea medie a secvenţelor cod este cât
mai mică.
1 n ←− |A|
2 min-heap Q ←− A
2.3. CODURI HUFFMAN 23
3 pentru i ←− 1, n − 1
4 return min(Q).
2 p ←− parinte(a)
1 a ←− root(A)
3 return c
24 CAPITOLUL 2. PRELIMINARII TEORETICE
Sistemul de criptare
Cheile de criptare
Începem cu cheile de criptare pentru că, aşa cum vom vedea, ele determină
mulţimea textelor clare. Mulţimea cheilor de criptare K este:
K = {(GP, H)}
25
26 CAPITOLUL 3. SISTEMUL DE CRIPTARE
Funcţia de decriptare
Funcţia de decriptare ı̂ntoarce şirul de biţi ascuns ı̂ntr-un cuvânt w ∈
L(G) şi o putem defini astfel:
unde parse este funcţia care pentru un cuvănt al limbajului dă unicul şir de
derivări drepte asociat lui
Funcţia de criptare
Întrucât gramatica este neambiguă, fiecare text clar este unic determinat
de un cuvănt al limbajului. Adică, funcţia Dk este bijectivă. Definim funcţia
de criptare astfel:
Ek = Dk−1 : C −→ L(G)
Observatii
Precum se poate vedea, am definit textele criptate ı̂naintea celor clare re-
spectiv funcţia de decriptare ı̂naintea celei de criptare. Aceasta se datorează
faptului că atunci când criptăm folosind acest sistem efectuăm practic un
procedeu asemănător decompresiei datelor comprimate prin metoda de com-
presie Huf f man.
Marele dezavantaj al acestui sistem este acela că nu poate să cripteze
dacât acele şiruri care corspund unor cuvinte ı̂n limbajul generat de gramatică
şi doar după ce construim gramatica şi codificăril Huffman putem spune dacă
mesajul poate fi criptat cu ajutorul acestei chei.
Se impune deci găsirea unei metode de extindere a acestui sistem, care să
elimine aceste dezavantaje (sau să le minimizeze).
3.2. EXTINDEREA SISTEMULUI 27
ı̂n care:
• S1 este noul simbol de start
• Xleg este variabila care reprezintă legăturile ı̂ntre entităţi
• Σleg este alfabetul utilizat ı̂n producţiile lui Xleg
• Pleg este mulţimea de producţii asociate lui Xleg . Acestei mulţimi de
producţii i se asociază o codificare Huffman ca pentru orice altă vari-
abilă.
Obesrvăm că dacă Xleg are doar o producţie asociată (X −→ α), putem
să-l eliminăm şi să-l ı̂nlocuim cu α ı̂n singura producţie ı̂n care apare, caz ı̂n
care gramatica ar fi:
Pentru a putea cripta acum orice şir vom proceda ı̂n felul următor:
1 La folosirea variabilei S1 ı̂n derivare nu se ascunde nici un bit, codificarea
atasată ei fiind Ø.
2 completăm mesajul criptat cu un şir de biţi care indică sfărşitul mesajului.
3 În mod implicit, la derivarea variabilei S1 se foloseşte producţia S1 −→
S1 Xleg S.
28 CAPITOLUL 3. SISTEMUL DE CRIPTARE
P 0 ←− P \{A −→ αAβ}
(eliminăm producţiile cu recursie imediată)
Teorema 3.1: Dacă condiţia 3.1 este ı̂ndeplinită, procedura cuvinte este
un algoritm şi se termină cu ieşirea dorită.
Demonstraţie:
• Condiţia 3.1 asigură existenţa a cel puţin unui cuvănt pentru fiecare
variabilă.
P 0 ←− cuvinte(G)
criptat ←− S1
index ←− 0
return criptat
• Dacă arborele are un singur nod, acela este şi rădăcină şi frunză şi este
singurul şir ı̂n care se poate deriva, deci se ı̂nlocuieşte făra a ascunde
nici un bit.
• Cu cât arborii Huffman au ı̂naltime mai mare (i.e. sunt mai multe
alegeri de făcut la un moment dat) cu atât putem ascunde mai mulţi
biţi.
Iesire: clar textul clar corespunzător lui w, sau eroare dacă w nu e recunos-
cut ca text criptat.
clar1 ←− ””
3.4. SIGURANŢA SISTEMULUI 31
cât timp π = iπ 0
determină clar de lungime minimă cu proprietatea clar < EOF > prefix al
lui clar1
Teorema 4.2: Fie A un algoritm care poate ı̂nvăţa să genereze arborele
de parsare şi fie G1 o gramatică. Atunci cu acest algoritm se poate prezice
apartenenţa unui şir la L(G1 )
32 CAPITOLUL 3. SISTEMUL DE CRIPTARE
Dar, precum afirmă umătoarea teoremă, corolar ı̂n [AK91], dacă inver-
sarea RSA-ului e o problemă intratabilă, atunci nu se poate ı̂nvăţa un pro-
gram să prezică apartenenţa unui şir la limbajul generat de o gramatică
neregulată. Dar mai ı̂ntâi, nişte definiţii pregătitoare.
Expansiunea
Expansiunea: Fie A o variabilă şi αi , i = 1, n expresiile ı̂n care derivă A.
Fie αik , k = 1, m un subsir al lui αi . Pentru orice producţie B −→ β1 Aβ2 ,
adăugăm producţiile B −→ β1 αik β2 . La sfârşit, ştergem producţiile A −→
αik .
Contracţia
Contracţia este un procedeu invers expansiunii (care adaugă noi variabile
gramaticii).
Permutarea
Permutarea constă ı̂n permutarea producţiilor unei variabile, din care
rezultă modificarea arborilor Huffman, deci şi a criptării.
Aceste modificări pot fi efectuate simultan de către cei doi parteneri care
comunică folosind un generator de numere pseudo-aleatoare sincronizat (cu
aceeaşi sămânţa). Aceasta sămânţă are valoarea unei chei suplimentare de
criptare.
Detalii privind aceste procedee se gasesc in [Way96].
34 CAPITOLUL 3. SISTEMUL DE CRIPTARE
Capitolul 4
Concluzii
Sistemul prezentat este destul de bun, ı̂n sensul că pentru anumite chei
poate fi comparat cu RSA-ul sau cu alte sisteme puternice de criptare.
Pentru o implementare pe internet a acestui sistem vezi [SPAM].
Dezavantaje:
• faptul ca o gramatică trebuie sa fie destul de elaborată pentru a-i păcăli
pe cei ce pot intercepta mesajele
• e necesar un schimb prealabil de chei pe un canal sigur
• datorită mărimii lor, cheile nu se pot schimba
• nu se ştie ce gramatici au puterea de criptare echivalentă cu RSA (deşi
se ştie că există)
Avantaje:
• cu ajutorul acestui sistem se poate ascunde informaţie ı̂n text aparent
inofensiv.
• asa cum am arătat mai sus deşi cheile nu se pot schimba prea des, ele
se pot transforma
• este uşor de proiectat o gramatică (realizarea unei gramatici necesită
puţine noţiuni teoretice) şi depinde doar de imaginaţia celui ce o crează.
Indicaţii pentru construirea unei gramatici ”bune”
• Gramatica trebuie să fie construită astfel ı̂ncât să simuleze o situaţie
din viaţa reală bazată pe repetiţie cum ar fi comentariul uni meci sau
povestirea unei telenovele sau un basm, sau ca ı̂n exemplul nostru un
discurs de candidatură. Oricum, sunt multe domenii care implică o
oarecare rutină (mai ales privite din afară)
35
36 CAPITOLUL 4. CONCLUZII
• Cu cât mai multe variabile sunt, cu atât mai bine. Adică se poate merge
cu construcţia textului până ls structura frazei, sau chiar a cuvântului.
• este bună folosirea a cât mai multe producţii pentru o variabilă pentru
a putea ascunde cât mai multă informaţie. Dacă avem 2n producţii
pentru o variabilă, atunci derivând-o putem ascunde n biţi. Putem
folosi fraze asemănătoare, sinonime, etc.
• mulţimea neterminalelor dintr-o producţie să fie cât mai mică pentru
ca să ascundem căt mai mult cu căt mai puţine cuvinte. (de aceea
exemplu dat e doar ı̂n scop didactic)
[AU72] Aho, A. V., Ullman, J. D., The Theory of Parsing, Translation And
Compiling
[CLR90] Cormen, Th. H., Leiserson, Ch. E., Rivest R. R., Introduction to
Algorithms, MIT Press 1990
[SPAM] http://www.spammimic.com.
[SH] http://www.jjtc.com/Steganography/
[SS] http://www.tapr.org/
[MD] http://www89.pair.com/techinfo/Microdot/microdot.htm
37
38 BIBLIOGRAFIE
Anexa A
Coduri Huffman
Prezint aici un cod Huffman asociat frecvenţei literelor ı̂n limba engleză
care l-am completat cu < EOF > divizând nodul lui Z:
39
40 ANEXA A. CODURI HUFFMAN
Anexa B
Gramatica
Vom folosi ca exemplu de gramatică aceeaşi gramatică folosită şi ı̂n exem-
plul de criptare/decriptare, deoarece ı̂n procesul de decriptare avem nevoie
şa parsăm şirul criptat. Gramatica este:
0 S 0 −→ S1 $ 13 C −→ C1
1 S1 −→ S1 ; E 14 C −→ 0
2 S1 −→ E 15 C1 −→ 1
3 E −→ E + T 16 C1 −→ 2
4 E −→ T 17 C1 −→ 3
5 T −→ T ∗ F 18 C1 −→ 4
6 T −→ F 19 C1 −→ 5
7 F −→ (E) 20 C1 −→ 6
8 F −→ N 21 C1 −→ 7
9 N −→ C1 N0 22 C1 −→ 8
10 N −→ 0 23 C1 −→ 9
11 N0 −→ N0 C
12 N0 −→ λ
Această gramatică este extensia gramaticii expresiilor aritmetice simple
cu numere naturale separate de ’;’. Mai jos, prezint paşii de construie a
mulţimii configuraţiilor, apoi tabelele actiune şi goto.
41
42 ANEXA B. CONSTRUCŢIA UNEI TABELE DE PARSARE
I0 I7
C1 −→ .1 ;$| ∗ |; | + |0|1|2|3|4|5|6|7|8|9 C1 −→ 4 .;1|2|3|4|5|6|7|8|9|0| ∗ | + |; |$
C1 −→ .2 ;$| ∗ |; | + |0|1|2|3|4|5|6|7|8|9
goto(I0 , 3) = I8
C1 −→ .3 ;$| ∗ |; | + |0|1|2|3|4|5|6|7|8|9
C1 −→ .4 ;$| ∗ |; | + |0|1|2|3|4|5|6|7|8|9 I8
C1 −→ .5 ;$| ∗ |; | + |0|1|2|3|4|5|6|7|8|9 C1 −→ 3 .;1|2|3|4|5|6|7|8|9|0| ∗ | + |; |$
C1 −→ .6 ;$| ∗ |; | + |0|1|2|3|4|5|6|7|8|9
C1 −→ .7 ;$| ∗ |; | + |0|1|2|3|4|5|6|7|8|9 goto(I0 , 2) = I9
C1 −→ .8 ;$| ∗ |; | + |0|1|2|3|4|5|6|7|8|9
C1 −→ .9 ;$| ∗ |; | + |0|1|2|3|4|5|6|7|8|9 I9
E −→ .E + T ;$|; |+ C1 −→ 2 .;1|2|3|4|5|6|7|8|9|0| ∗ | + |; |$
E −→ .T ;$|; |+ goto(I0 , 1) = I10
F −→ .( E ) ;$| ∗ |; |+
F −→ .N ;$| ∗ |; |+ I10
N −→ .0 ;$| ∗ |; |+ C1 −→ 1 .;1|2|3|4|5|6|7|8|9|0| ∗ | + |; |$
N −→ .C1 N0 ;$| ∗ |; |+
S1 −→ .E ;$|; goto(I0 , C1) = I11
S1 −→ .S1 ; E;$|; I11
S −→ .S1 ;$ N −→ C1 .N0;$| ∗ |; |+
T −→ .F ;$| ∗ |; |+ N0 −→ . ;$| ∗ |; | + |0|1|2|3|4|5|6|7|8|9
T −→ .T * F ;$| ∗ |; |+ N0 −→ .N0 C;$| ∗ |; | + |0|1|2|3|4|5|6|7|8|9
goto(I0 , 0) = I1 goto(I0 , N ) = I12
I1 I12
N −→ 0 .;∗| + |; |$ F −→ N .;∗| + |; |$
goto(I0 , 9) = I2 goto(I0 , () = I13
I2 I13
C1 −→ 9 .;1|2|3|4|5|6|7|8|9|0| ∗ | + |; |$ C1 −→ .1 ;)| ∗ | + |0|1|2|3|4|5|6|7|8|9
goto(I0 , 8) = I3 C1 −→ .2 ;)| ∗ | + |0|1|2|3|4|5|6|7|8|9
C1 −→ .3 ;)| ∗ | + |0|1|2|3|4|5|6|7|8|9
I3 C1 −→ .4 ;)| ∗ | + |0|1|2|3|4|5|6|7|8|9
C1 −→ 8 .;1|2|3|4|5|6|7|8|9|0| ∗ | + |; |$ C1 −→ .5 ;)| ∗ | + |0|1|2|3|4|5|6|7|8|9
C1 −→ .6 ;)| ∗ | + |0|1|2|3|4|5|6|7|8|9
goto(I0 , 7) = I4
C1 −→ .7 ;)| ∗ | + |0|1|2|3|4|5|6|7|8|9
I4 C1 −→ .8 ;)| ∗ | + |0|1|2|3|4|5|6|7|8|9
C1 −→ 7 .;1|2|3|4|5|6|7|8|9|0| ∗ | + |; |$ C1 −→ .9 ;)| ∗ | + |0|1|2|3|4|5|6|7|8|9
E −→ .E + T;)|+
goto(I0 , 6) = I5 E −→ .T ;)|+
F −→ ( .E ) ;$| ∗ |; |+
I5 F −→ .( E ) ;)| ∗ |+
C1 −→ 6 .;1|2|3|4|5|6|7|8|9|0| ∗ | + |; |$ F −→ .N ;)| ∗ |+
goto(I0 , 5) = I6 N −→ .0 ;)| ∗ |+
N −→ .C1 N0;)| ∗ |+
I6 T −→ .F ;)| ∗ |+
C1 −→ 5 .;1|2|3|4|5|6|7|8|9|0| ∗ | + |; |$ T −→ .T * F ;)| ∗ |+
goto(I0 , 4) = I7 goto(I0 , F ) = I14
43
I22 I27
C1 −→ .1 ;$| ∗ |; | + |0|1|2|3|4|5|6|7|8|9 C1 −→ 8 .;1|2|3|4|5|6|7|8|9|0| ∗ | + |)
C1 −→ .2 ;$| ∗ |; | + |0|1|2|3|4|5|6|7|8|9
C1 −→ .3 ;$| ∗ |; | + |0|1|2|3|4|5|6|7|8|9 goto(I13 , 7) = I28
C1 −→ .4 ;$| ∗ |; | + |0|1|2|3|4|5|6|7|8|9
C1 −→ .5 ;$| ∗ |; | + |0|1|2|3|4|5|6|7|8|9 I28
C1 −→ .6 ;$| ∗ |; | + |0|1|2|3|4|5|6|7|8|9 C1 −→ 7 .;1|2|3|4|5|6|7|8|9|0| ∗ | + |)
C1 −→ .7 ;$| ∗ |; | + |0|1|2|3|4|5|6|7|8|9 goto(I13 , 6) = I29
C1 −→ .8 ;$| ∗ |; | + |0|1|2|3|4|5|6|7|8|9
C1 −→ .9 ;$| ∗ |; | + |0|1|2|3|4|5|6|7|8|9 I29
F −→ .( E ) ;$| ∗ |; |+ C1 −→ 6 .;1|2|3|4|5|6|7|8|9|0| ∗ | + |)
F −→ .N ;$| ∗ |; |+
N −→ .0 ;$| ∗ |; |+ goto(I13 , 5) = I30
N −→ .C1 N0;$| ∗ |; |+
T −→ T * .F ;$| ∗ |; |+ I30
C1 −→ 5 .;1|2|3|4|5|6|7|8|9|0| ∗ | + |)
goto(I22 , 0) = I1
goto(I22 , 9) = I2 goto(I13 , 4) = I31
goto(I22 , 8) = I3
goto(I22 , 7) = I4 I31
goto(I22 , 6) = I5 C1 −→ 4 .;1|2|3|4|5|6|7|8|9|0| ∗ | + |)
goto(I22 , 5) = I6
goto(I13 , 3) = I32
goto(I22 , 4) = I7
goto(I22 , 3) = I8 I32
goto(I22 , 2) = I9 C1 −→ 3 .;1|2|3|4|5|6|7|8|9|0| ∗ | + |)
goto(I22 , 1) = I10
goto(I22 , C1) = I11 goto(I13 , 2) = I33
goto(I22 , N ) = I12
goto(I22 , () = I13 I33
goto(I22 , F ) = I23 C1 −→ 2 .;1|2|3|4|5|6|7|8|9|0| ∗ | + |)
I24 I35
E −→ E .+ T;)|+ N −→ C1 .N0;)| ∗ |+
F −→ ( E .) ;$| ∗ |; |+ N0 −→ . ;)| ∗ | + |0|1|2|3|4|5|6|7|8|9
N0 −→ .N0 C;)| ∗ | + |0|1|2|3|4|5|6|7|8|9
goto(I13 , 0) = I25
goto(I13 , N ) = I36
I25
N −→ 0 .;∗| + |) I36
goto(I13 , 9) = I26 F −→ N .;∗| + |)
I38 I42
T −→ F .;∗| + |) E −→ E .+ T;)|+
F −→ ( E .) ;)| ∗ |+
goto(I13 , T ) = I39
I39
E −→ T . ;)|+
T −→ T .* F;)| ∗ |+ goto(I37 , 0) = I25
goto(I37 , 9) = I26
goto(I39 , ∗) = I40 goto(I37 , 8) = I27
goto(I37 , 7) = I28
I40 goto(I37 , 6) = I29
C1 −→ .1 ;)| ∗ | + |0|1|2|3|4|5|6|7|8|9 goto(I37 , 5) = I30
C1 −→ .2 ;)| ∗ | + |0|1|2|3|4|5|6|7|8|9 goto(I37 , 4) = I31
C1 −→ .3 ;)| ∗ | + |0|1|2|3|4|5|6|7|8|9 goto(I37 , 3) = I32
C1 −→ .4 ;)| ∗ | + |0|1|2|3|4|5|6|7|8|9 goto(I37 , 2) = I33
C1 −→ .5 ;)| ∗ | + |0|1|2|3|4|5|6|7|8|9 goto(I37 , 1) = I34
C1 −→ .6 ;)| ∗ | + |0|1|2|3|4|5|6|7|8|9 goto(I37 , C1) = I35
C1 −→ .7 ;)| ∗ | + |0|1|2|3|4|5|6|7|8|9 goto(I37 , N ) = I36
C1 −→ .8 ;)| ∗ | + |0|1|2|3|4|5|6|7|8|9 goto(I37 , () = I37
C1 −→ .9 ;)| ∗ | + |0|1|2|3|4|5|6|7|8|9 goto(I37 , F ) = I38
F −→ .( E ) ;)| ∗ |+ goto(I37 , T ) = I39
F −→ .N ;)| ∗ |+ I43
N −→ .0 ;)| ∗ |+ g(42,))=43
F −→ ( E ) .;∗| + |)
N −→ .C1 N0;)| ∗ |+
T −→ T * .F ;)| ∗ |+
goto(I40 , 0) = I25
goto(I40 , 9) = I26 goto(I42 , +) = I44
goto(I40 , 8) = I27
46 ANEXA B. CONSTRUCŢIA UNEI TABELE DE PARSARE
I44 I46
C1 −→ .1 ;)| ∗ | + |0|1|2|3|4|5|6|7|8|9 C −→ .0 ;)| ∗ | + |0|1|2|3|4|5|6|7|8|9
C1 −→ .2 ;)| ∗ | + |0|1|2|3|4|5|6|7|8|9 C −→ .C1 ;)| ∗ | + |0|1|2|3|4|5|6|7|8|9
C1 −→ .3 ;)| ∗ | + |0|1|2|3|4|5|6|7|8|9 C1 −→ .1 ;)| ∗ | + |0|1|2|3|4|5|6|7|8|9
C1 −→ .4 ;)| ∗ | + |0|1|2|3|4|5|6|7|8|9 C1 −→ .2 ;)| ∗ | + |0|1|2|3|4|5|6|7|8|9
C1 −→ .5 ;)| ∗ | + |0|1|2|3|4|5|6|7|8|9 C1 −→ .3 ;)| ∗ | + |0|1|2|3|4|5|6|7|8|9
C1 −→ .6 ;)| ∗ | + |0|1|2|3|4|5|6|7|8|9 C1 −→ .4 ;)| ∗ | + |0|1|2|3|4|5|6|7|8|9
C1 −→ .7 ;)| ∗ | + |0|1|2|3|4|5|6|7|8|9 C1 −→ .5 ;)| ∗ | + |0|1|2|3|4|5|6|7|8|9
C1 −→ .8 ;)| ∗ | + |0|1|2|3|4|5|6|7|8|9 C1 −→ .6 ;)| ∗ | + |0|1|2|3|4|5|6|7|8|9
C1 −→ .9 ;)| ∗ | + |0|1|2|3|4|5|6|7|8|9 C1 −→ .7 ;)| ∗ | + |0|1|2|3|4|5|6|7|8|9
E −→ E + .T;)|+ C1 −→ .8 ;)| ∗ | + |0|1|2|3|4|5|6|7|8|9
F −→ .( E ) ;)| ∗ |+ C1 −→ .9 ;)| ∗ | + |0|1|2|3|4|5|6|7|8|9
F −→ .N ;)| ∗ |+ N −→ C1 N0 .;)| ∗ |+
N −→ .0 ;)| ∗ |+ N0 −→ N0 .C ;)| ∗ | + |0|1|2|3|4|5|6|7|8|9
N −→ .C1 N0;)| ∗ |+
T −→ .F ;)| ∗ |+
T −→ .T * F ;)| ∗ |+ goto(I46 , 0) = I47
I47
C −→ 0 .;∗| + |0|9|8|7|6|5|4|3|2|1|)
goto(I44 , 0) = I25
goto(I44 , 9) = I26 goto(I46 , 9) = I26
goto(I44 , 8) = I27 goto(I46 , 8) = I27
goto(I44 , 7) = I28 goto(I46 , 7) = I28
goto(I44 , 6) = I29 goto(I46 , 6) = I29
goto(I44 , 5) = I30 goto(I46 , 5) = I30
goto(I44 , 4) = I31 goto(I46 , 4) = I31
goto(I44 , 3) = I32 goto(I46 , 3) = I32
goto(I44 , 2) = I33 goto(I46 , 2) = I33
goto(I44 , 1) = I34 goto(I46 , 1) = I34
goto(I44 , C1) = I35 goto(I46 , C1) = I48
goto(I44 , N ) = I36
goto(I44 , () = I37 I48
goto(I44 , F ) = I38 C −→ C1 .;∗| + |0|9|8|7|6|5|4|3|2|1|)
goto(I44 , T ) = I45
goto(I46 , C) = I49
I45
E −→ E + T .;)|+ I49
T −→ T .* F ;)| ∗ |+ N0 −→ N0 C .;∗| + |0|9|8|7|6|5|4|3|2|1|)
I50
g(24,))=50
F −→ ( E ) .;∗| + |; |$
I51
C −→ .0 ;$| ∗ |; | + |0|1|2|3|4|5|6|7|8|9
C −→ .C1 ;$| ∗ |; | + |0|1|2|3|4|5|6|7|8|9
C1 −→ .1 ;$| ∗ |; | + |0|1|2|3|4|5|6|7|8|9
C1 −→ .2 ;$| ∗ |; | + |0|1|2|3|4|5|6|7|8|9
C1 −→ .3 ;$| ∗ |; | + |0|1|2|3|4|5|6|7|8|9
C1 −→ .4 ;$| ∗ |; | + |0|1|2|3|4|5|6|7|8|9
C1 −→ .5 ;$| ∗ |; | + |0|1|2|3|4|5|6|7|8|9
C1 −→ .6 ;$| ∗ |; | + |0|1|2|3|4|5|6|7|8|9
C1 −→ .7 ;$| ∗ |; | + |0|1|2|3|4|5|6|7|8|9
C1 −→ .8 ;$| ∗ |; | + |0|1|2|3|4|5|6|7|8|9
C1 −→ .9 ;$| ∗ |; | + |0|1|2|3|4|5|6|7|8|9
N −→ C1 N0 .;$| ∗ |; |+
N0 −→ N0 .C ;$| ∗ |; | + |0|1|2|3|4|5|6|7|8|9
goto(I51 , 0) = I52
I52
C −→ 0 .;∗| + |; |0|9|8|7|6|5|4|3|2|1|$
goto(I51 , 9) = I2
goto(I51 , 8) = I3
goto(I51 , 7) = I4
goto(I51 , 6) = I5
goto(I51 , 5) = I6
goto(I51 , 4) = I7
goto(I51 , 3) = I8
goto(I51 , 2) = I9
goto(I51 , 1) = I10
goto(I51 , C1) = I53
I53
C −→ C1 .;∗| + |; |0|9|8|7|6|5|4|3|2|1|$
goto(I51 , C) = I54
I54
N0 −→ N0 C .;∗| + |; |0|9|8|7|6|5|4|3|2|1|$
48 ANEXA B. CONSTRUCŢIA UNEI TABELE DE PARSARE
Tabela goto
( ) * ; + 0 1 2 3 4 5 6 7 8 9 C C1 E F N N0 S1 T
0 13 · · · · 1 10 9 8 7 6 5 4 3 2 · 11 16 14 12 · 17 15
1 · · · · · · · · · · · · · · · · · · · · · · ·
2 · · · · · · · · · · · · · · · · · · · · · · ·
3 · · · · · · · · · · · · · · · · · · · · · · ·
4 · · · · · · · · · · · · · · · · · · · · · · ·
5 · · · · · · · · · · · · · · · · · · · · · · ·
6 · · · · · · · · · · · · · · · · · · · · · · ·
7 · · · · · · · · · · · · · · · · · · · · · · ·
8 · · · · · · · · · · · · · · · · · · · · · · ·
9 · · · · · · · · · · · · · · · · · · · · · · ·
10 · · · · · · · · · · · · · · · · · · · · · · ·
11 · · · · · · · · · · · · · · · · · · · · 51 · ·
12 · · · · · · · · · · · · · · · · · · · · · · ·
13 37 · · · · 25 34 33 32 31 30 29 28 27 26 · 35 24 38 36 · · 39
14 · · · · · · · · · · · · · · · · · · · · · · ·
15 · · 22 · · · · · · · · · · · · · · · · · · · ·
16 · · · · 20 · · · · · · · · · · · · · · · · · ·
17 · · · 18 · · · · · · · · · · · · · · · · · · ·
18 13 · · · · 1 10 9 8 7 6 5 4 3 2 · 11 19 14 12 · · 15
19 · · · · 20 · · · · · · · · · · · · · · · · · ·
20 13 · · · · 1 10 9 8 7 6 5 4 3 2 · 11 · 14 12 · · 21
21 · · 22 · · · · · · · · · · · · · · · · · · · ·
22 13 · · · · 1 10 9 8 7 6 5 4 3 2 · 11 · 23 12 · · ·
23 · · · · · · · · · · · · · · · · · · · · · · ·
24 · 50 · · 44 · · · · · · · · · · · · · · · · · ·
25 · · · · · · · · · · · · · · · · · · · · · · ·
26 · · · · · · · · · · · · · · · · · · · · · · ·
27 · · · · · · · · · · · · · · · · · · · · · · ·
28 · · · · · · · · · · · · · · · · · · · · · · ·
29 · · · · · · · · · · · · · · · · · · · · · · ·
30 · · · · · · · · · · · · · · · · · · · · · · ·
31 · · · · · · · · · · · · · · · · · · · · · · ·
32 · · · · · · · · · · · · · · · · · · · · · · ·
33 · · · · · · · · · · · · · · · · · · · · · · ·
34 · · · · · · · · · · · · · · · · · · · · · · ·
35 · · · · · · · · · · · · · · · · · · · · 46 · ·
36 · · · · · · · · · · · · · · · · · · · · · · ·
37 37 · · · · 25 34 33 32 31 30 29 28 27 26 · 35 42 38 36 · · 39
38 · · · · · · · · · · · · · · · · · · · · · · ·
39 · · 40 · · · · · · · · · · · · · · · · · · · ·
40 37 · · · · 25 34 33 32 31 30 29 28 27 26 · 35 · 41 36 · · ·
41 · · · · · · · · · · · · · · · · · · · · · · ·
42 · 43 · · 44 · · · · · · · · · · · · · · · · · ·
43 · · · · · · · · · · · · · · · · · · · · · · ·
44 37 · · · · 25 34 33 32 31 30 29 28 27 26 · 35 · 38 36 · · 45
45 · · 40 · · · · · · · · · · · · · · · · · · · ·
46 · · · · · 47 34 33 32 31 30 29 28 27 26 49 48 · · · · · ·
47 · · · · · · · · · · · · · · · · · · · · · · ·
48 · · · · · · · · · · · · · · · · · · · · · · ·
49 · · · · · · · · · · · · · · · · · · · · · · ·
50 · · · · · · · · · · · · · · · · · · · · · · ·
50 · · · · · 52 10 9 8 7 6 2 4 3 2 54 53 · · · · · ·
51 · · · · · · · · · · · · · · · · · · · · · · ·
52 · · · · · · · · · · · · · · · · · · · · · · ·
53 · · · · · · · · · · · · · · · · · · · · · · ·
54 · · · · · · · · · · · · · · · · · · · · · · ·
Legenda
număr i deplasare la starea i
· eroare
49
Tabela actiune
$ ( ) * ; + 0 1 2 3 4 5 6 7 8 9
0 · d · · · · d d d d d d d d d d
1 10 · · 10 10 10 · · · · · · · · · ·
2 23 · · 23 23 23 23 23 23 23 23 23 23 23 23 23
3 22 · · 22 22 22 22 22 22 22 22 22 22 22 22 22
4 21 · · 21 21 21 21 21 21 21 21 21 21 21 21 21
5 20 · · 20 20 20 20 20 20 20 20 20 20 20 20 20
6 19 · · 19 19 19 19 19 19 19 19 19 19 19 19 19
7 18 · · 18 18 18 18 18 18 18 18 18 18 18 18 18
8 17 · · 17 17 17 17 17 17 17 17 17 17 17 17 17
9 16 · · 16 16 16 16 16 16 16 16 16 16 16 16 16
10 15 · · 15 15 15 15 15 15 15 15 15 15 15 15 15
11 12 · · 12 12 12 12 12 12 12 12 12 12 12 12 12
12 8 · · 8 8 8 · · · · · · · · · ·
13 · d · · · · d d d d d d d d d d
14 6 · · 6 6 6 · · · · · · · · · ·
15 4 · · d 4 4 · · · · · · · · · ·
16 2 · · · 2 d · · · · · · · · · ·
17 A · · · d · · · · · · · · · · ·
18 · d · · · · d d d d d d d d d d
19 1 · · · 1 d · · · · · · · · · ·
20 · d · · · · d d d d d d d d d d
21 3 · · d 3 3 · · · · · · · · · ·
22 · d · · · · d d d d d d d d d d
23 5 · · 5 5 5 · · · · · · · · · ·
24 · · d · · d · · · · · · · · · ·
25 · · 10 10 · 10 · · · · · · · · · ·
26 · · 23 23 · 23 23 23 23 23 23 23 23 23 23 23
27 · · 22 22 · 22 22 22 22 22 22 22 22 22 22 22
28 · · 21 21 · 21 21 21 21 21 21 21 21 21 21 21
29 · · 20 20 · 20 20 20 20 20 20 20 20 20 20 20
30 · · 19 19 · 19 19 19 19 19 19 19 19 19 19 19
31 · · 18 18 · 18 18 18 18 18 18 18 18 18 18 18
32 · · 17 17 · 17 17 17 17 17 17 17 17 17 17 17
33 · · 16 16 · 16 16 16 16 16 16 16 16 16 16 16
34 · · 15 15 · 15 15 15 15 15 15 15 15 15 15 15
35 · · 12 12 · 12 12 12 12 12 12 12 12 12 12 12
36 · · 8 8 · 8 · · · · · · · · · ·
37 · d · · · · d d d d d d d d d d
38 · · 6 6 · 6 · · · · · · · · · ·
39 · · 4 d · 4 · · · · · · · · · ·
40 · d · · · · d d d d d d d d d d
41 · · 5 5 · 5 · · · · · · · · · ·
42 · · d · · d · · · · · · · · · ·
43 · · 7 7 · 7 · · · · · · · · · ·
44 · d · · · · d d d d d d d d d d
45 · · 3 d · 3 · · · · · · · · · ·
46 · · 9 9 · 9 d d d d d d d d d d
47 · · 14 14 · 14 14 14 14 14 14 14 14 14 14 14
48 · · 13 13 · 13 13 13 13 13 13 13 13 13 13 13
49 · · 11 11 · 11 11 11 11 11 11 11 11 11 11 11
50 7 · · 7 7 7 · · · · · · · · · ·
51 9 · · 9 9 9 d d d d d d d d d d
52 14 · · 14 14 14 14 14 14 14 14 14 14 14 14 14
53 13 · · 13 13 13 13 13 13 13 13 13 13 13 13 13
54 11 · · 11 11 11 11 11 11 11 11 11 11 11 11 11
Legenda
număr i reduce producţia cu eticheta i
d deplasare
A acceptare
· eroare
50 ANEXA B. CONSTRUCŢIA UNEI TABELE DE PARSARE
Anexa C
Exemplu de aplicare a
criptării/decriptării
Cheia de criptare
Gramatica din componenţa chei de criptare este B. Observăm că această
gramatică respecţă condiţiiie extensiei unei gramatici din 3.2.
Iată acum o posibilă alegere a lui H:
HS1 S1 −→ S1 ; E λ HC C −→ C1 0
S1 −→ E λ C −→ 0 1
HE E −→ E + T 1 HC1 C1 −→ 1 011
E −→ T 0 C1 −→ 2 000
HT T −→ T ∗ F 0 C1 −→ 3 101
T −→ F 1 C1 −→ 4 0100
HF F −→ (E) 0 C1 −→ 5 111
F −→ N 1 C1 −→ 6 001
HN N −→ C1 N0 1 C1 −→ 7 100
N −→ 0 0 C1 −→ 8 110
HN0 N0 −→ N0 C 0 C1 −→ 9 0101
N0 −→ λ 1
Se observă că producţiilor S1 −→ S1 ; E şi S1 −→ E li se asociază codul
vid, precum am arătat la procedeeul de extindere al sistemului. În rest,
la derivarea celorlalte variabile se poate ascunde un singur bit, cu excepţia
variabilei C1 cu care se pot ascunde 3 sau 4 biţi.
Textul clar
Vom considera un mesaj ca fiind un text ı̂n limba engleză din care s-au
eliminat spaţiile şi semnele de punctuaţie şi s-au transformat toate literele
51
52ANEXA C. EXEMPLU DE APLICARE A CRIPTĂRII/DECRIPTĂRII
M AKELOV EN OT W AR
procesul de criptare
Voi ilustra printr-un tabel paşii pe care ı̂i execută algoritmul păna se
ascunde tot textul clar, arătând la fiecare pas ce derivare se foloseşte şi ce
bit se ascunde.
53