¿Son útiles las técnicas de aprendizaje automático en el descifrado? Si es así, ¿cómo y qué técnicas?

Supongo que por “descifrado” te refieres al criptoanálisis. No tengo experiencia especial ni en criptoanálisis ni en aprendizaje automático, pero intentaré esto.

Los algoritmos de criptoanálisis tienden a modelar parte de un cifrado siguiendo aproximadamente algún patrón, luego intentan observar ese patrón a través del “ruido” causado por el resto del cifrado. En ese sentido, son similares a las técnicas de aprendizaje automático. Sin embargo, son diferentes de ML en que usualmente usan diferenciales, ecuaciones lineales o relaciones algebraicas sobre campos finitos en lugar de objetos continuos. La configuración del problema también es diferente, ya que usan sus oráculos de manera diferente y tienen grandes bucles internos y externos para adivinar los bits clave o el ruido promedio. En otras palabras, las técnicas similares a ML utilizadas en el criptoanálisis tienden a ser altamente especializadas para el problema en cuestión, que es significativamente diferente de la mayoría de los problemas de ML.

Hay algunos ataques cuya estructura es un algoritmo de búsqueda general, como la ramificación recortada; estos también aparecen en ML. Por ejemplo, un ataque de adivinar y determinar podría tener esta estructura.

También hay algunos sistemas criptográficos que se basan en problemas similares a ML, como el aprendizaje con errores, la paridad de aprendizaje con ruido y problemas similares de tipo reticular. Una vez más, sin embargo, están altamente estructurados y tienen lugar sobre campos finitos en lugar de espacios continuos, por lo que creo que las técnicas de ataque son diferentes.

Finalmente, algunos grupos intentan aplicar técnicas generales de IA / ML, como la resolución de restricciones, al criptoanálisis. En un cifrado completo, dicho ataque equivale a un ataque automático de adivinar y determinar sin ninguna técnica criptoanalítica especializada (y sin utilizar propiedades estadísticas, algebraicas, diferenciales o lineales), por lo que un cifrado bien diseñado debería resistirlo. Pero podría ser útil como parte de un ataque más complejo, por ejemplo, completando una solución parcial propuesta o determinando su factibilidad.

Editar: un ejemplo de completar una solución parcial se encuentra en los ataques de arranque en frío, como http://citeseerx.ist.psu.edu/vie…

Estoy de acuerdo con muchos de los puntos de Michael Hamburg. Parece que hay potencial para algún tipo de aprendizaje automático en el criptoanálisis. Pero en términos de lo que se está haciendo actualmente, no sé mucho sobre el uso de ML para este fin. Solo sería efectivo usar ML si ya conociera alguna debilidad en un sistema criptográfico que puede ser explotada si aprende a explotar la debilidad de manera más efectiva.

Hay numerosos documentos en él ( http://scholar.google.com/schola …) pero no mucho en términos de aplicaciones reales.