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

Sécurité Java Discussion :

[Bouncy Castle] Taille des clefs générées avec ECDSA


Sujet :

Sécurité Java

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 2
    Points : 2
    Points
    2
    Par défaut [Bouncy Castle] Taille des clefs générées avec ECDSA
    Bonjour,

    Je cherche à signer un message avec BouncyCastle (version 1.39) et l'algorithme ECDSA. Dans un premier temps, je dois générer des clefs dont la taille doit faire 192 bits. J'utilise donc la courbe prédéfinie prime192v1. Cependant, les tailles des clefs publique et privée générées font respectivement 75 et 59 octets au lieu des 192 bits (donc 24 octets) attendus

    Le "192" dans le nom de la courbe prime192v1 ne correspondrait pas à la taille de la clef qu'on souhaite générée ? Dans ce cas, comment indiquer au générateur qu'on souhaite obtenir une clef de 192 octets ?

    Vous trouverez le code ci-dessous (Java 6).

    Merci

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    public class ECDSAKeyPairTest {
     
    	private static KeyPair generateKeyPair(String curve)
    			throws NoSuchAlgorithmException, NoSuchProviderException,
    			InvalidAlgorithmParameterException {
    		KeyPairGenerator keyGen = KeyPairGenerator.getInstance("ECDSA", "BC");
    		ECGenParameterSpec ecSpec = new ECGenParameterSpec(curve);
    		keyGen.initialize(ecSpec, new SecureRandom());
     
    		KeyPair keyPair = keyGen.generateKeyPair();
    		return keyPair;
    	}
     
    	private static void displayKeyPair(KeyPair keyPair) throws Exception {
    		System.out.printf("Taille de la clef publique %d octets%n", keyPair
    				.getPublic().getEncoded().length);
    		System.out.printf("Taille de la clef privée %d octets%n", keyPair
    				.getPrivate().getEncoded().length);
    	}
     
    	public static void main(String[] args) {
    		try {
    			Security.addProvider(new BouncyCastleProvider());
     
    			String curve = "prime192v1";
    			KeyPair keyPair = generateKeyPair(curve);
    			displayKeyPair(keyPair);
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    	}
     
    }

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Finalement, j'ai trouvé la solution

    Le problème venait du code ci-dessous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    System.out.printf("Taille de la clef publique %d octets%n", keyPair.getPublic().getEncoded().length);
    System.out.printf("Taille de la clef privée %d octets%n", keyPair.getPrivate().getEncoded().length);
    La méthode getEncoded() ne renvoie pas le contenu "brut" de la clé mais un encodage au format DER de la clé avec des informations supplémentaires (algorithme utilisé et paramètres de l'algorithme) ce qui explique les différences entre la taille de la clé voulue et la taille affichée par le code ci-dessus.

    Je mets à résolu (euh, j'ai le droit ?).

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

Discussions similaires

  1. [Bouncy castle] Envoyer un mail chiffré avec piece jointe
    Par finalevirus dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 27/04/2013, 23h34
  2. [JAX-WS] quel est le role des classes générée avec WSGen
    Par solawe dans le forum Services Web
    Réponses: 2
    Dernier message: 05/05/2008, 11h44
  3. RSA, taille des clefs
    Par frizou11 dans le forum Sécurité
    Réponses: 8
    Dernier message: 09/07/2007, 15h20
  4. Réponses: 1
    Dernier message: 22/06/2007, 15h48
  5. [sqlserver] Récupération des clefs générées
    Par if_zen dans le forum JDBC
    Réponses: 1
    Dernier message: 20/07/2006, 22h10

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