Problème de réseau
En informatique, les problèmes de réseau sont une classe de problèmes d'optimisation sur les réseaux. On conjecture que ces problèmes sont particulièrement difficiles à résoudre algorithmiquement : ces problèmes sont NP-difficiles, y compris en moyenne et non uniquement dans le pire des cas.
En conséquence, ces problèmes sont particulièrement intéressants pour la cryptographie, car ils peuvent servir à définir des primitives cryptographiques sûres. Pour des applications dans de tels systèmes cryptographiques, on utilise des réseaux définis sur des espaces vectoriels (souvent ) ou des modules libres (souvent ).
Dans les problèmes décrits ci-dessous, on suppose donnés une base d'un espace vectoriel V et une norme N (en général, il s'agira de la norme euclidienne L2, mais on peut également utiliser d'autres normes Lp[1]). On note Λ le réseau engendré par la base donnée
Problème du plus court vecteur
Dans ce problème (abrégé en SVP pour shortest vector problem[2]), on recherche un vecteur non-nul de la plus petite longueur possible (au sens de la norme N). Si l'on note λ cette longueur, c'est-à-dire:
alors la solution au problème est un vecteur v de longueur λ
Dans la version dite SVPγ on cherche une γ-approximation de la solution: un vecteur non nul de longueur au plus γ.λ où γ est un paramètre donné ≥ 1 dépendant de la dimension n du réseau.
Complexité
On peut démontrer que la version exacte du problème est NP-difficile seulement pour des réductions aléatoires[3],[4]. En revanche, le problème considéré pour la norme uniforme est NP-difficile[5].
Algorithmes pour le cas de la norme euclidienne
On peut diviser les algorithmes capables de résoudre le problème exact du plus court vecteur dans un réseau muni de la norme euclidienne en deux catégories : ceux dont la complexité en temps est super-exponentielle (2ω(n)) et polynomiale en espace (par rapport à la dimension n du réseau), et ceux dont la complexité en temps et en espace sont toutes deux exponentielles (2Θ(n))
Dans la première catégorie on retrouve les méthodes d'énumération de réseaux[6],[7],[8], et de réduction par échantillonnage aléatoire[9],[10]; dans la deuxième, les méthodes de crible sur le réseau[11],[12],[13], le calcul des cellules de Voronoi sur le réseau[14],[15], et l’échantillonnage Gaussien discret[16].
La recherche d'un algorithme qui résoudrait le problème exact en temps simplement exponentiel (2O(n)) et polynomial en mémoire demeure un problème ouvert.
Pour résoudre le problème γ-approximé, les meilleures méthodes se basent sur la réduction de la base du réseau (en). Pour γ suffisamment grand (2Ω(n)) l'algorithme de Lenstra-Lenstra-Lovász (LLL) peut trouver une solution en temps polynomial. Pour des valeurs plus petites de γ, il faut par exemple faire appel à l'algorithme des blocs de Korkine-Zolotarev (BKZ)[17],[18],[19], dans lequel la taille b des blocs détermine le compromis entre complexité en temps et la qualité du résultat (les petits blocs générant des approximations plus grossières mais plus rapidement). Cet algorithme utilisant la méthode de résolution exacte sur des réseaux de dimension au plus b, sa complexité est donc principalement due au coût en temps de ces résolutions en dimension b.
Problème du plus proche vecteur
Ce problème (abrégé en CVP pour closest vector problem), on suppose donné, outre la base de vecteurs de l'espace vectoriel V engendrant le réseau Λ et la norme N, un vecteur v quelconque de V, qui n'est donc pas nécessairement un vecteur du réseau. On recherche alors le vecteur du réseau minimisant la distance avec v, c'est-à-dire
Dans la version γ-approximative CVPγ, on recherche à la place un vecteur du réseau dont la distance à v est au plus γ.
Réduction du le problème du plus court vecteur
Le problème du plus proche vecteur peut être vu comme une généralisation du problème du plus court vecteur. En effet, si l'on suppose que l'on dispose d'un oracle capable de résoudre CVPγ, alors on peut résoudre SVPγ en interrogeant l'oracle.
On ne peut pas simplement résoudre SVPγ en posant v = 0 dans un solveur de CVPγ (car le vecteur nul, membre du réseau, serait alors solution). En revanche, soit B = (b1, b2,... bn) la base donnée pour le problème SVP. Alors On considère la base Bi = (b1, b2,... 2bi,...bn), et xi la solution produite par l'oracle de CVPγ pour Bi, alors il suffit de prendre comme solution de CVPγ le plus court vecteur de l'ensemble des {xi - bi}.
Références
- ↑ (en) Subhash Khot, « Hardness of approximating the shortest vector problem in lattices », Journal of the ACM, vol. 52, no 5, , p. 789–808 (ISSN 0004-5411 et 1557-735X, DOI 10.1145/1089023.1089027, lire en ligne, consulté le )
- ↑ (en) Danielle Micciancio, « Shortest Vector Problem (SVP ) », sur cseweb.ucsd.edu (consulté le )
- ↑ (en) M. Ajtai, « Generating hard instances of lattice problems (extended abstract) », CrossRef, ACM Press, , p. 99–108 (ISBN 978-0-89791-785-8, DOI 10.1145/237814.237838, lire en ligne, consulté le )
- ↑ (en) Miklós Ajtai, « The shortest vector problem in L 2 is NP -hard for randomized reductions (extended abstract) », CrossRef, ACM Press, , p. 10–19 (ISBN 978-0-89791-962-3, DOI 10.1145/276698.276705, lire en ligne, consulté le )
- ↑ (en) P. van Emde Boas, « Another NP-complete partition problem and the complexity of computing short vectors in a lattice. », Technical report 81-04, Université d'Amsterdam, (lire en ligne )
- ↑ (en) Ravi Kannan, « Improved algorithms for integer programming and related lattice problems », CrossRef, ACM Press, , p. 193–206 (ISBN 978-0-89791-099-6, DOI 10.1145/800061.808749, lire en ligne, consulté le )
- ↑ (en) U. Fincke et M. Pohst, « Improved methods for calculating vectors of short length in a lattice, including a complexity analysis », Mathematics of Computation, vol. 44, no 170, , p. 463–471 (ISSN 0025-5718 et 1088-6842, DOI 10.1090/S0025-5718-1985-0777278-8, lire en ligne, consulté le )
- ↑ Nicolas Gama, Phong Q. Nguyen et Oded Regev, « Lattice Enumeration Using Extreme Pruning », dans Advances in Cryptology – EUROCRYPT 2010, vol. 6110, Springer Berlin Heidelberg, , 257–278 p. (ISBN 978-3-642-13189-9, DOI 10.1007/978-3-642-13190-5_13, lire en ligne)
- ↑ Claus Peter Schnorr, « Lattice Reduction by Random Sampling and Birthday Methods », dans STACS 2003, vol. 2607, Springer Berlin Heidelberg, , 145–156 p. (ISBN 978-3-540-00623-7, DOI 10.1007/3-540-36494-3_14, lire en ligne)
- ↑ Yoshinori Aono et Phong Q. Nguyen, « Random Sampling Revisited: Lattice Enumeration with Discrete Pruning », dans Advances in Cryptology – EUROCRYPT 2017, vol. 10211, Springer International Publishing, , 65–102 p. (ISBN 978-3-319-56613-9, DOI 10.1007/978-3-319-56614-6_3, lire en ligne)
- ↑ (en) Miklós Ajtai, Ravi Kumar et D. Sivakumar, « A sieve algorithm for the shortest lattice vector problem », CrossRef, ACM, , p. 601–610 (ISBN 978-1-58113-349-3, DOI 10.1145/380752.380857, lire en ligne, consulté le )
- ↑ (en) Daniele Micciancio et Panagiotis Voulgaris, « Faster exponential time algorithms for the shortest vector problem », CrossRef, Society for Industrial and Applied Mathematics, , p. 1468–1480 (ISBN 978-0-89871-701-3, DOI 10.1137/1.9781611973075.119, lire en ligne, consulté le )
- ↑ (en) Anja Becker, Léo Ducas, Nicolas Gama et Thijs Laarhoven, « New directions in nearest neighbor searching with applications to lattice sieving », CrossRef, Society for Industrial and Applied Mathematics, , p. 10–24 (ISBN 978-1-61197-433-1, DOI 10.1137/1.9781611974331.ch2, lire en ligne, consulté le )
- ↑ (en) E. Agrell, T. Eriksson, A. Vardy et K. Zeger, « Closest point search in lattices », IEEE Transactions on Information Theory, vol. 48, no 8, , p. 2201–2214 (ISSN 0018-9448, DOI 10.1109/TIT.2002.800499, lire en ligne, consulté le )
- ↑ (en) Daniele Micciancio et Panagiotis Voulgaris, « A deterministic single exponential time algorithm for most lattice problems based on voronoi cell computations », CrossRef, ACM, , p. 351–358 (ISBN 978-1-4503-0050-6, DOI 10.1145/1806689.1806739, lire en ligne, consulté le )
- ↑ (en) Divesh Aggarwal, Daniel Dadush, Oded Regev et Noah Stephens-Davidowitz, « Solving the Shortest Vector Problem in 2 n Time Using Discrete Gaussian Sampling: Extended Abstract », CrossRef, ACM, , p. 733–742 (ISBN 978-1-4503-3536-2, DOI 10.1145/2746539.2746606, lire en ligne, consulté le )
- ↑ (en) C.P. Schnorr, « A hierarchy of polynomial time lattice basis reduction algorithms », Theoretical Computer Science, vol. 53, nos 2-3, , p. 201–224 (DOI 10.1016/0304-3975(87)90064-8, lire en ligne, consulté le )
- ↑ (en) C. P. Schnorr et M. Euchner, « Lattice basis reduction: Improved practical algorithms and solving subset sum problems », Mathematical Programming, vol. 66, nos 1-3, , p. 181–199 (ISSN 0025-5610 et 1436-4646, DOI 10.1007/BF01581144, lire en ligne, consulté le )
- ↑ Yuanmi Chen et Phong Q. Nguyen, « BKZ 2.0: Better Lattice Security Estimates », dans Advances in Cryptology – ASIACRYPT 2011, vol. 7073, Springer Berlin Heidelberg, , 1–20 p. (ISBN 978-3-642-25384-3, DOI 10.1007/978-3-642-25385-0_1, lire en ligne)
- Portail de l’informatique
- Portail de la cryptologie