Solinas
A Solinas prime is a prime number of the form 2k - c, where k is a positive integer and |c| is a "small" positive integer, typically bounded by some small power of 2, such as 2k/2. More generally, a Solinas polynomial refers to polynomials of the form xk - c that are irreducible and thus, when evaluated at an integer n, can generate prime numbers for suitable values of n. The term "Solinas" is often associated with the work of Jerome A. Solinas, though others have investigated related forms previously.
Solinas primes and polynomials are of interest primarily in cryptography and computer science, especially in the context of efficient modular arithmetic and elliptic curve cryptography. Their specific structure allows for optimized reduction operations, significantly speeding up computations that involve modular arithmetic. This is because multiplication modulo a Solinas prime can be accomplished through a series of shifts and additions/subtractions, avoiding more computationally expensive division operations.
The efficiency benefits of Solinas primes are most noticeable when implementing cryptographic algorithms in hardware or software where performance is critical. Choosing elliptic curves defined over finite fields with Solinas prime orders allows for faster point multiplication, a fundamental operation in elliptic curve cryptography.
The advantage of Solinas primes lies in the ease of reduction modulo the prime. For example, given a number x and a Solinas prime p of the form 2k - c, reducing x modulo p can be done by expressing x as q * 2k + r, where r is the remainder after dividing by 2k. Then, x is congruent to q * c + r modulo p. If q * c + r is still larger than p, this process can be repeated until a value less than p is obtained. Since c is small, the multiplication q * c* is relatively inexpensive.
It is important to note that not all values of k and c will result in a prime number. Testing primality is still necessary, but the potential for significant performance gains makes Solinas primes an attractive option for particular applications.