Escolar Documentos
Profissional Documentos
Cultura Documentos
Tesis
Directores:
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:
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 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.
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
Resumen ...................................................................................................................... iv
Abstract ........................................................................................................................ v
Dedicatorias ............................................................................................................... vi
Agradecimientos..................................................................................................... vii
Epígrafe..................................................................................................................... viii
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
xii
3.4.3 Descifrado ............................................................................................................................. 56
3.5 Resultados .................................................................................................................................... 57
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
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
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 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
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
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].
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].
5
Tabla 1-3 Trabajos de investigación
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.
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
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].
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:
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].
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:
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
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.
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.
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.
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.
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 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
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
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
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.
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].
É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
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.
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).
É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:
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:
20
Figura 2.5 Aplicaciones con Firma Digital
• 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.
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).
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:
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.
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]:
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:
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].
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:
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
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)
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)
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].
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.
AES-192 6 4 12
AES-256 8 4 14
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
En términos de este trabajo donde se manejan bloques de 128 los desplazamientos quedan
representados en la figura 2.7.
2.5.4 MixColumn
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.
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.
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:
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.
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]
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]
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]:
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.
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:
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.
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)
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:
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].
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] .
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.
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].
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
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]
β= αa mod p
39
Para la validación de la firma del mensaje m, el usuario B debe comprobar que se cumple la
siguiente igualdad:
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
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
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.
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.
43
Figura 3.3 Proceso de Cifrado AES
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á:
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
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
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.
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.
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).
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.
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.
El proceso de ElGamal se realiza básicamente en las etapas que se describen en la figura 3.13.
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).
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
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.
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.
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.
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.
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
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.
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.
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.
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).
56
Probados los módulo de cifrado y descifrado se integran para formar el criptosistema basado en
ElGamal representado en la figura 3.24.
Se comparan los valores correspondientes al mensaje, que en éste caso los valores son iguales
validando con esto la firma.
3.5 Resultados
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)
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.
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.
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.
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
4.1 Conclusiones
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 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
[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].
[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.
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.
[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.
[21] Karpersky Labs, «"Global IT Security Risks 2012",» [En línea]. Available:
http://swgu.ru/sg40r10. [Último acceso: 17 Noviembre 2013].
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.
[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.
[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].
[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].
[42] T. ElGamal, «A public key cryptosystem and a signature scheme based on discrete
logarithms,» 1985.
[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.
[52] M. Hernández, «Criptografía de Caja Blanca,» Software Guru, nº 40, p. 14, 2013.
[55] J. A. Salazar Monroy, «Seguridad, cultura de prevención para ti,» pp. 4-7, 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].
[64] Eco Inteligencia Editorial, S.L., Octubre 2013. [En línea]. Available: http://www.media-
tics.com/noticia/3796/.
[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