ในความเป็นจริงมีความจริงมากกว่าตำนาน แต่มีข้อความที่แสดงถึงความจริงในเรื่องนี้ แต่อย่างไรก็ตามคำสั่งนี้สะท้อนให้เห็นถึงความเข้าใจผิดขั้นพื้นฐานของสิ่งที่เกิดขึ้น ใช่การเลื่อนเมาส์ในขณะที่สร้างรหัสด้วย GPG อาจเป็นความคิดที่ดี ใช่การเลื่อนเม้าส์มีส่วนทำให้เอนโทรปีที่สุ่มตัวเลข ไม่การเลื่อนเมาส์ไม่ได้ทำให้กุญแจปลอดภัยยิ่งขึ้น
เครื่องกำเนิดไฟฟ้าแบบสุ่มที่ดีทั้งหมดเหมาะสำหรับการเข้ารหัสและ Linux อยู่ในประเภทนั้นมีสององค์ประกอบ:
- เอนโทรปีแหล่งที่มาซึ่งไม่สามารถกำหนด วัตถุประสงค์ของเอนโทรปีคือการบูตเครื่องสร้างตัวเลขสุ่มด้วยข้อมูลที่ไม่สามารถคาดเดาได้ แหล่งที่มาของเอนโทรปีจะต้องไม่กำหนด: มิฉะนั้นศัตรูสามารถทำซ้ำการคำนวณเดียวกัน
- ตัวสร้างหมายเลขเทียมเทียมซึ่งสร้างตัวเลขสุ่มที่ไม่สามารถคาดเดาได้ในรูปแบบที่กำหนดขึ้นจากสถานะภายในที่เปลี่ยนแปลง
เอนโทรปีต้องมาจากแหล่งที่มาภายนอกกับคอมพิวเตอร์ ผู้ใช้เป็นแหล่งข้อมูลหนึ่งของเอนโทรปี สิ่งที่ผู้ใช้ทำส่วนใหญ่ไม่ได้สุ่ม แต่จังหวะเวลาที่ดีของการกดแป้นและการเคลื่อนไหวของเมาส์นั้นคาดเดาไม่ได้ว่าจะสุ่มเล็กน้อย - ไม่สุ่มมาก แต่ค่อย ๆ สะสม แหล่งที่มาอื่น ๆ ของเอนโทรปีรวมถึงเวลาของแพ็กเก็ตเครือข่ายและเสียงจากกล้องหรือไมโครโฟนสีขาว เคอร์เนลเวอร์ชันและการกำหนดค่าต่าง ๆ อาจใช้ชุดแหล่งข้อมูลที่แตกต่างกัน คอมพิวเตอร์บางเครื่องมีวงจร RNG สำหรับฮาร์ดแวร์โดยเฉพาะตามการสลายตัวของกัมมันตภาพรังสีหรือวงจรอิเล็กทรอนิกส์ที่ไม่เสถียร แหล่งข้อมูลเฉพาะเหล่านี้มีประโยชน์อย่างยิ่งในอุปกรณ์และเซิร์ฟเวอร์ที่ฝังตัวซึ่งสามารถมีพฤติกรรมที่คาดการณ์ได้ในการบู๊ตครั้งแรกโดยที่ผู้ใช้ไม่ต้องทำอะไรแปลก ๆ
ลินุกซ์ให้ตัวเลขสุ่มไปยังโปรแกรมผ่านทางอุปกรณ์ทั้งสอง: และ/dev/random
/dev/urandom
การอ่านจากอุปกรณ์ใดอุปกรณ์หนึ่งส่งคืนคุณภาพการเข้ารหัสลับ อุปกรณ์ทั้งสองใช้สถานะ RNG ภายในเดียวกันและอัลกอริทึมเดียวกันเพื่อเปลี่ยนสถานะและสร้างไบต์แบบสุ่ม พวกเขามีข้อ จำกัด ที่แปลกประหลาดซึ่งทำให้สิ่งที่ไม่ถูกต้อง:
/dev/urandom
สามารถส่งคืนข้อมูลที่คาดการณ์ได้หากระบบยังไม่ได้สะสมเอนโทรปีเพียงพอ
/dev/random
คำนวณจำนวนของเอนโทรปีที่มีและบล็อกหากมีไม่เพียงพอ ฟังดูดียกเว้นการคำนวณขึ้นอยู่กับการพิจารณาเชิงทฤษฎีที่ทำให้ปริมาณของเอนโทรปีที่มีอยู่ลดลงเป็นเส้นตรงกับแต่ละบิตเอาต์พุต จึง/dev/random
มีแนวโน้มที่จะปิดกั้นอย่างรวดเร็ว
ระบบ Linux บันทึกสถานะ RNG ภายในลงในดิสก์และเรียกคืนในเวลาบูต ดังนั้นเอนโทรปีดำเนินการตั้งแต่การบูตครั้งแรกจนถึงครั้งต่อไป เวลาเดียวที่ระบบ Linux อาจไม่มีเอนโทรปีคือเมื่อติดตั้งใหม่ เมื่อมีเอนโทรปีเพียงพอในระบบแล้วเอนโทรปีจะไม่ลดลง การคำนวณข้อบกพร่องของ Linux เท่านั้นที่ลดลง สำหรับคำอธิบายเพิ่มเติมของข้อควรพิจารณานี้การอ่าน/dev/urandom
เหมาะสำหรับการสร้างคีย์การเข้ารหัสโดยนักวิทยาการมืออาชีพ ดู Aso คุณสามารถอธิบายประมาณการเอนโทรปีที่ใช้ใน random.c
การเลื่อนเมาส์จะเพิ่มความเป็นเอนโทรปีให้กับระบบมากขึ้น แต่gpg สามารถอ่านได้เท่านั้น/dev/random
ไม่ใช่/dev/urandom
(วิธีการแก้ปัญหานี้คือการทำให้/dev/random
อุปกรณ์ 1: 9 เหมือนกัน/dev/urandom
) ดังนั้นจึงไม่เสี่ยงที่จะได้รับตัวเลขสุ่มที่ไม่สุ่มพอ หากคุณไม่เลื่อนเมาส์ปุ่มจะสุ่มให้ได้ แต่สิ่งที่สามารถเกิดขึ้นได้คือ gpg อาจถูกบล็อกในการอ่าน/dev/random
รอให้ตัวนับเอนโทรปีของเคอร์เนลเพิ่มขึ้น