Êtes-vous un étudiant de l'EPFL à la recherche d'un projet de semestre?
Travaillez avec nous sur des projets en science des données et en visualisation, et déployez votre projet sous forme d'application sur Graph Search.
En cryptographie, une fonction éponge, ou construction de l’éponge est une classe de fonctions permettant de construire entre autres des fonctions de hachage cryptographique. Elle a notamment été utilisée pour la fonction SHA-3. D'un point de vue théorique, elles permettent aussi de construire des preuves de sécurité de ce type de fonction. Leur originalité est d’accepter en entrée à la fois des chaînes de taille arbitraire et de permettre en sortie des chaînes de la taille que l’on souhaite. Elles généralisent à la fois les fonctions de hachage et le chiffrement de flux. La construction de l’éponge est une manière générique de construire une fonction F qui prend en paramètre une chaîne de n’importe quelle taille (un flux ou un fichier par exemple) et qui retourne une chaîne de la longueur qu’on souhaite. Ses paramètres sont une permutation, ou plus généralement une transformation f opérant sur un nombre fixe b de bits, qu’on appellera largeur, et une fonction de bourrage p. Son fonctionnement est le suivant : la chaîne d’entrée est complémentée par la fonction de complément pour aligner la taille de la chaîne d’entrée sur un nombre entier de blocs, puis découpée en blocs de r bits. Les b bits de l’état interne sont initialisés à zéros, puis le calcul se déroule en deux phases : l’absorption Dans cette phase, les blocs de r bits sont Xorés avec les r premiers bits de l’état, en alternance avec des applications de la fonction f sur l’état. Cette phase se déroule jusqu’à ce que tous les blocs aient été traités. l’essorage Cette phase est la construction pas à pas de la sortie. Elle consiste en la répétition des deux étapes suivantes : 1. les r premiers bits de l’état sont retournés comme blocs de sortie et 2. la fonction f est appliquée sur l’état. Le nombre d’itération est au choix de l’utilisateur et la taille de la chaîne de sortie en dépend. Les derniers c bits de l’état ne sont jamais directement modifiés par les blocs d’entrée et ne sont jamais retournés pendant l’essorage.
Subhadeep Banik, Muhammed Fatih Balli
Francesco Regazzoni, Mirjana Stojilovic, Ognjen Glamocanin, Dorian Ros