Algorithm-Design
有沒有辦法在不被允許看到的情況下簽署消息?
我想在無法看到消息的情況下簽署消息。
從邏輯上講,應該有一種方法,我只是不知道這如何轉化為密碼學。
這是我的意思的說明:
一個人在一塊硬紙板上寫了一條資訊。他用複寫紙把硬紙板包起來,然後拿給另一個人。
另一個人是簽名者。他在復寫紙上簽名,而復寫紙又將其傳送到原始紙板上。但是,簽名者無法看到該消息,因為它隱藏在復寫紙中。(紙張易碎的事實不失一般性,當然可以想像一些更防篡改的東西)。
然後第一個人回到家,打開紙板,上面的資訊現在由簽名者簽名。但是簽名者仍然不知道該消息。
有這方面的案例,我很感興趣如何在密碼學中重現它。
編輯:試圖澄清一些事情,我很抱歉我無法更清楚:
問題是消息創建者可能希望將消息傳遞給他不信任的第三方。第三方必須可以讀取消息並驗證消息是否由簽名者簽名。但是,假設簽名者每天簽署許多消息,那麼簽名者和第三方應該不可能合作來辨識簽名者在何時簽署了哪條消息。
您幾乎肯定在尋找盲簽名。
我不確定關於這個主題還有什麼要說的,有多種方案可以提供這種解決方案,例如提供的連結中列出的 RSA 和 ECDSA 變體。
通常散列是簽名生成的一部分。您可以使用額外的散列或預先執行散列(拆分簽名生成過程),然後僅將散列呈現給簽名者。如果消息足夠複雜,那麼單向雜湊函式會隱藏消息,因此無法猜測。
您始終可以在消息中包含足夠大(128 位左右)的隨機值,因此無法猜測雜湊值的輸入。當然,接收者必須接收消息和隨機值來驗證簽名。
一個更大的問題是確保簽名者簽署螢幕上顯示的實際消息,而不是不同的雜湊。因此,簽名的正常案例實際上比隱藏消息的特定任務更難完成。