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é Discussion :

Algorithme de chiffrage symétrique


Sujet :

Sécurité

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

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Juin 2016
    Messages : 44
    Points : 19
    Points
    19
    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 sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 242
    Points : 13 457
    Points
    13 457
    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 apporte quelque chose ? Cliquez sur en bas à droite du message.
      0  2

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

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Juin 2016
    Messages : 44
    Points : 19
    Points
    19
    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 sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 242
    Points : 13 457
    Points
    13 457
    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 apporte quelque chose ? Cliquez sur en bas à droite du message.
      1  0

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

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Juin 2016
    Messages : 44
    Points : 19
    Points
    19
    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 sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 242
    Points : 13 457
    Points
    13 457
    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 apporte quelque chose ? Cliquez sur en bas à droite du message.
      0  0

  7. #7
    Responsable Qt & Livres


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

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

    Informations forums :
    Inscription : Août 2008
    Messages : 26 617
    Points : 188 587
    Points
    188 587
    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 (tutoriels, FAQ, traductions) ou 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
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 21
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Juin 2016
    Messages : 44
    Points : 19
    Points
    19
    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
    Inactif  
    Homme Profil pro
    Architecte matériel
    Inscrit en
    Décembre 2017
    Messages
    155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Architecte matériel

    Informations forums :
    Inscription : Décembre 2017
    Messages : 155
    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
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 21
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Juin 2016
    Messages : 44
    Points : 19
    Points
    19
    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
    Inactif  
    Homme Profil pro
    Architecte matériel
    Inscrit en
    Décembre 2017
    Messages
    155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Architecte matériel

    Informations forums :
    Inscription : Décembre 2017
    Messages : 155
    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
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 21
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Juin 2016
    Messages : 44
    Points : 19
    Points
    19
    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
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 426
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 426
    Points : 43 044
    Points
    43 044
    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 le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation
      1  0

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

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Juin 2016
    Messages : 44
    Points : 19
    Points
    19
    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
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 426
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 426
    Points : 43 044
    Points
    43 044
    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 le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation
      1  0

  16. #16
    Responsable Qt & Livres


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

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

    Informations forums :
    Inscription : Août 2008
    Messages : 26 617
    Points : 188 587
    Points
    188 587
    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 (tutoriels, FAQ, traductions) ou 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
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 21
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Juin 2016
    Messages : 44
    Points : 19
    Points
    19
    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 & Livres


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

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

    Informations forums :
    Inscription : Août 2008
    Messages : 26 617
    Points : 188 587
    Points
    188 587
    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 (tutoriels, FAQ, traductions) ou 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
    Inactif  
    Homme Profil pro
    Architecte matériel
    Inscrit en
    Décembre 2017
    Messages
    155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Architecte matériel

    Informations forums :
    Inscription : Décembre 2017
    Messages : 155
    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
    Inactif  
    Homme Profil pro
    Architecte matériel
    Inscrit en
    Décembre 2017
    Messages
    155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Architecte matériel

    Informations forums :
    Inscription : Décembre 2017
    Messages : 155
    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: 10/12/2013, 23h23
  2. algorithme de chiffrement symétrique
    Par kadis500 dans le forum C++
    Réponses: 2
    Dernier message: 25/04/2010, 21h44
  3. Algorithme de randomisation ... ( Hasard ...? )
    Par Anonymous dans le forum Assembleur
    Réponses: 8
    Dernier message: 06/09/2002, 14h25
  4. Recherche de documentation complète en algorithmes
    Par Anonymous dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 29/03/2002, 12h09
  5. Algorithme génétique
    Par Stephane.P_(dis Postef) dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 15/03/2002, 17h14

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