เอนโทรปีเป็นศัพท์เทคนิคสำหรับ "Randomness" คอมพิวเตอร์ไม่ได้สร้างเอนโทรปีจริงๆ แต่รวบรวมโดยการดูสิ่งต่าง ๆ เช่นความเร็วในการหมุนของฮาร์ดไดรฟ์ (ปรากฏการณ์ทางกายภาพที่ยากต่อการคาดเดาเนื่องจากแรงเสียดทาน ฯลฯ ) เมื่อคอมพิวเตอร์ต้องการสร้างข้อมูลสุ่มหลอกมันจะ เมล็ดสูตรทางคณิตศาสตร์ด้วยเอนโทรปีที่แท้จริงที่พบโดยการวัด mouseclicks ฮาร์ดไดรฟ์รูปแบบการหมุน ฯลฯ การพูดอย่างคร่าวๆentropy_avail
คือการวัดบิตที่มีให้อ่านในปัจจุบัน/dev/random
มันต้องใช้เวลาสำหรับคอมพิวเตอร์ที่จะอ่านเอนโทรปีจากสภาพแวดล้อมของมันเว้นแต่มันจะมีฮาร์ดแวร์ที่ยอดเยี่ยมเช่นไดโอดที่มีเสียงดังหรือบางอย่าง
หากคุณมีเอนโทรปี 4096 บิตและคุณ/dev/random
คาดหวังว่าคุณจะสามารถอ่านเอนโทรปีได้ 512 ไบต์ (4096 บิต) ก่อนบล็อกไฟล์ในขณะที่รอเอนโทรปีมากกว่า
ตัวอย่างเช่นถ้าคุณ“ cat /dev/random
” เอนโทรปีของคุณจะลดลงเหลือศูนย์ ในตอนแรกคุณจะได้รับขยะแบบสุ่ม 512 ไบต์ แต่มันจะหยุดและค่อย ๆ คุณจะเห็นรางข้อมูลแบบสุ่มมากขึ้น
นี้ไม่ได้เป็นวิธีการที่คนควรดำเนินการ/dev/random
แต่ โดยปกตินักพัฒนาซอฟต์แวร์จะอ่านข้อมูลจำนวนเล็กน้อยเช่น 128 บิตและใช้เพื่อหว่านอัลกอริทึม PRNG บางประเภท มันสุภาพที่จะไม่อ่านเอนโทรปีจากที่/dev/random
คุณต้องการตั้งแต่ใช้เวลานานในการสร้างและถือว่ามีค่า ดังนั้นหากคุณระบายไฟล์โดยcat
ใช้ไฟล์อย่างที่กล่าวมาข้างต้นอย่างไม่ระมัดระวังคุณจะทำให้แอปพลิเคชันอื่น ๆ ที่จำเป็นต้องอ่านจาก/dev/random
บล็อก ในที่ทำงานหนึ่งระบบเราสังเกตว่ามีการเข้ารหัสลับจำนวนมากที่ทำงานจนตรอก เราค้นพบว่างาน cron กำลังเรียกสคริปต์ไพ ธ อนที่เริ่มต้นอย่างต่อเนื่องramdom.random()
ในการวิ่งแต่ละครั้งซึ่งวิ่งทุกสองสามวินาที ในการแก้ไขปัญหานี้เราเขียนสคริปต์ python ใหม่เพื่อให้มันทำงานเป็น daemon ที่เริ่มต้นเพียงครั้งเดียวและงาน cron จะอ่านข้อมูลผ่านทาง XMLRPC เพื่อที่จะไม่ให้อ่าน/dev/random
ต่อเมื่อเริ่มต้น