INSTITUTO POLITÉCNICO NACIONAL
CENTRO DE INNOVACIÓN Y DESARROLLO TECNOLÓGICO EN CÓMPUTO
Cifrado y distribución de documentos vía web utilizando algoritmos Triple DES-96 y RSA
Tesis que para obtener el grado de Maestría en Tecnología de Cómputo
Presenta: Alfredo Ordoñez Hernández
Directores Dr. Víctor Manuel Silva García
Dr. Benjamín Luna Benoso
Ciudad de México, Septiembre de 2016
Resumen
En la actualidad, casi todas las empresas y dependencias gubernamentales tienen
que trabajar con una gran cantidad de documentos, y la mayorıa de estos con in-
formacion confidencial, por lo cual, es necesario implementar una estrategia para
garantizar la seguridad y confidencialidad de dichos documentos.
El trabajo de tesis que aquı se presenta, propone el desarrollo de un sistema in-
formatico cuya parte medular se concentra en el cifrado de documentos utilizando
el algoritmo Triple Data Encryption Standard 96 (Triple DES-96), funciones hash
para validar la integridad de la informacion y el algoritmo Rivest, Shamir y Ad-
leman (RSA) para solventar los riesgos de autenticacion y confidencialidad en el
proceso de intercambio de documentos en ambientes de internet e intranet.
Al concluir este trabajo, se tiene como resultado un criptosistema hıbrido, que
combina los algoritmos de clave privada, los cuales han demostrado ser los mas
apropiados para el cifrado de documentos y los algoritmos de clave publica que son
los mas adecuados para el intercambio de informacion. Esta solucion desarrollada
es una excelente alternativa para afrontar los retos de la seguridad en la adminis-
tracion y distribucion de documentos.
ii
Abstract
Today, almost all companies and agencies of government have to work with a lot of
documents, and most of these, with confidential information, so it is necessary to
implement a strategy to ensure the security and confidentiality of such documents.
The thesis work presented here, proposes the development of an information sys-
tem, whose central part focuses on document encryption algorithm using the Triple
Data Encryption Standard 96 (Triple DES-96), hash functions to validate the in-
tegrity of the information and Rivest, Shamir and Adleman (RSA), to address the
risks of authentication and confidentiality in the process of document exchange in
internet and intranet environments.
Upon completion of this work, its results in a hybrid cryptosystem that combines
private key algorithms, which have proven to be the most appropriate for the do-
cument encryption algorithms and public key algorithms that are best suited for
the exchange of information. This solution is an excellent alternative developed to
meet the security challenges in the management and distribution of documents.
iii
Agradecimientos
Agradezco al Consejo Nacional de Ciencia y Tecnologıa (CONACYT), por el apo-
yo que me otorgo para poder realizar la Maestrıa en Tecnologıa de Computo en
el Centro de Innovacion y Desarrollo Tecnologico en Computo, del Instituto Po-
litecnico Nacional.
A mis directores de tesis el Dr. Vıctor Manuel Silva Garcıa y al Dr. Benjamın
Luna Benoso, quienes compartieron sus conocimientos y experiencias para poder
realizar el presente trabajo, su orientacion, seguimiento y supervision continua,
pero sobre todo por la motivacion y el apoyo recibido en estos anos.
Al Dr. Rolando Flores Carapıa por su apoyo incondicional, y en general a to-
dos los profesores que durante mi estancia en el Centro me brindaron su amistad
y conocimientos.
A los sinodales quienes revisaron y ratificaron mi tesis.
Un agradecimiento muy especial merece la comprension, paciencia y el animo de
todos mis seres queridos.
A todos ellos, muchas gracias.
iv
Indice general
Carta de cesion de derechos I
Resumen II
Abstract III
Agradecimientos IV
Contenido V
Lista de figuras VII
Lista de tablas VIII
Abreviaciones IX
1. Introduccion 1
1.1. Objetivo general . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2. Objetivos especıficos . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3. Organizacion de la tesis . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Estado del arte 4
2.1. Estado del arte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3. Marco teorico 12
3.1. Teorıa de numeros . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.1.1. Numeros enteros . . . . . . . . . . . . . . . . . . . . . . . . 13
3.1.2. Numeros primos y de alta primalidad . . . . . . . . . . . . . 13
3.1.3. Maximo comun divisor . . . . . . . . . . . . . . . . . . . . . 14
3.1.4. Algoritmo de Euclides . . . . . . . . . . . . . . . . . . . . . 14
3.1.5. Algoritmo de Euclides Extendido . . . . . . . . . . . . . . . 15
3.1.6. Aritmetica modular . . . . . . . . . . . . . . . . . . . . . . . 16
3.1.6.1. Congruencia de numeros enteros . . . . . . . . . . 16
3.1.7. Pequeno Teorema de Fermat . . . . . . . . . . . . . . . . . . 16
v
Contenido vi
3.1.8. Funcion de Euler . . . . . . . . . . . . . . . . . . . . . . . . 17
3.2. Criptografıa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.2.1. Clasificacion de la criptografıa . . . . . . . . . . . . . . . . . 18
3.3. Criptografıa simetrica . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.3.1. Data Encryption Standard - DES . . . . . . . . . . . . . . . 19
3.3.2. Triple DES . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.3.3. Triple DES-96 . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.4. Criptografıa asimetrica . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.4.1. RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.5. Desarrollo de software . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.5.1. Metodologıa agil de desarrollo . . . . . . . . . . . . . . . . . 32
4. Desarrollo del modelo propuesto 35
4.1. Cifrado y descifrado del documento . . . . . . . . . . . . . . . . . . 36
4.2. Autenticacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.3. Autorizacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.4. Administracion de llaves . . . . . . . . . . . . . . . . . . . . . . . . 37
4.5. Arquitectura y componentes de la solucion planteada . . . . . . . . 38
4.5.1. Base de datos . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.5.2. Software de desarrollo de la aplicacion . . . . . . . . . . . . 39
4.5.3. Lenguaje de programacion JAVA . . . . . . . . . . . . . . . 40
4.5.4. Servidor web . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.6. Documentacion de la aplicacion . . . . . . . . . . . . . . . . . . . . 41
4.6.1. Caso de uso general . . . . . . . . . . . . . . . . . . . . . . . 41
4.6.2. Diagrama de flujo del proceso . . . . . . . . . . . . . . . . . 43
4.6.3. Diagrama de la base de datos . . . . . . . . . . . . . . . . . 44
4.6.4. Menu de opciones de la aplicacion . . . . . . . . . . . . . . . 44
4.6.5. Interfaz grafica de la aplicacion . . . . . . . . . . . . . . . . 45
5. Analisis de resultados 54
5.1. Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
5.1.1. Autenticacion . . . . . . . . . . . . . . . . . . . . . . . . . . 54
5.1.2. Integridad . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
5.1.3. Confidencialidad . . . . . . . . . . . . . . . . . . . . . . . . 56
6. Conclusiones y trabajos a futuro 58
6.1. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
6.2. Trabajos a futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
6.3. Reflexion final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Bibliografıa 60
Indice de figuras
2.1. Esquema de cifrado mixto . . . . . . . . . . . . . . . . . . . . . . . 5
3.1. Esquema general del DES . . . . . . . . . . . . . . . . . . . . . . . 20
3.2. Esquema de la funcion f . . . . . . . . . . . . . . . . . . . . . . . . 21
3.3. Esquema del algoritmo Triple DES . . . . . . . . . . . . . . . . . . 26
3.4. Diagrama de flujo de RSA . . . . . . . . . . . . . . . . . . . . . . . 31
3.5. Esquema general RSA . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.1. Diagrama conceptual . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.2. Diagrama arquitectura . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.3. Fragmento del codigo de la clase RsaUtil . . . . . . . . . . . . . . . 40
4.4. Funcion fGetKeys . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.5. Caso de uso general . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.6. Diagrama del proceso . . . . . . . . . . . . . . . . . . . . . . . . . . 43
4.7. Diagrama de la base de datos . . . . . . . . . . . . . . . . . . . . . 44
4.8. Menu de opciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.9. Pantalla de ingreso al sistema . . . . . . . . . . . . . . . . . . . . . 45
4.10. Pantalla principal . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.11. Catalogo de usuarios . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.12. Listado de documentos . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.13. Registro de documentos . . . . . . . . . . . . . . . . . . . . . . . . 49
4.14. Archivos generados . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.15. Asignacion de documento . . . . . . . . . . . . . . . . . . . . . . . 50
4.16. Envıo de clave del documento . . . . . . . . . . . . . . . . . . . . . 51
4.17. Validacion de datos para descifrado del documento 1 . . . . . . . . 52
4.18. Validacion de datos para descifrado del documento 2 . . . . . . . . 52
4.19. Descargar documento descifrado . . . . . . . . . . . . . . . . . . . . 53
5.1. Valores de llaves generadas . . . . . . . . . . . . . . . . . . . . . . . 55
5.2. Contenido del archivo de llave privada . . . . . . . . . . . . . . . . 55
5.3. Llave del archivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
vii
Indice de tablas
2.1. Contenido de un certificado digital . . . . . . . . . . . . . . . . . . 7
3.1. Permutacion Inicial IP . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.2. Tabla de expansion E . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.3. Caja de sustitucion S1 . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.4. Caja de sustitucion S2 . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.5. Caja de sustitucion S3 . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.6. Caja de sustitucion S4 . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.7. Caja de sustitucion S5 . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.8. Caja de sustitucion S6 . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.9. Caja de sustitucion S7 . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.10. Caja de sustitucion S8 . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.11. Matriz de seleccion . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.12. Tabla de Permutacion P . . . . . . . . . . . . . . . . . . . . . . . . 25
3.13. Permutacion Inversa IP−1 . . . . . . . . . . . . . . . . . . . . . . . 25
3.14. Tiempo de cifrado con Triple DES y Triple DES-96 en segundos . . 29
5.1. Tiempo de cifrado y descifrado con Triple DES-96 . . . . . . . . . . 56
viii
Abreviaciones
DES Data Encription Standard
Triple DES Triple Data Encription Standard
Triple DES-96 Triple Data Encription Standard de 96 bits
RSA Rivest, Shamir y Adleman
TIC Tecnologıas de la Informacion y la Comunicacion
DFS Distributed File System
FTP File Transfer Protocol
SAAS Software As A Service
PAAS Plataform As A Service
IAAS Infraestructure As A Service
NIST National Institute of Standards and Technology
SHA-1 Secure Hash y Algorithm 1
AES Advanced Encryption Standard
MCD Maximo Comun Divisor
PK Public Key (Llave publica)
SK Secret Key (Llave privada)
MOD Modulo
PDF Portable Document Format
MIT Massachusetts Institute of Technology
MD5 Message Digest Algorithm 5
MIT Massachusetts Institute of Technology
ISO International Standards Organization
PKSC Public-key Cryptography Standards
HTML Hyper Text Markup Language
ix
Abreviaciones x
RAD Rapid Application Development
APEX APplication EXpress
SQL Structured Query Language
CSS Cascading Style Sheets
Capıtulo 1
Introduccion
En las empresas e instituciones cada vez es mayor el numero de actividades que se
realizan atraves de internet e intranet, por lo que se hace necesario poner enfasis
en los protocolos y mecanismos de seguridad para el manejo de la informacion
e intercambio de documentos. En este contexto uno de los principales problemas
reside en que no existe contacto directo entre las partes implicadas en estos pro-
cesos, por lo que se debe validar que se este autorizado para enviar y consultar los
documentos involucrados.
Por lo anterior, es necesario contar con un documento digital que ofrezca las mis-
mas funcionalidades que los documentos fısicos con la ventaja de ofrecer garantıas
aun sin la presencia fısica del documento, ademas de las correctas autorizaciones
de consulta y modificacion a las partes involucradas.
La pregunta es ¿Como resolvemos esta situacion?
La criptografıa nos provee de tres elementos fundamentales, estos son: Cifrado de
documentos, certificados digitales y la firma electronica, con los cuales podemos
plantear una solucion para resolver los problemas de seguridad en el intercambio
de informacion por medios electronicos. Con estos tres elementos se consigue:
� Comprobar en una comunicacion la identidad del interlocutor (autentica-
cion).
1
Capıtulo 1. Introduccion 2
� Asegurar que solo obtendra la informacion el o los usuarios seleccionados
(autorizacion-confidencialidad).
� Asegurar que la informacion no ha sido modificada durante y despues de su
envıo (integridad).
� Asegurar que el emisor no puede desdecirse de un mensaje enviado (no re-
pudio en origen).
1.1. Objetivo general
Implementar los algoritmos Triple Data Encryption Standard 96 (Triple DES-96)
y Rivest, Shamir y Adleman (RSA), para distribuir de forma segura documentos
vıa web, apoyados en un criptosistema hıbrido.
1.2. Objetivos especıficos
� Aplicar el algoritmo Triple DES-96 en el cifrado de documentos.
� Implementar el algoritmo RSA para la distribucion de las llaves del algoritmo
Triple DES-96.
� Desarrollar la aplicacion web para la gestion y administracion de seguridad
de los documentos.
1.3. Organizacion de la tesis
El presente documento consta de 6 capıtulos que abordan los temas siguientes.
Capıtulo 1.- Introduccion, presenta de manera general los motivos para realizar
el trabajo, se define el objetivo general y los objetivos especıficos ası como, una
breve descripcion del contenido de los capıtulos de este documento.
Capıtulo 2.- Estado del arte, nos da un panorama general del estado del arte
en el cifrado y distribucion de documentos en internet y las tecnicas empleadas en
este proceso.
Capıtulo 1. Introduccion 3
Capıtulo 3.- Marco teorico, contiene conceptos matematicos y algoritmos em-
pleados en la criptografıa, necesarios para realizar el cifrado de documentos ası
como, conceptos de la metodologıa de desarrollo de software empleada.
Capıtulo 4.- Desarrollo del modelo propuesto, presenta las bases del diseno
y construccion del sistema web, que permitira la integracion de las tecnicas y
algoritmos empleados en el cifrado y distribucion de documentos.
Capıtulo 5.- Analisis de resultados, detalla la respuesta y comportamiento del
sistema planteado bajo diferentes condiciones de operacion.
Capıtulo 6.- Conclusiones y trabajos a futuro, resume los aspectos relevantes
del trabajo presentado. Finalizo con una serie de sugerencias para dar continuidad
y enriquecer la solucion aquı planteada.
Capıtulo 2
Estado del arte
2.1. Estado del arte
En los ultimos anos el desarrollo de las tecnologıas de la informacion y la comu-
nicacion (TIC’s) ha sido vertiginoso, lo que permite que gobiernos, instituciones,
empresas y particulares, generen, almacenen y distribuyan gran cantidad de infor-
macion y documentos electronicos importantes, por lo que es necesario implemen-
tar sistemas o aplicaciones informaticas que permitan la consulta y distribucion
vıa intranet o internet de todo tipo de documentos. El gran volumen de documen-
tos que se genera y la frecuencia con que se realiza implica que los usuarios finales
vean este proceso como una practica cotidiana, ocasionando que algunas veces no
se le otorgue la importancia que se merece a los puntos de seguridad, autenticidad
e integridad de informacion que tienen a su alcance.
La transmision de documentos electronicos vıa internet ha resultado ser eficiente,
sin embargo, al ser una red abierta corre el riesgo de ser vulnerable a ataques
de hackers y virus, teniendo como resultado falsificacion, manipulacion, repudio
de los documentos entre otros temas de seguridad. El manejo de los documentos
electronicos compensan muchas de las desventajas de los documentos en papel, ta-
les como almacenamiento, deterioro del medio ambiente, velocidad y tiempo para
su consulta y entrega.
4
Capıtulo 2. Estado del arte 5
Para resolver los problemas que se pueden encontrar en la transmision y acceso a
los documentos electronicos se han propuesto soluciones tales como sistemas dis-
tribuidos de archivos (DFS por sus siglas en ingles), los cuales permiten consultar
archivos a traves de redes. Estos utilizan la arquitectura de cliente-servidor o ar-
quitecturas de cluster para lograr escalabilidad. Para asegurar la transparencia,
las estrategias empleadas son almacenamiento en cache, metodos de deteccion de
fallos y control de acceso a archivos. Este tipo de solucion a evolucionado desde
los servidores de archivos tipo FTP hasta sistemas de archivos en la nube por
mas de 40 anos [1]. En los servicios en la nube (cloud computing), tambien se han
propuesto estrategias para solventar los problemas de seguridad existentes en la
transportacion de informacion o datos sensibles a traves de las redes, estas estrate-
gias implican una tecnologıa de doble cifrado, es decir, el cliente y el proveedor de
servicios deben encriptar la informacion enviada y recibida. El proceso de transmi-
sion de datos del cliente a traves de la red hasta el proveedor de servicio necesita
estar efectivamente controlado y protegido para prevenir posibles perdidas de in-
formacion. La tecnologıa de encriptacion como en otras soluciones involucra dos
elementos: algoritmos y llaves secretas. El algoritmo es el proceso para combinar el
texto de entrada con la llave secreta para producir texto cifrado, incomprensible,
la clave secreta sirve para la codificacion y decodificacion de los datos [2]. En la
figura 2.1, se ilustra este proceso empleando DES y RSA.
Figura 2.1: Esquema de cifrado mixto.
Capıtulo 2. Estado del arte 6
Aquı el emisor utiliza la llave secreta del algoritmo DES para las operaciones de
cifrado y descifrado de los datos.
1. El receptor utiliza su llave publica del algoritmo RSA para cifrar la llave
secreta del algoritmo DES y posteriormente enviarla.
2. Con la llave privada del algoritmo RSA, el receptor descifra la llave secreta
cifrada del algoritmo DES.
3. Al obtener la llave, el receptor cifra el texto a ser enviado.
4. La contraparte descifra el texto enviado con la llave correcta del algoritmo
DES.
5. Finalmente ambas partes deben de eliminar la llave secreta para prevenir
robo de informacion.
Otras soluciones propuestas son aquellas que involucran sistemas criptograficos
hıbridos conformados por algoritmos de cifrado y descifrado, funciones hash o de
resumen digital, firmas digitales, certificados digitales y tecnologıas de autentica-
cion, con el objetivo de proteger la integridad de la informacion, confidencialidad
y evitar la negacion de autorıa y envıo de documentos[3]. Estas soluciones utilizan
algoritmos de cifrado simetrico y asimetrico para resolver los posibles problemas
de confidencialidad de la informacion contenida en los documentos, aun cuando
esta fuera interceptada por personas ajenas, no podra ser interpretada y utilizarla
para fines distintos o delictivos.
Las funciones de resumen son empleadas para garantizar la integridad de la infor-
macion, es decir, si un documento es interceptado en el proceso de envıo-recepcion
se pueda validar que el contenido de este no fue modificado. Las firmas electroni-
cas se utilizan en esta propuesta para validar la autenticidad del documento, es
decir, al o los destinatarios se les asegura que el documento que estan recibiendo
fue realmente enviado por el remitente.
Los certificados digitales se utilizan para validar la autenticacion y no repudio
de la informacion, cada parte o punto de la transmision de los documentos debe
de tener un estado valido y permisos apropiados, dicha informacion esta contenida
en estos certificados.
Capıtulo 2. Estado del arte 7
La tabla 2.1 muestra los principales datos contenidos en un certificado digital.
Tabla 2.1: Contenido de un certificado digital
Para el cifrado de los documentos se recomienda la utilizacion de algoritmos de
clave simetrica, ya que estos han demostrado tener un mejor desempeno en cuanto
al tiempo de procesamiento en comparacion con los algoritmos asimetricos o de
clave publica [4].
En algunos trabajos realizados, se menciona que en ocasiones no es conveniente
el cifrado de los documentos completos, esto por los recursos de procesamiento
requeridos y el tiempo que esto implica, por lo cual proponen un nuevo esquema
de cifrado, en este se propone escanear solo parte que contenga la informacion
sustancial del documento. Este concepto se conoce como ROI (Region of Inter-
est por sus siglas en ingles). Sin embargo, en este planteamiento se identifica la
problematica en cuanto al tiempo para realizar este trabajo ya que requiere de
intervencion humana para identificar esta region del documento, por lo que para
solucionar esto, se proponen algoritmos para identificar automaticamente las areas
de interes (ROI) del documento [5].
Aunado a lo anterior, se han desarrollado trabajos y propuesto soluciones que
involucran sistemas de informacion de tres capas para aplicar cifrado a los docu-
mentos, junto con la implementacion de firmas electronicas para la autenticacion
y autorizacion de usuarios. Las capas de los sistemas de informacion son:
Capıtulo 2. Estado del arte 8
� Capa de presentacion
� Capa de logica de negocios
� Capa de acceso a datos
La capa de presentacion proporciona la interfaz de usuario-sistema mediante pagi-
nas web, la capa de logica de negocios proporciona la respuesta como resultado de
la interaccion del usuario con el sistema. La capa del acceso a datos es la encargada
de la interaccion con la base de datos, la cual incluye conexion, busqueda, insercion
y actualizacion de informacion. Cuando se maneja gran cantidad de documentos
se opta por utilizar algoritmos simetricos de cifrado, tal como el Triple DES [6].
En algunos otros casos para el intercambio de documentos de forma segura se
utilizan funciones hash tales como, SHA-1 para crear una huella o firma digital
del documento escaneado y llaves publicas y privadas que emplean el algoritmo
RSA para autenticacion de las partes involucradas y del documento [7]. En un
caso en donde se escanea el documento tambien se incluye una marca de agua con
los valores de la llave privada y el certificado de seguridad cifrados del usuario que
publica o emite el documento, el proceso es el siguiente:
1. El usuario con una aplicacion escanea el documento.
2. Utilizando la funcion SHA-1 se calcula el valor hash del contenido del docu-
mento.
3. El valor obtenido por la funcion hash es cifrado con el algoritmo RSA.
4. Se solicitan las llaves privada y publica a un servidor, el cual regresa solo un
codigo de verificacion junto con la llave publica. La privada solo se enviara
al usuario autorizado.
5. Se cifra el valor de la funcion hash obtenido anteriormente junto con el
certificado digital con la llave publica que envio el servidor.
6. Finalmente se agrega el valor obtenido al archivo del documento en el bit
menos significativo.
Capıtulo 2. Estado del arte 9
Posterior a esto, se realiza un proceso de verificacion por la contraparte, que consta
de:
1. Lectura de la informacion en el bit menos significativo del archivo recibido.
2. Se solicitan las llaves correspondientes al servidor.
3. Se descifra la informacion con la llave privada que se recibio del servidor.
4. Finalmente se calcula el valor hash del documento para validar su contenido.
En las soluciones planteadas, el cifrado de los documentos es para asegurar la
confidencialidad de la informacion mientras que las firmas electronicas son para
validar la autenticidad de la informacion y autenticacion de los usuarios que tienen
acceso al sistema de informacion [3].
Existen diversas investigaciones que plantean soluciones a situaciones especificas,
pero todas ellas van enfocadas a incrementar la seguridad de la informacion. Una de
estas es el de emplear esquemas visuales de criptografıa, que consiste en convertir el
documento en sombras en formato binario, crifrarlo mediante RSA y transmitirlo,
mientras que el o los destinatarios descifraran el documento recibido tambien con
RSA y finalmente aplicar una operacion XOR para obtener el documento original
[8].
Otra investigacion se basa en el cifrado de documentos y la aplicacion de marcas de
agua digitales con la finalidad de garantizar la seguridad, autenticidad y confiden-
cialidad [9]. Este proceso involucra una imagen que sera utilizada como marca de
agua, se procesa mediante una funcion transformada de coseno discreta y AES, la
cual es embebida al documento original tambien cifrado con AES y finalmente se
obtiene el archivo que al ser descifrado la marca de agua digital sera imperceptible
e incrementa la robustez de la solucion planteada.
En el analisis de seguridad de estas soluciones se hace enfasis en el planteamiento
de los posibles ataques que pueden aplicar al proceso de almacenamiento y distri-
bucion de documentos. Algunos son:
� Personas ajenas al proceso tratan conocer las llaves privadas de los emisores
y receptores de los documentos para poder descifrar la informacion.
Capıtulo 2. Estado del arte 10
� Intentar interceptar el documento o informacion para posteriormente tratar
de descifrarlo sin el conocimiento de las llaves privadas.
� Falsificacion de las llaves privadas de los emisores y receptores.
� Personal dentro del proceso trata de modificar la informacion o documento
original para transmitirlo [10].
� Alteracion del mensaje cifrado para que el receptor no lo entienda para ob-
jetivos ajenos al proceso.
Uno de los objetivos de estas soluciones, es el de disminuir el tiempo que implica
el cifrar los documentos, lo que toma relevancia debido a la gran cantidad de in-
formacion que manejan las instancias gubernamentales o corporaciones, por lo que
en la solucion que aquı se presenta, se implementara el algoritmo de cifrado Triple
DES-96, que de acuerdo a estudios realizados es mas rapido en aproximadamente
2/3 del tiempo de procesamiento en comparacion con el algoritmo Triple DES [11].
Las ventajas del algoritmo Triple DES-96 en comparacion con el Triple DES son
dos: la primera es que toma bloques para cifrar de 96 bits y la segunda es que
elimina una de las permutaciones del Triple DES [12], lo que da por resultado un
menor tiempo para el cifrado, lo cual representa una gran ventaja cuando habla-
mos de cientos o miles de documentos que necesitan ser procesados.
Ası como optimizar el tiempo de cifrado es importante, la disminucion del cos-
to de la solucion es vital para la viabilidad del proyecto. Una forma de disminuir
costos es utilizando lo que se llama cloud computing (computacion en nube). Cloud
computing es una nueva forma de implementar la infraestructura de los servivios de
las tecnologıas e informacion (TI) en la cual, se comparten recursos de hardware,
software, y comunicacion entre computadoras. Estos recursos se asignan conforme
a la demanda de las aplicaciones o servicios instalados [13].
Cloud computing provee varios modelos de servicios que proporcionan diferentes
niveles para el control de la seguridad, estos modelos son:
� Software As A Service (SAAS). Se caracteriza por que el cliente no tiene la
administracion o control de la infraestructura.
Capıtulo 2. Estado del arte 11
� Plataform As A Service (PAAS) Es una evolucion del SAAS. Este servicio
ofrece lo necesario para todo el ciclo de vida del desarrollo y liberacion de
las apliaciones.
� Infraestructure As A Service (IAAS). Este modelo permite el control del
almacenamiento y otros recursos. Los clientes compran o rentan todos los
servicios necesarios para su aplicacion, en algunas ocasiones se podra elegir
y configurar componentes tales como firewalls y balanceadores de carga [14]
Capıtulo 3
Marco teorico
3.1. Teorıa de numeros
La criptografıa moderna esta basada en los fundamentos del algebra y en la teorıa
de los numeros. Esta ultima se centra principalmente en las propiedades de los
numeros enteros, particularmente los enteros positivos. Sin embargo, esto no es
estrictamente cierto ya que algunos teoremas de la teorıa de los numeros se prueban
mas facilmente haciendo uso de las propiedades de los numeros reales o de los
complejos, aunque la proposicion de los teoremas haga referencia a los numeros
naturales. Por otro lado, existen teoremas relacionados con los numeros reales que
dependen de las propiedades de los numeros enteros que se incluyen en la teorıa
de los numeros. [15]
Algunas preguntas interesantes que nos podemos hacer sobre los numeros naturales
son:
� Dado un numero natural n, ¿Este es un numero primo o numero compuesto?
� Si n es compuesto, ¿Como lo podemos factorizar?
� ¿Cuantos numeros primos son menores que 1012 (o cualquier otro rango)?
� ¿Existen mas numeros primos de la forma 4k + 1 que de la forma 4k -1 o
viceversa?
12
Capıtulo 3. Marco teorico 13
Algunas de estas preguntas son interesantes porque han mantenido intrigada a
la humanidad por cientos de anos. Por otra parte, algunas de las propiedades
tales como las pruebas de primalidad, factorizacion y aritmetica modular son de
importancia practica, esto debido a que gran parte del codigo que mantiene seguras
las transacciones y comunicaciones por internet dependen de ellas [16].
3.1.1. Numeros enteros
El conjunto de {...,-3,-2,-1,0,1,2,3...} es llamado conjunto de numeros enteros ge-
neralmente denotado por Z, en donde los elementos mayores a 0 son llamados
numeros naturales y son denotados por N. Si m y n son numeros enteros la suma
de m + n y el producto de m· n el resultado de estas operaciones es un entero y
estas operaciones cumplen con los axiomas de conmutatividad [17]
3.1.2. Numeros primos y de alta primalidad
Un concepto matematico importante en la criptografıa es el de los numeros primos.
Los numeros enteros positivos que son divisibles por exactamente dos numeros en-
teros son llamados numeros primos.
¿Pero, por que son importantes los numeros primos para la criptografıa? La res-
puesta la encontramos en el teorema fundamental de la aritmetica, el cual asienta
que todos los enteros mayores que 1, se pueden expresar como producto de nume-
ros primos de forma unica, salvo por el orden de los factores. Estos numeros han
sido estudiados desde hace miles de anos y uno de los trabajos principales fue el
desarrollado por Euclides [18], y en especial el teorema que afirma que los numeros
primos son infinitos.
El teorema de Euclides nos demuestra que dado un conjunto finito de numeros
primos, siempre se puede encontrar un numero primo que no pertenece a dicho
conjunto. Para este teorema se toma como base la afirmacion de que el conjunto
de los numeros primos es finito.
p1, p2, p3, ...pn
Capıtulo 3. Marco teorico 14
Entonces se puede generar un numero Q (mayor) tal que:
Q = p1p2p3...pn + 1
Por el teorema fundamental de la aritmetica Q puede ser primo o no. Si es pri-
mo, se tiene un nuevo numero primo que no pertenece al conjunto original, por lo
tanto el conjunto estaba incompleto. Si Q no es primo, forzosamente tendra que
ser divisible por algun numero primo que no puede ser uno del conjunto ya que al
dividir Q por cualquiera de los numeros del conjunto original se obtendra 1 como
resto, por lo tanto, tiene que existir otro numero primo pn+1.
Los numeros relativamente primos son aquellos que no comparten factores en-
tre sı ademas de la unidad, por tanto, un numero primo es relativamente primo
al resto de numeros excepto a sus multiplos. Dicho de otra forma, dos numeros
son relativamente primos si su maximo comun divisor es 1 (mcd(a, b) = 1). Donde
el maximo comun divisor de dos numeros es el numero mas grande que divide a
ambos.
3.1.3. Maximo comun divisor
El maximo comun divisor (mcd) de dos enteros a y b (que no son cero), es el
entero positivo mas grande que divide a los dos a y b [17].
Sı el mcd(a,b) = 1, entonces decimos que a es primo relativo de b [18]
3.1.4. Algoritmo de Euclides
El algoritmo de Euclides permite encontrar de forma eficiente el mcd de dos nume-
ros enteros. Este algoritmo fue desarrollado por el matematico griego Euclides (328
a.c. - 265 a.c.), quien lo menciona en el libro VII de su obra Elementos [19].
Este algoritmo se basa en funciones recursivas y nos dice que para cualquier entero
no negativo a y cualquier entero no negativo b tenemos que mcd(a,b) = mcd(b, r)
o lo que es lo mismo mcd(a,b) = mcd(b,a mod b), ademas si q y r son dos enteros
cualesquiera se tiene que:
a=bq+r con 0 ≤ r < b
Capıtulo 3. Marco teorico 15
Supongamos que d divide a los enteros positivos a y b, por tanto, tenemos que
por el teorema fundamental de la aritmetica tambien divide a a-bq=r, entonces
cualquier divisor de a y b tambien es divisor de b y r.
Ahora si suponemos que d divide a b y r, entonces d tambien divide a bq + r,
por lo que cualquier divisor de b y r es tambien divisor de a y b.
Sean a y b dos numeros enteros positivos con a ≥ b y suponemos que r0 = a
y r1 = b tenemos que:
r0 = r1q1 + r2 con 0 ≤ r2 ≤ r1,
r1 = r2q2 + r3 con 0 ≤ r3 ≤ r2,
.
.
.
rn−2 = rn−1qn−1 + rn con 0 ≤ rn ≤ rn−1,
rn−1 = rnqn ,
En donde el mcd de los numeros a y b es el ultimo residuo 6= 0.
3.1.5. Algoritmo de Euclides Extendido
Es una aplicacion directa del algoritmo de Euclides, se calcula el mcd de la combi-
nacion lineal de dos numeros con coeficientes enteros. Permite calcular el inverso de
un numero, donde se descompone el resto ri como una combinacion lineal de a y b.
Si
mcd(a, b) = d, con a > b.
Entonces existen dos numeros s y t tales que:
d = s · a+ t · b con s , t ∈ Z
Tambien llamados coeficientes de Bezout de a y b. A la ecuacion anterior tambien
se le conoce como identidad de Bezout [19].
Capıtulo 3. Marco teorico 16
3.1.6. Aritmetica modular
La aritmetica modular es parte fundamental de la criptografıa moderna y en par-
ticular de los criptosistemas de llave publica, ya que permite realizar operaciones
algebraicas tales como la division, adicion y substraccion utilizando los residuos
de estas operaciones con respecto a una cantidad o numero fijo [20].
3.1.6.1. Congruencia de numeros enteros
Dado un numero entero fijo p > 1 y dos numeros enteros, a, b ∈ Z, se dice que a
es congruente con b modulo p sı y solo sı coinciden los restos de dividir a y b,
es decir, a mod p = b mod p por p, lo que se llama residuos modulo [19]. Esto se
denota como:
a ≡ b ( mod p)
Sı a y b no son congruentes la relacion se denota
a 6≡ b
3.1.7. Pequeno Teorema de Fermat
El matematico frances Pierre de Fermat realizo importantes descubrimientos en
lo referente a teorıa de numeros. Uno de estos es el conocido como el pequeno
Teorema de Fermat, el cual nos dice que si p es cualquier numero primo, se tienen
las siguientes dos propiedades:
1. Para cada numero entero, a ∈ Z, si a no es divisible por p, se tiene que:
ap−1 ≡ 1 ( mod p)
2. Ademas, para cada numero entero, a ∈ Z
ap ≡ a ( mod p)
Este teorema es extremadamente util en el calculo de los restos modulo p de
numeros enteros de gran tamano [19][21].
Capıtulo 3. Marco teorico 17
3.1.8. Funcion de Euler
La funcion de Euler se denota por φ(N) y es el numero de enteros positivos menores
o iguales a N y que son primos relativos a N [20].
Los casos mas importantes en criptografıa de la funcion φ(N) son:
1. Sı p es primo, entonces
φ(p) = p− 1
2. Sı p y q son primos y p 6= q entonces
φ(p · q) = (p− 1)(q− 1)
3.2. Criptografıa
La palabra criptografıa proviene del griego kryptos que significa oculto y de la
palabra grafein que significa escribir, por lo que se interpreta como el escribir
algo oculto, para los fines de este trabajo la definicion se tomara como el estu-
dio de metodos de enviar y recibir mensajes secretos [22]. Estos metodos han sido
utilizados durante siglos, principalmente en comunicaciones militares y asuntos di-
plomaticos. Sin embargo, desde hace unas decadas y debido a la llegada y auge de
internet y transacciones en el comercio electronico, la criptrografıa ha sido un en-
granaje importante para el funcionamiento de la gran maquinarıa que representa la
economıa global, por lo que a diario y a cada segundo miles y millones de personas
la utilizamos, ya sea por compras en internet, consultas bancarias, consulta y envıo
de correo, etc., esta informacion debe ser encriptada con sistemas criptograficos de
tal forma que esta solo sea entendible y este disponible para las partes interesadas.
Dentro de los principales objetivos de la criptografıa podemos mencionar los si-
guientes:
� Integridad.- El receptor de la informacion debe de estar seguro que el mensaje
que esta recibiendo no fue alterado accidental o intencionalmente.
� Autenticacion.- Se refiere a la capacidad que tiene el receptor de verificar el
origen de la informacion.
Capıtulo 3. Marco teorico 18
� Confidencialidad.- Esta se refiere a poder mantener la informacion inaccesible
a todos, excepto a determinadas personas o grupos de personas.
� No repudiacion.- Es la capacidad de validar al emisor de la informacion
enviada-recibida.
Estos objetivos deben de cumplirse independientemente cual sea el medio de trans-
mision o almacenamiento de la informacion (red telefonica, red de datos, inhalam-
bricas, disco magnetico, disco optico, etc.), por ejemplo, si los mensajes o infor-
macion es escrita en papel, este por sı mismo ya provee cierta seguridad contra
manipulaciones. Las firmas personales estan destinadas para garantizar la autenti-
cacion y no repudiacion. Si el medio utilizado es electronico, este por sı mismo no
garantiza una completa seguridad ya que se puede reemplazar facilmente algunos
bytes del mensaje durante la transmision por la red, ya sea publica o privada [19].
3.2.1. Clasificacion de la criptografıa
La clasificacion mas utilizada de criptografıa es la siguiente:
� Criptografıa de clave simetrica o de clave privada.
� Criptografıa asimetrica o de clave publica.
Esta clasificacion se describe a continuacion.
3.3. Criptografıa simetrica
Este tipo de criptografıa utiliza una unica clave para cifrar y descifrar el mensaje,
la cual se debe de intercambiar entre los dos equipos involucrados en el proceso.
Para configurar la seguridad del canal o medio de transmision ambas partes deben
de acordar esta clave y mantenerla segura. Antes de que el mensaje m sea envia-
do, este debe ser encriptado utilizando el algoritmo E y la clave k para obtener
el mensaje cifrado c = E(k,m). Usando el algoritmo de descifrado D y la misma
llave k obtenemos el mensaje original m con m = D(k,c).
Capıtulo 3. Marco teorico 19
Se dice que es simetrica porque ambos canales deben usar la misma llave k para
cifrar y descifrar y los algoritmos correspondientes C y D son publicos, por lo
que cualquier parte o persona que conozca la llave k puede conocer el contenido
del mensaje y sera necesario que el mensaje m pueda ser unicamente recuperado
a partir del mensaje cifrado c, lo que significa que para una llave fija k el mapa
de cifrado debe ser biyectivo. Matematicamente el cifrado simetrico se representa
como:
E : K x M −→ C
tal que para cada k ∈ K el mapa
Ek : M −→ C, m 7−→ E(k,m)
sea invertible. Los elementos m ∈ M son los mensajes o texto plano, C es el
mensaje cifrado y k ∈ K son las llaves. Ek es la funcion de cifrado con k como
llave y la funcion inversa Dk := E−1k es la funcion de descifrado [17].
3.3.1. Data Encryption Standard - DES
El esquema de cifrado mas extendido en anos anteriores fue el DES, adoptado
en 1977 por el National Bureau os Standars, ahora NIST (National Institute of
Standards and Technology), como Federal Information Processing Standard 46.
Al algoritmo se le denomino Data Encryption Algoritm (DEA) [23]. El DES es un
algoritmo de cifrado simetrico y requiere de dos entradas para su funcionamiento:
Texto plano y una llave. La longitud del texto plano es de 64 bits y con longitud
efectiva de llave de 56 bits [24].
El proceso de descifrado se debe de realizar con la misma llave del cifrado pero
procesandola en orden inverso. El bloque que sera cifrado se le aplica una permu-
tacion inicial IP (por sus siglas en ingles), posteriormente se dividen el bloque en
32 bits y se invierten en posicion a los cuales se les aplica una serie de transfor-
maciones y sustituciones para que finalmente se les aplique una permutacion que
es la inversa de la permutacion inicial IP−1 [25].
Capıtulo 3. Marco teorico 20
En la figura 3.1 se muestra el esquema general para este algoritmo.
Figura 3.1: Esquema general del DES.
Como se observa en la figura 3.1, los bloques de 32 bits denominados L0 y R0 estan
sujetos a la permutacion inicial IP derivada de la tabla 3.1.
Capıtulo 3. Marco teorico 21
Tabla 3.1: Permutacion Inicial IP
La informacion de esta tabla nos indica que el bit 58 del texto de entrada ocupara
la posicion 1, el bit 50 ocupara la posicion 2 y ası sucesivamente. A la cadena que
se obtiene se le aplican una serie de 16 transformaciones y sustituciones llamadas
rondas, cada una de las rondas se basa en la funcion que llamaremos f, la cual opera
en dos bloques, uno de 32 bits y otro de 48 bits para producir una salida de 32 bits.
La figura 3.2 muestra el detalle de la funcion f.
Figura 3.2: Esquema de la funcion f.
Como vemos en la figura 3.2, la funcion convierte los 32 bits del bloque R me-
diante la clave K y con ayuda de la tabla de expansion E en una cadena de 48 bits.
Capıtulo 3. Marco teorico 22
Los 48 bits son escritos en 8 bloques de 6 bits cada uno y son obtenidos con
base en la tabla de expansion E.
Tabla 3.2: Tabla de expansion E
Cada uno de los bloques de 6 bits se usa como entrada para las cajas de sustitucion
S1, S2, S3...S8, el resultado de esta sustitucion son 8 cadenas de 4 bits para que
en conjunto den 32. Las tablas de sustitucion (tambien denominadas Cajas de
sustitucion) se muestran a continuacion:
Tabla 3.3: Caja de sustitucion S1
Tabla 3.4: Caja de sustitucion S2
Capıtulo 3. Marco teorico 23
Tabla 3.5: Caja de sustitucion S3
Tabla 3.6: Caja de sustitucion S4
Tabla 3.7: Caja de sustitucion S5
Capıtulo 3. Marco teorico 24
Tabla 3.8: Caja de sustitucion S6
Tabla 3.9: Caja de sustitucion S7
Tabla 3.10: Caja de sustitucion S8
El funcionamiento de las cajas de sustitucion S es sencillo y se basa en una matriz
de seleccion que se muestra en la tabla 3.11.
Tabla 3.11: Matriz de seleccion
Capıtulo 3. Marco teorico 25
Los 6 bits Bj = b1b2b3b4b5b6 se convierten en 4 bits que corresponden con un valor
decimal de la matriz anterior. El valor de la fila se determina en funcion de los
bits b1b6; y el renglon por el numero decimal correspondiente al numero binario
formado por b2b3b4b5 de Bj.
Al bloque generado de 32 bits se le aplica una permutacion P, con base en la tabla
de permutacion 3.12.
Tabla 3.12: Tabla de Permutacion P
Finalmente, a la cadena de 64 bits obtenida, se le aplica la inversa de la permuta-
cion inicial IP−1 con base en la tabla 3.13.
Tabla 3.13: Permutacion Inversa IP−1
Para el proceso de descifrado se utiliza el mismo algoritmo pero en forma inversa,
es decir, en la primera iteracion se utiliza la llave K16, para la segunda K15 y ası
sucesivamente hasta llegar a K1.
Capıtulo 3. Marco teorico 26
3.3.2. Triple DES
El DES presenta varias debilidades, una de ellas y quiza las mas importante es la
longitud de la llave que es de 56 bits, en la actualidad existen equipos que pueden
realizar mas de 106 operaciones por segundo, por lo que es posible conocer la clave
empleada en el algoritmo en poco tiempo.
Triple DES es un algoritmo criptografico aprobado por el National Institute of
Standards and Technology (NIST). Este algoritmo como su nombre sugiere se de-
riva del algoritmo DES. El Triple DES aplica tres veces el DES lo cual equivale a
48 rondas y utiliza tres llaves [26]. La figura 3.3 muestra el esquema general para
este algoritmo.
Figura 3.3: Esquema del algoritmo Triple DES
Sean EK(I) y DK(I) los procesos de cifrado y descifrado del DES respectivamente
utilizando la llave K [25].
El proceso de cifrado del Triple DES que transforma los 64 bits de entrada I
en 64 bits de salida O se define como sigue:
Capıtulo 3. Marco teorico 27
O = EK3(DK2(EK1(I)))
El proceso de descifrado del Triple DES que transforma los 64 bits de entrada I
en 64 bits de salida O se define como sigue:
O = DK1(EK2(DK3(I)))
El estandar especifica las siguientes opciones para las llaves (K1, K2, K3)
1. Opcion 1: Las llaves K1, K2 y K3 son independientes.
2. Opcion 2: Las llaves K1 y K2 son independientes y K3 = K1.
3. Opcion 3: Las llaves K1 = K2 = K3.
Como se puede observar con la opcion 1 el Triple-DES alcanza una longitud efectiva
de 168 bits, con lo que compensa una de las debilidades del DES.
3.3.3. Triple DES-96
El algoritmo Triple DES-96 es una variante del Triple DES, el cual esta disenado
para cifrar y descifrar bloques de 64 bits con llaves de tambien 64 bits [27], sin
embargo el Triple DES-96 utiliza la variante de trabajar con bloques de 96 bits,
sin perder con esto nivel en la seguridad, especialmente bajo ataques de fuerza
bruta. El ciclo de cifrado para el Triple DES-96 se define como:
E96,K(x)
Donde x es el texto plano de longitud de 96 bits y K es la llave [28].
La funcion para el DES-96 f96(Ri−1, ki) es diferente a la funcion del DES f(Ri−1, ki).
La funcion f96(Ri−1, ki) realiza los siguientes pasos:
1. La cadena de entrada es de una longitud de 96 bits, la cual es dividida en 2
cadenas Li−1 y Ri−1, cada una de 48 bits. A la cadena Ri−1 se le aplica una
operacion XOR con la subclave ki tambien de 48 bits.
Capıtulo 3. Marco teorico 28
2. La cadena resultante de Ri−1 ⊕ ki es la entrada para las 8 cajas de sustitu-
cion. La salida es una cadena de 32 bits llamada C.
3. Como la cadena C es de 32 bits de longitud, se le aplica una transformacion
con la ayuda de la tabla de expansion E del estandar para expandirla a 48
bits.
La cadena resultante se define como:
f96(Ri−1, ki) = E(C)
Al termino de esto se definen los bloques Li y Ri como:
Li = Ri−1 y
Ri = Li−1 ⊕ f96(Ri−1, ki)
El algoritmo Triple DES-96 consta de 3 ciclos. En el primero de estos ciclos se
aplica una permutacion PV a la entrada de la tercer ronda. En el segundo ciclo
es el proceso de descifrado del algoritmo DES-96 y el tercero es un proceso de
cifrado tambien del algoritmo DES-96. El ultimo ciclo incluye la inversa de la per-
mutacion inicial PV −1 en la ronda quince. Con esto se asegura que la variable de
permutacion sea desconocida, ademas de que puede ser reemplazada, a diferencia
del Triple DES en donde es fija y conocida. Lo anterior da como resultado dos
ventajas claras con respecto a la variante Triple DES, la primera es que se cifran
bloques de 96 bits, lo que da como resultado un menor tiempo en el proceso de
cifrado de documentos, y la segunda es que al eliminar la permutacion P y poder
cambiar la variable de permutacion arriba mencionada tenemos como resultado
un incremento en la complejidad de la seguridad.
Con lo anterior en cuenta, pruebas realizadas han demostrado que el algoritmo
Triple DES-96 es 2.08 veces mas rapido que el Triple DES [29].
La tabla 3.14 muestra los tiempos en segundos de cifrado para los algoritmos
Triple DES y Triple DES-96.
Capıtulo 3. Marco teorico 29
Tabla 3.14: Tiempo de cifrado con Triple DES y Triple DES-96 en segundos
3.4. Criptografıa asimetrica
Esta clasificacion de criptografıa tambien llamada de llave publica, se basa en el
uso de dos llaves diferentes, cuya funcion de una es cifrar y la otra descrifrar lo que
la otra cifro. A diferencia de la criptografıa simetrica, la asimetrica no comparte la
llave secreta, aquı cada usuario tiene un par de llaves, una llamada llave privada
(sk) conocida solo para dicho usuario y la otra llamada llave publica (pk), la cual
es conocida por todos los usuarios.
En el ano de 1976 W. Diffie y M. E. Hellman publicaron el documento ”New
Directions in Cryptography”que presenta la idea de la criptografıa asimetrica o
de llave publica, en donde cada participante necesitaba una conjunto de llaves
k = (sk,pk), las cuales para garantizar la seguridad del criptosistema la llave pri-
vada sk, no puede ser calculada o conocida a partir de la llave publica pk [19].
3.4.1. RSA
Este criptosistema fue presentado por R.L. Rivest, A. Shamir, y L. Adleman en
1977 y en la actualidad es uno de los mas utilizados. RSA basa su complejidad en
la dificultad de factorizar numeros grandes en sus factores primos. La llave publica
de este criptosistema consiste del valor n, llamado modulo y el valor e, el cual es
llamado exponente publico. La llave privada consiste del modulo n y el valor d,
llamado exponente privado.
Capıtulo 3. Marco teorico 30
El algoritmo RSA permite longitudes variables de las llaves, en la actualidad se
recomienda que esta sea de al menos 1024 bits.
El par de llaves publica y privada se genera de la siguiente forma:
1. Generar un par aleatorio de numeros primos de un mınimo de 1024 bits
llamados p y q.
2. Calcular el modulo n con la formula n=pq.
3. Calcular ϕ(n) con la formula ϕ(n) = (p− 1)(q− 1).
4. Calcular un numero natural impar e que sea primo relativo a p-1 y q-1.
5. Calcular el exponente privado d el cual debe de satisfacer la siguiente ecua-
cion ed = 1 mod ϕ(n).
6. El par de numeros (e,n) es la llave publica.
7. El par de numeros (d,n) es la llave privada.
8. La funcion de cifrado es c = cifrado(m) = me mod n.
9. La funcion de descifrado es m = descifrado(c) = cd.
En donde m es el texto del mensaje original y c el mensaje cifrado [30].
La relacion entre los exponentes publico e y privado d asegura que el proceso de
cifrado y descifrado son inversos, es decir, el proceso de descrifrado recupera el
mensaje original m.
Sin la llave privada pk = (n, d) es extremadamente dıficil recuperar m de c. Por
consecuencia n y e pueden ser publicos sin comprometer la seguridad, y que ademas
es el requerimiento base de este o de cualquier criptosistema de llave publica.
La figura 3.4 muestra el diagrama de flujo para el algoritmo RSA arriba men-
cionado.
Capıtulo 3. Marco teorico 31
Figura 3.4: Diagrama de flujo de RSA.
El algoritmo RSA es el mas conocido y empleado de los criptosistemas de llave
publica, y uno de los mas rapidos de ellos. Proporciona las ventajas de los sistemas
asimetricos, tales como la firma digital, aunque es mas util en la implementacion
de la confidencialidad en el uso de sistemas simetricos. Se utiliza tambien en los
sistemas mixtos para cifrar y enviar la clave simetrica que se utiliza en la comuni-
cacion cifrada.
Capıtulo 3. Marco teorico 32
La figura 3.5 muestra un esquema general de este algoritmo.
Figura 3.5: Esquema general RSA.
3.5. Desarrollo de software
En anos recientes el desarrollo de software se ha incrementado de forma consi-
derable, sin embargo, esto no significa que sea una tarea facil, al contrario. La
metodologıa mas tradicional es aquella que se centra en el proceso, las cuales esta-
blecen rigurosamente las actividades que se tienen que realizar, los artefactos que
se tienen que disenar y construir y las notaciones y nomenclaturas que se utilizaran
a lo largo el ciclo del desarrollo. Se ha comprobado que esta metodologıa puede ser
efectiva para algunos tipos de proyectos, pero para algunos otros ha resultado ser
difıcil y problematica. Una metodologıa que se ha venido abriendo paso a traves
de los anos, es la metodologıa agil de desarrollo, la cual se centra en la persona,
la colaboracion del usuario y al desarrollo incremental de software con iteraciones
muy cortas.
3.5.1. Metodologıa agil de desarrollo
En febrero del 2001, experimentados desarrolladores de software de primer nivel
se reunieron en Snowbird, Utah, Estados Unidos. En esta reunion se pretendıa
ofrecer una alternativa a los procesos de desarollo de software tradicionales, carac-
terizados por ser rıgidos y dirigidos por la documentacion que se genera en cada
Capıtulo 3. Marco teorico 33
una de las actividades desarrolladas. Estos desarrolladores dieron vida y forma a
la metodologıa agil de desarrollo de software.
De la reunion de Snowbird se produjeron cuatro resultados significantes para la
metodologıa del desarrollo de sistemas [31].
1. La palabra Agil en el contexto del desarrollo de software.
2. El Manifiesto Agil.
3. Los doce principios del Software Agil.
4. La Alianza Agil.
De los anteriores se hace enfasis especial en el Manifiesto Agil que menciona lo
siguiente:
”Estamos descubriendo formas mejores de desarrollar software tanto por nuestra
propia experiencia como ayudando a terceros. A traves de este trabajo hemos
aprendido a valorar:
Individuos e interacciones sobre procesos y herramientas
Software funcionando sobre documentacion extensiva
Colaboracion con el cliente sobre negociacion contractual
Respuesta ante el cambio sobre seguir un plan
Esto es, aunque valoramos los elementos de la derecha, valoramos mas los de la
izquierda” [32].
Con base en este manifiesto, se puede decir que abordar adecuadamente la pers-
pectiva del usuario es fundamental para el exito del sistema de software [33] y
buen diseno de la experiencia del usuario es fundamental para la consecucion del
software [34].
Como resultado del nacimiento de la metodologıa agil de desarrollo se han venido
implementado algunas variantes, tales como:
Capıtulo 3. Marco teorico 34
� SCRUM. Esta metodologıa consiste en una serie de iteraciones con duracion
aproximada de 2 a 4 semanas, en las cuales se realizan entregas de funcionali-
dades, correccion de errores y cualquier cosa que contribuya a la entrega final
del sistema. Estas iteraciones continuan hasta la finalizacion del proyecto.
Esta indicada en proyectos con rapido cambio de requisitos [35].
� Dynamic Systems Development Method (DSDM). Metodologıa del desarro-
llo basada en ejecuciones cıclicas e incrementales de actividades dirigidas a
la consecucion final del producto. Estas iteraciones se caracterizan por la
entrega de unidades de desarrollo [36].
� Adaptive Software Development (ASD). Esta metodologıa evoluciono de
RAD (RADical Software Development) y se basa en la suposicion de que los
usuarios o duenos del negocio no conocen exactamente el proceso completo.
Esta suposicion se corrige empleando iteraciones de tres fases: especulacion,
colaboracion y aprendizaje. De este modo el equipo de desarrollo adquiere un
conocimiento profundo de las reglas el negocio y es capaz de corregir errores
iniciales, lo que permitira la entrega de un producto de calidad [35].
� Extreme Programming (XP). Es una metodologıa que se compone de cua-
tro valores fundamentales, principios y practicas que proporcionan una alta
eficiencia en el desarrollo de software. Estos valores son: comunicacion, sim-
plicidad, retroalimentacion y coraje, este ultimo es necesario para reconocer
los puntos debiles y coraje para vencer la distintas resistencias que se en-
cuentren a lo largo del proceso de desarrollo [37]. Se recomienda cuando el
proceso tiene requisitos cambiantes y en algunas ocasiones imprecisos.
Capıtulo 4
Desarrollo del modelo propuesto
Con el vertiginoso desarrollo de las tecnologıas de la informacion y la comunicacion
(TIC’s), y la problematica del medio ambiente, muchos de los documentos que se
manejan en companias privadas e instituciones han comenzado a ser documentos
digitales. Estos documentos son enviados mediante internet o intranet entre dife-
rentes personas, companias e instituciones, los cuales necesitan tener altos niveles
de seguridad en el almacenamiento, acceso y transmision cuando sea requerido [6].
Para conseguir lo anterior, se desarrollo un sistema de informacion de dos ca-
pas que permita la administracion de dependencias, usuarios, roles de usuario,
integrando el cifrado y descifrado de documentos utilizando algoritmos de Triple
DES-96 y RSA para reforzar los mecanismos de seguridad.
En la figura 4.2 se presenta un diagrama general de la solucion planteada.
Figura 4.1: Diagrama conceptual de la solucion propuesta.
35
Capıtulo 4. Desarrollo del modelo propuesto 36
4.1. Cifrado y descifrado del documento
La parte medular de la solucion desarrollada radica en la implementacion del algo-
ritmo Triple DES-96 a los documentos que se deseen almacenar y transmitir. Este
algoritmo garantiza que a pesar de que el documento una vez almacenado en el
servidor como archivo fısico o como registro de base de datos pueda ser consultado
o descargado por personas no autorizadas, no pueda ser interpretado de tal forma
que permita visualizar la informacion original. Como se menciono anteriormente,
el algoritmo Triple DES-96 es un algoritmo de clave simetrica, lo que significa que
dos o mas usuarios tienen una unica clave secreta, la cual se utilizara para cifrar
y descifrar el documento que sera transmitido por canales inseguros.
El algoritmo Triple DES-96 esta programado en java y se aplicara al documento
al momento de ser cargado en el sistema de archivos. Solo usuarios autenticados
y autorizados en la aplicacion junto con la llave correspondiente podran descifrar
y visualizar el contenido original del documento.
4.2. Autenticacion
El controlar quien tendra acceso a la aplicacion y sobre todo a los documentos que
se administraran por medio de esta, juega un papel muy importante en el esquema
de seguridad aquı planteado. Para lograr este objetivo sera necesario que el usua-
rio se identifique por medio de una clave y una contrasena, la cual se almacenara
en una tabla de la base de datos junto con otros datos relevantes del usuario. Se
encriptara con el algoritmo MD5, algoritmo desarrollado por Ron Rivest en 1992
en el MIT.
Cuando alguna persona trate de ingresar a la aplicacion, el esquema de autentica-
cion creado con procedimientos verificara que los datos ingresados correspondan
con la informacion almacenada en las tablas de la base de datos.
Capıtulo 4. Desarrollo del modelo propuesto 37
4.3. Autorizacion
Una vez que el usuario ingrese correctamente al sistema, no significa que este
autorizado para visualizar todos los documentos administrados en la aplicacion.
Derivado de los diferentes roles que se manejen en la institucion, empresa o de-
pendencia, cada usuario tendra asignados diferentes privilegios de consulta y ac-
tualizacion de documentos.
Esto sera administrado mediante dos caracterısticas; condiciones y un esquema
de autorizacion. Las condiciones son aquellas utilizadas para el procesamiento y
despliegue de las secciones dentro de un formulario o pagina de la aplicacion, por
ejemplo, si se condiciona a que un documento no sea visible sino hasta determina-
da fecha, aunque el usuario entre a la opcion de la aplicacion, esta comparara la
fecha del sistema y la restriccion del documento para desplegar o no la informacion
correspondiente. El esquema de autorizacion aquı planteado es a un nivel mas alto
que el de las condiciones y se utilizara para controlar los accesos a las opciones de
la aplicacion.
4.4. Administracion de llaves
Como se menciono anteriormente, el RSA no solo permite garantizar la confiden-
cialidad de la comunicacion entre distintas partes de las empresas o instituciones,
sino que tambien para verificar la autenticacion de origen, integridad o no repudio
de los documentos. Para esto, como se explico, se utilizan las llaves publicas y
privadas, las cuales son generadas por la aplicacion y almacenadas en el sistema
de archivos del equipo. La longitud de las llaves generadas es de 1024 bits. Se
recomienda grabar estas llaves en un dispositivo usb por cada usuario generado
para su posterior entrega.
La llave publica se genera con base en el estandar X.509 del ITU-T (Interna-
tional Telecommunication Union-Telecommunication Standarization Sector) y el
ISO/IEC (International Standards Organization / International Electrotechnical
Commission, por sus siglas en ingles) .
Capıtulo 4. Desarrollo del modelo propuesto 38
La llave privada se genera con base en el estandar PKCS #8, el cual define las
especificaciones para almacenar informacion de las llaves privadas. Este estandar
es un integrante de la familia del PKSC (Public-Key Cryptography Standards)
publicado por RSA Laboratories.
4.5. Arquitectura y componentes de la solucion
planteada
La arquitectura que se utilizo para el desarrollo de la solucion consta de la interfaz
de usuario, la cual canaliza las peticiones a la base de datos mediante un servidor
web y un modulo que las interpreta llamado mod plsql.
Figura 4.2: Diagrama de arquitectura de la solucion propuesta.
Capıtulo 4. Desarrollo del modelo propuesto 39
4.5.1. Base de datos
Se utilizo el gestor de base de datos Oracle 11g, el cual proporciona una sola
plataforma con alto desempeno, escalabilidad y seguridad para todas las tecno-
logıas empleadas para el desarrollo de aplicaciones [38]. Dentro de las principales
caracterısticas del manejador de base de datos podemos mencionar:
1. El manejador mas robusto del mercado.
2. Configuracion alta disponibilidad.
3. Caracterısticas para el entorno de desarrollo en PL/SQL, JAVA, .NET, PHP,
etc.
4. Alto desempeno en transacciones de consulta y actualizacion complejas.
5. Complejidad moderada en la administracion de la informacion.
6. Diferente configuracion de arquitecturas, cloud, RAC, etc.
4.5.2. Software de desarrollo de la aplicacion
Para el desarrollo de la aplicacion se utilizo Oracle Application Express (Apex).
Apex es una herramienta web, estrechamente acoplada con la base de datos Ora-
cle. Apex se compone de varios modulos, tales como SQL Workshop, la cual es
utilizada para consultar y actualizar la informacion en la base de datos o modifi-
car la estructura de la base de datos. Otro modulo es Application Builder, el cual
permite crear aplicaciones e interactuar con la base de datos. Cuando el navegador
solicita el despliegue de paginas, el servidor de Apex, realiza la consulta a la base
de datos de la pagina solicitada y construye el codigo HTML que es regresado al
navegador web para el despliegue de la pagina [39].
La ventaja de utilizar herramientas RAD (Rapid Application Develompent), co-
mo Apex es que se pueden construir aplicaciones en un corto tiempo integrando
facilmente elementos CSS y JavaScripts.
Capıtulo 4. Desarrollo del modelo propuesto 40
4.5.3. Lenguaje de programacion JAVA
Para el desarrollo de los algoritmos RSA y Triple DES-96 se utilizo el lenguaje de
programacion JAVA, la arquitectura de Oracle permite la integracion de clases en
el motor de la base de datos.
El codigo de la clase desarrollada puede integrarse a la base de datos de dos
formas:
1. Subir un archivo .jar con el comando loadjava.
2. Creando directamente la clase como se crea una funcion, procedimiento o
paquete de base de datos.
Para el desarrollo de la aplicacon se utilizo la segunda opcion.
En la figura 4.3 se presenta un fragmento del codigo de las clases utilizadas para
la parte del algoritmo RSA.
Figura 4.3: Fragmento del codigo de la clase RsaUtil.
Posterior a esto se deben de crear las funciones y procedimientos a nivel base de
datos para tener acceso a sus metodos. La figura 4.4 muestra el codigo para la
creacion de la funcion fgetkeys, la cual manda llamar al metodo GetKeys de la
Capıtulo 4. Desarrollo del modelo propuesto 41
clase RsaUtil que es el encargado de leer los archivos de las llaves del sistema
operativo.
Figura 4.4: Funcion fGetKeys.
4.5.4. Servidor web
El servidor web utilizado es Oracle HTTP Server (OHS), el cual esta basado
en el servidor web de codigo abierto Apache. Este servidor emplea modulos o
extensiones que permiten crear aplicaciones con procedimientos almacenados en
la base de datos.
4.6. Documentacion de la aplicacion
4.6.1. Caso de uso general
El caso de uso general muestra los principales requisitos funcionales para la dis-
tribucion de documentos vıa web, dichos documentos deben de ser cifrados y des-
cifrados por la aplicacion utilizando las clases programadas en java del algoritmo
Triple DES-96 y con la ayuda de las llaves publicas y privadas de los usuarios
(actores).
Los actores son la representacion en el sistema de las personas que interactuan
con la aplicacion, dichas personas tienen perfiles, jerarquıas y permisos intrınse-
cos, de manera que para los fines de cifrado y distribucion de documentos, se han
definido los siguientes actores:
� Administrador. Actor encargado de administrar usuarios, dependencias y
roles.
Capıtulo 4. Desarrollo del modelo propuesto 42
� Origen. Actor responsable del documento, sus funciones son las de cargar y
asignar el documento a los destinatarios.
� Destino. Actor al cual se asignan privilegios de consultar determinado docu-
mento.
La figura 4.5 muestra el esquema del caso de uso general del proceso.
Figura 4.5: Caso de uso general.
Capıtulo 4. Desarrollo del modelo propuesto 43
4.6.2. Diagrama de flujo del proceso
La figura 4.6 muestra el diagrama de flujo, el cual nos ofrece una descripcion visual
de las actividades implicadas en un proceso de la distribucion de documentos. Este
proceso ilustra la relacion secuencial entre ellas, facilitando la rapida comprension
de cada actividad y su relacion con las demas.
Figura 4.6: Diagrama del proceso
Capıtulo 4. Desarrollo del modelo propuesto 44
4.6.3. Diagrama de la base de datos
El modelo entidad-relacion de las tablas utilizadas en el sistema para la distribu-
cion de documentos vıa web se muestra en la figura 4.7.
Figura 4.7: Diagrama de la base de datos.
4.6.4. Menu de opciones de la aplicacion
El menu de opciones de la aplicacion contiene una jerarquıa de submenus y op-
ciones desde los cuales, los usuarios pueden realizar las actividades asignadas en
el esquema de autorizacon.
La tabla 4.8 muestra las opciones que conforman la aplicacion.
Figura 4.8: Menu de opciones.
Capıtulo 4. Desarrollo del modelo propuesto 45
4.6.5. Interfaz grafica de la aplicacion
La interfaz grafica de la aplicacion es el medio por el cual interactua el usuario
con el sistema, sirve para realizar las actividades cotidianas de los usuarios de
forma agil y sencilla. El diseno de esta interfaz se realizo de tal forma que facilite
la secuencia e interpretacion del proceso de distribucion de documentos. A conti-
nuacion se muestran imagenes representativas de las pantallas que conforman la
aplicacion.
La figura 4.9 muestra el formulario para ingresar al sistema. Aquı se hace la vali-
dacion del usuario y password mediante un procedimiento a nivel base de datos, el
cual esta cifrado mediante una funcion hash MD5, que lo convierte en una cadena
de 128 bits.
Figura 4.9: Pantalla de ingreso al sistema
Capıtulo 4. Desarrollo del modelo propuesto 46
Si la validacion es correcta, se presenta la pantalla principal mostrada en la figura
4.10, en este caso se ingreso con un usuario con el role administrador.
Figura 4.10: Pantalla principal
Esta pantalla esta dividida en las siguientes secciones:
� Menu. Seccion donde se ubican las opciones de la aplicacion, dependiendo
del role que tenga el usuario que ingreso al sistema seran las que pueda
visualizar.
� Identificacion. En esta seccion se muestra la clave de usuario con la que se
ingreso al sistema.
� Area de trabajo. Seccion central donde se ubicaran los campos de textos,
lista de valores, etc.
Capıtulo 4. Desarrollo del modelo propuesto 47
El proceso inicia con la administracion de catalogos de dependencias y usuarios,
la figura 4.11 muestra la pantalla para la administracion de estos ultimos.
Figura 4.11: Catalogo de usuarios
En esta interfaz se visualizan los datos que deben de ser ingresados al sistema para
modificar o dar de alta a un usuario.
Es preciso mencionar que las areas de texto mostradas como Llave publica y Llave
privada se muestran por cuestiones ilustrativas, ya que la informacion de estos
campos no se debe de visualizar por ningun motivo. Esta informacion es escrita
en los archivos a nivel sistema operativo.
Capıtulo 4. Desarrollo del modelo propuesto 48
Si se quiere registrar un documento de acuerdo al proceso de la figura 4.6, se tiene
que ingresar a la opcion de Registro de documentos. Este paso del proceso esta
mapeado en dos opciones dentro de la aplicacon, una en la que se quiere consultar
documentos registrados previamente, el cual se muestra en la figura 4.12, y la otra
en donde se registra o edita un documento, figura 4.13.
Figura 4.12: Listado de documentos.
Este listado muestra los documentos que han sido registrados en el sistema por el
usuario que ingreso al sistema, los datos principales son:
� Tipo. Tipo de documento que se dio de alta.
� Fecha del documento. La fecha con que se emitio el documento.
� Dependencia. Nombre de la dependencia que envıa el documento.
� Emisor. Nombre del usuario que firma el documento.
Capıtulo 4. Desarrollo del modelo propuesto 49
Figura 4.13: Registro de documentos.
En esta pantalla al elegir el documento, se llama a las clases del cifrado Triple
DES-96 mediante llamado a funciones de base de datos. El proceso genera dos
archivos a nivel sistema operativo como se muestra en la figura 4.14, uno con el
nombre original del proceso (este se crea solo para fines ilustrativos) y otro con el
prefijo 3des c. A este archivo, se le aplica una funcion hash la cual se utilizara con
el objetivo de validar la integridad del documento.
Figura 4.14: Archivos generados.
Capıtulo 4. Desarrollo del modelo propuesto 50
Una vez generado el archivo cifrado, el siguiente paso en el proceso es asignar las
personas que tendran permiso de consultar el documento, la figura 4.15 muestra
el formulario en el que se realiza.
Figura 4.15: Asignacion de documento.
Aquı, la interfaz tiene una area de texto donde se pueden capturar instrucciones
mas precisas para el tratamiento del documento.
Al realizar una nueva asignacion se mostrara un nuevo registro en la pantalla
de la figura 4.13 por cada asignacion realizada.
Capıtulo 4. Desarrollo del modelo propuesto 51
Una vez asignado el documento, el siguiente paso es el envıo de las llaves generadas
con el hash del documento y la llave publica del destinatario. La distribucion de
esta informacion se realiza mediante el envıo de correo electronico como se muestra
en la figura 4.16.
Figura 4.16: Envıo de clave del documento.
Por su parte el destinatario del documento debe ingresar al sistema y en la opcion
Consultar documentos, debe de indicar la ubicacion del archivo de la llave privada
que se genero al momento de crear su cuenta en el sistema y tambien introducir
la clave para el documento que recibio por correo electronico. Si la informacion es
correcta el formulario mostrara un icono para poder descargar el documento co-
mo se muestra en la figura 4.17, en caso contrario el formulario muestra un icono
distinto como el de la figura 4.18.
En este ultimo caso, se modifico el valor del primer caracter de la llave recibi-
da por correo electronico.
Capıtulo 4. Desarrollo del modelo propuesto 52
Figura 4.17: Validacion de datos para el descifrado del documento 1.
Figura 4.18: Validacion de datos para el descifrado del documento 2.
Capıtulo 4. Desarrollo del modelo propuesto 53
Cuando la informacion de la llave y la clave del archivo es correcta, se aplica la
funcion de descifrado del algoritmo Triple DES-96 para poder descargar el docu-
mento generado con el prefijo 3des d, como se muestra en la figura 4.19.
Figura 4.19: Descargar documento descifrado.
Con este ultimo paso concluye el mapeo del proceso principal. La interfaz del
sistema es intuitiva y amigable, y la programacion de los algoritmos de cifrado,
descifrado y generacion de llaves es transparente para el usuario.
Capıtulo 5
Analisis de resultados
5.1. Resultados
En criptografıa, como se menciono al inicio del presente documento, se plantean
ciertos objetivos basicos, los cuales tienen como finalidad proporcionar en con-
junto, confidencialidad y seguridad de la informacıon. Estos objetivos se tomaron
como base para que junto con la implementacion de los algoritmos Triple DES-96,
RSA y el desarollo del software para la distribucion de documentos vıa web presen-
ten una alternativa para la administracion y gestion de documentos en empresas
y entidades gubernamentales.
Con base en estos objetivos se presentan las caracterısticas principales implemen-
tadas en este trabajo.
5.1.1. Autenticacion
A grandes rasgos La autenticacion es el proceso de validar identidades de emisores
y receptores. Para esta parte la solucion desarrollada utilizo el algoritmo RSA para
generar el par de llaves, publica y privada para cada usuario que tenga acceso al
sistema. La longitud de estas llaves es de 1024 bits. Tambien se utilizo una funcion
hash MD5 (Message Digest Algorithm 5) para cifrar a 132 bits la contrasena de
los usuarios en la base de datos.
54
Capitulo 5. Analisis de resultados 55
En la figura 5.1 se puede observar los valores generados para las llaves publica y
privada.
Figura 5.1: Valores de llaves generadas.
El valor de las llaves generadas es escrito en un archivo del sistema operativo del
servidor.
La figura 5.2 muestra el contenido del archivo de una de las llaves privadas gene-
radas.
Figura 5.2: Contenido del archivo de llave privada.
Capitulo 5. Analisis de resultados 56
5.1.2. Integridad
La integridad permite al receptor del documento asegurarse de que el documento
recibido no ha sido modificado durante el proceso del envıo. Para cumplir con este
requisito el sistema desarrollado se apoya en la generacion del hash del documento
cifrado, el cual es enviado por medio del correo electronico. La figura 5.3 muestra
el contenido del correo electronico enviado por el sistema.
Figura 5.3: Llave del archivo.
5.1.3. Confidencialidad
La confidencialidad es el mecanismo de asegurar de que nadie pueda consultar o
interpretar la informacion enviada excepto el receptor indicado. Para esta tambien
entra en juego el par de llaves publica y privada de cada usuario. Para fortalecer
esta parte se utilizo el algoritmo Triple DES-96 para cifrar los documentos que
son enviados mediante canales no seguros. En la tabla 5.1 se muestran los tiempos
de cifrado y descifrado para distintos tamanos de archivos pdf utilizando Triple
DES-96.
Tabla 5.1: Tiempo de cifrado y descifrado con Triple DES-96
Capitulo 5. Analisis de resultados 57
Los tiempos registrados en la tabla anterior, se tomaron en un equipo portatil con
un procesador Intel Core Duo a 2.00 GHz con 6 GB de Memoria Ram y con un
sistema operativo Windows 7 de 64 bits, en el cual se instalo La solucion desarro-
llada. Estos tiempos pueden mejorarse sustancialmente instalando la solucion en
equipos de reciente tecnologıa y con mayor capacidad de computo.
Capıtulo 6
Conclusiones y trabajos a futuro
6.1. Conclusiones
Derivado del avance vertiginoso de las tecnologıas de la informacion y la comunica-
cion (TIC’s) y el volumen de documentos que se gestiona en empresas y dependen-
cias de gobierno, la seguridad de la informacion contenida en dichos documentos
se ha convertido en un aspecto sumamente importante.
Por lo anterior, el cifrado de documentos junto con la implementacion de un sis-
tema de gestion para su administracion se presenta como una solucion al reto de
mantener la seguridad y confidencialidad de la informacion generada en las enti-
dades ya sean publicas o privadas.
Es importante resaltar que los metodos de cifrado de la informacion deben de estar
en continuo proceso de mejora y optimizacion, esto debido al gran avance que se
ha tenido en cuanto a la potencia de calculo de los procesadores y al desarrollo de
las arquitecturas distribuidas. Por tal motivo, los criptosistemas hıbridos como el
del presente trabajo, son una excelente alternativa, ya que combinan el cifrado de
clave privada para cifrar documentos y el cifrado de clave publica que son los mas
adecuados para el intercambio de informacion.
58
Capıtulo 6. Conclusiones y trabajos a futuro 59
6.2. Trabajos a futuro
En el desarrollo del presente trabajo, surgieron varias lıneas futuras de investiga-
cion, las cuales se mencionan a continuacion:
� Implementar un mecanismo de firma digital que permita fortalecer la segu-
ridad de la solucion desarrollada.
� Desarrollar un proceso para la distribucion segura de las llaves generadas en
la aplicacion.
� Optimizar los tiempos de cifrado y descifrado de los documentos implemen-
tando mejoras en la programacion de las clases utilizadas.
6.3. Reflexion final
Un aspecto importante y de gran interes en materia de criptografıa es el de con-
siderar que la computacion cuantica ya es una realidad, por lo que resulta ser
una seria amenaza para la seguridad de cualquier criptosistema. En la actuali-
dad ya existen computadoras capaces de realizar calculos cuanticos y con esto
poder implementar el algoritmo que Peter Short desarrollo y que permite calcu-
lar los factores primos de grandes numeros a una velocidad mucho mayor que en
una computadora convencional [40]. Esto permitirıa romper muchos de los siste-
mas criptograficos utilizados actualmente, por lo que se debe realizar un trabajo
constante en mejorar e implementar mecanismos que fortalezcan la seguridad y
confidencialidad de los documentos e informacion.
Bibliografıa
[1] Wen-Xiang Wu, Chin-Chih Chang. Distributed file sharing using web servi-
ces. Digital Information and Communication Technology and it’s Applications
(DICTAP), 2014 Fourth International Conference, pages 264,268, 2014.
[2] Chang Xue-zhou. Network data encryption strategy for cloud computing.
2015 Seventh International Conference on Measuring Technology and Mecha-
tronics Automation, page 693.697, 2015.
[3] Xinli Hu, Lianjie Ma. A study on the hybrid encryption technology in the
security transmission of electronic documents. 2010 International Conference
of Information Science Management Engineering, pages 60–63, 2010.
[4] Gang Hu. Study of file encryption and decryption system using security key.
2010 2nd International Conference on Computer Engineering and Technology,
7:121,–124, 2010.
[5] Alexander Wong, William Bishop. Expert knowledge based automatic
regions-of-interest (roi) selection in scanned documents for digital image
encryption. Proceedings of the 3rd Canadian Conference on Computer and
Robot Vision (CRV’06), pages 2–3, 2006.
[6] Guifen Zhao, Xiangyi Hu, Ying Li, Liping Du. Scheme for digital documents
management in networked environment. proceedings of ic-nidc2009. pages
995–998, 2009.
[7] Fernando Martın Rodrıguez, Juan Manuel Fernandez Montenegro. Scanned
documents secure authentication based on simple watermarking. page 1, 2011.
[8] Kulvinder Kaur, Vineeta Khemchandani. Securing visual cryptographic sha-
res using public key encryption. 2013 3rd IEEE International Advance Com-
puting Conference (IACC), pages 1110–1111, 2013.
60
Bibliografıa 61
[9] Mr.Sudhanshu Suhas Gange, Prof.(Dr.).Ashok A.Ghatol. Scombination of
encryption and digital watermarking techniques used for security and copy-
right protection of still image. IEEE International Conference on Recent
Advances and Innovations in Engineering (ICRAIE-2014), pages 1–2, 2014.
[10] Tzong-Chen Wu, Nai-Wei Lo, Jia-Lun Tsai. Efficient convertible multi-
authenticated encryption scheme for group communications. 2012 Internatio-
nal Symposium on Biometrics and Security Technologies, pages 56–57, 2012.
[11] C. Renterıa Marquez, V. M. Silva Garcıa, R. Flores Carapia. Triple-des block
of 96 bits: An application to colour image encryption. Applied Mathematical
Sciences, pages 1152–1154, 2013.
[12] Tzong-Chen Wu,Nai-Wei Lo, Jia-Lun Tsai. The triple-des-96 cryptographic
system. Int. J. Contemp. Math. Sciences, pages 925–934, 2013.
[13] Sadhana Rana, Pramod Kumar Joshi. Era of cloud computing. High Perfor-
mance Architecture and Grid Computing, International Conference, HPAGC
2011, pages 1–2, 2011.
[14] Sumeet Kaur, Sandeep K. Sood, Pardeep Sharma. Security issues in cloud
computing. High Performance Architecture and Grid Computing, Internatio-
nal Conference, HPAGC 2011, pages 4–5, 2011.
[15] Joseph H. Silverman, Jill Pipher, Jeffrey Hoffstein. An Introduction to Mat-
hematical Cryptography Second Edition. Springer, 2014. ISBN 978-1-4939-
1710-5.
[16] Peter J. Cameron. A Course on Number Theory. Queen Mary, University of
London, 2009.
[17] Richard Johnsonbaugh. Matematicas Discretas, Sexta Edicion. SPrentice
Hall, Mexico, July 2005. ISBN 970-26-0637-3.
[18] Hans Delfs, Helmut Knebl. Introduction to Cryptography,Principles and Ap-
plications. Springer, July 2015. ISBN 978-3-662-479 3-5.
[19] Kenneth H. Rosen. Discrete Mathematics and Its Applications, Seventh Edi-
tion. Springer, July 2012. ISBN 978-0-07-338309-5.
[20] Nigel P. Smart. Cryptography Made Simple. Springer, 2016. ISBN 978-3-319-
21935-6.
Bibliografıa 62
[21] Jean Galliert. Discrete Mathematics. Springer, 2011. ISBN 978-1-4419-8046-
5.
[22] Cliff Stein, Scot Drysdale, Ken Bogart. Discrete Mathematics for Computer
Scientists. Addison-Wesley, 2010. ISBN 978-0132122719.
[23] William Stallings. Fundamentos de Seguridad en Redes: Aplicaciones y
Estandares. Pearson Prentice Hall, 2004. ISBN 84-205-4002-1.
[24] OLI Yongzhen, ZhouYingbing. The design and implementation of a symme-
tric encryption algorithm based on des. Software Engineering and Service
Science (ICSESS), 2014 5th IEEE International Conference on, pages 517,
520, 2014.
[25] U.S. Department of Commerce. Federal information processing standardspu-
blication - fips publication 46-3. 1999.
[26] Chris Jenkins, Michael Schulte, John Glossner. Instruction set extensions
for triple des processing on a multi-threaded software-defined radio platform.
2010 Conference Record of the Forty Fourth Asilomar Conference on Signals,
Systems and Computers, pages 1387,1391, 2010.
[27] U.S. Department of Commerce/National Institute of Standards and Techno-
logy. Federal information processing standards publication 46-3, data encry-
ption standard (des). pages 1152–1154, 1999.
[28] C. Renterıa Marquez, R. Flores Carapia, V.M. Silva Garcıa. The triple-des-96
cryptographic system. Int. J. Contemp. Math. Sciences, HIKARI Ltd, pages
1152–1154, 2013.
[29] P. D. Filio Aguilar, R. Flores Carapia, V.M. Silva Garcıa. Ssl/tls record
protocol based on the triple des-96 cryptosystem. Contemporary Engineering
Sciences,s, HIKARI Ltd, pages 947–956, 2014.
[30] Burt Kaliski. The mathematics of the rsa public-key cryptosystem. RSA
Laboratories, pages 947–956, 2014.
[31] Karen Cannell, Patrick Cimilini. Agile Oracle Application Express. Apress,
2012. ISBN 978-1-4302-3759-4.
[32] http://www.agilemanifesto.org/iso/es/. Manifiesto por el Desarrollo Agil de
Software. agilemanifesto.org, 2001. Recurso consultado en Junio 2016.
Bibliografıa 63
[33] Gorschek T., Fogelstrom N.D. Olsson, P.,Svahnberg, M. The impact of agile
principles on market-driven software product development. Journal of Soft-
ware Maintenance and Evolution: Research and Practice, (22):53–80, 2010.
[34] Michele Marchesi (Eds.), Giovanni Cantone. Agile Processes in Software En-
gineering and Extreme Programming 15th International Conference, XP 2014
Rome, Italy, May 26-30, 2014 Proceedings. Springer, 2014. ISBN 978-3-319-
06861-9.
[35] Scott Millett, Matthew Bussa, Jerrel Blankenship. Pro Agile .NET Develop-
ment with Scrum. Apress, 2011. ISBN 978-1-4302-3533-0.
[36] Alan Moran. Managing Agile, Strategy, Implementation, Organisation and
People. Springer, 2015. ISBN 978-3-319-16261-4.
[37] Greg Pearman, James Goodwill. Pro .NET 2.0 Extreme Programming.
Apress, 2006. ISBN 978-1-59059-480-3.
[38] Oracle. Oracle Database 11g: Informacion general sobre nuevas caracterısti-
cas. Oracle, 2008.
[39] Edward Sciore. Understanding Oracle APEX 5 Application Development.
Apress, 2015. ISBN 978-1-4842-0990-5.
[40] Vicente Moret Bonillo. Principios Fundamentales de Computacion Cuantica.
Universidad de Coruna, 2013.
Top Related