Bây giờ hãy tưởng tượng rằng chúng ta hoán đổi giai đoạn (2) và (3) sao cho bộ trích xuất cung cấp đầu vào bộ giải mã. Ý nghĩa của TRNG là gì?
Bạn sẽ gặp khó khăn với tính toán entropy tối thiểu 800-90B của NIST cho các nguồn entropy tương quan. Tôi cho rằng bạn quan tâm đến kosher TRNG's không phải các mô hình lai như DRBG của NIST từ 800-90A. Những mẹo đó loại bỏ vô số bit giả ngẫu nhiên ở giữa các lần đặt lại (cũng như \dev\urandom
).
Điều đó có nghĩa là bạn cần trích xuất các bit không thiên vị (bias < $2^{-64}$, tương quan <$10^{-3}$) từ nguồn thô có thể tương quan. Tuy nhiên, bạn sẽ nhận thức được các vấn đề liên quan đến NIST ea_non_iid
công cụ đánh giá. Và không có cái nào khác mà tôi biết. Vì vậy, bạn không thể với bất kỳ sự chắc chắn có thẩm quyền nào. Nhưng bạn có thể chắc chắn liệu một nguồn có phải là IID hay không với mức độ chắc chắn cao. Đó là lý do tại sao người ta thường loại bỏ các mẫu nguồn thô hoặc điều chỉnh độ phân giải/tần số $(\epsilon, \tau^{-1})$ của chế độ lấy mẫu thay vì cho đến khi lấy được mẫu IID.
...vì nó không thay đổi lượng entropy...
Nhưng bạn phải giảm (vì vậy hãy thay đổi) lượng entropy đến từ nguồn thô của TRNG. Nếu không, bạn sẽ tạo một TRNG lai tạo ra một lượng lớn (nhưng khá nhiều không thể đo lường được) giả ngẫu nhiên trong luồng đầu ra.
Thế còn các trình trích xuất khác hoặc việc sử dụng PRNG trước số thập phân thì sao?
PRNG không thể nén các mẫu, do đó, PRNG không thể hoạt động như một bộ trích xuất nếu không thực hiện gieo lại số lượng lớn và rất kém hiệu quả.Và số thập phân không thể làm tăng đáng kể tốc độ entropy, tất cả những gì nó có thể làm là chuyển đổi các mẫu không phải IID thành mẫu IID.
Bạn có thể xem loại điều hòa này đây, trong đó tôi giải mã các tệp JPEG ~21 KB thành 5,8 KB thông qua một số kết hợp kỳ lạ giữa giảm entropy và thay đổi chế độ lấy mẫu. Trong ví dụ được liên kết của tôi, tôi sử dụng SHA-512 làm trình trích xuất để nén 778 bit thành 512 để đạt được $\epsilon = 2^{-128}$ theo Bổ đề băm còn lại.