เป็นเวลาหลายปีที่ตัวเลขสุ่มอย่างแท้จริงในระดับนั้นเป็นเรื่องที่เข้าใจยาก
ไม่ นี่เป็นโฆษณาเกินจริง 100% การสร้างตัวเลขสุ่มเป็นเรื่องง่าย มีเทคนิคที่เป็นที่รู้จักมากมายในการทำ “มาตราส่วน” ไม่ใช่ปัญหาเกี่ยวกับปริมาณของตัวเลขสุ่ม เนื่องจากต้องการเพียง “การสุ่มจริง” เท่านั้น ดังนั้นให้สร้างเครื่องกำเนิดเทียมเทียมที่ปลอดภัยด้วยการเข้ารหัส (CSPRNG) ผลลัพธ์ของ CSPRNG นั้นแยกไม่ออกจากการสุ่มจริง
คำถามแรกของฉัน: อะไรคือปัญหาที่เกี่ยวข้องกับการสร้างตัวเลขสุ่มที่แท้จริง ต้นทุน การปฏิบัติจริง เช่น การใช้พลังงาน?
ความยากประการหนึ่งของการสร้างแบบสุ่มคือต้องใช้ฮาร์ดแวร์เฉพาะซึ่งมีต้นทุนเพียงเล็กน้อยในการผลิตจำนวนมาก นี่เป็นข้อกังวลสำหรับอุปกรณ์ที่มีราคาตามลำดับความสำคัญของเซ็นต์ต่อหน่วย ปัญหาเหล่านี้ได้รับการแก้ไขแล้วในปัจจุบัน: ราคาได้ลดลงเมื่อเทียบกับทศวรรษที่ผ่านมา และไมโครคอนโทรลเลอร์ราคาถูกจำนวนมากรวมถึง TRNG
อนึ่ง การสร้างตัวเลขสุ่มผ่านตัวประมวลผลและ Jitter ของหน่วยความจำเป็นเทคนิคที่รู้จักกันดีซึ่งไม่สามารถนำมาใช้กับอุปกรณ์ราคาถูกได้เนื่องจากช้าและเสถียรเกินไป และไม่ใช่เทคนิคที่มีประโยชน์มากนักสำหรับอุปกรณ์ขนาดใหญ่ เนื่องจากต้นทุนที่เพิ่มขึ้นของ TRNG เฉพาะนั้นถือว่าเล็กน้อย ตัวอย่างเช่น โปรเซสเซอร์พีซีและสมาร์ทโฟนสมัยใหม่ทั้งหมดมี TRNG เฉพาะ
การใช้พลังงานไม่ใช่ปัญหามากนัก เนื่องจาก TRNG ต้องการเรียกใช้เป็นระยะเวลาสั้นๆ เท่านั้น เวลาแฝง สามารถ เป็นปัญหาเมื่อโปรเซสเซอร์บูท
ในฐานะผู้ออกแบบระบบฝังตัวที่ไม่ค่อยรู้เกี่ยวกับวิธีการทำงานของฮาร์ดแวร์ (งานของฉันคือระดับซอฟต์แวร์และระบบอย่างแน่นหนา) การปรับปรุงที่ฉันอยากเห็นในการสร้างแบบสุ่มของฮาร์ดแวร์นั้นถูกกว่าการผลิตจำนวนมาก (เพื่อให้มีอยู่ในอุปกรณ์ทุกเครื่อง) เพื่อให้มีเวลาแฝงน้อยลงและเชื่อถือได้มากขึ้นต่อการรบกวนจากสิ่งแวดล้อม (เช่น การเปลี่ยนแปลงของอุณหภูมิและพลังงาน)
แต่ในทางปฏิบัติ ปัญหาใหญ่ที่สุดของการสร้างแบบสุ่มไม่ได้อยู่ที่ฮาร์ดแวร์ อยู่ในระบบนิเวศของซอฟต์แวร์ซึ่งมีปัญหาในการเชื่อมโยงขั้นตอนทั้งหมดระหว่างการออกแบบฮาร์ดแวร์และการออกแบบแอปพลิเคชัน ปัญหาคือระบบปฏิบัติการและอินเตอร์เฟสภาษาการเขียนโปรแกรมซึ่งการรับหมายเลขสุ่มที่ไม่ปลอดภัยนั้นเป็นเรื่องง่าย แต่การได้รับหมายเลขสุ่มที่ปลอดภัยนั้นยาก ปัญหาคือการกำหนดค่าระบบและแอปพลิเคชันผิดพลาดซึ่งผ่านการทดสอบการทำงานแต่ไม่ได้รับการตรวจสอบความปลอดภัยที่เหมาะสม
คำถามที่สอง: อะไรและใครสามารถเป็นผู้ชี้ขาดการสุ่มที่แท้จริงได้? นั่นคือใครเป็นคนตัดสินใจว่าตัวเลขเฉพาะนี้ถูกสร้างขึ้นมาแบบสุ่มอย่างแท้จริง?
เนื่องจากคุณไม่สามารถบอกได้ว่าตัวเลขสุ่มเป็นอย่างไรโดยการดูที่ตัวเลข คุณต้องดูกระบวนการสร้างตัวเลข