Академический Документы
Профессиональный Документы
Культура Документы
FUNCIONES HASH
Índices y Tablas Hash
Una función hash:
– Comprime un vector de longitud arbitraria en un
vector de longitud fija. Clave 1
– Ubica uniformemente en la tabla los índices de las Clave 2
claves (barajar).
Clave 3
• Compara la identidad de dos secuencias sin tener Clave 4
que comparar elemento a elemento. Clave 5 H
• Una tabla hash es una estructura de datos que Clave 6
utiliza una función hash para eficientemente ....
relacionar ciertos identificadores o claves a
valores asociados con ellos.
• Colisiones = pares de entradas diferentes que
dan el mismo valor hash. H
• En una tabla hash el coste medio (número de
comparaciones) para cada búsqueda es =
independiente del número de elementos =
almacenados en la tabla.
– En muchos casos, las tablas hash resultan ser mas H
eficientes que los árboles de búsqueda o cualquier
otra solución de búsqueda/consulta.
Funciones Hash Criptográficas
Son funciones fáciles de calcular en un sentido,
e imposibles de calcular en el sentido contrario.
1 - [1 - 1/m]k
Búsqueda de Colisiones
Probabilidad
0,60
0, entonces....
0,40
P (n, k ) 1 e 1 / n
e e
2 / n k 1 / n
0,20
1 / n ( 2 / n ) )) k 1) / n )
P (n, k ) 1 e
0,00
k ( k 1) / 2 n
P (n.k ) 1 e 1 5 10 15 20 25 30 35 40 45 50 55 60 65 70
Personas
Mensaje Padding
·····
Bloque de Variable de
n m-bits
Mensaje Encadenamiento
m - bits Resumen
Reglas de Extensión de Mensajes
Mensaje
1. Completar el bloque con ceros
- Es ambiguo ya que no se sabe cuantos
ceros provienen del mensaje y cuantos
Mensaje Extendido
de extensión.
- Es aceptable si se conoce la longitud 0000............0
original del mensaje.
F
No Dispares. No Dispares.
Soy Amigo!!! Soy Amigo!!!
=
El Algoritmo MD4
• MD4 fue diseñada por Ron Rivest en 1990 (RFC1186 y RFC1320). MD4 ("") =
• Produce un resultado hash de 128 bits. 31D6CFE0D16AE931
• Es una función rápida en software ya que se basa en B73C59D7E0C089C0
operaciones sencillas de manipulación de bits sobre operandos
de 32 bits.
• Esta optimizada para las arquitecturas de los procesadores de
la década de los 90.
• En 1991 y sin dar razones para ello, Ron Rivest mejoró MD4
aumentando su resistencia y lo llamó MD5. MD4 MD5
Ataques:
• Bert den Boer y Antoon Bosselaers criptoanalizaron con éxito las dos últimas etapas
de las tres que componen el algoritmo (Crypto91 pp 194-203).
• Ralph Merkle atacó con éxito las dos primeras etapas.
• Eli Biham aplicó el Criptoanálisis Diferencial a dos tercios del MD4 (1992).
• El primer ataque con éxito a la versión completa lo hace Hans Dobbertin en 1996.
• En agosto de 2004, Wang et alt. encuentra un modo de ataque muy eficiente, que
luego generalizan para otros diseños relacionados (MD5/SHA/RIPEMD).
• Este resultado fue mejorado mas tarde por Sasaki et al. y, actualmente, generar una
colisión con MD4 es tan sencillo como verificarla (microsegundos).
La función de compresión en MD4
• Cada etapa consta de tres etapas 01234567 89ABCDEF FEDCBA98 76543210
IV
intermedias distintas: F, G y H.
• Cada una de ellas es una combinación no
lineal de las variables de encadenamiento,
el bloque de texto y ciertas constantes
públicas. Función F
16 palabras de 32 bits
• El resultado de las tres etapas se suma al
valor de entrada de las variables de
encadenamiento; este es el origen de su
Función G
“sentido único”.
x
m Función H
x + fm(x) = k
F f(x) = k – x
+ + + +
+ x = fm-1(k - x)
k
Funciones F, G y H en MD4
¿Son
Reversibles?
Mi,k A B C D
+ F
16 veces
<<
F
G + 5A827999
16 palabras de 32 bits
Función G
• Se utilizan 16 constantes públicas
distintas en todas las etapas internas.
Función H
• El resultado de las tres etapas se suma al
valor de entrada de las variables de
encadenamiento y este es el origen de su Función I
“sentido único”.
+ + + +
MD5 ("") =
D41D8CD98F00B204
E9800998ECF8427E
Funciones internas del MD5
¿Son
Reversibles?
S = [S1,S2,S3,S4]
Mi,k A B C D
Si
+
16 veces
<<
+ TFk + TGk
F G
+
+ TIk MD5 utiliza, en lo esencial, la misma
I estructura y funciones que MD4, pero
+ THk incluye una adición mas para aumentar
H la difusión en cada etapa.
SHA1 ("") =
DA39A3EE5E6B4B0D3255
BFEF95601890AFD80709 La Función Hash SHA
• Diseñada por el NIST con la participación de la
National Security Agency (NSA).
• Se considera parte del Digital Signature Algorithm
Función F1
(DSA) y es necesaria para la seguridad de éste.
80 palabras de 32 bits
• Es semejante al MD4 y MD5 pero produce 160 bits
de salida en lugar de 128. Función F2
• Sigue el mismo procedimiento de extensión de
mensajes que en el MD5. Función F3
Wi A B C D E
Ki
<< 5 +
+
20 veces +
F2
F3 F1 F4 I = 60-79
<< 30
I = 40-59
I = 0-19 I = 20-39
Paradigma Merkle-Damgård
• Consiste en la iteración de una función de compresión m1
cuya entrada es mas grande que su salida. F
• El resumen de salida y la “memoria” de esta
construcción, depende del tamaño de la variable de
encadenamiento. mn
• Esta construcción no aporta ninguna característica de F
seguridad a la función hash.
• El paradigma Merkle-Damgård, “despilfarra” por
diseño.
– Después de haber trabajado en cada etapa el hash de cada
bloque de mensaje, por diseño, se desprende de todo el H(m)
estado interno desarrollado y se queda sólo con el resumen
de salida como variable de encadenamiento para la próxima
iteración.
Estado actual de las Funciones Hash
Absorción
función f.
2. Estrujado:
a) los bloques de salida se extraen de parte del f pi
estado interno, que
b) luego es transformado con la aplicación de la
Estrujado
función f. f