Score:7

เหตุใดจึงยังคงใช้เส้นโค้ง NIST

ธง in

ฉันค่อนข้างใหม่สำหรับโลกของ crypto (แต่เท่าที่คณิตศาสตร์ดำเนินไป ฉันคุ้นเคยกับการทำงานภายใน ฉันเคยไม่ค่อยใช้มันเพื่อความเป็นส่วนตัว แต่ตอนนี้ฉันใช้มันเพื่อหลายสิ่งหลายอย่าง)

อย่างไรก็ตามฉันกำลังดูที่ URL นี้, และแน่นอนว่าฉันสังเกตเห็นว่าเส้นโค้ง NIST ดูเหมือนจะมีจุดอ่อนมากมาย มากกว่าเส้นโค้งอื่นๆ เช่น E-521 ซึ่งตามที่ฉันเข้าใจ ได้รับการพิสูจน์ทางคณิตศาสตร์แล้วว่าปลอดภัยต่อการโจมตีส่วนใหญ่

จากนี้ฉันมีคำถามสองสามข้อที่ฉันหวังว่าจะมีคนอธิบายให้ฉันฟัง:

  • เหตุใด GPG จึงเสนอการเข้ารหัส NIST ถ้ามันปลอดภัยน้อยกว่าแบบอื่น ทำไมพวกเขาไม่เสนอทางเลือกที่ปลอดภัยที่สุด?

  • คีย์ GPG ของฉันอยู่ในหมวดหมู่ NIST ทั้งหมด ฉันควรเปลี่ยนหรือไม่ (อนึ่ง คีย์ย่อยการเซ็นชื่อของฉันแตกต่างกัน แต่ก็ยังมีช่องโหว่อยู่)

miraunpajaro avatar
in flag
@ผู้รักชาติ ขอบคุณ! คุณพูดถูก ฉันเปลี่ยนมัน ฉันคิดว่าตอนนี้ถูกต้องมากขึ้น ในความคิดเห็นแรกของคุณ นี่หมายความว่าเป็นการร้องเรียนทั่วไปใช่หรือไม่ นี่ไม่ควรเป็นประเด็นสำคัญสำหรับ มา gnupg กันเถอะ
poncho avatar
my flag
การโจมตี Curve25519 ที่รู้จักกันดีที่สุดนั้นง่ายกว่าการโจมตี P256 ที่รู้จักกันดีถึงสี่เท่า P256 เป็นตัวเลือกที่ 'ปลอดภัยน้อยกว่า' อย่างไร
dave_thompson_085 avatar
cn flag
ส่วนใหญ่หลอกลวง https://crypto.stackexchange.com/questions/52983/why-is-there-the-option-to-use-nist-p-256-in-gnupg https://crypto.stackexchange.com/questions /52859/why-is-c25519-in-the-gpg-expert-options https://security.stackexchange.com/questions/160311/ which-ecc-to-choose-with-gpg
cn flag
ที่เกี่ยวข้อง: https://crypto.stackexchange.com/q/44397/29574
Score:17
ธง cn

นี่เป็นคำถามที่กำลังท่องอยู่ในขอบเขตของเมตาดาต้า / สงครามการเมืองภายในชุมชนการเข้ารหัส

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 ปีข้างหน้า หรืออาจมากกว่านั้น แต่ คอมพิวเตอร์ควอนตัม อาจเปลี่ยนแปลงเรื่องราวนี้ในอีกไม่กี่ปีข้างหน้า พวกเขาจะมีประสิทธิภาพเท่าที่เราคาดหวังให้แก้ปัญหาลอการิทึมแยกในทางปฏิบัติ

poncho avatar
my flag
มีคอมพิวเตอร์ควอนตัม "ของจริง" อยู่เครื่องหนึ่ง (โดยที่ "ของจริง" หมายถึง 'ใหญ่และเชื่อถือได้มากพอที่จะเรียกใช้อัลกอริทึมของ Shor ในขนาดของเส้นโค้งที่เราใช้) เส้นโค้งวงรีทั้งหมดจะไม่ปลอดภัย (ข้อยกเว้น: วิธีที่ใช้ไอโซจินีเหนือเอกพจน์ ซึ่งทำงานแตกต่างไปจากเดิมอย่างสิ้นเชิง)
cn flag
ใช่ นั่นคือความคาดหวังที่ฉันพูดถึง แต่ฉันสงสัยว่าเราจะสามารถมี QC ที่ "เสถียร" เพียงพอที่จะบรรลุสิ่งนี้ได้หรือไม่ ^^'
miraunpajaro avatar
in flag
ดีมาก! คำถามเกี่ยวกับคอมพิวเตอร์ควอนตัม เอาล่ะ มีขอบเขตที่ต่ำกว่าว่าต้องใช้พลังงานเท่าใดในการบังคับเดรัจฉาน ecc algos ขอบเขตเหล่านี้ใช้กับควอนตัมคอมพิวติ้งหรือไม่? ฉันเดาว่าไม่ แต่ idk
cn flag
ไม่ อัลโก ECC ใด ๆ (ที่ไม่ได้อิงตาม isogney) ถูกทำลายโดยคอมพิวเตอร์ควอนตัมนอกจากนี้ คุณอาจสับสนกับ [ขอบเขตที่มีชื่อเสียง](https://crypto.stackexchange.com/a/1160/29574) เกี่ยวกับพลังงานที่ต้องใช้ในการบังคับคีย์ 256 บิต แต่นั่นสำหรับอัลกอริทึมสมมาตร ไม่ใช่ อี.ซี.ซี.
Mark avatar
ng flag
@Lery จุดสำคัญคือจริง ๆ แล้วมันเป็นการบังคับอย่างดุร้ายในขณะที่ QC ที่ใช้งานได้ช่วยให้ทำได้ดีกว่าการใช้กำลังดุร้ายกับ ECC
miraunpajaro avatar
in flag
อาห์ ฉันเห็น และการเข้ารหัสแบบสมมาตรนั้นต้านทานควอนตัมได้ ฉันเข้าใจแล้ว
miraunpajaro avatar
in flag
@Mark คุณช่วยอธิบายเพิ่มเติมได้ไหม อย่างไรกันแน่?
Mark avatar
ng flag
@miraunpajaro ถ้ามีใครดุร้ายบังคับ ECC มันจะใช้เวลา $\Theta(2^\lambda)$ (โดยพื้นฐานแล้วตามคำจำกัดความ) เทคนิคทั่วไปในการคำนวณควอนตัม (อัลกอริทึมของ Grover) มักจะให้คุณลดขนาดลงเป็น $\Theta(2^{\lambda/2})$ - คุณสามารถหยุดสิ่งนี้ได้ด้วยการเพิ่มขนาดคีย์เป็นสองเท่า ปัญหาของ ECC คือมีอัลกอริทึมของ Schor อยู่ ซึ่งทำให้ความซับซ้อนของ DLOG (ในกลุ่มขนาด $O(2^\lambda)$) ลดลงเหลือเวลาพหุนาม (ควอนตัม) เช่น $\lambda^{O(1)}$.
Mark avatar
ng flag
ค่าใช้จ่ายด้านพลังงานโดยพื้นฐานแล้วระบุว่า "คุณจ่ายพลังงานขั้นต่ำสำหรับแต่ละบิตของพลังงานที่ถูกลบ" นี่อาจหมายความว่าไม่มีอะนาล็อกควอนตัม (การคำนวณแบบควอนตัมจะ "ย้อนกลับได้" จนกว่าคุณจะวัด) แต่คุณสามารถจำกัดปริมาณพลังงานเพื่อแก้ปัญหา DLOG เหนือกลุ่มทั่วไป (ซึ่งมีขอบเขตต่ำกว่า $\ Omega(2^{\lambda/2})$ ในการตั้งค่าแบบคลาสสิก --- ขอบเขตนั้นไม่เฉพาะเจาะจงกับการเข้ารหัสแบบสมมาตร
poncho avatar
my flag
@Mark: จริง ๆ แล้ว มีเทคนิคทั่วไปในการคำนวณแบบดั้งเดิมที่ทำลาย ECC ในเวลา $\Theta(2^{\lambda/2})$ - การโจมตีเหล่านี้อาศัยโครงสร้างกลุ่มของ ECC
Mark avatar
ng flag
@poncho ใช่ นั่นคือเหตุผลที่ฉันเขียน $\Omega(2^{\lambda/2})$ ไม่ใช่ $\omega(2^{\lambda/2})$ ฉันเขียน $\Omega(\cdot)$ แทนที่จะเป็น $\Theta(\cdot)$ เพื่อเน้นว่าอาร์กิวเมนต์นั้นใส่ใจเกี่ยวกับ *ขอบเขตล่าง* โดยเฉพาะ (และข้อเท็จจริงที่ว่าขอบเขตบนที่ตรงกันนั้นไม่สำคัญ) บางที นี่ค่อนข้างอวดรู้

โพสต์คำตอบ

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