一种基于单粒子的可认证多用户量子密钥分发方法与流程

文档序号:18737270发布日期:2019-09-21 01:20阅读:290来源:国知局
一种基于单粒子的可认证多用户量子密钥分发方法与流程

本发明涉及量子信息技术领域,特别是一种基于单粒子的可认证多用户量子密钥分发方法。



背景技术:

量子密码是一种以经典密码学和量子力学为基础的新型密码体制,其安全性受到量子力学基本规律的保证,可达到理论上的无条件安全性。量子密钥分发是量子密码中研究最早也最成熟的一个主要分支,目前已逐渐走向实用。随着量子信息技术的发展,一些大规模的量子通信网络已建立起来。在这些网络中,需要实现网络多个用户之间的密钥分发。也就是说,量子网络中的任意两个用户可以在不安全的信道上分发安全会话密钥。为了实现这一目标,多用户量子密钥分发(MQKD)被提出并成为一个新的研究热点。然而,与QKD不同,在MQKD中有多个用户,这些用户中很可能存在一些不诚实或恶意的用户。在这种情形下,MQKD协议很容易受到中间人攻击。因此,作为该问题的一种有效的解决方案,身份认证成了MQKD的一个新的关键问题。

在MQKD中,Wegman-Carter认证技术经常被使用来对用户的身份进行验证。在该验证策略中,两个用户预先共享相同的密钥。然后,他们使用这个共享密钥从一个通用哈希函数类中选择一个哈希函数,并根据所选的哈希函数计算公共消息的哈希值。通过这种方式,它可以同时实现消息和身份验证。然而,这种方法不适用于大型网络。当一个网络上有m个用户时,如果一个用户想和其他任一用户进行QKD,他应该提前持有m-1个密钥。因此,整个网络需要0(m2)数量级的密钥量,这对于一些大型网络来说是一个新的负担。另一种常见方法是引入一个第三方,即由第三方产生会话密钥,并通过安全的量子密钥分发协议将其分别传给两个通信用户。这里需要满足一个前提条件,即这个第三方必须是可信的。然而,在现实生活中,寻找这种完全可信的第三方是比较困难的。



技术实现要素:

有鉴于此,本发明的目的是提出一种基于单粒子的可认证多用户量子密钥分发方法,以期能减少整个网络的主密钥存储量,降低对第三方的安全要求,减少参与者与第三方之间的安全检测的次数,并结合现有量子技术提高方案的可行性。

本发明采用以下方案实现:一种基于单粒子的可认证多用户量子密钥分发方法,包括以下步骤:

步骤S1:提供一星型网络,所述星型网络包括中心节点即第三方T与多个用户节点;在所述多个用户节点中随机选取两个用户A和B;所述第三方T、用户A和用户B的身份信息分别为IDT、IDA和IDB;用户A与用户B分别与T共享一个安全的主密钥kTA和kTB;

步骤S2:所述用户A和B各提供一个随机数rA和rB,并传给所述第三方T请求通信;所述第三方T收到通信请求后,利用单向hash函数f:{0,1}*→{0,1}n,生成两个随机数rTA和rTB,所述第三方T将两个随机数rTA和rTB分别传给用户A和B;所述用户A和B分别根据各自接收到的随机数rTA和rTB计算各自的认证信息;所述认证信息中包括用户身份信息、随机数信息和主密钥信息;

步骤S3:所述用户A制备一串载体粒子,其中每个粒子随机处于四个非正交单量子态中的一个即载体粒子的制备初态,并在所述载体粒子串中随机选择部分粒子嵌入用户A的认证信息作为A的检测粒子;将包含所述检测粒子的载体粒子串传给第三方T;所述第三方T收到传输粒子后从三个幺正算子H、X和Z中随机选择一个对所述载体粒子串中的每个粒子进行幺正操作,并将进行幺正操作后的粒子串传给用户B;最后,用户B随机选择部分粒子作为其检测粒子,根据其认证消息进行相应的测量,对于其他粒子,用户B随机选择测量基对其中的每一个粒子进行单粒子测量,得到测量结果;

步骤S4:所述用户A公布A的检测粒子位置,所述用户B将步骤S3中得到的测量结果传输给第三方T;所述第三方T计算辅助认证消息并将其传给用户A,所述用户A根据接收到的辅助认证消息和粒子的制备初态对所述用户B的身份进行认证;

步骤S5:所述用户B公布其检测粒子的位置,所述用户A将步骤S3中得到的制备初态传输给第三方T;所述第三方T计算辅助认证消息并将其传给用户B,所述用户B根据接收到的辅助认证消息和粒子的测量结果对所述用户A的身份进行认证;

步骤S6:所述第三方T公布对所述载体粒子减去所述检测粒子即剩余粒子的操作,用户A与用户B建立一个会话密钥kAB,所述第三方用户T利用另一个hash函数f′:{0,1}*→{0,1}n′对第三方T与两个通信用户A和B之间的主密钥进行蒸馏,用以提高主密钥的安全,使其再用于下次会话密钥的分发。

进一步地,步骤S2中所述用户A和B分别根据各自接收到的随机数rTA和rTB计算各自的认证信息为:所述用户A的认证信息为:

hTA=f(IDT||rTA||rA||kTA)

所述用户B的认证信息为:hTB=f(IDT||rTB||rB||kTB);其中| |表示字符串连接运算;kTA为用户A与第三方T共享的主密钥;kTB为用户B与第三方共享的主密钥;IDT为第三方的身份信息。

进一步地,所述中心节点与每个用户节点之间通过一条量子信道进行连接,用以向用户提供通信服务;此外,任意两个用户之间存在一个公开信道,即能够被窃听但无法篡改。

进一步地,步骤S3中所述用户A利用四个非正交单量子态随机制备一串载体粒子即执行粒子的制备初态,并在所述载体粒子中随机选择部分粒子载入用户A的认证信息作为检测粒子;将包含所述检测粒子的载体粒子传给第三方T;具体内容为:用户A提供两个随机比特串dA和tA,其中dA的长度是4n,tA的长度是3n;将tA和hA,混合得到一个新的4n长的比特串bA;在此基础上,用户A制备一个量子比特串QC;当比特串bA的值为0时,用MB0={|0>,|1>}来编码比特串dA中对应比特,否则用MB1={|+>,|->}来编码比特串dA中对应比特;由hA决定制备基的载体粒子用来执行第一次认证,记为第一检测粒子;最后,用户A将QC通过量子信道传给第三方T;其中,hA=f(IDA||rA||rTA||kTA)。

进一步地,步骤S3中所述第三方T对粒子进行幺正操作的具体内容为:

对于每个传输粒子,第三方T对其进行UT幺正操作;UT操作是第三方T从U1=X=|0><1|+|1><0|、U2=Z=|0><0|-|1><1|三个算子中以概率随机选择出来;通过这种方式,第三方T得到一个新的量子比特串QC’,并将其传给用户B;并且第三方T将其的操作记录下来得到经典比特串bT,当选择H操作时记为1,否则为0。

进一步地,步骤S3中所述用户B对载体粒子进行单粒子测量的具体内容为:所述用户B提供一个3n长的经典比特串tB,并将其与hB混合得到一个4n长的比特串bB;在收到量子比特串QC’后,用户B根据bB的值对粒子串中的每一个载体粒子进行单粒子测量,并储存该测量结果记为oB;当bB为0时,采用MB0测量基,否则用MB1测量基;其中hB所对应的粒子将被用于第二次认证,记为第二检测粒子;其中,hB=f(IDB||rB||rTB||kTB)。

进一步地,所述步骤S4的具体内容为:所述用户A公开第一检测粒子的位置,令这些位置上的dA,bT,bB,和oB对应的串为d′A,b′T,b′B,和o′B;所述用户B向所述第三方T传输的值,并将o′B发给用户A;根据收到的信息,所述第三方T产生一个新消息mTB,并将其传给用户A;

所述第三方T产生一个新消息mTB的具体产生过程如下:对每个检测粒子,所述第三方T计算的值;当该值为1时,则这个粒子用错误的基进行测量,记为“?”;否则,所述第三方T设置该值为H,X,或Z;根据mTB,o′B和hA,用户A通过下式计算得到vB,

对于剩余用对基的粒子,用户A比较d′A和vB的值;如果错误率高于门限值,则终止协议;否则,用户A确认与其通信的人是用户B。

进一步地,所述步骤S5的具体内容为:所述用户B公开第二检测粒子的位置,令这些位置上的dA,bT,bA,和oB对应的串为d″A,b″T,b″A,和o″B;所述用户A向所述第三方T传输的值,并将d″A发给用户B;根据收到的信息,所述第三方T产生一个新消息mTA,并将其传给用户B;

所述第三方T产生一个新消息mTA的具体产生过程如下:对每个检测粒子,所述第三方T计算的值;当该值为1时,则这个粒子用错误的基进行测量,记为“?”;否则,所述第三方T设置该值为H,X,或Z;根据mTA,o″B和hB,用户B通过下式计算得到vA,

对于剩余用对基的粒子,用户B比较d″A和vA的值;如果错误率高于门限值,则终止协议;否则,用户B确认与其通信的人是用户A。

进一步地,所述步骤S6的具体内容为:所述第三方T公布其的操作,然后用户A和用户B分别公开bA和bB的值;在用对基的粒子中,随机选择部分粒子作为样本来判断粒子传输的安全性;最后,利用经典的纠错和保密放大方法,用户A和用户B建立一个会话密钥kAB;

所述第三方T挑选另一个单向hash函数f′,并通知所述用户A与用户B;然后,第三方T和用户A或用户B更新其主密钥k′TA或k′TB;

其中,k′TA=f′(rA||rTA||kTA),k′TB=f′(rB||rTB||kTB)。与现有技术相比,本发明有以下有益效果:

(1)本发明能减少整个网络的主密钥存储量,降低对第三方的安全要求,减少参与者与第三方之间的安全检测的次数,并结合现有量子技术提高方案的可行性。

(2)本发明每个用户仅需存储各自的主密钥,并且无需对传输粒子进行存储,方法实用性强。通过对用户的主密钥进行蒸馏处理来保证其安全性,达到主密钥重复使用的目的。

附图说明

图1为本发明实施例的星型网络结构图。

图2为本发明实施例的实施方案图。

具体实施方式

下面结合附图及实施例对本发明做进一步说明。

本实施例应用于最普遍的星型网络结构中。如图1所示,整个网络由一个中心节点和m个用户节点组成,中心节点与每个用户节点之间通过一条不安全的量子信道进行连接,为用户提供通信服务。此外,任意两个用户之间存在一个经典的公开信道,即可被窃听但无法篡改。

假设两个用户,Alice(A)和Bob(B)想在中心Trent(T)的帮助下产生一个安全的会话密钥。三个参与者拥有各自的身份信息,为IDA,IDB,和IDT。A和B分别与T共享一个安全的主密钥kTA和kTB。这里IDA,IDB,和IDT是公开的,而kTA和kTB是私密的。如图2所示,本实施例提供了一种基于单粒子的可认证多用户量子密钥分发方法,包括以下步骤:

步骤S1:提供一星型网络,所述星型网络包括中心节点即第三方T与多个用户节点;在所述多个用户节点中随机选取两个用户A和B;所述第三方T、用户A和用户B的身份信息分别为IDT、IDA和IDB;用户A与用户B分别与T共享一个安全的主密钥kTA和kTB;

步骤S2:所述用户A和B各提供一个随机数rA和rB,并传给所述第三方T请求通信;所述第三方T收到通信请求后,利用单向hash函数f:{0,1}*→{0,1}n,生成两个随机数rTA和rTB,所述第三方T将两个随机数rTA和rTB分别传给用户A和B;所述用户A和B分别根据各自接收到的随机数rTA和rTB计算各自的认证信息;所述认证信息中包括用户身份信息、随机数信息和主密钥信息;

步骤S3:所述用户A制备一串载体粒子,其中每个粒子随机处于四个非正交单量子态中的一个即载体粒子的制备初态,并在所述载体粒子串中随机选择部分粒子嵌入用户A的认证信息作为A的检测粒子;将包含所述检测粒子的载体粒子串传给第三方T;所述第三方T收到传输粒子后从三个幺正算子H、X和Z中随机选择一个对所述载体粒子串中的每个粒子进行幺正操作,并将进行幺正操作后的粒子串传给用户B;最后,用户B随机选择部分粒子作为其检测粒子,根据其认证消息进行相应的测量,对于其他粒子,用户B随机选择测量基对其中的每一个粒子进行单粒子测量,得到测量结果;

步骤S4:所述用户A公布A的检测粒子位置,所述用户B将步骤S3中得到的测量结果传输给第三方T;所述第三方T计算辅助认证消息并将其传给用户A,所述用户A根据接收到的辅助认证消息和粒子的制备初态对所述用户B的身份进行认证;

步骤S5:所述用户B公布其检测粒子的位置,所述用户A将步骤S3中得到的制备初态传输给第三方T;所述第三方T计算辅助认证消息并将其传给用户B,所述用户B根据接收到的辅助认证消息和粒子的测量结果对所述用户A的身份进行认证;

步骤S6:所述第三方T公布对所述载体粒子减去所述检测粒子即剩余粒子的操作,用户A与用户B建立一个会话密钥kAB,所述第三方用户T利用另一个hash函数f′:{0,1}*→{0,1}n′对第三方T与两个通信用户A和B之间的主密钥进行蒸馏,用以提高主密钥的安全,使其再用于下次会话密钥的分发。

在本实施例中,步骤S2中所述用户A和B分别根据各自接收到的随机数rTA和rTB计算各自的认证信息为:所述用户A的认证信息为:

hTA=f(IDT||rTA||rA||kTA)

所述用户B的认证信息为:hTB=f(IDT||rTB||rB||kTB);其中| |表示字符串连接运算;kTA为用户A与第三方T共享的主密钥;kTB为用户B与第三方共享的主密钥;IDT为第三方的身份信息。通过这个认证信息,用户A和B可让其他用户相信他们的身份。显然,第三方T也可计算hTA和hTB,以及hA=f(IDA||rA||rTA||kTA)和hB=f(IDB||rB||rTB||kTB)。

在本实施例中,所述中心节点与每个用户节点之间通过一条不安全的量子信道进行连接,用以向用户提供通信服务;此外,任意两个用户之间存在一个公开经典的信道,即能够被窃听但无法篡改。

在本实施例中,步骤S3中所述用户A利用四个非正交单量子态随机制备一串载体粒子即执行粒子的制备初态,并在所述载体粒子中随机选择部分粒子载入用户A的认证信息作为检测粒子;将包含所述检测粒子的载体粒子传给第三方T;具体内容为:用户A提供两个随机比特串dA和tA,其中dA的长度是4n,tA的长度是3n;将tA和hA,混合得到一个新的4n长的比特串bA;在此基础上,用户A制备一个量子比特串QC;当比特串bA的值为0时,用MB0={|0>,|1>}来编码比特串dA中对应比特,否则用MB1={|+>,|->}来编码比特串dA中对应比特;由hA决定制备基的载体粒子用来执行第一次认证,记为第一检测粒子;最后,用户A将QC通过量子信道传给第三方T;其中,hA=f(IDA||rA||rTA||kTA)。

在本实施例中,步骤S3中所述第三方T对粒子进行幺正操作的具体内容为:

对于每个传输粒子,第三方T对其进行UT幺正操作;UT操作是第三方T从U1=X=|0><1|+|1><0|、U2=Z=|0><0|-|1><1|三个算子中以概率随机选择出来;通过这种方式,第三方T得到一个新的量子比特串QC’,并将其传给用户B;并且第三方T将其的操作记录下来得到经典比特串bT,当选择H操作时记为1,否则为0。

在本实施例中,步骤S3中所述用户B对载体粒子进行单粒子测量的具体内容为:

所述用户B提供一个3n长的经典比特串tB,并将其与hB混合得到一个4n长的比特串bB;在收到量子比特串QC’后,用户B根据bB的值对粒子串中的每一个载体粒子进行单粒子测量,并储存该测量结果记为oB;当bB为0时,采用MB0测量基,否则用MB1测量基;其中hB所对应的粒子将被用于第二次认证,记为第二检测粒子;其中,hB=f(IDB||rB||rTB||kTB)。

在本实施例中,所述步骤S4的具体内容为:所述用户A公开第一检测粒子的位置,令这些位置上的dA,bT,bB,和oB对应的串为d′A,b′T,b′B,和o′B;所述用户B向所述第三方T传输的值,并将o′B发给用户A;根据收到的信息,所述第三方T产生一个新消息mTB,并将其传给用户A;

所述第三方T产生一个新消息mTB的具体产生过程如下:对每个检测粒子,所述第三方T计算的值;当该值为1时,则这个粒子用错误的基进行测量,记为“?”;否则,所述第三方T设置该值为H,X,或Z;根据mTB,o′B和hA,用户A通过下式计算得到vB,

对于剩余用对基的粒子(大约个),用户A比较d′A和vB的值;如果错误率高于门限值,则终止协议;否则,用户A确认与其通信的人是用户B。

在本实施例中,所述步骤S5的具体内容为:

所述用户B公开第二检测粒子的位置,令这些位置上的dA,bT,bA,和oB对应的串为d″A,b″T,b″A,和o″B;所述用户A向所述第三方T传输的值,并将d″A发给用户B;根据收到的信息,所述第三方T产生一个新消息mTA,并将其传给用户B;

所述第三方T产生一个新消息mTA的具体产生过程如下:对每个检测粒子,所述第三方T计算的值;当该值为1时,则这个粒子用错误的基进行测量,记为“?”;否则,所述第三方T设置该值为H,X,或Z;根据mTA,o″B和hB,用户B通过下式计算得到vA,

对于剩余用对基的粒子,用户B比较d″A和vA的值;如果错误率高于门限值,则终止协议;否则,用户B确认与其通信的人是用户A。

在本实施例中,所述步骤S6的具体内容为:所述第三方T公布其的操作,然后用户A和用户B分别公开bA和bB的值;在用对基的粒子中,随机选择部分粒子作为样本来判断粒子传输的安全性;最后,利用经典的纠错和保密放大方法,用户A和用户B建立一个安全的会话密钥kAB;

所述第三方T挑选另一个单向hash函数f′,并通知所述用户A与用户B;然后,第三方T和用户A或用户B更新其主密钥k′TA或k′TB;

其中,k′TA=f′(rA||rTA||kTA),k′TB=f′(rB||rTB||kTB)

以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1