Este documento resume los conceptos básicos de la criptografía clásica. Explica que un criptosistema se define como una quíntupla que incluye el espacio de mensajes, el espacio de texto cifrado, el espacio de claves, el algoritmo de cifrado y el algoritmo de descifrado. También distingue entre criptosistemas simétricos que usan una sola clave y criptosistemas asimétricos que usan claves públicas y privadas. Finalmente, explica brevemente los conceptos de cifrado por bloques y
4. Observación.
Alternativamente, podemos pensar en un sistema de cifrado como un conjunto de
tres algoritmos eficientes computables:
Un algoritmo de generación de claves
Un algoritmo de cifrado, y
Un algoritmo de descifrado.
Aquí, la generación algorítmica de claves (implícita o explícitamente) define el espacio
de claves K y la generación algorítmica de cifrado y de descifrado definen los espacios
de texto plano y texto cifrado P y C.
.
PmmmED kk ;))((
5. Confidencialidad e integridad
Medio de
Transmisor Transmisión
ReceptorM C
Cifrador Mensaje cifrado Descifrador
T RMT
C M
Los datos no son
modificados
por un intruso
Privacidad
de los datos
Integridad
Confidencialidad
Estos dos aspectos básicos de la seguridad informática, el de la confidencialidad
y el de integridad (además de la disponibilidad del sistema y el no repudio)
serán muy importantes en un entorno de intercambio de información segura a
través de Internet.
6. Función Hash
En general, podemos decir que una función hash nos permite obtener una
cadena de bits de longitud fija, relativamente corta, a partir de un mensaje de
longitud arbitraria:
H = h(M)
Para mensajes M iguales, la función h debe dar resúmenes H iguales. Pero si dos
mensajes dan el mismo resumen H no deben ser necesariamente iguales. Esto es así
porque sólo existe un conjunto limitado de posibles valores H, ya que su longitud es
fija, y en cambio puede haber muchos más mensajes M (si la longitud puede ser
cualquiera, habrá infinitos).
Para poderla aplicar en un sistema de autenticación, la función h debe ser una
función hash segura.
7. Firma Digital
los algoritmos de firma digital usados normalmente se basan en el cálculo
de un hash y en un cifrado mediante una clave privada. Son ejemplos de
algoritmos de firma el RSA, el ElGamal, y el estándar DSA (Digital Signature
Algorithm).
En una función Hash criptografica correctamente diseñada, la probabilidad
De que ocurra una colision es extremadamente baja: si la función Hash, h genera
un resumen de n bits, entonces la probabilidad de que una cadena
Arbitraria tenga un resumen determinado es de:
n
2
8. Cualquier medio de transmisión es inseguro
Según el tipo de claves se dividen en:
Cifrado con clave secreta.
Cifrado con clave pública.
a)
Sistemas simétricos
Sistemas asimétricos
Criptosistemas simétricos:
Existirá una única clave (secreta) que deben compartir emisor y receptor. Con la misma
clave se cifra y se descifra por lo que la seguridad reside en mantener dicha clave en
secreto.
Existen dos tipos de criptosistemas:
Clasificación de los criptosistemas
9. Tres debilidades en la cifra simétrica
a) Mala gestión de claves.
Crece el número de claves secretas en una proporción igual a n2 para un
valor n grande de usuarios lo que imposibilita usarlo.
b) Mala distribución de claves.
No existe posibilidad de enviar, de forma segura y eficiente, una clave a través
de un medio o canal inseguro.
c) No tiene firma digital.
Aunque sí será posible autenticar el mensaje mediante una marca, no es
posible firmar digitalmente el mensaje, al menos en un sentido amplio y
sencillo.
10. Criptosistemas asimétricos:
Cada usuario crea un par de claves, una privada y otra pública. Lo que se cifra en
emisión con una clave, se descifra en recepción con la clave inversa. La seguridad del
sistema reside en la dificultad computacional de descubrir la clave privada a partir de la
pública. Para ello, usan funciones matemáticas de un solo sentido o con trampa.
11. Sistema híbrido de cifra y firma digital
Firma
digital
sobre
Hash
h(M)
Autenticación
del usuario A e
integridad de M
k k
h(M)
EA
h(M)
Usuario A
k privada
de A
Usuario B
k pública
de A
Cifrado asimétrico
DA
C
M M
Cifrado simétrico del mensaje
k secreta
Dk(C)Ek(M)
C
k secreta
Confidencialidad
Integridad
La confidencialidad y la integridad se obtienen por separado
M
12. Según el tratamiento del mensaje se dividen en:
Cifrado en bloque (IDEA, AES, RSA ...) 64 ó 128 bits
Cifrado en flujo (A5, RC4, SEAL ...) cifrado bit a bit
b)
Cualquier medio de transmisión es inseguro
Criptosistemas en flujo:
Es un criptosistema simétrico que divide el texto claro símbolo a símbolo a modo de
cadena; para ello toma el texto en claro y lo cifra con una secuencia cifrante
produciendo una cadena de texto cifrado.
Se utiliza mucho en las telecomunicaciones. Por ejemplo, en una conversación de
telefonía móvil la voz se digitaliza (es decir, se convierte a un flujo de bits) y se envía
cifrada por la red de comunicaciones. Con el fin de no entorpecer la conversación, el
proceso de cifrado debería ser lo bastante rápido como para no añadir retraso a la
comunicación. Por ello, conviene que la operación de cifrado sea rápida.
XOR
Secuencia cifrante Si
Mensaje M
Bits del Criptograma
XOR Mensaje M
Secuencia cifrante Si
C C
13. La figura siguiente muestra cómo se utiliza el cifrado de flujo. En concreto, cada bit de
entrada al sistema de cifrado (el mensaje M) se combinará, usando la función lógica XOR,
con el bit correspondiente del flujo clave S, para dar lugar al bit correspondiente al flujo
de salida. El receptor hará el mismo proceso de combinación con la XOR para obtener el
flujo descifrado.
La fortaleza de los sistemas de cifrado de flujo se basa en la clave utilizada para cifrar.
Sin entrar en detalles, podríamos decir que se trata de una clave aleatoria y muy larga,
a menudo tan larga como la tira de bits que se acabará cifrando. Ahora bien, ¿cómo
podemos tener una clave aleatoria tan larga? Si es aleatoria, ¿cómo la podemos
ofrecer al receptor de la información? La solución a estas cuestiones pasa por conocer
el concepto de generador pseudoaleatorio
14. Criptosistemas en bloque:
Es un criptosistema simétrico que divide el texto claro en cadenas, o bloques, de
tamaño t y cifra un bloque a la vez. Utiliza combinaciones complejas basadas en
sustituciones y cambios de posición que se regirán por la clave de cifrado. Estos
sistemas son más costosos, tanto a nivel de fabricación de dispositivos como a nivel
computacional, que los sistemas de cifrado de flujo.
15. Por ejemplo el Cifrado tipo Feistel.
Horst Feistel: inventor (IBM) del algoritmo LUCIFER a comienzos de los años 70. El
algoritmo fue utilizado por el Reino Unido. En 1974 se propone a la NSA como estándar
y en ese año dará origen al DES.
a) Dado un bloque de N bits (típico 64) éste se dividirá en
dos mitades.
b) Se define una función unidireccional F (muy difícil de
invertir).
c) Se realizan operaciones con la clave ki sólo con una mitad
del bloque, y se permutan en cada vuelta las dos mitades,
operación que se repite durante n vueltas.
Un ejemplo básico de cifrado tipo Feistel
El algoritmo usará bloques de tamaño 8 caracteres. Tendrá
dos vueltas y en cada vuelta realizará una operación de
sustitución S y una permutación P sobre la 1ª mitad.
Sustitución: Si = (Mi+1)mod 27
Permutación: Pi = 3241 (el carácter 1º pasa a la 4ª posición en el criptograma, el 4º a
la 3ª, el 2º a la 2ª y el 3º a la 1ª)
16. Mensaje: M = STAR WARS, LA MISIÓN CONTINÚA
Cifrado tipo Feistel en cuerpo n = 27
M = STAR WARS, LA MISIÓN CONTINÚA
M1 = STAR WARS LAMI SION CONT INUA
S1 = TUBS WARS MBNJ SION DPÑU INUA
P1 = BUST WARS NBJM SION ÑPUD INUA
M2 = WARS BUST SION NBJM INUA ÑPUD
S2 = XBST BUST TJPÑ NBJM JÑVB ÑPUD
P2 = SBTX BUST PJÑT NBJM VÑBJ ÑPUD
Primera
vuelta
Segunda
vuelta
Si: (Mi+1)mod 27
Pi: 3241
C = SBTX BUST PJÑT NBJM VÑBJ ÑPUD
Aunque le parezca increíble, el DES hará prácticamente lo mismo trabajando con bits
y con funciones un poco más “complejas”.