CIfrado
Definición de Cifrado
Cifrado Simétrico
El cifrado simétrico, también conocido como cifrado convencional, de clave secreta
o de clave única, era el único que se usaba antes del desarrollo del cifrado de
clave pública a finales de los 70.
o de clave única, era el único que se usaba antes del desarrollo del cifrado de
clave pública a finales de los 70.
Esquema del funcionamiento del Cifrado Simétrico
Componentes del Cifrado Simétrico
- Texto claro: es el mensaje o los datos originales que se introducen en el algoritmo como entrada.
- Algoritmo de cifrado: el algoritmo de cifrado realiza varias sustituciones y transformaciones en el texto claro.
- Clave secreta : la clave es también una entrada del algoritmo. Las sustituciones y transformaciones realizadas por el algoritmo dependen de ella.
- Texto cifrado: el mensaje ilegible que se produce como salida. Depende del texto claro y de la clave secreta. Para un mensaje determinado, dos claves diferentes producirían dos textos cifrados diferentes.
Requisitos del Cifrado Simétrico
- Se necesita un algoritmo de cifrado robusto. Como mínimo nos gustaría que un oponente que conozca el algoritmo y tenga acceso a uno o más textos cifrados no pudiera descifrar el texto o averiguar la clave. Este requisito se expresa generalmente de forma más rotunda: el atacante no debería poder descifrar el texto o averiguar la clave aunque estuviera en posesión de una serie de textos cifrados junto con sus correspondientes textos originales.
- El emisor y el receptor deben haber obtenido copias de la clave secreta de forma segura y deben guardarla de la misma manera. Si alguien descubre la clave y conoce el algoritmo, todas las comunicaciones que usen esa clave son descifrables.
Es importante observar que la seguridad del cifrado simétrico depende de la privacidad
de la clave, no de la privacidad del algoritmo. Es decir, se asume que no es práctico descifrar
un mensaje teniendo el texto cifrado y conociendo el algoritmo de cifrado/descifrado.
En otras palabras, no es necesario que el algoritmo sea secreto; lo único que hay
que mantener en secreto es la clave.
Esta característica del cifrado simétrico es la causa de su uso tan extendido. El hecho
de que el algoritmo no tenga que ser secreto significa que los fabricantes pueden desarrollar
y han desarrollado implementaciones con chips de bajo coste de los algoritmos
de cifrado de datos. Esos chips se pueden conseguir fácilmente y se han incorporado a
una serie de productos. Con el uso de cifrado simétrico, el problema principal de seguridad
consiste en mantener la privacidad de la clave.
Criptoanálisis
El criptoanálisis es el proceso por el que se intenta descubrir un texto claro o una clave
de cifrado. La estrategia usada por el criptoanalista depende de la naturaleza del esquem
a de cifrado y de la información disponible.
Tabla de ataques Criptograficos
El ataque con sólo texto cifrado es el más fácil de evitar, ya que el oponente dispone
de la mínima cantidad de información con la que trabajar. En muchos casos, sin embargo,
el analista dispone de más información. Éste puede ser capaz de conseguir uno o más
mensajes de texto claro y sus correspondientes cifrados, o podría saber que en un mensaje
aparecerán ciertos patrones de texto claro. Por ejemplo, un fichero codificado en formato
PostScript siempre comienza con el mismo patrón, o podría haber un encabezado
estandarizado para un mensaje de transferencia electrónica de fondos, etc. Éstos son algunos
ejemplos de texto claro conocido. Sabiendo esa información, el analista podría deducir
la clave basándose en la forma en que se transforma el texto claro que conoce.
Estrechamente relacionado con el ataque de texto claro conocido se encuentra el que
se puede denominar como ataque de palabra probable. Si el atacante está trabajando con
el cifrado de algún mensaje general en prosa, podría tener poco conocimiento del contenido
del mensaje. Sin embargo, si va tras alguna información específica, entonces
podría conocer partes del mismo.
Solamente un algoritmo relativamente débil no resistiría un ataque de sólo texto cifrado.
Generalmente, un algoritmo de cifrado se diseña para resistir un ataque de texto
claro conocido.
Un esquema de cifrado es computacionalmente seguro si el texto cifrado generado
cumple uno o los dos criterios siguientes:
- El coste de romper el cifrado excede el valor de la información cifrada
- El tiempo necesario para romper el cifrado excede el tiempo de vida útil de la información.
El problema está en que es m uy difícil estimar la cantidad de esfuerzo necesario para realizar
satisfactoriamente el criptoanálisis del texto cifrado. Sin embargo, si no hay debilidades
matemáticas inherentes en el algoritmo, lo que procede es un enfoque de fuerza bruta,
y aquí se pueden calcular algunas estimaciones razonables sobre costos y tiempo.
El enfoque de fuerza bruta implica intentar cada clave posible hasta que se obtenga
una traducción legible del texto cifrado al texto claro. Como promedio, se debe intentar
la mitad de todas las claves posibles para conseguir descubrirla.
Tabla tiempo Medio para la búsqueda exhaustiva de claves
.
Algoritmos de Cifrado Simétrico
Los algoritmos de cifrado simétrico más comúnmente usados son los cifradores de bloques.
Un cifrador de bloques procesa la entrada de texto claro en bloques de tamaño fijo
y genera un bloque de texto cifrado del mismo tamaño para cada texto claro.
Cifrado Feistel
La mayoría de los algoritmos de cifrado simétrico de bloque tienen una escritura descrita inicialmente por Horst Feistel de IBM en 1973 [FEIS73]Esquema
Las entradas al algoritmo de cifrado son un bloque de texto claro de tamaño 2 w bits y una clave K El bloque de texto claro se divide en dos mitades,Lq y tfp. Las dos mitades de datos pasan a través de n etapas de procesamiento y luego se combinan para producir el bloque de texto cifrado. Cada etapa i tiene como entradas L¡ x y R. j, que se derivan de la etapa anterior, así como una subclave.generada
a partir de K En general, las subclaves K . son diferentes a K y entre ellas mismas, y se generan a partir de la clave mediante un algoritmo de generación de subclaves.
Todas las etapas tienen la misma estructura.Se realiza una sustitución sobre la mitad izquierda de los datos .Esto se hace aplicando una función de etapa F a la mitad derecha de los datos y haciendo luego un OR exclusivo (XOR) de la salida de la función y la mitad izquierda de los datos. La función de etapa tiene la misma estructura general para cada etapa pero está parametrizada por la subclave de etapa Kt Después de esta sustitución, se realiza una permutación que consiste en intercambiar las dos mitades de datos.
Algoritmo de Cifrado de Feistel
Parámetros y Características del Cifrado:
- Tamaño del bloque: bloques mayores implican mayor seguridad (quedando igual todo lo demás) pero reduce la velocidad de cifrado/descifrado. Un tamaño de 64 bits es adecuado y es casi universal en el diseño del cifrador de bloques.
- Tamaño de la clave: claves más largas implican mayor seguridad pero puede reducir la velocidad de cifrado/descifrado. La longitud de clave más común en los algoritmos modernos es de 128 bits.
- Número de etapas: la esencia del cifrado de Feistel consiste en que mientras una sola etapa ofrece una seguridad inadecuada, múltiples etapas la aumentan. Un valor típico es 16 etapas.
- Algoritmo degeneración de subclaves: cuanto más complejo sea este algoritmo más difícil resultará el criptoanálisis.
- Función de etapa: otra vez, generalmente, a mayor complejidad mayor resistencia al criptoanálisis.
Hay otras dos consideraciones en el diseño del cifrado de Feistel:
- Cifrado/descifrado m ediante softw are rápido: en muchos casos, el cifrado es parte de aplicaciones o funciones de utilidad, lo cual imposibilita una implementación hardware. En esos casos, la rapidez de ejecución del algoritmo es un aspecto importante.
- Facilidad d e análisis: aunque sería deseable hacer el algoritmo tan difícil como fuera posible para el criptoanálisis, también es ventajoso hacerlo fácil de analizar. Es decir,si el algoritmo se puede explicar de manera concisa y clara, entonces es más fácildetectar las debilidades y por tanto desarrollar un nivel mayor de garantías enfunción de su robustez.
DES (DATA ENCRYPTION STANDARD)
El esquema de cifrado más extendido se basa en el DES (Data Encryption Standard)
adoptado en 1977 por el National Bureau o f Standards, ahora el NIST (National Institute
of Standards and Technology), como Federal Information Processing Standard 46.
El texto claro tiene una longitud de 64 bits y la clave, de 56; si el texto claro es más largo
se procesa en bloques de 64 bits. La estructura del DES consiste en una pequeña variación
de la red de Feistel, que se muestra en la Figura 2.2. Hay 16 etapas de proceso.
Se generan 16 subclaves partiendo de la clave original de 56 bits, una para cada etapa.
El proceso de descifrado con el DES es básicamente el mismo que el de cifrado. La
regla es la siguiente: usar el texto cifrado como entrada al algoritmo del DES, pero las
subclaves se pasan en orden inverso.
mismo y aspectos sobre el uso de una clave de 56 bits. Los primeros se refieren
a la posibilidad de que el criptoanálisis se realice explotando las características del algoritmo
DES. A lo largo de los años, se han intentado encontrar debilidades que explotar
en el algoritmo, lo que ha hecho del DES el algoritmo de cifrado existente más estudiado.
A pesar de los numerosos enfoques, nadie ha conseguido descubrir ninguna
debilidad grave en el DES.
Un aspecto de mayor importancia es la longitud de la clave. Con una clave de 56 bits,
hay 256 claves posibles, que es aproximadamente 7,2 x 1016 claves. Por este motivo, no
parece práctico un ataque de fuerza bruta. Suponiendo que, en promedio, se tiene que
intentar la mitad del espacio de claves, una única máquina que realice un cifrado DES
por microsegundo tardaría más de mil años en romper el cifrado.
simétricos actuales utilizan la estructura básica de bloque de Feistel. Esto se debe a que
dicha estructura se comprende m uy bien, resultando más fácil determinar la robustez
criptográfica de un algoritmo nuevo. Si se usara una estructura totalmente nueva, podría
tener alguna debilidad sutil no detectada inmediatamente por el diseñador. En esta sección
se verán otros cifradores que, al igual que el DES y el 3DES, han tenido aceptación
comercial.
DESCRIPCIÓN DEL ALGORITMO
El texto claro tiene una longitud de 64 bits y la clave, de 56; si el texto claro es más largose procesa en bloques de 64 bits. La estructura del DES consiste en una pequeña variación
de la red de Feistel, que se muestra en la Figura 2.2. Hay 16 etapas de proceso.
Se generan 16 subclaves partiendo de la clave original de 56 bits, una para cada etapa.
El proceso de descifrado con el DES es básicamente el mismo que el de cifrado. La
regla es la siguiente: usar el texto cifrado como entrada al algoritmo del DES, pero las
subclaves se pasan en orden inverso.
ROBUSTEZ DEL DES
Los aspectos de robustez del DES se engloban en dos categorías: aspectos sobre el algoritmomismo y aspectos sobre el uso de una clave de 56 bits. Los primeros se refieren
a la posibilidad de que el criptoanálisis se realice explotando las características del algoritmo
DES. A lo largo de los años, se han intentado encontrar debilidades que explotar
en el algoritmo, lo que ha hecho del DES el algoritmo de cifrado existente más estudiado.
A pesar de los numerosos enfoques, nadie ha conseguido descubrir ninguna
debilidad grave en el DES.
Un aspecto de mayor importancia es la longitud de la clave. Con una clave de 56 bits,
hay 256 claves posibles, que es aproximadamente 7,2 x 1016 claves. Por este motivo, no
parece práctico un ataque de fuerza bruta. Suponiendo que, en promedio, se tiene que
intentar la mitad del espacio de claves, una única máquina que realice un cifrado DES
por microsegundo tardaría más de mil años en romper el cifrado.
Tabla tiempo de Descifrado de DES
Otros Cifrados Simétricos
En vez de reínventar de nuevo la rueda, casi todos los algoritmos de cifrado de bloquesimétricos actuales utilizan la estructura básica de bloque de Feistel. Esto se debe a que
dicha estructura se comprende m uy bien, resultando más fácil determinar la robustez
criptográfica de un algoritmo nuevo. Si se usara una estructura totalmente nueva, podría
tener alguna debilidad sutil no detectada inmediatamente por el diseñador. En esta sección
se verán otros cifradores que, al igual que el DES y el 3DES, han tenido aceptación
comercial.
El cifrado asimétrico es el método criptográfico que usa un par de claves para el envío de mensajes. Las dos
claves pertenecen a la misma persona a la que se ha enviado el mensaje. Una clave es pública y se puede entregar a
cualquier persona, la otra clave es privada y el propietario debe guardarla de modo que nadie tenga acceso a ella.
Además, los métodos criptográficos garantizan que esa pareja de claves sólo se puede generar una vez, de modo que
se puede asumir que no es posible que dos personas hayan obtenido casualmente la misma pareja de claves.
Si el remitente usa la clave pública del destinatario para cifrar el mensaje, una vez cifrado, sólo la clave privada del
destinatario podrá descifrar este mensaje, ya que es el único que la conoce. Por tanto se logra la confidencialidad del
envío del mensaje, nadie salvo el destinatario puede descifrarlo.
Si el propietario del par de claves usa su clave privada para cifrar el mensaje, cualquiera puede descifrarlo utilizando
su clave pública. En este caso se consigue por tanto la identificación y autentificación del remitente, ya que se sabe
que sólo pudo haber sido él quien empleó su clave privada (salvo que alguien se la hubiese podido robar). Esta idea
es el fundamento de la firma electrónica.
Los sistemas de cifrado de clave pública o sistemas de cifrado asimétricos se inventaron con el fin de evitar por
completo el problema del intercambio de claves de los sistemas de cifrado simétricos. Con las claves públicas no es
necesario que el remitente y el destinatario se pongan de acuerdo en la clave a emplear. Todo lo que se requiere es
que, antes de iniciar la comunicación secreta, el remitente consiga una copia de la clave pública del destinatario. Es
más, esa misma clave pública puede ser usada por cualquiera que desee comunicarse con su propietario. Por tanto, se
necesitarán sólo n pares de claves por cada n personas que deseen comunicarse entre sí.
Algoritmos de Cifrado Asimétrico
Cifrado de Diffie-Hellman
El algoritmo de Diffie-Hellman (en honor a sus creadores, Whitfield Diffie y Martin Hellman) permite acordar una clave secreta entre dos máquinas, a través de un canal inseguro y enviando únicamente dos mensajes. La clave secreta resultante no puede ser descubierta por un atacante, aunque éste obtenga los dos mensajes enviados por el protocolo. La principal aplicación de este protocolo es acordar una clave simétrica con la que posteriormente cifrar las comunicaciones entre dos máquinas.El protocolo de Diffie-Hellman fue publicado en 1976. Actualmente se conoce que es vulnerable a ataques de hombre en medio (MitM): un atacante podría situarse entre ambas máquinas y acordar una clave simétrica con cada una de las partes, haciéndose pasar por el host A de cara al host B y viceversa. Una vez establecidas las 2 claves simétricas, el atacante haría de puente entre los 2 hosts, descifrando toda la comunicación y volviéndola a cifrar para enviársela al otro host.
Para corregir la vulnerabilidad del protocolo, éste debe ser utilizado conjuntamente con algún sistema que autentique los mensajes. Esto ocurre, por ejemplo, durante el establecimiento de la asociación HIP, donde los paquetes R1 e I2, además de contener los mensajes de Diffie-Hellman, están firmados digitalmente.
Los valores de “p” y “g” son públicos y cualquier atacante puede conocerlos, pero esto no supone una vulnerabilidad. Aunque un atacante conociese dichos valores y capturara los dos mensajes enviados entre las máquinas A y B, no sería capaz de averiguar la clave secreta. A continuación se muestra la información capturada por un atacante en el escenario de la Figura 46:
(ga mod p) = 8 → (5a mod 23) = 8
(gb mod p) = 19 → (5b mod 23) = 19
A partir de las ecuaciones anteriores, intentar calcular los valores de “a” y “b” es lo que se conoce como el problema del algoritmo discreto, un problema que se cree computacionalmente intratable y cuya notación es la siguiente:
a = log discg (ga mod p) = log disc 5 (8)
b = log discg (gb mod p) = log disc 5 (19)
Con los valores del ejemplo sí que es posible encontrar la solución, ya que se ha escogido un número primo “p” muy pequeño (p = 23), y se sabe que “a” y “b” son menores que “p”. Por lo tanto, para obtener los valores secretos en este ejemplo, un atacante tendría que probar sólo 22 posibles valores.
Por suerte, las implementaciones actuales del protocolo Diffie-Hellman utilizan números primos muy grandes, lo que impide a un atacante calcular los valores de “a” y “b”. El valor “g” no necesita ser grande, y en la práctica su valor es 2 ó 5. En el RFC 3526 aparecen publicados los números primos que deben utilizarse. A modo de ejemplo, se facilita aquí el número primo de 1024 bytes propuesto. El valor “g” utilizado es 2:
p = 28192 – 28128 – 1 + 264 x ((28062 pi) + 4743158)
Cifrado de RSA (Rivest, Shamir y Adleman)
sistema criptográfico con clave pública RSA es un algoritmo asimétrico cifrador de bloques, que utiliza una clave pública, la cual se distribuye (en forma autenticada preferentemente), y otra privada, la cual es guardada en secreto por su propietario.
Una clave es un número de gran tamaño, que una persona puede conceptualizar como un mensaje digital, como un archivo binario o como una cadena de bits o bytes.
Cuando se envía un mensaje, el emisor busca la clave pública de cifrado del receptor y una vez que dicho mensaje llega al receptor, éste se ocupa de descifrarlo usando su clave oculta.
Los mensajes enviados usando el algoritmo RSA se representan mediante números y el funcionamiento se basa en el producto de dos números primos grandes (mayores que 10100) elegidos al azar para conformar la clave de descifrado.
Emplea expresiones exponenciales en aritmética modular.
La seguridad de este algoritmo radica en que no hay maneras rápidas conocidas de factorizar un número grande en sus factores primos utilizando computadoras tradicionales.
La computación cuántica podría proveer una solución a este problema de factorización.
El algoritmo RSA es un algoritmo de clave pública desarrollado en 1977 en el MIT por Ronald Rivest, Adi Shamir y Leonard Adelman.
Fue registrado el 20 de Septiembre de 1983. El 20 de Septiembre del 2000, tras 17 años, expiró la patente RSA, pasando a ser un algoritmo de dominio público.
Este popular sistema se basa en el problema matemático de la factorización de numeros grandes.
El algoritmo RSA funciona de la siguiente manera:
Inicialmente es necesario generar aleatoriamente dos números primos grandes, a los que llamaremos p y q.
A continuación calcularemos n como producto de p y q: n = p * q
Se calcula fi: fi(n)=(p-1)(q-1)
Se calcula un número natural e de manera que MCD(e, fi(n))=1 , es decir e debe ser primo relativo de fi(n).
Es lo mismo que buscar un numero impar por el que dividir fi(n) que de cero como resto.
Mediante el algoritmo extendido de Euclides se calcula d: e.d mod fi(n)=1 Puede calcularse d=((Y*fi(n))+1)/e para Y=1,2,3,… hasta encontrar un d entero.
El par de números (e,n) son la clave pública.
El par de números (d,n) son la clave privada.
Cifrado: La función de cifrado es C = M^e mod n
Descifrado: La función de descifrado es M = C^d mod n
Ejemplo con números pequeños
Escogemos dos números primos, por ejemplo p=3 y q=11.
n = 3 * 11 = 33
fi(n) = (3-1) * (11-1) = 20
Buscamos e: 20/1=0, 20/3=6.67. e=3
Calculamos d como el inverso multiplicativo módulo z de e, por ejemplo, sustituyendo Y por 1,2,3,… hasta que se obtenga un valor entero en la expresión: d = ((Y * fi(n)) + 1) / e = ( Y * 20 + 1) / 3 = 21 / 3 = 7
e=3 y n=33 son la clave pública
d=7 y n=33 son la clave privada
Cifrado: Mensaje = 5, C = M^e mod n = 5^3 mod 33 = 26
Descifrado: M = C^d mod n = 26^7 mod 33 = 8031810176 mod 33 = 5
Ejemplo visual de RSA
Un ejemplo pedagógico trivial del algoritmo RSA se muestra en la siguiente animación. Para este ejemplo hemos seleccionado p=3 y q=11, dando n=11 y z=20. Un valor adecuado de d es d=7, puesto que 7 y 20 no tienen factores comunes.
Con estas selecciones, e puede encontrarse resolviendo la ecuación 7e=1(mod 20), que produce e=3.El texto cifrado, C, de un mensaje de texto normal, P, se da por la regla C=P3(mod 33). El texto cifrado lo descifra el receptor de acuerdo con la regla P= C7(mod 33). Observe la animación tanto en el emisor como en el receptor, donde se muestra el cifrado-descifrado del texto normal “CASA”.
Dado que los números primos escogidos para este ejemplo son tan pequeños, P debe ser menor que 33, por lo que cada bloque de texto normal puede contener sólo un carácter. El resultado es un cifrado por sustitución monoalfabética, no muy impresionante. En cambio si hubiéramos seleccionado p y q



Esquema RSA
Comparación Simétrico y Asimétrico
Fuentes:
Fundamentos de Seguridad en Redes Aplicacione y Estandares-William Stallings
https://infosegur.wordpress.com/unidad-4/criptografia-simetrica-y-asimetrica/
https://www.redeszone.net/2010/11/16/criptografia-algoritmos-de-cifrado-de-clave-asimetrica/
Fundamentos de Seguridad en Redes Aplicacione y Estandares-William Stallings
https://infosegur.wordpress.com/unidad-4/criptografia-simetrica-y-asimetrica/
https://www.redeszone.net/2010/11/16/criptografia-algoritmos-de-cifrado-de-clave-asimetrica/
Comentarios
Publicar un comentario