Detección automatizada de encriptación

8

¿Hay algún programa que, dado un texto cifrado, me diga cuál es el algoritmo de cifrado?

¿Qué pasa si tengo el texto plano? ¿Hay algo que se pueda hacer en ese caso?

    
pregunta Stelios Joseph Karras 06.12.2011 - 10:21
fuente

4 respuestas

13

No.

El punto central del cifrado es producir un texto cifrado que no se pueda distinguir del ruido aleatorio.

A falta de sugerencias externas, la ÚNICA forma de determinar qué mecanismo de cifrado se utiliza es ejecutar la rutina de descifrado con la contraseña correcta y verificar el resultado para ver si se ve correcto.

En una nota relacionada, de la misma manera, la única forma de determinar si está usando la contraseña correcta es ejecutar la rutina de descifrado con el cifrado correcto y verificar el resultado.

    
respondido por el tylerl 06.12.2011 - 11:02
fuente
2

Mientras se use la criptografía moderna, no hay absolutamente ninguna manera de determinar qué cifrado se usó.

Sin embargo, si tiene el texto sin formato y si en algún punto la secuencia PRNG de un cifrado de flujo puede descifrar mensajes desconocidos con una simple operación xor. la reutilización de PRNG es desagradable, pero solo un novato cometería tal error.

    
respondido por el rook 23.12.2011 - 04:50
fuente
2

Un importante inquilino de la teología del cifrado es que incluso si sabes exactamente cómo es algo cifrado, todavía no tienes un ataque mejor que una búsqueda de fuerza bruta para la clave.

Por otro lado, si encuentra un montón de bits en algún lugar con una nota adjunta que dice "la contraseña secreta es foobar", entonces podría ser útil tener un diccionario de la Envoltorios y formatos de archivo comunes utilizados por software de cifrado conocido. nunca he visto uno, pero estoy seguro de que los profesionales los tienen.

    
respondido por el ddyer 23.12.2011 - 08:14
fuente
1

Tu pregunta tiene dos lados:

  1. Si el sistema de cifrado es bueno, su salida es indistinguible de los bytes aleatorios. Por lo tanto, el cifrado con el algoritmo A1 y el cifrado con el algoritmo A2 no deben distinguirse entre sí, ya que ambos son indistinguibles de los bytes aleatorios.

  2. Los criptógrafos siempre asumen que el atacante sabe qué algoritmo se usó. Esto se supone porque no sabemos cuánto puede ser el nombre del algoritmo; después de todo, está encarnado como software, en un archivo ejecutable, y hay un código fuente en alguna parte, y mucha gente sabe qué algoritmo se usa. No puede ser muy secreto. Por lo tanto, el análisis de seguridad toma la postura cautelosa (si es conservadora) de considerar que solo la clave es secreta (para eso está la clave: para concentrar el secreto).

Debido al punto 2, muchos formatos de cifrado incluyen encabezados (fuera de la parte realmente cifrada) que definen claramente qué algoritmo de cifrado se usó. No cambia el análisis de seguridad, ya que lo hacemos bajo el supuesto de que cualquier atacante ya sabe todo lo que contiene el encabezado. Sin embargo, dicho encabezado es muy conveniente para la robustez de la aplicación; notablemente, ayuda mucho para agilidad de algoritmo (la capacidad de soportar varios tipos de algoritmos).

Por ejemplo, un correo electrónico cifrado con S / MIME es en realidad un CMS (codificado en Base64 para que pueda viajar sin daños como un correo electrónico) que contiene una especificación claramente visible del algoritmo de cifrado (escriba ContentEncryptionAlgorithmIdentifier en el CMS especificación).

Resumen: aunque el nombre del algoritmo de cifrado normalmente no puede volver a calcularse a partir de los datos cifrados (ya sea que sepa el texto en claro o no), esa información generalmente se puede obtener de los metadatos que rodean el blob cifrado y eso no es un problema de seguridad .

(O más bien, si conocer el algoritmo ayuda significativamente al atacante, entonces el algoritmo es basura).

    
respondido por el Thomas Pornin 04.09.2012 - 23:38
fuente

Lea otras preguntas en las etiquetas