Score:1

จะวัดความยาวของรอบ PRNG 128 บิตได้อย่างไร

ธง tf
Tom

ฉันได้ป้อน PRNG 128 บิตแล้ว มันผ่านการทดสอบของ PractRand และ Dieharder แต่ฉันไม่รู้ว่าวงจรของมันมีความยาวเท่าไหร่ (สำหรับคีย์ที่แตกต่างกันและเมล็ดที่แตกต่างกัน)

มีวิธีประเมินผ่านการวิเคราะห์ผลลัพธ์ของตัวสร้างนี้หรือไม่? ฉันกำลังพยายามวิเคราะห์วงจรในส่วน 16 บิตของเอาต์พุต 128 บิต ตัวเลข 16 บิตซ้ำในส่วน 16 บิตที่ตัดทอนของเอาต์พุต 128 บิตโดยเฉลี่ยในทุกๆ $6331708$ ขั้นตอน เช่น เบอร์ $14649$ เกิดขึ้นในระดับต่ำ 16 บิตผิดปกติหลังจาก:

$1385856, 6793856, 4734720, 4043776, 17823744, 3705088, 5609216, 1174784, 3718656, 181504, 14063616, 13729024, 10346880, 15782016, 1561088, 1996672, 988544$

ขั้นตอน (และดูคล้ายกันเมื่อเราตรวจสอบหมายเลข 16 บิตอื่น ๆ ด้วยปุ่ม ither) แต่จากการวิเคราะห์ชิ้นส่วนเครื่องกำเนิดไฟฟ้า 16 บิตที่ต่อเนื่องกัน ข้อสรุปใด ๆ เกี่ยวกับวัฏจักรของเครื่องกำเนิดไฟฟ้าทั้งหมดสามารถสรุปได้หรือไม่?

อย่างไรก็ตาม เราไม่ควรคาดหวังให้ตัวเลข 16 บิตแบบสุ่มเกิดขึ้นทุกๆ ครั้ง $2^{16}$ ขั้นตอน? ในตอนแรกตัวเลข 16 บิตที่สุ่มเลือกนั้นหายากสำหรับฉัน หรือฉันเข้าใจอะไรผิดหรือเปล่า

fgrieu avatar
ng flag
สามารถพิสูจน์ได้จากการทดลองว่า PRNG ไม่ปลอดภัยหรือมีระยะเวลาสั้น ไม่มีวิธีตรวจสอบเอาต์พุตที่สามารถระบุได้ว่าปลอดภัยหรือมีระยะเวลานาน สำหรับสิ่งนี้ จำเป็นต้องตรวจสอบวิธีการทำงานของ PRNG
Tom avatar
tf flag
Tom
ตกลง ฉันต้องพิจารณาว่าฉันไม่มีทฤษฎีเกี่ยวกับระยะเวลา จึงไม่มีทางรู้อะไรเกี่ยวกับระยะ PRNG ได้เลย? ไม่สำคัญว่ามันจะผ่าน PractRand เป็น 2^42 ไบต์หรือไม่ มันสามารถเข้าสู่วงจรของ legth $2^{50}$ หรือ $2^{100}$ และเราไม่สามารถทราบได้ว่าเป็นอย่างไร เพียงแค่วิเคราะห์ ผลลัพธ์?
Maarten Bodewes avatar
in flag
ตามคำจำกัดความ (?) ผลลัพธ์ของ RNG ไม่ควรบอกอะไรคุณเกี่ยวกับสถานะของ PRNG ดังนั้นเพียงแค่ดูที่บางส่วนของผลลัพธ์ คุณจะไม่ได้รับประโยชน์มากนักหากมีความเข้าใจอย่างลึกซึ้งเกี่ยวกับความเป็นไปได้ของวัฏจักร คุณสามารถพบความผิดปกติเท่านั้น แต่สิ่งเหล่านั้นควรปรากฏในการทดสอบ หากการทดสอบล้มเหลว ฉันเดาว่าถ้าเป็นวัฏจักรหรือไม่นั้นไม่สำคัญ :)
fgrieu avatar
ng flag
อย่างแน่นอน. การทดสอบทางสถิติที่ดำเนินการกับเอาต์พุตของ PRNG จะไม่สามารถหาระยะเวลาได้ เว้นแต่ว่าระยะเวลาจะต่ำกว่า (โดยมีระยะขอบเล็กน้อย) กว่าความยาวที่ทดสอบ อีกครั้ง การทดสอบทางสถิติมีประโยชน์เพียงเพื่อพิสูจน์ว่า PRNG ที่ไม่ดีนั้นไม่ดี หรือ/และมีระยะเวลาสั้น เมื่อการทดสอบไม่พบข้อบกพร่อง/ระยะเวลาสั้น เราไม่สามารถหาข้อสรุปเกี่ยวกับการทดสอบ PRNG ได้ เช่นเดียวกับที่เห็นมดเดินข้ามสะพานอย่างปลอดภัย เราก็ไม่สามารถหาข้อสรุปในเชิงบวกเกี่ยวกับสะพานได้ เราต้องดูแผนผังการออกแบบและตรวจสอบการก่อสร้าง
kodlu avatar
sa flag
ข้อความของคุณไม่ชัดเจน หากสิ่งเหล่านี้เป็นการกระจายช่องว่างสำหรับหน้าต่าง 16 บิต 16 บิต คุณได้ตรวจสอบหน้าต่าง 16 บิต *ทั้งหมด* แล้วหรือยัง การกระจายช่องว่างนั้นเป็นเรื่องปกติสำหรับหน้าต่าง 16 บิตทั้งชุดหรือไม่
Tom avatar
tf flag
Tom
@kodlu ฉันทำผิดไม่มีช่องว่างขนาดใหญ่และไม่มี (ฉันทำรหัส Python ผิด)
user2357 avatar
us flag
@fgrieu แล้ว lfsr ล่ะที่คำนวณระยะเวลาที่ยาวที่สุดและสามารถทำได้โดยการพิจารณาด้วยพหุนามดั้งเดิม ฉันเพิ่งอ่านเกี่ยวกับอะไรทำนองนั้นในหนังสือชื่อการทำความเข้าใจการเข้ารหัส
Score:3
ธง my

มีวิธีประเมินผ่านการวิเคราะห์ผลลัพธ์ของตัวสร้างนี้หรือไม่?

ตามที่ความคิดเห็นกล่าวว่าไม่จริง (เว้นแต่ว่าเครื่องกำเนิดไม่ดีจริง ๆ )

ฉันกำลังพยายามวิเคราะห์วงจรในส่วน 16 บิตของเอาต์พุต 128 บิต อย่างไรก็ตาม เราไม่ควรคาดหวังให้ตัวเลข 16 บิตแบบสุ่มเกิดขึ้นทุกๆ ครั้ง $2^{16}$ ขั้นตอน?

สิ่งที่ PRNG ที่ดีควรทำคือการกวนบิตทั้งหมดของรัฐเข้าด้วยกัน ดังนั้นการดูที่ชิ้นส่วน 16 บิตที่ถูกตัดทอนจึงไม่ควรบอกอะไรคุณ

ในทางกลับกัน คุณดูเหมือนจะแสดงรายการช่องว่างในค่า 216 บิต (14649) ที่ระบุ และช่องว่างเหล่านั้นดูค่อนข้างแปลก หาก PRNG ดี เราคาดว่าช่องว่างระหว่างเหตุการณ์จะเป็นไปตามการแจกแจงแบบเอ็กซ์โปเนนเชียล (โดยมีค่าเฉลี่ยที่ 65536 อย่างที่คุณพูด); ในขณะที่บางครั้งคุณจะเห็นช่องว่างที่ใหญ่กว่าค่าเฉลี่ยมาก แต่คุณแทบจะไม่เคยเห็นช่องว่างมากเท่ากับค่าเฉลี่ย 100 เท่า (และคุณแสดงให้เห็นช่องว่างที่ใหญ่กว่า) นี่คือประเภท 'ถูกลอตเตอรีหลายเท่า' เหตุการณ์. ข้อเท็จจริงที่คุณดูเหมือนจะบ่งชี้ว่า a) ฉันตีความข้อมูลไม่ถูกต้อง b) คุณไม่ได้วัดช่องว่างอย่างถูกต้อง หรือ c) PRNG นั้นไม่สม่ำเสมออย่างจริงจัง

การตรวจสอบความไม่สม่ำเสมอนั้นตรงไปตรงมา - เพียงแค่เรียกใช้ PRNG และนับจำนวนครั้งที่คุณเห็นค่าแต่ละค่า - หากคุณเห็นค่าที่มีจำนวนทวีคูณมากจากค่าเบี่ยงเบนมาตรฐานจากค่าเฉลี่ย (ในทิศทางใดทิศทางหนึ่ง) แสดงว่าคุณมีความร้ายแรง ปัญหา.

แน่นอน ถ้าสิ่งนี้ควรจะเป็นตัวสร้างตัวเลขสุ่มที่ปลอดภัยด้วยการเข้ารหัส อืม ข้อกำหนดสำหรับสิ่งนั้นจะเข้มงวดกว่ามาก...

Tom avatar
tf flag
Tom
คุณพูดถูก ฉันเดารหัสผิดและวัดการทำซ้ำเหล่านี้ผิด ด้วยความเบี่ยงเบนดังกล่าว เครื่องกำเนิดนี้จะสอบตกอย่างแน่นอน อย่างไรก็ตาม ฉันต้องทำทฤษฎีเกี่ยวกับวัฏจักรของเครื่องกำเนิดนี้

โพสต์คำตอบ

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