Cryptographie

Bonjour,

Il m'est venu une idée qui est peut-être farfelue (d'où le choix de Shtam), mais je serais néanmoins intéressé à connaître votre opinion à ce sujet...

Est-il possible de faire un codage à "deux niveaux" ? Je m'explique. L'idée est que le code puisse être "cassé" de deux façons : l'une correcte, et l'autre incorrecte. Bien sûr, il faut que la façon incorrecte soit plus facile que celle correcte, mais pas trop non plus pour ne pas mettre la puce à l'oreille au casseur de code. Bref, il faut que celui-ci soit convaincu qu'il a réussi à déchiffrer le message...

Par exemple, soit les deux messages : (A) "L'opération aura lieu le 27 avril prochain à Paris" (message incorrect) et (B) "L'opération aura lieu le 23 avril prochain à Marseille" (message correct). Toute la difficulté est de chiffrer (B) de telle manière qu'on puisse également le déchiffrer (faussement) pour aboutir à (A) (et, en prime, induire en erreur l'adversaire).

Cela vous semble-t-il possible ? Ou complètement farfelu ?

*******
Un peu dans le même genre, j'avais également imaginé la chose suivante : un compte informatique protégé avec deux mots de passe. Le mot de passe bidon donne accès à une session elle aussi bidon, mais crédible. Dans ce cas également, il faut que le mot de passe incorrect soit plus facile à trouver que le vrai (pour que le pirate tombe dessus en premier), mais pas trop facile non plus...
*******

Belle journée !
V.H.

Réponses

  • Pourquoi l'attaquant casserait la partie du message qu'on veut qu'il casse et pas celle qu'on ne veut pas qu'il casse?

    Ce que tu racontes me fait penser à quelque chose d'autre.

    Il existe des logiciels qui permettent de chiffrer un disque dur (une partition virtuelle, ou pas, d'un disque dur).
    Certains (tous?) ont une fonctionnalité un peu dans le goût de ce que tu dis.

    Si un attaquant essaie de te forcer à lui communiquer le mot de passe qui chiffre la partition, dans la partition chiffrée il y a une autre partition bidon qui est chiffrée avec un autre mot de passe. Révéler ce deuxième mot de passe ne permet pas de lire toutes les informations dissimulées et ne permet pas de savoir qu'il y a des informations autres qui restent dissimulées mais pourrait convaincre l'attaquant que tu as collaboré.
    Tu va me dire: mais si la partition est bien plus grosse que la "masse" totale des données révélées l'attaquant va se douter que tu lui mens. Mais il faut savoir que les données après avoir été chiffrées se comportent, en principe, comme si chaque octet de la partition avait été écrit en suivant le hasard. Les "blancs" ne sont plus des "blancs" sur la partition traitée.
  • Salut,

    "Pourquoi l'attaquant casserait la partie du message qu'on veut qu'il casse et pas celle qu'on ne veut pas qu'il casse?"

    Parce qu'on ferait en sorte que cela soit plus facile (mais pas trop non plus, pour être crédible).

    Merci pour ton exemple avec ces logiciels ; je ne connaissais pas.
  • Bonjour,

    Ne suffit-il pas de coder $n$ messages avec $m$ codes ? Les codes les plus faibles contiennent des messages crédibles mais faux. Le message avec le code le plus fort est vrai. L'attaquant se sait pas le nnombre de messages $n$ si le nombre de codes $m.$
  • Pourquoi l'émetteur de deux messages utiliserait-il deux systèmes cryptographiques différents pour chiffrer ces deux messages?
  • Bonjour,

    Je prends un exemple très simple (voire simpliste), mais qui permet d'illustrer peut-être plus clairement ce que je veux dire.

    On veut coder ceci : "EN AVRIL".

    Pour le chiffrement, on utilise la correspondance suivante : "E" -->"M", "N" --> "F", "A" --> "U", "V" --> "S", "R" --> "B", "I" --> "J" et "L" --> "O". (*)

    Après chiffrement, on obtient : "MF USBJO". L'attaquant commence par le plus simple et se demande s'il n'a pas affaire à un banal chiffrement où les lettres sont décalées d'un cran ("A" --> "B", "B" --> "C", etc.) (**). Cela semble marcher car il obtient "LE TRAIN". Content de lui, il s'arrête là...

    Naturellement, on a fait en sorte qu'il tombe dans le panneau. Autrement dit, on a choisi à dessein un chiffrement dont le résultat semble provenir d'un chiffrement élémentaire.

    Bien sûr, cette technique dépend à chaque fois du message. Si au lieu du texte "EN AVRIL", on avait choisi autre chose, (**) n'aurait pas marché.

    Sans compter que la difficulté augmente avec la longueur des messages...

    Si j'essaie de formaliser, on a ceci : à chaque couple de messages (M, N), où M = message correct, N = message bidon, on associe un couple de clés (clé_correcte, clé_bidon) de telle sorte que clé_correcte (M) = clé_bidon (N).

    Dans l'exemple donné ci-dessus, on a donc : clé_correcte ("EN AVRIL") = clé_bidon ("LE TRAIN") = "MF USBJO".

    Bonne soirée,
    V. H.
  • Je crois que FdP et YvesM ont déjà indiqué une façon de s'y prendre, et c'est d'ailleurs comme ça que marche veracrypt (anciennement truecrypt). Au lieu de vouloir utiliser "les mêmes octets" qui encodent deux messages (ce qui sera toujours problématique car il n'y a pas assez d'entropie pour faire cela en général, c.à.d. choisir librement le message bidon et le message utile et la clé), il vaut mieux présenter un gros volume de "bruit blanc" qui contient potentiellement beaucoup d'entropie, dont une petite partie peut être décodée par "la bonne clé" pour donner le message utile, et une autre petite partie par la "fausse clé" pour donner le message bidon. C'est forcément peu efficace en ce qui concerne densité d'information utile, mais l'application en question peut justifier cela. L'endroit du message bidon, et l'endroit du message utile, sont aléatoires dans le gros taf d'octets aléatoires, et il y a différentes techniques pour indiquer l'endroit. La plus simple est précéder le message crypté par un hash de la clé, par exemple. Comme ce hash est parfaitement "blanc" pour quelqu'un qui ne connaît pas la clé, on ne peut pas reconnaître l'endroit sans la clé, mais on reconnaît très vite l'endroit quand on l'a: il suffit de faire une recherche de chaîne sur le hash de la clé. On va donc déchiffrer les caractères qui suivent en utilisant la clé en question.

    Dans un gros bloc de caractères, on peut "cacher" ainsi un certain nombre de messages, reconnaissable quand on a leur clé et parfaitement invisibles sans cette clé.
  • http://www.les-mathematiques.net/phorum/read.php?43,1907950,1908828#msg-1908828
    Dans l'exemple donné ci-dessus, on a donc : clé_correcte ("EN AVRIL") = clé_bidon ("LE TRAIN") = "MF USBJO".

    En toute généralité c'est possible avec un masque jetable, mais c'est un peu "lourd" comme clé. Un masque jetable peut transformer n'importe quel message crypté en n'importe quel texte en clair. Alors, il suffit d'avoir le bon masque jetable pour le bon message, et le faux masque jetable pour le message bidon. Mais le problème du masque jetable, c'est qu'il est aussi grand que le message même.
    S'il faut pouvoir choisir librement le message utile et le message bidon, alors on a 2 fois l'entropie d'un message et il faut donc que la clé bidon "porte le deuxième jeu d'entropie".
Connectez-vous ou Inscrivez-vous pour répondre.