นี่เป็นคำถามที่กำลังท่องอยู่ในขอบเขตของเมตาดาต้า / สงครามการเมืองภายในชุมชนการเข้ารหัส
SafeCurves เป็นแหล่งข้อมูลที่ดี แต่ก็เป็นเช่นนั้น มาก แสดงความคิดเห็นเกี่ยวกับความหมายของคำว่า "ปลอดภัย"
ตัวอย่างเช่น secp256k1
เส้นโค้งที่ Bitcoin และ Ethereum ใช้เพื่อรับประกันความปลอดภัยนั้นถือว่า "ไม่ปลอดภัย" โดยทีม SafeCurves ในขณะที่ปัจจุบันมี "bug Bounty" มากกว่า 1,000 B$ ในรูปแบบของ BTC และ ETH ที่อาจถูกแฮ็กหากคุณทำได้ ทำลายมัน...
ไม่ ไม่ใช่เพราะ SafeCurves บอกว่าบางอย่างไม่ใช่ "ปลอดภัย“นั่นมันหมายความว่าไง”แตกหัก" เส้นโค้ง NIST น่าจะดีกว่าแน่นอน แต่พวกมันยังคงทำงานและทำหน้าที่ของมัน และ (เท่าที่เราทราบ) ไม่มีการโจมตีที่มีประสิทธิภาพและใช้งานได้จริงกับพวกมันที่จะคุกคามระบบที่กำลังใช้งานพวกมัน ตราบใดที่ นำไปปฏิบัติอย่าง "ถูกต้อง"...
ซึ่งหมายความว่า พวกมันไม่แตกและฉันจะไม่พูดว่ามันไม่ "ปลอดภัย" สำหรับการใช้งานในปี 2021 เป็นการส่วนตัว แต่ถ้าฉันกำลังออกแบบระบบใหม่ที่ฉันสามารถเลือกกลไกข้อตกลงที่สำคัญหรืออัลกอริทึมลายเซ็น สิ่งเหล่านี้ก็ไม่ใช่ตัวเลือกแรกของฉันเช่นกัน
ปัญหาใหญ่เมื่อคุณทำงานด้านการพัฒนาซอฟต์แวร์ (และฮาร์ดแวร์) คือ "การปฏิบัติตามข้อกำหนด" และ NIST เป็นผู้ออก "มาตรฐาน" ที่ถือเป็นจอกศักดิ์สิทธิ์ในโลกของการปฏิบัติตามกฎระเบียบ ฉันเกรงว่า
ดังนั้น ในขณะที่พวกเขากำลังทำงานกับฉบับร่างใหม่ (เช่น ร่างสำหรับ FIPS 186-5 ขณะนี้รวม Ed25519 เป็นอัลกอริทึมลายเซ็น) ที่มีเส้นโค้ง "ทันสมัย" มากกว่า พวกเขายังไม่ได้อัปเดตคำแนะนำและมาตรฐานของพวกเขา และเนื่องจากหลายหน่วยงานดังกล่าวได้รับคำสั่งให้พึ่งพาคำแนะนำเก่าที่ดีเช่นเส้นโค้ง P-256
ความเข้ากันได้ยังเป็นปัญหาใหญ่ ตัวอย่างเช่น เส้นโค้ง NIST P-256 ได้รับการสนับสนุนโดย Web Crypto API ซึ่งควรเป็นแบบเวลาคงที่และ "ปลอดภัย" (ในความหมาย "เราไม่ทราบว่ามีการโจมตีที่มีประสิทธิภาพและใช้งานได้จริง") ในขณะเดียวกัน Curve25519 ที่ทันสมัยกว่านั้นถือว่าปลอดภัยกว่าและมีแนวโน้มที่จะเกิดข้อผิดพลาดในการใช้งานน้อยกว่า P-256 แต่ยังไม่รองรับโดย Web Crypto API ดังนั้น ในการทำ JavaScript โดยใช้ ECC คุณควรใช้ P-256 ดีกว่า Curve25519 ในตอนนี้ (หรือ WASM แต่นั่นเป็นหัวข้ออื่น)
นอกจากนี้ สิ่งสำคัญคือต้องสังเกตว่า GnuPG กำลังติดตามไฟล์ ข้อมูลจำเพาะของ OpenPGP และพยายามที่จะเป็นเครื่องมือที่ใช้ร่วมกันได้อย่างกว้างขวางและทำงานร่วมกันได้ ด้วยเหตุนี้จึงรองรับโครงร่างที่แตกต่างกันมากมาย ซึ่งบางอันก็เก่ากว่าอันอื่น บางอันก็ใช้มากหรือน้อย
มีฉบับร่างที่รวมถึงการสนับสนุน Ed25519 และ X25519 ใน PGP ที่กำลังเปิดอยู่และได้รับการดำเนินการอย่างแข็งขันในช่วงไม่กี่ปีที่ผ่านมา:
ปัญหาความเข้ากันได้แบบเดียวกันนี้เกิดขึ้นกับ PGP ด้วยเช่นกัน หากคุณต้องการให้ผู้อื่นใช้ PGP สื่อสารกับคนอื่นได้ง่าย วิธีที่ดีที่สุดคือใช้สิ่งที่คนอื่นใช้/สนับสนุนอยู่
ดังนั้น PGP จะไปถึงจุดหนึ่ง แต่มันเป็นกระบวนการที่ช้าและตราบใดที่เส้นโค้งและมาตรฐานเก่าเหล่านี้ไม่สามารถใช้งานได้จริง (หรือมีความเสี่ยงที่จะถูกทำลาย) กระบวนการที่ช้านี้จะไม่เร่งความเร็ว
ตอนนี้ คุณควรเปลี่ยนคีย์ PGP ของคุณหรือไม่ หากคุณใช้ P-256 หรือเส้นโค้งอื่นที่มี "ราคาสำหรับ rho" สูงกว่า 2^100 ในรายการนั้น: https://safecurves.cr.yp.to/rho.html ?
ฉันจะบอกว่า "ไม่" คุณไม่จำเป็นต้องกังวลในตอนนี้ อย่างน้อยอีก 5 ปีข้างหน้า หรืออาจมากกว่านั้น แต่ คอมพิวเตอร์ควอนตัม อาจเปลี่ยนแปลงเรื่องราวนี้ในอีกไม่กี่ปีข้างหน้า พวกเขาจะมีประสิทธิภาพเท่าที่เราคาดหวังให้แก้ปัญหาลอการิทึมแยกในทางปฏิบัติ