ฉันขาดอะไรไปในการให้เหตุผล
สองสิ่ง:
มีกลยุทธ์อื่นนอกเหนือจากการเรียงลำดับเพื่อค้นหาการชนกัน สิ่งหนึ่งที่ชัดเจนคือการสร้างตารางแฮชขนาดใหญ่ ในทางปฏิบัติแล้ว การเรียงลำดับน่าจะทำได้เร็วกว่านี้ (เพราะตารางแฮชขนาดใหญ่นั้นใช้งานไม่ได้) แต่ในทางทฤษฎี ตารางแฮชจะช่วยให้ $O(1)$ เข้าถึงที่การวิเคราะห์ความซับซ้อนนี้สันนิษฐานโดยปริยาย
$O(n \log n)$ ไม่ใช่เวลาการเรียงลำดับที่เหมาะสมที่สุด หากการดำเนินการเดียวที่คุณสามารถทำได้กับข้อมูลคือการเปรียบเทียบและการเคลื่อนย้ายข้อมูล อย่างไรก็ตาม เราไม่ได้ถูกจำกัดแบบนั้นจริงๆ วิธีการหนึ่งที่ชัดเจนคือการใช้วิธีการเรียงลำดับ Radix ซึ่งอาจมีความซับซ้อนของเวลาที่ดีกว่ามาก
ตามจริงแล้ว เรามักเพิกเฉยต่อเวลาที่ใช้โดยการดำเนินการที่ไม่ใช่การเข้ารหัสเหล่านี้ (เช่น การค้นหาและการจัดเรียง) เว้นแต่ว่าจะใช้เวลาส่วนใหญ่ของเวลาทั้งหมด ตรงไปตรงมา อาจมีรายละเอียดมากมายเมื่อคุณลงไปที่ระดับนั้น (เช่น ความซับซ้อนในการจัดการกับ $O(2^{56})$ ข้อมูล) และแทนที่เราจะนับการประเมิน DES
เราไม่ได้พยายามที่จะทำลาย 2DES; เรากำลังแสดงให้เห็นว่าการทำลาย 2DES สามารถทำได้จริงในเวลาจริง หากเราพยายามทำลายมันจริงๆ เราอาจลงเอยด้วยการใช้การค้นหาแลมบ์ดาแทน ซึ่งจะมีความซับซ้อนเพิ่มขึ้นอย่างต่อเนื่องและไม่รับประกันว่าจะนำไปใช้ได้ง่ายกว่า (เนื่องจากการค้นหาแลมบ์ดาจะใช้หน่วยความจำน้อยกว่ามาก และ ยังขนานกันได้ง่าย)