cifrado XOR


En criptografía , el cifrado XOR simple es un tipo de cifrado aditivo , [1] un algoritmo de cifrado que opera según los principios:

donde denota la operación de disyunción exclusiva (XOR). [2] Esta operación a veces se denomina suma de módulo 2 (o resta, que es idéntica). [3] Con esta lógica, una cadena de texto se puede cifrar aplicando el operador XOR bit a bit a cada carácter usando una clave determinada. Para descifrar la salida, simplemente volver a aplicar la función XOR con la clave eliminará el cifrado.

Por ejemplo, la cadena "Wiki" ( 01010111 01101001 01101011 01101001 en ASCII de 8 bits ) se puede cifrar con la clave repetida 11110011 de la siguiente manera:

El operador XOR es extremadamente común como componente en cifrados más complejos. Por sí mismo, utilizando una clave de repetición constante, un cifrado XOR simple puede descifrarse trivialmente mediante el análisis de frecuencia . Si el contenido de cualquier mensaje se puede adivinar o conocer de otra manera, entonces se puede revelar la clave. Su mérito principal es que es simple de implementar y que la operación XOR es computacionalmente económica. Por lo tanto, a veces se utiliza un cifrado XOR repetido simple (es decir, utilizando la misma clave para la operación xor en todos los datos) para ocultar información en casos en los que no se requiere seguridad particular. El cifrado XOR se usa a menudo en malware informático para dificultar la ingeniería inversa.

Si la clave es aleatoria y es al menos tan larga como el mensaje, el cifrado XOR es mucho más seguro que cuando hay repetición de clave dentro de un mensaje. [4] Cuando el flujo de claves es generado por un generador de números pseudoaleatorios , el resultado es un cifrado de flujo . Con una clave que es realmente aleatoria , el resultado es un bloc de notas de un solo uso , que en teoría es irrompible .

En cualquiera de estos cifrados, el operador XOR es vulnerable a un ataque de texto sin formato conocido , ya que texto sin formato ciphertext = key . También es trivial cambiar bits arbitrarios en el texto sin formato descifrado mediante la manipulación del texto cifrado. Esto se llama maleabilidad .