แต่น่าเสียดายที่ / dev / random นั้นไม่เหมาะสำหรับการใช้งานในแผ่นเพียงครั้งเดียวอย่างน้อยก็ไม่ใช่แผ่นแบบครั้งเดียว (ที่มีการรับประกันความปลอดภัยที่พิสูจน์ได้) ซึ่งคนส่วนใหญ่คิดเมื่อพวกเขานึกถึง ข้อมูลส่วนใหญ่ด้านล่างนี้สรุปจากบทความ (ยาวมาก) ที่http://www.2uo.de/myths-about-urandom/
ปัญหาคือ / dev / random ไม่สุ่มอย่างแท้จริง; มันใช้ CSPRNG เพื่อสร้างผลลัพธ์ ในความเป็นจริง / dev / random ใช้ CSPRNG เดียวกันกับ / dev / urandom ข้อแตกต่างเพียงอย่างเดียวคือบล็อก / dev / สุ่มถ้าการประมาณค่าเอนโทรปีภายในไม่เพียงพอ
คำว่า "ประมาณ" ในประโยคก่อนหน้าคือกุญแจ คนส่วนใหญ่คิดว่าการประเมินนี้แม่นยำและสมบูรณ์แบบอยู่เสมอ แต่ในความเป็นจริงมันไม่แม่นยำเลย ทันทีที่การประเมินผิดคุณจะสูญเสียการรับประกันความปลอดภัยที่พิสูจน์ได้ทั้งหมดของแผ่นเพียงครั้งเดียวและสิ่งที่คุณได้ทิ้งไว้คือความปลอดภัยในการคำนวณ - ไม่ดีไปกว่าถ้าคุณใช้ / dev / urandom!
การประมาณค่าเอนโทรปีเพียงเล็กน้อยผิดไม่ได้ทำให้แผ่นเพียงครั้งเดียวของคุณไม่ปลอดภัยเพียงเล็กน้อย การรับประกันความปลอดภัยที่พิสูจน์ได้ของแผ่นเพียงครั้งเดียวทั้งหมดหรือไม่มีอะไร
หลักฐานของคำถามนี้คือปัญหาเกี่ยวกับ / dev / random สามารถ "แก้ไข" โดยการเพิ่มเอนโทรปีมากขึ้น น่าเสียดายที่หลักฐานนี้ผิด แหล่งข้อมูลเอนโทรปีที่เป็นอันตรายนั้นเลวร้ายยิ่งกว่าเอนโทรปีใด ๆ เพราะแหล่งข้อมูลเอนโทรปีมักจะสามารถเข้าถึงข้อมูลภายในและสามารถส่งออกข้อมูลนี้ได้อย่างลับๆโดยใช้เอาต์พุต RNG - ดูhttp://blog.cr.yp.to/20140205-entropy .htmlสำหรับการสนทนาเต็มรูปแบบ (ยาวเกินไปที่จะสรุปที่นี่) โดยเฉพาะอย่างยิ่งแหล่งที่มาของฮาร์ดแวร์ของเอนโทรปี (ตามที่แนะนำโดยคำตอบอื่น ๆ อีกหลายข้อ) เป็นตัวเลือกที่แย่มากจากมุมมองด้านความปลอดภัยเนื่องจากฮาร์ดแวร์นั้นอยู่ในตำแหน่งที่เหมาะสมที่สุดในการทำสิ่งที่เป็นอันตราย