message_cipher.prime_generator module

This module provides functionality to generate large prime numbers. All code below is improved upon code sourced from: https://www.geeksforgeeks.org/how-to-generate-large-prime-numbers-for-rsa-algorithm/

message_cipher.prime_generator.generate_large_prime() int

Generate a NUMBER_OF_BITS-bit prime number.

Returns:

A large prime number.

Return type:

int

message_cipher.prime_generator.get_low_level_prime(number_of_bits: int) int

Generate a prime candidate divisible by first primes.

Parameters:

number_of_bits (int) – The desired size (in binary bits) of the random number.

Returns:

A random prime number that is number_of_bits bits long.

Return type:

int

message_cipher.prime_generator.is_miller_rabin_passed(miller_rabin_candidate: int) bool

Run 20 iterations of Rabin Miller Primality test.

Parameters:

miller_rabin_candidate (int) – The number to test for primality.

Returns:

True if the number is probably prime, otherwise False

Return type:

bool

message_cipher.prime_generator.n_bit_random(number_of_bits: int) int

Returns a random number between 2^(number_of_bits - 1) + 1 and 2^number_of_bits - 1

Parameters:

number_of_bits (int) – The desired size (in binary bits) of the random number.

Returns:

A random number that is number_of_bits bits long.

Return type:

int