Score:1

ลายเซ็นดิจิทัลที่ไม่มีสคีมาเป็นไปได้หรือไม่

ธง in

ในแอปพลิเคชันของฉัน ฉันต้องการใช้ระบบ Rabin crypto ด้วยคีย์ลัด (เช่น 128 บิต) และ MD5 สำหรับการแฮช ฉันพบว่าสคีมาเช่น PKCS1-V1_5 หรือ PPS ไม่อนุญาตให้คุณมีคีย์ขนาดเล็กเช่นนี้ และลายเซ็นผลลัพธ์ก็เหมือน 64 ไบต์สำหรับคีย์ 512 บิต

ฉันต้องการเซ็นชื่อข้อมูลจำนวนเล็กน้อยเช่น 30-50 ไบต์ และการมีลายเซ็น 64 ไบต์นั้นเป็นสิ่งที่เห็นได้ชัดเจน ฉันลอง BLS (48 ไบต์สำหรับลายเซ็น) แต่มันช้าเกินไปเมื่อเทียบกับ Rabin

ความคิดของฉันคือการใช้ MD5 เพราะต้องการเพียง 128 บิตและคีย์สั้นที่มีขนาดเท่ากันเพื่อหลีกเลี่ยงการเติม ดังนั้นในกรณีนี้ ฉันไม่ต้องการสคีมา นอกจากนี้ควรให้ฉัน 20 ไบต์สำหรับแต่ละลายเซ็น ฉันรู้ว่านี่เป็นลายเซ็นที่อ่อนแอมาก แต่อายุการใช้งานของข้อมูล (แพ็คเก็ต) จะสั้น

แนวทางดังกล่าวจะได้ผลหรือไม่?

Maarten Bodewes avatar
in flag
128 บิตสำหรับระบบเข้ารหัสลับที่ขึ้นอยู่กับความแข็งของการแยกตัวประกอบจะไม่ถูกตัดออก MD5 เป็นตัวเลือกที่ไม่ดีเช่นกัน เนื่องจากอนุญาตให้โจมตีได้โดยไม่มีผลประโยชน์ใด ๆ ที่สังเกตเห็นได้เมื่อเทียบกับ FDH เช่น SHAKE128 และคุณยังสามารถใช้ (บิตซ้ายสุดของ) แฮชที่รวดเร็วและปลอดภัยด้วยการเข้ารหัส ฉันต้องการดูวิธีแก้ไขปัญหา (เช่น ECDH จากนั้นรับรหัส MAC สำหรับหลายข้อความ)
fgrieu avatar
ng flag
Rabin ที่มีลายเซ็น 64 ไบต์ (512 บิต) ไม่ปลอดภัยมาก มันถูกใช้งานต่อสาธารณะในปี 1999 (ดู [นี้](https://crypto.stackexchange.com/a/1982/555)) สำหรับลายเซ็นขนาด 64 ไบต์ คุณอาจใช้ [Ed25519](https://ed25519.cr.yp.to/) หรือ [ECDSA](https://www.secg.org/sec1-v2.pdf#subsection 4.1) ด้วยเส้นโค้ง [secp256r1](https://www.secg.org/sec2-v2.pdf#subsubsection.2.4.2) การตรวจสอบลายเซ็นไม่เร็วเท่า Rabin และซับซ้อนกว่า แต่นอกเหนือจากนั้น ฉันนึกถึงแต่ประโยชน์: รหัสสาธารณะและลายเซ็นที่เล็กลง การสร้างลายเซ็นที่เร็วขึ้น มีขนาดเล็กกว่า 25% (48 ไบต์)
poncho avatar
my flag
รหัสการรับรองความถูกต้องของข้อความจะทำงานในสถานการณ์ของคุณหรือไม่ หมายความว่าผู้รับสามารถสร้างข้อความ "ลงนาม"; ในบางสถานการณ์ นั่นไม่ใช่ปัญหา (และในบางสถานการณ์ ก็เป็นปัญหาอย่างมาก) หากคุณสามารถใช้ MAC ได้ ขนาด MAC อาจค่อนข้างเล็กโดยไม่มีปัญหา (นอกจากขนาดที่เห็นได้ชัด ผู้โจมตีแค่คาดเดา ด้วย MAC $n$ บิต เขามีความน่าจะเป็น $2^{-n}$ ขวา...)
in flag
@poncho น่าเสียดายที่ไม่ เพราะต้องมีคีย์เซสชันบางประเภทสำหรับผู้เข้าร่วมแต่ละคู่
fgrieu avatar
ng flag
อีกครั้ง **ฉันขอแนะนำให้แก้ไขคำถามที่ระบุเป้าหมายการทำงาน**: ขนาดข้อความ, ข้อความสูงสุด+ขนาดลายเซ็น, จำเป็นหรือไม่ที่ข้อความจะเข้าใจได้โดยไม่ต้องใช้รหัสสาธารณะ (หากไม่ใช่ สามารถฝังข้อความ Rabin แบบมาตรฐานขนาด 256 ไบต์+ลายเซ็นได้ ข้อความขนาด 222 ไบต์) ข้อจำกัดด้านประสิทธิภาพสำหรับการสร้างลายเซ็นและการยืนยัน (แยกต่างหาก) ข้อกำหนดด้านความปลอดภัยใด ๆ ที่เกินกว่า [มาตรฐาน] (https://en.wikipedia.org/wiki/Digital_signature_forgery) (โดยเฉพาะอย่างยิ่ง เป็นปัญหาหรือไม่ที่ความรู้ ของคีย์ส่วนตัวอนุญาตให้สร้างคู่ของข้อความที่แตกต่างกันด้วยลายเซ็นเดียวกัน?)
Score:2
ธง in

โดยหลักการแล้ว สิ่งที่คุณอธิบายดูเหมือนจะเป็นรูปแบบโดเมนแฮช (FDH) แบบเต็ม ซึ่งเป็นที่รู้กันว่าปลอดภัยสำหรับ RSA.

นอกจากนี้ คุณอาจเลือกแฮชผิด เนื่องจากโดยทั่วไปแล้วคุณต้องการแฮชที่ไม่มีการชนกันเพื่อสร้างลายเซ็น (แม้ว่าจะเป็นเพียงการต้านทานการชนกันของเป้าหมายที่ปรับปรุงแล้ว แต่ eTCR อาจเพียงพอสำหรับแผนการสุ่มเฉพาะ ดูที่ คำตอบนี้ ข้อมูลมากกว่านี้).

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

หากคุณสามารถสร้างรหัสลับได้ MAC แบบ 128 บิตจะปลอดภัยมาก ดังนั้นคุณอาจต้องเสนอข้อความสองข้อความในทิศทางใดทิศทางหนึ่งเพื่อดำเนินการ ECDH แทน เพื่อรับคีย์เซสชันของ MAC

โพสต์คำตอบ

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