Criptosistemas
-
Upload
juan-carlos-broncanotorres -
Category
Education
-
view
55 -
download
4
Transcript of Criptosistemas
CRIPTOGRAFÍA CLÁSICA
Criptosistemas
Docente: Juan Carlos Broncano Torres FISE Lima-Perú
Es un sistema de criptografía y se define como una quíntupla (M, C, K, E, D), donde:
.
.
.
.
¿Espacio de Claves Espacio de Mensajes?
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 ;))((
Confidencialidad e integridad
Medio de Transmisor Transmisión
Receptor M C
Cifrador Mensaje cifrado Descifrador
T R MT
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.
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.
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:
n2
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
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.
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.
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
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
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
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.
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ª)
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”.