Chiffrement convergent
# Chiffrement convergent

La cryptographie convergente (anglais : Convergent Encryption) désigne les méthodes de chiffrement qui pour un même texte clair produiront toujours le même texte encodé.

## Applications

Ce type d'algorithme est utilisé principalement pour la déduplication de fichiers dans le cadre du stockage de fichiers chiffrés: le gestionnaire peut dédupliquer les fichiers identiques (et ainsi limiter la taille du stockage) sans avoir besoin d'accéder à leur contenu.

## Mise en œuvre typique

La méthode du chiffrement convergent est généralement la suivante:

* le fichier texte clair est traité par une fonction de hachage qui produit une empreinte (ou hash);
* le fichier texte clair est ensuite transformé grâce à un algorithme de chiffrement adapté (AES, Twofish...) en utilisant l'empreinte précédemment calculée comme clé de chiffrement;
* le hash est enfin stocké chiffré avec la clef de chiffrement propre à l'utilisateur.

## Attaques connues

De par sa nature même la cryptographie convergente est vulnérable aux attaques de "confirmation de document". Un attaquant possédant un document (parce qu'il est public ou a été compromis par une attaque précédente) peut re-générer sa version chiffrée et ainsi le reconnaître dans des versions chiffrées. Ce type d'attaque peut être utilisé pour prouver la possession de documents interdits ou de documents soumis au droit d'auteur.

Une autre attaque baptisée "apprendre l'information manquante" ("learn the remaining information attack") a été proposée par Drew Perttula en 2008. Ce type d'attaque a des documents qui sont pour l'essentiel publics ou compromis par exemple un formulaires public remplis (le formatage du formulaire est connu, les inconnues sont les valeurs inscrites dans les champs) ou une révision marginale d'un document public. L'attaquant peut tenter de deviner l'information manquante puis vérifier son hypothèse en comparant son fichier chiffré avec celui qu'il cherche à percer. À titre d'exemple, supposons un formulaire de banque portant le numéro de compte du défenseur, ayant été crypté. L'attaquant peut récupérer un formulaire vierge, remplir les informations qu'il a pu apprendre (nom, date de naissance du défenseur...), puis pour les informations manquantes (dont le numéro de compte) générer toutes les combinaisons possibles, les chiffrer, puis les comparer avec le document chiffré du défenseur. Si un fichier coïncide avec celui du défenseur c'est que la combinaison qui l'a généré correspond aux informations du défenseur.

