Kunerth's algorithm

Kunerth's algorithm is an algorithm for computing the modular square root of a given number.[1][2] The algorithm does not require the factorization of the modulus, and uses modular operations that are often easy when the given number is prime.

Algorithm

To find from a given value

it takes the following steps:

  1. Find the modular square root . This step is quite easy when is a prime, irrespective of how large is.
  2. Solve a quadratic equation associated with the modular square root of . Most of Kunerth's examples in his original paper solve this equation by having be a integer square and thus setting to zero.
    Expand the left hand side of the following equation:
    Expanding the left hand side results in a quadratic form . One can then make sure that the equation can be solved by adjusting so as to make a square.
  3. Having solved the associated quadratic equation we now have the variables and set = (if in the quadratic is a natural square).
  4. Solve for variables and the following equation:
  5. Obtain a value for via factorization of the following polynomial:
    obtaining an answer like
  6. Obtain the modular square root by the equation. Remember to set such that the term above is zero. Thus would be 37/9 or -1/25.

Example

To obtain first obtain .

Then expand the polynomial:

into

Since, in this case the C term is a square, we take and compute (in general, ).

Solve for and the following equation
getting the solution and . (There may be other pairs of solutions to this equation.)
Then factor the following polynomial:
obtaining
Then obtain the modular square root via
Verify that

In the case that has no answer, then can be used instead.

See also

References

  1. ^ Adolf Kunerth, "Sitzungsberichte. Academie Der Wissenschaften" vol 78(2), 1878, p 327-338 (for quadratic equation algorithm), pp. 338–346 (for modular quadratic algorithm), available at Ernest Mayr Library, Harvard University url="https://pdfhost.io/v/~OwxzpPNA_KUNERTH_1878" retrieved="09/09/2024"
  2. ^ Leonard Eugene Dickson, "History of Numbers", vol 2, pp. 382–384.
  • Adolf Kunerth, "Sitzungsberichte. Academie Der Wissenschaften" vol 75, II, 1877, pp. 7–58
  • Adolf Kunerth, "Sitzungsberichte. Academie Der Wissenschaften" vol 82, II, 1880, pp. 342–375