สวัสดี,
ฉันมีคำถามเกี่ยวกับความซับซ้อนของเวลาของการโจมตีแบบกลางในการเข้ารหัส RSA แบบเรียน สมมติว่าฉันพยายามเข้ารหัสคีย์สมมาตรที่มีความยาวต่างกันโดยไม่มีการเติมโดยใช้อัลกอริทึม RSA คีย์ตัวอย่าง:
- คีย์ DES 56 บิต (มีแพริตีบิต): DA13511CAB329E32 (ไม่มีแพริตีบิตสามารถแยกตัวประกอบได้: BC6AF11Ã12864009)
- คีย์ Skipjack 80 บิต: 54C22E82E4E2F5FD9A5D (สามารถแยกตัวประกอบได้: 3537Ã197BF2D963817B70B)
- คีย์ AES 128 บิต: CF15C540E2E43F764B1F995E30BBE883 (สามารถแยกตัวประกอบได้: BBC80693039D7291Ã11A51051306064BD3)
ตอนนี้ คีย์สมมาตรแต่ละคีย์จะถูกเข้ารหัสด้วยคีย์สาธารณะ RSA:
เลขชี้กำลัง: 65537 โมดูลัส: สุ่มและแตกต่างกันสำหรับการเข้ารหัสแต่ละครั้ง
ฉันรู้: c (ข้อความเข้ารหัส RSA), e (เลขชี้กำลัง), n (โมดูลัส) จากสมการต่อไปนี้:
$c=k^e\bmod n$
และฉันพยายามหา k (คีย์สมมาตร)
ในการพบกันตรงกลางฉันต้องทำดังต่อไปนี้:
สำหรับคีย์สมมาตรที่มีคีย์สเปซเท่ากับ n (สำหรับ DES $n=2^{56}$, สำหรับสคิปแจ็ค $n=2^{80}$, สำหรับ AES $n=2^{128}$) ฉันต้องสร้างอาร์เรย์ที่เชื่อมโยง A (รหัสเทียม):
ตอนนี้ฉันพยายามค้นหาตัวประกอบสองตัวของ k ตัวแรกอยู่ในอาร์เรย์ A แล้ว อีกตัวจะถูกค้นหาในลูป (รหัสเทียม):