Có nghiên cứu hiện tại về việc thực hiện các trích xuất ngẫu nhiên?


20

Đã có nghiên cứu để thực hiện các công trình trích xuất ngẫu nhiên?

Dường như các bằng chứng trích xuất sử dụng Big-Oh, để lại khả năng cho các hằng số ẩn lớn, khiến việc triển khai theo chương trình có khả năng không thực tế.

Một số bối cảnh: Tôi quan tâm đến việc sử dụng các trình trích xuất ngẫu nhiên như một nguồn nhanh chóng của các số ngẫu nhiên (có thể?) Để sử dụng trong mô phỏng Monte Carlo. Chúng tôi (một nhóm Vật lý tính toán ETHZ) đã thiên vị các nguồn entropy cao từ các bộ tạo số ngẫu nhiên lượng tử mà chúng tôi muốn trích xuất ngẫu nhiên từ đó. Một sinh viên trước đó đã cố gắng thực hiện một công trình Trevisan và gặp phải các vấn đề phức tạp về không gian. Ngoài học sinh đó, tôi không tìm thấy bất kỳ tài liệu tham khảo nào cho những người đang cố gắng thực hiện các trình trích xuất.

Lưu ý: Tôi là sinh viên đại học CS, người rất mới đối với lĩnh vực CS lý thuyết và trích xuất ngẫu nhiên.


Bạn cũng có thể tìm thấy câu trả lời của arnab cho câu hỏi của tôi thú vị: cstheory.stackexchange.com/questions/36/
Suresh Venkat

Đây là một triển khai hoạt động: Wis.weizmann.ac.il/~neko/MAE-offline.html
Diego de Estrada

Câu trả lời:


19

Phần lớn tài liệu trích xuất là về việc giảm thiểu chiều dài hạt giống, điều này rất quan trọng đối với ứng dụng derandomization. Tuy nhiên, nó có thể không quan trọng đối với bạn. Ngoài ra, thông thường tài liệu tập trung vào lỗi tương đối lớn (ví dụ: 1/100), điều này tốt cho việc khử cộng đồng nhưng có thể có vấn đề trong các cài đặt khác, yêu cầu một lỗi nhỏ theo cấp số nhân.

Trong cài đặt của bạn, có thể ổn khi tạo một lần và cho tất cả một hạt giống ngẫu nhiên dài (giả sử bằng cách tung đồng xu), và sau đó sử dụng nó để trích xuất. Trong trường hợp này, bạn có thể sử dụng các hàm băm độc lập theo cặp có triển khai khá hiệu quả. Tôi đã viết một bài báo với Shaltiel và Tromer về vấn đề này. Bạn cũng có thể sử dụng các hàm băm gần như độc lập, có thể hiệu quả hơn và có hạt nhỏ hơn. (Đừng biết một tài liệu tham khảo tốt để triển khai hiệu quả, mặc dù đã có một số công việc về điều này.)

Nếu bạn có nhiều nguồn độc lập , thì bạn có thể làm những điều tốt hơn. Trình trích xuất Hadamard cổ điển hoạt động nếu tỷ lệ entropy lớn hơn 50% (điều này cần được đề cập trong các khảo sát ở trên). Nếu entropy nhỏ hơn 50% thì chúng ta đã có một công trình đơn giản với Impagliazzo và Wigderson . Sự phụ thuộc giữa số lượng nguồn và lỗi đạt được đối với tỷ lệ entropy là không lý tưởng, mặc dù để thực sự hiểu nó, bạn sẽ cần xem xét các giới hạn chính xác được đưa ra bởi các định lý sản phẩm tổng hợp ngày nay. (Và nếu bạn sẵn sàng giả định một số phỏng đoán lý thuyết nhất định, bạn có thể nhận được các trình trích xuất hiệu quả hơn nữa.) Cấu trúc này đã được cải thiện rất nhiều theo nhiều cách khác nhau, một số trong đó có thể phù hợp với ứng dụng của bạn.Luận văn của Anup Rao .


Cảm ơn các phản hồi bằng văn bản / tổng quan. Tôi đã duyệt qua bài báo TRNG mà bạn đã viết với Shaltiel và Tromer. Có vẻ khá hứa hẹn. Tôi đã tự hỏi nếu trang web của giấy (và mã triển khai) có sẵn ở bất cứ đâu kể từ khi liên kết được trích dẫn ( people.csail.mit.edu/tromer/trng ) trong bài viết không chứa bất kỳ thông tin nào về nó.
Phillip Mates

6

Trước hết, hãy xem chủ đề liên quan trên Wikipedia. Thứ hai, bạn có thể xem bài báo sau:

Những phát triển gần đây trong các công trình rõ ràng của máy chiết xuất của Ronen Shaltiel.

Bài viết được viết dưới dạng khảo sát và có thể giúp bạn tìm ra "những phát triển gần đây".

Cuối cùng, nếu tất cả những gì bạn muốn là một chuỗi các bit "trông" ngẫu nhiên (nhưng không nhất thiết phải bảo mật bằng mật mã), bạn có thể áp dụng hàm băm (chẳng hạn như MD5 hoặc SHA-1) cho nguồn entropy cao của bạn và nhận được một kết quả tuyệt vời (cho các thí nghiệm vật lý) trong hầu như không có thời gian.


1
Cảm ơn các gợi ý băm & liên kết. Trong các liên kết tôi không thấy bất kỳ đề cập nào về những người đang cố gắng thực hiện các trình trích xuất. Tôi rất tò mò liệu điều này có đang được cố gắng không. Hầu hết các tài liệu trích xuất tôi đã đọc đề cập đến các ứng dụng thực tế của trình trích xuất, nhưng không tham chiếu đến bất kỳ triển khai đã cố gắng nào. Tôi đã nói rằng lý do chúng tôi tránh các hàm băm là vì chúng không ngẫu nhiên, rất hữu ích trong lĩnh vực mô phỏng MC vì đôi khi các giả RNG đã cho thấy kết quả không chính xác [ref: prl. aps.org/abab/PRL/v69/i23/p3382_1 ]
Phillip Mates

4

Ngoài ra còn có một bài báo hay của Dodis, Gennaro, et al. xem xét các nguyên thủy mã hóa thực tế có thể được sử dụng để khai thác. Chúng cho thấy các hàm băm không được biết đến là các trình trích xuất tốt, tuy nhiên một mật mã khối trong chế độ CBC-MAC có thể (với một số bản in đẹp). Họ cũng xem xét các công trình xây dựng của HMAC. Cách tiếp cận này rất hấp dẫn để thực hiện vì bạn có thể sử dụng các thư viện mật mã tiêu chuẩn.

Đối với CBC-MAC, "bản in đẹp" đại khái là:

  • Giả sử mã hóa là một hoán vị ngẫu nhiên psuedo
  • Phải được khóa bằng một khóa thực sự ngẫu nhiên (nhưng không nhất thiết là bí mật) có thể được sử dụng lại
  • Nếu đầu ra là m bit, đầu vào phải có ít nhất 2m bit của entropy
  • Độ dài khối và độ dài khóa phải giống nhau (vì vậy nếu bạn đang sử dụng AES, điều đó có nghĩa là chỉ AES-128 hoạt động)
  • Độ dài đầu vào bị giới hạn nhưng giới hạn cao

3

Đối với trường hợp trình tạo giả ngẫu nhiên mật mã, bạn cũng có thể tìm đến HKDF . Trong bài báo họ thảo luận về các trình trích xuất ngẫu nhiên về mặt khái niệm và thực tế, và đưa ra các tài liệu tham khảo hay.

Là một lưu ý phụ để tạo sự ngẫu nhiên cho Monte Carlo, tất nhiên có HAVEGE . Nếu tốc độ bit và "khả năng chứng minh" của nó là đủ, bạn có thể tránh phải làm quen với các máy tạo lượng tử.

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.