In this paper, we present a variant of Diem's index calculus algorithm to attack the discrete logarithm problem (DLP) in Jacobians of genus 3 non-hyperelliptic curves over a finite field 𝔽q. We implement this new variant in C++ and study the complexity in both theory and practice, making the logarithmic factors and constants hidden in the O˜-notation precise.
Our variant improves the computational complexity at the cost of a moderate increase in memory consumption, but we also improve the computational complexity
even when we limit the memory usage to that of Diem's original algorithm. Finally, we examine how parallelization can help to reduce both the memory cost per computer and the running time for our algorithms.