Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3042 connectés 

  FORUM HardWare.fr
  Programmation
  Algo

  De l'efficacité du XOR

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

De l'efficacité du XOR

n°1219164
Alprema
Posté le 10-10-2005 à 01:00:26  profilanswer
 

Bonsoir à tous.
 
J'ai fait quelques recherches à propos de cryptage, et j'ai vu à multiples reprises que le XOR était extremmement faible, sa faiblesse residant dans le fait qu'on retrouve la clef si on a un morceau de donnée sous sa forme orinigale et sa forme cryptée, comme par exemple avec le header d'un fichier.
Mais dans le cas d'un .txt, la personne ne connais RIEN de la donnée (sinon elle n'essaierais pas de casser le cryptage). Est-ce que dans ce cas le cryptage peut être cassé et si oui comment?
 
(Merci d'eviter les réponse du style "c'est facile, je la casse en deux secondes", ce que je veux c'est comprendre la vulnérabilité de cette méthode, pas avoir un récit de vos explois personnels ;) )

mood
Publicité
Posté le 10-10-2005 à 01:00:26  profilanswer
 

n°1219191
Taz
bisounours-codeur
Posté le 10-10-2005 à 01:56:39  profilanswer
 

si par XOR tu endens
 
p = q xor k  (avec k constant)
 
alors oui, c'est très facile. c'est réversible. il y a très peu de combinaisons. si tu cryptes du texte, statistiquement, tu peux trouver encore plus vite.

n°1219193
Taz
bisounours-codeur
Posté le 10-10-2005 à 02:09:50  profilanswer
 

après XOR, faut savoir ce qu'on cherche
 
en python

Code :
  1. def crypt(s, k): return ''.join([ chr(ord(c) ^ k) for c in s ])
  2. decrypt = crypt
  3. >>> crypt("benoit", 42)
  4. 'HODEC^'
  5. >>> decrypt(crypt("benoit", 42), 42)
  6. 'benoit'
  7. >>> decrypt(crypt("benoit", 42), 43)
  8. 'cdonhu'


 
comme tu vois c'est symétrique. Mais une mauvaise clef permet quand même de faire marcher l'algorithme. Une mauvaise clef peut aboutir à résultat cohérent. Il faut donc savoir ce qu'on cherche. Si c'est du texte, avec un dictionnaire, tu testes les clefs, et tu regardes si le texte décrypté est humain. Par contre si tu codes du binaires, tu peux t'accrocher :)

n°1219199
Alprema
Posté le 10-10-2005 à 02:30:22  profilanswer
 

Taz a écrit :

si par XOR tu endens
 
p = q xor k  (avec k constant)
 
alors oui, c'est très facile. c'est réversible. il y a très peu de combinaisons. si tu cryptes du texte, statistiquement, tu peux trouver encore plus vite.


 
 
En gros ce que tu veux dire c'est que tu va essayer une infinité de clefs, et à chaque fois essayer de trouver des mots via un dictionnaire ? Mais euuuu, si la clef est suffisamment longue ca prends un temps fou !
 
Enfin c'est vrai que XOR ca se mouline vite pour un CPU mais qd meme, ca me parait difficile.

n°1219201
Taz
bisounours-codeur
Posté le 10-10-2005 à 03:13:51  profilanswer
 

attend, on parle de l'algo XOR avec une clef constante caractère par caractère. par de l'opération mathématique.
 
Sinon la majorité des algos de cryptages utilise l'opération avec des clefs très longues (milliers de bits) (enfin c'est plus compliqué, beaucoup plus compliqué que ça). Voire des algos genre RC4, pour crypter des flux, qui génèrent des séquences X, tel que pour tout caractère en entrée tu fais  c xor Xi.
 
 
Sinon tu le dis bien : c'est prouvé. Le cryptage parfait, c'est pour chaque caractère, tu fais un xor avec une clef aléatoire.
Auquel cas, ta clef est aussi longue que ton message.

n°1219203
dividee
Posté le 10-10-2005 à 03:46:37  profilanswer
 

Si le message est long (par rapport à la clé), et qu'on sait que c'est un fichier texte, un simple XOR est assez facile à craquer par analyse statistique de la fréquence des caractères. C'est d'autant plus facile si on connait la longueur de la clé et la langue dans laquelle le message est écrit...
 
edit: Taz l'avait dit j'avais pas vu... Mais comme ça c'est clair


Message édité par dividee le 10-10-2005 à 03:55:06
n°1223582
jesus_chri​st
votre nouveau dieu
Posté le 14-10-2005 à 22:52:49  profilanswer
 

notez que si vous disposez d'une clé de même longueur que le message, c'est totalement inviolable. C'est facilement démontrable.
 
Donc faire passer 1000 octets de texte avec une clé de 1000 octets c'est imparable.
-> A quoi ça sert, dans ce cas autant partager directement le texte et pas la clé ?
Et bien ça sert que si tu échanges en main propres (sur un CDROM par exemple) une clé de 700Mo aujourd'hui, tu pourras transférer 700Mo de données sûres plus tard. De plus il n'y a pas de contrainte sur la clé, pas besoin que ce soit un nombre premier etc... un simple random bien choisit suffit.
 
C'est ce qui était fait entre USA et URSS pendant la guerre froide : les clés étaient échangées par valise diplomatique et les messages par simple cable.

n°1223625
0x90
Posté le 15-10-2005 à 03:26:17  profilanswer
 
n°1227067
grimgroth
Posté le 20-10-2005 à 13:45:14  profilanswer
 

c'est ce qu'on apelle le "One Time Pad". Je le sais, je l'avais oublié lors d'un partiel... faut vraiment etre con... Et oui, c'est efficace à 100%
Par contre, le fait de réutiliser la clé affaiblit le système de manière notable. Donc faut pas le faire :)
Ici un lien vers les cours de crypto de Lille1 : http://www.lifl.fr/~fontaine/PAC/
Ca pourra peut-etre te servir

n°1233117
joce
Architecte / Développeur principal
"BugHunter"
Posté le 28-10-2005 à 01:26:16  profilanswer
 

XOR c'est le shérif de l'espace et c'est le plus fort, donc il est très efficace :o

mood
Publicité
Posté le 28-10-2005 à 01:26:16  profilanswer
 

n°1233128
LeGreg
Posté le 28-10-2005 à 03:38:48  profilanswer
 

jesus_christ a écrit :

C'est ce qui était fait entre USA et URSS pendant la guerre froide : les clés étaient échangées par valise diplomatique et les messages par simple cable.


 
ah je pensais que la valise diplomatique c'était le premier truc à être fouillé ;)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Algo

  De l'efficacité du XOR

 

Sujets relatifs
Efficacité de LIKE dans une expression SELECTcryptage de fichier avec XOR
[C++ 10 lignes inside] Probleme avec programme de cryptage XORAnalyse de "l'efficacité" d'opérateurs de traitement d'image
[math/algo] efficacité d'une formule[PHP]fonction XOR
Plus de sujets relatifs à : De l'efficacité du XOR


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)