• Aucun résultat trouvé

Structure des crypto‐systèmes basés chaos conçus et réalisés

crypto-systèmes basés chaos robustes et efficaces

3.2 Structure des crypto‐systèmes basés chaos conçus et réalisés

Nous  décrivons  dans  ce  paragraphe  les  crypto‐systèmes  proposés,  qui  sont  généralement  appropriés  pour  des  mises  en  œuvre  logicielles  et  matérielles.  Les  crypto‐systèmes  réalisés  peuvent  être  utilisés  pour  assurer  le  service  de  confidentialité  tel  que :  communications  câblées, sans fil, et radio‐mobiles, les transactions bancaires, etc. 

Ces crypto‐systèmes utilisent des algorithmes de chiffrement/déchiffrement par bloc de type  symétrique.  

Des  résultats  expérimentaux  sont  donnés  pour  chaque  crypto‐système  ainsi  qu’une  étude  comparative  des  performances  de  ces  crypto‐systèmes  selon  une  batterie  de  tests  les  plus  adéquats. 

Tous  les  algorithmes  de  chiffrement/déchiffrement  proposés  sont  réalisés  pour  tous  les  modes opératoires de la norme NIST (ECB, CBC, OFB, CTR, CMAC, CCM et GCM). Les trois  premiers modes, à part le mode ECB, renforcent la confidentialité des crypto‐systèmes et les  trois  derniers  modes  renforcent  la  confidentialité  et  réalisent  lʹauthentification.  Par  ailleurs,  les crypto‐systèmes réalisés sont applicables à pratiquement tous les formats d’images JPEG,  JPEG2000, JPSEC etc. 

Nous  présentons  par  la  suite,  le  diagramme  de  chiffrement/déchiffrement  des  différents  crypto‐systèmes  proposés  en  mode  ECB,    sachant  que  nous  avons  aussi,  mis  en  œuvre  les  autres modes cryptographiques à savoir: CBC, OFB CTR, CCM, CMAC, GCM. 

3.2.1 Crypto‐systèmes basés chaos utilisant les réseaux de  substitution‐

permutation 

La  structure  moderne  d’un  algorithme  de  chiffrement  par  bloc,  basé  sur  les  réseaux  de  substitution‐permutation  (SPN),  consiste,  dans  le  cas  où  le  processus  de    permutation  est  réalisé sur les octets, en quatre transformations de base, appelées aussi couches  qui sont:  ‐ la transformation d’addition de clés dynamiques  ‐ la transformation de substitution   ‐ la transformation de permutation   ‐ la transformation de mélange linéaire   Chaque transformation est appliquée un certain nombre de fois (itérations) avant de passer à  la  transformation  suivante,  ceci  permet  d’augmenter  considérablement  la  sécurité  de  l’algorithme, [Shannon, 1949]. Notons au passage que la transformation de mélange linéaire  utilisée  par  l’algorithme  AES  pour  assurer  la  diffusion,  consomme  pratiquement  les  ¾  du  temps de calcul, ceci est causé par les multiples  opérations de multiplication. D’où l’intérêt  de  proposer  une  couche  de  diffusion  simple  du  point  de  vue  de  l’implémentation,  donc  rapide  et aussi performante comparée à celle de l’AES. 

Dans  le  cas  où  la  permutation  est  faite  sur  les  bits,  la  dernière  couche  (transformation  de  mélange linéaire) n’est pas nécessaire.  

Le déchiffrement est réalisé par les transformations inverses appliquées dans lʹordre inverse  du chiffrement.    

En  général,  dans  les  crypto‐systèmes  basés  chaos,  les  différentes  couches  citées  plus  haut  sont  appliquées  en  temps  réel  sur  chaque  bloc,  utilisant  des  clés  dynamiques  comme  paramètres  de  contrôle.  Certains  algorithmes  utilisent  la  même  clé  dynamique  d’itération  pour  chaque  transformation,  d’autres,  dont  font  partie  les  deux  premiers  crypto‐systèmes  proposés,  utilisent  des  clés  dynamiques  différentes  pour  chaque  itération,  ce  qui  augmente  considérablement la robustesse de l’algorithme. Notons aussi que la sécurité d’un algorithme  de  chiffrement  dépend  grandement  de  la    robustesse  de    la  couche  de  substitution.  Plus  le  processus de substitution est fortement non‐linéaire, plus grande est la robustesse globale de  l’algorithme.  

Pour des applications qui ont une contrainte de ressources (capacité de mémoires et moyen  de calculs) comme les réseaux mobiles, le processus de substitution peut être réalisé par des   transformations  non‐linéaires,  comme  par  exemple  la  carte  chaotique  skew  tent    qui  est  inversible.  Le  processus  de  permutation  peut  lui  aussi  être  réalisé  par  la  même  carte  chaotique skew tent  légèrement modifiée (avec deux versions selon que la permutation est  réalisée  sur  les  bits  ou  sur  les  octets)  ou  aussi  par  une  fonction  polynomiale  comme  celle  utilisée par l’algorithme RC6 [ Rivest et al, 1998]. 

Pour  les  applications  qui  nécessitent  le  traitement  d’une importante quantité  d’information  et aussi la transmission à un grand débit, et tout cela en temps réel, comme la transmission  des  vidéo  chiffrées,  les  couches  de  substitution  et  de  permutation  sont  générées  dynamiquement  et  sauvegardées  dans  des  mémoires  sûres,  pour  ensuite  être  utilisées  par  l’algorithme de chiffrement/déchiffrement. Dans ce cas, le troisième crypto‐système proposé  s’applique.  A  ce  propos,  plusieurs  techniques,  basées  chaos,  de  création  des  boîtes  de  substitution  (boîtes‐S,  S‐boxes)  et  de  permutation  (boîtes‐P,  P‐boxes)  dépendantes    de  clés  dynamiques  sont  proposées.  Les  boîtes  de substitution  sont  conçues  pour  une  entrée/sortie  de 8 bits (traitement octet par octet). 

Les  boîtes  de  permutation  sont  essentiellement  conçues  à  partir  des  cartes  chaotiques  monodimensionnelles (1‐D) et bidimensionnelles (2‐D) comme les cartes cat et standard qui  sont bijectives mais non inversibles à cause de la fonction modulo. Notons au passage que la  carte  chaotique  standard  est  extrêmement  coûteuse  en  implémentation  matérielle,  car  elle  utilise la fonction sinus qui sera forcement calculée en virgule flottante.   

 Pour cette catégorie de crypto‐systèmes, le gain obtenu en termes de quantité d’information  traitée et de temps de traitement est balancé par la robustesse globale obtenue. 

Chaque algorithme de chiffrement/déchiffrement est aussi caractérisé par :  • les composantes du  SPN  (ou la fonction d’itération) 

• taille du bloc à chiffrer/déchiffrer en bits : 64, 256, 1024 bits 

• taille  de  la  clé  secrète  qui  doit  être  supérieure  à  128  bits,  pour  contourner  les  attaques exhaustives.   

Par  ailleurs,  pour  tous  les  algorithmes  proposés,  avant  de  commencer  le  processus  de  chiffrement,  dʹabord,  nous  lisons  lʹimage  I  et  lʹexprimons  sous  forme  d’un  tableau  1‐D  de  taille , où  est le nombre de lignes,   est le nombre de colonnes et   est le nombre  de plan (P=3, pour une image couleur RGB). Ensuite, nous divisons le tableau 1‐D en blocs  de  taille  fixe  2  bits, avec   entier. Le nombre dʹoctets dans un bloc est égal à  /8 2 .