IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Discussion :

Modifier une clé de cryptage


Sujet :

Windows

  1. #1
    Futur Membre du Club
    Inscrit en
    Juillet 2004
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 4
    Points : 5
    Points
    5
    Par défaut Modifier une clé de cryptage
    Bonjour

    J'ai créé une fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void CreateRC4Key(unsigned char* hashedMsg, int sizeMsg, unsigned char** hKey, int* sizeKey);
    qui me renvoit sans problème une clé de session créée à partir d'un password hashé (un key BLOB ou un unsigned char*).

    Ensuite j'ai une fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void EncryptRC4(unsigned char* msg, int* sizeMsg, unsigned char* key, int* sizeKey, unsigned char** out)
    qui crypte un message grâce à cette clé sans problème !


    Le problème vient du fait que mon algorithme de cryptage PDF me demande d'appeler 19 fois en boucle cette méthode (output devient input) en changeant la clé à chaque itération.

    la modification à apporter à la clé est la suivante :
    "use an encryption key generated by taking each byte of the encryption key obtained first and performing a XOR operation between that byte and the single-byte value of the iteration counter (from 1 to 19)"
    Algo qui vient du Pdf Reference 1.5 pgf 101 algo 3.3 :
    http://partners.adobe.com/public/dev...rence15_v6.pdf
    (attention le fichier pdf fait plus de 1000 pages donc faire un "save as")


    Donc mon problème est le suivant :
    - Comment modifier correctement la clé de cryptage ?
    (j'ai cru comprendre qu'il y avait un header à ne pas modifier)

    j'ai essayé de le faire mais je n'ai pas réussi à isoler les bytes "utiles" de la clé à modifier et j'ai donc tout modifié, ce qui donne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for &#40;int i = 1; i <= 19; i++&#41;
    &#123;
         for &#40;int j = 0; j < sizeKey ; j++&#41;
             &#40;&#40;BYTE*&#41;newKey&#41;&#91;j&#93; = &#40;&#40;BYTE*&#41;key&#41;&#91;j&#93; ^ &#40;&#40;BYTE*&#41;&i&#41;&#91;0&#93;;
    &#125;
    Le résultat est que la fonction CryptImportKey ne fonctionne plus du tout


    Merci d'avance


    (en espérant que cette fois ma question est plus sensée )

  2. #2
    Futur Membre du Club
    Inscrit en
    Juillet 2004
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    L'algorithme PDF n'est pas très clair, j'ai trouvé un exemple sur le net en java qui fonctionnait et il n'est pas à 100% identique.
    La grosse différence : il ne modifie pas la clé !

    Donc en gros ma question n'a plus beaucoup de sens.

    Je pense d'ailleurs que changer cette clé et la réutiliser n'est pas réalisable avec les fonctions de wincrypt (et n'est pas très logique).

    Voilà, sujet clos...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 05/01/2005, 13h43
  2. Modifier une partie de la source
    Par Sékiltoyai dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 29/10/2004, 21h52
  3. comment modifier une texture?
    Par tibyann dans le forum DirectX
    Réponses: 6
    Dernier message: 16/06/2004, 15h27
  4. [C#] Modifier une base de donnée
    Par Macintoc dans le forum Accès aux données
    Réponses: 15
    Dernier message: 03/06/2004, 11h49
  5. Modifier une partion ntfs avec Disk druid
    Par Sébastien dans le forum Administration système
    Réponses: 5
    Dernier message: 24/09/2003, 14h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo