Une observation associée à la cryptographie asymétrique est que certaines fonctions sont (supposées être) faciles à exécuter dans une direction mais difficiles à inverser. De plus, s'il existe des informations de «trappe» qui permettent de calculer rapidement l'opération inverse, le problème devient un candidat pour un schéma de cryptographie à clé publique.
Les problèmes de trappe classiques, rendus célèbres par RSA, incluent le problème de factorisation et le problème de journal discret. À peu près au moment où RSA a été publié, Rabin a inventé un cryptosystème à clé publique fondé sur la recherche de racines carrées discrètes (cela s'est avéré plus tard au moins aussi difficile que l'affacturage).
D'autres candidats ont surgi au fil des ans. KNAPSACK (peu après RSA), les "Logarithmes" à courbe elliptique avec des paramètres spécifiques et les problèmes de base les plus courts en treillis sont des exemples de problèmes dont les problèmes de trappe sont utilisés dans d'autres schémas publiés. Il est également facile de voir que ces problèmes doivent résider quelque part dans NP.
Cela épuise ma connaissance des fonctions de trappe. Cela semble également épuiser la liste sur Wikipédia .
J'espère que nous pourrons obtenir une liste wiki communautaire des langues qui admettent les trappes et la littérature pertinente. La liste sera utile. L'évolution des exigences de la cryptographie change également les fonctions de trappe qui peuvent être à la base des cryptosystèmes. L'explosion du stockage sur les ordinateurs permet des schémas avec de grandes tailles de clés. Le spectre perpétuel de l'informatique quantique invalide les schémas qui peuvent être brisés avec un oracle pour trouver des sous-groupes abéliens cachés. Le cryptosystème entièrement homomorphe de Gentry ne fonctionne que parce que nous avons découvert des fonctions de trappe qui respectent les homomorphismes.
Je suis particulièrement intéressé par les problèmes qui ne sont pas NP-Complete.