首页 > 解决方案 > 解释器需要很长时间来处理数字

问题描述

我正在尝试实现 One Time Pad 加密,在握手过程中,python 停留时间太长而无法执行此操作

public = (private ** prime1) % prime2

其中 public 是我打算发送的数字 private 是由 ramdom.getrandbits (128) 生成的随机 128 位数字 prime1 和 prime2 是两个常见的素数 128bits

标签: pythonpython-3.xcryptographynumbers

解决方案


原则上,您可以使用函数的三参数形式pow()。它使用更有效的模幂运算算法。

public = pow(private, prime1, prime2)

但是,我担心您将其描述为用于“一次性加密”的方式。一次性填充需要一个随机的预共享密钥,该密钥大于将要传输的所有消息的总大小。您正在实施的看起来更像是 DH 密钥交换,它不是此过程的一部分,也不能用于它。


推荐阅读