Qu'est-ce que le cryptage XOR?

j'ai entendu parler des gens qui ont commencé le cryptage et j'ai pensé que c'était peut-être quelque chose que j'aimerais, donc J'ai vérifié XOR et je ne peux pas donner de sens à ça. Quelqu'un peut-il m'expliquer ce QU'est XOR ?

14
demandé sur Community 2010-01-08 20:35:23

8 réponses

XOR est une opération logique, prononcée exclusif ou. Il peut être utilisé pour chiffrer des messages simplement et rapidement. Vous pouvez voir une table de vérité pour cette opération ici: http://mathworld.wolfram.com/XOR.html

implémentation de pseudo-code (via http://www.evanfosmark.com/2008/06/xor-encryption-with-python/):

#!/usr/bin/env python

from itertools import izip, cycle

def xor_crypt_string(data, key):
    return ''.join(chr(ord(x) ^ ord(y)) for (x,y) in izip(data, cycle(key)))

my_data = "Hello. This is a secret message! How fun."
my_key= "firefly"

# Do the actual encryption
encrypted = xor_crypt_string(my_data, key=my_key)

print encrypted
print '---->'

# This will obtain the original data from the encrypted
original = xor_crypt_string(encrypted, key=my_key)

print original

Sortie:

.     BY2F
FRR
DF$IB
---->
Hello. This is a secret message! How fun.
6
répondu miku 2010-01-08 17:46:48

vous prenez une clé, comme 0101, puis vous l'utilisez pour XORISER votre chaîne (en format binaire) pour obtenir une chaîne chiffrée.

0101 XOR <-- key
1011 <---- original message
----
1110 <-- send message

vous envoyez 1110 à votre récepteur. Ce récepteur, prend alors la chaîne reçue et la transpose avec la clé pour obtenir le message original:

1110 XOR <--- received message
0101 <-- key
----
1011 <--- original message
25
répondu z - 2010-01-08 17:38:43

XOR, ou' exclusive or ' est une opération logique 2 opérandes définie comme:

(a and b) or (not a and not b)

 a  b  result
 0  0  0
 1  0  1
 0  1  1
 1  1  0

La caractéristique critique de XOR en ce qui concerne le cryptage est qu'il est réversible, c'est à dire où C = A XOR B, alors vous pouvez récupérer A en utilisant A = C XOR B.

ainsi pour un flux de plaintext A, et une clé de même longueur B, vous pouvez générer du cryptotext C, et l'envoyer au destinataire.

le destinataire, qui a une copie de B dans son coffre, peut faire C XOR B et régénérer A.

11
répondu Alex Brown 2010-01-08 17:38:04

au niveau le plus simple, les opérations réversibles telles que XOR (prononcé "exclusif ou") forment le fondation de la plupart de la cryptographie.

XOR agit comme un interrupteur à bascule où vous pouvez activer et désactiver des bits spécifiques. Si vous voulez "brouiller" un nombre( un motif de bits), vous XOREZ avec un "secret" nombre. Si vous prenez ce nombre brouillé et XOR il à nouveau avec le même numéro secret obtenez votre numéro original .

Encrypt a number (210) with a secret "key" (145).

                  210 XOR 145 gives you 65   ←-- your "scrambled" result
                                      |
                  +   now unscramble it   +
                  |
                  ↓
                  65  XOR 145 gives you 210  ←-- and back to your original number

C'est un très exemple rudamentaire. Lorsque vous cryptez une séquence de nombres (ou de texte ou n'importe quel motif de bits) avec XOR, vous avez un algorithme de chiffrement très basique.

2
répondu Robert Cartaino 2010-01-09 19:58:56

j'ai écrit un blog sur le cryptage XORhttp://programmingconsole.blogspot.in/2013/10/xor-encryption-for-alphabets.html

mathématiquement, XOR encryption / cipher est additive cipher, un algorithme de chiffrement qui fonctionne selon les principes suivants:

(A * B) + (!A * !B)

 A  B  A XOR B
 0  0     0
 1  0     1
 0  1     1
 1  1     0

l'opérateur xor est exactement comme et (*) et ou (+) l'opérateur Pour décrypter le code, nous avons juste besoin de XOR le code avec la clé pour retrouver le texte original . L'opérateur XOR est extrêmement composant commun dans les Algorithmes de cryptage complexes. Un tel cryptage peut facilement être brisé en utilisant une clé de répétition constante et en utilisant l'analyse de fréquence . Mais nous changeons la clé après chaque cryptage briser un tel cryptage est computationnellement très difficile un tel cryptage est appelé un cryptage de flux dans lequel chaque bit suivant est crypté à l'aide d'une clé pseudo-aléatoire différente , un tel type de cryptage a été utilisé par les Allemands dans leur cryptage Lorentz .

en utilisant un flux * vraiment aléatoire de le chiffrement est théoriquement incassable et donc inutilisable

je vous recommande de regarder

BBC: Code Breakers Bletchley Parcs perdu Héros documentaire

il vous donnera de véritables aperçus dans le monde de la cryptographie et des bits cryptés . Comment important est la cryptographie ? Eh bien, c'était la cause de l'invention des ordinateurs.

2
répondu Namit Sinha 2013-10-19 19:14:23

XOR est l'abréviation de "exclusive or". A XOR B est vrai si A est vrai, ou si B est vrai, mais pas si A et B sont vrais.

il est utilisé pour la cryptographie parce QU'un XOR B XOR a est égal à B - donc si vous pouvez utiliser A comme une clé pour le cryptage et le déchiffrement.

1
répondu fiirhok 2010-01-08 17:40:00

il est à noter que cette méthode de cryptage peut difficilement être considérée comme sûre. Si vous cryptez un fichier commun (PNGs, JPGs, etc.) où l'en-tête est bien connu, la clé peut facilement être dérivées à partir du contenu crypté et à l'en-tête.

1
répondu Timothy Baldridge 2010-01-08 17:41:19

le cryptage XOR peut aussi être utilisé dans bloc de chiffrement chaînage. XOR CBC est utilisé comme un ajout à de nombreuses implémentations de cryptage. Il existe un projet de code google qui s'en sert seul, bien que XOR seul ne soit pas très sûr:http://code.google.com/p/xorencryption/

0
répondu pokstad 2010-01-08 18:07:14