HMAC hash-based message athentication code

Slides:



Advertisements
Presentaciones similares
Equipo #3 Unidad III: ALU Efraín Corral Eduardo Castillo Elías Alarcón
Advertisements

Control del Enlace de Datos
Que son? Son numeros que deben de cumplir los requisitos de espacio equiprobable, es decir, que todo elemento tenga la misma probabilidad de ser elegido.
ESTRUCTURA DE DECISION LOGICA
Estructuras de Repetición Algoritmos
CIFRADO DE FLUJO.
Trabajo de redes Inma Gómez Durán
DIAGRAMAS DE FLUJO Y PSEUDOCÓDIGO
Códigos Básicos de Detección y Corrección de Errores
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
Introducción al lenguaje C++
Unidad aritmético-lógica
Ingeniero Anyelo Quintero
Definición Los Algoritmos Genéticos son métodos adaptativos que pueden usarse para resolver problemas de búsqueda y optimización. los Algoritmos Genéticos.
POO Java Módulo 3 Elementos de programas Identificadores
Arboles Binarios de expresiones
Técnicas de Detección y Corrección de Errores
Programación de sistemas
Programación en Matlab
FUNCIONES HASH. ConfidencialidadAutenticación IntegridadNo repudio Logros de la Criptografía.
Tema 2: Los tipos de datos
Índice. Revisando conceptos acerca de la memoria.
Sistemas decimal, binario, octal y hexadecimal
UNITA - IBARRA TRIGGERS
Introducción a la Ingeniería en Sistemas
Codificador de convolución
ESTRUCTURA DE DECISION LOGICA
Propiedades de los determinantes.
Organización del Computador 1 Sistemas de Representación.
Control de errores visual basic
Ciclos (Loops, Repeticiones) Permiten ejecutar una secuencia de sentencias mas de una vez. Hay 2 tipos de loops:  WHILE repite la acción un número indefinido.
Resumen Fundamentos de Programación/ Programación I
Teoría – Alejandro Gonzalez
SEGURIDAD DE REDES CARRERA DE INGENIERÍA DE SISTEMAS Ing. Moisés Toapanta, MSc. Guayaquil, junio del 2014.
VBA – Elementos del Lenguaje
Aritmética PARA COMPUTADORAS
Unidad aritmético-lógica
INTRODUCCIÓN A LA INFORMÁTICA
Tema 2: Base de datos relacionales
Unidad 1: FUNDAMENTOS DE COMPUTACIÓN Y PSEUDOLENGUAJE
Elementos básicos del lenguaje
IPSEC By Jesús Patiño. IPsec es una extensión al protocolo IP que proporciona seguridad a IP. La arquitectura IPsec se describe en el RFC2401 IPsec emplea.
CRIPTOGRAFÍA BÁSICA Juan Jesús Bru Castro.
¿Qué es esto? / /
Arboles B (búsqueda externa)
POR: MÓNICA MARÍA RÚA BLANDÓN
Ejemplos del Diseño de Algoritmos Paralelos (Transparencias de McGraw-Hill Modificadas)
COMPUTO I - UASF SISTEMA BINARIOS.
Programación de Operaciones Básicas
Tema: Propiedades de los determinantes
Printing Tasks Karolina Rivera Jean Robert Charles Jacinthe.
Protocolo ssl. Introducción El protocolo SSL (Secure Sockets Layer) fue diseñado con el objeto de proveer privacidad y confiabilidad a la comunicación.
Fundamentos de Programación
Introducción al lenguaje PROCESSING para ARDUINO
MIA - Grupo 5 Unidad 2.
El protocolo SSL (Secure Sockets Layer) fue diseñado con el objeto de proveer privacidad y confiabilidad a la comunicación entre dos aplicaciones. Este.
PROGRAMACIÓN Grupo de Modelamiento de Sistemas
María Guadalupe Moreno Rodríguez protocolo SSL María yessenia Ríos Duran 305.
Lección 6 Cadena de Caracteres (Strings) y Manejo de archivos (File I/O)
Capítulo 8 Seguridad en Redes:
Arquitecturas de Computadoras Capitulo 2 Aritmética de enteros.
ELEMENTOS BÁSICOS DE PROGRAMACIÓN EN C# Mtro. José David Uc Salas
Circuitos Combinacionales I
Electiva de Redes II – 2012-I Departamento de Ingeniería de Sistemas 1 Seguridad en Redes, Enfoque hacia Criptografía Miguel Jimeno, Ph.D. Departamento.
Arquitectura de Computadoras (Taller) Semestre II de 2008.
Propiedades de determinantes: Si todos los elementos de una fila (renglón) o columna de A son nulos, entonces |A| = 0.
1 Autómatas Autómata S5-95U. 2 Estructura externa Compacta: en un solo bloque están todos lo elementos. Modular: - Estructura americana: separa las E/S.
Indice Los mediosFunciones de un director de mediosLos rating de sintoniaAnaliss estadistico.
Criptografía Simétrica Moderna
AGENDA DE LA SESION Exposición de Equipo Tema: Cifradores por Sustitución Monográmica Polialfabeto - Cifrado de Vernam Resolución de Ejercicios CRIPTOGRAFIA.
Transcripción de la presentación:

HMAC hash-based message athentication code

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

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.

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

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

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

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.

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.

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: 01 23 45 67 palabra B: 89 ab cd ef palabra C: fe dc ba 98 palabra D: 76 54 32 10

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

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… 1011101 …..

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

HMAC vacios HMAC_MD5("", "") = 0x74e6f7298a9c2d168935f58c001bad88 HMAC_SHA1("", "") = 0xfbdb1d1b18aa6c08324b7d64b71fb76370690e1d HMAC_SHA256("", "") = 0xb613679a0814d9ec772f95d778c35fc5ff1697c493715653c6c712144292c5ad

Ejemplos… HMAC_MD5("key", "The quick brown fox jumps over the lazy dog") = 0x80070713463e7749b90c2dc24911e275 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") = 0xf7bc83f430538424b13298e6aa6fb143ef4d59a14946175997479dbc2d1a3cd8

Referencias https://www.ietf.org/rfc/rfc2104.txt http://en.wikipedia.org/wiki/Hash-based_message_authentication_code http://en.wikipedia.org/wiki/MD5 https://docs.python.org/2/library/hmac.html