London,
16 Juillet 2000

Note: Ce fichier est tres vieux, datant de novembre 1995.
      Il ne traite que de la premiere version de mon algorithme,
      la vraimment toute premiere version. L'algorithme utilise
      maintenant est tres different mais l'idee reste la meme.
      C'est pour cela que j'ai decide de laisser ce fichier.

      Je voudrais faire une meilleur documentation en francais.
      Mais le probleme est que je n'ai que tres peu de temps, 
      et la pluspart des personnes me donnant des commentaires parlent
      en anglais.
      Si seulement une dizaine de personnes me demandent
      de traduire tout le projet, je ne pense pas que cela vaut 
      la peine...
     
      Une note a propos de du texte qui suit, j'avais du bride mon programme
      pour le diffuser, etant tres frustre j'avais fait en sorte qu'il suffisait
      de supprimer une fonction dans le programme source pour que le bridage
      soit casse. C'est pour ce la que j'avais ecrit dans le texte qui suit:
      "j'espere que vous comprendrez ..."  ;o) 

------------------------------------------------------------------

         
                  EXPLICATIONS SUR LE FONCTIONNEMENT DE
                   L'ALGORITHME DE SYLVAIN MARTINEZ :
                               B U G S
                   (Big and Usefull Great Security)

                           3 Novembre 1995

                  COPYRIGHT (c) 1995,1996,1997, MARTINEZ Sylvain


       Explication de la premiere methode , differente de celle utilisee
       actuellement ( traitement des bits).
       Mais le principe est pratiquement le meme, ce qui change c'est
       la facon d'utiliser la cle de codage car j'utilise la methode de
        "la cle de codage tournante" (copyright Martinez sylvain ;)
       Pour plus de renseignement il faut regarder les commentaires
       present dans le fichier libcrypt.c 

       Si ce programme interesse beaucoup de monde je realiserais une doc
       plus complete ... donc contactez moi ! :)

       N'oubliez pas dans votre jugement que ce programme est en version
       bridee ... inutile de me demander une version debridee car je n'ai
       pas le droit de la diffuser ...
       j'espere que vous comprendrez ...


PRINCIPE:
      -Saisie d'un mot ayant 7 lettres au minimum et 15 au maximum
      -Transcription de chaque lettre en un nombre a 2 chiffres 
      -On prend le dernier nombre , note xy,
         * On prend le chiffre a la position x et on l'ajoute a tous
           les nombres.
         * On fait pareil avec le chiffre a la position y
      -Si la longueur du mot tape est < 15 :
         * On ajoute x+y 
           Si dans le mot tape il a y a z lettres, il faut que x+y <= 2z
           sinon, on rajoute les unites avec les dizaines et on refait
           le teste (x+y <= 2z) jusqu'a ce que cela soit verifie.
         * A la position (x+y)+1 on va rajouter les nombres manquants:
           suite de nombre= 1ere lettre + x , 2e lettre + x , etc...
      -On intervertit le 1er chiffre avec le (1+y)+1 eme chiffre
          On recommence avec le 2eme chiffre jusqu'a ce que: 
              (1+y)+1 = (longueur-y)
      -On recommence a intervertir, mais cette fois ci avec le chiffre (1+x)+1 
       et ainsi de suite avec le chiffre w (qui se trouve avant x) , etc ...
      -On va maintenant coder la suite de chiffre obtenu precedemment:
       on raisonne desormais avec des nombres a 2 chiffres.
       on prend un chiffre entre 33 et 126 (caracteres affichables) au HASARD
       qui sera la cle de codage.
       ce chiffre on va l'ajouter au premier nombre a 2 chiffres et le 
       retrancher avec le 2e nombre puis l'ajouter au 3e, le retrancher au
       4e ,etc ...
       
       on va reutiliser la variable xy pour inserer la cle de codage:
       a la position x on va decaler le chiffre de 1 vers la droite
       et ajouter les dizaines de la cle de codage au chiffre, on place
       le resultat a la position x. (a la position x+1 se trouve maintenant 
       le chiffre qui se trouvait a la position x)
       pour les unites de la cle de codage , on fait pareil mais avec le
       chiffre a la position y.


REM:   Pour savoir si un passwd est le meme qu'un passwd tape precedemment,
       je crypte le mot et je le compare avec l'ancien.
       Mais, il faut d'abord recuperer la cle de cryptage car un meme mot
       crypte peut prendre 63 FORMES DIFFERENTES
       puisque la cle de cryptage est place a une position dependante du
       mot tape , je peux connaitre la position de la cle de cryptage...
       
AVANTAGES de cette methode: 
       
       - la longueur du mot crypte est INDEPENDANTE du mot de passe tape
       - doit generer un mot crypte de 17 lettres INDECRYPTABLE, et ce meme
         avec la source du programme ...  
       - il existe 63 formes DIFFERENTES pour un meme mot de passe
       - la cle de codage est choisie ALEATOIREMENT
       - la cle de codage est cryptee (additionnee a un chiffre)
       - la position de la cle de codage VARIE celon le mot de passe
       - le mot de passe est brasse de NOMBREUSES fois
       - avant d'etre brasse les chiffres correspondant aux lettres sont
         d'abord codes (c'est un petit codage) cela permet de ne pas 
         travailler directement avec les chiffres correspondant au mot
         de passe tape.

EXTENSION de cette methode:
        
       J'ai etendu cette methode pour crypter des fichiers.
       Pour faire cela , j'ai voulu faire la chose suivante:
       Creer un filtre (mot crypte que j'additionne aux lettres du fichier)
       qui soit AUSSI GRAND QUE LE FICHIER LUI MEME .

       pour ne pas avoir a creer un mot dans la memoire qui risquait d'etre
       trop grand si le fichier a crypte etait enorme, j'ai utilise la methode
       suivante :
          le mot de passe tape est crypte puis ajoute ,a une position 
          depandant du mot tape, dans le fichier
          la forme cryptee est alors REUTILISEE pour servir de 2e mot de
          passe et ainsi constituer un nouveau 'petit' filtre de 17 caracteres
          et je continue jusqu'a ce que TOUT le fichier est ete 'FILTRE'
         
       AINSI c'est comme si j'avais utilise un filtre AUSSI GRAND que le 
       fichier ...

Si vous avez des remarques a me faire, des encouragements ou toute autre
chose a me dire contactez moi :
                 martinez@asi.fr 
 


