Réduction de bases de réseaux

Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus.
Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus.

Cet article ne cite pas suffisamment ses sources ().

Si vous disposez d'ouvrages ou d'articles de référence ou si vous connaissez des sites web de qualité traitant du thème abordé ici, merci de compléter l'article en donnant les références utiles à sa vérifiabilité et en les liant à la section « Notes et références ».

En pratique : Quelles sources sont attendues ? Comment ajouter mes sources ?

En mathématiques, la réduction de bases d'un réseau[1] consiste à modifier une base quelconque de réseau en une base presque orthogonale. Ce processus fait appel à la notion de base faiblement réduite.

Bases faiblement réduites

Une base faiblement réduite est une base de réseau dont les vecteurs sont presque orthogonaux deux à deux, au sens où, si on l'orthogonalisait grâce à l'algorithme de Gram-Schmidt, les coefficients permettant de redresser les vecteurs seraient plus petit, en valeur absolue, que 1/2.

De manière plus formelle : Soit B = ( e 1 , . . . , e n ) {\displaystyle B=(e_{1},...,e_{n})} une base de réseau, et B ¯ = ( f 1 , . . . , f n ) {\displaystyle {\overline {B}}=(f_{1},...,f_{n})} la base orthogonale obtenue grâce à Gram-Schmidt, de telle sorte que :

f i = e i j = 1 i 1 a i , j f j {\displaystyle f_{i}=e_{i}-\sum _{j=1}^{i-1}a_{i,j}f_{j}} , où a i , j = < e i , f j > < f j , f j > {\displaystyle a_{i,j}={\dfrac {<e_{i},f_{j}>}{<f_{j},f_{j}>}}} .

La base B {\displaystyle B} est faiblement réduite lorsque pour tout i , j {\displaystyle i,j} , | a i , j | 1 2 {\displaystyle |a_{i,j}|\leqslant {\dfrac {1}{2}}} .

On remarque que si la base B {\displaystyle B} était déjà orthogonale, les coefficients a i , j {\displaystyle a_{i,j}} seraient tous nuls. Intuitivement, une base faiblement réduite correspond à une base orthogonale à une précision de 0,5 près.

Réduction faible de bases

En réalité, toute base de réseau peut être faiblement réduite[2]. Il suffit d'appliquer l'algorithme détaillé ci-dessous :

Entrée : une base de réseau 
  
    
      
        B
        =
        (
        
          e
          
            1
          
        
        ,
        .
        .
        .
        ,
        
          e
          
            n
          
        
        )
      
    
    {\displaystyle B=(e_{1},...,e_{n})}
  

Sortie : une base faiblement réduite issue de 
  
    
      
        B
      
    
    {\displaystyle B}
  

ReducFaible(B) :
  (f_1,...,f_n) = GramSchmidt(B)
  Pour tout 
  
    
      
        (
        i
        ,
        j
        )
      
    
    {\displaystyle (i,j)}
  

     
  
    
      
        
          a
          
            i
            ,
            j
          
        
        
        
          
            
              
                <
                
                  e
                  
                    i
                  
                
                ,
                
                  f
                  
                    j
                  
                
                >
              
              
                <
                
                  f
                  
                    j
                  
                
                ,
                
                  f
                  
                    j
                  
                
                >
              
            
          
        
      
    
    {\displaystyle a_{i,j}\leftarrow {\dfrac {<e_{i},f_{j}>}{<f_{j},f_{j}>}}}
  

  Si pour tout couple 
  
    
      
        (
        i
        ,
        j
        )
      
    
    {\displaystyle (i,j)}
  
, 
  
    
      
        
          |
        
        
          a
          
            i
            ,
            j
          
        
        
          |
        
        
        
          
            
              1
              2
            
          
        
      
    
    {\displaystyle |a_{i,j}|\leqslant {\dfrac {1}{2}}}
  

    retourne B
  Sinon
    Soit 
  
    
      
        (
        i
        ,
        j
        )
      
    
    {\displaystyle (i,j)}
  
 le plus grand couple selon l'ordre lexicographique tel que 
  
    
      
        
          |
        
        
          a
          
            i
            ,
            j
          
        
        
          |
        
        >
        
          
            
              1
              2
            
          
        
      
    
    {\displaystyle |a_{i,j}|>{\dfrac {1}{2}}}
  

    
  
    
      
        a
        
      
    
    {\displaystyle a\leftarrow }
  
 l'entier le plus proche de 
  
    
      
        
          a
          
            i
            ,
            j
          
        
      
    
    {\displaystyle a_{i,j}}
  

    
  
    
      
        
          e
          
            i
          
        
        
        
          e
          
            i
          
        
        
        a
        
          e
          
            j
          
        
      
    
    {\displaystyle e_{i}\leftarrow e_{i}-ae_{j}}
  

    retourne ReducFaible(B)
Correction de l'algorithme

On note B = ( e 1 , . . . , e n ) {\displaystyle B'=(e'_{1},...,e'_{n})} la base obtenue après une exécution d'une boucle.

On a e i = e i a e j = f i + k < i a i , k f k a f , j k < j a j , k f k {\displaystyle e'_{i}=e_{i}-ae_{j}=f_{i}+\sum _{k<i}a_{i,k}f_{k}-a_{f,j}-\sum _{k<j}a_{j,k}f_{k}} .

Montrons que les couples supérieurs ou égaux à ( i , j ) {\displaystyle (i,j)} ne posent pas de problème.

Soit ( f 1 , . . . , f n ) {\displaystyle (f'_{1},...,f'_{n})} la base obtenue par Gram-Schmidt sur B {\displaystyle B'} . On note a k , l {\displaystyle a'_{k,l}} les coefficients provenant de l'orthogonalisation.

On a pour tout k i {\displaystyle k\neq i} et pour tout l {\displaystyle l} , a k , l = a k , l {\displaystyle a'_{k,l}=a_{k,l}} .

Sinon, lorsque k = i {\displaystyle k=i} , si l > j {\displaystyle l>j} on a aussi a i , l = a i , l {\displaystyle a'_{i,l}=a_{i,l}} .

Enfin, dans les autres cas, a i , l = a i , l c a j , l {\displaystyle a'_{i,l}=a_{i,l}-ca_{j,l}} .

Les a k , l {\displaystyle a_{k,l}} pour les couples plus grand strictement que ( i , j ) {\displaystyle (i,j)} ne sont pas modifiés donc sont toujours de valeur absolue inférieure à 1/2. De plus, | a i , j | a i , j a | 1 2 {\displaystyle |a'_{i,j}|a_{i,j}-a|\leqslant {\dfrac {1}{2}}}
 

Bases réduites

Une base B = ( e 1 , . . . , e n ) {\displaystyle B=(e_{1},...,e_{n})} de réseau est dite réduite lorsqu'elle est faiblement réduite et qu'elle vérifie la propriété suivante :

Si ( f 1 , . . . , f n ) {\displaystyle (f_{1},...,f_{n})} est l'orthogonalisation de Gram-Schmidt de B {\displaystyle B} , de coefficients a i , j {\displaystyle a_{i,j}} , on doit avoir :

| | f i + 1 + a i + 1 , i f i | | 2 3 4 | | f i | | 2 {\displaystyle ||f_{i+1}+a_{i+1,i}f_{i}||^{2}\geqslant {\dfrac {3}{4}}||f_{i}||^{2}}

Les algorithmes suivants montrent que toute base peut être réduite en temps polynomial.

Algorithme Nom complet Année de publication Implémentation
LLL Lenstra Lenstra Lovász 1982 NTL (en) (en) « fpll (lien Github) »
BKZ Block Korkine Zolotarev[3] 1987 NTL (en) (en) « fpll (lien Github) »
RSR Random Sampling Reduction 2002
PDR Primal Dual Reduction 2002

Références

  1. Lattice reduction (en)
  2. Abuaf Roland et Boyer Ivan, « Factorisation dans Z [ X ] {\displaystyle \mathbb {Z} [X]}  », Exposé de maîtrise proposé par François Loeser,‎ (lire en ligne)
  3. (en) Hanrot Guillaume, « Worst-Case Hermite-Korkine-Zolotarev Reduced Lattice Bases », arXiv:0801.3331 [math.NT],‎ (lire en ligne)

Articles connexes

  • Réseau (géométrie)
  • Algorithme LLL
  • icône décorative Portail des mathématiques