Можно ли восстановить открытый ключ RSA из массива закрытого ключа byte []? - PullRequest
1 голос
/ 14 сентября 2011

Мне интересно, возможно ли восстановить открытый ключ RSA из закрытого ключа? Закрытый ключ загружается так:

PrivateKey privateKey = GnuRSAPrivateKey.valueOf(Utils.hexStringToBytes(prvKey));

Как загрузить PublicKey из частного? privateKey.getFormat возвращает ноль.

1 Ответ

2 голосов
/ 14 сентября 2011

Я предполагаю, что ваш GnuRSAPrivateKey из проекта GNU Crypto .

A GnuRSAPrivateKey содержит закрытый ключ с некоторыми дополнительными значениями, которые не нужны строго дляреализовать RSA, но все еще приветствуются с точки зрения производительности (с использованием китайской теоремы об остатках) и безопасности (открытый показатель полезен для маскировки, которая помогает против временных атак).Следовательно, этот закрытый ключ также содержит открытый ключ.

Так что это должно работать:

GnuRSAPrivateKey sk = GnuRSAPrivateKey.valueOf(theEncodedPrivateKey);
PrivateKey privateKey = sk;
PublicKey publicKey = new GnuRSAPublicKey(sk.getN(), sk.getE());
...