如果同一個人創建的兩個文件共享相同的 SHA256 雜湊,這意味著什麼?
好的,我有一個網路法任務,這可能與問題無關。但我有一種情況,有人使用高級電子簽名簽署了遺囑,但這個簽名與遺囑本身是分開的。所以有兩個不同的文件:(1)signature.txt 和(2)FinalTestament.txt。如果這兩個文件的 SHA256 匹配,我是否可以假設沒有乾擾遺囑或者 SHA256 與文件中包含的實際內容沒有任何關係?並且真的只是同一個人創建了這兩個文件的標識符嗎?我真的很難掌握 SHA256 - 所以任何在這種情況下有幫助的解釋器連結都會很棒。謝謝!
如果這兩個文件的 SHA256 匹配
那麼根據碰撞阻力的定義,這兩個文件是相同的,或者(包括和)SHA-256的碰撞阻力被破壞了。專家們一致認為 SHA-256 的抗碰撞性無法通過當今可用的方式破壞(也就是說,沒有人有權創建具有相同 SHA-256 雜湊值的不同文件)。
因此,專家一致認為,在引用的假設下,這兩個文件必須相同;到目前為止,這是展示中最薄弱的地方,因為它取決於如何保存(必要的數字)文件以及如何獲取和比較它們的雜湊值。
上面用措辭回答了這個問題,但我們現在被告知一些非常不同的東西:
當使用提供的公鑰解密 signature.txt(高級電子簽名)時,會產生一個 SHA256 文件雜湊,該雜湊與 FinalTestament.txt 的 SHA256 雜湊匹配
這是不正確的術語:永遠不會用公鑰解密。加密的目標是轉換一段數據,使其在被某個秘密的持有者解密之前無法理解;而且,顧名思義,公鑰不是秘密的。在這裡,我們不解密。我們必須閱讀:“signature.txt使用提供的公鑰進行驗證”。
而且,通常簽名驗證重建散列,然後將其與文件的散列進行比較以確定簽名是否適用於該文件是不正確的。這對於散列的教科書 RSA 簽名¹、RSA-FDH是正確的,並且(儘管不尋常)可以對RSASSA-PKCS1-v1_5正確。但許多其他簽名方案並非如此:RSASSA-PSS、ECDSA、EdDSA、DSA,其中雜湊(或要檢查的文件)必須是簽名驗證過程的輸入。因此我們可能應該閱讀:“signature.txt使用提供的公鑰針對 FinalTestament.txt 的雜湊進行驗證”
最重要的是:問題陳述或附加評論中沒有任何內容表明公鑰是死者的公鑰,(如果我們想挑剔的話,用於簽名驗證系統)。因此,使用該公鑰進行的驗證在技術上並不是該人批准遺囑的有效指示。
即使我們添加公鑰是死者的公鑰,也沒有跡象表明 FinalTestament.txt 是最終遺囑²;該簽名並非在脅迫下作出;死者有法律能力作出有效的遺囑;所使用的簽名系統具有法律約束力(不同的規則)。
¹ 但是,由於Desmedt 和 Odlyzko 攻擊, SHA-256 雜湊的教科書 RSA 簽名很容易受到存在性偽造的影響。
² 甚至是唯一驗證 signature.txt 和公鑰的遺囑:一些簽名系統(如原始短 Schnorr 簽名)允許簽名者製作具有相同簽名的非常不同的文件。在法律環境中最好避免使用此類簽名系統!