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

C Discussion :

[SECURITE] Chiffrement C ANSI pour dechiffrement JAVA


Sujet :

C

  1. #1
    Membre averti
    Inscrit en
    Octobre 2003
    Messages
    30
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Octobre 2003
    Messages : 30
    Par défaut [SECURITE] Chiffrement C ANSI pour dechiffrement JAVA
    Bonjour,

    Je vous explique ma problèmatique : le but est de chiffrer des données en C ANSI et de les déchiffrer en JAVA en utilisant un algo symétrique.

    Les implémentations choisies sont :
    * libmcrypt pour le C,
    * JCE (fournisseur BouncyCastle) pour Java

    L'algo choisi est le Triple DES en mode CFB.

    Problème : en utilisant les memes valeurs initiales (IV), la meme clé, la meme chaine en entrée a chiffrer, le résultat du chiffrement en C donne un résultat différent de celui fait en Java.

    J'ai fait le test avec un algo AES mais j'ai le même problème.

    Je vois vraiment pas ce qui se passe.

    J'ai des sources diponibles si quelqu'un se sent pouvoir me répondre.

    Merci d'avance

  2. #2
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Par défaut
    Bonjour,

    Cela vient a priori de la librairie que tu utilises pour chifrer/déchifrer ton message.

    As-tu essayé de voir s'il n'était pas possible de trouver une librairie ayant été implémentée pour Java et pour le C ?

    Autre idée : utilser les JNI (Java Native Interface) pour faire un wrapper au dessus de la librairie C. Avec cela, tu es certain d'utilser exactement la même librairie, mais coder la JNI demande du temps
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  3. #3
    Membre averti
    Inscrit en
    Octobre 2003
    Messages
    30
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Octobre 2003
    Messages : 30
    Par défaut
    Merci pour ta réponse.

    Citation Envoyé par gangsoleil
    Bonjour,
    As-tu essayé de voir s'il n'était pas possible de trouver une librairie ayant été implémentée pour Java et pour le C ?
    Même avec une implémentation différente, le résultat du chiffrement devrait quand même correspondre. Me trompe-je?

    Pour JNI, ben ç'est quand même dommage d'avoir du JCE sous la main et pas pouvoir s'en servir. Et puis comme tu l'as dit, c'est long, mais en plus dépendant de la plate-forme, donc pas vraiment interessant.

  4. #4
    Expert confirmé

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Par défaut
    Ma femme a fait l'algo DES y a quelques mois, je vais lui demander mais je suppose que le dechiffrement dans le cas C et Java fonctionnait quand meme bien?

    Tu tombais sur la chaine de depart?

  5. #5
    Membre averti
    Inscrit en
    Octobre 2003
    Messages
    30
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Octobre 2003
    Messages : 30
    Par défaut
    Pour résumer:

    *en C
    texte de départ TEXTE1 -> chiffrement -> resultat CHIFFRE1 -> dechiffrement -> TEXTE1

    *en Java
    texte de départ TEXTE1 -> chiffrement -> resultat CHIFFRE2 -> dechiffrement -> TEXTE1

    Dans les deux cas, la chaine de depart est bien retrouvée.
    Ce qui me gêne plus, c'est que le résultat du chiffrement diffère entre C et Java, car le cas qui m'intéresse est :
    texte de départ TEXTE1 -> chiffrement en C -> resultat CHIFFRE -> dechiffrement JAVA -> TEXTE1

  6. #6
    Expert confirmé

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Par défaut
    A mon souvenir le chiffrement DES se fait au niveau des bits... Je ne connais pas assez les normes de C ou de Java pour le certifier mais est-il possible que leur gestion des caracteres n'est pas la meme.

    Par contre si tu chiffres en utilisant des entiers comme bloc de base, il se peut que tu aies un probleme de little endian/big endian...

    Tu chiffres a quel niveau? Tu prends caractere a caractere? En petits blocs?

  7. #7
    Membre averti
    Inscrit en
    Octobre 2003
    Messages
    30
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Octobre 2003
    Messages : 30
    Par défaut
    En tant qu'utilisateur d'une API de chiffrement, je ne connais pas l'implémentation sous-jaçente. Donc, à vrai dire, je ne sais pas te répondre.

    Cependant, pour finir sur une note positive, j'ai testé avec succès l'interfaçage Java avec la librairie MCRYPT via JNI. Je pense donc m'orienter vers cette solution.

    Merci a tous pour votre aide.

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

Discussions similaires

  1. Liste des mots français pour application JAVA
    Par elitost dans le forum Général Java
    Réponses: 15
    Dernier message: 16/08/2010, 15h57
  2. [SECURITE] Chiffrement 3DES C et dechiffrement JAVA
    Par dams50 dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 12/12/2005, 21h58
  3. [Sécurité] configuration de IIS pour php4
    Par sahmi9 dans le forum Langage
    Réponses: 1
    Dernier message: 24/10/2005, 16h59
  4. Réponses: 2
    Dernier message: 08/09/2005, 12h18
  5. Réponses: 1
    Dernier message: 22/03/2005, 14h28

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