def generate_check_vector(message, max_length): ''' Args: message, the integer to be authenticated max_length, a value greater than or equal to len(str(message)) Returns: (key, vector) where key is the integer MAC key and vector is the tuple MAC tag ''' prime = get_large_prime(max_length) # the probability of failure for prime p is 1/2^p b = random.get_random_positive_int_in_field(prime) y = random.get_random_int_in_field(prime) return y, (b, (message + b * y) % prime)
def test_random_positive_single(): prime = 3 for i in range(100): random_int = random.get_random_positive_int_in_field(prime) assert random_int > 0