Проблема с компонентом цифровой подписи Lockbox

Я оцениваю библиотеку TurboPower LockBox для цифровой подписи. Я создал 1024-битный ключ RSA и попытался подписать им 260 байт текста. После изменения одного или двух символов в тексте подпись для него остается действительной. Это нормально? А может проблема в этой библиотеке. Смена даже одного персонажа имеет решающий эффект. Мне нужно создать ключ большего размера?

ОБНОВЛЕНИЕ

Для тестирования библиотеки я использовал прилагаемое к ней демонстрационное приложение. Я создал пару ключей RSA 1024, а затем попробовал использовать функции цифровой подписи. Сначала я попробовал использовать настоящий 260-битный текстовый файл и обнаружил, что могу изменить в нем некоторые символы, но подпись все еще действительна. Затем я немного сузил его до следующей строки:

AAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAA 8

И это все еще работает, когда я меняю символ «8». Я, наверное, мог бы сузить его еще больше.

Код, выполняющий проверку:

Signatory1: TSignatory;
....

var
  DocumentStream, SignatureStream: TStream;
....

DocumentStream  := TFileStream.Create( edtRSADocumentFile.Text, fmOpenread);
try
SignatureStream := TFileStream.Create( edtRSASignatureFile.Text, fmOpenread);
try
 Res := Signatory1.Verify( DocumentStream, SignatureStream)
finally
  SignatureStream.Free
end;
finally
  DocumentStream.Free;
end;

person Max    schedule 19.11.2010    source источник
comment
Какую версию LockBox вы используете? Версия 3.0 была переписана одним человеком, похоже, что она не использует большую часть исходного кода, и ее качество еще предстоит оценить. Или вы используете 2.07 (последнюю выпущенную TurboPower)?   -  person    schedule 20.11.2010
comment
Я использую последнюю версию (от 22 октября 2010 г.) 3.1.0.0.   -  person Max    schedule 20.11.2010
comment
@ldsandon. Я попробовал старую версию 2003 года, и она работала нормально. Так вроде в новом баг есть. Не могли бы вы опубликовать свой ответ, чтобы я мог его принять?   -  person Max    schedule 20.11.2010
comment
Спасибо, что обратил мое внимание на эту ошибку. Ошибка исправлена ​​в LB 3.1.1. Подпись и проверка теперь должны работать правильно в Lockbox 3.1.1.   -  person Sean B. Durkin    schedule 26.11.2010
comment
Что используется в LockBox3 для подписи и проверки? RSA-1024 с SHA-1?   -  person Tracer    schedule 20.06.2019


Ответы (2)


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

Чтобы получить реальные ответы, я бы расширил ваш вопрос - какая версия Delphi? Вы можете показать код?

person Darian Miller    schedule 19.11.2010
comment
Я использую Delphi 2010. Код представляет собой демонстрационное приложение, которое поставляется с библиотекой. - person Max; 19.11.2010
comment
Во-первых, я бы не стал предполагать, что с библиотекой что-то не так, поскольку она использовалась годами - так было с OpenSSL. - person JensG; 22.03.2016

LockBox 3 имеет ошибку в реализации компонента цифровой подписи. LockBox 2.07 может правильно подписывать и проверять подписи, но загрузка / сохранение ключей не работает в Delphi 2010.

person Max    schedule 24.11.2010
comment
Ошибка исправлена. Кстати, у Lockbox есть форум поддержки, где вы можете публиковать сообщения о любой найденной ошибке. Поддержка активна, любые проблемы у вас должны быть оперативно решены. - person Sean B. Durkin; 26.11.2010
comment
Спасибо. Я уже изменил Lockbox 2.07, так что у меня он работает, но я попробую новую сборку Lockbox 3. - person Max; 26.11.2010