• Français
Accueil
23-11-2008
 
 
Le Laboratoire
forum
Menu principal
Accueil
News
Tips
Articles
Letterman Subscribe




La cryptologie VPN
Écrit par Buty Julien   
26-06-2007
Index de l'article
La cryptologie VPN
Page 2
Page 3
Page 4
Page 5
Page 6
4.    Blowfish

4.1             Bref historique

L’algorithme Blowfish a été conçu par Bruce Schneier de la société Counter Software en 1993. Blowfish est une véritable alternative aux algorithmes existants de part sa puissance et sa rapidité. Son code source n’est pas breveté, mais il a fait récemment l’objet d’une analyse qui en a conclue qu’il est suffisamment fiable. Certains experts se prêtent même à dire qu’il sera le futur standard, celui qui remplacera le D.E.S.

Blowfish est un algorithme à clé privée. Une seule clé est donc utilisée pour chiffrer et pour déchiffrer les données.


4.2             Ou est-il utilisé ?

SSH dans sa version 2 utilise cet algorithme pour crypter les données à transmettre.

Il est aussi disponible dans la librairie crypto de OpenSSL.

Les solutions de VPN VTun, cIPe et tinc utilisent aussi cet algorithme pour chiffrer les données à envoyées sur le réseau. (VTun utilise aussi cet algorithme pour la phase d’authentification, en le faisant fonctionner en mode challenge)


4.3             Fonctionnement

Le mécanisme de Blowfish peu être divisé en deux étapes.

Premièrement, on observe une expansion de la clé et une initialisation d’un tableau et de quatre S-Boxes.

Secondement, Blowfish fait intervenir une fonction, ou il chiffre les données entrantes.

Expansion et initialisation :

La clé qui a été généré (de 448 bits maximum) est divisée en un sous-ensemble de clés.

Puis un tableau P est initialisé ainsi que 4 S-Boxes.

Le tableau P compte 18 sous clés de 32 bits chacune, chaque S-Boxes contient 256 entrées.

Voici les différentes étapes pour calculer les sous-clés à partir de la clé principale.

  • Initialisation du tableau P et des S-Boxes avec une chaîne de caractères fixe.
  • Opération XOR (ou exclusif) entre les 18 entrées du tableau P et les bits de la clé.

Exemple : P[1] XOR (1ere sous-clé de 32 bits)

P[2] XOR (2ème sous-clé de 32 bits)

.......

P[18] XOR (18ème sous-clé de 32 bits)

Une fois tous les bits de la clé utilisé on boucle en recommençant à partir les 32 premier bits.

  • A cette étape Blowfish chiffre la chaîne de caractère all-zéro, en utilisant les sous-clés. Nous avons donc en sortie P[1] et P[2].
  • Chiffrement de P[1] et P[2] avec les sous-clés modifiées. Nous avons maintenant en sortie P[3] et P[4].
  • Les deux dernières étapes sont répétées 521 fois afin de calculer les nouvelles sous-clés pour le tableau P et pour les 4 S-Boxes.

Le chiffrement des données :

Voici une approche du mécanisme de chiffrement de Blowfish en langage algorithmique.

PROGRAMME Blowfish

/* x est un bloc de 64 bits à crypter */

DEBUT

Diviser x en 2 : xL et xR

     Pour i allant de 1 à 16 pas de 1 faire
          xL = xL XOR P[i]
          xR = F(xL) XOR xR
          Permuter xL et xR

     Fin Pour

     Permuter xL et xR

     xR = xR XOR P[17]

     xL = xL XOR P[18]

     x = xL + xR

     Retourner x

FIN

Comme on peut l’observer dans l’algorithme ci-dessus, une fonction F est utilisée.

Voici, toujours en langage algorithmique son fonctionnement.

Début fonction F(Entrée : xL : 32 bits de données)

     Diviser xL en 4 : a, b, c, d
     Retourner ((S1,a + S2,b MOD 232) XOR S3,c) + S4,d MOD 232

Fin fonction F

Pour décrypter un cryptogramme Blowfish, il suffit d’utiliser la clé ayant servi lors du chiffrement, Blowfish étant un algorithme symétrique.



Dernière mise à jour : ( 31-12-2003 )
 
< Précédent   Suivant >
CLTE - Moteur de tests en ligne
Le CLTE est le moteur de tests en ligne du Laboratoire SUPINFO des Technologies Cisco.
Connectez-vous ! Création d'un compte gratuit
 
Top! Top!