我正在實現一個簡單的許可證文件系統,並想知道我目前的執行方式是否有任何錯誤。這是基於RSA的簽名(具有恢復)方案密碼合理嗎?
消息數據小於密鑰。我使用RSA,密鑰大小爲3072bits。
許可證頒發者生成要簽名的消息,並使用基於RSA的直接方法對其簽名,然後應用類似的方法對消息進行加密。加密的消息和簽名一起存儲爲許可證文件。
- Sha512該消息。
- 使用私鑰簽名散列。
- 用私鑰簽名消息。
- 連接並傳輸。
在收到的驗證過程:
- 解密消息用公鑰
- 散列消息
- 從與公共密鑰文件解密的哈希,並與比較本地哈希。
到目前爲止實施工作正常,出現有效。
我目前零填充的消息相匹配的密鑰長度,這可能是 不好動(我相信我應該使用一個PKCS填充算法,如1或1.5?)
請問這個戰略似乎有效? 我忽略了任何明顯的缺陷或觀點嗎?
加密郵件純粹是混淆,是的。在傳輸Enc [x]和Enc [Hash [x]]方面是否存在漏洞?我假設沒有哈希是正確(並嚴重)填充。我的實現基於優秀的公共領域LibTomCrypt。我使用了Wei Dai的CryptoPP,但RSA簽名與恢復似乎沒有用最新推薦的簽名方案實現。 – 2009-07-20 12:10:29