基于群组密钥池的多次身份认证系统和方法与流程

文档序号:16060808发布日期:2018-11-24 12:09阅读:253来源:国知局

本发明涉及量子通信技术领域,尤其涉及基于量子网络服务站的身份认证的系统和方法。

背景技术

鉴权,即身份认证是实现信息安全的基本技术,系统通过审查用户的身份来确认该用户是否具有对某种资源的访问和使用权限,同样也可以进行系统与系统间的身份认证。

当前通信网络中身份认证系统普遍采用kerberos认证方案。kerberos是一种网络认证协议,其设计目标是通过密钥系统为用户机/服务器应用程序提供强大的认证服务。该认证过程的实现不依赖于主机操作系统的认证,无需基于主机地址的信任,不要求网络上所有主机的物理安全,并假定网络上传送的数据包可以被任意的读取、修改和插入数据。在以上情况下,kerberos作为一种可信任的第三方认证服务,是通过传统的密码技术(如:共享密钥)执行认证服务的。

在kerberos认证方案中,引入了时间戳timestamp来对重放攻击进行遏止,但是票据有生命周期,在其生命周期的有效时间内仍然可以使用。如果收到消息的时间是在规定允许的范围之内,那么就认为该消息具有新鲜性。但是,在得到许可证后的攻击者可以发送伪造的消息,这样的话,在允许的时间内是很难发现的。

随着无线通信技术的不断发展,终端直接通信(devicetodevice,d2d)已成为3gpprel-12标准化技术的热点之一。d2d允许两个用户设备(userequipment,ue)通过特定的信道(sidelinkchannel)直接进行数据传输,而无需经过演进型基站设备(evolutionalnodeb,enb)。当然,d2d并不局限于两个用户设备之间的数据传输,还可以支持单点对多点的群组通信(groupcommunication)。现有的网络认证体系大都是基于单个对象的一对一的认证方式,但是对于单点对多点的数据传输,会根据一定的原则形成群组。在这些应用场景下,当组内接入新的终端时,若采用现有的一对一的认证方式,不仅会增加网络信令,导致网络拥塞,且会占用大量网络资源,因此现有的一对一的网络认证体系不再适用。在这种情况下,为降低认证资源消耗,减少网络拥塞,需要相应的群组认证机制。现有的群组通信系统使用的密钥为传统密钥,传统密钥是由程序所产生的伪随机数,伪随机数都有特定的规律,相对来讲更容易被破译,量子密钥是根据量子特性所产生的真随机数,量子密钥的下一个比特是无法预知的,有效的克服了伪随机数的弊端。

现有技术存在的问题:

(1)现有基于量子密钥卡的身份认证技术只能完成一对一的身份认证,无法完成与群组的身份认证或群组间身份认证。

(2)现有技术中身份认证所传递的挑战信息一般是暴露的随机数,可能被攻击者对挑战和应答进行研究而破解出密钥。

(3)现有基于量子密钥卡的身份认证和加密技术中,执行身份认证和加密前需要量子密钥卡和其颁发方预先约定使用什么密钥,而且在执行身份认证和加密过程中并不更换密钥。

(4)现有身份认证技术基于kerberos认证方案对时间戳的使用导致有出现重放攻击的可能。kerberos协议要求是基于网络中时钟同步,对整个系统时间同步要求高,在大型分布式系统中难以实现。

(5)现有技术中,用户端密钥存储于用户端存储器中,可以被恶意软件或恶意操作窃取。



技术实现要素:

本发明提供一种适用于群组间身份认证的基于量子网络的身份认证系统。

一种基于群组密钥池的多次身份认证系统,包括量子网络服务站,以及分别包括多个用户端的主动方群组和被动方群组,进行身份认证时包括:

步骤s1、主动方群组中的其中一用户端a1依据预设的主动方通信范围以及被动方通信范围,向被动方群组中的其中一用户端b1提出ticket申请;

步骤s2、所述用户端b1响应于所述ticket申请,从量子网络服务站获得会话密钥并转发给用户端a1;

所述用户端b1还从量子网络服务站获得会话密钥或生成会话密钥的信息并据此生成ticket,再将所述ticket转发给用户端a1;

用户端a1在主动方通信范围内共享所述ticket以及会话密钥;

步骤s3、主动方通信范围内的一用户端a2向被动方通信范围内的一用户端b2发送所述ticket,使得用户端a2和用户端b2共享用于实施加密通信的会话密钥。

本发明步骤s1中用户端a1可以是主动方群组中的任一个用户端,发起ticket申请即认证请求,主动方通信范围可理解为在主动方群组中某一个用户端拥有ticket以及会话密钥、并可以与被动方通信范围内的用户端进行身份认证以及后续的加密通信;或主动方群组全体用户端都分别拥有ticket以及会话密钥、并可以与被动方通信范围内的用户端进行身份认证以及后续的加密通信。

同理被动方通信范围可理解为被动方群组中某一个用户端可以从ticket中获取并使用会话密钥;或被动方群组中全体用户端都分别可以从ticket中获取并使用会话密钥。

即用户端a1可能与用户端a2是相同的用户端或同属于主动方群组中的不同用户端,用户端b1、用户端b2同理。

作为优选,主动方群组以及被动方群组的所有用户端分别配置有量子密钥卡;

各用户端的量子密钥卡各自独立的与量子网络服务站共享私有的对称密钥池;

同一群组中所有用户端的量子密钥卡与量子网络服务站共享与所在群组相应的群组密钥池;

步骤s2中,用户端b1从量子网络服务站获得并转发给用户端a1的会话密钥为主动方密钥,且该主动方密钥为密文形式,主动方通信范围为主动方群组中某一用户端时,主动方会话密钥利用与该用户端相应的对称密钥池进行加密;主动方通信范围为主动方群组中全体用户端时,主动方会话密钥利用与主动方群组相应的群组密钥池进行加密;

步骤s2中,所述ticket中会话密钥或生成会话密钥的信息为被动方会话密钥,且该被动方会话密钥为密文形式,被动方通信范围为被动方群组中某一用户端时,被动方会话密钥利用与该用户端相应的对称密钥池进行加密;被动方通信范围为被动方群组中全体用户端时,被动方会话密钥利用与被动方群组相应的群组密钥池进行加密。

步骤s2中直接发送给用户端a1的称为主动方会话密钥,供后续的用户端a2使用,而封装在ticket中的则称为被动方会话密钥,供后续的用户端b2使用。

主动方会话密钥和被动方会话密钥的传输均采用密文形式,且根据通信范围选择相应的加密方式,因此只有通信范围内的用户端才可以解密并使用。

当通信范围为某一用户端而并非群组全体用户端时,可以理解为该用户端ticket以及主动方会话密钥后,也即完成了共享。

用于加密主动方会话密钥的为第一安全密钥,用于加密被动方会话密钥为第二安全密钥;

步骤s2共享所述主动方会话密钥时,共享的内容至少包括采用第一安全密钥加密的主动方会话密钥,以及生成第一安全密钥的信息;所述ticket中包含有生成第二安全密钥的信息。

步骤s2共享所述主动方会话密钥时,为了提高安全性,共享解密相关信息时息并非直接共享第一安全密钥,而是共享生成第一安全密钥的信息,只有在主动方通信范围内的用户端才拥有相应的密钥池,因此外部成员即使获知生成该第一安全密钥的信息,也无法生成第一安全密钥,进一步提高了主动方会话密钥的安全性。

同样的道理,ticket中并不直接包含第二安全密钥,只是包含有生成第二安全密钥的信息,只有在被动方通信范围内的用户端才拥有相应的密钥池,因此外部成员即使获知生成该第二安全密钥的信息,也无法生成第二安全密钥,进一步提高了被动方会话密钥的安全性。

步骤s1中、所述用户端a1向用户端b1提出ticket申请时,携带有标示符a和标示符b;

其中标示符a用于通知量子网络服务站利用与主动方群组中某用户端(例如用户端a1即用户端a2)相应的对称密钥池、或利用与主动方群组相应的群组密钥池生成第一安全密钥;

其中标示符b,用于通知用户端b1利用与被动方群组中某用户端(例如用户端b1即用户端b2)相应的对称密钥池、或利用与被动方群组相应的群组密钥池生成第二安全密钥。

所述第一安全密钥生成方式为量子网络服务站产生真随机数ra,该真随机数ra结合密钥生成算法得到指针,该指针指向由标示符a指定的密钥池中的一部分,在该密钥池中提取出相应的密钥即作为第一安全密钥。

所述第二安全密钥生成方式为用户端b1产生真随机数rbb,该真随机数rbb结合密钥生成算法得到指针,该指针指向由标示符b指定的密钥池中的一部分,在该密钥池中提取出相应的密钥即作为第二安全密钥。

量子密钥卡中对称密钥池以及群组密钥池长期使用或重复使用会有被破解的可能性,为提高身份认证系统的安全性,作为优选:

所述量子密钥卡中的对称密钥池以及群组密钥池定时更新。

更新时用户端与匹配的量子密钥卡建立通信连接后,用户端通过上层应用程序向量子密钥卡发送更新申请,该更新申请同时也发送至量子网络服务站;

密钥存储卡接收更新申请后,按预先设定的规则更新对称密钥池或群组密钥池;

量子网络服务站接收更新申请后,按预先与量子密钥卡协商一致的规则更新量子网络服务站内相应存储的对称密钥池或群组密钥池。

作为优选,步骤s2中,所述用户端b与用户端a之间进行第一次双向认证;

步骤s3中,所述用户端a1与用户端b1之间进行第二次双向认证;

所述ticket按照预定条件更新,更新时用户端a1与用户端b1之间实施第三次双向认证以确认更新;

进行各双向认证时,采用的认证标识都是相应的用户端在匹配的量子密钥卡中生成,且为真随机数的形式。

通过第一次双向认证后意味着ticket的成功分发,而通过第二次双向认证意味着ticket的成功使用,通过第三次双向认证后意味着ticket更新完成。

本发明所述的第一、二、三次双向认证仅仅是相对概念,以便于区别和描述,并不理解为绝对次数和顺序,在通信时可根据需要设置其它双向认证环节。本发明所述的用户端a1、a2与用户端b1、b2仅仅是便于区别和描述,并不对用户端本身作出额外限定。

本发明中,可选的情况是,用户端a1与用户端b1两者匹配的量子密钥卡归属于同一量子网络服务站。即均与该量子网络服务站存储有相应的量子密钥,也可视为在局域网环境下。

若在广域网环境下,用户端a1与用户端b1两者匹配的量子密钥卡归属于不同的量子网络服务站,作为网络侧的量子网络服务站可以是一个或多个,多个量子网络服务站参与时,整个网络侧可视为一整体,当不同的量子密钥卡归属于不同的量子网络服务站时,不同的量子网络服务站可以通过qkd等方式在站间加密传输数据。例如:

所述量子网络服务站包括量子网络服务站a以及量子网络服务站b,其中用户端a1匹配的量子密钥卡颁发自量子网络服务站a,用户端b1匹配的量子密钥卡颁发自量子网络服务站b;

所述第一安全密钥由量子网络服务站a生成以,供加密主动方会话密钥。

本发明还提供一种基于群组密钥池的多次身份认证方法,实施在本发明所述的基于群组密钥池的多次身份认证系统中。有关具体步骤可参见本发明的多次身份认证系统中的相关叙述。

本发明基于对称密钥池与群组密钥池实现身份认证,尤其是引入群组密钥池,可以实现用户与群组或群组之间进行身份认证。在用户与群组完成身份认证后,该用户可以与群组任一用户进行安全通信;在群组与群组完成身份认证后,两群组中每个用户之间都可以进行安全通信。

本发明中身份认证所传递的挑战信息仅仅是用于生成指针的随机数,在没有密钥池的情况下即使被攻击者对挑战和应答进行研究而破解出随机数甚至得到指针也无法得到用于加密的密钥。

本发明中身份认证中,执行身份认证和对身份认证消息加密前不需要量子密钥卡和其颁发方预先约定使用什么密钥,而且在执行身份认证的每条消息都可以随意更换密钥,只需要指出用于计算出指针的随机数即可,而公布该随机数的危险性非常小,一般来说对攻击者毫无用处。

现有身份认证技术基于kerberos认证方案对时间戳的使用导致有出现重放攻击的可能,并且整个kerberos协议要求是基于网络中时钟同步,对整个系统时间同步要求高,在大型分布式系统中难以实现。本发明将原方案使用的时间戳改为了真随机数,并使用与用户端b的本地时钟相关联的时间戳,对整个系统的时间同步没有要求。本发明使用量子密钥卡存储用户端密钥而不是用户端存储器,量子密钥卡是独立的硬件设备,被恶意软件或恶意操作窃取密钥的可能性大大降低。

附图说明

图1为单个量子网络服务站群组型量子密钥卡的量子密钥结构图。

图2为多个量子网络服务站群组型量子密钥卡的量子密钥结构图。

图3为实施例1身份认证流程图;

图中(a)部分示意了用户端a申请ticket的流程;

图中(b)部分示意了二次身份认证的流程;

图中(c)部分示意了更新ticket的流程。

图4为实施例2身份认证流程图;

图中(a)部分示意了用户端a申请ticket的流程;

图中(b)部分示意了二次身份认证的流程;

图中(c)部分示意了更新ticket的流程。

图5为实施例3身份认证流程图(申请ticket部分);

图6为实施例4身份认证流程图(申请ticket部分)。

具体实施方式

本发明身份认证系统可以包括多个量子网络服务站,不同量子网络服务站之间可以通过qkd方式共享站间量子密钥。

量子网络服务站包括:

量子服务中心,主要用于通过经典网络与用户侧的各用户端通信连接以及与其他量子网络服务站通信连接;经典网络包括但不限于电信网、互联网、广播电视网或者其他通信网络等。

量子密钥分发设备,主要用于通过qkd方式实现站间量子密钥的共享。

真随机数发生器,用于接收用户侧密钥管理服务器提出的申请用户侧密钥的请求,生成用户侧密钥,并发送给用户侧密钥管理服务器;此处采用的为真随机数发生器。其优选为量子真随机数发生器,也可以为基于电路的真随机数发生器、基于物理源的真随机数发生器以及其他种类的真随机发生器。

用户侧密钥管理服务器,存放、管理从真随机数发生器生成的用户侧密钥,可以接入可移动式的量子密钥卡,实现发卡、登记、拷贝用户侧密钥,还可以接收量子服务中心提出的申请用户侧密钥请求,发送相应长度的用户侧密钥给量子服务中心。量子密钥卡的详细内容也可参见申请号为“201610846210.6”的专利申请文献。

其中量子服务中心包括:身份认证服务器,票据许可服务器,还可根据需要设置其他服务器,例如数字签名服务器、签名验证服务器、加解密服务器等。

身份认证服务器用于实现用户在接受消息认证、数字签名等服务前与量子网络服务站的相互身份认证。身份认证服务器内部具有采用pci总线接口的加密卡,用于存储身份认证协议,包括密钥生成算法、认证函数、加密传输协议。

票据许可服务器用于实现用户在获得与量子网络服务站的相互身份认证后,为用户分发其访问某一用户的申请的许可。

各量子网络服务站下配置有用户端,如用户端1~用户端n,本说明书中不同的服务器或其他装置在硬件上也可以根据需要进行整合。

用户端为接入量子网络服务站的设备,可为移动终端,或为固定终端。当为移动终端时,量子密钥卡优选为量子sd卡;当为固定终端时,量子密钥卡优选为usbkey或主机加密板卡。

当用户前往所在区域的量子网络服务站进行注册登记,获批后得到量子密钥卡(具有唯一的量子密钥卡id)。量子密钥卡存储了用户注册登记信息,还内置有身份认证协议,至少包括密钥生成算法以及认证函数,或其他与身份认证相关的算法。

网络侧的各个量子网络服务站也相应的存有认证协议,若协议中各算法存在两种以上,量子密钥卡在与量子网络服务站通信时会将算法标号发送给量子网络服务站,供量子网络服务站选取。

量子密钥卡中的用户侧密钥可能下载自不同的量子网络服务站,因此可按不同来源存在不同的密钥种子集中,用户端可按预先设定的规则取用密钥种子以生成密钥。不同的密钥种子集具有唯一的密钥种子id,其指向的量子网络服务站中存储有相应的密钥种子。

量子密钥卡从智能卡技术上发展而来,是结合了量子物理学技术、密码学技术、智能卡技术和usb技术的身份认证产品。量子密钥卡的内嵌芯片和芯片操作系统可以提供私钥的安全存储和密码算法等功能。由于其具有独立的数据处理能力和良好的安全性,量子密钥卡成为量子真随机数私钥的安全载体。每一个量子密钥卡都有硬件pin码保护,pin码和硬件构成了用户使用量子密钥卡的两个必要因素。即所谓“双因子认证”,用户只有同时取得保存了相关认证信息的量子密钥卡和用户pin码,才可以登录系统。即使用户的pin码被泄露,只要用户持有的量子密钥卡不被盗取,合法用户的身份就不会被仿冒;如果用户的量子密钥卡遗失,拾到者由于不知道用户pin码,也无法仿冒合法用户的身份。

实施例1,局域网内同属于一个量子网络服务站的由用户端生成会话密钥的两个用户端身份认证

本实施例的量子密钥结构如图1所示:参与身份认证的用户端a匹配的量子密钥卡中含有对称密钥池ka和群组密钥池kpa;参与身份认证的用户端b匹配的量子密钥卡中含有对称密钥池kb和群组密钥池kpb;用户端a和用户端b都归属于量子网络服务站,用户端a和用户端b不属于同一个群组。量子网络服务站含有所有成员的对称密钥池以及群组密钥池kpa和kpb。用户端a、用户端b和量子网络服务站的密码学模块均持有相对应的密钥池(包括对称密钥池和群组密钥池)和各类算法。用户端a参与的身份认证具体步骤中所使用的密钥池由flaga指定,用户端b参与的身份认证具体步骤中所使用的密钥池由flagb指定。flaga、flagb的值由鉴权发起方即用户端a决定。

根据指定的密钥池的不同可以分为以下三种情况:

1、当flaga指定的密钥池为对称密钥池ka,flagb指定的密钥池为群组密钥池kpb,则指用户端a申请与用户端b所在的群组进行身份认证,具体情况可以是数据链系统中群组a中的成员a申请加入成员b所在的群组b,身份认证完成后,成员a可以与成员b所在的群组b中的所有成员进行安全的通信。

2、当flaga指定的密钥池为群组密钥池kpa,flagb指定的密钥池为对称密钥池kb,则指用户端a所在的群组申请与用户端b进行身份认证,具体情况可以是数据链系统中成员a所在的群组a申请与另一群组中的某一成员b进行身份认证,身份认证完成后,成员b可以与成员a所在的群组a中所有成员进行安全的通信。

3、当flaga指定的密钥池为群组密钥池kpa,flagb指定的密钥池为群组密钥池kpb,则指用户端a所在的群组申请与用户端b所在的群组进行身份认证,具体情况可以是数据链系统中成员a所在的群组a申请与成员b所在的群组b进行身份认证,身份认证完成后,群组a与群组b中所有成员之间都可以进行安全的通信。

以下步骤中,在各用户端侧涉及的加解、密操作,都在所匹配的量子密钥卡中进行。身份认证服务器和票据许可服务器涉及的加、解密操作,是在量子网络服务站的加解密服务器中完成。

身份认证流程如图3所示,当用户端a、用户端b都同属于一个量子网络服务站时,身份认证过程中所涉及的量子密钥卡在该本地量子网络服务站注册颁发。下文中以及图中,大括号内表示被加密的部分,括号内表示传输的多个内容,用逗号隔开,后面紧跟的内容表示使用的密钥,如{na’+ka-b’+binfo}ka表示使用ka加密na’、ka-b’和binfo。若未使用大括号,则表示是明文传输。

图3中各部分的1、2、3、4、5分别表示该部分中的流程顺序,在图3的(a)部分中,1、2、3、4、5也分别对应下文中的message1~message5。

每条message中,若包括多个部分,则每个部分作为一行表示,用序号①、②、③、④标识。例如图3中message2分为两行表示,即包括两个部分,其中第一部分为rna和ainfo,其余部分以及其余附图同理。

具体步骤文字描述如下:

1.用户端a与用户端b完成身份认证和密钥共享,并申请用于二次身份认证的ticket。参见图3中(a)部分。

1.1用户端a生成身份认证真随机数并发送给用户端b:用户端a匹配的量子密钥卡根据卡内随机数发生器产生真随机数rna(以下简称rna,其它同理省去汉字部分作为简称)。rna结合特定的密钥生成算法f得到指针pna。使用pna从flaga指定的密钥池中提取出相应的身份认证随机数na。

然后将rna与用户端a的身份信息ainfo(包括ida和用于指定密钥池的flaga)和用户端b的身份信息binfo(包括idb和用于指定密钥池的flagb)作为message1发送给用户端b。

步骤1.1应理解为message1中至少包括真随机数rna与a、b的身份信息,用户端a为了表达申请ticket以及message1在网络中的传输,可以在message1的封装过程中,选择相应的协议方式以及通过标识符等方式告知用户端b申请ticket,后续的多处消息传输以及二次身份认证和更新ticket过程中同理,本发明重点在于真随机数和ticket生成方式以及运用的改进,消息的封装以及网络传输方式本身可以采用现有技术。

1.2用户端b生成真随机数并发送给量子网络服务站:用户端b收到message1后,用户端b匹配的量子密钥卡根据卡内随机数发生器产生真随机数rnb。rnb结合特定的密钥生成算法f得到指针pnb。使用pnb从flagb指定的密钥池中提取出相应的身份认证随机数nb。

用户端b将rnb和从message1中收到的rna,ainfo,binfo作为message2发送给量子网络服务站,分为两个部分,第一部分为rna,ainfo;第二部分为rnb,binfo。

1.3量子网络服务站分发会话密钥:量子网络服务站得到message2后,将rna结合特定的密钥生成算法f得到指针pna。使用pna从flaga指定的密钥池中提取出与身份认证随机数na相同的随机数na’。

为便于区分原随机数na,从与生成原随机数不同的密钥池中提取出的随机数以下记为na’。下同。

将rnb结合特定的密钥生成算法f得到指针pnb。使用pnb从flagb指定的密钥池中提取出与身份认证随机数nb相同的随机数nb’。量子网络服务站生成真随机数ra,ra结合特定的密钥生成算法f得到指针pa。使用pa从flaga指定的密钥池中提取出相应的密钥ka(第一安全密钥)。

生成真随机数rb、ra-b,rb、ra-b结合特定的密钥生成算法f得到指针pb、pa-b。使用pb、pa-b从flagb指定的密钥池中提取出相应的密钥kb和密钥ka-b。

生成两个使用户端a、用户端b信任ka-b作为a、b之间会话密钥的凭证作为message3发送给用户端b,第一部分包括ra、ainfo以及使用ka加密的na’、ka-b和idb。第二部分包括rb、binfo以及使用kb加密的na’、nb’、ra-b和ida。

1.4用户端b发送ticket:用户端b收到message3后,将rb结合特定的密钥生成算法f得到指针pb。使用pb从flagb指定的密钥池中提取出与密钥kb相同的密钥kb’。使用kb’解密message3第二部分的加密部分,得到na’、nb’、ra-b和ida,验证随机数nb’和a的身份信息ida,如果匹配,则b使用ra-b结合特定的密钥生成算法f得到指针pa-b。使用pa-b从flagb指定的密钥池中提取出与密钥ka-b相同的密钥ka-b’并信任ka-b作为a、b之间的会话密钥。

用户端b匹配的量子密钥卡根据卡内随机数发生器产生真随机数nc和rbb,rbb结合特定的密钥生成算法f得到指针pbb,使用pbb从flagb指定的密钥池中提取出相应的密钥kbb(第二安全密钥)。

将message3中的第一部分、用ka-b’加密的na’以及明文形式的nc和用户端b新生成的ticket一起作为message4发送给用户端a。

该ticket用于实现用户端a与用户端b的二次身份认证,内容包括rbb、binfo以及用kbb加密的b生成的时间戳ida、ra-b和tb。

时间戳tb包含三个部分,用户端b的本地时钟的时间戳,ticket的生命周期以及一个时间标识符。时间标识符可以是一长串数字或者一个长的随机数。

在后续的二次身份认证过程中,用户端b验证ticket时先测试时间戳和生命周期,如果仍然有效,则比对ticket中的标识符与本地时间标识符。若不匹配则b拒绝这个ticket。

1.5用户端a完成对用户端b的身份认证:用户端a收到message4之后,将第一部分中的ra结合特定的密钥生成算法f得到指针pa。使用pa从flaga指定的密钥池中提取出与密钥ka相同的密钥ka’。使用ka’解密第一部分的加密部分,验证随机数na’和b的身份信息idb,如果匹配,则用户端a信任ka-b作为用户端a、用户端b之间的会话密钥(主动方会话密钥)。

用户端a使用获得的ka-b解密message4的第二部分得到na’,验证后完成对用户端b的身份认证。然后使用ka-b加密从message4的第三部分中收到的nc,作为message5发给用户端b,并将ticket、ka-b以及用户端b的身份信息存起来以备二次身份认证。

1.6用户端b完成对用户端a的身份认证:用户端b收到message5后,使用ka-b’解密得到nb,验证后完成与用户端a的身份认证。

2.二次身份认证。参见图3中(b)部分。

flaga是用于标注密钥池的,ida是用于标注用户端的。

由于ida在ticket加密部分内部,所以虽然用户端a可能与之前的不为同一个,但是ticket是使用同一个。

flagb是用于标注密钥池的,idb是用于标注用户端的。

二次身份认证步骤中,用户端a可修改binfo中的idb,根据idb的不同指向不同的用户端b。

2.1用户端a申请二次身份认证:用户端a生成一个新的随机数na2,和1.5中收到的ticket(rbb+binfo+{ida+ra-b+tb}kbb)一起作为一个二次身份认证申请发送给用户端b。

2.2用户端a和用户端b完成双向认证:用户端b收到用户端a的二次认证申请后,得到ticket,使用真随机数rbb结合特定的密钥生成算法f得到指针pbb,然后使用pbb从flagb指定的密钥池中提取出密钥kbb。使用kbb解密ticket的加密部分获得ra-b,使用ra-b结合特定的密钥生成算法f得到指针pa-b,然后使用pa-b从由flagb指定的密钥池中提取出与密钥ka-b相同的密钥ka-b’(被动方会话密钥)。

用户端b验证ticket时,测试时间戳和生命周期,如果仍然有效,则比对ticket中的标识符与本地时间标识符。若不匹配则b拒绝这个ticket。

完成对ticket的验证后,用户端b生成一个新的随机数nb2,使用ka-b’加密na2,再与明文形式的nb2一起发给用户端a,用户端a使用ka-b解密{na2}ka-b’后验证na2,再用ka-b加密nb2并发送给用户端b,用户端b使用ka-b’解密{nb2}ka-b后验证nb2,完成二次双向身份认证。

3.更新ticket。参见图2中(c)部分。

3.1用户端a申请更新ticket:用户端a生成一个新的随机数na3,和ticket(rbb+binfo+{ida+ra-b+tb}kbb)一起发送给用户端b。

3.2用户端b分发新的ticket:用户端b得到ticket后,使用真随机数rbb结合特定的密钥生成算法f得到指针pbb,然后使用pbb从flagb指定的密钥池中提取出密钥kbb。使用kbb解密ticket的加密部分验证ticket并获得ra-b,使用ra-b结合特定的密钥生成算法f得到指针pa-b,然后使用pa-b从由flagb指定的密钥池中提取出与密钥ka-b相同的密钥ka-b’。

验证ticket后,生成一个新的随机数nb3和新的随机数rbb’,rbb’结合特定的密钥生成算法f得到指针pbb’,然后使用pbb’从flagb指定的密钥池中提取出用来加密ticket’的密钥kbb’。

对ra-b进行运算生成ra-b”,也可以重新生成ra-b”。使用ra-b”结合特定的密钥生成算法f得到指针pa-b”,然后使用pa-b”从由flagb指定的密钥池中提取出密钥ka-b”。

使用ka-b加密na3、ka-b”和b的身份信息idb,连同新生成的nb3、用ka-b”加密的na3、以及新的ticket’一起发送给用户端a。

该ticket’用于实现用户端a与用户端b更新ticket之后的二次身份认证,内容包括rbb’、binfo以及用kbb’加密的ida、ra-b”和tb’。

3.3用户端a得到新的ticket’(rbb’+binfo+{ida+ra-b”+tb’}kbb’)并与用户端b完成双向验证:用户端a收到信息后使用ka-b解密第一部分,验证na3和idb后信任ka-b”作为新的与用户端b之间的会话密钥。使用ka-b”解密第二部分对na3进行的验证,验证通过后完成对用户端b的身份认证。

然后用户端a使用ka-b”加密nb3并发送给用户端b,用户端b使用ka-b”解密该消息后验证nb3,通过后即完成用户端a与用户端b之间的双向身份认证。

实施例2,局域网内同属于一个量子网络服务站的由量子网络服务站生成会话密钥的两个用户端身份认证

本实施例的场景与实施例1一致,区别在于会话密钥的生成方式。身份认证流程如图4所示,具体步骤文字描述如下:

1.用户端a与用户端b完成身份认证和密钥共享,并申请用于二次身份认证的ticket。参见图4。

1.1用户端a生成身份认证真随机数并发送给用户端b:用户端a匹配的量子密钥卡根据卡内随机数发生器产生真随机数rna(以下简称rna,其它同理省去汉字部分作为简称)。rna结合特定的密钥生成算法f得到指针pna。使用pna从flaga指定的密钥池中提取出相应的身份认证随机数na。

然后将rna与用户端a的身份信息ainfo(包括ida和用于指定密钥池的flaga)和用户端b的身份信息binfo(包括idb和用于指定密钥池的flagb)作为message1发送给用户端b。

步骤1.1应理解为message1中至少包括真随机数rna与a、b的身份信息,用户端a为了表达申请ticket以及message1在网络中的传输,可以在message1的封装过程中,选择相应的协议方式以及通过标识符等方式告知用户端b申请ticket,后续的多处消息传输以及二次身份认证和更新ticket过程中同理,本发明重点在于真随机数和ticket生成方式以及运用的改进,消息的封装以及网络传输方式本身可以采用现有技术。

1.2用户端b生成真随机数并发送给量子网络服务站:用户端b收到message1后,用户端b匹配的量子密钥卡根据卡内随机数发生器产生真随机数rnb。rnb结合特定的密钥生成算法f得到指针pnb。使用pnb从flagb指定的密钥池中提取出相应的身份认证随机数nb。

用户端b将rnb和从message1中收到的rna,ainfo,binfo作为message2发送给量子网络服务站,分为两个部分,第一部分为rna,ainfo;第二部分为rnb,binfo。

1.3量子网络服务站生成并分发会话密钥:量子网络服务站得到message2后,将rna结合特定的密钥生成算法f得到指针pna。使用pna从flaga指定的密钥池中提取出与身份认证随机数na相同的随机数na’。将rnb结合特定的密钥生成算法f得到指针pnb。使用pnb从flagb指定的密钥池中提取出与身份认证随机数nb相同的随机数nb’。

量子网络服务站根据站内真随机数发生器产生用户端a与用户端b之间的会话密钥ka-b。

量子网络服务站生成真随机数ra,ra结合特定的密钥生成算法f得到指针pa。使用pa从flaga指定的密钥池中提取出相应的密钥ka(第一安全密钥)。

生成真随机数rb,rb结合特定的密钥生成算法f得到指针pb。使用pb从flagb指定的密钥池中提取出相应的密钥kb。

生成一个使用户端a信任ka-b作为a、b之间会话密钥的凭证作为message3的第一部分;生成一个使用户端b信任ka-b作为a、b之间会话密钥的凭证作为message3的第二部分,将message3发送给用户端b。message3的内容为:

①ra+ainfo+{na’+idb+ka-b}ka;

②rb+binfo+{na’+nb’+ida+ka-b}kb

1.4用户端b发送ticket:用户端b收到message3后,将rb结合特定的密钥生成算法f得到指针pb。使用pb从flagb指定的密钥池中提取出与密钥kb相同的密钥kb’。使用kb’解密message3第二部分的加密部分,验证nb’和ida并得到na’。验证通过后则信任会话密钥ka-b。

用户端b匹配的量子密钥卡根据卡内随机数发生器产生新的真随机数nc和rbb,rbb结合特定的密钥生成算法f得到指针pbb,使用pbb从flagb指定的密钥池中提取出相应的密钥kbb(第二安全密钥)。

将message3中的第一部分(即ra+ainfo+{na’+idb+ka-b}ka)、用ka-b加密的na’以及明文形式的nc和用户端b新生成的ticket一起作为message4发送给用户端a。

该ticket用于实现用户端a与用户端b的二次身份认证,内容包括rbb、binfo以及用kbb加密的b生成的时间戳ida、ka-b和tb。

时间戳tb包含三个部分,用户端b的本地时钟的时间戳,ticket的生命周期以及一个时间标识符。时间标识符可以是一长串数字或者一个长的随机数。

在后续的二次身份认证过程中,用户端b验证ticket时先测试时间戳和生命周期,如果仍然有效,则比对ticket中的标识符与本地时间标识符。若不匹配则b拒绝这个ticket。

1.5用户端a完成对用户端b的身份认证:用户端a收到message4之后,将ra结合特定的密钥生成算法f得到指针pa。使用pa从flaga指定的密钥池中提取出与密钥ka相同的密钥ka’。使用ka’解密第一部分的加密部分,验证随机数na’和b的身份信息idb,如果匹配,则a信任ka-b作为ab之间的会话密钥。a使用获得的ka-b解密message4的第二部分得到na’,验证后完成对用户端b的身份认证。然后使用ka-b加密从message4的第三部分中收到的nc,作为message5发给用户端b,并将ticket、ka-b以及b的身份信息存起来以备二次身份认证。

1.6用户端b完成对用户端a的身份认证:用户端b收到message5后,使用ka-b解密得到nc,验证后完成与用户端a的身份认证。

2.二次身份认证。参见图4中(b)部分。

2.1用户端a申请二次身份认证:用户端a生成一个新的随机数na2,和1.5中收到的ticket(rbb+binfo+{ida+ka-b+tb}kbb)一起作为一个二次身份认证申请发送给用户端b。

2.2用户端a和用户端b完成双向认证:用户端b收到用户端a的二次认证申请后,得到ticket,使用真随机数rbb结合特定的密钥生成算法f得到指针pbb,然后使用pbb从flagb指定的密钥池中提取出密钥kbb。使用kbb解密ticket的加密部分获得ka-b。

用户端b验证ticket时,测试时间戳和生命周期,如果仍然有效,则比对ticket中的标识符与本地时间标识符。若不匹配则b拒绝这个ticket。

完成对ticket的验证后,用户端b生成一个新的随机数nb2,使用ka-b加密na2,再与明文形式的nb2一起发给用户端a,用户端a使用ka-b解密{na2}ka-b后验证na2,再用ka-b加密nb2并发送给用户端b,用户端b使用ka-b解密{nb2}ka-b后验证nb2,完成二次双向身份认证。

3.更新ticket。参见图2中(c)部分。

3.1用户端a申请更新ticket:用户端a生成一个新的随机数na3,和ticket(rbb+binfo+{ida+ka-b+tb}kbb)一起发送给用户端b。

3.2用户端b分发新的ticket:用户端b得到ticket后,使用真随机数rbb结合特定的密钥生成算法f得到指针pbb,然后使用pbb从flagb指定的密钥池中提取出密钥kbb。使用kbb解密ticket的加密部分验证ticket并获得ka-b。

验证ticket后,生成一个新的随机数nb3和新的随机数rbb’,rbb’结合特定的密钥生成算法f得到指针pbb’,然后使用pbb’从flagb指定的密钥池中提取出用来加密ticket’的密钥kbb’。

对ka-b进行运算生成ka-b’,也可以重新生成ka-b’。

使用ka-b加密na3、ka-b’和idb,连同用ka-b’加密的na3、新生成的nb3、以及新的ticket’一起发送给用户端a。

该ticket’用于实现用户端a与用户端b更新ticket之后的二次身份认证,内容包括rbb’、binfo以及用kbb’加密的ida、ka-b’和tb’。

3.3用户端a得到新的ticket’并与用户端b完成双向验证:用户端a收到信息后使用ka-b解密第一部分,验证na3后信任ka-b’作为新的与用户端b之间的会话密钥。使用ka-b’解密第二部分完成对na3的验证并完成对用户端b的身份认证。

然后使用ka-b’加密nb3并发送给用户端b,用户端b使用ka-b’解密该消息后验证nb3,完成双向身份认证。

实施例3,广域网内由用户端生成会话密钥的两个用户端之间的身份认证

广域网内两个用户端的身份认证流程如图5所示,当用户端a、用户端b不属于同一个量子网络服务站时,身份认证过程中所涉及的量子密钥卡分别在该用户端所属的量子网络服务站注册颁发。本实施例中的系统架构区别于实施例1之处为应用在广域网中,一级交换中心是一个地级市或相当大小区域的量子网络核心站,二级交换中心是一个县级市或相当大小区域的量子网络核心站,量子网络服务站是一个乡镇或街道办事处相当大小区域的量子通信接入站点。

一级交换中心和下属的多个二级交换中心以星型网络结构相连,二级交换中心可以和多个下属的量子网络服务站以星型网络结构相连。

由于需要站间通信,因此各交换中心以及量子网络服务站分别设有量子密钥分发设备,可通过qkd方式实现站间密钥的共享。本实施例中量子网络服务站的其他设备以及关于量子密钥卡的描述可参见实施例1。

例如一级交换中心和下属的二级交换中心分别利用量子密钥分发设备实现站间量子密钥的共享,二级交换中心和下属的的量子网络服务站分别利用量子密钥分发设备实现站间量子密钥的共享,量子密钥分发设备可以是一套也可以是至少两套集成。

两个一级交换中心之间由于距离较远,可采用量子中继站的方式实现站间量子密钥共享。

本实施例的场景如图2所示,参与身份认证的用户端a匹配的量子密钥卡中含有对称密钥池ka和群组密钥池kpa;参与身份认证的用户端b匹配的量子密钥卡中含有对称密钥池kb和群组密钥池kpb;用户端a归属于量子网络服务站a,即相对于用户端a而言,其当前量子网络服务站为与用户端a通信连接的量子网络服务站a;同理用户端b归属于量子网络服务站b。两用户端身份认证过程中所涉及的量子密钥卡分别在该用户端所匹配的量子网络服务站注册颁发。

用户端a和用户端b不属于同一个群组。量子网络服务站a含有所有成员的对称密钥池以及群组密钥池kpa;量子网络服务站b含有所有成员的对称密钥池以及群组密钥池kpb。用户端a、用户端b、量子网络服务站a和量子网络服务站b的密码学模块均持有相对应的密钥池(包括对称密钥池和群组密钥池)和各类算法。用户端a参与的身份认证具体步骤中所使用的密钥池由flaga指定,用户端b参与的身份认证具体步骤中所使用的密钥池由flagb指定。flaga、flagb的值由鉴权发起方即用户端a决定。指定的密钥池不同所对应的实际情况与实施例1描述一致。

图5中各部分的1、2、3、4、5、6、7分别表示该部分中的流程顺序,1、2、3、4、5、6、7也分别对应下文中的message1~message7。

以下步骤中,在各用户端侧涉及的加解、密操作,都在所匹配的量子密钥卡中进行。身份认证服务器和票据许可服务器涉及的加、解密操作,是在量子网络服务站的加解密服务器中完成。

具体步骤文字描述如下:

1.用户端a与用户端b完成身份认证和密钥共享,并申请用于二次身份认证的ticket。参见图5。

1.1用户端a生成身份认证真随机数并发送给用户端b:用户端a匹配的量子密钥卡根据卡内随机数发生器产生真随机数rna(以下简称rna,其它同理省去汉字部分作为简称)。rna结合特定的密钥生成算法f得到指针pna。使用pna从flaga指定的密钥池中提取出相应的身份认证随机数na。

然后将rna与用户端a的身份信息ainfo(包括ida和用于指定密钥池的flaga)和用户端b的身份信息binfo(包括idb和用于指定密钥池的flagb)作为message1发送给用户端b。

步骤1.1应理解为message1中至少包括真随机数rna与a、b的身份信息,用户端a为了表达申请ticket以及message1在网络中的传输,可以在message1的封装过程中,选择相应的协议方式以及通过标识符等方式告知用户端b申请ticket,后续的多处消息传输以及二次身份认证和更新ticket过程中同理,本发明重点在于真随机数和ticket生成方式以及运用的改进,消息的封装以及网络传输方式本身可以采用现有技术。

1.2用户端b生成真随机数并发送给量子网络服务站b:用户端b收到message1后,用户端b匹配的量子密钥卡根据卡内随机数发生器产生真随机数rnb。rnb结合特定的密钥生成算法f得到指针pnb。使用pnb从flagb指定的密钥池中提取出相应的身份认证随机数nb。

用户端b将rnb和从message1中收到的rna,ainfo,binfo作为message2发送给量子网络服务站b,分为两个部分,第一部分为rna,ainfo;第二部分为rnb,binfo。

1.3量子网络服务站b处理并转发消息:量子网络服务站b得到message2后,使用rnb结合特定的密钥生成算法f得到指针pnb。使用pnb从flagb指定的密钥池中提取出相应的身份认证随机数nb。

量子网络服务站b生成真随机数ra-b,将ra-b结合特定的密钥生成算法f得到指针pa-b。使用pa-b从flagb指定的密钥池中提取出密钥ka-b。将rna,ainfo作为message3的第一部分,ka-b,idb作为message3的第二部分发送给量子网络服务站a。

量子网络服务站a与量子网络服务站b利用各自的量子密钥分发设备实现站间量子密钥的共享,使得message3在量子网络服务站b加密后发送至量子网络服务站a,再经解密恢复出message3。

量子网络服务站a与量子网络服务站b之间如果还要通过其他网络节点中转,则直接通信连接的两量子网络服务站(或网络节点)之间通过相应的量子密钥分发设备形成的站间量子密钥,并依次中转传送密文。

站间量子密钥的分发是利用量子力学基本原理实现的异地密钥共享的方式,优选为bb84协议。

1.4量子网络服务站a制作凭证:量子网络服务站a收到message3后,将rna结合特定的密钥生成算法f得到指针pna。使用pna从flaga指定的密钥池中提取出与身份认证随机数na相同的随机数na’。量子网络服务站a根据站内随机数发生器产生真随机数ra。ra结合特定的密钥生成算法f得到指针pa。使用pa从flaga指定的密钥池中提取出相应的密钥ka。

量子网络服务站a生成一个使用户端a信任ka-b作为a、b之间会话密钥的凭证作为message4的第一部分发送给量子网络服务站b,该凭证包括ra、ainfo以及使用ka加密的na’、ka-b和idb。message4的第二部分为使用ka-b加密的na’。量子网络服务站a将message4使用与上文相同的方式发送给量子网络服务站b。

1.5量子网络服务站b处理并转发消息:量子网络服务站b收到message4后,使用ka-b解密第二部分,得到na’。将rb、binfo以及使用kb加密的na’、nb’、ra-b和ida作为message5的第二部分发送给用户端b,第一部分为message4的第一部分即ra+ainfo+{na’+ka-b’+idb}ka。

1.6用户端b发送ticket:用户端b收到message5后,将rb结合特定的密钥生成算法f得到指针pb。使用pb从flagb指定的密钥池中提取出与密钥kb相同的密钥kb’。使用kb’解密message5第二部分的加密部分,得到na’、nb’、ra-b和ida。用户端b验证nb’和ida后,信任ra-b并将ra-b结合特定的密钥生成算法f得到指针pa-b。使用pa-b从flaga指定的密钥池中提取出与会话密钥ka-b相同的ka-b’。

用户端b匹配的量子密钥卡根据卡内随机数发生器产生真随机数nc和rbb,rbb结合特定的密钥生成算法f得到指针pbb,使用pbb从flagb指定的密钥池中提取出相应的随机数kbb。

将message5中的第一部分、用ka-b’加密的na’以及明文形式的nc和用户端b新生成的ticket一起作为message6发送给用户端a。

该ticket用于实现用户端a与用户端b的二次身份认证,内容包括rbb、binfo以及用kbb加密的b生成的时间戳ida、ra-b和tb。

时间戳tb包含三个部分,用户端b的本地时钟的时间戳,ticket的生命周期以及一个时间标识符。时间标识符可以是一长串数字或者一个长的随机数。

在后续的二次身份认证过程中,用户端b验证ticket时先测试时间戳和生命周期,如果仍然有效,则比对ticket中的标识符与本地时间标识符。若不匹配则b拒绝这个ticket。

1.5用户端a完成对用户端b的身份认证:用户端a收到message6之后,将ra结合特定的密钥生成算法f得到指针pa。使用pa从flaga指定的密钥池中提取出与密钥ka相同的密钥ka’。使用ka’解密第一部分的加密部分,验证随机数na’和b的身份信息idb,如果匹配,则a信任ka-b作为a、b之间的会话密钥。a使用获得的ka-b解密message6的第二部分得到na’,验证后完成对用户端b的身份认证。然后使用ka-b加密从message6的第三部分中收到的nb,作为message7发给用户端b,并将ticket、ka-b以及b的身份信息存起来以备二次身份认证。

1.6用户端b完成对用户端a的身份认证:用户端b收到message7后,使用ka-b’解密得到nb,验证后完成与用户端a的身份认证。

2.二次身份认证过程与实施例1一致,具体流程如图3(b)部分所示。

3.更新ticket过程与实施例1一致,具体流程如图3(c)部分所示。

实施例4,广域网内由量子网络服务站生成会话密钥的两个用户端身份认证

本实施例的场景与实施例3一致,区别在于会话密钥的生成方式。身份认证流程如图6所示,具体步骤文字描述如下:

1.用户端a与用户端b完成身份认证和密钥共享,并申请用于二次身份认证的ticket。参见图6。

1.1用户端a生成身份认证真随机数并发送给用户端b:用户端a匹配的量子密钥卡根据卡内随机数发生器产生真随机数rna(以下简称rna,其它同理省去汉字部分作为简称)。rna结合特定的密钥生成算法f得到指针pna。使用pna从flaga指定的密钥池中提取出相应的身份认证随机数na。

然后将rna与用户端a的身份信息ainfo(包括ida和用于指定密钥池的flaga)和用户端b的身份信息binfo(包括idb和用于指定密钥池的flagb)作为message1发送给用户端b。

步骤1.1应理解为message1中至少包括真随机数rna与a、b的身份信息,用户端a为了表达申请ticket以及message1在网络中的传输,可以在message1的封装过程中,选择相应的协议方式以及通过标识符等方式告知用户端b申请ticket,后续的多处消息传输以及二次身份认证和更新ticket过程中同理,本发明重点在于真随机数和ticket生成方式以及运用的改进,消息的封装以及网络传输方式本身可以采用现有技术。

1.2用户端b生成真随机数并发送给量子网络服务站b:用户端b收到message1后,用户端b匹配的量子密钥卡根据卡内随机数发生器产生真随机数rnb。rnb结合特定的密钥生成算法f得到指针pnb。使用pnb从flagb指定的密钥池中提取出相应的身份认证随机数nb。

用户端b将rnb和从message1中收到的rna,ainfo,binfo作为message2发送给量子网络服务站b,分为两个部分,第一部分为rna,ainfo;第二部分为rnb,binfo。

1.3量子网络服务站b处理并转发消息:量子网络服务站b得到message2后,量子网络服务站b根据站内随机数发生器产生会话密钥ka-b。将rna,ainfo作为message3的第一部分,ka-b,idb作为message3的第二部分发送给量子网络服务站a。

量子网络服务站a与量子网络服务站b利用各自的量子密钥分发设备实现站间量子密钥的共享,使得message3在量子网络服务站b加密后发送至量子网络服务站a,再经解密恢复出message3。

量子网络服务站a与量子网络服务站b之间如果还要通过其他网络节点中转,则直接通信连接的两量子网络服务站(或网络节点)之间通过相应的量子密钥分发设备形成的站间量子密钥,并依次中转传送密文。

站间量子密钥的分发是利用量子力学基本原理实现的异地密钥共享的方式,优选为bb84协议。

1.4量子网络服务站a制作凭证:量子网络服务站a收到message3后,将rna结合特定的密钥生成算法f得到指针pna,使用pna从flaga指定的密钥池中提取出与身份认证随机数na相同的随机数na’。量子网络服务站a根据站内随机数发生器产生真随机数ra。ra结合特定的密钥生成算法f得到指针pa。使用pa从flaga指定的密钥池中提取出相应的密钥ka。

量子网络服务站a生成一个使用户端a信任ka-b作为a、b之间会话密钥的凭证作为message4的第一部分发送给量子网络服务站b,该凭证包括ra、ainfo以及使用ka加密的na’、ka-b和idb。message4的第二部分为使用ka-b加密的na’。量子网络服务站a将message4使用与上文相同的方式发送给量子网络服务站b。

1.5量子网络服务站b处理并转发消息:量子网络服务站b收到message4后,使用ka-b解密第二部分,得到na’。量子网络服务站b将message2中收到的rnb结合特定的密钥生成算法f得到指针pnb,使用pnb从flagb指定的密钥池中提取出与身份认证随机数nb相同的随机数nb’。量子网络服务站b根据站内随机数发生器产生真随机数rb,rb结合特定的密钥生成算法f得到指针pb,使用pb从flagb指定的密钥池中提取出相应的密钥kb。将rb、binfo以及使用kb加密的na’、nb’、ida和ka-b作为message5的第二部分发送给用户端b,第一部分为message4的第一部分即ra+ainfo+{na’+idb+ka-b}ka。

1.6用户端b发送ticket:用户端b收到message5后,将rb结合特定的密钥生成算法f得到指针pb。使用pb从flagb指定的密钥池中提取出与密钥kb相同的密钥kb’。使用kb’解密message3第二部分的加密部分,验证nb’和ida并得到na’。验证通过后则信任会话密钥ka-b。

用户端b匹配的量子密钥卡根据卡内随机数发生器产生新的真随机数nc和rbb,rbb结合特定的密钥生成算法f得到指针pbb,使用pbb从flagb指定的密钥池中提取出相应的随机数kbb。

将message3中的第一部分、用ka-b加密的na’以及明文形式的nc和用户端b新生成的ticket一起作为message4发送给用户端a。

该ticket用于实现用户端a与用户端b的二次身份认证,内容包括rbb、binfo以及用kbb加密的b生成的时间戳ida、ka-b和tb。

时间戳tb包含三个部分,用户端b的本地时钟的时间戳,ticket的生命周期以及一个时间标识符。时间标识符可以是一长串数字或者一个长的随机数。

在后续的二次身份认证过程中,用户端b验证ticket时先测试时间戳和生命周期,如果仍然有效,则比对ticket中的标识符与本地时间标识符。若不匹配则b拒绝这个ticket。

1.7用户端a完成对用户端b的身份认证:用户端a收到message6之后,将ra结合特定的密钥生成算法f得到指针pa。使用pa从flaga指定的密钥池中提取出与密钥ka相同的密钥ka’。使用ka’解密第一部分的加密部分,验证随机数na’和b的身份信息idb,如果匹配,则a信任ka-b作为ab之间的会话密钥。a使用获得的ka-b解密message6的第二部分得到na’,验证后完成对用户端b的身份认证。然后使用ka-b加密从message6的第三部分中收到的nc,作为message7发给用户端b,并将ticket、ka-b以及b的身份信息存起来以备二次身份认证。

1.8用户端b完成对用户端a的身份认证:用户端b收到message7后,使用ka-b解密得到nc,验证后完成与用户端a的身份认证。

2.二次身份认证过程与实施例2一致。

3.更新ticket过程与实施例2一致。

以上公开的仅为本发明的实施例,但是本发明并非局限于此,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。显然这些改动和变型均应属于本发明要求的保护范围保护内。此外,尽管本说明书中使用了一些特定的术语,但这些术语只是为了方便说明,并不对本发明构成任何特殊限制。

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