¿Métodos de análisis criptográfico para romper o encontrar debilidad en un algoritmo de cifrado? [cerrado]

2

¿Cómo funcionan los criptoanalistas en un algoritmo relacionado con los factores de difusión / confusión para encontrar una debilidad en un algoritmo, por ejemplo, cómo los criptoanalistas podrían encontrar una debilidad en el DES? ¿Hay métodos o software para eso?

O si una persona diseña un cifrado simétrico, ¿cómo puede probarlo desde el punto de vista de las debilidades y la probabilidad de obtener información sobre los datos principales?

Por ejemplo, después de diseñar un algoritmo de encriptación, él / ella encripta un texto con ese algoritmo y ahora tiene texto encriptado, ¿cómo se puede probar que es suficiente desorganización?

    
pregunta Ali 06.05.2015 - 12:25
fuente

2 respuestas

8

Para el criptoanálisis, se aplica el método habitual de tres puntos:

  1. Escribe el problema.
  2. Piensa muy duro.
  3. Escriba la respuesta.

Y eso es todo lo que se puede decir de forma genérica.

La metodología de un criptoanalista es aproximadamente la misma que la de los investigadores en cualquier otra ciencia. El núcleo del trabajo diario de un criptógrafo es leer, leer, leer todos los documentos. Acumular conocimientos e ideas. Luego , cuando el criptógrafo ve el diseño de algún algoritmo criptográfico, su mente subconsciente puede reconocer el patrón, manifestándose en el cerebro del criptógrafo como algo así como: "mmh, este parece ser el tipo de estructura que Schrupkovski estaba rompiendo su artículo presentado en NoWhereCrypt'93, excepto que este está en modo de corte de bits con un FFT adicional ". En última instancia, la investigación consiste en reunir ideas y conceptos que se originan de muchas fuentes distintas.

La seguridad de un algoritmo criptográfico no se puede probar, y mucho menos se ha comprobado (aunque uno puede tener algunas pruebas de reducción agradables, que desafortunadamente cubren solo una parte del problema, por definición). Lo que se puede demostrar es inseguridad : si encuentra un ataque, el algoritmo está roto. Para asegurarse de que un algoritmo sea seguro, deje que algunos criptógrafos intenten romperlo; Muchos criptógrafos por mucho tiempo. Si ninguno podría romperlo, entonces el algoritmo podría estar bien. Esta es toda la idea de la competencia AES , por ejemplo.

El truco difícil es atraer criptógrafos. Tienes que hacer varias cosas:

  1. Debes hacer tu tarea. El algoritmo se debe describir completamente, de forma matemática legible ( no como código en cualquier idioma).

  2. También debe explicar por qué algunas clases genéricas de ataques no se aplican a su diseño (por ejemplo, cryptanalysis diferencial ).

  3. El algoritmo debe ser interesante, lo que básicamente significa que debe ser más eficiente que las alternativas existentes. Para el cifrado simétrico, esto significa que el algoritmo debe ser más rápido que el AES, o tan rápido como el AES pero con implementaciones de tiempo constante, o susceptible de implementaciones extremadamente compactas, o alguna otra ventaja similar. Nadie invertirá tiempo intentando romper un algoritmo que no se usaría de todos modos, ya que es demasiado lento o demasiado grande.

  4. Patentes. No solicitar una patente. La mayoría de los criptógrafos se escapan cuando ven una patente, porque no comprenden las consecuencias de trabajar con algoritmos patentados (son especialistas en criptografía, no en la ley de patentes). Patentar un algoritmo criptográfico es, en la práctica, una forma muy buena de garantizar que el algoritmo no reciba un control externo y no se utilizará.

respondido por el Thomas Pornin 06.05.2015 - 17:49
fuente
0

Supongo que su pregunta es:

¿Cómo determinan las personas si un sistema criptográfico es débil?

Bueno, hay dos tipos de personas que necesitan hacer esto como usted señaló: los que crearon el sistema y los que quieren romper el sistema.

Si el proceso es simétrico, entonces todo lo que necesitamos es que el proceso no sea lineal. Es por eso que AES ganó: es largo y extenso, y no es lineal en absoluto (lo que significa que no puede ser mapeado por matrices).

Todos los sistemas pueden romperse de alguna manera, y las personas necesitan determinar cuánto tiempo lleva ese proceso. Si el proceso es simétrico, entonces sabemos cómo resolverlo: solo toma un tiempo.

Sin embargo, si las computadoras se vuelven demasiado rápidas, necesitamos cambiar a un nuevo sistema criptográfico. Es por eso que dejamos DES: siempre seríamos débiles para los cálculos rápidos y cuando salieron las computadoras más rápidas tuvimos que cambiar.

Así que intentamos encontrar un sistema criptográfico que tardara mucho más en romperse.

Los que hacen el criptosistema también deben saber cómo romperlo de todas las formas posibles.

Para sistemas criptográficos como RSA y ECC, puede ser bastante difícil saber cómo resolverlo. La seguridad de estos se basa en lo que se llama: problemas de NP-hard.

Estos son problemas que son realmente difíciles de resolver y las computadoras no hacen sentadilla para ayudar a resolverlos.

Sí, las computadoras pueden factorizar los números más rápido que los humanos, pero los algoritmos para hacerlo son MUY lentos.

Hay muchos problemas NP-difíciles por ahí, sin embargo.

Puedes tomar cualquiera de estos y crear un sistema criptográfico, ¡y es probable que sea seguro! Así es como hicieron el ECC: escogieron un problema aleatorio de NP difícil, descubrieron que todos los cálculos eran rápidos y fáciles, ¡y eso fue todo!

    
respondido por el Michal Koczwara 06.05.2015 - 19:34
fuente

Lea otras preguntas en las etiquetas