Score:1

การบังคับใช้สูตรการเพิ่มจุด RFC-6090 ในพิกัดที่เป็นเนื้อเดียวกัน

ธง vu

ฉันกำลังอ้างอิง อาร์เอฟซี-6090 สำหรับการใช้งานการเข้ารหัสแบบวงรีโค้งเป็นงานอดิเรก

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

ในฐานะที่เป็นคนที่ไม่คุ้นเคยกับคณิตศาสตร์ขั้นสูง ฉันคิดว่ามีคนที่อยากรู้ ถาม: การบังคับใช้ของสูตรการเพิ่มจุดสองเท่าในส่วนที่ 3.1 คืออะไร ของ RFC-6090? สามารถทำงานร่วมกับ a) จุดโค้งที่ถูกต้องทั้งหมดที่ไม่ใช่จุดที่ไม่มีที่สิ้นสุด b) บนเส้นโค้งทั้งหมดที่สามารถแสดงเป็น $y^2 = x^3 + ขวาน + b$?

kelalaka avatar
in flag
ตกลง.ฉันเขียนคำตอบแต่บางส่วนคัดลอกมาจากคำตอบอื่นของฉัน ที่มาของแบบฟอร์มสั้นไม่ได้ดำเนินการ สามารถดูได้ [ในคำตอบนี้]
Score:1
ธง in

b) เส้นโค้งทั้งหมดที่สามารถแสดงเป็น $y^2 = x^3 + ขวาน + b$ ?

เส้นโค้งรูปไข่ของแบบฟอร์ม $y^2 = x^3 + ขวาน + b$ เรียกสั้นๆ ว่าสมการไวเออร์สตราส (ฟอร์ม) แบบสั้นนี้คือ ได้รับจาก (สมการไวเออร์สตราสทั่วไป) $$Y^2 + a_1 XY + a_3 Y = X^3 + a_2 X^2 + a_4 X + a_6$$ โดยการเปลี่ยนแปลงของตัวแปร (transformation) ถ้าลักษณะ $p$ ของสนาม $p>3$. เมื่อทำเช่นนี้ เราจะได้เส้นโค้งไอโซมอร์ฟิคและการดำเนินการสามารถย้อนกลับได้

การประยุกต์ใช้สูตรการเพิ่มจุดสองเท่าในส่วนที่ 3.1 คืออะไร ของ RFC-6090? สามารถทำงานกับจุดโค้งที่ถูกต้องทั้งหมดที่ไม่ใช่จุดสิ้นสุด

เลขคณิตที่มีพิกัดเชิงโครง

ในพิกัดโครงร่าง สมการของ $E$ เป็น

$$Y^2 Z = X^3 + AXZ^2 + BZ^3.$$

  • คะแนน $(X_1 : Y_1 : Z_1 )$ บน $E$ ตรงกับจุดที่พอดี $(X_1/Z_1,Y_1/Z_1)$ เมื่อไร $Z_1 \neq 0$

  • เมื่อไร $Z_1$ เรามีจุดที่ไม่มีที่สิ้นสุด $P_\infty = (0:1:0)$ ซึ่งไม่มีตัวแทนในพิกัดใกล้เคียง

  • ตรงข้าม (ลบ) ของจุด $(X_1 : Y_1 : Z_1 )$ เป็น $(X_1 : -Y_1 : Z_1 )$

อนุญาต $P_i = (X_i : Y_i : Z_i ), i = 1, 2$เป็นจุดบนเส้นโค้งวงรีที่เป็นเนื้อเดียวกัน

แล้ว $$(X_1 : Y_1 : Z_1 ) + (X_2 : Y_2 : Z_2 ) = (X_3 : Y_3 : Z_3 ).$$

สูตรจาก คู่มือการเข้ารหัสแบบ Elliptic และ Hyperelliptic Curve

  • สูตรการบวก $P_1 \neq \pm P_2$ ด้วย 12M+2S;

    • $A = Y_2 Z_1 â Y_1 Z_2,$

    • $B = X_2 Z_1 â X_1 Z_2,$

    • $C = A^2 Z_1 Z_2 â B^3 â 2B^2 X_1 Z_2,$ แล้ว

      $$X_3 = BC, \quad Y_3 = A(B^2 X_1 Z_2 â C) â B^3 Y_1Z_2, \quad Z_3 = B^3 Z_1 Z_2$$

  • สูตรทวีคูณ $P_1 = P_2$ ด้วย 7M+5S;

    • $A = a Z_1^2 + 3X_1^2,$

    • $B = Y_1 Z_1,$

    • $C = B X_1 Y_1,$

    • $D = A^2 â 8 C,$

      $$X_3 = 2BD, \quad Y_3 = A(4C â D) â 8Y_1^2 B^2 , \quad Z_3 = 8 B^3.$$

สูตร RF9060

RFC แสดงรหัสหลอกสำหรับการเพิ่มและการเสแสร้ง ( มีข้อผิดพลาดสำหรับเรื่องนี้ และนี่คือการแสดงเวอร์ชันที่แก้ไขแล้ว);

ให้ P1=(X1,Y1,Z1) และ P2=(X2,Y2,Z2) เป็นจุดบนเส้นโค้งวงรี และให้ u = Y2 * Z1 - Y1 * Z2 และ v = X2 * Z1 - X1 * Z2

เราสังเกตว่าจุด P1 และ P2 เท่ากันก็ต่อเมื่อ u และ v มีค่าเท่ากับศูนย์ทั้งคู่ มิฉะนั้น ถ้า P1 หรือ P2 มีค่าเท่ากับ จุดที่ไม่มีที่สิ้นสุด v เป็นศูนย์ และ u ไม่ใช่ศูนย์ (แต่กลับกัน ความหมายไม่ถือ).

 ถ้า P1 คือจุดที่อนันต์
    P3 = P2
 ถ้า P2 คือจุดที่อนันต์
    P3 = P1
 มิฉะนั้น ถ้า P1=-P2 เป็นจุดฉายภาพ
    P3 = (0,1,0)
 มิฉะนั้น ถ้า P1 ไม่เท่ากับ P2
    X3 = v * (Z2 * (Z1 * u^2 - 2 * X1 * v^2) - v^3)
    Y3 = Z2 * (3 * X1 * u * v^2 - Y1 * v^3 - Z1 * u^3) + u * v^3
    Z3 = v^3 * Z1 * Z2
 อื่น // P2 เท่ากับ P1, P3 = P1 * P1
     w = 3 * X1^2 + ก * Z1^2
    X3 = 2 * Y1 * Z1 * (w^2 - 8 * X1 * Y1^2 * Z1)
    Y3 = 4 * Y1^2 * Z1 * (3 * w * X1 - 2 * Y1^2 * Z1) - w^3
    Z3 = 8 * (Y1 * Z1)^3

ต้องใช้สมการเพื่อดูว่ากรณีพิเศษสำหรับ $P_\infty$ มันจำเป็น. และใช่ มันใช้ได้กับทุกจุดนอกเหนือจากนั้น $P_\infty$. ที่ถูกจัดการในสองขั้นตอนแรกของรหัสเทียม


หมายเหตุ 1: RFC นี้ใช้ ผลิตภัณฑ์ สำหรับจุดเสริมที่ต้องดูแล ไม่มีผลคูณในเส้นโค้งวงรี เรามีการบวกจุดและการคูณสเกลาร์ จุดกำลังสร้างกลุ่ม Abelian ภายใต้การบวกจุด และด้วยการคูณแบบสเกลาร์ปกติ เราสามารถมี Z-Module เท่านั้น

โน้ต 2: สูตร RFC6090 มีราคาเท่ากับ Handbook

หมายเหตุ 3: ทั้งสองสูตรได้รับการยืนยันด้วย SageMath และถูกต้องตามสูตรของ SageMath ในขณะที่ใช้การทดสอบ Curve25519 คุณสามารถเปลี่ยนสิ่งนี้ได้อย่างง่ายดายโดยใช้รหัสจาก นักประสาทวิทยา

หมายเหตุ 4: ลบกรณีพิเศษด้วย $P_\infty$ จากนั้นดูว่าผลลัพธ์ไม่ถูกต้อง (ส่วนใหญ่ล้มเหลวเนื่องจากผลลัพธ์ไม่ใช่จุดบนเส้นโค้ง)

โพสต์คำตอบ

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