定義
是一種數字簽名的方式,在消息內容被簽名之前,對於簽名者來說消息內容是不可見的。
類比例子:對文件簽名就是通過在信封里放一張復寫紙,簽名者在信封上簽名時,他的簽名便透過復寫紙簽到文件上。
性質
- 不可偽造性。除了簽名者本人外,任何人都不能以他的名義生成有效的盲簽名。這是一條最基本的性質。
- 不可抵賴性。簽名者一旦簽署了某個消息,他無法否認自己對消息的簽名。
- 盲性。簽名者雖然對某個消息進行了簽名,但他不可能得到消息的具體內容。
- 不可跟蹤性。一旦消息的簽名公開后,簽名者不能確定自己何時簽署的這條消息。(即簽名者僅知sig(m'),而不知sig(m)。即使簽名者保留sig(m')及其他有關數據,仍難以找出、sig(m)和、sig(m')之間的內在聯系,不可對消息m的擁有者進行追蹤。)
模型
-
接收者首先將待簽數據進行盲變換,把變換后的盲數據發給簽名者。
-
經簽名者簽名后再發給接收者。
-
接收者對簽名再作去盲變換,得出的便是簽名者對原數據的盲簽名。
-
這樣便滿足了條件①。要滿足條件②,必須使簽名者事后看到盲簽名時不能與盲數據聯系起來,這通常是依靠某種協議來實現的。
- 大致的圖示如下:
具體步驟
-
消息盲化。甲將原消息m進行盲化處理得m',然后將盲消息m'傳送給乙。進行盲化處理的方法很多,例如,可隨機選取某個數,稱該隨機數為盲因子,把原消息數值化后,與盲因子相乘即可得到盲消息。
-
對盲消息簽名。乙應用通常的數字簽名方法對盲消息進行簽名,並將其簽名sig(m')送給甲。
-
恢復簽名。甲通過除去盲因子的方法,從盲簽名sig(m')中得到相關原消息m的簽名:sig(m)。將來出現糾紛時,當甲拿出乙的盲簽名,而乙顯然不能否認其簽名,這樣就可以證明原消息的真實性。
傳統的方案主要是RSA方案。
應用場景
- 電子現金:
一般的簽名,簽名者對自己發出的簽名,必須是記得的,比如,在何時何地對誰發的,他自己可以記下來。但是,如果把簽名看作是電子現金的話,就涉及到一個匿名性的問題。我們也不希望銀行通過追蹤自己發出簽名,來獲得用戶的消費情況,於是就設計出盲簽名。