Score:1

อัลกอริทึมของ Shor และ ECDSA ใน Bitcoin - เหตุใดการค้นหาคีย์ส่วนตัวจึงยังยากเมื่อเรารู้จุดฐาน

ธง br
aac

ฉันกำลังเรียนรู้เกี่ยวกับอัลกอริทึมของ Shor และวิธีการนำไปใช้เพื่อทำลาย ECDSA ฉันพลาดสิ่งพื้นฐานไปอย่างชัดเจน - ฉันคิดว่าฉันเข้าใจว่าความท้าทายที่ ECDSA นำเสนอคือการหาคีย์ส่วนตัวที่ได้รับจากคีย์สาธารณะ ดังนี้:

$x\cdot P = X$ (ที่ไหน $x$ เป็นคีย์ส่วนตัวขนาดใหญ่และสร้างขึ้นแบบสุ่ม $พี$ เป็นจุดฐาน secp256k1 และ $X$ เป็นกุญแจสาธารณะ)

Since we know the base point for secp256k1, given in xy-coords as (55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424), why is this still a difficult problem that only Shor's algorithm could solve and not simply a division problem?

cn flag
"การหาร" เป็นเพียงชื่อ/สัญกรณ์ ไม่ใช่อัลกอริทึม ในแง่หนึ่งมันเป็น "แค่" ปัญหาการหาร
aac avatar
br flag
aac
ฉันเข้าใจสิ่งที่คุณพูด แต่ฉันหมายความว่า ทำไมเราไม่สามารถแบ่งพับลิกคีย์ด้วยจุดฐานเพื่อรับคีย์ส่วนตัวได้ ฉันรู้ว่ามันไม่ง่ายอย่างนั้น ฉันพลาดอะไรพื้นฐานไปหรือเปล่า
kelalaka avatar
in flag
นั่นคือ [ปัญหาลอการิทึมไม่ต่อเนื่อง](https://crypto.stackexchange.com/q/76230/18298) บน Elliptic Curves
kelalaka avatar
in flag
และ [การคูณสเกลาร์](https://crypto.stackexchange.com/a/68595/18298) ที่คุณสับสนกับการคูณ มันไม่ใช่!
aac avatar
br flag
aac
@kelalaka อ่า แต้มทวีคูณไม่เหมือนกับคูณ x กับ P เหรอ?
kelalaka avatar
in flag
สองเท่าก็แค่ $[2]P = P+P$
poncho avatar
my flag
โดยที่ $P + P$ หมายถึงการดำเนินการตามสูตรการบวกเส้นโค้งวงรีด้วยอินพุต $P$ และ $P$ - นี่ไม่ใช่การดำเนินการเพิ่มที่คุณเรียนในชั้นประถมศึกษา
Score:1
ธง in

สิ่งที่ทำให้คุณสับสนคือการที่คุณพิจารณาว่า การคูณสเกลาร์ (ในสัญกรณ์ของคุณ $x\cdot P$) เช่น การคูณ บนฟิลด์จำกัด จริงๆ แล้ว;

เดอะ การคูณสเกลาร์ บนเส้นโค้งวงรี $[x]P$ จริง ๆ แล้วหมายถึงการเพิ่ม $พี$ นั่นเอง $x$- ครั้ง นี่คือวิธีคำนวณจุดสาธารณะ จากคีย์ส่วนตัว อันแรกคือจุดบนเส้นโค้ง ส่วนหลังคือจำนวนเต็ม เป็นทางการมากขึ้น

อนุญาต $x \in \mathbb{N}\แบ็กสแลช\{ 0\}$

\begin{จัด} [x]:& E \ถึง E\ &P\mapsto [x]P=\underbrace{P+P+\cdots+P}_{\text{$x$ ครั้ง}}.\end{align}

ที่นี่ $P+P =[2]P\;(=2\cdot P)$ หมายถึง นอกจากนี้จุด และมีสูตรพิเศษที่ได้มาจากกฎสัมผัส-คอร์ด ด้วยการเพิ่มจุดนี้ สำหรับเส้นโค้งที่กำหนดบนเขตข้อมูลจำกัด จุดจะก่อตัวเป็นกลุ่มอาเบลเลียนที่จำกัด และด้วยการคูณแบบสเกลาร์ เราได้ $Z$-โมดูล.

เมื่อเราพูดถึงการให้ $[x]P$ และ $พี$ การหา $x$ คือ ปัญหาลอการิทึมไม่ต่อเนื่อง บนเส้นโค้งวงรี ในบางโค้งนั้นเป็นเรื่องง่าย อย่างไรก็ตาม ใน secp256k1 นั้นไม่ง่ายและการโจมตีแบบคลาสสิกมีค่าใช้จ่าย $\mathcal{O}(\sqrt{n}$) ในขณะที่ $n = คำสั่งซื้อ(P)$ กับ โรของพอลลาร์ด. การโจมตีที่ดีที่สุดที่ใช้คือ อัลกอริทึมจิงโจ้ของ Pollard รุ่นคู่ขนาน บน $2^{114}$ ช่วงเวลา

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

ที่จริงแล้ว ไม่จำเป็นต้องมี $y$ ประสานงานเพื่อโจมตี สามารถมีได้สูงสุดสองรายการ $y$ ค่าที่กำหนด $x$ ตราบเท่าที $x$ คือพิกัดของจุดที่สมการเส้นโค้ง

ECDSA มาตรฐานในทางกลับกัน ปัญหาจริงบางอย่างนอกเหนือจากอัลกอริทึมการหาช่วงเวลาของ Pollard's Rho และ Shor

เรามีทางเลือกที่ดีกว่า ECDSA ที่กำหนดขึ้น โดย Thomas Pornin และ Bitcoin และอื่น ๆ เริ่มใช้

aac avatar
br flag
aac
ขอบคุณมาก!

โพสต์คำตอบ

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