Abstract

Nowadays, public-key cryptography is widely used to ensure data protection (privacy, integrity, authentication). Public-key algorithms contain, as an essential part of their construction, the usage of prime numbers and of large composite numbers, which have prime factors. Because of this, the security of these algorithms such as RSA (Rivest-Shamir-Adelman) depend on the difficulty to factorize the public keys. For many centuries, mathematicians have been fascinated by the subject of prime numbers, have studied their proprieties and have focused on developing several theories. Many primality tests, deterministic and probabilistic, were proposed to determine whether a number is prime or not. In this paper, we describe the implementation and performance of several primality tests, in order to determine which is more efficient: Fermat's test, Miller-Rabin test, Solovay-Strassen test, Agrawal-Kayal-Saxena (AKS) test, Lucas-Lehmer test, Baillie-PWS test, Pepin's test, Lucas-Lehmer-Riesel (LLR) test, Proth's theorem, Quadratic Frobenius test, Adleman-Pomerance-Rumley (APR) test, Lucas test or Pocklington test. The tests were implemented using .NET framework (C#) and the performance was determined based on input numbers of various sizes and on the type of the primality test (deterministic/probabilistic). These algorithms were also analyzed taking into account their ability to correctly determine the primality of a given number.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call