Primero, esto no es un problema de tarea. Este es un problema del libro "Introducción a la seguridad informática" de Matt Bishop, que se usó como uno de los libros de texto para una clase de seguridad informática que tomé el año pasado. Esta pregunta nunca surgió durante el curso. En retrospectiva, debería haberle pedido al profesor del curso que me explicara la prueba, pero nuevamente este libro de texto no fue el texto principal del curso.
El teorema establece:
Deje que el tiempo esperado requerido para adivinar una contraseña sea T . Entonces T es una máximo cuando la selección de cualquiera de un conjunto de contraseñas es equiprobable.
La pregunta es ¿cómo se prueba este teorema?
Entiendo que si hay n contraseñas posibles, en promedio puede adivinar la contraseña en n / 2 intentos de uso de fuerza bruta. Además, si cada contraseña es equiprobable, la probabilidad de cada contraseña es 1 / n .
Aquí es donde me quedo atascado, si la probabilidad de cada contraseña no es igual, entonces obviamente hay un conjunto más pequeño de contraseñas para verificar y, por lo tanto, se requiere un tiempo más corto para realizar un ataque de fuerza bruta.
Sin embargo, si no sé cuál es la probabilidad de cada contraseña, entonces necesito realizar un ataque de fuerza bruta en todas las contraseñas posibles y estamos de nuevo en n / 2 intentos.
O es que la prueba. Si la probabilidad de cada contraseña no es igual y prueba las contraseñas con las probabilidades más altas, se trata de un subconjunto más pequeño y, por lo tanto, de un período de tiempo más corto que la prueba de todas las contraseñas posibles.
¿Hay una manera más formal de decir esto?
Además, ¿qué sucede si la contraseña es parte del subconjunto de contraseñas con probabilidades más bajas? Al buscar solo las contraseñas de mayor probabilidad, no podrá encontrar la contraseña deseada. O tómate más tiempo que si hubieras intentado todo.
Gracias por su consideración a esta pregunta.