一种新型区块链隐私保护方法与流程

文档序号:30659277发布日期:2022-07-06 01:29阅读:283来源:国知局

1.本发明涉及网络安全技术领域,尤其涉及一种新型区块链隐私保护方法。


背景技术:

2.区块链技术在隐私保护方面具有显著优势,如信息防篡改、匿名性和网络稳定性,可以解决一些集中服务面临的隐私泄露问题;然而区块链技术采用的分散架构和数据存储机制也对隐私保护带来了一些不利影响,其中两个主要问题是用户身份隐私挑战和用户交易隐私挑战。
3.身份隐私指用户真实身份与区块链地址之间的关系。区块链上的信息无法更改,它以分布式账本形式存储于链上,任何节点都可以从链中获取完整信息。攻击者通过监视和分析全局分类账中公告数据的相关性来发现敏感信息,推断用户身份信息和位置信息。交易隐私是指存储在区块链中的交易记录和交易背后的潜在信息,传统通过加密信息完成保护。区块链加密交易信息时,一方面需要确保交易信息不会被未经授权的节点窃取;另一方面需要在不披露敏感信息条件下验证交易真实性,并且交易额也不能完全加密,两者存在矛盾。
4.现有技术中有通过硬币混合机制通过添加中间传输新型,增强通信匿名性,执行通过可信的第三方或者某些协议来实现,包括基于中心节点的硬币混合机制和分散硬币混合机制。基于中心节点的硬币混合机制由可信的第三方代为完成资金转移,部分隐藏区块链内的转移关系,但是需要可信的第三方,增加费用以及交易延迟;而且第三方掌握用户隐私可能导致进程泄露。基于分散式的硬币混合机制取消第三方硬币混合提供商的参与,并将多个一对一交易记录合并为多对多交易记录,需要用户自行完成混币过程,存在如下缺陷:1)混币用户无法有效找到其他混币用户,故仍需要第三方平台帮助执行寻找混币用户;2)参加混币过程的用户可能在协商过程中暴露自己的混币信息,这无法保证所有参与者可信;3)硬币混合需要多个用户同时参与,一旦一些用户由于非法操作无法混合硬币,攻击者可以发起拒绝服务攻击;4)攻击者拥有多个地址参与硬币混合过程,则其他用户在这一过程中会收到信息泄露威胁。也有通过零知识证明方法来使得验证人可以让验证人相信消息是正确的,试单零知识证明效率慢,产生一个新的证明需要长达一分钟时间;同态加密方法隐私保护效果好,但是需要消耗大量计算时间和内存,不适合大规模应用,使用效率上存在瓶颈;隐藏地址方法可以解决输入地址和输出地址相关性问题,由于中间地址的随机不确定性,无法确定中间地址属于哪个交易用户,从而保护用户的隐私安全和硬币的真实性,但是攻击者使用事务图分析事务从发送端到一次性地址再到接收端之间的关系,可以打破事务流的隐私性;
5.因此,现有技术都存在着一些不足,通过何种方法来保护用户隐私是目前需要考虑的问题。


技术实现要素:

6.本发明的目的在于克服现有技术的缺点,提供了一种新型区块链隐私保护方法,解决了现有方法存在的不足。
7.本发明的目的通过以下技术方案来实现:一种新型区块链隐私保护方法,所述隐私保护方法包括:
8.s1、设置安全参数1,随机选取大于1的素数q,输出参数为par={q,g,g1,p,h0,h1,h2},根据椭圆曲线得到私钥k和公钥q,其中,p是g1的生成器,g为误差椭圆曲线上的一个基点,g1为一个q阶加性循环群,h0、h1和h2为哈希函数;
9.s2、输入安全参数为每一个用户生成公私钥对(pki,ski);
10.s3、输入消息m、一组公钥r和签名者私钥ski,输出对m的环签名;
11.s4、对输入消息m和公钥r进行验证,如果验证结果为真,则验证签名图像是否在其他签名中已经被使用,如果没有被使用,则签名有效,否则视为无效签名。
12.所述根据椭圆曲线得到私钥k和公钥q包括:
13.在fq上存在一条非奇异椭圆曲线eq(a,b),定义为y2modq=(x3+ax+b)modq,mod表示指取模运算,a,b,x,y均属于fq,(4a3+27b2)modq不等于0,fq表示以q为模的整数域;
14.如果点p(x,y)满足eq(a,b),则点p在椭圆曲线上,点p的负点为q(x,-y),满足p=-q,令 p(x1,y1)和q(x2,y2)为椭圆曲线上的两点,且p不等于q,做一条直线通过点p和点q交椭圆曲线于点r’=(x3,-y3),得到点r’相对x轴的对称点r=(x3,y3)就是p和q的和,即r=p+q;
15.椭圆曲线eq(a,b)上的点和无穷远点o共同构成q阶素数加性循环群gq=(x,y):a,b,x,y∈fq, (x,y)∈fq,(a,b),定义gq上的点乘运算为kp=p+p+

+p,k∈zq*,zq*表示以q为模的正整数域,定义椭圆曲线上的点p和点q的关系为q=kp,将k设置为私钥,q设置为公钥。
16.所述输入安全参数为每一个用户生成公私钥对(pki,ski)包括:区块链中的用户ui(1《=i《=n) 随机选择属于zq*的xi,计算xi×
p

pki,定义用户公钥pki∈g,私钥ski=xi∈zq*。
17.所述输入消息m、一组公钥r和签名者私钥ski,输出对m的环签名包括:
18.事务发起人s选择参与环签名的用户的公钥集合r=pk1,pk2,

,pkn,根据公式和计算求解每一个公钥pki的属性值li,ri,其中,r不包含发起人s本人的公钥pks,is=sks*h0(pks)表示信息的签名, h0(pks)表示将pki映射到有限域椭圆曲线上的一点;。
19.随机选取属于zq*的r,根据公式计算h=h2(m||r).、和其中,m是签名的内容,最终事务发起方s对消息m绘制的环签名为t={is,c1,c2,

,cs,

,cn,d1,d2,

,ds,

,dn}。
20.所述对输入消息m和公钥r进行验证包括:
21.通过公式计算参数,并验证是否
为真,若为真,验证该签名图像是否在其他签名中已经被使用,若没有被使用,则签名有效,否则视为无效签名。
22.本发明具有以下优点:一种新型区块链隐私保护方法,不增长密钥长度的情况下可以保证更好的安全性,加强并改进了对签名者身份的保护,不可伪造性强,攻击者破解密钥的概率降低。
具体实施方式
23.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例,对技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护的范围。下面对本发明做进一步的描述。
24.本发明利用环签名技术设计一个完全匿名的用户数据存储协议,以确保区块链中用户信息的优先级。在环签名生成过程中,真正的签名者任意选取一组成员(包含它自身)作为可能的签名者,用自己的私钥和其他成员的公钥对文件进行签名。签名者选取的这组成员称作环(ring),生成的签名称作环签名(ring signature);具体包括以下内容:
25.1、初始化:
26.设置安全参数l,其中l是一个足够大的素数。随机选取大于l的素数q。g是椭圆曲线上的一个基点。g1是一个q阶循环加性群。
27.输出系统参数为par={q,g,g1,p,h0,h1,h2},其中p是g1的生成器,哈希函数如下:h0: e(fq)

e(fq),h1:{0,1}
→fq
,h2:{0,1}*
×
g1
→zq
*;h0、h1和h2中的箭头表示映射关系,如h0表示满足在以q为模的整数域内设置映射。。
28.其中:
29.(1)fq代表以q为模的整数域,zq*表示以q为模的正整数域;
30.(2)在fq上存在一条非奇异椭圆曲线eq(a,b),定义为y2modq=(x3+ax+b)modq,mod指取模运算,a,b,x,y均属于fq,(4a3+27b2)modq不等于0(椭圆方程可解,即满足非奇异条件);来对误差曲线进行定义,即通常选取该方程的椭圆曲线为误差曲线(误差曲线并不一定是椭圆形),其中,a和b为椭圆曲线参数。
31.(3)加性循环群上的加法和数乘:
32.若p(x,y)满足eq(a,b),则点p在椭圆曲线上,点p的负点为q(x,-y),满足p=-q;
33.令p(x1,y1)和q(x2,y2)为椭圆曲线上的两点,且p不等于q,做一条直线通过p,q交椭圆曲线于r’=(x3,-y3),r’相对x轴的对称点r=(x3,y3)就是p和q的和,即r=p+q。
34.(4)加性循环群:
35.椭圆曲线eq(a,b)上的点和无穷远点o共同构成q阶素数加性循环群gq=(x,y):a,b,x,y∈fq, (x,y)∈fq,(a,b),将gq上的点乘运算定义为:kp=p+p+

+p(k∈zq*)。
36.(5)定义椭圆曲线上的两点q=kp,当已知k、p时可以相对简单地求解q,但已知q、 p却很难确定k的值,故可以借此在椭圆曲线上选取一个点作为基点p,设置k为私钥,q作为公钥。
37.2、密钥生成算法:输入安全参数,为每一个用户生成公私钥对(pki,ski)。
38.区块链中的用户ui(1《=i《=n),n为用户数量,随机选择属于zq*的xi,计算xi×
p

pki,定义用户公钥pki∈g,私钥ski=xi∈zq*,其中xi就是q=kp中的k,k是随机选取作为私钥的,对用户ui每次加密都随机生成一个私钥xi,并以此生成公钥q,此时攻击者只要不知道私钥就无法根据公钥q解密内容。
39.3、签名算法:输入消息m,一组公钥r以及签名者私钥ski,输出对m的环签名。
40.事务发起人s选择参与环签名的用户的公钥集合r=pk1,pk2,

,pkn,r不包含发起人s本人的公钥pks,根据如下计算求解每一个公钥pki的属性值li,ri。
41.(1)随机选取属于zq*的ui,vi,wi,然后计算:
[0042][0043][0044]
其中,is=sks*h0(pks)是信息的签名,h0(pks)将pki映射到有限域椭圆曲线上的一点。
[0045]
(2)随机选取属于zq*的r,然后做如下计算:
[0046]
h=h2(m||r).
ꢀꢀ
(3)
[0047][0048][0049]
其中,m是签名的内容,最终事务发起方s对消息m绘制的环签名为: t={is,c1,c2,

,cs,

,cn,d1,d2,

,ds,

,dn}
[0050]
4、验证算法:输入(m,r),输出true或false。
[0051]
任何拥有参与环签名的所有成员的公钥的人都可以验证交易签名t,如下所示:
[0052][0053][0054]
通过式子(6)计算参数,并验证式子(7)是否为真。若为真,验证该签名图像是否在其他签名中已经被使用,若没有被使用,则签名有效,否则视为无效签名。
[0055]
以上所述仅是本发明的优选实施方式,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1