Как расшифровать данные с помощью открытого ключа RSA? - PullRequest
1 голос
/ 11 апреля 2011

позвольте мне представить мою проблему, у меня есть файл * .crt, который содержит кодированный DER сертификат x509 версии 3.Используя ASN1 DER (libtomcrypt), я расшифровываю данные и сохраняю их в некоторую структуру, называемую x509v3.У меня есть какое-то сообщение M, зашифрованная подпись M -> S (зашифрованный RSA) и открытый ключ -> P, который находится внутри сертификата x509 (поле открытого ключа субъекта).Сначала я должен расшифровать S, используя открытый ключ P, но проблема в том, что я не могу найти API, который будет это делать?
Я искал libtomcrypt, но, похоже, нет API, которое принимает открытый ключ (который является беззнаковым char *)и зашифрованные данные (также без знака char *) и дают расшифрованные данные (без знака char *).

Спасибо за помощь!извините за мой английский;)

1 Ответ

3 голосов
/ 11 апреля 2011

Вы - одна из бесчисленных жертв исторического небрежного представления подписей, которое создало и до сих пор создает огромное количество путаницы.

У вас есть подпись , и вы хотите проверить это.Существует несколько алгоритмов подписи, и один из них называется «RSA», поскольку он похож на алгоритм асимметричного шифрования , также называемый аналогом.Очень грубое описание сигнатур RSA состоит в том, что «вы шифруете с помощью закрытого ключа» (т. Е. Берете алгоритм шифрования в «обратном» направлении), именно поэтому сигнатуры часто описываются следующим образом ... за исключением того, что он не работаеткак это.Асимметричное шифрование с RSA подразумевает математическую операцию (модульное возведение в степень) в своей основе, но также и «заполнение», которое очень важно для безопасности;Подписи RSA также подразумевают заполнение, но довольно отчетливое.

Так что вам действительно не следует думать о сигнатурах как о типе шифрования.Это вас просто запутает.

В libtomcrypt функция проверки подписи RSA называется rsa_verify_hash().

...