Inscription / Connexion Nouveau Sujet
Niveau algorithmique
Partager :

Décrypter des textes en connaissant les xor entre eux

Posté par
hun
20-03-12 à 01:44

Bonjour,

Disons que j'ai 10 textes, t0..t9, et je connais pour tout i,j, le texte ti xor tj (xor caractère par caractère). Y'a-t-il un algorithme pour trouver tous les textes ti ?

A part du brute-force je vois pas trop...

Merci d'avance

Posté par
dhalte
re : Décrypter des textes en connaissant les xor entre eux 20-03-12 à 08:04

tu peux préciser ton énoncé ?

pour toi, que représente l'opération XOR sur deux textes ?
je connais XOR sur deux bits, qu'on peut étendre à deux nombres en effectuant l'opération bit à bit dans leur représentation binaire, donc à deux lettres en utilisant leur codage

mais à deux textes ? lettre à lettre ? et s'ils sont de longueurs différentes ?

Posté par
hun
re : Décrypter des textes en connaissant les xor entre eux 20-03-12 à 08:40

Salut,

oui c'est bien ça je parle du xor caractère à caractère (cf mon premier post) en utilisant le codage ascii des caractères.
oui les textes peuvent êtres de longueurs différentes : si t1.length() > t2.length(), alors le texte t1 xor t2 est un texte de longueur t2.length(), et la queue de t1 n'est pas lue.

(PS: ce n'est pas un énoncé au fait, juste une question que je me posais^^, d' où pas d'énoncé précis)

Posté par
dhalte
re : Décrypter des textes en connaissant les xor entre eux 20-03-12 à 09:42

???

j'essaie de reformuler ton problème pour le moins confus

en entrée, dix textes (inconnus), tous de même longueur L, au besoin tronqués à la longueur du plus court d'entre eux.

Appelons-les t0,...,t9

Un système de codage :
en entrée, deux textes de même longueur L,
en sortie un tableau de L nombres, chaque nombre est obtenu par un XOR des codes ascii des caractères correspondants pris dans chaque texte.

en sortie de codage des 10 texte, un tableau de 10x10 entrées, l'entrée (i,j) est le codage de longueur L des textes ti et tj

ta question : peut-on retrouver les textes t0,..,t9 ne connaissant que le tableau 10x10 de leurs codages deux à deux ?

Posté par
hun
re : Décrypter des textes en connaissant les xor entre eux 20-03-12 à 10:21

oui c'est ça, j'ai assimilé le tableau de L nombres à un texte de longueur L (par un codage ascii int->char)

Posté par
dhalte
re : Décrypter des textes en connaissant les xor entre eux 20-03-12 à 10:38

illusoire

A xor A = 0 : le nombre 0, pas le caractère 0
B xor C = 1 : le nombre 1, pas le caractère 1
9 xor F = 127 : le nombre 127

comment veux-tu faire un texte d'un tableau contenant des caractères dont les codes sont non imprimables ?

j'ai peur que tu n'aies pas seulement commencé à mener la moindre réflexion personnelle sur ton projet.

Posté par
hun
re : Décrypter des textes en connaissant les xor entre eux 20-03-12 à 11:18

Pour moi un texte ça renvoit à un string = chaine de caractères  (non nécessairement imprimables), donc théoriquement un texte peut avoir n'importe quel caractère. Je suis conscient que dans l'implémentation, le caractère nul (celui d'ascii 0) termine la chaîne, donc oui une fois l'implémentation venue je réfléchirais à ça.

Mais ici je n'ai jamais dis que je voulais implémenter ce projet, donc un texte il peut théoriquement avoir n'importe quel caractère ascii dedans. D'ailleurs j'ai posté dans algorithmique et pas dans programmation.

Après c'est juste une question de vocabulaire, quels sont les caractères admissibles dans un texte en algorithmique ? Pour moi, ce sont tous les caractères ascii (0-255) (ou unicode, mais on s'éloigne). Apparemment pour toi, ce sont juste les caractères imprimables (ie par ex, pas de retour à la ligne dans un texte ?).

Bien sûr, je peux très bien travailler un tableau de nombres int, ça ne me pose pas de problèmes, si pour toi cela te semble indispensable.

Par contre détrompe toi pour la dernière phrase, j'ai déjà réfléchi sur ce projet. La seule solution que j'ai trouvée est le brute-force :
on prend un tableau decrypt[255] (de longueur 256), et dans chaque case on met au départ le même tableau [0,1,...,255]. (decrypt est un tableau de tableau)
decrypt[i] est le caractère décrypté du caractère de code ascii i, donc au départ on met toutes les possibilités. Puis avec le xor des textes, on enlève petit à petit les possibilités (on réduit le tableau decrypt[i] en enlevant les caractères impossible d'après les xor des textes) jusqu'à idéalement na'voir qu'un seul élément dans decrypt[i]

Bien sûr cette solution ne me convient pas, c'est pour ça que je demande de l'aide ici.

Posté par
dhalte
re : Décrypter des textes en connaissant les xor entre eux 20-03-12 à 11:28

Bien sûr cette solution ne me convient pas,

rassure-toi, elle ne me convient pas non plus.

ta description de ton "algorithme" me laisse sur ma faim.

je te cite :
decrypt est un tableau de tableau

et juste en dessous
decrypt[i] est le caractère décrypté

il faudrait savoir...


désolé, mais mes compétences en décryptage d'algorithmes ne me permet pas de ne serait-ce que comprendre ton "idée" de la "brute-force"

si tout caractère de code 0 à 255 est autorisé dans ton texte, tout résultat de 0 à 255 est potentiellement possible dans les opérations de xor

je ne comprends pas cette phase d'"élimination"

bon courage.

Posté par
hun
re : Décrypter des textes en connaissant les xor entre eux 20-03-12 à 13:56

"decrypt[i] est le caractère décrypté"
Je veux dire, decrypt[i] est à la fin de l'algorithme le caractère décrypté du caractère de code ascii i, ou le singleton contenant le caractère décrypté du caractère de code ascii i pour être vraiment rigoureux.

J'ai la flemme d'expliquer mon algo de brute-force, d'autant plus que je ne l'utiliserais pas.
Si tu veux m'aider, fais comme-ci je n'avais pas réfléchi sur mon projet.
Et si tu ne veux pas m'aider j'irai voir sur d'autres forums, de cryptographie par exemple, c'est pas dramatique.

Posté par
hun
re : Décrypter des textes en connaissant les xor entre eux 21-03-12 à 00:13

Pour ceux à qui ça intéresse, sur un autre forum j'ai trouvé des gens qui ont compris mon énoncé sans problème et qui répondent parfaitement à ma question.

www.bibmath.net/forums/viewtopic.php?pid=34877

Ce sujet, dont l'utilité n'aura que été de débattre sur les caractères admissibles dans un texte en algorithmique (d'ailleurs je n'ai pas eu de réponse de dhalte sur ce point), peut désormais être clos.

A bientôt j'espère.

Posté par
dhalte
re : Décrypter des textes en connaissant les xor entre eux 21-03-12 à 07:13

tu auras au moins appris à t'adresser aux bonnes sources...

Posté par
hun
re : Décrypter des textes en connaissant les xor entre eux 21-03-12 à 17:33

au fait j'ai posté sur l'autre forum avant de poster ici



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !