Score:0

ประโยชน์ของ PRNG ที่รวดเร็วที่สร้างเอาต์พุต 8 บิตและสามารถผ่านการทดสอบ PractRand ได้ 1 Peta Byte คืออะไร

ธง cn

สมมติว่าองค์ประกอบอื่นๆ ทั้งหมด เช่น สถานะภายในของอัลกอริทึมนั้นถือว่าปลอดภัยและยากที่จะค้นพบจากมุมมองของการเข้ารหัส

อัลกอริทึมจะสามารถผ่าน PractRand ด้วยข้อกำหนดที่กล่าวถึงมีความสำคัญเพียงใด

fgrieu avatar
ng flag
ไม่ใช่เรื่องเล็กน้อยที่จะสร้าง PRNG ที่คายไบต์ ซึ่งสามารถผ่านการทดสอบ PractRand 1 Peta Byte และสถานะภายในที่สมบูรณ์นั้นเป็นไปไม่ได้ที่จะค้นพบด้วยการคำนวณ แต่ก็ไม่ปลอดภัยสำหรับวัตถุประสงค์ในการเข้ารหัส วาดข้อสรุปของคุณเองเกี่ยวกับสิ่งที่ถูกถาม
Tunnel_Vision avatar
cn flag
ขอบคุณสำหรับความคิดเห็นของคุณ! การทดสอบทางสถิติอื่นใดที่ควรผ่าน? เช่น NBT (Next Bit Test) เพียงพอหรือไม่
poncho avatar
my flag
"การทดสอบทางสถิติอื่นใดที่ควรผ่าน" - ทั้งหมดนี้รวมถึงการทดสอบที่ออกแบบโดยคำนึงถึงการออกแบบอัลกอริทึมของคุณ...
SAI Peregrinus avatar
si flag
การทดสอบทางสถิติไม่สามารถแสดงว่า RNG ปลอดภัย เพียงแต่ว่าไม่น่ากลัวอย่างเห็นได้ชัด ใช้เพื่อทดสอบการใช้งานการออกแบบที่ได้รับการวิเคราะห์มาอย่างดี ไม่ใช่เพื่อวิเคราะห์ความปลอดภัยของการออกแบบ
Score:2
ธง fr

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

หากต้องการแสดงตัวอย่างของ CSPRNG ที่ไม่ปลอดภัยซึ่งอาจผ่านการทดสอบทางสถิติใดๆ ก็ได้ แต่จะไม่ผ่านการทดสอบบิตถัดไป ลองนึกภาพเมล็ดพันธุ์ลับ $ ส $, ฟังก์ชันแฮชที่ปลอดภัย $ H(x) $และ PRNG ที่ส่งออก $ H(S) || ฮ(ซ(ส)) || ฮ(ซ(ซ(ส))) || ...$. เนื่องจากฟังก์ชันแฮชของเรามีความปลอดภัย เอาต์พุตจึงดูสุ่ม แต่อันที่จริงแล้วเดาเอาต์พุตถัดไปได้ง่ายมากเมื่อพิจารณาจากเอาต์พุตที่มีอยู่

แน่นอน เป็นไปได้โดยสิ้นเชิงที่จะสร้าง CSPRNG ที่ส่งออกครั้งละหนึ่งไบต์ RC4 เป็นรหัสสตรีมที่มีการออกแบบนี้และมีการใช้ CSPRNG ในหลายระบบ แม้ว่าจะไม่ถือว่าปลอดภัยอีกต่อไป เราสามารถออกแบบ CSPRNG อื่น ๆ ที่ปลอดภัยและเน้นไบต์ได้ ในทางปฏิบัติแล้ว โดยปกติแล้วจะมีประสิทธิภาพมากกว่าในการทำงานกับข้อมูลขนาดใหญ่ ซึ่งเป็นเหตุผลว่าทำไมอัลกอริทึมเช่น ChaCha20 หรือ NIST DRBG มักจะถูกใช้งานบ่อยกว่า

สำหรับประโยชน์ของ PRNG ที่ไม่เข้ารหัสที่รวดเร็ว มีเหตุผลเพียงเล็กน้อยที่จะใช้ ChaCha20 สามารถส่งออกข้อมูลที่ความเร็ว 3 GB/s บนระบบของฉัน และปลอดภัยด้วยการเข้ารหัส ในกรณีที่ไม่น่าจะเกิดขึ้น สิ่งนี้ยังเร็วไม่พอ อาจใช้จำนวนรอบที่น้อยลง (เช่น ChaCha12) และประสิทธิภาพจะดีกว่าในขณะที่ยังคงปลอดภัยด้วยการเข้ารหัส การสร้างตัวเลขสุ่มด้วยอัลกอริทึมที่เหมาะสมนั้นแทบจะไม่เคยเป็นปัญหาคอขวดเลย ดังนั้นการใช้ CSPRNG ซึ่งจะผ่านการทดสอบบิตถัดไปเสมอ และด้วยเหตุนี้จึงมีคุณภาพสูงสุดที่เป็นไปได้ จึงเพียงพอในเกือบทุกกรณี

Paul Uszak avatar
cn flag
ความเร็วไม่เกี่ยวข้องกับการเข้ารหัสจริง
bk2204 avatar
fr flag
แน่นอน แต่มันมีความสำคัญในโลกแห่งความเป็นจริง เพราะผู้คนใช้ความเร็วเป็นข้ออ้างในการใช้ระบบที่ไม่ปลอดภัย นั่นเป็นวิธีที่ทำให้เรายังคงใช้ MD5 อยู่: เร็วและ "ดีพอ"

โพสต์คำตอบ

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