เมื่อเราออกแบบ PRNG แบบเข้ารหัส เราต้องการมากกว่าแค่การทดสอบทางสถิติให้ผ่าน มาตรฐานทองคำในที่นี้คือการทดสอบบิตถัดไป ซึ่งระบุว่าเมื่อให้เอาต์พุตทั้งหมดจนถึงจุดหนึ่ง มันจะง่ายกว่าการเดาบิตถัดไปเพียงเล็กน้อยเท่านั้น นี่ไม่ใช่การทดสอบทางสถิติ แต่เป็นการทดสอบที่บอกเป็นนัยว่าผู้โจมตีมีความรู้อย่างเต็มที่เกี่ยวกับอัลกอริทึมและความสามารถในการเข้ารหัส และยังไม่สามารถหาทางออกที่ดีกว่าการใช้กำลังดุร้าย
หากต้องการแสดงตัวอย่างของ CSPRNG ที่ไม่ปลอดภัยซึ่งอาจผ่านการทดสอบทางสถิติใดๆ ก็ได้ แต่จะไม่ผ่านการทดสอบบิตถัดไป ลองนึกภาพเมล็ดพันธุ์ลับ $ ส $, ฟังก์ชันแฮชที่ปลอดภัย $ H(x) $และ PRNG ที่ส่งออก $ H(S) || ฮ(ซ(ส)) || ฮ(ซ(ซ(ส))) || ...$. เนื่องจากฟังก์ชันแฮชของเรามีความปลอดภัย เอาต์พุตจึงดูสุ่ม แต่อันที่จริงแล้วเดาเอาต์พุตถัดไปได้ง่ายมากเมื่อพิจารณาจากเอาต์พุตที่มีอยู่
แน่นอน เป็นไปได้โดยสิ้นเชิงที่จะสร้าง CSPRNG ที่ส่งออกครั้งละหนึ่งไบต์ RC4 เป็นรหัสสตรีมที่มีการออกแบบนี้และมีการใช้ CSPRNG ในหลายระบบ แม้ว่าจะไม่ถือว่าปลอดภัยอีกต่อไป เราสามารถออกแบบ CSPRNG อื่น ๆ ที่ปลอดภัยและเน้นไบต์ได้ ในทางปฏิบัติแล้ว โดยปกติแล้วจะมีประสิทธิภาพมากกว่าในการทำงานกับข้อมูลขนาดใหญ่ ซึ่งเป็นเหตุผลว่าทำไมอัลกอริทึมเช่น ChaCha20 หรือ NIST DRBG มักจะถูกใช้งานบ่อยกว่า
สำหรับประโยชน์ของ PRNG ที่ไม่เข้ารหัสที่รวดเร็ว มีเหตุผลเพียงเล็กน้อยที่จะใช้ ChaCha20 สามารถส่งออกข้อมูลที่ความเร็ว 3 GB/s บนระบบของฉัน และปลอดภัยด้วยการเข้ารหัส ในกรณีที่ไม่น่าจะเกิดขึ้น สิ่งนี้ยังเร็วไม่พอ อาจใช้จำนวนรอบที่น้อยลง (เช่น ChaCha12) และประสิทธิภาพจะดีกว่าในขณะที่ยังคงปลอดภัยด้วยการเข้ารหัส การสร้างตัวเลขสุ่มด้วยอัลกอริทึมที่เหมาะสมนั้นแทบจะไม่เคยเป็นปัญหาคอขวดเลย ดังนั้นการใช้ CSPRNG ซึ่งจะผ่านการทดสอบบิตถัดไปเสมอ และด้วยเหตุนี้จึงมีคุณภาพสูงสุดที่เป็นไปได้ จึงเพียงพอในเกือบทุกกรณี