Điểm:1

Độ bền có quan trọng trong thử nghiệm NIST SP800-22 không?

lá cờ cn

Tôi tò mò về bộ thử nghiệm Randomness.

Một trong những bộ thử nghiệm ngẫu nhiên nổi tiếng, MÁY CẮT, nói rằng Độ bền không quan trọng đối với trình tạo ngẫu nhiên "TỐT".

Lưu ý rằng điều này không giống như việc viết các số dấu phẩy động thô (điều đó hoàn toàn không ngẫu nhiên dưới dạng dòng bit) và "độ bền" của các uint không quan trọng đối với giả thuyết khống về trình tạo "tốt", như các byte ngẫu nhiên là ngẫu nhiên theo thứ tự bất kỳ.

Chỉ là một phỏng đoán sơ bộ, tôi nghĩ không có sự khác biệt giữa Big-endian và Little-endian trong thử nghiệm Tính ngẫu nhiên. Bởi vì Kiểm tra tính ngẫu nhiên là về việc đếm số 0 hoặc 1, kiểm tra mẫu của dòng bit, v.v. (Tôi đã đọc toàn bộ bài báo, NIST SP800-22 sửa đổi 1a.)

Nhưng không có tài liệu bằng văn bản nào trong NIST SP800-22 rằng "Độ bền không ảnh hưởng đến mục đích của bài kiểm tra Tính ngẫu nhiên".

Câu hỏi.

  1. Có phần nào bị thiếu nói rằng "Độ bền không quan trọng" trong bài báo NIST SP800-22 không?

  2. Tôi có thể kiểm tra Tính ngẫu nhiên mà không nghĩ đến Tính bền không?

Tại sao tôi nhận được câu hỏi này.

Có một ví dụ tốt về Tập tin đầu vào chết cứng hơn và tệp đầu vào NIST SP800-22 trong dữ liệu/data.pi với ký tự ASCII.

Và tôi cũng phát hiện ra rằng Dieharder đọc tệp (ASCII) dưới dạng Little-Endian và NIST đọc tệp (ASCII) dưới dạng Big-Endian. Bạn có thể xem trong stackoverflow cách tôi phát hiện ra.

Tuy nhiên, do Endianness, tôi phải tạo hai tệp đầu ra. Một là Big-Endian và một là Little-Endian. Điều này có thể lãng phí thời gian và bộ nhớ. Vì vậy, tôi tự hỏi rằng "Liệu độ bền có quan trọng trong bộ thử nghiệm NIST SP800-22 không?"

Điểm:1
lá cờ ng

Độ bền¹ có thể ảnh hưởng đến kết quả của một bài kiểm tra tính ngẫu nhiên và thay đổi kết quả từ đạt thành không đạt hoặc ngược lại (việc ném một lần chạy khác của trình tạo có thể có tác dụng tương tự, ở mức độ thấp hơn một chút). Tuy nhiên, nếu tuổi thọ đáng kể ảnh hưởng đến kết quả của bài kiểm tra, sau đó (giả sử bài kiểm tra là chính xác và được sử dụng đúng cách)

  • bộ tạo bị hỏng, vì một trong các phiên bản không đạt được thử nghiệm đáng kể và bất kỳ sự hoán đổi bit cố định nào ở đầu ra của bộ tạo không thể phân biệt được với ngẫu nhiên đều tạo ra một bộ tạo không thể phân biệt được với ngẫu nhiên
  • và bài kiểm tra nhạy cảm với sự sắp xếp lại thứ tự nhỏ của đầu vào, đây là dấu hiệu của một bài kiểm tra chuyên biệt hóa quá mức.

Do đó, lời khuyên của tôi là bỏ qua vấn đề về tuổi thọ trong đầu vào của các bài kiểm tra tính ngẫu nhiên.

Thay vào đó, hãy đặt câu hỏi về động cơ chạy Dieharder hoặc NIST SP800-22. Đó là thông lệ trong các bài báo về tiền điện tử không đạt tiêu chuẩn, đặc biệt là những bài minh họa trực quan tác dụng của mã hóa đối với Lena. Nhưng thành công của thử nghiệm như vậy không phải là một đối số hoặc (bằng chứng/trình diễn tệ hơn) về chất lượng của một số mã hóa, hoặc PRNG hoặc TRNG kết hợp trạng thái hậu xử lý. Hướng tới điều này, một phân tích về phương pháp được sử dụng trong quá trình mã hóa, PRNG hoặc nguồn+hậu xử lý của TRNG là cần thiết.


¹ Đó là điều lớn-cuối cùngThứ tự bit, endian nhỏ hoặc endian khác theo byte, từ hoặc số nguyên ở đầu ra của trình tạo được thử nghiệm và/hoặc ở đầu vào của chương trình thử nghiệm. Ví dụ: chức năng của Bộ kiểm tra thống kê NIST convertToBits (tệp src/utilities.c đây) chuyển đổi byte thành bit theo quy ước big-endian (trái với thứ tự phổ biến nhất trong giao tiếp nối tiếp không đồng bộ). Đó là vấn đề trên lý thuyết nếu việc triển khai trình tạo được xác định theo toán học để tạo ra dòng bit (ví dụ: A5-1) quá trình sản xuất của nó có được chuyển sang thử nghiệm đó ở chế độ byte để đạt được hiệu quả hay không.

TyeolRik avatar
lá cờ cn
Nhờ lời khuyên của bạn, ```bỏ qua vấn đề về tuổi thọ```. Tôi đồng ý với "phân tích phương pháp, PRNG, là cần thiết" :)
Paul Uszak avatar
lá cờ cn
Đề xuất loại bỏ/sửa đổi _"TRNG"_ bit. Xử lý hậu kỳ có thể là trình trích xuất vN, CRC-16 hoặc phép nhân ma trận đơn giản. Không có tiền điện tử nguyên thủy nào là cần thiết và thực sự nguy hiểm. Do đó, một thử nghiệm ngẫu nhiên là trọng tài cuối cùng và cuối cùng cho hoạt động chính xác. Tôi gợi ý rằng các bài báo TRNG không đạt tiêu chuẩn duy nhất là những bài không có bài kiểm tra ngẫu nhiên cuối cùng. Đó là lý do tại sao tất cả các giấy tờ tử tế đều có chúng ở cuối.
Paul Uszak avatar
lá cờ cn
Nó không thể ảnh hưởng đến bộ cụ thể này, vì SP800-22 không sử dụng từ.
fgrieu avatar
lá cờ ng
@Paul Uszak: xem ghi chú mới ¹ được viết sau nhận xét cuối cùng của bạn.
Paul Uszak avatar
lá cờ cn
Err, vẫn không hoàn toàn thấy quan điểm của bạn. Quá trình kiểm tra sẽ xảy ra với sự phân bố đồng đều các bit đã đặt trong tất cả các byte, bất kể độ bền của bit. Kiểm tra truyền dữ liệu được cung cấp qua RS-232 sẽ trông giống như đầu ra `\dev\urandom`...
Điểm:0
lá cờ cn

Tuyệt đối không.

Tôi khuyên bạn nên viết [sic] nhị phân trong Little-Endian.

Điều đó không liên quan đến bộ 800-22. Bạn phải xem xét ý nghĩa của endianness. Độ bền là thứ tự hoặc chuỗi byte của một từ của dữ liệu số. Bộ này không sử dụng từ ngữ. Nó sử dụng octet.

Phần có liên quan của tài liệu thử nghiệm là: -

5.4.1 Nhập dữ liệu Dữ liệu đầu vào có thể được cung cấp theo một trong hai cách. Nếu người dùng có một chương trình độc lập hoặc thiết bị phần cứng mà thực hiện một RNG, người dùng có thể muốn xây dựng bao nhiêu tệp của chiều dài tùy ý theo ý muốn. Các tệp phải chứa các chuỗi nhị phân được lưu trữ dưới dạng các ký tự ASCII bao gồm các số 0 và 1 hoặc dưới dạng dữ liệu nhị phân trong đó mỗi byte chứa tám bit có giá trị 0âs và 1âs. Bộ kiểm tra thống kê NIST sau đó có thể kiểm tra độc lập những tập tin này.

và từ chính bộ thử nghiệm: -

   Định dạng tệp đầu vào:
    [0] ASCII - Một chuỗi ASCII 0 và 1
    [1] Nhị phân - Mỗi byte trong tệp dữ liệu chứa 8 bit dữ liệu

   Chọn chế độ nhập liệu:  

Vì vậy, bạn thấy rằng tuổi thọ không có liên quan. Nó không mong đợi số nguyên ngắn/dài cũng như số dấu phẩy động. Các bộ khác có thể mặc dù. Bạn có thể nhập dữ liệu ASCII một byte cho 01hoặc bạn nhập (một hy vọng) các bit được phân phối đồng đều trong các octet.


Lưu ý: Không phải là chuyên gia về mã hóa UTF, nhưng bạn có thể tạo các ký tự ASCII bằng mã hóa bắt buộc không phải UTF-8. Điều đó có thể gây ra tất cả các bài kiểm tra vớiĐịnh dạng tệp đầu vào: [0] ASCII thất bại.

TyeolRik avatar
lá cờ cn
Tôi không nghĩ vậy. Câu trả lời của bạn là về ASCII, nhưng Endianness là điều khác với ASCII. Như bạn có thể thấy trong bộ thử nghiệm NIST, có tệp ```data/data.pi``` chẳng hạn. Và có 0 và 1, nhị phân được mã hóa ASCII. Nhưng khi bạn chuyển đổi dữ liệu này thành Dữ liệu byte (tệp nhị phân) sẽ khác vì Endianness nói về "Cách viết nhị phân". Vì vậy, tôi sợ câu trả lời của bạn là không liên quan. Nhưng cảm ơn bạn đã quan tâm và thảo luận :)
Paul Uszak avatar
lá cờ cn
@TyeolRik Bạn nhận ra rằng các dòng của `data/data.pi` không phải là số nguyên? Chỉ có các số 0 và 1, với một số ngắt dòng để trông đẹp mắt. Do đó câu trả lời của tôi (theo ý kiến ​​​​của tôi) là đúng chỗ.
TyeolRik avatar
lá cờ cn
// Tôi sợ nhưng ```data/data.pi``` không phải là số nguyên. Theo [trang này](https://www.exploringbinary.com/pi-and-e-in-binary/), PI, 3.142592...., là ```11.00100100001111...``` trong nhị phân. Và tệp ```data/data.pi``` cũng là ```11.00100100001111...```. Vì vậy, tôi đoán các nhị phân trong ```data/data.pi``` chỉ là PI chứ không phải số nguyên. :)
TyeolRik avatar
lá cờ cn
Ối. Xin lỗi vì hiểu lầm lời nói của bạn. (Do tôi không biết tiếng Anh) Chúng tôi đang ở trên trang này. Cảm ơn lời khuyên của bạn đã được thêm vào. ```viết nhị phân trong Little-Endian```

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