Protocol-Design

對匿名消息使用 crypto_sign 然後 crypto_box_seal

  • January 6, 2021

如果您有一條消息 M,並且您希望發件人 (alice) 對除收件人 (bob) 以外的所有人都是匿名的,可以這樣做嗎?

crypto_box_seal(crypto_sign(M, alice), bob)

(愛麗絲在資訊上簽名,然後封箱給鮑勃。)

crypto_box_seal那麼這個答案表明crypto_sign,我想知道相反的順序是否可以。

謝謝!

不它不是!。

如果您之前給某人簽名了一條消息,那麼他們可以使用它向 Bob 發送一條匿名消息,並且 Bob 可能會認為它來自 Alice。

解決方案很簡單,使用crypto_box(經過身份驗證的 NaCl 加密)生成消息並使用crypto_box_seal.

$$ \text{crypto_box_seal}(\text{crypto_box}(m)). $$這裡我們使用的是盒子的縮寫形式,沒有細節。

外層為所有人提供匿名性,內層提供身份。由於只有 Bob 可以透露crypto_box_seal,那麼只有 Bob 可以透露crypto_box並且會明白消息來自誰;愛麗絲。

請注意,Bob 可能不知道其中有一個crypto_boxcrypto_box_seal在 crypto_box` 中添加一條附加消息以進行指示。

$$ \text{crypto_box_seal}(\text{After the columns there is a crypto box:}||\text{crypto_box}(m)) $$

引用自:https://crypto.stackexchange.com/questions/87363