Module rsa_python.common.sieveprimes
Expand source code
from math import sqrt
import secrets
def _sieve(length):
# Creates a list with all the primes up to a chosen length. Very
# ineffective for finding large primes. This is for simple RSA testing
# purposes only.
numbers = {i:True for i in range(2,length)} # Primes start at 2
for i in range(2, int(sqrt(length))+1): # Loop for divisors
if numbers[i]:
for j in range(i**2,length,i): # Loop for each number in list
numbers[j] = False
return [i for i in numbers if numbers[i]]
def prime_pair():
""" Randomly pick out two large primes of similar magnitude. """
p = secrets.choice(_sieve(200000)[-5000:])
q = secrets.choice(_sieve(200000)[-5000:])
return p,q
Functions
def prime_pair()
-
Randomly pick out two large primes of similar magnitude.
Expand source code
def prime_pair(): """ Randomly pick out two large primes of similar magnitude. """ p = secrets.choice(_sieve(200000)[-5000:]) q = secrets.choice(_sieve(200000)[-5000:]) return p,q