Score:8

เหตุใดโปรโตคอลการเข้ารหัส Elliptic Curve จึงขึ้นอยู่กับเส้นโค้งคงที่

ธง in

ฉันกำลังเรียนรู้เกี่ยวกับ เอ็ด25519. มันขึ้นอยู่กับค่าเวทย์มนตร์มากมาย: เขตคำสั่งที่ จำกัด $2^{255}-19$, เส้นโค้งวงรีเฉพาะบนฟิลด์นั้น, จุดเฉพาะบนเส้นโค้งนั้น สิ่งนี้ตรงกันข้ามกับ Diffie-Hellman หรือ RSA

ทำไมถึงเป็นเช่นนั้น? และในทางกลับกัน เหตุใด DH จึงไม่แก้ไขจำนวนเฉพาะและตัวกำเนิด หรือแก้ไข RSA เช่น $n = pq$ ค่า?

ฉันสงสัยว่าในกรณีของ DH & RSA นั้นง่ายมากที่จะสร้างอินสแตนซ์ใหม่ของโปรโตคอล เรารู้มากเกี่ยวกับจำนวนเฉพาะ ดังนั้นจึงเป็นเรื่องง่ายที่จะสร้างจำนวนเฉพาะใหม่ และในทางกลับกัน หากเราแก้ไขจำนวนเฉพาะสำหรับอินสแตนซ์ทั้งหมดของโปรโตคอล เราจะสามารถวิเคราะห์สิ่งที่แย่ที่สุดและทำลายมันได้

ในกรณีของเส้นโค้งวงรีการหาเส้นโค้งและตัวสร้างนั้นไม่ง่ายอย่างนั้นหรือ

Score:8
ธง ng

เหตุผลที่ไม่แก้ไขเส้นโค้ง/กลุ่ม/อะไรก็ตามที่ต้องแก้ไขคือ ถ้ามันกระทบต่อความปลอดภัย กล่าวคือ ถ้า:

  1. มีการโจมตีด้วยการคำนวณล่วงหน้า – การโจมตีที่มีค่าใช้จ่าย $T$ ที่สามารถตัดจำหน่ายได้ $n$ ผู้ใช้เสียค่าใช้จ่ายอย่างมีประสิทธิภาพ $T/n$. สำหรับ $n\ประมาณ$ 1 พันล้านสิ่งนี้อาจเปลี่ยนแปลงการคำนวณต้นทุน/ผลประโยชน์

  2. เป็นไปได้ที่เนื้อหามาตรฐานที่เป็นอันตรายจะสร้างมาตรฐานให้กับเส้นโค้ง "อ่อนแอ"/กลุ่ม/อะไรก็ตาม เช่น ตัวลับๆ หรือตัวที่อ่อนแอกว่าตัว "สุ่ม" ไม่ทางใดก็ทางหนึ่ง

สิ่งเหล่านี้เป็นปัญหาสำหรับปัญหาหนักบางอย่าง เช่น ปัญหา LWE และ DH แบบจำกัดเขตข้อมูล ทั้งคู่ยอมรับการโจมตีด้วยการคำนวณล่วงหน้า เป็นต้น สำหรับ LWE สิ่งนี้ใช้เป็นเหตุผลในการไม่ได้มาตรฐาน "LWE Matrix $\mathbf{A}$".

ดังที่ได้กล่าวไปแล้ว การแก้ไขเส้นโค้งเฉพาะ/กลุ่ม/อะไรก็ตามอาจมีประโยชน์ คือ:

  1. คุณไม่จำเป็นต้องสร้างมันระหว่างโปรโตคอลอีกต่อไป ช่วยประหยัดประสิทธิภาพ
  2. คุณไม่จำเป็นต้องส่งอีกต่อไป (หรือสามารถส่งคำอธิบายสั้น ๆ ของจำนวนคงที่ของวัตถุมาตรฐาน) ประหยัดแบนด์วิดธ์บางส่วน
  3. คุณสามารถเพิ่มประสิทธิภาพการทำงานสำหรับเส้นโค้ง/กลุ่ม/อะไรก็ตาม ประหยัดประสิทธิภาพ
  4. มันยากกว่าที่จะเลือกเส้นโค้ง/กลุ่ม/อะไรก็ตามที่ "อ่อนแอ" โดยไม่ได้ตั้งใจ

สำหรับสาเหตุที่เส้นโค้ง 25519 ใช้รูปแบบเฉพาะนั้น ดูตัวอย่าง ทางโค้งที่ปลอดภัย หน้าสำหรับคำอธิบาย/การเปรียบเทียบคุณสมบัติของเส้นโค้งต่างๆ

สำหรับคำถามเหล่านี้:

ทำไม DH ไม่แก้ไขจำนวนเฉพาะ & ตัวกำเนิด

พวกเขาทำในบางโปรแกรม ต่อไปนี้คือรายการกลุ่ม DH ของฟิลด์จำกัดที่ใช้ใน TLS (รวมถึง 1.3) โปรดทราบว่าเราต้องระมัดระวังในเรื่องนี้แม้ว่าจะมีกลุ่ม "อ่อนแอ" ที่ได้มาตรฐาน ($\ประมาณ 512$ บิต) ที่ไม่มีใครจะใช้จริง การปรากฏตัวของพวกเขาในรายการกลุ่มมาตรฐานนี้นำไปสู่ การโจมตี Logjamโดยที่ใครก็ตามจะติดตั้งการโจมตีด้วยการคำนวณล่วงหน้ากับพวกเขา + รวมเข้ากับ "การโจมตีแบบลดระดับ" บางอย่าง

หรือการแก้ไข RSA กล่าวคือ $n=pq$ ค่า?

ไม่ชัดเจนว่าคุณจะใช้งานสิ่งนี้ได้อย่างไร เนื่องจากมีคีย์ส่วนตัวเพียงคีย์เดียวที่เชื่อมโยง ดังนั้นผู้ใช้ที่แตกต่างกันสองคนจึงไม่สามารถใช้คีย์เดียวได้ $n$ สำหรับการเข้ารหัส ในความเป็นจริงแม้ว่าจะใช้ $n, n'$ ที่มีปัจจัยร่วมกัน นำไปสู่การโจมตี (และบทความอีกฉบับของนาเดีย เฮนนิงเงอร์ ขุด P's และ Q's ของคุณ). ดังที่ได้กล่าวไปแล้ว มีแอปพลิเคชันพิเศษที่อาจเป็นประโยชน์ ดูตัวอย่าง บทความนี้เกี่ยวกับการสร้างโมดูลัส RSA แบบกระจาย สำหรับการอภิปรายเกี่ยวกับแอปพลิเคชัน

fgrieu avatar
ng flag
_"คุณไม่จำเป็นต้องสร้างมันระหว่างโปรโตคอลอีกต่อไป ช่วยประหยัดประสิทธิภาพ"_ เป็นเหตุผลที่สำคัญมาก: ฉันยังไม่เห็น _any_ อัลกอริทึมที่ง่ายและมีประสิทธิภาพในการสร้างเส้นโค้ง Elliptic ที่ปลอดภัย ด้วยอัลกอริทึมดังกล่าว _"คุณไม่จำเป็นต้องส่งอีกต่อไป"_ (พารามิเตอร์ของเส้นโค้ง) จะไม่เป็นปัญหา: เพียงแค่ส่งเมล็ดของ RNG ที่ใช้โดยอัลกอริทึมนี้เพื่อแสดงเส้นโค้ง
pe flag
Lenstra [ลองแล้ว](https://eprint.iacr.org/2015/647)
dave_thompson_085 avatar
cn flag
ก่อน 7919 สำหรับ TLS1.0-2 บางคนใช้กลุ่ม 'Oakley' ที่สร้างขึ้นสำหรับ IPsec/IKE (rfc2412 และ rfc3526) ซึ่งบางกลุ่มใช้ SSH ด้วย แต่กลุ่มที่เล็กที่สุดคือ 768 บิต (ซึ่ง Logjam ประเมินว่า 'เป็นไปได้' ที่จะทำลาย แต่ไม่ได้ทำจริง) Logjam กลุ่ม 512 บิตที่พบอย่างแพร่หลายนั้นเป็นค่าเริ่มต้นที่ Apache ให้มา ไม่ใช่มาตรฐานใดๆ
Score:3
ธง fr

เหตุผลทั่วไปที่คนทั่วไปใช้เส้นโค้งวงรีที่กำหนดไว้ล่วงหน้าแทนที่จะสร้างเส้นโค้งเหล่านี้คือประสิทธิภาพ การสร้างเส้นโค้งวงรีนั้นไม่ใช่เรื่องยากนัก แต่โดยทั่วไปแล้วการสร้าง a นั้นยาก ปลอดภัย เส้นโค้งวงรี และยิ่งกว่านั้น ยังค่อนข้างยากที่จะโน้มน้าวอีกฝ่ายว่าเส้นโค้งนั้นปลอดภัยบนแบนด์วิธที่จำกัดของโปรโตคอล เดอะ เว็บไซต์เซฟเคิร์ฟ อธิบายคุณลักษณะหลายอย่างที่ต้องการในเส้นโค้ง และอธิบายส่วนหนึ่งของการตัดสินใจของ Curve25519

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

ยิ่งไปกว่านั้น การใช้เส้นโค้งวงรีที่กำหนดไว้ล่วงหน้าหมายความว่าการเขียนการดำเนินการตามเวลาคงที่ทำได้ง่ายกว่ามาก สิ่งนี้สำคัญมากในโปรโตคอลออนไลน์เช่น TLS ซึ่งสามารถแสดงให้เห็นว่าการใช้งานแบบไม่คงที่ตามเวลาสามารถใช้ประโยชน์ได้ มันคือ เป็นไปได้ ในการเขียนการใช้เส้นโค้งวงรีแบบเวลาคงที่แบบทั่วไป แต่มันซับซ้อน และคนทั่วไปไม่ทำกัน

เป็นไปได้อย่างแน่นอนที่จะใช้กลุ่มคงที่ใน non-EC Diffie-Hellman TLS ทำสิ่งนี้และ SSH ทำเช่นกัน ตราบใดที่มีการเลือกรูปแบบที่เหมาะสมเป็นกลุ่มใหญ่เพียงพอ นั่นก็จะปลอดภัย การใช้กลุ่มคงที่ยังมีประสิทธิภาพมากกว่าในแง่ของแบนด์วิธของโปรโตคอล เนื่องจากไม่จำเป็นต้องส่งพารามิเตอร์

นอกจากนี้ยังเป็นไปได้ที่จะสร้างกลุ่มเขตข้อมูลจำกัดที่ปลอดภัยแบบสุ่ม ซึ่งเร็วกว่าการสร้างเส้นโค้งวงรีที่ปลอดภัยมาก แต่ก็ยังช้าพอที่คนโดยทั่วไปจะคำนวณพารามิเตอร์ล่วงหน้าแล้วใช้เป็นระยะเวลาหนึ่ง

สำหรับ RSA การใช้พารามิเตอร์ซ้ำมักจะไม่ปลอดภัย นอกจากนี้ ด้วยเหตุผลด้านประสิทธิภาพ คีย์ส่วนตัวมักประกอบด้วย $p$ และ $คิว$ซึ่งจะประนีประนอมคีย์ส่วนตัวของใครก็ตามที่แบ่งปันทันที $N$. แม้จะแบ่งปัน $N$ ไม่มีปัญหาด้านความปลอดภัยเพราะ $p$ และ $คิว$ ไม่สามารถเปิดเผยได้ ซึ่งจะมีประสิทธิภาพน้อยกว่าการสร้างพารามิเตอร์ใหม่ต่อผู้ใช้

โพสต์คำตอบ

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