[Primes Home][Home]
A prime number (\(p\)) is defined as safe if it is a prime number and also if \(\frac{p-1}{2}\) is also prime:
Selecting a safe prime number
[Primes Home][Home]
A prime number (\(p\)) is defined as safe if it is a prime number and also if \(\frac{p-1}{2}\) is also prime:
|
In cryptography, we often search for safe primes. A safe prime (\(p\)) - or also known as a Sophie Germain prime - is safe when \(2p + 1\) is also prime. Sophie Germain was a French mathematician and who used safe primes to investigate Fermat's Last Theorem. Overall safe primes are used in cryptography, as they are robust against attacks within discrete log methods (such as for the Diffie Hellman methods). In the follow we use the Miller Rabin test for primality:
import sys from libnum import prime_test_miller_rabin p=11 if (len(sys.argv)>1): p=int(sys.argv[1]) flag1=prime_test_miller_rabin(p) flag2=prime_test_miller_rabin((p-1)//2) print ("Is p={0} a safe prime?".format(p)) print ("\n prime(p):\t{0}".format(flag1)) print (" prime((p-1)/2)\t{0}".format(flag2)) if (flag1==False): print("\nThe number is not prime") elif (flag1==True and flag2==True): print("\nThe prime is safe") else: print("\nNot a safe prime")