ฉันคิดว่าหนึ่งในนั้นเกี่ยวข้องกับการโจมตีแบบหลายเป้าหมาย และอีกอันเกี่ยวข้องกับการโจมตีแบบชนกัน แต่ฉันไม่พบว่าการเข้ารหัสลับที่ใช้แฮชเกี่ยวข้องกับการชนกันของแฮชอย่างไร
1-) พิจารณารูปแบบลายเซ็นครั้งเดียวของ Lamport ต่อไปนี้
- สมมติว่าเป็นฟังก์ชันแฮช 128 บิต $H$ ถูกนำมาใช้
- สุ่มเลือก $p_i$ และ $r_i$ สำหรับ $1\leq ฉัน \leq 128$
- $SK=\{(p_i,r_i)\}_i$ คือกุญแจลับและ $PK=\{(H(p_i),H(r_i))\}_i$ เป็นกุญแจสาธารณะ
- สำหรับข้อความ $M$เราใช้แฮช $h=H(M)$. อนุญาต $h=h_1h_2\cdots h_{128}$
- สำหรับการลงนาม $M$เราเผยแพร่ $p_i$ ถ้า $h_i=0$ และ $r_i$ ถ้า $h_i=1$ แต่ละ $i$.
วิธีที่ฝ่ายตรงข้ามสามารถนำไปใช้ได้ $2^{64}$- โจมตีต้นทุน?
ความปลอดภัยของโครงการนี้คืออะไร? (ฉันคิดว่า 120 บิตเพราะใช้หลายเป้าหมาย นั่นคือเพียงพอแล้วที่จะค้นหาอย่างน้อยหนึ่งรายการ $p_i,r_i$'s. การคาดเดาแบบสุ่มมีปัญหา $\frac{256}{2^{128}}$)
2-) พิจารณาต้น Merkle ดั้งเดิมด้วย $2^{10}$ Lamport ลายเซ็นครั้งเดียวโดยไม่มีบิตมาสก์พร้อมฟังก์ชันแฮช $H$ ใช้ด้านบน ความปลอดภัยของโครงการนี้คืออะไร? (คล้ายกับข้างต้น เรามีความปลอดภัย 120-t บิตหลังจากนั้น $2^t$ ลายเซ็นเพราะ $\frac{256\cdot 2^t}{2^{128}}$)
ฉันคิดว่าถ้าเราใช้คีย์แฮชหรือบิตมาสก์ที่นี่ ความปลอดภัยของโครงร่างนี้จะเป็น 128 บิต เหตุใดเราจึงต้องการทั้งสองอย่าง
หรือ ความปลอดภัยของ SPHINCS+ ที่ไม่มีคีย์แฮชหรือบิตมาสก์คืออะไร