klefki.numbers.primes

Module Contents

Functions

ipow(a, b, n)

calculates (a**b) % n via binary exponentiation, yielding itermediate

rabin_miller_witness(test, possible)

Using Rabin-Miller witness test, will return True if possible is

default_k(bits)

is_probably_prime(possible, k=None)

generate_prime(bits, k=None)

Will generate an integer of b bits that is probably prime

klefki.numbers.primes.ipow(a, b, n)

calculates (a**b) % n via binary exponentiation, yielding itermediate results as Rabin-Miller requires

klefki.numbers.primes.rabin_miller_witness(test, possible)

Using Rabin-Miller witness test, will return True if possible is definitely not prime (composite), False if it may be prime.

klefki.numbers.primes.smallprimes = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]
klefki.numbers.primes.default_k(bits)
klefki.numbers.primes.is_probably_prime(possible, k=None)
klefki.numbers.primes.generate_prime(bits, k=None)

Will generate an integer of b bits that is probably prime (after k trials). Reasonably fast on current hardware for values of up to around 512 bits.