gpt4 book ai didi

python - 如何在 RSA 上加密大于 N 的数字?

转载 作者:太空宇宙 更新时间:2023-11-04 10:38:44 25 4
gpt4 key购买 nike

这是一个例子:

p = 11, q = 5, N = p*q = 55, 选择加密指数e = 3, 所以d = e^-1 mod (p-1)(q-1) = 27.

如果我想加密 x=13,x^e=13^3=52mod55。

我知道怎么加密一个小于N的数,但是怎么加密一个大于N的数呢?

我知道如果X大于N,我们要把X分解成几个部分分别加密,但不知道RSA是怎么分解的?

可选问题:

如何在IOS或python上用RSA加密文件?

最佳答案

您不使用 RSA 来加密长消息。

正确的方法是使用 hybrid encryption相反:

  • 生成随机 AES key ,使用 AES 加密实际数据。最好使用 AES-GCM 等身份验证模式。
  • 使用 RSA 加密 AES key 。这个 key (126 到 256 位)足够小,可以放入一个 RSA block 中。例如,使用小而弱的 1024 位 RSA key ,您有 500-700 位用于实际数据(其余由填充消耗)。
  • 密文由RSA加密的AES key 和AES加密的文件组成。

    为了安全起见,必须在此处应用填充,即 OAEP .大多数其他填充,包括流行的 PKCS#1v1.5 填充,都不安全。

不要尝试将文件拆分为使用 RSA 加密的 block 。没有执行此操作的标准方法,因为这是一个坏主意。

关于python - 如何在 RSA 上加密大于 N 的数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22141410/

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