อัลกอริทึมของ Grover (หรืออัลกอริธึมควอนตัมอื่น ๆ ที่เกี่ยวข้อง) ใช้กับฟังก์ชันแฮชที่อ่อนแอลงเท่านั้นหรือสามารถค้นหาเฉพาะอินพุตที่น่าเชื่อถือ (a-z, A-Z, 0-9 <=14 อักขระ) เพื่อลดพื้นที่การค้นหาหรือไม่
Grover เป็นวิธีการค้นหาทั่วไป - ไม่ทราบหรือสนใจว่าฟังก์ชันที่ได้รับตีความอินพุตอย่างไร หากคุณให้ฟังก์ชันที่แปลอินพุตเป็น "(a-z, A-Z, 0-9 <=14 ตัวอักษร)" ก็จะใช้งานได้โดยมีความซับซ้อนตามที่คาดไว้
ในทางกลับกัน คำถามที่เกี่ยวข้องอาจเป็น "การใช้ Quantum Computer สมเหตุสมผลหรือไม่ เมื่อเทียบกับฟาร์ม GPU หรือ ASIC บางตัว" ฉันแนะนำในอีกหลายสิบปีข้างหน้า (นั่นคือจนกว่าเทคโนโลยี Quantum Computer จะผ่านไปหลายชั่วอายุคน) วิธีการแบบคลาสสิกจะเร็วกว่าในกรณีนี้
เหตุผลบางประการสำหรับสิ่งนี้:
ค่าใช้จ่ายของการดำเนินการควอนตัมคอมพิวเตอร์คาดว่าจะเป็น มาก ใหญ่กว่าราคาของคลาสสิกที่เกี่ยวข้อง นี่เป็นปัจจัยคงที่เมื่อเปรียบเทียบทั้งสอง - อย่างไรก็ตาม หากปัจจัยคงที่นี้อาจเป็นพันล้านหรือล้านล้านก็ไม่ควรเพิกเฉย
การทำให้เป็นแบบขนาน - การค้นหาด้วยคอมพิวเตอร์แบบคลาสสิก (เช่นการค้นหานี้) สามารถทำแบบขนานได้อย่างสมบูรณ์แบบ (ซึ่งฟาร์ม GPU หรือชุดของ ASIC จะใช้ประโยชน์อย่างเต็มที่) ในทางตรงกันข้าม อัลกอริทึมของ Grover (หรือการค้นหา Quantum Oracle ที่คล้ายกัน) ไม่ใช่ - คุณเข้าใจแล้ว $n^2$ เร็วขึ้นถ้าคุณทำได้ $O(n)$ การดำเนินการต่อเนื่อง อย่างไรก็ตาม หากคุณรอนานขนาดนั้นไม่ได้และต้องการใช้ Quantum Computer หลายเครื่องเพื่อทำการค้นหา คุณจะไม่เข้าใจสิ่งนั้น $n^2$ เร่งความเร็วระหว่างพวกเขา ตัวอย่างเช่น หากต้องการค้นหาเร็วขึ้น 100 เท่า คุณต้องมีคอมพิวเตอร์ควอนตัม 10,000 เท่า
ใช้การค้นหาคีย์ซ้ำ ด้วยการคำนวณแบบคลาสสิก เราสามารถสร้างตารางสายรุ้งได้ การสร้างตารางนั้นใช้เวลานานพอๆ กับการค้นหาทั้งหมด อย่างไรก็ตาม เมื่อทำเสร็จแล้ว การค้นหารหัสผ่านที่แฮชหลายๆ ครั้งซ้ำๆ นั้นมีราคาถูก ในทางตรงกันข้าม การเรียกใช้อัลกอริทึมของ Grover จะทำการค้นหาด้วยรหัสผ่านเดียว - หากเราต้องการตรวจสอบแฮชอื่น เราจะต้องจ่ายเงินสำหรับการค้นหาทั้งหมดอีกครั้ง คุณสามารถสร้างตารางสายรุ้งบนคอมพิวเตอร์ควอนตัมได้แน่นอน อย่างไรก็ตาม ฉันไม่เชื่อว่าคุณจะได้รับความเร็ว Quantum และฉันไม่เคยได้ยินทางเลือกอื่นที่คุณจะได้รับความเร็ว Quantum
เมื่อเวลาผ่านไป เราสามารถคาดหวังได้อย่างสมเหตุสมผลว่าค่าใช้จ่ายของ Quantum Computer จะลดลง (และลดลงเร็วกว่าต้นทุนเปรียบเทียบของการคำนวณแบบคลาสสิก) และเราสามารถคาดหวังได้ว่า Quantum Computer จะทำงานเร็วขึ้นเมื่อเวลาผ่านไป ฉันไม่คาดหวังว่าเทรนด์ทั้งสองจะเกิดขึ้นในชั่วข้ามคืน ...
เพื่อให้ชัดเจน ฉันเข้าใจว่าฟังก์ชันแฮชเปล่าๆ (แม้จะมีเอาต์พุตที่ยาวโดยไม่จำเป็น เช่น SHA-512) เป็นวิธีที่แย่ในการจัดเก็บรหัสผ่านของผู้ใช้ และควรใช้ Argon2 หรือที่คล้ายกัน แต่ฉันคิดว่าความแข็งของหน่วยความจำและแง่มุมอื่นๆ อาจทำให้ คำถามที่กว้างเกินไปหรือคำตอบที่ใช้ได้ไม่กว้างนัก
ด้วยความเข้าใจในปัจจุบันของเราเกี่ยวกับการแลกเปลี่ยนโดยธรรมชาติภายใน Quantum Computer (ซึ่งอาจค่อนข้างเป็น off-base) ฟังก์ชันหน่วยความจำที่ยากจะค่อนข้างเจ็บปวดสำหรับ Quantum Computer ในการจัดการ การประเมินฟังก์ชันแฮชดังกล่าวดูเหมือนจะต้องใช้หน่วยความจำควอนตัมขนาดใหญ่ และ (เท่าที่เราทราบ) ซึ่งดูเหมือนจะมีราคาแพงมาก [1]
อัลกอริทึมของ Grover จะใช้งานได้ (อีกครั้ง มันไม่สนใจว่าฟังก์ชันแฮชคืออะไร); อย่างไรก็ตามดูเหมือนว่าจะค่อนข้างแพง
ดังนั้น หากการคาดเดาของเราถูกต้อง ฟังก์ชันแฮชของหน่วยความจำแบบแข็ง (Argon2) จะยิ่งทนทานต่อ Quantum Computing มากกว่าฟังก์ชันแฮชทั่วไป
[1]: ผมเชื่อว่าเหตุผลอย่างน้อยส่วนหนึ่งก็คือ ถ้าคุณมี Quantum Memory ขนาดใหญ่ และเข้าถึงหน่วยความจำนั้นด้วยตำแหน่งที่ยุ่งเหยิง คุณจะลงเอยด้วยการดำเนินการกับทุกเซลล์หน่วยความจำ (หรืออย่างน้อย ทุกๆ เซลล์ที่อาจ จ่าหน้าซองตามที่อยู่พัวพัน). ตรงกันข้ามกับหน่วยความจำแบบคลาสสิก คุณจะต้องเข้าถึงเซลล์ที่กำลังระบุอยู่เท่านั้น หากเรากำลังพูดถึงหน่วยความจำที่มีตำแหน่งที่สามารถระบุตำแหน่งได้ 1,000,000 ตำแหน่ง หมายความว่า Quantum Memory อาจต้องดำเนินการมากกว่า 1,000,000 เท่าเมื่อเทียบกับกรณีดั้งเดิม