Điểm:0

Cách tiêu chuẩn để tạo byte giả ngẫu nhiên theo yêu cầu

lá cờ in

Tôi đã xem xét Chức năng đầu ra có thể mở rộng (XOF) với một hạt giống ngẫu nhiên nhưng có vẻ như tôi sẽ phải chỉ định độ dài đầu ra khi bắt đầu và lưu trữ toàn bộ đầu ra. Tôi không biết trước mình sẽ cần bao nhiêu byte và tôi không muốn lưu trữ một chuỗi quá dài.

Tôi cũng đã xem xét một số cấu trúc trạng thái đặc biệt sử dụng XOF để duy trì bộ đếm đang chạy. Tôi tự hỏi cách "tiêu chuẩn" và hiệu quả để làm điều này là gì.

Paul Uszak avatar
lá cờ cn
Có một số sắc thái không rõ ràng từ tiêu đề của câu hỏi? Tại sao không chỉ làm điều tiêu chuẩn: CSPRNG?
Maarten Bodewes avatar
lá cờ in
@PaulUszak Một điều có thể là một vấn đề là nhiều CSPRNG *triển khai* được hệ thống gieo hạt, có thể được gieo lại, v.v. Vì vậy, chúng không đáng tin cậy để tạo ra cùng một bit mọi lúc. Một số CSPRNG cũng có thể chỉ định kích thước tốc độ cụ thể, vì vậy có điều đó. Nhưng vâng, nếu đây chỉ là về việc nhận các byte hoặc số nguyên ngẫu nhiên: hãy sử dụng CSPRNG.
Điểm:0
lá cờ my

Tôi đã xem xét Chức năng đầu ra có thể mở rộng (XOF) với một hạt giống ngẫu nhiên nhưng có vẻ như tôi sẽ phải chỉ định độ dài đầu ra khi bắt đầu và lưu trữ toàn bộ đầu ra.

Không; SHAKE XOF tiêu chuẩn không cần biết trước thời lượng đầu ra mà nó có thể tạo ra; không có lý do gì khiến bạn không thể tiếp tục 'siết chặt' để có được nhiều sản lượng như bạn cần.

Bây giờ, có thể API cho thư viện tiền điện tử mà bạn đang sử dụng có giới hạn như vậy (nghĩa là API sẽ luôn tạo tất cả đầu ra cùng một lúc và không có điều kiện để tạo thêm). Mặt khác, tôi sẽ không mong đợi một cách ngây thơ rằng từ một thư viện - bạn đã xem để đảm bảo rằng thư viện của bạn không có chức năng/API 'tạo thêm đầu ra' (có thể chỉ cần gọi 'API tạo đầu ra' với trạng thái LẮC)?

Myath avatar
lá cờ in
Tôi đang xem Python hashlib https://docs.python.org/3/library/hashlib.html và dường như nó không có API như vậy.
poncho avatar
lá cờ my
@Myath: Tôi nghi ngờ rằng việc gọi shake.digest(length) nhiều lần sẽ tạo ra các phần liên tiếp của đầu ra shake.
JamesTheAwesomeDude avatar
lá cờ cn
@poncho Đáng buồn thay, đó không phải là trường hợp; Tôi chỉ thử nghiệm nó. Có vẻ như @Myath sẽ phải sử dụng thư viện của bên thứ ba, chẳng hạn như [`pycryptodome`](https://pycryptodome.readthedocs.io/en/stable/src/hash/shake256.html)—không phải tiêu chuẩn thư viện cũng như [`pyca/cryptography`](https://cryptography.io/en/latest/hazmat/primitives/cryptographic-hashes/#cryptography.hazmat.primitives.hashes.SHAKE256) hỗ trợ chức năng đó, thật kỳ lạ.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.