Você está na página 1de 86

Instituto Politécnico Nacional

Centro de Innovación y Desarrollo


Tecnológico en Cómputo

Firma Digital Basada en Funciones HASH y un


Algoritmo Criptográfico Híbrido

Tesis

Que para obtener el grado de


Maestría en Tecnología de Cómputo
Presenta:

Reyna García Belmont

Directores:

Dr. Rolando Flores Carapia


Dr. Víctor Manuel Silva García

Abril 2016
Acta de Revisión de Tesis

ii
Carta de Cesión de Derechos

iii
Resumen

La evolución de la comunicación a través de los años ha hecho que las formas de intercambiar
información a distancia se agilice con el uso de la tecnología. El intercambio de información través de
internet ha beneficiado a empresas, sociedad y familia en muchos ámbitos de tal manera que hoy en
día la información es considerada como principal activo de las organizaciones e inclusive de las
personas, es tan importante que el crimen también ha evolucionado y se ha valido del robo de la
información para obtener beneficio.

Lo anterior motivo el desarrollo de éste trabajo para presentar una estrategia de seguridad de
información en la que se construye una aplicación que involucra estándares y procedimientos
formales en un esquema de seguridad desarrollado en C#, tratando de lograr uno o más de los
siguientes resultados: innovación y protección.

La criptografía es sin duda una herramienta que puede permitir el control de la información por lo
que la propuesta incluye técnicas de criptografía simétrica, asimétrica, funciones Hash y firma digital,
aprovechando con esto las fortalezas que ofrecen cada una de ellas y conjuntarlas para obtener un
sistema híbrido que apoye a mitigar el riesgo de que una persona no autorizada tenga acceso a la
información, brindar la confiabilidad de que ésta no sea alterada y saber el origen de la información,
logrando un canal seguro de comunicación.

Con el desarrollo de éste trabajo se pretende que el lector tenga una idea del estado actual del uso de
la tecnología y las alternativas para realizar una comunicación segura y sobre todo que comprenda la
importancia de proteger su información al implementar medidas de seguridad básica y no ser una
víctima más del crimen cibernético.

iv
Abstract

The evolution of the communication through the years has expedited the ways of exchanging
information by distance with the use of technology. The exchange of information by the usage of
internet has benefited companies, society and family in many areas so that actually the information is
considered the principal asset of organizations and even of people, its value has grown so that crime
has also evolved to obtain benefits by the theft of information.

Due to the foregoing this project was developed to present a strategy of information security in which
it is set up an application that involves standards and formal procedures in a security scheme
developed in C#, attempting to achieve one or more of the following results: innovation and
protection.

The cryptography is without a doubt a tool that allows the control of the information; since the
proposal includes symmetric, asymmetric cryptography, Hash functions and electronic signature,
taking advantage of the strengths that offers each one and conjoining them to obtain a hybrid system
that helps to mitigate the risk that an unauthorized person has access to the information, and also to
provide the reliability that it is not altered and finally to know the origin of the information, achieving
a safe canal of communication.

This project intends the reader to obtain an idea of the actual usage of technology and the
alternatives to accomplish a safe communication, as well as understanding the importance of
protecting his information and not become another cybernetic crime victim by implementing basic
security measures.

v
Dedicatorias

A mis Padres

Quienes me dieron vida, educación, apoyo, consejos y sobre todo el ejemplo de trabajar para
lograr lo que queremos.

A Luis:

Mi esposo, compañero y sobre todo amigo, que siempre ha creído en mí y me ha apoyado en


todos los buenos y malos momentos de mi vida, sin pedir nada a cambio.

A mis Hijos:

Anita y Luis que le dan sentido a mi vida y espero vean en mí un ejemplo a seguir.

vi
Agradecimientos

Este trabajo de tesis es un esfuerzo en el cual de manera directa o indirecta participaron muchas
personas aportando opiniones, corrigiendo, dándome ánimo, teniéndome paciencia,
acompañándome en los momentos de crisis, en los momentos de felicidad y que me han permitido
aprovechar la experiencia y conocimientos de cada uno de ellos y que en este momento deseo
agradecer.

A mis directores de Tesis, Dr. Víctor Silva y al Dr. Rolando Flores, mi más amplio agradecimiento por
su valiosa dirección, paciencia y apoyo para seguir este camino de Tesis y llegar a la conclusión de la
misma.

Al CIDETEC por darme la oportunidad de estudiar, superarme y vivir una experiencia única e
irrepetible.

Un sincero agradecimiento a mis revisores de tesis por el tiempo dedicado a este trabajo, pero sobre
todo por las aportaciones, sugerencias e ideas de las que han nutrido este trabajo.

A mis profesores por su apoyo a mi formación al compartir sus conocimientos, experiencias

A mis Amigas y Hermanas, que sin importar el tiempo que nos conocemos, la amistad y lazos que han
surgido se han fortalecido, permitiéndome contar con su apoyo en todo momento.

En especial quiero agradecer a mi compañero de todas las batallas y que día a día está conmigo sin
importar la situación ofreciéndome cariño, comprensión y paciencia.

A todos ustedes, mi mayor reconocimiento y gratitud.

vii
Epígrafe

“El éxito se mide no tanto por la posición que uno ha alcanzado en la vida, si no por los obstáculos
que ha tenido que vencer en el camino hacia el éxito”

Booker T. Washington

viii
Referencia de Abreviaturas

AC Autoridad de Certificación
AES Advanced Encryption Standard (Estandar de Cifrado Avanzado)
ANSI American National Standards Institute (Instituto Nacional Estadounidense de
Estándares)
APF Administración Pública Federal
BANXICO Banco de México
CIEC Clave de Identificación Electrónica Confidencial
CNDUMI Comisión de las Naciones Unidas para el Derecho Mercantil Internacional, por sus
siglas en inglés UNCITRAL
DC Países en Desarrollo
DES Data Encryption Standard (Estándar de Cifrado de Datos)
DSA Digital Signature Algorithm (Algoritmos de Firma Digital)
EC Comercio Electrónico
ECC Elliptic Curve Cryptography. (Criptotgrafía de Curva Elíptica)
ES Electronic Signature (Firma Electrónica)
ETS European Trusted Services (Servicios de Confianza Europeo)
FE Firma Electrónica
FEA Firma Electrónica Avanzada
FIPS Federal Information Processing Standard (Estándares Federales de Procesamiento de
la Información.
ICPC Comité de Información, Cómputo y Políticas de Comunicación
IDEA International Data Encryption Algorithm (Algoritmo Internacional de Cifrado de
Datos)
IEC International Electrotechnical Commission (Comisión Internacional Electrotécnica)
ISO International Organization for Standardization (Organización de Normas
Internacionales)
MAC Message Authentication Code (Código de Autenticación de Mensaje)
MD5 Message Digest Algorithm (Algoritmo de Resumen de Mensaje 5)
NIST National Institute of Standards and Tecnology (Instituto Nacional de Estándares y
Tecnología)

ix
OCDE Organización para la Cooperación y el Desarrollo Económico
ONU Organización de las Naciones Unidas
PEM Private Enhanced Mail (Correo de Privacidad Mejorada)
PGP Pretty Good Privacy (Privacidad Bastante Buena)
PKI Public Key Infraestructure ( Infraestructura de Claves Públicas)
RSA Rivest, Shamir y Adleman
RUPA Registro Único de Personas Acreditadas
SAT Sistema de Administración Tributaria
SET Secure Electronic Transaction (Transacción Electrónica Segura)
SHA Secure Hash Algorithms (Algoritmo de Hash Seguro)
SHS Secure Hash Standard (Algoritmo de Hash Seguro)
SSL Secure Sockets Layer (Capa Segura de Sockets)
TIC’s Tecnologías de la Información y Comunicaciones
TTP Trusted Third Parties (Tercera Parte Confiable)
UIT Unión Internacional de Telecomunicaciones

x
Índice General

Acta de Revisión de Tesis ....................................................................................... ii

Carta de Cesión de Derechos ............................................................................... iii

Resumen ...................................................................................................................... iv

Abstract ........................................................................................................................ v

Dedicatorias ............................................................................................................... vi

Agradecimientos..................................................................................................... vii

Epígrafe..................................................................................................................... viii

Referencia de Abreviaturas .................................................................................. ix

Índice de Figuras ................................................................................................... xiv

Índice de Tablas ....................................................................................................... xv

Capítulo 1 Generalidades ...................................................................................... 1


1.1 Introducción ................................................................................................................................... 1
1.2 Estado del Arte ............................................................................................................................... 3
1.3 Organizaciones Internacionales ..................................................................................................... 6
1.4 Definición del Problema ................................................................................................................. 9
1.5 Justificación .................................................................................................................................. 12
1.6 Objetivos ...................................................................................................................................... 14
1.6.1 Objetivo General ................................................................................................................... 14
1.6.2 Objetivos Específicos ............................................................................................................. 14
1.7 Organización del trabajo .............................................................................................................. 14

Capítulo 2 Fundamento Teórico....................................................................... 15


2.1 Seguridad de la Información ........................................................................................................ 15
2.2 Criptografía................................................................................................................................... 16
2.2.1 Criptografía Simétrica............................................................................................................ 17
2.2.2 Criptografía Asimétrica.......................................................................................................... 17

xi
2.2.3 Criptografía Híbrida ............................................................................................................... 18
2.3 Firma Digital ................................................................................................................................. 20
2.3.1 Proceso de Firma Digital........................................................................................................ 21
2.3.2 Certificados Digitales ............................................................................................................. 23
2.3.3 Infraestructura de Clave Pública (PKI) ................................................................................... 23
2.4 Algoritmos de Cifrado .................................................................................................................. 24
2.5 AES................................................................................................................................................ 28
2.5.1 Estructura AES ....................................................................................................................... 28
2.5.2 Sub Bytes ............................................................................................................................... 29
2.5.3 ShiftRows ............................................................................................................................... 29
2.5.4 MixColumn ............................................................................................................................ 29
2.5.5 AddRoundKey ........................................................................................................................ 30
2.5.6 Expansión de Claves .............................................................................................................. 30
2.6 Funciones Hash ............................................................................................................................ 32
2.6.1 Propiedades de las Funciones Hash ...................................................................................... 33
2.6.2 Preproceso ............................................................................................................................ 34
2.6.3 Cálculo del Hash .................................................................................................................... 35
2.7 Los Números en la Criptografía .................................................................................................... 37
2.7.1 El Problema del Logaritmo Discreto ...................................................................................... 37
2.7.2 Números Aleatorios .............................................................................................................. 37
2.7.3 Números Primos .................................................................................................................... 38
2.7.4 Números Trascendentes ....................................................................................................... 38
2.8 ElGamal ........................................................................................................................................ 39
2.8.1 Algoritmo............................................................................................................................... 39

Capítulo 3 Esquema de Cifrado Híbrido y Pruebas .................................... 41


3.1 Diseño del Esquema Criptográfico Híbrido .................................................................................. 41
3.2 Desarrollo de AES ......................................................................................................................... 42
3.3 Desarrollo de Funciones Hash ...................................................................................................... 47
3.4 Desarrollo del ElGamal ................................................................................................................. 50
3.4.1 Generación de Llaves ............................................................................................................ 51
3.4.2 Cifrado ................................................................................................................................... 54

xii
3.4.3 Descifrado ............................................................................................................................. 56
3.5 Resultados .................................................................................................................................... 57

Capítulo 4 Conclusiones y Trabajos a Futuro .............................................. 63


4.1 Conclusiones................................................................................................................................. 63
4.2 Trabajos a Futuro ......................................................................................................................... 65

Referencias ............................................................................................................... 66

xiii
Índice de Figuras

Figura 1.1 Procesos criptográficos para una comunicación segura (Creación Propia) ........................... 1
Figura 1.2 Organizaciones Estándar y Criptográficas .............................................................................. 7
Figura 1.3 Amenazas y vulnerabilidades que han aumentado más su exposición a riesgos [22] ......... 11
Figura 1.4 Internet como medio de comunicación [28] ........................................................................ 13
Figura 2.1 Proceso Criptográfico [34]. ................................................................................................... 16
Figura 2.2 Proceso Criptográfico Simétrico [36] ................................................................................... 17
Figura 2.3 Proceso Criptográfico Asimétrico [36] ................................................................................. 18
Figura 2.4 Proceso Criptográfico Híbrido .............................................................................................. 19
Figura 2.5 Aplicaciones con Firma Digital.............................................................................................. 21
Figura 2.6 Sistema Criptográfico de Firma Digital ................................................................................. 22
Figura 2.7 Función ShiftRows para bloque de 128 bits [51] .................................................................. 29
Figura 2.8 Matriz de MixColumn [51].................................................................................................... 30
Figura 2.9 Ejemplo de AddRoundKey [51]............................................................................................. 30
Figura 2.10 Claves de Expansión ........................................................................................................... 31
Figura 2.11 Pseudocódigo de Expansión de Claves [51] ....................................................................... 32
Figura 2.12 Funciones Hash [108] ......................................................................................................... 33
Figura 2.13 Pasos del Pre proceso de la Función SHA-512 (Creación propia)....................................... 35
Figura 3.1 Esquema de cifrado hibrido propuesto (Creación propia) ................................................... 41
Figura 3.2 Esquema de Cifrado AES [58] ............................................................................................... 43
Figura 3.3 Proceso de Cifrado AES ........................................................................................................ 44
Figura 3.4 Pantalla de Cifrado Y Descifrado AES ................................................................................... 45
Figura 3.5 Ejemplo de cifrado y descifrado correcto AES ..................................................................... 46
Figura 3.6 Ejemplo de cifrado y descifrado incorrecto AES .................................................................. 46
Figura 3.7 Proceso para el cálculo del valor Hash (Creación Propia) .................................................... 47
Figura 3.8 Cálculo del valor Hash .......................................................................................................... 47
Figura 3.9 Ejemplo Hash con cadena larga............................................................................................ 48
Figura 3.10 Creación de valores iniciales Hash ..................................................................................... 49
Figura 3.11 Cálculo Hash con modificación ........................................................................................... 49
Figura 3.12 Esquema General de Firma Digital (Creación propia) ........................................................ 50
Figura 3.13 Etapas de la firma ElGamal (Creación propia) .................................................................... 50
Figura 3.14 Determinación de Primitivo y el Alfa.................................................................................. 51
Figura 3.15 Validación Alfa Propuesto .................................................................................................. 52
Figura 3.16 Algoritmo Square And Multiply [57] .................................................................................. 52
Figura 3.17 Determinación Factores Primos y del generador Alfa ....................................................... 53
Figura 3.18 Cálculo de la Llave Pública .................................................................................................. 53
Figura 3.19 Cálculo Llave Pública (Procesos Integrados) ...................................................................... 54
Figura 3.20 Pasos para Cifrado ElGamal (Creación propia) ................................................................... 55
Figura 3.21 Cifrado ElGamal .................................................................................................................. 55
Figura 3.22 Algoritmo de Descifrado ElGamal (Creación propia) ......................................................... 56

xiv
Figura 3.23 Descifrado El Gamal............................................................................................................ 56
Figura 3.24 Criptosistema ElGamal ....................................................................................................... 57
Figura 3.25 Pantalla de Presentación .................................................................................................... 58
Figura 3.26 Pantalla de Menú ............................................................................................................... 58
Figura 3.27 Generación de Llave Pública .............................................................................................. 59
Figura 3.28 Cifrado de Datos ................................................................................................................. 60
Figura 3.29 Obtención de la Información Enviada ................................................................................ 61

Índice de Tablas

Tabla 1-1 Protocolos criptográficos de transmisión segura ..................................................................... 4


Tabla 1-2 Aplicaciones comerciales que incluyen firma electrónica........................................................ 5
Tabla 1-3 Trabajos de investigación ......................................................................................................... 6
Tabla 2-1 Características de un sistema seguro [2]................................................................................ 15
Tabla 2-2 Algoritmos Criptográficos....................................................................................................... 25
Tabla 2-3 Número de rondas en función de la longitud de clave [51] ................................................... 28
Tabla 2-4 Número de Desplazamientos por Columna ........................................................................... 29
Tabla 2-5 Propiedades de los Algoritmos de Seguridad Hash [51] ........................................................ 34
Tabla 3-1 Resultados Obtenidos ............................................................................................................ 62

xv
Capítulo 1 Generalidades

En este capítulo se presenta la problemática que dio pauta a la realización de este tema de tesis,
con la finalidad de apreciar o realizado al respecto e incorporar vocabulario manejado por los
expertos.

1.1 Introducción

La información y las comunicaciones son parte esencial de la vida cotidiana, lo que ha


evolucionado la forma en la que se realizan los trámites y procesos, permitiendo compartir la
información a través de estos desarrollos y especialmente en internet, sin embargo la transacción
e interacción entre individuos se convirtió en un problema haciendo a la información susceptible
a diversos ataques como son: interrupción, intercepción, modificación y fabricación; por lo que se
hizo necesario aplicar métodos criptográficos para protegerla, validar transacciones e identificar
los participantes en las mismas, surgiendo así medios digitales de identificación como lo es la
firma digital (Fig. 1.1) [1].

Figura 1.1 Procesos criptográficos para una comunicación segura (Creación Propia)

Estados Unidos es el país donde ha avanzado más la legislación sobre la firma electrónica a través
del proyecto de estandarización del “The National Institute of Standards and Technology” (NIST)
[2].

1
En la Unión Europea la Dirección General XIII de la Comisión Europea comenzó a dirigir en 1992
las cuestiones sobre Servicios Confiables, a través de su Iniciativa sobre “Electronic Signature” (ES)
y “Trusted Third Parties” (TTP) y es hasta 1996 que se lanzó un programa denominado “The
European Trusted Services” (ETS), cuyo objetivo ha sido profundizar para lograr la máxima
extensión posible desde un punto de vista técnico y económico, en los aspectos legales y
regulatorios que gobiernan el uso de la criptografía para la autenticación, confidencialidad y no
repudiación, para resolver el dilema planteado por el importante incremento de encriptación en
la sociedad de la información [3].

Así mismo la firma digital está en proceso de evolución en el mundo incorporándose en la vida
diaria en trámites cotidianos, permitiendo la realización de numerosas gestiones de manera
segura, rápida y eficaz, aumentando así el índice de competitividad en las organizaciones como en
el caso de Argentina, Panamá, Costa Rica, Guatemala, Colombia, Bolivia y México entre otros [2].

En México para llevar un adecuado desarrollo dentro de la llamada Sociedad de la Información es


necesario el uso de instrumentos como la firma electrónica para trámites que los ciudadanos
llevan a cabo con el gobierno, entre particulares, empresas y desde el interior del gobierno, entre
funcionarios públicos. El gobierno del estado de Guanajuato fue la primera administración pública
en implementar el mecanismo de firma electrónica para la prestación de servicios públicos,
obteniendo buenos resultados en la gestión de dicho proyecto [4].

El primer intento por implementar un mecanismo que permitiera identificar al emisor de un


mensaje electrónico como autor legítimo como si se tratara de una firma autógrafa fue el
proyecto denominado “Tu firma” que durante el 2004 el Sistema de Administración Tributaria
(SAT) implementó como un mecanismo alternativo en su inicio y obligatorio para el 2005, después
de una serie de reformas al Código Fiscal de la Federación. Este primer intento por consolidar las
transacciones electrónicas alcanzó casi dos millones de contribuyentes registrados que junto con
su Clave de Identificación Electrónica Confidencial (CIEC), iniciaron el camino para la posterior
puesta en marcha de la Firma Electrónica Avanzada (FEA). El diseño de dichos proyectos se basa
en estándares internacionales de “Public Key Infraestructure” (PKI) en donde se utilizan dos
llaves para el envío de mensajes: la llave privada y la llave pública [5].

En México el concepto de firma digital se regula a través del Código Fiscal de la Federación donde
se establece que la firma es válida si cumple con los siguientes requisitos [6]:

2
 Autenticidad
 Confidencialidad
 Integridad y
 No repudio

Como se puede observar en México, se ha intentado avanzar en materia de tecnologías de la


información con una tendencia mundial en el manejo de gobierno electrónico con la
implementación de portales y herramientas electrónicas con el objetivo de facilitar la actividad
empresarial y económica, incorporando en este tema la seguridad para crear confianza en los
usuarios para la realización de trámites.

1.2 Estado del Arte

En este punto se citan algunos trabajos de firma electrónica y esquemas criptográficos híbridos a
lo largo del tiempo y en diferentes partes del mundo, desde una perspectiva técnica y normativa
enfatizando en la importancia del uso de las Tecnologías de Información y Comunicaciones (TIC’s)
y su contribución en la evolución de los procesos tecnológicos.

En la tabla 1-1 de mencionan algunos de los protocolos criptográficos de transmisión segura que
han sido de aplicaciones de éxito.

Los protocolos mencionados en la tabla 1-1 se observa que todos en común usan la criptografía
hibrida, funciones Hash, firma electrónica y que en la actualidad se mantienen, siendo de los
protocolos más seguros y sobre todo disponibles para la gente que los quiera usar. Estos sistemas
funcionan mediante el cifrado de llave pública para compartir una llave de cifrado simétrico. La
llave simétrica es cifrada con la llave pública y el mensaje saliente es cifrado con la llave simétrica,
combinando todo en un solo paquete. El destinatario usa su llave privada para descifrar la llave
simétrica, ya obtenida la llave el destinatario procede a descifrar el mensaje.

Lo anterior da la pauta de que la tendencia de los sistemas criptográficos sean híbridos y adopten
las ventajas de diferentes tipos de algoritmos al integrar en un solo esquema la seguridad múltiple
que ofrecen de manera individual.

3
Tabla 1-1 Protocolos criptográficos de transmisión segura

Servicios de Mecanismos Características Fecha


Seguridad Utilizados
Secure Socket Layer MAC  Asegura los canales de 1996
(SSL) MD5 comunicaciones
SHA bidireccionales
RC2
 Ofrece confidencialidad
RC4
IDEA mediante algoritmos de
DES encriptación
TripleDES  Integridad y
AES  No repudio mediante
RSA funciones Hash. [7]
Diffi-Hellman

DSA
Fortezza
Secure Electronic Certificados  Orientado al servicio de 1996
Transaction (SET) Digitales pagos electrónicos
Criptografía de Llave creado por VISA y Master
Pública.
Card
 Proporcionando
integridad de mensajes,
 Autenticación de datos
financieros y
 Encriptación de
información sensible [8].

Private Enhanced MD5  Utiliza cifrado de datos 1993


Mail (PEM) RSA  Contempla la
IDEA autenticación del origen
 Confidencialidad
 Integridad del mensaje y
 No repudio del origen
[9].

Pretty Good RSA  Utiliza el cifrado de llave 1991


Privacity (PGP) IDEA pública
MD5  Firma del correo
TripleDES
electrónico, a través de
un sistema hibrido [10].

Sin embargo son existen otras aplicaciones que son comerciales y también incluyen la firma
digital, en la tabla 1 -2 se mencionan sólo algunas de ellas.

4
Tabla 1-2 Aplicaciones comerciales que incluyen firma electrónica

Aplicación Descripción
PDF/A Es un estándar internacional para el intercambio y consulta de
documentos electrónicos que acepta firmas digitales que
garantiza la integridad del documento [11].

DECLARANET Es un programa informático desarrollado por la Secretaría de


COMPRANET Contraloría y Desarrollo Administrativo, acreditado por el Banco
Mundial [6]
SIAC En la expedición de pasaportes, matrículas consulares y visas se
utiliza tecnología digital que permite garantizar altos niveles de
seguridad y rapidez en sus procesos de emisión. El sistema es
compatible con los estándares internacionales y se ha instalado
en las representaciones que México tiene establecidas en
Guatemala, Honduras, El Salvador, Ecuador, Cuba, China, Perú,
Colombia, Brasil y en 51 Consulados en los Estados Unidos de
América y Canadá [12].

IDSE Sistema IMSS desde su empresa del Instituto Mexicano del


Seguro Social, el cual permite realizar movimientos sobre la
situación de sus empleados desde Internet [6].

Las aplicaciones mencionadas son de carácter específico, sin embargo muestran la necesidad de
incluir aspectos de seguridad en el envío de información, las instituciones educativas no son la
excepción al implementar esta tecnología como es el caso del Instituto Politécnico Nacional que
implementará la Firma Electrónica Avanzada en sus procesos administrativos, con lo cual realizará
un manejo electrónico de su documentación y lograr ahorrar presupuesto al disminuir la
impresión de documentos, fotocopias, espacios físicos de almacenamiento y desplazamiento por
servicios de mensajería a través de sistemas de información de forma segura, estableciendo una
equivalencia funcional entre la firma autógrafa y el consentimiento expresado en forma
electrónica. El reto de este proyecto será generar la confianza y credibilidad en estos mecanismos
al tener en cuenta que este proyecto implica el no repudio y la autenticidad de la firma
electrónica basada plenamente en los fundamentos de la PKI a fin de que las comunicaciones en
internet sean seguras [13].

Además de estos proyectos, se desarrollan investigaciones de tesis a nivel maestría y doctorado


como se muestra en la tabla 1-3.

5
Tabla 1-3 Trabajos de investigación

Tema Autor Año


Algoritmo de Encripción Híbrido: Cifrado Simétrico Pablo Díaz López 2012
AES en Combinación con Curva Elíptica
Criptosistema Híbrido baso en Triple DES y Sergio Mabel Juárez Vázquez 2011
ElGamal aplicado a imágenes
Diseño e Implementación de un esquema de Jesús Barrón Vidales 2008
cifrado híbrido basado en DHIES
Diseño de un Modelo de Firma Digital que Martin Francisco Ruiz Espil 2013
Garantice la Integridad de los Contratos Digitales Emilyn Sánchez Ferrer del Valle
en las Transacciones WEB de las PYMES
Criptosistema PKI usando la Curva Elíptica Arcadio Oscar Mellado Ramírez 2014
Protocolo Diffie Hellman Utilizando los Edgar Misael Islas Mendoza 2013
Criptosistemas ElGamal y AES
Implementación de un Monedero Digital Móvil Efrén Clemente Cuervo 2009
Función Picadillo Determinista al Grupo G2 y su 2013
Aplicación en Autenticación para Dispositivos
Móviles

Al analizar lo que ha producido con respecto al tema ayuda a definir la perspectiva y a clarificar las
ideas con respecto al tema a trabajar, ya que todos esos productos contribuyen al crecimiento del
sector de nuevas tecnologías creando una cultura hacia la protección de la información y como se
puede observar algunas aplicaciones o programas hacen uso de diferentes técnicas criptográficas,
en algunos incluyen encriptación de archivos e implementaciones de cifrado asimétrico bien
híbrido, otros en la inclusión de la firma hacen uso de funciones Hash.

En ésta investigación se identifica la tendencia ofrecida por los sistemas criptográficos híbridos
con la finalidad de incrementar los niveles de seguridad de la información frente al uso de
herramientas convencionales y modificando valores de la normas usadas, protegiendo el
esquema de comunicación, ofreciendo control en la generación y distribución de llaves como una
protección y fortalecimiento en la seguridad de la información ante los ataques y garantizando el
conocimiento del origen de la información.

1.3 Organizaciones Internacionales

Distintos gobiernos han adoptado los lineamientos de las leyes en diferentes formas y alcances
para definir un marco internacional uniforme, bajo este esquema diferentes organismos
nacionales e internacionales guían el diseño de reglas que gobiernen las transacciones
electrónicas y hacer más efectivo el uso de la criptografía y tecnologías de información (Fig. 1.2).

6
Figura 1.2 Organizaciones Estándar y Criptográficas

ORGANIZACIÓN DE LAS NACIONES UNIDAS (ONU)

La ONU por conducto de la Comisión de las Naciones Unidas para el Derecho Mercantil
Internacional (CNDUMI), es el principal órgano jurídico dedicado a la reforma de la legislación
mercantil a nivel mundial su función principal consiste en modernizar y armonizar las reglas del
comercio internacional, a través de las Leyes Modelo sobre Comercio Electrónico (adoptada en
México en el 2000) y Firma Electrónica (adoptada por nuestro país en el 2003) [14].

UNIÓN INTERNACIONAL DE TELECOMUNICACIONES (UIT)

La UIT es el organismo especializado para las tecnologías de la información y la comunicación


donde participan más de 193 países, dentro de las funciones que realiza es la de elaborar normas
técnicas que garanticen la interconexión continua de las redes y las tecnologías, a través de la
iniciativa Comercio Electrónico para Países en Desarrollo (EC-DC), esta iniciativa es un despliegue
mundial de transacciones electrónicas utilizando las tecnologías PKI, ésta tecnología simplifica
problemas administrativos clave asociados con las soluciones criptográficas simétricas utilizando
algoritmos de claves asimétricas permitiendo soportar la confidencialidad, integridad de los datos
y la autenticación de la entidad origen del mensaje. [15].

ORGANIZACIÓN PARA LA COOPERACIÓN Y EL DESARROLLO ECONÓMICO (OCDE)

La OCDE conformada por 34 países miembros, su función primordial es la de promover políticas


que mejoren el bienestar económico y social de las personas alrededor del mundo reconociendo

7
la necesidad de crear propuestas para facilitar el continuo desarrollo de una infraestructura de
información eficiente y segura.

De esta manera se pretende que la documentación consignada por medios electrónicos otorgue
un grado de seguridad equivalente al del papel, junto con su característica principal, mayor
confiabilidad y rapidez. Las directrices establecidas por la OCDE tienen por objeto:

 Promover el uso de la criptografía;


 Promover el uso de la criptografía sin poner en riesgo la seguridad pública, ejecución de la
ley y la seguridad nacional;
 Promover el conocimiento sobre la necesidad de políticas criptográficas compatibles y
leyes, así como la necesidad de métodos criptográficos interoperables, portátiles y
móviles en redes de información y comunicación nacionales y globales.
 Apoyar en la toma de decisiones dentro de los sectores público y privado en desarrollo e
implementaciones a nivel nacional e internacional de medidas, métodos, prácticas y
procedimientos para el uso efectivo de la criptografía.
 Facilitar el comercio internacional mediante la promoción de sistemas criptográficos
móviles y portátiles a un costo efectivo.
 Promover la cooperación internacional entre gobiernos, empresas y comunidades de
investigación y modelos estándar en el logro de la utilización de métodos criptográficos
coordinados.

Los Lineamientos están principalmente dirigidos a gobiernos, en términos de recomendación de


políticas pero con la intención de que sean comprendidos y seguidos por los sectores público y
privado [16].

INTERNATIONAL ORGANIZATION FOR STANDARDIZATION (ISO/IEC)

La ISO es un organismo internacional de estandarización con la participación de más de 163


países, es independiente no gubernamental, actualmente ha publicado más 19,500 estándares
internacionales cubriendo en todas partes del mundo a las industrias en temas de tecnología,
seguridad, salud. Dentro de los estándares desarrollados ha publicado normas para firmas
electrónicas, criptografía, autenticación y certificación, y ha participado en el desarrollo de
criterios para la aceptación mutua de las autoridades de certificación, terceros confiables (TTP) y
para la infraestructura de su gestión y uso a nivel internacional [17].

8
AMERICAN NATIONAL STANDARDS INSTITUTE (ANSI)

El ANSI es una organización sin fines de lucro que supervisa el desarrollo de estándares que
mejoran la productividad, aumentan la eficiencia y reducen costos en muchos ámbitos incluyendo
la línea de informática y seguridad de tecnologías de información [18].

1.4 Definición del Problema

Hoy en día las tecnologías de información han ido en aumento constituyendo una tecnología
innovadora de rápido crecimiento que se ha vuelo indispensable en la sociedad en el intercambio
de información y el acceso a medios digitales, las cuales convergen generalmente en internet,
haciendo uso de esta o acoplándose a ella, lo cual ha derivado cifras que se arrojan en diversos
fabricantes de antimalware como:

Norton by Symantec

Este informe proporciona un panorama general y análisis sobre la actividad de las amenazas
presentadas en todo el mundo, el informe se basa en los datos de la red Symantec Global
Intelligence Network y ayudan a analizar las tendencias emergentes ante dicho escenario. Los
puntos destacados del informe en 2014 fueron:

• Aumento de 91% en las campañas de ataques dirigidos en 2013.


• En 2013, las fugas de datos aumentaron un 62% con respecto a 2012
• Se expusieron más de 552 millones de identidades como resultado de las fugas en 2013
• Se descubrieron 23 vulnerabilidades de Día Cero
• El 38% de los usuarios móviles fueron víctimas del cibercrimen
• El volumen de spam disminuyó y representó el 66% de todo el correo electrónico
• 1 de cada 392 correos electrónicos es un mensaje fraudulento o phishing
• Los ataques basados en la web crecieron en un 23%
• 1 de cada 8 sitios web legítimos tiene vulnerabilidades críticas

En este informe se detectó que dentro de la información más susceptible de robo es de las
tarjetas de crédito de clientes, fechas de nacimiento, números de identidad nacional, direcciones,
información médica, números de teléfonos, datos financieros, direcciones de correo electrónico,
nombres de usuario y contraseñas entre otras de tipo personal [19].

9
En el reporte de cibercrimen de 2012 se estimó que tan sólo en México más de 14.8 millones de
personas fueron víctimas de delitos informáticos que ocasionaron pérdidas financieras directas
por un monto de 2.2 miles de millones de dólares. Estas cifras son evidencia de una gran fragilidad
y falta de prevención frente a los delitos informáticos de parte de los usuarios, especialmente en
el ámbito corporativo [20].

Karpersky Lab

De acuerdo con un estudio realizado por Karpersky Lab [21], el 48% de las compañías tiene una
protección insuficiente contra el robo de propiedad intelectual y otros ilícitos realizados en línea,
situación que se agrava a causa de la falta de despliegue de políticas de seguridad y la falta de
concientización de los empleados, lo cual crea una vulnerabilidad que facilita a los
ciberdelincuentes encontrar nuevas formas de beneficiarse de las corporaciones y al mismo
tiempo lograr la profesionalización del ejercicio delictivo en la red.

Entre los delitos más frecuentes especialmente a nivel empresarial está el robo de información de
los cuales el 80% proviene del interior de la misma corporación. Otro de los delitos de mayor
frecuencia son los ciberataques en redes sociales y teléfonos móviles, de los cuales se deriva el
robo de identidad, el cual se ha convertido en uno de los métodos más usados para obtener
información de una persona con el fin de obtener algún beneficio o bien perjudicarla

Encuesta Global de Seguridad de la Información Ernst & Young

La Encuesta Global de Seguridad de la Información de Ernst & Young [22] es uno de los ejercicios
anuales más antiguos, reconocidos y respetados de su clase. Esta encuesta ha ayudado a
enfocarse en los riesgos más críticos, a identificar tanto sus fortalezas como debilidades y a
mejorar la seguridad de la información, se puede observar en la encuesta que a pesar de todas las
mejoras que las organizaciones llevan a cabo, la velocidad del cambio va en aumento. En 2009 el
41 % de los encuestados a nivel global observó un aumento en los ataques externos. Para 2011, la
cifra aumento a 72 %. En 2013, el número de encuestados que señala un aumento en las
amenazas externas volvió a subir a 77 %. Algunos ejemplos de amenazas externas crecientes
incluyen el hacktivismo, el espionaje patrocinado por un estado, el crimen organizado y el
terrorismo. Resulta interesante que en México el porcentaje de encuestados que notó un
aumento en el número de ataques externos bajó de 63 % a 57 % de 2011 a 2012.

10
En el mismo lapso de tiempo, las organizaciones también han experimentado un aumento en las
vulnerabilidades internas, en la XV edición de la encuesta, 46 % de los participantes a nivel global
y 39 % en México dice haber observado un aumento. A nivel global, el 37 % dice que el rubro de
empleados negligentes o inconscientes es la amenaza que ha aumentado más en los últimos 12
meses. En 2008 el rubro de conciencia organizacional se señaló como un reto importante para
lograr tener iniciativas de seguridad de la información exitosas. En México, el 62% de los
encuestados considera que la amenaza que más ha aumentado es el fraude. Además, a nivel
global, el número de incidentes reales causados por la pérdida involuntaria de datos de los
empleados ha aumentado 25 % a nivel global y 26 % en México en el 2012 (Fig. 1.3) [22].

Global
Fraude 26% 27% 16% 15%
Ataques cibernéticos para interrumpir o afectar… 30% 22% 16% 18%
Arquitectura o controles obsoletos en materia… 31% 16% 18% 20%
Ataques cibernéticos para obar información… 33% 23% 11% 12%
Empleados negligentes o inconsientes 37% 22% 14% 12%

1° 2° 3° 4°

México
Fraude 62% 25% 13%
0%
Software malicioso 30% 22% 16% 18%
Ataques cibernéticos para robar información… 33% 33% 33%
0%
Vulenrabilidades relacionadas con el uso de… 33%
0% 33%
Empleados negligentes o inconsientes 50% 30% 10%
0%

1° 2° 3° 4°

Figura 1.3 Amenazas y vulnerabilidades que han aumentado más su exposición a riesgos [22]

La digitalización global de los productos, servicios y procesos tiene un profundo impacto sobre las
organizaciones ofreciendo grandes oportunidades de crecimiento y perspectivas, permitiendo
distinguirse por su competencia. Sin embargo, a pesar de todos los beneficios, las organizaciones
necesitan estar conscientes de los retos y riesgos que representan las tecnologías de información

11
y utilizarlas a su favor para ampliar su alcance e impulsar el crecimiento rentable. Un marco de
seguridad de la información debe evaluar constantemente la función de las nuevas tecnologías y
maximizar su potencial para las organizaciones, al mismo tiempo que las mantienen a salvo.

En las estadísticas consultadas se puede observar que el problema más frecuente es el robo de
información, el cual se ha extendido entre la ciudadanía provocando la necesidad de implementar
mecanismos adecuados para brindar seguridad ante problemas relacionados con la
confidencialidad, confiabilidad e integridad en la transmisión de los datos en medios considerados
inseguros, como es el caso de internet [23], [24], [25], [26] , [27]. La criptografía es sin duda una
herramienta que puede permitir el control de la información de aquí la motivación de realizar
este trabajo, al proponer una estrategia de seguridad de información basada en funciones Hash y
un algoritmo criptográfico híbrido, tratando de lograr uno o más de los siguientes resultados:
innovación, optimización y protección.

1.5 Justificación

El uso masivo de internet ha crecido cada vez más, de tal manera que se ha llegado a cruzar la
barrera en donde hay más dispositivos que humanos conectados a internet y con mayor
frecuencia escuchamos noticias relativas a fraudes, robos e incidentes relativos a la información,
siendo un problema sustentado por las estadísticas presentadas en éste trabajo. Es un hecho que
la información se utiliza de mil formas, desde personal como redes sociales, consulta de seguro
social, estados de cuenta bancarios, hasta organizacional donde la información manejada dentro
de ellas se convierte en secretos industriales como ventajas competitivas, situación financiera,
entre otros, lo que llega a concluir que la información es uno de los activos más importantes de
cualquier persona u organización.

Al evolucionar las formas de comunicación también evolucionan los crímenes, dónde la


información en un medio de transmisión de datos la hace vulnerable y es posible interceptarla,
leerla e incluso alterarla (Fig. 1.4), por lo que los usuarios a distancia han limitado la capacidad de
obtener datos e interactuar con la información, debido a la desconfianza en el manejo de los
mismos.

12
Figura 1.4 Internet como medio de comunicación [28]

La criptografía puede ser la respuesta ante estas necesidades, evolucionando los mecanismos y
técnicas que intentan solucionar este problema. Dos aplicaciones fundamentales de la criptografía
son las firmas digitales y la encriptación, la primera consiste en probar la fuente original de los
datos (autenticación) y verificar después que éstos no han sido alterados (integridad), la segunda
proporciona la confidencialidad necesaria para la transmisión de datos y la comunicación.

En un entorno propenso a ataques como la Internet y ante un sistema, la seguridad es una


prioridad en el momento de su implementación y mantenimiento. Por esta razón es necesario
utilizar algoritmos de cifrado que ayuden a que la información transmitida no sea entendible por
un atacante, aun cuando este cuente con las herramientas necesarias para su captura, de tal
forma que sólo sea comprensible por los interlocutores autorizados [29].

Dentro de este contexto el presente proyecto denominado “Firma Digital Basada en Funciones
Hash y un Algoritmo Criptográfico Híbrido”, ofrece una alternativa de seguridad a través de un
sistema de cifrado con firma digital y una encriptación basada en un algoritmo simétrico y
asimétrico con la finalidad de optimizar la velocidad de cifrado y la transmisión de datos,
buscando que otorgue la confiabilidad, confidencialidad, integridad y no repudio en el envío de
información.

13
1.6 Objetivos

En este apartado se describe el objetivo general, así como los objetivos particulares a alcanzar en
este trabajo.

1.6.1 Objetivo General

Aplicar un algoritmo hibrido criptográfico conjuntamente con funciones Hash, para definir un
esquema de comunicación segura que proporcione autenticación, confidencialidad, integridad y
no repudio a través de la firma digital.

1.6.2 Objetivos Específicos

 Proponer un algoritmo híbrido basado en los sistemas criptográficos AES y ElGamal


 Diseñar un sistema de comunicación que integre la firma digital, basado en los algoritmos
AES y en ElGamal.

1.7 Organización del trabajo

Con la finalidad de guiar al lector y seguir a través de una estructura organizada y secuencial el
trabajo se presenta con los siguientes capítulos:

Capitulo I. Generalidades. En el cual se especifica la problemática, objetivos, alcances que


permitieron definir el porqué del proyecto, así como indagar lo que existe sobre el tema, citando
los trabajos realizados bajo la misma temática.

Capitulo II. Fundamentos Teóricos. Con la finalidad de comprender de mejor manera el proyecto,
se presentan los temas y conceptos manejados en el desarrollo del trabajo.

Capitulo III. Diseño del Sistema Criptográfico. Basado en una metodología de ingeniería de
software, donde se describen los pasos necesarios para obtener resultados y verificar el
cumplimiento de los objetivos propuestos.

Capitulo IV. Finalmente se muestran las conclusiones donde se evalúa el objetivo propuesto con
los resultados obtenidos y se expone la experiencia obtenida al realizar el presente trabajo y por
último se menciona un panorama de futuros trabajos que pueden fortalecer el trabajo.

14
Capítulo 2 Fundamento Teórico

En este capítulo se presentan los temas y conceptos necesarios para la interpretación y


comprensión, así como incorporar vocabulario manejado en el presente trabajo.

2.1 Seguridad de la Información

Hoy en día la información es considerada como uno de activos importantes de una persona y de
una organización, así como esencial ya que de ella depende asegurar la continuidad de un
negocio, minimizar riesgos comerciales, implementar estrategias, oportunidades competitivas y
comunicación, para lo cual necesita ser protegida de manera adecuada [30]. Definiendo de aquí
que la seguridad de la información es la protección de la misma ante las amenazas existentes
mediante la implementación de mecanismos de control como:

 Políticas
 Procesos
 Procedimientos
 Estructuras organizacionales
 Funciones de software y hardware

Estos mecanismos contribuyen a garantizar la confiabilidad, confidencialidad, la integridad y no


repudio de la transmisión de información (Tabla 2-1) [31].

Tabla 2-1 Características de un sistema seguro [2].

Servicios de Definición Mecanismos


Seguridad Disponibles
Autenticación Prueba o garantía de la  User- Password
identidad de quien envía la  Tarjeta inteligente
información.  Huella Digital
Control de Acceso Permisos diferenciados de Perfiles de usuario
acceso a segmentos y
necesidades específicas por
cliente.
Confidencialidad Garantía de que el contenido Algoritmos de
de la información se mantiene encriptación con llaves
oculta salvo para el públicas y privadas.
destinatario
Integridad Garantía de que el contenido Algoritmos de
del mensaje no sufrió ninguna encriptación con llaves
modificación. públicas y privadas.
No repudiación Inhabilidad de un individuo Algoritmos de
para desconocer una encriptación con llaves
transacción una vez realizada. públicas y privadas.

15
Como se puede observar en el tabla 2-1, uno de los mecanismos adoptado como medio de
protección es la criptografía.

2.2 Criptografía

La criptografía se considera una disciplina matemática e informática relacionada con el cifrado y


autenticación a través del uso de algoritmos que ayudan a crear herramientas de acceso haciendo
que la información transmitida no sea entendible para garantizar la confidencialidad y la
integridad de la misma [32].

Cuando se habla de criptografía se hace referencia al proceso de creación e implementación de


aplicaciones (Fig. 2.1) con el propósito de disminuir los riesgos a los que una aplicación está
expuesta, por lo que la criptografía se auxilia de las siguientes áreas:

 Criptoanálisis el cual busca recuperar información a través de encontrar las


vulnerabilidades de un sistema criptográfico y romper su seguridad para acceder a la
información sin necesidad de un código o clave.
 Estenografía es una técnica que permite entregar mensajes ocultos dentro de otro, de
forma que no se detecte su presencia y pase inadvertido [33].

Figura 2.1 Proceso Criptográfico [34].

El proceso de cifrado especificado en la figura 2.1 representa un esquema donde el mensaje


original se transforma mediante un procedimiento, el cual se controla mediante una clave y se
envía por un canal de público para la recepción del mensaje y con el conocimiento de la clave se
transforma el criptograma en el mensaje original [34].

Los tipos de sistemas criptográficos dependen del tipo de clave a utilizar en base a esto se
distinguen dos métodos criptográficos:

16
 Sistemas de clave única o métodos simétricos. Son aquellos en los que los procesos de
cifrado y descifrado son llevados a cabo por una única clave.
 Sistemas de clave pública o asimétrica. Son aquello en los que los procesos de cifrado y
descifrado son llevados a cabo por dos claves distintas y complementarias.

2.2.1 Criptografía Simétrica

En éste tipo de criptografía el emisor cifra el mensaje con una clave y el receptor para poder
descifrar el mensaje recibido tendrá que usar la misma clave que usó el emisor (Fig. 2.2) [35].

Figura 2.2 Proceso Criptográfico Simétrico [36]

La criptografía simétrica tiene las siguientes características [36]:

 Se utiliza la misma clave para cifrar y descifrar


 El cifrado simétrico es rápido
 El cifrado simétrico es seguro
 El texto cifrado que resulta de un cifrado es compacto.
 Dado que la clave simétrica debe llegar al receptor, el cifrado simétrico está sujeto a la
intercepción
 La criptografía simétrica requiere una administración compleja de claves
 La criptografía simétrica no se ajusta a las firmas digitales o a la aceptación

2.2.2 Criptografía Asimétrica

Éste tipo de criptografía genera un par de claves complementarias en donde una cifra el mensaje
y sólo otra lo puede descifrar, esas claves son: privada la cual sólo ha de conocer el propietario de
la misma y una clave pública que está disponible para todos los usuarios del sistema (Fig. 2.3)
[35]. Las características de este tipo de criptografía son las siguientes [36]:

17
 Lo que está cifrado con una clave(pública o privada) sólo se puede descifrar con la otra
clave (privada o pública)
 El cifrado asimétrico es seguro
 No tiene los problemas complejos de distribución de claves
 No exige una relación previa entra las partes para hacer el intercambio de claves
 Soporta firmas digitales y aceptación
 Es relativamente lento
 Expande el texto cifrado

Figura 2.3 Proceso Criptográfico Asimétrico [36]

Los algoritmos empleados para este tipo de criptografía, aseguran la imposibilidad de averiguar la
clave privada de una persona teniendo sólo la clave pública.

2.2.3 Criptografía Híbrida

Con la criptografía simétrica la misma llave se comparte entre el emisor y el receptor lo que hace
vulnerable el sistema, sin embargo el proceso de cifrado y descifrado se realiza más rápido en
comparación con un sistema asimétrico y los recursos computacionales utilizados son menores.

18
Lo que hace la existencia de sistemas híbridos en los cuales se toman las ventajas de los dos
métodos en uno sólo protegiendo las llaves de cifrado y en el cual cada usuario se hace
responsable de su propia llave (Fig. 2.4).

Figura 2.4 Proceso Criptográfico Híbrido

Éste sistema es la unión de las ventajas de los dos anteriores, el proceso para enviar un archivo
usando un sistema criptográfico híbrido es el siguiente:

 Generar una clave pública y otra privada (en el receptor)


 Cifrar un archivo de forma síncrona
 El receptor envía su clave pública
 Se cifra la clave que se usa para cifrar el archivo con la clave pública del receptor
 Se envía el archivo cifrado síncronamente y la clave del archivo cifrada asíncronamente y
sólo puede ver el receptor

En la práctica la criptografía simétrica y asimétrica se usan conjuntamente. La simétrica por su


rapidez, se utiliza para el intercambio de grandes volúmenes de información. La asimétrica para el
intercambio de claves simétricas y para la firma digital, teniendo con esto sistemas más seguros y
eficientes.

19
2.3 Firma Digital

Utah Digital Signature Act define a la firma digital como la transformación de un mensaje a una
secuencia de bits a través de una función unidireccional empleando un criptosistema asimétrico y
la llave privada de una persona [37].

En México el código de comercio define a la firma electrónica como los “datos en forma
electrónica consignados en un mensaje de datos o adjuntados o lógicamente asociados al mismo
por cualquier tecnología, que son utilizados para identificar al firmante en relación con el mensaje
de datos e indicar que el firmante aprueba la información contenida en el mensaje de datos y que
produce los mismos efectos jurídicos que la firma autógrafa, siendo admisible como prueba en
juicio” [38].

El concepto de firma electrónica y firma digital son equivalentes y esto depende del país donde
se maneje y de su legislación, como se menciona en el capítulo 1, así mismo existen estándares
abiertos para generación y utilización de firmas digitales que permiten:

 Interoperabilidad entre diferentes plataformas en redes heterogéneas


 Su uso en sectores: comercial, financiero, gobierno y TIC
 Interoperabilidad con empresas e instituciones internacionales
 Crear ambientes competitivos que benefician a los clientes en precios, servicios y calidad.
 Implementar soluciones probadas y seguras
 Evitar tecnologías patentadas
 Prevenir riesgos de obsolescencia y especialización

Actualmente el aspecto de seguridad se ha estado trabajando en todo el mundo, dentro de los


mecanismos implementados esta la firma electrónica (Fig. 2.5), la cual está en constante
evolución ya que a través de ella se pueden realizar contratos, desmaterialización de títulos,
contratos informáticos, contratos electrónicos por y para la red, correo electrónico para la
comunicación legal, sistemas de autenticación y acceso a los sistemas, autoridades de
certificación o entes certificadores, marcas y patentes, instrumentos de pago electrónico. Para lo
cual es necesario Identificar las medidas de seguridad adecuadas para los datos de creación de
firma electrónica que les correspondan de acuerdo al estándar a trabajar [39].

20
Figura 2.5 Aplicaciones con Firma Digital

2.3.1 Proceso de Firma Digital

La Firma digital de un mensaje electrónico está asociado a un proceso coordinado, organizado y


secuencial (ver figura 2.6) para permitir que sea seguro:

1. El emisor crea un mensaje


2. El emisor aplica al mensaje una función Hash y se obtiene un resumen del mensaje
3. El emisor cifra el mensaje utilizando su clave privada
4. El emisor envía al receptor un correo electrónico con los siguientes elementos:

• El cuerpo del mensaje (sin cifrar o cifrado, por medio de la clave pública del receptor)
• La firma del mensaje, que se compone de:
a. El Hash o mensaje cifrado con la clave privada del emisor
b. El certificado digital del emisor con todos sus datos y que está cifrado con la clave
privada del Prestador de Servicios de Certificación.

La comprobación de la firma por el receptor consiste en los siguientes pasos:

1. El receptor recibe el correo electrónico


2. El receptor descifra el certificado digital del emisor, incluido en el correo electrónico,
utilizando la clave pública del prestador de servicios de certificación que ha expedido dicho
certificado. Esa clave pública se toma de la página web del prestador de servicios de
certificación.

21
3. Una vez descifrado el certificado, el receptor podrá acceder a la clave pública del emisor.
4. El receptor utilizará la clave pública del emisor descifrar el Hash creado por el emisor.
5. El receptor aplicará al cuerpo del mensaje, la misma función Hash que utilizó el emisor con
anterioridad, obteniendo igualmente un mensaje. Si el cuerpo del mensaje también ha sido
cifrado para garantizar la confidencialidad del mismo, el receptor deberá descifrarlo utilizando
su propia clave privada (el cuerpo del mensaje había sido cifrado con la clave pública del
receptor).

Figura 2.6 Sistema Criptográfico de Firma Digital

6. El receptor comparará el mensaje o Hash recibido del emisor con el mensaje o Hash
obtenido por el mismo. Si ambos mensajes o Hash coinciden totalmente significa lo
siguiente:

 El mensaje no ha sufrido alteración durante su transmisión, es decir, es íntegro o


auténtico.
 El mensaje descifrado por el receptor con la clave pública del emisor ha sido
necesariamente cifrado con la clave privada del emisor y, por tanto, proviene
necesariamente de este.
 Como el certificado digital nos dice quién es el emisor, podemos concluir que el mensaje
ha sido firmado digitalmente por este, quien es una persona con identidad determinada y
conocida.

22
En la firma electrónica se usa la criptografía asimétrica y para hacer uso de ella se debe
asegurar que existan órganos que emitan los certificados digitales correspondientes.

2.3.2 Certificados Digitales

Los certificados digitales son documentos electrónicos que asocian una clave pública con la
identidad de su propietario, emitido por una entidad certificadora. La certificación digital
permite garantizar [40]:

 Identidad y capacidad de las partes que tratan entre sí sin conocerse


 Confidencialidad de los contenidos de los mensajes
 Integridad de la transacción
 Irrefutabilidad de los compromisos adquiridos.
 No repudio

La validez de un certificado es la confianza en que la clave pública es esencial ya que se debe


conocer si se puede confiar o no en que el destinatario de un mensaje será o no realmente el que
se espera. La distribución de las claves públicas o certificados digitales de los distintos usuarios se
realiza a través de un agente en quien los usuarios confíen (TTP) y se encargue de su publicación
en algún repositorio al que todos los usuarios tengan acceso. La forma en que esa tercera parte
avala que el certificado es de fiar es mediante su firma digital sobre el certificado. La TTP
encargada de la firma digital de los certificados de los usuarios se conoce con el nombre de
Autoridad de Certificación (AC) [41] .

2.3.3 Infraestructura de Clave Pública (PKI)

El modelo de confianza de una firma está basado en la definición de la PKI, la cual es un conjunto
de protocolos, servicios y estándares que soportan aplicaciones basadas en criptografía de clave
pública para proveer un nivel adecuado de seguridad en transacciones electrónicas a través de
redes públicas, generalmente una estructura de PKI consiste en:

 Una política de seguridad


 Una autoridad certificante
 Un sistema de administración de certificados
 Un conjunto de aplicaciones que hacen uso de la tecnología PKI

23
Establecer una PKI constituye un marco de confianza en que la clave pública del usuario no ha
sido alterada y corresponde efectivamente a la clave privada del mismo usuario y se han utilizado
buenas técnicas criptográficas para prestar servicios como gestión de claves criptográficas
utilizadas para las firmas digitales, certificación de que una clave pública corresponde a una clave
privada, suministro de claves a usuarios finales, publicación de información sobre revocación de
claves púbicas o certificadas, administración de símbolos personales que permitan identificar al
usuario con información de identificación personal exclusiva o que permitan generar y almacenar
claves privadas individuales, comprobación de la identificación de los usuarios finales y prestación
de servicios a éstos, gestión de las claves criptográficas utilizadas con fines de confidencialidad en
los casos en que se autorice el empleo de esa técnica [14].

2.4 Algoritmos de Cifrado

Un algoritmo criptográfico es la secuencia de instrucciones matemáticas usadas para transformar


textos o datos no cifrados en textos o datos cifrados y viceversa, sin embargo existen algoritmos
que proporcionan métodos que incluyen tanto cifrado reversible como Hashing (no reversible o
de un solo uso) [32].

A pesar de la existencia de varios algoritmos, la criptografía se considera más sólida cuando se


basa en algoritmos probados y aceptados por la industria, algunos ejemplos de normas y
algoritmos se pueden consultar en la publicación de NIST 800-57 [42].

El tabla 2-2 menciona algunos de los algoritmos criptográficos usados hoy en día, como se puede
apreciar los algoritmos pueden tener uno o más propósitos:

1. Encripción. Se usan simplemente para encriptar la comunicación, tanto el emisor como el


receptor encriptan y desencriptan el mensaje usando el mismo algoritmo.

2. Firmas Digitales. Son algoritmos de clave pública con información secreta para firmar
documentos e información pública para verificar las firmas.

3. Hashing y Digest. Es una función matemática que toma una cadena de longitud variable y
la convierte a una cadena de longitud fija generando un valor para el mensaje. El digest es
la representación del texto en forma de cadena de dígitos, creado con una fórmula de
Hashing de una sola dirección, el encriptar un digest de un mensaje con una clave privada
genera una firma digital [43]

24
Tabla 2-2 Algoritmos Criptográficos

Algoritmo Propósito Rango de Clave Fecha de Observaciones


Creación

RSA Encripción y Firma 1024 bits para uso 1977 La seguridad de este algortimo radica en el problema de la dificultad para
Digital corporativo factorizar grandes números enteros. Los mensajes enviados se representan
mediante números y el funcionamiento se basa en el producto de dos
2048 para claves números primos grandes elegidos al azar. Actualmente estos primos
valuables grandes son del orden 10,200 y se prevé que su tamaño aumente con el
aumento de la capacidad de cálculo de los ordenadores. Este algoritmo es el
más usado en internet dado a que es parte de los navegadores como
Netscape e Internet Explorer. Bajo RSA se desarrolló el algoritmo estándar
para correos S/MIME [34].

DSA Firmas Digitales 56 bits 1994 Está basado en el problema de logaritmos discretos y se deriva de sistemas
propuestos por Schnorr y ElGamal. Es únicamente para autenticación. [44]

Diffie-Hellman(DH) Firmas Digitales 1536 bits 1976 La seguridad de éste algoritmo se basa en la dificultad de calcular logaritmos
discretos infinitamente, se usa principalmente para distribución de claves y
generar claves secretas. Se emplea generalmente como medio para acordar
claves simétricas que serán empleadas para el cifrado de una sesión [45]

ElGamal Encripción y Firma 1024 bits 1985 Un nuevo esquema de firma. Se ha propuesto junto con una
Digital implementación de la Diffie - Hellman esquema de distribución de claves
que logra un sistema de cifrado de clave pública. La seguridad de ambos
sistemas se basa en la dificultad de cálculo de logaritmos discretos sobre
campos finitos. [46]

ECC Encripción 160 bits 1985 El principal impacto que tienen las curvas elípticas en la criptografía es que
reducen de manera considerable la longitud de la clave, de 1024 (usadas en
RSA o DSA) a 160 bits. La ventaja que se obtiene de este tipo de algoritmo es
que con claves más pequeñas, se obtiene un nivel de seguridad equiparable
[47].

25
Tabla 2-2 Algoritmos de (Continuación)

Algoritmo Propósito Rango de Clave Fecha de Observaciones


Creación

DES Encripción 56 bits 1976 Algoritmo simétrico, la clave tiene un tamaño de 56 bits y puede ser cambiado
a cualquier hora. La seguridad recae directamente en la clave. Al inicio y final
del algoritmo se aplican dos permutaciones al dato que poseen la característica
particular, que una es la inversa de la otra. Actualmente ya no se considera un
estándar ya que fue roto en enero de 1999 por un sistema de cómputo que
analizaba 250,000,000,000 claves por segundo. Su principal ventaja es la
rapidez de cálculo y la sencillez de su implementación, su principal desventaja
es la longitud corta de clave y la incapacidad de manejar claves de longitud
variable [48].

3DES Encripción 192 bits 1999 Consiste en aplicar tres veces el algoritmo DES en un orden específico.
Mediante este sistema se obtiene un cifrado de 192 bits (168 efectivos y 24 de
paridad) con tres claves que resulta más complejo de vulnerar [49].

IDEA Encripción 128 bits 1990 Es un cifrado de bloque que opera sobre mensajes de 64 bits con una clave de
128 bits. Consiste en ocho transformaciones idénticas y una transformación de
salida. IDEA deriva del intercalado de tres operaciones: XOR bit a bit, módulo
216 y multiplicación módulo 216 + 1 [34].

Blowfish Encripción 32-448 bits 1993 Usa bloques de 64 bits y claves que van desde los 32 bits hasta 448 bits. Es un
codificador de 16 rondas Fesitel y usa llaves que dependen de cajas. Está
optimizado para microprocesadores de 32 y 62 bits [45].

Twofish Encripción 128-256 bits 1997 Es uno de los algoritmos más rápidos que utiliza bloques fijos actualmente
disponibles, proporciona capacidades de cifrado fuerte y su algoritmo es de
dominio público [45]

RC4 Encripción 40 bits 1987 Su implementación es sencilla y rápida y está orientado a generar secuencias
en unidades de byte, además de permitir de claves diferentes longitudes. Es un
algoritmo propietario, lo que implica que no puede ser incluido en aplicaciones
de tipo comercial sin pagar los royalties correspondientes. Genera secuencias
es las que los ciclos son bastante grandes y es inmune a los criptoanálisis
diferencial y lineal [50].

26
Tabla 2-2 Algoritmos de (Continuación)

Algoritmo Propósito Rango de Clave Fecha de Observaciones


Creación

AES Encripción 128,192 y 256 bits 2001 También conocido como Rijdael, es un esquema de cifrado por bloques,
adoptado como estándar por el NIST como FIPS PUB 197. Este algoritmo cifra
bloques de longitudes de 128, 192 o 256 bits, con la característica que definido
el tamaño del bloque, usa todas claves de la misma longitud [51].

MD5 Hashing (digestión de 128 bits 1992 Función Hashing de una sola dirección produciendo un resultado de 128 bits. El
documentos digitales) resultado del algoritmo son 4 bloques de 32 bits que forman un bloque de 128
bits. Tiene una complejidad algorítmica de 280. [45]

Este tipo de algoritmos trabaja con una complejidad algorítmica de 280. Este
SHA-1 Hashing 160-264 bits 1994
algoritmo está basado en principios similares a los usados en MD5 [34].

Familia SHA Hashing 256-512 bits 1994 La familia SHA es un sistema de funciones Hash criptográficas publicadas por
el NIST (FIPS 180-4), se basan en un diseño algo modificado y rangos de salidas
(SHA-224, SHA-256, SHA- incrementados. Difiere de SHA-1 en que el algoritmo contempla algunas
384 Y SHA 512) constantes adicionales, así mismo, el tamaño del resumen es diferente al igual
que el número de rondas [34].

HMAC Hashing 128-160 bits Es una función que usando los Hash vistos y una clave secreta autentica a dos
usuarios mediante sistemas de clave secreta. HMAC es un MAC que se define
en FIPS 198 y construido utilizando un algoritmo Hash criptográfico. La fuerza
de HMAC depende de la fuerza del algoritmo de Hash y de la longitud y la
entropía de la clave secreta. [45]

RIPEMD Hashing 128-320 bits 1996 Es un algoritmo desarrollado en Europa, está basado sobre los principios del
diseño de MD4 y es similar en seguridad y funcionamiento a SHA-1. Las
versiones de 256 y 320 bits solamente disminuyen la posibilidad de colisiones y
no tienen niveles más altos de seguridad con respecto a RIPEMD-128 y
RIPEMD-160. [45]

Tiger Hashing 192 bits 1996 Es una función Hash en previsión de eficiencia para plataformas de 64 bits.
Tiger está diseñado usando el paradigma Merkle-Damgard, la función de
compresión usa una combinación de operaciones mezcladas con XOR y
adición/substración, rotaciones y búsquedas en la S-Box. Optimizado para
máquinas de 64 bits [34].

27
Al final los algoritmos de cifrado codifican los datos para ofrecer un nivel de protección contra
robo de los mismos y en la medida en que las computadoras son más potentes es más común ver
aplicaciones utilizando software de cifrado, variando los algoritmos para el diseño de dichas
aplicaciones con la finalidad de tener un cifrado más sólido buscando la creación e
implementación de aplicaciones resistentes a la exposición de riesgos. Para efectos de este
trabajo se describen los algoritmos de AES, SHA-512 y ElGamal.

2.5 AES

Este algoritmo de cifrado es utilizado de manera masiva por el sector privado y publicado como
estándar por la NIST, identificado como FIPS PUB-197, este algoritmo consiste en iteraciones que
emplean funciones invertibles donde los bytes se interpretan como campos finitos, conocidos
también como campos de Galois1. AES opera con bloques y a cada paso del algoritmo se le
denomina estado [51].

2.5.1 Estructura AES

La estructura de éste algoritmo consiste en una serie de rondas donde se realizan un conjunto de
cuatro transformaciones orientadas a bytes, el número de rondas depende del tamaño de la clave
como se puede observar en la tabla 2-3.

Tabla 2-3 Número de rondas en función de la longitud de clave [51]

Longitud de clave Tamaño de Bloque Número de Rondas


(Nk words) (Nb words) (Nr)
AES-128 4 4 10

AES-192 6 4 12

AES-256 8 4 14

Las transformaciones aplicadas son:


 SubByte
 ShiftRow
 MixColumn
 AddRoundKey

1
Campos de Galois son muy utilizados en la criptografía debido a que gracias a ellos existe un inverso
aditivo y multiplicativo que permite cifrar y descifrar en el mismo cuerpo Z k, eliminando los problemas de
redondeo o truncamiento de valores, como si tales operaciones de cifrado y descifrado se hubiesen
realizado en aritmética real [51].

28
2.5.2 Sub Bytes

Esta operación consiste en una transformación no lineal, donde se realiza una sustitución de cada
byte por otro byte establecido en la caja definida por la norma FIPS-197, como S-box.

Esta caja está basada en el inverso multiplicativo del byte que hay que transformar en GF (28)
módulo (x8 + x4 + x2 + x + 1), tomando sus bits como los coeficientes de un polinomio en GF (28);
en la operación de descifrado se invierte la transformación anterior, a través de la tabla inversa
mostrada en la norma.

2.5.3 ShiftRows

Esta operación consiste en un desplazamiento cíclico de bytes en cada fila, en AES la primera fila
queda sin cambios, la segunda fila se desplaza un byte a la izquierda, incrementando en uno el
número de desplazamientos por fila que se va recorriendo, esto es la fila n se desplaza de manera
circular izquierda por n-1 bytes, quedando el número de desplazamientos como se muestra en la
tabla 2-4.
Tabla 2-4 Número de Desplazamientos por Columna

Tamaño del Número de Desplazamientos


bloque Columna 1 Columna 1 Columna 2 Columna 3
128 bits (Nb=4) 0 1 2 3

En términos de este trabajo donde se manejan bloques de 128 los desplazamientos quedan
representados en la figura 2.7.

Figura 2.7 Función ShiftRows para bloque de 128 bits [51]

2.5.4 MixColumn

La función MixColumn consiste en multiplicar las columnas de bytes módulo x 4 + 1 por el


polinomio c(x), expresado de la siguiente forma:

29
c(x)= ‘03’x3 + ‘01’x2 + ‘01’x + ‘02’

Este polinomio es coprimo con x4 + 1, lo permite que la función sea invertible, ésta fórmula queda
expresada de forma matricial en la figura 2.8.

Figura 2.8 Matriz de MixColumn [51]

En esta matriz “c” representa el índice de la columna que se procesa. Cuando se desarrolla la
matriz cada byte nuevo de la matriz de Estado es una combinación de varios bytes de las distintas
filas que forman una columna específica.

2.5.5 AddRoundKey

Esta transformación consiste en aplicar una operación OR-Exclusiva entre la matriz de Estado que
proviene de la transformación anterior (MixColumn) y una subclave que se genera a partir de la
clave del sistema para esa ronda. El bloque resultante es la nueva matriz de estado para la
siguiente ronda, siendo en determinado caso el bloque de salida cuando se trata de la última
ronda. Esta transformación se expresa en la figura 2.9.

Figura 2.9 Ejemplo de AddRoundKey [51]

2.5.6 Expansión de Claves

Cabe señalar que AES incluye una función de Expansión de Clave, que permite derivar de la clave
de cifrado subclaves para cada ronda con la finalidad de permitir la resistencia a ataques. La
función de expansión depende del valor del tamaño de bloque y de los siguientes criterios:

30
 Usará una transformación invertible
 Proporcionar constantes dependientes de cada ronda que elimine la simetría
 El conocimiento de parte de la clave de cifrado no permitirá calcular muchos bits de otras
subclaves
 Proporcionar no linealidad que prohíba determinar diferencias en la subclave de cada
ronda a partir de diferencias de la clave de cifrado

El número de bits necesarios para generar las subclaves depende del número de rondas que se
apliquen al algoritmo, determinado de la siguiente manera:

No. De Bits Subclave= 4*Nk * Nb * (Nr + 1) → 32 * 4 * (10 + 1) = 1408 bits

Los bytes que conforman las subclaves para cada ronda se derivan de la clave principal, el ejemplo
se puede describir como un arreglo lineal mostrado en la figura 2.10.

Figura 2.10 Claves de Expansión

El proceso de expansión de claves se realiza siguiendo el algoritmo mostrado en la figura 2.11.

Una vez generadas las claves de expansión se procede a realizar la secuencia de las funciones
ShiftRow, SubByte, MixColumn y AddRoundKey en el orden establecido por el estándar dando
como resultado el cifrado del mensaje original.

El proceso de descifrado, consiste en sustituir las transformaciones utilizadas en el cifrado por las
inversas de sus operaciones: InvShiftRows, InvSubBytes e InvMixColumns e invertir el orden de
aplicación de dichas transformaciones. Aplicando dichos pasos se codifico de igual manera el
proceso de descifrado.

31
Figura 2.11 Pseudocódigo de Expansión de Claves [51]

2.6 Funciones Hash

La firma digital es un tipo de cifrado asimétrico del mensaje que se está firmando sin embargo su
principal inconveniente de éste tipo de algoritmos es la lentitud en medida que va creciendo el
mensaje a cifrar, para evitar esta situación la firma digital hace uso de funciones Hash (Fig. 2.12).
Una función Hash es una operación que se realiza sobre un conjunto de datos, en ocasiones
denominado resumen de los datos originales, de tamaño fijo e independiente del tamaño original
que además tiene la propiedad de estar asociado unívocamente a los datos iniciales, es decir es
prácticamente imposible encontrar dos mensajes distintos que tengan un resumen Hash idéntico
[41]. El método llamado por transformación de claves (Hash), permite aumentar la velocidad de
búsqueda sin necesidad de tener los elementos ordenados.

32
Figura 2.12 Funciones Hash [108]

2.6.1 Propiedades de las Funciones Hash

Una función Hash debe ser capaz de soportar todos los tipos conocidos de ataques derivados del
criptoanálisis para considerarse segura además de cumplir con las siguientes propiedades [52]:

 Unidireccionalidad.- Conocido un resumen Hash, debe ser computacionalmente imposible


encontrar el mensaje a partir de dicho resumen.
 Comprensión.- A partir de un mensaje de cualquier longitud, el resumen Hash del
mensaje debe tener una longitud fija.
 Facilidad de cálculo.- Debe ser fácil calcular la función Hash a partir de un mensaje.
 Difusión.- El resumen Hash debe ser una función compleja de todos los bits del mensaje,
esto es, si se modifica un solo bit del mensaje, el Hash deberá cambiar la mitad de sus bits
aproximadamente.
 Colisión simple.- Será computacionalmente imposible conocido el mensaje, encontrar
otro mensaje tal que la función Hash del primer mensaje sea igual al Hash del segundo
mensaje, esto se conoce como resistencia débil a las colisiones.
 Colisión fuerte.- Será computacionalmente difícil encontrar dos mensajes distintos de
forma que las funciones Hash sean iguales, esto se conoce como resistencia fuerte a las
colisiones.

33
Una característica importante del algoritmo es que dado un mensaje de tamaño arbitrario,
produce una salida de tamaño fijo, pero esto trae un grave problema, dado que la cardinalidad
del espacio de todos los mensajes posibles es mucho mayor que el número de combinaciones
distintas para un tamaño determinado de Hash, necesariamente existen diversos mensajes que
pueden producir el mismo resultado, aunque es computacionalmente imposible encontrarlos.

Existen varios algoritmos de resumen en criptografía, para efectos de este trabajo se consideró la
familia Secure Hash Algorithm (SHA), la cual es un sistema de funciones Hash criptográficas
relacionadas de la Agencia de Seguridad Nacional de los Estados Unidos y publicadas por el
Instituto Nacional de Estándares y Tecnologías (NIST) a través del estándar FIPS PUB 180-4
aprobado por la Secretaria de Comercio, este estándar es recomendado por la Administración
Federal de EEUU : Secure Hash Standard (SHS). Este estándar considera los algoritmos de la tabla
2-5.

Tabla 2-5 Propiedades de los Algoritmos de Seguridad Hash [51]

Algoritmo Tamaño del Tamaño del Tamaño de Tamaño de


mensaje Bloque (bits) Palabra Hash (bits)
(bits) (bits)
64
SHA-1 <2 512 32 160
64
SHA-224 <2 512 32 224
64
SHA-256 <2 512 32 256
128
SHA-384 <2 1024 64 384
128
SHA-512 <2 1024 64 512
128
SHA-512/224 <2 1024 64 224
128
SHA-512/256 <2 1024 64 256

Las diferentes variantes que existen se basan en un diseño algo modificado y rangos de salida
incrementados. El número que sigue a las siglas SHA específica la longitud en bits del Hashing
criptográfico que genera el algoritmo, sin embargo cada algoritmo puede ser descrito en dos
etapas:

 Preproceso
 Cálculo de Hash

2.6.2 Preproceso

Implica el tratamiento del mensaje en bloques de m-bits para ajustar los valores antes de realizar
el cálculo de la función Hash, consiste en rellenar un mensaje de entrada como se muestra en la
figura 2.13.

34
El número l
l bits del Mensaje 1 K-ceros expresado en 128
bits

Figura 2.13 Pasos del Pre proceso de la Función SHA-512 (Creación propia)

Como se observa el mensaje se expresa en bits, se agrega “1” como separador e inicio del
padding, posteriormente se anexan los ceros que sean necesarios para hacer el vector congruente
con 896 mod 1024, esto es:

l + 1 + k ≡ 896 mod 1024


l + 1 + k = C(1024) + 896 despejando => k = C(1024) + 896 - l -1

Para determinar C se realiza la siguiente operación:

r= l mod 1024
Si
r < 896 → C = │l /1024│
r >= 896 → C = │l /1024│ + 1

Lo anterior ayuda a determinar el número de ceros para realizar el padding del vector. Una vez
determinado esto se le agregan 128 bits que representan la longitud original del mensaje. Por
último se divide el vector en bloques de 1024 bits para que puedan ser procesados.

2.6.3 Cálculo del Hash

Para el caso de SHA-512, el tamaño de bloque es de 1024 bits cada uno representado como una
secuencia de 16 bloques de palabras de 64 bits; lo cual se obtiene después de haber realizado el
preprocesamiento se sigue la especificación del algoritmo:

For i=1 to N
{
1. Preparar el mensaje a computar, {Wt}:

Mt(i) 0 ≤ t ≤ 15
Wt =
σ1{512}( Wt-2) + Wt-7 + σ0{512}(Wt-15 ) + Wt-16 16 ≤ t ≤ 79

35
2. Inicializar las variables de trabajo a,b,c,d,e,f,g y h con el (i-1)st valor Hash
a = H0(i-1)
b = H1(i-1)
c = H2(i-1)
d = H3(i-1)
e = H4(i-1)
f = H5(i-1)
g = H6(i-1)
h = H7(i-1)

3. For t=0 to 79:


{
T1 = h + ∑1{512} (e) + Ch(e, f ,g) + Kt{512} + Wt
T2 = h + ∑0{512} (a) + Maj(a, b ,c)
h=g
g=f
f=e
e = d + T1
d=c
c=b
b=a
a = T1 + T2
}

4. Calcular el ith Hash intermedio del valor H(1):

H0(i) = a + H0(i-1)
H1(i) = b + H1(i-1)
H2(i) = c + H2(i-1)
H3(i) = d + H3(i-1)
H4(i) = e + H4(i-1)
H5(i) = f + H5(i-1)
H6(i) = g + H6(i-1)
H7(i) = h + H7(i-1)
}

Después de repetir los pasos del uno al cuatro de un total de N veces el mensaje resumen de 512
bits del mensaje M es:

H0(N) ‖ H1(N) ‖ H2(N) ‖ H3(N) ‖ H4(N) ‖ H5(N) ‖ H6(N) ‖ H7(N)

En este algoritmo se observa que se realiza una dispersión de los valores trabajados bit a bit por
medio de funciones lógicas y constantes indicadas en la norma.

36
2.7 Los Números en la Criptografía

Los términos matemáticos como anteriormente se han mencionado en este trabajo son muy
importantes ya que los algoritmos se basan principalmente en teorías matemáticas, de
información y números, siendo éstos últimos de gran importancia ya que la robustez de un
algoritmo descansa sobre cómo se generan los números para las llaves y el tamaño, los métodos
utilizados para generar números deben de ser elegidos de acuerdo a la necesidad del
criptosistema, ya que la calidad del método compromete la seguridad de un sistema [45].

Las técnicas utilizadas para generar números para las llaves empleadas son diversas, sin embargo
en cuanto más elevado sea el número de bits, más es el esfuerzo que se necesita para romperlos,
evitando con ello los ataques de fuerza bruta, en este caso se mide la calidad por la cantidad de
números. Por dar un ejemplo el algoritmo DES que tiene 256 posibles claves, suponiendo que se
dispusiera de un computador capaz de hacer un millón de operaciones por segundo se tardaría
más de 2200 años para probar cada una de las claves y si la clave anterior tuviera 128 bits, el
tiempo requerido sería de 1024 años [53].

2.7.1 El Problema del Logaritmo Discreto

El problema inverso a la exponenciación es el cálculo de logaritmos discretos. Dados dos números


a, b y el módulo n, se define el logaritmo discreto de a en base b módulo n como:

C=logb(a) (mod n)  a≡ bc (mod n)

Lo que representa una dificultad con el tiempo de cálculo de ésta naturaleza, al igual con
operaciones de exponenciación en grupos finitos; el esquema de ElGamal basa su resistencia en
ésta circunstancia para el manejo de llave pública. Para ello los conjuntos deben cumplir la
propiedad de que su módulo n sea un número muy grande con pocos factores (para el caso de
ElGamal son dos), éste algoritmo funciona si se conoce n y sus factores se mantienen en secretos
los cuales son número primos muy grandes que posteriormente se multiplican, por lo que es
necesario usar mecanismos eficientes para la realización de cálculos [50] .

2.7.2 Números Aleatorios

Son necesarios para generar secuencias cifrantes, claves y vectores de inicialización y números de
un solo uso, la calidad del método de generación de números aleatorios determina la seguridad

37
de un algoritmo, en general utiliza una fuente no determinista (fuente de entropia2) en conjunto
con una función de procesamiento para producir aleatoriedad de tal forma que nadie pueda
recrearla.

2.7.3 Números Primos

Los números primos son aquellos mayores a 1 y que solamente son divisibles entre 1 y entre ellos
mismos, cualquier número que puede expresarse como factor de otros números más pequeños
no es primo, la probabilidad de encontrar un número primo a medida de que éste se hace más
grande es menor. Un generador o raíz primitiva de un número primo es aquel valor que elevado a
todos los restos del cuerpo reducido módulo n, genera todo el cuerpo [54].

2.7.4 Números Trascendentes

Los número transcendente son números que no son expresables como fracción de dos números
enteros, aunque la parte decimal de algunos números racionales sea infinita, habrá una secuencia
que se repetirá de manera indefinida y que será periódica, en cambio los números irracionales
tienen partes decimales infinitas y no periódicas de secuencia impredecible.

Un número trascendente no puede ser descrito como la raíz de una fracción, lo que implica que
no son solución de una ecuación algebraica, por lo que se tiene entonces que un número
trascendente es irracional y no algebraico.

Dentro de los números trascendentes conocidos están e, √2 y π ; son número que aparecen
continuamente de manera natural al modelizar varios fenómenos como en el caso del número π ,
que aparece rutinariamente en ecuaciones que describen principios fundamentales del universo:
en la constante cosmológica, en el principio de incertidumbre de Haisenberg, en la ecuación de
campo de la relatividad general, en la Ley de Coulumb para la fuerza eléctrica, en la
permeabilidad magnética y en la tercera Ley de Kepler [55].

2
La entropía es la medida del desorden, la cual es proporcional a la longitud media de los mensajes que se
necesita para codificar una serie de valores de manera óptima dado un alfabeto cualquiera [77].

38
2.8 ElGamal

Es un esquema de llave pública basado en la exponenciación discreta sobre un grupo


multiplicativo de un cuerpo finito cuyas operaciones están basadas en el módulo de un número
primo, este procedimiento es usado para para cifrado o descifrado de información, así como para
la autenticación mediante la firma digital. La seguridad se basa en que la función utilizada es en
un solo sentido y en la dificultad de calcular un logaritmo discreto [56].

2.8.1 Algoritmo

El proceso que se lleva a cabo para la obtención de la firma esta baso en el Criptosistema de clave
pública ElGamal, descrito por Douglas Stinson [57]

1) Elegir un entero k tal que mcd (k, p – 1) = 1 y calcular K = α k (mod p).


2) Para proceso de transmisión de mensaje (M), se consideran dos usuarios, denominados A
(emisor) y B (receptor) y los elementos β (llave pública), α (primitivo o generador) y a es
privado.
Si tenemos
β= αa mod p

Donde p, α y β son conocidas,

β= αa mod p

logα(αa) = logα β -> Se aplica el problema del logaritmo entero,

α = logα β -> Quedando ésta operación equivalente y se calcula el α

3) h=sha512(M) -> Valor Hash del mensaje a enviar


4) y1= αk* mod p dónde k= p-1
5) y2=M β2k mod p
6) γ= αk mod p -> dónde k debe tener inverso
7) δ= (h- a1β1)k-1 mod p-1
8) F= β1γγδ
9) La firma está determinada por ( y1, y2 y F) y se transmite al receptor (B)

39
Para la validación de la firma del mensaje m, el usuario B debe comprobar que se cumple la
siguiente igualdad:

x=y2 (y1a2) mod p


αh mod p = F

Dónde a2 es la clave pública del usuario A y, por lo tanto, disponible por el usuario B. La
verificación es cuando el receptor compara el valor Hash arrojado del mensaje obtenido, con el
valor Hash enviado por el emisor, en caso de que la igualdad se cumpla, el usuario B aceptará
como auténtico el mensaje que le ha enviado el emisor. De lo contrario, el mensaje no será válido
[56].

40
Capítulo 3 Esquema de Cifrado Híbrido y Pruebas

En el presente capítulo se hace la propuesta de un esquema de cifrado híbrido, basado en los


principios de AES, SHA-512 y ElGamal, buscando la forma de integrar las fortalezas de los
algoritmos en uno solo.

3.1 Diseño del Esquema Criptográfico Híbrido

Con la intención de hacer más comprensible la base del diseño del esquema criptográfico, se
retoma el concepto de lo que es un documento digital el cual se integra a partir de los tipos de
criptografía simétrica, asimétrica y Hashing, con la finalidad de extraer las ventajas de cada uno de
ellos, haciendo con esto un esquema de cifrado híbrido (Fig. 3.1), el cual considera un proceso de:

 Cifrado de mensaje
 Determinación de valor Hash del mensaje original (Texto claro)
 Cifrado de llave simétrica y
 Un cifrado para firma digital

Figura 3.1 Esquema de cifrado hibrido propuesto (Creación propia)

41
Con respecto a la figura 4.1, la propuesta consiste en:

1. Se extrae el valor Hash del documento con texto claro aplicando el algoritmo SHA-512
2. En base a un documento con texto claro se procede a encriptar con AES, el cual es un
algoritmo de cifrado simétrico.
3. Cifrado el documento, la llave simétrica se cifra de manera asimétrica con la llave pública
del receptor y con la llave privada del emisor y se determina la firma digital empleando
ElGamal.
4. Se envían al receptor el mensaje cifrado, el valor Hash del documento, el cifrado de la
llave simétrica y la firma determinada.
5. El emisor descifra con ElGamal y su llave privada la llave simétrica del documento cifrado
y con la llave pública del emisor calcula la firma para compararla con la enviada si son
iguales la firma es válida y garantiza la integridad de la llave enviada así como la
autenticidad del firmante
6. Con la llave obtenida descifra el documento cifrado con AES y determina el valor Hash con
SHA-512 esto es H’
7. Se compara H con H’ si son iguales se garantiza la integridad del documento digital. En
caso de que no sean iguales es señal de que el documento fue alterado o bien la llave
pública no corresponde con la llave privada del firmante.

Ya determinado el esquema se procede al desarrollo de cada uno de los algoritmos mencionados


utilizando el lenguaje C# de la Suite de Visual Studio, para después hacer la integración del
sistema propuesto.

3.2 Desarrollo de AES

Para efectos de este trabajo se consideró trabajar bloque de 128 bits, correspondiente a 10
rondas a ejecutar dentro del proceso a desarrollar de AES, representado en la figura 3.2 el
proceso inicia con la entrada del texto a cifrar acomodándolo en una matriz de texto de 4 x 4 y así
mismo se genera la expansión de claves a trabajar en cada estado del algoritmo, una vez realizada
la expansión de llaves se realiza una transformación inicial AddRoundKey con el bloque de
entrada y la clave de cifrado inicial y se procede a realizar las nueve rondas siguiendo la secuencia
de funciones: ShiftRow, SubByte, MixColumn y AddRoundKey.

42
Figura 3.2 Esquema de Cifrado AES [58]

La función AddRounKey realiza una operación XOR entre el bloque del mensaje y la llave inicial ,
en la función SubByte se realiza una transformación lineal sustituyendo el valor tratado por el
valor correspondiente en la caja S-Box especificada en la norma, en ShifRows, dependiendo de la
fila tratada se realizan los corrimientos correspondientes a la izquierda, en MixColumns cada
columna se multiplica por un polinomio constante por último se realiza nuevamente
AddRoundKey pero en lugar de la llave inicial se usa la subllave correspondiente a la iteración
realizada; dando como resultado el cifrado del mensaje en un bloque de 128 bits.

Para la codificación del algoritmo se definieron variables, constantes y arreglos para el


almacenamiento de la expansión de llaves y se declararon las tablas para sustitución de bytes,
tanto para el cifrado y el descifrado, así como el correspondiente al polinomio de MixColumns. El
proceso se realizó primeramente mostrando los valores de la matriz de estado en cada una de las
rondas con la finalidad de comparar el resultado obtenido con el resultado del ejemplo incluido
en la norma con la finalidad de comparar la funcionalidad del código (Fig. 3.3).

43
Figura 3.3 Proceso de Cifrado AES

Realizado el proceso de cifrado, se procede a realizar el proceso de descifrado, se sustituyen las


transformaciones del cifrado por las inversas de sus operaciones: InvShiftRows, InvSubBytes e
InvMixColumns e invertir el orden de aplicación de dichas transformaciones, dando como
resultado el mensaje descifrado (Ver figura 3.4). El ejemplo mostrado ya incluye la reducción de
código al omitir la presentación de los resultados intermedios, considera los valores que norma
incluye con la finalidad de comprobar el resultado del procesamiento del programa elaborado,
observando que el mensaje de entrada dio como resultado una matriz con los valores cifrados y
en el momento de realizar el proceso de descifrado se observa que el resultado obtenido es
idéntico a la matriz de entrada que se proporcionó.

Comprobado el proceso de cifrado y descifrado AES, se procede a realizar la aplicación con valores
diferentes al ejemplo mostrado y corroborar su funcionamiento, para esto se definen los valores
con los que se trabajará:

 Bloque de mensaje de 128 bits


 Tamaño de clave de 128 bits

44
Figura 3.4 Pantalla de Cifrado Y Descifrado AES

Dado que el bloque a trabajar se definió con un tamaño de 128 bits, el mensaje y la clave pueden
variar entre 1 y 16 caracteres, situación que se debe considerar en el llenado de las matrices a
trabajar en el proceso, en caso de que no se lograra la longitud máxima, los lugares restantes
serán llenados por ceros, garantizando el tamaño de una matriz de 4 x 4.

Las pruebas de funcionamiento se realizaron sobre diferentes datos dentro de los cuales se
incluyó el ejemplo de la norma de FIPS 197, con la finalidad de comprobar de manera parcial el
funcionamiento y la relación con los resultado intermedios del diseño una vez comprobado se
realizó el desarrollo de la implementación de AES en C# , finalmente en la figura 3.5, como se
puede observar un ejemplo donde el usuario ingresa un mensaje a cifrar y la clave, al oprimir el
botón cifrar se procede a la transformación correspondiente al proceso y de la clave original se
crea la expansión de claves a trabajar en el proceso, como resultado devuelve un bloque de datos
de 128 bits, en el proceso de descifrado se obtiene el mensaje cifrado y teclea la misma llave y se
aplican las funciones inversas y su orden correspondiente, para obtener el mensaje original.

45
Figura 3.5 Ejemplo de cifrado y descifrado correcto AES

Cuando en el proceso de descifrado se da una llave diferente a la utilizada el mensaje que se


visualiza es un mensaje diferente al enviado e inclusive sin sentido (Fig. 3.6).

Figura 3.6 Ejemplo de cifrado y descifrado incorrecto AES

Una vez comprobado el proceso de AES se procede con el desarrollo para el cálculo de funciones
Hash.

46
3.3 Desarrollo de Funciones Hash

En este apartado se realiza la codificación correspondiente al algoritmo SHA-512, donde se lleva a


cabo la declaración de variables, constantes y tablas utilizadas para su desarrollo siguiendo a
grandes rasgos los procesos indicados en la figura 3.7.

Figura 3.7 Proceso para el cálculo del valor Hash (Creación Propia)

El preproceso se realiza para preparar a cadena de entrada de tal forma que quede en múltiplos
de 1024 bits, una vez tratada la cadena se inicia con el algoritmo descrito por la FIPS 180-4,
trabajando con las constantes y valores iniciales que indica la norma para obtener el valor Hash
correspondiente a la cadena de entrada.

Para probar la funcionalidad de la aplicación primeramente se colocó la cadena corta que incluye
la norma para comparar los resultados obtenidos siendo estos los especificados en la figura 3.8.

Figura 3.8 Cálculo del valor Hash

Como se observa la cadena de entrada es “abc” con la intención de analizar la cadena de salida y
los resultados intermedios, iniciando con estos últimos para verificar que los resultados sean
idénticos a los especificados en la norma y validar los procesos programados.

47
Lo anterior permitió gestionar los errores encontrados y así trabajar en ellos visualizar el hasta
obtener el resultado esperado, usando los datos válidos, la prueba realizada en primera instancia
fue con la cadena corta, una vez comprobada, se procedió a realizar la prueba con la cadena larga
también incluida en la norma, obteniendo los resultados en la figura 3.9.

Figura 3.9 Ejemplo Hash con cadena larga

Durante el proceso existe un valor Hash que se inicializa con los primeros 64 bits de la parte
fraccionaria de la raíz cuadrada de los primeros ocho números primos y conforme se realizan las
iteraciones correspondiente van cambiando esos valores intermedios, sin embargo el valor inicial
nunca cambia, lo que puede considerarse un área de oportunidad al modificar esos ocho valores,
propuesta que se desarrolla en este trabajo y su principal aportación descansa en el hecho de
incluir un proceso adicional para determinar el valor inicial de la Hash.

La modificación implementada consiste en tomar como valores iniciales la parte fraccionaria del
producto del valor de la llave y el número trascendente π, con esto el proceso de determinación
de los valores iniciales Hash no serán constantes como en la norma, sino dinámicos y
dependientes de la llave utilizada.

Para la generación de los nuevos valores iniciales Hash, se tomaron los primeros 192 números
hexadecimales fraccionarios del producto de π y la llave derivada de AES y posteriormente los
valores se separan de 16 en 16 dígitos hexadecimales para formar cada uno de los valores Hash
iniciales, determinados los valores se aplican los pasos especificados en el algoritmo para calcular

48
el valor Hash Final ésta técnica se conoce como Hashing multiplicativo y consiste en transformar
el valor de la llave (Fig. 3.10).

Figura 3.10 Creación de valores iniciales Hash

Al realizar la prueba correspondiente se puede verificar que sea la cadena que sea se obtiene su
correspondiente valor Hash, no afectando de manera significativa la complejidad del algoritmo,
sino sólo el suministro del valores iniciales del Hashing, generando el resultado mostrado en la
figura 3.11.

Figura 3.11 Cálculo Hash con modificación

Las funciones Hash evitan valores duplicados y son difícilmente de encontrar, sin embargo con la
modificación implementada, aunque aparentemente se ve un proceso sencillo ayuda a que la
probabilidad de que exista una colisión sea menor.

49
3.4 Desarrollo del ElGamal

ElGamal es un mecanismo criptográfico que permite trasmitir un mensaje de tal manera que el
receptor puede determinar el origen del mensaje y confirmar que éste no ha sido alterado
cumpliendo con las características de autenticación de origen, no repudio e integridad, a través
de la firma digital (Fig. 3.12), la seguridad de éste algoritmo se basa en la dificultad del problema
del logaritmo discreto.

Figura 3.12 Esquema General de Firma Digital (Creación propia)

El proceso de ElGamal se realiza básicamente en las etapas que se describen en la figura 3.13.

Figura 3.13 Etapas de la firma ElGamal (Creación propia)

50
3.4.1 Generación de Llaves

La primera etapa comprende la generación de llaves de las cuales se considera una llave privada
cuyo valor puede ser cualquier número que dependerá sólo del emisor y una pública la cual se
obtiene a partir de la llave privada. Para ello se genera un numero primo (p) a partir del producto
de dos números primos, una constante par (c) más 1, para determinar el valor de la constante par
se empieza desde el número 2, obtenido el producto, éste se divide entre cada uno de los
números primos que hay entre 2 y la raíz cuadrada del producto, si el módulo resultante es
congruente con 1 se incrementa la constante en dos hasta que los módulos obtenidos sean
diferentes de 1, garantizando con esto que el producto obtenido es un número primo construido
a través de otros primos, tal que el problema del logaritmo discreto sea intratable (Fig. 3.14).

Figura 3.14 Determinación de Primitivo y el Alfa

Una vez calculado el valor p se propone un elemento α que pertenezca al grupo multiplicativo y
sea un generador de números primos (primitivo) de tal forma que al número generado se le resta
un uno y se obtienen sus factores, posteriormente se calcula:

α(p-1)q/q mod p

Si el módulo obtenido no es congruente con 1, entonces se dice que α es un generador de módulo


p-1 (Fig. 3.15).

51
Figura 3.15 Validación Alfa Propuesto

A pesar de que la operación aparentemente es sencilla al elevar un número a una potencia recae
en complicaciones de desbordamiento, debido a que es un número grande por lo que se tiene la
necesidad de implementar el algoritmo Square and Multiply (Fig. 3.16), el cual se basa en
convertir el número de la potencia en binario, se hace la multiplicación modular de z al cuadrado
la cual es inicializada en 1 y si el bit de c en ese momento es 1 se hace la multiplicación modular
de z por la base de la potencia.

Figura 3.16 Algoritmo Square And Multiply [57]

52
De los ejemplos vistos en la figuras 3.14 y 3.15 los números primos y el alfa fueron tomados como
ejemplo para validar los procesos, ya integrados los procesos de generar primo y proponer alfa, la
aplicación genera los datos requeridos para su uso, creando el alfa adecuado para el primo
generado como se observa en la figura 3.17.

Figura 3.17 Determinación Factores Primos y del generador Alfa

Obtenido el valor de la llave privada, del primo y del alfa generado se procede al cálculo de la
llave pública a través de
a mod p
En la figura 3.18 se obtiene primero la comprobación del cálculo con los datos incluidos en libro
de Douglas Stinson.

Figura 3.18 Cálculo de la Llave Pública

53
Integrando los procesos anteriores se obtiene lo expresado en la figura 3.19. Señalando que el
dato que se da para los cálculos es la llave privada del usuario y que ésta sólo dependerá de él.

Figura 3.19 Cálculo Llave Pública (Procesos Integrados)

La aplicación realizada sirve para determinar un número primo que se usa para el cálculo de la
llave pública, garantizando la primalidad del número a través del teorema fundamental de la
aritmética el cual indica que un número es primo sólo si éste no es divisible por ningún número
primo menor o igual que su raíz cuadrada y aprovechar con esto las propiedades del número y
con ello la dificultad de factorizar ese número en cualquiera de sus factores primos ya que no es
un proceso sencillo.

3.4.2 Cifrado

Para el cifrado, utilizando el criptosistema de ElGamal se considera la cuádrupla (p, α, a, β) donde:

 β = αa mod p, conocida como llave pública


 α es el primitivo generado
 a es la llave privada
 p, α y β son conocidos
 x es el mensaje a enviar

54
Se determina un número aleatorio k y se procede a computar los valores, como se muestra en el
algoritmo de la figura 3.20.

Figura 3.20 Pasos para Cifrado ElGamal (Creación propia)

Obtenida la dupla (y1, y2) se procede el envío al destinatario, realizada la aplicación del cifrado se
pueden observar en la figura 3.21 los resultados obtenidos.

Figura 3.21 Cifrado ElGamal

55
3.4.3 Descifrado

Para recuperar el mensaje el receptor debe usar su llave privada en base a los pasos descritos en
el algoritmo de la figura 3.22.

Figura 3.22 Algoritmo de Descifrado ElGamal (Creación propia)

Aplicando estos pasos se obtiene el mensaje original, auxiliándose del algoritmo de Euclides
Extendido para obtener el inverso de (y1a)-1.

Para descifrar el mensaje el destinatario debe usar su llave privada y hacer la recuperación del
mensaje en base a la tupla enviada por el emisor (Fig. 3.23).

Figura 3.23 Descifrado El Gamal

56
Probados los módulo de cifrado y descifrado se integran para formar el criptosistema basado en
ElGamal representado en la figura 3.24.

Figura 3.24 Criptosistema ElGamal

Se comparan los valores correspondientes al mensaje, que en éste caso los valores son iguales
validando con esto la firma.

3.5 Resultados

Realizadas las aplicaciones de manera independiente se procede a la integración de los módulos


de AES, SHA-512 y ElGamal en una sola aplicación, obteniendo con ello un esquema de
comunicación segura.

Para el diseño de la interfaz se utilizó el IDE de C#, aprovechando la sencillez de su uso, la


familiaridad que tiene C++, compatibilidad con XML para interacción con componentes basados
en tecnología Web pero sobre todo la seguridad en el manejo de datos, al validar que
efectivamente los tipos de datos que se usan correspondan a las funciones que se crean o bien a
las operaciones matemáticas empleadas, pero sobre todo de que en C# existe un rango más
amplio para la representación de números, lo cual es importante en la criptografía ya que entre
más grande se trabaje el valor de las llaves es mayor la seguridad de la información.

La pantalla de la figura 3.25 se muestra sólo la presentación del trabajo desarrollado.

57
Figura 3.25 Pantalla de Presentación

Posteriormente se ofrece al usuario las acciones que puede realizar el usuario en éste sistema en
las cuales se considera, generar la llave pública, cifrar datos o bien descifrar los datos obtenidos
por un emisor (Fig. 3.26)

Figura 3.26 Pantalla de Menú

58
En la opción de generar llaves (Fig. 3.27) el usuario genera la llave pública para el sistema
asimétrico, con la finalidad de que pueda ofrecerla a los usuarios que desean compartir la
información de una manera segura y que los datos enviados se cifren dicha llave y sin tener la
necesidad de compartir la llave privada.

Figura 3.27 Generación de Llave Pública

La figura 3.28 se muestra la secuencia que se realiza en el cifrado, como se observa el usuario
inicia con la introducción del mensaje del cual se hace un resumen a través de la función Hash
SHA-512 generando un resumen de 512 bits, al mismo tiempo el mensaje es cifrado de manera
simétrica utilizando AES, en la parte para datos de firma de introducen los datos de la llave
pública del receptor para realizar el cifrado de la llave utilizada en el cifrado del mensaje y con la
llave privada del emisor se realiza la firma del mensaje.

Realizadas las operaciones de cifrado se obtiene una serie de valores que son enviados al
receptor, entre ellos el documento cifrado, el valor Hash y valores de seguridad correspondientes
a la llave pública del emisor y los valores que representan la firma del emisor (Fig. 3.28).

59
Figura 3.28 Cifrado de Datos

El receptor para acceder al documento realiza las funciones especificadas en la figura 3.29, para
obtener la llave de descifrado del mensaje primero tiene que descifrar la llave del mensaje con su
llave privada, obtenida la llave simétrica descifra el mensaje, con el mensaje realizar el cálculo del
valor Hash de éste mismo y compara con el valor enviado por el emisor, si no son idénticos existe
el indicio de que el documento enviado fue alterado, dejando en duda la integridad del mismo,
pero en caso de ser idénticos se garantiza la integridad del mensaje al comprobar que no fue
alterado.

Otro proceso que se realiza es verificar la firma con la llave pública del emisor se compara la firma
enviada con la calculada y si los valores de la firma no son iguales la firma no es válida, significa
que existen problemas de autenticación, existiendo el caso de que receptor este usando una llave
ya sea pública o privada que no corresponden o bien es el indicio de que el documento enviado

60
fue alterado, dejando en duda la integridad del mismo, en caso contrario se valida el origen de la
información.

Figura 3.29 Obtención de la Información Enviada

El desarrollo de este trabajo está basado en un enfoque práctico para mantener la seguridad de la
información, el desarrollo consta de etapas en las cuales se realizó la validación de las funciones
con el fin de cumplir con los requisitos especificados en el diseño de la solución y las restricciones
de entrada y salida de información específica de cada caso basado en la consulta de las normas.

El trabajo está conformado por varios métodos y funciones para realizar los procesos
especificados en el algoritmo híbrido planteado que considera como algoritmo simétrico a AES y

61
como asimétrico ElGamal derivando con ello un sistema de comunicación que integra la función
Hash SHA-512 y una firma digital logrando resultados especificados en la tabla 3-1.

Tabla 3-1 Resultados Obtenidos

Servicio de Seguridad Resultado Mecanismo Utilizado

Autenticación La identidad de los involucrados en Algoritmo de encriptación


la comunicación queda acreditada, asimétrica (ElGamal)
garantizando la identidad de los
participantes.
Confidencialidad La información contenida en el Algoritmo de encriptación
mensaje es protegida para su envío simétrica (AES)
por la red al mantenerse oculta en el Algoritmo de encriptación
envío y sólo el receptor designado asimétrica (ElGamal)
puede descifrar el mensaje.
Integridad Verifica que el contenido del Función Hash (SHA-512)
mensaje enviado no se encuentre
alterado, en caso de ser alterado el
valor enviado por el emisor va a
diferir del calculado por el receptor
reflejando con ello que el
documento no es el mismo
No repudio Garantiza la identidad del firmante y Firma Digital (ElGamal)
el emisor del mensaje no puede
desconocer el envío de la
información

En base a los términos tratados en la tabla 3-1 se dice que el esquema de comunicación que se
desarrolló en éste trabajo permite la comunicación segura de tal forma de que si el mensaje
enviado es interceptado, el atacante difícilmente lo podrá decodificar y que los mecanismos
empleados, permiten cumplir con las disposiciones que rigen la firma electrónica de manera legal
al cumplir con la integridad, confiabilidad, confidencialidad y no repudio que demanda un
esquema de seguridad.

62
Capítulo 4 Conclusiones y Trabajos a Futuro

Finalmente en este apartado, se hace un análisis de los resultados obtenidos, enfatizando la


importancia de los sistemas criptográficos hoy en día para garantizar la seguridad de nuestra
información

4.1 Conclusiones

En el trabajo “Firma Digital Basada en Funciones Hash y un Algoritmo Criptográfico Híbrido” se


desarrolló como una aplicación computacional bajo el lenguaje de C#, sistematizando el proceso
de cifrado de AES, la determinación de un valor Hash de una llave y la creación de una firma
digital generada mediante el criptosistema asimétrico ElGamal, buscando mejorar y mantener un
control eficaz en la seguridad de la información que envía a través de internet.

Durante el periodo de realización de éste trabajo se llevaron a cabo una serie de actividades que
permitieron alcanzar el logro de los objetivos planteados al diseñar una propuesta de software de
firma digital basada en un algoritmo criptográfico híbrido sustentado en métodos formales de
especificación en su desarrollo y una implementación al modificar los valores iniciales del proceso
Hash y hacerlos dependientes de la llave de cifrado usada para su fortalecimiento, que fue la
principal aportación del trabajo además de hacer una variación también disminuye la probabilidad
de que se presente una colisión al determinar el valor Hash.

La utilización de métodos formales ayuda a lograr especificaciones correctas y en pocos pasos,


manteniendo los requerimientos desde principio hasta el fin y el uso de la firma valida la
información compartida a través de medios informáticos aportando un valor agregado y más
cuando se implementan cambios en la forma de usar las herramientas, incrementando aún más la
seguridad que por aplicaciones comerciales o librerías comunes a las que se tienen acceso,
personalizando la aplicación.

La criptografía desde tiempos remotos hasta la actualidad ha tenido un peso enorme y ha influido
en el curso de la historia en ámbitos de economía, finanzas, política y militar y ha ido
evolucionando con el paso del tiempo, hoy en día lo más usado es el cifrado hibrido acompañado
de la firma digital con la finalidad de incorporar elementos que nos permitan garantizar la
seguridad y al mismo tiempo alinearnos a la parte legal, variando sólo las técnicas empleadas y las
implementaciones que uno como programador realice para hacer único el criptosistema.

63
Otro aspecto a cuidar es la eficiencia en los criptosistemas, ya que puede ser muy seguro pero
puede consumir muchos recursos computacionales que se pueden reflejar de manera económica

Finalmente se concluye que los criptosistemas son seguros sin embargo la parte que se puede
considerar vulnerable es el factor humano, en el cual recae la responsabilidad de un mal diseño y
que en vez de proteger haga más vulnerable un sistema al desconocer las fallas del mismo, por
otro lado éste factor es considerado como el eslabón más débil dentro de un esquema de
seguridad y se debe en gran medida a la falta de capacitación en cuanto al uso de tecnología y
falta de cultura de seguridad información lo que es una amenaza que ha ido en aumento al contar
con empleados negligentes o inconscientes lo que puede provocar la pérdida de información de
manera involuntaria o bien otro problema que se presenta es el fraude que es otro punto
vulnerable porque aunque un criptosistema sea excelente y extremadamente seguro, sino se
cuenta con la discreción y lealtad de los usuarios se puede lucrar con la información para
beneficio propio.

Las aplicaciones que requieren estándares basados en seguridad han sido mejoradas, las bases de
la seguridad dependen de la fuerza criptográfica de la relación de las claves en el certificado, la
implantación adecuada de las aplicaciones de PKI y del control de la llave utilizada para firmar el
certificado por un usuario o entidad final, esto con la finalidad de establecer la infraestructura
necesaria para la seguridad del comercio electrónico y la confianza para diferentes sectores como
salud, negocios, educación y gobierno, buscando crear confianza y seguridad en el uso de
herramientas tecnológicas que tenemos a nuestro alcance, con el objeto de que nuestra vida
cotidiana se vuelva más sencilla y de mejor calidad.

64
4.2 Trabajos a Futuro

El esquema de Firma Digital Basa en Funciones Hash y un Algoritmo Criptográfico Híbrido satisface los
requerimientos más importantes de la seguridad sin embargo surge la consideración de trabajos que
se pueden llevar a cabo en un futuro, donde se pueda robustecer la seguridad, al implementar lo
siguiente:

1. Con respecto al cifrado simétrico aumentar la longitud de la llave a 256 bits e implementar
AES-256.
2. Implementar AES-256 pero con permutación variable
3. Para el tratamiento de la llave de AES se considera una longitud de 16 caracteres en caso de
no utilizar ese tamaño, la matriz de complementa con ceros. La implementación consistiría
en desarrollar una estrategia de tal forma que en lugar de llenar con ceros se utilicen los
valores establecidos de caja SBOX de la norma, el complemento de la Llave utilizada haría
más fuerte el cifrado.
4. Hacer dependiente el valor de las constantes trabajadas en el algoritmo Hash, sustituyendo
los valores utilizados en la norma por valores calculados con el uso de la llave asimétrica y un
número trascendente dando lugar a la disminución de la probabilidad de que se presente
una colisión.
5. El criptosistema además de permitir el uso de estrategias para el manejo de datos seguros,
consume recursos haciendo de esto un área de oportunidad para realizar mediciones de
desempeño y analizar el uso de variables y estructuras de tal forma de que se pueda adaptar
el sistema en una arquitectura paralela con el fin de optimizar los recursos computacionales
a través de identificación de módulos concurrentes para su ejecución.
6. Incrementar el tamaño del número primo en el sistema asimétrico.

65
Referencias

[1] M. J. Viega Rodríguez y B. Rodríguez Acosta, «Documento Electrónico y Firma Digital.


Cuestiones de seguridad en las nuevas formas documentales,» Mayo 2005. [En línea].
Available: http://mjv.viegasociados.com/wp-content/uploads/2012/07/Libro.pdf. [Último
acceso: 05 Mayo 2014].

[2] A. A. Reyes Krafft, La Firma Electrónica y las Entidades de Certificación, 2002.

[3] I. S. Ayestarán, Febrero 2001. [En línea]. Available:


http://ww.edc.revistas.csic.es/index.php/redc/article/download/33/96.

[4] Symantec, «Protect the Entire Online User Experience with Always On SSL,» Symantec
Enterprise, 28 Febrero 2011. [En línea]. Available:
http://www.symantec.com/page.jsp?id=always-on-ssl#. [Último acceso: 26 Febrero
2015].

[5] S. Lu y S. A. Smolka, «Model checking the secure electronic transaction (SET) protocol,» de
In Mdeling, Analisys and Simulation of Computer and Telecommunication Systems, 1999.

[6] S. T. Kent, Internet Privacy Enhanced Mail, New York, USA: ACM Press/Addison-Wesley
Publishing Co., 1998, pp. 295-318.

[7] S. Garfinkel, Pretty Good Prvacy, Washington, DC: O'Reilly Media, Inc, 1995.

[8] Autoridad Certificadora del Poder Ejecutivo (AC), «Gobierno del Estado de Guanajuato,»
25 Agosto 2006. [En línea]. Available: http://www.eguanajuato.gob.mx/ . [Último acceso:
31 marzo 2014].

[9] L. I. Enciso, «La implementación de la Firma Electrónica en México,» Economía Informa,


nº 369, pp. 97-103, Julio-Agosto 2011.

[10] Comisión de las Naciones Unidas para el Derecho Mercantil Internacional (CNUDMI),
«Fomento de la confianza en el comercio electrónico: cuestiones jurídicacs de la
utilización internacional de métodos de autenticación y firma electrónicas,» Naciones
Unidas, Viena, 2009.

[11] International Telecommunication Union (ITU), «E-commerce and Electronic Signatures,»


ITU, 28 Agosto 2001. [En línea]. Available: http://www.itu.int/ITU-D/ecdc/about.html.

66
[Último acceso: 5 Marzo 2015].

[12] Organisation for Economic Co-operation and Development, Cryptography Policy (The
Guidelines and the Issues), 2 ed., vol. 49977, París, France, París: OECD Publications, 1998.

[13] International Organization for Standardization, «ISO Central Secre,» International


Organization for Standardization, Octubre 2010. [En línea]. Available:
http://www.iso.org/iso/home/about.htm. [Último acceso: 5 Marzo 2015].

[14] M. L. Valenzuela Rivera, «Firma Digital Consideraciones Jurídicas,» Seguridad, Cultura de


prevención para ti, pp. 65-73, 2007.

[15] Yerbabuena Software, «Athento,» [En línea]. Available: http://www.athento.com/firma-


digital/. [Último acceso: 17 Noviembre 2013].

[16] M. G. Calderón Martínez, «Seguridad de la Firma Electrónica,» Derecho Informàtico,


Noviembre Noviembre.

[17] 2007. [En línea]. Available:


http://www.oas.org/juridico/spanish/mesicic2_mex_VIIG_bg_gd_sp.pdf.

[18] Instituto Politécnico Nacional, «Implementará IPN Firma Electrónica Avanzada en sus
Procesos Administrativos,» Gaceta Politécnica, vol. 16, nº 1065, p. 7, 05 marzo 2014.

[19] Symantec Corporation, «Intenet Security Threat Report 2014 Volume 19,» Symantec
Corporation, CA,USA, 2014.

[20] Norton by Symantec, «Norton by Symantec,» U.S. Department of Defense Cybersecurity


Conference, 2012. [En línea]. Available: http://now-
static.norton.com/now/en/pu/images/Promotions/2012/cybercrimeReport/NCR-
Country_Fact_Sheet-Mexico.pdf. [Último acceso: 17 Febrero 2015].

[21] Karpersky Labs, «"Global IT Security Risks 2012",» [En línea]. Available:
http://swgu.ru/sg40r10. [Último acceso: 17 Noviembre 2013].

[22] Ernest & Young, 2013. [En línea]. Available:


http://www.ey.com/Publication/vwLUAssets/XV_Encuesta_Global_Seguridad_de_la_Info
rmacion/$FILE/XV_Encuesta_Global_de_Seguridad_Informacion.pdf.

[23] S. Mariuta, «Methods to Increase Search Performance for Encrypted Databases,» de


International Conference Emerging Markets Queries in Finance and Business, Romania,
2012.

67
[24] A. L. Mesquida y A. Mas, «Implementing information security best practices on software
lifecycle processes: The ISO/IEC 15504 Security Extension,» Computers & Security, vol. 48,
pp. 19-34, February 2015.

[25] J. Mouna, R. Latifa Ben Arfa y A. Anis Ben, «Classification of Security Threats in
Information Systems,» de 5th Internattional Conference on Ambient Systems, Networks
and Technologies (ANT-2014), Tunisia, 2014.

[26] V. Rohit y R. Sushmita, «Security Services Using Crowdsourcing,» de The 5th International
Conference on Ambient Systems, Networks and Technologies (ANT-2014), the 4th
International Conference on Sustainable Energy Information Technology (SEIT-2014),
India, 2014.

[27] G. Cesare y D. Daniel, «Communications, Information, and Cyber Security in Systems-of-


Systems: Assessing the Impact of Attacks through Interdependency Analysis,» de 2014
Conference on Systems Engineering Research, USA, 2014.

[28] S. A. Tovar Ramírez, J. Velázquez López y G. Gallegos García, «Simulación del Estandar de
cifrado Avanzado para VoIP,» Software Guru, pp. 46, 48, 2012.

[29] ISO/IEC, «ISO/IEC 17799Tecnología de la Información - Técnicas de seguridad - Código


para la práctica de la gestión de la seguridad de la información,» Guía 2:2005.

[30] J. Barrón Vidales, Diseño e Implementación de un Esquema de Cifrado Híbrido Basado en


DHIES, México, D.F., 2008.

[31] Security Standards Council (PCI), «Norma de seguridad de datos(DSS) de la industria de


tarjetas de pago (PCI) y normas de seguridad de datos para las aplicaciones de pago (PA-
DSS),» Enero 2014. [En línea]. Available:
https://es.pcisecuritystandards.org/_onelink_/pcisecurity/en2es/minisite/en/docs/PCI_D
SS_v3_Glossary_ES-LA.pdf. [Último acceso: 15 Marzo 2015].

[32] «Genbeta,» 29 Mayo 2011. [En línea]. Available:


http://www.genbeta.com/truco/esteganografia-oculta-mensajes-dentro-de-un-archivo.
[Último acceso: 15 Mayo 2014].

[33] L. San Juan, «Criptografía I».

[34] Septeimbre 2013. [En línea]. Available: http://www.cert.fnmt.es/popup.php?o=faq).

[35] G. Orozco Martínez y J. L. Nuñez Becerra, Septiembre 2006. [En línea]. Available:

68
http://patux.net/downloads/crypto/crypto.pdf. [Último acceso: 1 Junio 2014].

[36] Utad Digital Signature Act, «Utah Code $$ 46-3101 to 46-3-504,» Utad Digital Signature
Act, 1995. [En línea]. Available: http://www.jus.unitn.it/users/pascuzzi/privcomp97-
98/documento/firma/utah/udsa-1.html. [Último acceso: 22 Marzo 2015].

[37] Cámara de Diputados del H. Congreso de la Unión, «Código de Comercio,» Secretaria de


Servicios Parlamentarios Centro de Documentos, Información y Análisis, 27 Agosto 1889.
[En línea]. Available:
https://docs.google.com/viewerng/viewer?url=http://docs.mexico.justia.com/federales/c
odigo_de_comercio.pdf. [Último acceso: 24 Marzo 2015].

[38] M. D. Rojas López, D. M. Suarez Botero y C. N. Meneses Durango, «Firma Digital:


Instrumento de Transmisión de Información a Entidades Financieras,» Revista Avances en
Sisitemas e Informática, vol. 8, nº 1, pp. 7-14, Marzo 2011.

[39] «Criptografía, certificado digital y firma digital.,» [En línea]. Available:


http://portalae.sci.uma.es:8080/export/sites/default/uma/documentos/criptografia_certi
ficado_digital_firma_digital.pdf. [Último acceso: 10 septiembre 2013].

[40] E. Barker y Q. Dang, «NIST Special Publications 800-57 Part 1,2 y3,» National Institute of
Standards and Technology (NIST), January 2015. [En línea]. Available:
http://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-57Pt3r1.pdf. [Último
acceso: 20 Marzo 2015].

[41] A. A. Reyes Krafft, La Firma Electrónica, P. I. d. I. C. E. d. México., Ed., Estado de México.,


Estado de México: Razón y Palabra, 2002.

[42] T. ElGamal, «A public key cryptosystem and a signature scheme based on discrete
logarithms,» 1985.

[43] [En línea]. Available: http://computacion.cs.cinvestav.mx/~jjangel/Pagina_cce_es.html.


[Último acceso: 1 Junio 2104].

[44] L. Sanjuan, Critografía I, Monterrey, Nuevo León: Universidad del Norte, 2011.

[45] M. J. Lucena López, «Criptografía y Seguridad en Computadores,» Junio 2001. [En línea].
Available:
file:///C:/Documents%20and%20Settings/Propietario/Escritorio/MAESTRIA/AVANCES_TE
SIS/INF_TESIS/Criptografia.pdf. [Último acceso: 2 Junio 2014].

69
[46] G. Granados Paredes, «Introducción a la Criptografía,» Revista Digital Universitaria, vol. 7,
nº 7, 10 Julio 2006.

[47] National Institute of Standards and Technology (NIST), «Advanced Encryption Standard
(AES) FIPS PUB-197,» EEUU, 2001.

[48] A. Fúster Sabater, L. Hernández Encinas, A. Martín Muñoz, F. Montoya Vitini y J. Muñoz
Masqué, Criptografía, Protección de Datos y Aplicaciones (Guía para estudiantes y
profesionales), Primera ed., S. d. M. Alfaomega Grupo Editor, Ed., Madrid, Madrid:
Alfaomega Ra-Ma, 2012, p. 364.

[49] M. Daniele, Octubre 2006. [En línea]. Available:


http://sedici.unlp.edu.ar/handle/10915/22125.

[50] J. Ramió Aguirre, «Curso de Seguridad Informática y Criptografía,» Unidad Poltécnica de


Madrid, 01 marzo 2006. [En línea]. Available:
www.seguridadpublica.es/Cursos/Cursoinformatica/15.ppt. [Último acceso: 16 Octubre
2014].

[51] J. A. I. S. Monroy y J. A. Salazar Monroy, «Criptografía y criptoanálisis: la dialéctica,»


Seguridad, Cultura de prevención para ti, nº 17, p. 5, 2013.

[52] M. Hernández, «Criptografía de Caja Blanca,» Software Guru, nº 40, p. 14, 2013.

[53] A. Velázquez, «Cibercrimen y Cómputo Forence,» nº 40, p. 15, 2013.

[54] G. Granados Paredes, «Introducción a la Criptografía,» Revista Digital Universitaria, pp. 2-


17, 2006.

[55] J. A. Salazar Monroy, «Seguridad, cultura de prevención para ti,» pp. 4-7, 2013.

[56] P. P. Fábrega Martínez, «Revista Digital de Ciencias Bezmiliana,» p. 4, 2012.

[57] S. Amador Donado, L. A. Quijano Vidal y E. M. Yela Meneses, «Colisiones en el algoritmos


de ciframiento SHA-1,» Revista Generación Digital, vol. 8, pp. 36-37, 2009.

[58] A. Maiorano, Criptografía, Técnicas de desarrollo para profesionales, Estado de México:


Alfaomega, 2013.

[59] Bert-Jaap Koops, «Crypto Law Survey,» 02 2013. [En línea]. Available:
http://www.cryptolaw.org/. [Último acceso: 22 09 2013].

[60] M. Hernández , «Criptografía de Caja Blanca,» Software Guru, nº 40, p. 14, 2013.

70
[61] Asociación Española de Empresas de Consultoría, 10 2011. [En línea]. Available:
http://www.consultoras.org/frontend/aec/Encuesta-Global-De-La-Seguridad-De-La-
Informacion-2012-Elaborada-Por-PwC-vn16612-vst755. [Último acceso: 15 11 2013].

[62] L. A. Barreto Zuñiga, «Revista Digital Universitaria,» 1 Marzo 2011. [En línea]. Available:
http://www.revista.unam.mx/vol.12/num3/art34/art34.pdf. [Último acceso: 10 Octubre
2013].

[63] @world, Enero 2000. [En línea]. Available:


http://www.idg.es/iworld/articulo.asp?id=106760.

[64] Eco Inteligencia Editorial, S.L., Octubre 2013. [En línea]. Available: http://www.media-
tics.com/noticia/3796/.

[65] E. Berlans, «Informe Norton 2013,» 24 países, 2013.

[66] M. Alvarez, J. A. Ayala Meza, G. Chaves, C. Garat, E. Landaverde, N. López, G. Lòpez


Fabregat, R. Martínez, E. F. Medina y R. Pascal, «Firma Digital y Contratos Electrónicos
(Documento Conceptual para la Era de la Información),» 2005.

[67] Y. Mena Miranda, «Algoritmos HASH y su vulnerabilidad a ataques,» Revista de


Información, Tecnología y Sociedad, pp. 108,109 y 110, 2009.

[68] Y. Mena Miranda, «Algoritmos HASH y su vulnerabiludad a ataques,» Revista de


Información, Tecnología y Sociedad, pp. 108,109 y 110, 2009.

[69] I. S. Ayestarán, Febrero 2001. [En línea]. Available:


http://ww.edc.revistas.csic.es/index.php/redc/article/download/33/96.

[70] OECD, «Measuring the Digital Economy: A New Perspective,» OECD Publishing, 2014. [En
línea]. Available: http://dx.doi.org/10.1787/9789264221796-en. [Último acceso: 5 Marzo
2015].

[71] D. M. Vázquez Fernández, «El Algoritmo Criptográfico AES para protección de Datos,»
Universidad Pontifica Comillas, [En línea]. Available:
http://www.iit.upcomillas.es/pfc/resumenes/46ea7511774d8.pdf. [Último acceso: Agosto
2015].

71

Você também pode gostar