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 :

Qui saura décrypter ce code ?


Sujet :

Sécurité

  1. #1
    Membre expert

    Homme Profil pro
    Consultant
    Inscrit en
    Janvier 2006
    Messages
    1 376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Consultant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 376
    Points : 3 583
    Points
    3 583
    Par défaut Qui saura décrypter ce code ?
    Bonjour,

    J'ai développé un cryptage que je souhaite mettre à l'épreuve. Qui saura décrypter cette ligne ?

    04476924722b69777824746577247465766769247579692470697724676c7377697
    7247773727824686d6a6a6d676d70697724757969247273797724722b7377737277
    247465773024672b69777824746576676924757969247273797724722b737773727
    7247465772475792b6970706977247773727824686d6a6a6d676d70697732
    Merci de me transmettre vos résultats en MP.

    Je précise qu'il ne s'agit pas d'une demande illégale. Ce code est bien générée par mon cryptage.

    Un indice : Il s'agit d'une citation.

    Bon courage.
    "La révolution informatique fait gagner un temps fou aux hommes, mais ils le passent avec leur ordinateur !"

  2. #2
    Membre régulier
    Homme Profil pro
    Architecte serveur
    Inscrit en
    Septembre 2011
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte serveur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2011
    Messages : 64
    Points : 107
    Points
    107
    Par défaut
    Je vois pas comment on pourrait faire, désolé. Même le code de César est sécurisé tant qu'il s'applique à très peu de données sans contexte.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 133
    Points : 93
    Points
    93
    Par défaut
    Salut !

    Ah bah moi je veux bien m'y coller ! Tout du moins essayer
    Ca va surement mettre du temps mais ça me permettra d'en apprendre un peu plus sur la cryptanalyse.

  4. #4
    Rédacteur
    Avatar de darrylsite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 299
    Points : 2 501
    Points
    2 501
    Par défaut
    Citation Envoyé par SuperBidi Voir le message
    Je vois pas comment on pourrait faire, désolé. Même le code de César est sécurisé tant qu'il s'applique à très peu de données sans contexte.
    Juste un coup d'oeil rapide, et il ressemble bien à une variante de Cesar si on considère le formatage suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    def format(chaine):
    	newChaine = ""
    	i = 0
    	for e in chaine:
    		if i % 2 == 0:
    			newChaine += " "
    		newChaine += e
    		i +=1
    	return newChaine
    qui donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    data = ["04","47","69","24","72","2b","69","77","78","24","74","65","77","24","74","65","76","67","69","24","75","79","69","24","70","69","77","24","67","6c","73","77","69","77","24","77","73","72","78","24","68","6d","6a","6a","6d","67","6d","70","69","77","24","75","79","69","24","72","73","79","77","24","72","2b","73","77","73","72","77","24","74","65","77","30","24","67","2b","69","77","78","24","74","65","76","67","69","24","75","79","69","24","72","73","79","77","24","72","2b","73","77","73","72","77","24","74","65","77","24","75","79","2b","69","70","70","69","77","24","77","73","72","78","24","68","6d","6a","6a","6d","67","6d","70","69","77","32"]
    avec une analyse des occurences
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    {'65': 5, '67': 6, '68': 2, '69': 14, '24': 21, '04': 1, '47': 1, '6a': 4, '6c': 1, '6d': 6, '77': 19, '76': 2, '75': 4, '74': 5, '73': 9, '72': 9, '70': 5, '79': 6, '78': 4, '32': 1, '30': 1, '2b': 5}
    On voit aussi des patterns qui se dégagent

  5. #5
    Membre expert

    Homme Profil pro
    Consultant
    Inscrit en
    Janvier 2006
    Messages
    1 376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Consultant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 376
    Points : 3 583
    Points
    3 583
    Par défaut
    Ha, j'avoue que l’algorithme sort un peu des sentiers battus. Un autre indice : oubliez toutes vos connaissances en cryptographie numérique actuelle, et soyez un Sherlock Holmes. Seuls les vrais passionnés du code pur sauront trouvés la vérité.

    Bon courage.

    Aller, un dernier indice : La chaine est une représentation hexadecimale, dont le premier octet ne fait pas partie du résultat final.
    "La révolution informatique fait gagner un temps fou aux hommes, mais ils le passent avec leur ordinateur !"

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 133
    Points : 93
    Points
    93
    Par défaut
    Du coup, est-ce qu'une analyse fréquentielle servirait à quelque chose ?

  7. #7
    Rédacteur
    Avatar de darrylsite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 299
    Points : 2 501
    Points
    2 501
    Par défaut
    Citation Envoyé par zecreator Voir le message
    Aller, un dernier indice : La chaine est une représentation hexadecimale, dont le premier octet ne fait pas partie du résultat final.
    C'est pas vraiment une indice vu que ça ressort à première vue d'où la décomposition de la chaine en couple de caractère. Bien que je n'ai pas vraiment cherché à décoder le texte, je pense que vous avez juste encoder chaque caractère sur un octet -deux digit en hexa- et une analyse fréquentielle donnera bien le résultat. Et je pense que le dernier octet 32 serait bien le point code ASCII 50 -? 50-04 = 0x32 ?-

  8. #8
    Rédacteur
    Avatar de darrylsite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 299
    Points : 2 501
    Points
    2 501
    Par défaut
    Et tada !!!
    Ce n'est pas parce que les choses sont difficiles que nous n'osons pas, c'est parce que nous n'osons pas qu'elles sont difficiles.

  9. #9
    Rédacteur
    Avatar de darrylsite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 299
    Points : 2 501
    Points
    2 501
    Par défaut
    Et pour s'amuser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    def decript(chaine):
    	dec = int(chaine[0:2], 16)
    	source = chaine[2:]
    	data = []
    	i = 0
    	while i < len(source):
    		data.append(source[i : i+2])
    		i += 2
    	#Let's do it
    	result = ""
    	for i in data:
    		result += chr(int(i, 16) - dec)
    	return result
    #Udacity pourra être fier que ses cours de Python auront servi à quelque chose

  10. #10
    Membre expert

    Homme Profil pro
    Consultant
    Inscrit en
    Janvier 2006
    Messages
    1 376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Consultant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 376
    Points : 3 583
    Points
    3 583
    Par défaut
    Bravo darrylsite !

    Je n'ai plus qu'a me remettre au boulot Comment avez-vous déterminé que le premier octet servait a décaler la table ASCII de vers la gauche ?

    Joli.
    "La révolution informatique fait gagner un temps fou aux hommes, mais ils le passent avec leur ordinateur !"

  11. #11
    Membre régulier
    Homme Profil pro
    Architecte serveur
    Inscrit en
    Septembre 2011
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte serveur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2011
    Messages : 64
    Points : 107
    Points
    107
    Par défaut
    Chapeau Darrylsite

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 133
    Points : 93
    Points
    93
    Par défaut
    Bravo darrylsite !

    Je pourrais passer mon script aussi si vous le souhaitez.

  13. #13
    Rédacteur
    Avatar de darrylsite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 299
    Points : 2 501
    Points
    2 501
    Par défaut
    Citation Envoyé par zecreator Voir le message
    Bravo darrylsite !

    Je n'ai plus qu'a me remettre au boulot Comment avez-vous déterminé que le premier octet servait a décaler la table ASCII de vers la gauche ?

    Joli.
    Ha ha

    Comme je vous l'ai dit, le dernier octet apparait une seule fois et pour moi il m' a tout l'air d'être le caractère ".". Selon votre codage, il a une valeur de 50 alors que son code ascii est 46 donc 50-46 = 4 qui est la même valeur que le premier octet. Et par intuition, les autres octets sauf le premier répond à ce codage donc ...

    Vous trouverez peut être cette session d'Udacity utile : http://www.udacity.com/overview/Course/cs387

  14. #14
    Membre expert

    Homme Profil pro
    Consultant
    Inscrit en
    Janvier 2006
    Messages
    1 376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Consultant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 376
    Points : 3 583
    Points
    3 583
    Par défaut
    Pas mal raisonné...

    Je travaille sur un autre cryptage, je penseari à le mettre à l'épreuve ici.
    "La révolution informatique fait gagner un temps fou aux hommes, mais ils le passent avec leur ordinateur !"

  15. #15
    Membre extrêmement actif

    Profil pro
    Grand Timonier des Chats
    Inscrit en
    Décembre 2011
    Messages
    879
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Grand Timonier des Chats

    Informations forums :
    Inscription : Décembre 2011
    Messages : 879
    Points : 3 302
    Points
    3 302
    Par défaut
    Citation Envoyé par zecreator Voir le message
    Pas mal raisonné...

    Je travaille sur un autre cryptage, je penseari à le mettre à l'épreuve ici.
    Un XOR binaire avec une clé arbitraire (repétée autant de fois que nécessaire) est déjà plus sécurisé qu'un chiffre de César et reste tout aussi facile à déchiffrer pour qui connait la clé. Cela aurait resisté à la cryptanalyse frequentielle car le cryptogramme d'un octet ne dépend pas que de l'octet et de la clé, mais aussi de sa position dans la chaine.

  16. #16
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par MiaowZedong Voir le message
    Cela aurait resisté à la cryptanalyse frequentielle car le cryptogramme d'un octet ne dépend pas que de l'octet et de la clé, mais aussi de sa position dans la chaine.
    Uniquement si le texte crypté est court par rapport à la taille de la clef. Sinon, c'est exactement la même méthode, avec une étape initiale de calcul (fréquentiel aussi) des autocorrélations pour déterminer la longueur de la clef...

    @zecreator: toute méthode qui consiste à remplacer une lettre par une autre, toujours la même, sera facile à casser, parce que les fréquences des lettres restent inchangée. Même améliorée en utilisant des codes différents d'une lettre à l'autre, elle ne résiste pas à une analyse assez sommaire.

    Une façon simple d'améliorer la situation sans avoir à changer le code (ou de rendre un peu plus sûr un code de ce type) consisterait à commencer par modifier ton texte de façon à en faire disparaître ces différences de fréquences. Par exemple, en passant celui ci dans un compresseur (zip, huffmann, voire une méthode maison, ca n'a pas besoin d'être optimal). Du coup, le texte que tu cryptes, rendu illisible par la compression devient très difficile à "deviner":

    si le message que tu avais codé était
    "rcs<egtqiprdvn fdsliunedfiuhrttbv dlkjsdnrfiuhtn"
    personne ne l'aurait trouvé.

    Francois
    Dernière modification par Invité ; 07/04/2012 à 01h15.

  17. #17
    Membre actif
    Homme Profil pro
    Programmeur fou
    Inscrit en
    Octobre 2010
    Messages
    339
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Programmeur fou

    Informations forums :
    Inscription : Octobre 2010
    Messages : 339
    Points : 216
    Points
    216
    Par défaut
    Citation Envoyé par fcharton Voir le message
    si le message que tu avais codé était
    "rcs<egtqiprdvn fdsliunedfiuhrttbv dlkjsdnrfiuhtn"
    personne ne l'aurait trouvé.
    Tu rigoles ?

    $ a = f$decode("rcs<egtqiprdvn fdsliunedfiuhrttbv dlkjsdnrfiuhtn")
    $ show symbol a
    a = "P*tin les mecs, vous êtes tous nuls sauf darrilsite"



    (Jeu: en quoi les deux lignes de code ci-dessus sont-elles écrites ?)
    à la retraite, occupé à apprendre Blender pour pondre des bagnôles pour FS22 (voir Papocle.fr)

  18. #18
    Membre averti

    Profil pro
    Étudiant
    Inscrit en
    Décembre 2004
    Messages
    499
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2004
    Messages : 499
    Points : 422
    Points
    422
    Par défaut
    À mon avis savoir décoder un message c'est avant tout savoir dire si on a réussi à le décoder ou non (avec une certaine probabilité).
    Donc pour être sûr, soit il faut envoyer un message dont l'attaquant n'a aucune raison de supposer quelle est sa nature, soit simuler ça en ayant sa propre bijection de l'espace des messages dans lui même sur laquelle l'attaquant n'a aucune supposition raisonnable à faire.

  19. #19
    Membre averti
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    397
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 397
    Points : 424
    Points
    424
    Par défaut
    Je me posais justement cette question de savoir si je pourrais faire un chiffrement fiable, qui se reposerait uniquement sur le faite d'être non-documenté.

    Il y a moyen de créer des chiffrements vraiment tordu, du style codage de huffman personnalisé, avec manipulation poussive au niveau du bits.
    C'est un exemple, mais au travers de plusieurs choses que j'ai codé, il m'est venu plusieurs idées, qui mise ensemble pourraient donner quelque chose de bien violent, du moins je l'imagine.

    Prenons l'exemple du deflate.
    Si la doc n'existerait pas, et que quelqu'un aurait inventé le deflate comme chiffrement personnel, est-ce que ça aurait été déchiffrable sans documentation ? (en considérant que la personne aurait plusieurs giga de données en sa possession).

    Ce que j'imagine faire serait bien plus tordu que le deflate, mais c'est juste pour savoir si ça sert à quelque chose ou si il faut mieux que j'oublie cette idée.

    Bien que ça ne reposerait que sur la non-documentation du chiffrement, j'ai du mal à imaginer qu'un expert puisse craquer ce genre de chose sans y passer au minimum plusieurs heures.

  20. #20
    Membre actif
    Homme Profil pro
    Programmeur fou
    Inscrit en
    Octobre 2010
    Messages
    339
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Programmeur fou

    Informations forums :
    Inscription : Octobre 2010
    Messages : 339
    Points : 216
    Points
    216
    Par défaut
    Si tu aimes les histoires de crypto, lis "La formule de Dieu" de Jose Rodriguez dos Santos !
    à la retraite, occupé à apprendre Blender pour pondre des bagnôles pour FS22 (voir Papocle.fr)

Discussions similaires

  1. Réponses: 8
    Dernier message: 16/09/2010, 15h19
  2. .jsp qui s'affiche en code source
    Par Saita dans le forum Apache
    Réponses: 116
    Dernier message: 13/08/2009, 10h40
  3. un % qui bloque tout mon code!
    Par kaking dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 20/07/2009, 09h06
  4. Réponses: 1
    Dernier message: 21/02/2005, 12h40

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