He oído que las personas comienzan a encriptar y pensaron que podría ser algo que me gustaría, así que revisé XOR y no puedo encontrarle sentido. Entonces, ¿alguien puede explicarme qué es XOR?¿Qué es el cifrado XOR?
Respuesta
XOR es una operación lógica, pronunciada exclusiva o. Se puede usar para cifrar mensajes de forma simple y rápida. Se puede ver una tabla de verdad para esta operación aquí: http://mathworld.wolfram.com/XOR.html
implementación del código cuasi-seudo (a través de 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
Salida:
. BY2F
FRR
DF$IB
---->
Hello. This is a secret message! How fun.
XOR, o 'exclusiva o' es una operación lógica 2 operando define como:
(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 característica crítica de XOR con respecto al cifrado es que es reversible, es decir, donde C = A XOR B, entonces puede recuperar A usando A = C XOR B.
De modo que para una secuencia de texto plano A y una clave de la misma longitud B, puede generar cryptotext C y enviarlo al destinatario.
El receptor, que tiene una copia de B en su caja fuerte, puede hacer C XOR B y regenerar A.
Si B se usa solo una vez, se trata de un cifrado de pad único, el único tipo de encriptación teóricamente irrompible. –
se toma una clave, tales como 0101, y luego se lo utiliza para XOR la cadena (en binario formato) para lograr una cadena encriptada.
0101 XOR <-- key
1011 <---- original message
----
1110 <-- send message
Usted envía 1110 a su receptor. Ese receptor, a continuación, toma la cuerda y XORs recibió con la clave para obtener el mensaje original:
1110 XOR <--- received message
0101 <-- key
----
1011 <--- original message
XOR es la abreviatura de 'exclusiva o'. A XOR B es verdadero si A es verdadero, o si B es verdadero, pero no si ambos A y B son verdaderos.
Se utiliza para la criptografía porque A XOR B XOR A es igual a B, por lo que puede utilizar A como clave para el cifrado y el descifrado.
Debe tenerse en cuenta, que este método de El cifrado difícilmente puede considerarse seguro. Si cifra un archivo común (PNG, JPG, etc.) donde el encabezado es bien conocido, la clave se puede derivar fácilmente del contenido cifrado y del encabezado conocido.
En realidad, depende de la implementación. Si la longitud de la clave es menor que la longitud del mensaje, la clave se repetirá y puede derivarse. Si la longitud de la clave es la misma que la longitud del mensaje, y nunca utiliza la misma tecla dos veces, básicamente tiene un pad de una sola vez que no se puede romper. – Marko
Sin embargo, debe encontrar la manera de transmitir la clave de forma segura al destinatario, y si pudiera hacerlo, podría haber enviado el mensaje utilizando ese canal seguro. (De ahí que OTP no se use mucho en el mundo real). – Noah
En el nivel más simple, las operaciones reversibles como XOR (pronunciado "O exclusivo") forman el foundation of most cryptography.
XOR actúa como un interruptor de palanca donde puede activar y desactivar bits específicos. Si desea "codificar" un número (un patrón de bits), lo XOR con un número "secreto". Si toma ese número codificado y XOR de nuevo con el mismo número secreto, devuelve su número original.
Encrypt a number (210) with a secret "key" (145). 210 XOR 145gives you 65 ←-- your "scrambled" result |+ now unscramble it +| ↓ 65 XOR 145gives you 210 ←-- and back to your original number
Este es un ejemplo muy rudamentary . Cuando cifra una secuencia de números (o texto o cualquier patrón de bits) con XOR, tiene un very basic cipher algorithm.
No es realmente la base de la criptografía * all *, ya que las cifras de bloque tienen varios modos que nunca hacen un solo XOR, como ECB, OFB y CFB. También cualquier operación reversible puede tomar el lugar de XOR, como la suma/resta mod 256 como un ejemplo común. –
Aclaré un poco la publicación. –
El cifrado XOR también se puede utilizar en cipher block chaining. XOR CBC se utiliza como una adición a muchas implementaciones de cifrado. Hay un proyecto de código de Google que hace uso de esto por sí mismo, aunque XOR por sí sola no es muy seguro: http://code.google.com/p/xorencryption/
escribí un blog sobre el cifrado XOR http://programmingconsole.blogspot.in/2013/10/xor-encryption-for-alphabets.html
Matemáticamente, el cifrado XOR/cifrado es cifrado aditivo, una algoritmo de cifrado que opera de acuerdo con los siguientes principios:
(A * B) + (!A * !B)
A B A XOR B
0 0 0
1 0 1
0 1 1
1 1 0
operador XOR es como y (*) y OR (+) operador para descifrar el cifrado sólo tenemos que XOR el sistema de cifrado con la clave para recuperar el original texto. El operador XOR es un componente extremadamente común en Algoritmos de encriptación complejos. Tal cifrado se puede romper fácilmente mediante el uso de una tecla de repetición constante y el uso de análisis de frecuencia. Pero cambiamos la clave después de cada encriptación. Dicha encriptación es computacionalmente muy difícil tal cifrado se denomina cifrado de flujo en el que cada bit siguiente se cifra utilizando una clave pseudoaleatoria diferente, tal tipo de cifrado fue utilizado por los alemanes en su cifrado de Lorentz.
Mediante el uso de una corriente verdaderamente aleatoria * de la llave de la cifra es teóricamente irrompible, por tanto, inutilizable
yo le recomendaría a ver
BBC: Code Breakers Parques Bletchley perdieron Héroes documental
Le brindará información real sobre el mundo de la criptografía y los bits encriptados. ¿Qué tan importante es la criptografía? Bueno, fue la causa de la invención de las computadoras.
- 1. ¿Qué es el cifrado de clave nula?
- 2. ¿Qué es "x && foo()"?
- 3. ¿Qué es x-tmpl?
- 4. ¿El cifrado Md5 es simétrico o asimétrico?
- 5. ¿Qt es compatible con el cifrado RSA?
- 6. ¿Qué algoritmo de cifrado es mejor para cadenas pequeñas?
- 7. ¿Por qué no es `Encoding.UTF8.GetBytes (Encoding.UTF8.GetString (x)) == x`
- 8. ¿Qué tipo de contraseñas/cifrado de contraseña es esto?
- 9. ¿Por qué es (1/2) * x diferente de 0.5 * x?
- 10. ¿Cuál es el resultado de X (X, X)?
- 11. ¿Qué es "undefined x 1" en JavaScript?
- 12. Paypal X - pagos adaptables: ¿qué es esto?
- 13. ¿Qué es el varient .toString() en X ++ o Dynamics AX?
- 14. ¿Cuál es la diferencia entre el cifrado GET y POST?
- 15. ¿Cifrado y cifrado son diferentes?
- 16. "x = ++ x" ¿es realmente indefinido?
- 17. ¿Qué significa x = x (:) en matlab, donde x es un vector?
- 18. Python: Cifrado alfanumérico bidireccional
- 19. ¿Qué método de cifrado usa el método .NET FormsAuthentication.Encrypt()?
- 20. ¿Qué debería saber todo desarrollador web sobre el cifrado?
- 21. ¿Una forma de SSL es el cifrado de una manera?
- 22. Enviando IV junto con el texto de cifrado, ¿es seguro?
- 23. ¿Cuál es la diferencia entre el cifrado SHA y AES?
- 24. WCF netTCPBinding - ¿Es suficiente el cifrado de transporte?
- 25. ¿Es x + = 1 más eficiente que x = x + 1?
- 26. ¿Cuál es la diferencia entre X = X ++; vs X ++ ;?
- 27. ¿Qué define los grados de cifrado?
- 28. ¿El cifrado garantiza la integridad?
- 29. ¿Admite mcrypt el cifrado asimétrico?
- 30. Si x es la lista, ¿por qué funciona x + = "ha", mientras que x = x + "ha" arroja una excepción?
http://en.wikipedia.org/wiki/XOR_cipher – miku