- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
更具体地说,gmpy2.next_prime
函数是否足以找到所需的大素数?或者我应该使用其他许多 gmpy2.*_prp
函数之一吗?
例如,下面的代码是否足以找到合适的加密素数?
import os
import gmpy2
def random(bytez):
seed = reduce(lambda a, b: (a << 8)|ord(b), os.urandom(bytez), 0)
return gmpy2.mpz_urandomb(gmpy2.random_state(seed), bytez*8)
def find_prime(bytez=128):
p = random(bytez)|1
while not gmpy2.is_bpsw_prp(p):
p = random(bytez)|1
return p
def good_pair(p, q):
n = p*q
k = gmpy2.ceil(gmpy2.log2(n))
if abs(p - q) > 2**(k/2 - 100):
return n
return 0
def make_rsa_keypair():
p, q = find_prime(), find_prime()
n = good_pair(p, q)
while not n:
p, q = find_prime(), find_prime()
n = good_pair(p, q)
tot = n - (p + q - 1)
e = (1 << 16) + 1
d = gmpy2.invert(e, tot)
return {
'public':{
'n':n,
'e':e,
},
'private':{
'n':n,
'd':d,
}
}
更新:根据建议更新了代码。
最佳答案
免责声明:我维护gmpy2
。
我建议使用 gmpy2.is_bpsw_prp
而不是 gmpy2.next_prime
。 BPSW 测试会更快,并且没有已知的反例。 is_prime
和 next_prime
检查过去使用,并且可能仍然使用一组固定的基,并且有可能复合通过一系列已知测试。 IIRC,有人找到了通过前 17 次检查的复合 Material 。默认情况下会进行 25 次检查,但这是一个弱点。
我计划在 gmpy2
的下一个版本中包含一个 APR-CL 可证明的素数测试。
在选择 RSA 素数时应遵循特定准则,以防止意外选择创建可轻松因式分解的 n
的素数。
关于python - gmpy2 是否适合在 python 中实现 RSA?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28997364/
我想知道为什么这段代码在 Python 中 print gmpy.sqrt(2009) 给出结果 44,而不是 44.82186966... 就像我想要的那样?如何设置函数以显示十进制数。 提前谢谢你
我想使用导入 gmpy 的 python 脚本。然而,python 总是告诉我: ImportError: 没有名为“gmpy”的模块 我在 Ubuntu 14.04 i686 上,我尝试通过各种方式
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 6 年前。
我需要将一个 64 位整数从 DLL 传递到一个函数中,但 native python int 类型是 12 个字节(sys.getsizeof(1) 返回 12),我收到错误“ValueError:
我知道 import mpmath as mp print mp.libmp.BACKEND 但如果我没记错的话,它不会说我使用的是 gmpy 还是 gmpy2。 另外,每次你使用更新版本的东西时,你
这是我第一次尝试将 JIT 用于 python,这是我想要加速的用例。我读了一些关于 numba 的文章,它看起来很简单,但下面的代码没有提供任何加速。请原谅我可能犯的任何明显错误。 我也尝试按照 c
出于某种原因,我想在我的python(版本3.6.0)上安装gmpy2,我在pycharm上尝试过。 它给了我一条错误消息,如下所示: (我已经安装了pip),有人帮我吗?谢谢! 最佳答案 通常此类问
有人建议我使用 gmpy 来帮助有效地计算大数。在我只使用 python 之前,我的脚本运行了一两天然后内存不足(不确定这是怎么发生的,因为我的程序的内存使用基本上应该始终保持不变。可能是内存泄漏?)
我有 brew installed mpc 和 gmp ,但是当我尝试 pip install gmpy2 我得到一行编译错误 #include "mpc.h" 所以由于某种原因 clang 找不到
我无法在没有警告的情况下在 OS X Mountain Lion 上安装 gmpy(1 或 2)。我试过 pip,我试过编译,我安装了 gcc 4.2.1 并尝试用 i386 arch 编译 gmp(
我正在尝试使用名为 CatMAP 的程序这大量使用了 gmpy 依赖项(根据安装说明,我认为它是 gmpy,而不是 gmpy2)。 我通过 Anaconda 有 Python 2.7.12,但在安装
这方面有什么基准吗??? (我尝试用谷歌搜索一些结果,但没有找到...... 我无法测试 gmpy,因为 gmplib 不会安装在我的笔记本电脑上) 谢谢! 最佳答案 首先,我可能有偏见,因为我是 g
我已经在 Windows10 上安装了 Pyhton 3.7,当我运行 pip install gmpy 时,控制台向我返回此错误: Collecting gmpy Using cached ht
我已经在 Windows10 上安装了 Pyhton 3.7,当我运行 pip install gmpy 时,控制台向我返回此错误: Collecting gmpy Using cached ht
我是一名优秀的程序员,十分优秀!