tabla de arco iris Haciendo un rápido resumen cryptanalytic tiempo-memoria disyuntiva

Hablando tabla de arco iris que mencionar tres, Martin Hellman (co-autor del algoritmo de acuerdo de claves Diffie-Hellman), Rivest (la R en RSA), Philippe Oechslin, en lo sucesivo, M, R, P. Aunque el concepto de tablas de arco iris se P elevó, sino también la enorme contribución de nuestros predecesores

Arco iris tabla de resultados se utiliza para romper y restaurar el algoritmo hash hash de texto en claro antes, el texto completo de pre-calculado, en lugar del par valor hash de texto plano.

hash de algoritmo de hash:

función Hash del algoritmo de hash es una cartografía de un valor grande se establece en un conjunto más pequeño Q P una longitud fija, el valor aproximado del proceso de acuerdo con el relleno bits de, los paquetes, operaciones de bits, con el tiempo para dar un número fijo de bits valor, el valor para cada p tiene un valor de q a través de la cartografía y determina de forma única. Suponiendo que el algoritmo de hash es H, se requiere un algoritmo de hash cualificado condición se encuentran a

  1. P Q calculado por la velocidad debe ser rápida
  2. Es decir, unidireccional texto común P puede calcular rápidamente un valor hash q = H§, difícil de obtener mediante el uso de métodos matemáticos p q
  3. De acuerdo con una q = H§, difícil encontrar una diferente de tal forma que p1 = q H (p1)

Debido a que el algoritmo de hash irreversibilidad, el texto cifrado romper el algoritmo de hash para cifrar básicamente sólo el uso de la fuerza bruta manera, la tabla de arco iris es. La forma más primitiva de la fuerza bruta y el método de diccionario es método exhaustivo. (Ver más abajo con referencia a la literatura y el sitio web detallada específica). Dado que la ley requiere gran cantidad exhaustiva de tiempo, tiempo de destruir los mil millones de años como una unidad, y el método diccionario requiere una gran cantidad de memoria, si el espacio de texto plano 14 de las letras mayúsculas y minúsculas y números almacenados, la cantidad de memoria necesaria es de 10 ^ 14 TB, esto es obviamente muy difícil.

lista de hash

En 1980, M propone un método de tiempo y la memoria de un compromiso mutuo, el tiempo de memoria disyuntiva (TMTO ), que es la primera lista de hash. En un hash de hash, se supone texto plano P . 1 , el algoritmo de hash H, el encriptado texto cifrado H . 1 , es decir,
Aquí Insertar imagen Descripción
se almacena en la tabla de diccionario de una manera, y almacena un par valor de hash de texto claro. Lista de hash utilizando la función de reducción de R. R es una función de un valor de la función hash es re-mapeado en el espacio de texto claro, y por lo tanto una función de la gama y el dominio R y H es una función de la inversa. Con el ejemplo anterior, R puede ser una función de P . 1 el valor hash H . 1 se asigna a otro P 2 , en el que P . 1 no es igual a P 2 . P 2 pasa a continuación al valor de hash puede ser un hash H H 2 . Por lo tanto, la estructura de la cadena de hash como sigue: cadena Hash
en el que se almacena (P 1. , H 1. ) (P 2 , H 2 ) ...... (P n- , H n- ) del valor de n-hash, pero un hash almacena sólo el principio y final de la lista de texto claro carácter P . 1 y P n- +. 1 .

función R

Hash lista enlazada en el que una tasa de éxito de texto plano depende de la cobertura, lo que demuestra la importancia de una función buena R. Una buena función debe satisfacer R
1. reducir las colisiones asignan de nuevo al espacio de texto claro;
2. la misma función de hash como mapeo aleatorio espacio de texto claro de texto claro como sea posible;
3. limitar la gama de caracteres a un valor deseado de la de texto claro;

Sin embargo, una tabla es demasiado largo cadena de la cadena hará demasiado texto en claro impacto, entonces el valor restante será una colisión en cadena, lo que causó una gran cantidad de cálculos innecesarios. En el que el papel P en una nota, esta vez causada por la colisión de consumo representaba más del 50%. Por lo tanto lista de hash de recomendaciones de conformidad con el texto en claro N es el número de (1/3) tablas, cada tabla tiene N (1/3) cadenas, cada cadena tiene N (1/3) del valor de hash de texto claro .

proceso de la grieta

Una vez establecida la lista de hash, el resto es romper los s texto cifrado.

En primer lugar, el texto cifrado s asignada por la función de R para el espacio de texto claro tiene una s1 valor, para averiguar si el punto final de todas las cadenas tienen la misma s1, si el mismo, y luego una alta probabilidad de que el texto cifrado s correspondiente texto plano es en esta cadena P n- , si no se encuentra en el mismo valor, este s1 de nuevo una vez H y R aritmética y expresamente s2, s2 en comparación con los puntos finales de todas las cadenas, si el mismo a continuación, una alta probabilidad de que el texto cifrado s correspondiente de texto claro es esta hebra el P . n-- 1 , si el ciclo hasta que encuentra un valor del punto final de la misma cadena de la misma, si no se encuentra, la búsqueda falla.

punto de punto de control distinguido

El concepto de punto de control es la optimización de R Mhash la lista
debido a las contraseñas de crack, el mayor cuello de botella no es el procesador en el momento, pero el acceso a la memoria. Puesto que el valor de texto plano para comparar todos los pasos necesarios para llegar al punto final de todas las cadenas, lo que causó un gran número de accesos de memoria. Por lo tanto, con el fin de reducir la memoria cuello de botella velocidad de acceso, R propuso el concepto de punto de control, es el punto final de cada cadena define una regla general, cada cadena debe terminar con un punto final a juego la regla. No es necesario que cada memoria de acceso momento, si el texto en claro resultante no cumple con las reglas del punto final, no necesitamos la comparación directa de calcular el siguiente texto plano.

tabla de arco iris

De hecho, una tabla de arco iris se optimiza lista de hash vinculado, sólo heces frescas, diferente de la dirección R.
tabla Optimización arco iris se presenta en una cadena, cada función R debe ser único. A saber:
Aquí Insertar imagen Descripción
Collision Obviamente, esto puede reducir la cadena: si ambas cadenas producen el mismo texto claro en columnas diferentes, pero debido a la diferente R una función siguiente, diferente del siguiente texto plano. Sólo cuando dos idénticos texto sin formato aparece en la misma columna, las dos cadenas se producen colisiones. Y lo que la probabilidad es sólo 1 / t (t es la longitud de la lista).
La siguiente t: cadena de longitud m: número de cadenas
en el papel P ha dicho, la tasa de éxito t de tamaño y el tamaño de la lista de hash éxito mxt xt tasa mt es aproximadamente igual, pero no hay ninguna explicación se da en el papel.
Sin embargo, si no está vinculado por la verificación formal que se pueda imaginar: R utilizando una función hash diferente entre t una lista enlazada, cada lista de hash correspondiente a una tabla de arco iris se encuentra, por lo que la cobertura total de un texto en claro t lista de hash debe y una función de R utilizando tablas t arco iris similar.
Pero si sólo esto, no es demasiado grande innovación. En teoría, el arco iris en comparación con la tabla hash para reducir la lista de descanso de medio tiempo, y reducir una gran cantidad de colisiones, que también puede reducir una gran parte del tiempo. Una lista de hash vinculado traversal de 1 a n, un complejo de O (t) de tiempo, pero debido a t tablas, es necesario t 2 tiempo. Una tabla de arco iris a pie de 1 a t n requerida (t-1) / 2 , y por lo tanto reduce en aproximadamente la mitad del tiempo.

El papel P puede seguir N = t 1/3 , m = N 2/3 de la configuración, que debe ser el tiempo de la etapa y de la memoria que comprometer que, si en el futuro qué dirección, si cualquier avance significativo, creo que esta proporción se cambiar.

resumen

Aunque el uso de la lista de hash pre-computados o tabla de arco iris se puede reducir en gran medida el tiempo de descanso, pero la cantidad está calculada para hacer una tabla de arco iris no se han reducido aún más. Esto se debe a una tabla de arco iris si quiere llegar a más de 50 por ciento una tasa de éxito aceptable, el número de texto plano que se calcula al menos el número de todo el espacio de texto plano, debido a que cada valor de la función de correlación R no está necesariamente en el espacio de texto plano. Muy a menudo necesitamos más tablas del arco iris para mejorar la tasa de éxito de descanso.

cálculo de la tasa de éxito

Cada columna es la tasa de éxito de tabla de arco iris solo puede calcularse para conseguir una mesa, que puede ser visto como un problema de mesa clásica (es decir, Hellman propuso lista hash). En la primera columna del arco iris mesa, m1 = m, es decir, el número de cadenas, diferente de texto claro como la primera columna. La segunda columna de m 1. Texto claro espacio de texto claro a un distribuido al azar dentro de una gama N, la generada m 2 texto plano diferente, en el que:
La segunda columna el número de diferentes de texto claro
cada columna tiene un m i i diferente de texto claro, la tasa de éxito de un tablas de arco iris la fórmula es la siguiente:
tasa de éxito se calcula
para entender esta fórmula: cada tabla de arco iris para iniciar la búsqueda de la última, si no deriven encontró el texto plano, y luego ir a la columna de la penúltima de la búsqueda, y así sucesivamente, y finalmente a la primera columna si la búsqueda aún no se encuentra de forma explícita, la búsqueda falla. Busca en el fracaso es sólo una situación en la que toda la búsqueda falla en cada columna, la tasa de éxito final es igual a uno menos la probabilidad de fallo. La probabilidad de fallo es i-ésima columna-m. 1 i / N, por lo que la probabilidad de fallo para todos de la búsqueda (. 1-m . 1 / N) (. 1-m 2 / N) ...... (. 1-m T / N), el éxito a saber probabilidad de probabilidad de fallo de 1.
La siguiente es una tabla de cálculo del espacio de texto claro arco iris número N de t tasa de éxito m cadena de longitud de cadena alcanzado en función de Python I

def success_rate(N, t, m):
    keys = []
    keys.append(m)
    for i in range(1,t):
        key_i = N*(1-(1-1/N)**keys[i-1])
        keys.append(key_i)
    result_fail=1
    for i in range(t):
        result_fail *= (1-keys[i]/N)
    return 1-result_fail

if __name__=="__main__":
    result_success = success_rate(7555858447479,15200,805306368)# lm_ascii-32-65-123-4 1-7
    #result_success =success_rate(6704780954517120,422000,67108864*360)#md5_ascii-32-951-8
    print(result_success)

La tasa de éxito de más tabla de arco iris se calcula:
de hecho, una tabla de arco iris y calcular la tasa de éxito del método tener cada cosa en común, los llamados éxito, el fracaso único. Encontrar todos es el caso de fracaso de la consulta fracasado en todas las tablas del arco iris. Debido a la diferente conjunto de funciones de tablas de arco iris diferente R emplean, no hay influencia entre la pluralidad de tablas de arco iris. tabla de arco iris previsto para cada tasa de éxito S 1 , S 2 ......, S n- , cada tabla tm arco iris N son iguales, por lo que cada tasa de éxito tabla de arco iris individual igual s, la probabilidad de fallo de una -s, una pluralidad de probabilidad de fallo cuando la tabla de consulta arco iris (. 1-S) n- , es decir, la probabilidad de éxito de L- (. 1-S) n- .

duda

1, escribí esta función con una gran cantidad de datos inspeccionados, (datos de RainbowCrack) como el primer número es 7555858447479 espacio de texto plano anterior para dar una tasa de éxito del 55,8%, con ocho tablas de arco iris para calcular la tasa de éxito puede de hecho 99,9%. Pero el espacio de texto plano 95 caracteres de la segunda MD5 obtienen tasas de éxito varían ampliamente. Hay hermano mayor, a continuación, tratar de informar.
2, y la fórmula P ha propuesto una premisa de que si la función de mapeo en la que el valor de R no es un espacio de texto claro, entonces todos los valores son detrás de él no debe ser contado como un texto claro válida. Pero por qué no una cadena binaria de un espacio de texto plano, y no volverá a entrar en el espacio de texto plano después de un hash, y luego asignarla.

Referencias:
http://www.h-online.com/security/features/Hellman-and-Rivest-746294.html
https://blog.csdn.net/Saintyyu/article/details/102583941
https: // Blog .csdn.net / Saintyyu / Article / Detalles / 102 583 941
Fabricación de un rápido cryptanalytic-Time Memory disyuntiva

Publicado 15 artículos originales · ganado elogios 3 · Vistas a 10000 +

Supongo que te gusta

Origin blog.csdn.net/biziwaiwai/article/details/105374501
Recomendado
Clasificación