Esta fue una tarea de investigacion. Aqui dejo las capturas para la comprobacion
Orígenes del término
Propiedades
Ejemplos de Funciones
Hash
Esto nos puede servir
si por ejemplo enviamos un correo electrónico y queremos estar seguros de que
nadie modifica su contenido. Si cuando hemos escrito el correo, le aplicamos
una función hash, producirá un resumen que adjuntaremos con el correo. Cuando
éste sea recibido por los destinatarios, volverán a aplicar la misma función
hash al correo y comprobarán si coincide con el resumen adjuntado por nosotros.
Si coinciden, el mensaje no ha sido modificado en absoluto. Si no lo hacen, es
porque el correo que les ha llegado no es exactamente igual al que nosotros
hemos mandado. Sea cual sea el cambio (un carácter, unas palabras, la
omisión/adición de un texto) el resumen producido variará enormemente del que
había producido el original. Y igual que lo aplicamos a un correo lo podemos
aplicar a cualquier tipo de documento.
MÉTODOS Y TÉCNICAS DE
ENCRIPTACIÓN
Gronsfeld: Este
método utiliza más de un alfabeto cifrado para poner en clave el mensaje y que
se cambia de uno a otro según se pasa de una letra del texto en claro a otra.
Es decir que deben tenerse un
conjunto de alfabetos cifrados y una forma de hacer corresponder cada letra del
texto original con uno de ellos.
Método de transposición:
El
método de transposición consiste en reordenar los elementos que forman el texto
original, de modo que el criptograma resultante tiene los mismos elementos pero
su nueva colocación impide que se pueda entender.
RSA: En los sistemas tradicionales de
cifrado debe comunicarse una clave entre el emisor y el receptor del mensaje,
el problema aquí es encontrar un canal seguro para transmitir dicha clave. Este
problema viene a resolverse en los sistemas de clave pública la clave de
cifrado, pues un tiempo enormemente de ordenador es necesario para encontrar
una transformación de descifrado a partir de la de cifrado.
DES: desarrollado por IBM a mediados de los
70. Aunque tiene un buen diseño, su tamaño de clave de 56 bits es demasiado
pequeño para los patrones de hoy.
DES (Data Encryption Standard) es un mecanismo de encriptación de datos de uso generalizado.
DES (Data Encryption Standard) es un mecanismo de encriptación de datos de uso generalizado.
Hay
muchas implementaciones de hardware y software de DES. Este transforma la
información de texto llano en datos encriptados llamados texto cifrado mediante
el uso de un algoritmo especial y valor semilla llamado clave. Si el receptor
conoce la clave, podrá utilizarla para convertir el texto cifrado en los datos
originales. Es un mecanismo de encriptado simétrico.
Chaffing
& Winnowing: Esta
técnica propuesta por Donald Rivest. Es más un intento de esquivar las
restricciones a la criptografía en EE.UU. (y otros países) que una
propuesta razonable debido al tamaño de los mensajes resultantes.
El
término inglés “winnowing” se tomará como aventar es decir separar el grano de
la paja y el término “chaffing” por el castellano empajar (cubrir o rellenar
con paja). La idea básica consiste en mezclar la información real (grano) con
otra de relleno (paja) de modo que sea imposible separarlas excepto para el
destinatario.
BÍFIDO: El método Bífido es un cifrado
fraccionario. Es decir que cada letra viene representada por una o más letras o
símbolos, y donde se trabaja con estos símbolos más que con las letras mismas.
WLBYKYAAOTB: Este método altera la frecuencia de los
caracteres a diferencia de lo que ocurre por ejemplo con los cifrados monos
alfabéticos. Admite algunas variaciones como por ejemplo dividir la lista en
3,4,…, n partes.
Cifrado
exponencial: Es
un sistema basado en la exponenciación modular, debido Pohlig y Hellman
(1978). Este método es resistente al criptoanálisis.
Blowfish: Este algoritmo realiza un cifrado
simple en 16 ciclos, con un tamaño de bloque de 64 bytes para un total de 448
bits. Aunque hay una fase compleja de la inicialización. El cifrado de datos es
muy eficiente en los microprocesadores grandes.
Método
Vigenére: El
cifrado de Vigenére utiliza una clave externa para realizar las sustituciones,
con lo que este mismo algoritmo puede dar diferentes criptogramas para el mismo
texto claro en función de la clave que utilicemos.
Firmas digitales: Para que una firma
digital sea aceptada como sustituta de una firma escrita debe ser:
v Fácil de autentificar
(reconocer) por cualquiera.
v Producible únicamente
por su autor.
v En los
cripto-sistemas de clave pública el procedimiento es:
El remitente: usa la
clave privada para crear un mensaje firmado.
El receptor: Usa la
clave pública del remitente para descifrar el mensaje o Guarda el mensaje
firmado para usarlo en caso de disputas
Ejemplos de los Métodos de Encriptación
Ejemplo Método de transposición:
C o m p u t a c i o n: Una transposición muy simple, y por tanto poco efectiva, podría
consistir en escribir el mensaje al revés, con lo que quedaría:
N o i c a t u p m o c
Ejemplo
Método Vigenére:
Texto claro: s e g u r i d a d
Clave de cifrado: a b c
Para
llevar a cabo el cifrado dividimos el texto claro en grupos de tantas letras
como tenga la clave, y a continuación las hacemos corresponder con las letras
de la clave de cifrado:
Texto claro: s e g u r i d a d
Clave: a b c a b c a b c
Funciones Hash o Digest
A las funciones
resumen también se les
llama funciones hash o funciones digest.
H: U → M
x → h(x)
Tiene como entrada un
conjunto de elementos, que suelen ser cadenas, y los convierte en un rango de salida finito,
normalmente cadenas de longitud fija. Es decir, la función actúa como
una proyección del conjunto U sobre el conjunto M.
Observar
que M puede ser un conjunto definido de enteros. En este caso podemos
considerar que la longitud es fija si el conjunto es un rango de números de
enteros ya que podemos considerar que la longitud fija es la del número con
mayor número de cifras. Todos los números se pueden convertir al número
especificado de cifras simplemente anteponiendo ceros.
Normalmente el conjunto U
tiene un número elevado de elementos y M es un conjunto de cadenas con un número más o menos pequeño de símbolos. La
idea básica de un valor hash es que sirva como una representación
compacta de la cadena de entrada.
Orígenes del término
El
término hash proviene, aparentemente, de la analogía con el
significado estándar (en inglés) de dicha palabra en
el mundo real: picar y mezclar. Donald Knuth cree
que H. P. Luhn, empleado de IBM, fue el primero en utilizar el concepto en un memorándum
fechado en enero de 1953.
Su utilización masiva no fue hasta después de 10 años.
Propiedades
La calidad de una función
resumen viene definida con base en la satisfacción de ciertas propiedades
deseables en el contexto en el que se va a usar.
Bajo costo
Calcular
el valor hash necesita poco costo (computacional, de
memoria, etc.).
Compresión
Una
función hash comprime datos si puede mapear un
dominio con datos de longitud muy grande a datos con longitud más pequeña
Uniforme
Se
dice que una función resumen es uniforme cuando para una clave elegida
aleatoriamente es igualmente probable tener un valor resumen determinado,
independientemente de cualquier otro elemento.
De rango variable
En algunas funciones resumen el rango de valores resumen puede
ser diferente a lo largo del tiempo. Ejemplo: funciones hash usadas para tablas
resumen que necesitan expandirse. En estos casos a la función hash se le debe pasar un
parámetro que le permita saber en qué rango se mueve la ejecución para hallar
el valor resumen.
Ejemplos de Funciones
Hash
Esto nos puede servir
si por ejemplo enviamos un correo electrónico y queremos estar seguros de que
nadie modifica su contenido. Si cuando hemos escrito el correo, le aplicamos
una función hash, producirá un resumen que adjuntaremos con el correo. Cuando
éste sea recibido por los destinatarios, volverán a aplicar la misma función
hash al correo y comprobarán si coincide con el resumen adjuntado por nosotros.
Si coinciden, el mensaje no ha sido modificado en absoluto. Si no lo hacen, es
porque el correo que les ha llegado no es exactamente igual al que nosotros
hemos mandado. Sea cual sea el cambio (un carácter, unas palabras, la
omisión/adición de un texto) el resumen producido variará enormemente del que
había producido el original. Y igual que lo aplicamos a un correo lo podemos
aplicar a cualquier tipo de documento.
A continuación, el código en
Java para realizar una función hash:
function
md5_to64(value, n) {
if(typeof VarType !=
"undefined") {
value = VarType.toUInt(value);
n = VarType.toUInt(n);
}
var itoa64 =
"./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
var str = "";
while(--n >= 0) {
str += itoa64.charAt(value &
0x3f);
value = value >> 6;
}
return str;
}
function
md5_crypt(key, salt) {
if(typeof VarType != "undefined")
{
key = VarType.toStr(key);
salt = VarType.toStr(salt);
}
var old_b64pad = b64pad;
b64pad = "";
var old_chrsz = chrsz;
chrsz = 8;
var magic = "$1$";
if(salt.substr(0, magic.length) ==
magic) {
salt = salt.substr(magic.length);
}
var i = salt.indexOf("$");
if(i < 0 || i > 8) i = 8;
salt = salt.substr(0, i);
var str = key + magic + salt;
var hash = str_md5(key + salt + key);
for(var i = key.length; i > 0; i -=
16) {
if(i >= 16) {
str += hash;
}
else {
str += hash.substr(0, i);
}
}
for(var i = key.length; i != 0; i = i
>> 1) {
if((i & 1) != 0) {
str +=
String.fromCharCode(0x00);
}
else {
str += key.charAt(0);
}
}
var passwd = magic + salt +
"$";
hash = str_md5(str);
for(i = 0; i < 1000; i++) {
str = "";
if((i & 1) != 0) str += key;
else str += hash;
if(i % 3 != 0) str += salt;
if(i % 7 != 0) str += key;
if((i & 1) != 0) str += hash;
else str += key;
hash = str_md5(str);
}
hash += hash.charAt(5);
var value;
for(var i = 0; i < 5; i++) {
value
= ((hash.charCodeAt(i) << 16) | (hash.charCodeAt(i + 6) << 8) |
hash.charCodeAt(i + 12));
passwd += md5_to64(value, 4);
}
value = hash.charCodeAt(11);
passwd += md5_to64(value, 2);
b64pad = old_b64pad;
chrsz = old_chrsz;
return passwd;
}
Comentarios
Publicar un comentario