« Les réseaux euclidiens » : différence entre les versions

De Wiki du LAMA (UMR 5127)
Aller à la navigation Aller à la recherche
Ligne 46 : Ligne 46 :


Algorithme_de_Babai(B, m_chiffré){
Algorithme_de_Babai(B, m_chiffré){
B_inv = inverse(B)
B_inv = inverse(B)
v = m_chiffré * B_inv
v = m_chiffré * B_inv
w = vector([round(x) for x in v])
w = vector([round(x) for x in v])
d = B * w
d = B * w
return d
return d
}
}



Version du 25 novembre 2018 à 12:24

Un réseau euclidien est un objet mathématique qui a été utilisé premièrement pour la cryptanalyse. C'est Miklos Ajtai qui a démontré que les réseaux euclidiens peuvent servir de base solide pour la cryptologie. Certains caractéristiques remarquables des problèmes de réseaux sont qu'il n'y a pas d'instances faibles, ce qui ne va pas être le cas de RSA où avec certains nombres premiers la factorisation sera trop simple. De plus ces problèmes sont reconnu comme étant difficile. Il est donc pas possible de les résoudre efficacement. Et pour finir, on ne connaît pas d'attaque même avec un ordinateurs quantiques. Les cryptosystèmes qui se basent sur cet objet mathématique sont donc actuellement source de nombreuse études. En particularité pour la caractéristique homomorphe de ce chiffrement, c'est à dire qu'on peut effectuer des calculs directement sur le chiffré. Cela peut garantir la sécurité dans de nombreuses applications comme par exemple lors de calculs effectués sur les services cloud.

Les principes de base du réseau euclidien

Réseau euclidien de dimension 2

Un réseau euclidien est "ensemble de points régulièrement répartis sur une dimension n" ou avec des termes plus mathématique il s'agit d'un sous-groupe discret d'un espace vectoriel euclidien.

Voici la représentation d'un réseau euclidien de dimension 2. Comme le nombre de points est infini il serait difficile de faire la liste de ces points. Ils sont donc représentés par une base, ici (O, u, v). Les points ont donc des coordonnées correspondant à la base de notre réseau euclidien.









Différentes bases d'un réseau euclidien

Base différentes Un réseau euclidien peut être représenté par plusieurs bases (image ci-contre). Les différence avec le système de coordonnées du plan (0,x,y) c'est que dans un réseau euclidien les coordonnées sont toujours des entiers et la base n'est pas nécessairement rectangulaire.

Bonne ou mauvaise base ? Certaines bases vont être plus qualitative que d'autres. Une bonne base (base bleue) est presque rectangulaire alors qu'une mauvaise base (base rouge) est de forme quelconque. Ces typologies s'expliquent par la différence que l'on peut observer au niveau que de la couverture de l'espace autour de chaque point du réseau. //images






Application en cryptologie

Le chiffrement

Le déchiffrement

Algorithme de Babai

  Algorithme_de_Babai(B, m_chiffré){
     B_inv = inverse(B)
     v = m_chiffré * B_inv 
     w = vector([round(x) for x in v])
     d = B * w
     return d
  }

Pourquoi les réseaux euclidiens permettent une garantie au niveau sécurité

Un jeu sur les reseaux euclidiens : Cryptris

Chiffrement homomorphe

Le chiffrement homomorphe permet d'effectuer une ou plusieurs opérations sans nécessité de d'accéder aux données sensibles en les déchiffrant. Pour toute opération Op et pour tout message m1 et m2, effectuer l'opération sur les messages cryptés par la méthode C et ensuite déchiffrer par D est équivalent au résultat de l'opération sur les deux messages clairs :



Prenons l'exemple d'Alice. Alice souhaite pouvoir effectuer des opérations sur deux données sensibles mais elle ne possède pas la puissance de calcul nécessaire pour l'effectuer. Elle souhaite donc demander à un organisme tiers de procéder aux calculs sur ses données. Cependant, les données à traiter sont sensibles et Alice ne fait pas confiance en cet organisme. Elle va donc une utiliser un chiffrement homomorphe et envoyer des données chiffrés à l'organisme qui pourra ainsi calculer et renvoyer le résultat, encore chiffré, à Alice. Alice pourra alors déchiffrer le message pour obtenir le résultat de l'opération sur ses données sensibles grâce aux propriétés du chiffrement homomorphe.

Chiffrement homomorphe et Cryptographie

Le chiffrement RSA, actuellement très utilisé, est considéré comme partiellement homomorphe. En effet, le chiffrement permet d'effectuer certaines opérations de manière homomorphe mais n'offre pas la possibilité d'effectuer l'ensemble des opérations existantes. Plus particulièrement, ce genre de chiffrement autorise soit la multiplication homomorphe soit l'addition homomorphe :

Multiplication homomorphe :

En revanche, le chiffrement par réseaux euclidiens est dit complètement homomorphe et permet donc d'effectuer l'ensemble des opérations de manière homomorphe. Pour qu'un chiffrement soit complètement homomorphe, il faut pouvoir appliquer les opérations d'addition et de multiplication sur les données chiffrées :

Multiplication homomorphe : Addition homomorphe :

On peut voir le XOR comme une addition modulo 2 et la propriété logique AND comme la multiplication modulo 2. Grace à ces deux portes logiques, il est possible d'exprimer tous les programmes et calculs existant. L'ensemble de ces deux opérations permettrai alors de pouvoir effectuer l'ensemble des opérations existantes avec un homomorphisme complet. C'st pourquoi le chiffrement par réseaux euclidiens est d'autant plus intéressant pour l'avenir de la cyber-sécurité.

Les attaques et inconvénients