Использование Crypto ++ для подписи с использованием закрытого ключа;SHA1 против водоворота - PullRequest
0 голосов
/ 03 января 2019

Я использую crypto ++ в соответствии с примером RSA-PSSR-Filter-Test.zip здесь , и это работает.

Я пытаюсь найти что-то, что я могу надежно использовать для подписания сообщения с закрытым ключом и программной проверки его происхождения с открытым ключом в приложении Qt.

Я счастлив, что действительно могу получитьсообщение извлечено при проверке подписи:

        StringSource(signature, true,
        new SignatureVerificationFilter(
            verifier,
            new StringSink(recovered),
            SignatureVerificationFilter::THROW_EXCEPTION | SignatureVerificationFilter::PUT_MESSAGE) // SignatureVerificationFilter
    ); // StringSource

    assert(ui->plainTextEdit->toPlainText().toStdString() == recovered);

Но SHA1 небезопасен.

Тогда я нашел этот пример с Whirlpool.Тем не менее, кажется, что оно не извлекает фактическое исходное сообщение, а только утверждает, что проверяет его. Правда ли этот код проверяет сообщение?Использование ArraySink кажется мне немного эзотерическим, поэтому я не могу сказать.

  bool result = false;
  Verifier verifier(publicKey);
  CryptoPP::StringSource ss2(decodedSignature + aMessage, true,
                         new CryptoPP::SignatureVerificationFilter(verifier,
                           new CryptoPP::ArraySink((byte*)&result,
                                                   sizeof(result))));

  return result;

Я пытался преобразовать код, чтобы он был похож на пример SHA1, но это не извлекает никаких сообщений:

    CryptoPP::StringSource ss2(decodedSignature, true,
        new CryptoPP::SignatureVerificationFilter(verifier,
            new StringSink(recovered)));

Возможно ли преобразовать этот код с помощью Whirlpool для фактического извлечения сообщения из подписи, или фактическое сообщение не содержится в подписи, хотя оно выглядит как PSSR?

Мне также интереснооб использовании «новых» размещений здесь;действительно ли этот код пропускает память?

Мои извинения за ошибочную терминологию;Я не в сфере безопасности.

1 Ответ

0 голосов
/ 26 января 2019

Получает исходный RSA-PSSR-Filter-Test.zip пример можно изменить, чтобы использовать SHA3, используя, например, значение перечисления SHA3_512 вместо SHA1, где это происходит.(Вам также нужно будет изменить некоторые заголовки и использовать директивы.) Все еще не уверен, почему я не смог получить ответ из примера Whirlpool.Подробнее в списке рассылки .

...