-1

我正在解决一个 CTF,我在其中获得了公钥、私钥和密文。挑战非常不对称。

我已经使用 RsaCTFTool 从私钥(如 n、e 等)中提取了信息。密文:

e51dadb138bcfc8f132fb353cb49f1c8c5543f4e7b81a071882b1e278c7b96db88f2dc0a73b6cb4f827f3fe6b83344ab625c1060a36754eae25d1cf96a2885c6d81706ef9e041a9f7e4c688a65d35b47cdbb0aa8759c8e60f46a070c0dd289d57f4bf9b5f37a687c104d00bb4b732d26ab042b624431c071ab35e351613504fe4c2de6bc0d9be0a856f2f6d89a883c134351469f7489ad28cc6795e35dc6fb2e207c736d8d37863c09aec376e74af3ec37ae0d3b18083681989ad6394d6837fe66fccd506c85daf8b2b5ff3e544cc7098a1e3b67e5737037217fe7a0df79d002420db69c561d2f0c420d74898fd120540d32dfb63cf5059db2c7ef41697bcb8f

[*] n: 32317006071311007300714876688669951960444102669715484032130345427524654951631353355419877650806916212276402500548858834151025886661601982160629740366812343760839221218796456588791364620661035477524068742062486001097578134510998674555248555977747978320447065884046895815192913148345135256027099316122532348924259238397978283369582137813597737466275611732114098373554060037893185561621885934653748989988135247387463949515190516437670638317207973599216865318816980188306165655166925075452855367348439305737609452524641689752934451982713102744691251509730280711661703014774940296810705133733436287195960150698286350156051
[*] e: 257
[*] d: 14209422902949975972687864069337371873658301952053889866267428145176210153830005414065495047558939486478913389917442346001446947798503568748828845563823306934451295278046420636065038187475956285799457761606008222714534141508468593902338248613192907718463061282845032744506312374331101622724379760256366887701980426342828525914785768917691026071918457899397066023972688432889815537699038485334538980927139333121251851472015703810302682917187631947593058459285485995905464867503286976169927144638379676893116042605621048756688223173937985042633157681027445524961721382751577830261371426150849431032499353773954967224241
[*] p: 115792089237316195423570985008687907853269984665640564039457584007913129619947
[*] q: 279095111627852376407822673918065072905887935345660252615989519488029659709778432042912489080260982873534406667046402741231178055900928198150927717401960989753601167211896164296563674390493909545813323539001476910589595893450135301171012113846149209405654522919917108018588014016346442925910239196879427209028494556611661684818357014351331565561880338132678054223713329027342982211936817087542018455909563278773277330177562715212789253450454970024068303933791629914206995501340623183597557490539978539979781627368256117986337310670330477433

#!/bin/env python
from Crypto.Util.number import inverse

e=257

c=e51dadb138bcfc8f132fb353cb49f1c8c5543f4e7b81a071882b1e278c7b96db88f2dc0a73b6cb4f827f3fe6b83344ab625c1060a36754eae25d1cf96a2885c6d81706ef9e041a9f7e4c688a65d35b47cdbb0aa8759c8e60f46a070c0dd289d57f4bf9b5f37a687c104d00bb4b732d26ab042b624431c071ab35e351613504fe4c2de6bc0d9be0a856f2f6d89a883c134351469f7489ad28cc6795e35dc6fb2e207c736d8d37863c09aec376e74af3ec37ae0d3b18083681989ad6394d6837fe66fccd506c85daf8b2b5ff3e544cc7098a1e3b67e5737037217fe7a0df79d002420db69c561d2f0c420d74898fd120540d32dfb63cf5059db2c7ef41697bcb8f

p=115792089237316195423570985008687907853269984665640564039457584007913129619947

q=279095111627852376407822673918065072905887935345660252615989519488029659709778432042912489080260982873534406667046402741231178055900928198150927717401960989753601167211896164296563674390493909545813323539001476910589595893450135301171012113846149209405654522919917108018588014016346442925910239196879427209028494556611661684818357014351331565561880338132678054223713329027342982211936817087542018455909563278773277330177562715212789253450454970024068303933791629914206995501340623183597557490539978539979781627368256117986337310670330477433

n=32317006071311007300714876688669951960444102669715484032130345427524654951631353355419877650806916212276402500548858834151025886661601982160629740366812343760839221218796456588791364620661035477524068742062486001097578134510998674555248555977747978320447065884046895815192913148345135256027099316122532348924259238397978283369582137813597737466275611732114098373554060037893185561621885934653748989988135247387463949515190516437670638317207973599216865318816980188306165655166925075452855367348439305737609452524641689752934451982713102744691251509730280711661703014774940296810705133733436287195960150698286350156051

phi=(p-1)*(q-1)

d=inverse(e,phi)

m=pow(c,d,n)

print(m.decode('hex'))

它显示错误。请帮帮我

4

1 回答 1

0

首先,您使用的是c=e51dadb...不带引号的。然后,将它传递给 Pow 函数,该函数只接受整数。

我建议您在标准库中的 Pow()此处查看它

对于加密 ctfs,如果您传递正确的参数,已经有网站在线解决它们。

于 2019-04-13T08:43:18.200 回答