Función hash criptográfica

Les **funciones hash criptográfiques** son aquelles que cifren una entrada y actúen de forma asemeyada a les funciones hash, yá que estrúin la entrada a una salida de menor llargor y son fáciles de calcular.

Llámense **funciones hash criptográfiques** a aquelles funciones hash que s'utilicen nel área de la criptografía. Esti tipu de funciones carauterizar por cumplir propiedaes que les faen aparentes pal so usu en sistemes que confíen na criptografía pa dotase de seguridá. Estes propiedaes facer resistentes frente ataques maliciosos qu'intenten romper esa seguridá.

## Propiedaes
Fundamentalmente queremos pidir les siguientes propiedaes a estes funciones: que dada una *x* seya bien fácil calcular *h(x)*, pero que, contrariamente, *x* seya malo de calcular dada una *y=h(x)*. Amás pidimos que seya difícil atopar una pareya *(x,y)* con *x≠y* tal que *h(x)=h(y)*, esto ye, que seya difícil producir choques.

Establecer qué propiedaes tien que cumplir una función hash criptográfica ye difícil yá que son usaes n'aplicaciones criptográfiques bien diverses, y que por tanto riquen propiedaes distintes. Sicasí polo xeneral podemos dicir que ye necesariu que sían deterministes (un mensaxe siempres tien el mesmu valor hash) y de función hash#So costu baxu costu (por que sían aplicables na práctica). Amás de normal suelse riquir que sían uniformes y con efectu argayu coles mires de que seya imposible predicir cualquier valor hash a partir d'otros valores hash prindaos.

Pa determinar les propiedaes riquíes p'asegurar la seguridá ye necesariu saber cuál ye l'oxetivu principal de la función. Podemos estremar dos tipos de funciones: les que tienen como oxetivu principal verificar la integridá, a les que se llamen **[[Códigu de detección de modificaciones|Código de detección de cambeos]]**, y les que tienen como oxetivu principal la autenticación del orixe del mensaxe, a les que se llamen **[[Códigu pa la autenticación de mensaxes|Códigos de autenticación de mensaxes]]**.Estos nomes nun son bien correutos una y bones estes funciones nun son códigos y amás dambos tipos dexen la autenticación de mensaxes. Sicasí son los más llargamente aceptaos.

### Códigu de detección de cambeos
: *Vease tamién:* Códigu de detección de cambeos
L'oxetivu d'estes funciones ye poder detectar si un mensaxe foi modificáu o non. Por tanto dexen la verificación de la integridá del mensaxe. El so funcionamientu consiste en calcular el valor hash del mensaxe y que esti sirva como prueba pa una posible verificación de si'l mensaxe foi modificáu. A les funciones hash diseñaes con esti oxetivu se les llapada **[[Códigu de detección de modificaciones|Código de detección de cambeos]]** o **[[Códigu de detección de cambeos|MDC]]** ( sigles del inglés *Modification Detection Codes*)

Pa cumplir el so oxetivu la función hash tien que cumplir propiedaes que la faiga resistente frente ataques d'adversarios maliciosos que'l so oxetivu ye que la función nun cumpla'l so cometíu. Según la propiedá que s'envalore necesaria que cumpla puede dicise qu'hai dos tipos de Código de detección de cambeos:

* Les que riquen que la función hash seya CRHF. Por tanto ye difícil atopar dos mensaxes col mesmu valor hash.

### Códigu de autenticación de mensaxes
: *Vease tamién:* Códigu de autenticación de mensaxes
L'oxetivu d'estes funciones ye dexar comprobar, ensin usar nengún mecanismu adicional, l'autenticidá del orixe d'un mensaxe asegurando amás la integridá de dichu mensaxe. Por cuenta de esta funcionalidad se les llapada **[[Códigu de autenticación de mensaxes|Códigos de Autenticación de Mensaxes]]** o **[[Códigu de autenticación de mensaxes|MAC]]** (sigles del inglés *Message Authentication Codes*).

Les MAC son funciones hash con clave, que caltienen de callao tanto'l que se quier autenticar como'l que verifica la autenticación. Por que seya resistente frente ataques ye necesariu que la función estruya y que seya resistente a la computación de nuevos valores hash.

## Implementación
De siguío listamos la implementación de Azrael en Java, una **función hash criptográfica** iterativa construyida a la midida que devuelve una salida de 320 bits o 40 bytes pa entraes de llargor arbitrariu.

## Ver tamién
* Función hash
* Código pa la detección de cambeos
* Códigos pa la autenticación de mensaxes

## Referencies