基于标签加密与零知识证明的联盟链交易隐私保护方法

    专利查询2022-07-07  161



    1.本发明涉及一种联盟链交易隐私保护方法,具体涉及一种基于标签加密与零知识证明的联盟链交易隐私保护方法,属于区块链隐私保护技术领域。


    背景技术:

    2.随着联盟链技术广泛应用于金融、医疗、供应链等行业,企业级联盟链应用层出不穷。联盟链区别于一般区块链的地方在于,联盟链在一般区块链的基础上附加了身份管理层,只有持有被联盟许可的合法身份的用户才可以加入联盟链网络,用户产生交易时需提供合法的身份信息。这意味着联盟链用户身份存在着泄露风险,攻击者可以轻易获取联盟链用户身份信息,根据身份信息分析该用户交易轨迹,导致联盟链用户隐私受到严重威胁。
    3.为了解决联盟链用户身份信息泄漏问题,近年来有不少针对联盟链用户身份隐私保护的方案被提出。但是,现有的方案普遍侧重于用户身份的匿名隐藏,但并未考虑到完全匿名交易所带来的其它风险。例如,恶意的联盟链用户会利用交易的匿名性产生恶意的交易,对现实造成不良影响,却无法被追踪。
    4.因此,寻找一种能够平衡联盟链用户交易匿名性及交易可追溯性的方案,是非常必要的。


    技术实现要素:

    5.本发明的目的是针对现有技术存在的不足,为解决联盟链中用户身份信息泄漏问题,以及联盟链中存在恶意交易的问题,创造性地提出一种基于标签加密与零知识证明的联盟链交易隐私保护方法。
    6.本发明的创新点在于:采用标签加密与零知识证明的技术手段,实现联盟链交易隐私保护。不仅允许用户在联盟链中进行匿名交易,而且实现了对可疑交易的分布式高效追踪。
    7.本发明采用以下技术方案实现。
    8.基于标签加密与零知识证明的联盟链交易隐私保护方法,包括以下步骤:
    9.步骤1:对联盟链系统进行初始设置,审计用户审计私钥分配。
    10.具体地,步骤1包括以下步骤:
    11.步骤1.1:认证机构ca设置验证发放公钥证书所需要的公私钥对(pk,sk),pk表示公钥、sk表示私钥,并在联盟链系统中广播其公钥pk。
    12.其中,认证机构ca代表一个获得授权的认证中心,负责账号的注册和管理。
    13.步骤1.2:联盟链系统根据参数t和m,设置生成基于标签的公钥加密的公钥pkt、m个私钥vi和m个验证公钥vki(i=1,..,m)。其中,t为阈值,t≤m。
    14.步骤1.3:ca将m个私钥vi通过安全方式发送给m个审计用户aui并由aui保存,联盟链系统只保存公钥pkt和m个验证公钥vki。
    15.其中,审计用户是联盟链系统中账本追溯问责的参与者,可以由联盟链系统指定
    或由所有交易用户选举获得。通过所有审计用户的合作,完成联盟链系统可疑账本的追溯认证,从而达到问责的目的。
    16.步骤1.4:联盟链系统设置零知识证明的相关参数,如安全参数、时间参数等。
    17.步骤1.5:ca设置针对初始交易用户认证的公私钥对pki和ski,pki表示公钥、ski表示私钥,并由联盟链系统来保存并公布pki。
    18.步骤2:交易用户进行账号初始注册与认证。
    19.具体地,步骤2包括以下步骤:
    20.步骤2.1:当交易用户u首次加入联盟链系统时,其向ca发送认证消息、相关身份资料和身份pku。
    21.步骤2.2:ca认证通过后,向交易用户u发送一个针对其身份pku的证书cau和一个利用ca私钥ski对交易用户u的身份pku生成的一个认证码caiu。
    22.其中,认证码caiu的作用是区别于假名身份认证,防止在联盟链系统中攻击者伪造身份。
    23.步骤3:交易用户假名身份注册。
    24.具体地,步骤3包括以下步骤:
    25.步骤3.1:交易用户u根据联盟链系统设置,随机选择n个数字作为私钥集usk=ski,i=1,..,n。然后,计算出所有私钥ski对应的公钥pki,组成随机密钥对集um=(pki,ski)。
    26.步骤3.2:交易用户u通过ca认证完成假名身份认证。
    27.具体地,步骤3.2包括以下步骤:
    28.步骤3.2.1:交易用户u向ca发送首次注册时的身份pku和对应证书cau,向ca验证自己的身份,并向ca发送要认证的假名数n。
    29.步骤3.2.2:ca认证通过后,给交易用户u发送认证通过消息;
    30.步骤3.2.3:交易用户u首先从自己生成的密钥对集合um中选择一个pki,并将设置消息m为pki,然后与ca进行交互签名生成,其中,u作为签名中的接收方,ca作为签名者。交互完成后,交易用户u为pki获得一个认证的si,si是ca的签名。
    31.步骤3.2.4:对所有假名重复执行步骤3.2.3,从而为n个假名pki获得系统认证证书si。
    32.步骤4:用户进行交易。
    33.具体地,步骤4包括以下步骤:
    34.步骤4.1:交易用户u首先从密钥对集合um中选择一个公钥pki和其对应证书si,作为本次交易的发起方。
    35.步骤4.2:利用基于标签的公钥加密方式,加密用户的pku,得到密文cu,加密的公钥为pkt,标签为pki。
    36.步骤4.3:通过基于非交互式零证明方式,调用零知识证明prove算法输入(prove,x,w)产生证据π,其中,x=(cu,pk,pki),w=(pki,si,caiu),x为公开输入参数,w为秘密证据。
    37.步骤4.4:利用私钥ski基于签名算法生成对(tx,π,cu,pki)的签名σs,其中,tx为交易的具体内容。
    38.步骤4.5:将tx=(tx,π,cu,pki,σs)作为完整的交易,发送到联盟链系统。
    39.步骤4.6:联盟链系统验证tx交易合法性,如果合法就将交易记录在链上账本,交易结束;否则,交易失败。
    40.步骤5:进行可疑交易用户身份追溯。
    41.具体地,包括以下步骤:
    42.步骤5.1:交易用户u对于发现的可疑交易txd,向联盟链系统发出对txd中用户追溯的消息tr=(pkd,c
    x
    ),使整个系统中的所有用户都能收到;
    43.步骤5.2:当m个审计用户aui收到消息tr,首先利用aui中的私钥vi,并以pkd为标签,对c
    x
    解密得到解密共享信息vui,然后将其发送给交易用户u。
    44.步骤5.3:交易用户u利用审计用户aui的验证公钥vki验证vui的正确性,如果正确就接收存储;否则,就不接收;
    45.步骤5.4:当交易用户u收到超过t个vui后,根据其对应的验证公钥集{vki}、相应的{vui}集和标签pkd,对密文c
    x
    进行解密,即可成功得到交易发起方的真实pk
    x

    46.有益效果
    47.本发明方法,与现有技术相比,具有以下优点:
    48.1.本发明解决了传统联盟链交易系统中存在的身份隐私保护和交易追溯问责相矛盾的问题,可以同时达到有效监管和身份隐私保护,实现两方面的平衡。
    49.2.本发明提出了一种特殊的交易机制,该机制能够在支持审计的条件下有效保护用户身份隐私数据。
    附图说明
    50.图1为本发明方法的流程示意图。
    具体实施方式
    51.下面结合附图和实施例对本发明的技术方案进行更加清楚、具体地描述。本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施过程,都属于本发明保护的范围。
    52.实施例
    53.如图1所示,基于标签加密与零知识证明的联盟链交易隐私保护方法,包括以下过程:
    54.步骤1:联盟链系统初始设置及审计私钥分配。
    55.具体地,步骤1包括以下步骤:
    56.步骤1.1:ca设置验证发放公钥证书所需要的公私钥对(pk,sk),并在联盟链系统中广播其公钥pk。
    57.步骤1.2:区块链系统调用标签加密(tpke)的系统设置算法п
    tpke
    setup(1
    λ
    ,7,10),其中t=7为阈值、λ为安全参数,设置生成基于标签的公钥加密的公钥pkt,m=10个私钥vi和m=10个验证公钥vki(i=1,..,10)。
    58.步骤1.3:ca将10个私钥vi通过安全的方式发送给10个审计用户aui(由系统指定)由他们来保存,系统只保存公钥pkt和10个验证公钥vki。
    59.步骤1.4:联盟链系统调用零知识证明的系统设置算法п
    nizk
    setup(1
    λ
    ,r)设置零知识证明的相关参数,并得到公共参数(pkn,skn)。λ为安全参数,r代表多项式时间参数。
    60.步骤1.5:ca设置针对初始用户认证的公私钥对pki和ski,由系统来保存并公布pki。
    61.步骤1.6:将初始化参数(t,m,pki,pkt,pk,vk
    i(i=1,

    10)
    )记录在联盟链的账本上。
    62.步骤2:用户账号注册与认证。
    63.具体地,步骤2包括以下步骤:
    64.步骤2.1:用户u使用公钥算法rsa生成密钥对(pku,sku),并将生成的pku以及用户u的相关身份信息身份证号码、姓名、性别、家庭住址提交给ca进行签名;
    65.步骤2.2:ca会对用户信息检查,然后对生成证书和认证码其中,具体为:ca检查用户u提交的信息,包括身份证号码、姓名、性别和家庭住址;
    66.当ca对用户u的信息检查通过后,ca分别使用私钥sk和私钥ski对u的pku进行签名,调用签名产生算法输出证书cau=п
    sig
    sign(sk,pku)和认证码caiu=п
    sig
    sign(ski,pku);
    67.步骤2.3:ca将步骤2.2输出的签名信息cau和caiu发送给用户u;
    68.步骤3:用户u对三个不同假名身份注册。
    69.具体地,步骤3包括以下步骤:
    70.步骤3.1:用户u使用公钥算法rsa生成三个密钥对(pku_1,sku_1)、(pku_2,sku_2)和(pku_3,sku_3)组成私钥集随机密钥对集um。
    71.步骤3.2:用户通过ca认证完成假名身份认证:
    72.步骤3.2.1:用户u向认证中心ca发送首次注册时的公钥pku和对应证书cau,向ca验证自己的身份,并发送要认证的假名数3;
    73.步骤3.2.2:认证中心ca通过调用签名验证算法п
    sig
    verify(pk,cau,pku)来验证u的身份:成功,就给用户u发送认证通过消息;失败,反馈出错信息给u;
    74.步骤3.2.3:收到成功消息后,用户u从自己生成的密钥对集合um中选择一个密钥对(pku_1,sku_1),接着将设置消息m为pku_1,然后与ca进行交互签名生成,具体为;
    75.其中,u作为签名中的接收方,ca作为签名者;
    76.用户u将消息m发送给ca,ca收到u发送的消息后利用私钥sk对pku_1进行签名,输出证书s1=п
    sig
    sign(sk,pku_1),然后ca将s1发送给u;
    77.用户u收到s1后将其存储在pku_1对应的证书库中;
    78.步骤3.2.4:对余下2个假名重复步骤3.2.3,为2个假名pku_2、pku_3分别获得一个对应的系统认证证书s2、s3。
    79.步骤4:用户交易。
    80.具体地,步骤4包括以下步骤:
    81.步骤4.1:交易用户u从密钥对集合um中选择一个公私钥对(pku_1,sku_1)和其对应证书s1作为本次交易的发起方;
    82.步骤4.2:利用基于标签的公钥加密,以pku_1为标签加密用户的pku,调用标签加密的加密算法输出密文cu=п
    tpke
    encrypt(pkt,pku_1,pku);
    83.步骤4.3:通过基于非交互式零证明,调用零知识证明prove算法,产生证据π1=
    π
    nizk
    prove(pkn,x,w),其中x=(cu,pk,pki),w=(pku_1,s1,caiu);
    84.步骤4.4:用户u利用私钥sku_1调用签名生成算法sign输出签名σ1,其中:
    85.σ1=π
    sig
    sign(sku_1,(tx,π1,cu,pku_1))
    86.其中,tx为交易的具体内容用户u向v发送100rmb。
    87.步骤4.5:将tx=(tx,π1,cu,pku_1,σ1)作为完整的交易发送到联盟链网络;
    88.步骤4.6:联盟链网络验证tx交易合法性,具体如下:
    89.联盟链节点首先通过签名验证算法π
    sig
    verify(pku_1,tx)的输出判断tx是否合法,如何输出为1,就进行下一阶段;否则交易非法;
    90.如果签名合法,联盟链节点继续通过零知识证明验证算法π
    nizk
    verify(skn,π1,x)的输出判断是否为伪造交易,如果输出仍为1,交易合法将交易添加到链上账本;否则,交易非法;
    91.步骤5:可疑交易用户身份追溯。
    92.具体地,步骤5包括以下步骤:
    93.步骤5.1:当有用户u发现可疑的交易txd时,向系统中发出对txd中用户的追溯的消息tr=(pkd,c
    x
    ),使整个系统中的所有用户都可以收到;
    94.步骤5.2:当审计用户aui收到tr,首先将aui中的私钥vi、pkd和密文c
    x
    作为标签加密sharedec算法的输入对c
    x
    解密得到一个解密共享信息vui=п
    tpke
    sharedec(pkt,pkd,vi,c
    x
    ),然后将其发送给用户u;
    95.步骤5.3:用户u收到vui后首先利用其对应的公钥vki和标签加密的sharever算法,验证π
    tpke
    sharever(pkt,vki,pkd,c
    x
    ,vui),如果输出为1就接收存储;否则,就不接收。
    96.步骤5.4:当用户u收到8个vui之后,根据其对应的验证公钥集{vki}、相应的{vui}集、标签pkd和标签加密的combine算法对密文c
    x
    进行解密,即可成功得到交易发起方的真实身份pk
    x

    97.其中,pk
    x
    =π
    tpke
    combine(pkt,pkd,c
    x
    ,vu8,..,vu8,vk8,..vk8)。
    98.以上所述为本发明的较佳实施例而已,本发明不应该局限于该实施例和附图所公开的内容。凡是不脱离本发明所公开的精神下完成的等效或修改,都落入本发明保护的范围。
    转载请注明原文地址:https://tc.8miu.com/read-1538.html

    最新回复(0)