Está en la página 1de 89

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)

Compresión y seguridad 2.- El cifrado de datos clásico 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.- El cifrado de datos clásico 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.- El cifrado de datos clásico 3


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.

Compresión y seguridad 2.- El cifrado de datos clásico 4


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.- El cifrado de datos clásico 5


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.- El cifrado de datos clásico 6


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.- El cifrado de datos clásico 7


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,………………………………………….

Compresión y seguridad 2.- El cifrado de datos clásico 8


2.1.1 Sustitución simple: cifrado monoalfabético

Cifradores tipo César con alfabetos mixtos

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.
R E M E M B E R D EATH

Compresión y seguridad 2.- El cifrado de datos clásico 9


2.1.1 Sustitución simple: cifrado monoalfabético

Criptoanálisis del cifrado del César


QYIWXVSTVMPIVGVMTXSEQEOMWMW

TexCif01.txt CripClas

Compresión y seguridad 2.- El cifrado de datos clásico 10


2.1.1 Sustitución simple: sustitución afín
Los cifradores 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, o lo que es lo mismo para que exista r-1.

Compresión y seguridad 2.- El cifrado de datos clásico 11


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 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27

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.- El cifrado de datos clásico 12


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

Ejemplo

Para descifrar c=ICEOFSPCPOKAEBKUOSUCMP


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

Dk(ci)= (ci-k)r-1 mod n (k=2, r=3)


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 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
2 5 8 11 14 17 20 23 26 1 4 7 10 13 16 19 22 25 0 3 6 9 12 15 18 21 24 27
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.- El cifrado de datos clásico 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)

Compresión y seguridad 2.- El cifrado de datos clásico 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

Compresión y seguridad 2.- El cifrado de datos clásico 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

Compresión y seguridad 2.- El cifrado de datos clásico 16


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.- El cifrado de datos clásico 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)

Compresión y seguridad 2.- El cifrado de datos clásico 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

Compresión y seguridad 2.- El cifrado de datos clásico 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

Compresión y seguridad 2.- El cifrado de datos clásico 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

Compresión y seguridad 2.- El cifrado de datos clásico 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

Compresión y seguridad 2.- El cifrado de datos clásico 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

Compresión y seguridad 2.- El cifrado de datos clásico 23


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.- El cifrado de datos clásico 24


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.- El cifrado de datos clásico 25


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
≅ 345.283.785.100.000
3⋅10 7
años.

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

Compresión y seguridad 2.- El cifrado de datos clásico 26


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.- El cifrado de datos clásico 27


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.- El cifrado de datos clásico 28


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(C)=C→Ek(2)=2 y Ek(I)=Z→Ek(8)=26

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.- El cifrado de datos clásico 29


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.- El cifrado de datos clásico 30


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.- El cifrado de datos clásico 31


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 0 1 2 3 4 5 6 7 8 9
se consigue que la frecuencia de todos los elementos de B sea del 10%.

Si por ejemplo
m = aaaa bb cc d e
la frecuencia de aparición se ajusta a la de la tabla y al cifrar se obtendría
c=0123 45 67 8 9
cuyos caracteres aparecen todos en un 10% de ocasiones

Compresión y seguridad 2.- El cifrado de datos clásico 32


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.- El cifrado de datos clásico 33


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.- El cifrado de datos clásico 34


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.- El cifrado de datos clásico 35


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.- El cifrado de datos clásico 36


2.1.3 Polialfabéticos monográmicos: 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.- El cifrado de datos clásico 37


2.1.3 Polialfabéticos monográmicos: 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.- El cifrado de datos clásico 38


2.1.3 Polialfabéticos monográmicos: 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.- El cifrado de datos clásico 39


2.1.3 Polialfabéticos monográmicos : 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.- El cifrado de datos clásico 40


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.- El cifrado de datos clásico 41


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.- El cifrado de datos clásico 42


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.- El cifrado de datos clásico 43


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.- El cifrado de datos clásico 44


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.- El cifrado de datos clásico 45


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
08 13 05 11 00 02 08 15 13
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.- El cifrado de datos clásico 46


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.- El cifrado de datos clásico 47


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.- El cifrado de datos clásico 48


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.- El cifrado de datos clásico 49


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.- El cifrado de datos clásico 50


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 s.

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.- El cifrado de datos clásico 51


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.- El cifrado de datos clásico 52


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.- El cifrado de datos clásico 53


2.3 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.- El cifrado de datos clásico 54


2.3 Introducción a criptosistemas modernos

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.- El cifrado de datos clásico 55


2.3 Introducción a criptosistemas modernos
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 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.- El cifrado de datos clásico 56


2.3 Introducción a criptosistemas modernos

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.- El cifrado de datos clásico 57


2.3 Introducción a criptosistemas modernos
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.

Salsa20: uno de los algoritmos ganadores de eSTREAM PROJECT

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

E0, algoritmo utilizdo en el cifrado de la información transmitida


mediante tecnología Bluetooth.

Compresión y seguridad 2.- El cifrado de datos clásico 58


2.3 Introducción a criptosistemas modernos

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.
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.- El cifrado de datos clásico 59


2.3 Introducción a criptosistemas modernos

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.- El cifrado de datos clásico 60


2.3 Introducción a criptosistemas modernos
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.- El cifrado de datos clásico 61


2.3 Introducción a criptosistemas modernos

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.- El cifrado de datos clásico 62


2.3 Introducción a criptosistemas modernos

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.- El cifrado de datos clásico 63


2.3 Introducción a criptosistemas modernos

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.- El cifrado de datos clásico 64


2.3 Introducción a criptosistemas modernos

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.- El cifrado de datos clásico 65


2.3 Introducción a criptosistemas modernos

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.- El cifrado de datos clásico 66


2.3 Introducción a criptosistemas modernos

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.- El cifrado de datos clásico 67


2.3 Introducción a criptosistemas modernos

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.- El cifrado de datos clásico 68


2.3 Introducción a criptosistemas modernos

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.- El cifrado de datos clásico 69


2.3 Introducción a criptosistemas modernos

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.- El cifrado de datos clásico 70


2.3 Introducción a criptosistemas modernos

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: 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.- El cifrado de datos clásico 71


2.3 Introducción a criptosistemas modernos

CRIPTOSISTEMAS DE 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.- El cifrado de datos clásico 72


2.3 Introducción a criptosistemas modernos

CRIPTOSISTEMAS DE 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.- El cifrado de datos clásico 73


2.3 Introducción a criptosistemas modernos

CRIPTOSISTEMAS DE 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.- El cifrado de datos clásico 74


2.3 Introducción a criptosistemas modernos

CRIPTOSISTEMAS DE 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.- El cifrado de datos clásico 75


2.3 Introducción a criptosistemas modernos

CRIPTOSISTEMAS DE 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.- El cifrado de datos clásico 76


2.3 Introducción a criptosistemas modernos

CRIPTOSISTEMAS DE 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.- El cifrado de datos clásico 77


2.3 Introducción a criptosistemas modernos

CRIPTOSISTEMAS DE 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.- El cifrado de datos clásico 78


2.3 Introducción a criptosistemas modernos

CRIPTOSISTEMAS DE CLAVE PÚBLICA


Si, por ejemplo, el usuario A tiene una clave kA y el usuario B desea enviarle
un mensaje m∈M, deberá cifrarlo haciendo uso del algoritmo público de
cifrado transmitiéndole c=E K.A (m)

Con la ayuda de la función unidireccional y de su transformación inversa


sólo conocida por A, este usuario descifrará c
D K A (c)=D K A  E K A (m)  =m

Conviene hacer notar que, a diferencia de los sistemas de clave privada, si el


usuario B cifra el texto en claro m para enviárselo a A y por algún motivo
pierde el mensaje original, si desea recuperarlo se encuentra en la misma
situación que cualquier criptoanalista. El criptograma sólo es descifrable
mediante D K A .

Compresión y seguridad 2.- El cifrado de datos clásico 79


2.3 Introducción a criptosistemas modernos
KB = clave pública de B
CRIPTOSISTEMA DE CLAVE PÚBLICA (EJEMPLO DE FUNCIONAMIENTO) 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.- El cifrado de datos clásico 80


2.3 Introducción a criptosistemas modernos

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.- El cifrado de datos clásico 81


2.3 Introducción a criptosistemas modernos

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.- El cifrado de datos clásico 82


2.3 Introducción a criptosistemas modernos

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.

Compresión y seguridad 2.- El cifrado de datos clásico 83


2.3 Introducción a criptosistemas modernos

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.- El cifrado de datos clásico 84


2.3 Introducción a criptosistemas modernos

ESQUEMA DE FIRMA DIGITAL SIN 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.- El cifrado de datos clásico 85


2.3 Introducción a criptosistemas modernos

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.- El cifrado de datos clásico 86


2.3 Introducción a criptosistemas modernos

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.- El cifrado de datos clásico 87


2.3 Introducción a criptosistemas modernos

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.- El cifrado de datos clásico 88

También podría gustarte