criptografía hash para firma electrónica · pdf fileun nuevo protocolo de firma...

Post on 11-Feb-2018

218 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Criptografía Hash para Firma Electrónica

Dr. Luis A. Lizama Pérez

• Firma Electrónica

• Función Hash

• Firma de Una Sola Vez (OTS)

• Cadena Hash + S/Key

• HMAC

• Protocolo básico de Firma Electrónica Hash

• Conclusiones

Una firma digital es un método que permite garantizar la integridad de un

documento y se puede relacionar de manera única al firmante con su firma,

ya que realiza ésta con la llave privada y únicamente el firmante posee esa

llave, esto se traduce en que se verifica la autenticidad del firmante.

No es una firma digital:

– Una firma digitalizada (una firma manuscrita escaneada)

– Una contraseña o password

– Un sistema biométrico

– Un sistema de autenticación: este requisito solo no alcanza

– Una firma electrónica

– Un documento encriptado (solo se garantiza la confidencialidad)

Firma Electrónica

Un nuevo protocolo de firma electrónica utiliza funciones Hash que

brindan propiedades como no repudio, integridad y autenticación.

Las funciones hash son de gran utilidad a la hora de realizar una firma

digital, ya que gracias a ella se disminuyen y descartan cálculos que

retardarían la operación.

.

Firma Electrónica

Aritmética Modular

RSA (Rivest-Shamir-Adleman)

• Produce una firma digital mediante un

par de números primos grandes

ECC (Criptografía de Curva Elíptica)

• Problemas de curva elíptica de

logaritmos discretos

ElGamal

• Deriva de Diffie-Hellman y se basa en el

problema de Logaritmo Discreto

Algoritmos de Firma Digital con Aritmética Modular y Criptografía HASH

Firma Electrónica

Firma Electrónica

Las computadoras cuánticas son cripto analizadores de los algoritmos de aritmética modular

Criptografía HASH

OTP (OneTime Password)

• Contraseña instantánea. Se utilizan una

contraseña distinta cada vez que se

autentica

OTS (One Time Signature)

• Utiliza funciones de un solo sentido

(hash)

TOTP (Time-based One-Time Password)

• Combina una clave secreta con la fecha

y hora

OTS con Árboles de Merkle

• Permite firmar un largo número de

mensajes utilizando una única firma

convencional

Firma Electrónica

AlgoritmoTiempo de

ejecución (mseg)

192-AES encriptado/decriptado 0.008

192-AES CMAC 0.008

SHA-256 0.007

RSA 2048 firma 312.5

RSA 2048 verificación 9.1

DSA firma 91.7

DSA verificación 111.1

Estadísticas de tiempo de ejecución de algoritmos de seguridad utilizando un

microprocesador de 600 MHz

Tamaño de mensaje 42 bytes.

Firma Electrónica (comparación)

Es un proceso que permite a cada parte estar segura de que los mensajes

proceden de su interlocutor.

Token RSA

Autenticación

Una función hash puede definirse como

una función que recibe a su entrada un

conjunto de bits de longitud arbitraria, al

cual se le conoce como mensaje, y es capaz

de generar su representación en un

conjunto de bits de longitud preestablecida.

A esta representación se le llama código

hash o resumen del mensaje y se expresa

como f(x).

Mensaje o bloc de datos x (tamaño variable)

Valor Hash h

(tamaño fijo)

Función Hash, h=f(x)

Función Hash

Propiedades Descripción

Tamaño del mensaje de entrada

𝒇 puede ser aplicada a un bloque de datos

de cualquier tamaño.

Tamaño fijo de salida𝒇 produce una salida de longitud fija.

Eficiencia

Calcular 𝒇(𝒙) es relativamente fácil para

cualquier 𝒙 dado.

Propiedad de un solo sentido

Para cualquier valor hash dado 𝒉, es

computacionalmente imposible encontrar 𝒙tal que 𝒇 𝒙 = 𝒉

Resistencia a colisión simple

Para cualquier bloque dado 𝒙, es

computacionalmente imposible encontrar

𝒚 ≠ 𝒙 con 𝒇 𝒚 = 𝒇(𝒙)

Resistencia a colisión fuerte

Es computacionalmente imposible

encontrar cualquier par (𝒙, 𝒚) de tal

manera que 𝒇 𝒙 = 𝒇(𝒚)

Función Hash

MENSAJE HOLA

Bytes 48:4f:4c:41

MD5 C6f00988430dbc8e83a7bc7ab5256346

SHA-1 261c5ad45770cc14875c8f46eaa3eca42568104a

SHA-256 73c3de4175449987ef6047f6e0bea91c1036a8599b43113b3f990104ab294a47

SHA-384 11531a8812fbd738d15183de470db493260b3370beaeffcfaf6d2702a62c09375c7

e5afbd64daf3e7cc233f641f7b34f

SHA-512 5cf58927b41378bcc076b26b3b850a66ebcec3ace74f6b949da5405721dd39488a

238f5afff793b5125038bb1dd7184c1c11c47f4844d1ccbb310c9c75893b65

Algoritmos Hash

𝑥𝑖 =ℎ(𝑛11) ℎ(𝑛12) ℎ 𝑛13 …

ℎ(𝑛21) ℎ(𝑛22) ℎ 𝑛23 …

𝑦𝑖 =𝑛11 𝑛12 𝑛13 …𝑛21 𝑛22 𝑛23…

𝑛𝑖𝑗 : número aleatorio

𝑥𝑖 : llave pública

𝑦𝑖 : llave privada

𝑚 : mensaje (cadena de caracteres)

A B

𝑚

OneTime Signature

ℎ(𝑚)= 0 1 1…

A B

𝑚,𝑛11 − − …− 𝑛22 𝑛23…

A B

𝑥𝑖

𝑛11 − − …− 𝑛22 𝑛23…

→ℎ(𝑛11) − − …

− ℎ(𝑛22) ℎ 𝑛23 …

h(𝑚)= 0 1 1… →𝑛11 − − …− 𝑛22 𝑛23…

ℎ(𝑚)= 0 1 1…

𝑥𝑖 =ℎ(𝑛11) ℎ(𝑛12) ℎ 𝑛13 …

ℎ(𝑛21) ℎ(𝑛22) ℎ 𝑛23 …

OneTime Signature

1,1

2,1 2,2

3,1

3,2 3,33,4

ℎ(𝑥1) ℎ(𝑥2) ℎ(𝑥3) ℎ(𝑥4)

𝑦1 𝑦2 𝑦3 𝑦4

𝑥𝑖 =ℎ(𝑛11) ℎ(𝑛12) ℎ 𝑛13 …

ℎ(𝑛21) ℎ(𝑛22) ℎ 𝑛23 …

𝑦𝑖 =𝑛11 𝑛12 𝑛13…𝑛21 𝑛22 𝑛23…

A B

𝑠𝑖𝑔, 𝑥𝑖 , ℎ𝑖

𝑠𝑖𝑔 = 𝑚,𝑛11 − − …− 𝑛22 𝑛23…

𝑥𝑖 : llaves públicas

𝑦𝑖 : llaves privadas

𝑚 : mensaje

Llave Pública de Alice

OneTime Signature

Una cadena HASH es una secuencia de valores derivados

consecutivamente de una función hash y un valor inicial.

Debido a las propiedades de la función hash, es relativamente fácil

calcular sucesivamente valores encadenados (mineros de Bitcoin).

Cadena Hash

Algoritmo MD5

Cadena Hash

• Hacer que los passwords que viajan a través de la red en

texto claro sean inservibles para cualquier intruso.

OTP passwords de “una sola vez”.

S/Key Passwords de Una Sola Vez

Servidor Clientesemilla

texto claro

semilla ‘+’ password

MD4

8 bytes 8 bytes

8 bytes

8 bytes

password s

X-OR

La secuencia de N passwords desechables se genera de la siguiente manera:

p0 = f N(s)

p1 = f N - 1(s)

pi = f N - i (s)

S/Key Passwords de Una Sola Vez

Ejemplo, N = 5

p0 = f 5 (s) = f (p1)

p1 = f 4 (s) = f (p2)

p2 = f 3 (s) = f (p3)

p3 = f 2 (s) = f (p4)

p4 = f 1(s) = p4

pi = f (pi+1)

S/Key Passwords de Una Sola Vez

HMACmensaje

Clave

HASH

HMAC

HMAC“Hola Mundo”

c6f00988430dbc8e83a7bc7ab5256346

637bdadfd979dcc17a0b339f3302e738cbeaf578

HMAC

HMAC𝑚

𝑓𝑁𝐴−1(𝑋𝐴)

< 𝑚 >𝑓𝑁𝐴−1

Protocolo básico de Firma Electrónica

26

𝒇 : función Hash

𝑿: Semilla

𝑵: Longitud de la cadena Hash

𝒇𝑵(𝑿) : llave pública

𝒇𝑵−𝒋(𝑿) : llave privada

𝟏 ≤ 𝒋 ≤ 𝑵 − 𝟏

𝑿 𝒇𝟏(𝑿) 𝒇𝟐(𝑿) … 𝒇𝑵−𝒋(𝑿) 𝒇𝑵(𝑿)

Protocolo básico de Firma Electrónica

𝑋𝐴 , 𝑋𝐵 Números aleatorios (semillas)

𝑁𝐴 , 𝑁𝐵 Número de veces que se aplica la función hash

𝑓𝑁𝐴(𝑋𝐴) Llave pública de A

𝑓𝑁𝐴−1 𝑋𝐴 , 𝑓𝑁𝐴−2 𝑋𝐴 , … Llaves privadas de A

𝑓𝑁𝐵(𝑋𝐵) Llave pública de B

𝑓𝑁𝐵−1 𝑋𝐵 , 𝑓𝑁𝐵−2 𝑋𝐵 , … Llaves privadas de B

𝑓 función hash

𝑚 mensaje

< 𝑚 >𝑓𝑁𝐴−1 función HMAC

Protocolo básico de Firma Electrónica

Protocolo básico de Firma Electrónica

Protocolo básico de Firma Electrónica

Protocolo básico de Firma Electrónica

Protocolo básico de Firma Electrónica

Verificar archivos recibidos

Se busca el archivo y se verifica la firma.

El archivo recibido está firmado

La tecnología Hash es una herramienta criptográfica que puede ser usada

para implementar servicios de Firma Electrónica en dispositivos móviles.

El sistema no es dependiente de una función Hash pero hasta ahora es

computacionalmente difícil romper las funciones Hash.

Conclusiones

Gracias!!!

top related