¿Qué tan rápido tendrán que ser las computadoras para descifrar una contraseña de 20 caracteres en un día?

No estoy exactamente seguro de lo que estás preguntando. Supongo (por simplicidad) que espera forzar la contraseña por fuerza bruta o, en otras palabras, probar todas las combinaciones posibles hasta que tenga suerte (hay otras formas más fáciles de piratear una computadora). Para simplificar, supondré que no hay salvaguardas como bloqueos o borrados de datos.

Supongamos que tengo 95 caracteres ascii (letras minúsculas, letras mayúsculas, dígitos, signos de puntuación, caracteres especiales).

  • Letras minúsculas = 26
  • Letras mayúsculas = 26
  • Dígitos = 10
  • Puntuación y caracteres especiales = 33

Eso significa que las posibles combinaciones de un código de acceso de 20 dígitos podrían mostrarse como 95 ^ 20 o 3584859224085422343574104404449462890625 (aproximadamente 3.58 * 10 ^ 39). Ese es un número muy largo.

No sé exactamente cuánto tiempo tomaría forzarlo por fuerza bruta, pero puedo suponer que dependerá de muchas variables.

  • ¿Cuántas computadoras tienes?
  • ¿Qué tipos de computadoras son?
  • ¿Cuánta RAM tienen sus computadoras?

Hay otros detalles pertinentes, pero soy demasiado vago para entrar en todos esos.

TL; DR No hay forma de decir definitivamente “oh, tomará ‘x’ horas”. Simplemente hay demasiadas incógnitas que deben especificarse. Solo para llegar a mi respuesta bastante ambigua de “mucho tiempo”, necesitaba asumir 3 cosas.

La respuesta depende absolutamente de los algoritmos utilizados durante la verificación de la contraseña y de su implementación adecuada.

Si solo hablamos de hash de contraseñas, la tendencia a largo plazo a lo largo del tiempo es usar funciones de hash criptográficas cada vez más fuertes que sean resistentes a colisiones, mezclar la contraseña con algunos datos impredecibles cada vez más largos para hacer que las tablas de arco iris no sean factibles y reducir la velocidad artificialmente el cálculo real ejecutando el hash una y otra vez para miles de operaciones, de modo que los intentos de fuerza bruta requeridos al final también sean más lentos y más lentos, a pesar del aumento de la potencia computacional disponible para los atacantes.

Diría que para cuando el usuario casual de PC obtenga una PC lo suficientemente potente como para aplicar una contraseña de 20 caracteres calculada usando un método XYZ, dicho método XYZ ya estaría varias décadas obsoleto. Se desarrollarán e implementarán nuevos algoritmos y modos de operación en todas partes para mitigar dicho aumento en la potencia de cómputo que se avecina.

Eso depende de muchos factores, pero intentaré elaborar una respuesta para ello.

Primero, hay algunas cosas que deben establecerse, como el algoritmo a usar, y si va a haber algún retraso entre cada intento (como una respuesta de falla o éxito de un servidor remoto).

Tendremos que resumir algunas cosas para acortar la respuesta, como cuántos ciclos por instrucciones necesitan ejecutar la CPU dada para la tarea, y también podríamos abstraer las instrucciones / operaciones realizadas fuera del algoritmo.

Un algoritmo simple de fuerza bruta podría ser este:

c ← primero (P)
mientras c ≠ Λ do
si es válido (P, c) entonces salida (P, c)
c ← siguiente (P, c)
terminar mientras

Tomado de la búsqueda de fuerza bruta

Nos preocupamos por las operaciones dentro del ciclo que son las que se repiten constantemente, agregando y agregando tiempo a toda la tarea.

Básicamente, tenemos 2 comparaciones y 5 lecturas y una tarea.

Se puede suponer que una comparación (salto en ensamblador) tiene 3 ciclos de CPU, se puede suponer que una asignación tiene 4 ciclos (almacenar en ensamblador) y las lecturas tienen 5 ciclos (cargar en ensamblador). Todo esto puede variar dependiendo de la arquitectura de la CPU y su conjunto de instrucciones, pero como dije antes, necesitamos resumir muchas cosas para hacer que las preguntas respondan.

Entonces tenemos 35 ciclos de CPU por operación (por intento).

Ahora, ¿cuántos intentos tendremos que hacer? ¡MUCHO!

Podemos tomar como ejemplo que la contraseña solo tendrá caracteres ASCII.

Cuáles son 127 posibilidades para cada personaje, y el número total de combinaciones sería 127ˆ20 = 1.1914462e + 42

Ese es un número muy grande y no creo que los humanos tengamos una forma de nombrarlo con palabras.

Ahora vamos a elegir una CPU para comparar. Elija Intel Core i7 5960X, que posee una potencia de cálculo de 238,310 MIPS, lo que significa que nuestra CPU puede realizar 239,310 millones de ciclos por segundo.

Ahora, en el peor de los casos, intentaríamos todas las combinaciones posibles y en el último intento encontraríamos la contraseña correcta.

El mejor de los casos sería encontrar la contraseña en el primer intento.

Ambos son muy poco probables, pero para garantizar que la contraseña se encuentre en un día, debemos elegir el peor de los casos.

Entonces sabemos que un día tiene 86400 segundos (60 * 60 * 24), así que tenemos que intentar 1.1914462e + 42 (combinaciones) * 35 (ciclos) / 86400 (segundos)

Por lo tanto, nuestra CPU debería poder realizar 4.8264603e + 38 ciclos por segundo, que es mucho más alto que nuestra CPU de ejemplo.

En esta página hacen un seguimiento de las computadoras más poderosas del mundo:

http://www.top500.org

Entonces, puede comparar la lentitud con que una súper computadora intentaría lograr esta tarea.

Si está interesado en la potencia de cálculo, lo invito a leer sobre computación cuántica, que será de gran ayuda para cierto tipo de cálculos.

More Interesting

¿Pueden ayudarme con respecto a la siguiente topología?

¿Qué es mejor, BITS Goa CS o Hyderabad CS?

Cómo copiar softwares de una máquina Ubuntu a otra

¿Cuál es la ventaja del modelo basado en reglas en comparación con el modelo basado en aprendizaje automático?

¿Usar solo la tarjeta gráfica incorporada en la computadora portátil usará la misma potencia que la computadora portátil sin una tarjeta dedicada?

¿Qué evidencia existe de que el Kremlin estaba detrás de los ataques de DNC y cómo podemos estar seguros de su autenticidad? La mayor parte de la evidencia potencial puede ser falsificada.

¿Cómo funcionan las actuales interfaces cerebro-computadora?

Siendo un lego al concepto de IA, ¿alguien puede responder '¿Cómo funciona realmente la IA (Inteligencia Artificial)?'

¿Cómo es el programa de Ciencias de la Computación en Harvard, en relación con otras escuelas superiores de ingeniería?

¿Debería sentirme mal por tener mejores habilidades de gestión que las habilidades de programación como estudiante de informática?

En inglés simple, ¿cómo funciona SSL y cómo es seguro?

¿Quién tiene más probabilidades de resolver el problema P vs NP, un humano o una IA?

¿Cómo entiendo los conceptos subyacentes de las bibliotecas, incluidos archivos, archivos MAKE, indicadores de compilación, archivos de objetos y conceptos relacionados?

¿Cuánto tiempo tomaría construir una computadora?

¿Cuáles son algunos sistemas operativos alternativos para PC aparte de Windows?