Jump to content

Kunerth's algorithm

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Lambiam (talk | contribs) at 09:53, 18 January 2025 (Algorithm: clearer, I hope). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

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. Even large moduli, such as , can have their square roots computed quickly via this method.
    The parameters of the polynomial expansion are quite flexible, in that can be done, for instance. It is quite easy to choose and such that is a square. The modular square root of can be taken this way.
  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