เราใช้คอมพิวเตอร์เป็นเครื่องสร้างตัวเลขสุ่มอย่างไร

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





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



ใช้หมายเลขสุ่มอะไร | เครื่องกำเนิดตัวเลขสุ่ม

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

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



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



หมายเลขสุ่มจริง | เครื่องกำเนิดตัวเลขสุ่ม

คุณอาจสงสัยว่าคอมพิวเตอร์สร้างตัวเลขสุ่มได้อย่างไร นี้ที่ไหน การสุ่ม มาจาก? หากเป็นเพียงส่วนหนึ่งของรหัสคอมพิวเตอร์เป็นไปได้หรือไม่ที่ตัวเลขที่คอมพิวเตอร์สร้างขึ้นจะสามารถคาดเดาได้?

โดยทั่วไปเราจะจัดกลุ่มคอมพิวเตอร์ของตัวเลขสุ่มที่สร้างเป็นสองประเภท ขึ้นอยู่กับวิธีการสร้าง: จริง ตัวเลขสุ่มและตัวเลขสุ่มหลอก



ภาพยนตร์ kodi ฮ่องกง

เพื่อสร้างไฟล์ จริง หมายเลขสุ่มคอมพิวเตอร์จะวัดปรากฏการณ์ทางกายภาพบางประเภทที่เกิดขึ้นภายนอกคอมพิวเตอร์ เช่นคอมพิวเตอร์สามารถวัดการสลายตัวของกัมมันตภาพรังสีของอะตอม ตามทฤษฎีควอนตัมไม่มีทางทราบแน่ชัดว่าจะเกิดการสลายตัวของกัมมันตภาพรังสีเมื่อใด นี่คือหลัก การสุ่มอย่างแท้จริง จากจักรวาล ผู้โจมตีจะไม่สามารถคาดเดาได้ว่าจะเกิดการสลายตัวของกัมมันตภาพรังสีเมื่อใด ดังนั้นพวกเขาจะไม่ทราบค่าสุ่ม



สำหรับตัวอย่างในแต่ละวันคอมพิวเตอร์อาจอาศัยเสียงรบกวนจากบรรยากาศหรือใช้เวลาที่แน่นอนที่คุณกดแป้นบนแป้นพิมพ์เป็นแหล่งข้อมูลหรือเอนโทรปีที่ไม่สามารถคาดเดาได้ เช่นคอมพิวเตอร์ของคุณอาจสังเกตเห็นว่าคุณกดปุ่มที่ 0.23423523 วินาทีหลัง 14.00 น. หยิบเวลาที่ระบุที่เกี่ยวข้องกับการกดปุ่มเหล่านี้ให้เพียงพอและคุณจะมีแหล่งที่มาของเอนโทรปีที่คุณสามารถใช้เพื่อสร้าง จริง หมายเลขสุ่ม คุณไม่ใช่เครื่องจักรที่คาดเดาได้ ดังนั้นผู้โจมตีจึงไม่สามารถคาดเดาช่วงเวลาที่แม่นยำเมื่อคุณกดปุ่มเหล่านี้ อุปกรณ์ / dev / random บน Linux ที่สร้างตัวเลขสุ่ม บล็อก และไม่ส่งคืนผลลัพธ์จนกว่าจะรวบรวมเอนโทรปีเพียงพอที่จะส่งคืนตัวเลขสุ่มอย่างแท้จริง

หมายเลขเทียม | เครื่องกำเนิดตัวเลขสุ่ม

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

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

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

NSA และตัวสร้างหมายเลขสุ่มฮาร์ดแวร์ของ Intel

เพื่อให้ง่ายขึ้นสำหรับนักพัฒนาและช่วยสร้างหมายเลขสุ่มที่ปลอดภัย ชิป Intel ประกอบด้วยตัวสร้างตัวเลขสุ่มบนฮาร์ดแวร์ที่เรียกว่า RdRand ชิปนี้ใช้แหล่งเอนโทรปีบนโปรเซสเซอร์และให้หมายเลขสุ่มแก่ซอฟต์แวร์เมื่อซอฟต์แวร์ร้องขอ

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

นี่เป็นข้อกังวลอย่างยิ่ง ในเดือนธันวาคม 2013 นักพัฒนาของ FreeBSD ได้ลบการสนับสนุนสำหรับการใช้ RdRand โดยตรงเป็นแหล่งที่มาของการสุ่มโดยบอกว่าพวกเขาไม่สามารถเชื่อถือได้ [ที่มา] เอาต์พุตของอุปกรณ์ RdRand จะถูกป้อนเข้าไปในอัลกอริทึมอื่นที่เพิ่มเอนโทรปีเพิ่มเติม เพื่อให้แน่ใจว่าแบ็คดอร์ใด ๆ ในตัวสร้างตัวเลขสุ่มจะไม่สำคัญ Linux ทำงานในลักษณะนี้แล้วโดยทำการสุ่มข้อมูลแบบสุ่มที่มาจาก RdRand เพิ่มเติมเพื่อที่จะไม่สามารถคาดเดาได้แม้ว่าจะมีแบ็คดอร์ก็ตาม [ที่มา] ใน AMA ล่าสุด ( ถามฉันได้ทุกอย่าง ) ใน Reddit Brian Krzanich ซีอีโอของ Intel ไม่ได้ตอบคำถามเกี่ยวกับข้อกังวลเหล่านี้ [ที่มา]

ห้องที่ดีที่สุดสำหรับ s7

แน่นอนว่านี่ไม่ใช่แค่ปัญหากับชิป Intel เท่านั้น นักพัฒนาของ FreeBSD ก็เรียกชื่อชิปของ Via ด้วยเช่นกัน ข้อถกเถียงนี้แสดงให้เห็นว่าเหตุใดการสร้างตัวเลขสุ่มที่สุ่มอย่างแท้จริงและไม่สามารถคาดเดาได้จึงมีความสำคัญ

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

สรุป

เอาล่ะนั่นคือคนทั้งหมด! ฉันหวังว่าคุณจะชอบบทความตัวสร้างตัวเลขสุ่มนี้และพบว่ามีประโยชน์กับคุณ ให้ข้อเสนอแนะของคุณกับเรา นอกจากนี้หากคุณต้องการถามคำถามเพิ่มเติมที่เกี่ยวข้อง จากนั้นแจ้งให้เราทราบในส่วนความคิดเห็นด้านล่าง เราจะติดต่อกลับโดยเร็ว

ขอให้มีความสุขในวันนี้!

ดูเพิ่มเติม: NSFW: ความหมายและวิธีการทำงานจริง