基于树型分层结构的可认证的多方量子密钥分配方法与流程

文档序号:16198262发布日期:2018-12-08 06:21阅读:187来源:国知局
基于树型分层结构的可认证的多方量子密钥分配方法与流程
本发明一种基于树型分层结构的可认证的多方量子密钥分配方法,属于量子密钥分配
技术领域

背景技术
密钥分配协议用于促进在通信网络上的用户之间共享会话密钥。通过利用共享会话密钥,可以在不安全的公共网络上进行安全通信。在通信安全中设计安全密钥分发协议是当务之急。在某些密钥分发协议中,两个用户通过可信中心(tc)获得共享会话密钥。由于会话密钥协商涉及三方(两个用户和一个tc),因此这些协议被称为三方密钥分发协议。在量子密码学中,量子密钥分发协议(qkdp)采用量子机制来分配会话密钥和公开讨论来检查窃听者并验证会话密钥的正确性。然而,公共讨论需要发送者和接收者之间进行额外的通信并花费宝贵的量子比特。传统的多方量子密钥分配方法多是基于星型网络拓扑结构,在半可信中心或可信中心的协助下进行多方量子密钥分发。技术实现要素:本发明所要解决的技术问题是克服现有技术的缺陷,提供一种基于树型分层结构的可认证的多方量子密钥分配方法,在可信中心和半可信中心的协助下,在树型分层结构上实现用户身份认证和密钥认证的多方量子密钥分配,并且用户身份认证和密钥验证可以在一个步骤中完成,而无需发送者和接收者之间的公开讨论。为解决上述技术问题,本发明提供一种基于树型分层结构的可认证的多方量子密钥分配方法,包括以下步骤:1)构建树型分层结构;所述树型分层结构分为三层,第一层为一个可信的根节点tc,是量子密钥的发射端;第二层为若干个半可信的中间节点,既是量子密钥接受端也是量子密钥发射端;每个中间节点对应若干个最终节点,最终节点即为第三层,最终节点是密钥分配中的通信方;2)选取任意两个通信方ai和bj,在各自所属中间节点ac、bc以及根节点tc的帮助下进行密钥分发;tc预先与ac共享密钥ktac,与bc共享密钥ktbc,ai预先与ac共享密钥ktai,bj预先与bc共享密钥ktbj,密钥长度均为n比特;3)可信根节点tc,半可信中间节点ac、bc和最终节点ai、bj,根据预先共享的密钥同步它们的基;4)量子密钥发射端tc与ac之间共享量子密钥为u比特的sk,tc与bc之间共享量子密钥为u比特的sm,经对比分析判断后,bc获知sk;5)tc生成一个l比特的随机数rtac,ac生成一个l比特的随机数rtai,并计算中间量:bc生成一个l比特的随机数rtbj,tc再生成一个l比特的随机数rtbc,并计算中间量:其中,h(·):{0,1}*→{0,1}m为单向哈希函数,并且有等式n=m+2l和m=u+4k成立,uac、ubc、uai、ubj分别为ac、bc、ai和bj的身份序列,身份序列长度为k比特,m为哈希函数输出比特,6)根据(rtai||rtac||rtai)a和(ktai)a,ac创建量子比特qtai,然后ac把qtai发送给ai;bc以同样的方式创建量子比特qtbj,并将qtbj发送给bj,其中,(ktai)a表示密钥ktai的第a位,a=1,2,…,n;7)ai根据ktai测量接收到的量子比特qtai;bj根据ktbj测量接收到的量子比特qtbj;8)ai得到了测量结果r'tai||r'tac||r'tai后,根据计算sk',并验证中间节点和通信方的身份标志uai、uac、ubc、ubj;bj得到测量结果r'tbj||r'tbc||r'tbj后,根据计算sk",并验证中间节点和通信方的身份标志ubj、ubc、uac、uai;其中,r'tai、r'tac、r'tai表示ai根据ktai测量接收到的量子比特qtai经过测量后得到的二进制比特串r'tai||r'tac||r'tai;sk'表示ai根据测量结果得到的ac发送给ai的密钥;r'tbj、r'tbc、r'tbj表示ai根据ktai测量接收到的量子比特qtai经过测量后得到的二进制比特串r'tbj||r'tbc||r'tbj,sk"表示bj根据测量结果得到的bc发送给bj的密钥;sk'和sk"均为u比特长度;9)ac生成一个l'比特的随机数rac,ai生成一个l'比特的随机数rai,并计算中间量:bc生成一个l'比特的随机数rbc,bj生成一个l'比特的随机数rbj,并计算中间量:并且有h'(·):{0,1}*→{0,1}4k和等式u=2l'+4k成立;10)根据(rai||rac||csai)c和(sk')c,ai创建量子比特,然后ai把量子比特发送给bj;bj以同样的方式创建量子比特,并发送给ai,其中,(sk')c为密钥sk'的第c位,c=1,2,…,u;11)ai和bj接收到量子比特,根据(sk')c和(sk")c分别测量接受到的量子比特;12)ai得到测量结果rbj'||rbc'||csbj',并判断下面等式是否成立:rbj'≠rai且rbc'≠rac;如果等式成立,ai计算会话密钥sk=h(sk',0,0);bj判断下面等式是否成立:如果等式成立,计算会话密钥sk'=h(sk",0,0)。前述的步骤3)中,同步基的方式为:如果(ktai)a=0,就选择d={|+>,|->}基,否则选择r={|0>,|1>}基,其中,(ktai)a表示密钥ktai的第a位,a=1,2,…,n;如果(ktbj)b=0,就选择d={|+>,|->}基,否则选择r={|0>,|1>}基,其中,(ktbj)b表示密钥ktbj的第b位,b=1,2,…,n。前述的步骤4)中,对比分析判断过程为:tc比较两个共享的量子密钥sk和sm,相同记为“y”不同记为“n”,tc通过公开的信道将所得的比较结果告诉ac和bc,ac和bc实现共享彼此的量子密钥。前述的步骤6)中,ac创建量子比特qtai的方式如下:(61)、如果(rtai||rtac||rtai)a=0,(ktai)a=0,则(qtai)a为|+>;(62)、如果(rtai||rtac||rtai)a=1,(ktai)a=0,则(qtai)a为|->;(63)、如果(rtai||rtac||rtai)a=0,(ktai)a=1,则(qtai)a为|0>;(64)、如果(rtai||rtac||rtai)a=1,(ktai)a=1,则(qtai)a为|1>。前述的步骤7)中,测量量子比特的方式为:如果(ktai)a=0,则用对角基d={|+>,|->}测量量子比特qtai;否则,用直角基r={|0>,|1>}进行测量qtai;如果(ktbj)b=0,则用对角基d={|+>,|->}测量量子比特qtbj;否则,用直角基r={|0>,|1>}进行测量qtbj。前述的步骤10)中,ai创建量子比特的方式为:(10a)、如果(rai||rac||csai)c=0,(sk')c=0,则量子比特为|+>;(10b)、如果(rai||rac||csai)c=1,(sk')c=0,则量子比特为|->;(10c)、如果(rai||rac||csai)c=0,(sk')c=1,则量子比特为|0>;(10d)、如果(rai||rac||csai)c=1,(sk')c=1,则量子比特为|1>。本发明与现有技术相比,具有以下优点:1、本发明可以在树型分层结构内实现任意两个合法用户之间的密钥分配。2、本发明可以实现身份认证和密钥验证,提高了量子密钥分配方法的安全性。3、本发明可以轻松避免重放攻击和被动攻击。4、本发明用户身份认证和会话密钥验证可以在一个步骤中完成,而无需发送者和接收者之间的公开讨论。5、本发明通信双方预先与半可信的中间节点共享密钥,根节点预先与半可信的中间节点共享密钥可以是长期的(重复使用)。附图说明图1是本发明基于树型分层结构的可认证的多方量子密钥分配方法中树型分层结构图。图2为本发明基于树型分层结构的可认证的多方量子密钥分配方法的过程图。具体实施方式下面对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。如图1所示,基于树型分层结构的可认证的多方量子密钥分配方法中树型分层结构图,分为三层,第一层为一个可信的根节点tc,它是量子密钥发射端;第二层为若干个半可信的中间节点,也是一个子网的中心,既是量子密钥接受端也是量子密钥发射端;每个中间节点对应若干个通信方,即为最终节点。实际工作中,任意两个通信方可以在各自所属的中间节点和根节点的帮助下实现密钥分发。本发明选取任意两个通信方ai和bj,在各自所属中间节点ac、bc以及根节点tc的帮助下实现可认证的密钥分发。每个中间节点和最终节点都有一个身份序列,我们可以假设这些序列分别是uac、ubc、uai、ubj,序列长度均为k比特。tc通过直接联系或其他方式预先与ac共享密钥ktac,与bc共享密钥ktbc,ai通过直接联系或其他方式预先与ac共享密钥ktai,bj通过直接联系或其他方式预先与bc共享密钥ktbj,密钥长度均为n比特。结合图2,本发明的基于树型分层结构的可认证的多方量子密钥分配方法,包括以下步骤:步骤一、可信根节点tc,半可信中间节点ac、bc和参与者ai、bj,根据预先共享的密钥同步它们的基。其中,(ktai)a中的比特序列被视为用户ai与ac之间的测量基准,(ktbj)b中的比特序列被视为用户bj与bc之间的测量基准。例如,如果(ktai)a=0,就选择d={|+>,|->}基,否则选择r={|0>,|1>}基。其中,(ktai)a表示密钥ktai的第a位,a=1,2,…,n。步骤二,量子密钥发射端tc通过对各自与量子密钥接受端ac、bc之间的共享量子密钥信息进行对比分析判断后实现密钥共享。量子密钥接受端ac、bc为中间节点(多个量子密钥接受端)中的任意两个,假设tc与ac之间共享的量子密钥为u比特的sk,tc与bc之间共享的量子密钥为u比特的sm,经密钥共享后,bc可以知道密钥sk。步骤三、tc生成一个l比特的随机数rtac,ac生成一个l比特的随机数rtai,并计算中间量:与此类似,bc生成一个l比特的随机数rtbj,tc再生成一个l比特的随机数rtbc,并计算中间量:其中,h(·):{0,1}*→{0,1}m为单向哈希函数,并且有等式n=m+2l和m=u+4k成立,其中,密钥sk长度为u比特,哈希函数输出为m比特,uac、ubc、uai、ubj,序列长度均为k比特。步骤四、根据(rtai||rtac||rtai)a和(ktai)a,a=1,2,…,n,n为密钥长度,ac创建量子比特qtai。建立过程如下:(1)、如果(rtai||rtac||rtai)a=0,(ktai)a=0,则(qtai)a为|+>;(2)、如果(rtai||rtac||rtai)a=1,(ktai)a=0,则(qtai)a为|->;(3)、如果(rtai||rtac||rtai)a=0,(ktai)a=1,则(qtai)a为|0>;(4)、如果(rtai||rtac||rtai)a=1,(ktai)a=1,则(qtai)a为|1>。之后ac把qtai发送给ai,bc以同样的方式创建量子比特qtbj。步骤五、ai根据ktai测量接收到的量子比特qtai。如果(ktai)a=0,则用对角基d={|+>,|->}测量量子比特;否则,用直角基r={|0>,|1>}进行测量。与此类似,bj根据ktbj测量接收到的量子比特qtbj。步骤六、一旦ai得到了测量结果r'tai||r'tac||r'tai,他就可以计算可以得到sk'并且可以验证中间节点和通信双方的身份标志uai、uac、ubc、ubj。与此类似,bj得到测量结果r'tbj||r'tbc||r'tbj,并计算之后,bj可以得到sk"并且验证中间节点和通信双方的ubj、ubc、uac、uai,其中,r'tai、r'tac、r'tai表示步骤五中,ai根据ktai测量接收到的量子比特qtai经过测量后得到的二进制比特串r'tai||r'tac||r'tai;sk'表示ai根据测量结果得到的ac发送给ai的密钥;sk"表示bj根据测量结果得到的bc发送给bj的密钥,sk'和sk"均为u比特长度。步骤七、ac生成一个l'比特的随机数rac,ai生成一个l'比特的随机数rai并计算与此类似,bc生成一个l'比特的随机数rbc,bj生成一个l'比特的随机数rbj,并计算并且有h'(·):{0,1}*→{0,1}4k和等式u=2l'+4k成立。步骤八、根据(rai||rac||csai)c和(sk')c,c=1,2,…,u,ai创建量子比特。建立过程如下:(1)、如果(rai||rac||csai)c=0,(sk')c=0,则量子比特为|+>;(2)、如果(rai||rac||csai)c=1,(sk')c=0,则量子比特为|->;(3)、如果(rai||rac||csai)c=0,(sk')c=1,则量子比特为|0>;(4)、如果(rai||rac||csai)c=1,(sk')c=1,则量子比特为|1>。ai把量子比特发送给bj。与此类似,bj根据(rbj||rbc||csbj)c和(sk")c为ai创建量子比特。步骤九、一旦接收到量子比特,ai和bj就可以根据(sk')c和(sk")c分别测量接受到的量子比特。如果(sk')c=0则用对角基d={|+>,|->}测量量子比特;否则,用直角基r={|0>,|1>}进行测量。与此类似,bj根据(sk")c测量接收到的量子比特。步骤十、ai得到测量结果rbj'||rbc'||csbj'并判断下面等式是否成立:rbj'≠rai且rbc'≠rac如果等式成立,ai就计算会话密钥sk=h(sk',0,0)。与此类似,bj判断下面等式是否成立:如果等式成立计算会话密钥sk'=h(sk",0,0)。本实施例中,在基于树型分层结构的可认证的多方量子密钥分配方法中,用户ai与bj间密钥分配过程如下表1:表1基于树型分层结构的可认证的多方量子密钥分配过程列表编号(1)(2)(3)(4)(5)(6)(7)(8)(9)…ktai100011001…baserdddrrddr…(rtai||rtac||rtai)i100001111…qtai|1>|+>|+>|+>|0>|1>|->|->|1>…baserdddrrddr…r'tai||r'tac||r'tai100001111…(rai||rac||csai)i011001000…sk'101010000…量子比特|0>|->|1>|+>|0>|->|+>|+>|+>…baserdrdrdddd…rbj'||rbc'||csbj'110000111…sk101001000…具体描述如下:假设uac=100,ubc=001,uai=101,ubj=011,ktai=10001100100000101010001110100011,ktbj=01011000111101011110001110000100,ac、bc和参与者ai、bj根据预先共享的密钥同步它们的基。假设tc与ac的共享量子密钥sk=1010100000010111,tc与bc的共享密钥为sm=0011100101111011,tc比较量子密钥,相同记为“y”不同记为“n”,tc通过公开的信道将所得的比较结果告诉ac和bc,ac和bc可以共享彼此的量子密钥,bc可以得到sk。tc生成rtac=00,ac生成rtai=10,h(ktai,rtai,rtac)=1101001101010001101011101000并计算101101000110000111100011,与此类似,tc生成随机数rtbc=01,bc生成随机数rtbj=11,h(ktbj,rtbj,rtbc)=0101101000110001111110110001,计算根据(rtai||rtac||rtai)i=10000111101101000110000111100011的值和(ktai)i,i=1,…,n,ac创建量子比特qtai。ai把量子比特发送给bj。与此类似,bj为ai创建量子比特。ai得到了测量结果r'tai||r'tac||r'tai=10000111101101000110000111100011,他就可以计算可以得到sk'=1010100000010111,并且可以验证uai、uac、ubc、ubj。与此类似,bj得到测量结果r'tbj||r'tbc||r'tbj=11011111001000100110100111010101,并计算之后,bj可以得到sk"=1010100000010111,并且验证ubj、ubc、uac、uai。ac生成rac=10,ai生成rai=01,h'(sk',rai,rac)=111101011000,并计算与此类似,bc生成随机数rbc=00,bj生成随机数rbj=11,h'(sk",rbj,rbc)=010111010001,计算根据(rai||rac||csai)i=0110010001010011和(sk')i,ai创建量子比特。ai把量子比特发送给bj。与此类似,bj根据(rbj||rbc||csbj)i和(sk")i为ai创建量子比特。一旦接收到量子比特,ai和bj就可以根据(sk')i和(sk")i分别测量接受到的量子比特。ai得到测量结果rbj'||rbc'||csbj'=1100001110110100,并判断下面等式是否成立:rbj'≠rai且rbc'≠rac,等式成立,ai就计算会话密钥sk=h(sk',0,0)=1010100000010111。与此类似,bj得到测量结果rai'||rac'||csai'=0110010001010011,并判断下面等式是否成立:如果等式成立,计算会话密钥sk'=h(sk",0,0)=1010100000010111。以上所述仅是本发明的优选实施方式,应当指出,对于本
技术领域
的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1