消息认证方法和系统与流程

文档序号:11138255阅读:3523来源:国知局
消息认证方法和系统与制造工艺

本发明涉及量子通信技术领域,特别涉及一种基于真随机数和量子密钥分发的消息认证方法和系统。



背景技术:

信息安全从古至今一直受到人们的广泛关注,信息已经毫无疑问的成为国家的重要战略资源,系统的安全性直接关系到国家的政治、经济、军事、社会甚至对外战略等诸多领域的成败。现如今量子保密通信技术在数据传输安全方面有着明显的优势,并已经逐渐实用化。消息认证码是在密码学中通信实体双方使用的一种验证机制,保证消息数据完整性的一种工具。构造方法由M.Bellare提出,完全依赖于Hash函数,故也称为带密钥的Hash函数。消息认证可以应用在广播等只需认证的情况或者文档的持续保护中(例如解密后的保护)。

专利申请201210443964.4公开了一种用于量子密钥分配系统的经典信道的消息认证,主要结合CRC编码和一次一密的加密方式,生成原始消息M的消息认证码MAC,其过程为消息用HASH函数作用得到其散列值,然后用一次一密密钥填充散列值作为MAC,后将MAC按照事先约定好的位置插入到原始消息M中,生成数据比特串,进行纠错发送到接收方。接收方按照事先约定好的译码方式对数据进行相应译码,译码后提取相应的消息M和消息认证码MAC,计算译码后所提取的消息M的MAC值,进行比较算得的MAC值和译码后所提取到的MAC值是否相等,若相等则确定原始消息未被篡改,反之视为未通过认证。

现有技术(经典网络通信)所用的密钥是基于数学复杂性问题的经典算法,这种算法理论上不被破译的可能性未得到证明,它们的局限性在于当前计算能力。现有技术中只实现基于量子密钥分发的经典信道的消息认证,并没有实现全通信网络的消息认证,且消息认证的消息认证码的产生过程复杂。



技术实现要素:

本发明提供一种消息认证系统,利用可移动式的量子密钥卡解决量子网络终端的接入使用与安全问题。

一种消息认证系统,包括配置于网络侧的量子网络服务站以及配置于用户侧的客户端,客户端与网络侧交互携带有消息认证码的消息认证信息,通过对比各自生成的消息认证码进行对比认证,还设有量子密钥卡,网络侧生成真随机数在量子密钥卡与网络侧分别存储以形成相应的用户侧密钥;量子密钥卡与网络侧的用户侧密钥分别用于各自生成消息认证码以进行对比认证。

所述真随机数由网络侧的量子网络服务站生成,且在所述量子密钥卡和该量子网络服务站分别存储以形成相应的用户侧密钥。

所述客户端可以是信息发送客户端和信息接收客户端,两者是相对而言,仅仅是根据发生的业务类型而定,所述信息发送客户端和信息接收客户端均具有与量子密钥卡相配合的数据传输接口,信息发送客户端和信息接收客户端通过网络侧的量子网络服务站中转相互进行消息认证。

作为优选,所述量子密钥卡为USBkey或可插拔板卡/芯片,其具有数据存储和处理功能,就其自身而言可以基于现有硬件技术实现。

所述量子密钥卡在相应的量子网络服务站经登记审核获批后颁发,具有唯一的量子密钥卡ID,指向颁发该量子密钥卡的量子网络服务站。所述量子密钥卡存储有相应用户的身份信息,以及颁发该量子密钥卡的量子网络服务站的信息。

由于量子密钥卡与所属用户相互绑定,因此量子密钥卡内存储的相关信息也可以用来做用户身份认证。可选的,量子密钥卡与专属的客户端ID相互绑定,此时量子密钥卡内存储的相关信息也可以用作专属客户端的身份认证。

作为优选,所述用户侧密钥作为密钥种子,所述量子密钥卡以及量子网络服务站存储有相应的密钥生成算法,分别用于生成消息认证过程中所需的密钥;

所述量子密钥卡以及量子网络服务站存储有相应的消息认证码生成算法,分别用于生成消息认证码。量子密钥卡中的密钥种子可以来自不同的量子网络服务站,但密钥生成算法、消息认证码生成算法以及有可能采用的加密算法存储于量子密钥卡以及各量子网络服务站中。

当密钥生成算法和消息认证码生成算法有多种时,客户端有量子网络服务站通信时,可通过算法标号或索引等形式,指定相同的算法。

量子密钥卡中的密钥种子既可以在颁发量子密钥卡的量子网络服务站下载,也可以在其它量子网络服务站下载,为了识别不同来源,所述量子密钥卡中存有标识密钥种子来源的密钥种子ID,用以指向存储该密钥种子的量子网络服务站,量子网络服务站将用户侧密钥写入量子密钥卡的同时,也存储在本服务站中供调用。

为了提高安全性,下载密钥种子时并不需要通过某用户端进行,而是量子密钥卡与生成真随机数在量子网络服务站直接建立通信连接。仅在消息认证、信息加解密或其他具体业务时,量子密钥卡需通过用户端与量子网络服务站通信连接。

所述量子密钥卡内包含随机数发生器,用以产生随机数,作为客户端与量子服务中心之间所需的消息认证过程所用密钥的生成参数。密钥的生成依靠密钥生成算法、作为密钥种子的用户侧密钥以及该随机数。

所述量子密钥卡中的密钥种子按照来源不同分为若干密钥种子集,同一密钥种子集的密钥种子来自同一量子网络服务站,不同的密钥种子集带有不同的密钥种子ID。

为了提高安全性,本发明密钥种子是可更新的,密钥种子更新时:

可选的,客户端发送更新申请给量子密钥卡并通知量子网络服务站,量子密钥卡接收更新申请并按预定规则更新密钥种子,量子网络服务站同步更新相应的密钥种子。

可选的,统计密钥种子的使用次数,当使用次数到达阈值时量子密钥卡与对应的量子网络服务站同步更新相应的密钥种子。

使用次数阈值预先设定好,同时存储在量子网络服务站与量子密钥卡中,使两者得以统计并同步。

可选的,量子密钥卡统计未被使用的密钥种子数量,达到临界值时进行提示,客户依需求在量子网络服务站下载新的用户侧密钥。

密钥种子更新时,是在量子密钥卡与密钥种子ID所指向的量子网络服务站之间进行。当然,若是下载新的密钥种子,则对量子网络服务站没有严格限制。

本发明消息认证系统可在局域网内实施,网络侧的量子网络服务站包括::

量子服务中心,用于通过经典网络与用户侧的各客户端通信连接;

真随机数发生器,生成所述真随机数;

用户侧密钥管理服务器,与量子服务中心通信连接,用于根据用户请求将来自真随机数发生器的真随机数分别存储至相应的量子密钥卡以及本量子网络服务站内,作为相应的用户侧密钥。

所述真随机数发生器为量子随机数发生器,也可为基于电路的真随机数发生器、基于物理源的真随机数发生器以及其他种类的真随机发生器。

多个量子网络服务站构成广域网时,本发明数字签名系统可在广域网内实施,在网络侧,相连接的两量子网络服务站均设有对应的量子密钥控制中心,量子密钥控制中心与所在量子网络服务站的量子服务中心通信连接,对应的两个量子密钥控制中心通过量子网络进行密钥分发,用以在相连接的两量子网络服务站之间形成站间量子密钥。

本发明中,量子服务中心以及量子密钥控制中心可以利用现有构架以及与量子技术相结合,例如量子密钥控制中心设有实施QKD的量子密钥分发设备;量子服务中心包括消息认证服务器,用于客户端或其他量子网络服务站之间进行消息认证。

量子服务中心还可根据需要设置其他服务器,例如可设置加解密服务器、数字签名验证服务器等,还可设置管理中心服务器,消息认证服务器以及其他服务器与管理中心服务器通信连接。

所述用户侧密钥管理服务器将来自真随机数发生器的真随机数分别存储至相应的量子密钥卡以及本量子网络服务站内作为用户侧密钥,而在量子网络服务站内,该用户侧密钥可存储在用户侧密钥管理服务器和/或量子服务中心中,所述用户侧密钥管理服务器与量子服务中心通信连接,以响应对用户侧密钥的调用。

可选的,与客户端通信的当前量子网络服务站存有消息认证时所涉及的用户侧密钥,则站内直接调用该用户侧密钥以用于消息认证。

消息认证时所涉及的用户侧密钥,有可能是消息认证码算法本身需使用,也可能是基于密文传输的加密需要而使用,在客户端,该用户侧密钥存储在量子密钥卡中,相应的网络侧的某一量子网络服务站也应存储相应的用户侧密钥;该用户侧密钥的密钥种子ID若指向与客户端通信的当前量子网络服务站,即当前量子网络服务站存有消息认证时所涉及的用户侧密钥。

本发明消息认证系统可在局域网内实施,信息发送客户端与量子网络服务站之间消息认证时:

在信息发送客户端的量子密钥卡中,根据密钥生成算法、所选取密钥种子,以及随机数发生器产生的第一随机数三个参数得到消息认证所需的第一密钥,将第一密钥与信息数据进行运算生成第一消息认证码;

将所述第一消息认证码、信息数据、第一随机数、以及密钥种子ID、密钥生成算法标识经由信息发送客户端提交至量子网络服务站;

量子网络服务站根据密钥种子ID在站内提取相应的密钥种子,根据密钥生成算法标识提取相应的密钥生成算法,通过提取到的密钥种子、密钥生成算法结合接收到的第一随机数生成第二密钥,将第二密钥与信息数据进行运算生成第二消息认证码,将第一消息认证码和第二消息认证码进行对比认证。

同理信息接收客户端与量子网络服务站之间消息认证时:

量子网络服务站与信息接收客户端通信时,会获取与信息接收客户端所匹配的量子密钥卡中的密钥种子ID,根据该密钥种子ID量子网络服务站在站内提取相应的密钥种子,量子网络服务站内的消息认证服务器通过内设的随机数发生器生成第二随机数,将提取到的密钥种子、第二随机数通过密钥生成算法生成第三密钥,第三密钥与信息数据运算生成第三消息认证码。

量子网络服务站将所述第三消息认证码与信息数据,连同在生成第三密钥时涉及的密钥种子ID、密钥生成算法标识、以及第二随机数;发送至信息接收客户端。

信息接收客户端接收后转发至匹配的量子密钥卡,在量子密钥卡中根据密钥种子ID在卡内提取相应的密钥种子,根据密钥生成算法标识提取相应的密钥生成算法,通过提取到的密钥种子、密钥生成算法结合接收到的第二随机数生成第四密钥,将第四密钥与信息数据进行运算生成第四消息认证码,将第三消息认证码和第四消息认证码进行对比认证。

本发明消息认证系统可在广域网内实施,可选的,所述网络侧的量子网络服务站为至少两个,所述信息发送客户端和信息接收客户端配置在不同的量子网络服务站,信息发送客户端和信息接收客户端两者所属的量子网络服务站之间进行消息认证的传递。即两个量子网络服务站之间要进行一次消息认证,两个量子网络服务站之间可采用各自的量子密钥分发设备,进行量子密钥的分发,再利用分发量子密钥进行消息认证。

而信息发送客户端和信息接收客户端两者与所属的量子网络服务站之间的消息认证,与上述过程同理,都是利用量子密钥卡与量子网络服务站之间相应的用户侧密钥,生成消息认证码,进行对比认证。

以上为信息发送客户端和信息接收客户端归属不同的量子网络服务站,归属某一量子网络服务站,可理解为直接与该量子网络服务站进行通信,以实施消息认证。

另外,无论信息发送客户端和信息接收客户端是否归属同一量子网络服务站,可能发生的是在消息认证时,某客户端生成消息认证码所涉及的密钥种子ID,并没有指向该客户端直接通信连接的量子网络服务站。

可选的,客户端相匹配的量子密钥卡以及与该客户端通信的当前量子网络服务站之间没有相应的用户侧密钥,当前量子网络服务站根据客户端在消息认证时使用的用户侧密钥来源,向存储该用户侧密钥的量子网络服务站请求该用户侧密钥或请求生成消息认证码。

客户端在消息认证时使用的用户侧密钥来源,可以根据客户端量子密钥卡的密钥种子ID,客户端与当前量子网络服务站交互时,当前量子网络服务站可获取该密钥种子ID,再向密钥种子ID所指的量子网络服务站请求该用户侧密钥。

若当前量子网络服务站与密钥种子ID所指的量子网络服务站直接连接,则可直接发送请求;若当前量子网络服务站与密钥种子ID所指的量子网络服务站间接连接,即需要通过其他网络节点中转,则按照预设规则或网络实时状态选择合适的路径,与密钥种子ID所指的量子网络服务站通信。

用户侧密钥在密钥种子ID指向的量子网络服务站与当前量子网络服务站之间传送时,可以利用站间量子密钥对用户侧密钥本身进行加、解密传送。

密钥种子ID指向的量子网络服务站与当前量子网络服务站之间如果还要通过其他网络节点中转,则所述的站间量子密钥应理解为在直接通信连接的两量子网络服务站(或网络节点)之间通过相应的量子密钥分发设备形成的站间量子密钥,而并非特指密钥种子ID指向的量子网络服务站与当前量子网络服务站之间的站间量子密钥。

同理,当前量子网络服务站向密钥种子ID指向的量子网络服务站请求生成消息认证码时,两站之间交互的数据可以利用站间量子密钥进行加、解密传送。

作为优选,当前量子网络服务站根据客户端在消息认证时使用的用户侧密钥来源,向存储该用户侧密钥的量子网络服务站,请求生成消息认证码,请求生成消息认证码时,将相应的消息也发送至被请求的量子网络服务站。

被请求的量子网络服务站生成消息认证码后,该消息认证码返回当前量子网络服务站进行对比认证;或存储该用户侧密钥的量子网络服务站生成消息认证码后进行对比认证,再向当前量子网络服务站返回认证结果。

由于量子密钥卡具有数据处理能力,为了提高安全性,作为优选,消息认证时,用户侧消息认证码的生成在量子密钥卡中进行。再经由匹配的客户端上传给当前量子网络服务站,此处的匹配应理解为量子密钥卡与当前的客户端已经建立通信连接,量子密钥卡与用户是绑定的,但并不要求与指定的用户端在硬件地址上进行绑定,当然,考虑到某些特殊场合或需求,也可以将量子密钥卡与指定的客户端在硬件地址上进行绑定。

作为优选,待认证的消息采用密文传输,生成密文时在附加消息认证码前加密,或在附加消息认证码后加密。

加密时采用对称加密算法,依然采用量子密钥卡与量子网络服务站之间相应的用户侧密钥进行加密解密运算。作为优选,加密所用的密钥的生成以及对信息进行加密运算,都在量子密钥卡中进行。

在加密解密过程中,同样涉及到客户端以及与该客户端通信的当前量子网络服务站之间没有相应的用户侧密钥,同理,当前量子网络服务站根据客户端在加密或解密时使用的用户侧密钥来源,向存储该用户侧密钥的量子网络服务站请求该用户侧密钥或请求加密或解密。

本发明还提供一种消息认证方法,应用于本发明所述的消息认证系统。

本发明中量子密钥卡可在量子网络服务站中的用户侧密钥管理服务器中拷取真随机数,相当于密钥分发,且真随机数发生器利用量子力学的基本原理来产生真随机数,由于该真随机数序列相对于窃听者是完全随机且未知的,因此可以用来作为密钥以保证安全性。本发明采用的是HMAC算法,引入了密钥,其安全性已经不完全依赖于使用的HASH算法。安全性得到更大的保证。

本发明消息认证是利用现有经典通信网络的优势,结合真随机数发生器和量子密钥分发产生的密钥。信息数据经过级级相互消息认证后才传达到接收方,这样更加保证信息数据的正确性且安全性也不会降低。

附图说明

图1为实施例4中消息认证系统示意图;

图2为实施例1中明文消息认证算法示意图;

图3为实施例1中明文消息认证流程示意图;

图4为实施例2中密文消息认证算法示意图;

图5为实施例3中密文消息认证算法示意图。

具体实施方式

实施例1:

本实施例消息认证系统包括:

信息发送客户端,用于将消息认证信息发送至网络侧的量子网络服务站;

一个量子网络服务站,用于提供真随机数作为相应的用户侧密钥分别存储在量子密钥卡和量子网络服务站中,还用于利用量子网络服务站中存储的用户侧密钥对接收到的消息认证信息进行消息认证,消息认证成功后,再生成新的消息认证信息发送至信息接收客户端;

信息接收客户端,用于接收来自量子网络服务站的消息认证信息;

信息发送客户端和信息接收客户端分别匹配有量子密钥卡,量子密钥卡用于存储作为密钥种子的用户侧密钥,还用于利用密钥种子生成密钥进而生成消息认证信息。

本实施例中信息发送客户端和信息接收客户端与量子网络服务站之间的数据交互均通过经典网络进行;信息发送客户端和信息接收客户端为客户接入量子网络设备,本实施例中信息发送客户端和信息接收客户端为移动终端,或为固定终端。

本实施例中,量子网络服务站包括真随机数发生器(量子随机数发生器)、用户侧密钥管理服务器和量子服务中心。

量子随机数发生器用于生成真随机数;

用户侧密钥管理服务器用于存储由量子随机数发生器生成的真随机数,还用于供量子密钥卡拷贝真随机数生成密钥种子(即用户侧密钥),并以密钥种子集的形式分别存储于量子密钥卡和量子网络服务站中;

量子服务中心包括消息认证服务器和身份认证服务器,消息认证服务器用于对接收到消息认证信息进行消息认证,并针对验证成功的信息生成新的消息认证信息,然后将消息认证信息经由量子服务中心发送至信息接收客户端;消息认证服务器内包含随机数发生器,用以产生随机数,作为客户端与量子服务中心之间所需的消息认证过程所用密钥的生成参数。密钥的生成依靠密钥生成算法、用户侧密钥以及随机数。

身份认证服务器用于验证客户是否为合法客户。

每个量子密钥卡都具有唯一ID号,当客户在所处区域的量子网络服务站进行注册登记后,客户会得到一个具有唯一ID号的量子密钥卡。量子密钥卡存储了客户注册登记信息,至少包括一个密钥种子的密钥种子集,还内置由密钥生成算法和MAC算法等与消息认证的相关算法。量子密钥卡利用密钥生成算法、用户侧密钥、随机数发生器产生的随机数生成密钥,利用MAC算法和密钥对消息进行运算生成消息认证码。

量子密钥卡内置的消息认证的相关算法与量子网络服务站存储的消息认证的相关算法一致。若密钥生成算法只有一种,消息认证服务器可以直接得到密钥生成算法;若密钥生成算法存在最少两种,量子密钥卡会将密钥生成算法的标号信息传送至量子网络服务站中。

量子密钥卡中的用户侧密钥可能下载自不同的量子网络服务站,因此可按不同来源存在不同的密钥种子集中,客户端可按预先设定的规则取用密钥种子以生成密钥。

不同客户的量子密钥卡中存储的密钥种子集不同,且针对不同量子密钥卡也可设计不同的密钥生成算法,提高消息认证的安全性。在密钥种子和密钥生成算法的配合下,将能生成大量随机密钥,每次消息认证时使用一个密钥,使消息认证密钥一次一变。

当客户端为移动终端时,量子密钥卡优选为量子SD卡;当客户端为固定终端时,量子密钥卡优选为USBkey。

本发明各实施例的MAC算法采用HMAC运算,它的运算方法是将密钥和信息数据同时作为输入,采用二次散列迭代的方式,公式如下:HMAC(K,M)=H(K+○opad|H(K+○ipad|M)),其中K是密钥,长度为64字节,若长度小于该长度,则自动在密钥后面用0填补补充。M是消息;H是散列函数;opad和ipad分别是由若干个0x5c和0x36组成的字符串;|表示连接操作。

消息认证有两层含义:一是检验消息的来源是否为真实的,即对消息的发送者的身份进行身份认证。二是检验消息是完整的,即验证消息在传输或存储过程中是否被篡改、删除或插入。

两个客户之间进行消息认证时,既可以选择明文消息认证,或选择密文消息认证。

如图2所示,明文消息认证包括如下步骤:

步骤1:利用密钥种子、随机数发生器产生的随机数和密钥生成算法AS生成密钥K1。

步骤2:利用MAC算法,把密钥K1和消息M同时输入,采用MAC算法生成消息M的消息认证码MAC1。

步骤3:将消息认证码MAC1附加在消息M后以M||MAC1形式一起发送到接收方,并且将随机数、密钥生成算法标识、密钥种子ID传送给接收方。

步骤4:接收方接收到M||MAC1后,根据明文信息数据本身具有的标示,可以直接将消息M与消息认证码MAC1分开,接收方接收到随机数、密钥生成算法标识、密钥种子ID后找到对应的密钥生成算法和密钥种子,经运算得到密钥,接收方将所接收到的消息M与接收方对应密钥一起采用MAC算法得到消息认证码MAC2与发送过来的消息认证码MAC1进行比较。

步骤5:进行分析,若消息认证码MAC1=消息认证码MAC2,接收方认为消息未被篡改且确定发送端身份真实。否则认为消息被篡改了,即放弃传送消息。

本实施例中客户端A1与客户端An归属同一量子网络服务站,其设有量子服务中心A,即可视为在局域网内客户端A1与客户端An进行明文消息认证,如图3所示,具体包括如下步骤:

步骤1:量子服务中心A与客户端A1之间进行消息认证

a.消息认证开始:客户端A1首先与相匹配的量子密钥卡建立通信连接。

b.用户侧消息认证密钥生成:量子密钥卡根据所存储的密钥种子SS以及卡内随机数发生器所产生的随机数结合密钥生成算法AS,得到密钥K1。并将随机数以及密钥生成算法ID和密钥种子ID传递给量子服务中心A。

网络侧消息认证密钥生成:量子服务中心A根据密钥生成算法ID和密钥种子ID,在当前量子网络服务站内找出对应的密钥种子SS’和密钥生成算法AS’,结合随机数运算得到密钥K1’,密钥K1’也可以在步骤d生成。

c.用户侧生成消息认证码并发送消息认证信息:量子密钥卡将所要发送的消息M和密钥K1同时作为输入,采用MAC算法生成消息认证码MAC1,并且附加在明文信息后以M||MAC1形式经由客户端A1发送到量子服务中心A。

d.量子服务中心A生成消息认证码:量子服务中心A接收到以M||MAC1形式传输过来的数据,将消息M与消息认证码MAC1分离开,将消息M和量子服务中心的密钥K1’一同作为输入,采用MAC算法生成消息认证码MAC2。

e.消息认证码进行比较:量子服务中心A将生成的消息认证码MAC2与接收到的消息认证码MAC1进行比较。若相等则证明消息没有被篡改。若不相等则消息认证失败,消息已经被篡改,则消息传输停止。

步骤2:量子服务中心A与客户端An之间进行消息认证

若客户端A1与客户端An进行消息认证,首先客户端A1会向量子网络服务站发出通信请求,通信请求中会携带有接收方用户的相关信息,本实施例中接收方用户对应客户端An。

a.网络侧消息认证密钥生成:量子服务中心A根据接收方对应的密钥种子ID在当前量子网络服务站内找出与接收方用户量子密钥卡中相应的密钥种子cc’以及密钥生成算法Ac’,并与消息认证服务器内的随机数发生器产生的随机数结合运算得到密钥K2。

b.量子服务中心A生成消息认证码:量子服务中心A将消息M和密钥K2同时作为输入,采用MAC算法生成消息认证码MAC3,并且将消息认证码MAC3附加在消息M后以M||MAC3形式发送到客户端An。同时向接收客户端An传递密钥种子ID、密钥生成算法ID、随机数。

c.用户侧消息认证密钥生成:客户端An接收到消息认证信息(M||MAC3)以及密钥种子ID、密钥生成算法ID、随机数后转发至所匹配的量子密钥卡,该量子密钥卡根据接收到的信息找到对应的密钥种子cc以及密钥生成算法Ac,结合随机数进而生成密钥K2’。

d.用户侧生成消息认证码:客户端An匹配的量子密钥卡从接收到的消息认证信息中提取消息M与消息认证码MAC3,利用消息M和密钥K2’采用MAC算法生成消息认证码MAC4。

e.消息认证码进行比较:客户端An匹配的量子密钥卡将生成的消息认证码MAC4与消息认证码MAC3进行比较。

若相等则证明消息没有被篡改。若不相等则消息认证失败,消息已经被篡改,则消息传输停止。消息认证完成。

客户在进行消息认证时,密钥种子长期使用或重复使用会有被破解的可能性,为提高本消息认证系统的安全性,密钥种子需要定时更新。

本实施例中的更新方式为:

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

密钥存储卡接收更新申请后,按预先设定的规则更新密钥种子,例如将一部分使用过的密钥种子做失效标识,不再使用,而启用新的密钥种子。

量子服务中心接收更新申请后,按预先与量子密钥卡协商一致的规则更新量子网络服务站内相应存储的密钥种子,实现与量子密钥卡的时时对应。

实施例2:

如图4所示,本实施例消息认证系统与实施例1不同之处在于采用密文消息认证方式,包括如下步骤:

步骤1:量子服务中心A与客户端A1之间进行消息认证

a.消息认证开始:客户端A1首先与相匹配的量子密钥卡建立通信连接。

b.用户侧消息认证密钥生成:量子密钥卡根据所存储的密钥种子SS、随机数发生器产生的随机数通过密钥生成算法AS得到密钥K1和密钥Q1。同时传递密钥种子ID、密钥生成算法ID以及随机数给量子网络服务中心A。

网络侧消息认证密钥生成:量子服务中心A根据密钥种子ID、密钥生成算法ID以及随机数,在当前量子网络服务站内找出对应的密钥种子SS’和密钥生成算法AS’,并结合随机数运算后得到密钥K1’和密钥Q1’。

c.用户侧生成消息认证码并发送消息认证信息:量子密钥卡利用密钥Q1对所要发送的消息M进行加密得到密文EQ1(M),该密文EQ1(M)和密钥K1同时作为输入,采用MAC算法生成消息认证码MAC1,并且附加在密文后以EQ1(M)||MAC1形式经由客户端A1发送到量子服务中心A。

d.量子服务中心A生成消息认证码:量子服务中心A接收到以EQ1(M)||MAC1形式传输过来的数据,将密文EQ1(M)与消息认证码MAC1分离开,将密文EQ1(M)和量子服务中心的密钥K1’作为输入,采用MAC算法生成消息认证码MAC2。

e.消息认证码进行比较:量子服务中心A将生成的消息认证码MAC2与接收到的消息认证码MAC1进行比较。

若相等则证明消息没有被篡改,利用密钥Q1’解密得到明文形式的消息M。

若不相等则消息认证失败,消息已经被篡改,则消息传输停止。步骤2:量子服务中心A与客户端An之间进行消息认证

若客户端A1与客户端An进行消息认证,首先客户端A1会向量子网络服务站发出通信请求,通信请求中会携带有接收方用户的相关信息,本实施例中接收方用户对应客户端An。

a.网络侧消息认证密钥生成:量子服务中心A根据接收方对应的密钥种子ID,在当前量子网络服务站内找出与接收方用户量子密钥卡中相应的密钥种子cc’以及密钥生成算法Ac’,并结合站内消息认证服务器内随机数发生器产生的随机数运算得到密钥K2和密钥Q2。并将密钥种子ID以及密钥生成算法ID,以及随机数提交给客户端An。

b.量子服务中心A生成消息认证码:量子服务中心A利用密钥Q2加密消息M得到密文EQ2(M),密文EQ2(M)和密钥K2同时作为输入,采用MAC算法生成消息认证码MAC3,并且将消息认证码MAC3附加在密文后以EQ2(M)||MAC3形式发送到客户端An。

c.用户侧消息认证密钥生成:客户端An接收到消息认证信息(M||MAC3)以及密钥种子ID以及密钥生成算法ID,以及随机数后转发至所匹配的量子密钥卡,该量子密钥卡根据接收到的信息找到对应的密钥种子cc以及密钥生成算法Ac,进而生成密钥K2’和密钥Q2’。

d.用户侧生成消息认证码:客户端An匹配的量子密钥卡从接收到的消息认证信息中提取密文EQ2(M)与消息认证码MAC3,利用密文EQ2(M)和密钥K2’采用MAC算法生成消息认证码MAC4。

e.消息认证码进行比较:客户端An匹配的量子密钥卡将生成的消息认证码MAC4与消息认证码MAC3进行比较。

若相等则证明消息没有被篡改,再利用密钥Q2’解密,得到明文形式的消息M。

若不相等则消息认证失败,消息已经被篡改,则消息传输停止。消息认证完成。

本实施例中,客户在进行密文消息认证时,在量子密钥卡中要用到两个密钥,一个密钥用来进行MAC运算生成消息认证码;另一个密钥用作给明文信息加密得到密文。尽管密文消息认证所耗密钥更多,但是更保证了信息的安全性。

客户选择用密文进行消息认证时,密钥种子使用频率加快,为保证消息认证系统的安全性,密钥种子需要定时更新,密钥种子的更新方法与实施例1完全相同。

实施例3:

如图5所示,本实施例消息认证系统与实施例1不同之处在于采用一种密文消息认证方式,包括如下步骤:

步骤1:量子服务中心A与客户端A1之间进行消息认证

a.消息认证开始:客户端A1首先与相匹配的量子密钥卡建立通信连接。

b.用户侧消息认证密钥生成:量子密钥卡将所存储的密钥种子SS以及随机数发生器产生的随机数通过密钥生成算法AS得到密钥K1和密钥Q1。并将密钥种子ID以及密钥生成算法ID,以及随机数提交给量子服务中心A。

网络侧消息认证密钥生成:量子服务中心A根据密钥种子ID以及密钥生成算法ID,以及随机数在当前量子网络服务站内找出对应的密钥种子SS’和密钥生成算法AS’,经运算得到密钥K1’和密钥Q1’。

c.用户侧生成消息认证码并发送消息认证信息:量子密钥卡将消息M和密钥K1同时作为输入,采用MAC算法生成消息认证码MAC1,并且附加在消息M之后以形成消息认证信息(M||MAC1),利用密钥Q1对消息认证信息(M||MAC1)加密得到密文EQ1(M||MAC1),并且将密文EQ1(M||MAC1)经由客户端A1发送到量子服务中心A。

d.量子服务中心A生成消息认证码:量子服务中心A接收到密文EQ1(M||MAC1),利用密钥Q1’对密文EQ1(M||MAC1)解密得到消息认证信息(M||MAC1),将解密得到消息认证信息(M||MAC1)中的消息M与消息认证码MAC1分离开,将消息M和量子服务中心A的密钥K1’作为输入,采用MAC算法生成消息认证码MAC2。

e.消息认证码进行比较:量子服务中心A将生成的消息认证码MAC2与消息认证码MAC1进行比较。

若相等则消息认证成功,证明消息没有被篡改。

若不相等则消息认证失败,消息已经被篡改,则消息传输停止。

步骤2:量子服务中心A与客户端An之间进行消息认证

若客户端A1与客户端An进行消息认证,首先客户端A1会向量子网络服务站发出通信请求,通信请求中会携带有接收方用户的相关信息,本实施例中接收方用户对应客户端An。

a.网络侧消息认证密钥生成:量子服务中心A根据接收方对应的密钥种子ID,在当前量子网络服务站内找出与接收方用户量子密钥卡中相应的密钥种子cc’、密钥生成算法Ac’以及站内消息认证服务器内随机数发生器产生的随机数,经运算得到密钥K2和密钥Q2。并将密钥种子ID以及密钥生成算法ID,以及随机数传递给客户端An。

b.量子服务中心A生成消息认证码:量子服务中心A将消息M和密钥K2同时作为输入,采用MAC算法生成消息认证码MAC3,并且附加在消息M之后以形成消息认证信息(M||MAC3),利用密钥Q2对消息认证信息(M||MAC3)加密得到密文EQ2(M||MAC3),并且将密文EQ2(M||MAC3)经由量子服务中心A发送到客户端An。

c.用户侧消息认证密钥生成:客户端An接收到密文EQ2(M||MAC3)以及密钥种子ID以及密钥生成算法ID,以及随机数后转发至所匹配的量子密钥卡,该量子密钥卡根据接收到的信息找到对应的密钥种子cc以及密钥生成算法Ac,进而生成密钥K2’和密钥Q2’。

d.用户侧生成消息认证码:客户端An匹配的量子密钥卡接收到密文EQ2(M||MAC3),利用密钥Q2’对密文EQ2(M||MAC3)解密得到消息认证信息(M||MAC3),从消息认证信息(M||MAC3)中提取出消息M与消息认证码MAC3,利用消息M和密钥K2’采用MAC算法生成消息认证码MAC4。

e.消息认证码进行比较:客户端An匹配的量子密钥卡将生成的消息认证码MAC4与消息认证码MAC3进行比较。

若相等则消息认证成功,证明消息没有被篡改。

若不相等则消息认证失败,消息已经被篡改,则消息传输停止。消息认证完成。

本实施例中,量子密钥卡里要用到两个密钥,一个密钥用来进行MAC运算生成消息认证码;另一个密钥用作对消息认证信息(M||MAC1)进行加密。尽管密文消息认证所耗密钥更多,更保证了信息完全性。

客户选择用密文进行消息认证时,密钥种子使用频率加快,为保证消息认证系统的安全性,密钥种子需要定时更新,密钥种子的更新方式为量子密钥卡与密钥种子ID指向的量子网络服务站预先设定密钥种子使用次数阈值,量子密钥卡每次生成密钥时也会统计密钥种子的使用次数,当使用次数到达阈值时量子密钥卡与密钥种子ID指向的量子网络服务站同步更新相应的密钥种子,例如将一部分使用过的密钥种子做失效标识,不再使用,而启用新的密钥种子。

实施例4:

参见图1,本实施例中的系统构架区别于实施例1之处为应用在广域网中,一级交换中心一个地级市或相当大小区域的量子网络核心站,二级交换中心是一个县级市或相当大小区域的量子网络核心站,量子网络服务站是一个乡镇或街道办事处相当大小区域的量子核心站(是否需要解释)。

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

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

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

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

本实施例中,客户端A1与客户端B1之间要进行消息认证,客户端A1归属于量子网络服务站A,即相对于客户端A1而言,其当前量子网络服务站为与客户端A1通信连接的量子网络服务站A;同理客户端B1归属于量子网络服务站B。

量子网络服务站A与量子网络服务站B分处在不同的一级交换中心下,量子网络服务站A与量子网络服务站A’同属一个二级交换中心;量子网络服务站B和量子网络服务站B’同属另一个二级交换中心。

客户端A1匹配的量子密钥卡中,进行消息认证时所涉及的密钥种子ID并没有指向当前的量子网络服务站A,而是指向量子网络服务站A’;

客户端B1匹配的量子密钥卡中,进行消息认证时所涉及的密钥种子ID并没有指向当前的量子网络服务站B,而是指向量子网络服务站B’;

因此本实施例中,涉及到站间密钥种子调用或站间协助认证。

客户端A1与客户端B1采用明文消息认证,具体包括如下步骤:

步骤1:客户端A1与量子网络服务站A之间进行消息认证

a.消息认证开始:客户端A1首先与相匹配的量子密钥卡建立通信连接。

b.用户侧认证密钥生成:量子密钥卡根据所存储的密钥种子SS和密钥生成算法AS以及量子密钥卡内产生的随机数A,得到密钥K1。

其中,密钥生成算法AS的原理为根据所拷取的真随机数,针对密钥种子SS进行适当排列和算法运算,输出密钥K1。

c.客户端A1生成消息认证码并发送消息认证信息:客户端A1将所要发送的明文形式的消息M和密钥K1同时作为输入,采用MAC算法生成消息认证码MAC1附加在消息后以M||MAC1形式的消息认证信息一起发送到量子网络服务站A。同时将量子密钥卡内产生的随机数A、密钥生成算法ID、密钥种子ID传递给量子网络服务站A。

d.网络侧消息认证码生成和认证:量子网络服务站A根据客户端A1发送来的密钥种子ID,与密钥种子ID指向量子网络服务站A’建立通信,继而实施异地认证,异地认证可选如下四种方式之一,本步骤d中具体选用方式一实施异地认证。

方式一,量子网络服务站A向量子网络服务站A’请求,且请求中携带密钥种子ID。量子网络服务站A’响应该请求,从站内调取相应的密钥种子SS’以密文方式发送回量子网络服务站A,在量子网络服务站A处经解密得到密钥种子SS’,量子网络服务站根据来自客户端A1的密钥生成算法ID提取相应算法,结合随机数A经运算得到相应密钥K1’;量子网络服务站A’与量子网络服务站A可以利用QKD方式进行站间量子密钥的共享,实现密文传输。

量子网络服务站A接收到以M||MAC1形式传输过来的消息认证信息,将消息M与消息认证码MAC1分离,将消息M和密钥K1’一同作为输入,进行MAC运算生成消息认证码MAC2。

量子网络服务站A将消息认证码MAC2与消息认证码MAC1进行比较。若相等则证明消息没有被篡改。量子网络服务站A与客户端A1之间的消息认证成功并确定消息的来源是真实的。若不相等则消息认证失败,消息已经被篡改,则消息传输停止。

方式二,量子网络服务站A向量子网络服务站A’请求,且将来自客户端A1的密钥种子ID、密钥生成算法ID、随机数A、消息认证信息(M||MAC1形式)都发送至量子网络服务站A’。

量子网络服务站A’根据密钥种子ID在站内提取相应的密钥种子,根据密钥生成算法ID提取相应的密钥生成算法,结合随机数A得到密钥K1’,将消息M与消息认证码MAC1分离,将消息M和密钥K1’一同作为输入,进行MAC运算生成消息认证码MAC2。

量子网络服务站A’将消息认证码MAC2与消息认证码MAC1进行比较得到认证结果,将该认证结果发送到量子网络服务站A。

方式三,与方式二的不同之处在于量子网络服务站A’将消息认证码MAC2返回量子网络服务站A,量子网络服务站A将消息认证码MAC2与消息认证码MAC1进行比较得到认证结果。

方式四,量子网络服务站A向量子网络服务站A’请求,且将来自客户端A1的密钥种子ID、消息认证涉及的密钥生成算法ID、以及随机数A发送至量子网络服务站A’。

且量子网络服务站A将消息M与消息认证码MAC1分离,得到消息M,此方式中也将消息M(以密文方式)发送至量子网络服务站A’。

量子网络服务站A’按照方式二的操作得到密钥K1’,将解密后获得的消息M和密钥K1’一同作为输入,进行MAC运算生成消息认证码MAC2。

量子网络服务站A’将消息认证码MAC2发送到量子网络服务站A,量子网络服务站A将消息认证码MAC2与消息认证码MAC1进行比较得到认证结果。

步骤2:量子网络服务站A与量子网络服务站B之间的消息认证(异地量子网络服务站之间的消息认证,但就此步骤而言,由于和量子密钥卡的使用并没有必然联系,因此也可以采用现有技术在两量子网络服务站之间进行消息认证)。

a.异地量子密钥分发设备产生共享密钥:通过QKD方式量子网络服务站A与量子网络服务站B共享相应的站间量子密钥K2和K2’。

b.量子网络服务站A生成消息认证码:在量子网络服务站A上,将密钥K2和消息M一起输入进行MAC运算生成消息认证码MAC3,并附加在消息后以M||MAC3形式发送到量子网络服务站B。

c.量子网络服务站B生成消息认证码:量子网络服务站B接收到以M||MAC3形式传输过来的数据,将消息M与消息认证码MAC3分离开,将消息M和量子网络服务站B的密钥K2’一同作为输入,进行MAC运算生成消息认证码MAC4。

d.消息认证码进行比较:将生成的消息认证码MAC4与接收到的消息认证码MAC3进行比较。若相等则证明消息没有被篡改,并且进行下一步消息传输。若不相等则消息认证失败,消息已经被篡改,则消息传输停止。步骤3:量子网络服务站B与客户端B1之间的消息认证。

若客户端A1与客户端B1进行消息认证,首先客户端A1会向量子网络服务站发出通信请求,通信请求中会携带有接收方用户的相关信息,本实施例中接收方用户对应客户端B1。

a.量子网络服务站B消息认证码的生成:量子网络服务站B根据接收方即客户端B1所匹配的量子密钥卡在本次消息认证中将使用的密钥种子ID,与密钥种子ID指向量子网络服务站B’建立通信,继而实施异地认证,异地认证可选如下两种方式之一,本步骤中具体选用方式一进行异地认证。

方式一,量子网络服务站B向量子网络服务站B’请求,且请求中携带密钥种子ID。

量子网络服务站B’响应该请求,从站内调取相应的密钥种子CC’密文方式发送回量子网络服务站B;

量子网络服务站B生成随机数B,结合解密后得到的密钥种子CC’,通过密钥生成算法AC’运算得到密钥K3’。

量子网络服务站B将消息M和密钥K3’一同作为输入,进行MAC运算生成消息认证码MAC5。并且将消息认证码MAC5附加在消息M后以M||MAC5形式一起发送到客户端B1。同时传输到客户端B1的还有密钥种子ID以及密钥生成算法ID,以及随机数B。

方式二,量子网络服务站B向量子网络服务站B’请求,且请求中携带密钥种子ID以及消息M(以密文方式)。

量子网络服务站B’根据接收到的密钥种子ID从站内调取相应的密钥种子CC’,同时量子网络服务站B’生成随机数B,通过密钥生成算法AC’经运算得到密钥K3’,再将消息M和密钥K3’一同作为输入,进行MAC运算生成消息认证码MAC5,将消息认证码MAC5(或消息认证码MAC5附加在消息M后以M||MAC5形式)发送到量子网络服务站B,量子网络服务站B再以M||MAC5形式发送到客户端B1。同时传输到客户端B1的还有密钥种子ID以及密钥生成算法ID,以及随机数B。

b.客户端B1生成消息认证码:客户端B1接收到以M||MAC5形式传输过来的消息认证信息以及随机数B、密钥种子ID以及密钥生成算法ID转发至匹配的量子密钥卡,量子密钥卡将消息M与消息认证码MAC5分离,量子密钥卡选取卡内的密钥种子CC以及密钥生成算法AC,结合随机数B运算得到密钥K3,将消息M和密钥K3一同作为输入,进行MAC运算生成消息认证码MAC6。

e.消息认证码进行比较:客户端B1的量子密钥卡将生成的消息认证码MAC6与接收到的消息认证码MAC5进行比较。若相等则证明消息没有被篡改。若不相等则消息认证失败,消息已经被篡改,则消息传输停止。消息认证完成。

本实施例中,量子密钥卡内的密钥种子可按照实施例1或2的方式更新。

实施例5:

本实施例消息认证系统与实施例4不同之处在于采用一种密文消息认证方式,以步骤1中客户端A1与量子网络服务站A之间进行消息认证的过程为例。

客户端A1生成消息认证码并发送消息认证信息时:客户端A1的量子密钥卡根据所存储的密钥种子SS和密钥生成算法AS,结合量子密钥卡内部随机数发生器产生的随机数得到密钥K1和密钥Q1。量子密钥卡利用密钥Q1对所要发送的消息M进行加密得到密文EQ1(M),该密文EQ1(M)和密钥K1同时作为输入,采用MAC算法生成消息认证码MAC1,并且附加在密文后以EQ1(M)||MAC1形式经由客户端A1发送到量子服务中心A。同时传输到量子服务中心A的还有密钥种子ID和密钥生成算法ID,以及随机数。

网络侧消息认证码生成和认证时:量子网络服务站A根据客户端A1发送来的密钥种子ID,与密钥种子ID指向量子网络服务站A’建立通信,继而实施异地认证,异地认证时量子服务中心A将密钥种子ID传输至量子网络服务站A’。

量子网络服务站A’根据接收到的密钥种子ID从站内调取相应的密钥种子SS’以密文方式发送回量子网络服务站A,在量子网络服务站A处解密得到密钥种子SS’,根据密钥生成算法ID调用密钥生成算法AS’,结合随机数运算得到密钥K1’和密钥Q1’;

量子服务中心A将密文EQ1(M)与消息认证码MAC1分离开,将密文EQ1(M)和密钥K1’作为输入,采用MAC算法生成消息认证码MAC2,将生成的消息认证码MAC2与接收到的消息认证码MAC1进行比较。认证通过后用密钥Q1’解密密文EQ1(M)得到明文形式的消息M。

对消息M的后续处理同理。

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