Author :
Duta, Cristina-Loredana ; Gheorghe, Laura ; Tapus, Nicolae
Author_Institution :
Dept. of Comput. Sci. & Eng., Univ. Politeh. of Bucharest, Bucharest, Romania
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.
Keywords :
data privacy; public key cryptography; .NET framework; AKS test; APR test; Adleman-Pomerance-Rumley test; Agrawal-Kayal-Saxena test; Baillie-PWS test; Fermat test; LLR test; Lucas test; Lucas-Lehmer test; Lucas-Lehmer-Riesel test; Miller-Rabin test; Pepin test; Pocklington test; Proth theorem; Quadratic Frobenius test; RSA cryptography; Rivest-Shamir-Adelman cryptography; Solovay-Strassen test; data authentication; data integrity; data privacy; data protection; deterministic test; primality testing algorithm; probabilistic test; public-key algorithms; public-key cryptography; Algorithm design and analysis; Cryptography; Polynomials; Probabilistic logic; Software; Software algorithms; Testing; prime numbers; primality test; probabilistic test; deterministic test; Mersenne number; Carmichael number; Fermat number;