Score:1

ตรวจสอบว่าพิกัด x, y ที่กำหนดเป็นสตริงฐานสิบหกเป็นจุดที่ถูกต้องบน Elliptic Curve

ธง cn

ให้ข้อมูลดังต่อไปนี้:

"เส้นโค้ง": "P-256",

"qx": "729C51D177EBE2079A0FB7B0B3C2145159CF81EC61960E642A1744719AA9F913",

"qy": "8C36BCF51475016E614F8C7E0CB1B37C7EA65B4ECCF809852C9B2D0E438710BD"

พิกัดข้างต้นถูกต้องตามผลการทดสอบเวกเตอร์ที่คาดหวัง:

"ทดสอบผ่าน": จริง

ฉันต้องตรวจสอบว่าพิกัดคีย์สาธารณะด้านบนเป็นจุดที่ถูกต้องบนเส้นโค้งหรือไม่ ฉันได้ลองแปลงพิกัดใน python เป็น ints ด้วย:

>>> x = int("7C96DFF02F55B876A2A885A920E9FB5E30C6E1A4061A62517FD5C936A16AD363", 16)
>>> y = int("301ABC6B82DF5B6B6D3E8D56D7660D83A6E4F55E321BD2E57A5AC4A6A683374E", 16)

จากนั้นแทนค่าจำนวนเต็มเหล่านั้นลงในทั้งสองสูตรต่อไปนี้:

y^2 = X^3 + 7 (secp256k1)

y^2 = x^3 - 3x + b โดยที่ b คือ 41058363725152142129326129780047268409114441015993725554835256314039467401291

ไม่ว่าในกรณีใด สูตรไม่ได้ระบุว่าค่านั้นถูกต้อง

จะมีใครรู้บ้างว่าฉันจะตรวจสอบพิกัดเหล่านี้ได้อย่างไร

poncho avatar
my flag
สำหรับ P256; มันคือสูตร $y^2 \equiv x^3 - 3x + b \pmod p$ คุณจำที่ต้องทำส่วน $\bmod p$ ได้ไหม
factor2 avatar
cn flag
อ่า ฉันคิดสูตรผิดแน่ๆ เพราะฉันไม่ได้ใส่ส่วนประกอบ mod p ไว้ ฉันจะเอาส่วนประกอบนั้นออกจากพิกัด x, y ได้อย่างไร
poncho avatar
my flag
หากคุณรู้ว่าคุณกำลังตรวจสอบเส้นโค้ง P256 นั่นจะให้ค่า $p$ แก่คุณ
factor2 avatar
cn flag
ตกลง ฉันยังคงได้รับค่าผิด หลังจากการแปลง ฉันได้รับค่า x และ y ต่อไปนี้: x = 56353365848849265321159620645865428036014544177922197398856507648435978687331 y = 21758255182490996347272889474463336439598185139152900800520689763795259832142 สิ่งนี้ทำให้ฉันได้ (y^2) % 256 = 196 และ (x^3 -3x + b) % 256 = 93 ค่าคงที่ของฉันอาจจะผิดหรือเปล่า?
factor2 avatar
cn flag
และด้วยสมการแรก ฉันได้ (x^3 + 7) %256 = 66
Ievgeni avatar
cn flag
ทำไมคุณถึงทำ %256? คุณควรจะทำ %$p$
factor2 avatar
cn flag
โอ้ ฉันสันนิษฐานจากความคิดเห็นข้างต้นว่าฉันโง่ และค่า p จะเป็นค่าของเส้นโค้ง (เช่น 256) ฉันเดาว่าฉันยังคงโง่อยู่ ฉันขอลิงก์ไปยังเอกสารที่แสดงค่า p ได้ไหม
kelalaka avatar
in flag
@ponco ปัญหาคือสิ่งนี้: เส้นโค้งไม่ถูกต้อง ควรเป็น secp256r1 จุดปัจจุบันไม่ได้อยู่บนเส้นโค้ง secp256k1 แต่อยู่บนเส้นโค้ง secp256r1
kelalaka avatar
in flag
ตอนนี้ฉันสามารถเรียกสิ่งนี้ว่าคนหลอกลวงได้
factor2 avatar
cn flag
ขอบคุณ Kelalaka ฉันไม่รู้ว่าฉันเข้าโค้งผิด ชื่นชมมาก
factor2 avatar
cn flag
แวบเดียวดูเหมือนว่าใช่ มันจะ ฉันไม่สามารถทดสอบได้เนื่องจากถูกเรียกเข้าร่วมการประชุม จะไม่กลับมาอีกประมาณหนึ่งชั่วโมง ฉันจะทำเครื่องหมายเมื่อฉันกลับมา
factor2 avatar
cn flag
นั่นเร็วกว่าที่คาดไว้ ใช่ ทำงานร่วมกับเส้นโค้ง secp256r1
Score:0
ธง cn

ตามที่คุณเขียนคุณควรตรวจสอบว่า $y^2 = x^3 + ขวาน + b \mod p$.

ตาม แหล่งที่มานี้.

$$p = 2^{256}-2^{224}+2^{192}+2^{96}-1$$

สังเกตว่า $256$ หมายถึงขนาดบิตของ $p$และไม่ต้อง $p$ นั่นเอง

factor2 avatar
cn flag
ผู้แสดงความคิดเห็นด้านบนชี้ว่าผมเข้าผิดโค้ง แต่ผมขอขอบคุณสำหรับลิงค์ไปยังเอกสารประกอบนั้น ความรู้ดีๆ ให้ผมได้อ่านโดยทั่วกัน

โพสต์คำตอบ

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