Oh chico, el tiempo de la filosofía. ¿Qué es la aleatoriedad? ¿Se puede medir la aleatoriedad? ¿Qué es una señal de todos modos?
Intuitivamente podemos decir que Thing A
es más aleatorio que Thing B
si tiene una entropía más alta. La entropía es uno de esos conceptos sobre los que es fácil definir y hablar, pero en realidad medirlo a partir de un conjunto de datos es la pesadilla de un estadístico. Si su RNG produce aaaaaaa...
, su RNG chupa limones, o usted tiene uno en una probabilidad de 10 -n . Con un solo punto de datos, es imposible decirlo.
Para que cualquier análisis estadístico de aleatoriedad sea significativo, necesita al menos un millón de muestras generadas en un entorno de laboratorio donde pueda demostrar que su RNG se sembró correctamente para cada muestra. E incluso entonces, debes tener mucho cuidado con las pruebas estadísticas que usas porque todas tienen un sesgo hacia ciertos tipos de patrones. Tratar de sacar conclusiones sobre la calidad de la aleatoriedad con menos rigor que esto será ... no concluyente en el mejor de los casos.
Conclusión: medir la entropía criptográfica en la práctica es difícil y es mejor dejarlo para los investigadores.
Así que esa es la respuesta teórica. En la práctica, puede obtener una idea muy aproximada de la cantidad de aleatoriedad en una cadena o archivo utilizando los métodos mencionados en los comentarios / otras respuestas: ejecútelo a través de una herramienta de compresión (que es una subcategoría de las pruebas de complejidad de Kolmogorov), o una de las pruebas estadísticas de estimación de entropía mencionadas en la respuesta de @ EdwardBarnard.
Este tipo de cosas es probablemente lo suficientemente bueno para distinguir un archivo encriptado de un archivo de texto plano, pero probablemente no podría distinguir la diferencia entre un archivo comprimido y un archivo encriptado, o, en realidad, entre un archivo correctamente encriptado y un archivo mal cifrado. archivo encriptado.
En cuanto a la detección de señales ocultas, estás un poco desafortunado si buscas una solución general. Dígame qué pruebas estadísticas está utilizando y diseñaré un método de esteganografía que lo engaña . Para tener alguna esperanza de detectar esto, necesita saber bastante sobre las propiedades estadísticas de la señal portadora y la señal oculta esperada, y diseñar un algoritmo de detección alrededor de esto. Y, por supuesto, cuanto más ruido se produzca de forma natural en la señal del operador, más lugares se ocultarán las señales ocultas.