La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

HMAC hash-based message athentication code

Presentaciones similares


Presentación del tema: "HMAC hash-based message athentication code"— Transcripción de la presentación:

1 HMAC hash-based message athentication code

2 Es un conjunto especifico de información y campos para calcular un código de autenticacion de mensajes (MAC) Involucra una funcion hash y una llave de cifrado MD5 ,SHA-1 y RIPEMD-128/160 son ejemplos de dichas funciones hash y el resultado de usar una o la otra es HMAC-MD5 o HMAC-SHA1  o HMAC-RIPEMD

3 La seguridad de HMAC está relacionada con la seguridad de la función hash que se use, el tamaño de la salidad de dicha función hash y del tamaño y la robustez de la llave usada.

4 HMAC matemáticamente…
Donde H: funcion hash K: llave m: es el mensaje que será autenticado Opad: encabezado exterior Ipad: encabezado interno

5 Algoritmo function hmac (key, message) if (length(key) > blocksize) then key = hash(key) // keys longer than blocksize are shortened end if if (length(key) < blocksize) then key = key ∥ [0x00 * (blocksize - length(key))] // keys shorter than blocksize are zero-padded (where ∥ is concatenation) o_key_pad = [0x5c * blocksize] ⊕ key // Where blocksize is that of the underlying hash function i_key_pad = [0x36 * blocksize] ⊕ key // Where ⊕ is exclusive or (XOR) return hash(o_key_pad ∥ hash(i_key_pad ∥ message)) end function

6 Llave Las llaves usadas necesitan ser totalmente aleatorias, o como mínimo pseudoaleatorias, también deben actualizarse constantemente Pueden ser de longitud N

7 Hash MD5 Message-Digest Algorithm 5 Algoritmo
Adicion de bits: Se agrega un bit 1 y despues 0s hasta completar un número congruente con 448,modulo 512, es decir, si se resta 448 a dicho número, el módulo 512 de dicha resta será cero.

8 Longitud del mensaje Un entero de 64 bits que represente la longitud 'b' del mensaje (longitud antes de añadir los bits) se concatena al resultado del paso anterior. En el supuesto no deseado de que 'b' sea mayor que 2^64, entonces sólo los 64 bits de menor peso de 'b' se usarán.

9 Inicializar el buffer MD
Se usan 4 palabras (A,B,C y D) de 32 bits y se inicializan con valores hexadecimales de la siguiente manera: palabra A: palabra B: 89 ab cd ef palabra C: fe dc ba 98 palabra D:

10 Procesado del mensaje en bloques de 16 palabras
4 funciones con 3 palabras de entradas y una de salida

11 Salida Se leen todos los bits de A,B,C y D en ese orden. Empezando por el menos significativo de A hasta llegar al más significativo de D A B 100000… …..

12 Implementaciones de HMAC
Python librería Lib/hmac.py hmac.new(key[, msg[, digestmod]]) HMAC.update(msg) HMAC.digest() HMAC.copy()

13 HMAC vacios HMAC_MD5("", "") = 0x74e6f7298a9c2d168935f58c001bad88
HMAC_SHA1("", "") = 0xfbdb1d1b18aa6c08324b7d64b71fb e1d HMAC_SHA256("", "") = 0xb613679a0814d9ec772f95d778c35fc5ff1697c c6c c5ad

14 Ejemplos… HMAC_MD5("key", "The quick brown fox jumps over the lazy dog") = 0x e7749b90c2dc24911e275 HMAC_SHA1("key", "The quick brown fox jumps over the lazy dog") = 0xde7c9b85b8b78aa6bc8a7a36f70a90701c9db4d9 HMAC_SHA256("key", "The quick brown fox jumps over the lazy dog") = 0xf7bc83f b13298e6aa6fb143ef4d59a dbc2d1a3cd8

15 Referencias https://www.ietf.org/rfc/rfc2104.txt


Descargar ppt "HMAC hash-based message athentication code"

Presentaciones similares


Anuncios Google