엔트로피 품질 측정 도구?


26

시스템에서 엔트로피의 "품질"을 측정 할 수있는 Linux 시스템 용 도구가 있습니까?

엔트로피를 계산하는 방법을 알고 있습니다.

cat /proc/sys/kernel/random/entropy_avail

그리고 일부 시스템에는 "좋은"엔트로피 소스 (하드웨어 엔트로피 키)가 있고 일부는 그렇지 않습니다 (가상 머신).

그러나 시스템 엔트로피의 "품질"에 대한 메트릭을 제공 할 수있는 도구가 있습니까?


관심이 있습니다. 왜 시스템의 엔트로피를 계산 하시겠습니까?
whoami 2012

답변:


26

http://www.fourmilab.ch/random/ 은 나를 위해 일합니다.

sudo apt-get install ent
head -c 1M /dev/urandom > /tmp/out
ent /tmp/out

4
멋진 도구. 다음 명령으로 하나의 명령으로 장치를 확인할 수 있습니다.dd if=/dev/urandom bs=1M count=1 | ent
l0b0

7
엔트로피 추정기를 실행하는 /dev/urandom것은 완전히 쓸모가 없습니다. /dev/urandom은 암호화 품질 PRNG의 출력이며 엔트로피 추정기는 항상 반 품위 PRNG에 완전한 점수를 부여합니다. 조건부 엔트로피 소스에서 엔트로피 추정기를 실행해야합니다. Linux는 커널 외부에 노출되지 않습니다. Cc @DustinKirkland
Gilles 'SO- 악한 존재 중지'

@ 길 방법이 없니?
Felipe

@FelipeMicaroniLalli 어떻게해야합니까? /dev/urandom? 의 출력에서 ​​엔트로피를 추정하십시오 . 예. 의 출력 /dev/urandom(또는 /dev/random, 동일한 문제)는 암호 품질 PRNG의 출력, 그리고 항상 엔트로피 추정을위한 최고 점수를해야합니다. 엔트로피를 추정하려면 커널을 파고 엔트로피 소스에 사용되는 것을 파악하고 매우 오랫동안 측정해야합니다.
Gilles 'SO- 악마 그만해

1
@FelipeMicaroniLalli 아니요, 엔트로피 소스는 측정 가능한 방식으로 PRNG에 영향을 미치지 않습니다. 이것은 유닉스와 리눅스에 대한 주제가 아니지만 암호화 에서 논의 된 것을 보았습니다. [entropy]와 [randomness] 태그를 검색하십시오.
Gilles 'SO- 악한 중지

6

"ent"는 엔트로피를 간단하고 빠르게 추정 할 수있는 훌륭한 명령 줄 도구입니다.

선형 합동 발생기가 작동하는 방법을 배우는 데 도움이되었습니다. 그러나 "엔트로피 측정"이 "무작위성 측정"을 의미하는 경우 ... 문제가 더욱 복잡해집니다.

보다 강력한 무작위성 테스트를 위해서는 dieharder 테스트 스위트를 확인해야합니다 : http://www.phy.duke.edu/~rgb/General/dieharder.php

"ent"만큼 사용하기 쉽지는 않지만 훨씬 더 엄격합니다.

보다 심층적 인 연구를 위해 "Cipher 's by Ritter"는 다음과 같은 링크를 제공합니다.

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


3

도구는 엔트로피의 상한 만 제공 할 수 있습니다. 대부분의 용도, 특히 보안 관련 용도에서는 하한에 더 관심이 있습니다.

임의의 파일의 엔트로피를 계산하는 것은 수학적으로 불가능하므로이를 수행 할 수있는 도구가 없습니다.

매우 낮은 엔트로피 파일을 생성하는 파일 생성기를 쉽게 작성할 수 있지만 여전히 엔트로피 테스트를 통과합니다. 작은 시드가있는 암호화 PRNG를 사용하십시오.


0

다음 -E옵션으로 Binwalk를 사용할 수 있습니다 .

# binwalk -E data

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

GitHub 리포지토리 에서 소스 코드를 얻을 수 있습니다 .



-5

나는 당신이 찾고 있다고 생각합니다 :

cat /proc/sys/kernel/random/entropy_avail

죄송합니다. entropy_avail에 대해 잘 알고 있습니다. 그 엔트로피의 품질을 측정하려고합니다.
더스틴 커클랜드
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.