Algoritmos de Clave Simétrica y Pública
Índice
1. Definición de Algoritmo 1
1.1. Clases de algoritmos criptográficos . . . . . . . . . . . . . . . 2
2. Algoritmos de clave Simétrica 2
2.1. Ejemplos de algoritmos simétricos . . . . . . . . . . . . . . . 3
2.2. Aplicación de algoritmos simétricos . . . . . . . . . . . . . . 6
3. Algoritmos de clave Asimétrica 6
3.1. Ejemplos de algoritmos asimétricos . . . . . . . . . . . . . . . 8
3.2. Aplicación de algoritmos asimétricos . . . . . . . . . . . . . . 9
4. Sistemas híbridos 9
4.1. Aplicación híbrida: algoritmo simétrico y asimétrico . . . . . 10
1. Definición de Algoritmo
Algoritmo.— De manera informal, un algoritmo es cualquier procedi-
miento computacional bien definido que toma algún valor, o conjunto de
valores, como entrada y produce algún valor, o conjunto de valores, como
salida. Un algoritmo es entonces una secuencia de pasos computacionales
que transforman la entrada en la salida.
También se puede ver a un algoritmo como una herramienta para resol-
ver un problema computacional muy específico. La declaración del proble-
ma explica en términos generales la relación deseada de entrada/salida. El
1
algoritmo describe un procedimiento computacional específico para lograr
esa relación entrada/salida.
1.1. Clases de algoritmos criptográficos
En general los algoritmos criptográficos se pueden clasificar en tres
grandes familias.
1. Algoritmos HASH o de resumen.
2. Algoritmos de clave Simétrica o Algoritmos de Clave Secreta.
3. Algoritmos de clave Asimétrica o Algoritmos de Clave Pública.
Las clases se definen por el número de claves criptográficas que se uti-
lizan junto con el algoritmo.
2. Algoritmos de clave Simétrica
Los algoritmos de clave simétrica (a veces conocidos como algoritmos
de clave secreta) transforman los datos de una manera que es fundamental-
mente difícil de deshacer sin el conocimiento de una clave secreta. La clave
es “simétrica” porque la misma clave se utiliza para una operación crip-
tográfica y es inversa (por ejemplo, cifrado y descifrado [Figura 1]). Las
claves simétricas a menudo son conocidas por más de una entidad; sin em-
bargo, la clave no se divulgará a entidades que no tienen acceso autorizado
a los datos protegidos por ese algoritmo y clave. Se utilizan algoritmos de
clave simétrica, por ejemplo:
1. Para proporcionar confidencialidad de datos; la misma clave se usa
para cifrar y descifrar datos;
2. Proporcionar servicios de autenticación de origen e integridad en for-
ma de Códigos de Autenticación de Mensajes (Message Authentication
Code, MAC [Figura 2]); se utiliza la misma clave para generar el MAC
y validarlo. Los MAC normalmente emplean un algoritmo de cifrado
de clave simétrica o una función hash criptográfica como primitiva
criptográfica;
2
Figura 1: Funcionamiento general de la Criptografía Simétrica.
3. Como parte del proceso de establecimiento de claves; y
4. Generar números aleatorios deterministas.
Algunas de las características más destacadas de este tipo de algoritmos
son las siguientes:
A partir del mensaje cifrado no se puede obtener el mensaje original
ni la clave que se ha utilizando, aunque se conozcan todos los detalles
del algoritmo criptográfico utilizado.
Se utiliza la misma clave para cifrar el mensaje original que para des-
cifrar el mensaje codificado.
Emisor y receptor deben haber acordado una clave común por medio
de un canal de comunicación confidencial antes de poder intercam-
biar información confidencial por un canal de comunicación insegu-
ro.
2.1. Ejemplos de algoritmos simétricos
Los algoritmos simétricos más conocidos son: DES, 3DES, RC2, RC4,
RC5, IDEA, Blowfish y AES.
3
Figura 2: Descripción de MAC.
Data Encryption Standard (DES): Basado en Lucifer de IBM (1975), fue se-
leccionado como algoritmo estándar de cifrado en 1977 por NIST (Na-
tional Institute of Standards and Technology). Utiliza claves de cifrado
bastante cortas (56 bits, de los cuales sólo se utilizan 48 bits) y hoy
en día se considera poco robusto, sobre todo desde que en 1998 la
Electronica Frontier Foundation hizo público un crackeador de códi-
go DES capaz de descifrar mensajes DES en menos de 3 días.
3DES: Desarrollado por Tuchman en 1978, es una manera de mejorar la
robustez del algoritmo DES que consiste en aplicarlo tres veces con-
secutivas. Se puede aplicar con la misma clave cada vez, o con claves
distintas y combinando el algoritmo de cifrado con el de descifrado,
lo cual da lugar a DES-EEE3, DES-EDE3,DES-EEE2 y DES-EDE2. El
resultado es un algoritmo seguro y que se utiliza en la actualidad,
4
aunque resulta muy lento comparado con otros algoritmos más mo-
dernos que también son seguros.
RC2 (Rivest’s Cipher): En 1989, Ron Rivest desarrolló el algoritmo para
RSA Data Security, Inc. Se trata de un algoritmo de cifrado por blo-
ques, que utiliza una clave de tamaño variable. Es de dos a tres veces
más rápido que el algoritmo DES, siendo más seguro.
RC4: Ron Rivest desarrolló el algoritmo en 1987 para RSA Data Security,
que se hizo público en 1994. Se considera inmune al criptoanálisis
diferencial y lineal. Es el algoritmo utilizado en el cifrado WEP de la
mayoría de los puntos de acceso WiFi. Es necesario comentar que el
protocolo WEP se considera vulnerable, pero no por problemas con
el algoritmo de cifrado RC4 sino por otros aspectos del propio proto-
colo que permiten determinar la clave de cifrado en un tiempo corto
(pocas horas en una red con mucho tráfico).
RC5: Otro algoritmo de Ron Rivest, publicado en 1994. Se trata de un algo-
ritmo de cifrado por bloques, que utiliza claves de tamaño variable.
Se caracteriza por la sencillez del algoritmo, que lo hacen muy rápido
y fácil de implementar tanto en software como en hardware.
International Data Encription Algorithm (IDEA): Diseñado por Xuejia Lai
y James L. Massey de ETH-Zürich. Es un algoritmo de cifrado por
bloques de 64 bits que emplea claves de 128 bits, que se presentó por
primera vez en 1991. Es dos veces más rápido que DES, a pesar de
utilizar claves mucho más largas. Es un algoritmo patentado en algu-
nos países (entre ellos España), salvo para usos no comerciales.
Blowfish: Es un algoritmo de cifrado por bloques de 64 bits diseñado por
Bruce Schneier en 1993. Utiliza claves de longitud variable entre 32 y
448 bits. A pesar de utilizar un tamaño de bloque pequeño, que po-
dría facilitar su vulnerabilidad al procesar textos largos, se considera
un algoritmo seguro y es más rápido que DES.
Twofish: Publicado en 1998, Es una variante de Blowfish que utiliza blo-
ques de 128 bits y claves de 256 bits. También diseñado por Bruce Sch-
neier, en colaboración con John Kelsey, Doug Whiting, David Wagner,
5
Chris Hall, y Niels Ferguson, fue uno de los cinco finalistas en el pro-
ceso de selección de NIST para sustituir a DES como algoritmo están-
dar.
Advanced Encryption Standard (AES): Es el estándar para cifrado simé-
trico del NIST desde el 26 de mayo de 2002 en sustitución de DES.
AES también es conocido por Rijndael, nombre original del algorit-
mo propuesto en 1999 que cambió al ser seleccionado por NIST y
convertirse en el estándar. Fue desarrollado por dos criptógrafos Bel-
gas, Joan Daemen y Vincent Rijmen. Es un algoritmo de cifrado por
bloques con longitud de bloque y longitud de clave variables. Los va-
lores adoptados para el estándar son bloques de 128 bits, y claves de
longitud 128, 192 ó 256 bits. La nomenclatura para AES para los di-
ferentes tamaños de clave es AES-X, donde X es el tamaño de clave
(por ejemplo, AES-256).
2.2. Aplicación de algoritmos simétricos
Ejemplo de esquema de comunicación GSM usando criptografía simé-
trica (Figura3):
3. Algoritmos de clave Asimétrica
Esta categoría incluye un conjunto de algoritmos criptográficos que uti-
lizan dos claves distintas para cifrar y para descifrar el mensaje (Figura 4).
Ambas claves tienen una relación matemática entre sí, pero la seguri-
dad de esta técnica se basa en que el conocimiento de una de las claves
no permite descubrir cuál es la otra clave. En realidad sería necesario co-
nocer todos los números primos grandes para ser capaz de deducir una
clave a partir de otra, pero está demostrado que en la práctica se tardarían
demasiados años sólo en el proceso de obtención de los números primos
grandes. Se utilizan algoritmos asimétricos, por ejemplo:
1. Para calcular las firmas digitales, y
2. Para establecer material de codificación criptográfica.
6
Figura 3: Criptografía simétrica con GSM.
Figura 4: Funcionamiento general de la Criptografía Asimétrica.
A diferencia de los algoritmos de clave secreta, que existen desde los
tiempos de los romanos, los métodos asimétricos son muy recientes. En
7
1976, Whitfield Diffie y Martin Hellman crearon un método con la ayuda
de Ralph Merkle para iniciar una comunicación segura sin haber acordado
previamente una clave secreta. El método se conoce como Diffie-Hellman
Key Exchange. Poco más tarde se publicó el primer algoritmo asimétrico
completo, denominado RSA, que sigue siendo el más utilizado en la actua-
lidad.
3.1. Ejemplos de algoritmos asimétricos
Dentro de esta categoría encontramos:
RSA: Fue desarrollado en 1977 por Ron Rivest, Adi Shamir y Len Adle-
man. El nombre RSA proviene de las iniciales de los apellidos de sus
inventores. El algoritmo fue patentado en 1983 por MIT, pero la pa-
tente expiró el 21 de septiembre de 2000 y desde entonces se utiliza
libremente. La seguridad de este algoritmo reside en la dificultad que
supone la factorización de un número compuesto por factores primos
muy grandes. Si un criptoanalista fuera capaz de encontrar los facto-
res primos sería capaz también de determinar la clave privada y, por
lo tanto, descifrar el mensaje. Sin embargo el problema de factoriza-
ción se considera imposible de resolver en la práctica, y cuanto más
grande sean los números utilizados, es decir las longitudes de las cla-
ves, mayor dificultad se alcanza.
Digital Signature Algorithm (DSA): El Algoritmo de Firma Digital, es un
estándar del Gobierno Federal de los Estados Unidos de América o
FIPS para firmas digitales. Fue un Algoritmo propuesto por el Insti-
tuto Nacional de Normas y Tecnología de los Estados Unidos para
su uso en su Estándar de Firma Digital (DSS), especificado en el FIPS
186. DSA se hizo público el 30 de agosto de 1991, este algoritmo como
su nombre lo indica, sirve para firmar y no para cifrar información.
Una desventaja de este algoritmo es que requiere mucho más tiempo
de cómputo que RSA.
Cifrado ElGamal: El procedimiento de cifrado/descifrado ElGamal se re-
fiere a un esquema de cifrado basado en el problema matemático del
logaritmo discreto. Es un algoritmo de criptografía asimétrica basado
8
en la idea de Diffie-Hellman y que funciona de una forma parecida a
este algoritmo discreto.
El algoritmo de ElGamal puede ser utilizado tanto para generar fir-
mas digitales como para cifrar o descifrar.
Fue descrito por Taher Elgamal en 1984 y se usa en software GNU
Privacy Guard, versiones recientes de PGP, y otros sistemas cripto-
gráficos. Este algoritmo no está bajo ninguna patente lo que lo hace
de uso libre.
La seguridad del algoritmo se basa en la suposición que la función
utilizada es de un solo sentido debido a la dificultad de calcular un
logaritmo discreto
3.2. Aplicación de algoritmos asimétricos
Los algoritmos asimétricos se pueden utilizar para cifrado de documen-
tos secretos o para firma electrónica tanto de documentos privados como
públicos. Para garantizar la confidencialidad, el documento se cifra con
la clave pública del destinatario y por lo tanto sólo el destinatario puede
volver a recuperar el documento original. Sin embargo, para firmar elec-
trónicamente un documento, el autor lo cifra con su propia clave privada y
por lo tanto cualquier usuario puede ver el contenido original descifrando
el documento mediante la clave pública correspondiente.
En este último caso el documento es público porque cualquier usua-
rio puede verlo, pero sólo el autor podría hacer modificaciones y volver a
cifrarlo porque sólo él tiene su clave privada. Por lo tanto, no se tiene con-
fidencialidad pero sí integridad, y es una herramienta fundamental para
generar documentos “oficiales” que sean públicos, pero que vayan debida-
mente firmados por la autoridad pertinente.
4. Sistemas híbridos
Se pueden utilizar ambos tipos de cifrado para dar lugar a un esquema
híbrido:
9
Cifrado Asimétrico solo para el inicio de la sesión, cuando hay que
generar un canal seguro donde acordar la clave simétrica aleatoria
que se utilizará en esa conversación.
Cifrado Simétrico durante la transmisión utilizando la clave simétri-
ca acordada durante el inicio de sesión, la cual se puede variar cada
cierto tiempo para dificultar el espionaje de la conversación.
4.1. Aplicación híbrida: algoritmo simétrico y asimétrico
Un ejemplo es el protocolo SSH (Secure Shell) de comunicaciones segu-
ras: SSH es un protocolo de comunicaciones que permite cifrar la conver-
sación de extremo a extremo (Figura 5).
Cuando A quiere establecer una conversación con B, en A se genera
en ese instante una nueva clave simétrica (CS). Para enviársela a B
de modo seguro, A la cifra utilizando un algoritmo asimétrico con la
clave pública de B.
Cuando B recibe la CS cifrada, la descifra con su clave privada y des-
de ese momento pueden seguir el diálogo cifrando con el algoritmo
simétrico acordado y la CS recibida.
10
Figura 5: Esquema de cifrado híbrido.
Referencias
[1] A UMASSON , J.P. (2018). Serious Cryptography. A Practical Intro-
duction to Modern Encryption.. United States of America: No Starch
Press.
[2] C ORMEN , T.H. (2009). Introduction to Algoritmhms. United States of
America: The MIT Press.
[3] NIST. (2016). Recommendation for Key Management Part 1: General.
Febrero 16, 2020, NIST. Sitio web: https://nvlpubs.nist.gov/
nistpubs/SpecialPublications/NIST.SP.800-57pt1r4.
pdf
11
[4] W IKIPEDIA. (2020). Criptografía. Febrero 19, 2020, Wikipedia. Sitio
web: https://es.wikipedia.org/
[5] R ESEARCH G ATE. (2006). Introducción a la Criptografía: ti-
pos de algoritmos. Febrero 19, 2020, ResearchGate. Sitio web:
https://www.researchgate.net/publication/28106424_
Introduccion_a_la_Criptografia_tipos_de_algoritmos
12