Score:0

การเซ็นชื่อแฮชของไฟล์ vs การเซ็นชื่อไฟล์

ธง uz

ถ้าบุคคล A สร้างแฮช (เช่น sha256) ของไฟล์ แล้วเซ็นชื่อแฮชโดยใช้คีย์ส่วนตัว

เนื่องจากบุคคล B มีเพียงรหัสสาธารณะ ไฟล์ ลายเซ็น และแฮช การตรวจสอบลายเซ็นโดยใช้รหัสสาธารณะจะเพียงพอที่จะพิสูจน์ว่าบุคคล A ลงนามในไฟล์จริงหรือไม่

แฮชและอัลกอริทึมใดที่เหมาะสมที่สุดสำหรับสิ่งนี้

kelalaka avatar
in flag
ดีที่สุดไม่ใช่คำที่ดี การพิจารณาของคุณคืออะไร? บุคคล B ไม่ต้องการแฮชของไฟล์ พวกเขาต้องการเพียงคีย์สาธารณะ ลายเซ็น ไฟล์ และข้อกำหนดรูปแบบลายเซ็น คุณอาจจะมี; RSA, ECDSA, EdDSA, ... เหล่านั้นล้มเหลวภายใต้ศัตรูควอนตัม และ Rainbow, Falcon และ CRYSTALS-DILITHIUM ยังคงอยู่จากรอบที่ 3 ของการแข่งขันหลังการแข่งขันควอนตัม NIST ดังนั้น ข้อจำกัดและความเสี่ยงของคุณคืออะไร?
uz flag
ฉันกำลังมองหาบางอย่างที่ค่อนข้างใช้งานง่าย เช่น pgp ข้อจำกัดและความเสี่ยงที่ชาญฉลาด ฉันคิดว่ามันควรจะไม่แตกหักเป็นเวลาอย่างน้อย 100 ปี แม้กระทั่งกับทรัพยากรของประเทศ
kelalaka avatar
in flag
ดังนั้นคุณต้องมีรูปแบบลายเซ็นหลังควอนตัม!
uz flag
เหตุใด RSA จึงมีอายุไม่ถึง 100 ปีหรือ 20 ปี
kelalaka avatar
in flag
ถ้าคอมพิวเตอร์ควอนตัมเข้ารหัสถูกสร้างขึ้น อัลกอริทึมของ Shor จะทำลายมันอย่างง่ายดาย
Maarten Bodewes avatar
in flag
**การสร้างลายเซ็น** โดยทั่วไป **ประกอบด้วย** อัลกอริทึมการแฮช การใส่แฮชให้กับการดำเนินการลายเซ็นขั้นสุดท้ายอาจมีประโยชน์สำหรับการนำไปใช้งาน เนื่องจากการแฮชอาจเกิดขึ้นโดยใช้กระบวนการอื่นหรือในเวลาอื่น (เช่น เมื่อคีย์การเซ็นชื่อยังไม่พร้อมใช้งาน) อย่างไรก็ตาม คุณไม่จำเป็นต้องส่งแฮชแยกต่างหาก: การตรวจสอบแฮชเป็นส่วนหนึ่งของการตรวจสอบลายเซ็นและมักจะอยู่ในลายเซ็นโดยตรง
Score:3
ธง ng

เนื่องจากบุคคล B มีเพียงรหัสสาธารณะ ไฟล์ ลายเซ็น และแฮช การตรวจสอบลายเซ็นโดยใช้รหัสสาธารณะจะเพียงพอที่จะพิสูจน์ว่าบุคคล A ลงนามในไฟล์จริงหรือไม่

บุคคล B ไม่ต้องการแฮช หากได้รับแล้ว ก็จะสามารถใช้เพื่อวัตถุประสงค์ในการแก้ไขจุดบกพร่องหรือยกเลิกการตรวจสอบก่อนเวลาได้ แต่ไม่ควรเชื่อถือ ต่อไปนี้ฉันไม่สนใจแฮชที่ B อาจได้รับ

บุคคล B จะแฮชไฟล์ และตรวจสอบว่าแฮช คีย์สาธารณะ และลายเซ็นนั้นตรวจสอบหรือไม่นั่นควรจะเป็น¹เพื่อพิสูจน์ว่าบุคคล A ลงนามในไฟล์

การแฮชเป็นส่วนหนึ่งของการตรวจสอบลายเซ็นที่มักจะระบุว่า: บุคคล B จะตรวจสอบว่าไฟล์ คีย์สาธารณะ และลายเซ็น ได้รับการยืนยันหรือไม่

ข้อยกเว้นสำหรับย่อหน้าด้านบนคือเมื่อระบบลายเซ็นเหมาะสมแล้วที่จะเซ็นข้อความ/ไฟล์ที่มีความยาวเท่าใดก็ได้โดยใช้แฮช $H_1$จะเพิ่มการแฮชอีกชั้นด้วยแฮช $H_2$. ในกรณีนี้ จะพูดว่า: บุคคล B จะแฮชไฟล์ด้วย $H_2$และตรวจสอบว่าแฮช คีย์สาธารณะ และลายเซ็น ตรวจสอบ (โดยปริยาย: ด้วยฟังก์ชันแฮช $H_1$ นำไปใช้กับผลลัพธ์ของ $H_2$ เป็นส่วนหนึ่งของการตรวจสอบลายเซ็น) การแฮชแบบผสมดังกล่าวบางครั้งทำขึ้นเพื่อเหตุผลด้านประสิทธิภาพ เนื่องจาก $H_2$ เป็นไปตามการออกแบบที่เร็วกว่า $H_1$; หรือ/และเพราะ $H_1$ ดำเนินการโดยอุปกรณ์ (เช่น สมาร์ทการ์ด) และ $H_2$ ดำเนินการโดยเครื่องอื่น (เช่น คอมพิวเตอร์ที่ใช้สมาร์ทการ์ด)

แฮชและอัลกอริทึมใด (เหมาะสำหรับ) สิ่งนี้

จากจุดยืนทางทฤษฎี ลายเซ็นต้องการอัลกอริทึมแฮชที่ป้องกันการชนกัน (หมายถึงการทนต่อภาพที่สองก่อน) และความกว้างที่เหมาะสมสำหรับระบบลายเซ็นภายใต้การพิจารณา

หากความกว้างนั้นสูงสุด 512 บิต SHA-512 ตัดทอนอย่างเหมาะสมจะทำ สำหรับขนาดตามอำเภอใจมี SHAKE256. เพื่อความเร็วที่ดีขึ้นก็มี เบลค2.

จากมุมมองเชิงปฏิบัติ โดยทั่วไปแฮชจะถูกระบุโดยระบบลายเซ็นหรือพารามิเตอร์ของมัน และข้อกำหนดนั้นมักจะฝังอยู่กับคีย์สาธารณะในใบรับรองคีย์สาธารณะ

ตัวอย่างของอัลกอริทึมลายเซ็นและแฮชที่ใช้กันทั่วไปคือ ECDSA ด้วยเส้นโค้ง secp256r1 และกัญชา SHA-256. อีกตัวอย่างหนึ่งคือ เอ็ด25519ซึ่งระบุอัลกอริทึม เส้นโค้ง และแฮช (หมายเหตุ Ed25519ph เหมือนกับ Ed25519 ยกเว้นการแฮชคู่ในข้อยกเว้นข้างต้น)


¹ ไม่มีอะไรที่เหมือนกับการพิสูจน์อย่างสมบูรณ์: บางทีรหัสสาธารณะอาจไม่ใช่ของบุคคล A; หรือคีย์ส่วนตัวของบุคคลถูกขโมย; หรือพีซีของพวกเขาอยู่ภายใต้การควบคุมของผู้ประสงค์ร้าย ดังนั้น A จึงต้องการเซ็นชื่ออย่างอื่นทั้งหมด หรือระบบลายเซ็นหรือแฮชเสียâ¦

Maarten Bodewes avatar
in flag
ใช่ โปรโตคอลจำนวนมากรองรับองค์ประกอบข้อมูลหลายตัว และการส่งแฮชขององค์ประกอบข้อมูล **ไม่ทราบ/ยังไม่ได้อ่าน** จะช่วยได้มาก ต้นไม้ Merkle และอะไรก็ตาม เช่น. eMRTD/ePassport มีชุดแฮชเหนือกลุ่มข้อมูล นี่ไม่ใช่การลงนามแฮชที่ส่งอย่างแน่นอน การแฮชสองครั้ง *เพียง* ไม่มีประโยชน์สำหรับสิ่งนี้ แม้ว่าการแฮชหลายระดับจะเป็นคำตอบ แต่ดูเหมือนว่าจะมุ่งเน้นไปที่ประสิทธิภาพ (แต่ TBH คำถามไม่ได้กล่าวถึงกรณีการใช้งานนี้เช่นกัน)
uz flag
ในกรณีการใช้งานของฉัน ฉันต้องการเซ็นชื่อแฮชโดยใช้คีย์ส่วนตัวเท่านั้น เหตุผลนี้คือเพื่อประหยัดแบนด์วิธ เนื่องจากระบบจัดเก็บข้อมูลและการเซ็นชื่อนั้นแยกจากกัน และการสื่อสารระหว่างกันนั้นเชื่อถือได้อยู่แล้ว การส่งแฮชจึงเร็วกว่าและถูกกว่า แทนที่จะเป็นไฟล์ขนาดใหญ่มากสำหรับการเซ็นชื่อ

โพสต์คำตอบ

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