理论教育 环签名的优势与特点-安全协议

环签名的优势与特点-安全协议

时间:2023-10-28 理论教育 版权反馈
【摘要】:相对于群签名而言,环签名有其自身的优势。环签名具有以下特点。对特定的环签名,环中成员都有能力生成该签名,因此签名者具有完美的匿名性。环签名假设所有用户都拥有支持某种标准签名方案的公钥。为了产生环签名,签名人任意选择一个包含他本人在内的用户的集合,运用自己的私钥以及其他用户的公钥对消息进行签名。

环签名的优势与特点-安全协议

假设Bob是国会议员,他想匿名向记者泄露总统的一些消息。在保持匿名的同时,Bob需要记者确信他的议员身份。如果Bob匿名地向记者发送消息,匿名性能够保证,但记者无法相信该消息的来源。如果Bob签名发送消息,该消息的来源能够保证,但签名会泄露Bob的身份。另外,Bob也不能使用群签名,因为群签名需要其他群成员的合作。环签名方案是一种没有管理者的类群签名方案,环中任何一个成员都可以代表整个环进行签名,而验证者只知道签名来自这个环,但不知道谁才是真正的签名者。2001年,Rivest等人基于大合数分解的难解性提出了第一个环签名方案(简称为RST环签名方案)。

环签名建立在公钥密码体制的基础之上,其唯一假设是:所有用户都拥有支持某种标准签名方案的公钥。为产生环签名,签名人任意选择一个包含他本人在内的用户的集合,运用自己的私钥以及其他用户的公钥对消息进行签名。对于验证人而言,只能验证签名出自集合中的某个用户,而不知道具体是哪个。相对于群签名而言,环签名有其自身的优势。

(1)环签名中没有主管,不需要预先建立群组以及撤销环成员等阶段。

(2)在群签名中,如果用户不合作就不能产生签名;而在环签名中,签名人只要知道某个用户的公钥,不需要其同意或者合作就可以将其加入环中对消息进行签名。

(3)在群签名中,群主管可以揭示签名用户的身份;而在环签名中,任何人都不能揭示签名用户的身份,即能保证用户的无条件匿名性。

由于环签名对真实签名者而言是匿名的,因此环签名是一种以匿名方式透露可靠消息的很好的方法。虽然环签名因为其签名隐含的某个参数按照一定的规则组成环状而得名,但是在之后提出的许多方案中不要求签名的构成结构为环形,只要签名的形成满足自发性、匿名性和群特性,也称之为环签名。

环签名具有以下特点。

(1)无须设置。签名者不需要其他用户的配合就能独自完成签名。

(2)签名者的完美匿名性。对特定的环签名,环中成员都有能力生成该签名,因此签名者具有完美的匿名性。

环签名假设所有用户都拥有支持某种标准签名方案的公钥。为了产生环签名,签名人任意选择一个包含他本人在内的用户的集合,运用自己的私钥以及其他用户的公钥对消息进行签名。对于验证人而言,只能验证签名出自集合中的某个用户,而不知道具体是哪个。

环签名方案主要由下述算法组成(假定有n个用户,每一个用户ui拥有一个公钥yi和与之对应的私钥xi)。

(1)生成(Gen)。一个概率多项式时间(PPT)算法,输入为安全参数k,输出为公钥和私钥。这里假定Gen为每一个用户ui产生一个公钥yi和私钥xi,并且不同用户的公私钥可能来自不同的公钥体制,如有的来自RSA,有的来自DL。

(2)签名(Sign)。一个PPT算法,在输入消息m和n个环成员的公钥L={y1,y2,…,yn}以及其中一个成员的私钥xs后,对消息m产生一个签名R,其中R中的某个参数根据一定的规则呈环状。

(3)验证(Verify)。一个确定性算法,在输入(m,R)后,若R为m的环签名则输出“True”,否则为“False”。

这里介绍RST环签名方案。

1.RSA陷门置换

2.复合函数(www.daowen.com)

假设存在公开的对称加密算法E,对任意长为l的密钥k,函数Ek是{0,1}b上的置换。h:{0,1}*→{0,1}l是公开的抗碰撞Hash函数,将任意长的比特串映射到长为l的比特串,以用作E的密钥,且h的输出是随机的。

复合函数Ck,v(y1,y2,…,yn)以Ek为子函数,输入密钥k、初始值v及{0,1}b上的任意值y1,y2,…,yn,输出{0,1}b上的值z,且对于固定的k和v,满足以下性质:

①对任意s∈{1,2,…,n}及固定的其他输入yi(i≠s),函数Ck,v是{0,1}b一一映射。

②对任意s∈{1,2,…,n},已知的z、yi(i≠s)∈{0,1}b,求满足Ck,v(y1,y2,…,yn)=z的ys是可行的。

③当给定输出z时,攻击者在不知道任何陷门信息的情况下求解满足等式

的任意xi(i=1,2,…,n)都是不可行的,其中gi(i=1,2,…,n)是前面定义的陷门置换。

3.签名方案

Revist等人构造环签名方案时使用签名定义的陷门置换和如下复合函数:

第一,签名过程。给定待签名的消息m,所有环成员U1,U2,…,Un的公钥PK1,PK2,…,PKn,签名成员(1≤s≤n)计算环签名如下:

①计算对称密钥k=h(m)。

②选择初始值v∈R{0,1}b

③对i=1,2,…,n,且i≠s,选择独立、不等的xiR{0,1}b,计算

则关于消息m的环签名为σ={v;x1,x2,…,xn}。

第二,验证过程。给定关于消息m的环签名σ={v;x1,x2,…,xn},验证者计算k=h(m)及yi=gi(xi)(i=1,2,…,n),验证等式Ck,v(y1,y2,…,yn)=v是否成立,若成立,接受签名;否则拒绝。

由于对于固定的k和v,共有(2bn-1组(x1,x2,…,xn)使得验证等式Ck,v(g1(x1),g2(x2),…,g(xn))=v成立,且忽略签名用户的主观性,签名算法产生每组(x1,x2,…,xn)的概率是相同的,因此产生的签名不会泄露签名用户的身份信息,即该方案能保证签名用户的无条件匿名性。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈