1. #1
    Membre à l'essai
    Homme Profil pro
    Lycéen
    Inscrit en
    juin 2016
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 15
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : juin 2016
    Messages : 37
    Points : 13
    Points
    13

    Par défaut Algorithme de chiffrage symétrique

    Bonjour,
    Je viens de m'intéresser à la cryptographie et j'ai fait un algorithme symétrique qui s'inspire de Vernam.

    A chaque fois mon algo génère une chaine de caractère de longueur 8, et en déduit un masque aussi long que le texte.

    Pensez-vous qu'il est cassable ?

    http://149.91.88.117/Tests/Cryptage/Cryptage.html
      0  0

  2. #2
    Expert éminent Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    septembre 2005
    Messages
    2 655
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : septembre 2005
    Messages : 2 655
    Points : 6 148
    Points
    6 148

    Par défaut

    Bonjour

    Le "ou exclusif" est un chiffrement incassable. C'est mathématiquement prouvé. Tout le problème est dans la clé.
    Cette réponse vous plaît? Cliquez sur en bas à droite du message.
    Votre problème est résolu? Cliquez sur en bas de page.

    Linux, grep/sed/awk/xml... et autres fichiers plats, Java, C++
      0  2

  3. #3
    Membre à l'essai
    Homme Profil pro
    Lycéen
    Inscrit en
    juin 2016
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 15
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : juin 2016
    Messages : 37
    Points : 13
    Points
    13

    Par défaut

    Merci de votre réponse.
    Mais pouvez-vous m'expliquer où est le problème dans la clé ?
      0  0

  4. #4
    Expert éminent Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    septembre 2005
    Messages
    2 655
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : septembre 2005
    Messages : 2 655
    Points : 6 148
    Points
    6 148

    Par défaut

    La clé fait-elle la même taille que le message ? (ici, manifestement oui)
    La clé a-t-elle été vraiment déterminée aléatoirement ?
    Comment est transmise la clé ?

    Tout système de sécurité a la résistance du maillon le plus faible.
    Cette réponse vous plaît? Cliquez sur en bas à droite du message.
    Votre problème est résolu? Cliquez sur en bas de page.

    Linux, grep/sed/awk/xml... et autres fichiers plats, Java, C++
      1  0

  5. #5
    Membre à l'essai
    Homme Profil pro
    Lycéen
    Inscrit en
    juin 2016
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 15
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : juin 2016
    Messages : 37
    Points : 13
    Points
    13

    Par défaut

    Mon algorithme est un peu plus compliqué. Le voici en détail :

    On génere une clé jettable de 8 caractères ASCII.
    Le début du sha256 de la clé choisie chiffre la clé jettable avec Vigenere. On mets ce crypte au tout début du message.

    On prend le hash : sha1(la clé jettable suivie de la clé choisie).
    A partir de ce hash, on obtient un texte aussi long que le message, en ajoutant le hash de ce hash, puis le hash du hash precedent à chaque fois.

    Enfin cette suite de hash va servir à chiffrer le message avec le prinicipe de Vigenere.

    Voilà j'espere que c'etait comprehensible.
    Du coup il y a environ autant de suites de hash possibles que de cle jettables possibles (10^19).
    Et oui la cle jettable est bien faite au hasard, car j'utilise une fonction random pour faire 8 nombres de 0 à 255.
      0  0

  6. #6
    Expert éminent Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    septembre 2005
    Messages
    2 655
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : septembre 2005
    Messages : 2 655
    Points : 6 148
    Points
    6 148

    Par défaut

    Les ordinateurs sont faits pour obéir au doigt et à l'œil.
    Du coup, quand on leur demande de faire n'importe quoi, ils ne savent pas.
    Ta fonction RANDOM n'est pas aléatoire mais pseudo-aléatoire.
    C'est juste que la logique t'échappe.

    Pourquoi autant de complications puisqu'un "ou exclusif" suffit ?
    Quel est le but ?
    Cette réponse vous plaît? Cliquez sur en bas à droite du message.
    Votre problème est résolu? Cliquez sur en bas de page.

    Linux, grep/sed/awk/xml... et autres fichiers plats, Java, C++
      0  0

  7. #7
    Responsable Qt


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherches
    Inscrit en
    août 2008
    Messages
    22 588
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherches
    Secteur : Enseignement

    Informations forums :
    Inscription : août 2008
    Messages : 22 588
    Points : 125 601
    Points
    125 601

    Par défaut

    (Pour info, il existe pas mal de techniques pour générer des nombres aléatoires utilisables en crypto, donc très proches d'un véritable aléatoire : http://ram-0000.developpez.com/tutor...ptographie/#L9, https://fr.wikipedia.org/wiki/G%C3%A...yptographiques.)
    Vous souhaitez participer aux rubriques Qt ou PyQt (tutoriels, FAQ, traductions), HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !
      2  0

  8. #8
    Membre à l'essai
    Homme Profil pro
    Lycéen
    Inscrit en
    juin 2016
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 15
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : juin 2016
    Messages : 37
    Points : 13
    Points
    13

    Par défaut

    Je comprends pas bien ce qu'est le chiffrement ou exclusif... C'est comme quand on ajoute deux lettre modulo 26 ?
    Par exemple :
    E + Y Mod 26 = 5 + 25 Mod 26 = 4 --> D
      0  0

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    Architecte matériel
    Inscrit en
    décembre 2017
    Messages
    152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Architecte matériel

    Informations forums :
    Inscription : décembre 2017
    Messages : 152
    Points : 0
    Points
    0

    Par défaut

    Citation Envoyé par Nayl.VBcoder Voir le message
    Je comprends pas bien ce qu'est le chiffrement ou exclusif... C'est comme quand on ajoute deux lettre modulo 26 ?
    Non. Il s'agit de prendre
    - le message M de longueur n
    - une séquence secrète S de même longueur
    et d'envoyer
    M^S
    (ou exclusif de chaque octet)

    (On pourrait aussi utiliser toute autre opération circulaire, comme l'addition modulo.)

    Reste à savoir comment on fabrique S.
      0  3

  10. #10
    Membre à l'essai
    Homme Profil pro
    Lycéen
    Inscrit en
    juin 2016
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 15
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : juin 2016
    Messages : 37
    Points : 13
    Points
    13

    Par défaut

    Citation Envoyé par Flodelarab Voir le message
    Pourquoi autant de complications puisqu'un "ou exclusif" suffit ?
    Quel est le but ?
    En faite je peux aussi faire un ou exclusif entre la suite de hash et le message clair.
    Et les complications servent justement à générer la suite de hash (aussi longue que le texte) à partir de 8 caractères seulement.

    Du coup est-ce qu'il y aurait un moyen de casser ce chiffrage ?
      0  0

  11. #11
    Nouveau Candidat au Club
    Homme Profil pro
    Architecte matériel
    Inscrit en
    décembre 2017
    Messages
    152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Architecte matériel

    Informations forums :
    Inscription : décembre 2017
    Messages : 152
    Points : 0
    Points
    0

    Par défaut

    Citation Envoyé par Nayl.VBcoder Voir le message
    En faite je peux aussi faire un ou exclusif entre la suite de hash et le message clair.
    Et les complications servent justement à générer la suite de hash (aussi longue que le texte) à partir de 8 caractères seulement.

    Du coup est-ce qu'il y aurait un moyen de casser ce chiffrage ?
    On génere une clé jettable de 8 caractères ASCII.
    Déjà pourquoi 8 caractères ASCII?

    Pourquoi ASCII? Quels caractères? Imprimables? Tous?

    Ensuite tu n'as pas expliqué comment tu transmets cette clef de façon sûre.
      0  3

  12. #12
    Membre à l'essai
    Homme Profil pro
    Lycéen
    Inscrit en
    juin 2016
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 15
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : juin 2016
    Messages : 37
    Points : 13
    Points
    13

    Par défaut

    Pourquoi 8 caractères ? En fait c un peu arbitraire ^^ Mais je sais qu'avec 256^8 possiblités ça résiste à la la force brute.

    Quels caracteres ? Tous, mais nour ne pas avoir affaire à des caracteres bizarres, je ne prends que leurs code.
    Quand j'ai parlé d'une suite de 8 caracteres, j'aurais du plutot dire "8 nombres de 0 à 255"

    La clé est fixe, et elle contient autant de caracteres qu'on veux. Si on veut la transmettre il n'y a pas facon sûre de le faire (sauf le dire à l'oreille de qq'1)
      1  0

  13. #13
    Responsable Systèmes


    Homme Profil pro
    Technicien maintenance
    Inscrit en
    août 2011
    Messages
    7 703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : août 2011
    Messages : 7 703
    Points : 16 748
    Points
    16 748

    Par défaut

    Le code de Vernam défini une clé de la même longueur que le message.

    Je t'invites à regarder ceci, pour comprendre le tenants et aboutissants de ce type de cryptage.

    Sans être du tout spécialiste de la cryptographie, je comprends que tu ne respecte pas un des principes de l'algorithme la longueur de la clé=la longueur du message. Tu créé une faille dans l'algorithme, le rendant moins sûr. Après je n'ai pas le niveau en cryptographie permettant de dire si ton algorithme est facilement cassable ou non.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur la création d'un système : http://chrtophe.developpez.com/tutoriels/minisysteme/
    Mon article sur le P2V : http://chrtophe.developpez.com/tutoriels/p2v/
    Consultez nos FAQ : Windows, Linux, Virtualisation
      1  0

  14. #14
    Membre à l'essai
    Homme Profil pro
    Lycéen
    Inscrit en
    juin 2016
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 15
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : juin 2016
    Messages : 37
    Points : 13
    Points
    13

    Par défaut

    Merci pour ta réponse,
    J'avais déjà compris le chiffre de Vernam.
    En fait ce je fais c'est que j'allonge la clé jusqu'à arriver à la longueur du texte.

    C'est possible que cela crée des failles...
      0  0

  15. #15
    Responsable Systèmes


    Homme Profil pro
    Technicien maintenance
    Inscrit en
    août 2011
    Messages
    7 703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : août 2011
    Messages : 7 703
    Points : 16 748
    Points
    16 748

    Par défaut

    Si tu allonge celle-ci à la longueur du texte ceci de façon réellement aléatoire, tu respectes l'algorithme. La difficulté été l'aléa. Voir message de dourouc05.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur la création d'un système : http://chrtophe.developpez.com/tutoriels/minisysteme/
    Mon article sur le P2V : http://chrtophe.developpez.com/tutoriels/p2v/
    Consultez nos FAQ : Windows, Linux, Virtualisation
      1  0

  16. #16
    Responsable Qt


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherches
    Inscrit en
    août 2008
    Messages
    22 588
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherches
    Secteur : Enseignement

    Informations forums :
    Inscription : août 2008
    Messages : 22 588
    Points : 125 601
    Points
    125 601

    Par défaut

    Citation Envoyé par chrtophe Voir le message
    Tu créé une faille dans l'algorithme, le rendant moins sûr. Après je n'ai pas le niveau en cryptographie permettant de dire si ton algorithme est facilement cassable ou non.
    À mon avis, les attaques doivent venir du fait que tu utilises un algorithme de hachage plus exactement sécurisé (https://en.wikipedia.org/wiki/SHA-1). Sans cette étape de hachage, évidemment, l'attaque serait extrêmement facile (avec des analyses statistiques quand on soit à quoi devrait ressembler le message — texte brut en anglais, PDF…). Si tu la remplaces par un SHA3-512, ça devrait être nettement plus difficile à attaquer (chaque nouveau paquet de huit octets n'aurait strictement rien à voir avec le précédent, ce qui n'est plus exactement vrai avec SHA-1).

    Maintenant, à moins d'être un expert en cryptographie (ce que je ne suis pas du tout ), je te déconseille plus que très fortement d'utiliser ce genre d'algorithmes : il a peut-être des failles bien cachées. Mieux vaut privilégier des algorithmes connus, avec des implémentations vérifiées. Le problème d'échange de la clé a d'ailleurs été bien étudié (https://en.wikipedia.org/wiki/Key_exchange).
    Vous souhaitez participer aux rubriques Qt ou PyQt (tutoriels, FAQ, traductions), HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !
      2  1

  17. #17
    Membre à l'essai
    Homme Profil pro
    Lycéen
    Inscrit en
    juin 2016
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 15
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : juin 2016
    Messages : 37
    Points : 13
    Points
    13

    Par défaut

    Merci de votre aide.
    Sinon est-ce qu'il y a un expert sur ce forum qui pourrait m'expliquer les failles ?

    Ça m'embeterait d'avoir fait ça pour rien !

    http://149.91.88.117/Tests/Cryptage/Cryptage.html
      0  0

  18. #18
    Responsable Qt


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherches
    Inscrit en
    août 2008
    Messages
    22 588
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherches
    Secteur : Enseignement

    Informations forums :
    Inscription : août 2008
    Messages : 22 588
    Points : 125 601
    Points
    125 601

    Par défaut

    Probablement plus dans le forum Sécurité https://www.developpez.net/forums/f1...emes/securite/ qu'Algorithmique https://www.developpez.net/forums/f6...algorithmique/, mais à part ça…
    Vous souhaitez participer aux rubriques Qt ou PyQt (tutoriels, FAQ, traductions), HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !
      1  0

  19. #19
    Nouveau Candidat au Club
    Homme Profil pro
    Architecte matériel
    Inscrit en
    décembre 2017
    Messages
    152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Architecte matériel

    Informations forums :
    Inscription : décembre 2017
    Messages : 152
    Points : 0
    Points
    0

    Par défaut

    Citation Envoyé par chrtophe Voir le message
    Si tu allonge celle-ci à la longueur du texte ceci de façon réellement aléatoire, tu respectes l'algorithme. La difficulté été l'aléa. Voir message de dourouc05.
    Même pas. C'est une difficulté, mais ce n'est pas LA difficulté.

    La difficulté est que ta clef est aussi longue que le message, ne peut pas être compressée par définition, qu'il faut la stocker et la transmettre de façon aussi sûr que le niveau de sécurité visé pour le message en clair.

    Tu as transformé le problème :
    Comment transmettre de façon sûre un message de longueur n?

    en
    Comment transmettre de façon sûre un message complètement aléatoire (donc non compressible) de longueur n?

    Donc en pratique, tu as juste gagné la possibilité de transmettre la clef avant d'avoir le message. Ce qui en pratique n'est pas réalisable.
      0  1

  20. #20
    Nouveau Candidat au Club
    Homme Profil pro
    Architecte matériel
    Inscrit en
    décembre 2017
    Messages
    152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Architecte matériel

    Informations forums :
    Inscription : décembre 2017
    Messages : 152
    Points : 0
    Points
    0

    Par défaut

    Citation Envoyé par Nayl.VBcoder Voir le message
    On génere une clé jettable de 8 caractères ASCII.
    Le début du sha256 de la clé choisie chiffre la clé jettable avec Vigenere. On mets ce crypte au tout début du message.

    On prend le hash : sha1(la clé jettable suivie de la clé choisie).
    A partir de ce hash, on obtient un texte aussi long que le message, en ajoutant le hash de ce hash, puis le hash du hash precedent à chaque fois.

    Enfin cette suite de hash va servir à chiffrer le message avec le prinicipe de Vigenere.
    Par clef "jetable", tu veux dire clef à usage unique? Pour une seule transmission?
    Par clef "choisie", tu veux dire clef configurée de façon permanente? Pour tous les échanges?

    Citation Envoyé par Nayl.VBcoder Voir le message
    Et oui la cle jettable est bien faite au hasard, car j'utilise une fonction random pour faire 8 nombres de 0 à 255.
    Voilà : des NOMBRES. Pas des caractères.

    C'est mieux quand on utilise les bons termes.

    Citation Envoyé par Nayl.VBcoder Voir le message
    En tout cas quand on code on considère qu'il y en a 256. Si je dit 'String.fromCharCode(255)' ça me donne bien un ý.
    Quel rapport avec le codage ASCII?

    Pourquoi avoir parlé de l'ASCII?

    Je vais être "brutal" : si on commence par un telle confusion conceptuelle qu'on désigne par ASCII n'importe quel codage de caractères qui est basé sur ASCII, la chance d'arriver à concevoir un crypto-système est infime.

    Désolé mais c'est comme ça.

    Il faut être rigoureux en informatique.
    Il faut être rigoureux en maths.
    Et la crypto c'est de l'informatique avec beaucoup de maths.

    Citation Envoyé par Nayl.VBcoder Voir le message
    Sinon j'aimerais remplacer le sha1 par sha3 512 mais je trouve pas le code en javascript...
    Quelqu'un sait où le trouver ?
    Remplacer pour quoi faire?

    Qu'est-ce que la fonction de hashage cryptographique utilisée doit avoir comme propriétés de sécurité?
      0  2

Discussions similaires

  1. Cryptage à clés symétriques avec l'algorithme de Blowfish
    Par Michel Deriaz dans le forum Codes sources à télécharger
    Réponses: 5
    Dernier message: 11/12/2013, 00h23
  2. algorithme de chiffrement symétrique
    Par kadis500 dans le forum C++
    Réponses: 2
    Dernier message: 25/04/2010, 22h44
  3. Algorithme de randomisation ... ( Hasard ...? )
    Par Anonymous dans le forum Assembleur
    Réponses: 8
    Dernier message: 06/09/2002, 15h25
  4. Recherche de documentation complète en algorithmes
    Par Anonymous dans le forum Général Algorithmique
    Réponses: 1
    Dernier message: 29/03/2002, 13h09
  5. Algorithme génétique
    Par Stephane.P_(dis Postef) dans le forum Général Algorithmique
    Réponses: 2
    Dernier message: 15/03/2002, 18h14

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