🤖 AI Summary
Solving binary linear Diophantine equations—ubiquitous in cryptographic systems such as RSA and ECC—remains computationally demanding, particularly in average-case scenarios. Method: This paper introduces a more efficient algorithm by conducting fine-grained recursive analysis and periodic modeling of extended Euclidean-type algorithms. We first discover and rigorously characterize the periodic behavior of the number of recursive calls, deriving a closed-form expression for the exact average-case complexity. Furthermore, we design an adaptive iterative variant optimized by $gcd(a,b)$, achieving $O(log b / gcd(a,b))$ average iterations when a solution exists. Contribution/Results: We prove that the average recursion depth decreases monotonically with increasing $gcd(a,b)$. Empirical evaluation on $n$-bit random inputs demonstrates that the proposed algorithm significantly reduces average iteration counts compared to both the standard extended Euclidean algorithm and state-of-the-art baselines.
📝 Abstract
Solving two variable linear Diophantine equations has application in many cryptographic protocols such as RSA and Elliptic curve cryptography. The Extended Euclid's algorithm is the most widely used algorithm to solve these equations. We revisit two algorithms to solve two variable linear Diophantine equations. For one of those, we do a fine-grained analysis of the number of recursive calls and arrive at a periodic function that represents the number of recursive calls. We find the period and use it to derive an accurate closed-form expression for the average number of recursive calls incurred by that algorithm. We find multiple loose upper bounds on the average number of recursive calls in different cases based on whether a solution exists or not. If we know that for a fixed value of $a,b$ and a varying $c$, an equation $ax+by=c$ (where $a>b$) is solvable, then we can find the solution in $Oleft(frac{log b}{gcd(a,b)}
ight)$ average number of recursion or steps. We computationally evaluate this bound as well as one more upper bound and compare them with the average number of recursive calls in Extended Euclid's algorithm on a number of random $ n$-bit inputs. We observe that the average number of iterations in the analyzed algorithm decreases with an increase in $gcd(a,b)$. We propose an iterative version of the algorithm. We implement this algorithm and find that the average number of iterations by our algorithm is less than that of two existing algorithms.