Sunteți pe pagina 1din 15

UNIVERSITATEA TITU MAIORESCU DIN BUCURESTI

FACULTATEA DE INFORMATICA

METODE CRIPTOGRAFICE BAZATE PE SUBSTITUTIE


MASINI SI DISPOZITIVE

Profesor indrumator:
Asist. Univ. Drd. Violeta OPRIS

Stundeti : GUZGAN Lucian Gr 305


PINTILIE Gabriel Gr 306
MANU Mihai Adrian Gr 306

Cifruri poligrafice de substitutie


Cifruri de substitutie omofonica (homophonic substitution ciphers)
Sunt cifrurile de substitutie in care un caracter al alfabetului mesajului in clar
(alfabet primar) poate sa aiba mai multe reprezentari.
Ideea utilizata in aceste cifruri este uniformizarea frecventelor de aparitie a
caracterelor textului cifrat (alfabet secundar), pentru a ingreuna atacurile
criptanalitice.
Astfel, litera A cu cea mai mare frecventa de aparitie in alfabetul primar poate fi
inlocuita cu F, * sau K.
Concluzii:
desi mai greu de spart decat cifrurile de substitutie simple (monoalfabetice), ele
nu mascheaza total proprietatile statistice ale mesajului in clar.
in cazul unui atac cu text in clar cunoscut, cifrul se sparge extrem de usor.
atacul cu text cifrat este mai dificil, dar unui calculator ii va lua doar cateva
secunde pentru al sparge.
Pentru a avea o imagine de ansamblu observam ca avem trei mari forme de a
scrie secrete: Steganografia, Coduri, Cifruri si Hash-uri. In acest context substitutia
ce cuprinde Coduri si Cifruri este una din tehnicile fundamentale care s-au dezvoltat
pentru pastrarea secretelor diplomatice, militare sau economice.
Acestea sunt formele finale la care recurge un program sau o persoana pentru a
aplica o transformare sau transformarea inversa respectiva pentru a cripta si/sau
decripta un text.

Cifrul de substitutie (substitution cipher) este cifrul bloc la care fiecare


caracter sau grup de caractere ale textului in clar este substituit cu un alt caracter
sau grup de caractere in textul cifrat, descifrarea facandu-se prin aplicarea
substitutiei inverse asupra textului cifrat. In criptografia clasica exista patru tipuri de
cifruri de substitutie.
1) Cifruri de substitutie monoalfabetica (monoalphabetic ciphers) sunt cifrurile
in care fiecare caracter al textului in clar este inlocuit cu un caracter corespondent in
textul cifrat. Vom aminti cateva dintre cifrurile de substitutie cele mai cunoscute:
A. Cifrul lui Cesar este un cifru cu substitutie monoalfabetica:
fiecare litera a textului in clar este inlocuita cu o noua litera obtinuta printr-o
deplasare alfabetica;
cheia (aceeasi la criptare cat si la decriptare) consta in numarul care indica
deplasarea alfabetica C = aM + b (mod N) unde:
a se numeste factorde amplificare;
b coeficient de deplasare;
M text in clar (mesaj)
C textul crifrat
Facand corespondenta biunivoca intre literele alfabetului latin (N=26) si
echivalentele lor numerice [0, 1, 2, ., 25], cifrul lui Cesar se poate scrie conform
tabelului 1:
C(ni)= ni+3(mod26)
Text clar : 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
Text cifrat : 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
Exemplu: Celebrul VENI VIDI VICI, devine
prin criptare : YHQL YLGL YLFL.
B. Cifrul lui Polybius este un cifru substitutie. Literele alfabetului latin sunt asezate
intr-un patrat de dimensiune 5x5. Literele I si J sunt combinate pentru a forma un
singur caracter, deoarece alegerea finala (intre I si J poate fi usor decisa din
contextul mesajului. Rezulta 25 de caractere asezate intr-un patrat 5x5. Cifrarea
oricarui caracter se face alegand perechea potrivita de numere (intersectia liniei si
coloanei) orespunzatoare dispunerii caracterului in patrat.
Patratul lui Polybius
1 2 3 4 5
1 A B C D E
2 F G H I K
J
3 L M N O P
4 Q R S T U
3

W X

Exemplu:
Mesajul: A SOSIT TIMPUL
se transforma dupa cifrare in:
113443344244 444223535413.
Observatie: Codul poate fi schimbat prin rearanjarea literelor in patratul
5x5.
Acest cifru nu este in realitate un cifru de securitate; el se utilizeaza adesea in
posturile de utilizatori de retea pentru a ascunde texte potential ofensive.
Concluzie: Cifrurile de substitutie monoalfabetica pot fi sparte cu usurinta deoarece
frecventele literelor alfabetului nu se schimba in textul cifrat fata de textul in clar.
2) Cifruri de substitutie omofonica (homophonic substitution ciphers)
Sunt cifrurile de substitutie in care un caracter al alfabetului mesajului in clar
(alfabet primar) poate sa aiba mai multe reprezentari. Ideea utilizata in aceste cifruri
este uniformizarea frecventelor de aparitie a caracterelor alfabetului textului cifrat
(alfabet secundar), pentru a ingreuna atacurile criptanalitice.
Astfel, litera A cu cea mai mare frecventa de aparitie in alfabetul primar - poate fi
inlocuita cu F, * sau K.
Concluzii:
desi mai greu de spart decat cifrurile de substitutie simple (monoalfabetice), ele
nu mascheaza total proprietatile statistice ale mesajului in clar ;
12 14 13 0 12 14 13 0 12 14 13 0
Cuvant cheie

M O NA M O N AM O N A

Text in clar

A S OS I T T I M P U L

Text cifrat

M G BS U HG I Y D H L

in cazul unui atac cu text in clar cunoscut, cifrul se sparge extrem de usor
atacul cu text cifrat este mai dificil, dar unui calculator ii va lua doar cateva
secunde pentru a-l sparge.

3) Cifruri de substitutie poligramica (polygram substitution ciphers) se obtin


substituind blocuri de caractere ale alfabetului primar - numite poligrame - cu alte
blocuri de caractere, de exemplu:
ABA RTQ
SLL ABB
Utilizari:
Cifrul Playfair, inventat in 1854, a fost utilizat in Anglia, in timpul primului razboi
mondial;
Codul de compresie Huffman, bazat pe acelasi principiu, poate fi utilizat dar este
nesigur.
4) Cifruri de substitutie polialfabetice sunt formate din mai multe cifruri de
substitutie simple. Au fost inventate de Leon Battista, in 1568. Dintre acestea vom
aminti pe doua dintre cele mai celebre si anume cele ale lui Trithemius si Vigenere.
A. Cifrul lui Trithemius este un cifru polialfabetic. Alfabetul este dispus pe 26 de linii
numerotate de la 0 la 25, unde numarul de ordine al liniei indica numarul de
caractere cu care se deplaseaza ciclic alfabetul spre dreapta. Linia numerotata cu 0
constituie tocmai alfabetul in ordinea initiala.
Acest cifru poate fi utilizat astfel: primul caracter se cifreaza selectandu-l din linia 1,
al doilea din linia a 2-a si asa mai departe.
Exemplu:
Mesa
j
Mesa
j
cifrat

10

11

12

B. Cifrul lui Vigenere. Acest cifru utilizeaza cifrul Trithemius si un anumit cuvant
cheie. Cheia dicteaza alegerea liniilor in criptarea si decriptarea fiecarui caracter din
mesaj.
Notiunea de cheie a fost introdusa prima data de catre Blaise de Vigenere, un
diplomat francez nascut in 1523 care, familiarizandu-se cu scrierile altor oameni care
s-au dedicat criptografiei, la varsta de douazeci si sase de ani, a fost trimis la Roma
pentru doi ani intr-o misiune diplomatica. La inceput interesul sau pentru criptografie
a fost strict profesional si a utilizat cifrurile existente pentru a-si securiza
comunicatia.
5

Mai tarziu, la vreo treizeci si doi de ani, Vigenere considera ca a acumulat


destula avere pentru a-si abandona cariera si se dedica numai criptografiei avand ca
unic scop elaborarea unui cifru perfect.
Cifrurile din acea vreme erau bazate pe substitutii monoalfabetice (adica
utilizau un singur alfabet cifrat) insa Vigenere era convins ca aceasta metoda nu va
putea sa ofere siguranta in mana unor profesionisti. De aceea el creeaza pentru
prima data in istorie un sistem de criptografie polialfabetic utilizand chiar o cheie
pentru substitutiile succesive.
In primul rand el repartizeaza alfabetul intr-un patrat specific punand alfabetul
de la A la Z in prima linie apoi alfabetul de la B la A prin Z pe a doua si tot asa
alcatuind un patrat care contine 26 de linii de alfabete incrementate cu unu de
fiecare data.
El obtine astfel 26 de alfabete cifrate care pot sa fie utilizate drept substitute
pentru textul in clar. Daca s-ar folosi doar o line de alfabet din cele 26, transformarea
nu ar fi cu nimic mai elaborata decat o simpla substitutie Cezar.
Pentru a complica substitutia el inventeaza notiunea de cheie si spune ca se
va cauta care alfabet din acest patrat incepe cu prima litera a cheii astfel incat
acesta sa fie utilizat pentru cifrarea primei litere din mesajul in clar.
Pentru a doua litera din cheie se cauta linia din patratul de alfabete care
incepe cu aceasta si se cauta pozitia ei in acest alfabet ca sa fie utilizata pentru
substitutie. Pentru a treia se repeta:
Cheie: ACUM
Mesaj in clar: MICROCELULAR
Mesaj cifrat: MKWDOEYXUNUD
Pas 1: Se suprapune cheia de criptare peste cuvant, in modul urmator:

Cheie:
Mesaj
in clar
Mesaj
cifrat:

Pas 2: Pentru a cripta prima litera din cuvant, se cauta in matrice pe linia pe care se
afla alfabetul care incepe cu litera corespunzatoare din cheie (A) caracterul care
corespunde coloanei care incepe cu prima litera din cuvant (M). Caracterul astfel
obtinut reprezinta codificarea primului caracter din cuvant.
Pas 3: Se repeta pasul 2 pana cand se termina de criptat intreg textul.

Vigenere a lungit cheia prin repetitie astfel incat aceasta sa se potriveasca lungimii
mesajului in clar. Acest lucru este necesar deoarece lungimea cheii poate diferi de la
o cifrare

Exemplu de patrat Vigenere.


In tabelul de mai sus am prezentat un patrat Vigenere alcatuit din 26 de
alfabete. Cautarea se face dupa cheie pe linii si mesajul este cifrat pe coloane dupa
alfabetul de sus.
Aceasta forma de cifrare este deosebita deoarece ea contine mai multe
elemente care fortifica siguranta cifrului. In primul rand se poate observa ca o litera
care apare de mai multe ori in textul cifrat poate reprezenta de fiecare data o litera
7

diferita in textul clar. La fel de mult induce in eroare si faptul ca o litera care apare de
mai multe ori in textul clar poate fi reprezentata prin litere diferite in textul cifrat. Cifrul
VIGENERE admite si un numar imens de chei.
Expeditorul si destinatarul pot sa cada de acord asupra oricarui cuvant din
dictionar, asupra oricarei combinatii de cuvinte sau cuvinte inventate pentru a alcatui
cheia. Un atac prin forta bruta de a cauta toate cheile posibile nu are o solutie in timp
computational nici pe sistemele informatizate din zilele noastre.
Munca lui Vigenere s-a concretizat in "Traitte des Chiffres", publicat in 1586
insa acesta a fost neglijat pentru doua secole cand va aparea din nou in 1854
reinventat de catre John Hall Brock Thwaites, un dentist din Bristol.
Alph implementeaza cifrul Vigenere din versiunea intiala data fiind importanta
acestui cifru. Procedura este absolut identica celei descrise mai sus cu exceptia
faptului ca Alph respecta punctuatia si spatiile, inserand pur si simplu caracterul
specific in mesajul crifrat atunci cand mesajul original il contine.
Mai tarziu Charles Babbage impreuna cu John Hall Brock Thwaites au
dezvoltat o metoda pentru a sparge cifrul Vigenere utilizand functii rudimentare de
criptanaliza. Aceasta descoperire a facut cifrul VIGENERE destul de inutilizabil si in
secolul al XIX-lea practic nu mai exista un cifru destul de solid pentru a putea fi
utilizat in aplicatiile serioase.
Pe la mijlocul acestui secol insa, s-a publicat un document descriind un cifru
semnat de catre Wheatstone pe data de 26 Martie 1854. Schema a ajuns sa fie
cunoscuta dupa numele unui prieten de-al sau, Lord Playfair care l-a popularizat.
La inceput a fost rejectat de catre biroul de afaceri straine datorita
complexitatii sale. Atunci cand Wheatstone s-a oferit sa demonstreze ca trei din
patru copii intr-o scoala ar putea sa il invete in cinsprezece minute, secretarul
biroului de afaceri straine britanic a raspuns: "Acest lucru este foarte posibil insa nu
a-ti putea sa faceti diplomatii sa-l inteleaga." El a fost utilizat in primul razboi mondial
de catre britanici iar al doilea razboi mondial de catre australieni.

Metode de substitutie
Criptarea unui text folosind un cifru poligrafic de substitutie se face nu prin
inlocuirea unei singure litere cu un simbol precum in substitutiile simple, ci prin
inlocuirea unui grupuri de litere realizand un cifru diagrafic.
Avantajul acestui mod de criptare este faptul ca frecventa unui anumit grup de
litere este mult mai mare decat aparitia acelor litere in mod individual.
De asemenea dintr-un numar mare de litere, criptate individual rezulta un text
codat de lungime foarte mare si astfel se poate decripta usor folosind analiza
frecventei aparitiei literelor.
Deoarece 26X26=676, pentru a inlocui perechi de litere cu un anumit alfabet
este nevoie de 676 simboluri, iar acest lucru este un fapt exagerat.
Un astfel de sistem de criptare a fost propus de catre Giovanni Battista della
Porta in cartea sa aparuta in anul 1563 numita De Furtivis Literarum Notis
insemnand ascunderea literelor in scriere. El a realizat un tabel cu 676 de
hieroglife. Insa codul propus de el era greu de utilizat si nu a fost foarte mult folosit.
Alte substitutii poligrafice au fost introduse de Felix Delastelle in 1901 printre care
amintim cifrul Bifid si Trifid.
Cifrul Bifid
Cifrul Bifid foloseste o matrice de 5X5 ce contine in ordine cele 26 de litere ale
alfabetului englez. Matricea este :

1
2
3
4
5

1
A
F
L
Q
V

2
B
G
M
R
W

3
C
H
N
S
X

4
D
I
O
T
Y

5
E
K
P
U
Z

Daca dorim sa criptam ALGEBRA COMPUTATIONALA algoritmul este urmatorul :


- scriem sub fiecare litera echivalentul din matrice, citind prima data linia si apoi
coloana
AL GEBRACOMPUT AT I ONAL A
1 32 1 1 4 1 1 3 3 4 5 41 423 3 1 31
1 22 5 2 3 1 3 5 3 1 1 51 545 4 1 21

- se scriu numerele in perechi de cate 2 incepand cu prima linie si mergand tot pe


linie
13 21 14 11 33 45 41 42 33 13 11 22 52 31 35 31 15 15 45 41 21
- se ia din matrice litera echivalenta fiecarei perechi de numere de mai sus
1
3
C

2 1 1 3 4 4 4 3 1 1 2 5 3 3 3 1 1 4 4 2
1 4 1 3 5 1 2 3 3 1 2 2 1 5 1 5 5 5 1 1
A D A M T P Q M C A B V K O K E E T P F

Textul rezultat este textul initial criptat.


Cifrul Playfair
A fost inventat de catre Charles Wheatstone in 1854 el fiind folosit inclusiv in
al Doilea Razboi Mondial. Numele vine de la baronul Playfair prieten cu omul de
stiinta Charles Wheatstone. Baronul este cel care a convins guvernul britanic sa
adopte oficial acest cifru.
Cifrul Playfair este considerat azi ca un cifru primitiv si usor de rezolvat iar un
calculator poate decoda cu usurinta un mesaj doar in cateva secunde.
Pasii care trebuie urmati pentru criptarea unui text sunt:
Pasul 1: Alegem o cheie cu toate literele alfabetului aranjate intr-un tabel de
5x5,punant I si J in aceeasi celula
Pasul 2 : Impartim textul de cifrat in grupuri de cate doua litere.Daca intr-un grup
avem de 2 ori aceeasi litera, punem X in locul celei de-a doua aparitii.Daca ultimul
grup e format dintr-o singura litera, adaugam X ca a doua litera.
Pasul 3: Criptam fiecare grup astfel:
Daca cele doua litere ale grupului sunt pe aceeasi linie, punem literele imediat din
dreapta fiecarei litere din grup de criptat.
Daca cele doua litere ale grupului sunt pe aceeasi coloana punem literele imediat
de sub ele in textul criptat
Altfel schimbam fiecare litera cu cea de la intersectia propriului rand cu coloana
celeilalte.
La descifrare, regulile sunt exact opuse.

De exemplu pentru a cripta textul:


10

Azi e luni nu vineri.


Vom folosi cheia:
YOAN P
I Z BC D
EF GH K
L MQR S
T U V WX

Impartim textul de criptat in grupe de cate doua litere:


A
Z

I S
E T

E
L

U
N

I U
N V

I E
N R

I
X

Pentru a cripta grupul de litere UN literele corespunzatoare criptarii:


YOAN P
I Z BC D
EF GH K
L MQR S
T U V WX
Se va alege pentru litera U ->W, iar pentru N -> O.
Pentru a cripta grupul de litere UV, literele corespunzatoare criptarii vor fi U ->V, iar
pentru V ->W.
YOAN P
I Z BC D
EF GH K
L MQR S
T U V WX

Pentru a cripta grupul de litere IE, literele corespunzatoare criptarii vor fi I->E, iar E
->L
11

Y O

E F

G H

Q R

Z
M

T U

W X

Textul criptat va arata astfel:


O
B

E
L

L
X

L
T

W
O

C
Y

V
W

C
Y

H
L

D
T

Cifrul Vic
Cifrul Vic a fost creat in Uniunea Sovietica. Este considerat ca fiind un cifru destul de
sigur. A fost descoperit din intamplare intr-un microfilm situat intr-un tub de nichel,
gasit de un copil in anul 1953. Deja in anul 1957 a fost cunoscut de catre americani,
explicat de catre Hayhaynen.
David Kahn a descris in mare acest cifru intr-un articol in Scientific American, iar in
mod detailat in anul 1960 la o conferinta tinuta de American Cryptogram
Association.
Cifrul Vic consta in generarea aleatoare a 10 numere. Un agent trebuie sa
memoreze doar 6 dintre ele (care sunt retinute sub forma de data). De asemenea
trebuie sa retina si primele 20 de litere dintr-o fraza cheie care este inceputul unui
cantec popular.
Cifrul ADFGVX
Este un cifru de substitutie folosit de armata germana in timpul razboiului.In data de
5 martie 1918 acestia urmau sa ocupe Parisul,insa francezii au descifrat cifrul si au
castigat razboiul.
Cheia acestui cifru este:
ADFG VX
A8 P 3d 1 n
DL T 4o a h
F 7 Kbc 5 z
GJ U6 wq m
VXS v i r 2
X9 E g0 f g
unde fiecarui caracter ii corespunde coordonatele din tabel.
12

Exemplu: Victorie, am castigat pe data de 9!


Textul criptat va fi: VFVGFGDDDGVVVGXD, DVGX
FGDVVDDDVGGVDVDD ADXD AGDVDDDV AGXD XA !
MASINI SI DISPOZITIVE
Avnd in vedere faptul ca metodele de substitutie si permutari repetate sunt
destul de complicate s-a incercat mecanizarea lor primele masini fiind puse la punct
in jurul anului 1920 acestea fiind bazate pe pricipiul de rotor.
O masina rotor (rotor machine) are o tastatura si o serie de rotoare ce permit
implementarea unei versiuni a cifrului Vignre. Fiecare rotor face o permutare
arbitrara a alfabetului, are 26 de pozitii si realizeaza o simpla substitutie. Deoarece
rotoarele se misca cu viteze de rotatie diferite, perioada unei masini cu n rotoare
este 26n .
Cel mai celebru cifru bazat pe o masina rotor este Enigma, utilizata de
germani in cel de-al doilea razboi mondial. El a fost inventat de Arthur Scherbius si
Arvid Gerhard Damm in Europa si a fost patentat in SUA. Germanii au imbunatatit
considerabil proiectul inventatorilor sai, dar a fost spart de criptanalistii polonezi care
au explicat atacul englezilor.

Modelul militar german numit Wehrmacht Enigma

13

Primele spargeri ale masinii Enigma au avut loc la inceputul anilor 30 de catre
matematicienii polonezi Alicen Rejewski, Jerzy Rozycki si Henryk Zygalsk. Cu noroc
si intuitie Rejewski si echipa lui au reusit sa compromita masina, totul fiind posibil nu
datorita vreunei scapari in proiectarea masinii ci deciziei nemtilor de a transmite
repetitiv (de 2 ori) cheia.
Ulterior Enigma a fost perfectionata, spargerea ei devenind practice imposibila
pentru acele timpuri. Un aport considerabil in directia spargerii acestei masini a avut
Alan Turing, care proiectase o masina electromecanica (denumita Bombe dupa
modelul original polonez) ce putea ajuta la spargerea masinii Enigma mai rapid
decat bomba din 1932 a lui Rejewski, din care s-a si inspirat. Bombe, cu o
imbunatatire sugerata de matematicianul Gordon Welchman, a devenit una din
principalele unelte automate utilizate pentru a ataca traficul de mesaje protejat de
Enigma.

Masina BOMBE (Alan Turing)

14

Masina Bombe cauta setari potential corecte pentru un mesaj Enigma


(adica, ordinea rotoarelor, setarile rotoarelor, etc.), folosind un fragment de text clar
probabil. Pentru fiecare setare posibila a rotoarelor (numarul maxim posibil fiind de
ordinul a 1019 stari, sau 1022 pentru masinile Enigma de la U-boat, care aveau
patru rotoare, fata de masina Enigma standard care avea doar trei). Aceasta efectua
un lant de deductii logice pe baza fragmentului probabil, deductii implementate
electric. Bombe detecta cand avea loc o contradictie, si elimina setarea, trecand la
urmatoarea. Peste doua sute de astfel de masini create de Alan Turing au fost in
functiune pana la sfarsitul razboiului. Masinile cu rotor au fost folosite activ pe
parcursul razboiului II mondial. Pe langa masina germana Enigma au fost folosite si
Sigaba (SUA), Typex (Marea Britanie), Red, Orange, Purple (Japonia). Masinile
cu rotor au fost varful criptografiei formale deoarece realizau cifruri suficient de
rezistente intr-un mod relativ simplu
Atacurile incununate de succes asupra masinilor cu rotor au fost posibile
numai la inceputul anilor 40 odata cu aparitia masinilor electronice de calcul. Tot in
aceasta perioada criptografia devine stiintific ramura aparte a matematicii odata cu
publicarea (anul 1949) articolului lui Claude Elwood Shannon Communication
Theory of Secrecy Systems., care a pus bazele stiintifice ale sistemelor de criptare
cu cheie secreta (sistemelor simetrice).

15

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