cifrado y distribución de documentos vía web utilizando

76
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

Upload: others

Post on 02-Dec-2021

2 views

Category:

Documents


0 download

TRANSCRIPT

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

Para todos mis seres amados y a mi padre, que se nosadelanto en el camino. . .

xi

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.