Làm thế nào thường xuyên / dev / urandom mẫu gieo từ / dev / ngẫu nhiên?


14

Trừ khi tôi hoàn toàn bối rối và nó không làm điều đó.

Tôi muốn biết liệu / dev / urandom có ​​tăng entropy hay không nếu tôi lấy RNG phần cứng và cắm entropy của nó vào / dev / ngẫu nhiên.

Vì vậy, để định nghĩa lại, nếu tôi tăng entropy của / dev / ngẫu nhiên bằng X bit / giây (nghĩa là / dev / ngẫu nhiên sau khi tiêm cho phép bạn lấy mẫu X bit / giây) thì liệu có tăng entropy chuyển sang urandom không?


2
Mặc dù không liên quan lắm , 2uo.de/myths-about-urandomblog.cloudflare.com/ ((cụ thể là biểu đồ tại blog.cloudflare.com/content/images/image01.png ) có thể là cách đọc hữu ích.
grawity

Nếu bạn có RNG phần cứng thực sự, bạn có thể sử dụng trực tiếp.
Michael Hampton

Câu trả lời:


24

Thật không chính xác khi nói rằng /dev/urandomcác mẫu từ /dev/random. Thay vào đó, hai nhóm được hỗ trợ bởi cùng một nguồn entropy. Khi số lượng entropy của các pool đạt đến 0, chúng sẽ chuyển từ nhóm đầu vào được chia sẻ. Vì vậy, nếu bạn cung cấp cho entropy đầu vào hạt nhân một cách nào đó, nó có thể sử dụng cho một trong hai /dev/randomhoặc /dev/urandomtùy theo mà được đọc.

Tuy nhiên, /dev/urandom cũng bị giới hạn về tỷ lệ trong tần suất có thể yêu cầu gieo hạt. Theo mặc định, nó chỉ có thể quay lại sau mỗi 60 giây.

Không có vấn đề nào thực sự quan trọng trong thực tế, bởi vì miễn là nhóm ban đầu được tạo ra ít nhất 128 bit hoặc hơn entropy, dự đoán bất kỳ đầu ra nào sẽ không chỉ nhìn thấy các đầu ra trước đó mà còn phá vỡ các thuật toán được sử dụng, bao gồm ít nhất là khả năng kháng tiền của SHA-1 ( vẫn không bị phá vỡ ).


7

Nó phụ thuộc vào việc thực hiện. Nhưng thông thường, /dev/random/dev/urandomkéo entropy từ cùng một nhóm, vì vậy nó sẽ.

Sơ đồ từ https://blog.cloudflare.com/ensuring-randomness-with-linuxs-random-number-generator/


4

Trong Linux, mọi dữ liệu được ghi vào / dev / ngẫu nhiên hoặc / dev / urandom đều được sao chép vào cả nhóm chặn (nguồn ngẫu nhiên cho / dev / ngẫu nhiên) và nhóm không chặn (nguồn ngẫu nhiên cho / dev / urandom).

Chỉ cần nhìn vào hàm Random_write .

Nhưng dữ liệu được ghi vào / dev / ngẫu nhiên không được tính bởi công cụ ước tính entropy nội bộ (xét cho cùng, một số đối thủ cục bộ có thể cố gắng chỉ chuyển hướng / dev / zero hoặc một số nguồn không có giá trị cao khác sang / dev / ngẫu nhiên), vì vậy nếu bạn gặp vấn đề với chặn / dev / ngẫu nhiên, chỉ viết vào / dev / ngẫu nhiên không có ích.

Trong Linux, ghi vào / dev / ngẫu nhiên (hoặc / dev / urandom, không có sự khác biệt), nhưng đọc luôn từ / dev / urandom (một khi nó được gieo hạt - thực sự cách tốt nhất là sử dụng getrandom gọi hệ thống mới ).

Tôi không biết nó hoạt động như thế nào trong các Unice khác.

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.