如何生成素数 p(最少 2048 位)和 q(最少 224 位),其中 q | p-1
How to generate prime p (minimum 2048 bits) and q (minimum 224 bits) where q | p-1
我想测试我的算法,但我需要一对 p 和 q,其中 q|p-1,p 的最小长度 = 2048 位,q 的最小长度 = 224 位。
我可以使用 NextPrime[2^2048] 或 SageMath 使用 prime.next(pow(2,2048))
where prime = Primes()
.
用 Wolframalpha 找到 p
但是,找到 q 对我来说很难。我在 SageMath 中尝试使用椭圆曲线方法 (ecm.factor(p-1)
) 并找到最小长度为 224 的因子,它花了一整夜(已经超过 10 个小时并且仍然 运行)。
任何人都可以帮助我,找到它的最佳方法是什么?或者任何人都可以分享一对 p (min 2048
) 和 q (min 224
)(我只是想测试一下)?
选择一个质数q和一个大小合适的乘数k,然后计算对应的p = k × q + 1。如果 p 是素数,你就完成了。否则,递增 k 并重试。
我想测试我的算法,但我需要一对 p 和 q,其中 q|p-1,p 的最小长度 = 2048 位,q 的最小长度 = 224 位。
我可以使用 NextPrime[2^2048] 或 SageMath 使用 prime.next(pow(2,2048))
where prime = Primes()
.
但是,找到 q 对我来说很难。我在 SageMath 中尝试使用椭圆曲线方法 (ecm.factor(p-1)
) 并找到最小长度为 224 的因子,它花了一整夜(已经超过 10 个小时并且仍然 运行)。
任何人都可以帮助我,找到它的最佳方法是什么?或者任何人都可以分享一对 p (min 2048
) 和 q (min 224
)(我只是想测试一下)?
选择一个质数q和一个大小合适的乘数k,然后计算对应的p = k × q + 1。如果 p 是素数,你就完成了。否则,递增 k 并重试。