Я оцениваю библиотеку 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;