一种保护用户隐私的盲协同签名方法技术

技术编号:32735231 阅读:20 留言:0更新日期:2022-03-20 08:41
本发明专利技术公开了一种保护用户隐私的盲协同签名方法,其步骤包括:发起方和服务方分别生成各自的密钥对(d1,P1)和(d2,P2),发起方获得服务方的部分公钥P2并根据P2生成用户A的公钥P

【技术实现步骤摘要】
一种保护用户隐私的盲协同签名方法


[0001]本专利技术涉及密码领域,特别涉及适用于需要保护用户隐私的盲协同签名方法。

技术介绍

[0002]基于公钥密码学的数字签名技术已经广泛应用于电子商务、身份认证、数字票据等应用中,而私钥的生成及使用的安全性是保证数字签名安全的基础,而硬件密码模块(如U盾等)和移动终端已成为个人身份凭证中的重要载体,但存在容易被盗和丢失的风险。另一方面,针对移动终端的攻击越来越多,许多恶意应用能够窃取用户存储在终端上的私有数据,攻击终端与服务器的通信,因此亟需解决移动终端上的密钥存储和计算安全。基于密钥拆分和协同计算的协同签名技术,在易于推广部署的同时,还能够满足签名私钥的保护要求。
[0003]为了便于理解,我们下面将发起协同签名的一方称为发起方,另一方称为服务方。在已有专利《一种支持信息隐藏的协同签名方法与系统》(申请公布号CN110535635A)中公开了一种支持信息隐藏的协同签名方法与系统,其特点是:发起方不会将待签名消息的明文、摘要信息或最终签名泄露给服务方,有效地保护了用户隐私信息。但是该方案存在如下不足:
[0004]1)在密钥对生成过程,发起方需要将自己的部分私钥对应的公钥发送给服务方,这样服务方也能计算出完整私钥对应的用户公钥P,从而当签名被公开后,服务方能够通过使用P验证签名的方式来判断公开的签名是否是自己参与生成的,也就是说服务方能够追踪签名。
[0005]2)在签名生成过程中,服务方需要计算Q1=[k1]W1,其中k1是服务方生成的随机数,W1是和服务方私钥相关的一个椭圆曲线点,相对于椭圆曲线基点G的点乘,其它椭圆曲线点的乘法将慢很多,并且在一个服务方对应海量发起方的情景下也无法进行预计算,这容易造成服务方服务能力的瓶颈。

技术实现思路

[0006]有鉴于此,本专利技术公开了一种保护用户隐私的盲协同签名方法,定义了能够保护用户隐私的密钥对生成协议和防止服务方追踪签名的签名生成协议,除了提供用户隐私保护的特性外还通过使用可以优化的计算方法等增强了服务方的性能。
[0007]为了达到上述目的,本专利技术的技术方案是这样实现的:
[0008]1)密钥对生成协议:发起方和服务方分别生成各自的密钥对(d1,P1)和(d2,P2),发起方获得服务方的部分公钥P2并生成用户A的公钥P
A
,其中发起方为用户A所在的终端。具体步骤如下:
[0009]发起方:
[0010]A1:发起方向服务方发送协同密钥对生成请求。
[0011]服务方:
[0012]B1:产生随机数d2∈[1,n

1],其中n为椭圆曲线基点G的阶;
[0013]B2:计算椭圆曲线点P2=[d2]G,服务方的密钥对为(d2,P2);
[0014]B3:将P2发送给发起方。
[0015]发起方:
[0016]A2:验证P2是否满足椭圆曲线方程,若不满足则协同生成密钥对失败;满足则进行A3;
[0017]A3:产生随机数d1∈[1,n

1];
[0018]A4:计算椭圆曲线点P1=[d1]G,发起方的密钥对为(d1,P1);
[0019]A5:计算椭圆曲线点P
A
=[d1]P2‑
G,输出用户A的公钥为P
A

[0020]2)签名生成协议:消息内容对服务方不可见。在签名被发起方公开后,服务方不能追踪签名。发起方和服务方需要进行两轮通信才能完成对消息M的签名。发起方首先向服务方发起盲协同签名请求;服务方生成临时私钥k2,并计算对应的公钥Q2,将Q2发送给发起方;发起方计算待签名消息M的摘要e,产生随机数k1,k3,并根据e、Q2、k1、k3和服务方公钥P2一起生成临时签名第一部分r1,将r1发送给服务方;服务方根据d2、k2和r1计算临时签名第二部分s2后返回给发起方;发起方再根据d1、k1、s2和r计算并输出最终的签名(r,s)。具体步骤如下:
[0021]发起方:
[0022]A1:发起方向服务方发起协同签名请求。
[0023]服务方:
[0024]B1:产生随机数k2∈[1,n

1];
[0025]B2:计算椭圆曲线点Q2=[k2]G;
[0026]B3:将Q2发送给发起方。
[0027]发起方:
[0028]A2:验证Q2是否满足椭圆曲线方程,若不满足则协同签名失败;满足则进行A3;
[0029]A3:计算消息摘要e=H
v
(Z
A
||M),将e的数据类型转换为整数,其中Z
A
需按照GM/T 0003.2

2012第2部分5.5节中定义的方法计算得到;
[0030]A4:产生随机数k1,k3∈[1,n

1];
[0031]A5:计算椭圆曲线点(x1,y1)=[k1]P2+Q2+[k3]G,按GM/T 0003.1

2012第1部分4.2节中定义的方法将x1数据类型转换为整数;
[0032]A6:计算r=(e+x1)mod n,如果r=0或者r+k3=n,则返回A4;
[0033]A7:计算r1=(r+k3)mod n;
[0034]A8:将r1发送给服务方。
[0035]服务方:
[0036]B4:计算s2=(d2‑1·
(k2+r1))mod n;
[0037]B5:将s2发送给发起方。
[0038]发起方:
[0039]A9:计算s=(d1‑1·
(k1+s2)

r)mod n,如果s=0或s+r=n则返回A1;
[0040]A10:使用公钥P
A
验证签(r,s)是否为消息M的签名,如果不是则签名失败;否则输出(r,s)作为消息M的签名。
[0041]可见,本专利技术所述方案中,服务方不知道用户公钥,不需要关联发起方私钥,从而能够有效保护用户的隐私。同时协议执行过程中发送的数据不包含敏感内容,不需要对通信数据做机密性保护;签名生成协议中,不向服务方发送关于待签名消息或者其摘要,服务方仅需要产生一个随机数,并且对于耗时较多的椭圆曲线点乘运算,服务方仅需要计算基点G和随机数的点乘,还可以在发起方请求前就进行预计算,从而本专利技术公布的服务方具有更高的性能。
附图说明
[0042]图1为本专利技术保护用户隐私的盲协同签名方法实施例的流程图。
[0043]图2为本专利技术密钥对生成协议的过程示意图。
[0044]图3为本专利技术签名生成协议的过程示意图。
具体实施方式
[0045]为了使本专利技术的技术方案更加清楚、明白,以下参照附图并举实施例,对本专利技术所述方案作进一步的详细说明。
[0046]本专利技术使用以下术语和定义:
[00本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种保护用户隐私的盲协同签名方法,其步骤包括:1)发起方和服务方分别生成各自的密钥对(d1,P1)和(d2,P2),发起方获得服务方的部分公钥P2并根据P2生成用户A的公钥P
A
;其中,发起方为用户A所在的终端;2)发起方向服务方发起盲协同签名请求;服务方收到所述盲协同签名请求后生成临时私钥k2,并计算对应的公钥Q2,将Q2发送给发起方;3)发起方计算待签名消息M的摘要e,产生随机数k1,k3,并根据e、Q2、k1、k3和P2生成临时签名第一部分r1,将r1发送给服务方;服务方根据d2、k2和r1计算临时签名第二部分s2后返回给发起方;发起方再根据d1、k1、s2和r计算并输出最终的签名(r,s)。2.根据权利要求1所述的方法,其特征在于,所述公钥Q2的生成方法为:产生随机数k2∈[1,n

1]作为临时私钥,然后计算椭圆曲线点Q2=[k2]G作为所述公钥Q2。3.根据权利要求2所述的方法,其特征在于,根据e、Q2、k1、k3和P2生成r1的方法为:31)发起方验证Q2是否满足椭圆曲线方程,若不满足则...

【专利技术属性】
技术研发人员:荆继武王平建王跃武王鹏雷灵光刘丽敏孙思维寇春静
申请(专利权)人:中国科学院大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1