Introduccio n al cifrado de datos

Anuncio
Introduccion al cifrado de datos
Introducción ............................................................................................................. 4
1. Conceptos generales ........................................................................................ 5
1.1
Definiciones................................................................................................ 5
1.2
Evolución.................................................................................................... 7
1.3
Proceso de cifrados datos y su transmisión ............................................. 10
2. Mecanismos de cifrado Convencional/Tradicional .......................................... 12
2.1
Cifrado del César ..................................................................................... 12
2.2
Cifrado Monoalfabético ............................................................................ 13
2.3
Cifrado Masón .......................................................................................... 15
2.4
Cifrado de Vigenère ................................................................................. 16
2.5
Tres rotores .............................................................................................. 21
2.6
La scitara espartana ................................................................................. 23
2.7
Permutación de texto ............................................................................... 24
3. Esteganografía o Estenografía ....................................................................... 27
3.1
Introducción a la Esteganografía .............................................................. 27
3.2
Definición de Esteganografía ................................................................... 28
3.3
Funcionamiento ........................................................................................ 29
3.3.1
Estenografía en Texto ....................................................................... 30
3.3.2
Esteganografía con Imágenes ........................................................... 30
3.3.3
Esteganografía en sonido .................................................................. 33
4. Mecanismos de cifrado simétrico .................................................................... 34
4.1
Generalidades .......................................................................................... 34
4.2
Algoritmos ................................................................................................ 37
4.2.1
DES ................................................................................................... 37
4.2.2
Triple DES ......................................................................................... 45
4.2.3
IDEA .................................................................................................. 47
4.2.4
AES ................................................................................................... 48
4.3
Diffie-Hellman, para el intercambio seguro de claves .............................. 60
5. Mecanismos de cifrado asimétrica .................................................................. 61
5.1
Cifrado de datos ....................................................................................... 63
5.2
Autenticación de quien envía los datos .................................................... 64
5.3
Cifrado de datos y Autenticación de quien envía ..................................... 65
5.4
Algoritmo RSA .......................................................................................... 66
5.5
Firmas digitales ........................................................................................ 67
5.5.1
Generalidades ................................................................................... 68
5.5.2
Funciones de hash ............................................................................ 70
5.5.3
Creación y funcionamiento de las firmas digitales ............................. 72
5.5.4
Estándar de firmas digitales DSS ...................................................... 77
5.5.5
PGP y OpenPGP ............................................................................... 78
5.5.6
Certificados digitales y Entidades Certificadoras ............................... 80
Introducción
Desde la antigüedad y hasta nuestros días, el hombre ha buscado mecanismo
para ocultar información de diferente índole y en especial, en donde se ha visto
más utilizada es en gobiernos y guerras en donde se requiere transmitir
información sensible o crítica por canales inseguros y ya más hacia la actualidad
en procesos financieros, comercio electrónico y la vida diaria.
Esta obra, es el resultado de años de trabajo con estudiantes de pregrado en el
área de la seguridad de la información en donde se ha ido evolucionando en la
manera como se presenta el tema y cómo hacer que, siendo un tema complejo,
pueda ser visto y entendido de una manera sencilla y clara abordando la
criptografía desde sus conceptos fundamentales y evolución hasta sus tipos,
formas de operación y usos.
Para esto, el tema está dividido en 5 capítulos, en el primero se desarrollan los
conceptos generales sobre el tema, en el dos se ven los mecanismos
criptográficos tradicionales en donde se citan diferentes algoritmos, se presentan
ejemplos y se enuncian ejercicios de revisión de los temas. En el tercer capítulo se
desarrolla el tema de la estenografía como mecanismo criptográfico, para en el
cuarto y el quinto trabajar en las criptografías simétrica, asimétrica y hash.
Se espera que esta obra sea de utilidad para todos aquellos que desean
introducirse en el estudio de la seguridad de la información y en particular de la
criptografía o escritura oculta, ya que éste es uno de los pilares sobre los que está
basada una gran cantidad de mecanismos y soluciones tecnológicas enfocadas a
la seguridad de la información.
1. Conceptos generales
1.1 Definiciones
Criptología (del griego criptos = oculto y logos = tratado): nombre genérico con el
que se designan dos disciplinas opuestas y a la vez complementarias: criptografía
y criptoanálisis. Esto significa que la criptografía permite convertir un texto dado en
texto plano (legible) en un texto cifrado o encriptado, el cual no es fácilmente
entendible sin conocer la “pistas” de cifrado utilizadas. Según la RAE, se trata del
arte de escribir con clave secreta o de un modo enigmático.
A este respecto, se encuentran básicamente dos mecanismos para hacerlo:

Cifrado: transformación de los datos a nivel de bits o caracteres. Ejemplo:
Transposición (Colocar los símbolos del mensaje original en un orden
distinto).
Se refiere a hacer modificaciones de los datos haciendo modificaciones a
los bits o a los caracteres que los representan, por ejemplo: la palabra en
texto claro M a n z a n a se convertirá en el texto cifrado: a z n n M a a (En
este caso se hizo un simple movimiento de los mismos caracteres que
conforman el texto).

Codificación: Reemplazo de una palabra por otra o por símbolos. También
conocido como Sustitución. Busca establecer una correspondencia entre
las letras del alfabeto en el que está escrito el mensaje original y los
elementos de otro conjunto (del mismo alfabeto o de otro). Ej. Lenguaje
Navajo.
La codificación consiste en el cambio de simbología utilizada:
o Una posibilidad consiste en reemplazar unas letras por otras o por
símbolos, ejemplo: donde haya una “a” colocar una “h” o en donde
haya una “a” colocar “ ? ”.
o También puede referirse a cambios de palabras completas, por
ejemplo entre idiomas, ejemplo: casa (en español) a maison (en
francés) o a lenguaje navajo como se utilizó durante la segunda
guerra para transmitir mensajes codificados entre tropas del bando
aliado sin que el ejército enemigo entendiera.
“ . . . Aunque los
códigos norteamericanos fueron quebrados también en numerosas
ocasiones, hubo uno, utilizado por la Marina, que jamás fue
descifrado. Los americanos emplearon un sistema de criptofonía
muy original, el lenguaje navajo. Por su sintaxis y cualidades tonales,
este lenguaje no escrito resulta ininteligible si no se ha recibido un
intenso aprendizaje. Los Marines utilizaban indios navajos para
transmitir los mensajes por teléfono. Se les daba el mensaje a
transmitir en inglés americano y ellos lo transmitían en su lengua, el
navajo. Otro indio navajo al otro lado de la línea escuchaba el
mensaje y lo traducía de nuevo al inglés americano. Los navajos
podían codificar, transmitir y decodificar tres líneas de mensaje en 20
segundos. Las máquinas de entonces tardaban 30 minutos. Las
tropas irlandesas de una expedición de Naciones Unidas a África en
1960 tuvieron una idea similar, sólo que utilizaron el irlandés, una
lengua mucho más fácil y difundida que el navajo. . . . ” (Vrátný,
2003)
Ahora, como se mencionó antes, la criptología está compuesta por dos disciplinas,
las cuales se definen a continuación:
Criptografía: Se ocupa del diseño de procedimientos para cifrar, es decir, para
enmascarar una determinada información de carácter confidencial. Escritura
secreta.
Criptoanálisis: Es el proceso complementario a la criptografía, es decir, se ocupa
de romper esos procedimientos de cifrado para así recuperar la información
original. El criptoanálisis permite volver de un texto cifrado al texto plano que lo
generó. En este caso es importante aclarar que la palabra “romper” usada en la
definición no tiene que ver con violaciones de seguridad, sino con el simple hecho
de volver a un texto legible un texto cifrado.
Normalmente, se hacen los dos procesos, criptografía para proteger la información
y no hacerla legible para cualquier persona pero también criptoanálisis para hacer
legible una información cifrada para quien debe verla, de no ser así, una
información que ha sido cifrada no sería posible volverla a ver y esto no es lo que
típicamente se quiere. Más adelante se verán situaciones en donde esto si es
deseable.
1.2 Evolución
Dentro del desarrollo o evolución de la criptografía, ha habido diferentes vertientes
o propuestas de desarrollo.
La primera de ellas, algoritmo secreto, “no existencia de clave” consistía en
mecanismos de cifrado en donde lo único que afectaba al texto era el mismo
conjunto de reglas para hacerlo ilegible, por ejemplo invertir letras, cambiar unas
letras por otras, etc. En donde lo importante es mantener en secreto el algoritmo,
mientras éste no sea conocido, no será fácil descifrar el mensaje o como algunos
expertos dicen “no será posible o al menos será impracticable el descifrarlo”.
En la segunda, Algoritmo secreto, clave secreta se tienen dos variables para el
proceso de cifrado/descifrado, el algoritmo y la clave, ambos secretos, es decir
que no se debe saber cómo funciona el algoritmo ni cuál es la clave secreta. Este
tipo de algoritmos crean un nivel adicional de complejidad, ya que si por alguna
razón se descubre el algoritmo, todavía es necesario saber la clave para encontrar
el texto plano y por lo menos demorará más en romperlo un atacante.
En la tercera, Algoritmo conocido, clave secreta ya no importa que se sepa el
proceso que se realiza para el cifrado de los datos, es tan complejo este proceso y
la clave altera de tal manera el mensaje que con sólo mantener en secreto la
clave. Ya no es posible o es al menos impracticable el realizar un proceso de
criptoanálisis efectivo. Se habla de que es impracticable porque sería muy
demorado realizar el proceso de descifrado y podría ya no servir para nada el
saberlo. Por ejemplo, si el mensaje decía “nos vemos mañana en el café” y un
atacante lo obtiene cifrado y por medio de técnicas de criptoanálisis lo trata de
descifrar y demora 7 días o 7 años o 7 décadas para descifrarlo, posiblemente ya
no servirá de nada haberlo logrado entenderlo.
Hasta aquí, todos los mecanismos implicaban el mantener en secreto el algoritmo,
el algoritmo y la llave o al menos la llave, lo cual era complejo y de alguna manera
esto se convierte en el talón de Aquiles de los mecanismos.
La cuarta son los Algoritmos conocidos, parte de la clave conocida la mayoría
de los elementos del proceso son conocidos y el mantener sólo una parte de la
clave en secreto es relativamente más sencillo pues ya no se comparte una clave
entre varias partes, que era lo que más comprometía el algoritmo o la clave en los
mecanismos anteriores, en este caso solo el “dueño” deberá tener esta clave y no
se la tendrá que entregar a nadie. Parece raro pero así es, más adelante
desarrollaremos este tema y entenderemos su funcionamiento. Pero así como
tiene características que lo hacen muy interesante, que haría pensar que es lo que
se debe usar ante una necesidad de ocultar información, también tiene otras que
lo hacen no tan ideal y por lo cual no se recomienda usar siempre y que se
convierte en complemento de otras técnicas.
Finalmente, otra opción son los Algoritmos en una sola vía, esto algoritmos
implementan técnicas que permiten hacer el proceso de cifrado de los datos pero
que no permiten realizar las actividades de criptoanálisis, es decir, permiten cifrar
un texto pero no descifrarlo. A primera vista podrían parecer poco prácticos, pues
casi siempre que se encriptan datos se desea en algún momento posterior, pero
no siempre es así, hay implementaciones para las que no poder devolver el
proceso de cifrado es lo ideal.
Todas estas propuestas se ven plasmadas a través de diferentes algoritmos e
implementaciones a lo largo de la historia de la criptografía y van a ser objeto de
estudio más adelante cuando se ven tipos de criptografía, entre las cuales se
hablará de la criptografía tradicional, esteganografía, encripción simétrica,
encripción asimétrico y encripción en una sola vía.
1.3 Proceso de cifrados datos y su transmisión
En el caso del proceso de cifrado de datos, desde el punto de vista de la
estructura de redes de computadores, este puede realizarse a cualquiera de las
capas del modelo OSI:

A nivel de aplicación, en el caso que el proceso de cifrado se realice como
parte de la lógica del software que está procesando los datos.

A nivel de presentación, en el caso de que se trate de un proceso que se
maneja independiente de la aplicación y que puede ser usada por varias
aplicaciones (recordando que este es uno de los objetivos que el modelo
OSI define para esa capa).

A nivel de transporte y red tenemos el cifrado utilizado en las tecnologías
SSL e IPSEC utilizadas en las redes con arquitectura TCP/IP (como
Internet).

A nivel de enlace y físico, si se quiere que el cifrado se haga a muy bajo
nivel, en la tarjeta de red o en el momento previo a ser enviada a través del
medio alámbrico o inalámbrico
Ahora, el proceso de cifrado se puede realizar para guardar datos en una máquina
o para transmitirlos a través de una red local o mundial y la problemática en cada
caso es diferente pues si la información va a mantenerse en una máquina
específica la complejidad de seguridad está en el mecanismo de cifrado utilizado y
de la seguridad del equipo como tal, pero cuando se trabaja con información que
viaja sobre una red, se agrega un nivel de complejidad adicional, ya que ahora no
sólo es un problema de los algoritmos de cifrado y los mecanismos de seguridad
del equipo en donde ella se almacena sino de la interconexión de ese equipo a
una red pública y de su transmisión sobre enlaces compartidos.
En particular, cuando se habla de información cifrada que será enviada a través de
una red de área amplia - WAN como por ejemplo Internet, ella será expuesta a
una mayor cantidad de personas y atacantes comparado con mantenerla en un
equipo o dentro de una LAN y en ese caso se pueden contar con dos alternativas
para su transmisión, las cuales también pueden ser usadas en redes LAN, pero su
utilidad es más visible en las redes pública:

Sólo los datos cifrados: En este caso, se envían únicamente la información
cifrada sobre la WAN, esto podría permitir que un atacante la tome (realice
una captura del tráfico) y tenga exactamente los datos cifrados y se dedique
a realizar criptoanálisis para descubrir los datos.

Datos cifrados más información de relleno: Esta posibilidad también envía
los datos cifrado pero la diferencia consiste en que siempre se están
mandando datos por la red, cuando no hay datos a transmitir, envía
información de relleno o “basura” de tal manera que un atacante no sabrá
cuales de los datos que está capturando sobre la red hacen referencia a
datos reales cifrados o a información de relleno y así se hará más difícil el
proceso de criptoanálisis. Esta técnica se conoce como relleno de tráfico o
Traffic Pading. En la figura 1.1 se esquematiza este mecanismo.
Figura 1.1: Esquema Traffig Pading
En ambos temas, proceso y transmisión, es necesario tener claro lo que se
requiere y así determinar cuál será la mejor solución para cada tipo de empresa,
aplicación e información para determinar cuál será el mejor esquema de cifrado de
datos a usar y sus respectivas recomendaciones.
2. Mecanismos de cifrado Convencional/Tradicional
A través de la evolución de los procesos de cifrado de datos, se han visto tres
grandes etapas en su desarrollo, la primera se trata de los precursores de la
criptografía actual. En esta categoría se encuentran los mecanismos clásicos de
criptografía, los que se hacían en el pasado, “a mano”. Entre ellos se encuentran:
2.1 Cifrado del César
“. . . si había algún asunto que deseaba mantener en secreto, utilizaba un código
de forma que resultara imposible captar el sentido de cuanto escribía. Para
quienes deseen sabe más, diré que sustituía la primera letra del alfabeto, α, por la
cuarta letra, δ, y así sucesivamente con todas las demás.”. La regla (algoritmo) era
sustituir las letras del mensaje por la cuarta letras adelante del mismo alfabeto, o
por la quinta o la décima, etc. Cada letra se reemplaza por otra letra del mismo
alfabeto.
Por ejemplo: dada la palabra DEBE, realizar el cifrado César realizando un
corrimiento de 4 letras:
Alfabeto original:
a b c d e ......z
Alfabeto modificado:
Texto plano:
Texto cifrado:
d e f g h ......c
DEBE
GHEH
Ahora le toca a usted,
1. ¿Cuál será el texto cifrado si el texto plano es SEGURIDAD y el corrimiento
es de 4 letras?
2. ¿Cuál será el texto cifrado si el texto plano es SECRETO y el corrimiento es
de 7 letras?
3. ¿Si se usó la técnica de cifrado César con corrimiento 5 sobre un texto y el
resultado es TYIVXE?
2.2 Cifrado Monoalfabético
Aquí lo que se realiza es una sustitución de letras por símbolos. Para esto, lo que
se hace es ubicar todas las letras del alfabeto sobre una figura (similar a un triqui)
y cuando se desea cifrar un mensaje, se cambia cada una de las letras del
mensaje por un dibujo de la posición de la letra sobre la figura y el proceso de
criptoanálisis realizará el proceso inverso. En la figura 2.1 se muestra cómo queda
la figura al añadirle el alfabeto.
Por ejemplo, para representar una letra, lo que se hace es dibujar el cuadrante en
donde está la letra y colocar un “punto” indicando la posición de la letra dentro del
cuadrante específico. En la figura 2.2 se presenta un ejemplo de un texto cifrado
haciendo uso del cifrado Monoalfabético.
Figura 2.1: Representación del alfabeto monoalfabético
Figura 2.2: Texto cifrado con el algoritmo monoalfabetico
En este caso, la primera letra del mensaje cifrado es la N, pues el cuadrante
representado es el del centro (en la simbología) y la posición que se indica
mediante el “punto” es la letra de la mitad dentro de este cuadrante.
Ahora inténtelo usted,
1. ¿Cuál es el mensaje escondido mostrado en la figura 2.2?
2. ¿Cuál es el mensaje escondido mostrado en la figura 2.3?
Figura 2.3: Texto cifrado con algoritmo monoalfabético
3. ¿Cuál será el texto cifrado resultante, si el texto plano es LAPIZ?
2.3 Cifrado Masón
Este mecanismo de cifrado es similar al anterior, con la diferencia de que el
número de cuadrantes que se manejan es mayor y que para diferenciar entre
cuadrante similares se debe colocar un guión en algunos de ellos, haciendo un
poco más complejo el descifrarlo. En este caso la simbología se encuentra en la
figura 2.4.
Figura 2.4: Representación del alfabeto Masón
Por ejemplo, la letra A y la letra N se representan con el mismo cuadrante, la
diferencia está en que si se trata de la N se coloca en el cuadrante un guión y si se
trata de la A no se coloca nada.
Y ahora le toca a usted,
1. ¿Cuál es el mensaje en texto plano que presenta en la figura 2.5? (Ayuda:
la primera letra es una P y la última una D).
Figura 2.5: Texto cifrado con algoritmo Masón
2. ¿Cuál es el mensaje en texto plano que se presenta en la figura 2.6?
Figura 2.6: Texto cifrado con algoritmo Masón
3. ¿Cuál será el texto cifrado, si el texto plano es MADUREZ?
2.4 Cifrado de Vigenère
Este mecanismo se basa en la construcción de una matriz a partir del mensaje a
cifrar y la clave a utilizar y a través de dicha matriz, se tomarán las letras que
producirán el mensaje/texto cifrado. A continuación se describen los pasos a
seguir tanto para la generación de la matriz como para el proceso de cifrado como
tal.
1. Definir una matriz así:

Primera fila: Tomar las letras que componen el mensaje y colocarlas
ordenadas (por su posición dentro del abecedario) sin repetir. Comenzar a
partir de la segunda columna, es decir, la primera letra, de las que
conforman el mensaje, se debe ubicar en la primera fila, segunda columna.

Primera columna: Tomar las letras que componen la clave y colocarlos
ordenadas (por su posición dentro del abecedario) sin repetir. Comenzar a
partir de la segunda fila, es decir, la primera letra, de las que conforman el
mensaje, se debe ubicar en la primera columna, segunda fila.

Demás celdas: Llenar las posiciones libres de la matriz con las letras del
alfabeto ordenadamente (en una variación del algoritmo, se pueden utilizar
el alfabeto desordenado para aumentar la complejidad del proceso),
comenzando con la fila dos, columna dos, de izquierda a derecha y así
sucesivamente por cada fila. Una variación de este algoritmo propone hacer
el llenado de la matriz con el alfabeto en desordenado, lo cual añade un
grado de complejidad mayor al proceso y podría brindar un mayor grado de
seguridad, pero también implica mayor complejidad en “el ponerse de
acuerdo” entre las parte.

Ejemplo: Si la clave es: abretesesamo y el mensaje es: Estamos
descubiertos. Entonces las letras ordenadas que conforman el mensaje
son: {a b c d e i m o r s t u} y las que conforman la clave son: {a b e m o r s
t} y el tamaño de la matriz resultante sería de nueve (9) filas por trece (13)
columnas. La matriz resultante sería la mostrada en la figura 2.7.
Figura 2.7: Matriz del alfabeto usado en cifrado Viginerère
2. Tomar el mensaje original y alinear cada una de las letras de éste con una letra
de la clave, dado que las claves de cifrado son, usualmente, más pequeñas que
los mensajes a enviar, es posible que se deba repetir varias veces la clave para
cubrir todas las letras del mensaje, por ejemplo, para el mensaje usado un el
ejemplo anterior, se debe alinear la e del mensaje con la a de la clave y será
necesario repetir parte de la clave para cubrir todas las letras del mensaje. El
proceso completo se muestra en la figura 2.8.
Figura 2.8: Organización del texto y la clave usando cifrado Viginer`ere
3. Para obtener el texto cifrado se realizan los siguientes pasos:

Tomar la primera letra de la clave y buscarla dentro de la primera columna
de la matriz. Para el ejemplo, ubicarse en la casilla de la letra a en la
columna uno, fila dos.

Tomar la primera letra del mensaje y buscarla dentro de la primera fila de la
matriz. Para el ejemplo, ubicarse en la casilla de la letra e en la fila uno,
columna seis.

Buscar la intercepción entre las dos anteriores. Para el ejemplo, ubicarse en
la fila dos, columna seis.

La letra ubicada en la intercepción será la primera letra del mensaje cifrado.
Para el ejemplo, será la letra E.

Continuar con el mismo proceso para cada una de las letras del mensaje.
Basado en esto y para el ejemplo que hemos ido desarrollando, el mensaje cifrado
será el presentado en la figura 2.9.
Figura 2.9: Texto cifrado usando el algoritmo Viginer`ere
A continuación se presenta otro ejemplo completo. Se desea cifrar el mensaje:
Cuando un hombre no sabe hacia dónde navega, ningún viento le es favorable1.
Nota: para el ejemplo, omitiremos las tildes, espacios en blanco y signos de
puntuación. La clave que se usará es liderazgo. La matriz y el texto cifrado se
presentan en las figura 2.10 y 2.11
Figura 2.10: Matriz generada para el ejemplo usando el algoritmo Viginerère
Figura 2.11: Texto cifrado para el ejemplo usando el algoritmo Viginerère
En el otro extremo de la comunicación, es decir, en el destino, quien deberá hacer
un proceso de criptoanálisis para recuperar el texto plano, se debe tener las letras
que conforman el mensaje, la clave, información sobre cómo se llenó la matriz
(alfabeto ordenado o desordenado, en caso de que haya sido desordenado,
deberá enviarse la información necesaria para rellenar la matriz de manera
correcta) y el texto cifrado para realizar el proceso de desencripción que consistirá
1
Séneca
en generar la matriz, alinear las letras del texto cifrado con la clave, repitiendo las
veces que sea necesario la clave, e ir buscando en la matriz: la fila (según las
letras de la clave) y dentro de la matriz, la letra del mensaje cifrado, con esta
información, la letra que encabeza la columna en la que está dicha letra, será la
letra del mensaje original.
Retomando los dos ejemplos planteados, en el primer ejemplo, la primera letra del
texto cifrado es una E y la primera letra de la clave es una a, entonces se busca la
fila en donde se encuentra la a y sobre esa misma fila, la columna en donde se
encuentra la letra E, cuando se encuentra, se toma la letra ubicada en la fila uno
de esa columna, para el ejemplo la letra e, que será la primera letra del mensaje
original. Y para el segundo ejemplo, la primera letra del texto cifrado es una Q y la
primera letra de la clave es una l, entonces se busca la fila en donde se encuentra
la l y sobre esa misma fila, la columna en donde se encuentra la letra Q, cuando
se encuentra, se toma la letra ubicada en la fila uno de esa columna, para el
ejemplo la letra c.
Le toca a usted, resuelva el siguiente ejercicio. Nota: utilice el alfabeto ordenado.
1. Se recibe un texto cifrado cuyas clave de cifrado es ATARDECER y letras
del mensaje A C D E I L M N O P R S T V. ¿Cuál será el mensaje en texto
plano?
Texto cifrado: F S J O K C R R F E A H G F S O C M L V L F H D B T M A
C A J C TU Z O D D A
2. Transforme el mensaje dado en texto plano a texto cifrado
Mensaje: LOS COMPUTADORES SON INUTILES. SOLO PUEDEN
DAR RESPUESTAS. PICASSO
Clave: ATENCION
3. Transforme el mensaje dado en texto cifrado a texto plano:
Mensaje cifrado: J I H W A R L Z R F E M A S A Q T Z T A M U X R
TFRF
Clave: ETICA
Letras del mensaje: A B C D E H I M N O P Q R S Y
2.5 Tres rotores
Este mecanismo consiste en utilizar varias rotaciones del alfabeto antes de
realizar el proceso de cifrado. Es un mecanismo que se comenzó a desarrollar en
las primeras décadas del siglo XX y uno de su mayor exponente es la máquina
Enigma utilizada por las fuerzas militares alemanas desde los años 30s y hasta la
segunda guerra mundial.
Era un mecanismo eléctrico-mecánico (eléctrico porque pasaba corriente entre
interconexiones dentro de los rotores y mecánico porque los rotores eran piezas
mecánicas que iban cambiando de posición). Su mayor fortaleza consistía en que
era posible combinar múltiples rotores y por lo tanto, la equivalencia entre el
alfabeto normal, sobre el cual se ponía el mensaje original y el alfabeto del texto
cifrado de salida podía variar de un mensaje a otro.
En el mecanismo básico, cada rotor tenía entradas interconectadas con salidas en
órdenes específicos, de tal manera que si por ejemplo la entrada 10 era
presionada se enviaba corriente a través del cable de interconexión y esto permitía
que dicha corriente llegará a la salida 3, la cual tocaba la entrada 3 del segundo
rotor y saliera por la 13 y ésta a su vez tocaba la entrada 13 del tercer rotor y
llegara finalmente a la salida 14. Tanto las entradas del primer rotor como las
salidas del tercer rotor tenían una equivalencia en letras del alfabeto, de tal
manera que era posible convertir una letra de un mensaje en otra letra que
conformaría parte del mensaje cifrado. Un ejemplo de este mecanismo se ve en la
figura 2.12. En ella, la letra M codificada es la O (en rojo) y la letra R es la A(en
verde). Y usando esta misma figura, si se desea cifrar el mensaje: computador, el
mensaje cifrado resultante será PQOEYWUTMA.
Figura 2.12: Modelo algoritmo tres rotores
En los modelos implementados en la vida real, cada rotor tenía dos alfabetos
interconectados de una manera específica, de tal manera que si se digitaba la
letra “A” (por ejemplo), esto llegaba al primer rotor, el cual tenía la “A”
interconectada con la “L” y luego esto pasaría al segundo rotor y finalmente al
tercero en donde se ejecutaría el mismo proceso. Esto hacia que el proceso de
criptoanálisis fuera complicado para alguien que no conociera los rotores utilizados
y la manera como estos tenían interconectados al interior sus alfabetos
2.6 La scitara espartana
“. . . una vara de la que se preparaban dos ejemplares idénticos y alrededor de la
cual se envolvía una tira de pergamino o de papiro. El mensaje se escribía a lo
largo del bastón, se retiraba la cinta y se enviaba al destinatario, que tenía en su
poder la segunda copia del bastón. Al colocar la cinta, aparecía el mensaje” 2
Este es un mecanismo muy antiguo, en el que la idea es tener dos “varas” iguales,
una la tiene el origen y la otra el destino y lo que se hace es colocar una tira de
papiro alrededor (enrollando) de la vara e ir escribiendo las letras del mensaje
sobre el papiro de arriba hacia bajo y si queda parte de la tira en blanco se
colocan letras aleatoriamente. Luego se desenrolla la tira de papiro y ese mensaje
será el texto cifrado, el cual, es el que se envía al destino. En la figura 2.13 se
presenta un ejemplo del mecanismo.
Figura 2.13: Algoritmo Scitara espartana
2
Vida de los hombres ilustres de Grecia y Roma - Plutarco
El trabajo en destino es enrollar nuevamente la tira en la varita “gemela” y
encontrará el mensaje.
2.7 Permutación de texto
En este caso, al igual que en el algoritmo Viginerère, se parte de un mensaje en
texto claro, que se desea cifrar y una clave que será utilizada para producir el texto
cifrado, y en este caso también se crea una matriz para transformar el mensaje
original en mensaje cifrado, pero a diferencia del algoritmo Viginerère, la matriz
sólo contendrá el mensaje original. El proceso de cifrado que se realiza es así:
1. Colocar en la primera fila de una matriz que tenga tantas columnas como
letras de la clave, la clave (una letra por columna).
2. Numerar las columnas dependiendo de la posición que ocupan las letras de
la clave dentro del alfabeto. Se considera la primera columna la que tenga
la letra de la clave que aparezca primero en el alfabeto. Si la clave tiene
letras repetidas, se numeran de izquierda a derecha.
3. Colocar el mensaje, una letra por celda, en la matriz comenzando por la fila
2, columna 1 de izquierda a derecha hasta completar el mensaje. Si al
terminar de escribir el mensaje sobran espacios al final de la última fila se
rellenar las celdas que faltan con letras aleatorias. Nota: Si el mensaje
contiene espacios en blanco pueden mantenerse, cambiarse por otro
símbolo o ignorarse.
4. El texto cifrado consistirá en colocar las letras de las columnas (a partir de
la segunda fila) en el orden definido por la numeración dada a cada
columna en el paso 2 de arriba hacia abajo. Para el caso del ejemplo, la
columna numerada con el 1 en la segunda, entonces el mensaje cifrado
comenzara por EAR, luego la columna numerada con el 2, es decir GDE y
así sucesivamente. En la figura 2.14 se presenta la situación.
Texto plano: SEGURIDADDEREDES
Texto encriptado: EARGDDIESRDESDUD
Figura 2.14: Permutación de Texto
En el destino se requerirá la clave y el mensaje cifrado para realizar el
proceso de criptoanálisis
Ejemplo No.1:
Clave: encriptado
Texto plano: permutar-el-texto-a-partir-de-la-clave-secreta
¿Cuál es el texto cifrado? (Use de guía la figura 2.15).
Figura 2.15: Permutación de Texto – Ej. 1
El texto cifrado será:
R-DEBRTR-R-EA-CPLPLEUXILTE-AACE—SDTTRAAMETCEAO-VA
Ejemplo No. 2:
Clave: encriptado
Texto cifrado: I I E R A P -- A V O O S R O D E E E T I S E -- S S X S
M I M N T A X O I -- O -- A O D S O -- C S P P B
¿Cuál será el texto plano?. Utilice la figura 2.16 como apoyo.
Figura 2.16: Permutación de Texto – Matriz guía
La solución está en:
1. Contar el número de letras del texto cifrado y dividirlo en el
número de letras de la clave para saber cuántas letras van en
cada columna.
2. Colocar la clave en la primera fila y numerar las columnas
siguiendo la misma regla que se aplicó para el proceso
criptográfico
3. Colocar las letras del mensaje por columnas (según la
numeración de columnas realizada) dejando en cada columna el
número de letras determinado en el primer paso.
En la figura 2.17 se presenta la solución:
Figura 2.17: Permutación de Texto – Ej. 2
Texto
plano:
EXPOSICIONES-DE-SISTEMAS-OPERATIVOS-
PROXIMO-SABADO
3. Esteganografía o Estenografía
3.1 Introducción a la Esteganografía
“Se puede definir de forma rápida a la Esteganografía como un conjunto de
técnicas destinadas a ocultar unos datos en otros, de tal manera que pase
desapercibida su existencia”3.
3
(Fronteras Electronicas, 1998)
Esta técnica puede utilizarse para disimular los datos, o combinarse con la
criptografía, de tal manera que los datos que se oculten al ser descubiertos no se
puedan leer.
Hoy en día, los usuarios de Internet disponen gratuitamente de diversos
programas de Esteganografía para diversos sistemas operativos. Generalmente,
ocultan los datos en archivos de imágenes o de sonido, y se encuentran a
disposición de los usuarios gran variedad de técnicas y métodos.
3.2 Definición de Esteganografía
Su origen viene del griego ’steganós’, que significa ’cubierto’, y ‘grafía’ que
significa ’escritura’. Aunque originalmente se utilizó como sinónimo de criptografía,
hoy en día se utiliza para definir el arte de ocultar la existencia de mensajes en
una comunicación.
La Esteganografía (conocida también como escritura encubierta, o cifrado
encubierto) es una la ciencia que estudia todos los procedimientos encaminados a
ocultar la existencia de un mensaje en una comunicación, típicamente dentro de
un texto o una imagen.
Mientras que la criptografía pretende hacer ilegible un mensaje que un intruso
haya conseguido, el objetivo de la Esteganografía es ocultar el mensaje dentro de
otro que no contiene información importante, pero que si contiene sentido por sí
solo, de forma que el intruso no sospeche que dentro del mensaje existe
información oculta. La información entonces está inmersa sutilmente en un texto,
una imagen o un sonido que aparentemente son normales.
La Esteganografía no se busca sustituir a las técnicas de cifrado convencional sino
brindar un mecanismo más de protección. La ventaja que tiene es que en los
casos de criptigrafía, cuando se encuentra un texto cifrado es claro que se trata de
un texto cifrado, el atacante ahora tendrá que usar técnicas de criptoanálisis si
desea violar la seguridad del mensaje, pero la Estenografía lo que hace es tomar
el mensaje y esconderlo en otro, con lo cual no se sabe que hay algo allí. Esta
técnica podrá utilizarse sola o adicionar mecanismos de cifrado al mensaje original
antes de esconderlo en el otro mensaje.
3.3 Funcionamiento
La esteganografía o estenografía no es una técnica nueva, la diferencia es que
antes se utilizaban mecanismos “manuales” para llevarla a cabo. Por ejemplo, en
la antiguedad, cuando dos batallones del mismo ejército se quería comunicar de
manera segura o el emperador deseaba enviar un mensaje secreto, tomaban un
soldado a quien cortaban el cabello hasta dejarlo calvo, escribían el mensaje a
transmitir en su cabeza y le dejaban crecer nuevamente el cabello.
En la época moderna, lo que hacemos es aprovechar letras de un texto o los bits
menos significativos de una imagen o video para diseminar los datos a proteger y
de esa manera que no sean vistos por un atacante.
Existen varios mecanismos en la actualidad, a continuación presentamos algunos
de ellos:
3.3.1 Estenografía en Texto
Este mecanismo permite ocultar mensajes dentro de escritos sin que sea notoria
su presencia. Es una técnica que implica que el escrito que se modifique para
ocultar la información real tenga sentido. La manera como se realiza usualmente
consiste en tomar palabras, sílabas o letras del mensaje como parte del mensaje
real. Por ejemplo:
Presión de curas en Pitalito logró un debate al importante manifiesto
propuesto. ATN reporto esto.
En este mensaje, aparentemente relacionado con la noticia de un debate sobre
“algo”, realmente está ocultando un mensaje. ¿Cuál es el mensaje? (tome un
momento para intenta encontrar el mensaje oculto)
La regla aplicada en este caso fue tomar las segundas letras de cada palabra de
la frase. Es decir:
Presión de curas en Pitalito logró un debate al importante manifiesto
propuesto. ATN reporto esto.
Texto oculto:
reunión el martes.
3.3.2 Esteganografía con Imágenes
Esta técnica se base en aprovechar los bits menos significativos (LSB – Last
Significant Bit) de una imagen para ocultar bits del mensaje a ocultar.
Como es sabido, la representación de un pixel de la pantalla del computador está
compuesto por un tripleta (3-tupla) de los colores Rojo, Verde y Azul (RGB – Red,
Green, Blue), y cada color se representa por mínimo 8 bits y cualquier tonalidad
que queramos dar a la pantalla será basada en la combinación de esos tres tonos
básicos. Es así que, por ejemplo para representar un tono azul claro el pixel se
tendrá que “pintar” con R=109, V=213, A=237. La técnica esteganográfica
consistirá en cambiar el bit menos significativo a esta combinación de colores para
incluir los bits del mensaje. En el ejemplo que estamos desarrollando, en el peor
de los casos si al incluir los bits del mensaje real cambia el color del pixel a
R=108, V=214, A=238, el tono cambiará muy poco a la vista y así no se notará
que se ha modificado. Ahora, si la resolución que se maneja es muy alta, es decir,
cada color base se representa no por 8 sino por 16 o 24 bits, esto será mucho
menos notorio.
Suponga una foto, la cual, al mirarla en “lenguaje” computador se trata de una
serie de unos y ceros, si suponemos que es una foto de 640 x 480 pixels y que
cada color básico se representa en 8 bits, tendríamos 2.457.600 bits disponibles
para ocultar un mensaje, es decir, si pensamos en un texto de caracteres básicos
se trataría de 307.200 caracteres. ¿Qué pasaría si la foto fuera de 1920 * 1080 y
cada color básico se representa con 16 bits?, ¿cuántos caracteres podría ocultar?.
Entonces, cómo funciona?,
El LSB es el bit más a la derecha del número, Si pensamos en el número 29 en
binario, estamos pensando en el 11101, el 1 más a la izquierda es el más
significativo y un cambio en ese bit será muy notorio (pasaría a 01101 = 15),
mientras que si pensamos en el 1 de más a la derecha, estamos hablando del
menos significativo (pasaría a 11100 = 28) y un cambio en él pasará casi
desapercibido.
Ejemplo:
Suponga que se tiene una imagen se poseen los siguientes valores en 3 píxeles:
Píxel
Primero
Segundo
Tercero
R
0010011
0010011
1100100
1
1
0
1110100
1100100
0010011
1
0
1
1100100
1110100
1110100
0
1
1
G
B
Ahora, suponga que se quiere ocultar la letra A que en ASCII equivale al
65(100000011). Entonces el mecanismo consistirá en reemplazar los valores
menos significativos de la imagen por los bits que representan la letra, colocando
estos valores en el último bit de cada byte que representan los píxeles.
Píxel
Primero
Segundo
Tercero
R
0010011
0010011
1100100
1
0
1
1110100
1100100
0010011
G
B
0
0
1
1100100
1110100
1110100
0
0
1
Los valores en negrilla representan la letra A y de esos, los que aparecen
subrayados son los que han sido realmente modificados, para cada píxel, y el
color de la imagen casi no varía, por eso para el ojo humano es imposible
distinguir esa diferencia de colores.
Este mismo procedimiento se podría aplicar a películas, en cuyo caso cada píxel
se cambia por el que lleva oculta la información, siendo prácticamente imposible
para el ojo humano la percepción de los cambios de color en las imágenes
proyectadas en la película.
3.3.3 Esteganografía en sonido
Esta técnica usa el mismo principio de las dos anterior, es decir, se busca
esconder un mensaje, ahora en un sonido. La premisa para usar este mecanismo
es que el sonido sobre el cual se ocultará información debe ser digital, de tal
manera que, a la luz del computador, se trate de 0 y 1 como cualquier otro archivo.
Partiendo de esta premisa, la estenografía usa el mismo principio que revisamos
en la estenografía en imágenes, se trata de tomar el bit menos significativo de los
bytes que representan el sonido, de tal manera que una modificación en dichos
bits no signifique un gran cambio en el sonido, al punto de llegar a ser
imperceptible.
Si tenemos una señal análoga y la digitalizamos, lo que se hace es tomar
muestras cada tanto tiempo para hacer una representación de la señal, dando una
equivalencia numérica a la señal capturada como se presenta en la figura 3.1.
Figura 3.1: Cuantificación
Con esa equivalencia numérica se puede hacer el procedimiento esteganográfico,
si se modifica una de muestras tomadas en el bit menos significativo la curva
variará muy poco y no será notoria para el oído humano.
Es de aclarar que aquí solo se presentaron tres técnicas de estenografía, pero no
son las únicas. Simplemente se citaron y explicaron a modo de ejemplo y pueden
ser extrapoladas u otros ambientes o sistemas.
4. Mecanismos de cifrado simétrico
4.1 Generalidades
La encripción simétrica o cifrado simétrico, como ya se ha mencionado antes,
busca convertir un texto plano en un texto ilegible, de tal manera que la
información cifrada no se pueda obtener a menos de que se realice un proceso de
criptoanálisis.
En particular, la criptografía simétrica se basa en dos elementos:
1. Algoritmo de Encripción/desencripción: son el conjunto de reglas que
indican cómo convertir un texto plano en cifrado
2. Clave/llave secreta: Es una palabra o frase secreta que será usada dentro
del algoritmo para realizar el proceso de cifrado y que le agregará una
mayor complejidad al proceso de criptoanálisis, de tal manera que un
mismo texto cifrado con un mismo algoritmo de cifrado pero con diferentes
claves, darán diferentes textos cifrados.
El término simétrico hace referencia a que la llave secreta será la misma tanto
para
el
proceso
de
encripción/cifrado
como
para
el
proceso
de
desencripción/critpoanálisis, de lo contrario, el texto no dará el mismo.
Esta condición de simetría es el punto álgido de este tipo de mecanismos, ya que
implica que los dos actores (origen y destino) se pongan de acuerdo en la llave
que usarán y esto implicará un riesgo de seguridad ya que de alguna manera
deberán acordar la llave y mientras se esté en el proceso de acuerdo es posible
que dicha llave se vea comprometida (es posible que la roben). Por ejemplo: si
para definir la clave se envían e-mails, dichos correos irían en texto plano y si
alguien captura esos mensajes tendrá la clave secreta y podrá descifrar cualquier
mensaje que sea enviado con dicha clave. Pasará lo mismo si se acuerda la clave
a través de una conversación telefónica, ya que también es posible que alguien
esté espiando la línea y escuchando la conversación, en cuyo caso igual tendría la
clave.
Ahora, si lo una persona requiere es guardar su información cifrada para que
nadie, sino ella misma, pueda acceder a ésta, este tipo de algoritmos es la opción
perfecta, pues el algoritmo de cifrado más la clave permitir mantener la
información segura y la llave secreta no tendrá que ser compartida con nadie.
Con lo dicho en el párrafo anterior, no se quiere decir que este tipo de algoritmos
no pueda ser usado como mecanismo de cifrado cuando se tiene varios actores, lo
que quiere decir es que es un mecanismo ideal para encripción de información en
donde no se comparte la llave secreta y que si se requiere compartir la clave se
debe tener extremo cuidado en el proceso de definición de la misma y su
transmisión.
En la figura 4.1 se presenta el proceso de cifrado con este tipo de algoritmos
Figura 4.1: Proceso de cifrado/descifrado simétrico
Como ejemplos comerciales de este tipo de mecanismos podemos encontrar,
entre otros, los siguientes
1. DES
2. Triple DES
3. IDEA
4. Blowfish
5. SAFER
6. AES
En las siguientes secciones de este capítulo se dará una explicación de algunos
de ellos y se dará bibliografía de apoyo para profundizar al respecto.
4.2 Algoritmos
4.2.1 DES
El algoritmo de cifrado simétrico DES o Data Encryption Standard es un algoritmo
de cifrado por bloques, en donde se manejan bloques de datos de 64 bits y una
llave de encripción/desencripción de 64 bits de los cuales realmente 56 bits
corresponden a la clave como tal y 8 bits se usan para control (checksum).
Puede ser implementado tanto en hardware como en software y en firmware. Este
algoritmo fue desarrollado por IBM en la década de los 70s y hacia finales de esta
misma década fue adoptado por las organizaciones federales de los Estados
Unidos como estándar de cifrado para proteger datos sensibles4.
Por muchos años se consideró inviolable, hasta que en 1998 se realizó un
concurso para romperlo y finalmente se logró, desde ese momento y cada vez
más (debido al poder de cómputo de los nuevos computadores y a las
capacidades de procesamiento distribuido con que se cuenta) este algoritmo
ahora es considerado poco fiable.
4
(Federal Information Processing Standards Publication, 1999)
Funcionamiento
En términos generales, el algoritmo consiste en tomar un bloque de 64 bits del
texto plano al cual se le debe realizar una permutación inicia, luego de esto,
partirlo en subbloques de 32 bits cada uno y realizar 16 iteraciones en las que los
subbloques son intercambiados y operados entre sí y con porciones de la clave
para finalmente unir los subbloques y realizar una permutación final. Después de
este proceso se obtendrá el texto cifrado. En la figura 4.2 se esquematiza este
proceso:
Figura 4.2: Funcionamiento general DES6 CAP
La permutación inicial consiste en “desordenar” los bits del texto original como se
muestra en la figura 4.3:
Figura 4.3: Permutación inicial DES
Es decir, se toma el bit 58 del bloque de texto original y se coloca en la posición 1,
ahora se toma el bit 50 y se coloca en la posición 2, y así sucesivamente hasta
que el bit 15 se coloca en la penúltima posición (posición 63) y el 7 en la última
posición (posición 64).
Ahora, la permutación final se presenta en la figura 4.4:
Figura 4.4: Permutación final DES
Nota: La interpretación de esta permutación será la misma de la primera
permutación
Entrando a mirar las 16 iteraciones, el proceso que se realiza en cada una de ellas
se esquematiza en la figura 4.5:
Figura 4.5: Iteraciones DES
En donde L son los primeros 32 bits del bloque original (subbloque izquierdo) y R
son los últimos 32 bits del bloque original (subbloque derecho).
Para entender más fácilmente como funciona, supongamos que vamos a entrar a
la primera iteración, entonces:
Se toma el subbloque R1 y se pasa por un proceso de generación, en el cual se
convierten 32 bits en 48 bits como se muestra a en la figura 4.6.
Figura 4.6: DES de 32 a 48 bits
Como se ve en la figura 4.6, el bit 32 se coloca en la posición 1, el bit 1 en la dos y
así sucesivamente hasta el final. La manera de generar 48 bits a partir de 32 es
colocando algunos bits repetidos, por ejemplo el bit 1 se coloca en la posición 2 y
en la 32.

Luego, se realiza un XOR entre los recién generados 48 bits y una parte de
la clave de 48 bits (mas a delante se explicará la manera como son
definidos cuáles 48 bits de la clave se toman) para luego realizar un
proceso de sustitución en el que se vuelven a convertir los 48 bits en 32
bits. Este proceso se muestra en la figura 4.7.
Figura 4.7: DES de 48 a 32 bits
El proceso se basa en algo llamado S-BOX, 8 en total las cuales permiten
convertir 6 bits en 4, con lo cual se reduce en total de 48 bits a 32 bits.
Para entender como lo hace, en la figura 4.8 se presenta el comportamiento de la
S-BOX 1.
Figura 4.8: DES - SBOX 1
La manera como funciona es la siguiente, pero para hacerlo más claro
supongamos que los 6 bits que están entrando a esta SBOX son 110100:
1. Se toman los bits exteriores que entran a la S1, es decir 1 1 0 1 0 0 = 1 0
que equivale al número 2 en decimal, que para la explicación llamaremos X.
2. Ahora se toman los 4 bits internos que entran a la S1, es decir 1 1 0 1 0 0 =
1 0 1 0 que equivale al número 10 en decimal, que para la explicación
llamaremos Y.
3. Entonces, se toma el contenido de la fila X de la matriz mostrada arriba y la
columna Y, que para este caso será el número 9.
4. Este número se pasa a binario. Es decir será 1 0 0 1. Y este será el número
que salga de la SBOX 1, note que la salida fue de 4 bits.
Cada SBOX es diferente y en la figura 4.9 presentan las otras 7 sbox que están
definidas en el algoritmo:
Figura 1.9: DES - SBOX 2 a 810 CAP
Ahora, se realiza una permutación de los 32 bits en donde se “desordenan” de
manera similar a como se hace la permutación inicial y final vistas antes, la cual se
muestra en la figura 4.10.
Figura 4.10: DES permutación en cada iteración

Finalmente, después de “desordenados” se realiza un XOR con el
subbloque L1 y eso se convertirá en el bloque R2 el cual se usará durante la
siguiente iteración.

Respecto al subbloque L2 , que ´será usado en la siguiente iteración,
simplemente deberá moverse el subbloque R1 , es decir, el bloque R1 se
convertirá en la primera mitad del bloque de 64 bits que se operará en la
segunda iteración.
Nuevamente, es importante recordar que todo el proceso descrito anteriormente,
se realizar 16 veces lo cual se convierte en parte de la complejidad del algoritmo.
Ahora, como se vió en la descripción del algoritmo DES, en cada una de las
iteraciones se usa una porción de 48 bits diferentes de la llave (subclave) para
hacer un XOR con un bloque de 48 bits de datos, para la generación de dichas
subclaves el proceso consiste en realizar una permutación inicial entre los bits que
conforman la clave total, para luego realizar una serie de corrimientos de bits y
permutaciones adicionales para determinar los bits de la clave que serán usados
en las iteraciones particulares.
Por ejemplo, para generar la primera subclave, se toma la clave total y se
permuta, luego se parte en dos bloques iguales a los que de manera
independiente se les aplica un corrimiento de bits, para luego, nuevamente unirlos
y realizar otra permutación. El resultado de este proceso producirá la subclave de
la primera iteración. A continuación se muestra a través de en la figura 4.11 el
proceso que se realiza.
Figura 1.11: DES Generación de sublclaves
4.2.2 Triple DES
Como ya se mencionó en el numeral anterior, DES ya fue roto y como una
alternativa para seguirlo utilizando aparece triple DES. El mayor problema de DES
estaba relacionado con el tamaño de clave de 64 bits (56 bits de clave y 8 de
paridad), para responder a esto, Triple DES maneja claves de 128 bits (112 bits de
clave y 16 de paridad).
La manera como funciona consiste en tomar la clave de 128 bits y partirlas en dos
claves de 64 bits (tamaño del DES tradicional), K1 y K2 y utilizarlas como se
muestra en la figura 4.12.
Figura 4.12: TripleDES - cifrado de datos12 CAP
El proceso es el siguiente;
1. M es el texto plano
2. Utilizando la clave K1 se cifra el texto M usando DES
3. Utilizando la clave K2 se descifra el texto resultado del proceso anterior
4. Finalmente, utilizando la clave K1 se cifra el texto resultado del proceso
anterior y así se obtendrá C que es el texto cifrado con Triple DES
El proceso de descifrado será aplicar las claves y pasos en orden inverso, como
se ilustra en la figura 4.13.
Figura 4.13: Triple DES - descifrado de datos
Algunas variaciones a este mecanismo son:
1. Puede realizarse el proceso cifrando con K1, cifrando ahora con K2 para
finalmente volver a cifrar con K1. El proceso de descifrado será descifrar
con K1, descifrar con K2 para finalmente descifrar con K1.
2. También puede trabajarse con claves de 192 bits (168 bits de clave y 24
bits de control), en este caso la clave se parte en 3 (K1, K2 y K3). Así, lo
que se hace es utilizar una vez cada clave y no como en los casos
anteriores en los que la clave K1 se utilizaba dos veces en el proceso.
4.2.3 IDEA
El algoritmo de cifrado simétrico IDEA o Internacional Data Encryption Algorithm
fue desarrollado en el Instituto Federal Suizo de Tecnología por Xuejia Lai y
James Massey hacia principios de los 90s. Es un algoritmo orientado a bloque (al
igual que DES) que maneja bloque de 64 bits y clave de 128 bits.
El algoritmo consiste en tomar 64 bits de datos y realizar con ellos 8 iteraciones en
donde se subdivide los 64 bits en 4 subbloque de 16 bits cada uno. Estos
subbloque serán operados entre ellos, con partes de la clave y cambiándolos de
posición. Luego de las 8 iteraciones, se realiza una transposición final y el
resultado de esta será el texto cifrado. En total se requieren 52 porciones
diferentes de la clave, para cada iteración se requiere 6 subclaves diferentes y
para la transposición final se requieren 4 subclaves más. En la figura 4.14 se
presenta un esquema del algoritmo de cifrado IDEA el cual hace parte del artículo
de investigación en donde los autores explican el algoritmo5:
5
(Lai & Massey, 1991)
Figura 1.14: Algoritmo IDEA
4.2.4 AES
AES o Advanced Encryption Standard es un nuevo mecanismo de cifrado
simétrico de datos que reemplazó a DES. Actualmente es el nuevo estándar de
cifrado simétrico oficial del gobierno americano para información no confidencial y
está definido en el RFC-3565 y el fips-197.
Para su escogencia, en el año 1997 el NIST (Nacional Institute of Standard and
Technology) del gobierno de los Estados Unidos realizó una concurso abierto en la
búsqueda de un nuevo mecanismo de cifrado simétrico que reemplazar al viejo
algoritmo DES y su sucesor Triple DES. Dicha concurso tenía como requisitos los
siguientes:
1. Debería ser un algoritmo simétrico por bloques.
2. Tendría que ser un algoritmo público, lo cual implicaría que el poder del
mecanismo no estaría en el desconocimiento o secreto del algoritmo sino
en el poder de cómputo que implicaría tratar de romperlo sin conocer la
llave de cifrado.
3. Debería manejar tamaños de llaves de 128, 192 y 256 bits.
4. Finalmente, la implementación del algoritmo debería poderse hacer por
hardware y por software.
A partir de estos requisitos, se lanzó la convocatoria al concurso y en el año 2000,
después de haber recibido cerca 15 propuestas de todo el mundo se escogieron 5:
MARS, RC6, Rijndael, Serpent y Twofish y después de la evaluación de estos se
seleccionó el algoritmo Rijndael presentado por Joan Daemen y Vincent Rijmen
como el algoritmo oficial de AES. Para el año siguiente fue renombrado como AEA
(Advanced Encryption Algorithm) y salió al público como parte de AES.
Las principales características del algoritmo Rijndael son:
1. Maneja claves variables. El tamaño de la clave por defecto es de 192 bits
(AES - 192), pero se puede configurar para que funcione con claves de 128
bits (AES - 128) o de 256 bits (AES - 256).
2. Es 40 % más rápido que triple DES
3. Seguridad de la clave. “Una clave de 128 bits da un espacio de claves de
2128 equivale a 3 x 10 38 claves. Incluso si la NSA se las arregla para
construir una máquina con 1000 millones de procesadores en paralelo,
cada uno de los cuales es capaz de evaluar 1 claves por picosegundo, a tal
máquina le llevaría 1010 años buscar en el espacio de claves. Para ese
entonces el Sol ya se hará apagado, por lo que las personas existentes
tendrán que leer los resultados a la luz de las velas”.6
4. Está escrito en lenguaje C
Funcionamiento
Las características generales de funcionamiento del algoritmo son:

Los bloques de datos que maneja son de 128 bits.

Manera entre 10 y 14 iteraciones dependientes del tamaño de la clave.
Para AES - 128 se realizarán 10 iteraciones, para AES - 192 serán 12
iteraciones y finalmente, para AES - 256 tendrá 14 iteraciones.

El algoritmo toma bloques de 128 bits y “partes” de la clave de 128 bits.

Realiza operaciones como XOR, sustituciones, rotaciones y operaciones
con matrices entre subbloques de datos y partes de la clave.

6
Maneja S-box (del estilo de DES)
(Tanembaum, 2003)
PROCESO DE CIFRADO
A continuación, se ilustra en la figura 4.16 el proceso que se realiza.
Figura 1.16: Proceso de cifrado con AES
Como se muestra en la figura 1.16, el primer paso es tomar bloque de datos de
128 bits organizados por columnas en una matriz (para efectos de la explicación, a
esta matriz y cualquiera de sus transformaciones la denominaremos matriz de
datos, en inglés state) de 4 columnas por 4 filas (1 byte - 8 bits por celda o
posición de la matriz), comenzando desde la fila uno, columna uno, luego fila dos,
columna uno, es decir, la matriz de datos se llena por columnas, los cuales se
operan con transformaciones de la clave de cifrado (más adelante se explicará
este proceso). En la figura 4.17 se presenta un ejemplo de texto plano, éste se
presenta en formato hexadecimal por facilidad, en la parte de arriba aparece una
representación hexadecimal del texto a cifrar y en la parte de abajo la
representación matricial del mismo texto.
Figura 4.17: Texto plano
Luego, se toma la matriz de datos y una matriz que contiene la clave de cifrado
(esta matriz de la clave irá cambiando durante cada iteración del algoritmo, más
adelante hablaremos de esto) y se realiza un XOR entre ellas.
Después de esto y por 10 iteraciones (en el caso de AES - 128 bits) se realiza el
siguiente proceso:

Sustitución de bytes: Se realizan sustituciones de cada byte de la matriz
de datos a partir de una S-BOX de manera similar a como se realizaba en
DES, en este punto vale la pena destacar que AES solamente usa una SBOX de 16x16 mientras que DES utilizaba ocho S-BOX cada una de 4x16.
Específicamente, se toma cada byte de la matriz de datos (una posición de
la matriz), este byte dará la posición de la S-BOX que reemplazará a dicho
dato, los primeros 4 bits referenciarán la fila de la S-BOX y los otros 4 bits la
columna, así, el valor almacenado en la casilla de cruce dará el byte de
reemplazo. Por ejemplo, si el byte de la matriz de datos ubicado en la
posición 1,1 contiene en hexadecimal el valor a4, el valor de reemplazo
para la posición 0,0 de la matriz de datos será 49, otro ejemplo podría ser,
si el byte ubicado en la posición 2,1 de la matriz de datos contiene en
hexadecimal el valor bd, el valor de reemplazo para dicha posición será 7a.
Este mismo proceso se realizará para cada celda (un byte) de la matriz de
datos (16 celdas = 4 filas * 4 columnas). En la figura 1.18 se presenta laSBOX definida en el estándar.
Figura 4.18: S-BOX
Para el caso del texto plano presentado en la figura 4.17, la nueva matriz de
datos, después de aplicar la sustitución se presenta en la figura 4.19.
Figura 4.19: Matriz de datos después de la sustitución AES

Corrimiento de filas: Luego se realiza un corrimiento de bits a nivel de filas
dentro de la matriz de datos, el cual consiste en mover los bytes ubicados
en cada columna sobre las mismas fila a las que pertenecen tantos
columnas a la izquierda como número de la fila a la que pertenecen, es
decir, en la fila 0, se realiza un corrimiento a la izquierda de 0 bytes, en la
fila 1, se corren 1 byte, etc. En la figura 4.20 se muestra una representación
gráfica de este proceso.
Figura 4.20: Corrimiento de filas

Mezcla de columnas: El tercer paso en las iteraciones es mezclar
columnas, en éste, se toman los bytes de una misma columna (columna1,
columna2, columna3 y columna4) de la matriz de datos, a quien llamaremos
M en este punto y se realiza una multiplicación de matrices con un matriz
de transformación definida por el algoritmo, la cual se puede ver en la figura
4.21, con lo cual se obtiene una nueva versión de la matriz de datos que
llamaremos aquí M’ para claridad de la formula presentada abajo.
Figura 4.21: matriz de transformación
En general, la nueva matriz de datos se calcula a partir de las siguientes fórmulas

∀j; 0 ≤ j ≤ 4

M’[0, j] = (02 × M[0, j]) ⊕ (03 × M[1, j]) ⊕ M[2, j] ⊕ M[3, j]

M’[1, j] = M[0, j]) ⊕ (02 × M[1, j]) ⊕ (03 × M[2, j]) ⊕ M[3, j]

M’[2, j] = M[0, j]) ⊕ M[1, j] ⊕ (02 × M[2, j]) ⊕ (03 × M[3, j])

M’[3, j] = (03 × M[0, j]) ⊕ M[1, j] ⊕ M[2, j] ⊕ (03 × M[3, j])
Es decir, para calcular el nuevo valor de la posición 0,0 y 2,3 de la matriz de datos
se realizan las siguientes operación:

M’ [0, 0] = (02 × M[0, 0]) ⊕ (03 × M[1, 0]) ⊕ M[2, 0] ⊕ M[3, 0]

M’[2, 3] = M[0, 3]) ⊕ M[1, 3] ⊕ (02 × M[2, 3]) ⊕ (03 × M[3, 3])
Se realiza este mismo procedimiento para cada una de las celdas de la matriz de
datos apoyada en la matriz de transformación hasta obtener la nueva versión de
la matriz de datos.
Finalmente, se operan la matriz de datos y una nueva versión de la matriz de la
clave aplicando un XOR a cada celda.
La última parte del proceso es similar a las anteriores iteraciones sin la mezcla de
columnas, es decir, sin la operación de multiplicación de matrices entre la matriz
de datos y la matriz de transformación vista en la página anterior. La matriz de
datos al final de todo este proceso se coloca por columnas y esto será el texto
cifrado.
GENERACIÓN DE LA LLAVE
El proceso de generación de la porción de la llave que es utilizada en cada
iteración es el siguiente:

Se toma la clave original organizada en una matriz de clave de 4 filas de
manera similar a como se hizo para la generación de la matriz de datos a
partir del bloque de datos, en el ejemplo de clave de 128 bits será de 4x4.
Ver figura 4.22
Figura 1.22: claves AES - 128

Se genera una semilla de arranque para la siguiente clave, para lo cual se
toma la última columna de la matriz de la clave y se realiza el siguiente
proceso:
o Se realiza un corrimiento a la izquierda de un byte (8 bits) sobre la
columna. Por ejemplo, para el caso de claves de 128 bits, la matriz
de clave tendrá 4 filas por 4 columnas, entonces sobre la columna
cuatro de dicha matriz, se toma el contenido de la celda ubicada en
la fila 1 y se ubica en la fila 4 (de la misma columna 4), el de la fila 2
a la 1, el de la 3 a la 2 y el de la 4 a la 3. Ver figura 4.23
Figura 1.23: Corrimiento de bits de la clave
o Luego, usando la S-BOX se transformarán los valores de cada celda
en unos nuevos de la misma manera que se hace durante el cifrado
de datos con la matriz de datos. Ver figura 4.24 y 4.18
Figura 4.24: Sustitución con S-BOX
o A ese resultado (columna 4) se le aplica un XOR con la primera
columna de la matriz de la clave actual y otro XOR con una columna
de otra matriz llamada RCON definida en AES, la columna a tomar
dependerá de la iteración en la que se encuentre (primera iteración,
columna 1, segunda iteración, columana 2, etc). El resultado de esta
operación será la primera columna de la siguiente clave. Ver figura
4.25
Figura 4.25: XOR con RCON

Ahora, para la generación de las siguientes columnas (columna 2, 3 y 4) se
realiza un XOR entre la última columna recien generada y la columna que
se está generando pero de la clave anterior. Es decir, si se está generando
la columna 3, se tomará la columna 2 recien generada y se hará XOR con
la columna 3 de la clave anterior. Ver figura 4.26
Figura 4.26: Generación final de clave

El resultado de este proceso será la nueva clave para ser usada en la
siguiente iteración del proceso de cifrado de los datos, lo cual se repetirá
las veces que sea necesario (entre 10 y 14 veces). Dicha clave para la
primera iteración se observa en la figura 4.26.
PROCESO DE DESCIFRADO
En el destino, el proceso de criptoanálisis consistirá en reversar el algoritmo antes
mencionado sobre el texto cifrado, usando la clave simétrica correspondiente, la
cual deberá pasar por los mismos procesos de generación de claves presentado
en el apartado anterior. Adicionalmente, vale la pena aclara que para este
proceso, se deberá utilizarse:

Una matriz de transformación inversa que se presenta en la figura 4.27
Figura 4.27: Matriz de transformación inversa

Un corrimiento de filas inverso, el cual se presenta en la figura 4.28
Figura 4.28: corrimiento inverso

Una S-BOX inversa, la cual se presenta en la figura 4.29
Figura 4.29: S-BOX Inversa
4.3 Diffie-Hellman, para el intercambio seguro de claves
Como hemos apreciado, los mecanismos simétricos de cifrado son bastante
robustos, su punto sensible está en el intercambio de la clave secreta. Como una
respuesta a este problema, Whitfield Diffie and Martin Hellman en 1976 crearon un
algoritmo para intercambio de llaves que permitía que dos actores dentro de una
comunicación pudieran ponerse de acuerdo en la llave común que utilizarían sin
que esta viajara sobre la red. Este mecanismo está especificado en el RFC-2631.
La manera como funciona el algoritmo esta basada en un par de números, uno de
ellos primos, operaciones de potenciación y modulo y números aleatorios. En la
figura 4.30 se muestra su funcionamiento.
Figura 4.30: Funcionamiento algoritmo diffie Hellman
La idea es la siguiente:
1. A y B son los actores dentro de una comunicación y quieren definir una
llave común
2. Entonces, se transmiten entre ellos dos número β y q, donde q es un
número primo y β es un número menor que q.
3. Ahora, cada uno, A y B, se define un número aleatorio X a y X b , los cuales
no transmitirán a través de la red y sólo A conocerá X a y sólo B conocerá X
b
4. Seguidamente se realizar las operaciones que se muestran en la gráfica
para producir Y a y Y b.
5. Después de esto, A transmite a B su Y a y B transmite a A su Y b .
6. Con estos datos A realiza la operación K = Y b Xa mod q y B realiza la
operación K = Y a Xb mod q. Ambas operaciones darán el mismo resultado.
7. Por lo cual, finalmente, la llave común de cifrado/descifrado será la que en
el gráfico apareced como K.
De esta manera, A y B definieron su llave secreta sin transmitirla. Este mecanismo
es el primer paso en busca de los mecanismos de cifrado asimétrico.
5. Mecanismos de cifrado asimétrica
Al igual que la criptografía simétrica, la encripción asimétrica o cifrado asimétrico
busca convertir un texto plano en texto ilegible, de tal manera que la información
cifrada no se pueda obtener a menos de que se realice un proceso de
criptoanálisis.
En particular, la criptografía asimétrica se basa en dos elementos:

Algoritmo de Encripción/desencripción: son el conjunto de reglas que
indican cómo convertir un texto plano en cifrado

2 Clave/llave por actor: Es un juego de llaves, una conocida como privada y
la otra como pública. La privada solo es conocida por el “dueño” del par de
llaves y la pública es conocida por cualquier actor que quiera realizar
procesos de cifrado/descifrado con el dueño de las claves.
En particular, por el segundo elemento antes mencionado es que este tipo de
algoritmo recibe el nombre de asimétrico. Una de las llaves es usada para realizar
el proceso de cifrado y la otra para el proceso de descifrado, es decir, si cifro con
la llave pública, descifro con la llave privada y si cifro con la llave privada,
entonces descifro con la llave pública.
El manejo de las dos llaves es lo que permite una mayor seguridad en el
cifrado/descifrado, ya que nunca debe ser transmitida parte de la llave y conocer el
algoritmo de cifrado y la llave pública no es suficiente para romper el algoritmo.
Obviamente, todo dependerá de la seguridad con la que será guardad la llave
privada pero es más fácil esto que el envío seguro de la llave simétrica (única) de
los mecanismos como DES y AES.
Otro ventaja adicional es que con los algoritmos de llaves públicas y privadas es
posible además de cifrar información para que no sea vista sino por el destino, es
posible cifrar información con el único objetivo de garantizar que quien lo haya
cifrado sea quien dice ser (similar a firmar un documento) – autenticación o la
combinación de las dos anteriores. En los siguientes diagramas se presentan los
procesos aquí mencionados y se da una breve explicación de ellos.
5.1 Cifrado de datos
En la figura 5.1 se presenta el proceso de cifrado de datos usando mecanismos
asimétricos.
Figura 5.1: Cifrado de datos
En este caso, A desea enviar un texto a B y que solo B lo pueda ver. Para esto lo
que A debe hacer es cifrar el texto con la llave Pública de B de tal manera que
solo B la podrá ver, ya que solo B tiene la llave privada B con la cual podrá
descifrar el texto.
Ahora, ¿cómo tiene acceso A a la llave pública de B?, hay dos caminos:
1. B puede haberle enviado en algún momento su llave privada a todos los
que interactúan con él para que cuando requirieran enviarle algo ya la
tuvieran y la usaran. Este camino solo tiene un defecto, ¿cómo estar
seguros que quien envío la llave pública de B era realmente B?, que tal que
fuera un impostor haciéndose pasar por B?. Aquí la única forma de saberlo
es basado en relaciones de confianza o que personalmente B entregue su
llave.
2. La otra opción es que se defina un lugar seguro en donde todos los actores
dejen sus llaves públicas y que cuando alguien necesite la llave pública de
alguien la vaya a buscar a ese lugar, el cual se conoce como Repositorio
Público. Lo que aquí se debe garantizar es que el repositorio público de fe
de que las llaves públicas que almacena son de quien dicen ser.
Cuando A envíe el texto cifrado por la red la única manera de descifrar el texto
será con la llave privada de B, ni siquiera A que fue quien cifró el texto podrá
descifrarlo, por lo cual se da garantía de que solo B tendrá acceso a la
información.
5.2 Autenticación de quien envía los datos
En la figura 5.2 se presenta el proceso de autenticación de la fuente de datos
usando mecanismos asimétricos.
Figura 5.2: Autenticación de la fuente de datos
En este caso, lo que se desea es garantizar que quien está enviando el texto es
quien dice ser, un ejemplo comparativo puede ser cuando el gerente de una
empresa desea enviar un comunicado a todas las dependencias de la empresa, a
él le interesa que todos puedan ver el comunicado, pero también le interesa que
sepan que quien realmente lo emitió fue él, para ello lo que hace es colocar su
firma en el comunicado. Ahora, para el caso de mecanismos de cifrado asimétrico
si A desee enviar un texto dando garantía de que fue A quien lo generó, lo que
debe hacer es cifrar el texto con la llave privada de A, de tal manera que
cualquiera lo pueda descifrar con la llave pública de A. De esta manera, el
mensaje puede ser visto por cualquiera que tenga acceso a la llave pública de A
(ya sea que A se la ha enviado con anticipación o que la obtenga del repositorio
público) y se da garantía de que quien envió el mensaje es realmente A, pues sólo
A tiene su llave privada y sólo se podría descifrar un texto con la llave pública de A
si se ha cifrado con la llave privada de A.
5.3 Cifrado de datos y Autenticación de quien envía
En la figura 5.3 se presenta el proceso de cifrado de datos y luego la posterior
autenticación de la fuente de los mismos usando mecanismos asimétricos.
Este caso es la combinación de los dos casos anteriores, aquí lo que se pretende
es garantizar que A es quien envía los datos y que sólo B pueda verlos, para lo
cual se debe realizar un primer cifrado con la clave privada de A (para garantizar
que A es el transmisor) y un segundo cifrado con la clave pública de B (para que
solamente B la pueda descifrar). Cuando llegue este mensaje al destino, es decir
B, se debe descifrar con la llave pública de A (que la puede obtener del
repositorio) y con su llave privada (que sólo él tendrá).
Figura 1.3: Autenticación de la fuente de datos y cifrado de datos
Una característica de este proceso es que es conmutativo, es decir, que no
importa cuál de las dos llaves aplique primero para cifrar o para descifrar, igual
dará el mismo resultado.
Una desventaja de estos algoritmos está relacionado con su velocidad de cifrado y
descifrado, la cual es menor respecto a los algoritmos simétricos.
5.4 Algoritmo RSA
Como un ejemplo comercial de este tipo de mecanismos podemos encontrar, el
algoritmo RSA. El cual fue desarrollado en la década de los 70s (1977) y
registrado en 1983 por sus autores Ronald Rivest, Adi Shamir y Leonard Adelman.
La mayor fortaleza de este algoritmo reside en la dificultad técnica de factorizar
números primos de gran magnitud. “De acuerdo con Rivest y sus colegas, la
factorización de un número de 500 dígitos requiere 1025 años de tiempo de
cómputo utilizando el mejor algoritmo conocido y una computadora con un tiempo
de instrucción de 1 µseg”7.
El algoritmo para definición de las claves es el siguiente:

Se toman dos números primos suficientemente grandes ( > 10 100 ). Que
se llamaran p y q.

Sea n = p * q y z = (p-1)*(q-1)

Se elige un número d, menor que n y primo relativo con z, es decir, d y z
tienen factor común sólo a 1.

Se debe encontrar un número e, de tal forma que ( e * d ) mod z = 1

e y d son exponentes público y privado, entonces
o (n,e) es la clave pública
o (n,d) es la clave privada
Ya teniendo las llaves pública y privada, los procesos para cifrado y descifrado de
datos son:

Cifrado: C = P e mod n

Descifrado: P = C d mod n
5.5 Firmas digitales
A continuación se presenta una aplicación de la encripción asimétrica a los
proceso de autenticación de usuarios.
7
(Tanembaum, 2003)
5.5.1 Generalidades
La firma digital es un mensaje único e individual que se une a un documento para
probar:

La identidad del emisor: Que quien envía el mensaje sea realmente quien
dice ser (falsificación del origen) y luego no puede negar que lo hizo (no
repudio de origen).

La integridad del documento: Que no ha sido modificado durante el
almacenamiento o la transmisión del mismo (falsificación de datos).

Tiempo transcurrido entre el envió y la recepción del documento: Que el
mensaje se ha enviado y recibido en un tiempo que se define como
“prudencial” o “válido”.
Unas características importantes que deben cumplir las firmas digitales son:

Fáciles de crear: Debe permitir al usuario crear una firma y adjuntarla a un
documento fácilmente.

Fáciles de verificar: la fecha y hora de la firma, su autor y la no modificación
de datos deben poder verificarse con un procedimiento sencillo y rápido.

Difíciles de falsificar: La fortaleza de las llaves y los algoritmos de cifrado
deben garantizar que no es posible suplantar al verdadero emisor de la
firma.
Algo que hace particular a las firmas digitales, y que las diferencia de manera
contundente de las firmas manuscritas que generamos las personas, es que las
firmas digitales son diferentes para diferentes documentos y hasta para un mismo
documento generado por un mismo autor en diferente fecha y hora.
Adicionalmente, de la misma manera que sucede con las firmas manuscritas, las
firmas digitales deben poder ser verificables por terceros, de tal manera que en
caso de disputas se pueda determinar cuál de las partes tiene la razón. Este es
realmente el potencial de las firmas digitales. Un ejemplo de este uso puede ser el
siguiente:

Suponga dos personas, Pedro y María, Pedro es un inversionista y María
es la comisionista de bolsa que lo atiende.

Suponga que Pedro le envía un mail a María solicitándole que invierta
US$500.oo en acciones de la compañía ABC porque escuchó que están
baratas y van a subir un 50%.

María recibe el mail, realiza la transacción y compra las acciones.

Al día siguiente, pueden haber pasado dos cosas:
o Las acciones efectivamente suben el 50% que Pedro escuchó, en
este caso no pasa nada “malo”. María realizó su trabajo y ahora
Pedro tendrá una muy buena inversión.
o Las acciones no suben el 50% sino que bajan un 80%. Pedro habrá
perdido una parte considerable de su inversión. Ante esta situación,
Pedro podría decir que él nunca solicitó que se realizara la
transacción. Que María efectuó la transacción sin contar con su
aprobación. ¿Cómo se comprobaría si el mensaje realmente existió y
que lo envió Pedro?. La respuesta está en las firmas digitales, si
Pedro firma el mensaje que envía a María se podrá garantizar que el
mensaje proviene de Pedro (pues es el único que tiene la llave
privada) y que los datos no han sido alterados. De esa manera, se
puede garantizar el no repudio y la no falsificación del origen y la no
falsificación de los datos.
Aunque ya puede intuirse, es importante ratificar adicionalmente que una firma no
consiste en:

Digitalizar la firma manuscrita de una persona. Pues al tener una firma
digitalizada puede ser fácilmente manipulada, copiada y pegada en
cualquier mensaje sin importar quien lo hace. No es lo mismo una firma
digitalizada que una firma digital.

No es un proceso de cifrado asimétrico típico. Aunque si usa los algoritmos
asimétricos de cifrado para su creación.
5.5.2 Funciones de hash
Al igual que el cifrado asimétrico, para la creación de una firma digital se utilizan
las funciones de hash, por lo tanto, antes de explicar cómo funcionan las firmas
digitales, es importante aclarar cómo trabajan las funciones hash y su uso dentro
del proceso de creación de las firmas digitales.
En forma general una función hash es una función matemática que toma una
cadena de cualquier tamaño como entrada y genera como salida una cadena de
tamaño fijo, es decir que independiente del número de bits que tenga la cadena de
entrada, después de pasar dicha cadena por la función hash, se obtendrá una
cadena de un numero de bits fijos, al cual suele llamarse resumen. Por ejemplo, si
a la función hash genera resúmenes de 128 bits, entonces no importa si el texto
de la entrada es de 10 bits, 1000 bits o 1000000 bits, igual generará un “resumen”
de 128 bits para cada uno de ellos. Otra definición podría ser: es una
transformación matemática que toma un mensaje de longitud arbitraria y calcula, a
partir de éste, un valor de longitud fija.
Otra característica de las funciones hash es que dos cadenas de entrada similares
no dan el mismo hash.
Dichas funciones de hash deben cumplir las siguientes condiciones:

Generar, en lo posible, diferentes resúmenes o números de hash para
documentos diferentes, aunque es posible que dos documentos diferentes
generen un mismo número de hash.

Permitir transformaciones en una sola vía, es decir que no sea posible,
apartir de un número de hash reconstruir el texto original.
Ejemplos de algoritmos reconocidos que implementan las funciones de hash son:

MDx - Message-Digest algorithm (MD2, MD4, MD5). El estándar más
difundido es el MD5 y se encuentra definido en el RFC 1321, fue creado por
Ronald Rivest del Instituto Tecnológico de Massachusetts - MIT (Massachusetts Institute of Technology). Este algoritmo genera resúmenes de 128
bits a partir de mensajes de cualquier tamaño como es definido en el RFC
1321 “b is an arbitrary nonnegative integer; b may be zero, it need not be a
multiple of eight, and it may be arbitrarily large” - “ b es un entero arbitrario
no negativo; b puede ser cero, no tiene por qué ser múltiplo de ocho, y
puede ser tan largo como se quiera”8 , donde b es el tamaño del mensaje.

SHA-1 - Secure Hash Algorithm. RFC-3174. Publicado en 1995 por el NIST
- (National Institute of Standards and Technology) y utilizado por la Agencia
de Seguridad Nacional de los Estados Unidos, su predecesor fue el
algoritmo SHA (1993). Este algoritmo genera resúmenes de 160 bits a partir
de mensajes de hasta 264 bits. Este algoritmo ha tenido variaciones para
permitir manejar bloque de mayor tamaño, los cuales son conocidos como
SHA-2 que agrupa los algoritmos SHA-224, SHA-256, SHA-384, y SHA5129, SHA3 que agrupa los algoritmos SHA3-224, SHA3-256, SHA3-384 y
SHA3-512 y finalmente las nuevas investigación han producido SHAKE128
Y SHAKE256. Para todos los casos, los número a la derecha del nombre
del algoritmo hacen referencia al tamaño, en bits, del resumen que se
genera, por ejemplo, SHA-256 genera resúmenes de 256 bits).
5.5.3 Creación y funcionamiento de las firmas digitales
Ya analizados qué son las firmas digitales y sus usos, y entendido en qué
consisten el cifrado asimétrico y las funciones de hash, a continuación, en la figura
5.4, se presenta la manera de generar una firma digital:
8
9
(Rivest, 1992)
(Federal Information Processing Standards Publication, 2012)
Figura 5.4: Proceso de generación de firma digital
La firma digital es un conjunto de bits generados a partir del mensaje original y
adicionada al mensaje original antes de que éste sea enviado al destino, a este
nuevo mensaje lo llamaremos mensaje firmado, y esta firma es única para cada
documento o mensaje. Del otro lado, el destino debe tomar el mensaje firmado y
separarlo en la firma digital y el mensaje original para luego proceder a verificar la
veracidad de la firma digital y así constatar la procedencia del mensaje original, la
no-modificación del mensaje y su tiempo de creación. Si todo está en orden, el
mensaje se considerará “verdadero”, de lo contrario, éste se rechazará.
Dada una definición global, entremos a revisar de manera más detallada cómo se
crea la firma digital de un documento o mensaje. Para esto, utilizaremos como
base la figura 5.5.
Figura 5.5: generación de firma digital
Como se aprecia en la figura, el proceso de generación de la firma consiste en:

Tomar el mensaje de datos y pasarlo por una función de hash.

Tomar el resumen hash generado del mensaje (de datos) y cifrarlo con la
llave privada del origen (A en el caso de la figura).

Ese resumen cifrado será la firma. La cual puede garantizar que:
o El origen es A pues sólo A tiene su llave privada, y por tanto sólo A
podrá cifrarlo con la llave privada de A, y cualquiera podrá descifrar
el mensaje con la llave pública de A.
o El mensaje no ha sido modificado desde su creación pues la función
hash genera un resumen diferente para cada mensaje y si el
mensaje se hubiera modificado el resumen cambiaría y por tanto al
cifrarlo sería diferente.
Dicha firma será añadida al mensaje original antes de ser transmitido a destino.
Una pregunta que puede surgir en este punto sería ¿para qué se genera un
resumen del mensaje para luego cifrarlo con mecanismos asimétricos en vez de
cifrar directamente el mensaje completo con mecanismos asimétricos?.
La razón está relacionada con la velocidad de cifrado/descifrado de los
mecanismos asimétricos. Como se mencionó en el tema de cifrado asimétrico,
dichos
mecanismos son más lentos que los mecanismos simétricos, lo cual
genera una disminución del rendimiento del proceso, y dependiendo del tamaño
del documento a cifrar, afectará en mayor o menor grado dicho rendimiento.
Adicionalmente, en destino, el proceso de descifrado también será más rápido o
lento dependiendo del tamaño del mensaje cifrado. Si el mensaje cifrado contiene
el resultado de una función de hash de un determinado tamaño (casi siempre de
menor tamaño que el mensaje original) el tiempo que gastará en el proceso de
descifrado ya se sabrá de cuanto es y será menor al de descifrar el mensaje
completo.
Ahora bien, ya se ha firmado el documento a transmitir, el trabajo que sigue es
verificar su veracidad en el destino. En la figura 5.6 se muestra el proceso.
Figura 5.6: Documento firmado
El proceso en este caso es el siguiente:

El destino recibe el mensaje con su respectiva firma ( mensaje firmado )

Se separa el mensaje original y la firma digital

Se descifra la firma digital usando la llave pública del origen (para el
ejemplo, la de A). Dicha llave pública podría haber sido enviada al destino
con anterioridad por A o depositada en el repositorio público para la
consulta de quien la necesite. Después de esto, se tendrá el número de
hash descifrado.

Por otro lado, y como se mencionó antes, las funciones de hash no son
reversibles, por lo cual se debe tomar el mensaje original y aplicarle la
misma función de hash utilizada por el origen y así generar otra vez en
número resumen de este mensaje, al que para facilitar la explicación,
llamaremos número hash generado.

Se toman el número de hash descifrado y el número hash generado y se
comparan.

En este punto pueden pasar dos cosas:
o Los dos números son iguales: en este caso se puede decir que el
mensaje fue enviado por quien decía ser y que no ha sido modificado
durante su transmisión. El mensaje se considera válido o verdadero.
o Los números no coinciden: en este caso el mensaje tuvo algún
problema, o el mensaje no lo envió quien decía que era o durante su
transmisión sufrió alguna alteración. En cualquiera de los dos casos,
el mensaje se considerará inválido. Note que se sabrá que el
mensaje es inválido pero no se sabrá cuál es la razón, puede
tratarse de la suplantación del origen o de una modificación de los
datos.
Como usted se podrá haber dado cuenta, y como se mencionó desde el principio,
las firmas digitales no garantizan privacidad de la información, sólo garantiza
autenticidad del origen, no modificación del mensaje y tiempo transcurrido entre el
envío y la recepción del documento. Si adicionalmente lo que se desea es
garantizar privacidad, será necesario utilizar algo más que la simple firma, como
por ejemplo cifrado simétrico de los datos con una llave secreta o cifrado
asimétrico usando la llave pública del destino.
5.5.4 Estándar de firmas digitales DSS
Una implementación del algoritmo de firmas digitales es el Digital Signature
Algorithm - DSA. Este algoritmo es el estándar usado por el gobierno de los
Estados Unidos para sus procesos de firmas digitales, fue diseñado por el National
Institute of Standards and Technology-NIST en el año 1991 y oficialmente puesto
en funcionamiento en 1994 mediante el estándar FIPS-18610: Digital Signature
Standard-DSS, cuyo resumen define claramente el propósito de las firmas
digitales así “This standard specifies a Digital Signature Algorithm (DSA) which can
be used to generate a digital signature. Digital signatures are used to detect
unauthorized modifications to data and to authenticate the identity of the signatory.
In addition, the recipient of signed data can use a digital signature in proving to a
10
Federal Information Processing Standard. http://www.itl.nist.gov/fipspubs/fip186.htm.
third party that the signature was in fact generated by the signatory. This is known
as nonrepudiation since the signatory cannot, at a later time, repudiate the
signature.”.
En este estándar, se presenta el mismo proceso presentado arriba para la
creación y verificación de las firmas digitales, hace uso del algoritmo de hash
SHA-1 y presenta un algoritmo similar al RSA para la definición de llaves privada y
pública de los usuarios.
5.5.5 PGP y OpenPGP
PGP o Pretty Good Privacy nació como un proyecto de software libre en la década
de los 90s, su autoría inicial se le atribuye a Phil R Zimmermann y en su honor
también se le conoce como PRZ por las iniciales del autor. Zimmermann
desarrolló la aplicación PGP mientras en la sala del Senado los Estados Unidos se
discutía sobre la necesidad de exigir a todas los empresas dedicadas al desarrollo
de software de cifrado de datos que debían dejarles “puertas traseras” a todos sus
desarrollos para poder realizar procesos de criptoanálisis sobre los textos cifrados
que fueran generados con dichos desarrollos para poder obtener los textos claros
de mensajes sospechosos en caso de que el gobierno lo requiriera11, mientras que
lo que buscaba Zimmerman era proveer una herramienta de cifrado seguro de
datos a cualquier persona desde su computador personal. Una anécdota particular
11
The 17 Apr 1991 New York Times reports on an unsettling US Senate proposal that is part of a
counterterrorism bill. If this nonbinding resolution became real law, it would force manufacturers of
secure communications equipment to insert special “trap doors” in their products, so that the
Government can read anyone’s encrypted messages. It reads: “It is the sense of Congress that
providers of electronic communications services and manufacturers of electronic communications
service equipment shall insure that communications systems permit the Government to obtain the
plain text contents of voice, data, and other communications when appropriately authorized by
law.”. Senate Bill 266, 1991. http://www.cypherspace.org/adam/timeline/. Fecha de última consulta
11 de enero de 2008.
sobre PGP fue la manera como se distribuyó inicialmente, pues las restricciones
de exportación de software de seguridad en Estados Unidos no permitían obtener
copias del software, para lo cual Zimmermann respondió con un libro publicado
por MITPress en el que escribía todo el código fuente de PGP, el cual no tenía
restricciones de exportación pues se trataba de un libro, de esta manera, los
interesados en PGP tomaban el código fuente impreso en el libro y lo escaneaban
hasta digitalizarlo todo para luego compilarlo con GNU-C.
PGP permite la creación de llaves asimétricas y el uso de mecanismos de cifrado
simétrico y asimétrico para firmar y dar confidencialidad a cualquier documento.
Usa RSA como mecanismo de cifrado asimétrico y DES, TripleDES e IDEA como
mecanismos de cifrado simétrico, entre otros.
Este software es un clásico ejemplo de aplicaciones de firmas digitales ya que
permite a un usuario firmar sus documentos antes de enviarlos y revisar las firmas
de aquellos que le envían mensajes.
A través de este software el usuario crea su juego de llaves: pública y privada. La
llave pública la puede colocar en algunos repositorios a nivel mundial o mantenerlo
local en su máquina (depende de la infraestructura con que se cuente) para
enviarla personalmente a sus contactos. La llave privada la guarda dentro de su
computador, cifrada con un mecanismo de cifrado simétrico para garantizar que
sólo éste la pueda acceder, y cada vez que la quiere usar para firmar un
documento debe digitar su clave secreta para descifrar dicha llave privada y así
hacer uso de ella.
Para mayor información sobre su funcionamiento y uso, visite la página oficial del
proyecto en http://www.pgpi.org.
Poco a poco PGP se convertió en una aplicación ampliamente usada para la
generación de firmas digitales, pero por incluir dentro de sus algoritmos de cifrado
de datos algunos algoritmos licenciados, a finales de los 90’2 se creó el proyecto
OpenPGP el cual sólo incluye algoritmos de libre distribución, su especificación
inicial se encuentra en el RFC-1991 (Agosto de 1996), luego modificado dos años
más tarde por en el RFC-2440 y la última modificación salió a finales de 2007 en el
RFC-4880.
Para
mayor
información
al
respecto
puede
dirigirse
a
http://www.openpgp.org/ en donde encontrará la información oficial del proyecto.
5.5.6 Certificados digitales y Entidades Certificadoras
5.5.6.1 Generalidades
Como se pudo ver en el tema anterior, las firmas digitales son un excelente
mecanismo para garantizar que el emisor de un mensaje es quien dice ser y que
la información transmitida no ha sido modificada. Pero, ¿qué tan seguros
realmente podemos estar de que el emisor es quien dice ser, si es el mismo
emisor el que da las pautas para verificarlo?.
La firma digital es el resultado de obtener un resumen del texto original y cifrarlo
con la llave privada del emisor y su verificación estará basada en descifrar dicha
firma con la llave pública del emisor. Pero, ¿cómo estar seguro de que las llaves
que se usaron son realmente del origen (de quien dice ser)?, recuerde que hay
dos maneras típicas de obtener las llaves públicas de otros, la primera es recibir
un correo electrónico del emisor en el que envía su llave pública, y ¿qué tan
seguros estamos de que en esa ocasión el emisor si era quien decía ser?, que tal
si ese correo fue enviado por B diciendo que era A y que la llave pública de A era
K pero realmente se trataba de la llave pública de B, ¿cómo lo detectaríamos?, no
podríamos darnos cuenta de eso a no ser que llamemos a A y verifiquemos la
llave y aun así podrían ocurrir situaciones extrañas que no nos permitan garantizar
que A fue quien envío dicha llave. La otra alternativa de la que se habló en el título
anterior eran los repositorios de llaves, en donde se almacenaban las llaves
públicas de los usuarios y si alguien llegara a necesitar alguna de ellas podría
tomarlas de allí, pero también se tendría la duda de si una llave almacenada allí es
realmente de quien decía ser.
La solución a esta incertidumbre son las Entidades Certificadoras ya que se trata
de terceras partes que pueden dar fe de los propietarios de las llaves asimétricas
que administran. Por definición, podemos decir que una Entidad Certificadora
(Certification Authority, CA) es “An authority trusted by one or more users to create
and assign public-key certificates. Optionally the certification authority may create
the users' keys” (ITU-T, 2008). Se trata de una empresa de confianza que emite
certificados usados para crear firmas digitales. El certificado contendrá la llave
pública del dueño del certificado y la entidad certificadora será la responsable de
la custodia de dichos certificados. La entidad certificadora se convierte en pieza
clave en una transacción electrónica ya que a través de ella se puede dar garantía
de quiénes serán las partes en dicha transacción a partir de entregar los
certificados digitales de cada uno de ellos.
La entidad Certificadora es similar a lo que una notarias físicas puede hacer
cuando valida la identidad de una persona, es un tercero que verifica la identidad
de una personas (por ejemplo con su documento de identidad y otros datos) y da
fe de que es quien dice ser y para “hacerlo oficial”, coloca su sello de garantía
como notaria indicando que se hace responsable de ese certificado de identidad.
Y si se requiere, se cuenta con notarias especiales que tienen la capacidad de
validar la identidad de las otras notarias12. Las entidades certificadoras hacen un
proceso similar a las notarías, pero con llaves públicas, son terceros que
almacenan las llaves públicas (o pueden generar el juego de llaves públicas y
privadas y entrega al usuario su privada) y se encargan de garantizar a quien lo
requiera que esa llave realmente pertenece a quien dice ser. Para ello, cuando se
solicita el servicio de una entidad Certificadora, ella verifica los datos del solicitante
(para el ejemplo A) y después de esto almacena la llave pública de A (o crea el
juego de llaves si es el caso), cuando cualquier persona solicita la llave pública A,
la entidad certificadora genera un Certificado digital en el que se encontrará la
llave pública de A firmada por la Entidad Certificadora (firma digital de la CA) con
lo cual estará garantizando que esa llave pública está bajo su custodia y que
pertenece a A. Y si uno requiere validar a la entidad certificadora también se
cuenta con la figura de “re-certificadoras” que son entidades certificadoras que se
dedican a certificar a otras entidades certificadoras. A toda esta infraestructura u
organización de verificación de firmas digitales, llaves públicas de usuarios y
entidades certificadoras se le conoce con el nombre de Infraestructura de Llaves
públicas o PKI (Public Key Infrastructure)
12
En el caso de Colombia, se trata de la Superintendencia de Notariado y Registro.
5.5.6.2 X.509
Para contar con un mismo tipo de certificados digitales emitidos por diferentes
entidades certificadoras, la UIT, hacia finales de los 80’s, definió el estándar X.509
(versiones 1, 2 y 3) que da lineamientos sobre las características que deben tener
los certificados digitales (datos, tipos de datos, formato, etc.) y las entidades que
los generan y cuya última versión es de octubre de 2012 y se encuenta definida
por
la
ITU
(International
Telecommunication
Union)
en
el
estándar
X.509 : Information technology - Open Systems Interconnection - The Directory:
Public-key and attribute certificate frameworks. Para el ambiente de Internet, este
estándar es aplicado en distintas implantaciones y se encuentran diferentes
recomendaciones tales como las primeras mención al estándar en los RFC 1114
de agosto de 1989 y 1422 de Febrero de 1993 -
“Privacy Enhancement for
Internet Electronic Mail: Part II: Certificate-Based Key Management”, RFC 2459 de
enero de 1999 – “Internet X.509 Public Key Infrastructure Certificate and CRL
Profile” y el RFC 6818 de enero de 2013 - “Updates to the Internet X.509 Public
Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile”.
La primera versión del estándar se publicó en 1988, la segunda versión se publicó
en 1993 y la tercera versión y la actualmente usada hacia principios del siglo XXI.
Esta última versión permite crear extensiones al certificado tradicional para dar
cabida a características propias o específicas que se deseen.
En términos generales, el estándar recomienda incluir la siguiente información
dentro del certificado:

Versión del certificado: Versión del X.509

Número de serie del certificado: Identificador único del certificado. Es
emitido por la Entidad Certificadora como tal.

Información del algoritmo del emisor: Se define el algoritmo con el cual se
pueden firmar los documentos.

Entidad certificadora: Nombre de la entidad certificadora.

Validez del certificado: Rango de tiempo (desde/hasta fecha) en el cual el
certificado se considera válido. Puede ayudar a realizar periódicamente
renovaciones de claves y así aumentar la seguridad.

Información de la clave pública del emisor: Llave pública del usuario.

Firma de la autoridad emisora: Firma de la entidad certificadora, con la cual
da fe de que la información enviada es verdadera y válida.

Identificador de la entidad: Número único que identifica a la Entidad
Certificadora en todo el mundo.

Identificador del usuario: Número único que identifica al usuario dentro de la
CA.

Puede también contener: nombre, dirección, e-mail del emisor.
Algunos ejemplos de Entidades certificadoras son:

Verisign, Inc. www.verisign.com.

Digital Signature Trust Company CA. www.digsigtrust.com.

Thawte Certification. www.thawte.com.

Certicamara CA. www.certicamara.com.

Federal bridge CA. www.gsa.gov/fbca.
Normalmente, a través de las entidades certificadoras es posible hacer las
siguientes operaciones:

Creación de certificado.

Revocación de certificado.

Modificación de certificado.

Borrado de certificados.

Bloqueo de certificados.

Consulta de certificados
5.5.6.3 Estructura PKI
Una estructura PKI o Public Key Infraestructure es un conjunto de elementos de
software, hardware, políticas y procedimientos de seguridad que permiten la
implementación de una Entidad Certificadora, a través de esta infraestructura es
posible montar un esquema en el cual los clientes y los servidores puedan
autenticarse entre ellos haciendo uso de encripción asimétrica, firmas digitales y
certificados digitales.
Los componentes de una infraestructura de PKI son:

La entidad Certificadora (CA): La cual emite y administra las llaves públicas
de los usuarios registrados y emite los certificados de los mismos, controla
la caducidad de los certificados, modificaciones, anulaciones, etc de los
mismos.

Una entidad de registro (RA): La cual actúa como intermediaria, es la cara
visible de la entidad certificadora, realiza las actividades de registro,
revisión y publicación de los certificados de los usuarios. se comunica
directamente con la entidad de publicación de llaves, para los usuarios, se
podría decir que es la entidad certificadora como tal.

Una entidad de publicación de llaves: Es la interface que permite la
comunicación entre la entidad de registro y los usuarios como tal.

Un conjunto de políticas de funcionamiento de la misma: Dan los
lineamientos y responsabilidades de las partes en el proceso de generación
y validez de los certificados.

Aplicaciones de apoyo a los componentes: Software utilizado para el
funcionamiento de los demás componenettes, por ejemplo:OpenCA,
EJBCA, IBM PKI y Entrust.
Cuando un usuario desea obtener un certificado de la CA se comunica con una
interfaz pública a través de la cual hace su solicitud y da los datos que la entidad
certificadora requiera, esos datos son enviados a la RA quien se encarga de
verificar la veracidad de dichos datos y de administrar las solicitudes de los
usuarios. Luego de que los datos son verificados, la RA los entrega a la CA (que
normalmente no tiene conexiones de red para evitar vulnerabilidades) quien se
encarga de crear las llaves del usuario y ponerles la firma de la CA. Cuando este
proceso se ha completado, el usuario y cualquier tercero puede solicitar su
certificado a la RA a través de la interface pública, quien entregará la información
del usuario siguiendo el estándar X.509.
En la figura 5.7 se muestra su estructura (la parte en fondo gris es lo que
corresponde a la PKI como tal, es decir, la parte del usuario es independiente):
Figura 5.7: Estructura PKI
Referencias
Brown, R. (1998). Data Encryption Standard (DES). Federal Information
Processing
Standards
Publication,
42-46.
Obtenido
de
http://www.itl.nist.gov/fipspubs/fip46-2.htm
Daniellerch.com. (s.f.). El algoritmo RSA y la factorizaci´on. Recuperado el 29 de
Noviembre
de
2014,
de
http://daniellerch.com/sources/doc/algoritmo
rsa.html
Davila, J. (2006/2007). Fotograf´ıas y Detalles de una m´aquina ENIGMA de la.
Obtenido
de
Universidad
Politécnica
de
Madrid:
http://porsche.ls.fi.upm.es/Material/Enigma/Enigma.htm
Federal Information Processing Standards Publication. (25 de Octubre de 1999).
Data Encryption Standar - DES. FIPS PUB 46-3. Estados Unidos: FIPS
PUBS.
Recuperado
el
29
de
Noviembre
de
2014,
de
http://csrc.nist.gov/publications/fips/fips46-3/fips46-3.pdf
Federal Information Processing Standards Publication. (26 de Noviembre de
2001). Advanced Encryption Standard - AES. FIPS-197. Estados unidos:
FIPS
PUBS.
Recuperado
el
29
de
Noviembre
de
2014,
de
http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf
Federal Information Processing Standards Publication. (Marzo de 2012). Secure
Hash Standard. FIPS PPUB 180-4. Estados unidos: FIPS PUBS.
Recuperado
el
29
de
Noviembre
de
http://csrc.nist.gov/publications/fips/fips180-4/fips-180-4.pdf
2014,
de
Fronteras Electronicas. (12 de Junio de 1998). Recuperado el 22 de 11 de 2014,
de http://biblioweb.sindominio.net/telematica/privac.html
ITU-T. (2008). X.509. Information technology – Open systems interconnection –
The Directory: Public-key and attribute certificate frameworks. Standard.
Geneva,:
ITU.
Recuperado
el
29
de
Noviembre
de
2014,
de
http://www.itu.int/rec/T-REC-X.509
Lai , X., & Massey, J. L. (1991). A Proposal for a New Block Encryption Standard.
Advances
in
Cryptology-EUROCRYPT'90
Proceedings,
LNCS
473,
Springer-Verlag, 389-404. Recuperado el 29 de Noviembre de 2014, de
http://www.isiweb.ee.ethz.ch/papers/arch/xlai-mass-inspec-1991-2.pdf
Rivest, R. (Abril de 1992). RFC 1321 - The MD5 Message-Digest Algorithm. MIT
Laboratory for Computer Science and RSA Data Security, Inc. IETF.
Recuperado
el
29
de
Noviembre
de
2014,
de
https://www.ietf.org/rfc/rfc1321.txt
Rubio, J. (1999). Seguridad en Redes de Computadores. Notas de clase - Escuela
Colombiana de Ingeniería Julio Garavito. Bogotá.
Tanembaum, A. (2003). Redes de computadores (4ta ed.). Pearson-Prentice Hall.
Vrátný, J. L. (2003). Historia de la criptografía (2da parte). Recuperado el 22 de 11
de
2014,
de
Latino
Seguridad:
http://www.latinoseguridad.com/LatinoSeguridad/Reps/Cripto2.shtml
Wikipedia. (2007). Enigma (máquina). Obtenido de Wikipedia, la enciclopedia libre:
http://es.wikipedia.org/wiki/Enigma (m %C3 %A1quina)
Zabata, E. (s.f.). Rijndael Cipher - AES. 4.0. Montevideo, Uruguay. Recuperado el
29
de
Noviembre
de
2014,
de
http://www.formaestudio.com/rijndaelinspector/archivos/Rijndael_Animation
_v4_eng.swf
Descargar