Entropía sobre la carga útil

0

¿Cómo puedo adivinar si una carga útil está ofuscada o encriptada? en otras palabras, ¿puedo aplicar el algoritmo de Shannon Entropy a una carga binaria?

cualquier consejo será apreciado, gracias de antemano

    
pregunta CDominik 25.09.2015 - 10:22
fuente

1 respuesta

0

ecuación de entropía de Shannon es el método estándar de cálculo. Aquí hay una implementación simple en Python, copiada de la base de códigos Revelation :

def entropy(string):
        "Calculates the Shannon entropy of a string"

        # get probability of chars in string
        prob = [ float(string.count(c)) / len(string) for c in dict.fromkeys(list(string)) ]

        # calculate the entropy
        entropy = - sum([ p * math.log(p) / math.log(2.0) for p in prob ])

        return entropy


def entropy_ideal(length):
        "Calculates the ideal Shannon entropy of a string with given length"

        prob = 1.0 / length

        return -1.0 * length * prob * math.log(prob) / math.log(2.0)

Tenga en cuenta que esta implementación asume que su flujo de bits de entrada se representa mejor como bytes. Este puede o no ser el caso de su dominio de problema.

    
respondido por el Sebi 25.09.2015 - 15:36
fuente

Lea otras preguntas en las etiquetas