3

OpenSSLを使用してRubyでmega.co.nzのセッションIDデコードを複製する方法を見つけようとしていました。しかし、残念ながら、私は暗号化の専門家ではありません。

問題は、秘密鍵の形式を理解/認識していないことです

秘密鍵を分解するためのコードは次のようになります(https://eu.static.mega.co.nz/crypto.js):

// decompose private key
for (var i = 0; i < 4; i++)
{
    var l = ((privk.charCodeAt(0)*256+privk.charCodeAt(1)+7)>>3)+2;

    rsa_privk[i] = mpi2b(privk.substr(0,l));
    if (typeof rsa_privk[i] == 'number') break;
    privk = privk.substr(l);
}

privkそれ自体は656バイトの長さです(最後に8つのダッシュパディングを含みます)。

「分解」の後、分解された部分を使用してセッションID(https://eu.static.mega.co.nz/rsa.js)を復号化します。

// Compute m**d mod p*q for RSA private key operations.

function RSAdecrypt(m (encrypted session-id), d (rsa_privk[2]), p (rsa_privk[0]), q (rsa_privk[1]), u (rsa_privk[3]))

OpenSSLがその使用方法を認識できるように、このキーを変換する方法は?

4

1 に答える 1