Score:1

"ฟังก์ชันเส้นโค้งวงรี" และ "ฟังก์ชันแฮช" เหมือน SHA256 ต่างกันอย่างไร

ธง hk

ฉันกำลังอ่านเกี่ยวกับ bitcoin และฉันสับสนเล็กน้อยเกี่ยวกับ "ฟังก์ชันเส้นโค้งวงรี" และ "SHA256" พวกเขามีคุณสมบัติเหมือนกันหรือไม่? สามารถใช้ทั้งคู่เพื่อสร้างคู่คีย์ส่วนตัวและคีย์สาธารณะได้หรือไม่

et flag
SHA256 เป็นฟังก์ชันแฮช - https://en.wikipedia.org/wiki/Hash_function & สำหรับ ECC ดูที่นี่ - https://en.wikipedia.org/wiki/Elliptic-curve_cryptography
kelalaka avatar
in flag
การแก้ไขของคุณเป็นคำถามใหม่ทั้งหมด ควรย้อนกลับการเปลี่ยนแนวทางของคำถามที่ตอบแล้วไม่ใช่พฤติกรรมที่ยอมรับได้ใน [ดังนั้น] อินพุตของ SHA-256 คืออะไร มี [ปัญหาพื้นที่ป้อนข้อมูลสั้น](https://crypto.stackexchange.com/a/81652/18298) ในฟังก์ชันแฮช นอกจากนี้ยังมี[ไม่มีการคูณใน ECC](https://crypto.stackexchange.com/q/88214/18298) มีเพียงการคูณแบบสเกลาร์เท่านั้น
kelalaka avatar
in flag
นอกจากนี้ หากฉันเข้าใจถูกต้อง คุณไม่สามารถแมปอินพุตโดยพลการเพื่อชี้บนเส้นโค้งได้ ECC อาศัย [ปัญหาลอการิทึมแบบไม่ต่อเนื่อง](https://crypto.stackexchange.com/q/76230/18298) ดังนั้นเราจึงเลือกจำนวนเต็มแบบสุ่มที่เหมือนกันก่อน จากนั้นจับคู่กับจุดบนเส้นโค้งด้วยการคูณแบบสเกลาร์
Score:10
ธง in

"ฟังก์ชันเส้นโค้งวงรี" และ "ฟังก์ชันแฮช" เหมือน SHA256 ต่างกันอย่างไร

ไม่มีบริบทที่แท้จริงให้ไว้ แต่เราสามารถเข้าใจได้

  • ฟังก์ชัน SHA-256:

    ใช่ มันคือฟังก์ชัน ในทางที่ค่อนข้างแม่นยำ: ฟังก์ชันแฮชการเข้ารหัสลับ (แฮชที่ทนต่อการชน);

    $$\operatorname{SHA256}:\{0,1\}^* \to \{0,1\}^{256}$$

    • ทางเดียว: แทบจะเป็นไปไม่ได้เลยที่จะกลับรายการย่อยแฮชที่กำหนด (หรือฝ่ายตรงข้ามที่ล้อมรอบด้วยพหุนามไม่สามารถเปลี่ยนกลับได้)
    • มุ่งมั่น: อินพุตเดียวกันต้องให้เอาต์พุตเดียวกัน
    • สุ่ม: เราไม่ควรรู้แฮชของอินพุตก่อนที่จะทำการแฮช เราสามารถอ่านสิ่งนี้ได้เนื่องจากฟังก์ชันแฮชเป็นตัวเลือกสำหรับ Random Oracles (RO) และ SHA256 ไม่ใช่เนื่องจากมีการโจมตีแบบขยายความยาว SHA3 และ Blake2 จึงใกล้เคียงกับ RO มากกว่า
    • มี ความต้านทานต่อภาพล่วงหน้า: ใกล้วันเวย์; กำหนดค่าแฮช $h$ ฝ่ายตรงข้ามเวลาพหุนามจะต้องเป็นไปไม่ได้ที่จะหาข้อมูล $m$ ดังนั้น $\operatorname{SHA256}(m) = h$.
    • ความต้านทานต่อภาพล่วงหน้าที่สอง: ได้รับข้อความ $m$ และมันคือค่าแฮช $h$ค้นหาข้อความอื่น $m'$ ดังนั้น $\operatorname{SHA256}(m) = h = \operatorname{SHA256}(m')$.
    • และ ความต้านทานการชน; ค้นหาข้อความอินพุตที่แตกต่างกัน $m_1 \neq m_2$ ดังนั้น $\operatorname{SHA256}(m_1) = \operatorname{SHA256}(m_2)$.

    Bitcoin ใช้ SHA256 สองเท่า (SHA256d) และ SHA256d ปลอดภัยจากการโจมตีส่วนขยายความยาว.

  • ฟังก์ชัน Elliptic Curve:

    นี่เป็นชื่อที่แปลก มันเป็นฟังก์ชัน L ของ Elliptic curves หรืออะไร? เนื่องจากคำถามกำลังพูดถึง Bitcoin จึงน่าจะเป็นชุดของฟังก์ชันที่ Elliptic curves มีให้มากกว่าฟังก์ชันด้านล่าง:

    • ส่วนที่เพิ่มเข้าไป เป็นการดำเนินการกลุ่ม (บวก ลบ ผกผัน สับเปลี่ยน และสมาคม)

    • การคูณสเกลาร์: ให้จุดฐาน $G$ และเพิ่ม $t$ ครั้ง:

      $$[t]G : = \underbrace{G + G + \cdots + G}_{t-ครั้ง} $$

    • การสร้างคีย์สาธารณะ: เลือกแบบสุ่ม $k$ และคำนวณ $[k]G$.

    • ECDSA การสร้างลายเซ็น

    • ECDSA การตรวจสอบลายเซ็น

ตอนนี้คำตอบสำหรับคำถามอื่นของคุณชัดเจนแล้ว

พวกเขามีคุณสมบัติเหมือนกันหรือไม่?

ไม่ พวกเขาไม่! แม้แต่อันหนึ่งก็เป็นฟังก์ชันอีกอันหนึ่งก็เป็นชุดของฟังก์ชัน

สามารถใช้ทั้งคู่เพื่อสร้างคู่คีย์ส่วนตัวและคีย์สาธารณะได้หรือไม่

เลขที่

อย่างไรก็ตาม เราสามารถใช้ SHA256 เพื่อย่อยแหล่งที่มาของเอนโทรปีเพื่อเลือกการสุ่ม $k$ สำหรับคีย์ส่วนตัวและค้นหาคีย์สาธารณะ $K = [k]G$ โดยใช้การคูณสเกลาร์ของ Elliptic Curves

และที่อยู่ Bitcoin จะคำนวณเป็น;

$$\text{ที่อยู่ Bitcoin} = \operatorname{RIPEMD160(SHA256(}K))$$ เป็นที่อยู่ 20 ไบต์ (RIPEMD).


หมายเหตุพิเศษ: หนังสือ/เว็บไซต์บล็อกเชนบางเล่มใช้การคูณ EC สำหรับการคูณ EC แบบสเกลาร์ เช่น หนังสือของ Antonolopus การเรียนรู้ Bitcoin, หน้า 68 สิ่งนี้สร้างความสับสนให้กับหลาย ๆ คน เนื่องจากพวกเขาเริ่มคิดว่า $P\cdot Q$ มีอยู่ ไม่! EC สร้างกลุ่มอาเบลเลียนแบบบวก และด้วยการคูณแบบสเกลาร์ (วิธีปกติในการกำหนดกลุ่มแบบบวก) พวกมันจะสร้าง Z-โมดูลไม่มีอะไรเพิ่มเติม

Cort Ammon avatar
gb flag
+1 ฉันจะบอกว่าพวกเขาเป็นเหมือนการเปรียบเทียบแอปเปิ้ลกับลิงอุรังอุตัง แต่คุณใช้ความพยายามเป็นพิเศษในการอธิบายคุณสมบัติของแอปเปิ้ลและคุณสมบัติของลิงอุรังอุตังในลักษณะที่จะช่วย OP วิจัยหัวข้อนี้ และอาจสร้างคำถามที่แน่นอนมากขึ้นใน อนาคต. แบบฟอร์มการแลกเปลี่ยน Stack ที่ยอดเยี่ยม!
kelalaka avatar
in flag
@CortAmmon the OP ไม่ได้ระบุแหล่งที่มา อย่างไรก็ตาม ฉันเห็นว่าไซต์และหนังสือจำนวนมากทำให้เกิดความสับสน ดูหมายเหตุพิเศษที่เพิ่มใหม่พร้อมตัวอย่าง
Maarten Bodewes avatar
in flag
ตอนนี้เราจะยกเว้นลายเซ็นที่ใช้แฮช หากคุณนับสิ่งเหล่านี้ คุณยังสามารถทำการตรวจสอบสิทธิ์ข้อความ การสืบทอดคีย์ และการสร้างตัวเลขสุ่ม "ด้วยฟังก์ชันแฮช"
kelalaka avatar
in flag
@MaartenBodewes แน่ใจว่ามีอยู่จริง ฉันต้องการเก็บคำตอบไว้ในบริบทของ bitcoin และฟังก์ชันแฮชมีอยู่ทุกหนทุกแห่งเมื่อเราแสดงรายการบางส่วน [ที่นี่](https://crypto.stackexchange.com/q/64588/18298) คุณรู้หรือไม่ว่าใช้ใน bitcoin?
kelalaka avatar
in flag
@MaartenBodewes blockchains เป็นเรื่องกว้างที่ฉันอาจพลาดเรื่องที่ใช้...
kelalaka avatar
in flag
@MaartenBodewes มีเหตุผลเฉพาะที่ต้องถูกลบออกจาก HNQ หรือไม่? เห็นได้ในขณะนี้ในขณะที่ดูการแก้ไขของ OP
Score:1
ธง cn

ทั้งสองเป็นฟังก์ชัน มันหมายถึงความสัมพันธ์ระหว่างสองชุด (ชุดอินพุตและชุดเอาต์พุต) เพื่อให้ทุกองค์ประกอบ $x$ ของชุดอินพุตมีความสัมพันธ์กับองค์ประกอบส่วนใหญ่ของชุดเอาต์พุต องค์ประกอบนี้เรียกว่าภาพของ $x$.

แต่พวกเขาไม่มีสถานะเดียวกันในการเข้ารหัส ฟังก์ชันใน "ฟังก์ชันเส้นโค้งวงรี" เป็นวิธีอธิบายเส้นโค้งวงรี หากเป็นฟังก์ชัน $f$, จุดของเส้นโค้งคือ $(x, f(x))$.

SHA-256 เป็นอัลกอริทึม (อัลกอริทึมมีความแม่นยำมากกว่าฟังก์ชัน เพราะมันบ่งชี้วิธีคำนวณภาพ) ซึ่งใช้ในการสร้าง กัญชา.

ในการสร้างคีย์ส่วนตัว เราเลือกจำนวนเต็มแบบสุ่มอย่างสม่ำเสมอ $n$ ของ $256$ บิต

ในการสร้างรหัสสาธารณะ เราคูณตัวสร้าง $G$ (กำหนดให้เป็นพารามิเตอร์สาธารณะของเส้นโค้ง) โดย $n$ (โดยใช้ขั้นตอนกำลังสองและคูณ) มันทำให้เรามีจุดหนึ่งของเส้นโค้ง $พี$. บางครั้งสิ่งนี้ $พี$ ถือเป็นแฮชของคีย์ส่วนตัว แต่มันเป็นมากกว่าแฮชธรรมดา มันเป็นกุญแจสาธารณะ ตรวจสอบคุณสมบัติมากกว่าฟังก์ชันแฮชทั่วไปเช่น SHA-256

หากคุณต้องการรายละเอียดเพิ่มเติม คุณสามารถดู: https://en.wikipedia.org/wiki/Elliptic_curve_digital_signature_algorithm

hk flag
หาก SHA256 ไม่สามารถย้อนกลับได้หรือทนต่อภาพพรีอิมเมจ ทำไม bitcoin ไม่ใช้ SHA256 เพื่อสร้างคีย์สาธารณะจากคีย์ส่วนตัวที่สร้างขึ้นแบบสุ่มแทนการคูณเส้นโค้งวงรี ฉันรู้ว่าอินพุตของ SHA256 สามารถเป็นอะไรก็ได้และเอาต์พุตสามารถเป็น 0 ถึง 2^256 ใครช่วยอธิบายให้ฉันฟังเกี่ยวกับการคูณหรือฟังก์ชันเส้นโค้งวงรีไม่ว่าจะเป็นในแง่ของอินพุตและเอาต์พุตเช่นเดียวกับ SHA256 เพราะฉันไม่สามารถเข้าใจได้จากวิกิพีเดีย ฉันได้ลองหลายครั้งแล้ว
Ievgeni avatar
cn flag
ความต้านทานพรีอิมเมจไม่เพียงพอ คุณต้องเซ็นชื่อ มันยากกว่ามาก ฟังก์ชันแฮชธรรมดาไม่เพียงพอ เส้นโค้งวงรีไม่ใช่คณิตศาสตร์พื้นฐาน คุณสามารถลองอ่านสิ่งนี้: cryptobook.nakov.com/asymmetric-key-ciphers/

โพสต์คำตอบ

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