计算大十六进制数的模数而不会溢出

时间:2019-05-27 10:48:14

标签: python sage

我正在尝试对签名进行一些密码学问题,但是我的值是十六进制的,它们太高了,无法在SageMaths上进行计算,而在python和sage中都不会溢出。我将如何解决这个问题?我尝试的鼠尾草代码如下。

在python和sage中尝试

Service

  

OverflowError:指数必须最大为9223372036854754775807

1 个答案:

答案 0 :(得分:1)

Python的pow函数假装对其进行计算:

>>> hex(pow(M, D, N))
'0x274e84c26582b994d2fda202d6774579e9124d4f07e0620c35df8f499fdf9ed1736703d0d613bb805ec1030f6a9130fbdcf5a0f2dacf23bd9382b8112309b0fbccae7115d4a68d4660f2b86758b8b16a0affa96ac9776934d4cf55d9ad64bf3a4b3adee1cc0633401319ac77d76cf6b79835b1c831a787b4e1f78d615b6a50856f15d08dcd94215a99644b822437ba1bb27dc4ef5e3d30e661bed7c598159854683ded1da06939ece2239daf6d3207d8f093a10210c12e3c405f3f7d4d89e2fca7c9d8b2272ddd6eaba0ff8f553f9e0a3440e82db55bc053727474f0701e45da59a5ef02f5307e9ae8ade39862e8ccdcc14d3107485bcf5c7bb01600ff8932f126561a474c41fc23d9af4651f2c8415d19a2514c37f37b360243149573afabdcc4aa1db33f9346e89006d5577dcbb1ddd31db28b89f48c4f8f4bb0c61bb66b9c2998a1b7229f372e1e2e3d14905f1c6f9e37dd0acbabe1fad962fd2d12d162a8aeb9879702984ecdbf4978a5bfdf2b6204eeb077f0dab98d1e815edd26a66f49'