Documente Academic
Documente Profesional
Documente Cultură
Cifruri de substitutie
Cifrurile de substitutie sunt cele mai utilizate sisteme de criptare simetrice; ele se ntalnesc
si azi, exemple fiind sistemele DES si AES.
Un astfel de cifru consta n nlocuirea fiecarui caracter din V cu alt caracter (din W ).
Exista doua clase mari de cifruri de substitutie: sisteme monoalfabetice si polialfabetice.
2.1
Un astfel de sistem substituie fiecare caracter cu alt caracter totdeauna acelasi, indiferent
de pozitie. Atunci cand cele doua alfabete coincid (V = W ), sistemele monoalfabetice
sunt cazuri particulare de cifruri de permutare.
Vom trece n revista cateva astfel de sisteme.
2.1.1
Sistemul de criptare Cezar este un sistem monoalfabetic: odata stabilita cheia de criptare
eK , fiecare caracter cod x se nlocuieste prin caracterul cod x + k (mod 26) (a se vedea
Prelegerea I). Decriptarea se realizeaza dupa formula dK (x) = x k (mod 26).
cartea sa De bello gallico, Cezar aminteste de un sistem de criptare,
Observatia 2.1 In
f
ar
a s
a dea detalii. Mai tarziu, Suetoniu n Viata lui Iuliu Cezar descrie sistemul.
Cezar folosea sistemul nlocuind literele romane cu cele grecesti si folosea deplasarea k = 3.
Nepotul lui Cezar, mparatul Augustus a utlizat acelasi sistem, cu k = 1. Sistemul Cezar
a fost utilizat mult timp. Armata rus
a apela frecvent la el n 1915, ca nlocuitor pentru
sistemele sale proprii de criptare, prea sofisticate la nivelul trupelor de c
amp. Un sistem
Cezar cu k = 13 este inclus n ROT 13, implementat pe sistemele UNIX ([5],[3])
Evident, Cezar este un sistem generat de permutarile ciclice din P26 . Fiind numai 26 chei
posibile, el este extrem de vulnerabil la atacul prin forta bruta. Pentru a-i mari rezistenta,
s-a utilizat si o varianta, numita sistem Cezar cu cheie, definita astfel:
1
B
A
C
R
D
T
E
O
F
B
G
C
H
D
I
E
J
F
K
G
L
H
M
I
N
J
O
K
P
L
Q
N
R
P
S
Q
T
S
U
U
V
V
W
W
X
X
Y
Y
Z
Z
Pentru textul clar se vor folosi caracterele de pe primul rand, iar pentru criptare
caracterele corespondente de pe randul al doilea. Astfel, STUDENT se cripteaza n
QSUTOJS, ARGINT n MPCEJS etc.
Sistemul Cezar cu cheie rezista mai bine la atacul cu forta bruta, numarul cheilor fiind
acum card(P26 = 26!.
2.1.2
Sistemul de criptare afin este o generalizare a sistemului Cezar. Vom avea P = C= Z26 ,
K= {(a, b) | a, b Z26 , cmmdc(a, 26) = 1}, iar functiile de criptare si decriptare (pentru
o cheie K = (a, b)) sunt
dK (y) = a1 y + a1 (26 b) (mod 26)
1
8
2
11
3
14
4
17
5
20
6
23
7
0
8
3
9
6
10
9
11
12
12
15
13
18
14
21
15
24
16
1
17
4
18
7
19
10
20
13
21
16
22
19
23
22
24
25
25
2
B
I
C
L
D
O
E
R
F
U
G
X
H
A
I
D
J
G
K
J
L
M
M
P
N
S
O
V
P
Y
Q
B
R
E
S
H
T
K
U
N
V
Q
W
T
X
W
Y
Z
Pentru un num
ar dat n exist
a (n) numere mai mici decat n si prime cu n, unde phi este functia
Euler. In particular (26) = 12.
Z
C
2.1.3
J. K. L.
M. N. O.
P. Q. R.
S T U
V W X
Y Z
In limba englez
a litera eliminat
a este de obicei J.
Alfabetul cirilic are 33 litere, deci n acest caz s-a utilizat un careu 6 6.
Liniile care ncadreaza fiecare caracter (inclusiv spatiul), mpreuna cu punctele (doua, unul
sau zero) indica substitutia caracterului respectiv. Astfel, textul clar DUPA DOUAZECI
DE ANI se cripteaza n
:
2.1.4
Litera Frecventa
L
4, 58 %
3, 85 %
O
D
3, 68 %
3, 33 %
M
P
2, 91 %
F
1, 50 %
1, 26%
V
prima etapa, vom numara de cate ori apare n text fiecare caracter. se obtine tabelul
In
Caracter
Frecvent
a
c
39
k
38
x
27
b
25
s
23
q
20
g
19
p
18
m
18
l
11
e
9
p
8
a
7
v
7
b
2
n
2
o
2
f
2
z
2
Engleza Frecventa
E
12, 31 %
T
9, 59 %
A
8, 05 %
O
7, 94 %
N
7, 19 %
I
7, 18 %
S
6, 59 %
R
6, 03 %
H
5, 14 %
Germana Frecventa
E
18, 46 %
N
11, 42 %
I
8, 02 %
R
7, 14 %
S
7, 04 %
A
5, 38 %
T
5, 22%
U
5, 01%
D
4, 94%
Franceza Frecventa
E
15, 87 %
A
9, 42 %
I
8, 41 %
S
7, 90 %
T
7, 26 %
N
7, 15 %
R
6, 46 %
U
6, 24 %
L
5, 34 %
Spaniola Frecventa
E
13, 15 %
A
12, 69 %
O
9, 49 %
S
7, 60 %
N
6, 95 %
R
6, 25 %
I
6, 25 %
L
5, 94 %
D
5, 58 %
Exista o situatie ipotetica n care criptanaliza unui sistem monoalfabetic este imposibila:
atunci cand P= V si nu dispunem de nici o alta informatie (decat eventual sistemul de
criptare). Acest caz corespunde nsa unei codificari; adevarata criptare a avut loc atunci
cand mesajele inteligibile au fost translatate n cuvinte din V .
4
Datele statistice pentru toate tabelele inclusiv limba romana sunt din anul 1994.
2.2
2.2.1
Sistemul homofonic
Sistemul de criptare homofonic este un sistem intermediar ntre sistemele mono si cele
polialfabetice. Principalul lui scop este de a evita atacul prin frecventa de aparitie a
caracterelor. Se pare ca a fost utilizat prima oara n 1401 de catre ducele de Mantua.
Fiecarui caracter a P i se asociaza o multime H(a) C astfel ncat:
1. H(a) H(b) =
a 6= b;
2.2.2
Sistemul a fost inventat 1854 de Sir Charles Wheatstone. Cel care l promoveaza si l
sustine pentru a fi adoptat ca cifru oficial al Marii Britanii este baronul Lyon Palyfayr de
St. Andrews. Guvernul prefera alta varianta, dar acest sistem de criptare capata numele
baronului.
Ideea de baza este urmatoarea:
Din cele 26 litere ale alfabetului se elimina una de frecventa minima; sa spunem Q.
Restul literelor se aranjeaza arbitrar sub forma unui patrat 55. Sa exemplificam sistemul
pentru tabloul
Y
I
C
N
K
D
P
A
O
M
W Z
U L
X F
G E
J V
U L
X F
G E
J V
W Z
R I
H C
T N
B K
S Y
obtinut prin deplasarea cu doua pozitii spre stanga si o pozitie n sus, este echivalent cu
cel initial (ambele asigura aceeasi cheie de criptare).
Regulile de baza pot fi modificate sau completate dupa necesitati. Astfel, se poate
adauga din loc n loc cate o litera falsa (cu frecventa foarte redusa, cum ar fi X, Y ) care
sa modifice textul criptat. Patratul 5 5 poate fi nlocuit cu un dreptunghi 4 6 sau
3 8, cu schimbarile corespunzatoare n alegerea literelor care se elimina.
Pentru a pastra cheia n siguranta, se recomanda memorarea acesteia. Cum o astfel
de cheie este extrem de greu de memorat, se foloseste un cuvant cheie sau o propozitie cu
toate literele distincte. Acesta cuvant este scris la nceputul tabloului. Spatiile ramase
sunt completate cu restul literelor alfabetului, scrise n ordinea aparitiei lor5 .
5
In definitia initial
a a sistemului, Wheatstone pleca de la cuvantul Holmes.
O M
D F
T U
A
G
V
N
H
W
E
I
X
S C
J L
Y Z
2.2.3
Numele sistemului6 vine de la baronul francez Blaise de Vigenere (1523 1596) diplomat
la curtea regelui Henry III. A fost considerat mult timp unul din cele mai bune sisteme
de criptare.
Prezentarea sistemului
Consideram ca si la sistemele anterioare cele 26 litere ale alfabetului, numerotate de
la 0 (pentru A) pana la 25 (pentru Z), conform tabelului:
A B C D E F G H I J K
0 1 2 3 4 5 6 7 8 9 10
N O P Q R S T U V W X
13 14 15 16 17 18 19 20 21 22 23
L
11
Y
24
M
12
Z
25
+
Definim P = C= Z26 , K= Z26
.
O cheie K K este un cuvant avand codificarea numerica k0 k1 . . . kp1 .
Fie a = a0 a1 . . . an codificarea textului clar care trebuie transmis. Textul criptat va fi
eK (a) = x = x0 x1 . . . xn , unde
xi = ai + ki (mod p) (mod 26)
()
10
(i 0)
(mod 26),
xp
xp+1
x2p . . .
x2p+1 . . .
..
.
...
(k 0)
11
adica cu un sistem Cezar (k0 fiind o valoare fixata din Z26 ). In mod similar si celelalte
linii.
Deci, daca s-ar cunoaste lungimea p a cheii, problema s-ar reduce la criptanaliza a p
texte criptate cu Cezar sistem de criptare monoalfabetic.
Sunt cunoscute doua metode pentru aflarea lungimii cheii: testul lui Kasiski si indexul
de coincidente.
Prima metoda consta n studiul textului criptat si aflarea de perechi de segmente de
cel putin 3 caractere (aceasta lungime este propusa de Kasiski) identice. Pentru fiecare
astfel de pereche, se determina distanta dintre segmente.
Dupa ce s-au gasit mai multe astfel de distante, valoarea lui p va fi cel mai mare divizor
comun al lor (sau eventual un divizor al acestuia).
Exemplul 2.5 Oscar intercepteaza urm
atorul text criptat, despre care b
anuie c
a s-a
folosit Vigenere:
D
Q
Q
P
V
L
V
I
L
N
A
E
O
C
G
R
E
J
K
V
G
T
A
M
O
S
S
W
G
R
J
Y
L
U
T
A
C
J
S
W
G
V
G
V
I
C
R
M
W
W
W
W
W
E
D
E
A
A
A
E
F
W
G
G
R
K
K
T
S C K A R V S S R A A K R S T U H D A
O H Z T I E U A R I Q L N C J C I K A
R C W A O L N S Z P C V Z W Z C S C E
U
Textul este destul de scurt (146 litere) si nu se mai stie nici un text trimis anterior.
Folosind metoda Kasiski, Oscar gaseste secventa QLN CJ care apare pe r
andul al doilea.
Distanta dintre cele doua aparitii este 27. De asemenea, apar dou
a cuvinte foarte aseman
atoare: AQLN si AOLN , avand ntre ele distanta 57.
Deci putem banui ca avem de-a face cu un cuv
ant cheie de lungime cmmdc(27, 57) = 3.
Rescriem textul pe coloane, fiecare coloan
a av
and trei elemente. Anume:
D O O C W F C R S A S H Q C S J W W H I A Q C I Q G S S W G C O S C W S P R W W W G
V E G G W R K V R K T D L J R V E K Z E R L J K V K J G D K W L Z V Z C I V Y V E T
L G L I A S A S A R U A N T U C A O T U I N C A A A T R A R A N P Z C E E M A M E U
Num
ar
and frecventa aparitiei literelor pe fiecare linie, obtinem tabelul
Linia 1
Linia 2
Linia 3
A
2
0
11
B
0
0
0
C
6
1
3
D
1
2
0
E
0
4
3
F
1
0
0
G
3
3
1
H
2
0
0
I
2
1
2
J
1
3
0
K
0
6
0
L
0
3
2
M
0
0
2
N
0
0
3
O
3
0
1
P
1
0
1
Q
3
0
0
R
2
4
3
S
7
0
2
T
0
2
3
U
0
0
4
V
1
6
0
W
8
2
0
X
0
0
0
Y
0
1
0
Z
0
3
1
12
Tot dou
a variante apar si pentru a doua linie: C G K (deplasare 2) cu 10 aparitii,
sau R V Z (deplasare 14) cu 13 aparitii.
Deplas
arile dau exact codificarile cheii. Deci trebuie luate n considerare patru variante de cuvant cheie: OCA, ORA, SCA sau SRA. Cum de obicei cuv
antul cheie are
o semnificatie semantica (pentru a putea fi retinut mental usor), putem presupune c
a el
este OCA sau ORA.
O simpl
a verificare retine drept cuv
ant cheie ORA, care conduce la decriptarea corecta
a textului (spatiile si semnele de punctuatie se pun corespunz
ator):
PELANGAPLOPIIFARASOTADESEAAMTRECUTMACUNOSTEAUVECINIITOTITUNUMAICUNOSCUT
ACEASTAESTEPRIMASTROFAAUNEINPOEZIICELEBREDEMIHAIEMINESCU
A doua metoda de aflare a lungimii cheii de criptare ntr-un sistem Vigenere se bazeaza
pe un concept definit n 1920 de Wolfe Friedman n 1920: indexul de coincidente ([4]).
Definitia 2.1 Daca x = x1 x2 . . . xn este o secvent
ae n caractere alfabetice, se numeste
index de coincidente al lui x probabilitatea ca dou
a caractere din x, alese aleator, s
a fie
identice. Aceasta valoare se noteaza Ic (x).
Sa notam cu fi frecventa de aparitie n x a caracterului literal codificat i (0 i 25).
Doua litere din x pot fi alese n Cn2 moduri. Din acestea, sunt Cf2i moduri ca ambele sa
aiba aceiasi codificare i (0 i 25). De aici se poate deduce formula
25
X
Ic (x) =
25
X
Cf2i
i=0
Cn2
fi (fi 1)
i=0
n(n 1)
Sa presupunem ca x este un text n limba romana. Din tabelul frecventelor de aparitie ale
literelor, notand pi probabilitatea de aparitie a caracterului codificat cu i (0 i 25),
valoarea pe care o putem estima pentru indxul de coincidente este
Ic (x)
25
X
p2i = 0, 0788
i=0
xp
xp+1
..
.
x2p . . .
x2p+1 . . .
...
2.3. EXERCIT
II
13
Daca p este chiar lungimea cheii, atunci fiecare valoare Ic (xi ) trebuie sa fie apropiata de
0, 0788. In caz contrar, sirul xi va arata mult mai aleator, fiind obtinut prin amestecul
unei secvente de caractere criptate cu chei diferite. Pentru o secventa complet aleatoare,
valoarea indexului de coincidente este
1
Ic 26
26
2
1
= 0, 0384
26
Valorile 0, 0788 si 0, 0384 vor constitui punctele de extrem pe care le poate lua Ic . Vom lua
deci diverse valori pentru p, pana vom gasi una care sa se apropie cat mai mult de 0, 788
si nu de 0, 384. Aceea poate fi considerata cu suficienta siguranta ca este lungimea
cheii.
In etapa a doua, vom ncerca sa aflam efectiv cheia K = k0 k1 . . . kp1 .
Daca notam n1 = bn/pc lungimea secventei xi , atunci distributia de probabilitate ale
celor 26 litere n xi este
f25
f0 f1
,
,...,
n1 n1
n1
Secventa xi a fost obtinuta printr-o criptare Cezar cu o deplasare ki . Deci, situatia ideala
este cand distributia de probabilitate a deplasarii
fk +25 (mod 26)
fki fki +1 (mod 26)
,
,..., i
n1
n1
n1
este cat mai apropiata de distributia de probabilitate p0 , p1 , . . . , p25 a limbii romane.
Fie un ntreg m (0 m 25); definim expresia
Fm =
25
X
pi fi+m
i=0
n1
25
X
p2i = 0, 0788.
i=0
Daca m 6= kj , atunci Fm va fi semnificativ mai mic decat aceasta valoare. Deci, dupa
cel mult 25 ncercari, se poate afla deplasarea kj si deci a j-a litera din cheie.
2.3
Exercitii
14
OCTLE
SBQPQ
KVKME
TSSZC
ACSGQ
LQAKP
XCMEB
PEMGQ
BXXCO
CVKMK
BLCOK
CPBKL
CCSBX
CAQLB
KOKCB
KGQBA
CQGKM
QPQAC
CGQPE
BXCLQ
SSPBK
MBKCQ
GKCTX
LKM
FKGSP
SFKCA
Bibliografie
[1] A. Menezes, P. Oorschot, S. Vanstome, Handbook pf Applied Cryptography
[2] A. Salomaa, Criptografie cu chei publice, Ed. Militara, Bucuresti 1994
[3] B. Schneier, Applied Cryptography, John Wiley and Sons, 1995
[4] D. Stinton, Cryptography, Theory and Practice, Chapman& Hall/CRC, 2002
[5] http://en.wikipedia.org/wiki/Caesar cipher# History and usage
[6] http://psychcentral.com/psypsych/Polybius square
[7] http://www.answers.com/topic/vigen-re-cipher
15