Kết nối ADC với nguồn nhiễu phần cứng và sử dụng phần mềm để "làm trắng" các số ngẫu nhiên nếu cần.
Đây là một dự án dựa trên AVR thực hiện điều này: Trình tạo số ngẫu nhiên di động nhỏ của Leon (mPRNG)
Tùy thuộc vào mức độ an toàn của mật mã cần phải có, bạn có thể sử dụng tiếng ồn của đầu vào tương tự có căn cứ hoặc " cảm biến nhiệt độ bên trong " làm hạt giống ngẫu nhiên thay vì phần cứng bên ngoài.
Cập nhật : Sau đó tôi đã viết một chương trình cho Arduino sử dụng bộ định thời của chip làm nguồn entropy (ADC hóa ra là vô dụng vì các bit nhiễu bị cắt bớt) và điều này đã truyền cảm hứng cho việc tạo ra thư viện Entropy .
Trong cả hai trường hợp, tính ngẫu nhiên không phải từ, ví dụ, chính giá trị nhiệt độ, chỉ thay đổi chậm, mà từ các bit có ý nghĩa nhỏ nhất , thay đổi ngẫu nhiên từ lần đọc này sang lần đọc tiếp theo. Tôi đọc giá trị nhiều lần, một lần cho mỗi bit đầu ra, bẻ khóa và XOR với lần đọc trước. XOR một bit thực sự ngẫu nhiên với một bit không tương thích sẽ duy trì tính ngẫu nhiên , do đó tính ngẫu nhiên được lan truyền đến tất cả các bit và nó trở thành nhiễu trắng thực sự. Tuy nhiên, tốc độ bit của bạn sẽ không cao lắm, vì bạn chỉ nhận được một bit đầu ra cho mỗi lần mua hoặc chu kỳ hẹn giờ. Với phương pháp hẹn giờ, tôi đã nhận được khoảng 64 bit / s.