g^{H-1}y)$と列挙し、効率よく検索できる構造に格納する(baby-step)。$a$の動く範囲全てについて左辺${(g^H)}^a$を計算し、この値と一致する$g^by$が存在するか検索する(giant-step)。そのようなものがなければ$x$は存在しない。計算量に関して、$O(\sqrt{n})$個の$a$のそれぞれについて${(g^H)}^a$を計算し$O(\log{n})$かけて$g^b$の検索するので、合計で$O(\sqrt{n}\log{n})$となる。