Score:2

การแฮชรหัสผ่านหลังควอนตัมปลอดภัยหรือไม่

ธง az
Luc

คอมพิวเตอร์ปัจจุบันไม่สามารถทำลายรหัสผ่านที่แฮชไว้อย่างสมเหตุสมผลได้ เช่น อักขระที่เป็นตัวอักษรและตัวเลขคละกันที่สร้างด้วย CSPRNG 14 ตัว ($\ประมาณ$เอนโทรปี 80 บิต)

อัลกอริทึมของ Grover ใช้กับฟังก์ชันแฮชตามที่ฉันเข้าใจ (เช่น ในคำตอบนี้) หมายความว่าให้เอาต์พุต MD5 128 บิตใด ๆ มันสามารถค้นหาอินพุต (หรือการชนกันของมัน) ใน $\sqrt{2^{128}}=2^{64}$ การประเมินอัลกอริทึม ทำให้คอมพิวเตอร์มี qubits เพียงพอ หากคอมพิวเตอร์ควอนตัมสามารถประเมิน MD5 ได้เร็วพอ (หรือมีราคาถูกพอที่จะสร้างสำเนาเพียงพอ) สิ่งนี้จะทำให้ MD5 เสียหายโดยสิ้นเชิงไม่ว่ารหัสผ่านของผู้ใช้จะคาดเดาได้ยากเพียงใด

อย่างไรก็ตาม การค้นหาคีย์สุ่ม 256 บิตที่รันผ่านฟังก์ชันแฮช 256 บิต (หรือแรงกว่า) นั้นยังคงห่างไกลจากการเข้าถึง

จะเกิดอะไรขึ้นถ้าฟังก์ชันแฮชนั้นปลอดภัยหลังควอนตัม เช่น SHA-512 แต่การป้อนเป็นรหัสผ่าน? รู้จักอัลกอริทึมควอนตัมใดที่สามารถค้นหาอินพุตในการประเมินน้อยกว่าการค้นหากำลังเดรัจฉานแบบดั้งเดิม ($\frac{2^{80}}{2}$ โดยเฉลี่ยสำหรับตัวอย่างข้างต้น)? อัลกอริทึมของ Grover (หรืออัลกอริทึมควอนตัมอื่น ๆ ที่เกี่ยวข้อง) ใช้กับฟังก์ชันแฮชที่อ่อนแอลงเท่านั้นหรือสามารถค้นหาเฉพาะอินพุตที่น่าเชื่อถือ (a-z, A-Z, 0-9 <=14 อักขระ) เพื่อลดพื้นที่การค้นหาหรือไม่

เพื่อให้ชัดเจน ฉันเข้าใจว่าฟังก์ชันแฮชเปล่าๆ (แม้จะมีเอาต์พุตที่ยาวโดยไม่จำเป็น เช่น SHA-512) เป็นวิธีที่แย่ในการจัดเก็บรหัสผ่านของผู้ใช้ และควรใช้ Argon2 หรือที่คล้ายกัน แต่ฉันคิดว่าความแข็งของหน่วยความจำและแง่มุมอื่นๆ อาจทำให้ คำถามกว้างเกินไปหรือคำตอบที่ใช้ได้กว้างน้อยกว่า

Score:4
ธง my

อัลกอริทึมของ 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 เท่าเมื่อเทียบกับกรณีดั้งเดิม

fgrieu avatar
ng flag
สามารถใช้เหตุผลนั้นเพื่อสนับสนุน DSA ที่มีขนาดใหญ่ $p$ (เช่น 8192 บิต), 256 บิต $q$ และ Argon2 เป็นแฮช คาดว่าจะต้านทานการเพิ่มขึ้นของ CRQC (สมมุติฐาน) ได้นานกว่า ECDSA ด้วย secp256r1 และ SHA-256?
poncho avatar
my flag
@fgrieu: ด้วย DSA และ ECDSA คุณจะใช้ Shor's มากกว่า Grover's และ Shor's ไม่สนใจว่าแฮชคืออะไร ในทางกลับกัน จากสิ่งที่เรารู้เกี่ยวกับ Shor's ECDSA-P256 ดูเหมือนจะค่อนข้างง่ายกว่า DSA-8192 ส่วนใหญ่เป็นเพราะการดำเนินการเส้นโค้งวงรีน่าจะถูกกว่าการดำเนินการ mod p=8192 บิตที่สอดคล้องกัน (ไม่ใช่ว่า I' ต้องการถือว่า DSA-8192 เป็น Quantum Safe...)
az flag
Luc
ขอบคุณสำหรับคำตอบที่ยอดเยี่ยม! ส่วนการเร่งความเร็ว (สัญลักษณ์แสดงหัวข้อย่อยที่สอง) ฟังดูขัดกับสัญชาตญาณ แต่ที่จริงฉันได้ผลลัพธ์เดียวกันหากฉันทำมันออกมา สำหรับรุ่นหลัง: ด้วยคอมพิวเตอร์ควอนตัม (QC) บางเครื่องที่ดำเนินการ $2^{32}$ แต่ละส่วนแบ่งคือ $\frac{2^{32}}{QCs}$ และแต่ละหน่วยสามารถดำเนินการร่วมกันได้ใน $\sqrt{share} เวลา $สำหรับ QC 2 รายการ นั่นคือเวลา $2^{15.5}$ ในขณะที่แต่เดิมจะใช้เวลา QC 1 รายการ $2^{16}$ เวลา: เร็วขึ้นน้อยกว่า 2 ครั้งในขณะที่ใช้ QC จำนวนมากเป็น 2 เท่า ด้วย 8 QCs การเร่งความเร็วเพียง 2.8Ã รวมกันจนถึง 10,000 QCs ในที่สุดการเร่งความเร็วคือ 100Ã (QC พิเศษแต่ละรายการแทบไม่มีนัยสำคัญ)

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา