Schnorr簽名介紹

2022-06-19 22:00:22 字數 2067 閱讀 8035

** 

schnorr簽名演算法是由德國數學家、密碼學家claus schnorr提出。並於2023年申請了專利,u.s. patent 4,995,082,該專利與2023年2月失效。目前該演算法可以自由使用。

schnorr簽名演算法幾乎在各個層面均優於位元幣現有的簽名演算法ecdsa:效能,安全,體積,擴充套件性等方面。

schnorr sig可以與ecdsa使用同乙個橢圓曲線:secp256k1 curve,公升級起來的改動非常小。

我們定義幾個變數:

簽名者已知的是:g-橢圓曲線, h()-雜湊函式,m-待簽名訊息, x-私鑰。

選擇乙個隨機數k, 令r = kg

s = k + h(m || r || p)*x

那麼,公鑰p對訊息m的簽名就是:(r, s),這一對值即為schnorr簽名。

驗證者已知的是:g-橢圓曲線, h()-雜湊函式,m-待簽名訊息, p-公鑰,(r, s)-schnorr簽名。驗證如下等式:

sg = r + h(m || r || p)p

若等式成立,則可證明簽名合法。

我們推演一下,此過程包含了乙個極其重要的理論:橢圓曲線無法進行除法運算。

s值的定義:s = k + h(m || r || p)*x,等式兩邊都乘以橢圓曲線g,則有:

sg = kg + h(m || r || p)*x*g,又因r = kg, p = xg,則有:

sg = r + h(m || r || p)p,橢圓曲線無法進行除法運算,所以第3步的等式,無法向前反推出第1步,就不會暴露k值以及x私鑰。同時,也完成了等式驗證。

一組公鑰,n把,簽名後得到n個簽名。這個n個簽名是可以相加的,最終得到乙個簽名。這個簽名的驗證通過,則代表n把公鑰的簽名全部驗證通過。

有:則有:

推演過程:

123

4567

891011

1213

1415

16

1. 令 r = r1 + r2, s = s1 + s2

2. 已知:s1 = k1 + h(m || r || p)*x1,s2 = k2 + h(m || r || p)*x2

3. s = s1 + s2

= k1 + h(m || r || p)*x1 +

k2 + h(m || r || p)*x2

= (k1 + k2) + h(m || r || p)(x1 + x2)

4. 兩邊同時乘以g,則有:

sg = (k1 + k2)g + h(m || r || p)(x1 + x2)g

= (k1g + k2g) + h(m || r || p)(x1g + x2g)

= (r1 + r2) + h(m || r || p)(p1 + p2)

= r + h(m || r || p)p

5. 完成證明,並從兩個合作方推演至n個合作方

組公鑰(group key),是n把公鑰進行相加後的值,又稱聚合公鑰(aggregation key)。需要指出的是,參與方需要先相互交換公鑰和r值,然後再進行各自的簽名。

若使用在位元幣上,相比ecdsa會有一些額外的顯著優勢:

q: schnorr簽名是否可以用在m of n多重簽名上?

a: 當然可以。多重簽名只是m of n的簽名數量的模式。與簽名演算法無關。

q: schnorr的組簽名特性是否可以做或模擬出m of n式的簽名?

a: 無法做到。組內有n把公鑰,則必須對應有n個簽名,缺一不可。每個人在生成簽名的時候,在雜湊函式裡都代入的都是組公鑰p。

q: 簽名機制的安全性如何衡量?

a: 主要取決於兩個:1. 簽名演算法本身 2. 橢圓曲線。目前,schnorr與ecdsa都用的是曲線secp256k1,這個層面一樣。至於簽名演算法本身安全性,schnorr目前有安全證明,安全優於ecdsa。

參考:******************** end

資料完整性演算法 Schnorr數字簽名方案

和elgama數字簽名一樣,schnorr數字簽名方案也是基於離散對數。schnorr數字簽名主要工作不依賴於訊息,生成簽名過程與訊息相關的部分需要進行2n位長度的整數與n位長度的整數相乘。演算法引數分析 該方案基於素數模p,且p 1包含大素數因子q,即 p 1 0 mod q p一般大約取 p 2...

Schnorr技術詳解

schnorr本質上是一種零知識的技術,即證明方 prover 聲稱知道乙個金鑰x的值,通過使用schnorr加密技術,可以在不揭露x的值情況下向驗證方 verifier 證明對x的知情權。注意,接下來講解schnorr過程中提到的關於雜湊函式的性質 橢圓曲線上的離散對數難題和加密解密過程就不做過多...

群簽名與環簽名介紹

群簽名,即群數字簽名。是 1991 年 由 chaum 和 van heyst 提出的乙個比較新的簽名概念。camenish stadler tsudik 等對這個概念進行了修改和完善。群簽名 group signature 在乙個群簽名方案中,乙個群體中的任意乙個成員可以以匿名的方式代表整個群體對...