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

Algorithmes et structures de données Discussion :

[Conseils] Comparatif pour algo de chiffrement ou cryptographie


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    BiM
    BiM est déconnecté
    Expert confirmé
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Par défaut [Conseils] Comparatif pour algo de chiffrement ou cryptographie
    Bonjour,

    Je ne fais pas bien la différence entre le chiffrement et la crypto mais je suis obligée de m'y intéresser.

    En clair, je dois crypter (ou chiffrer) un fichier efficacement avec une clé privée pour le chiffrer et une clé publique pour le déchiffrer (et non l'inverse ).

    Il faudrait que l'algorithme soit encore inviolé (au moins à un certain niveau) et si possible libre d'utilisation.

    Bon, j'ai regardé un peu ce qui existait et j'avoue que j'ai du mal à m'y retrouver :
    • DES et 3DES : Apparement considérés comme obsolètes, protection trop faible
    • Blowfish : Il serait pas mal mais je ne sais pas s'il a une clef publique et une clef privée
    • Twofish : Dérivé de Blowfish mais est-il plus fiable ? Quels sont les avantages et les inconvénients par rapport à Blowfish ?
    • Rijndael (et AES) : Adopté comme standard. A-t'il été cassé ? Est-il libre ?
    • Serpent : Visiblement, il est sensiblement identique à Rijndael mais plus lent.
    • Autres ?


    Quels sont ceux libres d'utilisation ? Quels sont ceux qui ont une clé différente pour le chiffrement et le déchiffrement ? Quels sont ceux qui ont été cassés et à quel niveau (et ce que cela veut dire) ?

    Pour vous aider à répondre dans mon sens, le but de cet algorithme serait de chiffrer un fichier type XML ou autre de licence.

    Merci de votre aide !

    Webographie :
    [PDF] Algorithmes de chiffrement (22/06/2005) Document un peu ancien
    [Wiki] Wikipédia, portail cryptologie
    (et autres liens du Wikipédia concernants entre autre les algos cités ci-dessus)

  2. #2
    Membre émérite
    Inscrit en
    Janvier 2005
    Messages
    711
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 711
    Par défaut
    en fait tu n'as pas 50 possibilités ! les cryptosystemes a cle publique/privé et les symetriques sont foncierement differents et ne peuvent pas etre utilisé l'un a la place de l'autre.

    tous ceux que tu cites sont des sytemes syetriques, donc a priori ils ne t'interresse pas (enfin, tout depend de ce que tu veux faire exactement).

    les 2 seuls, a ma connaissance, systeme a cle publiques (tous 2 libres de droit, enfin le 2e est un peu plus libre, le premier a ete breveté un temps, mais ce n'est plus le cas crois-je) sont :

    - RSA, le plus connu, basé sur la difficulté de factoriser de grands entiers
    - elgamal, moins connu mais aussi bien voire mieux (http://fr.wikipedia.org/wiki/Cryptos...8me_de_ElGamal) basé sur la difficulté de calculer des logarithmes discrets...

    ne te laisse pas effrayer par le terme de "log discret", ca n'est pas tres compliqué : connaissant 3 entiers g, a et m, il s'agit de retrouver un certain x tel que g^x=a modulo m.

    en general le procede que tu decris (chiffre avec la prive, dechiffrer avec la publique) sert a signer un document pour en attester l'auteur. est ce que tu veux faire ? dans ce cas, en general, on ne chiffre pas directement le document (ces algos sont un peu lent, vu qu'ils requiert des calculs mathematiques), mais on chiffre la somme md5 ou sha-1 du document (ce qui va beaucoup plus vite, et suffit a identifier le document formellement). le protocole est le suivant :

    - l'auteur calcule le hash (md5 ou SHA) de son document
    - il crypte ce hash avec sa cle privé et fournit le document et la signature (eventuellement dans un meme fichier)

    - le lecteur caclule aussi ce hash
    - il dechiffre la signature grace a la cle publique de l'auteur
    - il compare les 2.

  3. #3
    Membre émérite
    Inscrit en
    Janvier 2005
    Messages
    711
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 711
    Par défaut
    tiens, au passage : tu pourrais etre interressé (je pense meme que c'est la meilleure solution) par l'algorithme DSA (pour digital signature algorithme) qui est specifiquement concu pour signer des documents en utilisant le meme principe qu'elgamal.

    http://fr.wikipedia.org/wiki/Digital...ture_Algorithm

  4. #4
    Membre éprouvé
    Avatar de Janitrix
    Inscrit en
    Octobre 2005
    Messages
    3 391
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 3 391
    Par défaut
    Il faut savoir que les algorithmes asymétriques (clé publiques/clé privée) sont plus lents et ne peuvent pas crypter beaucoup de données. Lorsque j'ai débuté la cryptographie avec Java, j'ai été surpris que par exemple, si tu veux crypter un fichier avec RSA, et que tu as une clé de 1024 bits, tu ne pourras pas crypter un fichier de plus de 1024 bits ! Ce qui limite énormément la marge d'utilisation.

    Donc, la parade qui a été trouvé est de crypter le fichier avec un algorithme symétrique, relativement sur, et surtout rapide, puis de crypter la clé de chiffrement de cette algorithme avec RSA, algorithme sûr, et sa lenteur n'est pas un problème puisqu'il ne faut crypter que très peu de données (la taille d'une clé de chiffrement).

    Plusieurs discussions existent déjà, je te conseille de lire le message de Razgriz, qui est très intéressant.

    Bonne chance et n'hésites pas à demander plus de précisions

  5. #5
    Membre émérite
    Inscrit en
    Janvier 2005
    Messages
    711
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 711
    Par défaut
    Citation Envoyé par Janitrix
    Lorsque j'ai débuté la cryptographie avec Java, j'ai été surpris que par exemple, si tu veux crypter un fichier avec RSA, et que tu as une clé de 1024 bits, tu ne pourras pas crypter un fichier de plus de 1024 bits ! Ce qui limite énormément la marge d'utilisation.
    euuuuh, que ces algos soient plus lents c'est indeniable, je l'ai deja expliqué. qu'il y ait une limitation dans la taille du message a chiffrer, ca par contre c'est totalement faux....

    et ton protocole est correcte pour quelqu'un qui veut chiffrer un fichier au sens classique. Or il semblerait que BiM cherche plutot un systeme de signature, donc pas besoin de cryptage symetrique. (enfin, on pourrait mais ca ralentirait pour rien..)

  6. #6
    BiM
    BiM est déconnecté
    Expert confirmé
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Par défaut
    Moi et la crypto, ca fait heu... un certain nombre


    En fait, le but est de faire un fichier de licence et que ce fichier de licence s'il est modifié manuellement soit invalide. Seulement, le mieux serait de ne même pas pouvoir le modifier ni de pouvoir le lire avec un éditeur de texte par exemple.

    Donc l'idéal serait de conserver les propriétés suivantes :
    • Confidentialité
    • Intégrité
    • Authenticité


    Le fichier initial (en XML ou texte) contient des données du type date de validité et différentes propriétés de limite d'utilisation du logiciel (en J2EE). Il est crypté avec une clef privée pour éviter que le client génère lui-même une licence valide et décrypté avec une clef publique pour que le logiciel puisse en lire le contenu.

    Que me conseillerais-tu ?

    à toi

    [EDIT]Entre temps, j'ai lu les 3 derniers messages Je vois ca après manger.[/EDIT]

  7. #7
    Membre émérite
    Inscrit en
    Janvier 2005
    Messages
    711
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 711
    Par défaut
    C'est bien ce que j'avais compris, dans ce cas le DSA me semble vraiment approprié, comme je te l'expliquais c'est justement fait pour authentifier un document, et qui dit authentifier dit evidemment preserver l'integrité..

    donc c'est exactement ce que tu decris, chiffrer avec une cle privée, dechiffrer avec la cle publique. sauf que comme je te le disais le mieux est de chiffrer un hash du fichier plutot que le fichier lui meme, c'est tout aussi secure et beaucoup plus rapide.

  8. #8
    Membre éprouvé
    Avatar de Janitrix
    Inscrit en
    Octobre 2005
    Messages
    3 391
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 3 391
    Par défaut
    J'avais mal compris, mais pour l'histoire de RSA et la taille des fichiers, j'avais trouvé un document de Sun qui disait qu'on ne pouvait pas crypter un fichier si la taille de ce fichier était plus grande que la clé, cela ne marchait tout simplement pas. C'est peut être seulement avec Java.

    Sinon, bah bonne chance BiM

  9. #9
    Membre émérite
    Inscrit en
    Janvier 2005
    Messages
    711
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 711
    Par défaut
    Citation Envoyé par Janitrix
    J'avais mal compris, mais pour l'histoire de RSA et la taille des fichiers, j'avais trouvé un document de Sun qui disait qu'on ne pouvait pas crypter un fichier si la taille de ce fichier était plus grande que la clé, cela ne marchait tout simplement pas. C'est peut être seulement avec Java.

    Sinon, bah bonne chance BiM
    en fait avec RSA (comme avec n'importe quel autre systeme symetrique ou assymetrique) on ne peut crypter qu'un bloc d'une certaine taille... mais pour crypter un gros fichier, il suffit de le decouper en bloc et de crypter chacun des blocs !!! et ca fonctionne pareil avec les sytemes symetriques, il y a meme des routines pour modifier la cle a chaque bloc ce qui peut renforcer encore la secutité..

  10. #10
    BiM
    BiM est déconnecté
    Expert confirmé
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Par défaut
    En parcourant le net à la recherche d'une réponse, une idée m'est venue.

    Par stéganographie, je pourrais aller jusqu'où ? Je peux intégrer n'importe quoi dans une image ? C'est facile à récuperer ?

Discussions similaires

  1. Réponses: 11
    Dernier message: 26/05/2008, 22h10
  2. Aide pour algo voyelle
    Par wareq dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 21/11/2005, 20h49
  3. Conseil livre pour comprendre scripts
    Par Filippo dans le forum Linux
    Réponses: 9
    Dernier message: 13/10/2005, 10h36
  4. [Conseil]Portable pour les études
    Par Mayhem dans le forum Ordinateurs
    Réponses: 11
    Dernier message: 22/08/2005, 17h04
  5. [sqlbaseserver]demande de conseils/aides pour requêtes
    Par GéniuS77 dans le forum Langage SQL
    Réponses: 14
    Dernier message: 18/03/2004, 17h27

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