ฉันจะถือว่าสำหรับคอมพิวเตอร์ควอนตัมเพื่อดำเนินการขั้นตอนเดียวในการดำเนินการอัลกอริทึมของ Shor จะต้องผ่านหนึ่งอินพุต (เชิงตรรกะ) ผ่านประตูเหล่านั้นทั้งหมด
คุณเข้าใจผิดว่ากำลังวัดอะไรโดย 'การทำงานของประตู' คอมพิวเตอร์ควอนตัมจะไม่มี $2.9 \คูณ 10^7$ ประตู (และข้อมูลทั้งหมดถูกตั้งค่าผ่านชุดของประตูนั้นซ้ำ ๆ )
คอมพิวเตอร์ควอนตัมจะต้องดำเนินการทั้งหมดแทน $2.9 \คูณ 10^7$ การทำงานของประตู เห็นได้ชัดว่า ไม่จำเป็นต้องดำเนินการพร้อมกันทั้งหมด (และในความเป็นจริง ด้วย Shor's เราทำไม่ได้ เนื่องจากทฤษฎีบทที่ไม่มีการโคลนนิ่งห้ามไม่ให้สร้างสำเนาของ Qubits เพื่อส่งไปยังเกตอิสระ และด้วยเหตุผลเชิงปฏิบัติมากกว่านั้น อินพุตของการทำงานของเกตบางตัวขึ้นอยู่กับการทำงานของเกตก่อนหน้า)
สำหรับวิธีการเหล่านี้ $2.9 \คูณ 10^7$ การทำงานของเกทถูกแมปกับเกทฮาร์ดแวร์ เป็นไปได้ยากที่เราจะมี $2.9 \คูณ 10^7$ ประตูทางกายภาพ เกตของฮาร์ดแวร์บางตัวมีแนวโน้มที่จะถูกนำมาใช้ซ้ำหลายครั้งในระหว่างการคำนวณ (เช่นเดียวกับเมื่อคอมพิวเตอร์แบบดั้งเดิมดำเนินการกับ RSA เกตเดียวกันจะถูกใช้ซ้ำเพื่อใช้งานการดำเนินการคูณแบบโมดูลาร์ต่างๆ)
และถ้าคุณต้องการแก้ไขข้อผิดพลาดใดๆ ระหว่างประตู นั่นจะต้องใช้พื้นที่เพิ่มเติมและด้วยเหตุนี้จึงเพิ่มเวลาแฝงด้วย
ใช่ เรารู้; เดอะ $2.9 \คูณ 10^7$ รูปด้านบนแสดงถึงตรรกะของคิวบิต ซึ่งจะแปลเป็นจำนวนคิวบิตจริงที่มากขึ้น ขนาดของการเพิ่มขึ้นจะขึ้นอยู่กับโค้ดแก้ไขข้อผิดพลาดควอนตัมที่ใช้ (ซึ่งจะขึ้นอยู่กับอัตราข้อผิดพลาดที่แท้จริงของการดำเนินการคิวบิตจริง)
โดยเฉลี่ยแล้วคุณจะต้องเดาจำนวนเท่าใดสำหรับตัวเลขแฟคตอริ่งที่ใช้ใน RSA 2048 บิต
ด้วยความเป็นไปได้ที่สูงมาก หนึ่ง คอมพิวเตอร์ควอนตัมค้นหาคำสั่งของ $g$ โมดูโล $n$นั่นคือค่า $x$ ที่ไหน $g^x \equiv 1 \bmod n$. เว้นแต่คำสั่งของ $g$ ด้วยความเคารพทั้งคู่ $p$ และ $คิว$ (ปัจจัยสำคัญ) มีขนาดเล็กอย่างผิดปกติ (ซึ่งสามารถแสดงได้ว่าจะเกิดขึ้นด้วยความน่าจะเป็นเพียงเล็กน้อยเท่านั้น ถ้า $g$ ถูกสุ่มเลือก) ซึ่งค่าของ $x$ สามารถใช้เพื่อแยกตัวประกอบได้อย่างรวดเร็ว