我似乎在這裏有誤解。DSACryptoServiceProvider與RSACryptoServiceProvider
我需要使用數字簽名來實現公鑰/私鑰加密(PKCS)。我在.Net框架中找到了以下類。
- 的RSACryptoServiceProvider
- DSACryptoServiceProvider
我想那麼數字對文件進行加密他們簽名,並在接收驗證簽名,然後解密。
DSACryptoServiceProvider類具有VerifySignature函數,它可以同時使用帶符號的有符號值和無符號值!
我在這裏的問題是加密 - 然後簽名或簽名後加密?
如果我發送的加密密鑰的未簽名的密鑰(與簽署密鑰一起),然後任何第三方將能夠解密文本
我完全同意,但如何使用具有函數VerifySignature(signedHash,unsignedHash)的DSACryptoServiceProvider實現此?無論如何,這裏的散列是什麼?它是加密的關鍵嗎? – ala 2009-07-29 12:09:36
這是錯的。如果您需要不可否認性,那麼您實際上必須對該消息進行簽名,然後對其進行加密。否則攻擊者可能會生成他的公鑰/密鑰對,這樣解密簽名的消息就會導致攻擊者選擇的明文。 – Accipitridae 2009-07-29 18:43:03