Documente Academic
Documente Profesional
Documente Cultură
► Criptologia - Cadrul general: combinație între ”kruptos” (= ascuns) și „logos” (= studiu, știință).
Prin urmare, cuvântul criptologie implică dezvoltarea de metode pentru criptarea mesajelor, semnalelor,
(în general informații formulate ca secvențe de biți, fișiere text, secvențe vocale, video, etc.) precum și
metode de decriptare a acestora.
Astfel, criptologia poate fi împărțită în două domenii: criptografie și criptanaliză.
► Criptografia: scriere secretă (”Kruptos” - ascuns și ”grafie” - scriere) studiul metodelor care
permit transformarea sau codificarea informațiilor transmise printr-un canal de comunicație, într-o formă
care nu poate fi înțeleasă pentru oricine nu cunoaște o cheie adecvată.
► Canal de comunicație: rețea telefonică, rețea de calculatoare, rețeaua Internet, etc.
perturbări de ordin fizic⟹ erori de transmitere: zgomote, demodulări, etc.
detectarea și corectarea ∈ Teoria Codurilor
nesiguranță informația poate fi interceptată în vederea consultării neavizate
(atac pasiv al canalului)
informația poate fi modificată, ștearsă, distrusă (atac activ al canalului)
Figura 1: modul în care un expeditor transmite date unui receptor a.î. orice entitate care
interceptează datele nu poate determina conținutul acestora:
Componentele modelului:
► Text clar /mesaj în clar: mesajul în forma inițială (mesajul care se trimite)
► Criptare: transformarea mesajului în clar, pentru a îl face de neînțeles de către o altă persoană,
în afară de cea care a creat mesajul și cea care este beneficiarul mesajului
► Text criptat (criptogramă): mesajul rescris prin criptare
► Decriptare: inversul procesului de criptare – recuperarea textului clar din textul criptat
► Algoritm criptografic: funcția matematică folosită pentru criptare și decriptare. (În general,
există două funcții corelate: una pentru criptare și cealaltă pentru decriptare.)
1
► Cheie criptografică: atât funcția de criptare, cât și funcția de decriptare utilizează o informație
suplimentară (șir de caracter), care poate lua una din mai multe valori posibile (spațiul cheilor).
- Cheia de criptare este o valoare cunoscută pentru expeditor. Expeditorul introduce cheia de criptare în
algoritmul de criptare împreună cu textul clar pentru a genera textul criptat.
- Cheia de decriptare este cunoscută de receptor. Cheia de decriptare este relaționată cu cheia de criptare,
dar nu este întotdeauna identică cu aceasta. Receptorul introduce cheia de decriptare în algoritmul de
decriptare împreună cu textul criptat pentru a genera textul clar.
► Criptosistem: sistemul format din algoritmii criptografici de criptare/decriptare împreună cu
textele în clar/textele criptate și spațiul cheilor.
► Interceptor/adversar sau criptanalist: persoana care interceptează criptograma și încearcă să
obțină textul clar aplicând diverse metode, însă fără a avea cheia de decriptare.
► Criptanaliza: studiul metodelor de obținere a semnificației mesajelor criptate (recâștigarea
conținutului), fără acces la informațiile secrete care sunt de obicei necesare în acest sens (fără un acces
autorizat la cheile de decriptare).
► În formalizare matematică, un criptosistem este descris prin structura: (P, C, K, ε, D), unde:
1) P= {x | x ∈ V} este mulțimea finită a textelor clare, scrise peste un alfabet nevid V (uzual V = {0, 1}).
2) C= {y | y ∈ W} este mulțimea finită a textelor criptate, scrise peste un alfabet nevid W (uzual W=V ).
3) K este spațiul cheilor: o mulțime finită –mulțimea tuturor cheilor .
Conform proprietății 4), dacă un text clar x este criptat folosind ek, iar textul criptat rezultat este apoi
decriptat folosind dk, atunci rezultă textul original x.
Obs:
1) P, C şi K sunt mulţimi finite dar, de obicei prea mari pentru a le enumera explicit elementele.
2) Funcția de criptare este o funcție injectivă, altfel decriptarea nu poate fi realizată fără ambiguitate.
Astfel, dacă y = ek(x1) = ek(x2) cu x1 ≠ x2, nu se poate aprecia dacă y se va decripta în x1 sau în x2.
3) Dacă P = C , atunci fiecare funcție de criptare este de fapt o permutare.
Deci, dacă mulțimea textelor clare și mulțimea textelor criptate sunt identice, atunci fiecare funcție de
criptare va realiza de fapt o permutare a elementelor mulțimii textelor clare.
2
Obiective de securitate ale unui criptosistem:
- Confidențialitatea / secretul / protecţia datelor ( confidentiality / secrecy / privacy): asigură
inaccesibilitatea conţinutului informaţiei transmise între transmițător și receptor pentru un utilizator
neavizat , deci păstrarea secretului pentru neavizaţi - obiectiv îndeplinit cu ajutorul funcţiilor de criptare.
- Integritatea: asigură faptul că informaţia nu a fost modificată, alterată, schimbată sau ștearsă pe
parcursul transmisiei de către un posibil adversar - obiectiv îndeplinit cu ajutorul funcţiilor hash, care
fac ca modificarea unui singur bit de informaţie să poată fi detectată.
- Autentificarea: asigură faptul că părțile implicate în comunicare se pot identifica reciproc. De
asemenea, informațiile furnizate pe canal trebuie autentificate în sensul că au fost generate dintr-o
sursă autorizată. Există deci are două aspecte distincte: autentificarea entităţilor şi autentificarea
informaţiei.
- Non-repudierea: asigură faptul că părțile implicate în comunicare nu ar trebui să poată nega
implicarea lor în comunicare; deci, dacă la un moment dat o entitate neagă ca ar fi emis o anume
informaţie, entitatea care a primit informaţia respectivă poate demonstra unei părţi neutre că informaţia
provine într-adevăr de la entitatea în cauză. Non-repudierea se realizează prin utilizarea semnăturilor
digitale.
- Controlul accesului: asigură faptul că numai utilizatorii legitimi li se acordă acces la resurse sau
informații.
- fiind date funcția de decriptare dk și textul criptat y∈ C, este ușor de calculat textul clar x = dk(y)
- textul criptat y = ek(x) nu trebuie să fie mult mai lung decât textul clar, x
- textul clar x ∈ P este imposibil de determinat din textul criptat y = ek(x), fără a cunoaște funcția de
decriptare, dk
- mulțimea de chei trebuie să fie foarte mare
- modificări minore la nivelul textul clar sau la nivelul cheii conduc la schimbări majore în textul criptat
Obs:
- aprecierea ”ușor de calculat” se traduce, în termeni de complexitate algoritmică prin utilizarea unui
algoritm polinomial de grad mic.
- aprecierea ” imposibil de calculat” se traduce, în termeni de complexitate algoritmică prin faptul că
pentru această problemă nu se cunosc decât algoritmi de complexitate exponențială.
3
Clasificarea criptosistemelor
Criptografia modernă:
- rezolvă această problemă de securitate, astfel încât, de obicei, cifrul utilizat este cunoscut public, dar
execuția sa de criptare / decriptare folosește o informație privată suplimentară, numită cheie
criptografică, care este un alt parametru de intrare.
substituție simplă sau substituție monoalfabetică: fiecare caracter al textului clar este înlocuit cu
un caracter corespunzător în textul criptat.
substituție omofonică (cu reprezentare multiplă): fiecare caracter al textului clar este înlocuit cu
un caracter corespunzător în textul criptat, dar, un caracter al alfabetului mesajului clar poate să aibă mai
multe reprezentări. Astfel, caracterul textului clar va fi înlocuit nu de un singur simbol, ci de un simbol
ales la întâmplare dintre acestea. Într-o versiune mai sofisticată, se alege numărul de simboluri
proporțional cu frecvența de apariție a literei din mesajul clar.
substituție poligramică: se substituie grupuri de n litere ale textului clar (poligrame ) cu alte grupuri
de caractere
- fiecare literă a textului clar este înlocuită în criptogramă cu o altă literă, obținută printr-o deplasare
alfabetică
- cheia secretă k (aceeași la criptare și la decriptare) este numărul care indică deplasarea alfabetică:
5
k{1, 2, 3,…, n–1}, unde n este lungimea alfabetului.
Funcțiile de criptare și decriptare se scriu: ek (x) = (x + k) mod 26
dk (y) = (y - k) mod 26
Obs: În cazul alfabetului englez, n = 26.
Obs:
Pentru k = 3, criptosistemul se numește Cifrul Cezar, după Iulius Cezar, care folosea acest cifru pentru
a comunica cu generalii săi.
Def: Fie a și b sunt numere întregi, iar m este un număr întreg pozitiv. Atunci scriem a ≡ b (mod m)
dacă m divide (b – a). Expresia a ≡ b (mod m) se numește congruență și înseamnă „a este congruent cu
b modulo m.” Întregul m se numește modul.
Cf. teoremei împărțirii cu rest a lui a și respectiv b la m:
a = m⋅ q1 + r1 , 0 ≤ r1 < m
⟹ a ≡ b (mod m) ⟺ r1 = r2
b = m⋅ q2 + r2 , 0 ≤ r2 < m
⟹ a ≡ b (mod m) ⟺ a mod m = b mod m
Prin a mod m se notează restul împărțirii întregi a lui a la m
Prin b mod m se notează restul împărțirii întregi a lui b la m
În aritmetica modulo m, Zm este mulțimea {0 , 1 , 2 , m-1}, pe care sunt definite operațiile aritmetice, cu
condiția ca rezultatele operațiilor să fie reduse modulo m.
1. (∀) a, b ∈ Zm, a + b ∈ Zm
2. (∀) a, b ∈ Zm, a + b = b +a
3. (∀) a, b, c ∈ Zm, (a + b) + c = a + (b + c)
6
4. (∀) a ∈ Zm, a + 0 = 0 + a = a
5. (∀) a ∈ Zm, opusul lui a este (m-a), adică a + (m-a) = (m-a) + a = 0
6. (∀) a, b ∈ Zm, a ⋅ b ∈ Zm
7. (∀) a, b ∈ Zm, a ⋅ b = b⋅a
8. (∀) a, b, c ∈ Zm, (a ⋅ b) ⋅ c = a ⋅ (b ⋅ c)
9. (∀) a ∈ Zm, a ⋅ 1 = 1 ⋅ a = a
10. (∀) a, b, c ∈ Zm, (a + b) ⋅ c = (a ⋅ c) + (b ⋅ c), iar a ⋅ (b + c) = (a ⋅ b) + (a ⋅ c)
- în primul rând se creează o corespondență între literele alfabetului englez și numerele de la 0 la 25:
A se identifică cu 0, B cu 1, C cu 2, ..., Z cu 25.
A B C D E F G H I J K L M
0 1 2 3 4 5 6 7 8 9 10 11 12
N O P Q R S T U V W X Y Z
13 14 15 16 17 18 19 20 21 22 23 24 25
- se convertește textul clar într-o secvență de numere întregi folosind corespondența specificată.
- se alege cheia, de exemplu pentru k = 11 se obține: ek (F) = (5 + 11) mod 26 = 16 = Q
dk (Q) = (16 - 11) mod 26 = 5 = F
De exemplu, pentru textul clar CIFRULCAESAR se obține textul criptat astfel:
C I F R U L C A E S A R
2 8 5 17 20 11 2 0 4 18 0 17
+11mod 26 13 19 16 2 5 22 13 11 15 3 11 2
N T Q C F W N L P D L C
Pentru a decripta textul criptat, se va transforma mai întâi textul criptat în secvența de numere întregi
corespunzătoare, apoi va scădea 11 din fiecare valoare (reducând modulo 26) și în final secvența de
numere întregi se va transforma în caractere alfabetice:
De exemplu: (2 – 11) mod 26 = -9 mod 26 = 17
7
N T Q C F W N L P D L C
13 19 16 2 5 22 13 11 15 3 11 2
-11mod 26 2 8 5 17 20 11 2 0 4 18 0 17
C I F R U L C A E S A R
Obs:
1) Criptosistemul bazat pe deplasare în Z26 nu este sigur, deoarece poate fi criptanalizat prin metoda de
căutare exhaustivă a cheilor. Deoarece există doar 26 de chei posibile, se poate încerca orice regulă
posibilă de decriptare dk până la obținerea unui text clar cu sens.
pentru k = 6 se obține:
I X O V Z U Y O Y Z K S Y O S K Z X O I
8 23 14 21 25 20 24 14 24 25 10 18 24 14 18 10 25 23 14 8
-6 mod 26
2 17 8 15 19 14 18 8 18 19 4 12 18 8 12 4 19 17 8 2
C R I P T O S I S T E M S I M E T R I C
2) În aprilie 2006 a fost arestat șeful Mafiei siciliene, Bernardo Provenzano, în urma descoperirii a 350
de criptograme în alfabetul sicilian. În urma decriptării lor, au fost descoperite nume ale colaboratorilor.
Criptarea a fost realizată prin codul ”Binnu”, care realizează o deplasare alfabetică cu cheie k =4 peste
alfabetul sicilian cu 21 de litere:
A B C D E F G H I L M N O
0 1 2 3 4 5 6 7 8 9 10 11 12
P Q R S T U V Z
13 14 15 16 17 18 19 20
De exemplu, scrisoarea, scrisă în ianuarie 2001 de Angelo Provenzano către tatăl său, a fost găsită
împreună cu alte documente când unul dintre membrii, Nicola La Barbera, a fost arestat:
"...I met 512151522 191212154 and we agreed that we will see each other after the holidays...,".Numele
decriptat a fost Binnu Riina, cheia fiind k=4:
8
5 12 15 15 22 19 12 12 15 4
-4
1 8 11 11 18 15 8 8 11 0
B I N N U R I I N A
2) Shannon a definit, folosind conceptul de entropie (care măsoară incertitudinea variabilei aleatoare X),
distanța de unicitate a unei scheme de criptare, care reprezintă lungimea minimă a textului criptat
(apreciată în cazul Criptosistemul bazat pe deplasare în Z26 ca numărul de caractere) pentru care se
așteaptă să existe doar un singur text clar atunci când este decriptat cu toate cheile posibile.
Deci textele criptate, mai lungi decât distanța de unicitate pot avea o singură decriptare care să aibă sens.
Estimările teoretice pentru distanța de unicitate a criptosistemului CEZAR în Z26 sugerează că sunt
necesare doar două litere pentru a recupera cheia (și, prin urmare, textul clar). Acest număr trebuie privit
doar ca o limită inferioară.
Deci fiind dat un cifru de cel puțin 2 caractere este posibilă o decriptare unică.
► Cifrul afin
Caracteristici:
P = C = Z26, K = {(a,b) ∈ Z26 x Z26 | cmmdc(a,26) = 1}.
(∀) (a,b) ∈ K, și x ∈ P, funcțiile de criptare / decriptare se definesc astfel:
Obs:
- Pentru a = 1 se obține cifrul de deplasare.
- Condiţia cmmdc(a, 26) = 1 asigură existența lui a-1 și injectivitatea funcţiei ek
dacă m p1k1 p2k2 .......... prkr este descompunerea în factori primi distincți ai lui m, atunci
De exemplu:
- pentru m = 26: 26 = 2⋅13 și φ(m) = (2-1)⋅(13-1) = 12, iar spațiul cheilor are dimensiunea 12⋅26 = 312.
- pentru m = 60: 60 = 22⋅3⋅5 și φ(m) = (2-1)⋅2⋅(3-1)⋅(5-1) = 16, iar spațiul cheilor are dimensiunea 60⋅16
= 960.
Într-adevăr, sunt 16 numere mai mici sau egale cu 60 și prime cu acesta: {1 , 7 , 11 , 13 , 17 , 19 , 23 ,
29 , 31 , 37 , 41 , 43 , 47 , 49 , 53 , 59}
10
Literele alfabetului sunt scrise într-un tabel bidimensional, cu liniile și coloanele numerotate –
pătratul lui Polybius. O literă este apoi reprezentată de coordonatele sale din tabel. Pentru alfabetul
englez, literele I şi J sunt combinate pentru a forma un singur caracter, iar tabelul va avea 5 linii x 5
coloane pentru a reprezenta cele 25 de caractere.
1 2 3 4 5
1 A B C D E
2 F G H I/J K
3 L M N O P
4 Q R S T U
5 V W X Y Z
În procesul de criptare, fiecare caracter va fi reprezentat printr-o pereche de numere (x, y) ∈{1,
2, 3, 4, 5} care dau linia, respectiv coloana pe care se află caracterul.
De exemplu, textul clar ”CRIPTARE” devine (13)(42)(24)(35)(44)(11)(42)(15) deci
1342243544114215.
Se spune că Polybius trimitea mesaje la distanțe mari cu ajutorul torțelor. Expeditorul, de pe un
vârf de deal, ținea o torță în fiecare mână și ridica succesiv torța din mâna dreaptă de un număr de ori
pentru a semnaliza rândul, iar torța din mâna stângă de un număr de ori pentru a semnaliza coloana.
O altă interpretare a cifrului lui Polybius a implicat transformarea cifrelor în sunete. O aplicație
cunoscută în secolul al XX-lea a fost cea dezvoltată de prizonierii ruși care foloseau lovituri în zid pentru
a transmite mesajul. Ei foloseau alfabetul chirilic de 36 de litere și astfel aveau un pătrat Polybius de 6
× 6. Fiecare literă era transmisă printr-un număr de bătăi în perete egal cu cele două coordonate ale literei
(fiecare coordonată fiind un număr întreg în intervalul [1, 6]). Procedau astfel succesiv pentru a trimite
un mesaj complet.
Astăzi codul nu este sigur, un criptanalist descoperă relativ rapid că criptarea constă în secvențe
de întregi de 2 cifre, cu fiecare cifră din intervalul [1,5], dar principiul de construire se regăsește în câteva
dintre criptosistemele moderne (bazate pe numere binare, nu pe litere), folosit pentru a converti secvențe
de litere în secvențe numerice, metoda fiind extinsă prin creșterea numărului de dimensiuni:
- cu 33 (un cub tridimensional) ce stochează 27 de simboluri. Fiecare simbol este criptat într-o secvență
de cifre din intervalul [0, 2] (cifre ternare sau trituri).
- cu 28 (structură în 8 dimensiuni) cu 256 de simboluri, fiecare simbol fiind codificat cu 8 biți – criptare
care stă la baza codului EBCDIC (extended BCD Interchange code)
Caracteristici:
P = C = Z26,
K = S26 = {𝜋 : Z26 → Z26 } – mulțimea tuturor permutărilor de 26 de elemente
(∀) 𝜋∈ K, funcțiile de criptare / decriptare se definesc astfel:
e𝜋 (x) = 𝜋(x)
d𝜋 (y) = 𝜋-1(y) , unde 𝜋-1 este permutarea inversă a permutării 𝜋
11
De exemplu, fie textul clar: x = CRIPTARE și se alege permutarea 𝜋 = (1, 2, 3, ..., 25, 0) :
0 1 2 3 ....................... 23 24 25
𝜋=
1 2 3 4 ....................... 24 25 0
Criptarea:
Pornind de la corespondența între literele alfabetului englez și numerele de la 0 la 25, se calculează
valoarea numerică a mesajului:
x=C R I P T A R E
02 17 08 15 19 00 17 04
A B C D E F G H I J K L M
0 1 2 3 4 5 6 7 8 9 10 11 12
N O P Q R S T U V W X Y Z
13 14 15 16 17 18 19 20 21 22 23 24 25
x = 02 17 08 15 19 00 17 04
𝜋(x) = 03 18 09 16 20 01 18 05 = y
D S J Q U B S F
Decriptarea:
Pornind de la permutarea 0 1 2 3 ....................... 23 24 25 se calculează permutarea 𝜋-1
𝜋=
1 2 3 4 ....................... 24 25 0
știind că 𝜋⋅ 𝜋-1 = e (permutarea identică), cu e(i) = i:
0 1 2 3 ....................... 23 24 25 0 1 2 3 ....................... 23 24 25 0 1 2 3 ....................... 23 24 25
⋅ =
𝜋-1(y) = 02 17 08 15 19 00 17 04
C R I P T A R E
12
Obs:
1) Comparativ cu criptosistemul bazat pe deplasare în Z26, unde spațiul cheilor avea dimensiunea |K| =
26, spațiul cheilor în acest caz include toate permutările posibile ale alfabetului de 26 de caractere, deci
|K| = 26! >4·1026, un număr extrem de mare.
Mai mult, efortul computațional în cazul căutării exhaustive crește prin înmulțire cu un factor de ordinul
n atunci când se trece de la un alfabet cu (n-1) litere la un alfabet cu n litere.
2) Deși un atac de tip căutare exhaustivă a cheilor de criptare nu este posibil în acest caz, toate sistemele
de substituție monoalfabetică prezentate sunt sensibile la atacuri bazate pe frecvenţa de apariţie a
caracterelor în text, deoarece aceeași literă din textul clar este întotdeauna criptată în aceeași literă în
textul criptat; rezultă că distribuția frecvenței caracterelor din textul criptat este aceeași cu cea din textul
clar.
De exemplu:
► în limba rusă, O este cea mai comună literă.
► în limba engleză, litera E este cea mai frecvent folosită, care apare aproximativ 12% din timp (adică
puțin peste una din zece litere este o literă „E”). În texte scurte, alte litere pot fi mai frecvente, dar în
aproape orice text de 1.000 de litere sau mai mult, E va fi cea mai frecventă literă.
Tabelul de mai jos prezintă frecvența de apariție a literelor în textele limbii engleze (H. Beker, F.Piper):
A 0.082 N 0.067
B 0.015 O 0.075
C 0.028 P 0.019
D 0.043 Q 0.001
E 0.127 R 0.06
F 0.022 S 0.063
G 0.02 T 0.091
H 0.061 U 0.028
I 0.07 V 0.01
J 0.002 W 0.023
K 0.008 X 0.001
L 0.04 Y 0.02
M 0.024 Z 0.001
13
Histograma frecvenței de apariție a literelor în limba engleză
Aceste frecvențe sunt păstrate atunci când textul este criptat cu ajutorul unui cifru de substituție.
Astfel, textul criptat poate fi decriptat prin compararea distribuției de frecvență a caracterelor din textul
criptat cu distribuția de frecvență (cunoscută) a caracterelor din textul clar, prin următorul algoritm:
1. Se calculează frecvența de apariție a literelor în textul criptat, care poate fi reprezentată ca o
histogramă.
2. Se compară frecvențele de apariție a literelor în textul criptat cu frecvențele de apariție ale literelor
limbajului textului clar.
3. Se pleacă de la presupunerea că cea mai frecvent întâlnită literă din textul criptat reprezintă cea mai
frecvent întâlnită literă din textul clar.
Se repetă pentru cea de a doua cea mai frecvent întâlnită literă din textul criptat, etc.
4. Se caută secvențe de caractere din care se deduc cuvinte.
De exemplu, secvența CARX apare de mai multe ori, din care este ușor de presupus că caracterul X din
textul criptat corespunde caracterului E din textul clar.
Obs:
1) Criptanaliza prin analiza frecvențelor este o abordare empirică, de tip ”trial and error” deoarece
distribuția frecvenței caracterelor din textul clar nu este neapărat identică cu cea așteptată pentru limba
respectivă, iar procesul de decriptare implică un anumit timp de calcul.
14
2) În anumite criptosisiteme nu este relevantă analiza frecvențelor literelor individual, ci este util de
analizat frecvența de apariție a unităţilor de mesaje: perechi de litere (digrafe), triplete de litere (trigrafe)
sau blocuri de k litere.
În limba engleză:
- cele mai utilizate digrafe, în ordine descrescătoare a frecvenței de apariție sunt:
TH, HE, IN, ER, AN, RE, ED, ON, ES, ST, EN, AT, TO, NT, HA, ND, OU, EA, NG, AS, OR, TI, IS,
ET, IT, AR, TE, SE, HI, OF.
- cele mai utilizate trigrafe, în ordine descrescătoare a frecvenței de apariție sunt:
THE, ING, AND, HER, ERE, ENT, THA, NTH, WAS, ETH, FOR, DTH.
Exemplul 1: În urma analizei privind frecvenţa de apariţie a caracterelor în textul criptat, rezultă
următoarea distribuție de frecvențe:
25
20
15
10
0
A Ă Â B C D E F G H I Î J K L MN O P Q R S Ș T Ț U VWX Y Z
În limba română, cele mai utilizate litere sunt, conform tabelului, în ordine: E, A, I, R, N, U, C, ....
Conform amplitudinii frecvențelor, se poate aprecia că:
- literei I din textul criptat îi corespunde litera E din textul sursă
- literelor F și L din textul criptat le corespund literele A și I din textul sursă (nu neapărat în această
ordine)
- literelor Î și U din textul criptat le corespund literele N și R din textul sursă (nu neapărat în această
ordine)
- literelor V și X din textul criptat le corespund literele U și C din textul sursă (nu neapărat în această
ordine)
etc.
Exemplul 2: Utilizând analiza frecvenţei de apariţie a caracterelor într-un text criptat cu cifrul afin, să
se decripteze textul pentru a obține textul clar.
Un text în limba engleză a fost criptat cu cifrul afin (ignorând spațiul și punctuația), după cum urmează:
15
BHJUHNBULSVULRUSLYXHONUUNBWNUAXUSNLUYJSSWXRLK
GNBONUUNBWSWXKXHKXDHUZDLKXBHJUHBNUONUMHUGSW
HUXMBXRWXKXLUXBHJUHCXKXAXKZSWKXXLKOLJKCXLCMX
ONUUBVULRRWHSHBHJUHNBXMBXRWXKXNOZLJBXXHBNFUB
HJUHLUSWXGLLKZLJPHUULSYXBJKXSWHSSWXKXNBHBHJUH
YXWNUGSWXGLLK
În textul criptat, frecvența de apariție a celor 26 de litere ale alfabetului, în ordine descrescătoare este
dată în tabelul de mai jos:
X 32 S 15 Y 4 P 1
U 30 W 14 Z 4
H 23 J 11 C 3
B 19 O 6 A 2
L 19 R 6 D 2
N 16 G 5 V 2
K 15 M 4 F 1
X U H B L N
Se încearcă o primă asociere:
16
Se obține textul decriptat kgwtgcktmootmitdmzegxc.........care nu are sens.
Următoarea presupunere este ca
f(E) = X 4 → 23 f(4) = 23 4 a + b = 23 (mod 26)
⟹ ⟹ ⟹ ⟹ 4 a + 7 = 23 (mod 26) ⟹
f(A) = H 0→7 f(0) = 7 b = 7 (mod 26)
---------------------
Se obține textul decriptat s a u n a i s n o t k n o w n t o b e a...............
Exemplul 3: Utilizând analiza frecvenţei de apariţie a caracterelor într-un text criptat cu cifrul afin, să
se decripteze textul pentru a obține textul clar.
Pe baza analizei frecvențelor, au fost deduse următoarele ecuații:
f(S) = E 18 → 4 f(18) = 4 18 a + b = 4 (mod 26)
⟹ ⟹ ⟹
f(U) = A 20 → 0 f(20) = 0 20a + b = 0 (mod 26)
18 a + b = 4 (mod 26)
⟹ -2a =4 (mod 26)
20a + b = 0 (mod 26)
17
dar -2 (mod 26) = 24 ⟹ 24a = 4(mod 26) ⟹ a =11
⟹ 20⋅11 + b = 0 (mod 26) ⟹ b = 14
Deci cheile de criptare sunt (11,14)
e(a,b)(x) = (11x + 14) mod 26
d(a,b)(y) = 11-1(y - 14) mod 26
11-1(mod 26) = q ⟹ 11⋅q (mod 26) = 1 ⟹ q =19
deci funcția de decriptare este: d(a,b)(y) = 19(y - 14) mod 26
Un caracter al alfabetului mesajului clar poate fi înlocuit în textul criptat nu printr-un singur
simbol, ci printr-un simbol ales aleator din mai multe simboluri. Într-o versiune mai sofisticată, se alege
un număr de simboluri proporțional cu frecvența de apariție a literei din textul clar. Astfel, se obține o
inversare a frecvențelor care permite eliminarea completă a indicațiilor furnizate de frecvența de apariție.
În acest cifru, oricărui caracter x din textul clar, x∈ P i se asociază o mulțime H(x), astfel încât:
- H(x1) ⋂ H(x2) ≠ ⏀ ⟺ x1 ≠ x2
- dacă x1 are frecvența de apariție mai mare decât x2 în textul clar, atunci card(H(x1)) ≥ card(H(x2))
Criptarea unui caracter x se face cu un element ales aleator din H(x).
De exemplu, pentru alfabetul englez poate fi folosit următorul cifru:
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
7 5 6 1 5 3 1 1 4 1 1 2 3 4 2 5 1 6 3 1 2 2 1 1 1 1
02 56 12 66 13 08 71 92 58 99 43 33 77 85 20 67 10 04 44 62 64 59 49 61 73 82
11 21 16 32 17 81 25 63 80 57 65 53 42 72 75
21 45 19 22 73 39 69 41 55 38 98
13 07 51 04 18 52 01 46
26 03 14 07 88 48
15 09 54
74
În a doua linie a tabelului apar frecvențele de apariție ale literelor în textul clar, iar în coloane, sub fiecare
literă x este H(x). De exemplu, H(L) = {33 , 25}.
Secvența ”av” din textul clar se poate cripta folosind secvențele:
{0259, 1159, 2159 , 1359 , 2659 , 1559 , 7459 , 275 , 1175 , 2175 , 1375 , 2675 , 1575 , 7475}
18
Cifruri de substituţie polialfabetică
► Cifrul Vigenère (numele celui care l-a creat – un diplomat și criptograf francez care a trăit în
secolul al XVI-lea)
Caracteristici:
P = C = K = Zl26
(∀) k = (k1,k2, ... , kl) ∈ K, și x = (x1,x2, ... , xl)∈ P, funcțiile de criptare / decriptare se definesc astfel:
ek(x1,x2, ... , xl) = (x1 + k1,x2 +k2, ... , xl + kl) mod 26
dk(y1,y2, ... , yl) = (y1 - k1,y2 - k2, ... , yl - kl) mod 26
Folosind o corespondenţă biunivocă între literele alfabetului şi elementele claselor de resturi modulo 26
( A=0, B=1, ..., Z=25 ), acest criptosistem criptează l caractere simultan: se convertesc elementele
textului clar folosind corespondența biunivocă, apoi se separă în grupuri de l elemente (lungimea cheii),
la care se adună modulo 26, elementul de pe poziția respectivă din cheie.
Exemplu:
C R I P T O S I S T E M U L V I G E N E R E
2 17 8 15 19 14 18 8 18 19 4 12 20 11 21 8 6 4 13 4 17 4
2 8 5 17 20 2 8 5 17 20 2 8 5 17 20 2 8 5 17 20 2 8
4 25 13 6 13 16 0 13 9 13 6 20 25 2 15 10 14 9 4 24 19 12
Textul criptat devine:
EZNGNQANJNGUZCPKOJEYTM
19
Decriptarea se realizează similar, scăzând (modulo 26) din codul caracterului criptat, codul caracterului
corespunzător din cheie:
E Z N G N Q A N J N G U Z C P K O J E Y T M
4 25 13 6 13 16 0 13 9 13 6 20 25 2 15 10 14 9 4 24 19 12
2 8 5 17 20 2 8 5 17 20 2 8 5 17 20 2 8 5 17 20 2 8
2 17 8 15 19 14 18 8 18 19 4 12 20 11 21 8 6 4 13 4 17 4
0 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
1 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 a
2 c d e f g h i j k l m n o p q r s t u v w x y z a b
3 d e f g h i j k l m n o p q r s t u v w x y z a b c
4 e f g h i j k l m n o p q r s t u v w x y z a b c d
5 f g h i j k l m n o p q r s t u v w x y z a b c d e
6 g h i j k l m n o p q r s t u v w x y z a b c d e f
7 h i j k l m n o p q r s t u v w x y z a b c d e f g
8 i j k l m n o p q r s t u v w x y z a b c d e f g h
9 j k l m n o p q r s t u v w x y z a b c d e f g h i
10 k l m n o p q r s t u v w x y z a b c d e f g h i j
11 l m n o p q r s t u v w x y z a b c d e f g h i j k
12 m n o p q r s t u v w x y z a b c d e f g h i j k l
13 n o p q r s t u v w x y z a b c d e f g h i j k l m
14 o p q r s t u v w x y z a b c d e f g h i j k l m n
15 p q r s t u v w x y z a b c d e f g h i j k l m n o
16 q r s t u v w x y z a b c d e f g h i j k l m n o p
17 r s t u v w x y z a b c d e f g h i j k l m n o p q
18 s t u v w x y z a b c d e f g h i j k l m n o p q r
19 t u v w x y z a b c d e f g h i j k l m n o p q r s
20 u v w x y z a b c d e f g h i j k l m n o p q r s t
21 v w x y z a b c d e f g h i j k l m n o p q r s t u
22 w x y z a b c d e f g h i j k l m n o p q r s t u v
23 x y z a b c d e f g h i j k l m n o p q r s t u v w
24 y z a b c d e f g h i j k l m n o p q r s t u v w x
25 z 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 fi ( fi 1 ) 25 fi ( fi 1 )
I
i A n( n 1 ) i 0 n( n 1 )
Fie x = x1x2x3.......xn un șir (text) de n caractere într-un alfabet în care frecvențele relative de apariție ale
literelor alfabetului sunt p0, p1, ......, pr-1.
Conform formulei de mai sus, pentru un text de lungime n cu frecvențele f0, f1, ..., fr-1:
r 1 r 1 r 1 r 1 2
fi 1
r 1 fi ( fi 1 ) fi 2 fi fi 2 n
i 0 n n r 1 f i
2 r 1
Ic ( x ) i 0 i 0
i 0
pi2
i 0 n( n 1 ) n( n 1 ) 1
n2 (1 )
1
(1 ) i 0 n i 0
n n ,
1 f
deoarece pentru n foarte mare, 0 , iar frecvență relativă i = pi
n n
Dacă x este un text în limba engleză, conform frecvențelor relative de apariție a literelor în limba engleză
din Tabelul 1, rezultă că:
21
25
I c ( x ) pi2 0.0822 0.0152 ..... 0.0012 0.0655
i 0
Obs: Pentru un text într-un limbaj în care frecvențele relative de apariție ale celor 26 de litere sunt egale
(limbaj ipotetic), indicele de coincidență va fi:
2
1 1
I c ( x ) 26 0.038
26 26
Exemplu: Se consideră un text de 270 de caractere, criptat cu Cifrul Vigenère, în care frecvența de
apariție a literelor este dată în următorul tabel:
Litera A B C D E F G H I J K L M
Nr. apariții 13 7 12 6 20 7 16 16 15 9 4 10 3
Litera N O P Q R S T U V W X Y Z
Nr. apariții 11 6 18 6 13 8 18 5 7 8 15 8 9
22
► Cifrul Vernam (”One-time pad” – cheie de unică folosință)
Creat de Gilbert S. Vernam și J. Mauborgne în 1917, este o variantă a cifrului Vigenère, dar
peste un alfabet binar. Se diferenţiază prin cheia de cifrare, care este reprezentată de o secvenţă de
caractere aleatoare, care nu se repetă.
Caracteristici:
P = C = K = Zn2 = {0,1}n
Cheia k = (k1,k2, ... , kn) ∈ K este o secvență aleatoare de biți, generată cu un generator de numere
aleatoare. Algoritmul de generare va alege chei din mulțimea {0,1}n, cu o distribuție uniformă
(∀) k = (k1,k2, ... , kn) ∈ K, și x = (x1,x2, ... , xn)∈ P, funcțiile de criptare / decriptare se definesc astfel:
Obs: Operația mod 2 este echivalentă cu rezultatul aplicării oreratorului XOR, operație notată cu ⨁.
Deci, atât funcția de criptare, cât și funcția de decriptare aplică operatorul XOR între biții textului clar
și biții cheii:
ek(x) = x ⨁ k
dk(y) = y ⨁ k
Deci:
ek(x1,x2, ... , xn) = (x1 ⨁ k1,x2 ⨁ k2, ... , xn ⨁ kn)
dk(y1,y2, ... , yn) = (y1 ⨁ k1,y2 ⨁ k2, ... , yn ⨁ kn)
Concluzionând:
a) 0 XOR 0 = 1 XOR 1 = 0
b) 0 XOR 1 = 1 XOR 0 = 1
23
c) x XOR y = y XOR x
d) x XOR x = 0
e) x XOR 0 = x
f) (x XOR (y XOR z)) = ((x XOR y) XOR z)
Mai mult, XOR în cazul a două șiruri de biți este rezultatul aplicării acestui operator pentru fiecare
pereche de biți, corespunzător.
dk(ek(x)) = dk(x ⨁ k) = (x ⨁ k) ⨁ k = x ⨁ (k ⨁ k) = x ⨁ 0 = x.
În primul rând, în acest criptosistem o cheie este o secvență de biți generați aleator. Această
secvență, combinată prin operatorul XOR cu un mesaj clar nealeator produce un mesaj criptat complet
aleator. Cheile fiind echiprobabile, un adversar nu are informații pentru criptanaliză, iar complexitatea
căutării exhaustive pentru spargerea cifrului în care s-a utilizat o cheie de dimensiune k este O(2k).
Mai mult, dacă lungimea cheii este egală cu lungimea textului clar și cheia este utilizată o singură
dată, cifrul Vernam devine un cifru ideal ce nu poate fi spart.
Dezavantajele acestui criptosistem:
- dimensiunea foarte mare a cheii: cheia trebuie să aibă lungimea egală cu lungimea textului clar.
- o cheie nu poate fi reutilizată; în acest caz, chiar pentru o cheie de dimensiune măsurată în Gigabytes,
dacă un criptanalist are mai multe criptograme ale căror chei sunt identice, el poate reconstrui textul clar.
- expeditorul și receptorul trebuie să fie perfect sincronizați; mai mult, dacă unii biți sunt modificați în
timpul transmisiei (din cauza zgomotului aleatoriu), acești biți vor fi decriptați incorect.
- Siguranța criptării depinde de cât de aleatoare sunt numerele folosite, în sensul de a nu conține forme
repetitive ușor de observat, cum ar fi șirul binar 01010101...
24
Generatoare de numere aleatoare
În multe sisteme criptografice, cheile de criptare trebuie generate aleator, cu valori dintr-o
anumită mulțime – spațiul cheilor, de asemenea, multe scheme de semnături digitale (ce oferă
echivalentul digital al semnăturii de mână) necesită generarea unor secvențe de numere aleatoare (care
nu urmează nici un fel de model şi nu pot fi prezise) în procesul pentru semnare digitală.
Generarea unor chei de dimensiune mare, cu adevărat aleatorii este foarte greu de obținut, chiar
cu calculatoarele actuale, deoarece acestea sunt de fapt dispozitive cu stări finite, deci repetă anumite
operații, ceea ce implică un anumit grad de predictibilitate.
În practică este foarte dificil de demonstrat că secvențele lungi de biți (generați arbitrar) sunt
aleatorii. Euristic, se verifică faptul că în secvența de biți 1 apare la fel de frecvent ca 0, 11 apare la fel
de frecvent ca 00, 10 sau 01, dar de două ori mai rar decât 1 sau 0. Există și teste de randomness – teste
statistice pentru verificarea caracteristicilor numerelor aleatoare obținute, implicit calitatea cheilor cu
care se face criptarea. De exemplu, Robert Brown prezintă seria de teste Dieharder
(http://www.phy.duke.edu/~rgb/General/dieharder.php).
Calculatoarele oferă de exemplu subrutine pentru generare aleatoare, de fapt pseudoaleatoare,
deoarece sunt construite prin reguli deterministe: Cryptographically Secure Pseudorandom Number
Generators (CSPRNG). Un generator de numere pseudoaleatoare este o funcție, astfel încât output-ul
(rezultatul produs) nu este complet aleator, fiind determinat de intrare.
- Secvența de biți generată trebuie să fie aleatoare d.p.d.v. statistic, ceea ce înseamnă că niciun algoritm
ce lucrează în timp polinomial nu poate distinge rezultatul generat de acest generator, de rezultatul
generat de un generator de numere cu adevărat aleatoriu, cu probabilitate mai mare de 1/2 (generatoarele
sunt indistinctibile computational - ” computationally indistinguishable” .
- Pentru fiecare bit din rezultatul generat, următorul bit din rezultat trebuie să fie imposibil de anticipat,
chiar dacă se cunosc toți biții precedenți, și se cunoaște algoritmul folosit.
- Secvența de biți generată să nu conțină repetiții; practic, nu se poate construi un generator cu perioadă
infinită, deci generatorul trebuie să aibă o perioadă cât mai mare.
- Secvența de biți generată să conțină biți independenți unul de celălalt (cu o corelare cât mai slabă).
Gradul de independență se verifică cu ajutorul testelor statistice.
Generează secvențe aleatoare obținute prin generarea unei secvențe de resturi modulo M, fiecare
element al secvenței fiind o funcție liniară modulo M de elementul anterior din secvență:
25
xn = (a⋅xn-1 + b) mod M, unde:
Un generator liniar congruențial are o perioadă de repetiție de cel mult M. Pentru anumite valori
ale lui a și b (de exemplu în cazul în care cmmdc(b,M)=1) perioada de repetiție va fi maximă, deci egală
cu M.
Exemplu: Pentru M = 31, x0 = 0, a = 3 și b = 5 se obține formula:
Elementele generate pot fi convertite într-un șir binar prin utilizarea reprezentării binare a numerelor,
extrăgând anumiți biți din fiecare element convertit în binar, de exemplu bitul cel mai puțin semnificativ.
Obs:
26
S-a demonstrat (D.E. Knuth – ”The art of computer programming – Vol. 2”) că șirul de numere obținut
de generatorul congruenţial pătratic are o perioadă maximă de mărime M dacă şi numai dacă:
1. c este prim cu M;
2. b = a-1 este multiplu de p, pentru orice p - divizor prim al lui M;
3. b este un multiplu de 4 dacă M este un multiplu de 4.
2) Aceste generatoare sunt simplu de implementat, dar nu sunt sigure d.p.d.v. criptografic. Pentru un
număr suficiente de mare de valori generate, pot fi aflați parametrii generatorului. Pentru a converti
secvența generată de un astfel de generator într-o secvență complet aleatoare, există posibilitatea unor
prelucrări ulterioare.
Un exemplu de prelucrare pentru îmbunătățirea caracteristicilor numerelor aleatoare obținute
este Algoritmul lui John von Neumann:
Dezavantajul metodei: secvența rezultată este de lungime mult mai mică decât secvența inițială.
Dacă secvența inițială are lungimea L, lungimea maximă pentru secvența rezultată se obține atunci când
în secvența inițială p = 1/2, în acest caz obținându-se o lungime de L/4 biți.
Combină doi sau mai mulți generatori liniari congruențiali în scopul de a obține perioade de
repetiție mai mari.
Generează secvențe aleatoare obținute astfel:
Fie xi,1, xi,2,, ..., xi,k al i-lea număr obținut din k generatori liniari congruențiali.
Al j-lea generator xj este obținut conform formulei:
27
xi+1,j = (aj⋅xi + bj) mod Mj
Generatorul produce numere întregi xij cu o distribuție uniformă în intervalul [0 , Mj-1], iar perioada
maximă de repetiție este: (M1-1)⋅(M2-1)⋅ .... ⋅(Mk-1)/2k-1
Acest generator este lent, dar este suficient de sigur pentru a fi utilizabil în criptografie în cadrul
protocoalelor de generare a cheii de criptare.
Generează secvențe aleatoare obținute prin generarea unei secvențe de resturi modulo M, fiecare element
al secvenței fiind o funcție liniară modulo M de elementul anterior din secvență:
28
Analiza frecvențelor poate fi mult îngreunată atunci când sunt criptate blocuri de simboluri
simultan, în așa fel încât schimbarea unui simbol într-un bloc de text clar poate să schimbe toate
simbolurile din blocul corespunzător din textul criptat.
O astfel de schemă de criptare este ceea ce se cheamă cifru bloc, în care P și C sunt formate din
mulțimi de simboluri de lungime fixă, t (lungimea blocului), peste un alfabet 𝛴.
Acest tip de criptare este foarte general:
- Schemele de criptare monoalfabetică sunt cifruri bloc de lungime t = 1
- Cifrul Vigenère este un cifru bloc cu lungimea blocului egală cu lungimea cheii.
eA(v) = v⋅A
dA(v) = v⋅A-1
Concret:
- La criptare: textul clar se împarte în blocuri de lungime t: x = 𝛼1.......𝛼n, |𝛼i|=t.
Prin criptare se obține textul criptat: y = 𝛽1.......𝛽n, 𝛽i = eA(𝛼i) =𝛼i⋅A(mod 26), i =1,...,n
- La decriptare: se folosește relația dA(𝛽i) = 𝛽i⋅A-1(mod 26)
De exemplu, fie t = 2 și fie A o matrice 2x2 pentru care există A-1(mod 26).
- se convertesc litere din textul clar într-o listă de numere, apoi se grupează aceste numere în ordine în
matrici linie cu dimensiunea 1 × 2 (să poată fi efectuată înmulțirea cu matricea A).
- ultima matrice linie va fi completată numai dacă lungimea textului clar este un multiplu al numărului
de rânduri din A (în acest caz 2). Dacă nu, atunci textul trebuie completat la sfârșit cu alte litere (cu o
literă în acest caz)
- fie un text clar de lungime n, convertit corespunzător în șirul de numere x1, x2, x3,. . . , xn.
- șirul corespunzător de numere ale textului criptat y1, y2, y3,. . . , yn se determină din următoarele produse
matriceale:
- numerele textului criptat y1, y2, y3,. . . , yn sunt convertite înapoi în litere pentru a genera textul criptat.
- dacă textul criptat a fost obținut cu relația: y = x⋅A (mod 26), atunci pentru decriptare se calculează:
x = y⋅A-1 (mod 26).
[x1 x2] = [y1 y2] ⋅ A-1 (mod 26)
[x3 x4] = [y3 y4] ⋅ A-1 (mod 26)
...............................................
[xn-1 xn] = [yn-1 yn] ⋅ A-1 (mod 26)
- se convertesc literele din textul clar într-o listă de numere, în baza corespondenței între literele
alfabetului englez și numerele de la 0 la 25:
C R I P T A R E A H I L L A
2 17 8 15 19 0 17 4 0 7 8 11 11 0
[8 15] ⋅ A (mod 26) = [8 15] ⋅ 8 1 (mod 26) = [11 10] (mod 26)
19 14
[19 0] ⋅ A (mod 26) = [19 0] ⋅ 8 1 (mod 26) = [22 19] (mod 26)
19 14
[11 0] ⋅ A (mod 26) = [11 0] ⋅ 8 1 (mod 26) = [10 11] (mod 26)
19 14
30
-numerele textului criptat sunt convertite înapoi în litere pentru a general textul criptat:
1 6 11 10 22 19 4 21 3 20 13 6 10 11
B G L K W T E V D U N G K L
Pentru decriptare se calculează: x = y⋅A-1 (mod 26):
- se convertesc literele din textul criptat într-o listă de numere, în baza corespondenței între literele
alfabetului englez și numerele de la 0 la 25:
B G L K W T E V D U N G K L
1 6 11 10 22 19 4 21 3 20 13 6 10 11
- Se calculează următoarele produse matriceale:
[11 10] ⋅ A-1 (mod 26) = [11 10] ⋅ 20 19 (mod 26) = [8 15] (mod 26)
23 4
[22 19] ⋅ A-1 (mod 26) = [22 19] ⋅ 20 19 (mod 26) = [19 0] (mod 26)
23 4
[4 21] ⋅ A-1 (mod 26) = [4 21] ⋅ 20 19 (mod 26) = [17 4] (mod 26)
23 4
[13 6] ⋅ A-1 (mod 26) = [13 6] ⋅ 20 19 (mod 26) = [8 11] (mod 26)
23 4
[10 11] ⋅ A-1 (mod 26) = [10 11] ⋅ 20 19 (mod 26) = [11 0] (mod 26)
23 4
În final, numerele obținute se convertesc înapoi în litere pentru a genera textul clar:
2 17 8 15 19 0 17 4 0 7 8 11 11 0
C R I P T A R E A H I L L A
Obs:
1) calculator on-line pentru inversa unei matrice, de ex. https://www.apprendre-en-
ligne.net/crypto/hill/compl.html
31
2) O matrice A(nxn) pătratică este inversabilă dacă și numai dacă determinantul său este nenul, iar matricea
inversă este calculată prin formula:
A1 det( A )1 A* , unde A* (matricea adjunctă a matricei A) se obține prin înlocuirea fiecărui element
al matricei At (transpusa matricei A) cu complementul său algebric: (-1)i+j ⋅ Mij i,j =1,...,n
Mij se numește minorul elementului aij din matricea At și este egal cu determinantul obținut din At prin
eliminarea liniei i și coloanei j.
De exemplu, pentru o matrice A(3x3) cu elemente în Z26, A-1 mod 26 există ⟺ cmmdc(det(A), 26) = 1.
Pentru calculul lui det(A)-1 în Z26 se utilizează rezultatele din tabelul ce conține inversele elementelor
relativ prime cu 26:
det(A) 1 3 5 7 9 11 15 17 19 21 23 25
(det(A))-1 1 9 21 15 3 19 7 23 11 5 17 25
a b c a d g e h - b h b e
A = d e f ⟹ A = b e h ⟹ A* =
t
f i c i c f
g h i c f i
-d g a g - a d
f i c i c f
d g - a g a d
e h b h b e
6 14 13 6 0 1 -96 52 63 8 0 11
Exemplu: fie în Z26 A = 0 21 24 ⟹ A = 14 21 4 ⟹ A* =
t
24 -13 -144 = 24 13 12
1 4 0 13 24 0 -21 -10 126 5 16 22
deci, în textul criptat, blocul WT corespunzător secvenței [22 19] devine IB, corespunzător noii secvențe
[ 8 1]
Acest lucru este în contrast cu schemele de criptare anterioare și face analiza frecvenței
ineficientă dacă dimensiunea blocului, t, nu este mică. Situația poate fi descrisă cel mai bine făcând
referire la conceptul de difuzie, introdus de Shannon în 1949:
O schemă de criptare are o grad înalt de difuzie, dacă schimbarea unui caracter în textul clar
produce schimbarea multor caractere în criptogramă, efect constatat în cazul cifrului Hill.
- În al doilea rând, într-un cifru Hill în care matricea A, cheia de criptare, cu elemente din Z26 este
o matrice 2x2 sunt posibile 262 matrici linie [yi yi+1]. Analog, dacă t=3, deci matricea A este 3x3, sunt
posibile 263 = 17576 matrici linie [yi y+1]. La modul general, pentru dimensiunea t, sunt posibile 26t
matrici linie, număr cu creștere exponențială.
În cazul unei căutări exhaustive, decriptarea întregii matrici A de dimensiune 2x2 presupune 264
= 456976 încercări, deoarece numărul tuturor matricilor de dimensiune 2x2 cu elemente din Z26 este 264.
Deci, chiar și pentru matrici cheie relativ mici, criprosistemele Hill sunt mult mai rezistente la un atac
de tip forță brută decât criptosistemele de substituție. Mai important, criprosistemele Hill pot fi construite
cu orice nivel dorit de securitate, prin simpla folosire a unei matrice suficient de mari. Din punct de
vedere matematic, nu există nici o limită în alegerea dimensiunii matricei: se pot folosi, de exemplu
matrici pătrate de dimensiune 10x10 pentru a cripta 10 litere simultan.
Totuși, criptogramele obținute printr-o criptare Hill sunt vulnerabile la atacuri, în condițiile în
care un atacator ar cunoaște sau ar ghici o mică parte din textul clar. De exemplu, poate fi cunoscut de
unde sau de la cine a provenit mesajul și atunci se poate presupune că primele câteva litere din textul
clar indică un aspect legat de locație sau că ultimele câteva litere din textul clar reprezintă numele
expeditorului.
Cifrul Polybius monoalphabetic poate fi extins la un cifru polialfabetic. Se alege o cheie care va
fi de asemenea criptată cu ajutorul tabelei Polybius, rezultatul fiind o secvență de numere din câte 2
cifre.
Textul clar este de asemenea criptat cu tabela Polybius, rezultând o altă secvență de numere de câte 2
cifre.
Cele două secvențe sunt combinate prin adunarea numerelor corespunzătoare. Cifrele celor două numere
adunate sunt în intervalul [1, 5], astfel încât fiecare cifră a sumei este în intervalul [2, 10], unde 10 este
scris ca un singur 0.
Decriptarea se face scăzând cheia din criptogramă. Fiecare cifră a criptogramei este mai mare decât cifra
corespunzătoare a cheii, cu excepția cifrelor din criptogramă care sunt zero. Dacă o cifră din criptogramă
este zero, aceasta trebuie înlocuită cu numărul 10 înainte de scădere.
33
De exemplu, fie textul clar: ”CRIPTARE POLYBIUS” iar cheia ”ZENITH”. Cele două secvențe
numerice corespunzătoare și suma lor sunt:
C R I P T A R E P O L Y B I U S : 13 42 24 35 44 11 42 15 35 34 31 54 12 24 45 43
Z E N I T H : 55 15 33 24 44 23
13 42 24 35 44 11 42 15 35 34 31 54 12 24 45 43 +
55 15 33 24 44 23 55 15 33 24 44 55 15 33 24 44
68 57 57 59 88 34 97 30 68 58 75 09 27 57 69 87
La decriptare:
68 57 57 59 88 34 97 30 68 58 75 09 27 57 69 87 se scrie:
68 57 57 59 88 34 97 30 68 58 75 109 27 57 69 87
Deci:
68 57 57 59 88 34 97 30 68 58 75 109 27 57 69 87 -
55 15 33 24 44 23 55 15 33 24 44 55 15 33 24 44
13 42 24 35 44 11 42 15 35 34 31 54 12 24 45 43
care se va decripta în textul clar: ”CRIPTARE POLYBIUS”
Obs: Criptosistemul Polybius în varianta polialfabetică poate oferi un grad ridicat de securitate dacă
dimensiunea cheii este egală cu dimensiunea textului clar, cheia este aleatorie și este folosită o singură
dată.
Cifrul de substituție simplă poate fi generalizat în sensul că substituția se aplică unor blocuri
(secvențe) de simboluri: grupuri de litere ale textului clar (poligrame) sunt criptate împreună, fiind
substituite cu alte grupuri de litere. Astfel, litera nu mai este identificabilă ca entitate, iar frecvența
relativă a literelor unui alfabet, cunoscută apriori, nu mai are relevanță, aspect important în criptanaliză.
Alt aspect important în criptanaliză: numărul de poligrame este mult mai mare decât numărul de
litere unice și, în consecință, pot fi individualizate mai greu.
În substituția simplă: K = S26 = {𝜋 : Z26 → Z26 } – mulțimea tuturor permutărilor de 26 de elemente.
Generalizând, în locul utilizării unei permutări f : Z26 → Z26, se utilizează permutări f : Zn26 → Zn26, sau,
pentru un alfabet 𝛴 oarecare, f : 𝛴n → 𝛴n.
În cazul cel mai simplu, pentru grupuri de două litere (bigrame), se utilizează permutări f : Z26 x Z26 →
Z26 x Z26.
34
Dacă în substituția simplă spațiul cheilor include toate permutările posibile ale alfabetului de 26 de
caractere, deci |K| = 26!, în cazul substituției poligramice pentru n = 2 spațiul cheilor include (26 x 26)!
= 676! permutări, iar pentru un n oarecare dimensiunea crește la (26n)!
Având în vedere dimensiunea mare a unei chei (pt. n = 2 : 676) se utilizează o reprezentare
matriceală. De exemplu, criptosistemul Playfair (inventat de Ch Wheatstone în 1854 și promovat ulterior
de către lordul Playfair) utilizează un alfabet de 25 de simboluri, în care litera J este considerată împreună
cu litera I.
Criptarea se realizează în două etape:
● În prima etapă se construiește matricea de criptare:
- se introduc în matricea de dimensiune 5 x 5 literele cheii de criptare (care poate fi un cuvânt
sau mai multe cuvinte). Matricea ce completează rând cu rând, de la stânga la dreapta, eliminând literele
care se repetă.
- se completează spațiile rămase libere în matrice cu restul alfabetului englez (A – Z) care nu se
regăsesc în cheie.
De exemplu, pentru cheia PLAYFAIR CRIPTOSISTEM, rezultă următoarea matrice:
P L A Y F
I R C T O
S E M B D
G H K N Q
U V W X Z
LI IQ CL KC EH MC AR VP YC CF EH
35
▪ Playfair a fost folosit de armata britanică în timpul războiului anglo-bur din Africa de Sud și în
primul război mondial, dar și de serviciile de informații britanice și de militarii mai multor țări, inclusiv
din Statele Unite și Germania, în timpul celui de-al doilea război mondial.
▪ În literatura universală există multe exemple de scrieri criptate cu cifrul Playfair, cea mai
sugestivă fiind nuvela ” Have His Carcase” scrisă de Dorothy Sayers, care oferă totodată un exemplu de
criptanaliză a acestui cifru.
▪ Criptosistemul Playfair este implementat în criptosistemele actuale astfel:
- în prima etapă literele sunt codificate binar
- perechile criptate sunt combinate apoi prin operația XOR: o pereche criptată va fi combinată prin
operația XOR cu perechea criptată anterior.
În acest tip de criptare, textul clar rămâne același, dar ordinea caracterelor din text este schimbată.
● Într-o formă simplistă, textul clar este scris în secvențe de caractere pe diagonală și ulterior
asamblat ca o secvență de rânduri.
De exemplu, fie textul clar: CRIPTOSISTEM DE TRANSPOZITIE. Textul va fi rescris:
C I T S S E D T A S O I I
R P O I T M E R N P Z T E
iar mesajul criptat va fi: CITSSEDTASOIIRPOITMERNPZTE
Criptanaliza în acest caz ar fi banală, prin simpla comparare a frecvenței caracterelor din
criptogramă cu cea a frecvenței caracterelor limbii în care este scris textul.
● În cazul transpoziției coloanelor, textul clar se scrie linie cu linie, într-o formă matriceală cu l
linii și k coloane, textul fiind recitit pe coloane în funcție de cheia de criptare reprezentată de un cuvânt
de lungime egală cu k. Ordinea alfabetică a literelor din cuvântul cheie va da ordinea în care se vor citi
coloanele.
De exemplu: fie textul clar: CRIPTOSISTEM DE TRANSPOZITIE, cheia fiind CRIPTARE.
Literele din cheie sunt scrise în ordine alfabetică:
1 2 3 4 5 6 7 8
A C E I P R R T
36
ceea ce generează permutarea: (2, 6, 4, 5, 8, 1, 7, 3)
Cheia are dimensiunea 8, deci textul clar va fi scris într-o matrice cu 8 coloane și deoarece
lungimea textului nu este multiplu de 8 se completează ultima linie cu caractere X:
2 6 4 5 8 1 7 3
C R I P T O S I
S T E M D E T R
A N S P O Z I T
I E X X X X X X
Textul criptat se obține din coloanele tabelei, citite în ordinea dată de permutare:
OEZXCSAIIRTXIESXPMPXRTNESTIXTDOX
Textul clar rezultă din citirea linie cu linie a matricei rezultate: CRIPTOSISTEM DE TRANSPOZITIE.
Obs: Criptarea pe coloane poate fi mai sigură dacă se realizează succesiv, două sau mai multe
transpoziții. Va rezulta o permutare mai complexă ce va fi mult mai greu analizată.
De exemplu, pentru textul clar CRIPTOSISTEM DE TRANSPOZITIE, a rezultat în urma primei aplicări
a criptării, criptograma OEZXCSAIIRTXIESXPMPXRTNESTIXTDOX, care va fi încă o dată criptată
în baza aceluiași algoritm:
2 6 4 5 8 1 7 3
O E Z X C S A I
I R T X I E S X
P M P X R T N E
S T I X T D O X
Textul criptat se obține din coloanele tabelei, citite în ordinea dată de permutare:
37
SETDOIPSIXEXZTPIXXXXERMTASNOCIRT
Exemplul 1: descifrarea unei criptograme reprezintă un element cheie în acțiunea celor trei romane
scrise de Jules Verne, ce alcătuiesc seria ”Călătoriilor extraordinare”: ”O călătorie spre centrul
pământului”, ”800 de leghe pe Amazon” și ”Mathias Sandorf”.
În ultimul dintre acestea, pentru decriptarea criptogramei este folosită o grilă perforată rotativă, ceea ce
reprezintă o criptare bazată pe transpoziții. Mesajul criptat era**:
ihnalz zaemen ruiopn iar grila este:
arnuro trvree mtqssl
odxhnp estlev eeuart
aeeeil ennios noupvg
spesdr erssur ouitse
eedgnc toeedt artuee
au, de obicei, indici de coincidență în jur de 0.08 (franceză 0.0778, italiană 0.738, spaniolă 0.0775,
portugheză 0.0791), spre deosebire de engleză, unde este 0.065.
Dispunerea textului sugerează o criptare prin transpoziții cu o grilă de 6x6.
La modul general, dacă criptograma este grupată în n rânduri cu n coloane, grila trebuie să aibă
corespunzător același număr de linii și coloane, astfel încât să acopere exact textul.
Se poziționează grila peste text și se rețin literele care rămân vizibile în locațiile perforate. Se
stabilește un sens de rotație al grilei, apoi se rotește grila la 90 de grade și se reține următorul set de litere
vizibil. Se continuă, rotind grila, până la decriptarea întregului mesaj.
În cazul acestei criptograme, grila se aplică, prin rotire, făcând 4 rotații în sens orar, pentru toate
cele 3 grupuri de 6x6 litere. În final, textul decriptat este:
“Tout est prêt. Au premier signal que vous nous enverrez de Trieste, tous se lèveront en masse pour
l’indépendance de la Hongrie. Xrzah.”
38
Exemplul 2: în primul război mondial, nemții au folosit pentru criptarea mesajelor sistemul de grile
perforate rotative de diferite dimensiuni, pe care le-au denumit: ANNA(5×5), BERTA (6×6),
CLARA(7×7), DORA(8×8), EMIL (9×9) și FRANZ (10×10).
► Mișcarea nihilistă a fost o mișcare rusească înființată în anii 1860, membrii ei fiind cunoscuți în
întreaga Europă drept susținători ai utilizării violenței pentru a produce schimbări politice. Următoarea
scrisoare[3] este o criptogramă care se bazează pe un sistem de scriere secretă folosit frecvent de nihiliști,
în care textul este aparent inocent, dar conține un mesaj ascuns ucigător. Comunicarea secretă obținută
prin ascunderea unui mesaj este cunoscută sub numele de steganografie, derivată din cuvintele grecești
steganos, care înseamnă „acoperit” și grafen, care înseamnă „a scrie”.
Principiul steganogramei nihiliste se bazează pe particularitatea scrierii de mână, în care nu sunt
unite toate literele unui cuvânt. Pauzele sunt aparent cauzate de ridicarea stiloului, ceea ce se întâmplă
frecvent în care caligrafia persoanelor care au ocazii rare de a scrie. În scrisoare se observă că sfârșitul
unora dintre literele neconectate se orientează în jos, în timp ce altele se curbează în sus. Acestea din
urmă, indiferent dacă apar la finalul unui cuvânt sau nu, indică sfârșitul grupului criptat. De la stânga la
dreapta, se numără câte litere are fiecare grup. Cu aceste numere se formează perechi ce vor reprezenta
coordonatele literelor reprezentate în tabela lui Polybius (coloana,linia):
ARN - 3, OLD - 3 (33) DEARI - 5, T-1 (51) WASGO - 5, O - 1 (51) DNEW - 4, S – 1 (41)
TO – 2 , HEA – 3 (23) , RTHA – 4, TYO – 3 (4,3) , UHA – 3, VEF – 3 (33), OUNDA – 5, J -1 (51),
OBIN – 4, PARIS – 5 (45), A – 1, NN – 2 (12), AHOP – 4, ESY – 3 (43) ......... LLS – 3, NIA – 3 (33)
În final, mesajul numeric ascuns era: 33, 51, 51, 41, 23, 43, 33, 51, 45, 12, 43, 24, 11, 34, 34, 11, 34, 34,
42, 33, 11, 44, 42, 43, 33.
Fiecare pereche va reprezenta coordonatele literelor (coloana,linia) în tabela lui Polybius:
1 2 3 4 5
1 A B C D E
2 F G H I/J K
3 L M N O P
4 Q R S T U
5 V W X Y Z
39
iar mesajul decriptat era: NEEDMONEYFORASSASSINATION.
Utilizarea combinată a tehnicilor criptografice și steganografice pentru secretizare este astăzi utilizată în
e-banking sau în securizarea datelor biometrice.
Criptarea bazată pe transpoziții devine mai eficientă prin combinarea cu substituții, în cadrul unui
proces de fracționare – o etapă preliminară, prin care fiecare caracter din textul clar este înlocuit cu alte
simboluri; de exemplu, în cazul tabelei Polybius, fiecare literă a mesajului clar este înlocuită cu o pereche
de componente, ce reprezintă coordonatele literei în tabelă. În general, procesul de fracționare implică
un alfabet multifid: în fracționarea bifidă, fiecare simbol al alfabetului are 2 componente, în cazul trifid
3 componente, etc.
Ulterior fracționării, mesajul suportă prelucrări prin transpoziție, a.î. componentele
corespunzătoare fiecărui caracter din textul clar ajung să fie separate și împrăștiate în mesaj, obținând
astfel efectul de difuzie (schimbarea unui caracter în textul clar produce schimbarea multor caractere în
criptogramă).
Exemple de criptosisteme ce utilizează astfel de prelucrări: cifrul ADFGVX, cifrurile inventate
de Félix Delastelle în 1901(cifrul bifid, cifrul trifid, cifrul patru pătrate), cifrul VIC.
► Cifrul ADFGVX
Proiectat de Fritz Nebel (ofițer de comunicații în armata germană) și introdus de armata germană
în iunie 1918, cifrul ADFGVX a fost cel mai avansat din acea perioadă, deoarece a combinat
fracționarea, substituția și transpoziția. Descifrarea de către criptanalistul francez Georges Painvin
(1886–1980) a unui mesaj criptat cu acest cifru, cunoscut sub denumirea de „Le Radiogramme de la
Victoire”, a furnizat aliaților Antantei detalii critice despre o viitoare ofensivă majoră germană la
începutul lunii iunie 1918. A fost utilizat și pe Frontul de Est, pentru comunicații strategice între Berlin
și mai multe avanposturi din Est, cum ar fi România, Imperiul Turc și Misiunea Militară Germană în
Caucaz.
Interceptările criptogramelor germane de către posturile de ascultare britanice și americane din
perioada iulie-decembrie 1918, publicate de J.R. Childs în cartea ”General solution of the ADFGVX
Cipher System” este un exemplu al capacităților criptanalitice ale serviciului SIGINT (Allied Signals
Intelligence) la sfârșitul războiului.
Sistemul combină tehnici de substituție și transpoziție și este denumit după cele șase simboluri
Morse, A, D, F, G, V și X, singurele simboluri utilizate la transmiterea mesajelor ADFGVX. Aceste
simboluri au fost alese în mod deliberat, deoarece echivalentele lor de cod Morse erau suficient de
diferite pentru a minimiza erorile de transmisie.
- În etapa de substituție, se înlocuiește fiecare caracter (literă A- Z sau cifră 0 - 9) din textul clar cu
perechea de simboluri corespunzătoare din tabela ADFGVX, în care primul simbol reprezintă linia, iar
al doilea coloana:
40
A D F G V X
A B 3 M R L I
D A 6 F ∅ 8 2
F C 7 S E U H
G Z 9 D X K V
V 1 Q Y W 5 P
X N J T 4 G O
Tabela de criptare
1 2 3 4 5 6 7 8 9 10
D E G H I N P R T U
ceea ce generează permutarea: (1, 8, 2, 7, 9, 10, 6, 3, 4, 5)
Cheia are dimensiunea 10, deci textul clar va fi scris într-o matrice cu 10 coloane:
1 8 2 7 9 10 6 3 4 5
F A A G A X V X X F
D A A G F G D A D A
G F D F X V G X G G
Textul criptat se obține din coloanele tabelei, citite în ordinea dată de permutare:
FDGAADXAXXDGFAGVDGGGFAAFAFXXGV
După transpunere, cele două simboluri ADFGVX care reprezintă o literă de text sau o cifră nu vor apărea
cel mai probabil unul lângă celălalt în text. Acest efect se numește fracționare – efect ce crește
semnificativ securitatea criptării.
41
1 8 2 7 9 10 6 3 4 5
F A A G A X V X X F
D A A G F G D A D A
G F D F X V G X G G
Textul clar rezultă din citirea linie cu linie a matricei rezultate, apoi împărțirea acestuia în perechi de
simboluri ADFGVX și înlocuirea fiecărei perechi cu litera sau cifra de text corespunzătoare, în
conformitate cu tabela de criptare:
(F A) (A G) (A X) (V X) (X F) (D A) (A G) (F G) (D A) (D A) (G F) (D F) (X V) (G X) (G G)
CRIPTAREA ADFGVX
Obs: în cazul criptării ADFGVX, spațiul cheilor este egal cu produsul dintre numărul posibil de
substituție unice, (6x6)! = 36! și n!, unde n este dimensiunea cheii numerice.
► Cifrul bifid
- În etapa de substituție, se înlocuiește fiecare caracter din textul clar cu perechea de simboluri
corespunzătoare din tabela Polybius, în care primul simbol reprezintă linia, iar al doilea coloana, cu
deosebirea că în acest caz coordonatele sunt scrise vertical, în coloane.
1 2 3 4 5
1 A B C D E
2 F G H I/J K
3 L M N O P
4 Q R S T U
5 V W X Y Z
Tabela Polybius
42
Urmează împărțirea șirului rezultat în perechi de simboluri și înlocuirea fiecărei perechi cu litera
corespunzătoare, în conformitate cu tabela de Polybius:
(3 1) (4 2) (5 3) (1 2) (4 1) (4 3) (1 1) (4 5) (3 2) (1 4) (1 5) (4 3) (2 2) (4 4) (1 2) (4 1)
(2 5) (2 4) (2 2) (1 1) (4 4)
Se obține următorul mesaj criptat: LRXBQSAUMDESGTBQKIGAT
► Cifrul trifid
În locul tabelei Polybius se utilizează un format de 27 de caractere dispuse într-un grid 3x3x3.
Conform gridului, rezultă următoarea stratificare pe niveluri:
1 2 3 1 2 3 1 2 3
1 A B C 1 J K L 1 S T U
2 D E F 2 M N O 2 V W X
3 G H I 3 P Q R 3 Y Z ⋅
nivelul 1 în cub nivelul 2 în cub nivelul 3 în cub
Indicii fiecărei litere din textul clar sunt scriși pe coloană, iar ulterior are loc citirea numerelor în perechi
de câte 3, rând cu rând.
De exemplu, fie textul clar: ”MESAJ SECRET CIFRU TRIFID”
Secvența corespunzătoare este: 2 1 3 1 2 3 1 1 2 1 3 1 1 1 2 3 3 2 1 1 1 1
2 2 1 1 1 1 2 1 3 2 1 1 3 2 3 1 1 3 3 2 3 2
1 2 1 1 1 1 2 3 3 2 2 3 3 3 3 3 2 3 3 3 31
Rezultă secvența liniară:
(2 1 3) (1 2 3) (1 1 2) (1 3 1) (1 1 2) (3 3 2) (1 1 1) (1 2 2) (1 1 1) (1 2 1) (3 2 1)
(1 3 2) (3 1 1) (3 3 2) (3 2 1) (2 1 1) (1 1 2) (3 3 2) (2 3 3) (3 3 3) (2 3 3) (3 3 1)
În baza cubului, grupurile de numere sunt convertite iar în litere, rezultând următorul text criptat:
LFBGBZAEADVHSZVJBZR⋅RS
Decriptarea unui mesaj criptat cu cifrul trifid se face parcurgând etapele în ordine inversă: în primul rând
se convertește fiecare literă în coordonatele numerice, conform gridului; apoi, se împarte secvența de
numere rezultată în 3 rânduri egale și numerele corespunzătoare fiecărei coloane se convertesc în literele
textului clar.
Utilizează 4 matrice pătrate de dimensiune 5x5, dispuse într-un pătrat ce conține literele alfabetului:
43
a b c d e E X A M P
f g h i j L B C D F
k l m n o G H I J K
p r s t u N O R S T
v w x y z U V W Y Z
K E Y W O a b c d e
R D A B C f g h i j
F G H I J k l m n o
L M N P S p r s t u
T U V X Z v w x y z
Cele două matrice cu majuscule vor fi asociate textului criptat, iar cele două matrice cu litere mici vor
fi asociate textului clar. De aceea, matricele cu majuscule nu sunt aranjate în ordine alfabetică.
De exemplu, fie textul clar: ”CIFRUL PATRU PATRATE”
Algoritmul de criptare este următorul:
- Se împarte textul clar în digrame: CI FR UL PA TR UP AT RA TE
- Se identifică în matricea stânga sus prima literă din digraf, pe linia l1 și coloana c1: litera C, linia 1 și
coloana 3
- Se identifică în matricea dreapta jos a doua literă din digraf, pe linia l2 și coloana c2: litera I, linia 2 și
coloana 4
- Se determină prima literă din textul criptat ca fiind cea din matricea dreapta sus, situată pe linia l1 și
coloana c2: litera M
- Se determină a doua literă din textul criptat ca fiind cea din matricea stânga jos, situată pe linia l2 și
coloana c1: litera A
Se continuă în același mod cu celelalte digrafe și se obține textul criptat:
CI FR UL PA TR UP AT RA TE
MA BL OJ NK OP NS ML NE TW
Decriptarea unui mesaj criptat cu cifrul Patru pătrate se face parcurgând etapele în ordine inversă: în
primul rând digrafele textului criptat se separă: primul caracter se identifică în matricea dreapta sus, iar
al doilea caracter în matricea stânga jos; se localizează celelalte colțuri ale dreptunghiului format, care
vor reprezenta digraful din textul clar, prima componentă fiind ce a din matricea stânga sus.
► Cifrul VIC
Utilizat de spionii ruși în anii ’50, acest sistem combină o etapă de substituție și două transpoziții,
utilizând o ”tablă de șah pentru uniformizare” – ”straddling checkerboard” pentru normalizarea
distribuțiilor de frecvențe într-un mesaj, practic, o tabelă de substituție care are rolul de a re-substitui
cele mai frecvente caractere din limbaj, prin alte caractere.
În vara anului 1953, un tânăr distribuitor de ziare din Brooklyn a constatat că una dintre monezile
primite ca plată era neobișnuită. I s-a părut ciudată și aruncând-o la pământ, moneda s-a desfăcut, iar în
interior era o bucată de microfilm cu 10 coloane de numere. Timp de 4 ani, agenții FBI la care a ajuns
44
microfilmul au încercat decriptarea mesajului, dar, neavând nici un alt text criptat astfel, nu au reușit
decât în 1957, când, un fost ofițer rus cu numele de cod Victor, emigrat în America, le-a dezvăluit
algoritmul de criptare:
- În prima etapă a criptării, textul clar este codificat prin tabela de substituție, urmând ca secvența astfel
obținută să fie supusă ulterior la două prelucrări diferite prin transpoziție.
Tabela de substituție ”straddling checkerboard”, în forma originală a fost concepută și adaptată limbii
ruse și substituie cele mai frecvente litere din limba rusă.
Riley Dankovich (2014). Straddling checkerboard using the keyword СНЕГОПА (“snowfall”)
Tabela codifică literele cele mai des utilizate în valori de o singură cifră. Toate celelalte litere
sunt codate în valori din două cifre. Acest lucru reduce considerabil dimensiunea mesajului (aproximativ
1.5 cifre / literă față de 2.0 pentru sistemele fixe cu două cifre).
Conform histogramei frecvenței de apariție a literelor în limba engleză, literele E, T, O, A, I, N,
S, H, R sunt cele mai frecvente. Astfel, în prima linie a tabelei de dimensiune 4x10 este introdusă o
combinație formată din aceste litere, de exemplu ETONISAR:
4 9 1 6 0 8 5 2 3 7
E T O N I S A R
3 B C D F G H J K L M
7 P Q U V WXY Z . /
Primul rând conține cele zece cifre, 0-9. Acestea pot fi scrise în ordine sau amestecat, pentru o
securitate suplimentară. Al doilea rând este cel completat cu 8 litere de mare frecvență lăsând două spații
goale. Rândurile rămase sunt etichetate cu fiecare cifră căreia nu i s-a atribuit o literă în cel de-al doilea
rând, apoi sunt completate cu restul alfabetului. Ca și ordonarea cifrelor din rândul de sus, alfabetul
poate fi prezentat în ordine ( așa cum este în acest exemplu), sau amestecat.
Deoarece tabela are 20 de locații și numai 18 sunt completate cu literele din restul alfabetului,
celelalte locații pot fi completate cu alte simboluri, în acest exemplu simbolul ”.” și simbolul ”/”.
- La criptare, o literă din al doilea rând este înlocuită de numărul care etichetează coloana sa, iar
literele din al treilea și al patrulea rând sunt înlocuite cu un număr format din două cifre care reprezintă
numărul rândului și al coloanei.
De exemplu, mesajul CRIPTAREA VIC se va transformă în secvența:
3920749524576039
45
- Dar, înainte de a efectua aceste substituții, mesajul este tăiat la întâmplare în două părți care vor
fi interschimbate. Tăietura este indicată prin semnul ”/”.
- Se trece la următoarea etapă de criptare, prin care se adună modulo 10 o cheie numerică secretă,
de exemplu 0 3 4 2 :
3920749524576039 +
0342034203420342
3262773727996371
Obs: mesajele transmise aveau o dimensiune mult mai mare, ceea ce genera o matrice de numere
rezultate în urma criptării. Adunarea modulo 10 se efectua acelor linii al căror număr corespundea unor
numere selectate aleator din almanahurile statisticilor industriale. Astfel de cărți au fost considerate
suficient de plictisitoare pentru a nu stârni suspiciunea în cazul în care un agent ar fi fost percheziționat
(mai ales că poveștile de acoperire ale agenților erau ca oameni de afaceri).
- Ulterior, matricea rezultată este supusă la două etape succesive de transpoziții pe coloane,
conform unor chei de transpoziție.
Siguranța criptării prin acest sistem rezultă din combinația celor două metode simple: substituția
monoalfabetică și transpoziția pe coloane:
- substituția este complicată de caracteristicile tabelei de substituție: tabelele de substituție obișnuite,
neavând linii neetichetate, generează pentru fiecare literă din textul clar o substituție cu două caractere
(cele două coordonate). În cazul cifrului VIC se produce la criptare o alternanță între substituții cu două
caractere și substituții cu un singur caracter, a.î. pentru un criptanalist este dificil să împartă secvența de
numere rezultată, în perechi de numere și respectiv numere singure.
- această neregularitate mărește de asemenea, dificultatea reconstrucției tabelelor de transpoziții.
46