我正在尝试解决密码学CTF挑战,其中涉及采用RSA密钥对(两个大素数)的构造块和消息的加密密码数。为了解密此消息,我需要执行标准加密库不支持的操作,因为使用的公共指数未知,但是我确实有值dp
和{{1} },这意味着我必须执行以下操作:
因此,基本上,我正在将非常大的整数提高为非常大的整数的幂,并且dq
的标准选项导致Python无限期地挂起。那么,如果不使用加密库,如何在Python中执行这些操作?
编辑: 这是导致Python挂起的特定代码和值
pow(x,y)
答案 0 :(得分:3)
pow
带有可选的第三个参数z
,它执行模运算,但比使用%
运算符要快得多:
>>> pow(c, dp, p)
49437413074993986257824490238275931180994249527518860068137626874351971280859988288289074