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 :

[Thread a supprimer]Algo à double clés symétriques


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Inscrit en
    Avril 2004
    Messages
    503
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 503
    Par défaut [Thread a supprimer]Algo à double clés symétriques
    Bonjour à tous,

    voila quelques mois en arrière je postais un "défi" sur ce forum pour le cassage d'un cryptogramme produit par un algorythme perso.
    Quelques-uns parmi vous avaient tenté de casser mon message, ou avaient trouvé quelques pistes interressantes.
    (entre-temps, le post à été supprimé).

    A l'époque, le secret de mon cryptage ne résidait que dans le secret de l'algorythme, et cela avait soulevé nobreuses critiques constructives.

    Mon programme à muri, et aujourd'hui le secret ne repose plus sur l'algorythme, mais sur une paire de clés symétriques.

    Pour d'avantage d'info:
    http://blog.lescampeurs.net/index.ph...etriques&cos=1

    Voila, j'ai tenu compte des remarques qui avaient été faites à l'époque, ainsi que d'infos tirées sur des sites traitant de la cryptographie et je pense que mon prog tient la route...

    Régis.

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 9
    Par défaut
    Tu ne donne toujour pas une description complete de ton alog de cryptage...

    Par conséquent ca ne change pas beaucoup a la derniere fois...

  3. #3
    Membre chevronné
    Inscrit en
    Avril 2004
    Messages
    503
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 503
    Par défaut
    Citation Envoyé par ookama
    Tu ne donne toujour pas une description complete de ton alog de cryptage...

    Par conséquent ca ne change pas beaucoup a la derniere fois...
    Ha si, les subtilités ajoutées ne sont pas dans l'algo général qui est utilisé.
    L'algo utilisé par mon appli est éxactement celui qui est décrit dans le blog.
    On va dire que j'aime garder quelques astuces sous le coude comme par exemple l'utilisation d'un dictionnaire ne reposant pas sur le code ASCII...mais le secret ne repose plus sur l'algorithme (ni même sur le dictionnaire à vrai dire, mais j'aime pas tout dire d'un coup... )

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 9
    Par défaut
    alors pkoi poster ?

    tu viens de dire que tu ne donnais pas tout ? pkoi ? quel est ton but dans ce cas ?

    Faudrais peut etre revenir quand tu auras qq chose ;-)

  5. #5
    Membre chevronné
    Inscrit en
    Avril 2004
    Messages
    503
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 503
    Par défaut
    he he ...curieux.
    On est dans la rubrique "Algorithmes", je donne donc l'algo.
    Je ne vais pas donner la liste des attributs de mes classes et l'ensemble du code source !
    Ca fait 1500 lignes, le moderateur serait pas content !!!

    De plus, c'était pour revenir sur le sujet du départ (et j'ai découvert qu'il avait été supprimé) et pour dire que j'avais tenu compte des remarques que les participants avaient faites pour améliorer le concept de mon cryptage de manière à ne pas produire un cryptogramme qui ne tienne qu'au secret de l'algorithme.

    A cette occasion, j'en ai donc profité pour améliorer l'algorithme aussi pour produire des cryptogrammes "consolidés".

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 9
    Par défaut
    ou juste essayer de faire venir des gens sur ton blog.. autant etre honnete..
    ;-)

    mais je ne vois toujour pas l'interet de ton post... car si tu appelle ca donner un algo, faudrait etre vraiment explicite sur les détails, car je rapelle que pour verifier de la complexite d'un algo il faut en connaitre la technique complete

    aucun détail sur l'algo..
    aucun lien sur ton blog vers le code source... (eh oui car ca tu pouvais...)
    etc...

  7. #7
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2004
    Messages
    289
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 289
    Par défaut
    Citation Envoyé par Regis.C
    L'algo utilisé par mon appli est éxactement celui qui est décrit dans le blog.
    Bah dans ce cas explique clairement l'algo, parce que là j'ai juste compris des bouts de trucs, mais c'est encore flou comme explications.
    Citation Envoyé par Regis.C
    On va dire que j'aime garder quelques astuces sous le coude comme par exemple l'utilisation d'un dictionnaire ne reposant pas sur le code ASCII...mais le secret ne repose plus sur l'algorithme
    Il faudrait déjà que l'algo soit complet et explicite, et là des gens pourraient commencer à y jeter un oeil.
    Si tu ne donnes ni l'algo ni les sources, bah désolé je ne vois pas à quoi ça sert de publier un bout de blog.

    Je note d'ailleurs que tu ne codes que des lettres romaines de base, sans accents, ni distinction majuscule/minuscule. Même pas de chiffre ou autre chose ?
    Si c'est vraiment ça, c'est un peu limité comme algo...
    Citation Envoyé par le blog des campeurs
    nous obtenions un message contenant à la fois des chiffres et des lettres en ajoutant un point après un chiffre comportant des dizaine
    Depuis quand un chiffre peut "comporter des dizaines" ? Soit c'est un chiffré, soit tu as besoin de revoir des notions de maths de base...

  8. #8
    Membre chevronné
    Inscrit en
    Avril 2004
    Messages
    503
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 503
    Par défaut
    Houlla je vous trouve bien agressif les gens !

    c'ets seulement la 2eme fois que je viens sur cette rubrique et que je trouve des participants super fermés, exigents, avec qui une "discussion à batons rompus" juste pour échanger sur un sujet qui nous passionne (la prog) me parait bien compliqué !

    Pas grave...moi qui pensais qu'on se retrouvait en bonne compagnie sur ce forum!
    J'retourne au forum java, las-bas ils sont moins fermés !

    PS : ce n'est pas mon blog, et j'ai posté cet article pour répondre à une demande de la part d'anciens de promo. J'ai betement pensé que ça interresserait ceux qui avaient participé au "défi".

    Moderateur : supprimez ce sujet, il n'interresse personne.

    A bon entendeur, au plaisir de vous croiser ici ou ailleurs.
    Régis.

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 9
    Par défaut
    On est pas fermé bien au contraire !!!

    Mais on attend juste des réponses aux questions et de vrais infos, et pas de la poudre aux yeux ;-)

  10. #10
    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,

    Je prends (temporairement ?) la décision de laisser ce sujet, car je pense qu'il est tout à fait possible qu'il intéresse des gens. Et je vais essayer de répondre aux différents points abordés :

    1) A propos de l'ancien message. Effectivement, celui-ci a probablement été effacé. Cela est dù au délestage, que nous sommes obligé d'appliquer pour que le forum soit fluide. On a actuellement plus de 350 000 messages, ce qui représente déjà une base de connaissance appréciable.

    2) Il est possible que certains des commentaires précédents aient été un peu virulent. Chacun a son caractère, et s'exprime comme il le veut, dans la mesure de l'acceptable.
    Cependant, je pense que ce n'est pas une raison pour s'emporter. Essayons plutot de calmer le jeu, et de reprendre sur des bases saines.

    3) Sur le blog que tu cites, il est vrai que la description de l'algorithme est assez sommaire. Or tu dis dans ton premier message que "le secret ne repose plus sur l'algorithme".
    Si tu ne dévoiles pas celui-ci, comment veux-tu que les gens puissent le regarder, et donc apporter des commentaires, ou même ne serait-ce que poser des questions ?

    Tu dis aimer garedr quelques astuces sous le coude, mais je crains que ce ne soit pas la bonne méthode.
    Lorsque l'on dévoile un algorithme, il n'est pas d'usage de le décrire sommairement, puis de dire "La suite plus tard, quand vous m'aurez donné vos remarques".

    Je pense que si tu mettais à disposition l'algorithme ainsi qu'éventuellement un code l'implémentant, tu aurais beaucoup plus de retours.
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  11. #11
    Membre chevronné
    Inscrit en
    Avril 2004
    Messages
    503
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 503
    Par défaut
    Pour répondre, comme je l'ai déjà expliqué, les "astuces" ne sont que l'utilisation d'un disctionnaire qui transforme par exemple les chiffres ou les caractères accentués par des codes choisis au hasard.
    Exemple :
    1 = NO.
    2 = NT.
    é = 82.
    etc...
    Pour le reste, l'algorithme est celui expliqué (je ne trouve pas que l'explication soit sommaire mais bon) à savoir :

    Algorithme de base:
    à partir d'un message clair "regis".
    Je lance un dé pour obtenir un rang de décalage, par exemple "1".
    -On décale donc de 1 chaque lettre.
    "regis" devient "SFHJT"

    Comme chaque mot est décalé différement dans l'ensemble d'un message, il faut conserver l'indice de décalage dans le cryptogramme.
    Je le conserve donc mais en le positionnant alléatoirement dans le mot et indiquant sa position dans le premier caractère:
    "SFHJT" devient "3SF1HJT"
    avec "3" indique que l'indice de décalage est en 3eme position à partir du caractère suivant c'est à dire indice de décalage ="1"("3SF1HJT") .

    Ensuite, je choisis d'afficher les caractères du cryptogramme soit en lettre, soit en chiffre:
    "A" = 1
    "B" = 2
    etc...
    "3SF1HJT" peut devenir "3S61H10.T" en signalant que le "." signifie qu'il faut prendre en compte les 2 caractères précedent à savoir "10".

    OPERATION EFFECTUEE AVANT ALGO DE BASE
    Mais avant de passer dans cet algo de cryptage "de base", je prend la première clé symétrique par exemple "ab", je crée une clé de longueur égale à chaque mot:
    Pour "regis", on aura "ababa", et je récupère les valeurs numérique des caractères à savoir : "ababa" = "12121" que j'ajoute à chaque caractère du message en clair.

    "Regis" = "18, 5, 7, etc..." et on obtient "18+1, 5+2, 7+1, ..."
    Je récupère les valeur alphabétique de ce calcul :
    18+1 = 19 = "S"
    5+2 = 7 = "G"
    etc... et c'est sur ce message que j'applique l'algorithme "de base"

    Ensuite, je repasse dans la boucle complète mais avec la 2ème clé symétrique (par exemple "cd" qui suivant la longueur du mot codé evient "cdcdcdc..."): je crypte donc le cryptogramme N°1 et j'obtient un 2eme cryptogramme.

    Ensuite enfin, et c'est la version que j'utilise :
    je croise les caractères des 2 clés pour en génerer une 3eme :
    "ababa" et "cdcdc" devient "acbdacbda..." suivant la longueur du 2eme cryptogramme et je repasse dans la boucle complète.
    "regis" devient finalement 1 des milliers de cryptogrammes possibles par exemple :
    "6NI.20.J6A.K3NT.ZE.6A.NT.NO.6A.10.M6A.R19.6A.10.13.6A.SI.56A.FI.R24.6A.10.M6A.SI.56A."
    ou
    "12NI.SW6A.10.V86A.WQR6A.9L6A.SI.46A.NT.N3.6A.N3.SE."
    ou encore
    "13FI.TX6A.R24.6A.W13.6A.SI.56A.NF.23.96A.NT.NO.6A.26.18.S6A.W96A.SI.56A.HE."
    etc...

    j'espère avoir été assez détaillé cette fois, même si je persiste à croire que finalement ce sujet n'interressera personne en dehors de moi...

    Cordialement, Régis.

  12. #12
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2003
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 247
    Par défaut
    Voilà mon humble avis.

    Ton algo se résume à :
    • - Opération A avec la premiere clef.
      - Opération B (sans clef).
      - Opération A' avec la seconde clef.
      - Opération B.


    La dernière opération est inutile: puisqu'elle n'utilise pas de clef, n'importe qui peut l'effectuer à l'envers. ABA' propose une sécurité identique.

    L'opération A est un simple code de Vigenère, qui a eu son heure de gloire mais qui est tombé en désuètude depuis qu'un petit malin à trouvé une méthode pour le casser (cf. Google pour trouver la méthode). Cependant cette méthode requiert la connaissance des fréquences d'apparitions dans le texte en clair. Or tu applique le code à un texte déjà brouillé. L'opération A' pourrait donc s'avérer raisonnablement solide avec un dictionnaire approprié. On n'en demande pas plus, comme tu le dis un des buts de l'algo est de pouvoir être utilisé à la main, il faut donc estimer que celui qui tentera de casser le code travaillera aussi à la main.

    Je vois plusieurs inconvénient à ton chiffre qui me font dire qu'il doit être bien peut pratique sur le terrain: nécessité d'un dictionnaire (à la rigueur, si les accents ne sont pas codés, ce n'est pas grave, il faut juste l'alphabet et les chiffres), et surtout la longueur finale du message qui est totalement disproportionnée.
    Tu as l'air de penser que le fait qu'un même texte peut donner les cryptogrammes totalement différents (même avec des clefs identiques) est un gage de qualité. Ca ne l'est pas dans ton cas puisque ce brouillage passe ici par la multiplication par au moins 20 du nombre de caractère. C'est à dire que tu brouille avec l'ajout de données inutiles. Peut-être solide, mais pas efficace.

    A partir du moment ou tu commence à travailler avec un ordinateur, ton algo est totalement inutile.

  13. #13
    Membre chevronné
    Inscrit en
    Avril 2004
    Messages
    503
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 503
    Par défaut
    Tout d'abors merci pour ton intervention Selenite,
    Citation Envoyé par Selenite
    Voilà mon humble avis.
    Ton algo se résume à :
    • - Opération A avec la premiere clef.
      - Opération B (sans clef).
      - Opération A' avec la seconde clef.
      - Opération B.


    La dernière opération est inutile: puisqu'elle n'utilise pas de clef, n'importe qui peut l'effectuer à l'envers. ABA' propose une sécurité identique.
    Je ne comprend pas les stades "Opération B (sans clef)" car le message est crypté plus de cette façon :
    - Algo avec clé 1 (avec message clair)
    - Algo avec clé 2 (avec cryptogramme 1)
    - Algo avec clé 3 (avec cryptogramme 2)

    Citation Envoyé par Selenite
    L'opération A est un simple code de Vigenère, qui a eu son heure de gloire mais qui est tombé en désuètude depuis qu'un petit malin à trouvé une méthode pour le casser (cf. Google pour trouver la méthode). Cependant cette méthode requiert la connaissance des fréquences d'apparitions dans le texte en clair.
    Attention, chaque mot d'un texte clair est codé avec la clé, et décalé différement !
    ex : le message en clair "réponse de régis" donnera un décalage pour "réponse", un autre pour "de" et un dernier pour "régis".
    On échappe donc completement à l'analyse des fréquences puisque un même caractère (par exemple "E") sera codé des centaines de fois différentes au sein d'un même message.

    Citation Envoyé par Selenite
    ...puisque ce brouillage passe ici par la multiplication par au moins 20 du nombre de caractère. C'est à dire que tu brouille avec l'ajout de données inutiles. Peut-être solide, mais pas efficace.
    Le fait d'ajouter des caractères (qui sont des données utiles au décodage) rend d'avantage difficile de connaitre la longueur des mots contenus dans le message en clair. C'est donc un plus (enfin d'après moi).

    Régis.

  14. #14
    Membre chevronné
    Inscrit en
    Avril 2004
    Messages
    503
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 503
    Par défaut
    Mais merci de m'avoir répondu !

  15. #15
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2003
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 247
    Par défaut
    Ce que j'appelle l'opération B est ce que tu appelle l'algorithme de bas, et ce que j'appelle l'opération A est ce que tu appelle l'opération effectuée avant l'algorithme de base.

    On se comprend ?


    L'opération B est réversible par quiconque connait l'algo. L'algo utilise bien une clé (la suite des nombre correspondant au décalage de chaque mot) mais celle-ci est stockée dans le message même, c'est comme s'il n'y en avait pas.
    L'opération A (chiffre de Vigenère) est réversible par quiconque connait la clé ou connait la fréquence d'apparition des caractères du message avant A. Tu rends donc l'opération A irréversible en gardant la clé secrète et en effectuant l'opération B avant A, ce qui brouille tout les caractères. Pour moi, B sert à rendre A pas facilement attaquable, pas plus.



    Quant aux données que tu ajoutes, elle sont bien inutiles : ce sont des données aléatoires qui n'intéressent personne.
    Et quant à la longueur du cryptogramme, elle est quand même très génante: si régis donne 6NI.20.J6A.K3NT.ZE.6A.NT.NO.6A.10.M6A.R19.6A.10.13.6A.SI.56A.FI.R24.6A.10.M6A.SI.56A., imagine ce que donne rendez-vous devant le parc à la fin des cours. C'est tout simplement ingérable. Pour cacher la longueur des mots, tu as bien d'autres moyens bien plus simples.

  16. #16
    Membre chevronné
    Inscrit en
    Avril 2004
    Messages
    503
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 503
    Par défaut
    Citation Envoyé par Selenite
    ... imagine ce que donne rendez-vous devant le parc à la fin des cours.
    Ben :
    2NI.5VN3.6A.45.N3.ZE.6A.31.B6A.NN9NT.FI.6A.FI.-PN3.ZE.6A.W15.6A.W18.6A.SI.10.6A.WC6A.OR6A.SI.J6A. 5FI.19.N3.6A.2L20.6A.31.H6A.SI.18.6A.NO.NO.HE.6A.19.H6A.TL6A.14.K6A.SI.76A.20.21.6A.FK6A.SI.76A.HE.20.N3.6A.T15.6A.SI.76A. 3NO.HE.322.L6A.WVX6A.NT.FI.6A. 3NO.NO.2UN3.6A.NF.ZE.6A.38.19.W6A.NSG6A.U25.6A.SI.76A. 8N3.X27.6A.37.O6A.7N3.à 2NT.7X27.6A.N3.X32.6A.27.RA6A. 5SI.TN3.6A.339.U6A.FU6A.SI.S6A.20.H6A.N3.NH6A.SI.86A.21.M6A.27. 5HE.19.22.6A.2LN3.6A.EC6A.31.F6A.SI.S6A.ASH6A.NF.TL6A.SI.76A. 7SI.JO6A.37.S16A.DB6A.SI.Q6A.6NO.41.FI.R33.6A.SN3.6A.K14.6A.SI.66A.

    Citation Envoyé par Selenite
    Pour cacher la longueur des mots, tu as bien d'autres moyens bien plus simples.
    Une piste ?


    Sinon, pour casser le chiffre de vigenère effectivement si tu connais le décalage (par connaissance de l'algo), mais il te reste un cryptogramme à clé, qui une fois cassé (en ayant la clé ?) te donneras un cryptogramme à clé, qui une fois cassé (en ayant la clé ?) te donnera un cryptogramme à clé, qui une fois cassé (en ayant la clé ?) te donnera un message clair..
    Autrement dit, si tu as les 2 clés, c'est effectivement facile à casser si on enlève le chiffre de vigenère !
    non ? :
    Régis.

  17. #17
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2003
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 247
    Par défaut
    Citation Envoyé par Regis.C
    Citation Envoyé par Selenite
    Pour cacher la longueur des mots, tu as bien d'autres moyens bien plus simples.
    Une piste ?

    - Supprimer les espaces. C'est ce qui a toujours été fait de tout temps.
    - Rajouter l'espace à l'alphabet.

Discussions similaires

  1. [String] supprimer les doubles espaces consecutifs
    Par waldoun dans le forum Langage
    Réponses: 3
    Dernier message: 24/05/2008, 15h39
  2. Supprimer le double backslash dans les résultats SQL
    Par stephane.julien dans le forum C#
    Réponses: 12
    Dernier message: 24/09/2007, 10h53
  3. Supprimer les doubles d'une liste en python
    Par Sebcaen dans le forum Général Python
    Réponses: 2
    Dernier message: 22/10/2006, 18h41
  4. Requête sur table à double clés primaires
    Par darkian dans le forum Langage SQL
    Réponses: 4
    Dernier message: 04/03/2005, 17h28

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