Score:1

วิธีคำนวณลำดับของ secp256k1

ธง co

เส้นโค้งวงรี secp256k1 ถูกกำหนดให้เป็น $y^2 = x^3 + 7$. ไพรม์สำหรับฟิลด์ถูกตั้งค่าเป็น:

p = 115792089237316195423570985008687907853269984665640564039457584007908834671663

ตอนนี้ เราควรจะสามารถคำนวณลำดับโดยใช้อัลกอริทึมของ Schoof มีการใช้งาน Python ให้ที่นี่: https://github.com/pdinges/python-schoof

อย่างไรก็ตาม ดูเหมือนว่าจะใช้เวลานานเกินไปในการคำนวณลำดับสำหรับจำนวนเฉพาะจำนวนมาก นอกจากนี้ การดำเนินการดูเหมือนจะไม่สามารถคำนวณได้สำหรับจำนวนเฉพาะที่มากเช่นนี้

root@78774381cc80:/home/python-schoof# python3reduced_computation_schoof.py 17 0 7
การนับคะแนนของ y^2 = x^3 + 0x + 7 ส่วน GF<17>: 18
root@78774381cc80:/home/python-schoof# python3 modified_computation_schoof.py 115792089237316195423570985008687907853269984665640564039457584007908834671663 0 7
การนับคะแนนของ y^2 = x^3 + 0x + 7 ส่วน GF<115792089237316195423570985008687907853269984665640564039457584007908834671663>: Traceback (การเรียกครั้งล่าสุดล่าสุด):
  ไฟล์ "reduced_computation_schoof.py" บรรทัดที่ 268 ใน <โมดูล>
    วิ่ง. วิ่ง()
  ไฟล์ "/home/python-schoof/support/running.py", บรรทัด 498, กำลังเรียกใช้
    ผลลัพธ์ = self.__algorithm( *item, output=self.__output)
  ไฟล์ "reduced_computation_schoof.py" บรรทัดที่ 258 ในreduced_computation_schoof_algorithm
    ลำดับ = p + 1 - frobenius_trace( วงรี( FiniteField(p), A, B ) )
  ไฟล์ "reduced_computation_schoof.py" บรรทัดที่ 55 ใน frobenius_trace
    เลน (search_range),
OverflowError: Python int ใหญ่เกินไปที่จะแปลงเป็น C ssize_t

มีใครรู้บ้างว่ามันถูกคำนวณและจะทำซ้ำได้อย่างไร? มีการใช้งานอัลกอริทึมของ Schoof ที่ดีกว่าสำหรับตัวเลขจำนวนมากหรือไม่?

fgrieu avatar
ng flag
หมายเหตุ: คำสั่ง $n$ ของ `secp256k1` เป็นที่รู้จักกันดี และง่ายต่อการ _verify_ โดยเลือกจุดใดก็ได้ $T$ (นอกเหนือจากค่ากลาง $\mathcal O$) แล้วกาเครื่องหมาย $n\,T=\mathcal O$ ซึ่งพิสูจน์ลำดับของ $T$ หาร $n$ ตอนนี้ตรวจสอบว่า $n$ เป็นจำนวนเฉพาะและใกล้เคียงกับ $p$ (ภายใน 30% จะทำ หรือ [Hasses' bound](https://en.wikipedia.org/wiki/Hasse%27s_theorem_on_elliptic_curves)) โดยอิสระ: เรามีเหตุผลใกล้เคียงกับ "คำขอวรรณกรรม ซอฟต์แวร์ หรือคำแนะนำที่คล้ายกันอยู่นอกหัวข้อ" ดังนั้นคำถามจึงอยู่ในประเด็นร้อน เราจะดูว่าความสนใจของคำถามมีมากกว่าข้อห้ามทั่วไปนั้นหรือไม่
co flag
@fgrieu $\mathcal{O}$ ที่เป็นกลางของ `secp256k1` คืออะไร
fgrieu avatar
ng flag
$\mathcal O$ ที่เป็นกลางคือองค์ประกอบที่เป็นกลางของกลุ่มจุดของเส้นโค้ง อย่างเท่าเทียมกัน สำหรับทุกจุด $T$ ของเส้นโค้ง $T+\mathcal O=T=\mathcal O+T$ เรียกอีกอย่างว่าจุดอนันต์และจด $\infty$ มันไม่มีพิกัด $x$, $y$ เป็นไปตามสมการของเส้นโค้ง $y^2\equiv x^3+7\pmod p$
Score:2
ธง cn

ปารีส รวมถึง (เหนือสิ่งอื่นใด) การนำอัลกอริธึมของ Schoof ไปใช้ (โดยเฉพาะอย่างยิ่ง อัลกอริทึม Schoof-Elkies-Atkin)

? p = 115792089237316195423570985008687907853269984665640564039457584007908834671663
%1 = 115792089237316195423570985008687907853269984665640564039457584007908834671663
? ellcard(เอลลินิท([0,7], p))
%2 = 115792089237316195423570985008687907852837564279074904382605163141518161494337

มันเป็นโอเพ่นซอร์ส ดังนั้นคุณจึงสามารถมองเข้าไปข้างในได้อย่างง่ายดาย

หากคุณไม่ต้องการติดตั้ง PARI โคแคล ให้คุณเรียกใช้ PARI (หรือ Sage) ในเบราว์เซอร์ เพียงเริ่มโครงการใหม่ และภายในเทอร์มินัล Linux ใหม่นั้น ให้ป้อน "gp" และคุณก็ออกไปและทำงานใน PARI

หรือคุณสามารถทำการคำนวณโดยตรงใน ปราชญ์ (ซึ่งคุณสามารถเรียกใช้ผ่าน CoCalc: New â Sage worksheet) แต่สิ่งนี้ไม่ได้ให้การใช้งานใหม่แก่คุณ เนื่องจาก Sage เพิ่งเรียก PARI สำหรับฟังก์ชันนี้:

ปราชญ์: p = 115792089237316195423570985008687907853269984665640564039457584007908834671663
ปราชญ์: EllipticCurve(GF(p), [0,7]).คำสั่ง()
115792089237316195423570985008687907852837564279074904382605163141518161494337

สำหรับเอกสารใน PARI:

? ?เอลการ์ด
ellcard(E,{p}): กำหนดเส้นโค้งวงรี E ที่กำหนดบน Fq ฟิลด์ที่จำกัด 
กลับลำดับของกลุ่ม E(Fq); สำหรับฟิลด์อื่น ๆ ของคำจำกัดความ K, p ต้อง 
กำหนดเขตข้อมูลที่เหลือจำกัด (p ไพรม์สำหรับ K = Qp หรือ Q; p อุดมคติสูงสุดสำหรับ 
K ฟิลด์ตัวเลข) ส่งกลับลำดับของการลดลง (ไม่เอกพจน์) ของ E

สำหรับเอกสารใน Sage:

ปราชญ์: E = EllipticCurve(GF(p), [0,7])
ปราชญ์: E.order?
ปราชญ์: E.order??

โพสต์คำตอบ

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