一种代理重指定验证者签名方法

文档序号:9711487阅读:446来源:国知局
一种代理重指定验证者签名方法
【技术领域】
[0001] 本发明涉及信息安全领域,特别是涉及一种代理重指定验证者签名方法。
【背景技术】
[0002] Jakobsson在1996年提出了指定验证者签名的概念。指定验证者签名除了一般的 签名算法和验证算法之外,还包括有一个模拟算法。指定的验证者通过模拟算法可以模拟 一个数字签名,这个模拟的数字签名也可以通过验证算法的验证。这意味着除了指定的验 证者之外,其它任何实体即使能够通过验证算法验证一个数字签名,也无法确认这个数字 签名是由签名者生成的,还是由指定验证者生成的。
[0003] 在版权保护领域,软件的发行商可以为每一个软件购买者签署指定验证者签名, 使得购买者既可以验证所购买软件是否是正品,又可以防止购买者进一步通过刻录等方式 进行二次售卖。注意购买者可以自行生成一个合规的数字签名,所以二次售卖的时候无法 向普通消费者证明某个软件产品是完整可信的正版产品。
[0004] 指定验证者签名,在提出之后受到了很大的关注,并发展出了强指定验证者签名, 多指定验证者签名等概念,满足不同的应用环境。然而,随着云计算技术的发展,软件的发 行商可以利用云存储服务,把软件放在云服务器上。购买者只需要获得授权,就可以获取软 件发行商存储在云服务器中的软件。在这种情况下,软件发行商如果希望使用指定验证者 签名技术,就需要为每一个购买软件的购买者计算一次指定验证者签名,然后上传到云服 务器,每一个购买者下载软件和对应的指定验证者签名。然而这种方法显然效率比较低,没 有利用到云计算的优势。理想的情况应该是一份软件只有一个签名,在需要时由云服务器 生成指定验证者签名,提供给购买者。但是目前并没有这样的方法。
[0005]由此我们得出结论,虽然指定验证者签名是一个比较早的概念,并且受到了很多 关注,但是适应于云环境的指定验证者签名尚不存在。

【发明内容】

[0006] 本发明的目的在于提供一种代理重指定验证者签名方法,解决【背景技术】中不存在 适用于云环境的指定验证者签名的问题。
[0007] 为实现上述目的,本发明给出一种代理重指定验证者签名方法,该方法涉及内容 提供方、内容消费方、服务提供方三个主体,包括以下步骤:
[0008] 1)服务提供方运行设置算法,生成各方公用的系统参数;
[0009] 2)内容提供方运行密钥生成算法生成自身的密钥对;
[0010] 3)内容消费方运行密钥生成算法生成自身的密钥对;
[0011] 4)内容提供方使用其私钥对内容进行第一级别的数字签名,并把第一级别的数字 签名值和内容上传到服务提供方;
[0012] 5)内容消费方同内容提供方交互,由内容提供方生成重签名密钥并把该密钥信息 上传给服务提供方;
[0013] 6)内容消费方向服务提供方请求指定的内容,服务提供方确认拥有该内容消费方 关于指定内容的重加密密钥,就把指定内容进行代理重签名,生成第二级别的数字签名,并 把指定内容和第二级别的数字签名提供给内容消费方;
[0014] 7)内容消费方使用内容提供方的公钥验证第二级别的数字签名;
[0015] 8)内容消费方可以使用其私钥单独生成关于所获取内容的可验证的第二级别的 数字签名。
[0016] 所述服务提供方运行设置算法,生成各方公用的系统参数的步骤包括:
[0017] 1)选择有效的双线性对映射e把阶数为素数q生成元为g的乘法群G中的两个元素 映射到乘法群Gjj
[0018] 2)选择加密算法E和解密算法T1,确保其明文空间和密文空间都在群G中,密钥空 间为Z;,即正整数集合{l,2,3,,,q-l};
[0019] 3)选择三个哈希函数H1: Gt^G,H2: {0,I} * X G X Gt^G,好3 : if xG,其中 {0,1Γ是任意长〇、1比特串的输入,H1:GT-G是指哈希函数H1是把乘法群G i中的一个元素 映射到乘法群G中的一个元素,H2: 1ΓXGXGt-G是指哈希函数H 2是把任意长0、1比特串 的输入、乘法群G中的一个元素和乘法群〇=中的一个元素映射为乘法群G中的一个元素, H3: : {(υΓ xdZ;是指哈希函数H3是把任意长0、1比特串的输入和乘法群G中的一个元素 映射为2^中的一个元素。
[0020] 所述内容提供方运行密钥生成算法生成自身的密钥对的步骤包括:
[0021 ] 1)内容提供方从Z;中选择一个随机元素% e 作为自身的私钥;
[0022] 2)内容提供方计算.Vs =g',并将ys作为自身的公钥。
[0023] 所述内容消费方运行密钥生成算法生成自身的密钥对的步骤包括:
[0024] 1)内容消费方从中选择一个随机元素;e Z;作为自身的私钥;
[0025] 2)内容消费方计算办,并将yv作为自身的公钥。
[0026] 所述内容提供方使用其私钥对内容进行第一级别的数字签名,并把第一级别的数 字签名值和内容上传到服务提供方的步骤包括:
[0027] 1)内容提供方从中选择两个随机元素 ;J eZ,;
[0028] 2)内容提供方计算,t3 = H2(m,ys,t2),k = H3(m,t3),其中m是内 容;
[0029] 3)内容提供方计算4 = A.,.52 = tlHl(t2),爲4 ;
[0030] 4)内容提供方把第一级别的数字签名设置为δ: = (S1,δ2,δ3,δ4),并把内容m和内容 提供方的公钥ys信息,签名值^,通过任意连接方式,上传到服务提供方。
[0031 ]所述内容消费方同内容提供方交互,由内容提供方生成重签名密钥并把该密钥信 息上传给服务提供方的步骤包括:
[0032] 1)内容消费方获得内容提供方的公开密钥ys;
[0033] 2)内容消费方计算自身私钥的逆元Xf:1,确保= Imodg1;
[0034] 3)内容消费方计算J = ,并把沉,凡)发送给内容提供方;
[0035] 4)内容提供方验证等式<匕,乂)= 〇(>'、.,幻是否成立,如果不成立就停止执行协 议,否则计算JV= Jp1,其中·^1是内容提供方自身私钥的逆元,满足X51X 5 =Imod分;
[0036] 5)内容提供方设置重签名密钥为(?,?),并上传内容消费方公钥yv的信息,内容 提供方公钥ys的信息,和重签名密钥(?,?)给服务提供方。
[0037] 所述内容消费方向服务提供方请求指定的内容,服务提供方确认拥有该内容消费 方关于指定内容的重加密密钥,就把指定内容进行代理重签名,生成第二级别的数字签名, 并把指定内容和第二级别的数字签名提供给内容消费方的步骤包括:
[0038] 1)内容消费方向服务提供方指定需要获取的内容m和自身公钥yv的信息;
[0039] 2)服务提供方用公钥yv的信息检索内容提供方公钥ys的信息和重加密密钥 (?,?),使用内容提供方公钥ys的信息检索内容m,如果两者都能检索到,贝IJ确认拥有该内 容消费方关于指定内容的重加密密钥,算法继续执行,否则终止操作;
[0040] 3)服务提供方从Ζζ中选择一个随机元素/ eZ: ;
[0041] 4)服务提供方找到内容m的第一级别的签名δ:,解析为01,32,3 3,34),计算^ = 6 (yr,5i) , (J31 , ^32 =yrs 7 ;
[0042] 5)服务提供方生成第二级别的数字签名
[0043] 6)服务提供方把内容m和第二级别的数字签名δπ提供给内容消费方。
[0044] 所述内容消费方使用内容提供方的公钥验证第二级别的数字签名的步骤包括:
[0045] 1)内容消费方收到内容m和第二级别的数字签名δ",把δ"解析为(δ' δ33,δ4);
[0046] 2)内容消费方使用自身私钥的逆元%:1计算% = f,t3 = H2(m,ys,t2),k = H3(m, t3),tl = 5/2(Hl(t2))-S
[0047] 3)内容消费方验证三个等式,= = t〇和6化324)=6(3^,33),如果三个等式都成立,则验证第二级别数字签名通过,内容消 费方认为内容m来自于内容提供方,否则第二级别数字签名验证失败,内容消费方认为内容 m不完整或者不是来自于自己希望的内容提供方;
[0048]所述内容消费方可以使用其私钥单独生成关于所获取内容的可验证的第二级别 的数字签名的步骤包括:
[0049] 1)内容消费方从^中选择三个随机元素 r,M'
[0050] 2)内容消费方计算t2 = e(g,= y
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1