เราสามารถใช้ตัวแปรรองของ ขั้นตอนทารก / ขั้นตอนยักษ์ การค้นหา $d$ ด้วยในลำดับที่ $3\,2^{n/2}$ การเพิ่มจุด (และการทำให้เป็นมาตรฐานเพื่อการแสดงจุดเฉพาะ) เราทำขั้นตอนทารกจาก $X_1$และบันไดยักษ์จาก $X_2$ (ในทั้งสองทิศทางในภายหลังเพื่อชดเชยสัญญาณที่ไม่รู้จักของ $x_1-x_2$). มันไป:
- อนุญาต $m=\lceil2^{n/2}\rceil$
- อนุญาต $W_0:=X_1$
- สำหรับ $i$ จาก $1$ ถึง $m-1$ (ขั้นตอนทารก)
- ชุด $W_i=W_{i-1}+G$
หมายเหตุ: ที่นี่ $W_i=X_1+i\,G$
- อนุญาต $H=m\,G$ (ซึ่งสามารถได้รับเป็น $H=W_{m-1}+G-W_0$ )
- อนุญาต $U:=X_2$ และ $V:=X_2-H$
- อนุญาต $j=0$
- ทำซ้ำ (ขั้นตอนยักษ์)
หมายเหตุ: ที่นี่ $U=X_2+(j\,m)\,G$ และ $V=X_2-((j+1)\,m)\,G$
- ถ้า $U$ พบได้ใน $W_i$
- เอาต์พุต $|j\,m-i|$ และหยุด
- ถ้า $วี$ พบได้ใน $W_i$
- เอาต์พุต $(j+1)\,m+i$ และหยุด
- อนุญาต $U:=U+H$ และ $V:=V-H$
- อนุญาต $j:=j+1$
หากเป็นไปตามเงื่อนไขที่ระบุไว้ในหมายเหตุว่าอัลกอริทึมนี้จะหยุดที่เอาต์พุตเสมอ $d$ หลังจากนั้นประมาณ $d/2^{n/2}$ (ที่มากที่สุด $m$) การวนซ้ำของการวนซ้ำ ขอให้สังเกตว่าการใช้โครงสร้างข้อมูลที่เหมาะสม ค่าใช้จ่ายในการค้นหา $U$ และ $วี$ ในตารางของ $W_i$ เป็นค่าคงที่ w.r.t. $n$ดังนั้นต้นทุนการคำนวณหลักคือการเพิ่มจุด (และการทำให้เป็นมาตรฐานของผลลัพธ์เพื่อให้ $W_i$ สามารถค้นหาได้อย่างมีประสิทธิภาพ)
ปัญหาคือสิ่งนี้ต้องการหน่วยความจำจำนวนมากสำหรับตารางของ $W_i$และอัลกอริทึมตามที่ระบุไว้เป็นลำดับ สิ่งนี้สามารถแก้ไขได้ และการค้นหากระจายไปตามเครื่องต่างๆ โดยใช้เทคนิคใน Paul C. van Oorschot และ Michael J. Wiener's การค้นหาการชนกันแบบขนานด้วยแอปพลิเคชัน Cryptanalytic, ใน วารสารวิทยาการเข้ารหัสลับ, 2542.