system32.kr의 rsa101 풀이입니다.
문제내용입니다.
p : 11820547749265118607908336189140061659994883367758644383099900753008997316272341754974105712436833864387373302687964986221522289414610698068230842231006759
q : 2076478388690715447644222392295584753007140199740835763821170999934221864895193172716587341806099928941239417181782165665806324184552950128351328886814107
e : 65537
c : 15175007508230661949213125841853820919948368859221761481847700530363990883761097704372435675552656459480039957857925187102590466676354015036181849182155680399350099015532296504916485091012255771133872737687990897080899160898509685794777509104691093814282101492973637294053730555124794841034604131492169339102
p, q, e를 이용해 개인키를 생성하고 c를 복호화 하면 될 것으로 보입니다.
rsatool.py를 이용해 개인키를 생성했습니다.
python rsatool.py -p 11820547749265118607908336189140061659994883367758644383099900753008997316272341754974105712436833864387373302687964986221522289414610698068230842231006759 -q 2076478388690715447644222392295584753007140199740835763821170999934221864895193172716587341806099928941239417181782165665806324184552950128351328886814107 -o private.pem
Using (p, q) to initialise RSA instance
n =
22f411ffb9af2f9a00c69a748d13175e23c56414b7b89ca0f3664e94960b5a144933f0ec92dbe2f9
b302d356c9f05a05cd7529bdb5a0e1ac3bbc0acc06d5847335114e0436090c829515321173e4eb44
ad5d538f4333981c7518ad2e8909372be0b0a1438026ac91ac66a6e7ab5974ea20e7423a63de228b
5ca70d0fc26a6c9d
e = 65537 (0x10001)
d =
1bb6e2be9d806681f9b37fac825f6cdbdc091b3dc21ec3326b4be76ab13df702b6b85483803e914d
e3be8dcbf6fa78a6b92df916cef8ed771f360e698fd1a4ded205086eff52626529cd3394508ae2cb
cd7d5f96f25b1212b4752232cb01ebc6cd85a2fc621c16905dce7c415a3336fe8bb98a3f9f1eda26
2a5589f531803091
p =
e1b1a243eff5356b26ffa41b8ad3b2781fcd81d148cf921ab2c31e3adc78108ff3fd25667e661634
3769a8271bada71d0284aa224397f5f4db3a7cde8fcfa627
q =
27a59d6cb8c26315b6f1f572e28c6d3e372a44ebfb5db7279502e608661851e644cde326e615338e
a426774b568f7b070f7cacd1b5c05339ecb468e292d7759b
Saving PEM as private.pem
e는 값을 자동으로 잡아주었네요 ㅇㅅㅇ
이제 생성된 private.pem을 가지고 openssl을 이용해 c를 복호화 하면 되나.... 자꾸 오류가 나서 온라인 복호화툴을 이용하겠습니다... :(
제가 복호화에 이용한 사이트입니다 : http://extranet.cryptomathic.com/rsacalc/index
위에 표시된 n, d, e를 차례로 입력해줍니다.
input data에는 c값을 입력해 주면 되는데, hex값으로 넣어달라고 하기 때문에.. hex로 변환해주어야 합니다.
이 과정도 온라인 툴의 도움을... : https://www.mobilefish.com/services/big_number/big_number.php
변환하면 이런 값이 나옵니다.
159C243DE63E52D8C6F5F37040A43788061847824AADCFC8B26DA05992C5C3DD5D344915F69DCE6961BD199761962CF706BF7D93CA1DC941C42F5302FF1A8F8853A20C591F2C28266502377710B66B44B8701BE4D1A471D0136FCF8BD3EA1813D4BB2C3D6A7C9C9A7A5B2148E52AA386C29887934F53A89F73CD467B3D4950DE
이 값을 input data란에 채워주고 decrypt에 체크한후 calculate해주면 복호화된 값이 출력됩니다.
464c41477b77336c63306d653273797374656d33325f5253415f6330757273657d
이 값도 hex이기 때문에 string형태로 바꿔주겠습니다. https://codebeautify.org/hex-string-converter
FLAG : FLAG{w3lc0me2system32_RSA_c0urse}
'WAR GAME > System32.kr' 카테고리의 다른 글
System32.kr [BigImage] 풀이 (0) | 2018.08.31 |
---|---|
System32.kr [PPT] 풀이 (3) | 2018.07.29 |
System32.kr [HardCrypto] 풀이 (0) | 2018.07.29 |
System32.kr [Easy Crypto] 풀이 (0) | 2018.07.29 |
System32.kr [RSA102] 풀이 (0) | 2018.07.29 |