Sunteți pe pagina 1din 7

Lucrarea de laborator Nr.

1
Tema: Cifrul Cezar.
Scopul acestei lucrri este de a ne familiariza cu noiunile fundamentale ale
criptografiei i cu metodele moderne de criptare ca instrument indispensabil al
securitii informaiilor. i metodele arhaice de codificare.
Scurt istoric: Criptografia reprezint o ramur a matematicii care se ocup
cu securizarea informaiei, precum i cu autentificarea i restricionarea accesului
ntr-un sistem informatic.
nc foarte demult, circa 4000 de ani n urm, n oraul Menet Khufu de pe
malul Nilului un scrib cu experien a desenat ieroglife care relatau viaa stpnului
su, devenind astfel cel care a pus bazele istoriei criptografiei. Sistemul su nu este
un sistem al scrierii secrete n sens contemporan. scut criptologia. n primii 3000 de
ani dezvoltarea ei nu a fost una continu. n unele locuri criptologia se ntea i
murea odat cu civilizaia ce i-a dat natere. n altele ea a rezistat ptrunznd n
literatur pentru ca generaiile urmtoare s poat urca spre nivele mai nalte ale
criptologiei. naintarea spre aceste nivele era lent i anevoioas. Mai multe erau
pierdute dect pstrate. Cunotinele acumulate au cptat amploare numai la
nceputul Renaterii europene.
Criptografia clasic este criptografia dinaintea calculatorului, de unde i
denumirea de criptografie pre-computaional. n criptografia clasic, algoritmii
erau bazai pe caracter i constau dintr-o serie de transformri elementare
(substituii, transpoziii) ale caracterelor textului clar. Unii 13 algoritmi aplicau
aceste transformri n mod repetat, mbuntind n acest mod securitatea
algoritmului. n criptografia modern bazat pe calculator (criptografie
computaional), lucrurile s-au complicat, dar multe dintre ideile criptografiei
clasice au rmas nemodificate. Criptografia clasic se ncadreaz n clasa
criptografiei cu chei simetrice.
Cifrul de substituie este cifrul bloc la care fiecare caracter sau grup de
caractere ale textului clar m este substituit cu un alt caracter sau grup de caractere n
textul cifrat c, descifrarea fcnduse prin aplicarea substituiei inverse asupra
textului cifrat. n criptografia clasic exist patru tipuri de cifruri de substituie.
Deosebim cifruri cu substituie monoalfabetic i polialfabetic.
n criptografie, cifrul lui Cezar, numit i cifru cu deplasare, codul lui Cezar
sau deplasarea lui Cezar, este una dintre cele mai simple i mai cunoscute tehnici
de criptare. Este un tip de cifru al substituiei, n care fiecare liter din textul ini ial
este nlocuit cu o liter care se afl n alfabet la o distan fix fa de cea nlocuit.
De exemplu, cu o deplasare de 5 poziii, A este nlocuit cu D, devine E i aa mai

departe. Aceast metod este numit aa dup Iulius Cezar, care o folosea pentru a
comunica cu generalii si.
Pasul de criptare al cifrului lui Cezar este de obicei ncorporat n scheme mai
complexe precum Cifrul Vigenre, i nc mai are aplicaii moderne n sistemul
ROT13. Ca orice alt cifru bazat pe substituii alfabetice, cifrul lui Cezar este simplu
de descifrat i n practic nu ofer securitate suficient.
Cifrul Cezar este denumit dup Iulius Cezar, care, conform Suetoniu, l
folosea cu o deplasare de 3 pentru protejarea mesajelor cu importan militar. De i
Cezar a fost primul care a fost folosit cifrul ntr-un mod n care se poate atesta, alte
cifruri bazate pe substituie se cunosc ca fiind folosite anterior. Nepotul lui Iulius
Cezar, Augustus, a folosit de asemenea cifrul, dar cu o deplasare de unu.
Scurt teoretic: Transformarea poate fi reprezentat printr-o aliniere a dou
alfabete; alfabetul cifrului este alfabetului normal rotat la stnga sau la dreapta cu
un numr de poziii. n exemplul de mai jos cifrul folose te o rota ie la stnga cu
cinci poziii (parametrul de deplasare, aici 5, este folosit drept cheia cifrrii):
Normal: ABCDEFGHIJKLMNOPQRSTUVWXYZ
Cifru : DEFGHIJKLMNOPQRSTUVWXYZABC
Pentru a cripta un mesaj se caut fiecare liter a mesajului n linia "Normal"
i se scrie litera corespunztoare din linia "Cifru". Pentru decriptarea unui text cifrat
se procedeaz invers.
Criptarea dup cifrul Cezar poate fi reprezentat folosind aritmetic modular
prin transformarea literelor n numere conform schemei A = 0, = 1,..., Z = 30[1].
Astfel, alfabetul devine o secven de 31 de numere, iar criptarea unei litere cu
poziia din alfabet x printr-o deplasare spre dreapta cu n pozi ii poate fi descris
matematic ca:
En ( x ) =( x +n)

mod 31

Decriptarea este fcut n mod similar:


D n ( x )=( xn)

mod 31

Exist mai multe definiii pentru operaia modulo. n operaia de mai sus,
rezultatul se afl n intervalul 0...30. Dac x+n sau x-n nu se afl n intervalul 0...30,
atunci prin operaia modulo se scad sau se adun 31 de attea ori pn cnd condiia
este ndeplinit.
2

Metoda de nlocuire este aceeai pe ntreg parcursul mesajului, de aceea


cifrul este clasificat ca un tip de substituie monoalfabetic, spre deosebire de
substituia polialfabetic.
Mersul lucrrii: Codul programei a fost scris n limbajul de programare C#.
Aplicaia are trei butoane i trei cmpuri de introducere a textelor din care doua se
folosesc pentru introducerea mesajului criptat i a cheei. n fig. 1 este prezentat
aplicaia.

Fig.1 Platforma de lucru


Verificarea programului:

Fig. 2 Programul n lucru

Verificarea.
Tab.1 Codificarea literilor n cifre
a b

f g

0 1

56

i j k l m n o p q r s t u v w x y z
1
8 9
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
0

Tab. 2 Mesajul i codul n cifre


Mesajul
Mesajul codificat n cifre
Mesajul codificat in cfre +
cheia 3
Mesajul criptat

i o n s i t a t a
8 14 13 18 8 19 0 19 0
11 17 16 21 11 22 3 22 3
l

r q v

Dup modulul 26

l w dw d

Deci mesajul obinut este lrq vl wdwd. Pentru criptare la mesajul codificat n
cifre se adun cheia dup formula Mp+k=Mc (dup modulul n), unde
Mp mesajul propus transformat n cifre
k cheia dup care codificm
Mc mesajul codificat n cifre
n numrul de simboluri n alfabetul de care ne folosim (englez 26 simb.)
n cz c la adunarea lui k la Mp depete n, atunci din rezultat se scade n
pn devine mai mic ca n.
Decriptarea se face invers criptrii, mesajului codat i atribuim cifrele ce
corespund simbolurilor dup care din cefra ce se obtine sub fiecare simbol se scade
keia, dac numrul obinut este mai mic ca 0, atunci la el se adun modulul pn
rezultatul devine pozitiv.

Listingul programului:
using
using
using
using
using
using
using
using
using

System;
System.Collections.Generic;
System.ComponentModel;
System.Data;
System.Drawing;
System.Linq;
System.Text;
System.Threading.Tasks;
System.Windows.Forms;

namespace Cezar
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
textBox3.Text = "";
int cheia = 0;
string[] array = new string[] {"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" };
try
{
cheia = Convert.ToInt32(textBox1.Text);
}
catch
{
MessageBox.Show("Introducei keia!");
return;
}
string[] array2;
array2 = array.Skip(cheia).Concat(array.Take(cheia)).ToArray();
string text = textBox2.Text;
foreach (char bykva in text)
{
for (int i = 0; i < array.Length; i++)
{
if (bykva.ToString().ToLower() == array[i])
{
textBox3.Text += array2[i];
break;
}
else
{
if (bykva.ToString() == " " || bykva.ToString() == "." ||
bykva.ToString() == "," || bykva.ToString() == ":" ||
bykva.ToString() == ";" || bykva.ToString() == "?" ||
bykva.ToString() == "!")
{
textBox3.Text += " ";
break;
}
}
}
}

}
private void button2_Click(object sender, EventArgs e)
{
textBox3.Text = "";
int cheia = 0;
string[] array = new string[]{ "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"};
try
{
cheia = Convert.ToInt32(textBox1.Text);
}
catch
{
MessageBox.Show("Indicai keia!!!");
return;
}
string[] array2;
array2 = array.Skip(26-cheia).Concat(array.Take(26-cheia)).ToArray();
string text = textBox2.Text;
foreach (char bykva in text)
{
for (int i = 0; i < array.Length; i++)
{
if (bykva.ToString().ToLower() == array[i])
{
textBox3.Text += array2[i];
break;
}
else
{
if (bykva.ToString() == " " || bykva.ToString() == "." ||
bykva.ToString() == "," || bykva.ToString() == ":" ||
bykva.ToString() == ";" || bykva.ToString() == "?" ||
bykva.ToString() == "!")
{
textBox3.Text += " ";
break;
}
}
}
}
}
private void button3_Click(object sender, EventArgs e)
{
textBox1.ResetText();
textBox2.ResetText();
textBox3.ResetText();
}
private void button4_Click(object sender, EventArgs e)
{
MessageBox.Show("Aplicaia a fost executat n programa Microsoft
Visual Studio de ctre studientul gr. TI-31 Tacu Ion");
}
}
}

Concluzii:
Acest model de criptare este un model arhaic i cel mai simplu. n vog el era
doar pe timpul lui Cezar. La moment el mai des se folose te n re elele de
socializare sau n forumuri pentru codarea unor nume sau cuvinte, dar cu toate
acestea este baza codificrii i are rolul su n acest domeniu.
Bibliografie:
Note de curs Criptarea i securitatea informaiei Zgureanu Aurel
Chiinu 2013.
https://ro.wikipedia.org/wiki/Cifrul_Cezar