gpt4 book ai didi

java - 使用 BigInteger.isProbablePrime() 生成加密安全素数

转载 作者:行者123 更新时间:2023-11-29 09:53:49 28 4
gpt4 key购买 nike

您可以使用 BigInteger.isProbablePrime() 生成加密安全素数吗?他们需要什么样的确定性才能“安全”?

最佳答案

我没有加密学位,所以对此持保留态度。

您在这里主要关注两个方面:

  1. 您的素数需要具有不可预测的随机性。这意味着您需要使用诸如 SecureRandom 之类的来源。生成你的素数。无论您对素数有多确定,如果它们是可预测的,整个密码系统都无法实现其目标。如果您使用 BigInteger(int bitLength, int certainty, Random rnd) 构造函数,您可以传入 SecureRandom,因为它是 Random 的子类。

  2. 您的潜在素数需要合理确定是素数(我假设您使用的算法依赖于因式分解的难度)。如果你得到一个可能的素数,但攻击者很有可能在 5 分钟内将其分解,因为它有一个你运行的素数测试从未注意到的因素,那么你的算法有点不走运。一般使用Rabin-Miller,this answer指出 15 的确定性对于 32 位整数是足够的。最大为 40 的值 is recommended ,除此之外的任何内容都毫无意义。

关于java - 使用 BigInteger.isProbablePrime() 生成加密安全素数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23144236/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com