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

Sécurité Java Discussion :

Cryptage asymétrique en java


Sujet :

Sécurité Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    juillet 2005
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : juillet 2005
    Messages : 65
    Points : 37
    Points
    37
    Par défaut Cryptage asymétrique en java
    Bonjour,
    Je souhaite crypter un message de façon asymétrique en java.
    J'utilise le provider Cryptix et l'edi NetBeans 5.0

    Donc pour cela:
    CLIENT
    -Le client génère une clé secrete
    -Crypte le message avec la clé secrete
    -Crypte la clé secrete avec la clé publique du serveur
    -Ils envoit a la la fois la clé secrete crypter et le message au serveur.

    SERVEUR
    -Le serveur génère une clé public et une clé privée
    -Récupère la clé crypté du client et le texte crypté
    -Décrypte la clé crypté avec sa clé privé
    -Décrypte le message avec la clé qu'il vient de décrypter

    Dans l'exemple de mon prof (pour le cryptage symétrique), ils envoit les données sous formes de tableau de bytes. Donc pour le cryptage asymétrique:

    Coté client, on a:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    //Cryptage du message avec la cle
    byte[] msgCrypter = crypterAvecCleSession("Hello world!");
     
    //Cryptage de la cle avec la cle publique
    byte[] cleCrypter = crypterCleAvecClePubliqueDuServeur();
     
    //Envoit du message et de la clé
    dos.write(msgCrypter);
    dos.flush();
    dos.close();
    De l'autre coté (serveur), je fais un:


    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
    16
    17
    18
    byte b;
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    byte[] texteCrypté;
     
    try 
    {
           while(true)
           {
                 System.out.println("et hop!");
                 b=dis.readByte();
                 baos.write(b);
           }
     
    }
    catch(EOFException e)
    {
            texteCrypté = baos.toByteArray();
    }

    Ca marche mais:
    1) Existe il une autre méthode que de forcer l'exception EOFException en fermant le dataoutputstream du client après avoir envoyer le tableau de bytes du message...parce qu'il faut ensuite envoyer le deuxième tableau de bytes (la clé crypté!)

    2) Une fois que je récupère la clé crypté sous forme de byte. Je l'a fait décrypter dans le serveur avec sa clé privée:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Cipher chiffrement = Cipher.getInstance("RSA","Cryptix");
    chiffrement.initDecrypt(clePrive);
    byte[] CleCrypterB = chiffrement.doFinal(cleCrypter);
    Mais j'obtient un tableau de bytes en final...hors j'aimerais un objet SecretKey. Hors impossible de convertir un tableau de byte en clé secrete


    Help me!

  2. #2
    Membre expérimenté Avatar de DoubleU
    Profil pro
    Inscrit en
    janvier 2006
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : janvier 2006
    Messages : 1 106
    Points : 1 339
    Points
    1 339
    Par défaut
    Au lieu d'enregistrer ta clé sous forme de tableau de bytes, essaie d'enregistrer les paramètres qui ont permis de créer ta clé et avec ces paramètres tu la recrées coté déchiffrement. Ca je l'ai déja fait donc c'est sur que ca marche ^^

    Aprés je me demande si c'est pas plus mal de sérialiser ta clé coté chiffrement et la désérialiser de l'autre coté, ce qui t'évites d'avoir a la recalculer, mais la j'ai pas testé.

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    décembre 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : décembre 2013
    Messages : 5
    Points : 7
    Points
    7
    Par défaut
    bonjour, peux tu me donner votre code complet?

Discussions similaires

  1. Cryptage/Décryptage compatible Java Linux
    Par pragmatique dans le forum Langage
    Réponses: 0
    Dernier message: 30/11/2009, 14h46
  2. Réponses: 11
    Dernier message: 03/11/2009, 15h20
  3. Cryptage des class java
    Par Ikmuss dans le forum EDI et Outils pour Java
    Réponses: 4
    Dernier message: 23/08/2009, 13h46
  4. Cryptage et decryptage java
    Par MrX dans le forum Sécurité
    Réponses: 9
    Dernier message: 11/07/2007, 11h30
  5. Clé de licence / Cryptage asymétrique
    Par Arnard dans le forum Sécurité
    Réponses: 7
    Dernier message: 27/02/2007, 11h38

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