→ int0x80 : 跟傳整個m_k相比 的確在正確性上不會比較安全04/16 03:58
→ int0x80 : 畢竟雜湊函數是公開的 只要有能力造一組合法(M,X)04/16 04:00
→ int0x80 : 就能造出合法的用雜湊的簽章04/16 04:02
推 AndyLee76 : 的確hash不是必要,這點在維基上有寫04/16 09:11
→ AndyLee76 : 只是hash內容遠小於原文,在計算加密上比較快04/16 09:15
謝樓上i, A大分享
推 ilway25 : 估狗 why hash before signing 有很多回答04/16 09:51
推 ilway25 : 例如有可能可以偽造簽名,維基 Existential forger04/16 09:56
→ ilway25 : y04/16 09:56
謝謝關鍵字, 我是查digital signature without hash, 我再試試看你的關鍵字
另外wiki講的hash有三個功能, efficiency, compatibility, integrity
前兩者是實務問題不論, 他在integrity那邊講說如果直接加密原文, 那分的多段可能被
竄改者刪除或是換順序
但是這樣的話接受者在解密後也會發現跟一起送來的正確訊息m有出入, 或是跟誤導的錯
誤訊息M不合, 不管哪種case接受者都會認為是無效簽名
不過existential forger應該就是有辦法矇騙過去, 我再看看, 謝謝
→ int0x80 : 睡醒突然發現昨天講錯了抱歉 造的出合法(M,M_k)不代04/16 10:42
※ 編輯: znmkhxrw (114.137.187.125 臺灣), 04/16/2022 10:54:31
→ int0x80 : 表能造出加密的hash(M) 04/16 10:45
推 LPH66 : 這裡的 integrity 應該是指這種狀況:04/17 01:11
→ LPH66 : 現代的加密函數都是所謂區塊加密, 會把訊息切成固定04/17 01:12
→ LPH66 : 長度個別加密, 那我想要竄改的話我只要把對應區塊04/17 01:13
→ LPH66 : 給換成我造的東西就好 (注意是一起換, 接收方不可能 04/17 01:13
→ LPH66 : 知道訊息當中哪些是正確的) 04/17 01:14
→ LPH66 : 上面提的 Existential Forgery 也是一樣道理04/17 01:17
→ LPH66 : 接收方不知道什麼是正確訊息, 所以可以造一個我要的04/17 01:17
→ LPH66 : 簽章出來, 其訊息可以任意指定 04/17 01:17
→ LPH66 : 至於什麼時候有可能接收方不知道正確訊息04/17 01:19
→ LPH66 : 一個例子可能是某些通訊協定中有加密 nonce 的過程04/17 01:19
→ LPH66 : 既然是 nonce 那所有組合都是合法訊息04/17 01:20
謝謝L大分享, 我之後查閱existential forgery後, 發現他是只要竄改者能夠產生出一組
合法的(message, signature)就算是有existential forgery, 其中message不一定要有意
義
我一開始覺得怪的點在於, 今天如果數位簽章是採用標準的RSA但是沒有用hash, 雖然竄
改者可以造出一堆合法的(m, s), 但是m幾乎是亂碼, 這樣接受者接受到後也會認為無意
義, 這樣的話好像沒有防的必要了
也就是說, existential forgery單純定義在有存在合法的竄改者產生的(m, s)的話, 確
實無hash的標準RSA當數位簽章會有問題
但是如果竄改者要任意的偽造合法且有意義的訊息(M, s), 那沒hash的RSA也夠防止這點
發生了, 因為要任意造有意義的訊息M, 必須存在s滿足M = s^e (mod N), 然後再吧(M, s
)送出去, 但是對於任何M要找到s滿足綠色的條件式, 應該是不好找甚至不存在吧...
※ 編輯: znmkhxrw (123.240.192.135 臺灣), 04/17/2022 01:55:33
推 LPH66 : 「有意義的訊息」這個想法是個誤區 04/17 17:18
→ LPH66 : 我上面有提到的狀況就有提到是存在一些狀況 04/17 17:18
→ LPH66 : 任何訊息都是有意義的訊息 04/17 17:19
→ LPH66 : (例如我上面提的對 nonce 簽章以產生協定資料等) 04/17 17:19
→ LPH66 : 在這層意義上, 使用 hash 的意義才正是要試著把 04/17 17:21
→ LPH66 : 「任何訊息都有意義」這個條件給打破 04/17 17:22
→ LPH66 : 藉由其中一部份資料的相關性來製造出能夠拒絕的狀況04/17 17:23
了解了, 確實有些情況下任何訊息都是有意義的, 而如果要嚴格定義何謂有意義的, hash
在這邊就幫的上忙, 換言之hash好像幫忙定義出何謂有意義的訊息, 好聰明!
謝謝回答~
※ 編輯: znmkhxrw (123.240.192.135 臺灣), 04/17/2022 18:11:18