CursoCriptografiaAplicada 21 40
CursoCriptografiaAplicada 21 40
CursoCriptografiaAplicada 21 40
desde el punto de vista de la criptografía debemos proteger ante las amenazas del entorno en todo su ciclo de
vida, a saber, durante su generación, su transmisión, su almacenamiento e incluso su destrucción. Por su
parte, la teoría de la información mide la cantidad de información que contiene un mensaje a través del
número medio de bits necesario para codificar todos los posibles mensajes con un codificador óptimo.
La entropía mide el desorden de las cosas, a mayor desorden o equiprobabilidad de los eventos, mayor
entropía. En criptografía será muy importante que la clave tenga una alta entropía para que sea difícil
adivinarla.
Por ejemplo, una clave en hexadecimal de 64 bits tendrá mayor entropía que una clave escrita en ASCII,
simplemente porque en hexadecimal serán válidas las 264 claves, desde la clave menor de 16 ceros
0000000000000000, hasta la clave mayor de 16 efes FFFFFFFFFFFFFFFF. En cambio, en ASCII no tendremos el
mismo espacio de claves equiprobables, primero porque los humanos tendemos a poner caracteres o palabras
que nos sean de fácil recuerdo y, segundo, porque habrá además algunos caracteres ASCII no imprimibles para
esos 64 bits u ocho bytes de la clave, por lo que el espacio de claves en este caso será menor que 264.
Es conocido que la codificación ASCII no es óptima dado que asigna 8 bits para codificar caracteres muy
frecuentes (espacio en blanco, la letra e, la letra a, etc.), y también 8 bits para codificar caracteres muy poco
frecuentes (la letra k, la letra á, el signo %, etc.). Asignar en la codificación la misma cantidad de bits a todos
los caracteres ASCII, equivale a aceptar que estos son equiprobables, lo cual sabemos que no es cierto.
En un alfabeto español de 27 letras, contando solo con las letras mayúsculas como el que se utilizaba en la
criptografía clásica, si esas 27 letras tienen igual probabilidad o frecuencia de aparición en un texto en claro (lo
cual no es cierto), la entropía y la ratio del lenguaje r vendrán dada por el valor log2 27 = 4,75 bits/letra,
conocida como ratio absoluta o R.
Esto quiere decir que con 5 bits podremos codificar esos 27 caracteres, lo cual resulta obvio porque 24 = 16 <
27 < 25 = 32. Pero si usamos una codificación óptima, asignando códigos cortos a las letras más frecuentes, nos
encontramos con que esa ratio del lenguaje r es menor que 1,5 bits/letra.
Esto no quiere decir que podamos codificar todos los elementos de ese alfabeto de 27 letras con solo 2 bits; es
evidente que no. Lo que viene a indicar este valor tan bajo es que la cantidad de información que posee cada
letra debido a la redundancia del lenguaje, es de tan solo 1,5 bits.
Así, la redundancia del lenguaje D(x) en este caso será D(x)= R - r = 4,75 - 1,5 = 3,25. Esto significa que de los 5
bits que se utilizarían para codificar esas 27 letras, son innecesarios 3,25 bits.
Si hacemos la razón D(x)/R = 3,25/4,75 obtenemos 68,4 % . Si hablamos de bytes, se ahorra casi un 32% del
espacio de almacenamiento, un porcentaje que nos recuerda mucho a la razón de compresión alcanzada en un
archivo cuando le aplicamos una función zip. Aquí se manifiesta claramente la redundancia del lenguaje.
Es bastante común oír que códigos secretos es un sinónimo de criptografía, pero esto no es correcto puesto
que codificar no es lo mismo que cifrar.
Codificar es una acción estática, en tanto que el código siempre será el mismo, no cambia con el tiempo, ni con
las personas, ni con los países (por ejemplo, el ASCII de A = 0100 0001 siempre).
En cambio, la acción de cifrar es una acción dinámica, en el sentido de que en función de que se use una u otra
clave en la cifra, el criptograma será lógicamente uno u otro.
Existen muchos códigos, como por ejemplo el código Morse, Baudot, ASCII normal, ASCII extendido, decimal,
hexadecimal, binario, octal, Base64, etc., siendo algunos de ellos muy comunes en la criptografía, como por
ejemplo Base64.
3. Los tres hitos que han marcado el paso de la criptografía clásica a la moderna son:
A. El algoritmo DES, el algoritmo AES y el algoritmo RSA
B. Los estudios de Shannon, el algoritmo DES, el algoritmo RSA
C. El algoritmo DES, el intercambio de clave de DH, las funciones hash.
D. Los estudios de Shannon, el algoritmo DES, el intercambio de clave de DH
7. Aplicando el AEE para encontrar el inv (17, 39.900) llegamos al valor -2.347:
A. El inverso buscado es entonces 2.347
B. El inverso buscado es entonces 27.553
C. El inverso buscado es entonces 37.347
D. El inverso buscado es entonces 37.553
Para profundizar en este tema, lee el documento Criptografía Clásica y el capítulo 9 del siguiente libro.
Ramió, J. (2006). Libro electrónico de seguridad informática y criptografía, versión 4.1.
Disponible en: http://www.criptored.upm.es/guiateoria/gt_m001a.htm
Se recomienda la visualización de las siguientes píldoras formativas Thoth del mismo autor:
Píldora 3: ¿Desde cuándo existe la criptografía?
Píldora 4: ¿Por qué hablamos de criptografía clásica y de criptografía moderna?
Píldora 7: ¿Qué son los principios de Kerckhoffs?
Píldora 8: ¿Qué relación existe entre Alan Turing y la criptografía?
Píldora 9: ¿Por qué busca la criptografía la confusión y la difusión?
Píldora 10: ¿Cómo se clasifican los sistemas de cifra clásica?
Píldora 13: ¿Qué es la cifra por sustitución monoalfabética?
Píldora 14: ¿Qué es la cifra por sustitución polialfabética?
Píldora 15: ¿Qué es la cifra por transposición o permutación?
Píldora 16: ¿Qué es la cifra del César?
Píldora 17: ¿Qué es la cifra afín?
Píldora 18: ¿Cómo se ataca la cifra por sustitución monoalfabética?
Píldora 19: ¿Qué es la cifra de Vigenère?
Píldora 20: ¿Cómo se ataca por Kasiski la cifra de Vigenère?
Píldora 21: ¿Qué es la cifra por matrices de Hill?
Píldora 22: ¿Cómo se ataca por Gauss-Jordan la cifra de Hill?
Píldora 26: ¿Cómo se clasifican los sistemas de cifra moderna?
Píldora 27: ¿Qué es mejor, la criptografía simétrica o la asimétrica?
Píldora 31: ¿Qué son los rellenos y los modos de cifra en bloque?
Píldora 36: ¿Qué es el código Base64?
Disponibles en:
https://www.youtube.com/watch?v=7MqTpfEreJ0&list=PL8bSwVy8_IcNNS5QDLjV7gUg8dIeMFSER
Clasificaremos los sistemas de cifra clásica y presentaremos los sistemas de cifra por permutación, los sistemas
de cifra por sustitución y el cifrado por matrices.
Además, profundizaremos en los conceptos relacionados con la criptografía moderna, analizando las razones
de su clasificación, comparando la criptografía simétrica con la asimétrica, para terminar observando el uso de
estos algoritmos en protocolos y servicios de seguridad.
Puesto que lo más importante de esta asignatura son lógicamente los sistemas de cifra modernos, que
trataremos al final de este capítulo y en los tres siguientes, en este capítulo solo se presentarán los principios
de la cifra clásica de una manera breve, dejando al alumno que profundice en estos temas —si tiene interés en
ello— mediante un extenso conjunto de 16 píldoras formativas Thoth, así como el software de prácticas
Criptoclásicos V 2.1
La Figura 2.1 muestra una captura de pantalla de este programa tras prosperar un criptoanálisis a la cifra de
Vigenère mediante el método de Kasiski.
En su traducción literal, los seis principios que el criptógrafo holandés Auguste Kerckhoffs propone en 1883
sobre la criptografía, son los siguientes:
La aportación más importante de los Principios de Kerckhoffs es la segunda, que dice: “el sistema no debe ser
secreto y no debe ser un problema que este caiga en manos del enemigo”.
Hoy en día hemos simplificado su enunciado, diciendo que: “la seguridad del sistema debe recaer solamente
en la clave”, todo lo demás deberá ser público.
La clasificación principal de los sistemas de cifra clásica atiende al tipo de operación que se realizará al texto en
claro durante la cifra, bien sea la de transposición para lograr la difusión, o bien la de sustitución para lograr la
confusión. La transposición consiste en cambiar las letras del lugar que ocupan en el texto en claro y la
sustitución consiste en cambiar una letra o conjunto de letras del texto en claro por otra letra u otro conjunto
de letras de un alfabeto de cifrado.
La cifra por permutación tiene un corto recorrido en la historia de la criptografía clásica, no así la de
sustitución, en donde aparecen conceptos como cifra monoalfabética y cifra polialfabética, así como la cifra
monográmica y la cifra poligrámica.
Todos estos métodos y principios se siguen utilizando hoy en día, obviamente ya no sobre letras sino sobre bits
y bytes y, en su caso, trabajando con el código ASCII extendido. Los sistemas de cifra actuales utilizan tanto las
técnicas de transposición como las de sustitución, y son “monográmicos” en tanto algunos sistemas cifran en
flujo bits o bytes (e.g. A5 y RC4) o bien “poligrámicos”, cuando la cifra se realiza por bloques (e.g. AES, 3DES).
Por este motivo, es normal e incluso recomendable, dedicar una hora de clase a estos temas de criptografía
clásica, de fácil comprensión y con una clara influencia en la cifra moderna.
La escítala, usada en el siglo V a. C. por el pueblo griego de los lacedemonios, es el sistema de cifra más
antiguo que se conoce. Consistía en un bastón de madera en el que se enrollaba una cinta de cuero y luego se
escribía en ella de forma longitudinal el mensaje que se deseaba esconder. Hecho esto, al desenrollar la cinta
las letras aparecerán desordenadas. Para descifrar el criptograma y recuperar en recepción el texto en claro,
había que enrollar dicha cinta en un bastón con el mismo diámetro que el usado en el extremo emisor y tras
ello leer el mensaje de forma longitudinal.
La clave del sistema se encontraba obviamente en el diámetro del bastón. Se trata de entonces de una cifra
por transposición pues los caracteres del criptograma son los mismos que en el texto en claro, pero están
distribuidos de otra forma dentro del criptograma.
Con el paso del tiempo fueron apareciendo otros sistemas, entre ellos la cifra por columnas y la cifra por filas.
Figura 2.3. Cifrado por columnas (izquierda) y cifrado por filas (derecha).
Por el contrario, en la cifra por filas se escribe el texto en claro en vertical y se pasa a la columna siguiente
cuando se ha alcanzado un número de filas o clave, que en este caso en la Figura 2.3 es igual a 4. El
criptograma resultante TSINF SRPCP IXAOI OLXNS ORAX es la lectura por filas del texto en claro
TRANSPOSICION POR FILAS.
Observa que, al trabajar dentro de un rectángulo, es muy posible que el texto en claro no quepa exactamente
en él y, por tanto, debamos incluir rellenos. Como se observa en la Figura 2.3, esto se ha hecho usando la letra
X que se supone conocen emisor y receptor. En los sistemas de cifra simétrica modernos también se usará este
relleno (en este caso bits o bytes) al cifrar en bloques.
0 10 20
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6
M A B C D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z
C D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z A B C
El descifrado es elemental: se desplazan las letras del criptograma 3 espacios a la izquierda. Matemáticamente
podemos representar la cifra genérica tipo César, o por desplazamiento puro, en módulo n con las siguientes
expresiones:
𝒄 = 𝒎 + 𝒃 𝒎𝒐𝒅 𝒏
𝒎 = 𝒄 − 𝒃 𝒎𝒐𝒅 𝒏
Cifrado afín
Si además de desplazar el texto como en el caso del César también multiplicamos el texto en claro por una
constante, nos encontramos ante el cifrado afín, con una clave algo mayor y cuyas ecuaciones de cifrado y
descifrado son:
𝒄 = 𝒂 ∗ 𝒎 + 𝒃 𝒎𝒐𝒅 𝒏
𝒎 = (𝒄 – 𝒃) ∗ 𝒊𝒏𝒗 (𝒂, 𝒏) 𝒎𝒐𝒅 𝒏
Observa que no es válido escribir m = (c – b)/a mod n, pero en cambio sí es válido m = (c – b) * a-1 mod n, o
como indica la ecuación m = (c – b) * inv (a, n) mod n, siempre que dicho inverso exista.
Por ejemplo, si en módulo 27 ciframos el mensaje de cinco letras AMIGO con las constantes a = 2 y b = 5, se
obtiene el criptograma C = FCUQI como se muestra en la figura 2.5.
Texto m A M I G O
Alfabeto 0 12 8 6 15
x 2 mod 27 0 24 16 12 3
+ 5 mod 27 5 2 21 17 8
Criptograma c F C U Q I
Figura 2.5. Cifrado afín mod 27 con a = 2 y b = 5.
Dado el siguiente criptograma C = SVPSW PMDNA SGHMX MXMBH MKSTS CNBBM B, observamos que las
letras más frecuentes del criptograma son la letra M (en negrita) con 6 apariciones
% ) (19
y la letra S
(subrayada) con 5 apariciones (16 % ). Sisuponem os que corresponden a la cifra de las letras más frecuentes
del alfabeto español, la E y la A respectivamente:
M = a*E + b mod 27
S = a*A + b mod 27
Como:
A = 0, E = 4, M = 12, S = 19
19 = a*0 + b mod 27. (b = 19)
-7 = 20 = a*4 mod 27
a = 20 inv (4, 27) mod 27 = 20*7 mod 27 = 5 (a = 5)
Cifrado de Vigenère
Se trata de uno de los más famosos algoritmos de cifra clásica, inventado por el criptógrafo francés Blaise de
Vigenère 1586, que se resistió al criptoanálisis durante más de 250 años. Es una cifra polialfabética al contar
con más de un alfabeto de cifrado. Las ecuaciones que rigen el cifrado y el descifrado en módulo n son:
ci = mi + ki mod n
mi = ci - ki mod n
Donde mi y ki son las letras en la posición i del texto en claro y de la clave, como se muestra en el ejemplo de la
figura 2.6 al cifrar el texto RESISTIÓ TRESCIENTOS AÑOS con la clave SEGURO en mod 27.
Observa que la letra S (negrita) del texto en claro se cifra como primero Y después como K, y que la letra I
(subrayada) del criptograma proviene de la cifra de dos letras distintas del texto en claro, la letra E y la letra T,
obviamente por la posición de la letra de la clave en el momento de la cifra.
Debido a lo anterior, con este tipo de cifra las estadísticas del lenguaje ya no se manifiestan tan claramente en
el criptograma. Es más, si la clave tiene 8 o más letras, las frecuencias de las letras en el criptograma son todas
muy similares y la distribución de frecuencias tiende a ser uniforme. No obstante, el militar alemán Friedrich
Kasiski observa en 1863 que la redundancia del lenguaje no se manifiesta solo en textos que se leen letra a
letra (lectura normal y lógica), sino que también lo hace cuando de dicho texto en claro se van leyendo letras
en saltos, cada x posiciones, que es en el fondo lo que hace la cifra de Vigenère, en tanto la clave se va
repitiendo y se usan de esta manera los mismos alfabetos de cifrado cada x posiciones o longitud de la clave.
Por lo tanto, las repeticiones de tres o más letras en el criptograma deberían provenir obligatoriamente de n-
gramas muy comunes en el lenguaje como, por ejemplo, terminaciones del tipo ado, ido, ando, iendo, mente,
así como otras combinaciones comunes de letras en las palabras del lenguaje utilizado.
A comienzos del siglo XX, Lester Hill inventa un sistema de cifra ngrámico, utilizando matrices y siendo la
ecuación de cifrado como se muestra arriba.
En donde Ci y Mi serán las letras del criptograma y texto en claro, respectivamente, y kij los valores de la clave,
lógicamente números dentro del cuerpo de cifra n. Observa que la matriz debe ser cuadrada; es decir, si
ciframos cada dos letras (digramas), la matriz clave tendrá una dimensión de 2x2; si ciframos cada tres letras
(trigramas), la matriz clave será de dimensión 3x3, etc.
Puesto que la cifra se hace en módulo n y para descifrar hay que hacer la misma operación que hacíamos en la
cifra afín (en vez de dividir, multiplicar por el inverso), en este caso la matriz clave K debe tener inversa, es
decir, es necesario que exista K-1 mod n. Para que esto se cumpla, el determinante de K no debe ser cero (no
ser singular) y además no debe tener factores en común con el módulo n, es decir, mcd (|K|, n) = 1.
Como ejemplo cifraremos el mensaje AMIGO CONDUCTOR en bloques de 3 letras, con cifrado trigrámico,
usando para ello una matriz de 3x3 como la que se muestra:
El espacio de claves que puede obtenerse en las matrices clave si el módulo n es un número primo y se cifra en
bloques de d letras, se acerca a:
2
nd
Por ejemplo, para matrices de 8x8, una cifra con bloques de ocho letras y n = 191 como cuerpo de cifra (un
número primo y un subconjunto del código ASCII extendido con todos sus caracteres imprimibles), definido en
el software CriptoClásicos V2.1, el espacio de claves será aproximadamente de 19164 ≈ 2485, un valor inmenso.
Por lo tanto, estos sistemas soportan muy bien un ataque en el que solo se conozca el texto cifrado. En
resumen, resulta computacionalmente imposible intentar romper la cifra por fuerza bruta.
Sin embargo, serán esos sistemas matriciales altamente vulnerables ante ataques con texto en claro conocido,
aplicando la técnica de Gauss-Jordan. Con muy poco texto en claro, normalmente inicios o finales del mismo,
seremos capaces de encontrar la matriz clave y por lo tanto descifrar todo el criptograma. Básicamente, en
este ataque se van buscando los vectores unitarios (la matriz de identidad) de forma que de ello pueda
deducirse la clave.
Como moraleja final de los sistemas de cifra clásica podemos concluir que:
• Son sistemas muy sencillos, en algún caso hasta rudimentarios, en donde resulta fácil aplicar fuerza
bruta en el ataque para algunos cifrados (por ejemplo la cifra del César).
• En algunos casos, las estadísticas y la redundancia del lenguaje nos permiten realizar ataques elegantes
o criptoanálisis (por ejemplo la cifra afín, la cifra de Vigenère).
• En otros casos, son las matemáticas las que nos permiten criptoanalizar el sistema (por ejemplo el
cifrado de Hill con texto en claro conocido).
• Son sistemas lineales y por ello no son seguros. Algo que no ocurrirá con la criptografía moderna.
En resumen: será muy fácil cifrar, será muy fácil descifrar y no nos resultará nada difícil aplicar métodos de
criptoanálisis para romper la cifra de una forma elegante.
En los criptosistemas modernos, a diferencia de los sistemas clásicos, la cifra se realiza sobre bits o bytes y
tanto la representación del texto en claro (sea este cualquier documento o archivo) como la del criptograma,
se realiza sobre todos los caracteres del código ASCII, los 256 caracteres representados en bytes de 8 bits.
Como existe una cantidad de caracteres ASCII no imprimibles, es común representar los códigos de estos 256
caracteres por su valor en hexadecimal. De esta manera, los tres códigos que se muestran a continuación
representan al mensaje en ASCII “Códigos para todos los gustos.”, el punto y final incluido.
Los algoritmos de cifra moderna usan por lo general una operación algebraica en Zn, un cuerpo finito, sin que
necesariamente este módulo deba corresponder con el número de elementos del alfabeto o código utilizado,
como sí sucedía siempre en la cifra clásica. Es más, nunca coincidirán porque en criptografía moderna siempre
será mucho mayor el cuerpo de trabajo que el alfabeto usado, en este caso ASCII extendido, octetos o bytes.
Como ya ha sido comentado en el capítulo 1, la cifra moderna puede clasificarse de acuerdo a cómo se trata a
la información antes de cifrarla, distinguiendo entre la cifra en flujo y la cifra en bloque. Existe otra división
relacionada con el tipo de clave utilizada, diferenciando ahora entre la criptografía simétrica o de clave secreta
y la criptografía asimétrica o de clave pública.
A5, RC4
Telefonía móvil, Internet y Clav e pública Clav e secreta
WLAN
DES, 3DES, CAST,
Ex ponenciación Suma/producto IDEA, AES, RC5…
Cifrado propio de la
información en una sesión
Curv as en Internet o en una red.
DH, RSA, ElGamal Tam bién se usa en cifrado
Elípticas/Mochilas
local
Uso en intercambio CE: intercambio clave y
de clave y en firma firm a digital. Mochilas:
digital protección de SW
m ediante dispositivo
HW.
La cifra en flujo
Emisor y receptor intercambian una clave conocida como semilla (s = seed), del orden de 100 bits o mayor. A
continuación y mediante un algoritmo determinista, por ejemplo un LFSR (linear feedback shift register) o
registro de desplazamiento realimentado linealmente, generan la misma secuencia cifrante Si, cuyos bits
cifrarán or exclusivo a los bits del texto en claro, uno a uno.
Como la función XOR es involutiva, para descifrar el criptograma se hace la misma operación XOR, ahora entre
los bits Ci del criptograma y los bits de la misma secuencia de clave Si, recuperando el texto en claro Mi.
Aquí el mensaje se agrupa en bloques, por lo general de 8 o 16 bytes (64 o 128 bits) antes de aplicar el
algoritmo de cifra a cada bloque de forma independiente con la misma clave. No obstante, como veremos más
adelante, este modo de cifra por bloques independientes no se usará al haber otros modos de cifra más
seguros.
Si el bloque fuese muy pequeño, por ejemplo, de uno o de dos bytes, esto facilitaría un ataque por estadísticas
del lenguaje. Se trataría de un cifrado por monogramas similar al del César o por digramas, muy débil al
manifestarse la redundancia del lenguaje en el criptograma, y lógicamente no adecuado para los tiempos
actuales. Y si el bloque fuese muy grande, por ejemplo, de cientos o miles de bytes, el sistema no tendría un
buen rendimiento.
Los valores indicados de 64 y 128 bits son un término medio adecuado porque, además, permiten romper la
estructura del lenguaje en el criptograma.
Si se cifran bloques independientes, el modo de cifra se conoce como ECB, (electronic codebook) o libro
electrónico de códigos. Este modo está prohibido pues permite ataques por repetición de bloques conocidos y
ataques por inicios y finales repetidos.
Aunque existen varios modos de cifra para los sistemas por bloques, los más conocidos son el modo CBC,
(cipher block chaining) o encadenamiento de bloques cifrantes, y el modo CTR, (counter) o contador. Los
esquemas correspondientes de estos modos y el análisis de cada uno de ellos se verán en el siguiente capítulo
Algoritmos de cifra simétrica.
¿Qué tipo de cifra es recomendable utilizar, simétrica o asimétrica, bloque o flujo? Vamos a contestar a estas
preguntas.
Como se ha indicado en el apartado anterior, la cifra asimétrica (clave pública) tiene como fortalezas una
eficiente gestión de claves, permite el intercambio de claves y posee firma digital, aspectos de los que adolece
la cifra simétrica (clave secreta). Pero los sistemas de cifra asimétricos son unas mil veces más lentos que los
simétricos.
Debido a la baja velocidad o tasa de cifra del sistema asimétrico, la criptografía asimétrica se utilizará solo para
las operaciones de intercambio de clave y de firma digital, siempre con valores relativamente pequeños de
entrada (la clave a intercambiar o bien la función hash del documento a firmar), y no para la cifra de los datos
propiamente tal, que se hará con la simétrica.
Y esto es así ya que en el intercambio de clave sesión (una clave K de cifra simétrica), dicha clave tendrá un
tamaño de unas centenas de bits, típicamente entre 128 y 256 bits, y que para la firma digital no se firmará el
documento completo sino un hash del mismo, típicamente entre 160 y 256 bits. Así, aunque la tasa de los
sistemas asimétricos sea tan solo de centenas de Kbytes por segundo, como lo que se cifra son pocas centenas
de bits, la velocidad y eficiencia del sistema asimétrico no se resienten.
Por lo tanto, en este entorno de cifra híbrida la criptografía asimétrica se usa para el intercambio de clave de
sesión y la autenticación mediante firma digital, y la criptografía simétrica se usa para el cifrado propiamente
dicho de la información.
La Figura 2.9 muestra la tasa de cifra de varios algoritmos conocido: AES, DES, 3DES, RC4 y Blowfish. Observa
que RC4 era aproximadamente 4 veces más rápido que AES y que este último es el doble de rápido que el DES.
Obviamente 3DES es el que peor tasa de cifra tiene, dado que se trata de tres cifrados sucesivos del mismo
algoritmo DES, un modo de cifrado múltiple que veremos en el capítulo siguiente.
Los algoritmos modernos que estudiaremos en los siguientes capítulos aparecerán, por ejemplo, en un
certificado digital X.509 y en el protocolo SSL/TLS de sesión segura en Internet.
En la figura 2.20 se observan los algoritmos a los que han llegado a un acuerdo el cliente (navegador) y el
servidor (Google) en un handshake de sesión TLS, en donde ECDHE significa Elliptic Curve Diffie-Hellman key
Exchange, ECDSA Elliptic Curve Digital Signature Algorithm y GCM Galois/Counter Mode, un modo de cifra tipo
contador.