Formal and Efficient Primality Proofs by Use of Computer Algebra Oracles (original) (raw)
Related papers
2014
| This article presents a primality test known as APR (Adleman, Pomerance and Rumely) which was invented in 1980. It was later simplied and improved by Cohen and Lenstra. It can be used to prove primality of numbers with thousands of bits in a reasonable amount of time. The running time of this algorithm for number N is O((lnN)C ln ln lnN) for some constant C. This is almost polynomial time since for all practical purposes the function ln ln lnN acts like a constant.
Papers from the international symposium on Symbolic and algebraic computation - ISSAC '92, 1992
Rabin's algorithm is commonly used in computer algebra systems and elsewhere for primality testing. This paper presents an experience with this in the Axiom* computer algebra system. As a result of this experience, we suggest certain strengthenings of the algorithm.
Exploring Factorization and Primality
2009
There are various algorithms for determining whether a given number is prime. When dealing with large numbers, some of these methods are inapplicable while others are time-consuming and inecient. This paper explores some useful methods for primality testing. It is assumed that the reader has previous experience with mathematical notations and computer programming.
Cyclotomy Primality Proofs and their Certificates
The first efficient general primality proving method was proposed in the year 1980 by Adleman, Pomerance and Rumely and it used Jacobi sums. The method was further developed by H. W. Lenstra Jr. and more of his students and the resulting primality proving algorithms are often referred to under the generic name of Cyclotomy Primality Proving (CPP). In the present paper we give an overview of the theoretical background and implementation specifics of CPP, such as we understand them in the year 2007.
An Efficient Modular Exponentiation Proof Scheme
arXiv (Cornell University), 2022
We present an efficient proof scheme for any instance of left-to-right modular exponentiation, used in many computational tests for primality. Specifically, we show that for any (a, n, r, m) the correctness of a computation a n ≡ r (mod m) can be proven and verified with an overhead negligible compared to the computational cost of the exponentiation. Our work generalizes the Gerbicz-Pietrzak proof scheme used when n is a power of 2, and has been successfully implemented at PrimeGrid, doubling the efficiency of distributed searches for primes.
Fast verification, testing, and generation of large primes
Theoretical Computer Science, 1979
We present a prime certification method which permits shorter certificates of primality than the method analyzed by Pratt. We analyze the expected time required by a stochastic method for showing that n is prime, given a factorization of n-1. We use this method, together with Rabin's stochastic m.c;hOd for verifying COmpOSiteneSs, to obtain an algorithm for generating arbitrarily large pssnes and short ce&kates Of their primahty. We give plausibility arguments that this method can g(znerate primes larger than n in expected time polynomial in log n. We analyze several such prime generation algorithms*
How to Prove That a Committed Number Is Prime
1999
The problem of proving a number is of a given arithmetic format with some prime elements, is raised in RSA undeniable signature, group signature and many other cryptographic protocols. So far, there have been several studies in literature on this topic. However, except the scheme of Camenisch and Michels, other works are only limited to some special forms of arithmetic format with prime elements. In Camenisch and Michels’s scheme, the main building block is a protocol to prove a committed number to be prime based on algebraic primality testing algorithms. In this paper, we propose a new protocol to prove a committed number to be prime. Our protocol is O(t) times more efficient than Camenisch and Michels’s protocol, where t is the security parameter. This results in O(t) time improvement for the overall scheme.
Dei: A Theorem Prover for Terms with Integer Exponents
Lecture Notes in Computer Science, 2009
An extension of the superposition-based E-prover [8] is described. The extension allows terms with integer exponents [3] in the input language. Obviously, this possibility increases the capabilities of the E-prover particularly for preventing non-termination.
Taxonomy and Practical Evaluation of Primality Testing Algorithms
ArXiv, 2020
Modern cryptography algorithms are commonly used to ensure information security. Prime numbers are needed in many asymmetric cryptography algorithms. For example, RSA algorithm selects two large prime numbers and multiplies to each other to obtain a large composite number whose factorization is very difficult. Producing a prime number is not an easy task as they are not distributed regularly through integers. Primality testing algorithms are used to determine whether a particular number is prime or composite. In this paper, an intensive survey is thoroughly conducted among the several primality testing algorithms showing the pros and cons, the time complexity, and a brief summary of each algorithm. Besides, an implementation of these algorithms is accomplished using Java and Python as programming languages to evaluate the efficiency of both the algorithms and the programming languages.
The greatest common divisor: A case study for program extraction from classical proofs
Lecture Notes in Computer Science, 1996
Yiannis Moschovakis suggested the following example of a classical existence proof with a quantifier-free kernel which does not obviously contain an algorithm: the gcd of two natural numbers a 1 and a 2 is a linear combination of the two. Here we treat that example as a case study for program extraction from classical proofs. We apply H. Friedman's Atranslation [3] followed by a modified realizability interpretation to extract a program from this proof. However, to obtain a reasonable program it is essential to use a refinement of the A-translation introduced in Berger/Schwichtenberg [2, 1]. This refinement makes it possible that not all atoms in the proof are A-translated, but only those with a "critical" relation symbol. In our example only the divisibility relation •|• will be critical.