Score:3

ปลอดภัยหรือไม่ที่จะเปิดเผยจุด EC โดยพลการคูณด้วยรหัสลับ

ธง jp

เรามีกลุ่ม EC ลำดับหลัก จำเป็นต้องดำเนินการ (เรียงลำดับ) โปรโตคอล DH ในขณะที่คีย์เป็นแบบถาวร ไม่ใช่ nonce (คีย์ชั่วคราวแบบใช้ครั้งเดียว)

ดังนั้นเราจึงได้รับองค์ประกอบกลุ่มตามอำเภอใจ (จุด EC) จากบุคคลที่ไม่น่าเชื่อถือ และเปิดเผยมันคูณด้วยรหัสลับ

การทำเช่นนั้นปลอดภัยเสมอหรือไม่? ฉันหมายความว่า ผู้โจมตีสามารถสร้างจุด EC เพื่อดึงข้อมูลบางอย่างเกี่ยวกับคีย์ได้หรือไม่ เรามั่นใจว่าจุด EC นั้นอยู่บนเส้นโค้ง และอย่างที่ฉันได้กล่าวไป มันคือกลุ่มลำดับหลัก

Maarten Bodewes avatar
in flag
ฉันคิดว่าคุณสามารถสรุปสิ่งนี้ได้จากความจริงที่ว่า DH คงที่ชั่วคราวจะถูกทำลายอย่างมากหากไม่เป็นเช่นนั้น ถ้าฉันจำไม่ผิด ไม่มีการตรวจสอบคีย์สาธารณะชั่วคราวอื่นนอกจากที่อยู่บนเส้นโค้ง
jp flag
@MaartenBodewes: โดยปกติแล้วใน DH เพียร์ไม่มีแรงจูงใจในการแยก nonce ของคุณ
fgrieu avatar
ng flag
@valdo: คำอธิบายของคุณขาดรายละเอียดที่สำคัญสองประการ: ฝ่ายตรงข้ามจะสามารถดำเนินการค้นหาจำนวนมาก (เช่น $2^{24}$) ได้หรือไม่ และสิ่งเหล่านี้จะเป็นข้อความค้นหา _iterated_ หรือไม่ นั่นสร้างความแตกต่าง เนื่องจาก $k$ เคียวรีที่วนซ้ำทำให้หนึ่งคำนวณ $(d^{k+1})\,G$ โดยที่ $d$ เป็นคีย์ส่วนตัว และ $d\,G$ เป็นคีย์สาธารณะที่รู้จัก ในขณะที่ $k\ge1$ ข้อความค้นหาที่สร้างไว้ล่วงหน้าจะอนุญาตให้คำนวณ $(d^2)\,G$ แต่ไม่ใช่ $(d^j)\,G$ สำหรับ $j\ge3$ โดยไม่คำนึงถึง $k$ โดยอิสระ: หากผลลัพธ์ของ DH (ก่อนฟังก์ชันการหาค่าคีย์) เปิดเผยต่อสาธารณะ ศัตรูใน DH ชั่วคราวก็จะอยู่ในตำแหน่งที่คุณอธิบาย
jp flag
@fgrieu: ใช่และใช่ ดังนั้นฝ่ายตรงข้ามสามารถคำนวณ `(d^n)G` สำหรับกำลัง `n` ตามอำเภอใจได้อย่างง่ายดาย สิ่งที่แตกต่างมันจะทำให้? สิ่งนี้ทำให้ฝ่ายตรงข้ามสามารถดึงข้อมูลใด ๆ เกี่ยวกับกุญแจได้หรือไม่?
fgrieu avatar
ng flag
@valdo: ถ้า $k$ แบ่ง $p-1$ และฝ่ายตรงข้ามมี $G, d\,G, (d^k)\,G$ จากนั้นตามที่ฉันอ่านบทสรุปของ _Security Analysis ของ Jung Hee Cheon ปัญหา Diffie-Hellman ที่แข็งแกร่ง_ (ใน [การดำเนินการของ Eurocrypt 2006](https://doi.org/10.1007/11761679_1)) มีการโจมตี $\sqrt k$ เร็วกว่า Baby Step/Giant Step เพื่อกู้คืน $d$ . ในบทสรุป การโจมตีต้องใช้หน่วยความจำมากเกินความจำเป็น แต่ BSGS ก็เช่นกัน แต่การค้นหาการชนกันก็แก้ปัญหานั้นและอนุญาตให้มีการกระจาย จึงจะสามารถนำไปใช้ได้จริง หมายเหตุ: ฉันควร _not_ ได้รับเครดิตสำหรับแนวคิดนี้สำหรับคำถามนี้
jp flag
@MaartenBodewes: ใช่ แต่ขึ้นอยู่กับว่าคุณหมายถึงอะไรโดย "หัก" จุดประสงค์หลักของ AFAIK DH ไม่ได้เกี่ยวกับการปกป้องรหัสลับ แต่เกี่ยวกับการอนุมานความลับที่แบ่งปันกับกลุ่มความร่วมมือผ่านช่องทางการสื่อสารสาธารณะใช่ไหม
Maarten Bodewes avatar
in flag
เราขอใช้คีย์ส่วนตัว "(ชั่วคราว / คงที่) แทน "nonce" หรือ "secret key" ได้ไหม คำศัพท์เหล่านั้นทำให้น้ำขุ่นมัว ในขณะที่เรากำลังดำเนินการอยู่ ผลที่ได้คือ "ความลับที่ใช้ร่วมกัน" หรือ "คีย์ลับที่ได้มา" "หลังจากใช้ KDF สำหรับ *คงที่* DH แน่นอนว่าทั้งหมดเกี่ยวกับการปกป้องคีย์ส่วนตัว หากคุณมีคีย์ส่วนตัว คุณจะเปิดเผยความลับที่ใช้ร่วมกันด้วย เพราะคีย์สาธารณะ (หรือประเด็นคีย์สาธารณะ) ควรได้รับการพิจารณา สาธารณะ หากใช้สำหรับการพิสูจน์ตัวตนของฝ่ายหนึ่ง - ทั่วไปใน DH แบบคงที่ชั่วคราว - การรั่วไหลของคีย์ส่วนตัวแบบคงที่จะทำลายความถูกต้องนั้น
jp flag
@fgrieu: ขอบคุณมาก! นี่เป็นจุดที่ยอดเยี่ยม ดีแล้วที่รู้. ฉันเชื่อว่าในกรณีเฉพาะของฉันนี้ยังคงใช้ได้ ในทางปฏิบัติแล้ว ปฏิปักษ์สามารถเรียกใช้โปรโตคอลนี้ได้หลายล้านครั้ง อาจถึงพันล้าน แต่ไม่ใช่ล้านล้าน เรากำลังพูดถึง p ลำดับของ 2^256 ดังนั้นความซับซ้อนของการโจมตีจึงลดลงประมาณ 30/2 = 15 บิต จาก 128 บิตเป็น 113 บิต ยังดีเพียงพอสำหรับกรณีเฉพาะของเรา
fgrieu avatar
ng flag
@valdo: คุณจะสนใจข้อมูล [ที่นั่น](https://chat.stackexchange.com/transcript/message/59152377#59152377) (และในนั้นก็คือ /arch/msg/cfrg/YDVS5Trpr6suig_VCFEOH6SOn8Q/)). ฉันได้รับส่วนใหญ่เป็นการยืนยันสิ่งที่ฉันสงสัยข้างต้น แต่ฉันอยู่ไกลจากเขตสบาย ๆ ของฉันเกินกว่าจะเขียนคำตอบ
Score:2
ธง kr

สมมติว่าโดย "คำสั่งหลัก" คุณหมายถึง "คำสั่งหลัก" สิ่งนี้เรียกว่าปัญหา Diffie-Hellman แบบคงที่ และมีการโจมตีที่ทราบกันดีอยู่บ้าง สิ่งสำคัญที่ต้องพิจารณาจากด้านบนของหัวของฉันคือ:

  • ชอน DLP พร้อมอินพุตเสริม โจมตี: มีหลายตัวแปร แต่ตัวอย่างเช่นถ้าลำดับความสำคัญ $p$ เส้นโค้งวงรีของคุณเป็นไปตามนั้น $d$ เป็นตัวหารของ $p-1$จากนั้นผู้โจมตีทำให้ มากมาย แบบสอบถามสามารถแก้ปัญหาการบันทึกแบบไม่ต่อเนื่องได้ทันเวลา $\widetilde{O}(\sqrt{p/d} + \sqrt{d})$ซึ่งในกรณีที่เลวร้ายที่สุด $d = \Theta(p^{1/2})$ เป็น $\widetilde{O}(p^{1/4})$. โดยหลักการแล้วสิ่งนี้อาจค่อนข้างแย่ แต่มีเหตุผลหลายประการที่ทำให้การโจมตีไม่คุกคามอย่างมากในการตั้งค่านี้ ประการแรก เนื่องจากความต้องการหน่วยความจำของการโจมตีและค่าส่วนใหญ่ของ $p$ จะค่อนข้างไกลจากกรณีที่เลวร้ายที่สุด เป็นไปได้ยากที่จะติดตั้งในทางปฏิบัติในสถานการณ์ส่วนใหญ่ ประการที่สองถ้า $\alpha$ เป็นรหัสลับ ผู้โจมตีจำเป็นต้องได้รับทั้งสองอย่าง $\อัลฟ่า G$ และ $\alpha^d G$ สำหรับ $G$ ตัวสร้างกลุ่ม และดูเหมือนว่าจะเป็นวิธีเดียวที่จะทำเช่นนั้นได้ $d$ แบบสอบถามแบบปรับเปลี่ยนตามลำดับ $G \to \alpha G \to \alpha^2 G \to \cdots \to \alpha^d G$. นี่เป็นสิ่งที่คาดหวังอย่างมากจาก oracle และเนื่องจากต้องใช้เวลา $O(d)$สิ่งนี้จะลดค่าที่เหมาะสมที่สุด $d$ ถึง $\Theta(p^{1/3})$ และเพิ่มความซับซ้อนของผลลัพธ์เป็น $\widetilde{O}(p^{1/3})$ (ขอย้ำอีกครั้งว่า $p-1$ มีแบบฟอร์มที่กำหนด) มีการตั้งค่าไม่มากนักที่ oracle จะตอบ $2^{85}$ สอบถามจากฝ่ายตรงข้าม นี่คือเหตุผลที่การโจมตี Cheon มักจะมีความเกี่ยวข้องมากกว่าในการตั้งค่าที่จัดกลุ่มองค์ประกอบในแบบฟอร์ม $\alpha^j G$ พร้อมใช้งานในรูปแบบคีย์สาธารณะ แทนที่จะได้รับโดยใช้แบบสอบถามตามลำดับ

  • เกรนเจอร์ เขตข้อมูลส่วนขยาย โจมตีถ้าคุณบังเอิญใช้เส้นโค้งเหนือฟิลด์ส่วนขยายของระดับ $\geq 3$ (ซึ่งส่วนใหญ่มักจะไม่เป็นเช่นนั้น)


ขอบคุณ @fgrieu ที่ชี้ให้เห็นอย่างถูกต้องว่าความคิดเห็นหลายข้อที่ฉันทำเกี่ยวกับเรื่องนี้ไม่ถูกต้อง และยังชี้ไปที่ การอภิปรายที่เกี่ยวข้อง ในรายชื่อผู้รับจดหมายของ IETF

fgrieu avatar
ng flag
ฉันไม่เห็นว่าทำไมการโจมตี Cheon ที่คุณพูดถึงถึงใช้ไม่ได้ผลในระดับหนึ่ง เมื่อคำถามใช้การสืบค้นซ้ำ และ $p-1$ มีปัจจัยเฉพาะในระดับปานกลาง
jp flag
@fgrieu: ในกรณีเฉพาะของฉัน จำนวนข้อความค้นหาที่มากเกินไปนั้นใช้ไม่ได้จริง อย่างที่ฉันพูด ขอบเขตบนของจำนวนข้อความค้นหาคือลำดับหนึ่งล้าน
jp flag
ป.ล. เพื่อให้เป็นรูปธรรม: เรามีแอปพลิเคชันที่เรียกว่า "ปลั๊กอิน" ปลั๊กอินนี้ไม่สามารถเข้าถึงคีย์ได้โดยตรง แต่เราอนุญาตให้รับอิมเมจของมันได้ (k*G) เมื่อเร็ว ๆ นี้เราตัดสินใจที่จะอนุญาตให้ได้รับ (k*P) ในขณะที่ P เป็นองค์ประกอบกลุ่มตามอำเภอใจ รันไทม์ของปลั๊กอินมีจำกัด (เช่น ไม่สามารถรันวันได้) ผู้ใช้สามารถดึงข้อมูลใดๆ ก็ได้หากต้องการ ดังนั้นจึงเป็นเรื่องของการปกป้องผู้ใช้จากปลั๊กอินที่เป็นอันตราย
fgrieu avatar
ng flag
@valdo: ฉันเข้าใจแล้ว แม้ว่าคุณอาจเพิ่งเห็น[ความคิดเห็นของฉันด้านบน](https://crypto.stackexchange.com/posts/comments/206590)เมื่อเร็วๆ นี้ แต่ก็เก่าก่อน [อันนี้คุณทำ](https://crypto.stackexchange .com/posts/comments/206603) ชี้แจงจำนวนคำถามที่ฝ่ายตรงข้ามสามารถทำได้

โพสต์คำตอบ

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