Está en la página 1de 97

Clasificación de los criptosistemas

Los criptosistemas pueden clasificarse por:


a) Su relación con la Historia en:
- Sistemas clásicos y sistemas modernos
b) El tratamiento de la información a cifrar en:
- Sistemas de cifrado en bloque y en flujo
c) El tipo de clave utilizada:
- Sistemas de clave secreta (simétricos ) y clave pública (asimétricos)

No es la mejor clasificación, pero nos permitirá comprobar el desarrollo


de estas técnicas de cifrado.

Cifrado en flujo

Cifrado en bloque

Cifrado con clave secreta

Cifrado con clave pública

Compresión y seguridad 2.- Criptografía clásica 1


Criptografía clásica
La criptografía clásica abarca desde tiempos inmemoriales hasta la mitad del
siglo XX.

El punto de inflexión en esta clasificación la marcan tres hechos relevantes:

En el año 1948 se publica el estudio de C. Shannon sobre la Teoría de la


Información.
En 1974 aparece el estándar de cifrado DES.
En el año 1976 se publica el estudio realizado por W. Diffie y M.
Hellman sobre la aplicación de funciones matemáticas de un solo sentido
a un modelo de cifra, denominado cifrado con clave pública.

Cifrado
digital

Compresión y seguridad 2.- Criptografía clásica 2


Alfabetos de cifrado
En la mayoría de los cifradores clásicos se utiliza como alfabeto el mismo
alfabeto del texto en claro.

Para poder aplicar las operaciones de transformación se asocia a cada letra del
alfabeto un número.

Por ejemplo:

A B C D E F G H I J K L M N
0 1 2 3 4 5 6 7 8 9 10 11 12 13

Ñ O P Q R S T U V W X Y Z
14 15 16 17 18 19 20 21 22 23 24 25 26

Compresión y seguridad 2.- Criptografía clásica 3


Clasificación de los criptosistemas clásicos

Monoalfabéticas

Monográmicas

Sustituciones Poligrámicas

Polialfabéticas

Homofónicas

Transposiciones

Compresión y seguridad 2.- Criptografía clásica 4


Criptosistemas con clave secreta
Las técnicas utilizadas por los criptosistemas clásicos están orientadas al uso
de clave secreta.

Un criptosistema con clave secreta es aquel en el que el emisor y el receptor


comparten una clave única k. Es condición indispensable, por tanto, la
existencia de un canal libre de espionaje por el que se pueda hacer llegar la
clave al legítimo receptor.

El criptosistema está constituido por un conjunto K de claves, un conjunto M


de mensajes en claro, un conjunto C de mensajes cifrados y para cada k∈K un
par de funciones Ek:M→C y Dk:C→M tales que

Dk[Ek(m)]=m ∀m∈M

Debe ser fácil obtener, para cada k∈K, los algoritmos necesarios para calcular
Ek y Dk.

Compresión y seguridad 2.- Criptografía clásica 5


Criptosistemas con clave secreta

ESQUEMA DE UN SISTEMA DE CIFRADO

Texto en Emisor Receptor Texto en


claro claro
Cifrado Canal inseguro Descifrado

Clave Canal seguro

Compresión y seguridad 2.- Criptografía clásica 6


2.1 Criptosistemas basados en sustituciones
Para cifrar un texto en claro se sustituyen uno o varios caracteres del mismo
por uno o más símbolos.
Se establece por tanto una o varias aplicaciones entre el alfabeto en el
que se escribe el texto en claro y el alfabeto o los alfabetos en los que se
escribe el criptograma.

2.1.1 Sustitución simple


El caso más sencillo es el de sustitución simple en el que cada carácter del
texto en claro, escrito con un alfabeto A cuyos elementos están ordenados, es
sustituido por su correspondiente carácter en un alfabeto ordenado B.
Si consideramos que A=a1,a2,...,an entonces B=f(a1),f(a2),...,f(an),
donde f: A →B es una aplicación biyectiva.
En este apartado podemos encuadrar el método de cifrado de Julio César
estudiado en el tema anterior.
Un mensaje m=m1m2..... se cifrará como

c=Ek(m)=f(m1)f(m2)...

Compresión y seguridad 2.- Criptografía clásica 7


2.1.1 Sustitución simple: cifrado monoalfabético

Ejemplo

Supongamos que queremos cifrar el mensaje

m=AGOSTO

el alfabeto en el que está escrito es

A=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

y en el que debemos cifrar

B=Q,W,E,R,T,A,S,D,F,G,Z,X,C,V,B,P,O,I,U,Y,Ñ,L,K,J,H,M,N

Supongamos que f:A→B asocia a cada elemento de A el correspondiente en


B que ocupa su misma posición. Se tiene

c=Ek(m)=QSPYÑP

Compresión y seguridad 2.- Criptografía clásica 8


2.1.1 Sustitución simple: cifrado monoalfabético

Cifradores tipo César con alfabetos mixtos


El alfabeto de texto en claro y el de cifrado no coinciden.
A=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
B=! ,1, #, =, *,2, +, },”,3,………………………………………….

Lápida del cementerio de Trinity


Desde el punto de vista histórico, quizás, uno de los casos más interesantes
se encuentra en la inscripción de una lápida del cementerio de Trinity (un
distrito de Nueva York), realizada en 1794.

Este criptograma fue descifrado en 1896.


Criptoanálisis del cifrado del César
QYIWXVSTVMPIVGVMTXSEQEOMWMW

TexCif01.txt CripClas

Compresión y seguridad 2.- Criptografía clásica 9


2.1.1 Sustitución simple: sustitución afín
Los cifradores monoalfabéticos genéricos, también llamados de
transformaciones afines, sustituyen los caracteres del texto en claro usando la
transformación en n=0,1,2,...,n-1
ci=Ek(mi)=rmi+k mod n k,r∈n= 0,1,2,...,n-1
En donde r se conoce como constante de decimación y k como constante
de desplazamiento.

El par (k,r) constituye la clave

La función de descifrado se obtiene haciendo uso de la aritmética modular,


se tiene ci= rmi+k mod n → ci-k = rmi mod n → mi= (ci-k)r-1 mod n, luego

mi=Dk(ci)=(ci-k)r-1 mod n k,r∈ n=0,1,2,...,n-1

Es necesario exigir que mcd(n,r)=1 para que la ecuación rx mod n=1


tenga solución, por lo que el número de claves distintas es n φ(n), es decir,
los n posibles desplazamientos por la función de Euler de n.

Compresión y seguridad 2.- Criptografía clásica 10


2.1.1 Sustitución simple: sustitución afín
Ejemplo

Consideremos el alfabeto A=_ABCDEFGHIJKLMNÑOPQRSTUVWXYZ


y el texto en claro

m=TRANSFERENCIA_CONFORME

A cada símbolo del alfabeto le asociamos un número


_ A B C D E F G H I J K L MN Ñ O P Q R S T U VWX Y Z
0 1 2 3 4 5 6 7 8 9 10 11 12131415161718192021222324252627

Para cifrar m utilizamos la clave k=2 y r=3, obteniendo

Ek(T)=Ek(21)= 3⋅21+2 mod 28 = 9 = I


Ek(R)=Ek(19)= 3⋅19+2 mod 28 = 3 = C
Ek(E)=Ek( 5) = 3⋅5+2 mod 28 =17 = P

o sea

c=ICEOFSPCPOKAEBKUOSUCMP

Compresión y seguridad 2.- Criptografía clásica 11


2.1.1 Sustitución simple: sustitución afín

Ejemplo

Para descifrar c utilizamos la clave k=2 y r-1=19*, obteniéndose

Dk(I) = Dk(9) = (9-2) 19 mod 28 = 21 = T


Dk(C)= Dk(3) = (3-2) 19 mod 28 = 19 = R
Dk(P)= Dk(17) = (17-2)19 mod 28 = 5 = E

Si generamos el alfabeto de cifrado, se simplificará el descifrado de


posteriores criptogramas en los que se haya utilizado la misma clave.

_ A B C D E F G H I J K L MN Ñ O P Q R S T U VWX Y Z
0 1 2 3 4 5 6 7 8 9 10 11 12131415161718192021222324252627
2 5 8 11 1417202326 1 4 7 101316192225 0 3 6 9 121518212427
B E HKN P S VYADG J MO R UX _ C F I L ÑQ TWZ

Tenemos lo que se conoce como caja de sustitución.

Compresión y seguridad 2.- Criptografía clásica 12


2.1.1 Sustitución simple: Inverso en n
*Algoritmo extendido de Euclides

¿ x = 3-1 mod 28 ?  1 = x⋅3 mod 28 (existe ya que mcd(28,3)=mcd(22⋅7,3)=1)

Compresión y seguridad 2.- Criptografía clásica 13


2.1.1 Sustitución simple: Inverso en n
*Algoritmo extendido de Euclides

¿ x = 3-1 mod 28 ?  1 = x⋅3 mod 28 (existe ya que mcd(28,3)=mcd(22⋅7,3)=1)

D = c⋅d + r

Compresión y seguridad 2.- Criptografía clásica 14


2.1.1 Sustitución simple: Inverso en n
*Algoritmo extendido de Euclides

¿ x = 3-1 mod 28 ?  1 = x⋅3 mod 28 (existe ya que mcd(28,3)=mcd(22⋅7,3)=1)

D = c⋅d + r

28 = 9⋅3+ 1 ⇒ 1 = 28 - 9⋅3 mod 28 = (-9)⋅3 mod 28 = (28-9)⋅3 mod 28 =


= 19 ⋅3 mod 28

Compresión y seguridad 2.- Criptografía clásica 15


2.1.1 Sustitución simple: Inverso en n
*Algoritmo extendido de Euclides

¿ x = 3-1 mod 28 ?  1 = x⋅3 mod 28 (existe ya que mcd(28,3)=mcd(22⋅7,3)=1)

D = c⋅d + r

28 = 9⋅3+ 1 ⇒ 1 = 28 - 9⋅3 mod 28 = (-9)⋅3 mod 28 = (28-9)⋅3 mod 28 =


= 19 ⋅3 mod 28

Luego x = 3-1 mod 28 = 19

Compresión y seguridad 2.- Criptografía clásica 16


Ejemplo de inverso en n
Algoritmo extendido de Euclides
¿ x = 17-1 mod 29 ?  1 = x⋅17 mod 29 (existe ya que mcd(29,17)=1)

Compresión y seguridad 2.- Criptografía clásica 17


Ejemplo de inverso en n
Algoritmo extendido de Euclides
¿ x = 17-1 mod 29 ?  1 = x⋅17 mod 29 (existe ya que mcd(29,17)=1)
D=c⋅d+r

Compresión y seguridad 2.- Criptografía clásica 18


Ejemplo de inverso en n
Algoritmo extendido de Euclides
¿ x = 17-1 mod 29 ?  1 = x⋅17 mod 29 (existe ya que mcd(29,17)=1)
D=c⋅d+r
29 = 1⋅17 + 12 ⇒ 12 = 29 - 1⋅17 mod 29 = (-1)⋅17 mod 29

Compresión y seguridad 2.- Criptografía clásica 19


Ejemplo de inverso en n
Algoritmo extendido de Euclides
¿ x = 17-1 mod 29 ?  1 = x⋅17 mod 29 (existe ya que mcd(29,17)=1)
D=c⋅d+r
29 = 1⋅17 + 12 ⇒ 12 = 29 - 1⋅17 mod 29 = (-1)⋅17 mod 29

17 = 1⋅12 + 5 ⇒ 5 = 17 - 1⋅12 mod 29 = 17 – 1⋅(-1) ⋅17 mod 29


= 2⋅17 mod 29

Compresión y seguridad 2.- Criptografía clásica 20


Ejemplo de inverso en n
Algoritmo extendido de Euclides
¿ x = 17-1 mod 29 ?  1 = x⋅17 mod 29 (existe ya que mcd(29,17)=1)
D=c⋅d+r
29 = 1⋅17 + 12 ⇒ 12 = 29 - 1⋅17 mod 29 = (-1)⋅17 mod 29

17 = 1⋅12 + 5 ⇒ 5 = 17 - 1⋅12 mod 29 = 17 – 1⋅(-1) ⋅17 mod 29


= 2⋅17 mod 29

12 = 2⋅5 + 2 ⇒ 2 = 12 - 2⋅5 mod 29 = (-1)⋅17 – 2⋅2⋅17 mod 29


= (-5)⋅17 mod 29 = (-5)⋅17 mod 29

Compresión y seguridad 2.- Criptografía clásica 21


Ejemplo de inverso en n
Algoritmo extendido de Euclides
¿ x = 17-1 mod 29 ?  1 = x⋅17 mod 29 (existe ya que mcd(29,17)=1)
D=c⋅d+r
29 = 1⋅17 + 12 ⇒ 12 = 29 - 1⋅17 mod 29 = (-1)⋅17 mod 29

17 = 1⋅12 + 5 ⇒ 5 = 17 - 1⋅12 mod 29 = 17 – 1⋅(-1) ⋅17 mod 29


= 2⋅17 mod 29

12 = 2⋅5 + 2 ⇒ 2 = 12 - 2⋅5 mod 29 = (-1)⋅17 – 2⋅2⋅17 mod 29


= (-5)⋅17 mod 29 = (-5)⋅17 mod 29

5 = 2⋅2 + 1 ⇒ 1 = 5 - 2⋅2 mod 29 = 2⋅17– 2⋅(-5)⋅17 mod 29


= 12⋅17 mod 29

Compresión y seguridad 2.- Criptografía clásica 22


Ejemplo de inverso en n
Algoritmo extendido de Euclides
¿ x = 17-1 mod 29 ?  1 = x⋅17 mod 29 (existe ya que mcd(29,17)=1)
D=c⋅d+r
29 = 1⋅17 + 12 ⇒ 12 = 29 - 1⋅17 mod 29 = (-1)⋅17 mod 29

17 = 1⋅12 + 5 ⇒ 5 = 17 - 1⋅12 mod 29 = 17 – 1⋅(-1) ⋅17 mod 29


= 2⋅17 mod 29

12 = 2⋅5 + 2 ⇒ 2 = 12 - 2⋅5 mod 29 = (-1)⋅17 – 2⋅2⋅17 mod 29


= (-5)⋅17 mod 29 = (-5)⋅17 mod 29

5 = 2⋅2 + 1 ⇒ 1 = 5 - 2⋅2 mod 29 = 2⋅17– 2⋅(-5)⋅17 mod 29


= 12⋅17 mod 29

Luego x = 17-1 mod 29 = 12

Compresión y seguridad 2.- Criptografía clásica 23


Ejemplo de inverso en n
Algoritmo extendido de Euclides
¿ x = 18-1 mod 29 ?  1 = x⋅18 mod 29 (existe ya que mcd(29,18)=1)
D=c⋅d+r
29 = 1⋅18 + 11 ⇒ 11 = 29 - 1⋅18 mod 29 = (-1)⋅18 mod 29

18 = 1⋅11 + 7 ⇒ 7 = 18 - 1⋅11 mod 29 = 18 – 1⋅(-1) ⋅18 mod 29


= 2⋅18 mod 29
11 = 1⋅7 + 4 ⇒ 4 = 11 - 1⋅7 mod 29 = (-1)⋅18 – 1⋅2⋅18 mod 29
= (-3)⋅18 mod 29

7 = 1⋅4 + 3 ⇒ 3 = 7 - 1⋅4 mod 29 = 2⋅18– (-3) ⋅18 mod 29 = 5⋅18 mod 29

4 = 1⋅3 + 1 ⇒ 1 = 4 - 1⋅3 mod 29 = (-3)⋅18– 1⋅5⋅18 mod 29


= (-8) ⋅18 mod 29 = 21⋅18 mod 29

Luego x = 18-1 mod 29 = 21

Compresión y seguridad 2.- Criptografía clásica 24


2.1.1 Sustitución simple: criptoanalisis

Cifrados monoalfabéticos por sustitución


El número de claves, en general, es n!; que para un alfabeto de 26, 27 ó 28
caracteres es bastante grande.

El elevado número de claves hace que el criptoanálisis mediante estudio


exhaustivo de las claves requiera mucho tiempo.

En un alfabeto con 27 letras si se utiliza un ordenador capaz de comprobar la


validez de una clave en una millonésima de segundo, para estudiarlas todas
necesitaríamos 1022 segundos, lo que equivale a

1022
7
≅ 345.283.785.100.000
3⋅10
años.

Para un alfabeto con 256 caracteres necesitaríamos del orden de 10493 años.

Compresión y seguridad 2.- Criptografía clásica 25


2.1.1 Sustitución simple: criptoanalisis
Observemos que en el ejemplo la letra E aparece tres veces en el texto en
claro, el mismo número de veces que aparece P en el texto cifrado. Lo mismo
ocurre con las letras A y E, O y U, etc.
m=TRANSFERENCIA_CONFORME c=ICEOFSPCPOKAEBKUOSUCMP

El sistema puede ser atacado mediante análisis estadístico de las frecuencias


de aparición de los distintos caracteres en los criptogramas interceptados,
comparándolas con las frecuencias de aparición de las distintas letras en un
determinado idioma.

Si alguna letra "x" del criptograma tiene frecuencia claramente similar a la


frecuencia de alguna letra "y" del idioma, se descifra x como y. El estudio
estadístico se completa con las frecuencias de aparición de digramas,
trigramas, etc.

Compresión y seguridad 2.- Criptografía clásica 26


2.1.1 Sustitución simple: criptoanalisis, ejemplo

Un equipo de delincuentes informáticos ha interceptado un mensaje cifrado


que se transmite entre dos sucursales bancarias, tras meses de intento. El
mensaje contiene la clave de acceso a las bases de datos para el día. Se sabe
que el sistema criptológico que utilizan es de sustitución afín y que a las
letras C e I del texto en claro le corresponden C y Z respectivamente en el
criptograma. El alfabeto utilizado es
A=ABCDEFGHIJKLMNÑOPQRSTUVWXYZ
¿Pueden obtener la clave utilizada con estos datos?

Supongamos que se ha realizado la siguiente asignación numérica al alfabeto


de 27 letras

A B C D E F G H I J K L MN
0 1 2 3 4 5 6 7 8 9 10 11 12 13
Ñ O P Q R S T U VW X Y Z
14 15 16 17 18 19 20 21 22 23 24 25 26

Compresión y seguridad 2.- Criptografía clásica 27


2.1.1 Sustitución simple: criptoanalisis, ejemplo

La función de cifrado debe tener la forma


Ek(mi) = (r mi + k) mod 27
Sabemos que
Ek(2) = (2r + k) mod 27 = 2 mod 27
Ek(8) = (8r + k) mod 27 = 26 mod 27
Resolviendo el sistema
2r+k= 2 mod 27 

8r+k= 26 mod 27 

obtenemos
6 r = 24 mod 27 → r = 4 mod 27
k = -6 mod 27 = 21 mod 27

Por tanto la función de cifrado es


Ek(mi) = (4mi + 21) mod 27

Compresión y seguridad 2.- Criptografía clásica 28


2.1.1 Sustitución simple: criptoanalisis, ejemplo

Vamos a intentar descifrar este criptograma realizado por sustitución

TZTLJPTCDTRHTHCBKIJTVCKCKÑHTPTPTMJVUKRHTÑJTCZEE
UKZYTVMEPKZXJCECMJTVKZÑTVKCKTZYTCKZKILJKRHTVTZ
HUDEZHJMJPEYECDTCTVHCEPJLJZE

ES EVIDENTE QUE UN GOBIERNO NO PUEDE DECIR LO QUE


PIENSA A LOS MERCADOS FINANCIEROS, PERO NO ES MENOS
OBVIO QUE RESULTA SUICIDA MANTENER UNA DIVISA

TexCif02.txt CripClas

Compresión y seguridad 2.- Criptografía clásica 29


2.1.2 Homofónicos
Cada carácter del alfabeto A en que se escribe el texto en claro es sustituido
por un carácter cualquiera de entre un conjunto contenido en el alfabeto B en
el que se escriben los criptogramas. En este caso entre A y B se establece una
correspondencia que no es aplicación.

A los elementos del conjunto B se les llama homofónos.

Con la utilización de este sistema se evita el ataque estadístico de frecuencias


ya que se puede conseguir que las frecuencias en los criptogramas sean
distintas a las del texto en claro.

Compresión y seguridad 2.- Criptografía clásica 30


2.1.2 Homofónicos
Ejemplo

Supongamos que A=a,b,c,d,e y que las frecuencias de aparición de estos


caracteres en textos en claro es

Carácter a b c d e
Frecuencia 40% 20% 20% 10% 10%

Sea B=0,1,2,3,4,5,6,7,8,9 el alfabeto en el que escribiremos los textos


cifrados. Mediante la asignación

Texto en claro a b c d e
Criptograma 0123 45 67 8 9
se consigue que la frecuencia de todos los elementos de B sea del 10%.

Compresión y seguridad 2.- Criptografía clásica 31


2.1.3 Polialfabéticos monográmicos
Una forma alternativa para evitar el ataque estadístico de frecuencias es
utilizar varios alfabetos para cifrar el texto en claro.
Si, por ejemplo, utilizamos dos alfabetos para cifrar generados a partir de las
palabras clave “LOCOMOTORA” “MURCIELAGO”
1 A B C D E F G H I J K L MN Ñ O P Q R S T U VWX Y Z
2 L O CM T R A B D E F G H I J K N Ñ P Q S U VWX Y Z
3 Z Y XWV T S Q P Ñ N K J H F D B O G A L E I C R UM
el texto en claro
m=MAYO FLORIDO
se puede cifrar utilizando el segundo alfabeto para las letras que ocupen
posición impar y el tercero para las que ocupen posición par, obteniendo
c=HZYD RKKPPMD
La frecuencia de aparición de la letra O en m es 3 veces mientras que ninguna
letra aparece tres veces en c, en cambio en c hay tres letras que se repiten dos
veces y en m ninguna.

Compresión y seguridad 2.- Criptografía clásica 32


2.1.3 Polialfabéticos monográmicos
La mayoría de los sistemas de sustitución poligráfica están basados en la
sustitución de los caracteres del texto en claro de una forma periódica:

dados d alfabetos B1,B2,...,Bd, se establecen correspondencias fi:A→Bi,


i={1,2,⋅⋅⋅,d}, entre el alfabeto del texto en claro y los alfabetos del
criptograma;

así, si m=m1m2...mdmd+1md+2...m2d...

c=Ek(m)= f1(m1)f2(m2)...fd(md)  f1(md+1)f2(md+2)...fd(m2d)...

Compresión y seguridad 2.- Criptografía clásica 33


2.1.3 Polialfabéticos monográmicos: método Vigenère

Uno de los métodos más simples de sustitución polialfabética es el


desarrollado por el francés Blaise Vigenère (1523-1596). En este método la
clave es utilizada para indicar el alfabeto en el que se sustituirá cada carácter
del texto en claro.

Sea k=k1k2...kd la clave, en la que los elementos ki representan caracteres del


alfabeto A de los mensajes en claro y los números de las posiciones que
ocupan en A.

Si a∈A

fi(a)=a+ki mod n

donde n es el número de elementos de A.

Compresión y seguridad 2.- Criptografía clásica 34


2.1.3 Polialfabéticos monográmicos: método Vigenère

La tabla facilita la labor de 0 A B C D E F G H I J K L MN Ñ O P Q R S T U V WX Y Z


1 B C D E F G H I J K L MN Ñ O P Q R S T U V WX Y Z A
cifrado y descifrado, para ello hay 2 C D E F G H I J K L MN Ñ O P Q R S T U V WX Y Z A B
que repetir la clave tantas veces 3 D E F G H I J K L MN Ñ O P Q R S T U V WX Y Z A B C
como sea preciso hasta cubrir el 4 E F G H I J K L MN Ñ O P Q R S T U V WX Y Z A B C D
texto en claro 5 F G H I J K L MN Ñ O P Q R S T U V WX Y Z A B C D E
6 G H I J K L MN Ñ O P Q R S T U V WX Y Z A B C D E F
7 H I J K L MN Ñ O P Q R S T U V WX Y Z A B C D E F G
8 I J K L MN Ñ O P Q R S T U V WX Y Z A B C D E F G H
9 J K L MN Ñ O P Q R S T U V WX Y Z A B C D E F G H I
10 K L MN Ñ O P Q R S T U V WX Y Z A B C D E F G H I J
11 L MN Ñ O P Q R S T U V WX Y Z A B C D E F G H I J K
M 12 MN Ñ O P Q R S T U V WX Y Z A B C D E F G H I J K L
13 N Ñ O P Q R S T U V WX Y Z A B C D E F G H I J K L M
R 14 Ñ O P Q R S T U V WX Y Z A B C D E F G H I J K L MN
15 O P Q R S T U V WX Y Z A B C D E F G H I J K L MN Ñ
D 16 P Q R S T U V WX Y Z A B C D E F G H I J K L MN Ñ O
17 Q R S T U V WX Y Z A B C D E F G H I J K L MN Ñ O P
18 R S T U V WX Y Z A B C D E F G H I J K L MN Ñ O P Q
19 S T U V WX Y Z A B C D E F G H I J K L MN Ñ O P Q R
20 T U V WX Y Z A B C D E F G H I J K L MN Ñ O P Q R S
21 U V WX Y Z A B C D E F G H I J K L MN Ñ O P Q R S T
22 V WX Y Z A B C D E F G H I J K L MN Ñ O P Q R S T U
23 WX Y Z A B C D E F G H I J K L MN Ñ O P Q R S T U V
24 X Y Z A B C D E F G H I J K L MN Ñ O P Q R S T U V W
25 Y Z A B C D E F G H I J K L MN Ñ O P Q R S T U V WX
26 Z A B C D E F G H I J K L MN Ñ O P Q R S T U V WX Y

Compresión y seguridad 2.- Criptografía clásica 35


2.1.3 Poli. monog.: ejemplo Vigenère
Supongamos que queremos cifrar el mensaje
m=MAYO LLOVIDO Y FLORIDO
utilizando la clave
k=ROSA

M A Y O L L O V I D O Y F L O R I D O
R O S A R O S A R O S A R O S A R O S
D O Q O C Z H V Z R H Y W Z H R Z R H
Observemos que
3=12+18 mod 27 (D=M+R mod 27)
15=0+15 mod 27 (O=A+O mod 27)

7=15+19 mod 27 (H=O+S mod 27)
además las secuencias ZH y ZRH se repiten en el criptograma, esto es debido a
que en el texto en claro se repiten el digrama LO y el trigrama IDO que
corresponde cifrarlos con el digrama OS y el trigrama ROS de la clave,
respectivamente.

Compresión y seguridad 2.- Criptografía clásica 36


2.1.3 Poli. monog.: cifrador autoclave
Es una variante del algoritmo de Vigenère, conocida también como segundo
cifrado de Vigenère, cuya característica radica en que se cifra el mensaje con
una clave que consiste en el mismo mensaje al que se añade al comienzo una
clave denominada primaria.

La secuencia de clave es, por tanto, tan larga como el propio mensaje.

P RO T E C C I ON DE LA I N F O R MA C I O N
DOC T ORADO P RO TE C C I OND E L A I N
S GQ N S T C L D C US EE KO N D E O E N I W Z

http://www.criptored.upm.es/thoth/#
(Píldora 19: ¿Qué es la cifra de Vigenère?)
(Píldora 20: ¿Cómo se ataca por Kasiski la cifra de Vigenère?)

Compresión y seguridad 2.- Criptografía clásica 37


2.1.3 Poli. monog.: cifrador Vernam
El ingeniero estadounidense Gilbert Vernam en 1918 diseñó un sistema de
cifrado que inicialmente fue utilizado en la comunicación a través del
telégrafo.
Está basado en los códigos Baudot de los teletipos desarrollados por su
compañía.
Como clave se toma una secuencia aleatoria infinita binaria que se suma
módulo 2 al texto en claro (en binario) para obtener el mensaje cifrado.
Mediante esta técnica las características de frecuencia y periodicidad de los
caracteres no pueden ser utilizadas por los criptoanalistas ya que son
totalmente aleatorias.
Si m=m1m2... es el texto en claro y k=k1k2... es la clave, el criptograma
c=Ek(m)=c1c2... se obtiene haciendo en 2=0,1
ci=mi+ki mod 2 i=1,2,...
El algoritmo de descifrado Dk se obtiene de forma análoga
mi=ci+ki mod 2 i=1,2,...

Compresión y seguridad 2.- Criptografía clásica 38


2.1.3 Poli. monog.: ejemplo de cifrador Vernam

Texto en claro 1 1 0 0 1 0 0 1
Clave 0 0 1 1 1 1 0 0
Criptograma 1 1 1 1 0 1 0 1
ASCII

Utilizando el código ASCII binario vamos a cifrar el mensaje


m=SAL utilizando la clave k=YES.

LETRA ASCII BINARIO


S 83 01010011
A 65 01000001
L 76 01001100
Y 89 01011001
E 69 01000101

SAL 83 65 76 01010011 01000001 01001100


YES 89 69 83 01011001 01000101 01010011
LF EOT US 10 04 31 00001010 00000100 00011111

Compresión y seguridad 2.- Criptografía clásica 39


2.1.4 Poligrámicos monoalfabéticos
Los métodos de sustitución anteriormente estudiados sustituyen uno a uno los
caracteres del texto en claro por otro carácter del alfabeto o alfabetos de
cifrado,

en cambio los métodos de cifrado poligrámico sustituyen bloques de


caracteres del mensaje a cifrar, consecutivos o no, por otros bloques de
símbolos del alfabeto de criptogramas;

de esta forma se destruye la significancia de las frecuencias de aparición


de monogramas.

El sistema más simple es aquel que permite sustituir digramas del texto plano
por parejas de símbolos del alfabeto de cifrado.

Compresión y seguridad 2.- Criptografía clásica 40


2.1.4 … Criptosistemas matriciales. Método Hill

En 1929 Hill propuso que los criptosistemas se formulasen con un modelo


simple de transformaciones sobre M.

Asignando a cada carácter del texto en claro un entero positivo, un


mensaje a cifrar puede ser identificado con una n-tupla de enteros
positivos y las operaciones de cifrado y descifrado con una pareja de
transformaciones lineales inversas.

El modelo más sencillo de cifrado consiste en multiplicar por una matriz


cuadrada e invertible el texto en claro, utilizando el producto por su inversa
para descifrar los textos cifrados.

Compresión y seguridad 2.- Criptografía clásica 41


2.1.4 … Criptosistemas matriciales. Método Hill

Si el alfabeto utilizado para escribir los mensajes en claro tiene m elementos y


la matriz de cifrado (clave) es
 k11 k12  k1n 
k k  k2 n 
K =  21 22 
    
 
 kn1 kn 2  knn 

un texto en claro

M=m1m2...mnmn+1mn+2...m2n...

se transforma en el criptograma

C=c1c2...cncn+1cn+2...c2n...

donde n
=crn +i ∑k m
j =1
ij rn + i mod n ∀i=1,...,n ∀r=0,...

Compresión y seguridad 2.- Criptografía clásica 42


2.1.4 … Criptosistemas matriciales. Método Hill

 m1 mn +1 
m mn + 2 
Expresando M en forma matricial, M =  2 
  
 
 mn m2 n 

el cifrado se expresa

C=Ek(M)=K M mod n

El descifrado se obtiene utilizando K-1

Dk(C)=K-1 C mod n=K-1K M mod n=M

Compresión y seguridad 2.- Criptografía clásica 43


2.1.4 … Criptosistemas matriciales. Método Hill

Notemos que este método sustituye n-gramas del texto en claro por n-gramas
del mensaje cifrado.

La matriz K debe ser siempre cuadrada y sus elementos serán la clave secreta
además debe ser no singular; esto es
det(K)≠0

Este criptosistema, bajo ciertas condiciones, presenta alta seguridad y puede


implementarse fácilmente en los ordenadores.

Compresión y seguridad 2.- Criptografía clásica 44


2.1.4 … Ejemplo Hill

Consideremos el alfabeto A=ABCDEFGHIJKLMNÑOPQRSTUVWXYZ


al que asignamos los números 0,1,2,....,26. Para cifrar el texto en claro
 2 18 3 
M=INFLACION utilizando como clave la matriz K =  5 7 11  ,
9 14 20 
transformamos el texto en claro en la correspondiente secuencia numérica.
INF L AC I ON
08130511 0002081513
Secuencia que escribimos en forma de tabla en la matriz M

 I L I  08 11 08
M =  N A O  = 13 00 15 
   
 F C N  05 02 13 

A B C D E F G H I J K L M N
0 1 2 3 4 5 6 7 8 9 10 11 12 13

Ñ O P Q R S T U V W X Y Z
14 15 16 17 18 19 20 21 22 23 24 25 26

Compresión y seguridad 2.- Criptografía clásica 45


2.1.4 … Ejemplo Hill
Para obtener el texto cifrado multiplicamos por la matriz K.
 2 18 3   8 11 8 
C=KM mod 27=  5 7 11  13 0 15 mod 27
  
9 14 20   5 2 13
 264 28 325 
= 186 77 288 mod 27
 
354 139 542 
 21 1 1 
=  24 23 18
 
 3 4 2 
luego
C = UXDBWEBRC
A B C D E F G H I J K L M N
0 1 2 3 4 5 6 7 8 9 10 11 12 13

Ñ O P Q R S T U V W X Y Z
14 15 16 17 18 19 20 21 22 23 24 25 26

Compresión y seguridad 2.- Criptografía clásica 46


2.1.4 … Ejemplo Hill
Si deseamos descifrar el criptograma C=BIYFHVMUJSAV, debemos
calcular en primer lugar la inversa de K,
K -1mod 27 = [ det(K) ] [ Adj(K) ] mod 27
-1 t

Recordemos que la matriz adjunta (de adjuntos o de cofactores) de la


matriz K, que denotamos por Adj(K), es la matriz cuyo elemento (i,j)
(fila i y columna j) es el adjunto
adi,j = (-1)i+j det(Ki,j)
donde Ki,j es la submatriz que resulta al suprimir de la matriz K la fila i y
la columna j.
y la regla de Sarrus para calcular el determinanate de una matriz 3×3

Nota: El cálculo de la matriz inversa de K se facilitará en los ejercicios y por tanto


no será necesario realizarlo.

Compresión y seguridad 2.- Criptografía clásica 47


2.1.4 … Ejemplo Hill
Si deseamos descifrar el criptograma C=BIYFHVMUJSAV, debemos calcular
en primer lugar la inversa de K,
K -1mod 27 = [ det(K) ] [ Adj(K) ] mod 27
-1 t

det(K) mod 27=-25 mod 27 =2 ⇒ [ det(K) ] mod 27=14


-1

 +(7 ⋅ 20-11 ⋅ 14) -(5 ⋅ 20-11 ⋅ 9) +(5 ⋅ 14-7 ⋅ 9) 


Adj(K) mod 27=  -(18 ⋅ 20-3 ⋅ 14) +(2 ⋅ 20-3 ⋅ 9) -(2 ⋅ 14-18 ⋅ 9)  mod 27 =
 
 +(18 ⋅ 11-3 ⋅ 7) -(2 ⋅ 11-3 ⋅ 5) +(2 ⋅ 7-18 ⋅ 5) 
 -14 -1 7  13 26 7 
= -318 13 134  mod 27 =  6 13 26 
   
 177 -7 −76  15 20 5 
13 6 15 
[ Adj(K)] mod 27 =  26 13 20
t

 7 26 5 
Nota: El cálculo de la matriz inversa de K se facilitará en los ejercicios y por tanto
no será necesario realizarlo.

Compresión y seguridad 2.- Criptografía clásica 48


2.1.4 … Ejemplo Hill
Luego
[det(K) ] [ Adj(K)] mod 27
-1 t
=K -1mod 27 =
13 6 15 
= 14
=  26 13 20  mod 27
 
 7 26 5 
182 84 210   20 3 21
= =364 182 280  mod 27 13 20 10 
   
 98 14 70  17 13 16 

Nota: El cálculo de la matriz inversa de K se facilitará en los ejercicios y por tanto


no será necesario realizarlo.

Compresión y seguridad 2.- Criptografía clásica 49


2.1.4 … Ejemplo Hill
Disponemos el criptograma en forma de tabla 3×4
 B F M S   1 5 12 19 
C =  I H U A  =  8 7 21 0 
   
 Y V J V   25 22 9 22 
y multiplicamos por K-1.
 20 3 21  1 5 12 19 
M = K -1C mod 27 = 13 20 10   8 7 21 0  mod 27 =
   
17 13 16   25 22 9 22 
569 583 492 842   2 16 6 5   C P G F 
=  423 425 666 467  mod 27 = 18 20 18 8  =  R T R I 
     
 521 528 621 675   8 15 0 0   I O A A 
Luego M = CRIPTOGRAFIA
A B C D E F G H I J K L M N
0 1 2 3 4 5 6 7 8 9 10 11 12 13
Ñ O P Q R S T U V W X Y Z
14 15 16 17 18 19 20 21 22 23 24 25 26

Compresión y seguridad 2.- Criptografía clásica 50


2.2 Criptosistemas basados en transposiciones

En este tipo de criptosistemas el cifrado se realiza reordenando los caracteres


del texto en claro.

El resultado de esta acción es la difuminación de la información del texto


en claro y provocar, por tanto, la difusión propuesta por Shannon para la
protección de la misma.

Compresión y seguridad 2.- Criptografía clásica 51


2.2 Criptosistemas basados en transposiciones

La reordenación se suele realizar de acuerdo con un esquema preestablecido,


por lo general coincidente con algún tipo de figura (la más común es una tabla
bidimensional).

Se escriben los caracteres en un determinado orden (por ejemplo por filas)


para leerlos a continuación en otro distinto (por ejemplo por columnas), el
resultado de esta lectura es el mensaje cifrado.

El descifrado se obtiene escribiendo el criptograma en el segundo orden


(columnas) para leerlo de la misma manera que se escribió originalmente (por
filas).

Un ejemplo de este tipo de cifrado lo constituye la scitala espartana estudiada


en una sección anterior.

Compresión y seguridad 2.- Criptografía clásica 52


2.2 Criptosistemas basados en transposiciones

Ejemplo
Si deseamos cifrar el mensaje m=UN_DIA_CUALQUIERA escribiendo por
filas en una tabla 4x5, tendremos
1 2 3 4 5
1 U N D I
2 A C U A
3 L Q U I E
4 R A

Si leemos las columnas en el orden 1,3,5,2,4 el mensaje cifrado que se obtiene


es
c=UALR_CU_IAE_N_QADUI_
La clave utilizada puede ser del tipo k=45c13524

Para descifrar c, utilizando la clave anterior k, debemos utilizar una tabla 4x5
(45), escribir los caracteres en columna (c) en el orden 1,3,5,2,4 y
posteriormente leer por filas.

Compresión y seguridad 2.- Criptografía clásica 53


2.2 Criptosistemas basados en transposiciones

En algunos métodos los caracteres del texto en claro son permutados con un
periodo fijo d.

Dado A=1,2,...,d y σ:A→A una permutación cualquiera de A, la clave


del cifrado viene dada por el par
k=(d,σ)

El texto en claro se divide en bloques de d caracteres que son permutados de


acuerdo con .

Así, el mensaje
m=m1m2...md | md+1md+2....m2d | m2d+1....
es cifrado
c=Ek(m)=mσ(1)mσ(2)...mσ(d) | md+σ(1)md+σ(2)...md+σ(d) | m2d+σ(1)....

El descifrado se realiza usando la permutación inversa de σ.

Compresión y seguridad 2.- Criptografía clásica 54


2.2 Criptosistemas basados en transposiciones
Ejemplo
Supongamos que d=6 y σ=(2 5 1 3 6 4). El mensaje del ejemplo anterior
m=UN_DIA_CUALQUIERA
tiene el siguiente cifrado
NI
c=NIU_ADCL_UQAIAUE_R
Para descifrar c utilizaremos la permutación inversa de σ,
σ-1=(3 1 4 6 2 5).

1 2 3 4 5 6  1 2 3 4 5 6 
σ =  σ −1 = 
 2 5 1 3 6 4 
 3 1 4 6 2 5
σ σ −1
1  2 1 ← 2
σ σ −1
2  5 2 ← 5
σ σ −1
3  1 3 ← 1
σ σ −1
4  3 4 ← 3
σ σ −1
5  6 5 ← 6
σ σ −1
6  4 6 ← 4

Compresión y seguridad 2.- Criptografía clásica 55


2.2 Criptosistemas basados en transposiciones

Criptoanálisis
En el criptoanálisis, un sistema de transposición de caracteres es fácilmente
reconocible, ya que las frecuencias de aparición de los mismos coinciden con
las del mensaje original.

La técnica utilizada para romper el cifrado es el uso de anagramas que


reordenan los caracteres del criptograma hasta situarlos en su posición inicial.

Esta tarea es facilitada por el uso de frecuencias de aparición en


determinado lenguaje de digramas, trigramas, etc.

TPNOTOAOPODRYADOAUROSUNAS
TODOSPARAUNOYUNOPARATODOS

TexCif03.txt CripClas

Compresión y seguridad 2.- Criptografía clásica 56


Introducción a criptosistemas modernos

Cuando se habla de criptografía moderna o criptosistemas modernos, en


contraposición a los estudiados anteriormente y denominados clásicos, se hace
referencia a aquellos sistemas de cifrado, bien de clave secreta, bien de clave
pública, que
por una parte, realizan el cifrado en bits, orientado a todos los caracteres
del sistema de representación numérica que utilicen, es decir ASCII o
ANSI, sin que necesariamente el módulo de trabajo deba coincidir con el
número de elementos del alfabeto o código utilizado

Por lo general, mediante una operación algebraica


dentro de un cuerpo finito

y por otra, basan su seguridad en la fortaleza de la clave y no en el


secreto de un algoritmo de cifrado.

Compresión y seguridad 2.- Criptografía clásica 57


Clasificación de los criptosistemas modernos

MÉTODO DE CIFRADO
Intercambio de claves
Firma digital

EN FLUJO (con clave secreta) POR BLOQUES

Criptosistema Seguro de Shannon


RC4, LFSR, A5,….

CLAVE SECRETA CLAVE PÚBLICA

Cifrado de la
información
DES, IDEA, AES,
etc…

Compresión y seguridad 2.- Criptografía clásica 58


Introducción al cifrado en flujo
Usa el método de cifrado propuesto por Vernam, que cumple con las ideas de Shannon
sobre criptosistemas con secreto perfecto:
El espacio de claves es igual o mayor que el de los mensajes.
Las claves son equiprobables.
La secuencia de clave se usa una sola vez y luego se destruye (one-time pad).

Que la clave sea tan larga como el mensaje genera una serie de problemas:
la secuencia de bits de la clave deberá enviarse al destinatario a través de un canal
que sabemos es inseguro.
si la secuencia es “infinita”, desbordaríamos la capacidad del canal de
comunicaciones.
Si se utiliza un canal seguro para enviar la clave, ¿por qué entonces no se envía
directamente el texto en claro y nos dejamos de historias?
Solución

La solución consiste en generar una secuencia pseudoaleatoria con un


algoritmo determinístico a partir de una semilla de sólo unas centenas de
bits. Esta semilla es la que se envía al receptor por un canal seguro.

Compresión y seguridad 2.- Criptografía clásica 59


Introducción al cifrado en flujo
El mensaje en claro se leerá bit a bit.
Se realizará una operación de cifrado (normalmente la función XOR) con una
secuencia cifrante de bits S que debe cumplir ciertas condiciones:
Un período muy alto.
Aleatoriedad en sus propiedades.

Esquema

c c
m XOR XOR m
bits del criptograma
secuencia cifrante S secuencia cifrante S
Semilla

Compresión y seguridad 2.- Criptografía clásica 60


Cifrado en flujo
ALGORITMOS DE CIFRADO EN FLUJO
Entre los sistemas de cifrado en flujo más conocidos y utilizados destacamos:
RC4: Algoritmo de RSA, Rivest Cipher #4, desarrollado en el año 1987.
SPRITZ: variante mejorada de RC4 desarrollada en 2014.
http://people.csail.mit.edu/rivest/pubs/RS14.pdf
http://crypto.2014.rump.cr.yp.to/3de41b60e32a494c8f0fc9c21c67063a.pdf

Salsa20: uno de los algoritmos ganadores de eSTREAM PROJECT


https://en.wikipedia.org/wiki/Salsa20

A5: Algoritmo no publicado propuesto en 1994. Versiones A5/1 fuerte


(Europa) y A5/2 débil (exportación). Utilizado para cifrar el enlace en la
telefonía móvil GSM (Global Systems for Mobile communications) o
telefonía 2G.
SNOW 3G, núcleo de la integridad y la confidencialidad de las
comunicaciones 4G.
https://rua.ua.es/dspace/bitstream/10045/40395/1/RECSI-2014_12.pdf

Compresión y seguridad 2.- Criptografía clásica 61


Cifrado en bloque con clave secreta
El texto en claro se fracciona en bloques de un tamaño constante y se aplica,
con la misma clave, el algoritmo a cada bloque de forma independiente.

El cifrado se realiza con una clave secreta

Algunos de los más conocidos son


DES (Data Encryiption Standard) por su uso en aplicaciones bancarias.
IDEA (International Data Encryption Algorithm) por su uso en el cifrado
de correo electrónico.
AES (Advanced Encryption Standard): nuevo estándar avanzado de
cifrado del Instituto Nacional de Estándares y Tecnología (National
Institute of Standards and Technology, NIST) (Rijndael)

Compresión y seguridad 2.- Criptografía clásica 62


Cifrado en bloque con clave secreta
ALGORITMOS MÁS UTILIZADOS
AES
DES (Triple DES)
Serpent
Blowfish, Twofish

OTROS ALGORITMOS
Camellia
CAST-128
IDEA
RC2, RC5, RC6
SEED
ARIA
Skipjack
TEA, XTEA

Compresión y seguridad 2.- Criptografía clásica 63


Cifrado en bloque con clave secreta

Debilidades del cifrado con clave secreta


• Mala gestión de claves: para una red de n usuarios el número de claves es
O(n2). Para un número grande de usuarios es intratable.
• Mala distribución de claves: no existe posibilidad de enviar, de forma
segura, una clave a través de un medio inseguro.
• No tiene firma digital: aunque es posible autentificar el texto en claro
mediante una marca, no es posible firmarlo digitalmente.

Mala gestión de claves .


¿Tiene algo de bueno el cifrado en
Mala distribución de claves .
bloque con clave secreta?
No tiene firma digital .

Sí, la velocidad de cifrado es muy alta 

Compresión y seguridad 2.- Criptografía clásica 64


Cifrado en bloque con clave pública
Como ya se ha comentado, uno de los mayores inconvenientes que presentan
los sistemas de clave secreta cuando existe un gran número de usuarios, es
que cada par de ellos debe poseer su clave secreta, lo que conlleva gran
dificultad en la distribución segura de esas claves.

Un sistema de clave pública permite la comunicación cifrada entre dos


usuarios sin necesidad de compartir una clave.

Compresión y seguridad 2.- Criptografía clásica 65


Cifrado en bloque con clave pública
La idea fundamental de Diffie y Hellman (principios de la década de los 70)
para la definición de un criptosistema de clave pública proviene de la
existencia de funciones unidireccionales.

Empezó a ser conocido a través de su aplicación en los sistemas de correo


electrónico seguro (PGP y PEM) al permitir incluir una firma digital adjunta
al documento enviado.

Cada usuario tiene dos claves, una secreta o privada y otra pública, inversas
dentro de un conjunto finito.

Compresión y seguridad 2.- Criptografía clásica 66


Cambio de clave Diffie-Hellman
Imaginemos la siguiente situación.
Alicia quiere enviar un mensaje personal a Benito,
Para ello mete su mensaje secreto en una caja de hierro, la cierra con candado
y se la envía a Benito.
Cuando llega la caja, Benito añade su propio candado y vuelve a enviar la caja
a Alicia

ALICIA BENITO

CAJA

Compresión y seguridad 2.- Criptografía clásica 67


Cambio de clave Diffie-Hellman
Imaginemos la siguiente situación.
Alicia quiere enviar un mensaje personal a Benito,
Para ello mete su mensaje secreto en una caja de hierro, la cierra con candado
y se la envía a Benito.
Cuando llega la caja, Benito añade su propio candado y vuelve a enviar la caja
a Alicia
Cuando Alicia recibe la caja, ahora está cerrada con dos candados. Ella retira
su propio candado, dejando que sólo el candado de Benito cierre la caja.

ALICIA BENITO

CAJA

Compresión y seguridad 2.- Criptografía clásica 68


Cambio de clave Diffie-Hellman
Imaginemos la siguiente situación.
Alicia quiere enviar un mensaje personal a Benito,
Para ello mete su mensaje secreto en una caja de hierro, la cierra con candado
y se la envía a Benito.
Cuando llega la caja, Benito añade su propio candado y vuelve a enviar la caja
a Alicia
Cuando Alicia recibe la caja, ahora está cerrada con dos candados. Ella retira
su propio candado, dejando que sólo el candado de Benito cierre la caja.
Finalmente, vuelve a enviar la caja a Benito, y éste puede ahora retirar su
candado y obtener el mensaje contenido en la caja.

ALICIA BENITO

CAJA

Compresión y seguridad 2.- Criptografía clásica 69


Protocolo clave pública
Imaginemos la siguiente situación.
Alicia quiere enviar un mensaje personal a Benito.
Para ello, Benito le envía su candado abierto.

ALICIA BENITO

Compresión y seguridad 2.- Criptografía clásica 70


Protocolo clave pública
Imaginemos la siguiente situación.
Alicia quiere enviar un mensaje personal a Benito.
Para ello, Benito le envía su candado abierto.
Alicia mete su mensaje secreto en una caja de hierro, la cierra con el candado
de Benito y se la envía a Benito.

ALICIA BENITO

CAJA

Compresión y seguridad 2.- Criptografía clásica 71


Protocolo clave pública
Imaginemos la siguiente situación.
Alicia quiere enviar un mensaje personal a Benito.
Para ello, Benito le envía su candado abierto.
Alicia mete su mensaje secreto en una caja de hierro, la cierra con el candado
de Benito y se la envía a Benito.
Finalmente Benito abre su candado y puede obtener el mensaje contenido en
la caja.

ALICIA BENITO

CAJA

Compresión y seguridad 2.- Criptografía clásica 72


Funciones unidireccionales
Una función f:A→B se dice unidireccional si ∀a∈A resulta fácil,
computacionalmente, calcular f(a), mientras que ∀b∈f(A) no es
computacionalmente factible encontrar un a∈A tal que f(a)=b.

Este tipo de funciones no debe ser confundido con aquellas que no tienen
inversa por no ser biyectivas.

Son funciones matemáticas de un solo sentido (one-way functions) que


permiten usar el sentido directo (de cálculo fácil) para cifrar y descifrar y el
sentido inverso (de cálculo difícil) para los ataques.

Un ejemplo sencillo de función potencialmente unidireccional es el producto


de números enteros.
Multiplicar dos enteros de cien cifras cada uno resulta rápido incluso para
el ordenador más modesto, en cambio el más potente ordenador equipado
del mejor algoritmo de factorización conocido no sería capaz de
descomponer el producto antes del tiempo previsto para el fin del
Universo.

Compresión y seguridad 2.- Criptografía clásica 73


Ejemplos de funciones unidireccionales

Problema de Cálculo directo: producto de dos primos grandes p∗q = n


la factorización Cálculo inverso: factorización de número grande n = p∗q

Problema del Cálculo directo: exponenciación discreta b = ax mod n


logaritmo discreto Cálculo inverso: logaritmo discreto x = loga b mod n

Problema de Cálculo directo: suma de elementos de mochila con trampa


la mochila Cálculo inverso: suma de elementos de mochila sin trampa

Problema de Cálculo directo: cuadrado discreto x = a∗a mod n


la raíz discreta Cálculo inverso: raíz cuadrada discreta n = a mod n

Compresión y seguridad 2.- Criptografía clásica 74


Cifrado con clave pública
Uno de los mayores inconvenientes que presentan los sistemas de clave
secreta cuando existe un gran número de usuarios es que cada par de ellos
debe poseer su clave secreta, lo que conlleva gran dificultad en la distribución
segura de esas claves.

Otro gran inconveniente es que no se puede firmar digitalmente el mensaje,


con lo que el receptor del mismo no puede estar seguro de su autenticidad (o
sea, no puede estar seguro de que quien dice que le envía el mensaje sea
realmente quien lo ha hecho)

Compresión y seguridad 2.- Criptografía clásica 75


Cifrado con clave pública
Un criptosistema de clave pública permite la comunicación cifrada entre dos
usuarios sin necesidad de compartir una clave, así como la firma digital de los
mensajes.

Los algoritmos de clave pública, o algoritmos asimétricos, han demostrado su


interés para ser empleados en redes de comunicación inseguras (Internet)

Introducidos por Whitfield Diffie y Martin Hellman a mediados de los años


70, su novedad fundamental con respecto a la criptografía simétrica o de clave
secreta es que las claves no son únicas, sino que forman pares con la
propiedad de que una es capaz de descifrar lo que ha sido cifrado por la otra.

Compresión y seguridad 2.- Criptografía clásica 76


Cifrado con clave pública
Los algoritmos asimétricos, por lo general, basan su seguridad en el
enfrentamiento del atacante a problemas matemáticos que requieren mucha
computación.

Emplean, generalmente, longitudes de clave mucho mayores que los


simétricos.
Por ejemplo, mientras que para algoritmos simétricos se considera segura
una clave de 128 bits, para algoritmos asimétricos (si exceptuamos
aquellos basados en curvas elípticas) se recomiendan claves de al menos
1024 bits.

La complejidad de cálculo que comportan los hace considerablemente más


lentos que los algoritmos de cifrado simétricos.

En la práctica los métodos asimétricos se emplean únicamente para cifrar


la clave de sesión (simétrica) de cada mensaje o transacción particular.

Compresión y seguridad 2.- Criptografía clásica 77


Cifrado con clave pública
Fijadas las dos claves de cada usuario como clave pública y clave privada.

La clave privada deberá ser custodiada por el usuario y es imprescindible que


se mantenga en secreto.

La clave pública, por el contrario, se publicará junto con la identidad del


usuario.

Así, cuando se quiera enviar un mensaje seguro a un usuario se hará uso de la


clave pública, que se utilizará para cifrar el mensaje a enviar.

Compresión y seguridad 2.- Criptografía clásica 78


Cifrado con clave pública
El resultado de esta operación será el texto cifrado que sólo el propietario de
la clave privada correspondiente a esa clave pública podrá descifrar.

Estas claves tienen características matemáticas especiales.


Se generan siempre a la vez, por parejas, estando cada una de ellas ligada
intrínsecamente a la otra,
de tal forma que si dos claves públicas son diferentes, entonces sus claves
privadas asociadas también lo son y viceversa.

Compresión y seguridad 2.- Criptografía clásica 79


Cifrado con clave pública
Los algoritmos de clave pública están basados en funciones matemáticas
fáciles de resolver en un sentido (unidireccionales), pero muy complicadas de
realizar en sentido inverso, salvo que se conozca alguna trampa.

Ambas claves, pública y privada, están relacionadas matemáticamente, pero


esta relación debe ser lo suficientemente compleja como para que resulte muy
difícil obtener una a partir de la otra.

Este es el motivo por el que normalmente estas claves no las elige el usuario,
si no que lo hace un algoritmo específico para ello.

Compresión y seguridad 2.- Criptografía clásica 80


Cifrado con clave pública
En este tipo de ciptosistemas, para enviar un mensaje con seguridad, el emisor
(A) cifra el mismo con la clave pública del receptor (B) y lo envía por el
medio inseguro.

Este mensaje está totalmente protegido en su viaje, ya que sólo se puede


descifrar con la clave privada correspondiente, conocida solamente por B.

Al llegar el mensaje cifrado a su destino, el receptor usa su clave privada para


obtener el mensaje en claro.

El algoritmo más utilizado es RSA

Compresión y seguridad 2.- Criptografía clásica 81


Ejemplo de funcionamiento
KB = clave pública de B
CRIPTOSISTEMA DE CLAVE PÚBLICA kB = clave privada de B

A B
m EKB DkB

A EKB B
m EKB DkB

A c= EKB (m) B
m EKB c EKB DkB

A B
DkB (c)=
m EKB DkB (EKB (m))=m

Compresión y seguridad 2.- Criptografía clásica 82


Firma digital
Estamos pasando, gracias a Internet y a la aparición de las nuevas tecnologías,
de un sistema tradicional de realizar operaciones comerciales a uno nuevo que
las efectúa mediante métodos electrónicos.

Resulta necesario contar con técnicas electrónicas que suplanten la tradicional


firma autógrafa y dar así validez a documentos electrónicos.

La firma digital se justifica desde el momento en que los contratos, las


transacciones económicas, las compras, etc. se realizan on-line

Compresión y seguridad 2.- Criptografía clásica 83


Firma digital
Dos problemas aquejan a estos documentos electrónicos:

Confidencialidad: Capacidad de mantener un documento electrónico


inaccesible a todos, excepto a una lista determinada de personas.
Se resuelve con métodos de cifrado.

Autenticidad: Capacidad de averiguar de forma segura e irrevocable la


procedencia del mensaje.
Se resuelve con técnicas como la firma digital.

Compresión y seguridad 2.- Criptografía clásica 84


Firma digital
Si A desea firmar digitalmente el mensaje m, envía el mensaje cifrado
c=EKB(m) al usuario B y para firmarlo,
en primer lugar calcula su rúbrica cifrando el mensaje a enviar con su
clave secreta, r= DkA(m), y
a continuación determina su firma para el mensaje m, cifrando con la
clave pública de B esa rúbrica, s= EKB(r)= EKB[DkA(m)].

B verifica la firma digital de A determinando,


en primer lugar, la rúbrica de A, DkB(s) = DkB[EKB(r)], y
a continuación comprobando que EKA(r) = EKA[DkA(m)] coincide con el
mensaje m.

KA = clave pública de A KB = clave pública de B


kA = clave privada de A kB = clave privada de B

Compresión y seguridad 2.- Criptografía clásica 85


Esquema de firma digital sin cifrado

A EKA DkA B EKB DkB


m
m m
s=EKB (r)
m; r = DkA(m); s = EKB(r) m; s

m; DkB(s)= r

m; s; r;
EKA(r)= EKA [DkA(m) ] = m

KA = clave pública de A KB = clave pública de B


kA = clave privada de A kB = clave privada de B

Compresión y seguridad 2.- Criptografía clásica 86


Esquema de firma digital con cifrado

A EKA DkA B EKB DkB


c=EKB (m)
m c; m = DkB(c)
s=EKB (r)
m; r = DkA(m); s = EKB(r) c; m; s

c; m; s; DkB(s)= r

c; m; s; r;
EKA(r)= EKA [DkA(m) ] = m

KA = clave pública de A KB = clave pública de B


kA = clave privada de A kB = clave privada de B

Compresión y seguridad 2.- Criptografía clásica 87


Firma digital con cifrado en RSA
Consideremos dos usuarios A y B, con claves (nA, eA, dA) y (nB, eB, dB)
respectivamente.

Si A desea firmar digitalmente el mensaje m, envía el mensaje cifrado


c = EKB(m) = me mod nB al usuario B y para firmarlo,
B

en primer lugar calcula su rúbrica cifrando el mensaje a enviar con su


clave secreta, r = DkA(m) = md mod nA, y
A

a continuación determina su firma para el mensaje m cifrando con la


clave pública de B esa rúbrica, s= EKB(r) = re mod nB.
B

B verifica la firma digital de A determinando,


en primer lugar, la rúbrica de A, DkB(s) = sd mod nB, y
B

a continuación comprobando que EKA(r) = re mod nA= md e mod nA


A A A

coincide con el mensaje m.

Compresión y seguridad 2.- Criptografía clásica 88


Esquema de firma digital con cifrado de RSA

A nA, eA, dA B nB, eB, dB

c=meB mod nB
c
m
m = cdB mod nB

m c
s= reB mod nB
r = mdA mod nA m
s = reB mod nB s

c; m; s;
sdB mod nB=rdBeB mod nB=r

c; m; s; r;
reA mod nA = m

Compresión y seguridad 2.- Criptografía clásica 89


Ejemplo de firma digital con cifrado de RSA

A nA= 5.11 = 55, eA=33, dA =17 B nB = 3.17 = 51, eB = 21, dB = 29

m=12; c=3 c=3


c=meB mod nB = 1221 mod 51 =3 m = cdB mod nB= 329 mod 51 =12

m c=3
s=3
r = mdA mod nA= 1217 mod 55 =12 m = 12
s = reB mod nB= 1221 mod 51 =3 s=3

c = 3; m = 12; s = 3;
r = sdB mod nB= 329 mod 51 = 12

c = 3; m = 12; s = 3; r = 12
reA mod nA = 1233 mod 55 = 12 = m

SI

Compresión y seguridad 2.- Criptografía clásica 90


Funciones hash
Los criptosistemas de clave pública, por lo general, son mucho más lentos que
los de clave secreta.

Los esquemas de firma digital, también suelen ser muy lentos y, en ocasiones,
la longitud de la firma suele ser similar o mayor que el propio mensaje que se
firma.

La necesidad de firmar los mensajes y el hecho no deseable de que la longitud


de la firma sea extensa, hace pensar en la conveniencia de buscar una solución
a ese problema.
La solución consiste en utilizar unas funciones llamadas hash (picadillo,
resumen).

Compresión y seguridad 2.- Criptografía clásica 91


Funciones hash
En lugar de firmar digitalmente el mensaje completo, se firma digitalmente un
resumen o hash de dicho mensaje, representado por sólo una centena de bits.

Las funciones hash también se utilizan para verificar la integridad de los


mensajes, ya que si se produce un cambio, el resumen que se genera es
diferente.

Compresión y seguridad 2.- Criptografía clásica 92


Funciones hash

En general, las funciones hash se


basan en la idea de funciones de
compresión, que dan como
resultado bloques de longitud n a
partir de bloques de longitud m.

Estas funciones se encadenan de mi


forma iterativa, haciendo que la Función hi
entrada en el paso i sea función del hi-1 hash
i-ésimo bloque del mensaje y de la
salida del paso i-1

Frecuentemente, se suele incluir en


alguno de los bloques del mensaje
m (al principio o al final),
información sobre la longitud total
del mensaje.

Compresión y seguridad 2.- Criptografía clásica 93


Algunas funciones hash
MD5: Ron Rivest 1992. Mejoras al MD4 y MD2 (1990), es más lento pero
con mayor nivel de seguridad que estas. Resumen de 128 bits.

SHA-1: Del NIST, National Institute of Standards and Technology, 1994.


Similar a MD5 pero con resumen de 160 bits. El NIST ha publicado una
revisión del estándar, FIPS 180-2 , en la que se añaden 3 algoritmos de hash
adicionales:
SHA-256, SHA-384, SHA-512,
diseñados para que sean compatibles con el estándar de cifrado AES.

SHA-2: es un conjunto de funciones hash criptográficas (SHA-224, SHA-


256, SHA-384, SHA-512) diseñadas por la Agencia de Seguridad Nacional
(NSA) y publicadas en 2001 por el Instituto Nacional de Estándares y
Tecnología (NIST) como un Estándar Federal de Procesamiento de la
Información (FIPS). Incluye un significante número de cambios respecto a su
predecesor, SHA-1.

Compresión y seguridad 2.- Criptografía clásica 94


Algunas funciones hash : SHA-3

SHA-3 (Keccak): La competición para seleccionar el algoritmo criptográfico


de hash para reemplazar a SHA-1 y a SHA-2, lanzada por el NIST EN 2007,
finalizó con la elección oficial por parte del equipo NIST de Keccak como el
nuevo algoritmo SHA-3. Tras seis años de proceso, se tomó una decisión y el
algoritmo Keccak fue elegido como el nuevo SHA-3. Keccak es obra de
Guido Bertoni, Joan Daemen, Michaël Peeter y Gilles Van Assche
trabajadores de STMicroelectronics y NXP Semiconductors.

NIST Cyptographic Hash Algorithm Competition (SHA-3)

Función ganadora del concurso SHA-3: Keccak

Compresión y seguridad 2.- Criptografía clásica 95


Algunas funciones hash

Píldoras formativas THOTH - Criptored

http://www.criptored.upm.es/thoth/#

43. ¿Qué son y para qué sirven las funciones hash?

44. ¿Cómo funciona el hash MD5?

45. ¿Cómo funciona el hash SHA-1?

46. ¿Qué son SHA-2 y SHA-3?

Compresión y seguridad 2.- Criptografía clásica 96