一种数字场景中保护身份隐私的方法
- 国知局
- 2024-11-18 18:11:47
本发明涉及区块链,具体为一种数字场景中保护身份隐私的方法。
背景技术:
1、现代区块链技术是一种分布式账本,它允许不同用户之间进行交易。通常情况下,这种账本以键值存储的形式存在,其中键代表用户的地址,值则代表该地址的余额。为了简化工程实现,这些地址通常是对椭圆曲线上的群元素进行公开且高效的编码,该群元素同时也作为公钥使用。要从特定地址进行消费,用户需要提供数字签名并将交易发布到区块链上。这种机制已被主流的加密货币平台采用,例如比特币。
2、然而,这种设计的一个主要缺点是隐私保护不足,因为任何人都可以追踪到交易的详情。为了解决这一问题,出现了一种通用的加密方法——隐地址协议(sap),门罗币、字节币、tokenpay和samourai钱包等都采用了这种方法。隐地址可以视为用户公钥的派生地址。对于一个形如bg的地址,其中b是字段元素,g是群的生成元,其隐地址的形式为(rb)g,这里的r是发送方随机选择的,并通过密钥交换方案与接收方共享。在最初的设计中,密钥交换采用的是diffie-hellman方法,这种方法在后续的改进中也得到了应用。liu等人提出公钥加密方案(pke)同样也是有效的。关于隐地址协议的第一个工作来自cryptonote,它是门罗币区块链的关键组件。后来,courtois和mercer分析了类门罗币sap的安全性,yu提出了一个类门罗币sap解决方案,允许在一个钱包中使用多个地址。隐地址协议中的密钥交换方案和用于交易的签名方案是sap中的两个相关密码系统,出于安全考虑,特别是考虑到密钥分离原则(即密钥的独立性,这在密码学中是至关重要的),目前的sap都采用双密钥方案,即:每个参与者使用一对扫描密钥来共享和检查隐地址,使用另一对花费密钥来签署和验证交易。这些协议仅适用于专门设计的加密货币系统,如门罗币。尽管sap已部署10年,但仍缺乏一种紧凑型隐地址协议(csap),即采用单一密钥对进行密钥交换和签名,
3、随着人们对交易隐私保护方面的研究。有关研究人员提出联合安全的签名和加密方案(cse)的概念,cse是一个包含签名方案和共享密钥对的加密方案的密码系统。联合安全意味着签名具有不可伪造性(euf),而加密则具有不可区分性(ind)。然而,在这类应用中,密钥隐私性是至关重要的。到目前为止,cse的密钥隐私性尚未被提出和分析,这限制了cse在sap等隐私保护场景中的应用。
技术实现思路
1、本发明的目的在于提供一种数字场景中保护身份隐私的方法,以解决上述背景技术中提出的问题。
2、为了解决上述技术问题,本发明提供如下技术方案一种数字场景中保护身份隐私的方法:
3、步骤s100:在某个区块链中,设置全局参数,所述某个区块链的所有用户使用密钥生成算法,通过全局参数生成密钥对;
4、步骤s200:所述某个区块链用户中的交易发起者获取交易接收者的公有密钥,通过公钥派生函数生成目标隐地址,交易发起者将交易信息发送至目标隐地址;
5、步骤s300:所述某个区块链用户中的交易接收者对所述某个区块链上的交易进行监控,对目标隐藏地址进行识别;
6、步骤s400:所述交易接收者使用在交易过程中,所述某个区块链产生交易信息和密钥,通过执行签名算法生成交易过程的交易凭信;
7、步骤s500:所述交易接收者获取目标隐地址、密文和密钥对,通过执行签名算法生成目标隐地址的交易凭信;
8、步骤s600:所述某个区块链中的任意用户,获取目标隐地址、交易信息和所述交易凭信,通过执行验证算法验证所述交易发起者与所述交易接收者的交易过程的有效性。
9、本发明构建了一个联合安全且密钥隐私的cse,它基于两个组件,首先是具有imp-koa安全性和hvzk性质的标准身份认证协议(cid),以及具有ind-cpa安全性和ik-cpa隐私性的公钥加密方案pke1,这两个方案应当共享密钥生成算法keygen。首先,我们对cid应用fiat-shamir(fs)变换,得到签名sig=fs[cid,h1],其中h1是一个随机预言机。接着,在第二步中,我们采用fujisaki-okamoto(fo)变换,将pke1加密方案变换为密钥封装机制kem=fo[pke1,h2,h3],这里的h2和h3同样是随机预言机。最终,我们设计了一个结合了kem和dem的混合加密公钥加密方案pke2=(kem,dem)。此时keygen、pke2中的加解密算法(enc/dec)、sig中的签名和验证(sign/verify)算法共同构成一个联合安全且密钥隐私的cse。
10、进一步的,步骤s100包括:
11、步骤s101:设置所述某个区块链的全局参数gp,在所述某个区块链中,所用用户的全局参数相同;
12、步骤s102:获取密钥生成算法集key,所述某个区块链中的第i个用户对应key中的第i个密钥生成算法keygeni;
13、步骤s103:所述第i个用户获取全局参数gp,通过密钥生成算法keygeni,得到所述第i个用户的公有密钥pki和私有密钥ski,所述第i个用户的公有密钥pki和私有密钥ski组成密钥对(pki,ski)。
14、进一步的,步骤s200包括:
15、步骤s201:交易接收者通过全局参数,生成密钥对(pkb,skb),其中,pkb表示交易接收者的公有密钥,skb表示交易接收者的私有密钥;
16、步骤s202:所述交易发起者获取所述交易接收者的公有密钥pkb,从循环群g中随机选择一个随机数r;
17、步骤s203:将r和pkb进行拼接得到(r‖pkb),其中‖表示将r和pkb的拼接操作,对(r‖pkb)进行哈希运算,得到h1,h(r‖pkb)=h1,其中,h(r‖pkb)表示对(r‖pkb)进行哈希运算;
18、步骤s204:通过h1和pkb进行乘法运算得到目标隐地址addb,addb=h1×pkb;
19、步骤s205:所述交易发起者对pkb和r进行加密,得到密文信息组c。
20、进一步的,步骤s205包括:
21、步骤s2-1:获取所述交易发起者向明文空间dm中提交的明文信息m,获取第二随机预言机h2,计算m的第二预言信息r,h2(m)=r,其中,h2(m)表示将m带入第二随机预言机进行运算;
22、步骤s2-2:所述交易发起者对r、pkb和r进行加密,得到第一密文c1;
23、步骤s2-3:获取第三随机预言机h3,计算m的第三预言信息k,h3(m)=k,其中,h3(m)表示将m带入第三随机预言机进行运算;
24、步骤s2-4:所述交易发起者将第三预言信息k和随机数r进行封装,得到第二密文c2;
25、步骤s2-5:所述交易发起者将第一密文c1和第二密文c2进行组合,得到密文信息组c,其中c=(c1,c2),(c1,c2)表示所述c1和所述c2的组合信息。
26、进一步的,步骤s300包括:
27、步骤s301:交易接收者获取所述密文信息组c,通过交易接收者的私有密钥skb,对所述密文信息组c进行解密,解得r;
28、步骤s302:对明文m和交易发起者的公有密钥pkb进行拼接,得到(r‖pkb),其中‖表示将r和pkb的拼接操作,对(r‖pkb)进行哈希运算,得到h2,h(r‖pkb)=h2,其中,h(r‖pkb)表示对(r‖pkb)进行哈希运算;
29、步骤s303:所述交易接收者通过h2和交易发起者的公有密钥pkb进行运算,得到比对地址add’b,add’b=h2×pkb;
30、步骤s304:当add’b=addb时目标隐地址核验成功,当add’b≠addb时目标隐地址核验失败。
31、进一步的,步骤s301包括:
32、步骤s3-1:所述交易接收者获取密文信息组c中的第一密文c1,通过交易接收者的私有密钥,解得明文m’;
33、步骤s3-2:当明文空间dm中存在m’时,通过第三随机预言机h3,计算m’的预言信息h3(m’),其中,h3(m’)=k’,当明文空间dm中不存在m’时,反馈不满足判定条件;
34、步骤s3-3:所述交易接收者获取密文信息组c中的第二密文c2和k’,通过解封算法计算得到m。
35、进一步的,步骤s400包括:
36、步骤s401:在交易接收者请求花费目标隐地址中的加密货币时,执行步骤s300中的步骤,对目标隐地址进行核验;
37、步骤s402:在目标隐地址核验成功后,通过h2和私有密钥skb进行运算得到目标隐地址对应的目标私钥b2;
38、本方案通过交易接收者的公有密钥派生出目标隐地址,通过交易接收者的私有密钥派生出目标隐地址对应的密钥,在确保交易安全的基础上,减少了密钥组的对数,节约系统开销。
39、进一步的,步骤s500包括:
40、步骤s501:交易接收者获取目标私钥b2,通过证明者的第一阶段算法生成承诺com和状态st;
41、步骤s502:获取在所述某一区块链中,所述交易发起者与所述交易接收者交易过程产生的交易信息m,交易接收者交易发起者通过第一随机预言机h1将承诺com和交易信息m生成挑战ch,ch=h1(com,m),其中,(com,m)表示将承诺com和交易信息m进行拼接;
42、在区块链的交易过程中,一旦区块链中产生交易,区块链会向区块链的所有参与者告知交易信息,交易接收者对交易信息进行签署,区块链中任意参与者对签署的交易信息进行验证,在验证通过后证明区块链中的交易完成;
43、步骤s503:获取交易发起者的挑战ch和状态st,通过证明者的第二阶段算法生成回复rsp;
44、步骤s504:将承诺com、挑战ch和回复rsp构成认证凭信σ,其中,σ=(com,ch,rsp);
45、身份认证协议中包括证明者的一阶段算法,证明者的二阶段算法,验证者的一阶段算法和验证者的二阶段算法;
46、证明者和验证者是指身份认证协议中的身份,使用身份认证协议来构成签名算法,证明者即为签名算法的签名方,在本方案中为交易发起者,验证者即为签名算法的验证方,不一定是交易接收者,可以是区块链的用户中任何一个人来验证;
47、证明者的一阶段算法通过私钥sk生成承诺com和状态st;
48、证明者的二阶段算法通过状态st和挑战ch生成回复rsp;
49、验证者的一阶段算法通过公钥pk生成挑战ch和状态st;
50、验证者的二阶段算法对公钥pk、状态st、承诺com、挑战ch和回复rsp进行判断;
51、目前的隐地址协议都是双密钥协议。本发明通过构建cse方案,可以实现紧凑的隐地址协议即只使用单密钥对完成对加密信息的核验。
52、进一步的,步骤s600包括:
53、步骤s601:将所述区块链中所有用户中的任意一个用户设置为验证者,验证者获取交易发起者的目标隐地址addb,认证凭信σ和交易信息m;
54、目标隐地址是通过交易接收者的公有密钥生成,公有密钥是区块链任意用户可以获取到的密钥,所以区块链中任意用户通过执行相关算法即可得到目标隐地址addb;
55、步骤s602:将σ解析为承诺com、挑战ch和回复rsp;
56、步骤s603:通过第一随机预言机h1,计算承诺com和交易信息m对应的挑战验证ch2,ch2=h1(com,m),通过验证者的二阶算法对addb,com,ch和rsp进行验证,当v2(addb,com,ch,rsp)=1时验证通过,其中,v2表示验证者的二阶算法;
57、步骤s604:当ch2=ch,且v2(addb,com,ch,rsp)=1时,所述交易过程的为有效的,否则所述交易过程为无效的。
58、与现有技术相比,本发明所达到的有益效果是:本发明采用紧凑的sap的方式,紧凑的sap可以部署到大多数区块链中,如比特币、bch和polkadot等。另外,由于我们的隐地址协议只需要使用单密钥对,因此可用于构建简洁的保护身份隐私的区块链系统,减少了随之而来的密钥和证书管理开销。
59、本发明构建了一个cse,并给出了通用的构造框架,这一方面有助于cse系统在各隐私保护领域的应用,另一方面提高了cse设计的灵活性,设计者可以选择满足安全性要求的组件来组合成自己的cse系统。
本文地址:https://www.jishuxx.com/zhuanli/20241118/327548.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表