การทดสอบบิตถัดไป
ในการเข้ารหัสและทฤษฎีการคำนวณการทดสอบบิตถัดไป[ 1 ]เป็นการทดสอบกับตัวสร้างเลขสุ่มเทียมเรากล่าวว่าลำดับของบิตผ่านการทดสอบบิตถัดไปสำหรับตำแหน่งใดๆในลำดับนั้น หากผู้โจมตีคนใดที่รู้ลำดับนั้นบิตแรกๆ (แต่ไม่ใช่ค่าเริ่มต้น) ไม่สามารถทำนายได้st ที่มีกำลังการประมวลผลที่เหมาะสม
คำกล่าวที่แม่นยำ
อนุญาตเป็นพหุนาม และเป็นชุดของเซตต่างๆ โดยที่ประกอบด้วยลำดับที่มีความยาว -บิต นอกจากนี้ ให้ให้เป็นการกระจายความน่าจะเป็นของสตริงใน.
ต่อไปนี้เราจะกำหนดการทดสอบบิตถัดไปในสองวิธีที่แตกต่างกัน
การกำหนดวงจรบูลีน
ชุดทำนาย[ 2 ]คือชุดของวงจรบูลีนโดยที่แต่ละวงจรมีน้อยกว่าประตูและแน่นอนอินพุต ให้เป็นความน่าจะเป็นที่เมื่อป้อนข้อมูลเข้าไปส่วนแรกของสตริงที่ถูกเลือกแบบสุ่มในด้วยความน่าจะเป็นวงจรดังกล่าวทำนายได้อย่างถูกต้อง, เช่น :
ตอนนี้ เรากล่าวว่าผ่านการทดสอบบิตถัดไปหากสำหรับชุดการคาดการณ์ใดๆพหุนามใดๆ :
เครื่องจักรทัวริงเชิงความน่าจะเป็น
เราสามารถกำหนดการทดสอบบิตถัดไปในแง่ของเครื่องจักรทัวริงเชิงความน่าจะเป็นได้ เช่นกัน แม้ว่าคำจำกัดความนี้จะมีความเข้มงวดกว่าเล็กน้อย (ดูทฤษฎีบทของ Adleman ) ให้เป็นเครื่องจักรทัวริงเชิงความน่าจะเป็นที่ทำงานในเวลาพหุนามให้เป็นความน่าจะเป็นที่ทำนายบิตแรกถูกต้อง เช่น
เราบอกว่าคอลเลกชันนั้นผ่านการทดสอบบิตถัดไปหากสำหรับพหุนามทั้งหมดสำหรับทั้งหมด ยกเว้นจำนวนจำกัดสำหรับทุกคน:
ความสมบูรณ์สำหรับการทดสอบของเหยา
การทดสอบบิตถัดไปเป็นกรณีเฉพาะของการทดสอบของเหยาสำหรับลำดับสุ่ม และการผ่านการทดสอบนี้จึงเป็น เงื่อนไข ที่จำเป็นสำหรับการผ่านการทดสอบของเหยาอย่างไรก็ตาม เหยาได้แสดงให้เห็นแล้วว่าเป็นเงื่อนไขที่เพียงพอ[ 1 ]
ตอนนี้เราจะพิสูจน์ในกรณีของเครื่องจักรทัวริงเชิงความน่าจะเป็น เนื่องจากแอดเลแมนได้ทำการแทนที่การสุ่มด้วยความไม่สม่ำเสมอในทฤษฎีบทของเขาแล้ว กรณีของวงจรบูลีนไม่สามารถอนุมานได้จากกรณีนี้ (เนื่องจากเกี่ยวข้องกับการตัดสินปัญหาที่อาจตัดสินไม่ได้) แต่การพิสูจน์ทฤษฎีบทของแอดเลแมนสามารถปรับใช้กับกรณีของตระกูลวงจรบูลีนที่ไม่สม่ำเสมอได้อย่างง่ายดาย
อนุญาตเป็นตัวแยกแยะสำหรับการทดสอบของเหยาในเวอร์ชันเชิงความน่าจะเป็น กล่าวคือ เครื่องจักรทัวริงเชิงความน่าจะเป็นที่ทำงานในเวลาพหุนาม โดยที่มีพหุนามอยู่โดยที่สำหรับจำนวนอนันต์
อนุญาตเรามี:และจากนั้นเราก็สังเกตเห็นว่าดังนั้น อย่างน้อยหนึ่งในนั้นไม่ควรเล็กกว่า.
ต่อไป เราจะพิจารณาการแจกแจงความน่าจะเป็นและบน. การกระจายคือการแจกแจงความน่าจะเป็นของการเลือกส่วนแรกในโดยมีความน่าจะเป็นที่กำหนดโดยและบิตที่เหลือจะถูกสุ่มอย่างสม่ำเสมอ ดังนั้นเราจึงได้ดังนี้:
ดังนั้นเราจึงมี(เทคนิคแคลคูลัสอย่างง่ายแสดงให้เห็นสิ่งนี้) ดังนั้นการแจกแจงและสามารถแยกแยะได้โดยโดยไม่เสียความเป็นทั่วไป เราสามารถสมมติได้ว่า, กับพหุนาม
สิ่งนี้ทำให้เราสามารถสร้างเครื่องจักรทัวริงที่แก้ปัญหาการทดสอบบิตถัดไปได้: เมื่อได้รับส่วนแรกๆ ของลำดับเติมข้อมูลอินพุตนี้ด้วยการคาดเดาบิตแล้วก็บิตสุ่มที่เลือกด้วยความน่าจะเป็นสม่ำเสมอ จากนั้นจึงเริ่มทำงานและผลลัพธ์ถ้าผลลัพธ์คือ, และอื่น.