Facile dans un sens, impossible dans l'autre
Les fonctions à trappe (trapdoor)
Une fonction à sens unique interdit à tout le monde d'inverser l'opération — y compris à son propriétaire légitime. Or, pour chiffrer un message, il faut bien que quelqu'un puisse le déchiffrer. La solution s'appelle la fonction à trappe.
L'idée de la trappe
Une fonction à trappe (en anglais trapdoor function) est une fonction à sens unique munie d'un secret : sans ce secret, l'inversion reste infaisable ; avec lui, elle devient facile.
Le secret s'appelle la trappe (trapdoor). C'est une porte dérobée mathématique, connue du seul détenteur.
x --[ facile : clé publique ]--> y = f(x)
y --[ infaisable sans trappe ]--> x (attaquant)
y --[ facile AVEC la trappe ]--> x (propriétaire)
Le cœur de la clé publique
C'est exactement le mécanisme de la cryptographie à clé publique :
- Chiffrer correspond au sens facile de la fonction. N'importe qui peut le faire avec la clé publique.
- Déchiffrer correspond à l'inversion. Elle est infaisable pour un attaquant, mais facile pour qui détient la trappe, c'est-à-dire la clé privée.
La clé publique décrit la fonction ; la clé privée est la trappe. On diffuse la première au monde entier, on garde la seconde jalousement.
RSA : la factorisation comme trappe
RSA est l'exemple historique. Le module public n = p × q définit une fonction facile à calculer : c = m^e mod n. Inverser cette opération — retrouver m à partir de c — revient à savoir factoriser n.
| Élément | Rôle |
|---|---|
(n, e) |
clé publique : décrit la fonction, permet de chiffrer |
p, q |
la trappe : la factorisation connue du seul propriétaire |
d |
clé privée : dérivée de la trappe, permet de déchiffrer |
Celui qui a fabriqué la clé connaît p et q : pour lui, l'inversion est facile. L'attaquant ne voit que n et doit le factoriser — infaisable pour un n assez grand.
Sens unique n'est pas trappe
Attention à ne pas confondre les deux notions :
- une fonction à sens unique simple n'a aucun raccourci : personne ne peut l'inverser. Utile pour du hachage, pas pour du chiffrement réversible.
- une fonction à trappe est une fonction à sens unique avec un raccourci secret. C'est ce qui permet de déchiffrer.
Toute fonction à trappe est à sens unique ; l'inverse est faux. C'est cette nuance qui rend la clé publique possible.
En résumé
Une fonction à trappe est une fonction à sens unique dotée d'un secret qui rend l'inversion facile pour qui le connaît. Ce secret — la trappe — est la clé privée ; la clé publique décrit la fonction et sert à chiffrer. Dans RSA, la trappe est la factorisation n = p × q, connue du seul propriétaire.

