¿Por qué es importante XOR en criptografía?

Tengo que estar en desacuerdo con Karan Bansal aquí. XOR NO genera entropía, simplemente la conserva. Es decir, un Bitvector aleatorio (una cantidad de bits de tamaño fijo) XORed con un Bitvector no aleatorio es igual a un nuevo Bitvector aleatorio. Esta es la base detrás de la aplicación de claves al texto sin formato en la criptografía basada en computadora. Usar el OR simple no funcionaría aquí, ya que no sería posible restaurar el texto sin formato al OR nuevamente, tampoco funcionaría AND:

Sea (0,0,1,1,0) el vector de texto sin formato y (0,1,0,1,1) el vector clave, entonces:

  • O: daría como resultado (0, 1, 1, 1, 1) (este es nuestro paso de encriptación), O al volver a desencriptarlo, con la clave, sin embargo, daría como resultado (0, 1, 1, 1, 1) que no es en absoluto lo que era nuestro texto plano originalmente.
  • Y: daría como resultado (0, 0, 0, 1, 0), intentemos descifrarlo de nuevo: (0, 0, 0, 1, 0) así que aquí también nuestro texto plano se perdería para siempre.
  • XOR: (finalmente) nos da: (0, 1, 1, 0, 1) y aplicarlo nuevamente da como resultado: (0, 0, 1, 1, 0) que nuevamente es nuestro texto plano.

Esas tres son las únicas operaciones a nivel de bit entre dos operandos que existen. Dado que solo XOR tiene las propiedades que necesitamos, es natural que XOR sea muy importante cuando se trata de combinar dos bits entre sí.

Esta propiedad de XOR puede explotarse para el algoritmo XOR-swap (peligroso, ¡no intentes en el código de producción!), Lo que hace posible intercambiar el contenido de 2 variables sin una tercera variable temporal. :

  • dejemos que x e y sean nuestras variables, entonces: x = x XOR y, (es decir, la “nueva” x es el resultado de la antigua x XORed con y),
  • y = y XOR x (XOR y con la “nueva” x, desde arriba, lo que originalmente estaba en x ahora está en y),
  • y finalmente x = x XOR y (ahora lo que originalmente estaba en y ahora está en x)

Este algoritmo está muy relacionado con el cifrado Feistel, que es solo XORing el texto sin formato y la clave.

Algoritmo de intercambio XOR – Wikipedia

Cifrado Feistel – Wikipedia

XOR se puede utilizar fácilmente en una técnica de cifrado de datos. Una encriptación simple de “palabra clave” es, cuando haces XOR entre un “texto” y una “palabra clave”, el resultado es algo basura. Pero si repite el XOR, con la misma palabra clave, recupera el texto original. En el caso de un texto largo, por supuesto, repite la palabra clave hasta el final del texto.

Exclusivo o (XoR) es importante porque puede usarse fácilmente para lograr criptografía a diferencia de otras operaciones lógicas. XoR es verdadero cuando las salidas difieren. Entonces, por ejemplo, con una cadena de números binarios como 10110011 se puede cifrar con la clave 01010101 para obtener el número cifrado de 11100110. Para descifrar este número, simplemente use la clave 01010101 para obtener el mensaje original.

En términos de importancia, el cifrado XoR es bastante simple de implementar con menos potencia computacional. Sin embargo, su principal desventaja es que puede romperse fácilmente. Cuando un atacante realiza un análisis entre el mensaje de texto sin formato y el mensaje cifrado, puede comprender fácilmente la clave utilizada para cifrar el mensaje, especialmente si se trata de una clave repetitiva como la que hemos utilizado en este ejemplo (01010101). Consulte más información aquí Cifrado XOR y para comprender más sobre criptografía, consulte aquí Comprensión de la criptografía

Es muy útil para la criptografía básica, ya que es reversible, puede girar la manivela hacia atrás y recuperar el cerdo original de la salchicha.

Tampoco se usa en la criptografía de los fanáticos, ya que no desea que sea fácil de revertir, desea una función que sea fácil de cifrar y difícil de revertir. Ahí es donde realmente brillan grandes pares de primos.

XOR es muy importante debido a su impresionante propiedad, es decir, genera el bit de salida 0 y 1, cada uno con la misma probabilidad de 0.5, lo cual es muy útil para generar entropía.

XOR es importante en criptografía debido a la siguiente propiedad:

Z: = Y XOR X

dónde,
Y -> distribución desconocida
X-> uniformemente distribuido e independiente de Y

Resultado: Z -> variable aleatoria uniforme.

More Interesting

¿Cómo se usan las supercomputadoras?

¿Debo actualizarme a Fedora 24 (desde 23) ahora o esperar?

¿Qué pasa si un estudiante de CSE no tiene tanto conocimiento de programación?

¿Cuál es la diferencia entre CS y SE?

¿Cuál debería ser el rango mínimo en el JEE Advanced para obtener un asiento CS en el IIT superior?

Soy un estudiante de último año de ingeniería en ciencias de la computación en busca de pasantías en desarrollo web. ¿Cuáles son los pasos que debo seguir para obtener uno? ¿Cómo debo buscar empresas? ¿Cuáles son las habilidades que debo adquirir antes de solicitar una?

¿Qué requisitos previos son necesarios para comprender completamente Node.js?

¿Cuál es el mejor sistema operativo en caso de seguridad?

¿Cómo se sienten los estudiantes de informática cuando trabajas por primera vez en el mundo real?

¿Qué módulos funcionales de SAP son más relevantes / más cercanos a la informática?

¿Es Giga Flops una forma confiable de comparar la velocidad de los procesadores de la computadora (no le interesa la potencia u otros parámetros)?

¿Cuál es la diferencia entre sincronización de procesos y punto muerto? Si hay sincronización, ¿ocurrirá un punto muerto o no?

Aprendiendo a programar, académicamente un ingeniero. ¿Llegué tarde?

Soy estudiante de informática. ¿Pueden ayudarme a decidir sobre un proyecto de último año que involucre desarrollo de IA y Android?

¿Cuánto conocimiento de codificación se necesita para llevar a cabo y mejorar los cálculos de DFT (teoría funcional de densidad)?