ขณะนี้ฉันกำลังเผชิญกับสถานการณ์ที่มีคู่คีย์ Ed448 (คีย์ส่วนตัว + คีย์สาธารณะ) และระบบควรได้รับการขยายโดยการดำเนินการ Diffie-Hellman (ECDH) ก่อนอื่นให้ฉันสรุปสิ่งที่ฉันเข้าใจจนถึงตอนนี้
เอ็ด448: เป็นอัลกอริธึมลายเซ็นดิจิทัลบน edwards448
X448: ฟังก์ชัน Diffie-Hellman สร้างสำหรับ Curve448 หรือไม่
Curve448: เป็นเส้นโค้งวงรีในรูปแบบ Montgomery ตามที่ระบุไว้ใน RFC7748.
เอ็ดเวิร์ด448: เป็นเส้นโค้งวงรีซึ่งสัมพันธ์กับ Curve448 โดยแผนที่ระบุใน RFC7748.
สำหรับ Curve25519 ฉันอ่านไฟล์ Curve25519 มากกว่า Ed25519 สำหรับการแลกเปลี่ยนคีย์ ทำไม และสำหรับฉันดูเหมือนว่าเป็นไปได้ที่จะแปลงรหัสสาธารณะ Ed25519 ที่มีอยู่เป็นรหัส X25519 โดยใช้แผนที่ที่กำหนด อย่างใดฉันไม่คุ้นเคยกับคณิตศาสตร์ทั้งหมดที่ใช้ที่นี่ หลังจากอ่านเพิ่มเติมฉันพบ "ความเท่าเทียมกันแบบสองเหตุผล" หมายถึงอะไรในบริบทการเข้ารหัส ซึ่งให้ข้อมูลเชิงลึกเพิ่มเติมแก่ฉัน จากนั้นฉันก็อ่าน RFC7748 อีกครั้งและเห็นว่าการสมมูลแบบคู่ขนานนั้นเป็นจริงสำหรับ Curve448 เช่นกัน นอกจากนี้ยังมีคำจำกัดความ "edwards448" ซึ่งแสดงแผนที่ระหว่างจุดโค้ง Montgomery และ Edwards ด้วย แผนที่ที่จะใช้ถูกกำหนดเป็น:
$$
(u, v) = (\frac{y^2}{x^2}, \frac{(2 - x^2 - y^2)*y}{x^3})
$$
หากฉันเข้าใจการอ้างอิงข้างต้นอย่างถูกต้อง เราควรจะแปลงรหัสสาธารณะเป็นพิกัดที่จะใช้ในฟังก์ชัน X448 ได้ ยกเว้นในกรณีที่ $x$ จากสมการข้างต้นเป็น 0 จึงไม่สามารถใช้แผนที่ได้และไม่มีการแปลงใดๆ นอกจากนี้บทที่เกี่ยวข้องกับ Curve448 ใน Elliptic Curve Cryptographx Ecc นำฉันไปสู่ทิศทางเดียวกันที่อาจเป็นไปได้ที่จะเปลี่ยนเนื้อหาสำคัญที่มีอยู่แล้วนำมาใช้ใหม่ในภายหลังสำหรับ X448 หากฉันเข้าใจถูกต้อง คีย์ส่วนตัวใน ECC จะเป็นจำนวนเต็มแทนที่จะเป็น "จุดโค้ง"
ตอนนี้ฉันอยากรู้ว่ามันเป็นไปได้จริงๆ ไหมที่จะแปลงคู่คีย์ที่มีอยู่ให้สามารถนำมาใช้ซ้ำได้สำหรับ ECDH และทำอย่างไรหรือหากจำเป็นต้อง "แนะนำ" คู่คีย์ที่สองสำหรับ ECDH เท่านั้น ดังนั้นฉันจึงขอความช่วยเหลือเนื่องจากฉันยังใหม่กับหัวข้อนี้