การสร้างเลขสุ่มแท้จริง (True Random Number Generator - TRNG)
TRNG ใช้แหล่งที่ไม่เป็นเชิงนิรันดร์ (Nondeterministic source) เพื่อสร้างความสุ่ม ฟังก์ชันส่วนใหญ่วัดกระบวนการทางธรรมชาติที่คาดการณ์ไม่ได้ รวมถึง ตัวตรวจจับพัลส์ของกิจกรรมรังสีไออไนซ์ิง ท่อปล่อยก๊าซ และตัวเก็บประจุรั่วไหล
อินเทล (Intel) ได้พัฒนาชิปที่พร้อมใช้งานทางการค้าที่สุ่มตัวอย่างเสียงรบกวนทางความร้อนโดยการวัดแรงดันไฟฟ้าข้ามตัวต้านทานที่ไม่ได้ขับเคลื่อน TRNG สร้างเลขสุ่มแท้จริงและผลิตโดยทั่วไปด้วยวิธีฮาร์ดแวร์
เนื่องจากเลขสุ่มที่ผลิตโดย TRNG ทำนายยาก เพราะ TRNG สร้างขึ้นจากแหล่งทางกายภาพที่คาดการณ์ค่าสุ่มได้ยาก ดังนั้น เลขสุ่มจาก TRNG จึงเป็นวิธีที่ปลอดภัย เพราะยากที่จะสร้างค่าเท่ากัน
มีแหล่งความสุ่มที่เป็นไปได้ดังนี้ ซึ่งด้วยความระมัดระวัง สามารถใช้บนคอมพิวเตอร์เพื่อสร้างลำดับสุ่มแท้จริง:
1. อินพุตเสียง/วิดีโอ (Sound/video input)
คอมพิวเตอร์หลายเครื่องสร้างขึ้นพร้อมอินพุตที่ดิจิไทซ์แหล่งอนาล็อกโลกจริงบางส่วน รวมถึงเสียงจากไมโครโฟนหรืออินพุตวิดีโอจากกล้อง
"อินพุต" จากตัวดิจิไทซ์เสียงโดยไม่มีอำนาจเสียบเข้า หรือจากกล้องที่ฝาเลนส์ปิดอยู่ เป็นเสียงรบกวนทางความร้อนพื้นฐาน หากระบบมีเกนเพียงพอที่จะตรวจจับได้ อินพุตดังกล่าวสามารถให้บิตสุ่มคุณภาพสูงได้
2. ไดรฟ์ดิสก์ (Disk drives)
ไดรฟ์ดิสก์รู้จักว่ามีความผันผวนสุ่มเล็กน้อยในความเร็วการหมุนเนื่องจากความรบกวนของอากาศแบบคาโอส (Chaotic air turbulence) การขยายเครื่องมือวัดเวลาค้นหาดิสก์ระดับต่ำ สร้างลำดับการวัดที่รวมความสุ่มนี้ไว้
ข้อมูลดังกล่าวมักสัมพันธ์สูง ดังนั้นจึงต้องการการประมวลผลอย่างมีนัยสำคัญ อย่างไรก็ตาม การทดลองเมื่อสิบปีก่อนแสดงให้เห็นว่า ด้วยการประมวลผลดังกล่าว ไดรฟ์ดิสก์ช้าบนคอมพิวเตอร์ช้าของยุคนั้นก็สามารถสร้างบิตสุ่มคุณภาพดี 100 บิตต่อนาทีหรือมากกว่าได้
การกำจัดอคติ (De-skewing)
TRNG อาจสร้างเอาต์พุตที่มีอคติบางรูปแบบ เช่น มี 1 มากกว่า 0 หรือต่อกัน มีวิธีการเปลี่ยนสตรีมบิตเพื่อลดหรือกำจัดอคติที่พัฒนาขึ้น ซึ่งเรียกว่า อัลกอริทึมการกำจัดอคติ (De-skewing algorithms)
วิธีหนึ่งในการกำจัดอคติ คือการผ่านสตรีมบิตผ่านฟังก์ชันแฮช ฟังก์ชันแฮชสร้างเอาต์พุท n-บิต จากอินพุทความยาวอะไรก็ได้ สำหรับการกำจัดอคติ บล็อกของ m อินพุทบิต ที่ m ≥ n สามารถส่งผ่านฟังก์ชันแฮชได้
TRNG ช้ากว่าและซับซ้อนกว่า ตัวสร้างเลขสุ่มแบบปลอม (Pseudo random number generators - สูตร) ที่มีให้ใช้มาก TRNG สามารถใช้แหล่งรบกวนทางกายภาพหรือไม่ใช่ทางกายภาพได้
ในอุปกรณ์ตรรกะ แหล่งรบกวนทางกายภาพถูกจำกัดอย่างเคร่งครัด เพราะอุปกรณ์ตรรกะควรอยู่ในสถานะที่ชัดเจนเสมอ เพื่อสร้างเลขสุ่ม จำเป็นต้องมีปรากฏการณ์สุ่มที่ควบคุมไม่ได้
ปรากฏการณ์ทางกายภาพที่ใช้สร้างเลขสุ่มในอุปกรณ์ตรรกะมีดังนี้:
- Clock jitter - การปรับเปลี่ยนขอบนาฬิกาจากตำแหน่งที่เหมาะสม
- Metastability - ความสามารถของวงจรที่คงอยู่ในสถานะไม่แน่นอนเป็นเวลาที่ไม่ xác định
- Chaos - พฤติกรรมที่คาดการณ์ไม่ได้ของระบบเชิงนิรันดร์ ซึ่งตอบสนองสูงต่อเงื่อนไขเริ่มต้น
- สัญญาณอนาล็อก (Analog signals) - รวมถึง Shot noise ของไดโอด เสียงรบกวนทางความร้อน เป็นต้น