câu hỏi cơ bản: ENT dường như vấp phải các máy phát vượt qua NIST 800-22 và thậm chí có thể chết cứng hơn. Làm thế nào để hai bộ thử nghiệm sau bỏ lỡ một thất bại rõ ràng như vậy?
Có hai điều tôi muốn đề cập về bộ thử nghiệm ngẫu nhiên nổi tiếng tai mũi họng, theo như tôi hiểu, được coi là kém nghiêm ngặt hơn nhiều so với các bộ thử nghiệm như NIST SP 800-22 và diehard(er).
Tôi đã áp dụng ENT, bộ thử nghiệm NIST và công cụ cứng rắn hơn cho TRNG của riêng mình trong suốt các giai đoạn phát triển khác nhau, cả khi có và không có xử lý hậu kỳ, v.v. Cuối cùng, tôi đã đến giai đoạn mà TRNG liên tục vượt qua bộ thử nghiệm NISTâ cả triển khai chính thức của họ và triển khai của bên thứ ba mà tôi tìm thấy trên github. Tôi đã khá khắt khe với thử nghiệm, tìm kiếm bất kỳ dấu hiệu nào mà thử nghiệm đưa ra về tính không ngẫu nhiên, vẽ đồ thị giá trị p, v.v., nhưng TRNG luôn vượt qua một cách dễ dàng theo như tôi có thể nói. Đối với những người khó tính hơn, các yêu cầu về dữ liệu lớn đã được thảo luận trên diễn đàn này đã gây khó khăn, nhưng ở đây cũng có vẻ như tôi đã có thể vượt qua TRNG với tốc độ tương tự như các PRNG "tiêu chuẩn vàng" khác (theo cách nói của những người tạo ra bộ thử nghiệm).
Sau đó, tôi đã rất ngạc nhiên khi thấy rằng trình tạo (tại một thời điểm trong quá trình phát triển khi nó vượt qua NIST) liên tục thất bại trong các bài kiểm tra bình phương ENT Chi, với một bản tóm tắt rằng thống kê bình phương Chi "sẽ vượt quá giá trị này 0,01 phần trăm số lần", tức là một giá trị p của 1e-4. Đây là cùng một máy phát điện đã vượt qua NIST 800-22 một cách dễ dàng và gần như chết cứng hơn - mặc dù ở đây nó dường như bị vấp một chút bởi máy chết cứng hơn, nhưng không nghiêm trọng.
Tôi nhận thấy rằng Hotbits, phương pháp/kết quả của họ đã được ca ngợi trên diễn đàn này, có một bài kiểm tra Chi bình phương thất bại với ENT hiển thị trên màn hình của họ trang thống kê. Đó là cùng một loại thất bại mà tôi đã đề cập trước đó: một thống kê kiểm tra Chi bình phương với giá trị p là 1e-4, nếu tôi hiểu đúng.Thật vậy, theo trang web ENT, "Nếu tỷ lệ phần trăm lớn hơn 99% hoặc nhỏ hơn 1%, chuỗi gần như chắc chắn không phải là ngẫu nhiên." Trên thực tế, cách diễn đạt đó có vẻ hơi kỳ lạ đối với tôi, vì chúng ta mong đợi thấy giá trị p > 0,99 hoặc < 0,01 chính xác 2% thời gian cho một trình tạo lý tưởng, nhưng quan điểm và giá trị p là 1e -4 thấp hơn một chút.
Vì vậy, cả RNG của tôi và RNG của Hotbits dường như đều vượt qua NIST và khá dễ dàng, chỉ để bị vấp bởi các bài kiểm tra bình phương ENT Chi.
Câu hỏi của tôi: Bộ kiểm tra NIST sẽ làm thế nào để cho phép một trình tạo không hoạt động mà không thực hiện được bài kiểm tra bình phương Chi cơ bản như trong ENT? Tôi có thiếu thứ gì đó hoặc hiểu nhầm bài kiểm tra Chi bình phương của ENT không?
Ghi chú bên lề:
Tôi đã liên kết với một người nào đó trên diễn đàn "ca ngợi" kết quả của Hotbits và chính họ đã chạy ENT trên một số dữ liệu của họ. Các kết quả ENT mà họ trình bày đã thực sự vượt qua, với một thống kê kiểm tra bình phương Chi hợp lý. Tôi chưa tự mình kiểm tra bất kỳ dữ liệu nào của họ, tôi chỉ nhận thấy giá trị p 1e-4 ở mặt trước và trung tâm trang web của họ, do đó mới có bài đăng này.
Tôi nhận thấy rằng Fourmilab duy trì cả hotbit và ENT.. Không chắc thực tế này phù hợp ở đâu.
Chỉnh sửa: Kể từ đó, tôi đã nghĩ về điều này nhiều hơn một chút và thực hiện một số âm mưu phân phối RNG của mình và chắc chắn rằng một giá trị byte thông thường có nhiều khả năng hơn một chút so với các giá trị khác. Không phải là một tấn—sự khác biệt đủ nhỏ để vẫn có được entropy tối thiểu lên tới 7,9 bit/byte—nhưng nó rất đáng chú ý. Đầu tiên, tôi tưởng tượng lý do nó có thể không hiển thị trong NIST là do thử nghiệm được thực hiện trên nhiều luồng bit (ít nhất đó là cách tôi đã áp dụng) và việc "tách" dữ liệu này sẽ làm giảm tác động lên các phân khúc riêng lẻ. Đối với dieharder tôi không chắc chắn.
Có vẻ như hiện tượng mà tôi quan sát thấy, trong đó một byte có nhiều khả năng hơn các byte khác đủ để đưa ra thống kê kiểm tra bình phương Chi là 1e-4, sẽ là nguyên nhân chính gây ra thống kê kiểm tra như vậy. Xét cho cùng, thống kê kiểm tra là tổng đã chuẩn hóa của hình vuông, do đó, theo trực giác, chính những xác suất thực nghiệm quá mức như thế mới thực sự làm sai lệch thống kê kiểm tra. Tôi tự hỏi nếu Hotbits trải nghiệm điều gì đó tương tự ...