Encriptació de veu per mescla de subbandes
Full text
Encriptació de veu per mescla de subbandes Pere Salvadó Lloveras
Projecte final de carrera Encriptació de veu per mescla de subbandes Enginyeria Tècnica de Telecomunicacions Especialitat en So i Imatge - EUETIT Universitat Politècnica de Catalunya Autor: Pere Salvadó Lloveras Tutor: Ignasi Esquerra Llucià Gener 2006
Pere Salvadó Encriptació de veu per mescla de subbandes Índex 1 Introducció - 4 - 1 1 Objectius del Projecte......................................................................... - 5 - 1 2 Plantejament i procediments............................................................. - 6 - 2 Encriptació - 8 - 2 1 Introducció a la encriptació .............................................................. - 8 - 2 2 Tipus d’encriptació ............................................................................ - 10 - 2 2 1 Encriptadors de veu.................................................................... - 11 - 2 2 1 1 Modificació de l’amplitud .................................................. - 11 - 2 2 1 2 Modificació temporal del senyal....................................... - 11 - 2 2 1 3 Modificació de la freqüència ............................................ - 12 - 2 2 2 Encriptadors Complexos............................................................ - 17 - 2 2 2 1 Sistemes de Clau Secreta (o Sistemes Simètrics)............. - 17 - 2 2 2 2 Sistemes de Clau Pública (o Sistemes Asimètrics)........... - 19 - 2 2 3 Evolució dels estàndards d’encriptació.................................. - 21 - 3 Encriptador/desencriptador de veu per mescla de subbandes - 26 - 3 1 Introducció a la veu i el seu tractament digital............................ - 28 - 3 1 1 El so i les ones sonores ................................................................ - 28 - 3 1 2 La veu............................................................................................ - 31 - 3 1 3 Tractament digital de la veu i l’àudio ..................................... - 33 - 3 2 Idea bàsica de l’encriptador/desencriptador ............................. - 35 - 3 2 1 Encriptador:.................................................................................. - 36 - 3 2 2 Desencriptador............................................................................ - 39 - - 1 -
Pere Salvadó Encriptació de veu per mescla de subbandes 3 3 Descomposició del senyal d’àudio en subbandes freqüencials42 - 3 3 1 Filtratge ......................................................................................... - 42 - 3 3 2 Delmació i interpolació.............................................................. - 47 - 3 3 2 1 Delmació ............................................................................... - 48 - 3 3 2 2 Interpolació ........................................................................... - 52 - 3 3 3 Influència de la freqüència de mostreig en el nombre de subbandes.............................................................................................. - 54 - 4 Implementació en Matlab de l’encriptador/ desencriptador de veu - 56 - 4 1 Programa Principal ............................................................................ - 56 - 4 2 Separació del senyal d’àudio en subbandes............................... - 59 - 4 3 Mescla de les subbandes................................................................. - 66 - 4 3 1 Mescla en encriptació ............................................................... - 66 - 4 3 2 Mescla en desencriptació......................................................... - 69 - 4 3 3 Matrius de commutació ............................................................ - 72 - 4 4 Reconstrucció del senyal d’àudio .................................................. - 75 - 5 Interfície gràfica - 82 - 5 1 Funcionament general ..................................................................... - 82 - 5 2 Implementació en Matlab ............................................................... - 85 - 5 2 1 Programa principal ..................................................................... - 85 - 5 2 2 Selecció de l’arxiu a encriptar.................................................. - 86 - 5 2 3 Obtenció de les dades per encriptar...................................... - 90 - 5 2 4 Procés d’encriptació.................................................................. - 93 - 5 2 5 Obtenció de les dades de desencriptació ............................ - 96 - 5 2 6 Procés de desencriptació .......................................................... - 98 - 5 2 7 Reinici dels càlculs .................................................................... - 101 - 6 Proves - 104 - - 2 -
Pere Salvadó Encriptació de veu per mescla de subbandes 7 Conclusions i possibles millores - 111 - 7 1 Conclusions....................................................................................... - 111 - 7 2 Possibles millores............................................................................... - 112 - 8 Bibliografia - 114 - Llibres......................................................................................................... - 114 - Pàgines web ............................................................................................ - 115 - Agraïments - 117 - Annex1: Codi informàtic del sistema encriptador/ desencriptador Annex2: Codi informàtic de la interfície gràfica - 3 -
Pere Salvadó Encriptació de veu per mescla de subbandes 1 Introducció En la societat on vivim, regida per el intercanvi massiu de informació, tant per internet, com per mòbils, sense oblidar el telèfon fix ni el fax, ens hem vist obligats a crear sistemes que ens la codifiquin. Sistemes que permetin intercanvi i accés a dades només per aquelles usuaris que tinguin el vist-i-plau per fer-ho. Un dels camps on més s’utilitza i que més futur té la codificació de dades és internet, degut a la seva massificació i fàcil accessibilitat, tant d’usuaris com de dades. Tothom vol tenir llibertat de moviments per la xarxa, això sí, sense prescindir de la seva privacitat, i per poder-ho garantir en un espai tant transitat, és important utilitzar aquest tipus de sistemes. L’altre punt important i en gran expansió és la telefonia mòbil. Qui a hores d’ara pot dir que no té mòbil? Probablement molt poca gen. Aquest fenomen, que comporta una gran quantitat d’operacions comercials i relacions a distància, i d’altres, com la televisió per satèl·lit, els canals codificats o la distribució de música per internet, han forçat a la creació de nous sistemes i noves tecnologies encarades a mantenir la privacitat o la restricció d’accés a la informació pertinent. Aquí és on el meu projecte pren sentit. Hi ha varis mètodes per codificar dades, i algun d’ells és a partir del senyal de veu, tractat com a tal i no com a flux de dades. Em centraré a la creació d’un programa que encripti un senyal de veu, o àudio, a partir del seu tractament com a senyal sonor. Concretament empraré un tipus d’encriptació en el que se separa la informació sonora per bandes de freqüència, es redistribueix aquesta informació, i es torna a ajuntar, obtenint així el mateix senyal. Si parlem en termes d’informació, però, ens trobarem amb un senyal ben diferent si ens basem en la intel·ligibilitat. Al posar la informació en un lloc que no li pertoca, aquesta no es perd, però la sonoritat del senyal canvia per complet, quedant així alterada la seva intel·ligibilitat. - 4 -
Pere Salvadó Encriptació de veu per mescla de subbandes Com aquests mètodes han de permetre que l’usuari autoritzat sí que tingui accés a la informació original, també hi ha un procés invers que col·loca la informació on és deguda i permet tornar a tenir el senyal inicial. I la gràcia de la encriptació/desencriptació recau en que aquesta possibilitat de tornar a tenir el senyal original només estarà a l’abast d’aquells que tinguin el sistema de desencriptació adequat, junt amb la clau d’encriptacíó i el nombre de subbandes en que s’ha treballat en encriptació. Si no és així, el missatge resultant de l’intent de desencriptació no tindrà cap valor, ja que continuarà estant encriptat i al no podrà ser comprès. 1 1 Objectius del Projecte És un Projecte en el que s’ha tractat d’implementar un programa informàtic que ens encripta la veu, més concretament, es tracta d’un programa encriptador/desencriptador de veu. L’objectiu d’aquest projecte és implementar en codi Matlab i presentar mitjançant una interfície gràfica aquest enciptador/desencriptador de veu, a fi i efecte d’obtenir-ne un bon funcionament. Entenent per bon funcionament tant la correcta encriptació, desencriptació, i òbviament la recuperació el senyal amb la menor pèrdua possible d’informació. Tot això sense oblidar en cap moment una presentació fàcil d’entendre i d’utilitzar per l’usuari. També és interessant aconseguir un bon domini del programa Matlab, ja que les seves múltiples aplicacions i gran complexitat proporcionen un bon sistema de tractament de senyals, aplicable en múltiples camp. De gran utilitat en el món de les telecomunicacions. - 5 -
Pere Salvadó Encriptació de veu per mescla de subbandes 1 2 Plantejament i procediments He crear un programa que al entrar-hi un senyal de veu, i definint-li uns paràmetres d’encriptació, com són el nombre de subbandes en que volem fer la encriptació/desencriptació i un codi específic d’encriptació, ens retorni el senyal xifrat. Per aconseguir encriptar-lo el mètode que emprem és el de la mescla de subbandes de freqüència. Consisteix en descompondre el senyal de veu original en un nombre de subbandes determinat i especificat per l’usuari, mesclar-les i seguidament, tornar a ajuntar aquestes subbandes, de tal manera que al tenir el senyal reconstruït no puguem entendre’l, ja que la informació de cada subbanda freqüencial ha estat col·locada en una altra subbanda. Aquesta mescla/reassignació de les subbandes la fem seguint un codi d’encriptació aleatori introduït per l’usuari, que alhora de desencriptar el senyal encriptat, haurà de ser exactament el mateix. El procés de desencriptació és el mateix que el d’encriptació però a la inversa, i per tant, havent fet la mescla a partir d’un nombre aleatori, per desfer aquest mescla caldrà introduir el mateix nombre aleatori. El programa l’he implementat en llenguatge de programació Matlab. És un llenguatge d’alt nivell i especialment útil si ens endinsem en el tractament de senyals, tant per so com per imatge, ja que ens proporciona eines i funcions ja predefinides que ens proporcionen molta llibertat, així com un sistema de codi molt intuïtiu. El programa treballa sobre fitxers d’àudio del tipus ‘wav’ emprant funcions de lectura d’aquest tipus de fitxers ja definides pel programa, i que permeten treballar amb arxius fixes, no pas a temps real. La implementació d’aquest Projecte a Temps Real, és una de les possibles millores que ens hem plantejat al acabar-lo, més endavant comentades. Finalment he creat una interfície gràfica clara i intel·ligible per la presentació i execució del Programa. En aquesta interfície es permet definir els paràmetres d’encriptació/desencripació al mateix Usuari i alhora pot comprovar - 6 -
Pere Salvadó Encriptació de veu per mescla de subbandes els resultats de la execució del Programa, tant gràficament com sonorament. Ha estat creada amb l’eina Guide del mateix Matlab, aconseguint així una relació programa-interfície òptima. - 7 -
Pere Salvadó Encriptació de veu per mescla de subbandes amb el nom de Cardmagedon. Un sistema d’encriptació digital que no entrarem a analitzar, ja que no segueix els paràmetres acústics, sinó informàtics. - Inversió i partició de l’espectre: Aquest és un sistema que ens afegeix un grau de dificultat al que acabem d’explicar. Consisteix en dividir l’espectre del senyal invertit en dues parts i desplaçar-ne una, col·locant l’altra en la part buida deguda al desplaçament. Figura2.2 - Fragmentació i inversió espectral i mescla de les subbandes: Aquest és el sistema en que es basa el Projecte, concretament en una de les seves variants. Té un funcionament bàsic que després admet diferents procediments. El concepte bàsic és la partició de l’espectre del senyal en vàries subbandes, mesclar aquestes subbandes i recomposar-lo. Obtenint així un espectre completament diferent. A partir d’aquí, es pot complementar de diverses maneres, augmentant-ne la seva fiabilitat a mesura que hi afegim detalls. - 14 -
Pere Salvadó Encriptació de veu per mescla de subbandes La primera opció és la de fer la descomposició, la inversió o no d’algunes subbandes i la posterior recomposició sempre igual. Seguint un procés predefinit i establert, sense la contribució de paràmetres externs com podrien ser una clau. La segona opció seria el mateix procés acabat d’explicar però ara la permutació de les subbandes i la seva inversió o no, es decideixen seguint un cicle repetitiu. Aquest procés és més segur, ja que l’algoritme ja no són unes assignacions fixes, entrem en un procés cíclic molt més segur informàticament parlant. El tercer és el procés en el que s’aprofundeix en aquest projecte, però en el que s’entrà en detall més endavant. Ara en veurem el funcionament bàsic. Compleix les mateixes bases que els altres dos, però la complicació recau en la utilització d’una clau d’encriptació aleatòria alhora de la permutació de les subbandes. L’existència de la clau d’encriptació farà que sense aquesta sigui realment complicada l’obtenció del senyal original, tenint en compte l’enorme nombre de possibles combinacions de permutació que ens permet fer la descomposició del senyal en subbandes. Aquesta clau és un nombre o lletra que ens dona un valor numèric concret, i és a partir d’aquest valor, i mitjançant càlculs matemàtics, com s’arriba a una permutació de les bandes aleatòria. Tant aleatòria com el valor de la clau. Així, per a la recomposició del senyal serà necessària aquesta clau i el seu valor, ja que per poder dur a terme el procés inversament idèntic al d’encriptació, és aquest valor i la seva inversa el que ens permetran que la permutació segueixi també el camí al revés. Per tant, en aquest punt ja s’entra en sistemes d’encriptació prou elaborats, que no poden desxifrar-se amb quatre càlculs fixes, degut principalment a l’aleatorietat de la clau d’encriptació. - 15 -
Pere Salvadó Encriptació de veu per mescla de subbandes Figura2.3 En la Figura2.3 podem observar dues gràfiques, l’espectre del senyal original i la del senyal encriptat. S’observa la partició en subblocs del senyal original, i tot seguit l’alteració que ha patit aquest senyal al ser sotmès a un sistema d’encriptació com el que acabem de definir. Podem observar clarament quina permutació ha sofert cada subbloc, i també quins s’han invertit i quins no. Tot això degut als complicats processos matemàtics que aquest encriptació comporta i a la contribució del valor aleatori de la clau d’encriptació. Executant el mateix sistema d’encriptació amb el mateix senyal de veu, però amb una clau d’encriptació diferent, es pot veure en Figura2.4 com el valor aleatori d’aquest clau és de gran influència. Figura2.4 - 16 -
Pere Salvadó Encriptació de veu per mescla de subbandes 2 2 2 Encriptadors Complexos Entenem per encriptadors complexos aquells basats en algoritmes matemàtics que treballen sobre informació digital (cadenes de valors), independentment del tipus de dades que aquesta informació digital representa. S’implementen amb algoritmes matemàtics, el que fa que encara que la complexitat dels càlculs no sigui molt alta, el seu desxiframent sigui bastant més complicat, sobretot per el fet que són càlculs duts a terme a partir de la informació digitalitzada, i com a tal, sigui quin sigui el format original de la informació representada, no seguiran paràmetres característics d’aquesta. Parlant de senyals d’àudio, es pot decidir encriptar seguint mètodes com els descrits anteriorment, que es basen en les seves característiques físiques (freqüència, amplitud, ...), o digitalitzar el senyal i encriptar-lo tractant les dades com a simples cadenes de valors, sense fixar-se en què és el que estan representant. Algoritmes d’encriptació d’alta complexitat matemàtica, i per tant, de molt difícil desxiframent, n’estem rodejats. Avui en dia qualsevol tipus d’informació que es transmet passa per un procés d’encriptació/desencriptació. Es pot diferenciar entre dos tipus de sistemes s’encriptació complexes, els de Clau Secreta (o simètrics) i els de Clau Pública (o asimètrics). 2 2 2 1 Sistemes de Clau Secreta (o Sistemes Simètrics) Són sistemes on apareix la funció E, anomenada funció d’encriptació, que depèn de dos paràmetres. El primer paràmetre és la clau K i el segon és la informació M que es pretén mantenir secreta. La privacitat s’aconsegueix a través de la encriptació del missatge M utilitzant la clau K, és a dir, mitjançant la - 17 -
Pere Salvadó Encriptació de veu per mescla de subbandes determinació de C=E(K,M). Quan es parla de text pla, ens estem referint a M, i ens referim C com a text xifrat, encriptat. El text xifrat pot ser emmagatzemat o enviat a través d’algun canal de transmissió, sigui segur o no, a una altra entitat. En ambdós casos, per recuperar la informació original, el text pla, és estrictament necessari conèixer la clau K i utilitzar una funció de desencriptació D que també depèn dels mateixos dos paràmetres de que depèn la funció d’encriptació E, de manera que ara D(K,C)=M per a qualsevol cas de C=E(K,M). En aquests sistemes, la idea és que la funció d’encriptació sigui tal que sigui infactible determinar res útil respecte el text pla a partir del text xifrat si no es té accés a la clau. D’acord amb el tipus d’operacions amb que s’utilitzin els mecanismes d’encriptació es parla de sistemes d’encriptació del blocs o per fluxe. · Sistemes d’encriptació per blocs: Són aquells ens que les dades es divideixen en blocs de caràcters, normalment del mateix tamany. Posteriorment, cada bloc s’encripta utilitzant una mateixa transformació que ha estat donada per una mateix clau. Entre els sistemes més importants, en destaquen: · DES (Data Encryption Standard) i les seves variants · AES (Advanced Encryption Standard) – Rijndael (l’algoritme base del AES) · FEAL (Fast Data Encryption Agorithm) · IDEA (International Data Encryption Algorithm) · Safer (Secure and Fast Encryption Routine) · RC5 (Rivest’s Code 5) i RC6 (Rivest’s Code 6) - 18 -
Pere Salvadó Encriptació de veu per mescla de subbandes · Sistemes d’encriptació per fluxe: Són aquells sistemes en que els caràcters (típicament es parla de caràcters binaris) s’encripten d’un en un donant lloc a una transformació d’encriptació que varia en el temps. Entre els sistemes més coneguts destaquen: · One-Time Pad · Feedback Shift Register · RC4 (Rivest’s Code 4) · SEAL (Software-optimized Encryption Algorithm) 2 2 2 2 Sistemes de Clau Pública (o Sistemes Asimètrics) Són sistemes basats en claus d’encriptació de la forma K=(P,S) que consta de dues parts, una pública P a la que tothom hi pot tenir accés i una altra secreta S. La seva utilitat recau en que permeten que una entitat emissora, posem pel cas B, enviï informació confidencial a una altra de receptora, diguem A, a través d’un canal de comunicacions insegur. En aquests sistemes, cadascuna de les entitats que desitja establir aquesta comunicació i rebre o enviar certa informació confidencial, crea una clau K=(P,S), fa pública la part P i manté en reserva la part S. A més, en aquests sistemes també existeix la funció E, anomenada funció d’encriptació, que depèn de dos paràmetres. En aquest cas el primer paràmetre és una clau P i el segon és la informació M que es pretén mantenir en secret. La privacitat s’aconsegueix a través de la encriptació, per part de l’emissor, del missatge M mitjançant la clau P, és a dir, mitjançant la determinació de C=E(P,M), d’on M és el text pla, l’original, i C el text xifrat, encriptat. - 19 -
Pere Salvadó Encriptació de veu per mescla de subbandes El text xifrat s’envia a través d’algun canal de comunicacions insegur al receptor A aquí correspon la clau pública P (i que en conseqüència coneix la clau secreta S, associada a P). En els dos casos, per recuperar el missatge original és necessari conèixer la clau K i utilitzar una funció de desencriptació D, que també depèn de dos paràmetres, la clau secreta S i el text xifrat C, essent D(S,C)=M la seva expressió, per a qualsevol C=E(P,M). La seguretat d’aquests sistemes recau en que tot i ser P de domini públic, és computacionalment infactible determinar el text pla M a partir de C=E(P,M). El gran avantatge dels sistemes de clau pública és que el maneig de les claus és significativament més senzilla. En efecte, si és possible autentificar claus, aleshores la distribució de claus es pot fer de manera més senzilla ja que no són necessaris mètodes segurs i fiables de distribució com en els sistemes de claus privada. Aquest maneig també es veu substancialment simplificat gràcies a que cada entitat (receptora o emissora) només necessita generar i resguardar una sola clau, la seva clau secreta S. El desavantatge principal d’aquests sistemes respecte els de clau privada és la seva lentitud, són significativament més lents. Per això els sistemes de clau pública s’utilitzen principalment per transmetre i establir claus que subsegüentment són utilitzades per a criptosistemes de clau privada. Entre els sistemes de clau pública més coneguts en destaquen: · RSA · Criptosistemes de Corves El·líptiques · Criptosistema de Rabin · ElGamal · McEliece - 20 -
Pere Salvadó Encriptació de veu per mescla de subbandes 2 2 3 Evolució dels estàndards d’encriptació En l’actualitat, el algoritmes xifradors utilitzats per els principals estàndards d’encriptació que hem esmentat són una combinació de simples que hem explicat al principi, els de substitució i els de permutació. Com ja s’ha comentat, l’objectiu bàsic de l’anomenada ‘confusió’ que crea la combinació d’aquests algoritmes simples és el d’amagar la relació existent entre les dades originals, les dades encriptades i la clau s’encriptació. La major part dels sistemes d’encriptació es basen en això, en varies capes de substitucions i permutacions, estructures anomenades SPN (Substitution-Permutation Networks). Les SPN o reds de substitució-permutació són un xifrat iteratiu, és a dir, consisteixen en aplicar un nombre concret de rondes o voltes de substitucions i permutacions a cadascun dels bolcs o dades, depenent de com es tractin les dades. Com ja s’ha vist, un dels principals algoritmes de xifrat per bolcs és el DES (Data Encryption Standard) i podríem dir que és el sistema d’encriptació de clau privada més utilitzat arreu del mon, i molt especialment en l’àmbit financer i bancari. El DES xifra i desxifra blocs de 64 bit i els sotmeten a 16 rondes, amb una clau d’encriptació de 54 bits (56 bits reals i 8 bits de paritat) El maig de 1973 la National Boureau of Standards, conegut actualment com National Institute of Standards and Technology, el NITS, del govern nordamericà va sol·licitar a la comunitat científica sistemes d’encriptació simètrics, amb vistes a adoptar un estàndard que pogués ser construït en massa i que proporcionés les màximes garanties de seguretat. No va ser fins el 1975 que es va fer oficial l’algoritme escollit i que el govern dels EEUU va decidir, després de grans discrepàncies sobre si era un algoritme realment segur, adoptar-lo com a estàndard per a comunicacions no classificades. S’especulava que podia ser que aquest algoritme tingués propietats algebraiques, les quals permetrien desxifrar fàcilment les dades encriptades, i que eren mantingudes en secret per el govern Nord-Americà, però la veritat és que mai s’han pogut verificar aquests rumors. També s’ha de dir que s’esperava que aquest estàndard tingués una - 21 -
Pere Salvadó Encriptació de veu per mescla de subbandes vida d’entre 10 i 15 anys, però amb el temps s’ha comprovat que no, que ha superat i amb escreix les expectatives. Per sorpresa de tothom al 1990 va poder suportar atacs de sistemes d’encriptació diferencials, acabats de descobrir per E.Biham i A.Shamir, fet que fa pensar que els investigador de IBM creadors del DES ja coneixien aquest tipus d’atacs 20 anys abans que la resta del mon però que van mantenir-ho en secret fins la descoberta de Biham i Shamir. La principal crítica del DES es refereix al tamany real de la clau d’encriptació de 56 bits, la qual és realment massa petita per poder garantir una bona seguretat. Sense anar més enllà, si ens fixem en el seu predecessor, el sistema Lucifer també de IBM, constava d’una clau de 128 bits. En aquest sentit, s’han anat fent intents d’atacs al DES, al 1977 Diffie i Hellman van suggerir la construcció d’un xip que comprovés 10^6 claus per segon, aconseguint desxifrar la clau en un dia si tinguéssim una màquina composta amb 10^6 xips d’aquest tipus. Això sí, es va preveure que tindria un cost de 20.000.000 euros, així que no es va dur a terme mai. Al juliol de 1998 la empresa Electronic Frontier Foundation va construir l’ordinador ‘DES Cracker’ que contenia 1536 xips amb capacitat per buscar 88 billons de claus per segon, i al gener del 1999 van unir-se el DES-Cracker junt amb el DES-Challenge-III (fabricat per la companyia RSA) i junt amb 100.000 ordinadors més a través d’internet, i finalment van aconseguir trencar el sistema DES en 22 hores i 15 minuts, havent compovat més de 245 billons de claus per segon. En la actualitat el DES continua sent utilitzat arreu. Hi ha moltes companyies que prefereixen mantenir aquest sistema d’ecriptació, precisament per el fet que ha estat capaç d’aguantar durant més de 20 anys, i opten per utilitzar-ne variants com ara el TDES (actua tres vegades el DES, amb tres claus) evitant així el risc que suposa canviar de sistema. Tot i això, sembla que el DES i totes les seves variants tenen els dies contats, ja que des de 2003 el NIST va convertir l’estàndard AES (Advanced Encryption Data) en l’estàndard oficial nord-americà, fet que provoca una axtensió generalitzada d’aquest estàndard arreu del planeta. Serà només en - 22 -
Pere Salvadó Encriptació de veu per mescla de subbandes certs sectors del mercat en que és obligatori l’ús del DES per normativa o per compatibilitats el que farà que no arribi a desaparèixer del tot. L’AES ja hem vist que és un sistema de xifrat simètric, com el DES, però treballa amb clau d’encriptació de 128,192 i 256 bits, així com blocs de treball de 128 bits de tamany. Tot i no definir-lo com l’estàndard oficial nord-americà fins el 2003, aquest va ser creat definitivament el 2000. Concretament la publicació oficial de l’algoritme definitiu del AES va ser el 2 d’octubre d’aquell any. A diferència de la creació de DES dues dècades abans, aquest cop es va optar per una convocatòria pública oberta a tot el món, proposada el gener de 1997. En les bases de la convocatòria es van especificar els requisits mínims d’acceptació: - L’algoritme havia de ser públic, disponible gratuïtament i que s’ajustés al requisits de la política de patents de l’Institut Nacional Americà d’Estàndards. - Havia de ser un algoritme de xifrat en bloc simètric. - Havia de ser dissenyat de tal manera que tingués flexibilitat a l’hora de variar la longitud de la clau depenent de les necessitats. - Havien de poder suportar xifrats amb longituds de bloc de 128 bits i longituds de clau de 128,192 i 256 bits. - S’havia de poder implementar tant en hardware com en software. També es van especificar els criteris d’evaluació: - Seguretat - Eficiència computacional i requisits de memòria - Adequació hardware i software - 23 -
Pere Salvadó Encriptació de veu per mescla de subbandes Figura3.3 A partir de la longitud d’ona d’un senyal en determinem la seva freqüència, i són aquests dos paràmetres els que determinen la tonalitat del so, el que coneixem per notes, així com aguts, greus, mitjos, etc. Figura3.4 Entre la Figura3.3 i la Figura3.4 podem apreciar la relació entre notes o tons, freqüències que representen i les pertinents longituds d’ona. En el segon cas, observant les tecles d’un piano podem veure quina relació hi ha entre les notes i els seus harmònics ja que només estan representades les longituds d’ona d’un to fonamental i els seus harmònics. Els harmònics són les freqüències múltiples d’un to fonamental. Múltiples per un nombre enter. Per exemple, 2kHz - 30 -
Pere Salvadó Encriptació de veu per mescla de subbandes i 3kHz són el primer i el segon harmònic si prenem com a freqüència fonamental 1kHz. 3 1 2 La veu La veu i per tant la parla és el so que en surt de la boca del éssers humans. És produït per la vibració de les cordes vocals, combinat amb la resta de components que formen el tracte vocal. Aquest, el podem descompondre en tres formants: la laringe i la faringe són el tercer formant, la cavitat nasal el segon, i la cavitat bucal el formant principal. Concretament, el que considerem veu, és un flux d’aire provinent dels pulmons i la tràquea, modulat de forma periòdica per la vibració de les cordes vocals creant-ne així una ona periòdica, i per tant un to, que més endavant és modulat tant en freqüència com en amplitud per els formants que componen el tracte vocal. Aquests tenen un comportament com de ressonadors, es comporten com a filtres dinàmics (laringe i faringe no) i així modulen el so tant en freqüència com en amplitud. La veu, la parla, la podem descompondre en dos tipus de sons, els sons sonors i els sons sords. Dins els sonors trobem les vocals i algunes consonants (B, D i G), i dins els sords la resta de consonants. Són els primers, els sonors, els que són producte del tracte vocal, en canvi els sords són producte de l’obstrucció i el posterior alliberament de l’aire que altres parts de la boca provoquen (llengua, llavis,...). La veu té un ample de banda d’uns 4Khz, concretament la podem situar entre els 115 Hz i els 4Khz aproximadament. Depenent sempre del locutor, trobem que la freqüència fonamental, que és la freqüència més baixa capaç de reproduir aquest locutor, no sempre és la mateixa. A trets generals, podem - 31 -
Pere Salvadó Encriptació de veu per mescla de subbandes establir que la freqüència fonamental d’un home cau en els 115Hz, la d’una dona en uns 220Hz i la d’un nen/nena al voltant dels 300Hz. Pel que fa a la intel·ligibilitat de la parla i al nivell de la veu, fixant-nos en els sons sonors i sords trobem que els sonors (vocals) són els que tenen una major contribució al nivell de la veu, i en canvi són els sords (les consonants) els que defineixen el grau d’intel·ligibilitat del missatge. Figura3.5 La Figura3.5 ens representa la contribució per bandes freqüencials dels sons sords o sonors pel que fa a la intel·ligibilitat del missatge i al seu nivell, en el cas d’una veu d’home. Veiem que la contribució al nivell de la veu recau sobretot al voltant dels 500Hz, baixes freqüències, i en canvi, la màxima intel·ligibilitat la trobem a la vora dels 2KHz, altes freqüències. Així doncs, queda palès que en un senyal de veu seran les vocals i les baixes freqüències que ens marcaran el nivell de la veu, deixant que siguin les consonants i altes freqüències el que ens defineixin el nivell d’intel·ligibilitat del missatge oral. Aquest és un exemple per a una veu d’home adult, i hem de dir que per el cas de la dona, la distribució segueix la mateixa estructura, però tot a una freqüència una mica més alta. En la veu de dona, la zona de màxima intel·ligibilitat la trobem aproximadament a 4KHz. Per poder implementar l’encriptador/desencriptador de veu per mescla de subbandes informàticament necessitem treballar amb arxius del tipus ‘wav’, i això significa que caldrà que la veu que vulguem encriptar hagi passat - 32 -
Pere Salvadó Encriptació de veu per mescla de subbandes prèviament per un procés de digitalització i s’hagi emmagatzemat dins un arxiu ‘wav’. 3 1 3 Tractament digital de la veu i l’àudio La digitalització del so ja s’utilitza en el punt en que es vol emmagatzemar, sigui en arxius del tipus informàtics o directament en suports d’àudio per ser escoltat. El tipus més comú de gravació d’àudio digital és la modulació de codi de polsos (PCM – Pulse Code Modulation). És el tipus utilitzat per a la gravació de discs compactes (CD) i per la majoria dels arxius del tipus ‘wav’, els que utilitzarem en el nostre encriptador/desencriptador. Alhora de la gravació del tipus PCM, un micròfon converteix la variació de la pressió de l’aire (les ones sonores) en un voltatge variable (senyal elèctric) i un convertidor analògic a digital ens digitalitza aquest voltatge variable. Aquest procés de digitalització es du a terme a partir del mostreig o quantificació del senyal elèctric. Es van fent mesures del voltatge variable del senyal en un interval regular de temps, anomenat ‘període de mostreig’ (Tm), i s’emmagatzemen digitalment. Per exemple, en la gravació dels discs compactes, es prenen exactament 44.100 mostres cada segon. Aquesta taxa de mostres per segon és el que entenem per ‘freqüència o velocitat de mostreig’ (Fm), que és l’invers del període Tm. En aquest punt cal tenir en compte el ‘teorema de Nyquist’, que estableix que per evitar problemes d’aliasing cal que la freqüència de mostreig sigui com a mínim del doble de l’ample de banda del senyal. Per això, la discretització de veu s’acostuma a fer amb una Fm de 8KHz (recordem que la veu té un ample de banda d’uns 4KHz), i els senyals de música s’acostumen a mostrejar amb una velocitat superior als 40KHz (44’1KHZ, 48KHz,…) ja que l’oïda humana, i per tant qualsevol tipus de - 33 -
Pere Salvadó Encriptació de veu per mescla de subbandes música audible, està ‘limitada’ entre els 20Hz i els 20KHz (ample de banda d’uns 20KHz aproximadament). Un cop feta la discretització temporal del senyal, ara cal emmagatzemar aquests valors variables de l’amplitud del senyal digitalment i per això cal discretitzar-los, amb un nombre prou elevat de bits. Concretament, en telefonia digital es fa amb 8 bits, però amb senyals més complexos que els de veu, com poden ser senyals de música amb qualitat de CD, s’utilitzen 16 bits, o fins a 20 bits per a mescles digitals de CD. Així, les mostres PCM són aquesta cadena de mostres obtinguts amb la digitalització del senyal, i que el representen temporalment. La estructura d’aquesta cadena de mostres depèn de si ens trobem amb un senyal ‘estèreo’ o un senyal ‘mono’. Si el senyal és estèreo, que vol dir que tenim informació diferent per la oïda esquerra que per la dreta, les mostres s’emmagatzemen alternament, és a dir, es van intercalant les mostres d’un canal amb les de l’altre. Seguint aquesta estructura: esquerra1, dreta1, esquerra2, dreta2, esquerra3, dreta3,... Si en canvi, tenim un senyal en ‘mono’, on la informació és idèntica per una oïda o per l’altra, les mostres simplement d’emmagatzemen l’una rera l’altra. En el cas del nostre encriptador/desencriptador, treballarà sempre amb arxius del tipus ‘wav’. El format ‘wav’ (waveform audio file) és un format d’arxiu originari de Microsoft Windows 3.1. Era el format d’emmagatzematge d’àudio més usat, però domèsticament està sent desbancat per el famós ‘mp3’, degut a que aquest últim té un tamany molt menor al ‘wav’, això sí, en detriment d’una compressió que depenent de les característiques provoca una pèrdua considerable d’informació. El ‘wav’ en contrari, és un format que ocupa molt, però que alhora té una qualitat d’àudio molt millor, gairebé sense pèrdues, però sempre depenent de la compressió i gravació, així com del mostreig usat. Concretament, els arxius ‘wav’ són simples emmagatzemadors, és a dir, no és pas un format de compressió d’àudio, si no un format d’arxiu que permet emmagatzemar un senyal d’àudio que ha estat comprimit digitalment seguint - 34 -
Pere Salvadó Encriptació de veu per mescla de subbandes algun dels tipus de compressió que pot suportar. El tipus de compressió més usat en els fitxers ‘wav’ és el format PCM que ja hem vist, però també podem trobar-ne que continguin senyals comprimits segons la Llei-A, segons la Lei-µ o en format ADPCM. Per l’encriptador/desencriptador el tipus de compressió del senyal d’àudio que conté l’arxiu ‘wav’ que s’encriptarà/desencriptarà és irrellevant ja que el sistema està implementat íntegrament amb el programa Matlab el qual té una funció ja predefinida anomenada ‘wavread’, que com el seu nom indica, ens llegeix arxius del tipus ‘wav’, independentment del tipus de compressió que duguin dintre. La representació dels senyals que ens farà el Matlab no serà la mateixa si parlem d’un senyal ‘estèreo’ o d’un ‘mono’. Si es tracta d’un senyal estèreo ens el presenta en dos canals separats, concretament ens crea dos vectors, l’un amb la informació, en l’ordre temporal del senyal, del canal esquerra i l’altre amb la del dret, i col·locats ‘en paral·lel’, tractant-ho com una matriu de dues files per tantes columnes com mostres té cada canal, facilitant-ne així molt la maniobrabilitat. Si en canvi es tracta d’un arxiu mono ens col·loca les mostres en un sol vector, seguint també l’ordre temporal del senyal. 3 2 Idea bàsica de l’encriptador/desencriptador El funcionament bàsic de l’encriptador/desencriptador es podria explicar en conjunt, però s’explicarà en dos passos, per poder veure clarament quina és la diferència entre el procés d’encriptació i el de desencriptació. - 35 -
Pere Salvadó Encriptació de veu per mescla de subbandes 3 2 1 Encriptador: Com ja s'ha explicat anteriorment, la base d'aquest sistema d'encriptació és la descomposició de l'espectre del senyal de veu o àudio en subbandes. Això és gràcies a les característiques del so, que ens permeten una representació del senyal del so al llarg del camp freqüencial, i la seva partició en subblocs (subbandes freqüencials). Aquesta partició de l'espectre es du a terme mitjançant uns processos de filtratge del senyal, concretament, és el filtratge pas-alt i pas-baix del mateix senyal, obtenint-ne una descomposició en dues subbandes, les altes i les baixes freqüències respectivament. A partir d'aquesta partició en la qual ja s'ha obtingut el senyal original partit en dos, i en funció del nombre de subbandes en que es vulgui fer la descomposició, repetirem el procés de doble filtratge per a cada part, obtenint-ne ara dos blocs més de cada bloc. El sistema creat permet decidir si l’usuari vol descompondre el senyal en 2, 4, 8 o 16 subbandes, depenent també de la freqüència de mostreig del senyal que es vol encriptar, ja que per a freqüències de mostreig molt baixes, no val la pena fer una descomposició en moltes subbandes. Com ja s’ha comentat, la possibilitat de decidir el nombre de subbandes ens dóna un grau més de dificultat alhora de desxifrar el senyal encriptat. Anàlisi: Figura3.6 - 36 -
Pere Salvadó Encriptació de veu per mescla de subbandes En la expressió de la Figura3.6 s’aprecia el procés a que és sotmès el senyal d’àudio en el cas de fer una descomposició en quatre subbandes freqüencials, procés anomenat ANÀLISI. On H(z) és un filtre passa-alt i G(z) és un filtre passa-baix. El procés requereix la delmació per poder mantenir el nombre de mostres del senyal original, ja que cada filtre es dedica única i exclusivament a filtrar, i per tant, manté el nombre de mostres del senyal d’entrada. Així com mantenir cada part filtrada situada on li pertoca de l’espectre. Són temes que s’explicaran més endavant. Un cop obtinguda cada subbanda el que es fa és redistribuir-les, mesclarles, col·locant la informació d’una banda en el lloc d’una altra, fent-ho per totes les subbandes. Aquesta permutació de les subbandes es fa mitjançant una matriu de commutació que ha estat creada a partir de la clau d’encriptació secreta i aleatòria que ha introduït l’usuari al seu gust i depenent del nombre de subbandes, també decidit per l’usuari. En aquest procés és on ens quedaran definides les característiques del procés d’encriptació, aquelles que el de desencriptació necessitarà saber si es vol recuperar els senyal original a partir de l’encriptat obtingut al finalitzar aquest sistema encriptador. Aquest procés de permutació de les subbandes és el que s’anomena de ‘mescla’. Mescla: Figura3.7 - 37 -
Pere Salvadó Encriptació de veu per mescla de subbandes En aquest representació de la Figura3.7 s’aprecien les permutacions que patirien en un cas hipotètic les subbandes en que ha estat descompost el senyal anteriorment. En aquest cas tindríem la informació de baixes freqüències (X4) en el lloc de les altes, les altes (X1) a les mitges-baixes, les mitges-altes a les baixes i les mitges-baixeses a les mitges-altess. Per acabar amb el procés d’encriptació ara el que cal és tornar a ajuntar les subbandes. En aquest procés, anomenat de síntesi, sotmetem cada subbanda a una interpolació i al seu posterior filtratge. En aquest punt és on acabarà de quedar definida la posició de cada subbanda, per quin canal freqüencial ens apareixerà en el senyal encriptat, depenent de si és filtrada per un filtre passa-alt o per un passa-baix. Síntesi: Figura3.8 Un cop passats aquests tres processos que componen el sistema d’encriptació, el senyal Y(z) que s’ha obtingut és el senyal original X(z) encriptat. - 38 -
Pere Salvadó Encriptació de veu per mescla de subbandes 3 2 2 Desencriptador El sistema desencriptador segueix exactament la mateixa estructura que acabem de descriure, anàlisi, mescla i síntesi, però amb la permutació de les subbandes invertida. És aquí on recau la diferència entre un procés i l’altre. Per això és tant important saber el nombre de subbandes en que s’ha descompost el senyal en la encriptació i tenir accés a la clau d’encriptació, ja que ara es tornen a utilitzar, però inversament. La matriu de commutació que es crearà en aquest procés ha de ser la inversa a la del procés d’encriptació, i per tant, és necessari saber en quantes subbandes s’ha treballat en la encriptació i amb quina clau d’encriptació s’ha fet. Si no tenim aquest dos paràmetres correctes, la matriu de commutació que ara tindrem no serà la exactament inversa i després del procés de mescal les subbandes continuaran permutades i el senyal continuarà sent un senyal encriptat. En el cas d’encriptació hipotètic que s’ha estat exemplificant anteriorment, la estructura del procés d’anàlisi del desencriptador pertinent seria el següent: Anàlisi: Figura3.9 - 39 -
Pere Salvadó Encriptació de veu per mescla de subbandes Resposta en freqüència del filtre Chebyshev2 passa-baix: Figura3.14 Així, la combinació dels dos filtres ens agafa gairebé tot l’ample de banda. Trobem però a la part central de l’espectre, i degut a que és el punt de coincidència dels dos flancs, el de pujada per el filtre passa-alt i el de baixada per el passa-baix, una zona en que tindrem una mica de pèrdues de senyal. Aquestes pèrdues són poques, però depenent del nombre de vegades que es filtri el senyal ens afectaran més o menys, depenent el nombre de filtratges del nombre de subbandes en que estiguem treballant. Aquesta combinació podem apreciar-la representant les dues respostes freqüencials, la de cada filtre, en un mateix gràfic, i veurem com en la zona central de l’espectre, on es creuen els dos flancs, la pèrdua de senyal hi serà present. Però en canvi també podrem apreciar com al llarg de l’espectre tindrà una resposta molt plana, el que proporcionarà un bon filtratge, sense gaire modificacions. - 46 -
Pere Salvadó Encriptació de veu per mescla de subbandes Resposta freqüencial dels filtres Chebyshev2 passa-alt i passa-baix: Figura3.15 La determinació dels dos punts d’inflexió, s’ha fet a partir de vàries proves on s’ha vist que si els situàvem els dos a 0’5, teníem una banda central amb molta pèrdua, i si els situàvem de manera que les dues bandes de pas coincidissin en els seus respectius extrems, just en aquest centre trobàvem un augment del senyal degut a la coincidència dels dos flancs, que quedaven sobreposats. La seva suma ens creava aquest augment del senyal en el rang central de freqüències. Finalment, amb les especificacions fetes per als dos filtres, n’hem obtingut una molt bona resposta. Inevitablement tenim una mica de pèrdua en aquest rang de freqüències centrals, però és el menor possible. 3 3 2 Delmació i interpolació La delmació i la interpolació són dos processos inversament iguals. El primer consisteix en eliminar d’un senyal discret, digitalitzat, una mostra de cada ‘N’, sent ‘N’ el nombre de la delmació. L’altre, la interpolació, fa el procés invers, ens afegeix una mostra cada ‘N’ mostres, sent també ‘N’ el nombre de - 47 -
Pere Salvadó Encriptació de veu per mescla de subbandes la interpolació. Aquestes dues operacions disminueixen o augmenten respectivament el nombre de mostres d’un senyal discret, augmentant o disminuint així la velocitat de mostreig del senyal continu que aquest discret representa. Recordem que qualsevol senyal digital d’àudio, per tant discret (x[n]), prové sempre d’un senyal analògic temporal (x(t)), o si més no, ho acaba sent. Per tant, no deixa de ser una seqüència numèrica que en algun moment ha estat i/o serà un senyal físic al llarg del temps, acabant sent-ne només una representació d’aquest úlltim. En el procés d’encriptació/desencriptació són necessàries la delmació i la interpolació per poder anar filtrant iterativament. Això és perquè cal que en cada etapa, cada vegada que filtrem, reduïm també el nombre de mostres a la meitat, obtenint al final de l’execució de totes les etapes el tamany desitjat per a totes les subbandes, i després en el procés de recomposició cal doblar el nombre de mostres cada vegada que filtrem dues subbandes i les sumem, per la mateixa raó, hem d’anar doblant el nombre de mostres etapa a etapa fins a estar al nivell de les dimensions del senyal a recompondre, iguals a les del senyal original. 3 3 2 1 Delmació La delmació és un procés que s’utilitza en casos en que tenim massa mostres en un senyal discret, i volem reduir-ne la freqüència de mostreig. Sempre es delma per un nombre enter, el que permet jugar amb el tamany del senyar que es vol delmar i la seva freqüència de mostreig d’una manera molt simple, parlant sempre de múltiples simples. - 48 -
Pere Salvadó Encriptació de veu per mescla de subbandes Així, quan es parlar de delmar per N un senyal, el que es vol dir és que dividirem el tamany del senyal per N, així com la velocitat de mostreig del senyal pla subjacent. Fixant-nos en el projecte, en els processos d’anàlisi que trobem tant en encriptació com en desencriptació, la delmació que durem a terme és una delmació per dos. Això és degut a la estructura d’arbre del procés. Recordem que començarem dividint el senyal en dues subbandes, després si cal en quatre, o en vuit o definitivament en setze. Així, en cada etapa del procés el que es fa és agafar un senyal o subbanda i dividir-lo en dues meitats. Per tant, cada vegada que dividim en dues meitats, comporta també la disminució a la meitat del nombre de mostres. Però el filtratge sigui el passa-alt o el passabaix, només ens separa l’espectre de la banda filtrada en dos, de tal manera que les mostres pertinents a la banda de pas es mantenen igual, i les mostres de la banda d’atenuació pateixen una reducció considerable de l’amplitud, però en cap cas s’esborren, per tant sempre s’acaba mantenint el nombre de mostres. Figura3-16 Així doncs, un cop filtrat caldrà també reduir el nombre de mostres a la meitat, i per tant, delmar per dos. - 49 -
Pere Salvadó Encriptació de veu per mescla de subbandes Figura3.17 Un cop feta la delmació per dos podem apreciar que el senyal resultant té la meitat de mostres ( ~ 3 x 10^4 ) que el senyal acabat de filtrar ( ~ 6 x 10^4 ). També podem veure que gràcies a la delmació, ara només tenim la part de l’espectre amb informació, la meitat que ens interessava i que per això hem filtrat. Això és degut a que l’espectre, al delmar-se el senyal, es resitua en tota la banda espectral. Això vol dir que les dues parts que el conformen, recordem que l’espectre d’un senyal ens representa la seva distribució d’informació al llarg de tot el rang de freqüències, però dues vegades, com amb un mirall al mig. Així, la primera meitat s’expandirà al llarg de tot l’espectre, i la segona també, però inversament. - 50 -
Pere Salvadó Encriptació de veu per mescla de subbandes Figura3.18 Finalment, la delmació hem quedat que reduïa el tamany del senyal, així, ens quedarem amb el mateix espectre que un cop feta aquesta redistribució, però amb la meitat de mostres. Figura3.19 - 51 -
Pere Salvadó Encriptació de veu per mescla de subbandes L’exemple resultarà contenir informació de les altes freqüències, i senyal nul de les baixes, la seva distribució espectral se simplificarà a només la informació d’altes freqüències, ja que la diferència d’amplitud entre una informació i l’altra, fa que la segona no influeixi per res. 3 3 2 2 Interpolació És el procés invers a la delmació, i comparteix amb ella les mateixes finalitats. És una eina que ens permet augmentar la velocitat de mostreig del senyal pla, així com recuperar predictivament un senyal delmat al seu tamany anterior, o directament augmentar-lo de tamany però amb una petita predicció que ens evita errors estrepitosos. La interpolació consisteix en intercalar noves mostres entre les mostres del senyal que es pretén interpolar. Com la delmació, té un nombre que ens diu quina interpolació volem fer, i és aquest nombre el que ens marca quantes noves mostres intercalarem. Concretament, una interpolació per ‘n’ vol dir que entre una mostra del senyal a interpolar i la següent, hi afegirem ‘n-1’ mostres noves, situades en la fracció temporal corresponent per mantenir la continuïtat temporal del senyal. Espectralment parlant la interpolació comporta una compressió de l’espectre freqüencial del senyal interpolat, en canvi temporalment, el senyal es veu expandit. En el nostre procés necessitarem interpolar tantes vegades com s’hagi delmat, ja que l’utilitzarem per recuperar tant el tamany com la velocitat de mostreig que teníem inicialment, abans del procés d’anàlisi on l’hem delmat. - 52 -
Pere Salvadó Encriptació de veu per mescla de subbandes Figura3.20 En la Figura3.20 podem apreciar els efectes d’interpolar un senyal. Al interpolar per 2 ara tenim el doble de mostres, i l’espectre queda de tal manera que s’ha doblat, com si fos un mirall. En el nostre procés, un cop interpolada una subbanda, la filtrem per el filtre corresponent. Figura3.21 - 53 -
Pere Salvadó Encriptació de veu per mescla de subbandes I n’obtenim una subbanda de les que abans hem obtingut al filtrar una banda per dos filtres diferents. Per tant, ara només ens cal sumar aquesta subbanda a l’altre que obtindrem interpolant i filtrant per l’altre filtre. Si observem la Figura3.11 de l’apartat 3 2 2, que ens representa el procés de síntesi, es pot comprendre millor. En l’exemple que s’ha vist al llarg d’aquesta explicació, arrancant des de la delmació, teníem una banda, l’hem filtrat passa-alt i delmat, i per recuperarla, ara estem interpolant i filtrant de nou passa-alt. Un cop arribats a aquest punt, ens falta l’altra meitat de la informació de la banda inicial, ja que aquest és el procés passa-alt, però n’hi ha un de passa-baix paral·lel que està treballant amb la informació de greus. Per tant, ara per poder recuperar la banda inicial cal agafar la subbanda passa-baix que ha avançat en paral·lel a aquesta passa-alt, interpolar-la i filtrar-la passa-baix, i la subbanda resultant és aquesta informació de baixos que cal complementar amb la d’aguts que tenim per poder recuperar la banda inicial. Les sumem linealment i ja la tenim. 3 3 3 Influència de la freqüència de mostreig en el nombre de subbandes Alhora d’escollir el nombre de subbandes en que es vol descompondre el senyal s’ha de tenir en compte la freqüència de mostreig. La freqüència de mostreig és relativa a l’ample de banda, recordem que per complir el teorema de Nyquist i evitar així l’efecte d’aliasing, cal que sigui com a mínim del doble de l’ample de banda del senyal, i per tant, si resulta que el senyal d’entrada té una freqüència de mostreig petita, significarà que l’ample de banda també ho serà, i així fer una descomposició del senyal per a moltes subbandes serà innecessari. Sobretot perquè si tenim un ample de banda reduït vol dir que tenim la majoria de la informació útil del senyal concentrada en aquest ample, i per tant, si descomponem aquesta banda en poques - 54 -
Pere Salvadó Encriptació de veu per mescla de subbandes subbandes i les intercanviem de posicions en l’espectre, ja estem alterant gran part de la informació, modificant així notablement la intel·ligibilitat del missatge. - 55 -
Pere Salvadó Encriptació de veu per mescla de subbandes El missatge que traurem per pantalla serà mitjançant la funció ‘strcat’, una funció predefinida de Matlab que ens permet ajuntar cadenes de caràcters. Així, i mitjançant una altra funció de Matlab que ens permet passar una variable de nombre a cadena de caràcters (‘num2str’), ho ajuntarem tot i per pantalla ens sortirà el missatge que ens dirà quin ha estat finalment el nombre de subbandes amb que farem tot el procés. A partir d’ara ja comencem a entrar en matèria. Inicialment, abans de fer res, cal que creem els dos filtres que utilitzarem al llarg del procés d’anàlisi. Recordem que seran dos filtres iguals, però invertits, i del tipus Chebyshev2. L’un passa-baix i l’altre passa-alt. - 62 -
Pere Salvadó Encriptació de veu per mescla de subbandes La funció ‘cheby2’ és del Matlab mateix, i ens crea el filtre Chebyshev2 que volem. Cal que li definim els paràmetres que abans hem comentat. Així, el 20 ens indica que és un filtre d’ordre 20, el 80 ens marca la caiguda en dB’s de la zona d’atenuació respecte el senyal que s’està filtrant (nivell d’entrada és 0dB), i el punt del rang freqüencial en que canviarà de fase. El primer, que ens crea el filtre passa-baix, té aquest punt d’inflexió en 0’525, i el passa-alt el definim a 0’475, com ja hem comentat anteriorment, per evitar pèrdues d’informació o augments de nivell per culpa de la manca o la superposició de les respostes dels dos filtres. La funció ens retorna B i A, que són els coeficients del numerador i del denominador respectivament de la funció de transferència del filtre que ens crea. Un cop tenim els filtre ja podem començar el procés de filtratge. Recordem que es segueix un procés amb estructura l’arbre. Per tant, comencem descomposant el senyal en dues subbandes. Si en volem més de dues, tornem a filtrar cada subbanda i n’obtenim quatre, i si resulta que també en volem més de quatre, tornem a repetir el procés i ara en tenim vuit. I en el cas de més de vuit, ho repetim de nou i n’obtenim setze. Recordem que cada vegada que filtrem, tot seguit delmem, per no tenir accés de tamany. - 63 -
Pere Salvadó Encriptació de veu per mescla de subbandes El filtratge el fem amb al funció de Matlab ‘filter’, introduint-li com a valors d’entrada els coeficients que abans hem obtingut en la creació del filtre (B i A) i el senyal que es vol filtrar. En el cas de la descomposició d’un senyal en dues parts, en els dos filtratges introduïm el mateix senyal d’entrada, però l’un amb els coeficients del filtre passa-baix (Bl i Al) i l’altre amb els del passa-alt (Bh i Ah). I a la sortida en traiem la informació de baixes freqüències, de la meitat en avall, en una variable i les altes, de meitat en amunt, un una altra. Per que el filtratge sigui coherent cal que ara cada subbanda tingui la meitat del tamany que el senyal d’entrada, així, cal que els delmem per dos. I matemàticament la delmació per dos consisteix en quedar-se amb la meitat de mostres del vector, així que n’emmagatzemarem una de cada dos en un vector auxiliar. En el cas de que s’hagi decidit fer la descomposició en més de dues subbandes, entrem en un procés que ens va desglossant el senyal mica en mica, fins a tenir el nombre de subbandes desitjat. En cada etapa seguim tres passos. El primer és filtrar, per obtenir el doble de subbandes, després delmar cada subbanda obtinguda, i per últim, i si ja estem en el nombre de subbandes desitjat, inicialitzem la matriu de sortida ‘sb’ amb el tamany adequat i hi emmagatzemem cada subbanda en un dels vectors que componen la matriu. Si en canvi, després del segon pas resulta que encara no tenim el nombre de subbandes desitjat, tornarem a filtrar cada subbanda per doblar-ne el nombre, tornarem a delmar, etc... i així fins a arribar al nombre de subbandes desitjat, i per tant, fins a tenir creada la matriu ‘sb’ de sortida amb el nombre de vectors igual al de subbandes i cadascun d’ells amb el mateix tamany que el de les subbandes finals. Així queda emmagatzemada cada subbanda del senyal d’entrada en un dels vector que componen la matriu ‘sb’. Quedaran les subbandes ordenades de baixes a altes freqüències, ordre important ja que alhora de la desencriptació haurem de tenir clar on tenim la informació, i on cal situar-la. - 64 -
Pere Salvadó Encriptació de veu per mescla de subbandes Amb el codi podem apreciar la estructura bàsica de la funció, sense entrar en tots els càlculs, ja que són idèntics als ja vistos, però cada vegada repetits més vegades. Al final apreciem què és el que passa si el nombre de subbandes escollit és dos. Com ja havíem fet el primer filtratge al inici dels càlculs i per tant ja - 65 -
Pere Salvadó Encriptació de veu per mescla de subbandes teníem les dues primeres subbandes, només cal que inicialitzem el vector de sortida ‘sb’ i que emmagatzemem les dues subbandes en els dos vector que conformen ‘sb’. Aquí acaba la descomposició en subbandes. Ja tenim una matriu anomenada ‘sb’ que conté el senyal d’entrada desfragmentat en el nombre de subbandes freqüencials que l’usuari ha decidit. Ara, i passant pel programa principal, toca el procés de mescla. En un cas serà desordenar de les subbandes i en un altre tocarà reordenar-les, depenent de si estem encriptant o desencriptant. 4 3 Mescla de les subbandes Entrem en el procés de mescla. Com ja hem comentat vàries vegades, el procés no serà el mateix si parlem de la mescla quan encriptem o quan desencriptem. 4 3 1 Mescla en encriptació La mescla en encriptació la fem amb la funció ‘barreja_Encript’. És una funció que té una matriu d’entrada, concretament la ‘sb’ obtinguda en la funció ‘BandesVaries’ executada en el programa principal d’encriptació, i que per tant, conté el senyal original fragmentat en subbandes freqüencials i ordenades de baixes a altes freqüències. A la sortida, aquest funció ens retorna una matriu ‘sb_out’ de les mateixes dimensions que la d’entrada, i amb la mateixa informació, però en un ordre diferent. L’ordre de sortida dels vector que - 66 -
Pere Salvadó Encriptació de veu per mescla de subbandes conformen ‘sb’ ve determinat per una matriu de commutació creada a partir de la clau d’encriptació aleatòria introduïda per l’usuari. Un cop dintre la funció, el primer que s’ha de fer és crear la matriu de sortida ‘sb_out’. Com és de les mateixes dimensions que la d’entrada, n’hem de prendre les d’aquest primera de referència. El funcionament de la funció consisteix en canviar els vectors d’ordre, de tal manera que quan fem la recomposició en el procés de síntesi, el senyal que obtinguem estigui encriptat, ja que les subbandes freqüencials han estat permutades i així la informació que tindrem a la sortida de cada subbanda no serà la corresponent. En el cas de que estiguem treballant sobre dues subbandes, el que farem és simplement canviar els vectors de lloc. El vector que conté la informació d’altes freqüències el guardarem en el lloc del que conté les baixes, i viceversa. - 67 -
Pere Salvadó Encriptació de veu per mescla de subbandes En canvi, en el cas de tenir més de dues subbandes, la permutació de les subbandes la farem a partir d’una matriu de commutació. Aquesta matriu de commutació es genera amb de la funció ‘genmatriu’, que depèn de la clau d’encriptació i del nombre de subbandes que ha introduït l’usuari. Aquí és on recau el pes del sistema. La correcta obtenció d’aquests dos paràmetres és el que farà que es creï una matriu de commutació o una altra i per tant, que el sistema encriptador/desencriptador funcioni satisfactòriament. Com podem comprovar, un cop tenim la matriu de commutació, el que hem de fer és trobar on hem de col·locar cada subbanda. Aquest bucle ‘for’ explora la matriu fila a fila, trobant en cada iteració la posició de l’únic ‘1’ que - 68 -
Pere Salvadó Encriptació de veu per mescla de subbandes conté la fila explorada, posició que ens determina per a quin canal de sortida, és a dir vector, hem de treure el vector d’entrada a qui ens estem referint en cada repetició. Figura4.2 En aquest cas podem observar que la ‘A‘ entra com a ‘vector 1’, i la matriu de commutació ens diu que el que entri per la primera entrada, haurà de sortir per el ‘vector 3’, ja que és en la tercera posició de la primera fila on es troba el bit ’1’. I així per a tots els vectors d’entrada, fixant-nos per a cadascun en la fila de la matriu de commutació corresponent. El bucle que comentàvem anteriorment fa aquesta funció, decidir cada vector d’entrada per on haurà de sortir, seguint la matriu de commutació com a guia. 4 3 2 Mescla en desencriptació Ja s’ha comentat que el procés és gairebé el mateix, exceptuant el tracte que es dóna a la matriu de commutació. - 69 -
Pere Salvadó Encriptació de veu per mescla de subbandes Ara, la matriu d’entrada representa els senyal que he estat encriptat, separat per subbandes, així que si la descomposició s’ha fet en el nombre de subbandes correcte, és a dir, en el mateix nombre de subbandes amb que s’ha encriptat, en cada vector tindrem la informació d’una subbanda, però sense estar ordenats. La matriu de sortida, si el codi i el nombre de subbandes són els correctes, serà el senyal original recomposat i separat per subbandes. preparat per passar al procés de síntesi que ens el reagruparà i ens tornarà el senyal original. El procés comença exactament igual que en la mescla de la encriptació, inicialitzant la matriu de sortida amb les dimensions de la d’entrada i fent la permutació de les subbandes per el cas de treballar només amb dues. És en el moment d’utilitzar la matriu de commutació que es diferència un procés d’un altre. Per el primer cas hem vist que a partir de la clau d’encriptació i del nombre de subbandes obteníem una matriu de commutació que ens permutava les subbandes, i ara el que estem intentant és invertir aquesta permutació, és a dir, que cada subbanda torni allà on li pertoca. Per tant, per poder fer això el que necessitem és una matriu de commutació que sigui exactament la matriu ‘inversa’ a la que hem utilitzat en encriptar. Aquest matriu ‘inversa’ és la matriu transposada de la primera. Així doncs, per poder tornar cada subbanda a la part de l’espectre de freqüències que li pertoca necessitem la matriu transposada a la que s’ha utilitzat en encriptar, i la millor manera d’aconseguir-la és obtenir aquesta primera matriu i calcular-ne la seva transposada. És per això que la clau aleatòria i el nombre de subbandes correctes són tant necessaris per desencriptar, ja que necessitem tornar a obtenir la mateixa matriu de commutació inicial, per després transposar-la i poder utilitzar aquesta última per tornar cada subbanda allà on li pertoca. - 70 -
Pere Salvadó Encriptació de veu per mescla de subbandes Podem apreciar com el funcionament és el mateix que en el cas d’encriptar, amb la diferència que ara treballarem amb una variable anomenada ‘tras_matriu’, que correspon a la matriu de commutació trobada amb a funció ‘genmatriu’ i transposada. Així, si ens fixem en l’exemple de matriu de commutació que hem donat anteriorment (Figura4.2), i resulta que ens trobem en el moment de recol·locar les subbandes que aquella matriu ens ha permutat, ara, la matriu de commutació que necessiteríem és la seva transposada. - 71 -
Pere Salvadó Encriptació de veu per mescla de subbandes El bucle es repetirà tantes vegades com etapes tinguem. Per a 16 subbandes, el nombre d’etapes serà de 4, per tant, s’executaran primer les intruccions per nb=16, deprés per nb=8, després per nb=4 i finalment per nb=2, abtenint-ne al final el senyal recompost. Si per el contrari, el nombre de subbandes inicial és de 2, tindrem només una etapa en la qual executarem - 78 -
Pere Salvadó Encriptació de veu per mescla de subbandes només les intruccions per nb=2 i ja haurem acabat. I així per als quatre possibles casos. Les inicialitzacions que hem de fer en cada cas són d’aquells vectors auxiliars que ens ajudaran a fer la interpolació. Per el cas de quatre subbandes, serien aquestes inicialitzacions: Amb aquests vectors auxiliars, ara és quan es fa la interpolació amb el degut augment d’amplitud de cada subbanda. Recordem que al delmar el que hem fet ha estat reduïr el nombre de mostres a la meitat escollint-ne una de cada dues, i per tant, l’amplitud de cada subbanda s’ha vist reduida a la meitat. Per això ara caldrà augmentar-ne l’amplitud. Aquest augment es materialitza multiplicant el valor de cada mostra que conforma el vector de la subbanda per dos. Seguirem mostrant el procés per a quatre subbandes, per veure’n la continuitat i el seu sentit: La interpolació és l’augment de mostres d’un senyal per aproximar-nos al valor real del senyal. Així, una interpolació per dos, vol dir que entre mostra i mostra d’un senyal, hi afegim mostres. Poden tenir el valor amitjanat de les dues mostres entre les quals es col·loca la nova, o pot tenir el valor d’una d’elles, o simplement ser una mostra buida, amb valor zero. En el nostre cas, hem escollit interpolar de tal manera que cada nova mostra serà zero, tenint en - 79 -
Pere Salvadó Encriptació de veu per mescla de subbandes compte que a cada mostra del vector li hem de doblar d’amplitud, amb la qual cosa ja quedarà la amplitud global dessitjada del senyal que aquest vector representa. Per poder fer-ho així, hem fet els dos passo acabats d’exposar. Enlloc d’agafar el vector de mostres i introduïr-hi entre les mostres una mostra buida, ho hem fet al revés. Hem creat els vectors auxiliars que acabem de veure, amb un temany el doble que cada subbanda, i sent una cadena de zeros. I tot seguit li hem substituït una de cada dues mostres buides per una mostra del vector que ens representa la subbanda pertinent, amb la amplitud degudament doblada. Seguint amb la síntesi del senyal, ara és el moment de filtrar. Cada subbanda ja interpolada, la filtrem per el corresponent filtre (el pass-alt o el passa-baix). La utilització d’un filtre o un altre queda definit per la situació de la subbanda. Recordem la estructura d’arbre de la síntesi (Figura3.11) i l’anàlisi (Figura3.9). Un cop situada cada subbanda on li pertoca, gràcies a la interpolació i al filtratge, ara en toca sumar les dues subbandes contígües. En aquest cas que estem exposant, hauríem de sumar les dues subbandes d’altes freqüències per un costat i les dues de baixes per un altre. Ara ja tenim les quatre subbandes d’aquesta etapa en dos vector que ens representen les dues subbandes principals del senyal d’àudio. Com que encara no acabem, segons el bucle de les etapes, encara ens en queda una última, cal que emmagatzemem aquestes dues subbandes que tenim per poder entrar de - 80 -
Pere Salvadó Encriptació de veu per mescla de subbandes nou al bucle i repetir els processos que acabem de descriure, però aquest cop per dues subbandes enlloc de quatre. Així, reinicialitzem el vector ‘sb’ amb les dimensions de les dues subbandes que tenim ara, i tornem a obtenir el valor de ‘nb’, el que ens permetrà que en la nova i última etapa entrem en el cas de nb=2 per poder seguir amb el procés de síntesi fins el final. Un cop fets aquests reassignaments de valors, tornarem a entrar al bucle per acabar amb la última etapa. Els processos acabats de mostrar són per la etapa en que tenim 4 subbandes. Si en tenim més, és a dir 8 o 16, els processos són idèntics, però amb el nombre de subbandes i per tant d’operacions, doblades. Farem el doble d’inicialitzacions, el doble d’interpolacions, el doble de filtratges, el doble de sumes i la reinicialització de ‘sb’ amb el doble de subbandes. Però conceptualment parlant, els processos són idèntics per a les quatre possibles etapes. Només canvia el final de la etapa de 2 subbandes, que com ja s’ha comentat al principi d’aquest apartat, un cop sumades les dues subbandes que s’han interpolat i filtrat, el vector resultant ja és el final, per tant, no caldrà fer reassignacions del vector ’sb’ ni del valor de ‘nb’. Simplement sortim de la etapa de dues subbandes i del bucle d’etapes, i treiem el valor final de l’últim vector obtingut, el que serà el senyal d’àudio reconstruït, i ho assignem al vector de sortida de la funció. - 81 -
Pere Salvadó Encriptació de veu per mescla de subbandes 5 Interfície gràfica Un dels objectius d’aquest projecte, a part del bon funcionament del sistema encriptador/desencriptador creat, també era aconseguir crear una bona interfície gràfica. Entenent per ‘bona’ que la interfícies sigui senzilla, útil i fàcil d’usar, que d’una manera molt intuïtiva qualsevol persona pugui utilitzar-la, i alhora ens mostri els resultats de tal manera que es pugui comprendre què és tot el que ha succeït al llarg del procés d’encriptació i de desencriptació. 5 1 Funcionament general La interfície gràfica creada s’ha fet mitjançant l’eina Guide del mateix programa Matlab, el que ens ha permès una integració perfecta entre el codi del sistema encriptador/desencriptador i el de la mateixa interfície. La interfície, a trets generals, ens permet escollir un arxiu d’àudio del tipus ‘wav’ emmagatzemat en l’ordinador, i veure’n les seves característiques. Ens mostra la gràfica del senyal al llarg del temps i el seu espectre, així com un botó amb la possibilitat d’escoltar-lo. Després ens permet escollir el nombre de subbandes en que es vol treballar, sempre entre 2, 4, 8 o 16, i introduir-hi una clau d’encriptació, d’entre 0 a 9999. Un cop escollits els dos valors correctament, ens permet encriptar el senyal d’àudio. I si l’encriptem, seguidament en torna a mostrar totes les característiques del senyal encriptat. Senyal al llarg del temps, el seu espectre, i la possibilitat d’escoltar-lo i constatar així que el procés d’encriptació funciona correctament i el senyal ha perdut tota la seva intel·ligibilitat, sense perdre però informació. En aquest punt tornem a tenir la possibilitat d’escollir un nombre de subbandes i una clau d’encriptació, aquest cop per el procés de desencriptació, i un cop escollits, podem provar de desencriptar el senyal. Si la clau introduïda i el nombre de subbandes han coincidit amb els primers, la informació que ara ens mostrarà la interfície hauria de ser molt semblant a la mostrada en el primer moment, en - 82 -
Pere Salvadó Encriptació de veu per mescla de subbandes llegir l’arxiu original. Tornem a tenir el senyal representat al llarg del temps, també la seva distribució espectral, i ara ens dona la possibilitat, mitjançant tres botons diferents, d’escoltar el senyal original, l’encriptat i el desencriptat, podent així comparar auditivament els tres senyals i veure si la pèrdua de d’informació deguda al filtratge que veiem en la gràfica realment és important auditivament parlant. Si per el contrari els dos valors introduït per desencriptar no coincideixen amb els de la encriptació, tant en les representacions gràfiques, com en els botons d’àudio, podrem constatar clarament que el senyal recuperat no és pas l’original, veient demostrat també que aquest és un bon sistema d’encriptació d’àudio. La interfície també consta d’un botó que permet netejar tot el que s’ha fet i tornar a començar de nou, encara que igualment si algú canvia els valor de subbandes o clau a mig procés, aquest torna en el punt de lectura d’aquests valors, esborrant les gràfiques i els senyals d’àudio aconseguits fins aleshores. Si s’ha fet tot correctament, l’aparença de la interfície gràfica al final del procés pot ser la següent: Figura5.1 - 83 -
Pere Salvadó Encriptació de veu per mescla de subbandes Fixant-nos en els espectres de la Figura5.1, podem veure com el segon, l’encriptat, és molt diferent al primer, l’original, i en canvi el tercer, el desencriptat, és gairebé igual, exceptuant petites pèrdues degudes al filtratge, però que no en danyen la intel·ligibilitat, ja que la distribució espectral és molt similar. Si no es tenen els dos valors correctes, nombre de subbandes i clau d’encriptació aleatòria, és impossible recuperar el senyal d’àudio original, i per tant, desxifrar-lo. En el cas anterior, en que s’havia encriptat amb 8 subbandes i una clau d’encriptació ‘22’, si intentem recuperar el senyal però ens equivoquem en un dels dos paràmetres, per exemple, la clau la posem de ‘23’ enlloc de ‘22’, el senyal recuperat és inintel·ligible. Figura5.2 Altre cop mirant l’espectre, queda palès que el senyal que s’ha intentat recuperar no s’assembla en res a l’original. L’error en la clau ha fet que la matriu de commutació al desencriptar no fos la transposada exacta de la que - 84 -
Pere Salvadó Encriptació de veu per mescla de subbandes hem usat en encriptar, i això ha fet que les subbandes es tornessin a permutar, però altra vegada situant-se en posicions errònies de l’espectre. 5 2 Implementació en Matlab La implementació de la interfície gràfica s’ha dut a terme amb l’eina Guide del propi programa Matlab. Guide és una aplicació que combina dos mètodes de treball. L’un és gràficament, per on definirem els botons, la seva posició i les seves característiques ‘estètiques’, així com les finestres per on veurem les gràfiques, etc. L’altra és de codi. En algun lloc hem de definir què és el que farà cada element de la interfície, si cridarà a una funció, si serà una entrada o sortida de dades, etc. També amb aquest mètode serà com definirem quan un element de la interfície apareix o es manté ocult, o quan passa a ser operatiu. Entrarem a comentar les set funcions de que consta la part de codi de la interfície, ja que la part gràfica la podem observar directament. Ho farem seguint l’ordre d‘execució del programa, per apreciar-ne bé el seu funcionament. 5 2 1 Programa principal És el programa principal on, al definir gràficament les característiques físiques de tots els elements de la interfície, el programa mateix ens crea les línies de codi pertinents on queden especificades totes aquestes característiques inicials del elements. - 85 -
Pere Salvadó Encriptació de veu per mescla de subbandes La nostra funció pertinent al programa principal s’anomena ‘EncriptadorVeu’, però com acabem de comentar, la crea el mateix Guide, per tant, no entrarem a comentar les línies de codi, ja que aquestes línies contenen les especificacions dels element que directament podem observar en la mateixa interfície. 5 2 2 Selecció de l’arxiu a encriptar Aquesta és la funció que anomenem ‘sel_arxiu’, i serà la primera que s’executi. Això és degut a que en un bon començament hem definit que la interfície gràfica només ens mostri un dels botons, l’anomenat ‘ESCULL ARXIU’ ocultant-nos tota la resta d’elements que la conformen, i aquest botó al clicar-lo té la ordre de cridar a aquesta funció ‘sel_arxiu’. Per tant, inevitablement, aquesta serà la primera funció que invoquem. Un cop invocada la funció, el primer que fa és ocultar el botó d’’ESCULL ARXIU’, per evitar que l’usuari provi d’obrir un nou arxiu a mig procés, sense haver-lo aturat abans. A continuació s’executa la funció del mateix Matlab ‘uigetfile’, la qual ens obre un quadre d’exploració de l’ordinador en busca d’arxius d’àudio del tipus ‘wav’. - 86 -
Pere Salvadó Encriptació de veu per mescla de subbandes Un cop s’escull l’arxiu ‘wav’ desitjat, l’hem de llegir, mitjançant la funció ‘wavread’ també del propi Matlab, obtenint-ne el o els vectors que conformen el senyal d’àudio (un o dos vectors depenent de si és mono o estèreo respectivament), i la seva freqüència de mostreig. Al tenir ja l’arxiu d’àudio seleccionat, ja podrem encriptar, per tant, activem tots aquells elements que necessitem. Abans de fer visible els nombre de subbandes possibles que l’usuari podrà escollir, cal determinar quines possibilitats hi ha. Depenent de la freqüència de mostreig de senyal d’entrada ‘fm’, podrem fer les operacions per un nombre de subbandes o no. Seguint la mateixa taula de freqüències explicada anteriorment (Figura4.1 - apartat 4 2), alhora d’activar aquest camp, - 87 -
Pere Salvadó Encriptació de veu per mescla de subbandes Com veiem els paràmetres d’entrada són els que hem anat obtenint prèviament, primer amb la funció ‘sel_arxiu’ d’on n’hem tret el senyal d’àudio original ‘x’ i la seva freqüència de mostreig ‘fm’, i després amb la funció ‘dades’ on hem obtingut el nombre de subbandes ‘n’ i la clau d’encriptació ‘g’. Un cop s’hagi executat tot el programa d’encriptació, tindrem el senyal encriptat ‘y’, i caldrà mostrar-ne les característiques a l’usuari, perquè aquest pugui apreciar el funcionament de l’encriptador. Així doncs, activem el botó ‘Senyal Encriptat’ que permetrà escoltar-lo, i fem les dues representacions gràfiques, la del senyal al llarg del temps i la de la seva distribució espectral. També caldrà que mostrem els elements de la interfície que permetran intentar desencriptar el senyal que acabem de xifrar. - 94 -
Pere Salvadó Encriptació de veu per mescla de subbandes Ara estem en el punt en que hem finalitzat tot el procés d’encriptació del senyal d’entrada i la aparença de la interfície gràfica comença a complicar-se. Ara ja tenim dos senyals representats, amb els respectius botons per escoltarlos, i amb les especificacions d’encriptació que l’usuari ha introduït. I ja tenim també el quadre de característiques del procés de desencriptació a punt per intentar-ho. - 95 -
Pere Salvadó Encriptació de veu per mescla de subbandes Figura5.5 Ara tenim la possibilitat de començar el procés de desencriptació, i per poder tirar endavant caldrà que definim les característiques de la desencriptació, és a dir, el nombre de subbandes i la clau de desencriptació. Aquest cop, quan definim aquests paràmetres, saltarem directes a la funció ‘dades_des’ que ens llegirà aquests paràmetres. 5 2 5 Obtenció de les dades de desencriptació Quan s’introdueixi un dels os paràmetres de configuració del procés de desencriptació, entrarem a la funció d’obtenció d’aquestes dades, la funció ‘dades_des’. Aquesta funció serà idèntica a la d’obtenció de les dades d’encriptació (‘dades’), amb la única diferència que aquests paràmetres de configuració els llegirem en un altre element de la interfície, és a dir, la lectura de les dades la - 96 -
Pere Salvadó Encriptació de veu per mescla de subbandes farem en els valors d’entrada del panell ‘DESENCRIPTADOR’, i no del ‘ENCRIPTADOR’ com en la funció ‘dades’. Així, les línies de codi no les mostrarem, ja que són una repetició de les de la funció ‘dades’ (apartat 5 2 3), però sí que farem una ullada a com ens queda la interfície després d’aquesta funció. Figura5.6 Com anteriorment succeïa amb la funció ‘dades’, ara ens ha aparegut el botó que permetrà tirar endavant el procés, en aquest cas, el botó ‘DESENCRIPTA’ que ens permetrà intentar desencriptar el senyal que tenim encriptat. - 97 -
Pere Salvadó Encriptació de veu per mescla de subbandes 5 2 6 Procés de desencriptació El procés s’iniciarà quan l’usuari cliqui en el botó ‘DESENCRIPTA’, el qual està associat a la funció homònima, ‘desencripta’. La funció ‘desencripta’ començarà per fer la crida i la execució del programa principal del nostre sistema desencriptador, la funció ‘DesEncriptador_ok’. Només en un cas no s’executarà aquesta funció, concretament si pretenem fer la desencriptació amb dues subbandes i comprovem de bon començament que la clau d’encriptació ‘g’ (obtinguda en la funció ‘dades’) i la clau de desencriptació ‘gg’ (obtinguda en la funció ‘dades_des’) no coincideixen. Recordem que és un requisit indispensable per poder recuperar correctament un senyal encriptat que tant el nombre de subbandes en que es fan els dos processos com les dues claus, siguin idèntiques. Per el cas de dues subbandes però codis diferents ens estalviarem entrar en el programa principal de desencriptació, facilitant així el funcionament del programa. I és que si entréssim en el programa principal amb aquestes característiques, perdríem temps d’execució per al final obtenir-ne el mateix resultat, és a dir, un senyal a la sortida que continua estant encriptat. Nosaltres el que farem és que per aquest cas aïllat directament assignarem al vector de sortida, per on hauríem de treure’n el senyal original recuperat, el vector del senyal encriptat. - 98 -
Pere Salvadó Encriptació de veu per mescla de subbandes Recordem que els paràmetres d’entrada de la funció ‘DesEncriptador_ok’ són el senyal original encriptat ‘y’, la freqüència de mostreig del senyal original ‘fm’, i els dos paràmetres introduïts per l’usuari en el panell ‘DESENCRIPTADOR’ i obtinguts amb la funció ‘dades_des’, el nombre de subbandes en que desencriptarem ‘nn’ i la clau de desencriptació ‘gg’. La sortida del desencriptador ‘xx’ serà la reconstrucció del senyal original si les claus de encriptació i desencriptació, i els nombres de subbandes en un procés i en l’altre, coincideixen respectivament. En el cas de que uns o altres paràmetres no siguin idèntics, el senyal ‘xx’ continuarà sent un senyal encriptat. Per poder apreciar el funcionament del nostre sistema encriptador/ desencriptador hem creat tres botons que en aquest punt mostrarem per pantalla, els quals ens permeten escoltar els tres senyals del procés, és a dir, el senyal original, el senyal encriptat i el senyal desencriptat o reconstruït. Aquests botons duen precisament aquests tres noms, ‘Senyal Original’, ‘Senyal Encriptat’ i ‘Senyal Reconstruït’. Finalment caldrà que mostrem els senyal desencriptat gràficament, mitjançant la seva representació temporal i la seva representació espectral. - 99 -
Pere Salvadó Encriptació de veu per mescla de subbandes Ara ja podem considerar que estem a la interfície gràfica definitiva, la que ens mostra els tres passos per els quals el senyal que hem escollit al principi del procés ha anat passant. Tenim les representacions temporals i espectrals del senyal original, del senyal encriptat i del senyal desencriptat, així com els tres botons esmentats anteriorment que ens permeten escoltar els tres senyals. També veiem el nom de l’arxiu del senyal original, i els paràmetres que s’han configurat en la encriptació i en la desencriptació, nombres de subbandes i claus. - 100 -
Pere Salvadó Encriptació de veu per mescla de subbandes Figura5.7 Omnipresentment tenim en la interfície gràfica un botó anomenat ‘TORNA A COMENÇAR’ que com el seu nom indica, ens permet tornar a començar de nou tot el procés d’encriptació/desencriptació. 5 2 7 Reinici dels càlculs Clicant sobre el botó ‘TORNA A COMENÇAR’ cridem a la última funció del programa, la funció ‘neteja’. És una funció que com el seu nom ja ens diu es dedica a netejar la interfície gràfica. Amb això volem dir que és una funció que ens permetrà tornar a l’inici del tot sense necessitat de tancar l’aplicació i tornar-la a obrir. Per això cal que bàsicament es dediqui a tornar a ocultar els elements visibles en la - 101 -
Pere Salvadó Encriptació de veu per mescla de subbandes interfície en el moment en que el botó és clicat, de tal manera que tornem a l’inici, és a dir, en el punt en que només teníem un botó que deia ‘ESCULL ARXIU’. Per poder fer-ho sense problemes i estalviant feina innecessària, hem col·locat un comptador en cada una de les sis funcions explicades fins ara. Així, quan l’usuari decideixi clicar el botó ‘TORNA A COMENÇAR’, el programa es dedicarà a ocultar només els elements que sabem que estan a la vista i que ho sabem mirant en quin punt està el comptador. Com s’ha mostrat al llarg de la explicació de la interfície gràfica, els elements que la conformen es van fent visibles mica en mica, i per tant, si cada vegada que fem visible algun nou element augmentem un comptador, podrem controlar exactament quants i quins elements estaran visibles en qualsevol moment que ho vulguem saber. Així doncs, un cop activada la opció de ‘TORNA A COMENÇAR’ i per tant la funció ‘neteja’, el primer que es farà serà comprovar el valor del comptador, i depenent de quin sigui, amagarem uns elements o un altres. Sempre seran els visibles en aquell moment, ja que sabrem quins encara no s’han fet visibles i que per tant no cal ocultar. Així doncs, sigui quin sigui el moment en que l’usuari decideixi tornar a començar, la aparença de la interfície que en resultarà després de clicar el botó ‘TORNA A COMENÇAR’ serà la següent. - 102 -
Pere Salvadó Encriptació de veu per mescla de subbandes Figura5.8 Constatem que quan cliquem a ‘TORNA A COMENÇAR’, realment tornem a començar el procés des de l’inici. - 103 -
Pere Salvadó Encriptació de veu per mescla de subbandes Finalment, mostrarem una execució realitzada amb un arxiu de música, per comprovar que el nostre sistema també és útil per encriptació d’àudio, no només veu. Concretament és un fragment d’una cançó d’estil ‘reggae’, amb molta varietat d’instruments de vent i rítmics, on veurem com es descompon i es torna a compondre, perdent molt poca informació del senyal. Figura6.11 Amb aquest últim exemple i tots els altres exposats, es demostra que el sistema d’encriptació/desencriptació que s’ha creat funciona com s’esperava, no només alhora de fragmentar i recuperar el senyal amb poques pèrdues d’informació, si no que també queda clar que si els dos paràmetres de configuració ‘secrets’ usats en desencriptació no coincideixen amb els usats en encriptació, no hi ha manera de recuperar el senyal original. Per molt que un dels dos paràmetres coincideixi, no n’hi ha prou. Necessitem saber els dos exactament. - 110 -
Pere Salvadó Encriptació de veu per mescla de subbandes 7 Conclusions i possibles millores 7 1 Conclusions En aquest punt veurem si els objectius que ens havíem marcat a l’inici del projecte s’han assolit, examinant la feina feta al llarg d’aquest any de treball i valorant-ne els resultats, tant numèrics com personals. Així doncs farem tres valoracions: el funcionament del sistema implementat, els coneixements assolits, i finalment, la valoració personal de la experiència. La implementació del sistema encriptador/desencriptador de veu ha resultat ser molt eficaç. S’ha aconseguit crear un sistema d’encriptació simètric, de clau secreta, capaç d’alterar la intel·ligibilitat del senyal en bona mesura, i alhora capaç de recuperar aquesta intel·ligibilitat sense unes pèrdues d’informació gaire grans. Tot això complint el requisit d’un sistema de clau secreta, és a dir, que qui no tingui accés als dos paràmetres privats de configuració del procés d’encriptació (nombre de subbandes i clau d’encriptació privada), no podrà pas recuperar el senyal original. Sempre el continuarà tenint encriptat i per tant inintel·ligible. També s’ha aconseguit crear una interfície gràfica molt completa. Amb això es vol dir que la interfície creada és un medi d’execució del sistema encriptador/desencriptador idoni, ja que permet que qualsevol usuari, amb coneixements previs o no, entengui què està passant, tant per la presentació adequada dels resultats (visuals i sonors) que permeten veure l’efecte del sistema sobre el senyal introduït, com per la possibilitat de que l’usuari intervingui activament en el procés i comprovi quins són els paràmetres que es poden configurar, i quina repercussió tenen en el procés. - 111 -
Pere Salvadó Encriptació de veu per mescla de subbandes Pel que fa a coneixements assolits, s’ha de dir que realment és molt gratificant quan a partir d’un projecte d’aquest tipus, en el que resulta que has d’endinsar-te en varis temes estudiats prèviament durant la carrera, és ara quan trobes un sentit i unes utilitats a coses que fins aquest moment eren simples temaris d’assignatures, sense anar més enllà. Com ja dic, he après moltes coses que fins ara em sonaven, però que ara han pres un sentit teòric i pràctic molt més interessant, al meu parer. Un exemple podria ser el mateix programa Matlab. Un cop acabat tot el procés de programació, tant del sistema encriptador/desencriptador com de la interfície gràfica, es pot dir que he assolit un bon nivell de coneixements d’un programa fins ara conegut però desconegut alhora, i que em proporciona un gran ventall de possibilitats i recursos. Finalment, la meva valoració personal, que ja he introduït en part en les valoracions acabades d’exposar, és de satisfacció. Satisfacció per l’acabament, al meu parer, molt d’un projecte llarg i laboriós, que m’ha dut més maldecaps dels que esperava, però que alhora m’ha donat grans satisfaccions. M’ha obert una mica més el camp de visió i m’ha permès entendre millor el funcionament de la universitat i dels estudis que fins ara he estat cursant. Trobant-los un sentit que en alguns moments de la carrera no sabia on ni com buscar. Per fi! 7 2 Possibles millores Un cop acabada tota la feina de programació hem constatat el bon funcionament del sistema, però tampoc hem d’oblidar que és un sistema d’encriptació d’arxius d’àudio, el que ens pot limitar una mica les seves aplicacions. El que realment seria una millora substancial d’aquest projecte seria implementar-lo per treballar a temps real. En els sistemes de telefonia per exemple, tant mòbil com fixa, seria bo poder tenir accés a un sistema com - 112 -
Pere Salvadó Encriptació de veu per mescla de subbandes aquest, però amb funcionament a temps real, ja que seria una bona eina alhora de conservar la confidencialitat de converses. També es podria millorar si el sistema treballés amb arxius del tipus ‘mp3’, no només ‘wav’. Els ‘mp3’ són de tamany considerablement més reduït i un sistema com el que s’ha creat que els pogués encriptar i desencriptar, permetria intercanvi d’aquest tipus d’arxius confidencialment. Seria aplicable a la distribució de música per internet, legalment per part de les discogràfiques, o a l’intercanvi d’arxius entre usuaris restringits d’un grup de treball, etc. La complicació que ens presenta el sistema no és pas la encriptació o la desencriptació, que es podrien dur a terme idènticament a com s’ha implementat, si no que s’hauria de crear una funció de lectura d’arxius ‘mp3’, ja que el Matlab no en té cap de predefinida. Una altra possible millora seria el canvi d’estructura alhora de descompondre el senyal en subbandes. Seria bo implementar-lo de tal manera que la descomposició la féssim sempre sobre la banda de baixes freqüències obtinguda a partir de la prèvia descomposició. Figura7.1 La major descomposició a baixes freqüències pot permetre una millor encriptació, ja que és en aquesta zona de l’espectre on trobem major informació del senyal, i per tant, si anem fragmentant el senyal mica en mica, però sempre sobre les baixes freqüències, la permutació de les subbandes que se n’obtinguin donarà una alteració de la intel·ligibilitat més elevada, que és el que es busca en un sistema d’encriptació d’aquest tipus. I amb la posterior desencriptació podríem recuperar de nou el senyal original, amb la mateixa taxa de pèrdua d’informació que aquest sistema que s’ha creat ja ens dóna. - 113 -
Pere Salvadó Encriptació de veu per mescla de subbandes 8 Bibliografia Llibres - M.Faúndez, "Tratamiento digital de voz e imagen y aplicación a la multimedia", Marcombo Baixareu Editores, 2000 - B.Gold i N.Morgan, "Speech and Audio Signal Processing", Wiley Press, 1999 - V.K.Ingle i J.G.Proakis, "Digital Signal Processing Using Matlab", Prentice Hall, 1996 - S.W.Smith, "The Scientist and Engineer's Guide to Digital Signal Processing", California Technical Publishing, 1997 - A.Carrión, "Acústica. Apunts", Departament TSC - EUETIT, 2003 - A.Carrión, "Acústica. Transparències", Departament TSC - EUETIT, 2003 - A.J.Mendez, P.C.van Oorschot i S.A.Vanstone, "Handbook of Applied Cryptography", CRC Press, 1996 - J.Zhou, M.Yung i Y.Han, "Applied Cryptography and Network Security", Springer, 2000 - 114 -
Pere Salvadó Encriptació de veu per mescla de subbandes Pàgines web - http://www.mathworks.com - "The MathWorks. MATLAB and Simulink for Technical Computing" - http://www.mathworks.com/access/helpdesk/help/techdoc/matlab.html - “Documentation for MathWorks Products. MATLAB including External Interfaces/API, GUIDE, Handle Graphics, File I/O, Notebook.” - http://es.wikipedia.org/wiki/Portada - "Wikipedia. La enciclopedia libre. Español" - http://www.inicia.es/de/alt64/articulo - "Artículos en @lt+64" - http://www.technologyreview.com - "Technology Review. The Impact of Emerging Technologies. From MIT. Information on Emerging Technologies & impact on business & society. " - http://www.technologyreview.com/channel/info.aspx - “Technology Review. Infotech Channel Homepage” - http://www.iec.es - "Institut d'Estudis Catalans" - http://www2.iecat.net/gc/... .../SECCI%26Oacute%3B+FILOL%26Ograve%3BGICA - "Institut d'Estudis Catalans. Secció Filològica" - http://www.whatis.com - http://whatis.techtarget.com - "Wahtis?com. The learning IT encyclopedia and learning center" - 115 -
Pere Salvadó Encriptació de veu per mescla de subbandes - http://www.searchsecurity.com - http://searchsecurity.techtarget.com - "SearchSecurity.com. The Web's best security-specific information resource for enterprise IT professionals” - 116 -
Pere Salvadó Encriptació de veu per mescla de subbandes Agraïments Vull agrair primer de tot a la família i als amics (que no anomenaré, els aludits ja sabeu qui sou!), per la paciència i l’ajuda, més que res moral, que m’han donat en aquest últim any de carrera. Han hagut d’aguantar molts maldecaps per culpa d’un projecte (aquest que teniu a les mans) que, sincerament, poc han entès... qui no està ficat una mica en aquest món, li sona a xino tot això! Però tot i així, m’han sabut aguantar i fins i tot algú hi ha mostrat interès. Per tot això, i molt més, moltes gràcies a tots! També vull donar les gràcies a l’Ignasi, el tutor d’aquest projecte, per la planificació i l’ajuda que m’ha proporcionat. Potser hem estat més temps del que tocava en això, però estic molt content del resultat obtingut. Ha valgut la pena, tant acadèmica com personalment. I he descobert noves facetes de qui fins ara havia estat simplement un professor més. Gràcies. Vull agrair, i de forma molt efusiva (la més efusiva de totes!), a les terres gironines, que amaguen gent tant genial, i única! Què hagués fet sense el Shiatsu i les nits de dimecres?! No m’ho vull ni imaginar! Gràcies de TOT cor!! Per acabar, gràcies a tothom que hagi arribat fins a aquesta pàgina de la memòria...vol dir que ha trobat interès en algo que hi he dedicat molts esforços, i això em gratifica enormement! Grazie mile!! - 117 -
Pere Salvadó Encriptació de veu per mescla de subbandes - 118 - Annex1: Codi informàtic del sistema encriptador/desencriptador Annex2: Codi informàtic de la interfície gràfica