Cifrado Caesar mejorado: ¿está protegido? [cerrado]

0

Primero, permítame enfatizar que no sé nada sobre el cifrado y quizás mi pregunta sea completamente errónea desde el punto de vista del cifrado.

Ya que debo usar una simple sustitución por una razón técnica y sé que el cifrado César no está asegurado y puede ser pirateado fácilmente y estaba buscando una manera de hacerlo más seguro para mensajes cortos (hasta 500 palabras)

Mi sugerencia

1) en lugar de usar los 26 caracteres en inglés, usaré los 1.111.998 caracteres en Unicode.

2) algunos caracteres se seleccionarán por adelantado y nunca se utilizarán en el mensaje cifrado. Los caracteres seleccionados se insertarán como distracciones en el mensaje cifrado (el receptor sabrá ignorarlos).

3) el orden de los caracteres también se cambiará aleatoriamente y el receptor tendrá que hacer el trabajo de reordenarlos.

4) en lugar de simplemente cambiar los caracteres, crearé un mapa de relaciones aleatorias entre los personajes

Example:

Mensaje: "Te amo"

Caracteres de distracción: “o”

Asignación (por la simplicidad del ejemplo que asigné para ordenar caracteres en inglés): “I” = K, ““ = U, “L” = R, “V” = M, “E” = T, “Y ”= Z,“ U ”= A

Mensaje encriptado: MOTUOKOURAZ (después de eliminar las "O", mapear y reorganizar los caracteres)

Descifrado:

El receptor descartará las "O" s: MTUKURAZ

El receptor se traducirá utilizando el mapa: ve i luy

El receptor mezclará las letras al azar hasta que el mensaje tenga sentido (sé que esto suena como una fuerza bruta, pero en mi caso está bien): I lve yu

El receptor agregará la "O" que falta: Te amo

¿Por qué inventar la rueda? ( ¿Por qué? ¿No rodamos los nuestros? )

Tengo un caso en el que solo puedo cambiar de caracteres y no puedo hacer algo sofisticado (como ASE) y todavía quiero que sea seguro. Entonces mi pregunta no es si hay algo mejor, pero ¿es seguro?

¿Por qué creo que esto resuelve las debilidades del cifrado César?

No puedes realizar un ataque de estadísticas de langue porque las letras están codificadas.

No puedes hacer un ataque de estadísticas de cartas ya que tenemos cartas de distracción.

Y el hecho de que tengamos un mapa y no una mierda y más de un millón de letras en lugar de 26 hace que cada "adivinación" de una letra sea casi inútil para las demás (especialmente en mensajes cortos).

Gracias!

    
pregunta Omri 12.11.2016 - 10:14
fuente

2 respuestas

1

El cifrado César en este contexto asume que solo hay 26 caracteres posibles en un mensaje.

A continuación se presentan los problemas con su algoritmo.

  • Con el análisis estadístico, los caracteres de distracción pueden ser identificado.
  • El análisis de frecuencia de ocurrencia sería útil para esto.

  • La lógica de pedido debe transferirse entre el remitente y receptor.

  • Si el destinatario tiene que aplicar fuerza bruta la lógica de reordenación, el atacante también puede hacer lo mismo.

Sin embargo, su decisión de crear una asignación aleatoria en lugar de cambios se acerca a un cifrado perfecto conocido como One Time Pad o Vernaum Cipher.

Déjame usar el mismo ejemplo que usaste. Estaré cifrando ILOVEYOU con la clave WHATISIT

ILOVEYOU

WHATISIT

Aquí la enésima letra de la tecla indica cuál es la cantidad de turno que debo hacer en la rueda César para la enésima letra del mensaje.

Por ejemplo, en la tecla A significa que no hay cambio, B significa cambio 1 ... y Z significa cambio 25.

Por ejemplo, la primera letra de la clave es W. Por lo tanto, en el texto cifrado, la primera letra del mensaje se desplazará en 22. El cambio de I en 22 nos dará E. De forma similar, todo el mensaje será

ESOOMQWN

El destinatario que conoce la clave puede descifrar el mensaje realizando el cambio en la dirección opuesta con la misma clave.

La ventaja aquí en comparación con su algoritmo es que no se requiere una asignación codificada, cada letra del mensaje utiliza un cifrado separado. El análisis estadístico es imposible si

  • La clave es tan larga como el mensaje.
  • La clave es generada aleatoriamente flujo de letras.
respondido por el hax 12.11.2016 - 16:14
fuente
1

Su esquema no es viable ni seguro.

  

1) en lugar de usar los 26 caracteres en inglés, usaré el   1.111.998 caracteres en Unicode.

¿Qué cambia esto en términos de seguridad? No cambiará el hecho de que la mayoría de los caracteres en los mensajes serán A-Z.

  

2) algunos caracteres seleccionarán por adelantado y nunca se usarán en   El mensaje cifrado. Los caracteres seleccionados serán insertados como un   distracciones en el mensaje cifrado (el receptor sabrá que   ingnóralos). ... El receptor agregará la "O" que falta:

Eso simplemente no funcionará. Hay infinitos mensajes posibles que podría generar al agregar una cantidad de caracteres en algunos lugares, y la computadora no es inteligente. Mientras que un hash podría ayudar un poco, supongo que con tus restricciones no puedes tener una (y esto está fuera del alcance de un "cifrado" puro de todos modos).

  

El receptor codificará las letras al azar hasta que aparezca el mensaje   tiene sentido (sé que esto suena como una fuerza bruta, pero en mi caso   esto está bien):

De nuevo, no es posible con algún método de verificación. Y si tienes uno, por ejemplo. 20 caracteres son 2432902008176640000 posibilidades. No está bien.

  

No puedes hacer un ataque de estadísticas de cartas ya que tenemos una distracción   cartas.

¿Y qué? Esto no cambia mucho.

  

Y el hecho de que tenemos un mapa y no una mierda y más de un millón   Las letras en lugar de 26 hacen que cada "adivinación" de una letra sea casi inútil.   para los demás (especialmente en mensajes cortos).

Nuevamente, no cambiará el hecho de que la mayoría de los caracteres en los mensajes serán A-Z.

    
respondido por el deviantfan 12.11.2016 - 12:25
fuente

Lea otras preguntas en las etiquetas