Qu'est-ce que le cryptage XOR?
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.
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
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.
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.
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.
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.
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.
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/