Sunteți pe pagina 1din 43

Investește în oameni !

FONDUL SOCIAL EUROPEAN


Programul Operațional Sectorial pentru Dezvoltarea Resurselor Umane 2007 – 2013
Axa prioritară 2 „Corelarea învățării pe parcursul vieții cu piața muncii”
Domeniul major de intervenție 2.1 „Tranzacția de la școală la viața activă”
Titlul proiectului: Performanță Profesională Prin Pregătire Practică
Contract nr. POSDRU/189/2.1/G/156404

RAPORT FINAL DE PRACTICĂ


Autor: <Cosmin Voicu>

<Crearea unui format proprietar audio>

Tutore: < Catalin Dumitrescu>

2015
CUPRINS

I. Prezentarea companiei/institutiei unde a fost efectuat stagiul de practica..........


II. Introducere - obiectivele activității de practica...................................................
III. Stadiul actual al cercetărilor similare - prezentare generală................................
IV. Rezultate stiintifice.............................................................................................
1. Studiul formatelor audio comerciale...............................................................
Formatul Waw.................................................................................................
Formatul Mp3..................................................................................................
Formatul Mp4..................................................................................................
2. Caracteristicile fundamentale necesare stocari/redari unui semnal audio.......
3. Studiul si analiza semnalelor audio.................................................................
4.Aplicatia GoldWave ........................................................................................
5.Audio scrambler...............................................................................................
6. Audio AES encrypt.........................................................................................
7. Aplicatie audio scrambling..............................................................................
8. AES audio encryption c++ .............................................................................
V. Concluzii..................................................................................................................
VI. Contribuții la dezvoltarea cunoașterii in domeniu...................................................
VII. Bibliografie..............................................................................................................
I. Prezentarea companiei/institutiei unde a fost efectuat stagiul de practica

Stagiul de practica sa efectuat la societatea comerciala , persoana juridica ARCESIUS


SOFTWARE SRL , reprezentata de dl Dan Ionascu , in calitate de Director General, si dl.
Catalin Dumitrescu , in calitate de tutore , adresa partenerului de practica : Strada Pache
Protopopescu , nr 43, cam 2, et 6 , ap. 24, email:dan.ionascu@parkerlewis.com.
ARCESIUS SOFTWARE activeaza in urmatoarele domenii:
1.SOFTWARE
Pentru companii electrice:
a) EMID Ce este Emid ? Un sistem de informare care permite
raportarea caderilor de tensiune care favorizează un răspuns rapid și de continuitate în furnizarea
de servicii . Activitatea în acest sistem include , de asemenea evidență a modificărilor și
reparațiilor legate de infrastructura . Indicatorii de performanță Această aplicație software
corespunde cerințelor standardului de performanță pentru electric [ ... ]
b) MAR Ce este MAR ? Un sistem de management de informații ,
care oferă un proces unitar și optimizat pentru conectarea la rețeaua de distribuție electrică . De
ce sa il folosească ? Sistemul software un instrument care măsoară eficiența birocrației
Energetice .
c)EPAY Răspunde la toate nevoile, Distribuția Portalului a fost
implementat la serverul tuturor clientilor companiilor electrice de distribuție , cum ar fi
furnizori , industriale , mari, mijlocii sau clienti de uz casnic . Acoperind toate domeniile de
Distribuție. Are ca functie principala distributia de Date tehnice cu privire la plata de livrare si
punctul de factura.
d) E-Supplier Aceasta tehnologie realizeaza facturii pe o
platforma web pentru a integra si automatizarea interactiuni dintre departamentul
financiar/contabil si furnizorii companiei.
Aplicatii in Managementul feroviar:
a)RTM Ce este RTM ? Un sistem de informații care oferă
management pentru exploatarea logistica a flotei feroviare de evidență a resurselor alocate și
planificarea și monitorizarea transportului feroviar .
b)RATIO Un sistem de suport decizional , care oferă soluții
concepute pentru optimizarea logisticii într-o rafinărie bazat pe tehnici de inteligenta artificiala si
algoritmi genetici .
Solutii SCADA:
a) Statii pentru purificarea apei.
b) Statii de pompare a apei.
c) Contoare pentru citirea gazului.

2. Inteligenta artificiala
3. Biosemnale
3. Stenografie
4. Aplicatii in domeniul medicinei legale
5. Aplicatii in domeniul prelucrarii imaginilor
II. Introducere - obiectivele activității de practica

a) Introducere in limbajul de programare c++ si java pentru intelegearea aplicatiilor


ingineresti.

b) Introducere in Matlab pentru simularea si proiectarea unor aplicatii din domeniul audio.

c) Utilizarea unor soft-uri pentru viziualizarea in domeniul timp si frecventa al semnalului


audio.
d) Intelegerea unor concepte teoretice care vor fi aplicate in practica .

e) Abilitati tehnice si si lucru in echipa .

f) Elaborarea de proiecte ale echipamentelor si instalatiilor utilizate in transporturi.

g) Interpretarea conceptelor de fiabilitate functionala , securitate si siguranta in functioanare


privind echipamentele si instalatiile din transporturi.

h) Selectarea instalarea si exploatarea echipamentelor si instalatiilor utilizate in transporturi


inclusiv evaluarea sigurantei in functionare .

i) Definirea principiilor de baza privind proiectarea , functionarea si expolatarea


echipamentelor si instalatiilor utilizate in transporturi .

j) Utilizarea criteriilor de performanta adecvate pentru evaluarea calitatii serviciilor oferite


de echipamentele si instalatiile din transporturi (in principal fiabilitatea , siguranta si
securitatea serviciilor).
III. Stadiul actual al cercetărilor similare - prezentare generală

Protecţia la copiere:
Deoarece calitatea video oferită de discurile DVD-Video este foarte ridicată, există riscul
copierii ilegale a conţinutului discurilor pe o bandă video sau pe un alt disc. Prin înregistrarea
criptată a filmului pe disc şi echiparea unităţilor DVD cu un circuit de decriptare, se poate
preveni copierea digitală. În plus, unităţile DVD pot fi prevăzute cu o facilitate de protecţie la
copiere, astfel încât în cazul copierii filmului pe o bandă video va rezulta o severă degradare a
calităţii.

Există patru forme de protecţie la copiere utilizate la discurile DVD-Video. Acestea sunt descrise
în continuare.
1) Sistem analogic
Copierea pe bandă video (analogică) este prevenită cu un circuit Macrovision 7.0
sau un circuit similar. Acest tip de protecţie se numeşte sistem de protecţie analogică (APS –
Analog Protection System). Plăcile video care generează la ieşire un semnal video complex
sau semnale s-video trebuie să utilizeze de asemenea sistemul APS. Circuitul Macrovision
adaugă la semnalul de ieşire un semnal de culoare cu modulaţie rapidă (componenta
“Colorstripe”) şi impulsuri la semnalul de stingere pe verticală (componenta “AGC” –
Automatic Gain Control). Ca urmare, la majoritatea aparatelor video circuitele de
sincronizare şi de control automat al nivelului de înregistrare nu vor funcţiona corect.
Această metodă reduce însă calitatea imaginii, mai ales în cazul echipamentelor mai vechi
sau nestandard. Efectele pot fi: dungi colorate, distorsiuni, imagine alb-negru, şi alternanţe
de imagini luminoase şi întunecate. În antetul fiecărui sector, discurile conţin biţi care
validează sau invalidează protecţia la copiere şi permit un anumit control al gradului de
protecţie.
2) Sistem de gestiune a generării cópiilor
În cazul acestui sistem, numit CGMS (Copy Generation Management System),
fiecare disc conţine şi informaţii care specifică dacă discul poate fi copiat. Aceste informaţii
vor fi incluse în semnalul video de ieşire. Pentru ca sistemul să funcţioneze, echipamentul
de copiere trebuie să recunoască şi să respecte standardul CGMS. Standardul analogic 5
(CGMS/A) codifică datele pe linia 21 NTSC. Standardul digital (CGMS/D) nu este încă
finalizat, dar se va aplica pentru conexiunile digitale ca de exemplu IEEE 1394/Firewire.
3) Sistem de mixare a conţinutului
Deoarece există posibilitatea realizării unor cópii digitale perfecte de pe discurile
DVD-Video, studiourile de film au determinat introducerea în standardul DVD-Video a
unor cerinţe mai severe privind protecţia la copiere. Sistemul de mixare a conţinutului,
numit CSS (Content Scrambling System), este o formă de criptare a datelor înregistrate pe
disc. Unităţile DVD au un circuit de decriptare care decodifică datele înaintea afişării lor.
Ieşirea digitală a acestor unităţi nu conţine decât date criptate. În cazul în care pentru
vizionarea filmelor se utilizează o unitate DVD-ROM conectată la un calculator, între
unitatea DVD-ROM şi placa video sau programul de vizualizare se transmit coduri de
criptare, astfel încât informaţiile video sunt decriptate imediat înainte de afişare. Aceasta
înseamnă că multe unităţi DVDROM şi plăci video conţin un hardware suplimentar (şi au
un cost mai ridicat) în vederea protecţiei la copiere a filmelor. Unităţile DVD-ROM
fabricate în 1999 dispun de un sistem CSS şi de un sistem de gestiune a codurilor regionale.
Fabricanţii de echipamente utilizate pentru vizualizarea filmelor de pe discurile DVD-Video
(unităţi, circuite, plăci video) trebuie să dispună de o licenţă pentru sistemul CSS, licenţă
care se acordă gratuit.
4) Sistem digital
Pentru a permite conexiuni digitale între componente, dar fără posibilitatea realizării
unor cópii digitale perfecte, au fost propuse mai multe sisteme digitale de protecţie la
copiere. Cel mai important sistem este DTCP (Digital Transmission Content Protection),
care este destinat interfeţei IEEE 1394/FireWire, dar se poate aplica şi altor protocoale.
Propunerea (numită 5C, de la cele cinci firme autoare) a fost realizată de Intel, Sony,
Hitachi, Matsushita şi Toshiba, în februarie 1998. În cazul sistemului DTCP, între
dispozitivele care sunt conectate digital, ca de exemplu o unitate DVD şi un aparat TV
digital sau un înregistrator video digital, se transmit chei de autentificare pentru a se stabili
un canal de transmisie sigur. Unitatea DVD criptează semnalul audio/video pe măsură ce îl
transmite la dispozitivul receptor, care trebuie să îl decripteze. Astfel se previne ca alte
dispozitive conectate dar neautentificate să recepţioneze semnalul. Nu este necesară
criptarea conţinutului care nu este protejat la copiere. Sistemul de securitate poate fi reînnoit
de conţinutul noilor discuri şi de noile dispozitive care conţin chei actualizate şi liste de
revocare (pentru a identifica dispozitivele neautorizate sau pe cele compromise). Un alt
sistem, numit XCA (Extended Conditional Access), propus de Zenith şi Thomson, este
similar cu sistemul DTCP, dar poate fi utilizat cu interfeţele digitale unidirecţionale (ca de
exemplu standardul EIA-762 RF) şi utilizează cartele inteligente pentru reînnoirea
sistemului de securitate. Alte trei propuneri au fost realizate de MRJ Technology, NDS,
respectiv Philips. La toate cele cinci sisteme, conţinutul discurilor este marcat cu indicatoare
de tipul “copiere liberă”, “copiere o singură dată”, “fără copiere”, şi uneori “fără alte cópii”.
Dispozitivele digitale care nu execută decât redarea audio şi video pot recepţiona toate
datele (dacă ele se pot recunoaşte ca fiind dispozitive doar pentru redare). Dispozitivele
digitale de înregistrare pot recepţiona doar datele care pot fi copiate, şi ele trebuie să
modifice indicatorul la “fără copiere” sau “fără alte cópii” dacă sursa este marcată cu
indicatorul “copiere o singură dată”. Sistemul digital de protecţie la copiere este destinat
generaţiei următoare de aparate TV digitale, receptoare digitale pentru satelit şi
înregistratoare video digitale. Acestea necesită noi unităţi DVD cu conectori pentru semnale
digitale. Deoarece criptarea este realizată de unitate, nu trebuie efectuate modificări ale
formatului existent al discurilor. Nici unul din sistemele de protecţie descrise nu este
infailibil. Există dispozitive cu costuri reduse care se pot utiliza împotriva protecţiei la
copiere analogice. Firma Macrovision susţine însă că nu există (deocamdată) dispozitive
eficiente împotriva protecţiei la copiere realizată cu metoda “Colorstripe”.
IV. Rezultate stiintifice

1. Studiul formatelor audio comerciale.

Formatul audio .wav este un fișier audio codat în format specific firmei Microsoft folosit pentru
stocarea datelor formei de undă ;
La formatul .wav ne intereseaza in mod special : frecventa de esantionare , numarul de canale si
bitrate-ul pentru playback; pentru telefonie de voce se foloseste un singur canal de transmisie
(mono) si o frecventa de esantionare de 8 kHz, pentru sunet de calitate CD se folosesc 2
canale(stereo) pe 16 biti fiecare canal si o frecventa de esantionare de 44.1 kHz, pentru calitate
DVD se foloseste o frecvanta de esantionare de 96-192 kHz si se transmite pe 2 canale (stereo).
Formatul .wav este stocat in formatul RIFF care este un format generic container care permite
stocarea datelor in bucati (chunk) etichetate , este utilizat in mod special pentru stocarea
multimedia cum ar fi audio si video.
Modul de stocare in formatul RIFF este urmatorul :

ChunkID
ChunkSize
Format
Subchunk1ID
Subchunk1Size
AudioFormat
NumChannels
SampleRate
ByteRate
BlockAlign
BitPerSample
Subchunk2ID
Subchunk2Size
Data

Fig.1. Modul de reprezentare al formatului RIFF


Offset Dimensiune Nume Descriere
12 4 Subchunk1ID Contine literele “fmt” 0x666d7420 big-endian
16 4 Subchunk1Size 16 pentru PCM ,dimensiunea restului Subchunk-ului
20 2 AudioFormat PCM=1(cuantizare liniara) daca este diferit de 1
avem o anumita compresie
22 2 NumChannels Mono=1;Stereo=2
24 4 SampleRate Frecventa de esantionare : 8000, 44100, se masoara
in Hz
28 4 ByteRate SampleRate* NumChannels *BitPerSample /8
32 2 BlockAlign NumChannels *BitPerSample/8, numarul de octeti
pentru un esantion incluzand toate canalele
34 2 BitPerSample 8 bits=8; 16 bits=16; reprezinta cati biti sunt pe
fiecare esantion.
36 4 Subchunk2ID Contine literele “data” 0x64617461 big-endian
40 4 Subchunk2Size NumSamples*NumChanels*BitPerSample/8,numaru
l de octeti de date.
44 x Data Datele
Figura 2. Reprezentarea datelor in formatul .wav

Observatii:
-Ordonarea implicita este little-endian, fisierele cu ordonare big-endian au
identificatorul RIFX.
-Esatioanele de 8 biti sunt memorate fara semn, cu valori 0->255, iar cele de 16 biti ca
intregi cu semn in complement fata de 2, cu valori -32768 -> 32767.
-Pot exista subchunk-uri aditionale in stream-ul de date Wave, caz in care exista
SubChunkID char[4], SubChunkSize unsigned long si datele.

Formatul audio .mp3


Toate fisierele .mp3 sunt divizate in mici fragmente numite “frames” , fiecare fragment
depoziteaza 1152 de esantioane audio care ajung pentru 26ms de redare.Asta inseamna ca rata de
redare a fragmentelor va fi in jurul a 38fps.

¿ 144∗bitrate
+ Padding [ bytes]
Samplefrequency

Fragmentele contin 5 parti:


a) Header
b) CRC
c) Side Information
d) Main data
e) Ancillary Data

Frame Header.
1. Sync(12 bits) Cuvantul de sincronizare scris pe 12 biti , toti cei 12 biti vor fi setati :
1111 1111 1111.

2. Id(1bit) Specifica versiunea MPEG.


3. Protection Bit (1bit) Daca bitul de protectie este setat , modul CRC va fi folosit.
4. Bitrate(4 bits) Acesti 4 biti spun decodorului cu ce bitrate sunt codate
fragmentele.Aceasta valuare va fi pentru toate fragmentele daca secventa este
codata folosind CBR.
5. Frequency(2 bits) Sunt 2 biti care ne spun frecventa de esantionare.
6. Padding bit (1 bit) O secventa codata cu un bitrate de 128Kbit/s si frecventa de
esantionare de 44100 Hz va realiza fragmente de 128 biti . Pentru a se potrivi
exact fragmentele trebuie sa aiba marimea de 418 biti . Acesta este bitul de
Padding.
7. Private bit (1 bit) Un bit pentru aplicatiile care au nevoie de deplasare.
8. Mode(2 bits) Specifica pe ce canal se face transmisia (mono sau stereo).
9. Mode Extension (2 bits) Acesti 2 biti sunt folositi pentru a specifica modul de
stereo folosit

Bits Intensity stereo MS stereo


00 OFF OFF
01 ON OFF
10 OFF ON
11 ON ON

Figura 3. Posibilitati configurare mod stereo

10. Copyright Bit (1 bit ) Daca bitul este setat asta inseamna ca este ilegal sa copiezi
continutul.
11. Home(original bit )(1 bit) Bitul original daca e setat indica ca fragmentul este
localizat intr-un original media.
12. Emphasis (2 bits)

CRC(0 bytes , 16 bytes)


Acest bloc va exista daca bitul de protectie din Header este activat.
Side information
Acest bloc contine toate informatiile pentru a decoda informatia din main.

Formatul .mp4 face o compresie mai buna decat .mp3 si se foloseste in general pentru redarea de
video.

2. Caracteristicile fundamentale necesare stocari/redari unui semnal audio

Caracteristicile fundamentale stocari si redari de semnal audio sunt: frecventa de esantionare ,


numarul de esantioane ,compresia care este folosita si bitrate-ul pentru redare .
Formatul .wave foloseste urmatoarele moduri de compresie:
-PCM
-ADPCM
-MPEG1 Layer 3
-Itunes compatibil cu M4A
PCM( pulse code modulation) Ne intereseaza in mod special Rezolutia PCM care este
caracterizata de : a) lungimea cuvantului(numarul de biti disponibili pentru stocarea unui
esantion)
b) rata de esantionare(este timpul negesar pentru a prelua esantioanele de la o
sursa analogica si a le transforma in semnale digitale)
Cand digitalizam un semnal analogic pentru a obtine o buna rezolutie trebuie sa crestem rata de
esantionare si numarul de biti pe esantion (ori una dintre ele ori ambele).

Figura 4. Rzolutie joasa.


Rata de esantionare si aliasing
Legate de teorema lui Nyquist: doua marimi importante: frecventa Nyquist si rata Nyquist.
Fiind data o rata deFigura 5. Rezolutie
esantionare, inalta. Nyquist = componenta de fecventa cea mai
frecventa
inalta care poate fi esantionata la acea rata fara aliasing. Pe baza teoremei lui Nyquist, frecenta
Nyquist este jumatate din rata de esantionare:
fnf = ½ fesant
Fiind data o frecventa de esantionat, rata Nyquist = rata cea mai mica de esantionare
care va permite reconstructia fidela a semnalului. De asemenea pe baza teoremei lui Nyquist
rezulta ca rata Nyquist este dublul frecventei celei mai inalte din semnalul esantionat:
fnr = 2 fmax
Consecinta importanta: daca un semnal audio este esantionat la o rata inferioara ratei
Nyquist, apare fenomenul de aliasing audio => la redare frecventele sunetului original vor fi
translatate in alte frecvente si deci nu se va mai auzi la fel cu sunetul original. Practic exista prea
putine puncte de esantionare, care prin interpolare sa furnizeze corect forma sinusoidala a undei
originale.
Cateva exemple de semnale audio esantionate la diferite frecvente:
Semnal de 637 Hz esantionat la 1490 Hz (rata Nyquist fiind 1274 Hz). Nu apare
fenomenul de aliasing, iar semnalul este refacut corect.
Figura 5. Semnal de 637 Hz esantionat la 1490 Hz

Semnal de 637 Hz esantionat la 1000 Hz, furnizeaza o unda aliasing de 363 Hz.
Figura 6. Semnal de 637 Hz esantionat la 1000 Hz

Semnal de 637 Hz esantionat la 500 Hz, furnizeaza o frecventa aliasing de 137 Hz

Figura 7. Semnal de 637 Hz esantionat la 500 Hz


Semnal de 637 Hz esantionat la 400 Hz, furnizeaza o frecventa aliasing de 163 Hz.

Figura 8. Semnal de 637 Hz esantionat la 400 Hz

Se poate stabili un algoritm pentru calcularea frecvetei de aliasing.


algoritm get_frequency
/*Input: frecventa undei audio analogice (un singur ton) de esantionat, f _act
si frecventa de esantionare, f_samp
Output: frecventa undei audio digitizate, f_obs*/
{
f_ nf = ½ f _ samp
/ * f _ nf este frecventa Nyquist*/
/*CASE 1*/
if ( f _ act ≤ f _ nf ) then
f _ obs = f _ act
/CASE 2*/
else
if ( f _ nf < f _ act ≤ f _ samp ) then
f _ obs = f _ samp − f _ act
else {
INT = f _ act / f _ nf /* impartire intreaga */
REM = f_act mod f _ nf
/*CASE 3*/
if (INT par) then
f _obs= REM
/*CASE 4*/
else if (INT impar) then
f _ obs = f _ nf − REM
}
}
Schema de calcul:

Figura 9. Schema de calcul frecveta de aliasing

Exemple de calcule:
Case 2:
f _ act = 637 Hz ; f _ samp = 1000 Hz ; => f _ nf = 500 Hz
f _ nf < f _ act ≤ f _ samp
=> f _ obs = f _ samp − f _ act = 363Hz
Case 3:
f _ act = 637 Hz ; f _ samp = 500 Hz ; => f _ nf = 250 Hz
f _ act > f _ samp
INT = f _ act / f _ nf = 637 / 250 = 2
(impartire intreaga)
INT par
REM = f _ act mod f _ nf = 137
(preia restul impartirii)
=> f _ obs = REM = 137 Hz
Case 4:
f _ act = 637 Hz ; f _ samp = 400 Hz ; => f _ nf = 200 Hz
f _ act > f _ samp
INT = f _ act / f _ nf = 637 / 200 = 3
INT impar
REM = f _ act mod f _ nf = 37
=> f _ obs = f _ nf − REM = 200 − 37 = 163Hz
O reprezentare intuitiva a modului in care functioneaza algoritmul este reprezentata in figura
urmatoare, unde f_samp = 1490 Hz este constanta, f_act este intrare (pe abscisa) si f_obs este
iesire (pe ordonata).

Figura 10. Modul in care functioneaza algoritmul.

Cuantizarea si eroarea de cuantizare


Decibeli. Interval dinamic.
Amplitudinea sunetului: determinata la cuantizare si indica intensitatea acestuia.
Fenomenul fizic corespunzator este modificarea presiunii aerului prin care se propaga sunetul.
Presiunea: masurata in pascali (Pa) sau newton/m2 (N/m2). Presiunea atmosferica normala la
nivelul marii = aprox. 105 Pa. Pragul de auzire a sunetului (la 1000 Hz) = variatia fata de
presiunea atosferica cu 2•10-5 Pa. Pentru a masura schimbarile de presiune a aerului se poate
utiliza decibelul: nu este o unitate absoluta de masura, trebuie sa se precizezez un punct de
referinta pentru marimea masurata (decibelul se poate utiliza si in alte domenii, nu numai
presiune). Pentru sunet punctul de referinta = presiunea aerului pentru pragul de auzire => se
numeste dB_SPL (decibels-sound-pressure-level).
Definitie. Fie E amplitudinea presiunii sunetului ce trebuie masurata si E0 nivelul
presiunii sunetului la pragul de auzire. Atunci dB_SPL se defineste ca

E
dB SPL=20 log 10
( )
E0

(este esential ca la o marime in dB sa se specifice nivelul punctului de referinta).


Exemplu. Se doreste sa se calculezez in dB nivelul pragului de durere (30 Pa). Se inlocuieste in
formula de mai sus:

dB SPL=20 log 10 (300 . 00002


Pa
Pa )
=20 log 10 (1500000 )=20⋅6 .17≈123

Deci pragul de durere este aprox. 123 dB.


Se poate utiliza dB pentru a specifica intensitatea sunetului, utilizand dB_SIL (decibels-
sound-intensity-level), definit prin relatia:

I
dB SIL=10 log 10
( )
I0

unde I este intensitatea sunetului de masurat si I0 este intensitatea corespunzatoare pragului de


auzire (10-12 W/m2).
Rata de esantionare insuficienta  aliasing.
Utilizarea unui numar prea mic de biti pentru cuantificare  distorsiuni(zgomot de cuantificare).
Definitia pentru SQNR (signal-to-quantization-noise-ratio):

SQNR=20 log10 ( 2n )

Acest concept este legat de cel de domeniu dinamic („dynamic range”), definit ca raportul dintre
cea mai mica valoare nenula (1) si cea mai mare (2n). Rezulta:

2n
d=20 log10 ( )
1
=20 n log10(2 )≈6 n
Exemplu: un fisier audio digital pe 16 biti are un domeniu dinamic de 96 dB. Domeniul dinamic
specifica gama de amplitudini ale sunetului digitizat, diferenta relativa dintre sunetul cel mai
puternic si cel mai slab (nu specifica amplitudinile absolute).

O alta definitie pentru decibeli este reprezentata de dBFS (“decibels-full-scale”). Se considera ca


punct de referinta amplitudinea audio maxima generata de sistem (acelasi pentru toate fisierele
audio). Se atribuie maximului valoarea 0. O unda audio are axa orizontala corespunzatoare - ∞
dBFS, iar deasupra si dedesubtul acesteia valorile progreseaza pana la maxim 0 dBFS.

Figura 11. dBFS

Definitia dBFS se bazeaza pe masurarea valorilor de amplitudine relative la valoarea maxima


posibila. Pentru esantioane de n biti:
Definitie. Fie x un esantion audio de n biti in plaja -2n-1 ≤ x ≤ 2n-1
-1. Valoarea lui x ca dBFS este:
|x|
dBFS=20 log 10
(2 )
n−1

Facand cateva calcule pentru, de exemplu, n=16 se obtin maparile: -32768 -> 0; 10000 -> -10.3;
1 -> -90.3; 0.5 -> -96.3298. Astfel, consistent cu domeniul dinamic, orice amplitudine dintr-un
fisier pe 16 biti care este cu mai mult decat 96 dB sub amplitudinea maxima posibila este
considerata liniste.
Cuantizare neliniara
Codificarea neliniara sau „companding” (schema de codificare necesita compresie si
apoi expandare) a rezultat din necesitatea de compresie a semnalelor telefonice pe linii de banda
joasa. Etape principale:
-semnalul digital pe n biti este recuantizat pe m biti (m<n) printr-o metoda de
cuantizare neliniara;
-se transmite semnalul;
-expandeaza semnalul la n biti la receptie (anumite informatii sunt pierdute, cuantizare
cu pierderi) => micsoreaza eroarea pentru semnale de amplitudine mica, in comparatie cu
cuantizarea liniara.
Baza codificarii neliniare: sistemul auditiv uman percepe mici diferente intre sunete
slabe, dar pe masura ce nivelul creste scade abilitatea de percepere a diferentelor => mai multe
niveluri de cuantizare pentru nivelurile mici si mai putine pentru niveluri mari => metode de
codificare neliniara μ-law si A-law pentru transmisiile telefonice.
Schemele de codificare neliniara: utilizate si standardizate de CCITT („Comité
Consulatif Internationale de Télégraphique et Téléphonique”). In USA si Japonia se utilizeaza μ-
law (se citeste „mu-law”), cu rata de esantionare de 8000 Hz, pe 8 biti, dar atingand 12 biti de
domeniu dinamic. In restul lumii se utilizeaza A-law.
Metoda de codificare μ-law este definita de functia:

ln (1+μ|x|) ln( 1+255|x|)


m( x )=sign(x )
( ln (1+μ ) )=sign(x )( 5 . 5452 )
pentru μ=255, x valoarea normalizata a esantionului -1≤x<1 si sign(x)=-1 daca x negativ si
sign(x)=1 altfel.
Graficul functie μ-law este:

Figura 12. Graficul functiei μ-law


Exemplu. Aplicarea practica a metodei de codificare: esantioane initiale pe 16 biti, in plaja de
-32768 -> 32767, iar transmisia semnalului se face pe 8 biti. La receptie se trece din nou pe 16
biti. Etape:
-se normalizeaza valorile de intrare, prin impartire la 32768;
-se aplica functia m(x) de codificare neliniara (cea din grafic);
-calculeaza └128m(x)┘, pentru scalare la 8 biti.
Astfel: val.init 16 (pe 16 biti) este scalata 16/32768 si se aplica m(x) => m(16/32768)≈0.02, apoi
se scaleaza la 8 biti └128∙0.02)┘=2. Sau, o alta valoare initiala 30037 => 30037/32768
=>m(30037/32768)=0.9844 => └128∙0.9844)┘=125.
Valorile pozitive codificate neliniar, in comparatie cu tehnica de codificare liniara (valorile
negative se codifica la fel):

Figura 13. Codificare liniara . Codificare nelineara

La receptie valorile pe 8 biti sunt decomprimate la 16 biti utilizand functia inversa:

( μ+1)|x|−1) 256|x|−1)
d ( x)=sign( x )( μ )
=sign( x )
255( )
pentru μ=255, x valoarea normalizata a esantionului codificat μ-law -1≤x<1 si sign(x)=-1 daca x
negativ si sign(x)=1 altfel.
Exemplu. Se considera valorile din calculul precedent, unde 16 -> 2 si 30037 -> 125.
Astfel: d(2/128)=0.00035, scalare la 16 biti ┌32768∙0.00035┐=11. Cealalta valoare :
d(125/128)=0.8776, scalare la 16 biti ┌32768∙0.8776┐=28758.
In concluzie valoarea 16 afost receptionata 11, cu eroare de 31%, iar valoarea 30037 a
fost receptionata 28758 cu eroare de 4%. Chiar daca erorile la valori mici sunt inca mari, totusi
acestea sunt mult mai acceptabile decat daca s-ar fi utilizat o codificare liniara. In tabela
urmatoare sunt prezentate erorile rezultate la cuantizarea neliniara in comparatie cu cea liniara
pentru diferite valori de amplitudine:

Figura 14. Codificare liniara . Codificare nelineara

3. Studiul si analiza semnalelor audio


Domeniile timp si frecventa
Un semnal audio poate fi reprezentat atat in domeniul timp, cat si in domeniul
frecventa.
In domeniul timp: variatia amplitudinii semnalului in timp (pe axa orizontala este
timpul, iar pe axa verticala amplitudinea seamnalului) => cea mai intuitiva solutie de
reprezentare a unui semnal unidimensional.
In domeniul frecventa: componentele de frecventa ale semnalului (frecventa
fundamentala si multipli intregi ai acesteia, frecventele armonice). Exista doua solutii de
baza:
1) In reprezentarea analizei de frecventa (analiza de spectru) pe axa orizontala se
plaseaza valorile de frecventa, iar pe axa verticala amplitudinile componentelor de
frecventele respective. Se ia in considerare un anumit interval de timp pentru care se face
analiza de frecventa. Se mai utilizeaza si termenul de energie (reprezentat de aria de sub
graficul frecventei).
2) In reprezentarea spectrala (spectrul) pe axa orizontala se plaseaza timpul , pe
cea verticala frecventele, iar amplitudinile diferitelor componente spectrale se reprezinta
prin culori diferite (de exemplu de la albastru la rosu si chiar pana la alb, pe masura ce
amplitudinile cresc).
Seria Fourier
Seria Fourier este o reprezentare a unei functii periodice sub forma unei sume
infinite de sinusoide:

unde ω=2πf, f fiind frecventa fundamentala a semnalului (a nu se confunda cu f(t)). Relatia


se mai poate scrie si sub forma:

unde a0 este componenta continua (DC – „direct component”), data de relatia:

cu T=1/f. fiecare componenta alternativa (AC – „alternating component”) este o sinusoida


pura.
Coeficientii acestor componente sunt date de relatiile:

pentru -∞ < n < ∞.


O alta forma echivalenta de reprezentare a seriei Fourier se bazeaza pe relatia lui
Euler:

unde e ≈ 2.71828...

iar

Transformarea Fourier discreta (DFT)


Pentru un semnal audio digitizat fk reprezentat prin N esantioane, se poate defini
transformarea Fourier inversa:
Deoarece ω=2πf, rezulta ca frecventa fundamentala f este 1/N. Cunoscand amplitudinea
fiecarei componente an si bn pentru 0 ≤ n ≤ N-1 se poate reconstitui semnalul initial.
Componenta continua este definita de:

(amplitudinea medie), iar componentele AC sunt date de:


N−1
1
an =
N
∑ f k cos ( 2 πNnk )
k=0
N−1 cu 1 ≤ n ≤ N-1.
1 2 π nk
Transformarea
(
N k=0 sin si cos
coeficientii
)
bn = ∑ f k sin Fourier directa prelucreaza un vector de esantioane audio si furnizeaza
N reprezentand datele din domeniul frecventa, pe baza relatiei:

cu 0 ≤ n ≤ N-1.
Se poate defini in continuare magnitudinea componentei n de frecventa:

pentru 0 ≤ n ≤ N-1 si faza:

Pe baza acestor marimi se poate reprezenta DFT inversa:

Faza este importanta in perceptia sunetului!


Legea lui Ohm (1800): faza nu are niciun efect in modul de perceptie a sunetului
=> un sunet sinusoidal este identic perceput de urechea umana indiferent de faza initiala cu
care este transmis.
Dar daca se transmit simultan doua sunete de aceeasi frecventa, dar de faze
diferite, sunetul perceput va depinde de diferenta de faza.
Exemplu: in auditia stereo, doua difuzoare defazate pot genera un sunet
suparator.
In analiza de imagini, faza este chiar si mai importanta decat in analiza sunetelor,
componenta de faza dominand perceptia unei imagini.

Transformarea Fourie rapida (FFT)


Transformarea Fourier rapida, FFT – Fast Fourier Transform (1965 Cooley si
Tukey) reduce complexitatea de calcul de la O(N2)  O(Nlog2N).
Castigul de timp folosind FFT fata de DFT este foarte important!
Un fisier de sunet calitate CD stereo: 44100 esantioane / secunda => N foarte mare!
Exemple:
N=256 => N2/(Nlog2N)= N/(log2N)=256/( log2256)=32
N=1024 => N2/(Nlog2N)= N/(log2N)=1024/( log21024)=102
N=65536 => N2/(Nlog2N)= N/(log2N)=65536( log265536)=4096
In anumite programe de prelucrare audio este necesar sa se aleaga dimensiunea ferestrei
FFT.
Se considera urmatoarea situatie:
-semnalul audio f=440 Hz;
-achizitia = 8000 esantioane/s;
-fereastra FFT =1024 esantioane => 56.32 cicluri.
Sfarsitul unei ferestre se va situa in interiorul unei perioade a semnalului, iar la punerea
cap-la-cap a doua perioade succesive apare o discontinuitate => unda care se presupune ca
este analizata de FFT nu reprezinta exact frecventa audio reala. FFT interpreteaza aceasta
discontinuitate drept componente de frecventa aditionale.
Fenomenul se numeste scurgere spectrala („spectral leakage”). Pe masura ce FFT
parcurge intreaga forma de unda, de fiecare data cand se face calculul pe o fereastra de
1024 de esantioane, se detecteaza frecvente false (apar in reprezentarea grafica).

Figura 15. Discontinuitate generata de o fereastra FFT care nu acopera un numar intreg de cicluri.

De exemplu, pentru un semnal de 512 Hz, esantionat la rata de 1024 Hz si cu fereastra FFT
de 1024 de esantioane, acoperind exact doua cicluri, nu apare fenomenul de scurgere
spectrala.
Fenomenul de scurgere spectrala: controlat intr-un program de prelucrare audio prin
selectarea unei functii de ferestra („windowing function”). Cele mai utilizate: „triangular”,
„Hanning”, „Hamming” si „Blackman”.
Deoarece discontinuitatile de faza apar la inceputul si sfarsitul unei ferestre, functia
reduce amplitudinea semnalului in aceste doua zone.
=> frecventele false vor fi mai mici in amplitudine!
Aplicarea functiei fereastra: inmultirea semnalului cu functia fereastra.
Cateva functii fereastra:

Figura 16. Functii fereastra.

Analiza statistica
Analiza statistica a unui fisier audio: prelucrarea valorilor esantioanelor in
domeniul timp  valorile minima si maxima, amplitudinea de varf din fisier, offset-ul DC,
amplitudinea radacina patratica medie (RMS – „root-mean-square”), histograma.
Chiar daca offset-ul continuu (DC) nu este perceput la redarea fisierului audio,
acesta poate influenta anumite etape de prelucrare, in particular prelucrarile bazate pe
trecerile prin zero. Un program de prelucrare audio contine o facilitate de ajustare a offset-
ului DC.
Amplitudinea radacina patratica medie (referita ca putere RMS sau nivel RMS) este
o masura a amplitudinii medii a sunetului pe o perioada data (toata durata sau o parte). Se
calculeaza astfel:

unde xi este amplitudinea esantionului i si N este numarul de esantioane.


Se poate vedea ecuatia RMS sub forma:
max
r=
√2
unde max este valoarea esantionului maxim. Aceasta rezulta din versiunea continua a
ecuatiei de mai sus:


T2
1
r= ∫ (f ( x ))2 dx
T 2 −T 2 T 1
care aplicata unui sinus pentru k cicluri complete furnizeaza:


2 kπ
1
r=
2 kπ
∫ ( max⋅sin( x ))2 dx= max
√2
0

Puterea RMS minima sau maxima se defineste doar in situatia in care a fost setata
dimensiunea unei ferestre de analiza. De exemplu pentru o fereastra de 50 ms, puterea
RMS minima este amplitudinea RMS minima pentru toate ferestrele de 50 ms din forma de
unda. Amplitudinea RMS medie este media tuturor ferestrelor de dimensiunea specificata.
Histograma audio indica numarul de esantioane de fiecare amplitudine (valoare). Un
exemplu de histograma:

Exemple de programe de prelucrare a fisierelor audio de esantioane: Audition, Logic,


Audacity, Sound Forge si Goldwave.

4.Aplicatia GoldWave

Figura 17. Aplicatia Goldwave


5.Audio scrambler

Oameni vorbesc intr-o anumita banda de frecventa care este diferita pentru fiecare
categorie: barbati (85Hz-155Hz), femei (165Hz-250Hz) ,copii(440 Hz) si bebebelusi(500
Hz).Gama medie a voci este intre 80 Hz-12Khz.

Definitie: Un scrambler este un dispozitiv care transpune sau inversează semnalele astfel incat
mesajul de la transmitator sa fie codat si receptorul sa nu le poata descifra fara un dispozitiv de
decriptare corespunzator.
Scrambler-ul audio face codificarea in domeniul timp spre deosebire de criptarea digitala
care se face in impulsuri.

Scrambling-ul in domeniul timp consta in inregistrarea unui semnal audio analogic acesta
se taie in mici fragmente , aceste cadre pot fi transmise intr-o ordine diferita in timp in
functie de un cod secret aceasta tehnica generand un mesaj codat.Cu cat cadrele au
esantioane mai mici cu atat codarea e mai buna.

Audio Frequency
Buffering Scrambling
Stream Separation

Frequency
Reassambling Encrypted Audio Stream
reassambling

Figura 18.Scrambling audio

Cele mai importante blocuri sunt in mijloc unde frecventele semnalului de voce sunt
separate prin filtre micsorand esantioanele apoi sunt puse in sub-benzi care ulterior sunt
amestecate si reasamblate marind esantioanele si filtrate din nou.

Generarea de sub-benzi de frecventa pot fi usor realizabile cu ajutorul filtrelor de semnal


trece sus banda si trece jos banda.
Filtrul trece jos :

Gz

Figura 19. Filtrul trece jos


Procesul de preluare se face cu ajutorul blocului ↓2 care ia intodeauna cel de al
doilea esantion din semnal acest lucru nu indica nici o problema in procesarea semnalului
digital.
Scrambler (Amestecare) cu rezultatele din sub benzile generate reusim sa avem N
esantioane care pot fi amestecate .Pentru a obtine codul amestecat este necesar sa generam
o matrice de NxN care caracterizeaza directiile de codare. Liniile in matrice reprezinta
calea pentru generarea sub-benzilor iar coloanele reprezinta calea spre recombinarea sub-
benzilor , care arata felul in care sunt ele amestecate.
Teoretic sunt X ¿ N N -1 posibilitati de amestecare.

Hz ↓2 ↑2 Hz
Hz ↓2 ∑
GZ ↓2 ↑2 Gz ↑2
Hz
Buffreing Scrambli
ng
Gz ↓2 Hz ↑2 Hz
↓2
∑ ↑2 Gz

Gz GZ
↓2 ↑2

Figura 20. Scrambling audio schema bloc

∑ Reassambling

6. Audio AES encrypt

Cifrul bloc AES (Advanced Encryption Standard) este noul standard de cifrare a
datelor care inlocuieste standardul DES. Standardul AES este un caz particular al
algoritmului de cifrare RIJNDAEL (proiectat de Joan Daemen si Vincent Rijmen)
ın sensul ca are setate lungimea cheii de cifrare la 128 biti iar dimensiunea
blocului de date care se cifreaza la 128, 192 sau 256 biti.

.Ultimi 10 finalisti care au participat la selectia standardului


 Este un cifru bloc simetric proiectat pe principiul substitution-permutation network
(SPN);
 (cifrurile bloc pot fi proiectate cu ajutorul a trei mari principii:
1. Substitution-permutation network SPN , adică fiecare rundă lucrează cu întregul
bloc de date;
2. Feistel network , fiecare rundă operează pe o submulţime a blocului de date;
funcţia de rundă se aplică doar unei submulţimi într-o rundă;
3. Un alt tip de cifru bloc este Lay-Massey scheme – ex: IDEA)
 Rapid atât software cât şi hardware;
 Dimensiunea blocului de date este de 128 biţi, iar a cheii poate fi 128, 192, 256 biţi;
 Diferenţa dintre Rijndael şi AES o constituie intervalul în care ia valori dimensiunea
blocului de date şi a cheii. În cazul Rijndael lungimea mesajului clar cât şi a cheii pot fi
multiplu de 32, nu mai mică de 128 biţi şi maxim de 256 biţi, iar pentru AES lungimea
blocului de text clar este fixă, adică 128 biţi iar lungimea cheii poate fi 128, 192 sau 256
biţi.
 AES operează pe o matrice de octeţi de dimensiune 4x4; (dacă blocul de date este mai
mare numărul de coloane va creşte);
 Cele mai multe calcule sunt făcute într-un câmp finit special, numit câmp Galois şi notat
GF(28);
 Cifrarea blocului se face după un anumit număr de runde; acest număr depinde de
dimensiunea cheii; fiecare rundă conţine 4 transformări mai puţin ultima;

Elemente teoretice folosite in implementarea algoritmului AES


Operaţii într-un câmp Galois
Câmpul Galois pentru AES este o construcţie matematică specială unde adunarea, scăderea,
multiplicarea şi împarţirea sunt redefinite şi numărul de întregi din corp este finit.
Mai detaliat, câmpul Galois lucrează pe numere de opt biţi (numere de la 0 la 255). Toate
operaţiile matematice definite pe acest corp au ca rezultat un număr pe opt biţi (un octet). AES
lucrează la nivel de octet, o secvenţă de opt biţi tratata ca o singură entitate, de exemplu:
{b7, b6, b5, b4, b3, b2, b1, b0}.
Aceşti octeţi sunt reprezentaţi ca elemente ale unui câmp finit cu ajutorul unei reprezentări
polinomiale:
7
∑ bi x
i

b7x7 + b6x6 + b5x5 + b4x4 + b3x3 + b2x2 +b1x1 + b0x0 = i=0 .


De exemplu: octetul {01100011} poate fi elementul x6 + x5 + x + 1.
De asemenea putem scrie un octet ca două caractere hexazecimale (un caracter hexazecimal fiind
scris ca un grup de patru biţi).
De exemplu: {01100011} poate fi scris ca {63} .

Adunarea într-un câmp finit:


polinomial: (x6 + x4 + x + 1) + (x7 + x6 + x3 + x) = x7 + x4 + x3 + 1
binar: {01010011} ⊕ {11001010} = {10011001}
Hexa: {53} + {CA} = {99}

Inmultirea:
In reprezentarea polinomială, înmulţirea în GF(28) ,(notată cu •) este acelaşi lucru cu înmulţirea
polinoamelor modulo un polinom ireductibil de grad 8. Un polinom este ireductibil dacă şi
numai dacă divizorii săi sunt 1 şi el însuşi. Pentru algoritmul AES acest polinom ireductibil este:
m(x) = x8 + x4 + x3 + x + 1 sau in notatie hexazecimala {01}{1b}.
De exemplu:
{57}•{83}=
(x6 + x4 + x2 + x + 1)(x7 + x + 1) = x13 + x11 + x9 + x8 + x6 + x5 + x4 + x3 + 1
x13 + x11 + x9 + x8 + x6 + x5 + x4 + x3 + 1 modulo (x8 + x4 + x3 + x + 1) = x7 + x6 + 1
Operaţia modulo m(x) ne asigura ca rezultatul va fi un polinom binar cu gradul mai mic
ca 8, şi acesta poate fi reprezentat pe un octet. Spre deosebire de adunare , înmulţirea nu este o
operaţie simplă la nivel de octet.
Înmulţirea cum este definită mai sus este asociativă si elementul {01} este element neutru
(identitate). Pentru orice polinom binar b(x) diferit de 0 si cu gradul mai mic ca 8, inversul
multiplicativ, notat b-1(x), poate fi găsit astfel: cu algoritmul lui Euclid extins se calculează
polinoamele a(x) si c(x) astfel:
b(x)a(x) + m(x)c(x) = c.m.m.d.c.(b(x),m(x)) = 1 (când m(x) este ireductibil).
Atunci a(x) • b(x) mod m(x) = 1 ceea ce înseamnă b-1(x) = a(x) mod m(x).
Mai mult, pentru orice a(x), b(x) si c(x) din câmpul finit, rezultă că:
a(x) • (b(x) + c(x)) = a(x) • b(x) + a(x) • c(x).
Rezultă ca mulţimea celor 256 de octeţi posibili, cu adunarea (operatia XOR) şi înmulţirea
definite mai sus au structură de câmp finit GF(28).

Înmultirea cu x:
Înmulţind polinomul binar b7x7 + b6x6 + b5x5 + b4x4 + b3x3 + b2x2 +b1x1 + b0x0 cu x rezultă: b7x8
+ b6x7 + b5x6 + b4x5 + b3x4 + b2x3 +b1x2 + b0x .
Rezultatul x • b(x) se obţine reducând rezultatul de mai sus modulo m(x). Dacă b7 = 0, rezultatul
este în formă deja redusă. Dacă b7 = 1, se scade (XOR-ing) polinomul m(x). Apoi înmulţirea cu x
(adică cu {00000010} sau {02}) poate fi implementată la nivel de octet ca deplasare la stanga
(left shift) şi apoi XOR cu {1b}
Etapele procesului de criptare:
1. Expandarea cheii ce are ca rezultat obţinerea cheilor de rundă; (se face cu ajutorul unui
algoritm din cheia principală)
2. Runda iniţiala în care se execută funcţia:
- AddRoundKey
3. Runde intermediare ce conţin 4 transformări fiecare:
- SubBytes: transformare neliniară;
- ShiftRows: o transpoziţie a liniilor:
- MixColumns: o mixare de operaţii pe coloana;
- AddRoundKey;
4. Ultima rundă: conţine transformările:
- SubBytes;
- ShiftRows;
- AddRoundKey.

Starea intermediară: această stare intermediară este reprezentată de un tablou (matrice) a cărui
elemente sunt reprezentate de octeţi. Această matrice are 4 linii şi Nb coloane; Nb este egal cu
lungimea blocului de date împărţit la 32 de biţi. In matricea stării intermediare notate cu s,
fiecare octet are doi indici, r numărul liniei în intervalul 0 ≤ r < 4 si c numărul coloanei în
intervalul 0 ≤ c < Nb. Deci elementele matricei de stare vor fi notate cu sr,c sau s[r,c].
octeţi de intrare starea intermediară octeţi de iesire
Atât la criptare cât şi la decriptare matricea de intrare trece în matricea de stare după formula:
s[r,c] = in[r + 4c] pentru 0 ≤ c < Nb; şi la sfârşitul criptării sau decriptării matricea de stare trece
în matricea de ieşire astfel: out[ r + 4c] = s[r,c] pentru 0 ≤ r < 4 si 0 ≤ c < Nb.
Toţi octeţi din algoritmul AES sunt interpretaţi ca elemente ale unui câmp finit. Aceste elemente
pot fi adunate, multiplicate dar aceste operaţii sunt diferite de cele obişnuite cu numere întregi.

Descrierea unei runde:

Transformarea SubBytes(stare) este o substituţie neliniară de octeţi care operează independent


pe fiecare octet cu ajutorul unui S-box. Acest S-box este construit prin compunerea a două
transformări:

1. Calcularea inversului multiplicativ pentru fiecare octet nenul în corpul finit GF(28),
elementul {0,0} rămânând neschimbat;

2. Rezultatul este modificat printr-o transformare afina peste Z2:Această transformare scrisă
în forma matriceală arată astfel:
de exemplu dacă s1,1={53}-> S-box->s’1,1={ed} elementul aflat la intersecţia liniei 5 cu coloana 3
S- boxul este o funcţie neliniară, bijectivă (singura parte neliniară a cifrului).
S- boxul din AES foloseşte următoarea transformare afină:
y = Ax ⊕ C mod m(x) unde: m(x) = x8 + x4 + x3 + x + 1

A = [f8, 7c, 3e, 1f, 8f, c7, e1, f1]T, matrice 8x8 în GF(2)

C = [63]T, matrice coloană în GF(2).

Pentru a fi generatoare pentru S-box matricea A trebuie să fie nesingulară. Putem genera
aproximativ 263 astfel de matrici nesingulare cu fiecare dintre polinoamele ireductibile.
Polinoamele rezultate în matricile nesingulare sunt [01, 02, 04, 08, 10, 20, 40, 80], marginea
inferioară şi [fe, 7f, bf, df, ef, f7, fb, fd], margine superioară.
Pentru a satisface efectul de avalanşă înseamnă ca modificarea unui singur bit la intrare
să implice modificarea a cel puţin 50% din biţii de ieşire. Pentru a satisface Strict Criterion
Avalanche este echivalent a spune că dacă modificăm un bit la intrare se vor altera exact 50% din
biţii de ieşire.
Criterii în proiectarea S-boxului:
1. Neliniaritate - Corelaţia intrări-ieşiri să fie cât mai mică posibil
Complexitatea algebrică.
Pentru transformarea tuturor octeţilor se foloseşte un singur S-box. Cu siguranţă asta nu este o
necessitate, transformarea SubBytes putînd fi cu uşurinţă definită cu S-boxuri diferite pentru
fiecare octet
Inversa transformării se obţine aplicând fiecărui octet transformarea afină inversă, după
care se ia inversul multiplicativ din GF(28) (dacă octetul nu este nul).

Transformarea ShiftRows (stare) modifică octeţii ultimilor 3 linii permutându-i ciclic cu un


număr diferit de octeţi. Prima linie rămâne nemodificată .
Metoda transpoziţiei asigură, în cadrul sistemelor criptografice, realizarea difuziei:
împrăştierea proprietăţilor statistice ale textului clar în textul cifrat.

Observăm că se modifică doar poziţia octeţilor nu şi valoarea lor.


Inversa transformării ShiftRow constă în permutarea ciclică spre stânga cu Nb -Ci octeţi pentru
linia i (1 < i < 3); în acest fel, fiecare octet aflat pe poziţia j în linia i se deplasează pe poziţia j +
Nb - Ci (mod Nb).
Transformarea MixColumns(stare)
Această transformare modifică coloana matricei de stare, transformand fiecare coloana intr-un
polinom cu patru termeni peste GF(28) .
Criterii de proiectare:
1. Dimensiunea. Transformarea operează pe coloane de patru octeţi.
2. Liniaritate. Este de preferat liniară peste GF(2).
3. Difuzia. Trebuie să aibă putere de difuzie.
4. Performanţe pe procesoare de 8 biţi.
Coloanele matricei de stare sunt considerate polinoame peste GF(28) şi sunt înmulţite modulo x4
+1 cu un polinom fixat c(x), unde:
c(x) = 03x3 + 01x2 + 01x + 02.
Criteriul de performanţă poate fi atins dacă coeficienţii au valori simple. Înmulţirile cu 00, 01 nu
implică procesare.
Bazat pe înmulţirea polinoamelor în GF(28). Această înmulţire se face modulo polinomul
generator al corpului GF(28) care este:
m(x) = x8 + x4 + x3 + x + 1.
Operaţia inversă este similară. Fiecare coloană este transformată prin înmulţire cu
polinomul invers lui c(X) modulo X4 + 1; acesta este:
d(X) = 0BX3 +0DX2 + 09X + 0E
AddRoundKey(Stare, Cheie): Această transformare constă în aplicarea unui XOR între starea
curentă şi cheia de rundă. Cheia de rundă are lungimea Nb şi este dedusă din cheia de criptare pe
baza unui procedeu pe care îl descriem mai jos.

2.5. Generarea cheilor de rundă


Criteriile ce au stat la baza algoritmului de extindere al cheii au fost:
1. Eficienţa
a. Memorie de lucru. Posibilitatea de a executa expandarea cheii folosind o mică
parte a memoriei de lucru.
b. Performanţă.
2. Eliminarea simetriilor.
3. Difuzie
4. Neliniaritate.
Cheile de rundă se obţin din cheia de criptare printr-o prelucrare separată, formată din două
componente: extinderea cheii şi alegerea cheii de rundă.
Principiile de bază ale prelucrării sunt:
• Numărul total al biţilor din toate cheile de rundă este Nb(Nr + 1).
• Cheia de criptare este extinsă într-o Cheie Expandată.
• Cheia de rundă se obţine luând primii Nb octeţi din Cheia Expandată, care nu au
fost folosiţi pentru alte chei.

Fiecare coloana este vazuta ca un cuvant adica 32 biti.


w0, w1, w2, w3 reprezinta cheia initiala;
Cum se obtin cuvintele in pozitiile multiplu de 4 w4, w8, w12, … ,w40:
a) Se aplică RotWord() si SubWord() cuvantului anterior;
b) Se adună wi-4 cu rezultatul de la punctual a) si cu o constantă de rundă Rcon[i]

2b ⊕ 8a ⊕ 01 = a0

00101011 ⊕ 10001010 ⊕ 00000001 = 10100000

Funcţia SubWord() este o funcţie care are ca intrare patru octeţi. Fiecărui octet i se aplică un S-
box obţinându-se astfel un octet nou.
Funcţia RotWord() are ca parametru de intrare un cuvânt [a0,a1,a2,a3] asupra căruia se execută
o permutare ciclică şi resulta [a1,a2,a3,a0].
Rcon[i], conţine valorile date de [xi-1,{00},{00},{00}] cu xi-1 puteri ale lui x (x este notat ca
{02}) în câmpul GF(28). (reţineţi că i începe cu valoarea 1 nu 0)
Este important de reţinut că rutina de expandare a cheii pentru cifrul cu cheie de 256 biţi
(Nk=8) este puţin diferit de cel cu cheie de 128 şi 192 biţi. Dacă Nk=8 şi i-4 este multiplu de Nk,
atunci SubWord() este aplicat lui w[i-1] mai întâi de XOR.

1. Decriptarea se face prin inversarea transformărilor de mai sus.

7. Aplicatie audio scrambling

8. AES audio encryption c++

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

/*
* MCrypt API available online:
* http://linux.die.net/man/3/mcrypt
*/
#include <mcrypt.h>

#include <math.h>
#include <stdint.h>
#include <stdlib.h>

int encrypt(
void* buffer,
int buffer_len, /* Because the plaintext could include null bytes*/
char* IV,
char* key,
int key_len
){
MCRYPT td = mcrypt_module_open("rijndael-128", NULL, "cbc", NULL);
int blocksize = mcrypt_enc_get_block_size(td);
if( buffer_len % blocksize != 0 ){return 1;}

mcrypt_generic_init(td, key, key_len, IV);


mcrypt_generic(td, buffer, buffer_len);
mcrypt_generic_deinit (td);
mcrypt_module_close(td);
return 0;
}

int decrypt(
void* buffer,
int buffer_len,
char* IV,
char* key,
int key_len
){
MCRYPT td = mcrypt_module_open("rijndael-128", NULL, "cbc", NULL);
int blocksize = mcrypt_enc_get_block_size(td);
if( buffer_len % blocksize != 0 ){return 1;}

mcrypt_generic_init(td, key, key_len, IV);


mdecrypt_generic(td, buffer, buffer_len);
mcrypt_generic_deinit (td);
mcrypt_module_close(td);

return 0;
}

void display(char* ciphertext, int len){


int v;
for (v=0; v<len; v++){
printf("%d ", ciphertext[v]);
}
printf("\n");
}

int main()
{
MCRYPT td, td2;
char * plaintext = "test text 123";
char* IV = "AAAAAAAAAAAAAAAA";
char *key = "0123456789abcdef";
int keysize = 16; /* 128 bits */
char* buffer;
int buffer_len = 16;

buffer = calloc(1, buffer_len);


strncpy(buffer, plaintext, buffer_len);

printf("==C==\n");
printf("plain: %s\n", plaintext);
encrypt(buffer, buffer_len, IV, key, keysize);
printf("cipher: "); display(buffer , buffer_len);
decrypt(buffer, buffer_len, IV, key, keysize);
printf("decrypt: %s\n", buffer);

return 0;
}

IV. Concluzii

Acest format proprietar permite criptarea datelor pentru a fi de neinteles fara soft-
ul oferit de producator, tehnica aceasta se foloseste in transporturi in criptarea
folosita pe autovehicule pentru comanda vocala si in alte sisteme de securitate
pentru continutul audio.
Avantajul scrambler-ului audio este că este nevoie de un canal audio complet
pentru a face transmisia , în timp ce criptarea digitală necesită , în general, o
lățime de bandă mai mare . Acest lucru permite ca codarea de voce sa poata fi
adaugata un sistem analogic de radio existent .
Insa scrambler-ul pentru audio se foloseste numai in domeniul timp si este
analogic de cele mai multe ori aceasta creaza un dezavantaj datorita faptului ca
traim intr-o lume digitala. Pentru a rezolva se foloseste o metoda de criptare
digitala de exemplu criptarea cu standardul AES care foloseste o cheie pentru a
cripta decripta semnalul audio.

V. Contribuții la dezvoltarea cunoașterii in domeniu

Acest proiect mi-a adus un cumul de cunostinte noi in domeniul semnalelor audio
insa ma si ajutat sa inteleg practic cunostintele dobandite la cursul de Semnale si
Sisteme.

VI. Bibliografie

1. FIPS PUB 197, Advanced Encryption Standard (AES), National Institute of Standards
and Technology, U.S. Department of Commerce, November 2001.
http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf
2. Joan Daemen and Vincent Rijmen, The Design of Rijndael, AES - The Advanced
Encryption Standard, Springer-Verlag 2002 .
3. Joan Daemen, Vincent Rijmen “AES Proposal: Rijndael “.
4. Algebraic Aspects of the Advanced Encryption Standard by Carlos Cid, Sean Murphy
and Matthew Robshaw, 2006 Springer Science^-Business Media, LLC

5. https://ro.wikipedia.org/wiki/MP3
6. https://en.wikipedia.org/wiki/WAV
7. Sisteme si tehnici multimedia,Prelucrarea audio digitala ,cursul 8;
=
“Rezultatele prezentate in aceasta lucrare au fost obținute cu sprijinul Ministerului Fondurilor
Europene prin Programul Operational Sectorial Dezvoltarea Resurselor Umane 2007-2013,
Contract nr. POSDRU/189/2.1/G/156404
The work has been funded by the Sectoral Operational Programme Human Resources
Development 2007-2013 of the Ministry of European Funds through the Financial Agreement
POSDRU/189/2.1/G/156404”