Tôi cần một dịch vụ web tạo số ngẫu nhiên thực sự [đóng]


10

Random.org cung cấp 200k bit ngẫu nhiên miễn phí (chỉ có 6250 số nguyên 32 bit!) Từ thế giới tương tự ( xem ) mỗi IP mỗi ngày.

Có ai biết về một dịch vụ web thay thế cung cấp nhiều bit ngẫu nhiên theo yêu cầu mỗi ngày không?

(thanh toán là OK miễn là giá "nằm trong mong đợi" là 1000 × 1024 tỷ mỗi usd cent) (dịch vụ trả phí của Random.org tính phí 100 × giá này)


9
Câu hỏi lớn hơn là "tại sao" bạn cần một trình tạo số ngẫu nhiên "thực sự"?
Đêm tối

5
Một trình tạo ngẫu nhiên thực sự trong phần mềm thuần túy không tồn tại. Bạn có thể đến gần, vào cuối ngày, nó sẽ không thực sự ngẫu nhiên.
Ramhound

10
Mày cần nó để làm gì? Nếu đó là một trò chơi hoặc một cái gì đó, thì giả ngẫu nhiên thường là đủ tốt. Nếu đó là mật mã, họ không nên sử dụng dịch vụ web. Bạn cần giải thích những gì nó làm trước khi chúng tôi có thể chỉ cho bạn các giải pháp khả thi.
Michael Kohne

4
Ở đây ya đi! [webservice] public int GetRandomNumber() { return 4; // rfc 1149.5 }. Tín dụng: xkcd.com/221
Homde

3
Xin lỗi, thưa ông, ông có muốn mua một số nguyên không? Chúng tôi chỉ cung cấp các số nguyên nhân, miễn phí tốt nhất.
Rein Henrichs

Câu trả lời:


25

Có lẽ cái này.

http://qrng.physik.hu-berlin.de/

Từ trang web:

Chúng tôi cung cấp một trình tạo số ngẫu nhiên lượng tử (QRNG) mới dựa trên tính ngẫu nhiên lượng tử của thời gian đến của photon. Nó hứa hẹn chất lượng thống kê có thể chứng minh và lâu dài, tốc độ cũng như khả năng chi trả. Thiết kế của chúng tôi tạo ra một chất lượng mới theo nghĩa là nó cung cấp tốc độ bit cao hơn đáng kể so với các giải pháp trước đây có sẵn cho công chúng. Điều này đã trở nên khả thi bằng cách khai thác hầu hết các thiết bị đo thời gian photon gần đây và xử lý dữ liệu hiện đại trong phần cứng.

Ngoài việc cung cấp tốc độ cao (lên tới 150 Mbits / giây qua USB), thuật toán xử lý hậu kỳ được áp dụng cho dữ liệu thô dựa trên dự đoán chắc chắn từ lý thuyết thông tin đảm bảo bảo tồn tính ngẫu nhiên. Điều này cho phép sử dụng các số ngẫu nhiên được phân phối trong các sơ đồ mã hóa an toàn vô điều kiện.
[...]
Chính sách truy cập
Không có dữ liệu được phân phối nào được gửi nhiều lần, không cho một người dùng cũng như trên> người dùng độc lập. Sử dụng dịch vụ là miễn phí, nhưng yêu cầu đăng ký.


1
(0.o)?! bản ngã Tôi nghĩ đó là một trò đùa, nhưng không có nó thực sự tồn tại :) (+1) tìm thấy tuyệt vời
Darknight

4
-1 cho câu trả lời kém chất lượng. Đây rất có thể là một giải pháp tuyệt vời, nhưng bạn không cung cấp chi tiết nào về liên kết / dịch vụ và tôi không quan tâm đọc toàn bộ liên kết để biết tóm tắt. Khi câu trả lời trên P.SE yêu cầu một liên kết, vui lòng cung cấp một bản tóm tắt về giải pháp bạn đang liên kết đến. Tôi sẽ xem xét loại bỏ downvote của tôi nếu bạn sửa lại câu trả lời của mình.
Craige

4
@NimChimpsky - Tại sao? Bởi vì đó là cách bạn viết một câu trả lời chất lượng trên P.SE. ba__friend nên đăng một mô tả ngắn gọn về dịch vụ cho những người đọc câu hỏi này. Có lẽ một lời giải thích / trích dẫn nhanh về cách dịch vụ tạo ra các số ngẫu nhiên.
Craige

2
@Craige Tôi đã cập nhật bài đăng với một đoạn trích từ trang web.
Adam Lear

5
@NimChimpsky: Vì linkrot xảy ra.
Jon Purdy

31

Những gì bạn đang yêu cầu là nước thánh, và bạn đang từ chối đề nghị rằng bạn sử dụng nước thường xuyên. Lý do duy nhất để thích nước thánh hơn nước là tôn giáo. Có những PRNG đơn giản, được tạo hạt ngẫu nhiên không thể phân biệt với ngẫu nhiên thực sự bằng bất kỳ quy trình đã biết nào. Và các hệ thống này là không xác định.

Một máy tính trong thế giới thực có một số nguồn ngẫu nhiên thực sự. Ví dụ, CPU x86 hiện đại có 'TSC' để đo số chu kỳ lệnh (và do đó, gián tiếp, thời gian để phân giải một phần tỷ của một giây hoặc lâu hơn).

Bạn có thể chụp TSC khi gói mạng đến. Các bit thấp của TSC sẽ phụ thuộc vào độ lệch chính xác giữa bộ tạo dao động tinh thể nhân với giao diện mạng và bộ dao động tinh thể chạy CPU. Điều này phụ thuộc vào sự thay đổi nhiệt độ vùng vi mô trong hai tinh thể thạch anh được cho là thực sự ngẫu nhiên.

Tương tự, bạn có thể chụp TSC khi dữ liệu đến từ ổ cứng. Các bit thấp phụ thuộc vào luồng không khí hỗn loạn cắt giữa bề mặt ổ cứng và vỏ. Điều này cũng được cho là thực sự ngẫu nhiên.

Các thuật toán nổi tiếng, chẳng hạn như thuật toán nhân Linux sử dụng (được phát triển bởi Theodore Ts'o dựa trên công trình của M. Matsumoto và Y. Kurita) sử dụng hiệu ứng tuyết lở để chuyển đổi một số bit không thể đoán trước thành số lượng lớn hơn nhiều. Sự khác biệt duy nhất giữa các đầu ra của các thuật toán này (giả sử chúng được gieo đúng bởi dữ liệu TSC) và đầu ra của tính ngẫu nhiên vật lý thực sự là tôn giáo - không có phương pháp nào có thể phân biệt các đầu ra này. Không có bài kiểm tra nào mà người này sẽ vượt qua và người kia sẽ thất bại.

Tôi đã phát triển các trình tạo số ngẫu nhiên để sử dụng sòng bạc trực tuyến đã đạt được chứng nhận độc lập. Những phương pháp này là những phương pháp được sử dụng trong thế giới thực.


6
+1 cho ý nghĩa thông thường, các ví dụ thú vị và phép ẩn dụ nước thánh tốt đẹp!
mikera


@David, Xin chào, hãy giải thích về câu chuyện "Tôi đã phát triển các trình tạo số ngẫu nhiên để sử dụng sòng bạc trực tuyến" ..?
Pacerier

Nó không thú vị lắm. Một sòng bạc trực tuyến đã thuê tôi phát triển RNG cho họ, tôi đã làm và nó được chứng nhận bởi TST, một công ty chứng nhận của Úc.
David Schwartz

13

Tôi vẫn không hiểu tại sao PRNG mật mã không đủ tốt cho vấn đề của bạn. Một thuộc tính xác định của tiền điện tử là PRNG là không thể (với số lượng phần cứng hợp lý) để phân biệt đầu ra của nó với RNG thực sự.

Điều này có nghĩa là nó đủ tốt cho bất kỳ loại mô phỏng hoặc ứng dụng nào tôi có thể nghĩ ra, ngoài các khóa mã hóa thế hệ hoặc tự khởi tạo PRNG tiền điện tử (rõ ràng cần vài trăm bit entropy thực sự để bắt đầu).

Mặt khác, RNG dịch vụ web không thể được sử dụng cho tiền điện tử

  1. Bạn không thể chứng minh họ thực sự là một PRNG thực sự vì bạn không thể phân biệt đầu ra của họ với PRNG
  2. Bạn cần tin tưởng vào nhà điều hành dịch vụ
  3. Dữ liệu ngẫu nhiên được truyền đến bạn qua kênh bảo mật thấp hơn. Kẻ tấn công có thể phá vỡ PRNG cũng có thể phá vỡ SSL.

Vì vậy, tôi không thể nghĩ về một lần sử dụng mà người ta thích RNG dịch vụ web hơn PRNG tốt. Nếu bạn thực sự cần số ngẫu nhiên thực và an toàn, tôi thấy không có cách nào khác để tự xây dựng phần cứng.


Có, tôi không thể chứng minh đầu ra là thực sự ngẫu nhiên. nhưng nó không khó để tin tưởng nó ngẫu nhiên.org / statistic . Bạn dường như cho rằng bảo mật là một trong những yêu cầu của tôi nhưng không phải vậy. Tôi cần một số ngẫu nhiên fullstop. Không phải là một con số ngẫu nhiên và an toàn. (Nếu kẻ tấn công muốn nghe lén cảm thấy tự do, nó sẽ không bị tổn thương)
Pacerier

1
Không khó để tin vào một PRNG mà nó đã được chứng minh về mặt toán học rằng việc phân biệt nó với một RNG thực sự đòi hỏi phải giải các bài toán rất khó.
CodeInChaos

@CodeInChaos là một sòng bạc trực tuyến một vấn đề toán học rất khó? Không phải vậy, nhưng nó đòi hỏi sự ngẫu nhiên thực sự mà bạn không nghĩ vậy sao?
Pacerier

2
Tôi thấy không có lý do kỹ thuật tại sao một PRNG tốt đôi khi nhận được hàng trăm bit entropy thực sự không đủ cho ngay cả một sòng bạc trực tuyến. Có thể có do pháp lý, nhưng tôi cho rằng trong trường hợp đó bạn cần tạo ra sự ngẫu nhiên thực sự của mình tại địa phương vì điều này mang lại cho bạn cơ hội tốt hơn để chứng minh rằng bạn đang sử dụng các số ngẫu nhiên thực sự.
CodeInChaos

8
+1 Tôi hoàn toàn đồng ý với bạn. Nếu bạn đang tạo một trò chơi cần tạo dữ liệu ngẫu nhiên thực tế thì bạn nên sử dụng PRNG hơn là một trình tạo số ngẫu nhiên thực sự. Đầu tiên, có một bằng chứng toán học rằng nó tạo ra dữ liệu ngẫu nhiên thống kê phù hợp với phân phối xác suất. Thứ hai, bạn có thể chọn phân phối xác suất đó. Thứ ba, bạn có thể kiểm tra ứng dụng của bạn một cách xác định. Thứ tư, bạn có thể chọn hạt giống khi khởi động để nó không bao giờ hành xử theo cùng một cách hai lần. Cá nhân tôi nghĩ rằng OP không thực sự hiểu ý nghĩa của sự ngẫu nhiên, hoặc tại sao anh ta cần nó.

5

Cách đây vài năm, bạn có thể gọi lavarand của SGI tạo ra các số ngẫu nhiên bằng cách sử dụng hình dạng blob hiện tại và tư thế của đèn dung nham đang được xem bởi webcam.

Mặc dù bây giờ bạn đã có thể dễ dàng tạo trình tạo của riêng mình bằng webcam và mã nguồn mở từ những người tốt ở LavaRnd (EDIT: xuống một thời gian bây giờ. Dự án Wayback Machine Sourceforge ). Hóa ra bạn hoàn toàn không cần đèn dung nham: tiếng ồn do CCD thu được trong khi webcam được niêm phong trong hộp chống ánh sáng là một nguồn tuyệt vời để tạo ra các số ngẫu nhiên âm thanh.

.


nhưng chắc chắn theo thời gian, tiếng ồn "ngẫu nhiên" được tạo ra bởi webcam sẽ phù hợp với phân phối bình thường? Tôi không biết có muốn làm rõ không?
Đêm tối

4
@Darknight: Phân phối có liên quan gì đến ngẫu nhiên? Có thể tạo các chuỗi xác định để khớp với bất kỳ phân phối nào và các số ngẫu nhiên có thể phù hợp với bất kỳ phân phối nào.
David Thornley

2
@Darknight Như David lưu ý, các con số cuối cùng có phù hợp với phân phối bình thường không ảnh hưởng đến tính ngẫu nhiên. Nếu bạn quan tâm đến những gì được yêu cầu để tạo một bộ tạo số ngẫu nhiên âm thanh mã hóa (hoặc tiền điện tử mạnh), những người LavaRnd có rất nhiều thông tin và liên kết "stat nerd" trên trang web của họ, cùng với cách họ liên quan đến LavaRnd.
Matthew Frederick

Nghiêm túc mà nói, không có cách nào dễ dàng tạo ra Matthew. Làm thế nào chính xác để bạn xác định dễ dàng?
Pacerier

2
@Pacerier Bạn nói đúng rằng "dễ" là một vấn đề về quan điểm. Phương pháp này rất dễ dàng nếu bạn có quyền truy cập vào máy chủ của mình và việc tìm kiếm một webcam phù hợp không mất nhiều thời gian - "mua ngay bây giờ" $ 10 trên ebay, nói. Lá đó gắn camera; tải xuống, biên dịch và chạy phần mềm miễn phí; và thêm một cuộc gọi đến dịch vụ trong mã của bạn. Không tầm thường, nhưng khá dễ dàng, cực kỳ rẻ tiền và cung cấp số lượng yêu cầu không giới hạn.
Matthew Frederick

1

Mở kết nối TCP tới bất kỳ máy chủ / cổng nào và đếm số nano giây cần thiết. Có số ngẫu nhiên của bạn.


Tôi hy vọng đây không phải là cách bạn thực sự tạo ra các số ngẫu nhiên.
Craige

9
Quan điểm của câu trả lời (mỉa mai nhẹ nhàng) của tôi là entropy trong thời gian cần các gói để di chuyển có giá trị hơn rất nhiều so với một số "ngẫu nhiên" mà entropy bạn tin tưởng vào máy chủ của bên thứ ba.
R .. GitHub DỪNG GIÚP ICE

5
@Pacerier: Không ai thông minh viết tiền điện tử của riêng họ, trừ khi họ là một chuyên gia. Điều đó khác với việc gửi bản rõ của bạn đến một dịch vụ web và nhận lại bản mã. Tương tự như vậy, có lẽ bạn không muốn thử thiết kế hệ thống ngẫu nhiên lượng tử của riêng mình, nhưng việc nhận được các số ngẫu nhiên được chuyển đến bạn qua HTTP không đáng tin cậy.
David Thornley

1
@Pacerier Nhưng bạn vẫn chưa chỉ ra lý do tại sao việc sử dụng PRNG cục bộ bằng tiêm entropy không thường xuyên (từ các nguồn entropy cục bộ) là không thể.
CodeInChaos

1
@Pacerier: hãy tin tôi vào điều này: bạn không cần số ngẫu nhiên thực sự cho các mô phỏng kinh tế. Một giả ngẫu nhiên tốt (hoặc gần như-, nếu bạn quan tâm đến phân phối ngẫu nhiên) sẽ là đủ. Các vấn đề nằm ở chỗ khác (ví dụ: bạn muốn các số không bị cắt xén theo nhiều chiều - làm sao bạn biết rằng dịch vụ web bạn sử dụng thậm chí cả hai để kiểm tra xem số của chúng lấp đầy không gian 20 chiều như thế nào?).
quant_dev

1

đây là một máy phát điện dựa trên lượng tử khác, với một api còn lại không hơn không kém:

http://photonics.anu.edu.au/qoptics/Research/qrng.php

Các nhà nghiên cứu tại ANU đang tạo ra các số ngẫu nhiên thực sự từ một nguồn lượng tử vật lý. Chúng tôi làm điều này bằng cách chia một chùm ánh sáng thành hai chùm và sau đó đo công suất trong mỗi chùm. Bởi vì ánh sáng được lượng tử hóa, cường độ ánh sáng trong mỗi chùm dao động về giá trị trung bình. Những dao động đó, cuối cùng là do chân không lượng tử, có thể được chuyển đổi thành một nguồn số ngẫu nhiên.

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.