Documente Academic
Documente Profesional
Documente Cultură
Coduri detectoare/corectoare
de erori. Criptarea informaiei
1. Prezentare teoretic
n cadrul acestei lucrri de laborator se vor prezenta algotimii CRC i Reed-Solomon folosii
la detectarea i corectarea erorilor care pot aprea ntr-o transmisie de date. Algoritmii RSA
i IDEA prezentai sunt uzual folosii pentru criptarea informaiei i se bazeaz pe chei
publice. Implementrile hardware ale altor algoritmi de criptare, care se bazeaz pe metode
tradiionale (de exemplu algoritmul de criptare DES), pot fi studiate la http://www.csitsun.pub.ro/resources.
Sume de control
Scopul unei tehnici de detecie a erorilor este acela de a pune la dispoziia receptorului
unui mesaj, transmis printr-un canal cu zgomote (pasibil de introducere de erori), o
metod de a determina dac mesajul a fost corupt sau nu. Pentru a face posibil acest
lucru, emitorul construiete o valoare numit sum de control care este o funcie de
mesaj i o anexeaz acestuia. Receptorul poate s foloseasc aceeai funcie pentru a
calcula suma de control pentru mesajul primit, iar apoi s o compare cu suma de
control anexat (concatenat mesajului) pentru a vedea dac mesajul a fost receptat
corect.
Exemplu S se aleag o funcie care are ca rezultat (sum de control) suma octeilor din
mesaj modulo 256:
1
f ( x) =
(octeti
(1)
:
:
7 24 3
7 24 3 34
7 28 3 38
Coduri CRC
Ideea de baz pentru algoritmii CRC este de a trata mesajul drept un numr
reprezentat n binar, de a-l mpri la un alt numr binar fixat i de a considera restul
drept sum de control. La primirea mesajului, receptorul poate efectua aceeai mprire
i poate compara restul cu suma de control primit (restul transmis).
Exemplu Considernd c mesajul care trebuie transmis este alctuit din 2 octei (6,
23), el este reprezentat n baza 16 ca numrul 0617 i n baza 2 ca 0000_0110_0001_0111.
Se presupune folosirea unei sume de control de l octet i a unui mpritor constant
1001. Atunci suma de control va fi restul mpririi 0000_0110-0001_0111 : 1001 = ...
0000010101101, rest 0010. Mesajul transmis de fapt va fi: 06172, unde 0617 este
mesajul iniial (informaia util), iar 2 este suma de control (restul).
Aritmetica binar fr transport
Toate calculele executate n cadrul algoritmilor CRC sunt realizate n binar, fr
transport. Deseori se folosete denumirea de aritmetic polinomial, dar n continuare
se va folosi denumirea de aritmetic CRC deoarece la implementarea cu polinoame s-a
renunat.
2
Adunarea a dou numere n aritmetica CRC, aa cum se poate observa n figura 1, este
asemntoare cu adunarea binar obinuit, ns nu exist transport. Aceasta nseamn
c fiecare pereche de bii corespondeni determin bitul corespondent din rezultat,
fr nici o referin la alt bit din alt poziie (aa cum se poate observa din exemplul
prezentat n figura 2 a). ).
Definiia operaiei de scdere este identic cu operaia de adunare i poate fi observat
n figura 1, iar un exemplu este prezentat n figura 2 b).
Se poate concluziona c att adunarea ct i scderea n aritmetica CRC sunt
echivalente cu operaia SAU EXCLUSIV (XOR), iar operaia XOR este propria sa
invers. Acest fapt reduce operaiile primului nivel de putere (adunare, scdere) la una
singur, care este propria sa invers (o proprietate foarte convenabil a acestei aritmetici).
Pe baza adunrii, se poate defini i nmulirea, care se realizeaz natural, fiind suma dintre
primul numr deplasat corespunztor i cel de-al doilea numr (se folosete adunarea CRC).
Un exemplu pentru aceast operaie este prezentat n figura 2 c).
Pentru realizarea operaiei de mprire, este nevoie s se cunoasc cnd un numr este
cuprins n altul. De aceea, se va considera urmtoarea definiie: X este mai mare dect
sau egal cu Y dac poziia celui mai semnificativ bit l al lui X este mai mare sau aceeai cu
poziia celui mai semnificativ bit l al lui Y. Un exemplu complet este prezentat n figura 2 d).
calculat (CRC-ul). n mod uzual CRC-ul este apoi adugat mesajului, iar rezultatul este
trimis ctre receptor, n acest caz se transmite 11010110111110.
Receptorul calculeaz suma de control pentru ntreg mesajul primit (fr adugare de
zerouri) i compar restul cu 0. Realizarea acestei operaii este motivat de faptul c
mesajul transmis T este multiplu de polinomul folosit drept divizor.
Implementarea direct
CRC-ul se poate calcula utiliznd noiunile teoretice prezentate pn acum. Algoritmul,
implementarea Verilog precum i rezultatele simulrii pot fi observate n figura 3.
Coduri Reed-Solomon
Codurile Reed-Solomon (RS) sunt coduri corectoare de erori n bloc inventate n 1960
de Irving Reed i Gustave Solomon. Aceste coduri au nceput s fie utilizate ncepnd cu
1990, atunci cnd progresele tehnologice au fcut posibil trimiterea datelor n
cantiti mari si la viteze ridicate. Actualmente aceste coduri sunt utilizate ntr-o gam
larg de echipamente electronice cum sunt:
dispozitivele pentru stocarea datelor (CD, DVD, hard-disk);
telefoanele mobile;
echipamentele folosite n comunicaiile prin satelit;
televiziunea digital;
modemurile de mare vitez (ADSL, xDSL).
Realizarea unei transmisii folosind codurile RS presupune ca, codificatorul RS s preia
un bloc de date i s adauge o informaie suplimentar caracteristic. Una dintre
caracteristicile importante ale codului RS const n faptul c acest cod va codifica
grupuri de simboluri de date.
Decodificatorul RS proceseaz fiecare bloc i ncearc s corecteze erorile aprute i
s recupereze datele trimise original.
6
1.
2.
se determin = ( p 1) (q 1) ;
3.
4.
d = rest e
Cheia public este alctuit din perechea (n, e), ct timp cheia privat este format din
perechea (n, d). Implementarea hardware a celui mai mare divizor comun se realizeaz
cu ajutorul algoritmului lui Euclid.
Algoritm EuclidExtins(a, b)
if b = 0 then
return (a, 1, 0)
else
a
(d, x, y) = EuclidExtins(b, rest )
b
a
return (d, y, x y' )
b
2. Transmisia informaiei - n cadrul acestei etape, att transmitorul ct i
receptorul trebuie s execute cteva operaii distincte. Transmitorul
realizeaz urmtoarele operaii:
a. obine cheia public (n, e) de la receptor;
b. convertete mesajul ntr-o mulime de ntregi pozitivi;
c. calculeaz textul criptat conform relaiei: c = me mod n;
d. transmite mesajul c la receptor.
Receptorul realizeaz urmtoarele operaii:
a. utilizeaz cheia privat (n, d) pentru a calcula m = cd mod n;
b. extrage textul din colecia de numere ntregi m.
11
2. Desfurarea lucrrii
Se va proiecta n Verilog utiliznd Xilinx WebPACK ISE 10.1 i se va simula un
circuit, care implementeaz algoritmul IDEA. Se va folosi schema general prezentat
n figura 7.
3. Probleme propuse
1. S se proiecteze n Verilog utiliznd Xilinx WebPACK ISE 10.1 i s se
simuleze un circuit, care implementeaz algoritmul CRC bazat pe tabel.
2. S se proiecteze n Verilog utiliznd Xilinx WebPACK ISE 10.1 i s se
simuleze un circuit, care implementeaz algoritmul de criptare RSA.
Indicaii
Este bine s se calculeze o tabel de conversie pentru fiecare dintre cele 256
valori de intrare posibile. Pentru a cripta mesajul va fi necesar doar accesul la o
memorie local care memoreaz tabela determinat. La decriptare se va utiliza
acelai artificiu.
12