Schnorr-Signature

必要的 Schnorr 簽名非互動式質詢綁定

  • March 10, 2022

Schnorr 簽名的一些實現將按如下方式確定挑戰:

C=H(ķG‖X‖米)==H(rG+CX‖X‖米) $ c=H(kG \mathbin| X \mathbin| m)==H(rG+cX \mathbin| X \mathbin| m) $ , 在哪裡:

C $ c $ 是挑戰

米 $ m $ 是正在簽名的消息

X $ X $ 是簽名者的公鑰,這樣X=XG $ X=xG $

G $ G $ 是一個眾所周知的基點

X $ x $ 是簽名者的私鑰

r $ r $ 是對挑戰的響應,計算為r=ķ−CX $ r=k-cx $

ķ $ k $ 是一個均勻隨機的隨機數

但是,某些 Schnorr 簽名不綁定公鑰X $ X $ 簽名者進入挑戰雜湊。因此,C=H(ķG‖米) $ c=H(kG \mathbin| m) $ .

通過包含哪些可能的攻擊可以防止X $ X $ 在挑戰雜湊中?

請注意,簽名可以作為對進行通信(C,r) $ (c,r) $ ,或作為對(ķ,r) $ (K,r) $ 在哪裡ķ=ķG $ K=kG $ .

這是一個相當人為的場景,但假設有兩個驗證密鑰X1=X1G $ X_1=x_1G $ 和X2=X2G $ X_2=x_2G $ 屬於兩個不同的簽名者,並假設攻擊者也不知道X1 $ x_1 $ 也不X2 $ x_2 $ 但確實知道它們之間的區別,比如說X1=X2+b $ x_1=x_2+b $ . 然後,他們可以使用來自簽名者 1 的簽名來偽造來自簽名者 2 的簽名,該簽名使用未綁定方案在同一條數據上(反之亦然)。

為此,他們會採取r1 $ r_1 $ 來自簽名者 1 的簽名並將其替換為r2=r1+bC $ r_2=r_1+bc $ .

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