Score:1

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

ธง 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
cn flag
คุณใช้งานบน 500 GB?
Tom avatar
tf flag
Tom
ไม่ คุณสามารถใช้ตัวเลขจากโปรแกรมของคุณและเปลี่ยนเส้นทางโดยตรงไปยัง PractRand ในคอนโซล ตัวอย่าง: python3 Mygenerator.py | ./RNG_test stdin. จากนั้น PractRand จะเริ่มต้นและทดสอบจนกว่าจะล้มเหลว
Paul Uszak avatar
cn flag
แต่คุณใช้มากกว่า $2^{39}$ ไบต์ใช่ไหม
Tom avatar
tf flag
Tom
@PaulUszak ใช่ฉันทำ ตอนนี้ใช้งานได้เกือบ 3 วันแล้วก็ยังไม่หาย ซึ่งแน่นอนว่าไม่ธรรมดา เครื่องปั่นไฟหลายเจ้าก็ทำได้
Score:1
ธง cn

ฉันพูดแทนเครื่องกำเนิดไฟฟ้าของคุณไม่ได้เพราะฉันไม่เห็น มีความปลอดภัยในการเข้ารหัสหรือไม่ (เพราะมันค่อนข้างยุ่งยากในการเขียน และเพียงเพราะคุณไม่สามารถกู้คืนเมล็ดได้ ไม่ได้หมายความว่าคนอื่นจะทำไม่ได้ในชั่วขณะหนึ่ง)

ฉันไม่แปลกใจเลยที่ PractRand ตรวจไม่พบลูปที่ >275 GB (ดูหมายเหตุ) ฉันไม่มีประสบการณ์โดยตรงกับ PractRand แต่ไม่ว่าจะมีสายเลือดต่ำก็ตาม การทดสอบ 'มาตรฐาน' ทั้งหมดมีปัญหา STS ของ NIST มีชุดสถิติภายในที่แคบมาก ซึ่งจำกัดขนาดตัวอย่างที่ยอมรับได้อย่างมากมิจฉาทิฐิมีการทดสอบผลรวมที่น่าอับอายและการทดสอบที่อ่อนแออื่นๆ เมื่อเร็ว ๆ นี้พบว่ามิจฉาชีพมีอคติในการทดสอบ KolmogorovâSmirnov (ตัวอย่างประมาณ 8 TB) และจำกัดข้อมูลไว้ที่ ~250 GB ent ไม่มีค่า p หลายค่าโดยสิ้นเชิง FIPS 140 ค่อนข้างอ่อนแอ การทดสอบ U01 จะต้องสอดคล้องกับพารามิเตอร์ที่สามารถปรับแต่งได้ (ทำไม?) PractRand จะไม่แตกต่างไปจากเดิม โดยเฉพาะอย่างยิ่งเมื่อพิจารณาถึงจำนวนนักพัฒนาซอฟต์แวร์ที่จำกัด

โดยสรุป ชุดการทดสอบที่ไม่มีอยู่นั้นสมบูรณ์แบบและการสุ่มนั้นน่ารำคาญ นี่คือสิ่งที่เรามีอยู่ในปัจจุบัน ฉันขอแนะนำให้ใช้ชุดทดสอบอื่นสำหรับตัวอย่าง <275 GB และเปรียบเทียบ แนะนำให้วิ่งดีที่สุดในสามครั้ง เนื้อหาหลักขนาด 275 GB ที่ขยายออกมาจากหนึ่งเมล็ดน่าจะเพียงพอสำหรับกรณีการใช้งานส่วนใหญ่อยู่ดี


หมายเหตุ:

สำหรับการทดสอบ PractRand เพียงแค่สร้าง 100 GB จาก /dev/urandom คัดลอกและเชื่อมเข้าด้วยกันเพื่อสร้างการย้อนกลับ ดูว่าเกิดอะไรขึ้นกับคุณ

ฉันเพิ่งแก้ไขไฟล์ที่ต่อกันเป็น 2 x 10 GB จาก /dev/urandom และผ่านไปด้วย WEAK สองตัว:-

   sts_serial| 6| 100,000| 100|0.99995833| อ่อนแอ
  diehard_dna| 0| 2097152| 100|0.99637872| อ่อนแอ

C'est la vie.

Tom avatar
tf flag
Tom
ดังนั้นจึงเป็นไปได้ที่จะโกงเครื่องมือทดสอบประเภทนี้ ฉันจะรอถ้าตัวสร้างล้มเหลวในการทดสอบหลังจาก 2^40 ไบต์ นั่นหมายถึงลำดับทั้งหมดถูกวนซ้ำ 4 ครั้ง อย่างไรก็ตาม ดูเหมือนว่าสามารถวนซ้ำได้หลายครั้งตราบเท่าที่ลำดับทั้งหมดมีคุณสมบัติทางสถิติที่สมบูรณ์แบบ สามารถวนซ้ำได้หลายครั้งก่อนที่จะตรวจพบการเบี่ยงเบนทางสถิติ
Paul Uszak avatar
cn flag
@Tom ใช่ดูเหมือนว่าเป็นเช่นนั้น แต่นั่นอาจไม่น่าแปลกใจ หน้าต่างการสแกนในการทดสอบเหล่านี้ไม่ใหญ่พอสำหรับตัวอย่างข้อมูลขนาดใหญ่เช่นของคุณ พิจารณาด้วยว่า `dieharder` จะย้อนกลับไฟล์ข้อมูลหากมีขนาดเล็กกว่า ~250 GB ตัวอย่างของฉันด้านบน (2 x 10 GB) ถูกกรอกลับ 11 ครั้ง นั่นคือหน้าต่างสแกนของ
Tom avatar
tf flag
Tom
ใช่ ฉันลืมเกี่ยวกับการย้อนกลับ - นั่นเป็นความจริง ฉันยังสังเกตเห็นการทดสอบที่ผ่านด้วยการทำซ้ำในมิจฉาทิฐิ ดังนั้นใน PractRand ก็อาจเหมือนกัน ฉันจะทดสอบเครื่องกำเนิดไฟฟ้าด้วยสถานะที่เล็กกว่าเพื่อประเมินว่าเมื่อใดที่เครื่องอาจล้มเหลว
Tom avatar
tf flag
Tom
หลังจากทดสอบตัวสร้าง 8 บิตด้วยระยะเวลา $2^{20}$ มันล้มเหลวใน PractRand หลังจาก $2^{24}$ ทดสอบตัวเลข 8 บิตดังนั้นมันจึงวนสตรีมหลายครั้งก่อนที่จะตรวจพบปัญหา สิ่งเดียวกันนี้สามารถคาดหวังได้สำหรับตัวสร้าง 16 บิตที่ฉันทดสอบ ฉันคิดว่าซอฟต์แวร์นี้มีตัวตรวจจับลูปในตัว - แต่ไม่มี

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา