Sunteți pe pagina 1din 36

CRIPTOGRAFA

HASHING
DESARROLLO
Mdulo III: gestin de claves, autenticacin y nmeros
seudoaleatorios
Gestin de claves simtricas y asimtricas. Tipos de claves.
Claves jerarquizadas. Generacin. Almacenamiento.
Distribucin. Mantenimiento. Gestin de Claves en Redes
de Computadoras. Autenticacin de Mensajes.
Identificacin dbil y fuerte de usuarios. Teora general
de hashing. Funciones hash y funciones MAC. Funcin
HMAC. Cifradores de flujo y clave de Vernam. Generacin
de nmeros seudoaleatorios. Generadores LFSR y ataques
criptoanalticos: algoritmo Berlekamp-Massey. Protocolos
especiales.
2 cripto I-scolnik-hecht
FUNCIONES HASHING
Las funciones hashing (o hash) juegan un rol
fundamental en la Criptografa pues sirven
esencialmente para verificar la integridad de
los mensajes. Ms precisamente: una
funcin de hashing h(m) transforma cadenas
de bits (m) de longitudes arbitrarias pero
finitas, en otras cadenas de longitud fija de
n-bits. Generalmente m>>n pero esto no es
imprescindible.
3 cripto I-scolnik-hecht
hash) del long la es (n
output. mismo el darn inputs 2 mente aproximada entonces
les, equiprobab sean outputs sus todos que de sentido el en aleatoria,
es si y longitud de cadenas las a dominio el os restringim Si
. colisiones denominan se Estas
). ( ) ( que tales con , elementos
existirn mente inevitable entonces Si hashing. de
funcin una : os Considerem mismo. del
ad cardinalid la a por s denotaremo conjunto; un Sea
n t
h n t
y h x h y x y x
R D
R D h
A A

>
=
>

FUNCIONES HASHING
4 cripto I-scolnik-hecht
iones. falsificac evitar para s condicione algunas satisfaga que
necesario es tanto lo Por mensaje. del hashing un es firma se que lo pues digitales,
firmas de algoritmos los con conjuncin en usan se hashing de funciones Las
etc. checksum, mensaje, de digesto
t, fingerprin tambin llama lo se eso por y mismo, del compacta
cin representa una como sirve mensaje un de hash un que es bsica idea La
). de ente (independi 2 es output mismo el den
que de ad probabilid la azar, al inputs dos elegimos si que significa Esto
h
t
n
FUNCIONES HASHING
5 cripto I-scolnik-hecht
TAXONOMIA DE
FUNCIONES HASHING
funciones HASH
con clave secreta sin clave secreta
deteccin de
modificaciones
(MDCs o MICs)
otras
aplicaciones
otras
aplicaciones
autenticacin de
mensajes
(MACs)
OWHF CRHF
resistente a
preimagen
resistente a
2 preimagen
resistente a
colisiones
one way
weak collision resistance
strong collision resistance
manipulation detection code o msg integrity code
message authentication code
6 cripto I-scolnik-hecht
1. Control de integridad de mensajes
2. Autenticacin de mensajes
Esto ha sido reemplazado por la firma digital y hoy da entra en la
categora de firma electrnica por la posibilidad de repudio que
genera la existencia de una clave secreta compartida entre quien
genera ewl MAC y quien lo verifique.
3. Confirmacin de conocimiento (ACK)
4. Obtencin de claves aleatorias
5. Generacin de nmeros seudoaleatorios
6. Almacenamiento seguro de contraseas
7. Autenticacin mutua en protocolos de enlace
remoto
8. Autenticacin de sistemas
9. Otras
PRINCIPALES APLICACIONES DE LAS
FUNCIONES HASHING
7 cripto I-scolnik-hecht
Un Message Authentication Code (MAC) es una
familia de funciones h
k
personalizadas por medio
de una clave secreta k, con las siguientes
propiedades:
1. FACILIDAD DE COMPUTO: Para una dada funcin h
k
, una
clave k y una entrada x, la salida h
k
(x) es fcil de calcular
2. COMPRESION: h
k
mapea una entrada x de longitud arbitraria
en una salida h
k
(x) de longitud fija n-bits.
3. RESISTENCIA AL COMPUTO: Dados cero o mas pares
(TEXTO x
i
, MAC h
k
(x
i
)), es computacionalmente irrealizable
computar un nuevo par (x , h
k
(x)) para x x
i
Si no se cumple la tercera condicin, el MAC esta sujeto a
fraude. Esta condicin es llamada de KEY NON RECOVERY
y es condicin necesaria (pero no suficiente) para bloquear
fraudes.
MACs
8 cripto I-scolnik-hecht
UNA FUNCION HASH (h) POSEE COMO
MINIMO ESTAS DOS PROPIEDADES:
1. COMPRESION: h mapea una entrada x de tamao
arbitrario en una salida h(x) de logitud fija de n-bits
2. FACILIDAD DE COMPUTO: dado h y una entrada x, h(x)
es fcilmente computable
As expresada se ha definido una funcin hash sin clave.
Las que poseen clave (secreta) aceptan como segunda
entrada esa clave (k) de la cual depender unvocamente
la salida h
k
(x)
PROPIEDADES BASICAS HASHING
9 cripto I-scolnik-hecht
SIGUIENDO CON FUNCIONES HASH SIN CLAVE,
SEAN (x x) DOS ENTRADAS e (y y) SUS
RESPECTIVAS SALIDAS:
3. RESISTENCIA A LA PREIMAGEN (ONE WAY HASH
FUNCION): Para prcticamente cualquier entrada es
computacionalmente irrealizable encontrar un x
(desconocido) tal que h(x)=y (conocido)
4. RESISTENCIA A LA 2 PREIMAGEN (OWHF: WEAK ONE
WAY HASH FUNCTION): Dados x y su correspondiente
y=h(x), es computacionalmente irrealizable encontrar otro x
distinto a x tal que y=h(x)=y
5. RESISTENCIA A LAS COLISIONES (CRHF: STRONG ONE
WAY HASH FUNCTION): Es computacionalmente
irrealizable hallar dos entradas (x , x) distintas que posean la
misma salida h(x). (Esto difiere del anterior en que hay libre
eleccin de los dos valores x y por eso es ms fuerte)
PROPIEDADES ADICIONALES HASHING
10 cripto I-scolnik-hecht
6. NO CORRELACION: Los bits de entrada y los bits de salida
no deben estar correlacionados. Vinculado con esto, es
deseable un efecto de AVALANCHA en la cual cada bit de
entrada afecta a cada bit de salida.
7. RESISTENCIA A LA CASI COLISION: Debe ser difcil obtener
dos entradas (x, x) para las cuales sus imgenes (y, y)
difieran solamente en unos pocos bits.
8. RESISTENCIA A LAS PREIMAGENES PARCIALES: Debe ser
tan dificil recuperar una parte de la preimgen de un hash
como recuperar su totalidad. (Adems si se conoce una parte
de la preimgen debe ser difcil obtener el resto de ella a
partir del hash, o sea si se desconocen t bits de la
preimgen, debe tomar en promedio 2
t-1
operaciones hashing
hasta descubrirlos)
OTRAS PROPIEDADES ADICIONALES DE
LAS ONE WAY HASHINGS
11 cripto I-scolnik-hecht
MODELO GENERAL DE FUNCIONES HASH
ITERADAS (esquema Merkle-Damgrd)
VISION DE ALTO NIVEL
entrada de long arbitraria
funcin iterada
de
compresin
salida de long fija
12 cripto I-scolnik-hecht
appendar padding bits
appendar long bloque
preprocesamiento
H
i
H
t
x
i
f
funcin de compresin
procesamiento iterado
g
H
o
= IV
H
i-1
entrada formateada
x=x
1
x
2
x
3
x
t
funcin hash h
ENTRADA ORIGINAL x
SALIDA h(x)=g(H
t
)
13 cripto I-scolnik-hecht
OBJETIVOS DE SEGURIDAD
Y ATAQUES BASICOS
Tipo
HASH
Objetivo de Diseo Fuerza
Ideal
Objetivo del
Atacante
OWHF Resistenc preimagen
Resistenc 2 preimagen
2
n
2
n
Gen
preimagen
Hallar x h(x)
CRHF Resistenc colisin 2
n/2
Gen colisin
MAC No recuperac claves
Resist computacional
t:bits k n:bits h
k
()
2
t
p
fail
=
max(2
-t
,2
-n
)
Deducir k
Gen nuevo par
(m,MAC)
14 cripto I-scolnik-hecht
CUADRO COMPARATIVO DE MDC
Hash n
(bits
bloque)
m
(bits
hash)
Preimagen Colisin
(terica)
Matyas-Meyer-Oseas
n m 2
n
2
n/2
MDC-2 (c/DES) 64 128 2
83
2
55
MDC-4 (c/DES) 64 128 2
109
2
56
Merkle (c/DES) 106 128 2
112
2
56
MD4 512 128 2
128
2
20
MD5 512 128 2
128
2
64
RIPEMD-128 512 128 2
128
2
64
RIPEMD-
128/SHA-1
512 160 2
160
2
80
SHA512 512 512 2
512
2
256
15 cripto I-scolnik-hecht
MODELO BASICO DE FUNCIONES HASH
Familia MD4-MD5-SHA-SHA1-RIPEMD128-RIPEMD160-SHA512
mensaje
Bloque 512 bits
fragmentacin
permutacin
rotacin
compresin
Bloque 128/160/512 bits
48/64/80
ciclos por
bloque
hash

Iterar extraccin de bloques


16 cripto I-scolnik-hecht
Las tcnicas de proteccin de integridad de
mensajes en canales ruidosos difiere
significativamente de aquellos canales sujetos a
la manipulacin por adversarios.
Los CHECKSUMS brindan proteccin contra
errores no maliciosos en caso de errores de
transmisin.
Esta proteccin no es criptogrfica en el sentido
que no hay claves secretas ni canales
asegurados. Los cdigos de correccin de
errores van un paso mas all, siendo capaces de
detectar y corregir una cierta tasa mxima de
errores.
AMENAZAS MALICIOSAS Y NO
MALICIOSAS A LA INTEGRIDAD
17 cripto I-scolnik-hecht
Un algoritmo k-bit CRC mapea entradas de longitud
arbitraria en resmenes k-bits aritmticos. Para el caso
k=16 el CRC-16 se basa en el polinomio
g(x)=1+x
2
+x
15
+x
16
. Una entrada de t-bits se
representa como el polinomio binario d(x) grado t-1, y
el valor CRC correspondiente a d(x) es el string de 16
bits representado por el resto de dividir x
16
.d(x) por
g(x). Para todos los mensajes d(x) con t<32768 el
CRC-16 puede detectar todos los errores basados en
un nico bit, dos bits, tres bits o cualquier nmero
impar de bits, todo burst error de longitud 16, el
99.997% (=1-2
-15
) de 17-burst errors y el 99.998%
(=1-2
-16
) de burst errors 18.
(burst error=bloque de error de exactamente b-bits que
comienza y termina con un uno)
CRCs Cyclic Redundancy Codes
18 cripto I-scolnik-hecht
ATAQUES AVANZADOS A LAS
FUNCIONES HASH
Ataque del cumpleaos
Ataque de seudo-colisiones y
funciones de compresin
Ataques encadenados
Ataques al motor de encripcin
Ataques de colisiones diferenciales
(Chabaud-Joux)
19 cripto I-scolnik-hecht
El ataque del cumpleaos:
Vamos a determinar una condicin
necesaria de seguridad para las
funciones de hashing que depende
de la cardinalidad de los conjuntos
involucrados. La misma depender
de un sistema simple de encontrar
colisiones llamado el ataque del
cumpleaos.
ATAQUE DEL CUMPLEAOS - 1
20 cripto I-scolnik-hecht
El nombre proviene de la aparente paradoja
que dice que dado un grupo de al menos 23
personas, entonces la probabilidad de que dos
de ellas cumplan aos el mismo da es > 0.5
as. encontrarl como es cuestin
la , colisiones menos al hay que ver fcil Es
) 2 2 ( ) ( que tales finitos conjuntos ,
con hashing de funcin una : Sea
n
n Y m X Y X
Y X h
= =

ATAQUE DEL CUMPLEAOS - 2


21 cripto I-scolnik-hecht
aumenta) colisin una encontrar de ad probabilid
la cumple, se no eso (si ) ( que de
suposicin la haremos inferior cota una interesa nos Como
. de no pero
y de depender misma La mtodo. este con colisiones
encontrar de ad probabilid la de inferior cota una Veamos
. colisiones hay si y ver , ) ( calcular , ,...,
azar al elementos elegir de la sera simple idea Una
1
1
Y y
n
m
y h
m
n k
y x h X x x
k
i i k

=

ATAQUE DEL CUMPLEAOS - 3


22 cripto I-scolnik-hecht
n
-
y y y
n
y y
y
Y y y
k
2
1
es e de diferente sea que de ad probabilid
la ,
1
1 es que de ad probabilid
la , arbitraria es eleccin primera la : distintos
sean ,..., que de ad probabilid la Veamos
hash. de espacio del cardinal | Y | n que Recordemos
2 1 3
1 2
1
1

=
ATAQUE DEL CUMPLEAOS - 4
23 cripto I-scolnik-hecht
3 . 22 obtiene se 365 caso el En
17 . 1 que resulta 5 . 0 elegimos si y
1
1
ln 2
estimacin la a llegamos - ignoramos si ;
1
1
ln 2
) 1 ln(
2
) 1 (
1 1 es colisin
una menos al exista que de ad probabilid la y ) 1 (
: resulta colisiones haya no que de ad probabilid la que aqu De
1 entonces pequeo, es Si
) 1 ( )
1
1 )...(
2
1 )(
1
1 (
: resulta hash - k entre colisiones haya no que de ad probabilid la Entonces,
2
2
) 1 (
2
) 1 (
2
) 1 (
1
1
1
1
1
1
=
=





=

=

k n
n k p
p
n k
k
p
n k k
p
n
k k
p e p e
e e
n
i
e x x
n
i
n
k
n n
n
k k
n
k k
n
k k
n
i
k
i
k
i
x
k
i
24 cripto I-scolnik-hecht
mnimo. como bits 160 de uso el ah De
. aleatorios hashings 2 unos
haciendo 1/2 de ad probabilid una con colisin una
e encontrars puede que puesto inseguro sera bits 40 de
hashing un ejemplo Por hashings. los de tamao al
inferior cota una da nos cumpleaos del ataque El
20
ATAQUE DEL CUMPLEAOS - 6
k 1.17 2
40
2
20
k 1.17 2
160
2
80
10
24
25 cripto I-scolnik-hecht
ATAQUES ENCADENADOS
En este ataque no se intenta quebrar a
la funcin h en su conjunto sino
especficamente a la funcin de
compresin f. Como esta clase de
funciones son iteradas, la idea es
encontrar combinaciones de bits en la
entrada que generen puntos fijos en las
sucesivas iteraciones encadenadas. Estos
puntos fijos permiten la existencia
potencial de colisiones y 2 preimgenes
y abren dudas acerca del hash en su
conjunto.
26 cripto I-scolnik-hecht
ATAQUES AL MOTOR DE ENCRIPCION
Aqu no se intenta poner en duda a la
funcin intrnseca del hash sino (en
aquellos que lo poseen) al motor de
encripcin (generalmente simtrico) que
emplean. Algunos ataques potenciales
de esta clase incluyen: acoples lineales
entre entradas complementarias,
bsqueda de claves dbiles, bsqueda
de puntos fijos en las funciones de
compresin del motor, colisiones de
claves del motor que se trasladen a
colisiones del hash, etc.
27 cripto I-scolnik-hecht
ATAQUE DE COLISIONES
DIFERENCIALES (CHABAUD-JOUX)
A partir de 2004
Mtodo de bsqueda de colisiones y
seudocolisiones de imgenes y 2
preimagen por mtodo diferencial
Quiebre de parte de la familia MD4
(IFN= irregular Feistel Network)
MD5, SHA-0: quebrado
SHA-1: debilitado
SHA-2: probablemente debilitado
28 cripto I-scolnik-hecht
SHA-1: IFN
(Irregular Feistel Network)
29 cripto I-scolnik-hecht
So what's the big news?
Some very bright researchers in China presented a paper,
Collisions for Hash Functions MD4, MD5, HAVAL-128 and
RIPEMD, at the Crypto 2004 conference in August 2004,
and it's shaken up the security world considerably. This
was some outstanding cryptography research.
They have found ways to reliably generate collisions in
four hash functions much faster than brute-force time, and
in one case (MD4, which is admittedly obsolete), with a
hand calculation. This has been a stunning development.
These are all of the "we control both inputs" type - the first
of our three kinds of collisions - and it holds the most
promise in the compromise of digital signatures where the
bad guy can create two contradictory documents and pull
a switcheroo later.
30 cripto I-scolnik-hecht
Colisin de 2 Preimagen
31 cripto I-scolnik-hecht
fraude por colisin programada
32 cripto I-scolnik-hecht
colisin real con MD5
33 cripto I-scolnik-hecht
In cryptography, a keyed-Hash Message Authentication Code (HMAC or
KHMAC), is a type of message authentication code (MAC) calculated using
a specific algorithm involving a cryptographic hash function in combination
with a secret key. As with any MAC, it may be used to simultaneously verify
both the data integrity and the authenticity of a message. Any iterative
cryptographic hash function, such as MD5 or SHA-1, may be used in the
calculation of an HMAC; the resulting MAC algorithm is termed HMAC-MD5
or HMAC-SHA-1 accordingly. The cryptographic strength of the HMAC
depends upon the cryptographic strength of the underlying hash function,
on the size and quality of the key and the size of the hash output length in
bits.
HMAC
Keyed-Hash Message Authentication Code
34 cripto I-scolnik-hecht
Definition:
HMAC
K
(m) = h [( K opad) || h (( K ipad ) || m)]
where h is a cryptographic hash function, K is a secret key padded to the right
with extra zeros to the block size of the hash function, m is the message to be
authenticated, || denotes concatenation, denotes exclusive or (XOR), and
the outer padding opad = 0x5c5c5c...5c5c and inner padding ipad =
0x363636...3636 are two one-blocklong hexadecimal constants.
HMAC
Keyed-Hash Message Authentication Code
35 cripto I-scolnik-hecht
36 cripto I-scolnik-hecht

S-ar putea să vă placă și