Điểm:1

Is it possible that PracRand did not detect looping of the generator?

lá cờ tf
Tom

I'm testing my own PRNG generator which should has period $2^{38}$ bytes. So after exactly $2^{38}$ bytes it should start repeat. But PractRand find no anomalies after $2^{39}$ bytes.

Could it be that PractRand wouldn't detect this, or I had miscount something and the generator does not loop after that number of bytes?

Paul Uszak avatar
lá cờ cn
Bạn đã chạy nó trên 500 GB?
Tom avatar
lá cờ tf
Tom
Không, bạn có thể sử dụng các số từ chương trình của mình và chuyển hướng chúng trực tiếp đến PractRand trong bảng điều khiển. Ví dụ: python3 Mygenerator.py | ./RNG_test stdin. Sau đó, PractRand bắt đầu và kiểm tra cho đến khi không thành công.
Paul Uszak avatar
lá cờ cn
Nhưng bạn đã chạy nó hơn $2^{39}$ byte?
Tom avatar
lá cờ tf
Tom
@PaulUszak Vâng, tôi biết. Nó hoạt động gần 3 ngày và vẫn không bị lỗi. Tất nhiên, điều này không có gì lạ, nhiều máy phát điện có thể làm được điều này.
Điểm:1
lá cờ cn

Tôi không thể nói cho máy phát điện của bạn vì tôi chưa nhìn thấy nó. Nó có an toàn về mặt mật mã không (vì điều đó hơi khó viết và chỉ vì bạn không thể khôi phục hạt giống không có nghĩa là những người khác không thể trong một khoảnh khắc).

Tôi hoàn toàn không ngạc nhiên khi PractRand không phát hiện ra vòng lặp ở mức >275 GB (Xem ghi chú). Tôi không có kinh nghiệm trực tiếp về PractRand, nhưng bất kể nó có phả hệ thấp hay không, tất cả các bài kiểm tra 'tiêu chuẩn' đều có vấn đề. STS của NIST có một bộ số liệu thống kê nội bộ rất hẹp, hạn chế nghiêm trọng kích thước mẫu có thể chấp nhận được.diehard có bài kiểm tra tổng khét tiếng và các bài kiểm tra yếu kém khác. Gần đây, người ta phát hiện ra rằng dieharder có sai lệch trong thử nghiệm KolmogorovâSmirnov (~ 8 TB mẫu). Và nó bị giới hạn ở ~250 GB dữ liệu. ent hoàn toàn thiếu một số giá trị p. FIPS 140 khá yếu. Thử nghiệm U01 phải tuân thủ các thông số có thể điều chỉnh được (tại sao?). PractRand sẽ không có gì khác biệt, đặc biệt khi xem xét số lượng hạn chế các nhà phát triển đang làm việc trên nó.

Tóm lại, không có bộ thử nghiệm nào là hoàn hảo và tính ngẫu nhiên rất khó chịu. Đây là những gì chúng ta hiện có mặc dù. Tôi khuyên bạn nên sử dụng một bộ thử nghiệm khác cho các mẫu <275 GB và so sánh. Tốt nhất trong ba lần chạy được khuyến khích. Dù sao thì 275 GB vật liệu chính được kéo ra từ một hạt giống cũng đủ cho hầu hết các trường hợp sử dụng


Ghi chú:

Để kiểm tra các bài kiểm tra PractRand, chỉ cần tạo 100 GB từ /dev/urandom, sao chép và ghép nối để tạo thành một cuộn. Xem những gì xảy ra cho bạn.

Tôi vừa mới xử lý xong một tệp được nối có dung lượng 2 x 10 GB từ/dev/urandom và nó được thông qua với hai ĐIỂM YẾU: -

   sts_serial| 6| 100000| 100|0,99995833| YẾU
  diehard_dna| 0| 2097152| 100|0,99637872| YẾU

Đó là cuộc sống.

Tom avatar
lá cờ tf
Tom
Vì vậy, có thể gian lận loại công cụ kiểm tra này. Tôi sẽ đợi nếu trình tạo thất bại trong các bài kiểm tra sau 2^40 byte. Điều đó có nghĩa là toàn bộ chuỗi được lặp lại 4 lần. Dù sao đi nữa, nó có thể được lặp lại nhiều lần miễn là toàn bộ chuỗi có các thuộc tính thống kê hoàn hảo, nó có thể lặp lại nhiều lần trước khi phát hiện ra sai lệch thống kê.
Paul Uszak avatar
lá cờ cn
@Tom Có vẻ như vậy. Nhưng điều đó có lẽ không đáng ngạc nhiên. Cửa sổ quét trong các thử nghiệm này không đủ lớn cho các mẫu dữ liệu lớn như của bạn. Ngoài ra, hãy xem xét, `dieharder` sẽ tua lại các tệp dữ liệu nếu chúng nhỏ hơn ~250 GB. Ví dụ của tôi ở trên (2 x 10 GB) đã được tua đi tua lại 11 lần. Vì vậy, đó là một cửa sổ quét của
Tom avatar
lá cờ tf
Tom
Vâng, tôi đã quên về tua lại đó - đó là sự thật. Tôi cũng ghi nhận việc vượt qua các bài kiểm tra với sự lặp lại nhiều lần. Vì vậy, trong PractRand, nó có thể giống nhau. Tôi sẽ kiểm tra một trình tạo với trạng thái nhỏ hơn để ước tính thời điểm chúng có thể bị lỗi.
Tom avatar
lá cờ tf
Tom
Sau khi kiểm tra trình tạo 8 bit với khoảng thời gian $2^{20}$, nó đã thất bại trong PractRand sau khi $2^{24}$ kiểm tra các số 8 bit.Vì vậy, nó đã lặp luồng nhiều lần trước khi phát hiện ra sự cố. Điều tương tự cũng có thể xảy ra đối với trình tạo 16 bit mà tôi đã thử nghiệm. Tôi nghĩ rằng phần mềm này có bộ phát hiện vòng lặp được tích hợp sẵn - nhưng không phải vậy.

Đă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.