簡體   English   中英

彈力城堡:每次運行時都帶有獨立的信封標志變化

[英]Bouncy Castle : Detached Enveloped Signature Changes at Every Run

我正在跟蹤生成和驗證數字簽名的帖子。 在所有運行中,簽名數據均保持不變,但在每次運行中,分離式信封簽名都會變化。 同一文本如何生成不同的分離式信封簽名?

為了使評論成為答案...

相同私鑰對相同數據的簽名可能有所不同的主要原因有兩個。

簽名算法引起的變化

某些簽名算法,最重要的是DSAECDSA ,將簽名創建顯式地基於隨機選擇的值k 需要這種“隨機性”, 隨機簽名值 k 的熵,保密性和唯一性 至關重要。 至關重要的是,違反這三個要求中的任何一個都可以向攻擊者透露整個私鑰。 兩次使用相同的值(甚至在保持k秘密的情況下),使用可預測的值或在幾個簽名的每一個中甚至泄漏k的幾位,都足以破壞算法。 可以通過實際隨機的k或通過以確定性方式構建的k來滿足該要求,這也保證了熵,保密性和唯一性,參見。 RFC 6967

但是,OP是指使用RSA的代碼。 該算法不需要這樣的隨機參數(即使填充方案可能包含隨機性)。

簽名屬性引起的變化

產生變化的另一個原因是,簽名數據不僅僅包含文檔數據。

在談論“簽名”時,通常人們不僅指簽名過程字節數組輸出,而是指根據CMS標准的簽名容器。

在這樣的容器中可能有多個單獨的簽名,並且每個簽名都可以具有許多未簽名或簽名的屬性。 顧名思義,“簽名屬性”意味着簽名值計算也包括這些屬性。

這些簽名屬性通常包括簽名時間。 由於簽名時間通常在不同的簽名運行中有所不同,因此實際簽名值也有所不同。

OP使用CMS簽名容器。 因此,最有可能的原因就是OP簽名發生變化的原因。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM