Вы находитесь на странице: 1из 31

Ejemplo de Algoritmo Simétrico DES para des/encriptacion JAVA

Escribe aquí el texto


descargar

import java.security.*;

import javax.crypto.*;
import javax.crypto.interfaces.*;
import javax.crypto.spec.*;

import java.io.*;

public class EjemploDES {


/* Ejemplo de uso de funciones de resumen Hash
* carga el fichero que recibe como parametro y genera el resumen
*/
public static void main (String[] args) throws Exception {
// Comprobar argumentos
if (args.length !=1) {
mensajeAyuda();
System.exit(1);
}

/* Cargar "provider" (sólo si no se usa el que viene por defecto)


*/
// Security.addProvider(new BouncyCastleProvider()); // Usa
provider BC
//
/* PASO 1: Crear e inicializar clave */
KeyGenerator keyGen = KeyGenerator.getInstance("DES");
keyGen.init(56);
SecretKey clave = keyGen.generateKey();

System.out.println("CLAVE:" + new String(clave.getEncoded()) +


"\n");

/* PASO 2: Crear cifrador */


Cipher cifrador= Cipher.getInstance("DES/ECB/PKCS5Padding");
// Algoritmo DES
// Modo : ECB (Electronic Code Book)
// Relleno : PKCS5Padding
//
/* PASO 3a: Inicializar cifrador en modo CIFRADO */
cifrador.init(Cipher.ENCRYPT_MODE, clave);

/* Leer fichero de 1k en 1k y pasar fragmentos leidos al cifrador


*/
byte[] bufferPlano = new byte[1000];
byte[] bufferCifrado;

String textoCifradoTotal = new String();


FileInputStream in = new FileInputStream(args[0]);
int bytesLeidos = in.read(bufferPlano,0, 1000);
while(bytesLeidos != -1) { // Mientras no se llegue al final del
fichero
bufferCifrado = cifrador.update(bufferPlano, 0 ,
bytesLeidos); // Pasa texto claro leido al cifrador
textoCifradoTotal = textoCifradoTotal + new
String(bufferCifrado); // Acumular texto cifrado
bytesLeidos = in.read(bufferPlano,0, 1000);
}
in.close();

bufferCifrado = cifrador.doFinal(); // Completar cifrado (puede


devolver texto)
textoCifradoTotal = textoCifradoTotal + new String(bufferCifrado);

System.out.println("--------------- TEXTO CIFRADO


---------------");
System.out.println(textoCifradoTotal); // Mostrar texto cifrado

System.out.println("---------------------------------------------");

System.out.println("--------------- TEXTO DESCIFRADO


-------------");
/* PASO 3b: Poner cifrador en modo DESCIFRADO */
cifrador.init(Cipher.DECRYPT_MODE, clave);
byte[] textoDescifrado =
cifrador.update(textoCifradoTotal.getBytes()); // Pasar texto al
descifrador
System.out.print( new String(textoDescifrado) );
textoDescifrado = cifrador.doFinal(); // Completar descifrado
(puede devolver texto)
System.out.print( new String(textoDescifrado) );

System.out.println("----------------------------------------------");
}

public static void mensajeAyuda() {


System.out.println("Ejemplo cifrado DES");
System.out.println("\tSintaxis: java EjemploDES fichero");
System.out.println();
}

}
riptología - Algoritmos Simétricos Modernos (Llave Privada)

volver

La mayoría de los algoritmos simétricos actuales se apoyan en los conceptos de Confusión


y Difusión vertidos por Claude Shannon sobre la Teoría de la Información a finales de los
años cuarenta.

Estos métodos consisten en ocultar la relación entre el texto plano, el texto cifrado y la
clave (Confusión); y repartir la influencia de cada bit del mensaje original lo más posible
entre el mensaje cifrado (Difusión).

El objetivo del presente no es entrar en detalles de cada uno de los muchos algoritmos
existentes, por lo que sólo se dará una idea de su funcionamiento y complejidad.

Redes de Feistel

Este algoritmo no es un algoritmo de cifrado per se, pero muchos de los vistos a
continuación lo utilizan como parte vital en su funcionamiento. Se basa en dividir un
bloque de longitud n (generalmente el texto a cifrar) en dos mitades, L y R. Luego se define
un cifrado de producto iteractivo en el que la salida de cada ronda es la entrada de la
siguiente.

DES

Data Encryption Standard es el algoritmo simétrico más extendido mundialmente. A


mediados de los setenta fue adoptado como estándar para las comunicaciones seguras
(Estándar AES) del gobierno de EE.UU. En su principio fue diseñado por la NSA (National
Security Agency) (1) para ser implementado en hardware, pero al extenderse su algoritmo
se comenzó a implementar en software.

DES utiliza bloques de 64 bits, los cuales codifica empleando claves de 56 bits y aplicando
permutaciones a nivel de bit en diferentes momentos (mediante tablas de permutaciones y
operaciones XOR). Es una red de Feistel de 16 rondas, más dos permutaciones, una que se
aplica al principio y otra al final.

La flexibilidad de DES reside en que el mismo algoritmo puede ser utilizado tanto para
cifrar como para descifrar, simplemente invirtiendo el orden de las 16 subclaves obtenidas a
partir de la clave de cifrado.
En la actualidad no se ha podido romper el sistema DES criptoanalíticamente (deducir la
clave simétrica a partir de la información interceptada). Sin embargo una empresa española
sin fines de lucro llamado Electronic Frontier Foundation (EFF) (2) construyo en Enero de
1999 una máquina capaz de probar las 2 56 claves posibles en DES y romperlo sólo en tres
días con fuerza bruta.

A pesar de su caída DES sigue siendo utilizado por su amplia extensión de las
implementaciones vía hardware existentes (en cajeros automáticos y señales de video por
ejemplo) y se evita tener que confiar en nuevas tecnologías no probadas. En vez de
abandonar su utilización se prefiere suplantar a DES con lo que se conoce como cifrado
múltiple, es decir aplicar varias veces el mismo algoritmo para fortalecer la longitud de la
clave.

DES Múltiple

Consiste en aplicar varias veces el algoritmo DES (con diferentes claves) al mensaje
original. El más conocidos de todos ellos el Triple-DES (T-DES), el cual consiste en aplicar
3 veces DES de la siguiente manera:

1. Se codifica con la clave K1.

2. Se decodifica el resultado con la clave K2.

3. Lo obtenido se vuelve a codificar con K1.

La clave resultante el la concatenación de K1 y K2 con una longitud de 112 bits.

En 1998 el NIST (National Institute of Standards Technology) convoco a un concurso para


poder determinar un algoritmo simétricos seguro y próximo sustito de DES. Se aceptaron
15 candidatos y a principios del año 2000 los 5 finalistas fueron MARS, RC-6, Serpent y
TwoFish y Rijndael (que en octubre sería el ganador).

IDEA

El International Data Encription Algorithm fue desarollado en Alemania a principios de los


noventa por James L. Massey y Xuejia Lai.

Trabaja con bloques de 64 bits de longitud empleando una clave de 128 bits y, como en el
caso de DES, se utiliza el mismo algoritmo tanto para cifrar como para descifrar.

El proceso de encriptación consiste ocho rondas de cifrado idéntico, excepto por las
subclaves utilizadas (segmentos de 16 bits de los 128 de la clave), en donde se combinan
diferentes operaciones matemáticas (XORs y Sumas Módulo 16) y una transformación
final.

"En mi opinión, él es el mejor y más seguro algoritmo de bloques disponible actualmente al


público." (3)

BlowFish

Este algoritmo fue desarrollado por Bruce Schneier en 1993. Para la encriptación emplea
bloques de 64 bits y permite claves de encriptación de diversas longitudes (hasta 448 bits).

Generalmente, utiliza valores decimales de Π (aunque puede cambiarse a voluntad) para


obtener las funciones de encriptación y desencriptación. Estas funciones emplean
operaciones lógicas simples y presentes en cualquier procesador. Esto se traduce en un
algoritmo "liviano", que permite su implementación, vía hardware, en cualquier controlador
(como teléfonos celulares por ejemplo).

RC5

Este algoritmo, diseñado por RSA (4), permite definir el tamaño del bloque a encriptar, el
tamaño de la clave utilizada y el número de fases de encriptación. El algoritmo genera una
tabla de encriptación y luego procede a encriptar o desencriptar los datos.

CAST

Es un buen sistema de cifrado en bloques con una clave CAST-128 bits, es muy rápido y es
gratuito. Su nombre deriva de las iniciales de sus autores, Carlisle, Adams, Stafford
Tavares, de la empresa Northern Telecom (NorTel).

CAST no tiene claves débiles o semidébiles y hay fuertes argumentos acerca que CAST es
completamente inmune a los métodos de criptoanálisis más potentes conocidos.

También existe una versión con clave CAST-256 bits que ha sido candidato a AES.

Rijndael (el nuevo estándar AES)


Rijndael, el nuevo algoritmo belga mezcla de Vincent Rijmen y Joan Daemen (sus autores)
sorprende tanto por su innovador diseño como por su simplicidad práctica; aunque tras él se
esconda un complejo trasfondo matemático.

Su algoritmo no se basa en redes de Feistel, y en su lugar se ha definido una estructura de


"capas" formadas por funciones polinómicas reversibles (tienen inversa) y no lineales. Es
fácil imaginar que el proceso de descifrado consiste en aplicar las funciones inversas a las
aplicadas para cifrar, en el orden contrario.

Las implementaciones actuales pueden utilizar bloques de 128, 192 y 256 bits de longitud
combinadas con claves de 128, 192 y 256 bits para su cifrado; aunque tanto los bloques
como las claves pueden extenderse en múltiplo de 32 bits.

Si bien su joven edad no permite asegurar nada, según sus autores, es altamente improbable
que existan claves débiles en el nuevo AES. También se ha probado la resistencia al
criptoanálisis tanto lineal como diferencial, asegurando así la desaparición de DES.

Criptoanálisis de Algoritmos Simétricos

El Criptoanálisis comenzó a extenderse a partir de la aparición de DES por sospechas


(nunca confirmadas) de que el algoritmo propuesto por la NSA contenía puertas traseras.
Entre los ataques más potentes a la criptografía simétrica se encuentran:

 Criptoanálisis Diferencial: Ideado por Biham y Shamir en 1990, se basa en el estudio de dos
textos codificados para estudiar las diferencias entre ambos mientras se los está
codificando. Luego puede asignarse probabilidades a ciertas claves de cifrado.
 Criptoanálisis Lineal: Ideado por Mitsuru Matsui, se basa en tomar porciones del texto
cifrado y porciones de otro texto plano y efectuar operaciones sobre ellos de forma tal de
obtener probabilidades de aparición de ciertas claves.

Sin embargo, estos métodos, no han podido ser muy eficientes en la práctica. En el
momento después de que un sistema criptográfico es publicado y se muestra inmune a estos
dos tipos de ataques (y otros pocos) la mayor preocupación es la longitud de las claves.
algoritmo de la Simétrico-llave

algoritmos de la Simétrico-llave es una clase de algoritmos para criptografía ese uso se


relacionó trivial, a menudo idéntico, llaves criptográficas para el desciframiento y el
cifrado.

La llave del cifrado se relaciona trivial con la llave del desciframiento, en que pueden ser
idénticos o hay un simple transforma para ir entre las dos llaves. Las llaves, representan en
la práctica a secreto compartido entre dos o más partidos que se pueden utilizar para
mantener un acoplamiento privado de la información.

Otros términos para el cifrado de la simétrico-llave son secreto-llave, solo-llave,


compartir-llave, uno-llave y eventual privado-llave cifrado. El uso del último término
está en conflicto con el término llave privada en criptografía de la público-llave.

Contenido

 1 Tipos de algoritmos de la simétrico-llave


 2 Simétrico contra algoritmos asimétricos
o 2.1 Velocidad
o 2.2 Gerencia dominante
o 2.3 Cryptosystem híbrido
 3 Primitivos criptográficos basados en cifras simétricas
 4 Construcción de cifras simétricas
 5 Seguridad de cifras simétricas
 6 Generación dominante
 7 Notas

Tipos de algoritmos de la simétrico-llave

los algoritmos de la Simétrico-llave se pueden dividir en cifras de la corriente y cifras del


bloque. Las cifras de la corriente cifran los pedacitos del mensaje uno a la vez, y las cifras
del bloque toman un número de pedacitos y los cifran como sola unidad. Los bloques de 64
pedacitos han sido de uso general; Estándar avanzado del cifrado el algoritmo aprobó cerca
NIST en diciembre 2001 aplicaciones 128 bloques del pedacito.

Algunos ejemplos de algoritmos simétricos populares y bien-respetados incluyen Twofish,


Serpiente, AES (aka Rijndael), Blowfish, CAST5, RC4, TDES, y IDEA.

Simétrico contra algoritmos asimétricos

Desemejante de algoritmos simétricos, algoritmos dominantes asimétricos utilice una


diversa llave para el cifrado que para el desciframiento. Es decir, un usuario que sabe la
llave del cifrado de un algoritmo asimétrico puede cifrar mensajes, pero no puede derivar la
llave del desciframiento y no puede descifrar los mensajes cifrados con esa llave. Una
comparación corta de estos dos tipos de algoritmos se da abajo:

Velocidad

los algoritmos de la Simétrico-llave son generalmente mucho menos de cómputo intensivos


que algoritmos dominantes asimétricos. En la práctica, los algoritmos dominantes
asimétricos son típicamente centenares a los algoritmos dominantes más lentamente que
simétricos de los tiempos de los millares.

Gerencia dominante

Artículo principal: Gerencia dominante

Una desventaja de los algoritmos de la simétrico-llave es el requisito de a llave secreta


compartida, con una copia en cada extremo. Para asegurarse asegure las comunicaciones
entre cada uno en una población de la gente de n al total de n(n de las llaves del − 1) /2 es
necesario, que es el número total de los canales de comunicaciones posibles.[1] Para limitar
el impacto de un descubrimiento potencial de un adversario criptográfico, deben ser
cambiados regularmente y ser guardados seguro durante la distribución y en servicio. El
proceso de seleccionar, de distribuir y de almacenar llaves se conoce como gerencia
dominante; es difícil alcanzar confiablemente y con seguridad.

Cryptosystem híbrido

Artículo principal: cryptosystem híbrido

En moderno cryptosystems los diseños, asimétricos (llave pública) y los algoritmos


simétricos se utilizan para aprovecharse de las virtudes de ambos. Los algoritmos
asimétricos se utilizan para distribuir simétrico-llaves al principio de una sesión. Una vez
que una llave simétrica se sepa a todos los partidos de la sesión, algoritmos más rápidos de
la simétrico-llave que usan esa llave se pueden utilizar para cifrar el resto de la sesión. Esto
simplifica el problema dominante de la distribución, porque las llaves asimétricas tienen
que ser distribuidas solamente auténtico, mientras que las llaves simétricas necesitan ser
distribuidas de una manera auténtica y confidencial.

Los sistemas que utilizan un acercamiento tan híbrido incluyen SSL, PGP y GPG, etc.

Primitivos criptográficos basados en cifras simétricas

Las cifras simétricas son de uso frecuente alcanzar otros primitivos criptográficos que
apenas el cifrado.

Cifrar un mensaje no garantiza que este mensaje no está cambiado mientras que está
cifrado. Por lo tanto a menudo a código de la autentificación del mensaje se agrega a un
texto cifrado para asegurarse de que los cambios al texto cifrado serán observados por el
receptor. Los códigos de la autentificación del mensaje se pueden construir de cifras
simétricas (e.g. CBC-MAC). Sin embargo, estos códigos de la autentificación de los
mensajes no se pueden utilizar para no-renegación propósitos.

Otro uso es construir funciones del picadillo de cifras del bloque. Vea función
unidireccional de la compresión para las descripciones de varios tales métodos.

Construcción de cifras simétricas


Artículo principal: Cifra de Feistel

Muchas cifras modernas del bloque se basan en una construcción propuesta por Horst
Feistel. La construcción de Feistel permite para construir las funciones inversibles de otras
funciones que sean sí mismo no inversibles.

Seguridad de cifras simétricas

Las cifras simétricas han sido históricamente susceptibles a ataques del saber-plaintext,
ataques elegidos del plaintext, criptoanálisis diferenciado y criptoanálisis linear. La
construcción cuidadosa de las funciones para cada uno poder redonda reduce grandemente
las ocasiones de un ataque acertado.

Generación dominante

Cuando está utilizado con las cifras asimétricas para la transferencia dominante,
generadores dominantes pseudorandom se utilizan casi siempre generar las llaves
simétricas de la sesión de la cifra. Sin embargo, carencia de la aleatoriedad en esos
generadores o en su vectores de la inicialización es desastroso y ha conducido a las roturas
cryptanalytic en el pasado. Por lo tanto, es esencial que una puesta en práctica utiliza una
fuente de la alta entropía para su inicialización.
1. Introducción
2. Descripción del algoritmo DES
3. Algoritmo de Cifrado
4. Generación de la subclave Ki
5. Función f(Ri-1 , Ki)
6. Suma Li Ri
7. Permutación P1-1
8. Descifrado
9. Ataques a la seguridad criptográfica
10. Bibliografía

En el presente trabajo se explica los distintos procesos que conforman el algoritmo de


cifrado en bloques simétrico DES, los diferentes ataques que ha sufrido DES, con el
propósito de dar una explicación general.

Data Encryption Standard (DES), es un algoritmo de cifrado en bloque simétrico, de


longitud fija, el cual consiste de dos permutaciones, 16 vueltas en donde el mensaje de 64
bits es dividido en dos bloques de 32 bits, después de usar la primer permutación llamada
P1, es cifrado 16 veces utilizando cada vez una subclave, la cual se genera 16 veces en un
proceso paralelo. En el proceso para descifrar se utiliza el mismo algoritmo con las
subclaves en orden inverso, dando como consecuencia, la simetría del algoritmo.

DES (Data Encryption Estándar), aparece en los años 70, cuando la National Bureau of
Standards (NBS), publicó una convocatoria para nuevos sistemas criptográficos. IBM,
presentó el sistema de cifrado DES como una modificación de un sistema anterior llamado
lucifer. DES se convirtió en el estándar federal, para las comunicaciones seguras en los
EE.UU. El algoritmo DES se hizo publico debido a una falla entre el NSA y la Oficina
Nacional de Estandarización, cuando originalmente DES fue diseñado para ser
implementado por hardware, en dicha publicación apareció información a detalle sobre el
algoritmo para ser implementado por software.

Desde la aparición del algoritmo DES, se ha sometido a pruebas que realiza la National
Institute of Standards and Technology (NIST), cada cuatro años, con el propósito de
mantener o retirarle como estándar, DES ha sufrido serias criticas en cuanto a su fiabilidad
por contar con una clave de 64 bits, siendo 56 bits los que se utilizan para obtener las 16
subclaves. En el año de 1998 se realizo un reto, con el propósito de romper el algoritmo
DES, lo cual se logro. Considerando que el algoritmo DES fue diseñado en los años 70 ha
tenido un camino largo sin haber sido vulnerado, el NIST, considerando el creciente
aumento de la tecnología y la velocidad de los ordenadores, que cada 18 meses duplican su
velocidad, el algoritmo DES ya no es computacionalmente seguro, por tal motivo el NIST
ha trabajo en el algoritmo Triple-DES, con este algoritmo y la noticia publicada por el
NIST "DES encryption inadequate", proponiendo retirar la certificación para uso en
productos de software de venta para el gobierno de los EE.UU. el algoritmo DES tiene
poco tiempo de uso comercial.
Introducción

En la historia de la humanidad siempre ha existido la necesidad de mantener información


en secreto, por lo que existe dos etapas de la CriptografíaI, Criptografía Clásica y
Criptografía Moderna. La etapa de la criptografía clásica se puede limitar en tiempo,
cuando surge la necesidad de tener un canal seguro de comunicación, al surgimiento de la
Criptografía Moderna en los años 70`s.

En la Criptografía clásica se utilizaba la Sustitución y Transposición para cifrar el mensaje,


a continuación se presentan algunos métodos utilizados.

 Método de Transposición de Escitalo. El método consistía en un aparato cilíndrico


de madera al cual se le enrollaba una cinta de papiro y en el cual se escribía el
mensaje a lo largo, una vez terminado el mensaje se desenrollaba la cinta de papiro,
siendo la técnica de transposición de caracteres, era difícil comprender el mensaje
sin el aparato cilíndrico.

 Método de Sustitución, Mono-alfabético, Mono-grámico de Cesar. El nombre


utilizado es debido a que se menciona la técnica, el tipo de alfabeto y la forma de
ordenar las letras para realizar el cifrado. El método consistía en un desplazamiento
(n), con el propósito de sustituir cada carácter del mensaje en claro por otro situado
(n) posiciones después.
 Método de Sustitución, Mono-alfabético, Poli-gramico de Playfair. Se hace
referencia a la técnica, el tipo de alfabeto y la forma de ordenar las letras para
realizar el cifrado. El método consistía en tomar sus caracteres en parejas, las letras
del alfabeto se escribían en una matriz de 5x5, al tener los caracteres separados en
parejas se procedía a realizar el cifrado, con ciertas reglas, para encontrar la pareja
de letras que darían el cifrado posterior.
 Método de Sustitución, Poli-alfabético, Periódicos de Vigenere. A diferencia de los
métodos mencionados anteriormente, este método utiliza mas de un alfabeto para
cifrar el mensaje, por tal motivo se considera Poli-alfabético, se considera Periódico
debido a la clave utilizada para cifrar el mensaje. El método consistía en asignar a
cada letra de cierto alfabeto un numero entero, y seleccionar una palabra clave de
cualquier alfabeto y asignándole un numero entero a cada letra de la misma, sumada
con el mensaje daría origen al mensaje cifrado.

La Criptografía clásica, conocida actualmente como Simétrica o de Clave secreta, tiene


como características el algoritmo Oculto y la clave Secreta, siendo estas la diferencia con la
Criptografía moderna, en la actualidad el algoritmo es Publico y la clave Secreta. La razón
de conocer el algoritmo, es comprobar que realmente es seguro, a través de su
criptoanálisisII, con el propósito de tener la certeza que aún continua siendo seguro, ésto a
dado entre otras consecuencias nuevas líneas de investigación y poder seleccionar los
algoritmos de cifrado para estándar.
Descripción del algoritmo DES

En la etapa de la Criptografía moderna existen dos modelos de cifrado, cifrado en flujo


(Vernam) y cifrado en bloque (DES cifrado en bloque simétrico y RSA cifrado en bloque
asimétrico).

1.1. Algoritmo de Cifrado

DES, es un algoritmo de cifrado en bloques simétrico, el tamaño del bloque es de longitud


fija de 64 bits, el algoritmo consta de dos permutaciones, una al inicio conocida como P1,
la cual se muestra a continuación:

Tabla antes la Permutación


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 28 29 30 31 32
33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48
49 50 51 52 53 54 55 56
57 58 59 60 61 62 63 64
Permutación Inicial (P1)
58 50 42 34 26 18 10 2
60 52 44 36 28 20 12 4
62 54 46 38 30 22 14 6
64 56 48 40 32 24 16 8
57 49 41 33 25 17 9 1
59 51 43 35 27 19 11 3
61 53 45 37 29 21 13 5
63 55 47 39 31 23 15 7

Al investigar información sobre DES, se puede encontrar la siguiente tabla:

Para ver la tabla seleccione la opción "Descargar" del menú superior

Después de recibir un bloque de entrada de 64 bits, el primer paso consiste en aplicar al


bloque de entrada la permutación P1, teniendo como resultado un orden de salida que se
identifica leyendo la tabla de izquierda a derecha y de arriba abajo. Significa que el bit del
lugar 58 en el mensaje de entrada, después de la permutación, ocupara la posición 1 y así
sucesivamente. Ejemplo:
Bloque de Entrada: Bloque de Salida:

0..1 ..0 ..1 ..0 ..1 ..1 ..0 0..1 ..1 ..0 ..1 ..0 ..1 ..0

2..10..18..26..34..42..50..58 58..50..42..34..26..18..10.. 2

Una vez realizada la permutación, los 64 bits se dividen en dos sub-bloques Left y Right
(Li y Ri) de 32 bits, los bits que forma el sub-bloque Li se encuentra formado por los
primeros 32 bits y los bits restantes forma el sub-bloque Ri. En estas condiciones, el cifrado
DES esta definido por las ecuaciones:

Li = Ri-1

Ri = Li-1 f ( Ri-1 , Ki )

El valor de i = 16, representa el valor de las 16 vueltas del algoritmo. Lo anterior se


explicará con un ejemplo, el cual se ira detallando a lo largo del trabajo, ejemplificando
cada proceso del algoritmo.

Ejemplo Permutación P1

Mensaje a Cifrar = Denytamo

Para ver la tabla seleccione la opción "Descargar" del menú superior

Utilizando la tabla Permutación Inicial P1, tenemos:

Tabla antes la
Permutación
0 1 0 0 0 1 0 0
0 1 1 0 0 1 0 1
0 1 1 0 1 1 1 0
0 1 1 1 1 0 0 1
0 1 1 1 0 1 0 0
0 1 1 0 0 0 0 1
0 1 1 0 1 1 0 1
0 1 1 0 1 1 1 1
Permutación Inicial (P1)
1 1 1 1 1 1 1 1
0 0 0 1 1 0 0 0
1 1 0 1 0 1 1 1
1 1 1 0 1 0 1 0
0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 0
1 1 0 0 1 1 0 0
1 0 0 0 0 1 0 0

Se muestra el resultado de haber realizado la permutación P1, la parte superior se encuentra


marcada con el fin de indicar cuales son los bits que forman el sub-bloque L0, los bits
restantes forman el sub-bloque R0, dando como resultado:

L0 = 11111111 00011000 11010111 11101010

R0 = 00000000 11111110 11001100 10000100

Sub-bloques iniciales

1.1.1. Permutación E

La salida de R0 es de 32 bits, se utiliza la permutación E, con el propósito de expandir a 48


bits y así poder realizar la suma OR exclusiva con la clave Ki, lo anterior se encuentra
esquematizado en la imagen. A continuación se muestra la tabla para realizar la
permutación E.

Permutación E
32 1 2 3 4 5
4 5 6 7 8 9
8 9 10 11 12 13
12 13 14 15 16 17
16 17 18 19 20 21
20 21 22 23 24 25
24 25 26 27 28 29
28 29 30 31 32 1
Bits duplicados
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 28
29 30 31 32

En la tabla del lado izquierdo se encuentran marcados los bits utilizados para expandir a 48
bits en la permutación E. Al realizar la expansión de R0, se procede con la suma OR
exclusiva que se explicara mas adelante.

Ejemplo Permutación E

Al tener la secuencia de R0 de 32 bits, es necesario aplicar la permutación E, la cual se


muestra a continuación.

32 Bits
0000
0000
1111
1110
1100
1100
1000
0100

R0 = 0000 0000 1111 1110 1100 1100 1000 0100

Permutación E
0 0 0 0 0 0
0 0 0 0 0 1
0 1 1 1 1 1
1 1 1 1 0 1
0 1 1 0 0 1
0 1 1 0 0 1
0 1 0 0 0 0
0 0 1 0 0 0

El resultado de la permutación E(R0) es:

E(R0) = 000000 000001 011111 111101 011001 011001 010000 001000


1.2. Generación de la subclave Ki

La clave Ki tiene un valor inicial de 64 bits, su longitud es fija.

Tabla de 56 bits
1 2 3 4 5 6 7
9 10 11 12 13 14 15
17 18 19 20 21 22 23
25 26 27 28 29 30 31
33 34 35 36 37 38 39
41 42 43 44 45 46 47
49 50 51 52 53 54 55
57 58 59 60 61 62 63
Tabla de 64 bits Inicial
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 28 29 30 31 32
33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48
49 50 51 52 53 54 55 56
57 58 59 60 61 62 63 64
Permutación PC1
57 49 41 33 25 17 9
1 58 50 42 34 26 18
10 2 59 51 43 35 27
19 11 3 60 52 44 36
63 55 47 39 31 23 15
7 62 54 46 38 30 22
14 6 61 53 45 37 29
21 13 5 28 20 12 4

La tabla de la Permutación PC1, se utiliza para realizar la permutación inicial en la


generación de la subclave Ki , para cada vuelta. Una vez realizada la permutación, los 56
bits se dividen en dos sub-bloques Ci y Di de 28 bits. En estas condiciones, la clave esta
definida por las ecuaciones:

Ci = LS (Ci-1) Di = LS(Di -1)

Ki = PC2 (Ci , Di)

Ejemplo Permutación PC1

Clave K: Santiago

Decimal Carácter Binario


97 a 01100001
103 g 01100111
105 i 01101001
110 n 01101110
111 o 01101111
83 S 01010011
116 t 01110100
S 01010011
a 01100001
n 01101110
t 01110100
i 01101001
a 01100001
g 01100111
o 01101111

Utilizando la Permutación PC1 obtenemos:

Tabla de 64 bits de Ki
Inicial
0 1 0 1 0 0 1 1
0 1 1 0 0 0 0 1
0 1 1 0 1 1 1 0
0 1 1 1 0 1 0 0
0 1 1 0 1 0 0 1
0 1 1 0 0 0 0 1
0 1 1 0 0 1 1 1
0 1 1 0 1 1 1 1
Tabla de 56 bits
0 1 0 1 0 0 1
0 1 1 0 0 0 0
0 1 1 0 1 1 1
0 1 1 1 0 1 0
0 1 1 0 1 0 0
0 1 1 0 0 0 0
0 1 1 0 0 1 1
0 1 1 0 1 1 1
Permutación PC1
0 0 0 0 0 0 0
0 1 1 1 1 1 1
1 1 1 1 1 1 1
1 1 0 0 0 0 0
1 1 0 0 0 1 0
1 1 1 0 0 1 1
0 0 1 0 0 1 0
1 0 0 1 0 0 1

Sub-bloque C0 = 0000000 0111111 1111111 1100000

Sub-bloque D0 = 1100010 1110011 0010010 1001001

Sub-bloques iniciales

1.2.1. Desplazamiento LS(…)

El desplazamiento LS(…) se aplica a los sub-bloques de longitud fija de 7 bits (Ci y Di),
donde LS(…) es un desplazamiento circular a la izquierda de 1 o 2 bits del entero binario
que toma el argumento de acuerdo a la siguiente tabla:

Vuelta 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
No. Bits desplazados. Izda. 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1

Con el propósito de comprender mejor el desplazamiento LS(…) se realizara el proceso.


Ejemplo Permutación LS(..)

Al tener los sub-bloques C 0 y D0, el siguiente paso es el desplazamiento LS, se marcan los
dos primeros bits, con el propósito de poder identificar el resultado del desplazamiento.

Sub-bloque C0 = 0000000 0111111 1111111 1100000

Sub-bloque D0 = 1100010 1110011 0010010 1001001

Al ser la primer vuelta, el desplazamiento es de un bit a la izquierda como se indica en la


tabla, dando como resultado C1 y D1.

Sub-bloque C1 = 0000000 1111111 1111111 1000000

Sub-bloque D1 = 1000101 1100110 0100101 0010011

Sub-bloques después del desplazamiento LS(..)

1.2.2. Permutación PC2

La permutación PC2 se conoce como permutación de compresión, dada por las operaciones
de concatenar y permutar Ci y Di, se va a comprimir de 56 bits a 48 bits para obtener la
clave Ki, posteriormente será utilizada en la función (f(Ri-1, Ki))

El orden de concatenar Ci y Di, es utilizando primero los 28 bits de Ci y posteriormente los


28 bits de Di, la tabla PC2 es una tabla de 8 x 6, dando como resultado 8 bloques de 6 bits.

Tabla ( Ci, Di)


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 28
29 30 31 32 33 34 35
36 37 38 39 40 41 42
43 44 45 46 47 48 49
50 51 52 53 54 55 56
Tabla de 8 x 6 bits
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 28 29 30
31 32 33 34 35 36
37 38 39 40 41 42
43 44 45 46 47 48
Permutación PC2
14 17 11 24 1 5
3 28 15 6 21 10
23 19 12 4 26 8
16 7 27 20 13 2
41 52 31 37 47 55
30 40 51 45 33 48
44 49 39 56 34 53
46 42 50 36 29 32

Ejemplo Permutación PC2

Continuando con el ejemplo se mostrará el proceso utilizado en la permutación PC2, para


obtener la clave Ki.

Concatenando Ci, Di

0000000 1111111 1111111 1000000 1000101 1100110 0100101 0010011

Los 56 bits de entrada en la permutación PC2

Para ver la tabla seleccione la opción "Descargar" del menú superior 

El resultado de haber realizado la permutación PC2 es la generación de la clave K1 siendo:

K1 = PC2 (C1, D1) =

111000 001011 011001 100110 110111 010010 110100 000110

Clave K1

Las operaciones LS(..) y PC2, se repiten 15 veces para así obtener las 15 subclaves de
cifrado restantes. Los procesos de cifrado y generación de claves se representan
esquemáticamente en la siguiente imagen.

1.3. Función f(Ri-1 , Ki)


Al tener la clave Ki y la expansión de (R0), el siguiente paso es la función f(Ri-1 , Ki), la
cual consta de tres procesos (Suma OR exclusivo, ocho funciones no lineales, Permutación
P), siendo las ocho funciones lineales la mayor virtud del algoritmo, se han propuesto
modificaciones en varios procesos, pero cualquier modificación realizada, en las funciones
lineales hace débil al algoritmo. A continuación se explican los procesos.

1.3.1. Suma OR exclusiva

Con la clave Ki y E(Ri-1), se procede a realizar la suma OR exclusiva, al realizar la


operación se tiene un 50% de certeza que el siguiente bit sea 1, con lo cual aumenta la
dificultad de poder descifrar el mensaje. La operación OR exclusiva se ejemplifica en la
siguiente tabla:

A B A B
0 0 0
0 1 1
1 0 1
1 1 0

Se encuentra definido por la ecuación.

E(Ri-1) Ki

La clave Ki y Ri-1 se encuentra formado por 8 bloques de 6 bits cada, con lo cual es posible
realizar la suma OR exclusiva como se muestra a continuación.

Ejemplo Suma OR exclusiva

Retomando los bits de la expansión del sub-bloque R0 y la subclave K1, se procede a


realizar la suma OR exclusiva.

E(R0) = 000000 000001 011111 111101 011001 011001 010000 001000

K1 = 111000 001011 011001 100110 110111 010010 110100 000110

111000 001010 000110 011011 101110 001011 100100 001110

Resultado de la suma OR exclusiva E(R0) K1

1.3.2. Funciones no lineales

La cadena de bits obtenida de la suma OR exclusiva, se subdivide en 8 bloques de 6 bits,


como se puede apreciar en el ejemplo anterior, siendo cada bloque (b6b5b4b3b2b1) la
entrada a una de las funciones no lineales, conocidas como cajas , el resultado de la
operación es un numero con valor entre 0 a 15, representado con cuatro bits, concatenados
forman una cadena de 32 bits, la cual será la entrada para la permutación P. La posición de
los bits dentro de cada caja se encuentra definida por la fila b6b1 y la columna b5b4b3b2 de
la caja, el orden de los valores numéricos de las cajas se puede ver en la siguiente imagen.

Ejemplo función no lineal (cajas)

E(R0) K1 = 111000 001010 000110 011011 101110 001011 100100 001110

En la Caja S1 se utiliza el primer bloque 111000, en la Caja S2 se utiliza el segundo bloque


y así sucesivamente.

Para ver la tabla seleccione la opción "Descargar" del menú superior

La salida del bloque 1 es: 3 (0011), el procedimiento se repite en las siguientes 7 cajas
obteniendo como resultado:

E(R0) K1 = 0011 1011 1110 1010 1000 1100 1011 0001

3 11 14 10 8 12 11 1

Resultado de las funciones no lineales

1.3.3. Permutación P

El ultimo paso de la función f(Ri-1 , Ki), es una permutación P, cuyo resultado se sumara
con la salida del sub-bloque Li, dando origen a la entrada del sub-bloque Ri

Para ver la tabla seleccione la opción "Descargar" del menú superior

 Ejemplo Permutación P

Retomando el ejemplo se realiza el ultimo paso de la f(Ri-1 , Ki), recordando que dicho
proceso se repite 15 veces.

E(R0) K1 = 0011 1011 1110 1010 1000 1100 1011 0001

Resultado de las funciones no lineales

Para ver la tabla seleccione la opción "Descargar" del menú superior

1.4. Suma Li Ri

El registro de bits obtenido por la función f(Ri-1 , Ki), es sumado con un OR exclusivo con
el registro de bits de L0, dando como resultado la entrada para el siguiente sub-bloque de
Ri. El registro de bits realizado en la permutación inicial P1, que origino al sub-bloque R0,
es la entrada para el siguiente sub-bloque Li, el proceso se repite 15 veces, siendo el ultimo
proceso la permutación P1-1.

Ejemplo Suma Li f(Ri-1 , Ki)

f(Ri-1 , Ki) = 0101 0011 0100 1001 0100 1111 0100 1111

L0 = 1111 1111 0001 1000 1101 0111 1110 1010

1010 1100 0101 0001 1001 1000 1010 0101

Resultado de la suma OR exclusiva L0 f(R0 , K1)

Obteniendo los registros de 32 bits para el siguiente sub-bloque Li y Ri como se muestra a


continuación:

L1 = 0000 0000 1111 1110 1100 1100 1000 0100

R1 = 1010 1100 0101 0001 1001 1000 1010 0101

Donde se verifican las ecuaciones:

L1 = R0

00000000111111101100110010000100 = 00000000111111101100110010000100

R1 = L0 f(R0 , K1)

10101100010101011001100010100101 =

11111111000110001101011111101010 01010011010011010100111101001111

1.5. Permutación P1-1

La permutación inversa se define por la siguiente tabla, siendo la salida, el cifrado del
mensaje.

Para ver la tabla seleccione la opción "Descargar" del menú superior

Ejemplo Permutación P1-1

Si tomamos los valores que tenemos de L1 y R1, suponiendo los valores de L16 y R16,
podemos realizar el procedimiento, como muestra del resultado final, cabe mencionar si el
mensaje es mayor de 64 bits, se utilizan los bloques necesarios para dividir el mensaje
original, si un bloque formado por un mensaje, no tiene la longitud de 64 bits, se rellena
utilizando 0.

L16 = 10101100 01010001 10011000 10100101

R16 = 00000000 11111110 11001100 10000100

Concatenando L16 , R16

10101100 01010001 10011000 10100101 00000000 11111110 11001100 10000100

Para ver la tabla seleccione la opción "Descargar" del menú superior

El cifrado del mensaje es: ◄(spacio){l4a8o

00010001 00100000 01101011 01101100 00110100 01100001 00111000 01101111

Decimal Carácter Binario


17 ◄ 00010001
32 (space) 00100000
123 { 01111011
108 l 01101100
52 4 00110100
97 a 01100001
56 8 00111000
111 o 01101111

1.6. Descifrado

El algoritmo se utiliza para obtener el mensaje original, con un sentido inverso al inicial,
esto es, empezando con la entrada del mensaje cifrado de 64 bits, aplicando la permutación
P1, dividir el mensaje en dos sub-bloques L16 y R16, teniendo la subclaves calculadas
previamente, se realiza el procedimiento descrito anteriormente la f(Ri-1 , Ki), realizando
las 16 vueltas hasta obtener el mensaje en claro.

Ejemplo Permutación P1 Descifrado

Mensaje a Descifrar = ◄(spacio){l4a8o

Para ver la tabla seleccione la opción "Descargar" del menú superior 

L16 = 10101100 01010001 10011000 10100101


R16 = 00000000 11111110 11001100 10000100

Ejemplo Permutación E Descifrado

Al tener la secuencia de R16 de 32 bits, es necesario aplicar la permutación E, la cual se


muestra a continuación.

R16 = 00000000 11111110 11001100 10000100

Para ver la tabla seleccione la opción "Descargar" del menú superior

E(R16) = 000000 000001 011111 111101 011001 011001 010000 001000

Ejemplo Suma OR exclusiva Descifrado

La suma OR exclusiva se realiza utilizando la ultima clave generada (K16), en nuestro


ejemplo utilizaremos la clave K1, como la clave K16.

E(R16) = 000000 000001 011111 111101 011001 011001 010000 001000

K16 = 111000 001011 011001 100110 110111 010010 110100 000110

111000 001010 000110 011011 101110 001011 100100 001110

Resultado de la suma OR exclusiva E(R16) K16

Ejemplo función no lineal (cajas) Descifrado

E(R0) K1 = 111000 001010 000110 011011 101110 001011 100100 001110

Como resultados de las operaciones no lineales (cajas) tenemos los siguientes:

E(R0) K1 = 0011 1011 1110 1010 1000 1100 1011 0001

3 11 14 10 8 12 11 1

Resultado de las funciones no lineales

Ejemplo Permutación P Descifrado

Retomando el ejemplo se realiza el ultimo paso de la f(Ri-1 , Ki), recordando que dicho
proceso se repite 15 veces mas.

E(R0) K1 = 0011 1011 1110 1010 1000 1100 1011 0001


Para ver la tabla seleccione la opción "Descargar" del menú superior

Ejemplo Suma Li f(Ri-1 , Ki) Descifrado

f(Ri-1 , Ki) = 0101 0011 0100 1001 0100 1111 0100 1111

L16 = 1010 1100 0101 0001 1001 1000 1010 0101

1111 1111 0001 1000 1101 0111 1110 1010

Resultado de la suma OR exclusiva L0 f(Ri-1 , Ki)

Obteniendo los registros de 32 bits para el siguiente sub-bloque Li y Ri como se muestra a


continuación:

L15 = 0000 0000 1111 1110 1100 1100 1000 0100

R15 = 1111 1111 0001 1000 1101 0111 1110 1010

Donde se verifican las ecuaciones:

L15 = R16

00000000111111101100110010000100 = 00000000111111101100110010000100

R1 = L16 f(R16 , K16)

11111111000110001101011111101010 =

10101100010100011001100010100101 01010011010010010100111101001111

Ejemplo Permutación P1-1 Descifrado

Si tomamos los valores que tenemos de L1 y R1, suponiendo los valores de L16 y R16,
podemos realizar el procedimiento, como muestra del resultado final, cabe mencionar si el
mensaje es mayor de 64 bits, se utilizan los bloques necesarios para dividir el mensaje
original, si un bloque formado por un mensaje y este no tiene la longitud de 64 bits, se
rellena utilizando 0.

L1 = 1111 1111 0001 1000 1101 0111 1110 1010

R1 = 0000 0000 1111 1110 1100 1100 1000 0100

Concatenando L1 y R1, da como resultado:


11111111 00011000 11010111 11101010 00000000 11111110 11001100 10000100

 Para ver la tabla seleccione la opción "Descargar" del menú superior

 En la siguiente sección se definirán, los ataques activos y pasivos, se mencionarán los
ataques al algoritmo DES.

2.Ataques a la seguridad criptográfica

La seguridad criptográfica sufre, dos tipos de ataques pasivosIII y activosIV, la finalidad de


realizar un ataque pasivo, es obtener información y evitar ser detectado, a diferencia de los
ataques activos, cuya finalidad es captar la información, modificarla, obtener claves, entre
otras actividades no legales.

Los ataques activos se dividen en Ataques a los Operadores Criptográficos y Ataques a los
protocolos, a continuación se mencionan algunos ataques a los operadores criptográficos.

 Ataque a partir del cifrado: El atacante tiene acceso al texto cifrado y de ahí trata de
encontrar la clave secreta.
 Ataque a partir del texto en claro: El atacante tiene acceso al texto en claro y al
cifrado con los cuales intenta obtener la clave secreta.
 Ataque a partir del texto en claro elegido: El atacante puede elegir un texto en claro
y su cifrado.
 Ataque a partir de texto en claro condicionado: El atacante puede elegir un texto en
claro condicionado a los cifrados previamente obtenidos.

Ataques a los protocolos.

 Ataque con clave conocida: El atacante obtiene algunas claves utilizadas en cifrados
previos para determinar nuevas claves.
 Reutilización del protocolo: El atacante, ataca utilizando una comunicación captada
previamente, insertándola en la comunicación.
 Suplantación de Identidad: El atacante toma la identidad de un usuario registrado en
la red de comunicaciones.

Otros ataques.

 Ataque de fuerza bruta: El ataque por fuerza bruta consiste en un ejercicio de


combinación, donde se van cifrando todas las posibles contraseñas y comparándolas
con las existentes en el registro, buscando también coincidencias. Este método, por
definición, siempre consigue su meta, si bien el problema que tienen es de recursos
y tiempo.

2.1 Ataques al Algoritmo DES

Criptoanálisis Diferencial
El criptoanálisis diferencial fue introducido por E. Biham y A. Shamir, es un ataque en
texto claro escogido y esta basado en comparaciones del OR exclusivo de dos textos en
claro escogidos con el OR exclusivo de sus correspondientes cifrados. Este método de
análisis permite romper el DES utilizando en teoría alrededor de 247 parejas de textos en
claro seleccionados, siendo aproximadamente 236 las útiles para el criptoanálisis, con un
tiempo de calculo equivalente a unos 237 cifrados. El problema básico de este ataque es
obtener los cifrados de los textos en claro, ya que para obtenerlos es necesario engañar a la
entidad que realiza el cifrado o violar la seguridad física del lugar donde se realiza el
cifrado, lo cual en la practica es casi imposible.

Criptoanálisis Lineal

El criptoanálisis lineal fue introducido por M. Matsui, se basa en un ataque en texto en


claro escogido y consiste en la obtención de ecuaciones lineales que representen la
probabilidad existente entre algunos bits del mensaje en claro y otros del cifrado DES del
mismo mensaje. La ecuación utilizada es la siguiente:

F(P[i1,...ip] , C[j1,...jp]) = k[k1, k2,…kk]

Donde F(…) es una función lineal y [i1,...ip] ,[j1,...jp]) ,[k1, k2,…kk] son bits que ocupan
posiciones fijas respectivamente en P, C y K.
Criptografía simétrica
De Wikipedia, la enciclopedia libre

Saltar a navegación, búsqueda

La criptografía simétrica es un método criptográfico en el cual se usa una misma clave


para cifrar y descifrar mensajes. Las dos partes que se comunican han de ponerse de
acuerdo de antemano sobre la clave a usar. Una vez ambas tienen acceso a esta clave, el
remitente cifra un mensaje usándola, lo envía al destinatario, y éste lo descifra con la
misma.

Contenido
[ocultar]

 1 Seguridad
 2 Ejemplos
 3 Inconvenientes
 4 Alternativas
 5 Referencias

[editar] Seguridad

Un buen sistema de cifrado pone toda la seguridad en la clave y ninguna en el algoritmo.


En otras palabras, no debería ser de ninguna ayuda para un atacante conocer el algoritmo
que se está usando. Sólo si el atacante obtuviera la clave, le serviría conocer el algoritmo.
Los algoritmos de cifrado ampliamente utilizados tienen estas propiedades (por ejemplo:
GnuPG en sistemas GNU).

Dado que toda la seguridad está en la clave, es importante que sea muy difícil adivinar el
tipo de clave. Esto quiere decir que el abanico de claves posibles, o sea, el espacio de
posibilidades de claves, debe ser amplio. Richard Feynman fue famoso en Los Álamos por
su habilidad para abrir cajas de seguridad; para alimentar la leyenda que había en torno a él,
llevaba encima un juego de herramientas que incluían un estetoscopio. En realidad,
utilizaba una gran variedad de trucos para reducir a un pequeño número la cantidad de
combinaciones que debía probar, y a partir de ahí simplemente probaba hasta que adivinaba
la combinación correcta. En otras palabras, reducía el tamaño de posibilidades de claves.

Actualmente, los ordenadores pueden descifrar claves con extrema rapidez, y ésta es la
razón por la cual el tamaño de la clave es importante en los criptosistemas modernos. El
algoritmo de cifrado DES usa una clave de 56 bits, lo que significa que hay 2 elevado a 56
claves posibles (72.057.594.037.927.936 claves). Esto representa un número muy alto de
claves, pero un ordenador genérico puede comprobar el conjunto posible de claves en
cuestión de días. Una máquina especializada puede hacerlo en horas. Algoritmos de cifrado
de diseño más reciente como 3DES, Blowfish e IDEA usan claves de 128 bits, lo que
significa que existen 2 elevado a 128 claves posibles. Esto equivale a muchísimas más
claves, y aun en el caso de que todas las máquinas del planeta estuvieran cooperando,
tardarían más tiempo en encontrar la clave que la edad del universo.

[editar] Ejemplos

Como ejemplo de sistema simétrico está Enigma. Éste fue un sistema empleado por
Alemania durante la Segunda Guerra Mundial, en el que las claves se distribuían a diario en
forma de libros de códigos. Cada día, un operador de radio, receptor o transmisor,
consultaba su copia del libro de códigos para encontrar la clave del día. Todo el tráfico
enviado por ondas de radio durante aquel día era cifrado y descifrado usando las claves del
día.

Inglaterra usó máquinas para descifrar las claves durante aquella guerra y aunque el citado
sistema alemán, Enigma, estaba provisto de un amplio abanico de claves, los ingleses
diseñaron máquinas de cómputo especializado, los Bombes, para comprobar las claves de
modo mecánico hasta que la clave del día era encontrada. Esto significaba que algunas
veces encontraban la clave del día pocas horas después de que ésta fuera puesta en uso,
pero también que otros días no podían encontrar la clave correcta. Los Bombes no fueron
máquinas de cómputo general, sino las precursoras de los ordenadores (computadoras)
actuales.

Algunos ejemplos de algoritmos simétricos son DES, 3DES, RC5, AES, Blowfish e IDEA.

[editar] Inconvenientes

El principal problema con los sistemas de cifrado simétrico no está ligado a su seguridad,
sino al intercambio de claves. Una vez que el remitente y el destinatario hayan
intercambiado las claves pueden usarlas para comunicarse con seguridad, pero ¿qué canal
de comunicación que sea seguro han usado para transmitirse las claves? Sería mucho más
fácil para un atacante intentar interceptar una clave que probar las posibles combinaciones
del espacio de claves.

Otro problema es el número de claves que se necesitan. Si tenemos un número n de


personas que necesitan comunicarse entre sí, se necesitan n/2 claves para cada pareja de
personas que tengan que comunicarse de modo privado. Esto puede funcionar con un grupo
reducido de personas, pero sería imposible llevarlo a cabo con grupos más grandes.

[editar] Alternativas

Para solucionar este problema existen la criptografía asimétrica y la criptografía híbrida.


[editar] Referencias

Adaptado de la Guía de "Gnu Privacy Guard"

Вам также может понравиться