Công cụ đo lường chất lượng entropy?


26

Có một công cụ có sẵn cho các hệ thống Linux có thể đo lường "chất lượng" của entropy trên hệ thống không?

Tôi biết cách đếm entropy:

cat /proc/sys/kernel/random/entropy_avail

Và tôi biết rằng một số hệ thống có nguồn entropy "tốt" (khóa entropy phần cứng) và một số không (máy ảo).

Nhưng có một công cụ nào có thể cung cấp một số liệu về "chất lượng" của entropy trên hệ thống không?


Tôi quan tâm, tại sao bạn muốn tính toán entropy của một hệ thống?
whoami

Câu trả lời:


26

http://www.fourmilab.ch/random/ làm việc cho tôi.

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

4
Công cụ tuyệt vời. Bạn có thể kiểm tra một thiết bị chỉ bằng một lệnh vớidd if=/dev/urandom bs=1M count=1 | ent
l0b0

7
Lưu ý rằng việc chạy một công cụ ước tính entropy trên /dev/urandomlà hoàn toàn vô dụng. /dev/urandomlà đầu ra của một PRNG chất lượng tiền điện tử và một công cụ ước tính entropy sẽ luôn cho điểm đầy đủ cho bất kỳ PRNG bán khá nào. Bạn cần chạy công cụ ước tính entropy trên nguồn entropy không điều kiện , mà Linux không phơi bày bên ngoài kernel. Cc @DustinKirkland
Gilles 'SO- ngừng trở thành ác quỷ'

@Gilles có cách nào không?
Felipe

@FelipeMicaroniLalli Không có cách nào để làm gì? Ước tính entropy từ đầu ra của /dev/urandom? Vâng. Đầu ra của /dev/urandom(hoặc /dev/random, cùng một vấn đề) là đầu ra của PRNG chất lượng tiền điện tử và điều đó sẽ luôn có điểm cao nhất để ước tính entropy. Nếu bạn muốn ước tính entropy, bạn cần đào sâu vào kernel, tìm hiểu xem nó sử dụng gì cho các nguồn entropy và đo trong một thời gian RẤT lâu.
Gilles 'SO- ngừng trở nên xấu xa'

1
@FelipeMicaroniLalli Không, nguồn entropy không ảnh hưởng đến PRNG theo cách có thể đo lường được. Điều này khá lạc đề đối với Unix & Linux nhưng tôi biết tôi đã thấy nó được thảo luận trên Mật mã học , hãy thử tìm kiếm các thẻ [entropy] và [ngẫu nhiên] ở đó.
Gilles 'SO- ngừng trở nên xấu xa'

6

"Ent" là một công cụ dòng lệnh tuyệt vời để ước lượng entropy đơn giản và nhanh chóng.

Tôi đã sử dụng nó để giúp tìm hiểu làm thế nào các máy phát đồng quy tuyến tính hoạt động. Nhưng nếu bằng cách "đo entropy", bạn có nghĩa là "đo ngẫu nhiên" ... thì vấn đề trở nên phức tạp hơn.

Để kiểm tra tính ngẫu nhiên mạnh mẽ hơn, bạn nên kiểm tra bộ kiểm tra dieharder: http://www.phy.duke.edu/~rgb/General/dieharder.php

Nó không dễ sử dụng như "ent" nhưng nó khắt khe hơn nhiều.

Để tìm hiểu sâu hơn, "Mật mã bởi Ritter" cũng cung cấp nhiều lựa chọn liên kết:

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


3

Các công cụ chỉ có thể cung cấp cho bạn một giới hạn trên của entropy. Đối với hầu hết các mục đích sử dụng, đặc biệt là các mục đích sử dụng liên quan đến bảo mật mà bạn quan tâm hơn ở giới hạn dưới.

Tính toán entropy của một tệp tùy ý là không thể về mặt toán học, vì vậy không thể có công cụ nào có thể làm được.

Tôi có thể dễ dàng viết một trình tạo tệp tạo ra các tệp entropy rất thấp, nhưng vẫn sẽ vượt qua các bài kiểm tra entropy của bạn. Chỉ cần sử dụng một PRNG tiền điện tử với một hạt giống nhỏ.


0

Bạn có thể sử dụng Binwalk với -Etùy chọn:

# binwalk -E data

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

Bạn có thể lấy mã nguồn từ kho GitHub của nó .


0

ncomputers.org/entropyarray thực hiện kiểm tra entropy nhanh hơn so entvới các thử nghiệm tương quan nối tiếp 16, 32, 64, 128, 256 và 512 bit.

với công cụ ncomputers.org/entropy , bạn cũng có thể thực hiện các kiểm tra phân phối và tần suất trực quan, vẽ sơ đồ đầu ra entropy.freqentropy.gaus

như một ví dụ bạn có thể thực hiện kiểm tra trực tuyến lên tới 1GB bằng servertest.online/entropytest

entropy.freq entropy.gaus


-5

Tôi nghĩ rằng bạn đang tìm kiếm:

cat /proc/sys/kernel/random/entropy_avail

Xin lỗi, không, tôi biết rõ về entropy_avail. Tôi đang cố gắng đo lường chất lượng của entropy đó.
Dustin Kirkland
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.