funciones de hash
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2221904/images/9835069/rosarioLogo.png)
Mateo Sanabria Ardila
Introducción a la criptografía
hash != criptografía
Las funciones de hash son altamente utilizadas en CS. Sin embargo, en criptografía NO constituyen un método de cifrado. Mas bien son funciones auxiliares que se usan para:
-
Firmas digitales
-
MACs
-
RNGs
-
. . .
Una de las principales aplicaciones de las funciones de hash, en criptografia, son la firmas digitales. Por que no usar RSA o ELGAMAL??.
-
El tamaño de la firma es limitado por el tamaño de la llave.
- Archivos grandes implican firmar por bloques
Firma Digital: HASH
![](https://media0.giphy.com/media/NRW2yP1aoYTsY/giphy.gif)
![](https://media2.giphy.com/media/nDSlfqf0gn5g4/giphy.gif)
\tiny (z,s)
\tiny S = Sig_{K_{pr}}(Z)
\tiny Z= h(x)
\tiny Z= h(x)
\tiny VER_{K_{pub}}(Z,S)
Z es la 'Huella' del mensaje X
Requerimientos para una FUNCIÓN de hash
-
Cualquier tamaño de entrada
-
Tamaño fijo de salida
- Eficiente!!!
- Input resistance
- Weak collision resistance
- Strong collision resistance
input resistance: Dado el resultado de un función de hash debería ser imposible encontrar la entrada original
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2221904/images/9945176/inutresistance.png)
weak collision resistance: Dado x y su correspondiente hash. Deberia ser imposible tener encontrar una modificacion de X que tenga el mismo hash.
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2221904/images/9945189/weakcollision.png)
Strong collision resistance: Es computacionalmente inviable encontrar entradas X,Y tales que H(X) = H(Y). En este caso tanto X como Y pueden ser alterados para encontrar un hash idéntico.
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2221904/images/9945219/strongcollision.png)
Los ataques sobre colisiones son MUCHO más difíciles de prever que un ataque sobre la entrada!
Se puede definir una función de hash que no tenga colisiones?
![](https://media3.giphy.com/media/Atc9QCyWLGHgLZhHDp/giphy.gif)
Hablemos de cumpleaños
![](https://media0.giphy.com/media/g5R9dok94mrIvplmZd/giphy.gif)
Cuantas personas deben estar reunidas para que al menos dos cumplan el mismo día?
X(t) := 'No \ colisiones \ entre \ t \ personas'
P(X(2)) = 1 - \frac{1}{365}
P(X(3)) = (1 - \frac{1}{365})(1 - \frac{2}{365})
P(X(t)) = \prod_{i=1}^{t}(1 - \frac{i}{365})
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2221904/images/9945127/avalancha.png)
Funciones de Hash
By Mateo Sanabria Ardila
Funciones de Hash
Firmas Digitales
- 43