Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
ABSTRACT
According to the Dictionary of the “Real Academia”, Cryptography comes from the Greek word “kryptos”, meaning
hidden, and “gráphein”, which means writing, and its definition is: "Art to write secret key or a puzzling way."
Using these techniques encryption has a specific purpose: To prevent attacks, rape, and security intrusions into
computer systems.
Since ancient times one of the biggest desires of human beings has been hiding its secrets exist in turn counterpart,
trying to decipher those of someone else.
This evolved from the code that Cesar wore a simple alphabetical displacement, through the Middle Ages where he
began to acquire a great significance this science.
In 1466 Leon Batista Alberti devised the system based on poly alphabetical rotation of rollers. A century later, Giovan
Battista Belaso invented the cryptographic key based on a word or text to be transliterated point to point on the original
message.
But what gave the evolving pattern of cryptography was the Second World War and the years between 30 and 40 where
the machine was "enigma" is a wonderful example of what is the power of cryptography and the desire of human beings
to decipher and discover the secrets of someone else as the enemy of the Germans in the year 1942 made it impossible
to break the encryption "enigma" that the Germans believed inviolable.
So with developments in technology and computer cryptography has been a key factor in developing them.
RESUMEN
Según el Diccionario de la Real Academia, la palabra Criptografía proviene del griego kryptos, que significa oculto, y
gráphein, que significa escritura, y su definición es: “Arte de escribir con clave secreta o de un modo enigmático".
El uso de estas técnicas de encriptación tiene un propósito específico: Prevenir ataques, violaciones, e intrusiones de
seguridad en sistemas computarizados.
Desde tiempos muy remotos uno de los anhelos mas grandes del ser humano ha sido esconder sus secretos,
existiendo a su vez la contraparte, el tratar de descifrar los de alguien mas.
Esto evoluciono desde el código Cesar que usaba un simple desplazamiento alfabético, pasando por la edad media
donde comenzó a adquirir una gran importancia esta ciencia.
En 1466 León Batista Alberti ideó el sistema poli alfabético basado en la rotación de unos rodillos. Un siglo más tarde,
Giovan Battista Belaso inventó la clave criptográfica basada en una palabra o texto que se transcribía letra a letra sobre
el mensaje original.
Pero lo que dio la pauta ala evolución de la criptografía fue la segunda guerra mundial, y entre los años 30 y 40 donde
surgió la maquina “enigma” (maquina de cifrado alemana) , aquí una magnifico ejemplo de lo que es el poder de la
criptografía y el afán del ser humano de descifrar los secretos de alguien mas ya que los enemigos de los alemanes en
el año de 1942 hicieron lo imposible, romper el cifrado de “enigma” que los alemanes creían inviolable.
Así con la evolución de la tecnología y la informática la criptografía ha sido un factor fundamental en el desarrollo de las
mismas.
Cuando alguien quiere enviar una información que es confidencial hace uso de las técnicas criptográficas para poder
así esconder el mensaje eso es denominado “cifrar o encriptar” en un medio que considera inseguro para que
después solo un receptor autorizado pueda leer el mensaje escondido esto es llamado “descifrar o descencriptar”.
Estos son los criptosistemas más sencillos y permiten tener una comunicación segura entre las partes siempre y
cuando anteriormente se hayan intercambiado la clave correspondiente se llamara clave simétrica. La simetría se
refiere a que las partes tienen la misma llave tanto para cifrar como para descifrar.
Es el más popular y utilizado de los algoritmos asimétricos. Fue inventado en 1978 por Rivest, Shamir y Adlman
que dan nombre al algoritmo.
Este proceso tiene mucha importancia para la posterior seguridad del sistema. El proceso es el siguiente:
El DSS (Digital Signature Standard) es un sistema de firma digital adoptado como estándar por el NIST. Utiliza la
función Hash SHA y el algoritmo asimétrico DSA
El DSA es un algoritmo asimétrico que únicamente se puede utilizar con firma digital.
Utiliza más parámetros que el RSA y así se consigue un grado mayor de seguridad. Los parámetros son:
El algoritmo Diffie-Hellman fue el primer algoritmo asimétrico. Se describía en el famoso articulo "New directions in
Cryptography" publicado en noviembre de 1976, se utilizaba para ilustrar un ejemplo de la criptografía que Diffie y
Hellman acababan de descubrir, la criptografía de clave pública.
Solamente se puede utilizar para intercambiar claves simétricas, pero ésta es una de las principales funciones de
los algoritmos asimétricos, así está muy extendido en sistemas de Internet con confidencialidad de clave simétrica
(VPNs, SSL, etc...).
La seguridad del algoritmo depende de la dificultad del cálculo de un logaritmo discreto. Esta función es la inversa de
la potencia discreta, o sea, de calcular una potencia y aplicar una función mod.
· Se busca a raiz primitiva de q. Para ser raiz primitiva debe cumplir que:
IDEA
(International Data Encryption Algorithm): Más conocido como un componente de PGP (encriptación de mails), trabaja
con llaves de 128 bits. Realiza procesos de shift y copiado y pegado de los 128 bits, dejando un total de 52 sub llaves
de 16 bits cada una. Es un algoritmo más rápido que DES, pero al ser nuevo, aun no es aceptado como un estándar,
aunque no se le han encontrado debilidades aún.
AES
(Advanced Encryption Standard): Éste fue el ganador del primer concurso de algoritmos de encriptación realizado por la
NIST (National Institute of Standards and Technology) en 1997. Después de 3 años de estudio y habiendo descartado a
14 candidatos, este algoritmo, también conocido como Rijndael por Vincent Rijmen y Joan Daemen, fue elegido como
ganador. Aun no es un estándar, pero es de amplia aceptación a nivel mundial.
import java.security.*;
import javax.crypto.*;
import javax.crypto.spec.*;
import java.io.*;
/**
* This program generates a AES key, retrieves its raw bytes, and
* then reinstantiates a AES key from the key bytes.
* The reinstantiated key is used to initialize a AES cipher for
* encryption and decryption.
*/
/**
* Turns array of bytes into string
*
* @param buf Array of bytes to convert to hex string
* @return Generated hex string
*/
public static String asHex (byte buf[]) {
StringBuffer strbuf = new StringBuffer(buf.length * 2);
int i;
return strbuf.toString();
}
cipher.init(Cipher.ENCRYPT_MODE, skeySpec);
byte[] encrypted =
cipher.doFinal((args.length == 0 ?
"This is just an example" : args[0]).getBytes());
System.out.println("encrypted string: " + asHex(encrypted));
cipher.init(Cipher.DECRYPT_MODE, skeySpec);
byte[] original =
cipher.doFinal(encrypted);
String originalString = new String(original);
System.out.println("Original string: " +
originalString + " " + asHex(original));
}
}
BIBLIOGRAFIA
• Criptografía y Seguridad en Computadores Segunda Edici_on. Septiembre de 1999 Manuel José Lucena
López