范 青, 何德彪, 羅 敏, 黃欣沂, 李大為
1. 武漢大學 數學與統計學院, 武漢430072
2. 武漢大學 國家網絡安全學院, 武漢430072
3. 福建師范大學 計算機與網絡空間安全學院, 福州350117
4. 深圳技術大學 大數據與互聯網學院, 深圳518118
傳統數字簽名算法保證了數據完整性和簽名者抗抵賴性. 國家密碼管理局于2010 年12 月17 日發布了SM2 橢圓曲線公鑰密碼算法[1], 并于2012 年批準為密碼行業標準(GM/T 0003-2012)[2], 2016年正式發布為中國國家密碼標準(GB/T32918-2016)[3]. SM2 數字簽名算法作為其中之一部分, 與基于有限域上困難問題的數字簽名算法相比, 在相同的安全強度下SM2 數字簽名具有存儲空間小、簽名速度快的優勢. 在商用密碼體系中, 該標準提供了電子認證服務系統所需的安全性能, 替代了國外的ECDSA、Schnorr 等簽名算法, 推動了密碼技術應用發展的自主化和可控性, 豐富了國產密碼體系.
但是日益發展的信息安全技術對數字簽名提出了新的功能性需求, 如電子現金、電子投票、匿名通信等具體的應用場景中, 要求用戶的身份和位置等隱私信息保密. 環簽名能夠隱藏真實簽名者的身份, 達到匿名性的效果. 2001 年, Rivest 等人首次提出了模糊簽名者身份的新型簽名概念——環簽名[4]. 環簽名是指簽名者自發選擇多個用戶, 然后利用自身公私鑰對和選取的用戶公鑰對文件進行簽名. 簽名者及其選擇的用戶組成的群組稱為環, 構成環的成員由簽名者根據所需指定, 驗證者只能知道簽名值出自環中某一成員, 但不能確定出真實的簽名者. 環簽名實現了將真實簽名者的身份隱藏在環中, 以保護用戶的身份隱私.
為深入理解環簽名的概念, 下面給出環簽名和群簽名之間的聯系與區別. 環簽名和群簽名均為個體代表群體簽名的體制, 都實現了簽名身份的匿名性. 但二者之間也存在著區別, 主要體現在以下三個方面[5–7]: (1) 管理系統: 環簽名具有自發性, 環中每個成員地位平等; 群簽名中存在一個管理員負責群成員的加入和離開. (2) 匿名特征: 環簽名具有無條件匿名性, 即任何人在任何情況下都不能恢復出簽名者的真實身份; 群簽名的匿名性是有條件的, 群管理員能夠根據簽名得出簽名出自群體中哪一個成員. (3) 簽名密鑰: 環簽名的生成使用用戶的密鑰, 包括簽名者私鑰和環成員公鑰; 群簽名不僅需要用戶密鑰還需要群管理員的密鑰.
環簽名因其自發性和無條件匿名性得到廣泛應用, 包括電子郵件、數據交換、電子交易和電子貨幣等領域[7]. 根據密鑰生成方式不同, 環簽名分為公鑰基礎設施(PKI) 體系下的環簽名[4,8–16]、基于身份(IBC) 的環簽名[17–23]以及無證書(CLC) 體系下的環簽名[24–29]. PKI 體系下經典的環簽名包含基于RSA 簽名算法的RST 環簽名算法[4]和基于Schnorr 簽名的AOS 環簽名[8], 但是尚未有公開可查詢到的基于SM2 數字簽名算法的環簽名.
電子商務的廣泛深入發展對環簽名提出了多樣化的應用需求, 根據不同的屬性特征, 環簽名分為可鏈接環簽名[30]、可否認的環簽名[31]、門限環簽名[32]、可撤銷匿名性的環簽名[33]等等, 目前應用較為廣泛的是可鏈接環簽名. Liu 等人在2004 年首次提出具有自發性的可鏈接環簽名概念[30], 并提出第一個可鏈接環簽名方案——LSAG. 在環簽名算法的基礎上, 用戶利用自身私鑰生成一個關聯此次簽名的標簽, 該標簽不可偽造且同一簽名者對不同消息生成的環簽名具有相同的鏈接標簽, 實現了對同一簽名者所生成簽名的鏈接. 在Liu 等人的文章中, 利用LSAG 構建的投票系統既能確保選民身份匿名性又能避免重復投票. 2013 年, Saberhagen 等人將可鏈接環簽名應用于基于區塊鏈的數字貨幣協議[34], 提出了適用于門羅幣的CryptoNote 協議, 該協議有效保護了交易雙方的身份隱私; 在此基礎上, 出現了可鏈接環簽名在區塊鏈中的典型應用——RingCT1.0[35], RingCT2.0[36]和RingCT3.0[37].
為了彌補SM2 數字簽名算法在環簽名研究中的空缺, 奠定國產SM2 數字簽名算法應用于區塊鏈的基礎, 進而把握區塊鏈發展中密碼技術的自主可控權, 本文基于SM2 數字簽名算法提出了SM2 環簽名方案, 并且通過嵌入安全的鏈接標簽提出了SM2 可鏈接環簽名方案及其兩種變型方案.
本文結構如下: 第2 節介紹了環簽名的預備知識, 包括環簽名和可鏈接環簽名的定義, 正確性、不可偽造性、無條件匿名性以及鏈接性、不可誹謗性等安全性要求, 同時介紹了SM2 數字簽名算法; 第3 節提出了SM2 環簽名的系統參數生成、密鑰生成、(可鏈接) 環簽名、環簽名驗證等4 個算法, 從系統參數生成、密鑰生成、可鏈接環簽名生成、可鏈接環簽名驗證、鏈接等5 個方面介紹了SM2 可鏈接環簽名及其兩種變型方案; 第4 節證明了SM2 環簽名和可鏈接環簽名的安全性; 第5 節分析了其通信成本和計算成本與環成員數量的關系; 最后在第6 節給出了本文的總結和展望.
本節給出環簽名的定義、安全性需求[38]以及橢圓曲線上的困難問題假設.
定義1 (環簽名) 環簽名包含4 個多項式時間算法: 系統初始化、密鑰生成、環簽名生成和環簽名驗證.
? 系統初始化算法(Setup(λ)→params): 一個概率多項式時間(PPT) 算法, 其輸入為安全參數λ,輸出系統參數Params.
? 密鑰生成算法(KeyGen(λ, params)→(PK, sk)): 一個PPT 算法, 輸入為安全參數λ和系統參數params, 輸出用戶的公鑰PK 和私鑰sk.
? 環簽名生成(RSign(M,n,S,skπ)→σ): 一個PPT 算法, 其輸入為待簽名消息M、n個成員公鑰組成的集合S={PK1,PK2,··· ,PKn}以及簽名者私鑰skπ(1≤π ≤n), 輸出簽名值σ.
? 環簽名驗證(RVerify(M,S,σ)→accept/reject): 一個確定性算法, 其輸入為簽名消息M、公鑰集合S以及簽名值σ, 若σ是M的有效環簽名輸出accept, 否則輸出reject.
定義2 (可鏈接環簽名) 具有鏈接性的環簽名稱為可鏈接環簽名, 在環簽名的基礎上, 可鏈接環簽名不僅包含系統初始化、密鑰生成、可鏈接環簽名生成、可鏈接環簽名驗證, 還包含鏈接算法.
? 系統初始化算法(Setup(λ)→params): 一個概率多項式時間(PPT) 的算法, 其輸入為安全參數λ, 輸出系統參數params.
? 密鑰生成算法(KeyGen(λ)→(PK, sk)): 一個PPT 算法, 其輸入為安全參數λ和系統參數params, 輸出用戶的公鑰PK 和私鑰sk.
? 可鏈接環簽名生成(LRSign(M,n,S,skπ)→(σ,Qπ)): 一個PPT 算法, 其輸入為消息M、n個成員組成的公鑰集合S={PK1,PK2,··· ,PKn}以及簽名者私鑰skπ(1≤π ≤n), 輸出簽名值σ和鏈接標簽Qπ.
? 可鏈接環簽名驗證(LRVerify(params,M,S,σ,Qπ)→accept/reject): 一個多項式時間的確定性算法, 其輸入為系統參數params、簽名消息M、環成員公鑰集合S、簽名值σ和鏈接標簽Qπ, 若(σ,Qπ) 是關于M的有效簽名, 則輸出accept; 否則, 輸出reject.
? 鏈接算法(Link(S,M1,M2,σ1,Q1,σ2,Q2)→linked/unlinked: 一個確定性算法, 輸入用戶公鑰集合S、兩個不同的簽名消息M1,M2及其分別對應的可鏈接環簽名(σ1,Q1),(σ2,Q2), 若σ1,σ2是有效的環簽名且有相同的鏈接標簽Q1=Q2, 輸出linked, 否則輸出unlinked.一個安全的環簽名方案需要滿足以下3 個性質:
? 正確性: 由“環簽名生成” 算法輸出的簽名值作為“環簽名驗證” 算法的輸入, 總是輸出accept.環簽名方案的不可偽造性和無條件匿名性通過模擬器S和敵手A之間的游戲定義, 下面首先介紹A可查詢的諭言機JO、CO、SO.
– 加入諭言機(JO(⊥)→PK): 通過此查詢, 一個新用戶被添加到系統并輸出新用戶的公鑰PK.
– 腐化諭言機(CO(PKi)→ski): 輸入用戶的公鑰PKi, 輸出對應的私鑰ski.
– 簽名諭言機 (SO(M,n,S,PKπ)→ σ): 輸入簽名消息M, 大小為n的公鑰集合S={PK1,PK2,··· ,PKn}, 簽名者公鑰PKπ(1≤n ≤π), 返回有效的環簽名σ.
Pointcheval 等人最早基于“諭言重放攻擊” 技術的分叉引理給出了數字簽名方案的安全性證明[39], 諭言重放攻擊是通過重放敵手一個有效的攻擊實現, 該敵手是一個概率多項式時間的圖靈機, 能夠使用不同的隨機諭言機獲得關于同一個消息m的兩個簽名(δ0,h0,σ0) 和(δ1,h1,δ1),其中σ0,σ1分別是攻擊者通查詢環簽名生成諭言機輸出的兩個簽名值, (δ0,h0),(δ1,h1) 分別是計算兩個簽名值過程中的中間值,h0,h1為隨機諭言機的輸出, 且有δ0=δ1,h ?=h′. 根據上述兩個簽名就可以得到一個困難問題的解.
在一般環簽名(generic ring signature) 的定義下, Herranz 等人使用基于“諭言重放攻擊” 技術的分叉引理證明了環簽名方案的不可偽造性[40]. 一般環簽名的定義如下:
定義3 (一般環簽名) 一般環簽名的定義與本文所定義的環簽名都包含4 個基本算法: 系統初始化算法、密鑰生成算法、環簽名生成以及環簽名驗證. 關鍵之處在于一般環簽名對簽名值的生成過程提出了更具體的要求: 輸入消息M、n個成員的公鑰(A1,A2,··· ,An)、簽名者私鑰skπ(1≤π ≤n) 以及安全的哈希函數, 通過產生一組r1,r2,··· ,rn,h1,h2,··· ,hn, 最終輸出簽名值σ. 其中ri ?=rj,i ?=j,hi(1≤i ≤n) 是由m,ri(1≤i ≤n) 以及環成員的公鑰確定的哈希值,簽名值σ完全由r1,r2,··· ,rn,h1,h2,··· ,hn和消息m決定.
下面給出在一般環簽名的定義下不可偽造性的概念.
? 不可偽造性: 環簽名的不可偽造性通過模擬器S和敵手A之間的下述游戲定義:
–S生成系統參數params 并將其發送給A;
–A適應性查詢諭言機JO、CO、SO 以及隨機諭言機H;(2)S?中所有的公鑰均通過查詢加入諭言機JO 得到;

(3)S?中所有的公鑰都沒有被腐化查詢, 即敵手沒有得到S?中任意環成員的私鑰;
(4)σ?不是通過查詢簽名諭言機SO 得到.如果對任意PPT 的敵手A來說, 贏得上述游戲的概率是可忽略的, 則稱環簽名方案是不可偽造的.
? 無條件匿名性: 環簽名方案的無條件匿名性通過模擬器S和有無限計算力的敵手A之間的游戲
定義:
–S生成系統參數params 并將其發送給A.

–A可適應性查詢加入諭言機JO.的基數, 則稱環簽名滿足無條件匿名性.可鏈接環簽名不僅滿足上述正確性、不可偽造性和無條件匿名性, 還需要具備可鏈接性和不可誹謗性.
? 鏈接性: 鏈接性是可鏈接環簽名的必備性質, 即一個簽名者不能生成兩個有不同鏈接標簽的簽名值. 鏈接性通過模擬器S和敵手A之間的下述游戲定義:
–S生成系統參數params 并將其發送給A;
–A可適應性查詢諭言機JO、CO、SO;
–A輸出兩組可鏈接環簽名值(S,M1,σ1,Q1) 和(S,m2,σ2,Q2).稱A贏得了上述游戲如果滿足以下4 個條件:
(1) 集合S中的公鑰均是通過查詢加入諭言機JO 得到;
(2)A向腐化諭言機CO 查詢S中公鑰對應的私鑰不超過兩次, 即敵手A最多獲取S中一個用戶的私鑰;
(3) (σ1,Q1),(σ2,Q2) 分別是關于消息M1,M2的有效環簽名, 即LRVerify(M1,S,σ1,Q1)→accept, LRVerify(M2,S,σ2,Q2)→accept, 并且σ1,σ2不是簽名諭言機SO 的輸出值;
(4) Link(S,M1,M2,σ1,σ2)→unlinked.
如果對任意PPT 的敵手A來說, 贏得上述游戲的概率是可忽略的, 則稱可鏈接環簽名滿足鏈接性.
? 不可誹謗性: 不可誹謗性指敵手A不能生成與真實簽名者簽名相同的簽名標簽, 這一性質保證了
A不能陷害真實簽名者. 不可誹謗性通過模擬器S和敵手A之間的下述游戲定義:
–S生成系統參數params 并將其發送給A.
–A可適應性查詢加入諭言機JO.
–A將簽名消息M,n個用戶公鑰組成的集合S={PK1,PK2,··· ,PKn}以及隨機選擇的π ∈{1,2,··· ,n}發送給S, 其中用戶π的公鑰PKπ沒有被腐化查詢或沒有作為簽名查詢SO查詢中的輸入;S使用PKπ對應的私鑰skπ執行可鏈接環簽名生成算法LRSign(M,n,S,skπ),最后將生成的簽名值{σ,Q}發送給A.
–A適應性查詢諭言機JO、CO、SO.

(1) LRVerify(params,M?,S,σ?,Q?)=accept;
(2)σ?不是簽名諭言機SO 的輸出;
(3)S?中的公鑰都是加入諭言機JO 的輸出;
(4) PKπ沒有被敵手腐化查詢;
(5) Link(S,M,M?,σ,Q,σ?,Q?)→linked.
如果對任意PPT 的敵手A來說, 贏得上述游戲的概率是可忽略的, 則稱可鏈接環簽名方案滿足不可誹謗性.
本小節最后給出橢圓曲線上的離散對數問題.
橢圓曲線離散對數問題(ECDLP): 給定橢圓曲線E(Fp) 上任意兩點P,Q, 求解滿足等式Q=x·P的值x是多項式時間內不可解的.
本節介紹SM2 數字簽名算法的4 個階段: 系統參數生成、密鑰生成、簽名和驗證.


環簽名方案因其“環簽名生成算法” 生成的某些值按一定規則構成一個環狀而得名, 本文以Rivest 等人提出的環簽名概念為基準, 基于SM2 數字簽名算法設計了一個安全的環簽名方案, 下面給出SM2 環簽名方案的4 個算法.


算法1 SM2 環簽名生成算法Input: m,L = {P1,P2,··· ,Pn},dπ Output: 環簽名σL(m) = (c1,s1,s2,··· ,sn)1 產生隨機數kπ ∈Z?q, 計算cπ+1 = H1(L,m,kπ ·G);2 對i = π+1,··· ,n,1,··· ,π ?1,, 依次執行以下運算:3 隨機產生si ∈Z?q, 計算Zi = si·G+(si+ci)·Pi,ci+1 = H1(L,m,Zi), 其中記c1 = cn+1;4 計算sπ = ((1+dπ)?1 ·(kπ ?cπ ·dπ)) mod q;5 輸出在L 上關于m 的環簽名(c1,s1,s2,··· ,sn).

本節在SM2 環簽名方案的基礎上, 通過嵌入安全的簽名標簽, 設計了基于SM2 數字簽名算法的可鏈接環簽名方案極其兩種變型方案, 下面介紹SM2 可鏈接環簽名方案的5 個算法: 系統初始化算法、密鑰生成算法、可鏈接環簽名生成、可鏈接環簽名驗證和鏈接算法.
? 系統初始化算法: 該算法輸入安全參數λ,輸出系統參數params={p,Fp,E(Fp),G,G,q,H1,Hp},其中p是大素數,E(Fp) 是定義在有限域Fp上的橢圓曲線, G 表示橢圓曲線上的點構成的加法循環群,G是循環群G 的生成元, 階為素數q,H1:{0,1}?→Z?q,Hp:{0,1}?→G 是兩個安全的哈希函數.

圖1 環結構Figure 1 Ring structure

? 可鏈接環簽名生成: 簽名者任意選取n?1 個用戶公鑰,加上自身公鑰構成群組L={P1,P2,··· ,Pn}; 簽名者為其中第π(1≤π ≤r) 個用戶, 利用私鑰dπ和環成員公鑰L生成對消息m的可鏈接環簽名, 如算法2:

算法2 SM2 可鏈接環簽名生成算法Input: m,L = {P1,P2,··· ,Pn},dπ Output: 可鏈接環簽名σL(m) = (Qπ,c1,s1,s2,··· ,sn)1 計算簽名標簽Qπ: R = Hp(L),Qπ = dπ ·R;2 隨機選取kπ ∈Z?q, 計算cπ+1 = H1(L,Qπ,m,kπ ·G,kπ ·R);3 對i = π+1,··· ,n,1,··· ,π ?1, 隨機產生si ∈Z?q, 并依次計算Vi = si·G+(si+ci)·Pi,Wi = si·R+(si+ci)·Qπ,ci+1 = H1(L,Qπ,m,Vi,Wi), 其中記c1 = cn+1;4 計算sπ = ((1+dπ)?1 ·(kπ ?cπ ·dπ)) mod q;5 輸出可鏈接環簽名(Qπ,c1,s1,s2,··· ,sn).
? 可鏈接環簽名驗證: 為了檢驗收到的消息m′及其可鏈接環簽名(c′1,s′1,s′2,··· ,s′n,Q′π), 驗證者實現以下步驟:
– 計算R=Hp(L);

下面給出SM2 可鏈接環簽名方案的兩種變型.



算法3 SM2 可鏈接環簽名變型一Input: m,L = {P1,P2,··· ,Pn},dπ Output: 可鏈接環簽名σL(m) = (Qπ,c1,s1,s2,··· ,sn)1 計算簽名標簽Qπ: R = Hp(L),Qπ = dπ ·R;2 隨機選取kπ ∈Z?q, 計算cπ+1 = H1(L,Qπ,m,kπ ·(G+R));3 對i = π+1,··· ,n,1,··· ,π ?1, 隨機產生si ∈Z?q, 并依次計算Zi = (si +ci)·(Pi +Qπ)+si ·(G+R),4 ci+1 = H1(L,Qπ,m,Zi), 其中記c1 = cn+1;5 計算sπ = ((1+dπ)?1 ·(kπ ?cπ ·dπ)) mod q;6 輸出可鏈接環簽名(Qπ,c1,s1,s2,··· ,sn).


算法4 SM2 可鏈接環簽名變型二Input: m,L = {P1,P2,··· ,Pn},dπ Output: 可鏈接環簽名σL(m) = (Qπ,c1,s1,s2,··· ,sn)1 計算簽名標簽Qπ: R = Hp(L),Qπ = dπ ·R;2 隨機選取kπ ∈Z?q, 計算(xπ,yπ) = kπ ·(G+R),cπ+1 = (H1(L,Qπ,m)+xπ) mod q;3 對i = π+1,··· ,n,1,··· ,π ?1, 隨機產生si ∈Z?q, 并依次計算Zi = (xi,yi) = (si +ci)·(Pi +Qπ)+si ·(G+R),4 ci+1 = (H1(L,Qπ,m)+xi) mod q, 其中記c1 = cn+1;5 計算sπ = ((1+dπ)?1 ·(kπ ?cπ ·dπ)) mod q;6 輸出可鏈接環簽名(Qπ,c1,s1,s2,··· ,sn).
本節主要證明SM2 (可鏈接) 環簽名方案的正確性、不可偽造性、無條件匿名性以及SM2 可鏈接環簽名方案的鏈接性、不可誹謗性.
定理1 SM2 環簽名方案滿足正確性.
證明: 假定簽名σL(m) = (c1,s1,s2,··· ,sn) 按照算法1 產生, 驗證者根據環簽名驗證算法進行驗證, 則有:


因此滿足c1=cn+1, 正確性得證.
為了證明本文中的方案在隨機諭言模型下抵抗適應性選擇消息攻擊, 首先分析本文的方案滿足一般環簽名的概念, 然后證明在橢圓曲線離散對數問題困難的假設下, 本文提出的方案滿足不可偽造性.
分析: 在SM2 環簽名方案中,算法1 展示了簽名值的生成過程: 輸入為消息m、公鑰L={P1,P2,···,Pn}、私鑰skπ以及哈希函數H1, 中間值為(Z1,Z2,··· ,Zn,c1,c2,··· ,cn), 輸出的簽名值為σ=(c1,s1,s2,··· ,sn). 其中,ci+1=H1(L,m,Zi) 顯然是由L,m,Zi確定的哈希值, 從而SM2 環簽名是文獻[40] 定義的一般環簽名的一個實例, 因此分叉引理適用. 同理可分析SM2 可鏈接環簽名方案也滿足一般環簽名的定義. 下面主要介紹SM2 環簽名方案的不可偽造性.
定理2 若橢圓曲線離散對數問題(DLP) 是困難的, 則SM2 環簽名具有不可偽造性.

(G,Q) 問題可解, 與假設矛盾, 定理得證.
定理3 SM2 環簽名方案滿足無條件匿名性.


可鏈接環簽名方案的正確性、不可偽造性、無條件匿名性證明過程與環簽名方案相似, 下面主要證明SM2 可鏈接環簽名的可鏈接性和不可誹謗性.
定理4 假設離散對數問題(DLP) 是困難的, 則在隨機諭言機模型下SM2 可鏈接環簽名具有鏈接性.

定理5 SM2 可鏈接環簽名滿足不可誹謗性.


本節分別統計SM2 環簽名方案和SM2 可鏈接環簽名方案的計算量與環成員數量的關系, 如表1 所示.

表1 SM2 環簽名方案的計算量Table 1 Computation quantity for SM2 ring signature schemes

圖2 通信量與環成員數量關系Figure 2 Relationship between communication cost and number of ring members
針對SM2 環簽名方案, 假設環成員數量為n, 以循環群G 上的點乘、點加、H1運算以及Zq上逆運算的計算量統計計算復雜度. SM2 環簽名過程中, 生成cπ+1時包含一次G 上點乘運算、一次H1運算,生成與其他n ?1 個ci(1≤i ≤n,i ?=n) 時包含2n ?2 次G 上點乘、n ?1 次G 上點加和n ?1 次H1運算, 最后生成sπ時包含一次Zq上逆運算; 驗證過程包含n次G 上點加、2n次G 上點乘和n次H1運算.
針對SM2 可鏈接環簽名方案, 假設環成員數量為n, 以循環群G 上的點乘、點加、H1運算以及Zq上逆運算的計算量統計計算復雜度.SM2 可鏈接環簽名生成過程中, 首先計算鏈接標簽Qπ需要1 次Hp運算、1 次G 上點乘運算; 然后計算cπ+1包含2 次點乘運算、1 次H1運算, 計算其他n ?1 個ci(1≤i ≤n,i ?=n) 時總共包含4n ?4 次點乘、2n ?2 次點加和n ?1 次H1運算, 最后生成sπ時包含一次Zq上的逆運算; 可鏈接環簽名驗證過程包含1 次Hp運算、4n次G 上點乘、2n次點加和n次H1運算.
環簽名是一種特殊的數字簽名, 它允許一個成員代表一組人進行簽名而不泄漏簽名者的信息, 實現了簽名的無條件匿名性, 可以保護用戶的隱私; 可鏈接環簽名是一種具有簽名人關聯性的環簽名, 實現了簽名的無條件匿名性和可鏈接性, 即保護用戶隱私的同時保證了簽名的可鏈接性. 環簽名/可鏈接環簽名在電子投票、數字貨幣等多個領域有著廣泛應用. 科研人員已經提出了多種不同形式和不同特性的環簽名算法, 但沒有基于SM2 數字簽名算法的環簽名. 為了推廣SM2 數字簽名算法在這些領域的應用, 本文提出了基于SM2 數字簽名算法的環簽名/可鏈接環簽名, 并證明了其安全性, 具有安全性高、實現簡單、易驗證的特點. 下一步的工作重點是減弱環簽名通信量、計算量與環成員數量的關系, 如對數關系甚至與環成員數量無關.