Trong nhiều năm, những con số thực sự ngẫu nhiên ở quy mô đã khó nắm bắt.
Không, đây là sự cường điệu 100%. Tạo số ngẫu nhiên rất dễ dàng. Có rất nhiều kỹ thuật được biết đến để làm điều đó. âTỷ lệâ không phải là vấn đề liên quan đến số lượng số ngẫu nhiên, bởi vì tính ngẫu nhiên âtrueâ chỉ cần thiết để tạo ra một trình tạo giả ngẫu nhiên an toàn bằng mật mã (CSPRNG). Đầu ra của CSPRNG không thể phân biệt được với ngẫu nhiên thực.
Câu hỏi đầu tiên của tôi: Những khó khăn liên quan đến việc tạo số ngẫu nhiên thực sự là gì? Chi phí, thực tế như tiêu thụ điện năng?
Một khó khăn với việc tạo ngẫu nhiên là nó yêu cầu phần cứng chuyên dụng tốn một phần đáng kể xu để sản xuất hàng loạt. Đây là mối quan tâm đối với các thiết bị có giá theo thứ tự độ lớn của một xu trên mỗi đơn vị. Khó khăn này ngày nay đã được giải quyết phần lớn: giá đã giảm so với một thập kỷ trước và nhiều bộ vi điều khiển giá rẻ bao gồm TRNG.
Ngẫu nhiên, tạo số ngẫu nhiên thông qua bộ xử lý và bộ nhớ jitter là một kỹ thuật nổi tiếng không thể được sử dụng trong các thiết bị rất rẻ vì chúng quá chậm và ổn định. Và nó không phải là một kỹ thuật rất hữu ích trên các thiết bị lớn hơn vì đối với những thiết bị đó, chi phí gia tăng của một TRNG chuyên dụng là không đáng kể. Ví dụ, tất cả các bộ xử lý PC và điện thoại thông minh hiện đại đều bao gồm một TRNG chuyên dụng.
Tiêu thụ điện năng không phải là vấn đề lớn vì TRNG chỉ cần chạy trong một khoảng thời gian rất ngắn. độ trễ có thể là một vấn đề khi bộ xử lý khởi động.
Là một nhà thiết kế hệ thống nhúng, người không biết nhiều về cách thức hoạt động của phần cứng (công việc của tôi chắc chắn ở cấp độ phần mềm và hệ thống), những cải tiến mà tôi muốn thấy trong việc tạo ngẫu nhiên phần cứng là rẻ hơn để sản xuất hàng loạt (để chúng có trong mọi thiết bị), để có ít độ trễ hơn và đáng tin cậy hơn trước những nhiễu loạn của môi trường (ví dụ: sự thay đổi về nhiệt độ và công suất).
Nhưng trên thực tế, vấn đề lớn nhất với việc tạo ngẫu nhiên không nằm ở phần cứng. Đó là trong hệ sinh thái phần mềm gặp khó khăn trong việc kết nối tất cả các bước giữa thiết kế phần cứng và thiết kế ứng dụng. Vấn đề là các hệ điều hành và giao diện ngôn ngữ lập trình nơi nhận các số ngẫu nhiên không an toàn thì dễ nhưng nhận các số ngẫu nhiên an toàn thì khó. Vấn đề là các hệ thống và ứng dụng được định cấu hình sai vượt qua các bài kiểm tra chức năng nhưng chưa được đánh giá bảo mật thích hợp.
Câu hỏi thứ hai: Cái gì và ai có thể là người phân xử về tính ngẫu nhiên thực sự? tức là ai quyết định con số cụ thể này thực sự được tạo ngẫu nhiên?
Vì bạn không thể biết mức độ ngẫu nhiên của một số bằng cách nhìn vào số đó, nên bạn phải xem quá trình tạo ra số đó.