presenta - tesis.ipn.mx

94
INSTITUTO POLITÉCNICO NACIONAL Centro de Innovación y Desarrollo Tecnológico en Cómputo SISTEMA DE CIFRADO DE VOZ PARA EQUIPOS DE TELEFONÍA MÓVIL. TESIS QUE PARA OBTENER EL GRADO DE MAESTRÍA EN TECNOLOGÍA DE CÓMPUTO PRESENTA Ing. Gabriel Eduardo García Rojas DIRECTORES M. en C. Eduardo Rodríguez Escobar M. en C. Marlon David González Ramírez. Diciembre 2015

Upload: others

Post on 20-Oct-2021

10 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: PRESENTA - tesis.ipn.mx

INSTITUTO POLITÉCNICO NACIONAL

Centro de Innovación y Desarrollo Tecnológico en Cómputo

SISTEMA DE CIFRADO DE VOZ PARA EQUIPOS DE TELEFONÍA MÓVIL.

TESIS QUE PARA OBTENER EL GRADO DE MAESTRÍA EN TECNOLOGÍA DE CÓMPUTO

PRESENTA

Ing. Gabriel Eduardo García Rojas

DIRECTORES

M. en C. Eduardo Rodríguez Escobar M. en C. Marlon David González Ramírez.

Diciembre 2015

Page 2: PRESENTA - tesis.ipn.mx
Page 3: PRESENTA - tesis.ipn.mx
Page 4: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

ii

Resumen

Las comunicaciones móviles, han tenido un crecimiento en el número de dispositivos de

uso diario, entre ellos se encuentran los Smartphone, que además de hacer llamadas o enviar

mensajes de texto, permiten instalar diferentes aplicaciones con distintos fines. Aunado a esto la

seguridad en los dispositivos de telefonía móvil es escaza en cuanto a la protección de nuestros

datos personales.

Por ello en este trabajo se muestra el desarrollo de una aplicación en un dispositivo de

telefonía móvil con el Sistema Operativo Android con versión 4.0 Ice Cream Sandwich, con ella se

pretende proteger aquella información en audio particularmente mensajes de voz.

Se aplicó un cifrado DES en su variante Triple-DES 96 ya que ésta tiene poca aplicación

sobre archivos de audio. El algoritmo de cifrado fue programado sobre el IDE Eclipse con una

Programación Orientada a Objetos creando clases propias del cifrado Triple DES 96 excluyendo las

bibliotecas contenidas en los paquetes de java.security y java.cypto.

Se utilizaron bibliotecas contenidas en la API de la versión de Android para la obtención

del audio, estas bibliotecas contienen clases y métodos para crear y reproducir información de

audio, fue importante considerar que no todos los dispositivos permiten el uso de esta biblioteca

por falta de codificadores o fuentes.

También se muestra el desarrollo de la implementación de un candado físico, el cual

evitar el uso de la aplicación, si no esta no cuenta con dispositivo. Este candado está

implementado en un microcontrolador PIC 18F2455 a través de una conexión USB, donde el

microcontrolador envía la información referente a las llaves para el cifrado Triple-DES 96, ya que si

un usuario ajeno no cuenta con el candado, no es posible ingresar las llaves manualmente,

evitando cifrar información.

Page 5: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

iii

Abstract

The mobile communications have grown in the number of everyday devices, in addition to

them, there are smartphones which also make calls or send text messages and allow install

different applications for various purposes. Added to this, the mobile device security in the

personal data is low.

Therefore in this work shows the development of an application on a mobile telephone

with Android Operating System version 4.0 Ice Cream Sandwich, with this, the purpose is protect

that audio information, particularly voice messages.

The DES encryption algorithm in variant Triple-DES-96 was applied, since it has little

application for audio files. This encryption algorithm was programmed in platform Eclipse with

Object Oriented Programing, creating own classes of the TripleDES96 encryption excluding the

libraries: java.security and java.cypto.

The libraries included in API from the Android version were used to obtain the audio data;

this libraries contain the classes and methods to create and audio playing. It was important

consideration that not all devices allow the use of this library, because encoders and sources are

missing.

Also, the development of an implementation of a physical lock is displayed, this avoid the

program use if this not found in the device. This lock was implemented in a PIC18F2455

microcontroller connected with an USB, where the microcontroller sends the information of the

keys to cipher in Triple-DES-96, and if a foreign user don't have the lock, is impossible introduce

manually the keys, avoiding encrypt.

Page 6: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

iv

Agradecimientos

Agradezco infinitamente a todo aquellos que han formado parte de este capítulo de mi

vida, que con su apoyo ha sido posible este nuevo logro.

Agradezco a mis padres Irma y Calixto por la confianza que siempre me han brindado,

además de todos los valores que me han enseñado y la importancia del trabajo duro para alcanzar

las metas deseadas.

Para mis hermanos David, Edgar, Gerardo que siempre han sido un pilar en mi formación,

sé que es posible contar con ellos en todo momento, ya sea solo para escuchar o darme un

pequeño consejo. Gracias Marisol y Leonardo que se han integrado a la familia en estos últimos

años.

Aunque la distancia puso un prueba en nuestro camino, hemos demostrado fortaleza, ya

que ha hecho de nosotros personas de trabajo duro y de nuevos logros, con tu apoyo Beatriz

Marlet además de todos los que nos rodean ha sido posible finalizar esta meta deseada, por una u

otra circunstancia hemos superado los obstáculos, no me alcanzan las palabras para agradecer al

destino el habernos puesto en el mismo camino, gracias por ser esa persona autentica.

De manera especial agradezco a la familia Rojas, García, Torres y Perea por el apoyo que

me brindan. A mis tíos Arturo y Elvia que se han adelantado pero siempre formaran parte de mi

vida y estarán en todo momento mi corazón, gracias por sus consejos y por su ejemplo ya que

lucharon hasta el final.

A mis amigos Benito, Sinuhé y Santiago por la amistad que hemos construido y el apoyo

que me han brindado a lo largo de estos diez años de amistad. Y a mis compañeros de este

camino, Julián, Jorge, Eduardo, Joaquín y Javier.

Finalmente a mis profesores Eduardo y Marlon David, por la confianza y la oportunidad de

trabajar con ustedes en este proyecto.

Page 7: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

v

Índice General Resumen...... ........................................................................................................................................ ii

Abstract....... ........................................................................................................................................iii

Capitulo 1. Introducción ...................................................................................................................... 1

1.1 Estado del Arte .......................................................................................................................... 2

1.1.1 Protocolos y redes de comunicación para telefonía móvil ................................................ 6

1.2 Planteamiento del Problema .................................................................................................. 10

1.3 Objetivo General ..................................................................................................................... 10

1.4 Objetivos Particulares ............................................................................................................. 10

1.5 Metodología del Proyecto ....................................................................................................... 11

Capitulo 2. Marco teórico .................................................................................................................. 12

2.1 Telefonía Móvil ........................................................................................................................ 12

2.1.1 Tecnologías móviles ......................................................................................................... 13

2.1.2 GSM .................................................................................................................................. 14

2.2 SO Android .............................................................................................................................. 19

2.2.1 Versiones de Android y niveles de API ............................................................................. 19

2.2.2 Arquitectura de Android .................................................................................................. 22

2.3Seguridad ................................................................................................................................. 24

2.3.1 Historia de la Criptografía ................................................................................................ 24

2.3.2 Protocolos y algoritmos de cifrado .................................................................................. 26

2.3.3 Protocolo de criptografía simétrica .................................................................................. 26

2.3.4 DES.................................................................................................................................... 27

2.3.5Triple-DES .......................................................................................................................... 33

2.3.6Triple-DES96 ...................................................................................................................... 34

2.4 Microcontroladores ................................................................................................................. 36

Capitulo 3. Desarrollo ........................................................................................................................ 38

3.1 Configuración y desarrollo en Android ................................................................................... 38

3.2 Media Recorder ....................................................................................................................... 40

3.3Formato de Audio 3gpp ........................................................................................................... 42

3.4Cifrado Triple-DES 96 Android ................................................................................................. 44

3.4.1 Clase CifradoTDES3gpp .................................................................................................... 45

3.4.2 Clase CifradoTDES96 ........................................................................................................ 45

Page 8: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

vi

3.4.3 Clase DescifradoTDES96 ................................................................................................... 46

3.3.4 Clase LlavesTDES96 .......................................................................................................... 46

3.4 Vista de la Actividad Principal ................................................................................................. 46

3.5 Clase Principal ......................................................................................................................... 48

3.6 Vista para Actividad de Solicitud de Llaves ............................................................................. 51

3.7 Actividad Solicitud Llaves ........................................................................................................ 52

3.8 Implementación de Microcontrolador .................................................................................... 53

3.8.1 Configuración USB en Android ......................................................................................... 53

3.8.2 Configuración USB en Microcontrolador ......................................................................... 55

Capitulo 4. Pruebas de Cifrado y Descifrado. .................................................................................... 60

4.1 Pruebas de la aplicación Android. ........................................................................................... 60

Capitulo 5. Análisis para implementación en GSM. .......................................................................... 73

5.1 Vulnerabilidad de las llamadas telefónicas. ............................................................................ 73

5.2 Implementación de cifrado en la red GSM ............................................................................. 75

Conclusiones ..................................................................................................................................... 80

Trabajos a futuro ............................................................................................................................... 81

Referencias ........................................................................................................................................ 82

Page 9: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

vii

Índice de Figuras

Figura 2.1. Proceso de Comunicación de telefonía móvil ................................................................. 12

Figura 2.2. DynaTac 8000x ................................................................................................................ 13

Figura 2.3. Iphone 5s (izq.), Galaxy S5 (der.) .................................................................................... 13

Figura 2.4. Top 8 SO móviles en el mundo ........................................................................................ 14

Figura 2.5. Top 8 SO móviles en México ........................................................................................... 14

Figura 2.6. Mapa de Cobertura GSM ................................................................................................ 15

Figura 2.7. Modelo de capas GSM . ................................................................................................... 17

Figura 2.8. Arquitectura de Android ................................................................................................. 23

Figura 2.9. Diagrama de cifrado DES ................................................................................................. 28

Figura 2.10. Diagrama general de TripleDES ..................................................................................... 34

Figura 2.11. Diagrama primera ronda Triple-DES 96 ........................................................................ 35

Figura 3.1. Datos recogidos durante un período de 7 días terminado el 2 de noviembre de 2015. 39

Figura 3.2. Diagrama General de la clase MediaRecorder ............................................................... 40

Figura 3.3. Estructura de un archivo de audio 3gpp ........................................................................ 43

Figura 3.4. Diagrama de lectura y escritura del archivo de audio .................................................... 44

Figura 3.5. Vista de actividad principal de cifrado ............................................................................ 47

Figura 3.6. Vista de actividad de solicitud de llaves .......................................................................... 51

Figura 3.7. Registro de Actividad en AndroidManifest.xml .............................................................. 52

Figura 3.8. Diagrama Electrónico conexiones PIC18F2455 .............................................................. 55

Figura 3.9. Cable On-To-Go (OTG) ..................................................................................................... 58

Figura 4.1. Audio "Prueba número nueve aplicación de grabado de mensajes de voz" .................. 61

Figura 4.2. Audio "La prueba diez fue la última realizada el día 25 de Febrero del 2015" ............... 61

Figura 4.3. Audio de fragmento del libro Cien Años de Soledad ...................................................... 62

Figura 4.4. Prueba uno, espectro superior Audio original, inferior Audio Cifrado ........................... 62

Figura 4.5. Prueba 2 de Audio espectro superior original, inferior cifrado ...................................... 63

Figura 4.6. Prueba 3 de Audio espectro superior original, inferior cifrado ...................................... 63

Figura 4.7. Prueba 4 de Audio espectro superior original, inferior cifrado ...................................... 64

Figura 4.8. Prueba 5 de Audio espectro superior original, inferior cifrado ...................................... 64

Figura 4.9. Prueba 6 de Audio espectro superior original, inferior cifrado ...................................... 64

Figura 4.10. Prueba 7 de Audio espectro superior original, inferior cifrado .................................... 65

Figura 4.11. Prueba 8 de Audio espectro superior original, inferior cifrado .................................... 65

Figura 4.12. Prueba 9 de Audio espectro superior original, inferior cifrado .................................... 66

Figura 4.13. Prueba 10 de Audio espectro superior original, inferior cifrado .................................. 66

Figura 4.14. Audio original prueba 1 "Prueba uno". ......................................................................... 67

Figura 4.15. Audio cifrado de prueba 1. ............................................................................................ 67

Figura 4.16. Audio descifrado del archivo cifrado de prueba 1. ....................................................... 67

Figura 4.17. Audio original prueba 10. .............................................................................................. 67

Figura 4.18. Audio cifrado de prueba 10. .......................................................................................... 67

Figura 4.19. Audio descifrado del archivo cifrado de prueba 10. ..................................................... 68

Figura 4.20. Circuito microcontrolador PIC18F2455 con USB ........................................................... 69

Page 10: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

viii

Figura 4.21. Tipos de conectores USB ............................................................................................... 70

Figura 4.22. Conexión PIC18F2455 a Sony MT11 vía USB ................................................................. 70

Figura 4.23. Muestra de las llaves en la vista principal ..................................................................... 71

Figura 4.24. Llaves ingresadas por microcontrolador ....................................................................... 71

Figura 4.25. Prueba final microcontrolador, audio original .............................................................. 71

Figura 4.26. Prueba final, audio cifrado ............................................................................................ 72

Figura 4.27. Prueba final, audio descifrado ...................................................................................... 72

Figura 5.1. Dispositivo Stingray ......................................................................................................... 73

Figura 5.2. Dispositivo Grossamer ..................................................................................................... 74

Figura 5.3. Dispositivo Tiggerfish ...................................................................................................... 75

Figura 5.4. Diagrama módulo SIM900 .............................................................................................. 76

Figura 5.5. Entrada de audio SIM900 ................................................................................................ 77

Figura 5.6. Salida de audio Sim900 .................................................................................................. 77

Page 11: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

ix

Índice de Tablas

Tabla 2.1. Protocolos e interfaces de la arquitectura GSM .............................................................. 18

Tabla 2.2. Permutación inicial 1 (PC-1) ............................................................................................. 29

Tabla 2.3. Corrimientos Llaves DES ................................................................................................... 29

Tabla 2.4. Permutación 2 (PC-2) ........................................................................................................ 30

Tabla 2.5. Permutación Inicial (IP) ..................................................................................................... 30

Tabla 2.6. Expansión (E) .................................................................................................................... 31

Tabla 2.7. Caja S1 .............................................................................................................................. 31

Tabla 2.8. Cajas para obtención de subclaves ................................................................................... 32

Tabla 2.9. Permutación P .................................................................................................................. 32

Tabla 2.10. Permutación inversa (IP**-1) ......................................................................................... 33

Tabla 2.11. Parámetros Microcontrolador PIC18F2455 [17] ............................................................ 37

Tabla 3.1. Proveedores de teléfonos celulares ................................................................................. 38

Tabla 3.2. Top 5 Sistemas Operativos en Smartphones .................................................................... 38

Tabla 3.3. Plataformas Android ......................................................................................................... 39

Tabla 4.1. Características Sony MT11 ............................................................................................... 60

Tabla 4.2. Características Moto G ..................................................................................................... 60

Tabla 4.3. Resultados de Cifrado y Descifrado .................................................................................. 68

Page 12: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

1

Capitulo 1. Introducción

En la actualidad existen diferentes tipos de medios para establecer una comunicación

hablando de largas distancias, ya sea correo tradicional, radio, internet, telefonía fija o móvil, ésta

última desde 1974 con la telefonía celular sigue teniendo un crecimiento exponencial mejorando

su servicio y calidad. Los sistemas de comunicación móviles utilizan redes de radiocomunicación

privadas la cuales se pueden describir como la conmutación automática de algunos canales en un

sistema repetidor multicanal.

Uno de los sistemas más utilizados para la comunicación móvil es GSM (por sus siglas en

inglés Global System for Mobile Communications). GSM es un sistema de telefonía netamente

digital, originalmente se definió como un estándar europeo abierto para redes de teléfonos

móviles digitales que soportan voz, mensajes de texto, datos y roaming (servicio de comunicación

inmediata).

Por su amplio campo de desarrollo los sistemas de comunicación están expuestos a

diferentes ataques de espías que interceptan mensajes de texto y escuchan llamadas privadas

entre los usuarios, donde esto puede traer consecuencias al usuario, como puede ser suplantación

de identidad o algún tipo de fraude con sus datos personales.

Hablando sobre criptografía moderna y el uso de computadoras los algoritmos de cifrado

han permitido en el corto tiempo de su aparición, proteger nuestra información en cuestión de

segundos solo con tener a la mano una llave o contraseña necesaria. Pero a su vez el crecimiento

de la tecnología de cómputo ha concedido que algunos algoritmos queden en desuso por ataques

que permiten obtener la información original, cifrada por dicho algoritmo. Pero hay otros que

fueron mejorados sin llegar perder complejidad computacional; tal es el caso del algoritmo Triple-

DES 96, que puede tener un crecimiento de su llave de 112 bits a 168 bits elevando su complejidad

de cálculo, además de la implementación de permutaciones variables por medio del número

irracional PI y un entero positivo.

Por otra parte debe destacarse que la implementación de sistemas operativos montados

en dispositivos de telefonía móvil, han permitido crear aplicaciones que ayuden al usuario a

mantener una vida más organizada, esto es posible gracias a que el sistema operativo Android al

ser de distribución libre, se puede crear casi cualquier aplicación para el usuario.

Cabe mencionar que existen aplicación para los dispositivos de telefonía móvil que ayudan

a proteger nuestra información personal, como son mensajes de texto, fotografías, videos, correos

electrónicos, hasta aquellas que nos permiten hacer más con nuestro dispositivo, tal es el caso de

aplicaciones que realicen tareas como bloqueo de aplicaciones, eliminación de archivos personales

desde internet o aplicaciones que permitan realizar llamadas de telefónicas. Este tipo de

aplicaciones se pueden encontrar de forma gratuita para su descarga pero algunas de ellas puede

Page 13: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

2

tener algún costo adicional por su uso. Retomando el caso de las aplicaciones que nos permitan

realizar llamas seguras, son aplicaciones que trabajan sobre protocolo de internet dejando fuera

las comunicaciones de radio como son GSM.

Es por ello que se desarrolla la siguiente tesis con la finalidad de crear una aplicación que

tenga como finalidad proteger nuestras llamadas telefónicas, que viajen por un canal inseguro

utilizando el algoritmo de cifrado Triple-DES 96 y la red de telefonía móvil GSM, la cual se

pretende sea de libre distribución sobre el sistema operativo Android. Se plantea también el uso

de un microcontrolador que funja como candado físico, para evitar el mal uso de la aplicación, así

solo el usuario que tenga el candado podrá realizar llamadas seguras.

En el capítulo uno se describe información relevante actual sobre los sistemas de cifrado

de voz sobre redes de telefonía GSM, así como las aplicaciones de mayor uso para realizar

llamadas de voz cifradas creadas en diferentes sistemas operativos.

En el capítulo dos se muestra el marco teórico donde se encuentra la información respecto

a la telefonía a los protocolos de comunicación GSM, también la información del sistema operativo

Android y finalmente el protocolo de cifrado simétrico Triple-DES 96.

Con respecto al capítulo tres es descrito el proceso de desarrollo la implementación del

sistema de cifrado de mensajes de audio creados a partir de un dispositivo de telefonía móvil. Es

descrito el proceso de la programación del sistema sobre el dispositivo además de la configuración

y la programación en el microcontrolador.

Las pruebas realizadas sobre la implementación del sistema de cifrado se muestran en el

capítulo cuatro. En este capítulo se muestran los resultados obtenidos en primer lugar de los

cifrados de mensajes de voz y posteriormente la implementación del microcontrolador con el

dispositivo de telefonía móvil con Android.

La investigación realizada para el desarrollo de la comunicación GSM con respecto a la

implementación del sistema es descrita en el capítulo número cinco, además de los resultados

obtenidos de ésta investigación. Finalmente los últimos apartados exponen las conclusiones y

trabajados a futuro que arrojo la investigación mostrada en esta tesis.

1.1 Estado del Arte

Algunas investigaciones han resuelto problemas para el cifrado de la voz por medio de

diferentes técnicas o protocolos. En el documento Novel End-to-End Voice Encryption Method in

GSM System[1] se encontró que el mecanismo de seguridad de GSM no puede garantizar una

comunicación segura end-to-end (punto a punto), es por eso que se presentó un novedoso

método de cifrado de voz basado en el canal de voz actual, que puede superar la escasez de los

canales de datos y solucionar el problema de la encriptación de voz al penetrar en el codificador

de voz RPE-LTP. El método propuesto en el artículo antes mencionado realiza comunicaciones

Page 14: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

3

seguras end-to-end en el sistema GSM con un retardo de tiempo corto, actuando con un buen

comportamiento con todas las redes de este tipo y es de fácil implementación sin ninguna

modificación en el sistema de señalización GSM actual.

Se sabe que el estándar GSM fue diseñado con un nivel moderado de servicio de

seguridad, por lo cual en el documento A simple and cheap end-to-end voice encryption framework

over GSM-based networks[2] se muestra el diseño de un sistema en primera parte para autenticar

al emisor utilizando una clave pre-compartida donde las comunicaciones entre el emisor y la

estación base se podían cifrar utilizando un cifrado continuo A5/1 y A5/2, pero ambos algoritmos

se volvieron vulnerables al lograrse romper [3][4]; la intercepción de la voz podría hacerse de una

forma inalámbrica.

En segunda parte se implementó un framework para el cifrado de voz end-to-end sobre

redes GSM en el cual se establecen 3 fases al proceso de comunicación: la lectura de parámetros,

donde el prototipo lee un mensaje SMS especial almacenado en el teléfono móvil, la fase de

llamada realizada donde el prototipo ordena al teléfono móvil hacer un CSD (Circuit Switched

Data) utilizando el estándar de comandos AT (attention) los cuales son enviados a través de un

enlace Bluetooth entre el prototipo y el teléfono móvil y finalmente la fase de transmisión de voz

donde la voz digital se comprime y se cifra antes de enviarla a través de la conexión CSD.

Gracias a los sistemas operativos utilizados de los dispositivos de comunicación móviles

como Smartphone, tabletas, entre otros, se han desarrollado gran variedad de aplicaciones que

permiten crear una comunicación segura entre dos dispositivos ya sea para proteger datos o

llamadas. La siguiente lista muestra las aplicaciones más relevantes para diferentes dispositivos

móviles.

· RedPhone Secure Call. Aplicación de distribución gratuita que proporciona un cifrado end-

to-end para sus llamadas con un protocolo ZRTP 'version' byte and superfluous nullbytes,

asegura sus conversaciones para que nadie pueda escucharlas. Utiliza su número de

teléfono normal para hacer y recibir llamadas, por lo que no es necesario otro

identificador. El sistema cifrado funciona cuando las dos partes tengan instalada la

aplicación. Creado para el SO Android versión 2.2 y superiores, trabaja sobre redes 3G y

WiFi.

· Cryptotel - Securecalls. Una aplicación gratuita para los sistemas operativos Android

versión 1.6 o superiores y Symbian. Aplicación dedicada a plataforma de llamadas seguras

más adecuado para los clientes de Europa del Este con los servidores ubicados alrededor

de la península de los Balcanes realiza llamadas anónimas de bajo costo e internacionales

a todo el mundo. Tiene un sistema de manejo de señalización híbrido y protocolos de

comunicación para cifrados ZRTP peer-to-peer y llamadas SRTP sobre la red 3G.

· Silent Phone. Aplicación con capacidad de vídeo y voz similar a Face Time

Su distribución es gratuita, sin embargo se necesita una suscripción a SilentCircle.com.

Page 15: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

4

Usa contactos generales y favoritos existentes de su dispositivo. Trabaja con los SO

Android en versiones 2.3.3 o superiores y IOS 5.0 o superiores. Proporciona cifrado end-to-

end desde el dispositivo móvil o de un ordenador sobre redes 3G, 4G o WiFi.

· SECUMOBI. Aplicación de descarga gratuita pero requiere una suscripción anual y una

cuota mensual. Permite a sus suscriptores obtener una tarjeta micro SD con tecnología

patentada donde el software ofrece una rentable y poderosa comunicación cifrada end-to-

end para establecer comunicaciones privadas, secretas y silenciosas tales como voz y

mensajes. SecuMobi es un producto sueco de SINVO AB, con una garantía de innovación,

empresa sueca registrada con el número: 556809-2042. La aplicación funciona en

teléfonos móviles estándar y es fácil de usar sin sacrificar su seguridad. Es una aplicación

registrada en Android 2.3 o 4.0 y Symbian S60, sobre redes 3G, 4G. SecuMobi ofrece

soluciones avanzadas utilizando la telefonía móvil y la mensajería cifrada a través del

protocolo IP para la transmisión de contenido cifrado entre los teléfonos celulares. Las

claves públicas y privadas se generan en la tarjeta microSD. La clave privada está protegida

y nunca sale de la tarjeta. Mantiene una protección contra ataques de canales laterales y

de autenticación a través de ECC 384. Cifrado de voz basado en AES (Advanced Encryption

Standard) 256 con clave única para cada llamada.AES 256 y firmas digitales para proteger

el almacenamiento de los mensajes y la libreta de contactos. El acceso a la tarjeta está

protegida por códigos PIN y PUK.

· My Secure Voice - safe calls. Aplicación basada en Android 2.3 o superiores, IOS y

Blackberry que funciona sobre la red 3G. Para realizar o recibir una llamada de voz,

tendrás que autenticarte con un código PIN para acceder a las claves criptográficas.

Cifrado e integridad de la llamada desde el principio hasta el final (end-to-end). La clave

está cifrada y firmada digitalmente. El código PIN permite bloquear/desbloquear el acceso

a las llamadas salientes/entrantes. Gracias al uso de certificados y una criptografía

asimétrica, las llamadas que hagas estarán protegidas tanto contra el espionaje (conocido

como ataque Man-in-the-middle) como contra la suplantación de identidad (conocida

como spoofing). Con los protocolos SRTP, SSL y la infraestructura de clave pública (PKI), se

garantiza la máxima integridad y seguridad de las conversaciones en todas las etapas de la

transmisión de datos (end-to-end). Finalmente las llamadas están protegidas a través de

AES, RSA (1024, 2048), SHA-1.

· Kryptos. Kryptos es una aplicación de voz sobre protocolo de Internet (VoiceOverInternet

Protocol, VoIP) segura. La aplicación proporciona una conectividad VoIP. Trabaja sobre

redes 3G y 4G en sistemas Operativos Android 2.1 o superiores, IOS y Blackberry. Utiliza

un estándar de cifrado AES a 256 bit de grado militar para cifrar comunicaciones de voz

entre usuarios y cifrado RSA (Rivest, Shamir y Adleman) de 1024 bit durante el intercambio

de claves simétricas.

Page 16: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

5

· Cellcrypt Mobile. Aplicación basada en los Sistemas Operativos Android 2.3.3 o superiores

iOS 4, 5 o 6 y Symbian S60 sobre las redes 3G, 4G y Satelital. Para realizar una llamada, los

usuarios sólo tienen que abrir la aplicación móvil Cellcrypt seleccionando el icono en su

teléfono, introducir manualmente un número Seguro de Cellcrypt (o seleccionando un

contacto guardado en la agenda de teléfonos) y pulsar 'llamar'. Cellcrypt Mobile debe

estar en ejecución en ambos dispositivos para que ambos puedan cifrar/descifrar la

llamada de voz en cada extremo para garantizar la seguridad a lo largo de todo el

recorrido entre ambas partes que llaman. Utiliza el canal de datos (IP) en lugar de canal de

voz, ambos dispositivos tienen que estar conectados a Internet a través de la conectividad

de datos estándar proporcionada por el proveedor de servicios. Maneja una criptografía

AES un algoritmo de Firma Digital de Curva Elíptica (ECDSA Elliptic Curve Digital Signature

Algorithm) para firmas digitales, una Curva Elíptica Diffie-Hellman ECDH para negociación

de claves entre dispositivos, también algoritmo de SHA (Secure Hash Algorithm) en el

mensaje cifrado. Adicionalmente, antes que estos algoritmos se procesen, Cellcrypt utiliza

algoritmos adicionales para ofrecer mayor seguridad (doble cifrado). Por ejemplo, la

llamada de voz es primeramente cifrada utilizando RC4-256 bit y después es cifrada de

nuevo utilizando AES-256 bit.

· Kriptocall. Aplicación de costo por descarga. La aplicación permite llamar entre cualquier

celular y computadora de forma ilimitada y sin restricción. Se recomienda usar una

conexión de Internet de alta velocidad, ya sea Internet GPRS o WiFi. Los codecs de voz,

automáticamente detectarán el ancho de banda del canal para adaptarse de la mejor

manera posible. Disponible en Sistemas Operativos Android 2.3 o superiores,IOS, Mac,

Linux, Blackberry y Windows PC. Utiliza ZRTP para validación de llaves como una

extensión delReal-time Transport Protocol (RTP) que describe el establecimiento de un

intercambio Diffie-Hellman de claves para el Secure Real-time Transport Protocol (SRTP).

· Cryptify Call. Aplicación disponible en Android 4.0 o superiores y IOS. Usando Cryptify

permite llamadas normales, sin embargo, proporciona la seguridad de llamadas cifradas y

autenticadas de extremo a extremo. Se experimenta un sonido de alta calidad con baja

latencia durante las llamadas seguras. Trabaja sobre redes EDGE, 3G, 4G y WiFi siguiendo

el estándar 3GPP para una comunicación de voz y datos de usuarios cifrando sólo en la

interfaz de radio, entre el teléfono móvil y la estación base.

· PhoneX-Secure Communication. Prueba gratuita por 7 días posteriormente se requiere

hacer una suscripción anual y una cuota mensual. Trabaja en los Sistemas Operativos

Android 2.3 o superiores y IOS sobre la red WiFi. Ofrece una comunicación segura para las

personas y las empresas. Protege las llamadas y mensajes por un fuerte criptografía

simétrica y asimétrica. Cada usuario dispone de certificado propio x509v3 digital. La

seguridad end-to-end provisto por X509v3 certificados de usuario final. Los mensajes son

cifrados utilizando RSA, AES y firmado digitalmente. Las llamadas son cifradas por AES o

Page 17: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

6

Twofish. Las claves de cifrado son generadas por el protocolo de Diffie-Hellman. Maneja

ZRTP como protocolo de clave-acuerdo para negociar las claves de cifrado simétrico (AES,

Twofish).

· RaKaCom: Secure Calls. Ofrece llamadas de voz y video seguros, junto con las

comunicaciones de texto cifrados para usuarios de todo el mundo. Con su propia red

global de nodos, RokaCom encuentra el servidor más cercano para que la experiencia sea

de mejor calidad de audio y conversaciones de vídeo posible. Cifrado End-to-End, que

asegura las conversaciones, además de un cifrado AES 256 Suite B Compliant para voz y

video llamadas seguras de alto nivel. Maneja el cifrado AES 256 c para chat, con claves que

se generan en cada sesión. Disponible en Android 3.0 o superiores y IOS 5 o superiores

sobre la red 3G.

1.1.1 Protocolos y redes de comunicación para telefonía móvil

1.1.1.1 Protocolos

A continuación se realizara una breve descripción de los protocolos de comunicación de

telefonía móvil utilizados.

Sistema Global para las comunicaciones Móviles (GSM)

El sistema global para las comunicaciones móviles (Global System for Mobile

Communications por sus siglas en inglés) es un sistema estándar, libre de regalías, de telefonía

móvil digital. Surgió como alternativa digital a los antiguos sistemas analógicos de telefonía celular

como AMPS y TACS, con la intención de obtener mayor seguridad en la comunicación de voz y de

datos. GSM permite que el usuario se conecte a través de su teléfono a su computadora para

enviar y recibir mensajes, correos electrónicos, faxes, también permite navegar por Internet

accediendo con seguridad, así como utilizar otras funciones digitales de transmisión de datos,

incluyendo el servicio de mensajes cortos (SMS) o mensajes de texto.

Los mecanismos de seguridad implementados en GSM lo convierten en un estándar de

comunicaciones móviles mucho más seguro que los sistemas analógicos anteriores. Las

capacidades de cifrado y autentificación aseguran la seguridad de las conversaciones de teléfono

celular GSM y de las credenciales de identificación del abonado contra posibles escuchas

clandestinas.

GPRS

Surge como nueva tecnología para la transmisión de datos en redes móviles GSM

incorporando un servicio basado en paquetes. El uso de paquetes, no está orientado a conexión,

permitiendo un uso más eficiente del espectro de la señal. Este sistema permite también enviar y

recibir datos en modo de paquetes completamente, sin consumir recursos de la red.

Page 18: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

7

La tecnología GPRS utiliza la misma infraestructura de radio que GSM esto implica

principalmente ventajas para el consumidor, ya que le permite estar siempre conectado a distintos

servicios.La principal transformación proviene de la combinación de varias tecnologías (WAP/XML,

Java y el Servicio Multimedia de Mensajes (MMS)).

UMTS

Sistema universal de telecomunicaciones móviles UMTS (Universal Mobile

Telecommunications System) es sucesora de GSM para móviles de tercera generación debido a

que la tecnología GSM, no podía seguir un camino evolutivo para llegar a brindar servicios

considerados de tercera generación. UMTS permite introducir muchos más usuarios a la red

global del sistema, y además permite incrementar la velocidad a 2 Mbps por usuario móvil.

Sus tres grandes características son las capacidades multimedia, una velocidad de acceso a

Internet elevada, la cual también le permite transmitir audio y video en tiempo real; y una

transmisión de voz con calidad equiparable a la de las redes fijas.

VoIP móvil

Aunque ciertamente no es un servicio completo de telefonía móvil como GSM o UMTS es

posible el envío de señales de voz sobre protocolo IP o VoIP, esto significa que la señal de voz que

se transmite en una comunicación entre dos terminales móviles, viaja a través de internet

empleando un protocolo IP.

Con los últimos avances en telefonía móvil se han podido realizar terminales

suficientemente eficientes como para permitir una conexión a internet a través de redes

inalámbricas, con todo lo que conlleva: navegar por internet, enviar y recibir correos electrónicos,

descargar diferentes archivos de datos y utilizar aplicaciones de mensajería instantánea ya sea por

texto, voz o video. Estas últimas aplicaciones son las que permiten enviar y recibir paquetes de voz

que sería la base de la VoIP móvil.

WiFi

Es una tecnología de comunicación inalámbrica mediante ondas también llamada WLAN

(Wireless LAN) o estándar IEEE 802.11 que permiten a cualquier usuario utilizar la red sin

necesidad de instalar un cable telefónico. Esta tecnología fue incorporada a los teléfonos celulares

como otra alternativa de envío y recepción de datos, permitiendo a los usuarios conectarse a la

red. La emisión y recepción de datos se realiza a través de radiofrecuencia, donde WiFi es

clasificada en dos tipos por su velocidad de transmisión:

· 802.11b, que emite a 11 Mb/seg. y

· 802.11g, más rápida, a 54 MB/seg.

Page 19: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

8

LTE

LTE (Long Term Evolution) es un estándar de la norma 3GPP. Definida para unos como una

evolución de la norma 3GPP UMTS (3G), para otros es un nuevo concepto de arquitectura

evolutiva (4G).

LTE es la interfaz radioeléctrica basada en OFDMA (Orthogonal Frequency-Division

Multiple Access) para el enlace descendente (DL) y SC-FDMA para el enlace ascendente (UL). La

modulación elegida por el estándar 3GPP hace que las diferentes tecnologías de antenas MIMO

(Multiple-input Multiple-output)tengan una mayor facilidad de implementación.

CDMA

CDMA (Code División Múltiple Access) es un término genérico para varios métodos de

multiplexión o control de acceso al medio basados en la tecnología de espectro expandido (spread

spectrum) que puede emplearse indistintamente como espectro ensanchado, expandido, difuso o

disperso para referirse en todos los casos al mismo concepto.

En CDMA, la señal se emite con un ancho de banda mucho mayor que el precisado por los

datos a transmitir; por este motivo, la división por código es una técnica de acceso múltiple

de espectro expandido. A los datos a transmitir simplemente se les aplica la función

lógica XOR con el código de transmisión, que es único para ese usuario y se emite con un ancho de

banda significativamente mayor que los datos.

EDGE

EDGE (Enhanced Data Rates for GSM Evolution) también conocida como EGPRS (Enhanced

GPRS) es una tecnología de la telefonía móvil celular, que actúa como puente entre las

redes 2G y 3G. EDGE se considera una evolución del GPRS. Esta tecnología funciona con

redes GSM. EDGE o EGPRS, puede ser usado en cualquier transferencia de datos basada

en conmutación por paquetes (Packet Switched), como lo es la conexión a Internet. Los beneficios

de EDGE sobre GPRS se pueden ver en las aplicaciones que requieren una velocidad de

transferencia de datos, o ancho de banda altos, como video u otros servicios multimedia.

1.1.1.2 Redes

2G

La telefonía móvil 2G no se clasifica como un estándar o un protocolo sino como un

manera de indicar el cambio de protocolos de telefonía móvil analógica a digital.

Los protocolos en los que se basa la telefonía 2G son los siguientes:

· GSM

Page 20: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

9

· Cellular PCS/IS-136, conocido como TDMA (conocido también como TIA/EIA136 o ANSI-

136) es un sistema regulado por la TIA (Telecommunications Industry Association)

· IS-95/CDMA-ONE, conocido como CDMA (Code Division Multiple Access)

· D-AMPS (Digital Advanced Mobile Phone System)

· PHS (Personal Handyphon System), es un sistema utilizado al principio en Japón por la

compañía NTT DoCoMo con el propósito de tener un estándar enfocado más a la

transferencia de datos que el resto de los estándares 2G.

Los sistemas 2G soportan velocidades de información más altas para voz pero está

limitado en envío de datos. Ofrece algunos servicios de datos como, fax y SMS (Short Message

Service). La mayoría de los protocolos de 2G ofrecen diferentes niveles de encriptación.

La red 2G tuvo una evolución a 2.5G que ofrece características extendidas tales como

GPRS (General Packet Radio System), HSCSD (High Speed Circuit Switched Data), EDGE (Enhanced

Data Rates for Global Evolution), IS-136B, IS-95B, entre otros, que permitiendo dar el paso hacia la

tecnología 3G.

3G

Es la abreviación de tercera generación de transmisión de voz y datos a través de telefonía

móvil mediante UMTS (Universal Mobile Telecommunications System o servicio universal de

telecomunicaciones móviles), donde los servicios asociados con ésta generación proporcionan la

posibilidad de transferir tanto voz y datos (desde una llamada telefónica hasta una video-llamada)

y datos no-voz (como descarga de programas, envío de correos electrónicos, y mensajería

instantánea).

Es importante mencionar que dentro de la generación 3G se utiliza el servicio GPRS

(General Packet Radio Service) que puede dar velocidad de datos desde 56 kbit/s hasta 114 kbit/s.

Además, permite usarse para servicios como el acceso al protocolo de aplicaciones inalámbricas

WAP (Wireless Application Protocol), servicio de mensajes cortos SMS (Short Messaging Service),

sistema de mensajería multimedia MMS (Multimedia Messaging Service), y para servicios de

comunicación por Internet como correo electrónico y el acceso a internet.

4G

Esta generación está basada completamente en el protocolo IP, siendo un sistema y una

red, que se obtiene gracias a la convergencia entre las redes cableadas e inalámbricas. Esta

tecnología podrá ser usada por módems inalámbricos, móviles inteligentes y otros dispositivos

móviles. La principal diferencia con las generaciones predecesoras es la capacidad para

proporcionar velocidades de acceso mayores de 100 Mbit/s en movimiento y 1 Gbit/s en reposo,

manteniendo una calidad de servicio de punta a punta de alta seguridad.

Page 21: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

10

1.2 Planteamiento del Problema

México sufre de 12 ataques cibernéticos por segundo, de los que 60% son al gobierno para

tratar de extraer información y provienen principalmente de complejas redes piratas de Rusia y

Estados Unidos, reveló la corporación alemana GData[5]. Esta información pone en vulnerabilidad

la seguridad de cualquier gobierno, empresa nacional, trasnacional o de los particulares en el país.

Ahora bien el espionaje telefónico considerado un ataque a la privacidad es un delito en

México de acuerdo con el artículo 5to. de la Ley de Seguridad Nacional[6] y en nuestro país, como

ocurre en otros; se ha utilizado como herramienta de ataque político al infiltrarse en

conversaciones entre personajes públicos o autoridades, dando así a conocer esa información al

divulgarla.

A lo largo del siglo XX y XXI las tecnologías de la comunicación han tenido cambios de una

forma exponencial, una de estas tecnologías son las de comunicación móvil. Algunas han

permitiendo agilizar la comunicación, pero estas a su vez han sufrido de innumerables ataques a la

privacidad al realizarse alguna llamada telefónica, con ello muchas personas se han dado a la tarea

de desarrollar diferentes formas de proteger nuestra privacidad ya sea por medio de un

dispositivo físico, una aplicación o programa que garantice una comunicación segura entre el

transmisor y receptor.

Finalmente el uso de sniffer o analizador de paquetes es una vulnerabilidad a la que los

dispositivos móviles están expuestos; si no se tienen las herramientas adecuadas para localizarlos

es posible que estos intercepten el mensaje enviado entre un receptor y el transmisor tomando

gran cantidad de información que viaja sin algún tipo de cifrado. Estos espías se pueden encontrar

en la red y cualquier usuario puede hacer uso de ellos.

1.3 Objetivo General

Diseñar un sistema de comunicación segura en dispositivos de telefonía móvil cifrando la voz.

1.4 Objetivos Particulares

· Analizar la vulnerabilidad de los dispositivos móviles en el uso de llamadas telefónicas.

· Diseño de sistema de cifrado y descifrado de voz en base a los protocolos de seguridad.

· Diseño de sistema de cifrado en software o framework según la pertinencia del proyecto.

· El algoritmo de cifrado será de fuente disponible.

· Implementación del sistema en un dispositivo de comunicación móvil con un sistema

operativo Android utilizando su máquina virtual.

Page 22: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

11

1.5 Metodología del Proyecto

A continuación se describe la metodología seguida para desarrollar este proyecto y el

cumplimiento del objetivo general y particulares descritos anteriormente.

Se planteó la implementación del sistema operativo Android como plataforma de

desarrollo, el cual está montado sobre una máquina virtual Java (Dalvik), por ello se requirió el

conocimiento de la programación orientada a objetos con el uso del lenguaje de programación

Java, también es requerido el lenguaje de programación xml para el desarrollo de las vistas o

actividades en Android. El IDE (Integred Development Enviroment) utilizado para la programación

es Eclipse versión Indigo o superior.

En cuanto al tratamiento digital de la voz, se requirió el conocimiento del estándar de

audio 3gpp, establecido por The production of Technical Specifications for a 3rd Generation Mobile

System (3GPP)basado en redes de comunicación GSM. Los fundamentos principales tomados en

cuenta fueron, la creación y reproducción de archivos de audio con este formato, además de su

contenido a nivel bit para la manipulación de la información contenida en dichos archivos de

audio.

Respecto a las comunicaciones móviles, GSM es el estándar más utilizado del mundo, por

ello y para realizar la innovación respecto a las aplicaciones existentes, se planteó el uso de esta

red; donde se requirió el conocimiento de los protocolos de comunicación sobre GSM, además del

manejo del estándar y la viabilidad de su implementación sobre el sistema operativo Android,

además de los permisos necesarios para la manipulación de los protocolos de la red.

Por otra parte, en el uso de los algoritmos de cifrado, se optó por el manejo de Triple-DES

96, ya que ofrece una alta protección de información clasificada, además de ser un algoritmo de

poco uso ya que es poco conocido y su implementación sobre audio es escaza. Para su

implementación en el proyecto, se requirió el conocimiento de los algoritmos antecesores DES y

Triple-DES, siendo estos la base de Triple-DES 96, además del conocimiento de permutaciones

variables con el teorema JV. El algoritmo implementado fue programado sobre el lenguaje Java y

se necesitó el uso de manejo de ficheros.

Finalmente, la aplicación hace uso de un candado físico montado sobre un

microcontrolador, para ello se requirió del conocimiento de la programación de los

microcontroladores particularmente el manejo información a través del puerto USB, tanto para el

dispositivo de telefonía móvil con Android como en el microcontrolador, ya que se requiere una

sincronización entre ambos dispositivos para el compartimiento de las llaves de cifrado utilizados

por la aplicación.

Page 23: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

12

Capitulo 2. Marco teórico

2.1 Telefonía Móvil

Las ondas de radio han tenido un gran uso desde su aparición en las comunicaciones y una

de las destacadas quizás es en la comunicación con teléfonos móviles, ya que está permite realizar

un enlace desde cualquier lugar y hasta en movimiento. Los componentes básicos para una

comunicación de telefonía móvil son:

· Terminal (Teléfono móvil emisor)

· Estación base (Antenas receptoras y transmisoras)

La forma de proporcionar el servicio de telefonía celular en una región es dividir ésta en

áreas pequeñas llamadas células (de ahí el nombre de telefonía celular), estas células a su vez son

divididas en áreas más pequeñas donde son colocadas las estaciones bases que envían las ondas

de radio, esto con el fin de controlar la congestión de la célula debido al incremento de los

usuarios.

La figura 1 muestra el proceso que rige a la comunicación de telefonía móvil.

Figura 2.1. Proceso de Comunicación de telefonía móvil

Las ondas de radio son transmitidas a una antena receptora colocada en la estación base,

donde ésta realiza el enlace con la red telefónica conmutada para localizar al receptor, una vez

localizado se realiza el enlace con la estación base del receptor para que finalmente la antena

envíe las ondas de radio al teléfono móvil receptor.

Además de la antenas, en las estaciones base hay una serie de dispositivos electrónicos,

como son, baterías para garantizar la actividad aún en el caso de cortes de fluido eléctrico.

Page 24: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

13

2.1.1 Tecnologías móviles

La tecnología de la telefonía celular ha ido evolucionando de manera exponencial desde su

aparición en 1974 por la compañía DynaTAC cell lanzando al mercado el Analog Motorola

DynaTAC 8000X Advanced Mobile Phone System en 1984, hoy en día compañías como Samsung o

Apple dominan en mercado con sus modelos más reciente como son el Samsung Galaxy S6 o el

Iphone 6srespectivamente.

Figura 2.2. DynaTac 8000x

Figura 2.3.Iphone 5s (izq.), Galaxy S5 (der.)

Esta evolución no solo permitió que los teléfonos celulares hayan tenido una cambio en su

arquitectura de hardware sino que también el software, llevándolos a un nivel de desarrollo de

gran magnitud, algunas características importantes que podemos mencionar son conexión a redes

de telefonía de alta velocidad, implementación de un sistema operativo, desarrollo de

aplicaciones, conexión a internet entre otras.

El uso de los sistemas operativos en la arquitectura de un teléfono celular o dispositivo

móvil ha proporcionado una potente herramienta para el desarrollo de aplicaciones que permiten

al usuario desde programar una alarma hasta realizar compras por internet. Los sistemas

operativos más usados en el mundo son Android de Google y IOS de Apple, las siguientes figuras

Page 25: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

14

muestran el porcentaje de usuarios registrados de los 8 sistemas más utilizados en el mundo y en

México en el último año[7].

Figura 2.4. Top 8 SO móviles en el mundo

Figura 2.5. Top 8 SO móviles en México

2.1.2 GSM

GSM proveniente de las siglas en inglés Global System for Mobile Communications del

CEPT establecido en 1982 es un sistema global para las comunicaciones móviles establecido para

unificar los distintos sistemas móviles digitales y desplazar definitivamente a los analógicos

Page 26: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

15

existentes de esa época. GSM fue planteado como un sistema multioperador y su estándar fue

diseñado con la posibilidad de de que varios operadores pudieran compartir el espectro.

Actualmente GSM alcanza un 80 % de uso y está presente en una gran cantidad de países,

soportando tanto voz como texto y datos al incorporar GPRS.

La figura 6muestra el mapa de la cobertura GSM actual.

Figura 2.6. Mapa de Cobertura GSM[8]

La red GSM permite conexiones tanto de voz como de datos; en las llamadas de voz la

transmisión se envía a 13 kbit/s gracias a un codificador GSM, respecto a la conexión de los datos

el celular se utiliza como un módem de 9.6 kbit/s.

GPRS (General Packet Radio Services) fue la primera de las mejoras de GSM, para la

transmisión de datos con velocidades de 115 kbit/s; posteriormente surgió EDGE (Enhanced Data

Rates for GSM Evolution) segunda mejora en GSM y de software para GPRS, que ahora soportaba

tasas de hasta 348 kbit/s usando 8 slots GSM.

La ventaja principal de un sistema digital celular como lo es GSM es que permite realizar o

recibir llamadas en cualquier país que haya adoptado el estándar, aun estando en tránsito por

ellos, facilidad que se conoce como itinerancia o roaming.

El estándar de telefonía móvil GSM facilita la existencia de una serie de servicios añadidos

a los de la telefonía fija, como son el envío de datos sin la necesidad de un módem externo a

través de una tarjeta para conexión con el puerto serie del ordenador, y el envío de fax grupo 3

gracias a la digitalización de las transmisiones de radio. GSM posibilita la creación de redes

privadas virtuales, ofrece un servicio de mensajes alfanuméricos cortos (SMS) de hasta 160

caracteres y toda una gama amplia de servicios suplementarios, a la vez que utiliza un espectro de

forma mucho más eficiente que los sistemas analógicos, con células más pequeñas y presenta un

menor consumo de energía, lo que permite terminales más reducidas.

Page 27: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

16

Su mayor seguridad, al tener acceso por tarjeta inteligente (SIM) y poder cifrar todas las

conversaciones para evitar las posibles intercepciones en la red es otra de muchas ventajas que

tiene el sistema GSM, aunque esta última es un servicio que no todos los operadores

implementan, así que se tiene que ser precavido al utilizarlo.

El sistema GSM es un sistema de multiplexado en el tiempo (TDM) de banda estrecha

dentro de la banda 900/1800 MHz (1900 en EUA y América del sur)y una separación de 200 KHz

entre portadoras, en cualquiera de las tres bandas, con lo que proporciona al menos una selección

de canales de radiofrecuencia dentro del sistema igual a 18 dB.

2.1.2.1 Conversión analógica/digital en GSM

La comunicación mediante GSM se realiza digitalizando, codificando y comprimiendo la

voz para enviarla por la interfaz de radio. Para la conversión de la voz analógica a digital, se utiliza

el procedimiento estándar de muestreo, cuantificación y codificación, antes de su compresión

para que se adapte a la capacidad de la interfaz de aire.

El muestreo de la señal se realiza a 8 KHz al igual que el caso de la telefonía fija, esto

debido a que depende solo del ancho de banda utilizado (0-4 KHz); en cuanto a la cuantificación se

considera 8,192 niveles (213) para una mejor calidad. Esta señal digital resultante es dividida en

segmentos de 20 ms (260 bits) que alimentan el codificador de voz para el análisis y reducción de

velocidad de bit. Con la ayuda de un vocoder se obtiene un flujo de datos de 13 Kbit/s utilizando el

método de codificación RPE-LTP (Regular Pulse Exitation-Long Term Prediction) y finalmente se

realiza un incremento en la velocidad de hasta 22.8 Kbit/s al introducir los códigos de detección de

errores.

En el caso normal de 13 Kbit/s la voz se divide en bloques de 20 ms, dando así un total de

260 bits de información. A cada uno de estos bloques se le añaden 196 bits de redundancia para

protección contra errores, dando un total de 456 bits por bloque de voz.

Entre los conmutadores de la red GSM y la red fija, la tasa de información se adapta a los

64 Kbit/s común en un enlace PCM, para su conmutación y transmisión sobre circuitos

convencionales. La transmisión de datos en GSM requiere el empleo de los servicios portadores

definidos para tal fin y que se apoyan directamente en la naturaleza digital de la interfaz de radio.

En el caso de que la señal se dirija desde la red hacia el terminal de 64 Kbit/s, el transcodificador la

pasa a 16 Kbit/s donde 13 Kbit/s son para la voz y 3 Kbit/s son para la señalización.

2.1.2.2 Protocolos de GSM

GSM presenta un planteamiento en capas para los diferentes protocolos e interfaces, el

cual proporciona una transparencia a través del medio. La pila de protocolos, métodos de acceso o

partes de control de la Capa 1 (TDMA, FDMA) y Capa 2 (LAPDm, SCCP) de GSM corresponden a la

capa física y enlace del modelo de referencia OSI.

Page 28: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

17

La capa 3 de GSM es conocida como la capa de señalización y comprende las capas 3 a 7

del modelo OSI y está compuesta de las siguientes subcapas.

· Nivel CM (Connection Management) administra el establecimiento y terminación de las

llamadas solicitadas por el usuario.

· Nivel MM (Mobility Management) administra los procedimientos de localización y de

registro, informando de la ubicación de los usuarios.

· Nivel RR (Radio Resource Management) es el encargado de establecer, mantener

terminar el enlace entre la MS y el MSC. en el BTS y en el BSC existe el nivel RR que

corresponde a la funcionalidad del nivel RR.

En la figura 7 se muestra el modelo de las capas GSM,

Figura 2.7. Modelo de capas GSM[9].

donde:

CM: Connecion Management SCCP: Signaling Connection Control Part MM: Mobility Management TCAP: Transaction Capabilities Application Part RR: Radio Resource Management MAP: Mobile Aplication Part LAPDm: Link Access Protocol Data for Mobile

ISUP: International Suscriber Dialling Number Part

BTSM: BTS Management TUP: Telephone User Part BSSAP: Base Station System Application Part MTP: Message Transfer Part

Page 29: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

18

En la siguiente tabla se muestra un resumen de los principales protocolos e interfaces de

la arquitectura GSM, además de la información que circula sobre ellos.

Tabla 2.1. Protocolos e interfaces de la arquitectura GSM[9]

Interfaz Situada entre Descripción Intercambio de información de

usuario señalización

A MSC-BSC Permite el intercambio de información sobre la gestión del subsistema BSS, de las llamadas y de la movilidad. A través de ella, se negocian los circuitos que serán utilizados entre el BSS y el MSC.

Si SS7

Abis BSC-BTS Permite el control del equipo del radio. Si LAPD

B VLR-MSC asociados

VLR es la base de datos que contiene toda la información que permite ofrecer el servicio a los clientes que se encuentran en el área de influencia de sus MSC asociados. Por lo tanto, cuando un MSC necesite proporcionar información sobre un móvil acudirá a su VLR. Esta interfaz NO debe ser externa (por el volumen de información intercambiada)

No MAP/B

C HLR-GSMC Interfaz utilizada por los getways GMSC para enrutar la llamada hacia el MSC destino. La GSMC no necesita contar con un VLR, se trata de un nodo que sólo transmite llamadas.

No MAP/C

D HLR-HLR Permite intercambiar información entre ambas bases de datos, esta información se encuentra relacionada con la posición del móvil y la gestión del servicio contratado por el usuario.

No MAP/D

E MSC-MSC Permite intercambiar la información necesaria para iniciar y realizar un intercambio Inter-MSC cuando el móvil cambia de área de influencia de un MSC a otro.

Si MAP/E, RDSI e ISUP

F MSC-EIR Utilizada cuando el MSC desea comprobar el IMEI de un equipo

No

G VLR-VLR Utilizada para permitir la interconexión entre dos VLRs de diferentes MSCs.

No MAP/G

H HLR-AuC Si MAP/H

I MSC-MS Permite el intercambio transparente de datos entre el MSC y el MS a través del BSS

UM BSS-MS Es la interfaz de radio, se encuentra entre la estación móvil y el BSS.

Si LAPDm

Page 30: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

19

2.2 SO Android

Android es un sistema operativo de fuente abierta de Google adquirido en el 2005 de la

empresa Android Inc. quienes estaban orientados a la producción de terminales móviles, en 2007

se crea el consorcio Handset Alliace formado por Google, Intel, Texas Instruments, Motorola, T-

Mobile, Samsung, Ericsson, Toshiba, Vadafone, NTT DoCoMo, Sprint Nextel entre otros, quienes

tenían como objetivo principal era desarrollar estándares abiertos para móviles, así como diseñar

y difundir la plataforma Android. En noviembre de ese mismo año es lanzada la primera versión de

Android SDK y el siguiente año el primer móvil con Android el T-Mobile G1.

Durante el 2010 Android es consolidado como uno de los sistemas operativos más usados

en el mundo, con porcentajes cercanos al sistema operativo de de Apple IOS para iPhone. Un año

más tarde es lanzada la versión 3.x para tabletas y 4.x para móviles haciendo de este el sistema

operativo más importante, alcanzando una cuota superior en el mercado del 50%.

Android es una plataforma de desarrollo libre basada en Linux y de código abierto y

montada sobre la plataforma de Java lo que asegura que pueda ser ejecutada en una gran

variedad de dispositivos gracias a su concepto de máquina virtual. Otra característica importante

es que el diseño de la interfaz de usuario se hace en XML, permitiendo la portabilidad del

dispositivo, ya sea de pantalla reducida o en una tableta. Además contiene una gran cantidad de

servicios como localización basada tanto en GPS como en redes, bases de datos con SQL,

reconocimiento de voz, navegador entre otras. En cuanto en los programas estos se encuentran

aislados gracias a su programación orientada a objetos, permitiendo la herencia; adicionalmente

cada aplicación dispone de permisos que limitan su rengo de actuación.

Otra característica importante es el uso de una Máquina Virtual Dalvik, es una máquina

virtual de Java implementada por Google la cual esta optimizada para el uso de dispositivos

móviles. Finalmente, Android tiene una alta calidad de gráficos gracias a los gráficos vectoriales

suavizados, animaciones inspiradas en flash y gráficos en 3D basados en OpenGL y en cuanto al

audio y video incorpora los codecs estándar más comunes como son H.264 (AVC), MP3, AAC,

3GPP, entre otros.

2.2.1 Versiones de Android y niveles de API

A continuación se describen las versiones de Android que han sido lanzadas, cada versión

consecuente es compatible con las anteriores, es decir, que solo se añaden nuevas funcionalidades

y en el caso de modificar alguna funcionalidad, no se elimina, solo es marcada como obsoleta pero

puede seguir utilizándose. Las plataformas pueden ser identificadas de tres maneras: versión,

Nivel de API o nombre. El nivel de la API corresponde a un número entero comenzando desde el 1.

Para los nombres se han elegido postres en orden alfabético, a partir de la C con Cupcake, las dos

primeras versiones correspondientes a las letras A y B no recibieron nombre.

Page 31: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

20

Android 1.0 API 1. Primera versión de Android, no utilizada comercialmente.

Android 1.1 API 2. Con las mismas funcionalidades, solo se corrigen algunos errores de la

versión anterior, pocos usuarios en uso.

Android 1.5 API 3 Cupcake. Incorpora la posibilidad de teclado en pantalla con predicción

de texto, los dispositivos ya no tienen que tener un teclado físico, así como la grabación de audio y

video avanzado. Incorpora también el soporte para Bluetoothestéreo y aparecen los widgets de

escritorio.

Android 1.6 API 4 Donut. Aparece un nuevo atributo XML, onClick. Permite búsquedas

avanzadas, incorpora multi-touch, gesture y la síntesis de texto a voz. Aparece Play Store antes

Android Mark. Mejora aplicaciones de cámara y soporte para resoluciones de pantalla WVGA.

Android 2.0 API 5 Eclair. Mejora la gestión de contactos y ofrece más ajustes en la cámara.

Se optimiza la velocidad de hardware. Nueva interfaz del navegador y soporte para HTML5.

Android 2.1 API 7 Eclair. Considerada una actualización menor, por lo que siguieron

llamándola Eclair. Se destaca el reconocimiento de voz como entrada en un campo de texto.

Permite desarrollar fondos de pantalla animados. EL paquete Webkit incluye nuevos métodos para

manipular bases de datos almacenadas en web.

Android 2.2 API 8 Froyo. Mejora la velocidad de ejecución de las aplicaciones gracias al

nuevo compilador JIT de la máquina Delvik. Mejoras en el navegador web incorporando el motor

JavaScript V8 utilizando Chrome. Para el desarrollo de las aplicaciones se puede mencionar el

almacenamiento de la aplicación sea interno o externo (como una tarjeta SD). Actualización

automática de las aplicaciones, y proporciona nuevos motores de reconocimiento.

Android 2.3 API 9 Gingerbread. Soporte de pantallas con resolución WXGA. Incluye

soporte nativo para varias cámaras. La máquina virtual Dalvik introduce un nuevo recolector de

basura que minimiza las pausas de la aplicación mejorando animaciones y respuesta en los

videojuegos. Se dispone de mayor apoyo para el desarrollo de código nativo (NDK). Se destaca el

soporte nativo para telefonía sobre Internet VoIP/SIP. Soporte para reproducción de video

WebM/VP8 y codificación de audio AAC.

Android 3.0 API 11 Honeycomb. Se implementa una nueva interfaz de usuario

completamente rediseñada con prototipos nuevos para la interacción, navegación y

personalización. En cuanto a las novedades del SDK (Software Development Kit) están la

reproducción de animaciones 2D/3D gracias al renderizado OpenGL acelerado por hardware.

Primera versión que soporta procesadores multinúcleo. Soporte para la transferencia de archivos

multimedia a través de USB con protocolos MTP y PTP.

Android 3.1 API 12 Honeycomb. Actualización para el manejo de dispositivo USB como

dispositivo o host, se implementa el protocolo PTP/MTP (Picture Transfer Protocol/Media Transfer

Protocol) en tiempo real.

Page 32: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

21

Android 3.2 API 13 Honeycomb. Aplicación de zoom para aplicaciones de tamaño fijo y

sincronización multimedia desde la memoria SD.

Android 4.0 API 14 Ice Cream Sandwich. Nueva interfaz para el usuario donde se pretende

eliminar los botones físicos, se incorpora el reconocimiento facial, mejora en el reconocimiento de

voz. En cuanto a las comunicaciones se agrega un gestor de tráfico de datos por Internet, donde es

posible apreciar el consumo en un gráfico y establecer límite de consumo. En cuanto a las

imágenes, se agrega una manipulación con herramientas de distorsión además que es posible

interactuar con la imagen al momento de ser capturada. Mejora en las comunicaciones NFC e

integración de redes sociales.

Android 4.0.2 API 15 Ice Cream Sandwich. Mejoras en aplicaciones como redes sociales,

calendario, revisor ortográfico, texto a voz y bases de datos entre otros.

Android 4.1 API 16 Jelly Bean. Nuevamente la interfaz de usuario que es actualizada para

corregir puntos importantes como sincronismo vertical, triple búfer y aumento de la velocidad del

procesador al tocar la pantalla. Búsqueda por voz regresa resultados en forma de ficha, dictador

de voz permite búsquedas son conexión a Internet (solo idioma inglés), aplicación Google Now

utiliza información del usuario como posición, agenda y hora en las búsquedas. En cuanto a la

seguridad las aplicaciones son cifradas. Nuevo soporte de idiomas con teclados instalables.

Android 4.2 API 17 Jelly Bean. Actualización con la posibilidad de crear varias cuentas de

usuario sobre el mismo dispositivo con configuraciones propias (solo para tabletas). Se

implementa teclado predictivo Swype. Conexión con Televisiones mediante WiFi con

Miracast.Cámara con la funcionalidad Photo Sphere para fotografías panorámicas inmersivas.

Android 4.3 API 18 Jelly Bean. Control de privilegios de usuarios, es posible que el

programador agregue esta característica en su aplicación de desarrollo. Soporte de Bluetooth Low

Energy (BLE) permitiendo que los dispositivos Android puedan comunicarse con bajo consumo de

energía. Nuevas características de codificación, transmisión y multiplexación de datos multimedia.

También se da soporte para OpenGL ES 3.0. Mejora en la seguridad de gestión y ocultación de

claves privadas y credenciales.

Android 4.4 API 19 Kit Kat. Los componentes de Android son reducidos en tamaño de

memoria para tener un mayor número de dispositivos con esta versión implementando también

una API que tenga un funcionamiento de las aplicaciones con dispositivos de baja memoria.

Conectividad NFC, Bluetooth y mandos infrarrojos mejorados. Los sensores también tiene una

mejora para disminuir su consumo de energía y se agrega el sensor de contador de pasos.

Se agrega un nuevo marco de almacenamiento que permite el acceso de las aplicaciones a

la nube. Este marco agrega document provider con nuevas intenciones para crear y abrir

documentos además de una ventana de dialogo para seleccionar ficheros. En la parte técnica se

introduce la máquina virtual ART que tiene tiempos de ejecución superiores a la máquina virtual

Page 33: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

22

Dalvik, pero solo es utilizada a modo de prueba activada opcionalmente por el programador; la

máquina virtual Dalvik se continua utilizándose por defecto.

Android 5.0 API 20 Lollipop. Extensión hacia plataformas Google Wear, Google TV y Google

Card. Se agregan cambios en la arquitectura para la máquina virtual ART que mejora la ejecución

de código escrito en Java. Hay soporte en dispositivos de 64 bits sobre procesadores ARM 64 y

MIPS.

Se puede utilizar el modo ahorrativo de energía por defecto, desconectando componentes

en caso de batería baja. Incorporación de AndroidJobScheduler haciendo que tareas específicas se

ejecuten en determinadas condiciones.

Soporte nativo para gráficos para OpenGL ES 3.1 con funcionalidades gráficas avanzadas

(fragment shader, tessellation, geometry shaders, ASTC). La interfaz de usuario tiene un cambio de

aspecto sobre los botones de navegación y el menú. Nueva forma de controlar las notificaciones

parecidas a las de Google Now permitiendo leerse en modo de bloqueo de pantalla.

El nuevo enfoque se centra en Material Design (http://www.google.com/design/material-

design.pdf). Consiste en una guía completa para el diseño visual, el movimiento y las interacciones

a través de plataformas y dispositivos. Google pretende aplicar esta iniciativa a todas las

plataformas, incluyendo wearables y Google TV. La nueva versión también incluye varias mejoras

para controlar las notificaciones. Ahora son más parecidas a las tarjetas de Google Now y pueden

verse en la pantalla de bloqueo. Se agregan los sensores de pulso cardiaco, inclinación e

interacción compuestos para detectar ciertos gestos.

2.2.2 Arquitectura de Android En la figura 8 se muestra las cuatro capas por las cuales está formada la arquitectura de

Android. Es importante mencionar que las capas están basadas en software libre.

Núcleo de Linux. La primera capa de la arquitectura y está formado por el sistema

operativo Linux versión 2.6, la cual tiene la tarea de proporcionar los servicios de seguridad,

manejo de memoria, el multiproceso, la pila de protocolos y por último el soporte de los drivers

para los dispositivos.

Runtime Android. Capa para la implementación de la maquina virtual Dalvik para la

optimización de recursos. Además de la maquina virtual se incluye el núcleo de las bibliotecas

disponibles del lenguaje Java.

Bibliotecas nativas. En esta capa se incluyen un conjunto de bibliotecas en C/C++ que son

usadas por varios componentes de Android y que están compiladas en el código nativo del

procesador.

Page 34: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

23

Entorno de aplicación. Esta capa proporciona un entorno de desarrollo libre para

aplicaciones con los sensores, servicios, localización, entre otros. También tiene la fortaleza de

reutilización de compontes.

Aplicaciones. Esta capa se compone de un conjunto de aplicaciones instaladas en la

maquina virtual de Android que son ejecutadas para garantizar la seguridad del sistema por la

maquina virtual Dalvik.

Figura 2.8. Arquitectura de Android[10]

Page 35: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

24

2.3Seguridad

2.3.1 Historia de la Criptografía

En cuanto a la historia de la criptografía podemos remontarnos cuatro mil años atrás hasta

la época de los egipcios con el uso de los jeroglíficos con técnicas de sustitución y transposición de

símbolos entre sí intercambiando uno por el otro. Durante esa época la cultura China manejaba un

pequeño código de cuarenta símbolos de uso militar para evitar el robo de información.

En Grecia Julio Cesar implemento uno de los primeros métodos de cifrado conocido como

el cifrado de Cesar, éste era utilizado también para fines militares, pudiendo dar órdenes a sus

generales de una forma protegida. El método consistía en escribir el mensaje con un alfabeto pero

desplazaba tres posiciones a la derecha, es decir utilizaba un método de transposición:

�(�) = � + 3 ( !" 26)

donde x corresponde a la posición de la letra del alfabeto.

Más adelante los reyes Europeos durante los siglos XV y XVI utilizaron algunos métodos

para proteger sus mensajes, uno de los casos conocidos es el del rey Enrique IV de Francia que en

el año de 1589, intercepto un mensaje cifrado de Felipe de España a uno de sus oficiales y con la

ayuda de un matemático de la corte, pudo descifrarlo.

En el siglo XX antes de la llegada de las computadoras y durante la Segunda Guerra

Mundial el ejército Alemán desarrolló maquinas mecánicas y electromecánicas para el cifrado de

mensajes, una variante de estas máquinas fue la famosa máquina Enigma la cual utilizaba rotores

que automatizaban considerablemente los cálculos que era necesario realizar para las operaciones

de cifrado y descifrado de mensajes.

En cuanto a la criptografía de mediados del siglo XX, el uso de la computadora y avances

matemáticos, son implementados juntos con algunas técnicas de sustitución y transposición que

se aplican hoy en día, aunque con otras técnicas y metodologías. El uso de cifrados por sustitución

y transposición actualmente con las computadoras se puede ver como un recorte del alfabeto que

de veintiséis símbolos del nuestro, es reducido a solo dos 0 y 1. Muchos sistemas criptográficos

actuales combinan aún estas técnicas, pero no es recomendable su uso primitivo para proteger

información importante, ya que un analista experimentado podrá solucionar el cifrado en pocos

minutos.

La criptografía moderna hace alusión a Claude Shannon, considerado como el padre de la

criptografía matemática ya que con sus publicaciones respecto a la teoría matemática de la

comunicación y la teoría de los sistemas secretos establecieron las bases para la implementación

de los algoritmos criptográficos existentes. Gracias a esto y la llegada de las computadoras se

desarrolló el primer algoritmo criptográfico simétrico llamado DES (Data Encryption Standard),

que en la actualidad se considera inseguro por su corta longitud de la clave, lo expone a ataques

Page 36: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

25

de fuerza bruta; así que fue reemplazado por su versión mejorada TripleDES que más adelante

este también sería reemplazado por AES (Advanced Encryption Standard).

Otro punto importante en la criptografía moderna fue la implementación de un método

para distribuir las llaves o claves criptográficas, que más adelante género lo que hoy conocemos

como cifrado asimétrico o de llave pública, el cual permite actualmente realizar compras seguras a

través de Internet.

Hablando de otras técnicas de criptografía moderna está el uso de la firma digital, basado

principalmente en técnicas de cifrado asimétrico que permiten verificar la integridad y/o autoridad

de una información o documento particular, valiéndose del uso de cifrados simétrico, asimétrico y

de las funciones de una vía y/o hashing. Es importante mencionar que para los usos de las técnicas

modernas de cifrado existen protocolos que rigen las normas de los algoritmos implementados

que le corresponden a cada parte para el uso en cuestión.

Para finalizar mencionaremos los usos de los sistemas criptográficos modernos[11]:

Confidencialidad. Es uno de los usos principales de la criptografía. Implica el mantener en

secreto la información importante enviada a través de un canal inseguro. Su objetivo es que solo

las personas autorizadas tengan acceso a la información.

Autenticación. Puede entenderse a la autenticación como un uso relacionado con la

identificación donde su objetivo principal de basa en corroborar la identidad ya sea de una

persona, una computadora, un empresa, etc. Otro tipo de autenticación es aplicado en mensajes

llamados data origin authentication (autenticación de origen de datos), donde lo que se verifica es

la fuente de la información. Un uso englobado serían las firmas digitales de documentos.

Verificación de Integridad. Este punto es referido al uso de técnicas criptográficas para el

aseguramiento de una información en particular, es decir quela información no haya sido alterada

por personal no autorizado o cualquier otro medio desconocido.

Autorización. Permisos concreto, a una parte para el acceso o realización de una tarea

específica o para actuar bajo una identidad determinada.

Validación. Medio de proveer una autorización puntual para el uso o la manipulación de

información y de recursos.

Control de acceso. Otorgar privilegios suficientes para la restricción del acceso a la

información o a los recursos para las partes.

Certificación. Respaldo de información por una parte o entidad de confianza.

El recibo. Acuse de recepción de una información determinada.

Conformación. Acuse de recepción respecto a servicios que han sido presentados.

Page 37: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

26

De propiedad. Medio que provee a una entidad el derecho legal para el uso o

transferencia de una información o recursos a terceros.

Anonimato. Ocultamiento de la identidad de una parte o entidad involucrada en un

proceso.

Retracción o revocación. Medio para quitar o revocar una certificación o una autorización.

2.3.2 Protocolos y algoritmos de cifrado

Antes de comenzar es importante que al hablar de un protocolo nos referimos a una serie

de pasos que involucra a dos o más partes para llegar a un objetivo, donde los pasos deben tener

una secuencia ordenada desde su principio hasta el fin, es decir, que cada paso debe ejecutarse en

su momento o turno preciso. La referencia hacia dos o más partes se trata de la condición que

involucra las reglas, procedimientos, normas o conductas de una parte en un medio particular

pero teniendo una relación con una u otras partes. Finalmente el objetivo hace referencia a

obtener un resultado o beneficio a cambio de la implementación del protocolo.

Es importante mencionar que un protocolo debe conocerse por ambas partes, no debe ser

ambiguo, es decir, debe estar bien definido y por ultimo ambas partes tienen que estar de acuerdo

en su utilización.

Así un protocolo criptográfico es aquel que involucra uno o varios algoritmos

criptográficos pero en él las dos partes pueden o no tener confianza ya que éstas querrán

compartir un secreto, verificar sus identidades o hasta firmar digitalmente un contrato, esto

quiere decir que el objetivo de un protocolo criptográfico lleva más allá de tener la información en

secreto. Así se puede definir el objetivo de un protocolo criptográfico como prevenir, detectar el

acceso indebido o la alteración de un documento que resguarde cierta información de valor

considerable, por el motivo de sea.

2.3.3 Protocolo de criptografía simétrica

Un protocolo de criptografía simétrica, es de los más antiguos en su utilización, además de

su gran uso en la actualidad. Este tipo de protocolos son utilizados ampliamente para proteger

documentos o gran cantidad de información por su velocidad de cifrado.

El protocolo de criptografía simétrica implica tener dos partes donde se menciona que la

parte "A" Alice envía un mensaje a la parte "B" Bob acordando un algoritmo de cifrado y una llave,

estos dos parámetros son conocidos por ambas parte. Alice cifra el mensaje de texto claro

utilizando el algoritmo de cifrado y la llave obteniendo así un mensaje protegido, posteriormente

es enviado a Bob por un canal inseguro donde Bob descifrara el mensaje utilizando el algoritmo y

la llave acordad con Alice, así el podrá obtener nuevamente el mensaje original o el texto claro,

proporcionado por Alice.

Page 38: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

27

Los protocolos de cifrado simétrico deben considerar el aspecto más importante para que

se resguarde la información deseada. La llave que se comparte entre ambas partes debe ser

privada y estar resguardada ya que independientemente del algoritmo elegido, basta con que una

tercera parte conozca la llave y el texto cifrado para poder encontrar el mensaje oculto. Por lo

contrario el algoritmo elegido puede ser público y la tercera parte puede conocerlo.

Retomando nuevamente la importancia de las llaves, éstas deben acordarse en secreto y

estar bajo resguardo ya que además de poder encontrar el mensaje cifrado, la tercera parte al

conocer la llave podrá cifrar nuevos mensaje con la llave conocida haciendo suplantación de

identidad.

Una desventaja sobre los protocolos simétricos se presenta en el manejo de grupos, ya

que si el número de usuarios con los que se desea compartir la información incrementa, las llaves

también lo harán, es decir teniendo un grupo de trabajo de 4 personas, se manejan 3 llaves

propias más otras 3 de uso compartido con cada una de las personas. La fórmula para calcular el

número de llaves que se necesitan en un grupo es:

�(� − 1)

2

donde n es la cantidad de personas contenidas en el grupo.

2.3.4 DES

DES(Data Encryption Standard), es un estándar de cifrado de datos que implementa un

algoritmo desarrollado originalmente por IBM a requerimiento del NBS(National Bureau of

Standards, denominado actualmente como el NIST National Institute of Standards and Technology,

de los EE.UU.), posteriormente modificado y adoptado por el gobierno de EE.UU. en 1977 como

estándar de cifrado de aquella información sensible no clasificadas. Más adelante, en 1980, el NIST

estandarizó los diferentes modos de operación del algoritmo.

DES es el algoritmo de clave simétrica más estudiado y utilizado. El nombre original del

algoritmo, denominado por IBM, era Lucifer. Se implementaba sobre bloques de 128 bits, con una

clave de igual longitud. Se fundamentaba en operaciones lógicas booleanas y era implementado

fácilmente, tanto para software como para hardware.

Después de las modificaciones realizadas por el NBS, que consisto básicamente en la

reducción de la longitud de clave y de los bloques, así DES cifra bloques de 64 bits, mediante

permutación y sustitución, usando una clave de 64 bits, de los que 8 son de paridad (esto es, en

realidad usa 56bits), produciendo así 64 bits cifrados.

Básicamente la tarea del estándar DES es ocultar la información sensible por medio de

permutaciones y sustituciones, es decir, la información es separada en bloques de 64 bits, donde

la información contenida en el bloque es manipulada de tal manera que ésta quede

incomprensible para una persona ajena.

Page 39: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

28

La aplicación del estándar DES puede encontrarse en la norma FIPS 46-3 [12]. El estándar

DES consiste en 19 etapas para cifrar información. En la primera etapa es aplicada una

permutación inicial IP sobre el bloque de 64 bits y en la última etapa se aplica la permutación

inversa IP-1. Las 16 etapas restantes son una Red de Feistel de 16 rondas. Para cada una de las 16

rondas se emplea un valor Ki obtenida a partir de la cave de 64 bits.

El proceso para la obtención de las 16 subclaves consiste en los siguientes pasos: se le

aplica una permutación inicial (PC-1) a la clave y se obtiene una salida resultante de 56 bits,

después la clave obtenida se divide en dos mitades de 28 bits, donde posteriormente cada una de

las cuales se rota a izquierda un número de bits determinado es diferente para cada una de las

subclaves. Ki se deriva de la elección permutada (PC-2) de 48 de los 56 bits de estas dos mitades

rotadas.

La función f de la red de Feistel, es aplicada junto a la subclave ki y la parte derecha del

bloque; esta función se compone de una permutación de expansión (E), que convierte el bloque

correspondiente de 32 bits en uno de48. Posteriormente se aplica una operación or-exclusiva con

el valor de una subclave Ki, también de 48 bits, a continuación se aplican ocho Cajas de 6*4 bits, y

finalmente se efectúa una nueva permutación de compresión (P), regresando nuevamente 32 bits

de salida. A la salida de la función f ahora es aplicada la operación or-exclusiva junto con la parte

izquierda del bloque obteniendo como resultado una salida nueva que pasa a formar la nueva

parte derecha. La parte derecha antes de aplicarse la función f es tomada como la parte izquierda

para la siguiente ronda. El siguiente diagrama muestra el proceso de cifrado DES.

Figura 2.9. Diagrama de cifrado DES

Page 40: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

29

2.3.4.1 Cifrado DES

La siguiente lista muestra los pasos completos para la aplicación de DES:

1. Crear las Claves.

1.1. Se ingresa la clave de 64 bits.

1.2. Aplicación de la Permutación PC-1 que reduce a 56 bits la clave.

Tabla 2.2. Permutación inicial 1 (PC-1)

El bit 57 pasa a ocupar la posición 1, el bit 49 ocupa ahora la posición 2, así hasta recorrer

los 64 bits de la clave.

1.3. Separar en dos mitades de 28 bits la permutación obtenida, nombrarlas con C(0) y D(0)

respectivamente.

1.4. Calculo de las 16 subclaves.

1.4.1. Partiendo de i = 1 para C(i-1) y D(i-1) rotar a la izquierda siguiendo la tabla 2.3 para

obtener C(i) y D(i).

Tabla 2.3. Corrimientos Llaves DES

Número Inicial

Rotaciones a la izquierda

1 1

2 1

3 2

4 2

5 2

6 2

7 2

8 2

9 1

10 2

11 2

12 2

13 2

14 2

15 2

16 1

Page 41: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

30

1.4.2. Concatenar C(i) con D(i) y realizar la permutación PC-2 donde se obtiene la clave Ki,

este proceso se repite para a las 16 claves.

Tabla 2.4. Permutación 2 (PC-2)

2. Proceso de cifrado del bloque.

2.1. Aplicación de la permutación inicial (IP) con respecto a la tabla 2.5, al bloque de 64 bits, si

el bloque no contiene los 64 bits, es necesario a completar ya sea con 0 ó 1.

Tabla 2.5. Permutación Inicial (IP)

2.2. Dividir en dos mitades iguales de 32 bits el bloque, siendo Lo parte izquierda y Ro parte

derecha.

2.3. Cifrado de 16 rondas con la función f y las 16 subclaves obtenidas en el paso 1.

2.3.1. Se aplica la Expansión sobre la parte derecha, es decir, �(��)para pasar de 32 a 48

bits con respecto a la tabla 2.6.

Page 42: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

31

Tabla 2.6. Expansión (E)

2.3.2. Posteriormente al resultado obtenido se aplica la operación or-exclusiva con la

subclave correspondiente �(��−1)⨁�� .

2.3.3. El siguiente paso es crear ocho bloques de 6 bits cada uno nombrados con B(1),

B(2),..., B(8).

2.3.4. Se aplica la función S sobre los nuevos bloques creados de la siguiente manera

�(!�).

2.3.4.1. El primero y el último bit de B representan un número base 2 con valor

decimal entre 0 y 3 (en binario 00 al 11). Este número será la fila para la

aplicación de la función S.

2.3.4.2. Los 4 bits restantes de B representan un número base 2 con valor decimal

entre 0 y 15 (en binario de 0000 al 1111). Este número es la columna para la

aplicación de la función S.

2.3.4.3. La aplicación de la función S consiste en buscar un nuevo valor que es

proporcionado por la fila y la columna de los dos puntos anteriores sobre la

tabla 2.7 definida para la función. La salida de la aplicación de la función resulta

una reducción de 6 a 4 bits. Tomemos como ejemplo !1 = 0110112 = 2710

Los valores necesarios para 1 son:

"�#$ = 01 = 110 , %&#'*+$ = 1101 = 1310 y la tabla al aplicar es:

Tabla 2.7. Caja S1

El valor resultante al aplicas 1(!1) = 510 = 01012

2.3.4.4. La tabla 2.8 muestra todas las cajas necesarias para cada uno de los 8

bloques de 6 bits.

Page 43: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

32

Tabla 2.8. Cajas para obtención de subclaves

2.4. El resultada de cada bloque aplicado a S es concatenado para obtener un nuevo bloque

de 32 bits, es decir, �1( 1)�2( 2)�3( 3)…�8( 8) y se aplica la permutación P respecto a

la tabla 2.9.

Tabla 2.9. Permutación P

2.5. A la salida de la permutación es aplicada la operación or-exclusiva y la parte izquierda del

bloque !"−1.

2.6. EL resultado de la operación anterior es la nueva parte derecha del bloque y la nueva

parte izquierda será la parte derecha sin la aplicación de la función f, es decir, !" = $"−1 ,

$" = !"−1⨁&($"−1'").

Page 44: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

33

2.7. El punto 2 de la lista es aplicado en 16 rondas.

3. Una vez realizadas las 16 rondas y para finalizar el cifrado, se aplica la permutación inversa

definida en la tabla 2.10.

Tabla 2.10. Permutación inversa (IP**-1)

2.3.4.2 Descifrado DES

Para descifrar nuevamente el mensaje se aplican los pasos anteriores pero comenzando

con la subclave 16 a la subclave 1, de �16 �1.

Aunque una clave de 56 bits ofrece una enorme cantidad de posibilidades, muchos

procesadores pueden calcular más de 106claves por segundo. Por lo cual, cuando se utilizan al

mismo tiempo una gran cantidad computadoras, es posible que un gran organismo (un Estado, por

ejemplo) encuentre la clave correcta. En otras palabras, hasta la década de los 90, DES era un

estándar seguro, pero con la evolución de las computadoras, es posible probar una gran cantidad

de claves por segundo, a esto se le conoce como un ataque de fuerza bruta, en el cual se prueban

todas las combinaciones posibles de llaves (para DES 256) hasta descifrar el mensaje. Es por esto

que DES es propenso a recibir ataques de fuerza bruta. La solución propuesta para la situación

anterior fue la aplicación de Triple-DES.

2.3.5Triple-DES Triple-DES es la solución propuesta para eliminar la vulnerabilidad con respecto a los

ataques de fuerza bruta aplicados a DES. La propuesta consistió en aplicar tres veces el algoritmo

DES incrementando el tamaño de la llave en 112 bits o 168 bits.

Triple-DES aplica el algoritmo DES en tres ocasiones siendo la primera etapa como cifrado

DES, posteriormente un descifrado DES y finalmente otro cifrado DES, cada etapa con una llave

diferente de 56 bits o bien para las etapas 1 y 3 es posible utilizar la misma llave. Con ello la

cantidad de operaciones por segundo para descifrar un mensaje protegido por Triple-DES se ve

incrementado exponencialmente su cálculo. La figura 10 muestra el diagrama general del cifrado

Triple-DES.

Page 45: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

34

Figura 2.10. Diagrama general de TripleDES

Al igual que el proceso de Descifrado DES, para Triple DES consiste en aplicar el algoritmo

de forma inversa pero comenzando con un descifrado DES y la llave K3, posteriormente un cifrado

DES con la llave K2 y finalmente un descifrado DES con la llave K1.

2.3.6Triple-DES96

El cifrado Triple-DES 96, es una propuesta desarrollada en el Centro de Innovación y

Desarrollo Tecnológico en Cómputo del Instituto Politécnico Nacional por el Dr. V.M. Silva García,

el Dr. R. Flores Carapia y el Dr. C. Rentería Márquez. La variante del Triple-DES, consiste en una

modificación de complejidad alta sobre la permutación aplicada en el algoritmo.

El sistema criptográfico Triple-DES 96 es una variante del sistema criptográfico Triple-DES

definido en el estándar internacional FIPS 146-3 [13]con un bloque de entrada de 64 bits. Sin

embargo Triple-DES 96 puede expandirse a 96 bits sin perder la complejidad computacional que

un algoritmo de cifrado debe tener. Una de las principales características de Triple-DES 96 es que

es eliminada la permutación inicial PI y la permutación inversa PI-1 de cada ciclo DES y el tamaño

del bloque de entrada es mayor, proporcionando así una importante reducción en los tiempos de

cifrado.

La Figura 11 muestra el diagrama a bloques del proceso del algoritmo de cifrado para una

ronda inicial tipo Triple-DES 96.

Con base en esto, Triple-DES 96 utiliza una permutación variable en la tercera ronda de

cifrado del primer ciclo y la treceava ronda del tercer ciclo, siendo esta permutación creada por

medio del algoritmo JV y el teorema factorial[14][15]. Esta permutación es generada con los

decimales contenidos en el número irracional Pi (�) y a su vez se multiplica por un número entero

� que incrementar la complejidad del algoritmo de cifrado. Así mismo, esta permutación se realiza

después de las primeras dos rondas ya que tanto la parte izquierda !como la parte derecha "! del

Page 46: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

35

bloque son sometidas a una operación or-exclusiva(XOR) que es necesaria como en el algoritmo

de la familia "Substitution-Permutation-Network" (SPN) [16], para proteger la permutación del

bloque de 96 bits, es decir, que la permutación protege ambos lados del texto siendo ésta no solo

una permutación simple como la que se realiza en Triple-DES.

Figura 2.11. Diagrama primera ronda Triple-DES 96

El algoritmo Triple-DES 96 se desarrolla en tres ciclos al igual que su predecesor, en el

primer y el tercer ciclo es aplicado un proceso de cifrado con una llave �1 y �3 respectivamente

con �1 ≠ �3 o �1 para ambos y el segundo ciclo tiene un proceso de descifrado con una llave �2.

Cada uno de los ciclos es sometido a 16 rondas, donde cada ronda está conformada por un

proceso de cifrado !96�(") donde " es el texto plano de 96 bits y � la llave de su ciclo

correspondiente, el proceso de cifrado !96�(") comienza con la separación de la cadena de 96

bits en dos de 48 bits conocidas como # −1y % −1, posteriormente a la parte % −1 es aplicado una

función &96(% −1 , � ) de la ronda que sigue los siguientes pasos:

1. Se aplica a la cadena % −1 la operación XOR con la llave � , la llave � es obtenida del

mismo proceso del algoritmo Triple-DES, es decir, % −1⊕� La salida de esta operación

será una cadena de 48 bits.

2. Posteriormente la nueva cadena es sometida a un proceso de sustitución aplicada como

en el estándar DES, quien proporciona como salida una nueva cadena de 32 bits nombrada

como salida C.

3. A la salida de las cajas C, es necesario aplicar una permutación E utilizando el estándar

DES, así la cadena de salida para &96(% −1 , � ) = !(*), será de 48 bits y se podrá aplicar

XOR con la parte izquierda # −1.

Este proceso es sometido para las 16 rondas de cada uno de los ciclos del estándar Triple-

DES 96, recordando la implementación de la permutación en las rondas 3 y 13 de de los ciclos 1 y 3

respectivamente antes del proceso de cifrado.

Page 47: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

36

2.4 Microcontroladores

Gracias a al desarrollo de la tecnología sobre la fabricación de circuitos integrados en la

implementación de miles de transistores en un chip, los microprocesadores junto con los

periféricos correspondientes externos, tales como memoria, dispositivos de entrada/salida,

temporizadores entre otros, han permitido crear un dispositivo tal que contenga esos periféricos

integrados en un solo encapsulado denominado microcomputadora que posteriormente tomaría

el nombre de microcontrolador.

Un microcontrolador está diseñado de tal manera que tiene integrados todos los

componentes necesarios para trabajar como una computadora, tales como, memoria,

temporizadores, convertidores u otros. Su éxito se debe, que a lo largo del tiempo ha podido

controlar dispositivos de una manera eficaz y sencilla que anteriormente requerían de un diseño

de electrónica complicado además del uso de muchos componentes.

La empresa Microchip ofrece soluciones para todo el rango de funcionamiento de

microcontroladores de 8, 16 y 32 bits, con una poderosa arquitectura, ofrece completas

herramientas y las tecnologías de memoria flexibles fáciles de utilizar, además de documentación

técnica completa.

Entre sus microcontroladores se encuentra diferentes familias que ofrecen distintas

soluciones, una de ellas son los PIC18F que cuenta con 16MIPS (Millones de Instrucciones por

Segundo), una arquitectura optimizada para programación en C y cuenta con periféricos

avanzados como son CAN (Control Area Network), USB (Universal Serial Bus), LCD y Ethernet, hasta

2 MB de memoria de programa direccionable, una pila de hardware de 32 niveles y el mayor

rendimiento de la arquitectura de 8 bits.

Para el desarrollo de este trabajo se utilizó un microcontrolador PIC18F2455 con periférico

USB para la comunicación con nuestro dispositivo Android. El PIC18F2455 trabaja con baja

potencia sobre los nanoWatt además de aplicaciones de conectividad con la disponibilidad de tres

puertos serie: FS-USB (12 Mbit/s), I²C y SPI (hasta 10 Mbit/s). Cuenta también con una gran

cantidad de memoria RAM para almacenamiento interno y una memoria de programación FLASH

mejorada, ideal para monitoreo de aplicaciones o controles integrados que requieren una

conexión periódica con una computadora a través de USB y puede operar hasta con 48 MHz.

Sus características principales son:

· Velocidad de interfaz USB 2.0 (12 Mbit/s).

· Puerto dual de 1K byte RAM + 1K byte GP RAM

· Transceptor Full Speed

· 16 Endpoints (IN / OUT)

· Resistencia interna Pull Up (D + / D-)

· Rendimiento de 48 MHz (12 MIPS)

· Compatibilidad pin a pin con PIC16C7X5

Page 48: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

37

Y parámetros principales son:

Tabla 2.11. Parámetros Microcontrolador PIC18F2455[17]

Nombre del parámetro Valor

Tipo de memoria programable Flash

Memoria Programable (KB) 24

Velocidad CPU (MIPS) 12

Bytes RAM 2,048

Datos EEPROM (bytes) 256

Periféricos de comunicación digital

1-UART, 1-A/E/USART, 1-SPI, 1-I2C1-MSSP(SPI/I2C)

Periféricos de Captura/Comparador/PWM

2 CCP

Timers 1 x 8-bit, 3 x 16-bit

ADC 10 ch, 10-bit

Comparadores 2

USB (ch, speed, compliance) 1, FS Device, USB 2.0

Rango de Temperatura (°C) -40 a 85

Rango de voltaje de operación (V)

2 a 5.5

No. de Pines 28

Page 49: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

38

Capitulo 3. Desarrollo

3.1 Configuración y desarrollo en Android

El primer paso para comenzar con el desarrollo de este trabajo, fue la selección de la API

correspondiente, esta selección consistió en verificar los siguientes puntos:

· Verificación de dispositivos con Android. Para ello se revisaron datos proporcionados a

través de la web donde la siguiente tabla muestran información del año 2014 [18] sobre el

uso de teléfonos inteligentes según el proveedor:

Tabla 3.1. Proveedores de teléfonos celulares

Cuota de Mercado de proveedor mundial

de teléfonos inteligentes %

2014 2013

Samsung 20.01% 28.83%

Apple 19.85% 17.43%

Lenovo 6.59% 4.75%

Huawei 6.25% 5.66%

Xiaomi 4.42% 2.03%

Otros 42.9% 41.31%

Total 100.0% 100.0%

La tabla 3.1 muestra que Apple a retomado fuerza y ganado mercado, pero el conjunto de

teléfonos inteligentes con Android se sigue manteniendo por arriba del porcentaje, de la siguiente

tabla muestra el porcentaje alcanzado por sistema operativo[19].

Tabla 3.2. Top 5 Sistemas Operativos en Smartphones

Sistema Operativo Porcentaje Mercado

Android 79.0 %

iOS 14.2 %

Windows Phone 3.3 %

BlackBerry 2.7 %

Otros 0.9 %

Page 50: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

39

Finalmente, el último punto para la selección de la API fue verificar el porcentaje sobre el

número relativo de los dispositivos que ejecutan una versión determinada de la plataforma

Android [20].

Tabla 3.3. Plataformas Android

Versión Nombre API Distribución

2.2 Froyo 8 0.2 %

2.3.3 - 2.3.7

Gingerbread 10 3.8 %

4.0.3 - 4.0.4

Ice Cream Sandwich 15 3.3 %

4.1.x Jelly Bean 16 11.0 %

4.2.x 17 13.9 %

4.3 18 4.1 %

4.4 KitKat 19 37.8 %

5.0 Lollipop 21 15.5 %

5.1 22 10.1 %

6.0 Marshmallow 23 0.3 %

Con la información recopilada, se tomó la decisión de elegir la API 15, ya que con ella se abarcan el 96 % de los dispositivos con versiones soportables a partir de esta API.

Figura 3.1. Datos recogidos durante un período de 7 días terminado el 2 de noviembre de 2015 [20].

Page 51: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

40

Ya que la clase MediaRecorder es aplicada desde la API de nivel 1,la API 15 que hace

referencia a la versión de Android 4.0 IceCream Sandwich, donde esta versión permite crear,

reproducir y eliminar grabaciones de audio. También junto con los paquetes de Java es posible

manipular los archivos correspondientes a las grabaciones creadas.

3.2 Media Recorder

Android incluye una clase multimedia para la captura y codificación de varios formatos de

audio, que son integrados a una aplicación. La clase con esas características es MediaRecorder, la

cual está disponible desde la versión API nivel 1 pero es importante considerar las especificaciones

del dispositivo ya que no todos los dispositivos Android pueden hacer uso de ella.

La Figura 13 muestra el diagrama de estados general de la clase MediaRecorder.

Figura 3.2. Diagrama General de la clase MediaRecorder[21]

Se debe considerar el diagrama anterior ya que para obtener grabaciones de audio es

necesario realizar los siguiente pasos propuestos por el sitio web de desarrollo Android.

1. Crear una instancia de la clase MediaRecorder. El constructor no requiere parámetros iníciales.

2. Establecer:

· La fuente de audio con el método MediaRecorder.setAudioSource().

· El formato de salida de audio en MediaRecorder.setOutputFormat().

· El nombre del archivo de salida a utilizar MediaRecorder.setOutputFile().

· El codificador a utilizar a través de MediaRecorder.setAudioEncoder().

3. Hacer uso del método MediaRecorder.Prepare(), el cual establece en la grabación los parámetros seleccionados en el punto anterior para iniciar con la grabación.

Page 52: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

41

4. Iniciar la captura de Audio utilizando MediaRecorder.start().

5. Detener la captura de Audio por medio de MediaRecorder.stop().

6. Finalizar liberando los recursos utilizados con MediaRecorder.release().

A continuación se describen las clases anidadas, métodos y variables principales que son

utilizados para la grabación de un archivo de audio.

· MediaRecorder. Clase pública principal utilizada para grabar audio y video, su

constructor por defecto es MediaRecorder(). Los métodos públicos contenidos en esta

clase son los siguientes:

1. prepare(). Prepara el grabador para iniciar los datos de captura y codificación.

2. release(). Libera los recursos asociados con MediaRecorder.

3. reset(). Restaura MediaRecorder a su estado inicial sin configuración.

4. start(). Inicia la captura y la codificación de datos al archivo especificado con setOutputFile().

5. stop(). Detiene la grabación.

· MediaRecorder.AudioSource. Clase pública anidada que establece la fuente de audio,

es utilizada por el método setAudioSource(int) de la clase MediaRecorder y contiene

las constantes:

1. CAMCORDER. Fuente de audio del micrófono con la misma orientación que la cámara si está disponible.

2. MIC. Fuente de audio del micrófono.

3. REMOTE_SUBMIX. Fuente de audio para una submezcla de los flujos de audio que se presentará de forma remota.

4. VOICE_CALL. Fuente de audio de una llamada de voz de enlace ascendente más enlace descendente.

5. VOICE_COMMUNICATION. Fuente de audio del micrófono en sintonía para las comunicaciones de voz, tales como VoIP.

6. VOICE_DOWNLINK. Fuente de audio de una llamada de voz de enlace descendente receptor (Rx).

7. VOICE_RECOGNITION. Fuente de audio del micrófono en sintonía para el reconocimiento de voz, si está disponible.

8. VOICE_UPLINK. Fuente de audio de una llamada de voz de enlace ascendente emisor (Tx).

· MediaRecorder.OutputFormat. Clase publica anidada que define el formato de salida

de audio, es utilizada por el método setOutputFormat(int) de la clase MediaRecorder y

sus constantes definidas son:

1. Archivo de formato AAC_ADTS

Page 53: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

42

2. Archivo de formato AMR_NB

3. Archivo de formato AMR_WB

4. Archivo de formato RAW_AMR

5. Archivo de formato THREE_GPP

6. Archivo de formato MPEG_4

7. Archivo de formato AAC_ADTS

· MediaRecorder.AudioEncoder. Clase pública anidada que define la codificación de

audio, es utilizada por el método setAudioEncoder(int) de la clase MediaRecorder y los

tipos de constantes que se pueden utilizar son:

1. AAC. Códec de audio de baja complejidad (AAC-LC)

2. AAC_ELD. Códec de audio de bajo retardo AAC.

3. AMR_NB. AMR (Banda estrecha) códec de audio.

4. AMR_WB. AMR (Banda ancha) códec de audio.

5. HE_ACC Códec de audio de alta eficiencia AAC.

Con lo anterior se establece un formato para la aplicación con las siguientes características:

MediaRecordermRecorder =newMediaRecorder()

mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC)

mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP)

mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB)

3.3Formato de Audio 3gpp

El formato 3gpp es un formato multimedia establecido por Third Generation Partnership

Project (3GPP) está definido en especificación técnica ETSI 3GPP y es un formato de archivo para

audio y video utilizado en IP Multimedia Subsystem (IMS), Multimedia Messaging Service (MMS),

Multimedia Broadcast/Multicast Service (MBMS) y Transparent end-to-end Packet-switched

Streaming Service (PSS).

La figura 14establece la siguiente estructura de datos que es necesario conocer para el

desarrollo de este trabajo, ya que con esto se crean nuevos archivos de audio cifrado

manteniendo un formato de 3gpp.

· ftyp. Contiene la información referente al tipo de formato de reproducción.

· moov. Contiene información de los datos del audio y el video como son track, media,

sample, compressed, reference.

· mdat. Contiene la información correspondiente al contenido de audio y video del

archivo.

Page 54: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

43

Figura 3.3. Estructura de un archivo de audio 3gpp[22]

La creación de un nuevo archivo tipo 3gpp de forma cifrada toma en consideración la

estructura anterior dejando intacta la conformación del tipo de archivo así como el contenido de

los datos, es decir el contenido de ftyp y moov se mantienen sin modificación o cifrado, con la

finalidad de evitar texto claro sobre un mensaje cifrado.

Al generar un cifrado de audio se copia el contenido del archivo original hasta localizar los

bytes que hacen referencia a la información del audio almacenado, de tal forma que se busca la

secuencia de caracteres "mdat" para posteriormente comenzar con el cifrado del audio.

Para lo anterior se realizaron los pasos siguientes.

// Se abre el archivo original para lectura

FileInputStream fileInput = new FileInputStream(dirArchivo);

BufferedInputStream bufferedInput = new BufferedInputStream(fileInput);

// Se abre el archivo donde se hará la copia

FileOutputStream fileOutput = new FileOutputStream (archivoCifrado);

BufferedOutputStream bufferedOutput = new BufferedOutputStream(fileOutput);

Page 55: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

44

Ahora se comienza la lectura del archivo original hasta localizar la secuencia "mdat" como se muestra en el siguiente diagrama.

Figura 3.4. Diagrama de lectura y escritura del archivo de audio [Elaboración propia]

3.4Cifrado Triple-DES 96 Android

El cifrado desarrollado en Android está compuesto por cuatro clases que permiten crear

archivos de audio cifrados a partir de un archivo original existente. Las clases desarrolladas para

este proyecto son CifradoTDES3gpp, CifradoTDES96, DescifradoTDES96 y LlavesTDES96, cada una

de ellas con un propósito distinto pero una interacción mutua entre ambas.

Inicio

Lectura de buffer de archivo original

Escritura a nuevo archivo

La lectura mostro

la secuencia

“mdat”

Cifrado o descifrado

Si

No

Page 56: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

45

3.4.1 Clase CifradoTDES3gpp

Clase que permite crear objetos de tipo cifrado y descifrado Triple-DES 96. Su función

principal es la creación de archivos cifrados y descifrados, se encarga de leer los archivos de audios

originales y hacer la separación correspondiente de bloques de 96 bits, donde dichos bloques son

enviados a la clase CifradoTDES96 o DescifradoTDES96 junto con la llave de 128 bits

proporcionadas por el usuario.

Los métodos principales de la clase son:

public void cifrarTDES96(File dirArchivo, String llave1, String llave2). Método público que

recibe como parámetros un archivo tipo 3gpp y dos llaves de 64 bits proporcionada por el usuario,

hace uso de las clases CifradoTDES96 y LlavesTDES96 para crear bloques cifrados de 96 bits, su

función principal es recibir los bloques cifrados para crear un archivo protegido por el algoritmo

donde posteriormente puede ser recuperado por el método public File archivoCifra() para la

reproducción de audio.

public void descifrarTDES96(File dirArchivo, String llave1, String llave2). Método público

que recibe como parámetros un archivo tipo 3gpp y dos llaves de 64 bits proporcionada por el

usuario, hace uso de las clases DescifradoTDES96 y LlavesTDES96 para crear bloques descifrados

de 96 bits, su función principal es recibir los bloques descifrados para crear un archivo recuperado

o descifrado por el algoritmo donde es posible recuperarlo por el método public File

archivoDescifra() para la reproducción de audio.

3.4.2 Clase CifradoTDES96

Clase encargada de cifrar la información, su tarea principal es aplicar el algoritmo de

cifrado Triple-DES 96, su constructor no recibe parámetros pero tiene como función crear la

permutación variable que es utilizada por el algoritmo de cifrado. Esta clase sólo contiene el

método publicint[] cifrar(int [] cadenaArray, int [][] key1, int[][] key2), recibe como parámetros un

bloque de 96 bits, y la matriz de llaves para cada una de las rondas necesarias; regresa como

parámetro el bloque de 96 bits cifrado.

El método ejecuta las 16 rondas del estándar DES con su variante a Triple-DES 96; el

bloque es separado en dos bloques de 48 bits cada uno llamados parte izquierda y derecha. La

parte derecha es sometida a la función �96( !−1 ,#!), función que realiza una compresión y

posteriormente una expansión del bloque junto con cada una de las filas de la matriz de llaves

obtenidas. Una vez realizada la función, al resultado obtenido se le es aplicada la operación ⊕ (or

exclusiva) con la parte izquierda del bloque %!−1 ⊕�96( !−1 ,#!). Es importante mencionar que en

la ronda tres del primer ciclo es aplicada la permutación variable a todo el bloque de 96 bits, esto

con la seguridad de que tanto la parte derecha como la parte izquierda han sufrido una

modificación en su contenido. Una vez realizado este proceso sobre las 16 rondas, pasa al segundo

ciclo donde es sometido al proceso de descifrado Triple-DES 96 con la matriz de llaves. Finalmente

obtenido el segundo bloque, se somete nuevamente al proceso de descifrado que a diferencia del

Page 57: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

46

primer ciclo la permutación variable es aplicada en la ronda trece sobre el bloque, evitando así

ataques tanto por la parte inicial como final.

Al concluir los tres ciclos el método regresa un nuevo bloque de cifrado el cual es

integrado al nuevo archivo de audio.

3.4.3 Clase DescifradoTDES96

Clase encargada de descifrar la información, su tarea principal es aplicar el algoritmo de

cifrado Triple-DES 96 pero de manera inversa, es decir, los ciclos se aplican de la siguiente manera,

descifrado del bloque después cifrado y finalmente otro descifrado, respetando el orden de la

aplicación de la permutación variable, su constructor no recibe parámetros pero tiene como

función también crear la permutación variable. Esta clase sólo contiene el método publicint[]

descifrar(int [] cadenaArray, int [][] key1, int[][] key2), recibe como parámetros un bloque de 96

bits, y la matriz de llaves para cada una de las rondas necesarias; regresa como parámetro el

bloque de 96 bits descifrado.

Al igual que el método de cifrar de la clase CifradoTDES96, se aplica el algoritmo de Triple-

DES 96 con la variación del orden ya mencionado, descifrado-cifrado-descifrado.

Una vez concluidos los tres ciclos el método regresa un nuevo bloque descifrado el cual es

integrado al nuevo archivo de audio por la clase CifradoTDES3gpp.

3.3.4 Clase LlavesTDES96 Es una clase que realiza el proceso de obtención de las 16 llaves necesarias para cada una

de las rondas del algoritmo Triple-DES 96, implemente el método publicint[][] getKey1(String key)

que recibe como parámetro la llave de 64 bits proporcionada por el usuario y regrese una matriz

de llaves de tamaño 16x48. La obtención de las llaves es sometida a un proceso de corrimiento de

bits además de permutación que alteran el contenido original.

3.4 Vista de la Actividad Principal

La actividad principal está compuesta de siete objetos tipo botón, además de tres caja de

salida de texto, cada objeto tiene sus propiedades especificas, en donde se puede especificar,

tamaño, posición, color, entre otras, además es posible asignarle el método con el cual responderá

al realizar un clic si es el caso. El siguiente código muestra de manera general las propiedades más

usadas para los objetos.

<Button android:id="@+id/button2" <!--Identificado del objeto--> android:layout_width="match_parent" <!--Ancho del objeto--> android:layout_height="wrap_content" <!--Alto del objeto--> android:layout_alignLeft="@+id/button1" <!--Alineación respecto a otro objeto--> android:layout_below="@+id/button1" <!--Posición respecto a otro objeto--> android:layout_marginTop="24dp" <!--Posición respecto al margen superior-->

Page 58: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

47

android:onClick="detener" <!--Método que ejecuta al realizar un click--> android:text="Detener" <!--Texto mostrado sobre el objeto--> android:textSize="15sp" <!--Tamaño del texto--> android:textColor="#FFFFFF"/> <!--Color del texto-->

El layout o plantilla montada sobre la vista es de uso relativo, es decir, cada objeto tiene

una posición relativa respecto a un objeto o algún margen, esto ayuda a mantener un orden en la

posición de los objetos. La figura 16 muestra el formato final de la vista creada para la grabación

de archivos además del cifrado y descifrado de estas grabaciones.

Figura 3.5. Vista de actividad principal de cifrado

En la vista se muestran los objetos con los que interactúa el usuario, primera caja de texto,

es el Estado actual de la aplicación, hay un cambio de texto respecto a la tarea que esté realizando

la aplicación (grabación, cifrado, descifrado). Segunda y tercera caja muestran las llaves k1 y k2

necesarias para el cifrado, estas son ingresadas desde la segunda actividad. Botón Grabar,

comienza con la grabación de audio en formato 3gpp. Botón Detener, detiene la grabación que

este en curso. Reproducción, reproduce el audio grabado por el usuario. El botón Cifrar, ejecuta el

algoritmo Triple-DES 96 cifrado sobre el audio almacenado previamente por la aplicación. El botón

Descifrar, ejecuta el algoritmo Triple-DES 96 descifrado sobre el audio cifrado previamente por la

aplicación. Finalmente, los botones RepCifra y RepDesC, reproducen el audio cifrado o descifrado

respectivamente.

Page 59: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

48

3.5 Clase Principal

El siguiente apartado consiste en la descripción y funcionamiento de la clase principal que

manipula la actividad inicial de la aplicación. La clase tiene por nombre MainActivity, es una clase

extendida de la clase Activity, encargada de la gestión entre código xml o la vista y el código Java o

control. MainActivity tiene la implementación de la clase OnCompletionListener, esta será descrita

más adelante.

La tarea principal de la clase es la gestión y control de los objetos creados en la vista para

la interacción con el usuario. Los objetos para la vista son particularmente, botones (Button) y

cajas salida de texto (TextView).

Se realiza la instancia de la clase de los objetos a utilizar.

TextView tv1;

Button b1, b2, b3, bCifrar, bDescifrar, bRepC, bRepD;

A continuación es necesario realizar la conexión entre la vista y el control para ello se hace

uso del método protectedvoidonCreate(Bundle savedInstanceState), es el encargado de crear la

vista para cualquier aplicación en Android; dentro de este método es posible el enlace de los

objetos de la vista, para ello se busca el identificador del objeto de la vista con el que fue creado,

con ayuda del método findViewById(); a su vez será asignado al objeto del mismo tipo al que se

quiere realizar interacción, donde es importante realizar una conversión del tipo de objeto (cast);

para el caso de nuestros botones y salidas de texto se realizó la siguiente asignación.

tv1 = (TextView) this.findViewById(R.id.textView1);

b1 = (Button) findViewById(R.id.button1);

b2 = (Button) findViewById(R.id.button2);

b3 = (Button) findViewById(R.id.button3);

Una vez asignado un objeto de la vista a un objeto Java se procese a interactuar con ellos.

Para las botones se realizaron distintos métodos con diferentes tareas, las cuales son descritas a

continuación:

Método grabar. Es un método público con un parámetro de entrada View (el cual contiene

información de la vista), y sin parámetros de retorno. El método se encarga de grabar los archivos

de audio en formato 3gpp donde es instanciado y configurado el objeto tipo MediaRecorder con

los parámetros especificados anteriormente.

recorder = newMediaRecorder(); recorder.setAudioSource(MediaRecorder.AudioSource.MIC); recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);

Page 60: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

49

Para la grabación de archivos de audio y la escritura en la memoria externa o interna del

dispositivo móvil, es necesario la activación de permisos en Android, esto se realiza en el archivo

AndroidManifest.xml, en la pestaña permissions dar de alta los permisos RECORD_AUDIO y

WRITE_EXTERNAL_STORAGE o bien se puede agregar directamente por código las líneas.

<uses-permissionandroid:name="android.permission.RECORD_AUDIO"/> <uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

Una vez creado el objeto, se procede a crear la instancia del objeto de tipo archivo para

registrar la ruta de almacenamiento del archivo, esto se realizó con la clase tipo File.

File path = new File(Environment.getExternalStorageDirectory().getPath());

Se verifica que la ruta pueda ser creada para el archivo de audio con el método de la clase

File.createTempFile donde se especifica el nombre del archivo y el formato y la ruta donde será

almacenado.

archivo = File.createTempFile("temporal", ".3gpp", path);

El objeto archivo proporciona la ruta absoluta donde será almacenado el audio grabado

por el objeto recorder, con el método setOutputFile, que recibe como parámetro la ruta final con

nombre y tipo de dato.

recorder.setOutputFile(archivo.getAbsolutePath());

Si el proceso anterior es ejecutado sin fallas se procede a preparar la grabación y

finalmente comenzar a grabar con las dos siguientes instrucciones.

recorder.prepare(); //Se prepara la grabación. recorder.start(); //Inicio de la grabación. El proceso o la actividad de grabación de audio continua hasta que esta sea detenida por

el evento que contiene el método stop de la clase MediaRecorder, para ello se creó otro método

que detiene la grabación y es ejecutado al presionar el botón detener.

El método detener tiene como función principal detener el proceso de grabación y liberar

los recursos proporcionados para este fin, además de configurar los parámetros necesarios para

poder implementar una reproducción del archivo creado anteriormente.

recorder.stop(); //Se detiene la grabación recorder.release(); //Se liberan los recursos utilizados

La configuración para la reproducción depende de la clase MediaPlayer, esta proporciona

los recursos de codificación para escuchar nuevamente la grabación. Con ello se crea un objeto y

se hace uso del método setOnCompletionListener, encargado de realizar la preparación completa

Page 61: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

50

por medio de estados de la reproducción. Se obtiene la ruta donde fue creada la grabación y se

deja preparado para la reproducción.

player = newMediaPlayer(); player.setOnCompletionListener(this); player.setDataSource(archivo.getAbsolutePath()); player.prepare(); Una vez que el método detener estableció los parámetros para la reproducción, el método

reproducir iniciara con la grabación con player.start().

Ahora los métodos para cifrar y descifrar harán uso de una segunda actividad ya que en

ella son ingresadas las llaves por el usuario. El método cifrar es el encargado de crear la intención

hacia la segunda actividad, que al finalizar esa actividad regresara los parámetros para la ejecución

el método onActivityResult, encargada de cifrar las grabaciones de audio con las llaves propuestas.

Intent i = new Intent(this, SolicitudLlaves.class); startActivityForResult(i, 1234);

Si la respuesta de la segunda actividad es favorable y el código de requerimiento hace

referencia al cifrado, regresa las llaves que son obtenidas por medio de getExtras() que proviene

de los datos de la actividad, así entonces se almacenan las llaves en una variable de tipo String.

key1 = data.getExtras().getString("key1"); key2 = data.getExtras().getString("key2");

Y con ellas y un objeto de la clase CifradoTDES3gpp se procede a crear el archivo cifrado,

con la grabación creada anteriormente.

CifradoTDES3gpp cifrar;

File archivoCifrado;

cifrar.cifrarTDES96(archivo, key1, key2);

archivoCifrado = cifrar.archivoCifra();

El método archivoCifrar() regresa el archivo de audio cifrado.

Por otro lado el método descifrar realiza el mismo proceso que el método cifrar ya que

lanza también una nueva actividad donde son ingresadas las llaves para el descifrado, la actividad

lanzada es la misma, el cambio que se tiene que realizar es el código de verificación para la

respuesta de la actividad.

Intent i = new Intent(this, SolicitudLlaves.class); startActivityForResult(i, 5678);

Las llaves son recuperadas de la actividad lanzada y se procede a utilizar el método

descifrar de la clase CifradoTDES3gpp.

Page 62: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

51

key1 = data.getExtras().getString("key1");

key2 = data.getExtras().getString("key2");

File archivoCifrado;

cifrar.descifrarTDES96(archivoCifrado, key1, key2);

archivoDescifrado = cifrar.archivoDescifra();

Finalmente la reproducción del archivo cifrado y descifrado tiene la siguiente

configuración.

//Se obtiene el nombre del audio cifrado o descifrado

String direccion = archivoCifrado.getName();

//Se obtiene las direcciones de almacenamiento y se concatena con el nombre del

archivo.

Uri datos = Uri.parse(Environment.getExternalStorageDirectory() .getPath()+ "/" + direccion);

//Se crea un nuevo archivo MediaPlayer y se ejecuta la reproducción

MediaPlayer mp1 = MediaPlayer.create(this, datos); mp1.start();

3.6 Vista para Actividad de Solicitud de Llaves

La segunda actividad consiste en dos bloques de texto oculto para contraseñas además de

un botón que tiene como funcionalidad terminar con la actividad y regresar los datos necesarios

para la actividad principal. La figura 17 muestra la vista de la segunda actividad.

La actividad tiene como tarea solicitar las llaves que son utilizadas por el cifrado o

descifrado según la solicitud del usuario. El usuario tiene que ingresar en los campos de texto las

llaves en formato hexadecimal con una longitud de 16 caracteres que esto es equivalente a los 64

bits necesarios para el cifrado Triple-DES 96.

Figura 3.6. Vista de actividad de solicitud de llaves

Page 63: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

52

3.7 Actividad Solicitud Llaves

Al crear una nueva clase que extienda a la clase Activity es necesario hacer registro de ella

sobre el archivo AndroidManifest.xml, esto se realiza sobre en la pestaña aplicación donde es

ingresado el nombre de la clase que funge como actividad secundaria a la principal.

Figura 3.7. Registro de Actividad en AndroidManifest.xml

Donde SolicitudLlaves es el nombre de la clase extendida. Una vez que se dio de alta la

clase que da control a la segunda actividad, hay que sobrecargar el método protected void

onCreate(Bundle savedInstanceState), ya que es el encargado de crear la relación con la vista. Es

importante agregar los elementos que realizan la relación.

super.onCreate(savedInstanceState); setContentView(R.layout.keys_cifrar);

donde keys_cifrar es el nombre dado para la vista de la segunda actividad.

En la clase SolicitudLlaves se realizó solo un método para el botón que finaliza con la

actividad, el método nombrado aceptarKeys regresa el valor capturado por los editText

k1=edTKey1.getText().toString(); k2=edTKey2.getText().toString();

Y por medio de una intención son regresados los valores de las llaves a la aplicación

principal y continuar con el cifrado de la información.

Intent i = new Intent(); i.putExtra("key1", k1); i.putExtra("key2", k2); setResult(RESULT_OK, i); finish();

El método putExtra, pasa los valores a la actividad principal, con dos parámetros de

entrada un String de identificación y el valor que es enviado, mientras que el método finish()

termina la actividad SolicitudLlaves.

Page 64: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

53

3.8 Implementación de Microcontrolador

3.8.1 Configuración USB en Android Para la implementación de la lectura de datos de un microcontrolador se activa el permiso

WAKE_LOCK sobre el archivo AndroidManifest como se realizó para el manejo de audio.

<uses-permissionandroid:name="android.permission.WAKE_LOCK"/>

El siguiente punto fue permitir que el dispositivo Android tuviera comunicación con el

microcontrolador, para ello se agregó la información de identificación del proveedor y del

producto, además de la clase subclase y el protocolo con el cual se comunican.

Esta configuración se agregó en un nueva carpeta, éste es creado dentro de la carpeta res

que y tiene por nombre xml, dentro del contenido de la carpeta se creó un archivo con extensión

xml con el nombre device_filter.xml, y su contenido debe registrarse el nuevo recurso que es

reconocido por el dispositivo.

<?xmlversion="1.0"encoding="utf-8"?> <resources> <usb-devicevendor-id="1121"product-id="32"class="239"subclass="0"protocol="0"/> </resources>

Esta configuración se realiza también en la programación del microcontrolador, la cual es

explicada más adelante.

Ahora retomando de nuevo la actividad principal, ya que en ella se realiza la programación

para la sincronización de la información que es enviada a través del puerto USB.

Las variables necesarias son:

/*Variables para el puerto USB*/ privatestaticfinalintTIMEOUT = 100; //Tiempo de espera entre conexión privatestaticfinalbooleanforceClaim = true; //Petición USB privatestaticfinal String USB_RECEIVE_THREAD_NAME = "Usb-Receivethread"; //Nombre del hilo USB privatestaticbooleanCurrentlyRunning=false; //Estado de Conexión USB private usbConnectionInThread usbConnectionInThread; //Hilo de conexión USB private UsbDevice device; //Dispositivo USB private UsbDeviceConnection connection; //Conexión de USB private ByteBuffer bufferIn = ByteBuffer.allocate(64); //Buffer de lectura para USB

Se crea también la variable mUsbReceiver que es una variable de tipo BroadcastReceiver,

esta clase ayuda a iniciar una actividad al atender un anuncio o Broadcast, el cual envía un

mensaje al dispositivo sobre el reconocimiento de la conexión. Su configuración es descrita de la

siguiente manera.

Page 65: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

54

//Instancia del objeto BroadcastReceiver mUsbReceiver = new BroadcastReceiver() { @Override //Sobrecarga del método onReceive public void onReceive(Context context, Intent intent) { String action = intent.getAction(); //Se verifica que si el dispositivo está conectado. if (UsbManager.ACTION_USB_DEVICE_ATTACHED.equals(action)) { //Si hay conexión se obtiene la información del dispositivo device = (UsbDevice) intent .getParcelableExtra(UsbManager.EXTRA_DEVICE); //Se verifica que el dispositivo conectado sea reconocido como un //dispositivo valido para comunicarse if (checkAttachedUsbDevice(device)) { //Es válido se establece la conexión. Log.d("FOUND", "Connectedusb"); //Método que establece la conexión USB establishUsbConnection(); } else { De lo contrario regresa null device = null; } //Verifica que el dispositivo haya sido desconectado } elseif (UsbManager.ACTION_USB_DEVICE_DETACHED.equals(action)) { //El dispositivo y la conexión son null, se liberan los recursos. if (device != null&&connection != null) { usbConnectionInThread.cancel(); connection.releaseInterface(device.getInterface(0)); connection.close(); usbConnectionInThread.close(); } } } };

Al realizarse la conexión a través de USB, se creó un hilo secundario que se ejecuta sin

interferir con el trabajo del hilo principal, ya que la conexión de USB requiere de una verificación

constante. Esto permite que el dispositivo responda a otro tipo de intenciones por ejemplo el

hacer touch sobre la pantalla. El hilo es creado a través de la conexión USB como se muestra a

continuación.

privatevoid establishUsbConnection() { UsbInterface intf = device.getInterface(0); connection = ((UsbManager) getSystemService(Context.USB_SERVICE)) .openDevice(device); connection.claimInterface(intf, forceClaim); usbConnectionInThread= new usbConnectionInThread(); usbConnectionInThread.start(); }

Page 66: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

55

Se recupera la interfaz del dispositivo, posteriormente se otorgan la gestión de

configuración y se realiza una petición de la interfaz, para finalmente instanciar el nuevo hilo que

será ejecutado al tener la conexión con el dispositivo USB.

El hilo de nombre usbConnectionInThread es una clase dentro de la actividad principal que

está a cargo de la ejecución de la comunicación con un dispositivo USB, y es ejecutada en segundo

plano mientras la actividad está en funcionamiento.

La clase consta de un método que establece los puntos y el requerimiento de conexión

UsbEndpoint endpointIn = device.getInterface(0).getEndpoint(0); usbOutRequest = new UsbRequest(); usbOutRequest.initialize(connection, endpointIn);

Si la conexión esta actualmente establecida y el buffer de lectura del dispositivo Android

está lleno, es posible realizar la lectura de la información enviada por el microcontrolador, así

entonces se obtienen las llaves enviadas para el cifrado.

key1Pic = new String(bufferIn.array()).substring(0,16); key2Pic = new String(bufferIn.array()).substring(17,33);

3.8.2 Configuración USB en Microcontrolador Como se mencionó en el Capítulo 2, el microcontrolador PIC18F2455 tiene la posibilidad

de establecer una conexión a través del puerto USB versión 2.0.

La figura 19 muestra el diagrama de conexiones necesarias para establecer la conexión con

el dispositivo Android.

Figura 3.8. Diagrama Electrónico conexiones PIC18F2455 [Elaboración propia]

El siguiente paso consistió en programación del microcontrolador, para ello es necesario

incluir la biblioteca PicUSB.h, ésta permite realizar las configuraciones necesarias para la

Page 67: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

56

comunicación con un dispositivo Android y contiene la información respecto al dispositivo como

son vendor ID, product ID, class, subclass y protocol, además que incluyen funciones de

transmisión y recepción de datos. Se incluye también la biblioteca pic_18_usb.h.

//Descripción del dispositivo

char const USB_DEVICE_DESC[] ={

USB_DESC_DEVICE_LEN, //the length of this report

0x01, //constant DEVICE (0x01)

0x01,0x00, //usb version in bcd

0xEF, //class code

0x00, //subclass code

0x00, //protocol code

USB_MAX_EP0_PACKET_LENGTH, //max packet size for endpoint 0. (SLOW SPEED SPECIFIES 8)

0x61,0x04, //vendor id 0x0461 = 1121 base 10

0x20,0x00, //product id 0x0020 = 32 base 10

0x01,0x00, //device release number

0x01, //index of string description of manufacturer. therefore we point to string_1 array (see

below)

0x02, //index of string descriptor of the product

0x00, //index of string descriptor of serial number

USB_NUM_CONFIGURATIONS //number of possible configurations

};

La programación se desarrolló en PCWHD IDE Compiler for Microchip, es un compilador

altamente optimizado y basto en funciones ANSI C para Microchip, permitiendo al programador

enfocarse en la funcionalidad del diseño, ya que el compilador crea los archivos fuentes necesarios

para la programación de microcontroladores.

El primer punto de la programación es declarar las constantes para la trasmisión y

recepción de datos a través de USB.

USB como dispositivo HID (Human Interface Device) ya que el dispositivo de telefonía móvil trabaja como host.

#define USB_HID_DEVICE TRUE // PIC como dispositivo HID. Trasmisión de datos con tamaño de 64 bits #define USB_EP1_TX_ENABLE USB_ENABLE_INTERRUPT // Habilita EP1 para transmisión #define USB_EP1_TX_SIZE 64 // 64 bytes para transmisión Recepción de datos con tamaño de 64 bits #define USB_EP1_RX_ENABLE USB_ENABLE_INTERRUPT // Habilita EP1 para recepción #define USB_EP1_RX_SIZE 64 // 64 bytes para recepción

Page 68: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

57

Además de las variables que contienen la información a ser enviada al dispositivo Android.

Las variables son arreglos de tipo carácter.

char msg1[64]; // Mensaje a enviar a USB. char keys1[17] = "0123456789ABCDEF"; // Llave 1 del cifrado. char keys2[17] = "ABCDEF9876543210"; // Llave 2 del cifrado.

Para realizar las pruebas de la conexión, las llaves son escritas desde el microcontrolador

durante la programación.

El envío de las llaves es transferido por la función keys() descrita a continuación, función

que se ejecuta en el programa principal del microcontrolador durante la conexión.

Función sin recepción y envío de parámetros, el primer paso de la función consta de

limpiar la variable msg1 con espacios en blanco para evitar que ésta envíe basura contenida en el

arreglo. Posteriormente con ayuda de la función sprintf, se escriben las llaves dentro del arreglo

msg1 de la siguiente manera.

sprintf(msg1, "%s %s \n\0", keys1,keys2);

donde msg1 = "0123456789ABCDEFABCDEF9876543210\n\0" después del uso de sprintf.

Finalmente es transmitido el mensaje con la función usb_put_packet(numpkg, ptr , len,

toggle),

donde los parámetros de entrada son:

numpkg. número de paquetes a enviar ptr. arreglo o apuntador a enviar en el paquete len. tamaño del paquete toggle. cambio de estado.

quedando como resultado la función de la siguiente manera.

usb_put_packet(1,msg1, 64, USB_DTS_TOGGLE); Un paquete con la información contenida

en el arreglo msg1 de 64 bytes y con cambio de estado.

Como último punto la función principal main inicializa el puerto USB con transmisión y

recepción por medio usb_init() y usb_task(). Una vez inicializada se verifica que la conexión haya

sido establecida de ser así es ejecutada la función keys(), que envía el mensaje con las llaves

contenidas a través de USB al dispositivo Android.

Para la conexión entre el dispositivo móvil y el microcontrolador es necesario el uso de la

tecnología On-To-Go descrita a continuación.

Page 69: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

58

3.8.2.1 USB On-To-Go

La tecnología USB OTG (On-The-Go), es una extensión de para la versión USB 2.0 que

propone una mejor tenacidad en el manejo de la conexión USB. Es decir, que los dispositivos que

manejen esta tecnología como algunos smartphones o tablets, se les pueda conectar algún

dispositivo USB, como una memoria de almacenamiento, un teclado, un mouse o hasta una

cámara digital, esto gracias a que USB OTG hace que el dispositivo pase de ser un esclavo a ser un

maestro con respecto a otros medios USB.

En la actualidad se puede hablar que todos los dispositivos móviles o portátiles utilizan una

conexión USB con una computadora. A medida de que la popularidad de estos productos

aumenta, existe una necesidad creciente de éstos para comunicarse tanto con los periféricos USB

como directamente uno con otro cuando no se tiene al alcance una computadora. Cabe

mencionar que también existe un aumento en el número de anfitriones o no computadoras los

llamados Hosts Embedded que admiten dispositivos USB para conectarse a periféricos USB.

El USB On-The-Go y los suplementos Host Embedded manejan estos escenarios,

permitiendo que dispositivos portátiles y anfitriones que no son computadoras comunes puedan

tener las siguientes características:

· Capacidad accesible para comunicarse con otros periféricos USB seleccionados.

· Soporte para conexiones directas entre dispositivos OTG.

· Ahorro de energía para preservar la vida de la batería.

Para utilizar esta tecnología se requiere un cable OTG de micro USB a USB 2.0 para la

conexión con el dispositivo móvil ver Figura 20. El manejo completo de la tecnología OTG pude ser

revisada en[23][24].

Figura 3.9. Cable On-To-Go (OTG)

Page 70: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

59

3.8.2.1 Soporte Android, USB host y Accesorio

Android [25][26]permite una variedad de periféricos USB y accesorios USB (hardware que

implementa el protocolo accesorio Android) a través de dos modalidades: accesorios USB y host

USB. En el modo de accesorio USB, el dispositivo externo actuara como un USB anfitrión (host);

algunos ejemplos de este tipo de conexión podrían incluir controladores de hardware, estación de

conexión, equipos de diagnóstico y musical, lectores de tarjetas y mucho más. Esto le da a los

dispositivos Android que no tienen la capacidad de anfitrión, la habilidad para interactuar con el

hardware USB. Accesorios USB Android deben estar diseñados para trabajar con dispositivos con

Android y deben cumplir con el protocolo de comunicación de accesorio Android.

En el modo de host USB, el dispositivo con Android actúa como el anfitrión. Algunos

ejemplos de dispositivos incluyen cámaras digitales, teclados, ratones y dispositivos de juego. Los

dispositivos USB que están diseñados para un amplio rango de aplicaciones y entornos puede aún

interactuar con las aplicaciones Android que pueden comunicarse correctamente con el

dispositivo.

El modo accesorio USB está soportado desde la versión Android 3.1 (nivel de API 12) hasta

las plataformas recientes. El modo accesorio USB también está soportado en Android 2.3.4 (nivel

de API 10) como un complemento de la biblioteca para una amplia gama de dispositivos. Los

fabricantes de dispositivos pueden elegir si incluir o no la biblioteca add-on en la imagen del

sistema del dispositivo.

Es importante mencionar que aunque el sistema operativo incluya las funciones y

bibliotecas para trabajar los modos host y accesorios USB, no todos incluyen el soporte USB OTG,

este recurso está habilitado solo en algunos dispositivos en particular.

Page 71: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

60

Capitulo 4. Pruebas de Cifrado y Descifrado.

4.1 Pruebas de la aplicación Android. Para desarrollar las pruebas de funcionamiento de la aplicación de cifrado y descifrado, se

utilizaron dos dispositivos de telefonía móvil, tanto en software como en hardware, el primero de

ellos es un modelo Sony Ericsson Xperia Neo V MT11, con las siguientes características:

Tabla 4.1. Características Sony MT11

Sistema Operativo Android 4.0.4 Ice Cream Sandwich ICS

CPU / Procesador QualcommSnapdragon MSM8255 / Scorpion

Clock Procesador / Núcleos

1000MHz32 bits / Single-Core

Memoria RAM 512 MB LPDDR2

Memoria Interna 1 GB

Memoria Expansible Hasta 32Gb microSD

El segundo dispositivo es un Motorola Moto G primera generación.

Tabla 4.2. Características Moto G

Sistema Operativo Android 4.4.4 KitKat

Procesador SoC Qualcomm Snapdragon 400

Clock Procesador / Núcleos

1.2GHz / Quad-Core ARM Cortex-A7

Memoria RAM 1 GB

Memoria Interna 8 GB

Memoria Expansible N/A

La primera prueba realizada se basa en la grabación de los archivos de audio, constó de

realizar 10 grabaciones de voz con diferentes mensajes y diferente duración, a manera de lista se

enuncian los mensajes grabados con el dispositivo de telefonía móvil.

1. Prueba uno.

2. Se realiza prueba dos.

3. Prueba de mensaje tres.

4. Prueba número cuatro realizada hoy.

5. Probando mensaje de voz número cinco.

6. Mensaje de voz número seis con Android.

7. Esta prueba es la número siete con éxito.

Page 72: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

61

8. La prueba número ocho fue grabada también con éxito.

9. Prueba número nueve aplicaciones de grabado de mensajes de voz.

10. La prueba diez fue la última realizada el día 25 de Febrero del 2015.

Los mensajes son grabados a un nivel de conversación telefónica al rededor de los 60 db

para comprobar los cambios correspondientes entre cada mensaje. El propósito de las primeras

pruebas fue verificar el funcionamiento de las grabaciones correctas con el dispositivo, se verifico

claridad y comprensión del mensaje.

Las grabaciones son convertidas a un formato de audio mp3 con la ayuda del convertidor

Xilisoft Video Converter Ultimate para Windows, con la finalidad de utilizar el programa Audiocity

también para Windows, donde con este último es posible mostrar el espectro de una señal de

audio, ya que no existe la compatibilidad con el formato 3gpp, por ello la conversión.

Las figura 21 y 22 muestran el espectro del mensaje grabado de las pruebas 9 y 10, estos

espectros.

Figura 4.1. Audio "Prueba número nueve aplicación de grabado de mensajes de voz"

Figura 4.2. Audio "La prueba diez fue la última realizada el día 25 de Febrero del 2015"

La segunda prueba consistió en la grabación de un mensaje de mayor duración con la

finalidad de comprobar la estabilidad de la grabación, esta consta de un fragmento del libro "Cien

años de soledad" de Gabriel García Márquez, el cual menciona lo siguiente:

Macondo ya era un pavoroso remolino de polvo y escombros centrifugados por la cólera

del huracán bíblico, cuando Aureliano salto once páginas para no perder el tiempo en hechos

demasiado conocidos, y empezó a descifrar el instante que estaba viviendo, descifrándolo a

medida que lo vivía, profetizándose a sí mismo en el acto de descifrar la última página de los

Page 73: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

62

pergaminos, como si se estuviera viendo en un espejo hablado. Entonces dio otro salto para

anticiparse a las predicciones y averiguar la fecha y las circunstancias de su muerte. Sin embargo,

antes de llegar al verso final ya había comprendido que no saldría jamás de ese cuarto, pues

estaba previsto que la ciudad de los espejos (o los espejismos) sería arrasada por el viento y

desterrada de la memoria de los hombres en el instante en que Aureliano Babilonia acabara de

descifrar los pergaminos y que todo lo escrito en ellos era irrepetible desde siempre y para siempre,

porque las estirpes condenadas a cien años de soledad no tenían una segunda oportunidad sobre

la tierra.

La grabación anterior se realizó al igual que las primeras pruebas con éxito, no hay

interrupción, la claridad y la comprensión son correctas, la figura 23 muestra el espectro de la

señal de voz.

Figura 4.3. Audio de fragmento del libro Cien Años de Soledad

Como tercera prueba consistió en cifrar las primeras dos pruebas, para cumplir con la

validación de que cada mensaje está siendo cifrado, ocultando así el mensaje original para

cualquier persona ajena.

La figura 24 muestra la prueba de audio número, con la cual se comparan el espectro del

audio original y el cifrado, notando que existe un cambio total en el espectro, tanto en amplitud

como en la posición de la señal con respecto al tiempo.

Figura 4.4. Prueba uno, espectro superior Audio original, inferior Audio Cifrado

Page 74: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

63

A continuación son mostradas las imágenes de los 10 espectros obtenidos tanto de los

audios originales como del cifrado correspondiente.

Figura 4.5. Prueba 2 de Audio espectro superior original, inferior cifrado

Figura 4.6.Prueba 3 de Audio espectro superior original, inferior cifrado

Otro punto importante a mencionar es el incremento en la duración de la grabación de

audio al realizar una conversión al formato mp3, ya que la grabación corresponde a otro contenido

cifrado, este cambia con respecto a un contenido de audio en otro formato. Aunque no es parte

del desarrollo de este trabajo el análisis de audio mp3, es destacable que esa conversión da aun

más seguridad de cifrado, ya que no hay correspondencia en tamaño de contenido, pero si tiene

afectación ya que son archivos con mayor tamaño de bytes, si es que se requiere enviar el

contenido cifrado en formato mp3.

Page 75: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

64

Figura 4.7.Prueba 4 de Audio espectro superior original, inferior cifrado

Figura 4.8. Prueba 5 de Audio espectro superior original, inferior cifrado

Figura 4.9. Prueba 6 de Audio espectro superior original, inferior cifrado

Page 76: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

65

Conforme el contenido de voz se fue incrementando durante las pruebas, la grabación

cifrada tiene distintos puntos de incremento de potencia, pero en puntos no correspondientes con

el audio original, observando la Figura 30, la relación entre los niveles de audio entre ambas

señales, los puntos donde se encuentran los incrementos (donde existe voz), no corresponden con

los del cifrado. Se menciona que el audio obtenido en cada una de las pruebas cifradas es solo una

grabación con ruido, sin comprensión alguna de la información real.

Figura 4.10. Prueba 7 de Audio espectro superior original, inferior cifrado

Figura 4.11. Prueba 8 de Audio espectro superior original, inferior cifrado

Se menciona como otro punto importante que los dispositivos de telefonía móvil Moto G y

Sony MT11, no logran reproducir el audio cifrado en varias de las pruebas, la razón es que la

aplicación de reproducción no es compatible con el formato 3gpp generado por el Moto G, ya que

el audio original es modificado, el reproductor de los dispositivos envía una advertencia que no es

posible la reproducción de ellos, cancelando la misma. Esto no sucede con los reproductores de

formato 3gpp en una PC con sistema operativo Windows 10 ya que la aplicación Películas y TV

logró reproducir las 10 pruebas cifradas.

Page 77: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

66

Figura 4.12. Prueba 9 de Audio espectro superior original, inferior cifrado

Figura 4.13. Prueba 10 de Audio espectro superior original, inferior cifrado

Como se muestra en las figuras anteriores los mensajes originales no tiene una relación

directa sobre el espectro de la señal, cumpliendo así con la modificación del audio original. Al ser

escuchadas estas grabaciones, el audio es totalmente diferente, escuchándose un patrón de

pulsaciones, es decir, que todo el mensaje cifrado se puede interpretar como ruido o una mala

grabación de audio. Es importante mencionar que durante las pruebas con la grabación del Moto

G, no fue posible obtener el espectro de la señal ya que el archivo cifrado es interpretado tanto

por la PC como el dispositivo Android, como un archivo de audio incompatible o dañado.

La siguiente prueba consistió en recuperar el audio original a partir del archivo cifrado

generado y los resultados se muestran a continuación. Se desataca que todos los archivos cifrados

se lograron recuperar con éxito, al descifrar no existe pérdida de información, permitiendo

escuchar el mensaje real y obtener el mismo espectro del audio original como los muestran las

siguientes figuras.

Page 78: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

67

Figura 4.14. Audio original prueba 1 "Prueba uno".

Figura 4.15. Audio cifrado de prueba 1.

Figura 4.16. Audio descifrado del archivo cifrado de prueba 1.

Figura 4.17. Audio original prueba 10.

Figura 4.18. Audio cifrado de prueba 10.

Page 79: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

68

Figura 4.19. Audio descifrado del archivo cifrado de prueba 10.

En las figuras anteriores se muestran los tres espectros, original, cifrada y descifrada, en

ellas se nota la comparación entre los resultados obtenidos, primero el espectro cifrado no

corresponde con la original y descifrada, y en cuanto a los espectros originales y descifrados el

resultado es idéntico donde al ser escuchada esta información, no hay perdida, el audio es el

mismo en ambos archivos.

Ya que cada dispositivo Android maneja un diferente procesador de audio, las grabaciones

tienen capacidades de almacenamiento distintos, mientras el dispositivo Sony en una grabación de

30 segundos genera un archivo de 23 KB, el dispositivo Moto G con la misma duración genera un

archivo de 60 KB, por lo que se procedió a realizar la siguiente pruebas para comprobar la

velocidad de cifrado y descifrado de ambos dispositivos, la cual consistió en el proceso completo

de las pruebas anteriores, que son, grabación de audio, cifrado y descifrado de la grabación,

realizando 10 pruebas con 30 segundos de duración cada una de ellas, siendo el mismo mensaje

para ambas.

En la tabla 4.3 se enlistan los resultados con respecto al tiempo de las pruebas para cada

uno de los dispositivos, para el modelo MT11 el tamaño del archivo es de 23 KB y para el MotoG es

de 60 KB, es de importancia notar que cada dispositivo genera un tamaño de archivo diferente,

con lo que los tiempos se incrementan.

Tabla 4.3. Resultados de Cifrado y Descifrado

Sony MT11 Moto G

Cifrado (seg)

Descifrado (seg)

Cifrado (seg)

Descifrado (seg)

7.55 6.98 12.8 12.75

7.03 7.03 12.46 12.14

7.05 7.31 12.3 12.53

7.07 7.08 12.7 12.32

7.08 6.64 11.85 11.96

7.08 7.1 12.27 12.09

6.99 7.22 11.82 12.11

6.55 7.13 12.01 12.63

7.08 7.22 12.06 12.38

7.05 7.31 12.31 13.07

Page 80: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

69

El dispositivo Sony MT11, genera un archivo de 29KB para una duración de 30 segundos

con un promedio de cifrado de 7.053seg. lo que equivale a:

������ ⇒ 29 !

7.053 "#$= 4.11

!

"#$= 32.88

%&'

"#$

y un promedio de descifrado de 7.102seg. lo que equivale a:

(#")&*+,-. ⇒ 29 !

7.102 "#$= 4.08

!

"#$= 32.64

%&'

"#$

En cuanto al dispositivo Moto G, generó archivos de 60 KB poco más del doble del modelo

MT11 con un promedio de cifrado de:

/&*+,-. ⇒ 60 !

12.258 "#$= 4.89

!

"#$= 39.12

%&'

"#$

y un promedio de descifrado de 7.102seg. lo que equivale a:

(#")&*+,-. ⇒ 60 !

12.398 "#$= 4.83

!

"#$= 38.64

%&'

"#$

lo que muestra que con una diferencia de tamaño el tiempo de proceso es similar de un modelo a

otro.

Finalmente la prueba final para probar la aplicación de las grabaciones de voz, se realizó

utilizando el microcontrolador para el envío de las llaves desde éste. Con la finalidad de probar la

sincronización entre ambos dispositivos. La figura 40 muestra el circuito de pruebas armado sobre

un protoboard.

Figura 4.20. Circuito microcontrolador PIC18F2455 con USB

Se utilizó un programador universal para la carga del programa final hacia el

microcontrolador, el circuito no requiere de alimentación externa ya que el dispositivo móvil le

proporciona el voltaje y la corriente necesaria para que el PIC18F2455 envíe las llaves

correspondientes a la aplicación.

Page 81: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

70

La salida USB del microcontrolador se encuentra conectada a un cable con conector tipo A

macho (ver Figura 41), es necesario la conexión hacia el dispositivo móvil con la ayuda de un cable

tipo On-To-Go (OTG) como se mencionó en el capítulo anterior, con conexión tipo A hembra por

un extremo y un conector tipo micro-B por el otro extremo.

Figura 4.21. Tipos de conectores USB

Al realizar la conexión el dispositivo móvil envía el mensaje que es posible utilizar la

aplicación de audio (cifrado de mensajes), preguntando si se quiere realizar esta operación, como

lo muestra la Figura 42.

Figura 4.22. Conexión PIC18F2455 a Sony MT11 vía USB

Una vez aceptado el requerimiento de la conexión la pantalla de la vista principal a manera

de prueba, muestra las llaves enviadas por el microcontrolador, esto con la finalidad de verificar

que las llaves sean recibidas correctamente como se muestra en la figura 43, nuevamente se

menciona que esto es modo de prueba y no deben mostrarse las llaves ya que esto rompe la

política de la seguridad de las llaves de un cifrado simétrico, por lo cual la muestra de las llaves es

retirado de la aplicación final.

Page 82: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

71

Figura 4.23. Muestra de las llaves en la vista principal

Las llaves mostradas en la vista principal son enviadas posteriormente a la vista de la

solicitud de las llaves donde ya no es necesario ingresarlas manualmente, esto debido a que la

aplicación cuenta con la restricción del ingreso manual, es decir, los editText creados para el

ingreso de la llaves son bloqueados para que solo sean ingresadas las llaves a través del

microcontrolador, evitando el uso de otras personas de la aplicación. La figura 44 muestra las

llaves agregadas directamente por el microcontrolador.

Figura 4.24. Llaves ingresadas por microcontrolador

El proceso anterior es el mismo tanto para el cifrado y el descifrado de las grabaciones. La

grabación realizada para esta prueba es el fragmento del libro cien años de soledad que se utilizo

en las primeras pruebas y el resultado obtenido los muestra en las siguientes figuras.

Figura 4.25. Prueba final microcontrolador, audio original

Page 83: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

72

Figura 4.26. Prueba final, audio cifrado

Figura 4.27. Prueba final, audio descifrado

La prueba final fue realizada con éxito en el uso del microcontrolador y el envío de las

llaves. La grabación, el cifrado y el descifrado se ejecutaron sin falla, con el uso del

microcontrolador durante todo el proceso.

El consumo de corriente solicitada por el microcontrolador al dispositivo de telefonía

móvil es de 27. 4 mA, con un voltaje de 5 V, requiriendo así una potencia 0.13W, proporcionando

hasta 2 horas de comunicación continua, con el uso de ambos dispositivos conectados.

Page 84: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

73

Capitulo 5. Análisis para implementación en GSM.

5.1 Vulnerabilidad de las llamadas telefónicas.

El monitoreo de los celulares sin el consentimiento del usuario crece rápidamente en los

países de América Latina como Argentina, México y Brasil después de ser muy famoso en Estados

Unidos desde 2008.

Actualmente existe un interceptor nombrado Stingray Receptor de IMSI por GSM; es un

equipo con el cual se recopilan datos de teléfonos en zonas específicas y puede realizar ataques de

denegación de servicio a los teléfonos móviles e interceptar conversaciones telefónicas. Aunque

este producto no está disponible de forma legal, se pueden conseguir a través de los mercados

negros.

Figura 5.1. Dispositivo Stingray

Este tipo de dispositivos son utilizados por la policía y la milicia para rastrear teléfonos

celulares. Un sistema de Stingray está conformado por una antena, mapas, y un dispositivo de

señal. El dispositivo trabaja como una torre celular de Base Transmitting Stations (BTS) y obtiene la

lista de los teléfonos sobre la zona de conexión con la BTS. Después se obtiene el International

Mobile Subscriber Number (IMSI) y el Electronic Serial Number (ESM) asociados con todos los

teléfonos en la zona.

Existen dos formas de utilizar estos dispositivos. La primera es utilizar la antena en un área

determinada para recoger IMSI y ESN de los teléfonos móviles en esa zona y saber quién se

encuentra en la zona pre-determinada. La segunda, es localizar un teléfono móvil con el

International Mobile System Equipment Identity(IMEI) y ESN como la aplicación utilizada por

AppleFind my phone para localizar móviles extraviados, pero en este caso, se puede rastrear el

teléfono incluso si es formateado, ya que el IMEI está asociado con el hardware y no el software.

Con base a la intensidad de la señal del dispositivo es posible encontrar la ubicación exacta del

teléfono móvil.

También es posible con este dispositivo generar ataques DDOS sobre los teléfonos móviles

pero en términos de señal de GSM no en los paquetes de datos. Al referirse a un ataque DDOS el

teléfono no puede recibir o realizar llamadas. Con el software adecuado se pueden utilizar estos

Page 85: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

74

dispositivos para interceptar las conversaciones de los teléfonos móviles además de hacer

llamadas y enviar mensajes de texto falsos. Estos softwares son conocidos como Over-The-Air

special signal software como FISHHAWK, PORPOISE.

Existen otros tipos de dispositivos conocidos como Imsi Catcher, Gsm Interceptor,

Interrogator, Blackfin, Blackfin II, Harpoon, Hawksbill, Spurdog, Fishfinder, Kingfish, Stingray,

Moray, Stingray II, Gossamer, Gsm Interrogator, Longship, Rayfish, Cdma Iden Interrogator, Umts

Interrogator, Stonecrab, Fishhawk, Porpoise, Firefish, Tarpon, Amberjack, Lanterneye. Algunos de

estos dispositivos como están disponible en el mercado.

A continuación se muestran alguno de ellos y sus características.

Gossamer. Es un dispositivo portátil similar al Stingray es capaz de recopilar datos de los

teléfonos móviles que están operando en su rango. El dispositivo tiene la capacidad realizar

ataques denegación de servicios sobre los usuarios, bloqueando sus teléfonos al realizar o recibir

llamadas. El costo aproximado de este dispositivo en el mercado negro en México, Brasil y

Argentina es alrededor de los 10 mil a 20 mil dólares, dependiendo del estado del dispositivo y

características del dispositivo.

Figura 5.2. Dispositivo Grossamer

Dispositivos Triggerfish. Es un dispositivo espía con el cual es posible interceptar llamadas

o mensajes de texto en tiempo real en el área seleccionado. Contiene todas las funciones del

Stingray. Algunas versiones rusas avanzadas del dispositivo tiene la capacidad de interceptar

llamadas y mensajes de cerca de 100 mil teléfonos en una zona deseada de la ciudad.

Page 86: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

75

Figura 5.3. Dispositivo Tiggerfish

Dispositivos Kingfish. Es un dispositivo con la capacidad de rastrear y analizar la

información de los celulares en una zona especificada. El dispositivo es más pequeño de Stingray,

pero otorga una la lista de conexiones entre diferentes teléfonos. El dispositivo puede ser

controlado de forma inalámbrica para monitorear las comunicaciones.

Dispositivos Harpoon. Es un dispositivo amplificador utilizado junto con los dispositivos

Stingray o Kingfish, para rastrear grandes áreas y mayor cantidad de dispositivos móviles a grandes

distancias. Su costo en el mercado está valuado en 15 mil dólares.

Con esta información se puede conocer que la intercepción de señales celulares es posible,

pero tiene un costo elevado para realizar pruebas propias que permitan verificar la vulnerabilidad

completa de la red GSM.

5.2 Implementación de cifrado en la red GSM Una vez realizado la implementación del cifrado y descifrado sobre mensajes de voz

generada a partir del dispositivo Android, se planteó la propuesta de la manipulación del Audio

sobre la trama creada a partir de GSM.

Con la información recopilada en el capítulo 2, se mencionó que los paquetes de

información, son enviados en tramas con un contenido de13 Kbit/s, donde la voz se divide en

bloques de 20 ms (0.02 segundos), y que las pruebas realizadas sobre cifrado y descifrado

consistieron en una duración de más de 20 ms fueron un éxito, se propuso la tarea de cifrar la

información creada por los módulos GSM y sustituir posteriormente, la información de audio

original por el archivo de audio cifrado, con ellos la información viajaría a través de la red de forma

segura.

Con la propuesta anterior se dio a la tarea de realizar una nueva búsqueda enfocada a la

manipulación de los módulos GSM por medio de la programación en Android.

La programación en Android y el sitio de desarrollo ofrece clases particulares para el

paquete de telefonía, muchas de estas clases ofrecen a los programadores la posibilidad de

recuperar información referente a las llamadas telefónicas, como determinar los servicios de

telefonía, así como obtener información referente a estas. La siguiente lista muestra las clases

para el manejo de telefonía con GSM.

Page 87: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

76

· TelephonyManager. Proporciona acceso a la información sobre los servicios de telefonía

en el dispositivo. Las aplicaciones pueden utilizar los métodos en esta clase para

determinar los servicios de telefonía y de los estados, así como acceder a alguna

información sobre su servicio su suscripción de telefonía. Las solicitudes también pueden

registrar un oyente para recibir la notificación de cambios de estado de telefonía.

· CellIdentityGsm. Clase para representar a las células GSM únicas.

· CellInfoGSM. Proporciona información de la celda inalterable desde un punto en el

tiempo.

· CellSignalStrengthGsm. Otorga información relacionada con la intensidad de la señal GSM.

Con la información proporcionada por el sitio web de desarrollo Android, se estudiaron

varias clases referente a la comunicación móvil, sin obtener información referente a la

manipulación sobre los módulos GSM. Por ello se planteó la propuesta de ingresar en las clases

referentes a la telefonía y obtener la estructura de la arquitectura de estas clase, con la finalidad

de poder manipularla y reemplazar el audio original de una llamada por la del audio cifrado.

El punto anterior no fue posible ya que la arquitectura de GSM en cuanto al módulo o la

capa de trasmisión MS (Mobile Station) que hace referencia al dispositivo de telefonía móvil, está

compuesta por una arquitectura de hardware cerrada, es decir, que el proceso de ejecución de

obtención de la voz, la conversión Analógica/Digital, la codificación y la creación de la trama de

envío, se realiza de manera propia de cada tarjeta o modem incorporada al procesador. Donde la

forma para comunicarse con el dispositivo es por medio de comandos AT, que en Android son

sustituidos por clases que configuran esa información.

En la figura 51 aparece la arquitectura de la tarjeta SIM900, que muestra la estructura

conformada por la mayoría de los módulos GSM para trabajar como estación móvil dentro de las

redes GSM.

Figura 5.4. Diagrama módulo SIM900[27]

Page 88: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

77

Y como se muestra en las figuras 52 y 53 el modulo sobre la obtención y salida de audio

están encapsuladas o cerradas al programador.

Figura 5.5. Entrada de audio SIM900[27]

Figura 5.6. Salida de audio Sim900 [27]

Por la razón anterior se estudiaron las formas para comunicarse con los módulos GSM;

esta comunicación se realiza por medio de comandos denominados AT. Estos comandos permiten

la configuración de ciertas especificaciones del módulo o la obtención de información particular

como pueden ser el número IMEI. A continuación se muestra una lista de los comandos AT más

utilizados dividido en 4 grupos (Para los primeros 3 grupos anteponer el prefijo AT):

Comandos Básicos.

· A : Responder la llamada entrante

· A/ : Repetir el último comando (no se le antepone AT)

· D : Configura la forma de marcado: T (por tonos), P (por pulsos)

· E : Deshabilita el eco para la terminal

Page 89: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

78

· E1 : Habilita el eco

· H : Cuelga la llamada

· I : Pedido de información

· L : Regula el volumen del sonido de salida del módem

· O: Retorna al modo En Línea desde el modo Comando.

· Q : Configuración para mostrar los resultados

· Q1 : Hace que el módem no arroje resultados de las operaciones

· Sn? : Pregunta por el valor del registro n

· Sn=r : Ingresa el valor r al registro n

· V : El módem devuelve resultados numéricos

· V1 : El módem devuelve resultados con palabras

· X : Reporta los códigos básicos de conexión

· X1 : Ídem al anterior y agrega la velocidad de la conexión

· X2 : Ídem al anterior y además detecta tono de marcado

· X3 : Ídem X1 y además es capaz de detectar tono de ocupado

· X4 : El módem reporta y detecta todos los acontecimientos anteriores

· Z : Reset de la configuración del módem con los datos del perfil 0

· Z1 : Reset de la configuración del módem con los datos del perfil 1

· W : Envía códigos de progreso de la negociación

· +++ : Carácter de escape para volver al modo comando, estando en modo en línea sin

colgar la comunicación (por defecto es el carácter + pero puede configurase otro en el

registro S2). Aquí no se debe anteponer el prefijo AT.

Comandos Extendidos

· &C : Mantiene activa la señal de “Carrier Detect”(contra el otro módem).

· &C1 : Detecta e indica “Carrier Detect” (contra el otro módem).

· &D : Ignora la señal de “Data Terminal Ready”.

· &D1 : si DTR se desactiva el módem para a modo comando.

· &D2 : El módem cuelga la comunicación si el DTR cae.

· &D3 : El módem cuelga, reset y vuelve a modo comando si cae el DTR.

· &F : Carga el perfil de configuración de fábrica 0.

· &F1 : carga el perfil de configuración de fábrica 1 (IBM-PC compatible).

· &F2 : Carga el perfil de configuración de fábrica 2 (MAC compatible).

· &F3 : Carga el perfil de configuración de fábrica 3 (MAC compatible).

· &K : Deshabilita el control local de flujo.

· &K1 : Habilita el control local de flujo por hardware (RTS/CTS).

· &K2 : Habilita el control local de flujo por software (XON/XOFF).

· &Q : Deshabilita el control de errores.

· &Q5 : Selecciona el control de errores V.42 (necesita control de flujo).

· &Q8 : Selecciona una corrección de errores alternativa: MNP.

· &Q9 : Condiciona la compresión: si está activo la V.42 bis desactiva el MNP5.

· &U : Habilita la modulación Trellis según la norma V.32.

· &U1 : Deshabilita la modulación Trellis según la norma V.32.

· &V : Muestra la configuración activa.

· &W : Guarda la configuración actual en el perfil 0.

Page 90: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

79

· &W1 : Guarda la configuración actual en el perfil 1.

· &Y : Hace que el perfil 0 sea el activo cuando se prende el equipo.

· &Y1 : Hace que el perfil 1 sea el activo cuando se prende el equipo.

Nota: estos comandos no son aceptados por la totalidad de los módems y es posible que

algunos de los parámetros aquí mencionados no tengan los mismos efectos en todos los módems.

Comandos Propietarios

· %C : Deshabilita la compresión de los datos.

· %C1 : Habilita la compresión MNP5.

· %C2 : Habilita la V.42 bis.

· %C3 : Habilita la MNP5 y la V.42 bis.

Registros S.

· S0 : Número de “rings” al cabo del cual el módem debe contestar. Si el valor es 0 el

módem no contesta nunca de forma automática.

· S1 : Lleva la cuenta de cuantos rings han ocurrido.

· S2 : Contiene el número en ASCII del caracter de escape. Por default: 43 (+)

· S6 : Tiempo de espera para el tono de discado.

· S7 : Tiempo de espera para la señal de “Carrier Detect” remoto.

· S12 : Tiempo de guarda para pasar al modo comando luego del “+++” .

· S37 : Negociación de la velocidad.

Nota: la cantidad de registros que posea un módem dependen del modelo del mismo. Solo

los primeros 12 son estándar.

Como ya se mencionó anteriormente los parámetros dan la posibilidad de configurar

ciertas especificaciones de los módulos, pero no es accesible la sustitución de los bits que hace

referencia a las tramas con el contenido de voz en el canal de tráfico. Por las siguientes razones no

es posible trabajar con la modificación del contenido de las tramas de la red GSM. Como primer

punto se tiene que el procesamiento del sonido o en el caso de las llamadas sobre la red GSM, está

bloqueado porque el procesamiento es realizado por hardware y no por software ya que el tráfico

de voz y de datos son conmutados por circuitos impidiendo al sistema operativo Android trabajar

con este nivel de la arquitectura del dispositivo de telefonía móvil. Como segundo punto es que los

fabricantes de teléfonos celulares esta obligados a utilizar un formato de diseño estándar respecto

a la incorporación de los protocolos GSM y tiene estrictamente prohibido realizar modificaciones

donde sea alterada la voz.

Page 91: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

80

Conclusiones

El sistema operativo Android ofrece una máquina virtual con la información suficiente para

darle al programador las herramientas necesarias para crear o desarrollar casi cualquier

aplicación, ya que este sistema operativo se encuentra montado en dispositivos cada vez con

mejores recursos de procesamiento, ya que los procesadores utilizados por los dispositivos

móviles continúan elevándose.

El objetivo general de este trabajo tuvo el inconveniente de la aplicación sobre la red de

telefonía GSM, ya que por razones de hardware principalmente, no es posible su manipulación con

el sistema operativo Android, aunque existen clases que ofrecen cierta información para la

comunicación con el módulo GSM que es interpretado con los comandos AT; sin embargo, fue

posible el desarrollo de la aplicación con la pertinencia de cifrar y descifrar grabaciones de voz,

utilizando el protocolo Triple-DES 96.

En cuanto a la vulnerabilidad de la red, se concluyó que existen dispositivos capaces tanto

de interceptar llamadas y mensajes, como el bloqueo total de las señales en aéreas específicas,

estos dispositivos son de uso exclusivo por parte de las autoridades pero son posibles de conseguir

en el mercado negro, a un costo elevado, sin el alcance para realizar pruebas completas de

vulnerabilidad.

Con respecto al sistema de cifrado y descifrado de voz con base a los protocolos de

seguridad, se realizó la aplicación con la cual es posible integrar el algoritmo Tiple-DES 96 en el

sistema operativo Android montado en la máquina virtual Dalvik en grabaciones creadas a partir

de un dispositivo de telefonía móvil, con un funcionamiento adecuado.

Android al ser un sistema operativo instalado en llámese una computadora de bolsillo, que

cuenta con puertos de entrada y salida, es posible agregar otros dispositivos que interactúen con

él, ya sea el caso de dispositivos de almacenamiento o algún otro que ofrezca una respuesta por

medio de una entrada enviada a través de un puerto USB, ya que el dispositivo móvil puede

convertirse en un anfitrión o host capaz de controlar otros dispositivos, con las configuraciones

adecuadas en ambos dispositivos, otorgando al usuario una herramienta de gran alcance para

múltiples aplicaciones.

Page 92: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

81

Trabajos a futuro

En cuanto a los trabajos a futuro, se puede contemplar la implementación del cifrado y

descifrado de mensajes de voz utilizando el estándar Triple-DES 96 sobre redes que trabajen con

protocolo de internet, ya que la red GSM tiene restricciones de acceso.

Establecer un nuevo codificador de voz en el cual incluya un cifrado de la información una

vez codificada digitalmente, es decir implementar una etapa de cifrado en la salida del codificador,

esto daría una alternativa de protección de la información sin la utilización de algún dispositivo de

cifrado externo.

Ya que la programación fue realizada a nivel de clases en Java, una mejora puede incluir la

manipulación de la información a nivel de bit o el trabajo en un lenguaje nativo, ofreciendo un

incremento en la velocidad de cifrado de la aplicación de mensajes de voz realizada en esta tesis.

La aplicación de cifrado con el algoritmo Triple-DES 96 puede ser programada sobre otros

sistemas operativos para móviles, como iOS o Windows phone, ya que el algoritmo de cifrado

puede ser programado sobre estas plataformas.

La programación y el contenido del microcontrolador son cargadas por medio del

programador de forma protegida evitando la copia o la lectura original del código contenido en él,

sin embargo el envío de las llaves de cifrado y descifrado viaja de forma insegura ya que si ambos

dispositivos son utilizados por un tercero, es posible que exista el robo de las llaves, por ello se

propone como una implementación a futuro también la implementación del envío de las llaves

con un cifrado asimétrico como puede ser RSA.

Finalmente la programación de cifrado sobre un sistema embebido sería una alternativa

de uso para las redes de radio como GSM, mantenido separadas las tareas de comunicación y

cifrado sin saturar los recursos de un solo dispositivo.

Page 93: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

82

Referencias

[1]. Qi, H. F.; Yang, X.H.; Jiang, R.; Liang, B.; Zhou, S. J., "Novel End-to-End Voice Encryption

Method in GSM System," Networking, Sensing and Control, 2008. ICNSC 2008. IEEE

International Conference on , vol., no., pp.217,220, 6-8 April 2008

[2]. Chumchu, P.; Phayak, A.; Dokpikul, P., "A simple and cheap end-to-end voice encryption

framework over GSM-based networks," Computing, Communications and Applications

Conference (ComComAp), 2012 , vol., no., pp.210,214, 11-13 Jan. 2012

[3]. P. Bouška and M. Drahanský, “Communication Security in GSM Networks,” In: Proceedings

of SecTech 2008, Sanya, Hainan, CN, IEEE CS, 2008, p. 248-251.

[4]. GCom Thecnologies "GSM Intercepter". Marzo 2014. [Online] Available:

http://www.gcomtech.com/ccp0-prodshow/gsm-intercept.html.

[5]. El Universal "México sufre 12 ataques cibernéticos cada segundo". Abril 2014. [Online]

Available: http://www.eluniversal.com.mx/finanzas-cartera/2014/mexico-ataques-

ciberneticos-1004734.html.

[6]. Congreso de los Estados Unidos Mexicanos "Ley de Seguridad Nacional". Diciembre 2005

[Online] Available: http://www.ordenjuridico.gob.mx/Federal/Combo/L-65.pdf

[7]. StatCounter "Top 8 Mobile Operating Systems from July 2013 to July 2014" Julio 2014

[Online] Available: http://gs.statcounter.com/#mobile_os-ww-monthly-201307-201407

[8]. World Time Zone "GSM World Coverage Map and GSM Country List" Noviembre 2014

[Online] Available: http://www.worldtimezone.com/gsm.html.

[9]. H. Moya, J. Manuel, "Comunicaciones Móviles. Sistemas GSM, UMTS Y LTE" 2da. RA-MA

Editorial, México, 2012.

[10]. J. Girones, "El gran libro de Android" 2da ed. Alfaomega Grupo Editor, México, Julio

2012.

[11]. A. Maiorano, "Criptografía Técnicas de desarrollo para profesionales" 1a ed. Alfaomega

Grupo Editor, México, Agosto 2014.

[12]. "Federal Information Processing Standards Publication", FIPS PUB 46-3, 1999.

[13]. V.M. Silva-García, R. Flores-Carapia, C. Rentaría-Márquez, B. Luna-Benoso "The Triple-

DES-96 Cryptographic System", Int. J. Contemp. Math. Sciences, Vol. 8, No. 19, pp.925 -

934, 2013

[14]. V.M. Silva-García. "Algorithm for Strengthening Some Cryptography Systems", Journal of

applied Mathematics and Decision Sciences Hikari ltd. Vol. 4, No. 20, pp. 967-976, 2010.

[15]. V.M. Silva. "Reducing Computational Complexity for 192 bits SPN Encryption Algorithms

with Variable Permutation", JP Journal of Algebra, Number Theory and Applications,

Pushpa Publishing House. Vol. 16 No. 2, pp. 161-172, 2010.

[16]. D. R. Stinson, CRYPTOGRAPHY: Theory and practice, Chapman & Hall/ CRC Press, 2002.

[17]. Microchip, "PIC16F2455 Features and DataSheet " [Online] Available:

http://www.microchip.com/wwwproducts/Devices.aspx?product=PIC18F2455.

Page 94: PRESENTA - tesis.ipn.mx

Sistema de cifrado de voz para equipos de telefonía móvil

83

[18]. Xataka "TopFive smartphone vendors" Diciembre 2014 [Online] Available:

http://www.xataka.com/moviles/asi-queda-el-ranking-de-fabricantes-de-smartphones-en-

2014-segun-idc.

[19]. Gartner "Smartphone Sales Grew 46.5 Percent in Second Quarter of 2013 and Exceeded

Feature Phone Sales for First Time". Octubre 2013. [Online] Available:

http://www.gartner.com/newsroom/id/2573415

[20]. Android developer "Dashboards". Julio 2015. [Online] Available:

https://developer.android.com/about/dashboards/index.html?utm_source=ausdroid.ne

[21]. Android developer "MediaRecorder" Septiembre 2014 [Online] Available:

http://developer.android.com/intl/es/reference/android/media/MediaRecorder.html

[22]. Apple Developer "Quick Time File Format Specification" Julio 2015 [Online] Available:

https://developer.apple.com/library/mac/documentation/QuickTime/QTFF/qtff.pdf

[23]. USB On-To-Go and Embedded Host "Introduction to USB On-To-Go" 2015 [Online].

Available: http://www.usb.org/developers/onthego/

[24]. USB On-To-Go "USB On-The-Go and Embedded Host Automated Compliance Plan" 2015

Available: http://www.usb.org/developers/onthego/

[25]. Android Developers, website. 2015 [Online]. Available: http://developer.Android.com

[26]. USB Host and Accesory [Online] 2015 Available:

https://developer.Android.com/guide/topics/connectivity/usb/index.html

[27]. SimCom, A company of SIM Tech "SIM900 Hardware Design_V2.0.pdf" Septiembre 2015.

[28]. J. Tomás, V. Carbonell, M. García, "El gran Libro de Android Avanzado", 2da ed.

Alfaomega Grupo Editor, México, Julio 2014.

[29]. R. D. Stinson, "Cryptography Therory and Practice" 2nd ed, CRC Press LLC, USA 2000.

[30]. W. Stallings, "Cryptography and Network Security Priciples and Practice" 5th ed, Prentice

Hill, USA 2011.

[31]. P.J. Deitel, H. M. Deitel, "Java Como Programar" 7ma ed, Pearson Education, México

2008.

[32]. A. Fuster, D. De la Guía, L. Hernández, "Técnicas criptográficas de protección de datos",

2da ed, Alfaomega Grupo Editor, México 2001.

[33]. B. Schneier, "Applied Cryptography", 2nd ed, Wiley, USA, 1996.