4

我正在評估TurboPower LockBox數字簽名庫。我創建了一個1024位的RSA密鑰,並試圖用它來簽署一個260字節的文本。在文本中更改一個或兩個字符後,簽名仍然有效。這可以嗎?或者這可能是這個庫的問題。 改變即使是一個字符也有至關重要的作用。我是否需要創建一個更大的密鑰?Lockbox數字簽名組件問題

UPDATE

爲了測試我使用其附帶的演示應用程序庫。我生成了1024個RSA密鑰對,然後嘗試了數字簽名功能。首先,我嘗試了一個真正的260位文本文件,發現我可以更改其中的一些字符,並且簽名仍然有效。然後我縮小一點到followinf字符串:

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

您正在使用哪種版本的LockBox? 「3.0」是一個單人重寫,它看起來並沒有使用很多原始代碼,它的質量還有待評估。或者你使用2.07(TurboPower發佈的最新版本)? – 2010-11-19 22:25:22

+0

我使用的是最新版本(2010年10月22日)3.1.0.0版。 – Max 2010-11-19 22:38:52

+0

@ldsandon。我現在已經嘗試了舊的2003版本,它運行良好。所以看起來新的有一個錯誤。你能發佈你的答案,以便我可以接受它嗎? – Max 2010-11-20 13:47:21

回答

0

LockBox 3在數字簽名組件的實現中存在一個bug。 LockBox 2.07可以正確簽名和驗證簽名,但加載/保存密鑰在Delphi 2010中不起作用。

+0

Bug現在已修復。順便說一下,Lockbox有一個支持論壇,您可以在其中發佈有關您發現的任何錯誤的信息。支持是主動的,你應該迅速解決任何問題。 – 2010-11-26 01:02:39

+0

謝謝。我已經改變了Lockbox 2.07,所以它適用於我,但我會嘗試新的Lockbox 3版本。 – Max 2010-11-26 11:43:14

1

首先,我不會因爲它已經使用了多年承擔什麼毛病庫。您不應該能夠更改輸入並使用相同的簽名來驗證它並且工作。 Keysize不會參與其中。

爲了得到真正的答案,我會擴大你的問題 - 什麼版本的德爾福?你能顯示一些代碼嗎?

+0

我正在使用Delphi 2010.該代碼是隨庫一起提供的演示應用程序。 – Max 2010-11-19 19:27:17

+0

我更新了我的問題 – Max 2010-11-19 20:08:57

+0

「*首先,我不會因爲它已經使用多年而認爲該庫有任何問題*」 - OpenSSL也是如此。 – JensG 2016-03-22 11:48:25