ฉันกำลังพยายามแก้ปัญหา CTF ที่เกี่ยวข้องกับการเข้ารหัส RSA
ฉันสามารถเรียกใช้ไบนารีของความท้าทายที่จะอ่านแฟล็กจากไฟล์ แฟล็กจะตรงกับ RegEx ต่อไปนี้:
AB1234C\{[0-9a-f]{32}\}\n
ดังนั้นค่าสถานะทั้งหมดคือ 42 ไบต์รวมถึงการขึ้นบรรทัดใหม่
จากนั้นแฟล็กจะถูกเสริมด้วยการเติมแบบสุ่มรวมเป็น 128 ไบต์
ฉันสามารถเลือกเลขชี้กำลังสาธารณะ e ตราบใดที่ e>1 ไบนารีจะสร้างโมดูลัส 2048 บิตแบบสุ่มโดยใช้ฟังก์ชันไพธอน Crypto.PublicKey.RSA.generate(บิต=2048)
ไบนารีจะพิมพ์โมดูลัสและข้อความเข้ารหัสของแฟล็กบุนวมที่เข้ารหัส
ฉันสามารถเรียกใช้ไบนารี่ได้หลายครั้ง โมดูลัสและการเติมจะแตกต่างกันระหว่างการรันแต่ละครั้ง
ฉันคิดว่ามันอาจเกี่ยวข้องกับการโจมตีของ Hastad แต่ดูเหมือนว่าจะใช้ได้กับการขยายเชิงเส้นเท่านั้น และการโจมตีด้วยแป้นสั้นของ Coppersmith จะทำงานก็ต่อเมื่อคุณมีข้อความสองข้อความที่มีการเติมแบบสุ่ม แต่เข้ารหัสด้วยโมดูลัสเดียวกัน ซึ่งฉันไม่มีที่นี่เนื่องจาก ความจริงที่ว่าโมดูลัสที่แตกต่างกันถูกสร้างขึ้นทุกครั้งที่ฉันเรียกใช้ไบนารี
ฉันยังเป็นมือใหม่เมื่อพูดถึง crypto ดังนั้นฉันอาจเข้าใจผิดเกี่ยวกับการโจมตีเหล่านั้นและอาจพลาดบางสิ่งที่ชัดเจน
ฉันเชื่อว่าช่องโหว่นี้อาจเกี่ยวข้องกับขนาดของช่องว่างภายใน เนื่องจากข้อความที่บุนวมมีขนาดเพียงครึ่งหนึ่งของความยาวของโมดูลัส
ฉันไม่ต้องการวิธีแก้ปัญหา แต่เพียงแค่สะกิดไปในทิศทางที่ถูกต้อง ขอบคุณ.