Alat untuk mengukur kualitas entropi?

26

Apakah ada alat yang tersedia untuk sistem Linux yang dapat mengukur "kualitas" entropi pada sistem?

Saya tahu cara menghitung entropi:

cat /proc/sys/kernel/random/entropy_avail

Dan saya tahu bahwa beberapa sistem memiliki sumber entropi "baik" (kunci entropi perangkat keras), dan beberapa tidak (mesin virtual).

Tetapi apakah ada alat yang dapat memberikan metrik untuk "kualitas" entropi pada sistem?

Dustin Kirkland
sumber
Saya tertarik, Mengapa Anda ingin menghitung entropi suatu sistem?
whoami

Jawaban:

26

http://www.fourmilab.ch/random/ bekerja untuk saya.

sudo apt-get install ent
head -c 1M /dev/urandom > /tmp/out
ent /tmp/out
Marcin
sumber
4
Alat keren. Anda dapat memeriksa perangkat hanya dalam satu perintah dengandd if=/dev/urandom bs=1M count=1 | ent
l0b0
7
Perhatikan bahwa menjalankan penduga entropi /dev/urandomsama sekali tidak berguna. /dev/urandomadalah output dari PRNG berkualitas crypto, dan estimator entropi akan selalu memberikan nilai penuh untuk setiap PRNG semi-layak. Anda perlu menjalankan penduga entropi pada sumber entropi tanpa syarat , yang Linux tidak tampilkan di luar kernel. Cc @DustinKirkland
Gilles 'SO- stop being evil'
@Gilles tidak mungkin?
Felipe
@FelipeMicaroniLalli Tidak ada cara untuk melakukan apa? Perkirakan entropi dari output /dev/urandom? Iya nih. Output dari /dev/urandom(atau /dev/random, masalah yang sama) adalah output dari PRNG berkualitas crypto, dan yang akan selalu memiliki nilai tertinggi untuk estimasi entropi. Jika Anda ingin memperkirakan entropi, Anda perlu menggali ke dalam kernel, mencari tahu apa yang digunakan untuk sumber entropi, dan mengukur untuk SANGAT lama.
Gilles 'SO- stop being evil'
1
@FelipeMicaroniLalli Tidak, sumber entropi tidak memengaruhi PRNG dengan cara yang dapat diukur. Ini agak off-topic untuk Unix & Linux tapi saya tahu saya pernah melihatnya membahas tentang Kriptografi , coba cari tag [entropi] dan [keacakan] di sana.
Gilles 'SANGAT berhenti menjadi jahat'
6

"ent" adalah alat baris perintah yang sangat baik untuk estimasi entropi yang sederhana dan cepat.

Saya telah menggunakannya untuk membantu mempelajari cara kerja generator kongruensial linier. Tetapi jika dengan "mengukur entropi" yang Anda maksud "mengukur keacakan" ... masalahnya menjadi lebih kompleks.

Untuk uji keacakan yang lebih kuat, Anda harus memeriksa suite tes dieharder: http://www.phy.duke.edu/~rgb/General/dieharder.php

Ini tidak mudah digunakan sebagai "ent" tetapi jauh lebih keras.

Untuk studi lebih mendalam, "Cipher's by Ritter" juga menyediakan pilihan tautan yang bagus:

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

Morgan
sumber
3

Alat hanya bisa memberi Anda batas atas pada entropi. Untuk sebagian besar penggunaan, khususnya penggunaan terkait keamanan Anda lebih tertarik pada batas bawah.

Menghitung entropi file arbitrer adalah mustahil secara matematis, jadi tidak ada alat yang bisa melakukannya.

Saya dapat dengan mudah menulis generator file yang menghasilkan file entropi sangat rendah, tetapi masih akan melewati tes entropi Anda. Gunakan saja crypto PRNG dengan biji kecil.

CodesInChaos
sumber
0

Anda dapat menggunakan Binwalk dengan -Eopsi:

# binwalk -E data

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

Anda bisa mendapatkan kode sumber dari repositori GitHub-nya .

Mateusz Piotrowski
sumber
-5

Saya pikir Anda mencari:

cat /proc/sys/kernel/random/entropy_avail
ramonovski
sumber
Maaf, tidak, saya menyadari entropy_avail. Saya mencoba mengukur kualitas entropi itu.
Dustin Kirkland