Проблема с компонентом цифровой подписи Lockbox - PullRequest
4 голосов
/ 19 ноября 2010

Я оцениваю 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;

Ответы [ 2 ]

1 голос
/ 19 ноября 2010

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

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

0 голосов
/ 24 ноября 2010

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

...