¿Los patrones criptográficos son un riesgo para la seguridad?

1

Estoy escribiendo una aplicación que serializa objetos y luego guarda el XML resultante en un archivo cifrado.

Estoy usando un Vector de inicialización y un Sal guardados en el archivo para descifrar, por lo que dos archivos no serán los mismos aunque puedan contener los mismos datos.

Es el hecho de que tendré patrones de caracteres reconocibles como "<" y "/ >" ¿Y el encabezado que está presente dentro de la salida cifrada representa un riesgo de seguridad o hace que sea más fácil descifrar el cifrado?

La opción que tengo es guardar los valores que necesito guardar en un formato que entiendo, el cual no tendrá más patrones que los datos en sí, pero no estoy seguro si esto es beneficioso.

    
pregunta fingletoe 08.04.2014 - 18:42
fuente

1 respuesta

3

Si los patrones de datos reconocibles en el texto simple de alguna manera debilitan su cifrado simétrico, entonces su cifrado simétrico es basura pura y no debe usarse en absoluto. No haga que su formato de datos sea inconveniente y complejo solo para hacer frente a las (supuestas) deficiencias del algoritmo de cifrado; en su lugar, use un algoritmo que haga las cosas correctamente.

Es difícil decir más al respecto sin una descripción completa y precisa del algoritmo que utiliza. Sin embargo, en general, podemos decir que si es probable que no sepa lo suficiente para hacer las cosas correctamente (o al menos para saber si las hizo correctamente). Eso no es para depreciar sus habilidades: la criptografía es un tema muy especializado y tiene la característica única de no ser verificable. Nadie puede saber realmente si lo que implementaron es seguro ; pueden probar que funciona pero no que no pueda ser atacado.

Esto también se aplica a los criptógrafos entrenados. De hecho, lo que distingue a un criptógrafo entrenado de un desarrollador "ordinario" no es que el criptógrafo pueda diseñar e implementar un protocolo seguro por sí mismo; él tampoco puede. La verdadera diferencia es que el criptógrafo sabe que no puede hacer algo suficientemente seguro por sí mismo.

La salida de este problema es usar un protocolo establecido. Por ejemplo, si desea hacer un "cifrado simétrico", tome un estándar existente que haya sido investigado y analizado por muchas personas (por ejemplo, OpenPGP) ). Y luego, ni siquiera lo implemente usted mismo; en su lugar, use una biblioteca existente que también se haya revisado, de modo que la mayoría de los errores hayan sido extirpados (por ejemplo, GnuPG ).

    
respondido por el Thomas Pornin 08.04.2014 - 18:57
fuente

Lea otras preguntas en las etiquetas