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?
Respostas:
http://www.fourmilab.ch/random/ funciona para mim.
fonte
dd if=/dev/urandom bs=1M count=1 | ent
/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/dev/urandom
? Sim. A saída de/dev/urandom
(ou o/dev/random
mesmo 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."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
fonte
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.
fonte
Você pode usar o Binwalk com a
-E
opção:Você pode obter o código fonte do seu repositório GitHub .
fonte
O ncomputers.org/entropyarray executa um teste de entropia mais rápido do que
ent
nos 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
fonte
Eu acho que você está procurando:
fonte