是否可以在不知道隨機致盲因子的情況下對 RSA 盲唱中的使用者進行去匿名化?
例如,如果在 E-Voting 協議中使用 RSA 盲簽名:
如果 Signer 和 Tallier 是同一個人,是否可以將 (Sx, x) 追溯到 (Sb, b)?
在這種情況下,攻擊者可以訪問:盲消息
b
、盲消息簽名Sb
、允許簽名和驗證消息的私鑰和公鑰、原始消息x
和原始消息的簽名Sx
。攻擊者唯一不知道的是r
Bob 用來隱藏原始消息的隨機數b=blind(x,r)
如果 Signer 和 Tallier 是同一個人,是否可以將 (Sx, x) 追溯到 (Sb, b)?
否(假設致盲因子是隨機均勻選擇的)。
以下是 RSA 致盲的工作原理:簽署填充消息 $ m $ , Bob 選擇一個隨機值 $ r $ , 並發送 $ r^e \cdot m \bmod n $ (在哪裡 $ e, n $ 來自公鑰)。然後,簽名者計算 $ (r^e \cdot m)^d = r \cdot m^d \bmod n $ (然後 Bob 通過計算完成該過程 $ r^{-1} \cdot (r \cdot m^d) = m^d $ )
關鍵是,(忽略微不足道的機率 $ m $ 或者 $ r $ 不是相對質數 $ n $ ) 然後 $ r^e $ 也可以是任何值,因此對於任何可能的消息 $ m’ $ , 存在一個 $ r’ $ 這樣 $ r’^e \cdot m’ $ 與簽名者從 Bob 那裡得到的值一致。也就是說,Bob 傳遞給簽名者的值根本沒有提供關於正在簽名的消息的任何資訊(從資訊的角度來看),即使簽名者俱有任意大量的計算資源能力也是如此。
這包括 Tallier 可以用來將投票與簽名者聯繫起來的任何資訊。
請注意,我是從“統一選擇致盲因子”開始的;如果不是,例如,有值 $ r $ Bob 永遠不會選擇,那麼簽名者可能會學到一些東西(可能是 Bob沒有簽名的值)