Por ejemplo, tengo mi seguridad social y otra información personal almacenada como una cadena que estoy tratando de cifrar en mi disco local. Mi primer método para cifrar la cadena es utilizar un algoritmo AES basado en contraseña, y luego simplemente pegaría el texto cifrado generado en un archivo donde puedo almacenarlo y descifrarlo más tarde. Mi segundo método para cifrar la cadena es crear mi propio algoritmo, que es mucho más simple: tomo esa cadena y aplico algunos cambios de bits sencillos mezclados con algunas adiciones, multiplicaciones y rotaciones aleatorias de bits. Más tarde, si necesito descifrar esa cadena, puedo aplicar la negación de mi lógica para alcanzar mi cadena descifrada.
Ahora que tenemos una cadena cifrada con el popular algoritmo AES y otra cadena cifrada con mi algoritmo tonto, ambas se ven igual de complicadas y complejas.
Ahora supongamos que alguien quería descifrar mi información personal, tener acceso al archivo de texto simple en el que guardé el texto cifrado. El atacante no sabe qué tipo de algoritmo utilicé en el texto cifrado. ¿Qué texto cifrado será más difícil de descifrar? ¿Importa el algoritmo que utilicé para este escenario y por qué? Si este fuera un mal ejemplo de dónde podría importar la fuerza del algoritmo de cifrado, ¿podría explicar un mejor escenario de dónde importaría más?
No logro ver cómo un algoritmo complejo se sostiene mejor que uno de código cerrado propio o más débil, ya que asumo que un atacante intentará usar la fuerza bruta. Dado que asumo que intentarán la fuerza bruta, también asumo que no tienen control sobre qué tan aleatorias son sus suposiciones, (posiblemente) que la fuerza del algoritmo es inútil, es decir, ya que ambas cadenas están desordenadas y parecen aleatorias, ambos parecen complejos.