| 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
Copyright Sage, 2010. Some rights reserved under creative commons license. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.