所以,我遇到了这个问题,但我不知道如何解决它。
我有一个 RSA 私钥,其中的一部分被审查了。
$ cat key.pem
-----BEGIN RSA PRIVATE KEY-----
MIICXQIBAAKBgQDGlcensoredcensoredcensoredcensored1TUxhnjkCbowxZc
7PIpI1E2Po6aIgCBd9+6i0NUIfYm8vR6kqiqLz8k8o4LYoBkq/9Jx7pgV2Jqhr4u
wvlaQQUzi9c4qPKXp+QGoUu9f1zp8ORIMpeJmF7uA20DC93uba07qdC6twIDAQAB
AoGBAIovDuYnGiiQS6K27L4EY8e/5sbqAwdlTOVlWsfz+ai3DLNiFPSbbT1Wx9G4
4b06X6O258SD1suZ/g/ICnmnxxe5ua3a5+iiDIwGYmBDcNfq5gMq/d+1/UJF/Bb4
A1nuH2iUg6gRTPEpbg2+RYwquyWenFbqfHMgXqbHVGmOXj7hAkEA8rChKjs5zVmd
j9Gk53psry4CtuxRc39NrHuLqat9Iu0MA51Sgv4c+8dgo75DVAnT5PoLBhHJJAVa
e+rUMC4kfwJBANF7jcKzJ2UuPmL6JpbWcyirybjMIm2eCxR5U1bYlNYT+A49oOFS
Eg5woswgCyH9gDPk2Zwpq3qud9HD7Rn0bckCQQDHgwdrRXc2ZybN1eZAWffBaAzZ
PpuTXKOJWaOuX4mnTcLjsdDkWW2QWw8Kbd7B1rZ49kpbugFmeHQzjRDVbwmXAkBm
T3nFBcrP1+4QWSxPrx0/V+eFoe2OrAmtTjQtzkmi5M3Z5q+UXIkFFG3uVBgb2bur
nLHLW26s1Fkg0hgS/RZBAkAFnE+7QvRCW4+v3OsIkN63f+GIjHfCuv8L15RpBLlf
XXQyOmmu8YekTu5vbFHtSAiLyuW1yCeSsNmKYkX6Ew99
-----END RSA PRIVATE KEY-----
如您所见,第一部分行被部分删减了。任务是解密此消息:
Qe7+h9OPQ7PN9CmF0ZOmD32fwpJotrUL67zxdRvhBn2U3fDtoz4iUGRXNOxwUXdJ2Cmz7zjS0DE8
ST5dozBysByz/u1H//iAN+QeGlFVaS1Ee5a/TZilrTCbGPWxfNY4vRXHP6CB82QxhMjQ7/x90/+J
LrhdAO99lvmdNetGZjY=
我的第一个猜测是暴力破解丢失的部分,但这似乎不太现实。
有人知道这是否可能吗?如果是这样,你会怎么做? key 长度为824个字符,被删减的部分为32个字符,但是我不知道被删减的每个字符是否对应私钥中的一个...
最佳答案
你可以解决这个问题 using an online ASN.1 parser (或 openssl asn1parse),您会发现 base 64 字符串 - 中间的文本,位于以 ---
开头的行之间 - 是私钥的 ASN.1 编码。 SEQUENCE 中的第二个元素(已更改)包含模数,而不是私有(private)指数。该结构在 PKCS#1 中定义,这是一个相当可读的标准,也复制在 RFC 3447 中
模数通常是公开的,但如果您没有公钥,您仍然可以重新创建它: How to factor RSA modulus given the public and private exponent?
关于encryption - 使用部分私钥审查来解密 RSA 消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20457680/