ACTUALIZA tu comentario:
Sé que sería computacionalmente inviable. Solo quería saber si sería teóricamente posible (no parece según tylerl)
Sí, dado el tiempo infinito y la energía infinita, una red neuronal podría romper el SHA256 . PERO (y creo que este es el punto que está haciendo @tylerl) porque las funciones hash no tienen patrones perceptibles, una red neuronal no podría hacer nada mejor que la fuerza bruta ingenua de construir una tabla de búsqueda al calcular el hash de cada posible cadena. Dicha tabla de búsqueda tendría más entradas (~ 2 256 ) que átomos en el planeta tierra (~ 2 166 ), al menos con nuestro nivel actual de tecnología. es "imposible" mantener esa tabla en la memoria o almacenarla en cualquier disco. De manera similar, para que su red neuronal tenga un desempeño notablemente mejor que un tirador de dados, la cantidad de neuronas que necesitaría probablemente también excedería la cantidad de átomos en el planeta.
Entonces, sí, es computacionalmente inviable, pero aún así es teóricamente posible. De hecho, en la criptografía en general es cierto que en siempre se puede forzar algo en teoría, pero decimos "suficientemente bien" cuando podemos demostrar que hacerlo requerirá más tiempo que la vida útil de la Universo y más energía que la contenida en el sol.
Creo que el contra-argumento es en respuesta a:
Podríamos a través de todas las permutaciones y capacitar a la red ya que conocemos las entradas y salidas esperadas.
1) ¿Es esto fundamentalmente diferente a una tabla de búsqueda?
2) SHA256 tiene un espacio de salida de 2 256 , y un espacio de entrada que es esencialmente infinito. Para referencia, se estima que el tiempo desde el big bang es de 5 mil millones de años, que es aproximadamente 1,577 x 10 27 nanosegundos, que es aproximadamente 2 90 ns. Por lo tanto, si cada iteración de entrenamiento toma 1 ns, necesitarías 2 166 edades del universo para entrenar tu red neuronal.
El punto aquí es que SHA256 tiene 2 256 salidas posibles, y 2 256 es realmente un gran número realmente .