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

VB.NET Discussion :

Problème de cryptographie (à l'import de la clé RSA)!


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 43
    Par défaut Problème de cryptographie (à l'import de la clé RSA)!
    Bonjour, je suis un novice en la matière je tiens à le dire avant tout chose !

    Voilà, je suis actuellement en stage, et chargé d'un module ce cryptographie, à savoir validation de certificat et de signature numérique. Le sujet est passionant il faut l'admettre mais à s'en tirer les cheveux. Pour ma part, j'ai fait pas mal de recherche la dessus, et je vois à peu prés comment marche la chose, les normes européennes et pourrais parler pendant des heures de l'histoire de la cryptographie à travers les âges (bon aprés 5 jours de documentation et de recherche, pas bien dur).

    voilà mon problème :
    J'ai mon modulus, notons M, et mon exposent, notons E.
    M a une taille de 128 octets (1024 bits) et E de 8 octets (64 bits).
    j'ai insérer M et E en brute dans mon code pour les tests.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    dim M as byte() = #Modulus#
    dim E as byte() = #exponent#
    ou dim M as String = #Modulus#
    dim E as string = #exponent#
    j'ai créer un RSAparameter et un RSAPKCS1SignatureDeformatter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    dim Keyrsa as new RSAparameter 
    dim rsa as new RSAPKCS1SignatureDeformatter
    J'ai testé plusieurs façon de faire mais à chaque fois le problème pêche à l'import de la clé RSA :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    rsa.importparameters(Keyrsa) (avec Keyrsa.Modulus = M et Keyrsa.exponent = E)
    rsa.FromXmlString(Keyrsa) (avec Keyrsa = <RSAKeyValue><Modulus>M</Modulus><Exponent>E</Exponent></RSAKeyValue>)
    cependant à chaque fois il me relève une erreur "Cryptographicexception : données incorrectes."
    De quoi cela pourrait il venir?
    est ce que la marche a suivre de base est correcte ou non?

    Merci d'avance pour les réponse !

    Amicalement vierax.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 43
    Par défaut
    Aprés encore plusieurs recherches je crois comprendre que le problème viendrait du fait que mon Module fait 1024 bits et que, àpriori, vb.net ne gére pas une si grande capacité de nombre.

    ToW?

    Merci d'avance pour votre aide.

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    299
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 299
    Par défaut
    Bonjour,
    Je fais de la crypto triple DES sans problème, donc je n'ai pas de code à te fournir pour RSA mais...

    - As-tu vérifié dans l'aide la taille requise des tableaux de byte pour cet algorithme (en général, tu as un Initialisation Vector et une clef, et chaque algorithme de cryptage a besoin d'une taille précise pour fonctionner).
    - Il y a peut être aussi une limitation de valeur pour ton exposant (et tu aurais alimenté à la main une valeur trop élevée).

    Ce ne sont que des pistes...
    Envois nous ton code, peut être celà fera t'il avancer le schmilblik ?

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 43
    Par défaut
    Voilà le code en question, il a subit plusieurs modification entre temps avec de nombreux test de ma part mais dans l'idée il donne ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     Dim modulusS As String = #Modulus#        
            Dim modulus As Byte() = modulusS en byte
            Dim exponentS As String = #Exponent
            Dim exponent As Byte() = exponentS en byte
     
            'Test avec le Xml
            'Dim keyXmlString As String = "<RSAKeyValue><Modulus>" + modulusS + "</modulus><Exponent>" + exponentS + "</Exponent></RSAKeyValue>"
     
            Dim rsa As New Cryptography.RSACryptoServiceProvider
            Dim Keyrsa As New Cryptography.RSAParameters
     
            Keyrsa.Modulus = modulus
            Keyrsa.Exponent = exponent
            rsa.ImportParameters(Keyrsa)
            'RSAcsp.FromXmlString(keyXmlString);
    l'erreur relevé : Cryptography.cryptographyexception : donnée incorrect.

    La longueur de la clé que je met fais bien 128 octets, et l'exposant a bien la taille de 8 octets, pas de problème à ce niveau là, c'est certain.

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    299
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 299
    Par défaut
    OK, merci pour le code.
    Es-tu sur que tu as renseigné tous les paramètres requis ?
    L'ami MSDN me donne une liste bien plus complète que Exponent et Modulus.
    Peut être tout simplement que certains paramètres nécessaires à cet algo ne sont pas renseigné ?

    D Represents the D parameter for the RSA algorithm.
    DP Represents the DP parameter for the RSA algorithm.
    DQ Represents the DQ parameter for the RSA algorithm.
    Exponent Represents the Exponent parameter for the RSA algorithm.
    InverseQ Represents the InverseQ parameter for the RSA algorithm.
    Modulus Represents the Modulus parameter for the RSA algorithm.
    P Represents the P parameter for the RSA algorithm.
    Q Represents the Q parameter for the RSA algorithm.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 43
    Par défaut
    Je sais que msdn donne une tel liste mais la plupart des autres informations sont obsoléte. Je m'explique.

    L'algorithme utilisé est rsa qui fonctionne avec une paire de clé : la clé privé et la clé publique. Je suis en possession de la clé publique a savoir n et e (le module et l'exposant donc).
    Les autres information (d, p, q...) sont des information en rapport avec la clé privé (p, q nombre premier servant a calculer n, ect ect...) ils n'ont donc pas de rapport avec la phase de déchiffrement qui m'interesse.

    Je pense avoir remplit les bon champs, et le remplissage des champs secondaires est inutile ici.

Discussions similaires

  1. problème de package d'importation
    Par Mangacker dans le forum C++Builder
    Réponses: 3
    Dernier message: 13/01/2007, 11h06
  2. Réponses: 2
    Dernier message: 19/12/2006, 18h37
  3. Problème lors de l'import de Oracle 9i à XE
    Par cedrich dans le forum Oracle
    Réponses: 7
    Dernier message: 29/09/2006, 16h16
  4. Réponses: 8
    Dernier message: 27/07/2006, 09h40
  5. Réponses: 2
    Dernier message: 28/10/2005, 20h43

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