Calculando la entropía usando md5sum, sha256sum etc.

0

Podemos calcular la Entropía S de una cadena como esta:

S = L * log_2(N)

Donde L significa caracteres utilizados en la cadena

Y N para cada personaje posible

Ejemplo: Queremos calcular la Entropía para un PIN con 4 dígitos.

Nuestro N sería 10 . Porque tenemos 10 números (0-9). Nuestro L es 4 por supuesto.

Tenemos una entropía de aproximadamente 13.28 bits (o 3.32 bits por carácter)

Pero, ¿cómo calculamos la Entropía para decir una "cadena vacía" utilizando, por ejemplo, md5sum, sha256sum

Y lo más importante: ¿Qué es

pregunta Azrion 02.07.2018 - 11:03
fuente

1 respuesta

1

TL; DR: Su fórmula es demasiado simple.

Entonces, el problema es por qué "" tiene una entropía si es 0 con su fórmula, pero MD5 ("") no tiene 0.

Como ya se dijo en los comentarios, su fórmula solo funciona si los datos son perfectamente aleatorios (distribución uniforme, todos los bits independientes, etc.).
Ejemplo para un caso aleatorio: el cálculo de su PIN con 4 dígitos entre 0 y 9.
Pero si tienes por ejemplo. algún valor que puede ser 2222 o 7777 y nada más, la entropía es solo de 1 bit. Todavía hay 4 dígitos, pero la mayoría de los números de 4 dígitos no son posibles, por lo que su fórmula ya no funciona.

Lo mismo es cierto para su hash: el hashing de una cadena de 0 longitud da exactamente una salida, siempre la misma. No 256 ^ 16 posibilidades que pueden tener hashes de 16 bytes.

Una mejor fórmula:

H(X) = sum (-p[i] * log2 p[i])

donde p[i] es la probabilidad del i-ésimo valor posible (no un dígito, sino un valor, su PIN tiene 9999 valores posibles y cada uno tiene su propia probabilidad).

Con esta fórmula y el único valor hash posible, también obtienes 0.

En general, un hash como este nunca puede aumentar la entropía. Puede ser igual o menor que el del valor original (menos especialmente si los datos son más largos que el hash, es decir, el hash tiene menos valores posibles)

    
respondido por el user155462 02.07.2018 - 11:32
fuente

Lea otras preguntas en las etiquetas