มีปัญหามากมายที่เรารู้เกี่ยวกับอัลกอริทึมแบบสุ่มที่มีประสิทธิภาพและเราไม่ทราบถึงอัลกอริทึมแบบกำหนดค่าใด ๆ ที่เราสามารถพิสูจน์ได้ว่ามีประสิทธิภาพ อย่างไรก็ตามสิ่งนี้อาจสะท้อนถึงข้อบกพร่องในความสามารถของเราในการพิสูจน์สิ่งต่าง ๆ เกี่ยวกับความซับซ้อนมากกว่าความแตกต่างพื้นฐาน
จากความคิดเห็นของคุณดูเหมือนว่าคุณตั้งใจจะถามว่ามีปัญหาใด ๆ หรือไม่ที่มีอัลกอริธึมแบบสุ่มที่มีประสิทธิภาพและเราสามารถพิสูจน์ได้ว่าไม่มีอัลกอริทึมที่มีประสิทธิภาพเทียบเท่ากัน ฉันไม่รู้ปัญหาดังกล่าว
อันที่จริงมีเหตุอันควรสงสัยว่าปัญหาดังกล่าวอาจไม่เกิดขึ้น การมีอยู่ของปัญหาดังกล่าวน่าจะหมายความว่าการเข้ารหัสที่ปลอดภัยนั้นเป็นไปไม่ได้ ดูเหมือนว่าจะเป็นผลลัพธ์ที่ไม่น่าเชื่อเลยทีเดียว
การเชื่อมต่อคืออะไรคุณถาม? ดีพิจารณาขั้นตอนวิธีการใด ๆ สุ่มที่แก้ปัญหาบางอย่างได้อย่างมีประสิทธิภาพ ขึ้นอยู่กับการสุ่มเหรียญ: บิตสุ่มที่ได้จากแหล่งสุ่มจริง ตอนนี้สมมติว่าเราใช้ตัวสร้างเทียมเข้ารหัสที่มีคุณภาพแบบเข้ารหัสและแทนที่แหล่งกำเนิดที่แท้จริงแบบสุ่มด้วยผลลัพธ์ของตัวสร้างจำลองแบบหลอกเทียม โทรที่เกิดอัลกอริทึม' โปรดทราบว่า'เป็นอัลกอริทึมที่กำหนดและเวลาในการทำงานของมันคือประมาณเช่นเดียวกับAA′A′A
นอกจากนี้หากการเข้ารหัสลับ PRNG มีความปลอดภัยแบบ heuristically เราควรคาดหวังให้เป็นอัลกอริทึมที่ดีถ้าAคือ:A′A
ตัวอย่างเช่นถ้าเป็นลาสเวกัสอัลกอริธึม (มันมักจะเอาท์พุทคำตอบที่ถูกต้องและยุติอย่างรวดเร็วด้วยความน่าจะเป็นสูง) ดังนั้นA ′จะเป็นอัลกอริธึมที่ดีมาก .AA′
อีกตัวอย่างหนึ่งถ้าเป็นอัลกอริธึม Monte Carlo (เวลาทำงานที่กำหนดไว้ล่วงหน้าและส่งคำตอบที่ถูกต้องด้วยความน่าจะเป็นอย่างน้อย1 - ε ) ดังนั้นAจะเป็นอัลกอริธึมที่ดีมาก บนเศษส่วน1 - εของอินพุตทั้งหมด)A′1−εA1−ε
ดังนั้นหากการเข้ารหัสลับ PRNG มีความปลอดภัยและมีอัลกอริทึมแบบสุ่มที่มีประสิทธิภาพคุณจะได้รับอัลกอริทึมแบบกำหนดค่าที่ค่อนข้างดี ขณะนี้มีโครงสร้างของ PRNG เข้ารหัสมากมายที่รับประกันว่าจะปลอดภัยหากมีการสันนิษฐานว่ามีการเข้ารหัสลับบางอย่าง ในทางปฏิบัติสมมติฐานการเข้ารหัสลับเหล่านี้มีความเชื่อกันอย่างกว้างขวาง: อย่างน้อยการค้าที่ปลอดภัยและการทำธุรกรรมขึ้นอยู่กับความจริงดังนั้นเราจึงยินดีที่จะเดิมพันเงินก้อนใหญ่ที่มีการเข้ารหัสที่ปลอดภัย วิธีเดียวที่การเปลี่ยนแปลงนี้อาจล้มเหลวคือถ้าไม่มี PRNG เข้ารหัสซึ่งหมายความว่าการเข้ารหัสที่ปลอดภัยนั้นเป็นไปไม่ได้ แม้ว่าเราจะไม่มีหลักฐานใด ๆ ว่าเป็นกรณีนี้ แต่ดูเหมือนว่าผลลัพธ์ที่ไม่น่าจะเกิดขึ้น
รายละเอียดของการก่อสร้าง: นี่คือการทำงานของกับการป้อนข้อมูลx , มันเกิดเมล็ดสำหรับการเข้ารหัสลับ PRNG เป็นหน้าที่ของx (เช่นโดยคร่ำเครียดx ) แล้วเลียนแบบ( x )โดยใช้การส่งออกของ PRNG การเข้ารหัสลับเป็นเหรียญสำหรับ ตัวอย่างเช่นการสร้างอินสแตนซ์เฉพาะจะตั้งk = SHA256 ( x )จากนั้นใช้kเป็นเมล็ดสำหรับ AES256 ในโหมดตัวนับหรือโหมด PRNG เข้ารหัสลับอื่น ๆ เราสามารถพิสูจน์ข้อความข้างต้นภายใต้แบบจำลองออราเคิลแบบสุ่มA′xxxA(x)Ak=SHA256(x)k
หากคุณไม่พอใจกับแนวคิดที่ว่าอาจให้ผลลัพธ์ที่ไม่ถูกต้องกับอินพุตเล็กน้อยบางส่วนซึ่งสามารถแก้ไขได้ หากคุณทำซ้ำA ′หลายครั้งและลงคะแนนเสียงส่วนใหญ่ความน่าจะเป็นข้อผิดพลาดจะลดลงอย่างรวดเร็วในจำนวนการวนซ้ำ ดังนั้นโดยการทำซ้ำเป็นจำนวนคงที่ของเวลาที่คุณจะได้รับข้อผิดพลาดน่าจะเป็นεจะต่ำกว่า1 / 2 256ซึ่งหมายความว่าโอกาสที่คุณใช้ในการป้อนข้อมูลxA′A′ε1/2256xเมื่ออัลกอริทึมแสดงผลคำตอบที่ไม่ถูกต้องจะหายไปเล็กน้อย (น้อยกว่าโอกาสที่จะเกิดฟ้าผ่าได้หลายครั้งติดต่อกัน) ยิ่งไปกว่านั้นด้วยสิ่งก่อสร้างที่ฉันให้ไว้ข้างต้นโอกาสที่ศัตรูจะสามารถหาอินพุตซึ่งA ′ให้คำตอบที่ผิดสามารถทำได้น้อยมากเนื่องจากต้องทำลายความปลอดภัยของแฮช SHA256 (ในทางเทคนิคสิ่งนี้ต้องใช้แบบจำลอง oracle แบบสุ่มเพื่อปรับให้เหมาะสมดังนั้นหมายความว่าAจะต้องเลือกให้เป็น "อิสระ" ของ SHA256 และไม่ใช่ฮาร์ดโค้ดในการคำนวณที่เกี่ยวข้องกับ SHA256 แต่อัลกอริธึมในโลกแห่งความเป็นจริงเกือบทั้งหมด .)xA′A
หากคุณต้องการทฤษฎีพื้นฐานที่แข็งแกร่งคุณสามารถย้ำΘ ( n )ครั้งและได้รับความน่าจะเป็นข้อผิดพลาดจะต่ำกว่า1 / 2 nที่nคือความยาวของอินพุตx ตอนนี้ส่วนของการnปัจจัยบิตที่'ช่วยให้คำตอบที่ไม่ถูกต้องเป็นอย่างเคร่งครัดน้อยกว่า1 / 2 n แต่มีอินพุตn- bit ที่เป็นไปได้เพียง2 nเท่านั้นและในแต่ละA Aนั้นถูกต้องหรือไม่ถูกต้องดังนั้นจึงตามมาว่าไม่มีอินพุตที่A ′A Θ(n)1/2nnxnA′1/2n2nnAA′ไม่ถูกต้อง: 'ถูกต้องเกี่ยวกับปัจจัยการผลิตทั้งหมดและนี้ถือโดยไม่มีเงื่อนไข หากAทำงานในเวลาt ( n )ดังนั้นA ′จะทำงานในเวลาΘ ( n ⋅ t ( n ) )ดังนั้นA ′จะช้ากว่าAเล็กน้อย แต่ไม่ช้าเกินไป นี่คือเนื้อหาของการพิสูจน์ของ Adleman ว่า BPP มีอยู่ใน P / poly เพื่อจุดประสงค์ในทางปฏิบัติสิ่งนี้อาจเกินความเป็นจริง แต่ถ้าคุณชอบพิสูจน์ที่สะอาดที่หลีกเลี่ยงการเข้ารหัสลับหรือถ้าคุณเข้าใกล้สิ่งนี้จากมุมมองของนักทฤษฎีคุณก็อาจชอบเวอร์ชั่นนี้มากกว่าA′At(n)A′Θ(n⋅t(n))A′A
สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับการพิจารณาทางทฤษฎีหลังและปัญหาเพิ่มเติมที่เราทราบถึงอัลกอริธึมแบบสุ่มที่มีประสิทธิภาพ แต่เราไม่ทราบอัลกอริทึมแบบกำหนดแน่นอนใด ๆ ที่เราสามารถพิสูจน์ได้ว่ามีประสิทธิภาพดู/cstheory//q/31195 / 5038
โดยสรุป: สำหรับปัญหาใด ๆ ที่เรารู้ว่าอัลกอริธึมแบบสุ่มที่มีประสิทธิภาพเราก็รู้ถึงอัลกอริธึมที่กำหนดขึ้นซึ่งน่าจะมีประสิทธิภาพในทางปฏิบัติ - แต่ในปัจจุบันเราไม่รู้วิธีพิสูจน์ว่ามันมีประสิทธิภาพ การตีความที่เป็นไปได้อย่างหนึ่งคือเราไม่สามารถพิสูจน์สิ่งต่าง ๆ เกี่ยวกับอัลกอริทึมได้ดีนัก