Fonction de hachage universelle à sens unique
# Fonction de hachage universelle à sens unique

Une fonction de hachage universelle à sens unique (ou UOWHF, pour universal one-way hash function) désigne, en cryptographie, une famille de fonctions de hachage universelle possédant des propriétés de sécurité particulières. Elles ont une importance particulière en cryptographie prouvée. Ces fonctions de hachage ont été proposées comme une alternative aux fonctions résistantes aux collisions. En effet, la résistance aux collisions est une propriété forte, que n'atteint pas nécessairement les UOWHFs. En effet, celles-ci sont seulement à sens unique. Cette primitive a été proposé par Moni Naor et Moti Yung, et sont aussi connu sous le nom de fonctions de hachage « résistantes aux collisions ciblées ».

Les UOWHFs ont de multiples applications en cryptographie, comme la conception de signature numériques sans trappes (ce qui les rendent plus efficaces), mais aussi pour la conception de cryptosystèmes sûrs face aux attaques à chiffrés choisis, comme le cryptosystème de Cramer-Shoup.

Une famille de fonctions de hachage universelles à sens unique contient un nombre fini de fonctions de hachage avec possédant chacune la même probabilité d'être utilisée.

## Définition

La sécurité de la propriété d'un UOWHF est comme suit. Soit $A$ un algorithme qui fonctionne en deux phases :

* Dans un premier temps, $A$ prend en entrée le paramètre de sécurité et choisit une valeur $x$ ;
* Une fonction de hachage $H$ est choisie uniformément au hasard à partir de la famille de fonctions. L’adversaire $A$ reçoit alors $H$ et doit renvoyer une valeur $y\neq x$ telle que $H(x)=H(y)$.

On dit que l'UOWHF est sûre si pour tout PPT $A$, la probabilité que $A$ gagne dans le jeu ci-dessus est négligeable.

## Applications

Les UOWHFs sont conçues pour être moins gourmand en ressources que fonctions résistantes aux collisions, et sont le plus souvent utilisées à des fins d'efficacité dans les schémas où le choix d'une fonction de hachage apparaît dans l'exécution, et non durant la phase d'initialisation. Par exemple, le cryptosystème de Cramer-Shoup utilise une UOWHF dans le cadre de la vérification de sa validité dans ses chiffrés (qui peut être vue comme une fonction de hachage projective-lisse).

