Ferramenta para medir a qualidade da entropia?

26

Existe uma ferramenta disponível para sistemas Linux que possa medir a "qualidade" da entropia no sistema?

Eu sei como contar a entropia:

cat /proc/sys/kernel/random/entropy_avail

E sei que alguns sistemas têm "boas" fontes de entropia (chaves de entropia de hardware) e outros não (máquinas virtuais).

Mas existe uma ferramenta que pode fornecer uma métrica quanto à "qualidade" da entropia no sistema?

Dustin Kirkland
fonte
Estou interessado, por que você deseja calcular a entropia de um sistema?
whoami

Respostas:

26

http://www.fourmilab.ch/random/ funciona para mim.

sudo apt-get install ent
head -c 1M /dev/urandom > /tmp/out
ent /tmp/out
Marcin
fonte
4
Ferramenta legal. Você pode verificar um dispositivo em apenas um comando comdd if=/dev/urandom bs=1M count=1 | ent
l0b0
7
Observe que executar um estimador de entropia /dev/urandomé completamente inútil. /dev/urandomé a saída de um PRNG de qualidade criptográfica e um estimador de entropia sempre dará notas completas a qualquer PRNG semidecente. Você precisa executar o estimador de entropia na fonte de entropia não condicionada , que o Linux não expõe fora do kernel. Cc @DustinKirkland
Gilles 'SO- stop
@ Gilles não tem como?
Felipe
@FelipeMicaroniLalli Não há como fazer o que? Estimar a entropia da saída de /dev/urandom? Sim. A saída de /dev/urandom(ou o /dev/randommesmo problema) é a saída de um PRNG de qualidade criptográfica e que sempre terá as melhores notas para estimativa de entropia. Se você deseja estimar a entropia, precisa cavar no kernel, descobrir o que ele usa para fontes de entropia e medir por muito tempo.
Gilles 'SO- stop be evil'
11
@FelipeMicaroniLalli Não, a fonte de entropia não afeta o PRNG de uma maneira que possa ser medida. Isso é bastante fora de tópico para Unix e Linux, mas eu sei que já vi isso discutido em criptografia , tente pesquisar as tags [entropia] e [aleatoriedade] lá.
Gilles 'SO- stop be evil'
6

"ent" é uma excelente ferramenta de linha de comando para uma estimativa simples e rápida da entropia.

Usei-o para ajudar a aprender como funcionam os geradores congruenciais lineares. Mas se "medindo entropia" você quer dizer "medindo aleatoriedade" ... o problema se torna mais complexo.

Para um teste mais robusto de aleatoriedade, você deve verificar o conjunto de testes do dieharder: http://www.phy.duke.edu/~rgb/General/dieharder.php

Não é tão fácil de usar quanto "ent", mas é muito mais rigoroso.

Para um estudo mais aprofundado, "Cipher's by Ritter" também fornece uma boa seleção de links:

http://www.ciphersbyritter.com/NETLINKS.HTM#RandomnessLinks

Morgan
fonte
3

As ferramentas podem apenas fornecer um limite superior para a entropia. Para a maioria dos usos, em particular os relacionados à segurança, você está mais interessado em um limite inferior.

O cálculo da entropia de um arquivo arbitrário é matematicamente impossível, portanto não há ferramenta que possa fazê-lo.

Eu posso escrever facilmente um gerador de arquivos que gere arquivos de entropia muito baixos, mas ainda passará nos testes de entropia. Basta usar um PRNG de criptografia com uma semente pequena.

CodesInChaos
fonte
0

Você pode usar o Binwalk com a -Eopção:

# binwalk -E data

DECIMAL       HEXADECIMAL     ENTROPY
--------------------------------------------------------------------------------
0             0x0             Falling entropy edge (0.000000)
2443264       0x254800        Rising entropy edge (0.988510)

Você pode obter o código fonte do seu repositório GitHub .

Mateusz Piotrowski
fonte
0

O ncomputers.org/entropyarray executa um teste de entropia mais rápido do que entnos testes de correlação serial de 16, 32, 64, 128, 256 e 512 bits.

Com a ferramenta ncomputers.org/entropy , você também pode executar testes de frequência e distribuição visual, plotando as saídas entropy.freq e entropy.gaus

como exemplo, você pode executar um teste on-line de até 1 GB usando servertest.online/entropytest

entropy.freq entropy.gaus

ncomputadores
fonte
-5

Eu acho que você está procurando:

cat /proc/sys/kernel/random/entropy_avail
ramonovski
fonte
Desculpe, não, estou ciente de entropy_avail. Estou tentando medir a qualidade dessa entropia.
Dustin Kirkland