Sie sind auf Seite 1von 7

Algoritmos de funciones hash

Tambin conocido como digestin de mensajes de solo ida, es una huella digital
nica de longitud fija.
HASH no es ms que un nmero resumen con entrada de longitud arbitraria y
salida de longitud fija (128 o 160 bits).

Un buen algoritmo de hash debe poseer las siguientes propiedades:
El algoritmo debe aceptar cualquier longitud de mensaje.
El algoritmo debe producir un digesto de longitud fija para cualquier mensaje de
entrada.
El digesto no debe revelar nada acerca del mensaje de entrada que lo origin.
Es imposible producir un digesto pre-determinado.
Es imposible hallar dos mensajes que produzcan el mismo digesto.
Todos los HASHes generados con una funcin de hash tienen el mismo tamao,
sea cual sea el mensaje utilizado como entrada.
Dado un mensaje, es fcil y rpido mediante un ordenador calcular su HASH.
Es imposible reconstruir el mensaje original a partir de su HASH.
Es imposible generar un mensaje con un HASH determinado.

Es decir, un algoritmo de HASH no es un algoritmo de encriptacin, aunque s se
utiliza en esquemas de cifrado, como algoritmos de cifrado asimtrico.

Las funciones de estas caractersticas pueden tener variedad aplicaciones, entre
las que encontramos las siguientes:
Comprobacin de integridad de ficheros. Se calcula la funcin HASH del fichero,
antes y despus de cierta operacin, tal como lo es un envi de archivo a travs
de la red, si al final de la transferencia del archivo ambos coinciden, se asegura
que el envo ha sido satisfactorio, y por lo tanto se comprueba la integridad del
paquete.

Seguridad en procesos de identificacin en sistemas. Los procesos de
identificacin se ven reforzados por estos algoritmos. Se utilizan de la siguiente
forma: cuando un usuario accede a su computadora debe introducir su nombre de
usuario y su contrasea. Pues bien, si el sistema operativo no registra estos datos
como texto claro si no que registra el resultado de aplicarles una funcin HASH,
en el caso de que un usuario malicioso logre acceder a nuestro archivo de
registros, no conseguir (a menos que el algoritmo utilizado sea malo o disponga
de una supercomputadora) revertir el contenido de dicho registro, y por tanto no
puede acceder a nuestro sistema.

Esta misma idea se aplica en identificacin de usuarios en muchas webs, con la
diferencia de que para que este esquema sea seguro debe incluir informacin
adicional y aleatoria, como marcas de tiempo y redundancias.

Firma digital. Se utiliza para verificar la integridad de la informacin enviada por
el canal de comunicaciones. As se asegura la integridad de la informacin y el no
repudio.

Algunos de los algoritmos de HASH ms utilizados son los siguientes:
MD5 (Message-Digest Algorithm).
SHA-1 (Secure Hash Algorithm 1).





Algoritmos MD5
El algoritmo de hashing criptogrfico MD5 es uno de los algoritmos de reduccin
criptogrficos diseado por el profesor Ron Rivest en 1991 como reemplazo del
algoritmo MD4. Las siglas MD corresponden a Message Digest o resumen de
mensaje.
Este algoritmo produce, a partir de una entrada de longitud arbitraria, una salida
de 128 bits de longitud, la cual representa un mensaje resumen de la entrada. Se
lo emplea actualmente en distintas aplicaciones de seguridad, siendo una de las
ms populares la comprobacin de integridad de archivos.

Ta dentro de la especificacin concreta del algoritmo, luego del procesamiento
inicial, la entrada se procesa en bloques de 512 bits, divididos en 16 sub-bloques
de 32 bits. La salida del algoritmo ser una serie de 4 bloques de 32 bits, que
concatenados representarn el resumen de mensaje de 128 bits.

El paso siguiente es la inicializacin de cuatro variables de encadenamiento de 32
bits con valores prefijados:
A= 0x01234567
B= 0x89abcdfe
C= 0xfedcba98
D= 0x7654321

Por cada bloque de 512 bits del mensaje, se producir una iteracin del ciclo
principal del algoritmo. Dentro del cual las cuatro variables son copiadas en otras
cuatro variables temporales:
a= A
b= B
c= C
d= D

Dentro de esta iteracin principal, se realizan cuatro rondas. Cada una de las
cuales implementa una serie de operaciones, y la aplicacin de una funcin
distinta, 16 veces. Cada una de estas funciones corresponde a una no lineal, que
se parametriza sobre tres de estas ltimas cuatro variables (a, b, c, y d); cada vez
se adiciona a este resultado la cuarta variable, junto con un sub-bloque de la
entrada y una constante. Sobre este ltimo resultado se realiza una rotacin o
desplazamiento hacia la derecha en una cantidad variable de bits y se suma el
resultado a a, b, c o d. Finalmente el resultado reemplaza el contenido de alguna d
estas cuatro variables.

Cuatro son las funciones no lineales referidas; slo una de ellas es utilizada en
cada una de las cuatro rondas. El smbolo corresponde a la operacin , a
A, a y a .

, ,
, ,
H(X, Y, Z)= XYZ
I(X, Y, Z)= Y

Por ltimo despus de las cuatro rondas, de 16 pasos cada una, a, b, c y d son
sumadas a A, B, C y D, y el algoritmo continuara con el siguiente bloque de
entrada. Terminado el proceso del ltimo bloque el resultado final corresponde a la
concatenacin de A, B, C y D.





Algoritmos SHA
El Instituto Nacional de Estndares y Tecnologa (NIST), en conjunto con la
Agencia de Seguridad Nacional (NSA) disearon el algoritmo SHA, nombrado a
partir de las siglas del ingls Secure Hash Algorithm o Algoritmo de Hash Seguro.

Sin embargo, hoy da, no oficialmente se le llama SHA-0 para evitar confusiones
con sus sucesores. Dos aos ms tarde el primer sucesor de SHA fue publicado
con el nombre de SHA-1.
Existen cuatro variantes ms que se han publicado desde entonces cuyas
diferencias se basan en un diseo algo modificado y rangos de salida
incrementados: SHA-224, SHA-256, SHA-384, y SHA-512 (todos ellos son
referidos como SHA-2).

En 1998, un ataque a SHA-0 fue encontrado pero no fue reconocido para SHA-1,
se desconoce si fue la NSA quien lo descubri pero aument la seguridad
del SHA-1.SHA-1 ha sido examinado muy de cerca por la comunidad
criptogrfica pblica, y no se ha encontrado ningn ataque efectivo. No
obstante, en el ao 2004, un nmero de ataques significativos fueron divulgados
sobre funciones criptogrficas de hash con una estructura similar a SHA-1; esto ha
planteado dudas sobre la seguridad a largo plazo de SHA-1.


SHA-0 y SHA-1 producen una salida resumen de 160 bits de un mensaje que
puede tener un tamao mximo de 2<sup>64</sup> bits, y se basa en principios
similares a los usados por el profesor Ronald L. Rivest del MIT en el diseo de
los algoritmos de resumen del mensaje MD4 y MD5.

El algoritmo SHA es un sistema de funciones hash criptogrficas diseado para
ser utilizado en otro estndar, llamado DSS que implementa el algoritmo DSA de
firma digital. Este algoritmo se usa para calcular una representacin de un
mensaje o archivo de datos. Para un mensaje de una longitud mxima de 264 bits
como entrada, SHA-1 produce como salida una cadena de 160 bits llamada
"Mensaje Resumen". El mensaje resumen puede ser introducido a un algoritmo de
firma digital (o DSA por sus siglas en ingles), el cual genera o verifica la firma del
mensaje. Firmar el mensaje resumen en lugar del mensaje original provee
adems, eficiencia en el proceso, debido a que el mensaje resumen es,
usualmente, mucho menor en tamao que el original. El mismo algoritmo Hash
con el que se firmo el mensaje, debe ser utilizado por el receptor para verificar la
firma digital. El SHA-1 es llamado seguro debido a que, no es factible
computacionalmente, encontrar un mensaje que corresponda a un mensaje
resumen dado, o encontrar dos diferentes mensajes que produzcan el mismo
mensaje resumen.

El algoritmo, de mayor medida SHA-1, se implementa actualmente en diversas
aplicaciones criptogrficas, como con MD5, quiz las ms populares sean las del
registro de hashes de contraseas y la generacin de checksums o
comprobaciones de integridad de archivos (adems, por su puesto del objetivo
para el que fue creado: su utilizacin junto al algoritmo DSA para la firma digital).
Con respecto a la especificacin del algoritmo, este es muy similar a MD5, pero en
lugar de cuatro variables de 32 bits .Con valores prefijados, SAH utiliza 5 que se
inicializan de la siguiente manera A=0X67452301 B=0XEFCDAB89
C=0X98BABCFE D=0X10325476 E=0XC3D2E1F0
Tambien como el algoritmo MD5 el proceso principal consta de un ciclo dentro del
cual, en cada iteracin se procesa 512 bits del mensaje o de informacin de
entrada. Una diferencia para notar es que cada iteracin aplica una funcin no
lineal como MD5, pero 20 veces en lugar de 16. Las adiciones y el corrimiento o el
desplazamiento son similares a los de MD5.
Las funciones no lineales ya usadas en SAH aplican ahora sobre 5 variables
temporales que sern los parmetros A,B,C,D,E. el smbolo corresponde a la
operacin , a A el a , y a
F
t
(X,Y,Z)=(X^Y) (( X)^Z), para t=0 to 19
F
t
(X,Y,Z)=XYZ, para t=20 to 39
F
t
(X,Y,Z)=(X^Y) (X^Z) (Y^Z) para t=40 to 59
ft(X,Y,Z)=XYZ, para t=60 to 79
El numero t representa el numero de operacin que estar entre 0 y 79
recordando que se trata de 4 rondas, de 20 operaciones que involucra a una de
estas funciones, en cada uno de los pasos u operaciones. El resultado final estar
compuesto por la concatenacin de A, B, C, D, y E




Cdigos de autenticacin de mensaje (MAC) y algoritmo HMAC

Das könnte Ihnen auch gefallen