Score:3

เหตุใดจึงต้องตรวจสอบจุดอนันต์ระหว่างการตรวจสอบ ECDSA

ธง kr

มาตรฐาน ECDSA กำหนดว่าในระหว่างการตรวจสอบ เราตรวจสอบว่าการคำนวณขั้นกลางไม่นำไปสู่จุดสิ้นสุด (ดูขั้นตอนที่ 5 ในข้อมูลสรุปนี้เกี่ยวกับ วิกิพีเดีย ). แต่ ทำไม เราจะตรวจสอบสิ่งนี้หรือไม่ นั่นคือ คุณในฐานะผู้โจมตีจะกระตุ้นเหตุการณ์นี้โดยที่ไม่มีความรู้เรื่องรหัสส่วนตัวได้อย่างไร

ข้างต้น ฉันคิดว่ามีการตรวจสอบ ECDSA อื่นๆ ครบถ้วนแล้ว ($r,s \ใน [1,n-1]$, กุญแจสาธารณะอยู่บนเส้นโค้ง และอื่นๆ...)

Score:3
ธง ng

อันที่จริง ข้อกำหนดมาตรฐานอุตสาหกรรมของ ECDSA มีขั้นตอน (5) ที่ต้องปฏิเสธลายเซ็นหากพบจุดที่ไม่มีที่สิ้นสุด

อาการนี้เกิดขึ้นได้น้อย

  1. หากเจ้าของคีย์ส่วนตัวสร้างลายเซ็นที่เหมาะสม (ไม่ถูกต้อง) ด้วย $r=-e\,q_u^{-1}\bmod n$ หรืออะไรทำนองนั้น จริงอยู่ที่มันเปิดโปงคีย์ส่วนตัว และ (ด้วยเหตุนี้) ผู้โจมตีที่ไม่ได้ถือคีย์ส่วนตัวจึงไม่สามารถสร้างลายเซ็นที่เหมาะสมเช่นนั้นได้
  2. โดยบังเอิญสำหรับการป้อนข้อมูลแบบสุ่มเพื่อการตรวจสอบลายเซ็น จริงอยู่ ความน่าจะเป็นมีน้อยมากจนสามารถลดราคาได้ แต่ขอให้โชคดีในการโน้มน้าวผู้ถือตรายางบางคนเกี่ยวกับเรื่องนี้
  3. เนื่องจากข้อผิดพลาดในการติดตั้งซอฟต์แวร์หรือข้อผิดพลาดในการดำเนินการในเวอร์ชัน 5 หรือก่อนหน้า โดยไม่ได้ตั้งใจ การฉีดความผิด.

พบว่าสิ่งที่ผิดพลาดในทะเลมักจะผิดพลาดไม่ช้าก็เร็ว
Alfred Holt ใน 1877-78 นาทีของ Institution of Civil Engineers จัดพิมพ์ในลอนดอน

และนั่นก็เป็นภาพรวมที่ดีกับกิจกรรมอื่นๆ ของมนุษย์ รวมถึงการเข้ารหัสลับด้วย ในระหว่างการประเมินความสอดคล้องหรือความปลอดภัยที่ได้รับการจัดการอย่างดี กรณีที่อยู่ในมือควรได้รับการทดสอบด้วยวิธีการที่ 1 ดังนั้น จะต้องดำเนินการบางอย่างในกรณีนี้ และต้องไม่นำไปสู่การยอมรับลายเซ็น การไม่รบกวนการประมวลผลส่วนที่เหลือจะนำไปสู่พฤติกรรมที่ไม่ได้กำหนด เพราะไม่มีสิ่งที่เรียกว่า x พิกัดของจุดที่ไม่มีที่สิ้นสุด วิธีปฏิบัติที่ปลอดภัย เรียบง่าย และไม่เป็นที่รังเกียจคือการปฏิเสธลายเซ็นและหยุด

ไม่มีความเสี่ยงของการรั่วไหลของช่องทางด้านข้าง (ตามเวลาหรือ DPA) ภายใต้สมมติฐานมาตรฐาน (และมักจะเป็นจริง) ที่ว่าข้อความ ลายเซ็น และรหัสสาธารณะเป็นสาธารณะ

Maarten Bodewes avatar
in flag
คุณสามารถโต้แย้งได้ว่านี่เป็นการป้องกันในเชิงลึก เป็นเรื่องที่ค่อนข้างถกเถียงกันเสมอที่จะต้องตรวจสอบค่าที่โดยหลักการแล้วต้องไม่ผิดพลาดด้วยระดับความแน่นอนที่สูง แต่นั่นถือว่าเป็นระบบที่สมบูรณ์แบบ
R.. GitHub STOP HELPING ICE avatar
ฉันยังไม่เข้าใจว่าเหตุใดคุณจึงต้องตรวจสอบกรณีพิเศษที่อาจเกิดขึ้นโดยบังเอิญกับข้อมูลที่ไม่ถูกต้องโดยมีความน่าจะเป็นเท่ากับหรือน้อยกว่าความน่าจะเป็นที่ผู้โจมตีคาดเดาลายเซ็นที่ถูกต้องหรือเดารหัสส่วนตัว
fgrieu avatar
ng flag
@R..GitHubSTOPHELPINGICE: แล้วเหตุผลที่ 3 ล่ะ สิ่งที่เกี่ยวกับ: มันได้รับคำสั่งและทดสอบได้ ดังนั้นจะได้รับการทดสอบ และบางทีเราอาจไม่ต้องอธิบายให้ชายคนนั้นทราบด้วยตรายางว่า ใช่ ลายเซ็นทดสอบทำให้เกิดความผิดพลาดบางอย่างที่ต้องรีเซ็ตเนื่องจากการดึงพิกัด X ของจุดที่ อินฟินิตี้ทำให้เกิดข้อยกเว้นกับเฟรมเวิร์ก ECC รีลีสใหม่ เมื่ออันก่อนหน้าคืนค่าเป็นศูนย์ แต่นั่นเป็นเพียงการทดสอบ จริงๆ มันไม่สามารถเกิดขึ้นได้ในสนาม suuuuure ให้ฉันอธิบายคุณ มันเป็นคณิตศาสตร์ง่าย...
R.. GitHub STOP HELPING ICE avatar
@fgrieu: ฉันอ่านคำถามที่ถามว่าเหตุใดมาตรฐานจึงบังคับ ไม่ใช่ถามว่าทำไมผู้ดำเนินการจึงปฏิบัติตามมาตรฐานตามที่ระบุ

โพสต์คำตอบ

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