Supongamos que tenemos amount
códigos de entrada aleatorios de length
caracteres de un alfabeto de tamaño alphabet
.
El número de códigos posibles se calcula fácilmente como keyspace = alphabet ^ length
.
Ahora tome a un atacante que esté tratando de ingresar usando la adivinación aleatoria de códigos de fuerza bruta. A la tasa de adivinaje rate
, el tiempo en el que se pueden verificar todos (y por lo tanto la entrada está garantizada) se calcula fácilmente como keyspace / rate
.
Sin embargo, lo que realmente me gustaría saber es cómo calcular el tiempo requerido para que el atacante tenga una posibilidad determinada de encontrar un código de entrada válido. Este es un sistema donde todo lo que necesita es un código válido, no hay un requisito secundario como un nombre de usuario (piense en cupones). Una vez más, hay amount
en keyspace
.
Por ejemplo, ¿cuánto tiempo le tomará al atacante tener un 1% de probabilidad de encontrar un código válido? ¿Y el 10%? ¿Y el 25%? Etc. O lo inverso, dada una cantidad específica de tiempo, ¿cuáles son las posibilidades?