1 | initial version |
You can use a rejection method: try a new random prime until you get a safe one:
sage: def rdp(nbits=512):
....: while True:
....: p = random_prime(2^nbits-1, false, 2^(nbits-1))
....: if ZZ((p+1)/2).is_prime():
....: return p
....:
sage: rdp()
9075892275451579482861175762932106084253268411540277039314929550059578374557168263115660009649748089090540343402740578371326513035684052420493647284687893
For other number of bits:
sage: rdp(200)
1011992113066581800000651861935373321407012277464235251049677
2 | No.2 Revision |
You can use a rejection method: try a new random prime until you get a safe one:
sage: def rdp(nbits=512):
....: while True:
....: p = random_prime(2^nbits-1, false, 2^(nbits-1))
....: if ZZ((p+1)/2).is_prime():
ZZ((p-1)/2).is_prime():
....: return p
....:
sage: rdp()
9075892275451579482861175762932106084253268411540277039314929550059578374557168263115660009649748089090540343402740578371326513035684052420493647284687893
For other number of bits:
sage: rdp(200)
1011992113066581800000651861935373321407012277464235251049677