2013-12-08 95 views
3

所以,我得到了這個問題,我不知道如何解決它。使用部分私鑰解密RSA消息?

我有一個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= 

我的第一個猜測是暴力破壞的部分,但這似乎並不現實。

任何人都知道這是甚至可能嗎?如果是的話,你會怎麼做呢? 關鍵是長824個字符和審查的部分是32個字符,但我不知道是否該刪失的每個字符對應一箇中的私鑰...

+0

你需要學習編碼(ASN.1)並找出什麼是首先被審查。如果它只是一個公共素數,那麼使用的數量相對較少,而且速度會很快。 –

+0

你有*公鑰嗎?暴力強迫意味着你將不得不嘗試$ 2^192 $的可能性,我不建議:P –

+0

@owlstead不,我沒有公共密鑰:(是的,我有點懷疑這將是愚蠢的: D 我已經看過https://polarssl.org/kb/cryptography/asn1-key-structures-in-der-and-pem和其他一些解釋,但我似乎無法找到一個很好的分解密鑰的不同部分.. – user3080544

回答

4

就可以解決這個using an online ASN.1 parser(或OpenSSL的asn1parse) ,在這裏你會發現基址64字符串 - 中間的文字,以---開始的行之間 - 是私鑰的ASN.1編碼。 SEQUENCE中的第二個元素 - 已被更改 - 包含模數,而不是私有指數。 How to factor RSA modulus given the public and private exponent?

:結構在PKCS#1,這是一個相當可讀的標準,也被複制在 RFC 3447

模量通常是公開的,但如果你沒有得到的公鑰,你仍然可以重新定義它

+0

不錯,謝謝。那麼當我有e,d,p和q的時候我需要做什麼?重新創建m並重新編碼它?然後將它替換成密鑰並解密它? – user3080544

+0

是的,重新創建* n *,模量,就像你所描述的那樣mally * n *用於模數,但總是會在符號上有所不同。 –

+0

你有這樣做的提示嗎?當我重新創建n時,通過乘以p和q,這些數字非常大,以至於在轉換爲十六進制時遇到問題。試圖直接用十六進制數字來做,但我最終以1059位表示。結果應該是1024位的權利? – user3080544