Está en la página 1de 31

Hacia un Nuevo Paradigma de Firma

Electrónica

Dr. Luis Adrián Lizama Pérez


@luislizama
Contenido

• Firma Electrónica
• Función Hash
• Firma de Una Sola Vez (OTS)
• Cadena Hash + S/Key
• HMAC
• Firma Electrónica Hash
• Conclusiones

2
Firma Electrónica

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)

3
Firma Electrónica

Un nuevo protocolo de firma electrónica utilizando


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

4
Firma Electrónica

Aritmética Modular
RSA (Rivest-Shamir-Adleman) ECC (Criptografía de Curva
• Produce una firma digital Elíptica)
mediante un par de números • Problemas de curva elíptica de
primos grandes logaritmos discretos

ElGamal
• Deriva de Diffie-Hellman y se
basa en el problema de
Logaritmo Discreto

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

5
Firma Electrónica

Criptografía HASH
OTP (One Time Password) OTS (One Time Signature)
• Contraseña instantánea. Se • Utiliza funciones de un solo
utilizan una contraseña distinta sentido (hash)
cada vez que se autentica

TOTP (Time-based One-Time OTS con Árboles de Merkle


Password) • Permite firmar un largo número
• Combina una clave secreta con de mensajes utilizando una
la fecha y hora única firma convencional [18].

6
Firma Electrónica (comparación)

Tamaño de mensaje 42 bytes.

Tiempo de
Algoritmo
ejecución
192-AES encriptado/ desencriptado 0.008 mseg
192-AES CMAC 0.008 mseg
SHA-256 0.007 mseg
RSA 2048 firma 312.5 mseg
RSA 2048 verificación 9.1 mseg
DSA firma 91.7 mseg
DSA verificación 111.1 mseg
Estadísticas de tiempo de ejecución de algoritmos de
seguridad utilizando un microprocesador de 600 MHz

7
Autenticación

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


mensajes proceden de su interlocutor [3].

Figura 2. Token RSA

8
Función Hash

Función Hash, h=f(x)


Una función hash puede definirse
como una función que recibe a su
entrada un conjunto de bits de Mensaje o bloc de datos x (tamaño variable)
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). Valor Hash h
(tamaño fijo)

9
Función Hash
Propiedades
Propiedades Descripción
Descripción
puede ser aplicada a un bloque de
Tamaño del mensaje de
Tamaño datos de cualquier tamaño.
entrada del mensaje de
entrada
produce una salida de longitud
Tamaño fijo de salida fija.
Tamaño fijo de salida
Calcular es relativamente fácil
Eficiencia para cualquier dado.

Para cualquier valor hash dado , es


computacionalmente imposible
Propiedad
Propiedad de
de un
un solo
solo sentido
sentido encontrar tal que

Para cualquier bloque dado , es


computacionalmente imposible
Resistencia
Resistencia al
al colisión
colisión simple
simple encontrar con )

Es computacionalmente imposible
Resistencia al colisión fuerte encontrar cualquier par de tal
Resistencia al colisión fuerte
manera que

10
Algoritmos Hash

MENSAJE HOLA
Bytes 48:4f:4c:41
MD5 C6f00988430dbc8e83a7bc7ab5256346
SHA-1 261c5ad45770cc14875c8f46eaa3eca42568104a
SHA-256 73c3de4175449987ef6047f6e0bea91c1036a8599b43113b3f9
90104ab294a47
SHA-384 11531a8812fbd738d15183de470db493260b3370beaeffcfaf6d
2702a62c09375c7e5afbd64daf3e7cc233f641f7b34f
SHA-512 5cf58927b41378bcc076b26b3b850a66ebcec3ace74f6b949da5
405721dd39488a238f5afff793b5125038bb1dd7184c1c11c47f
4844d1ccbb310c9c75893b65

11
One Time Signature

 
A B
𝑚
 
𝑛11 𝑛12 𝑛13 …
𝑦 𝑖=
( 𝑛21 𝑛22 𝑛23 … )
h(𝑛11 )  h (𝑛12 ) h ( 𝑛13 ) …
𝑥𝑖 =
( h (𝑛21 ) h (𝑛22 ) h ( 𝑛23 ) … )
 : número aleatorio
: llave pública
: llave privada
: mensaje (cadena de caracteres)
ℎ()=
 
One Time Signature

 
A B
h(𝑛11 ) h (𝑛12 ) h ( 𝑛13 ) …
𝑥  𝑖 (
𝑥𝑖 =
)
h (𝑛21) h (𝑛22 ) h ( 𝑛23 ) …
 
ℎ()=

A B
 

 
One Time Signature
 : llaves públicas
: llaves privadas
: mensaje
 
Llave Pública de Alice
h(𝑛11 ) h (𝑛12 ) h ( 𝑛13 ) …
1,
1
𝑥𝑖 =
( h (𝑛21 ) h (𝑛22 )
 
)
h ( 𝑛23 ) …

𝑛11 𝑛12 𝑛13 …


𝑦 𝑖=
( 𝑛21 𝑛22 𝑛23 … )
2, 2,
1 2 𝑠𝑖𝑔 =𝑚 ,  
( 𝑛−
11 −   −…
)
𝑛22 𝑛23 …

3, 3,
3, 2 3 3,
4 A B
1
h( 𝑥 1) h( 𝑥 2) h( 𝑥 3) h( 𝑥 4 ) , 
       
𝑦1 𝑦2 𝑦3 𝑦4
       
Cadena Hash

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).

15
Cadena Hash

600 GH/s

20-40 MH/s 330 MH/s


840 MH/s 3 GH/s
Cadena Hash

• Calcular el valor hash es computacionalmente trivial, pero el sistema de


Bitcoin requiere que cada nuevo valor hash comience con un número
específico de ceros:

The root of all 0000 0000 0000...


evil???
Cadena Hash

Valor
Nonce
Hash*

Nuevo
Nonce
Valor
Hash*

18
Cadena Hash

Algoritmo MD5

19
S/Key Sistema de passwords de “una sola vez”

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


en texto claro sean inservibles para cualquier intruso.

•Solución: utilizando passwords de “una sola vez” (OTP).


semilla
Servidor Cliente
texto claro

semilla ‘+’ password

MD4

8 bytes 8 bytes
8 bytes

X-OR

8 bytes

password s
S/Key Sistema de passwords de “una sola vez”

La secuencia de N passwords desechables es


generada de la siguiente manera:
p0 = f N(s)
p1 = f N - 1(s)

En general, pi = f N - i (s)
S/Key Sistema de 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)
HMAC

mensaje HMAC HASH

Clave

25
HMAC

637bdadfd979dcc17a0b339f3302e738cbea
f578
“Hola HMAC
Mundo”

c6f00988430dbc8e83a7bc7ab5256346

26
Protocolo básico de Firma Electrónica

  𝑚   ¿
HMAC 𝑚 >¿ 𝑓 𝑁 𝐴 − 1 ¿

𝑁 − 1
  𝑓 𝐴
( 𝑋 𝐴 )

27
Protocolo básico de Firma Electrónica
  y : Números aleatorios (semillas)
y : Número de veces que se aplica la función hash

: Llave pública de A
: Llaves privadas de A

: Llave pública de B
, …: Llaves privadas de B

: función hash
: mensaje
: función HMAC

28
Protocolo básico de Firma Electrónica

29
Protocolo básico de Firma Electrónica

30
Conclusiones

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


puede ser usadas para Firma Electrónica en dispositivos
móviles.

Hasta ahora es computacionalmente difícil romper las


funciones Hash.

31

También podría gustarte