C-L簽名即爲Camenisch-Lysyanskaya簽名,由作者的名字命名,於2001年提出。原論文《A Signature Scheme with Efficient Protocols》,鏈接:https://link.springer.com/chapter/10.1007%2F3-540-36413-7_20
C-L簽名可用於羣簽名或聚合簽名的場景中,可以提高簽名的匿名性,並降低簽名的計算複雜度。C-L簽名也是一種適用於零知識證明的簽名方案,能夠對一組數據進行簽名,並且能夠體現這些被證明組件的關係。這樣的性質恰好與零知識證明所需的性質契合。
介紹C-L簽名之前,首先需要介紹雙線性羣的概念。
設和是階爲素數的乘法循環羣,是的一個生成元。雙線性羣是滿足下列性質的一個映射:
- 雙線性性。對任意的,有。
- 非退化性。。
- 可計算性。對所有的,存在有效的算法計算
與大多簽名機制類似,C-L簽名包括三個步驟:KeyGen,Sign和Verify。
密鑰生成算法:設爲階素數(長度爲 bit)的雙線性羣,。隨機選擇,,輸出私鑰,公鑰。
簽名算法:輸入消息和私鑰,選擇一個隨機數,計算,,輸出簽名。
驗證算法:輸入消息M的簽名,利用公鑰進行驗證。如果,並且,則輸出1,否則輸出0。
Why it works?
因爲
因此,
類似地,
因此,
爲了簽名一組消息,其中,爲該組消息中最長消息的長度,即消息空間的二進制串長度,任何消息均在上。強RSA的模爲,其中爲安全素數,模的長度爲。在二次剩餘羣中隨機選擇元素作爲公鑰,作爲私鑰,隨機選擇,其中且,,這裏爲一個安全參數。計算滿足,所得三元組爲消息的CL簽名。
驗證簽名是,須要驗證:
;
。
滿足以上條件,則簽名驗證通過。