CN111475796B - 基于秘密共享和量子通信服务站的抗量子计算身份认证方法及系统 - Google Patents

基于秘密共享和量子通信服务站的抗量子计算身份认证方法及系统 Download PDF

Info

Publication number
CN111475796B
CN111475796B CN202010201578.9A CN202010201578A CN111475796B CN 111475796 B CN111475796 B CN 111475796B CN 202010201578 A CN202010201578 A CN 202010201578A CN 111475796 B CN111475796 B CN 111475796B
Authority
CN
China
Prior art keywords
key
service station
user
communication service
quantum communication
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010201578.9A
Other languages
English (en)
Other versions
CN111475796A (zh
Inventor
富尧
钟一民
余秋炜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ruban Quantum Technology Co Ltd
Nanjing Ruban Quantum Technology Co Ltd
Original Assignee
Ruban Quantum Technology Co Ltd
Nanjing Ruban Quantum Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ruban Quantum Technology Co Ltd, Nanjing Ruban Quantum Technology Co Ltd filed Critical Ruban Quantum Technology Co Ltd
Priority to CN202010201578.9A priority Critical patent/CN111475796B/zh
Publication of CN111475796A publication Critical patent/CN111475796A/zh
Application granted granted Critical
Publication of CN111475796B publication Critical patent/CN111475796B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/34User authentication involving the use of external additional devices, e.g. dongles or smart cards
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/45Structures or tools for the administration of authentication
    • G06F21/46Structures or tools for the administration of authentication by designing passwords or checking the strength of passwords

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本发明公开了一种基于秘密共享和量子通信服务站的抗量子计算身份认证方法及系统,系统包括通信连接组成量子通信网络的若干密钥卡群组,各密钥卡群组设有一个量子通信服务站和多个用户端,同组内的量子通信服务站和各用户端之间以秘密共享方式共享主密钥和临时密钥;用户端之间的身份认证需要双方量子通信服务站进行验证,验证过程中发起方身份认证信息需要用户端和量子通信服务站分别签名,用户端完整的密钥信息不出现在认证记录中,令敌方无法追踪和破解用户密钥信息,保护了密钥卡所对应的用户权益。同时,本发明通过预共享门限签名的参数以及一系列抗量子计算通信机制,实现了抗量子计算的门限签名,简化了门限签名的流程,降低了通信代价。

Description

基于秘密共享和量子通信服务站的抗量子计算身份认证方法及系统
技术领域
本发明涉及秘密共享及门限签名技术,具体涉及一种基于秘密共享和量子通信服务站的抗量子计算身份认证方法及系统。
背景技术
人类进入二十一世纪,信息化浪潮已经席卷了地球的每一个角落。互联网已经将整个世界联系起来,网络深刻地影响着人类的生活方式,它改变了传统的事物处理方法,给我们提供了前所未有的便捷和无限的发展空间。信息安全有三个原则,通常被称为“三大”(TheBigThree),它起源于对信息资源的机密性、完整性和可用性(Confidentiality,integrity,availability)维护的需要。目前,经典网络中主要使用非对称密钥算法对各方数据及身份信息进行信息安全保护。
但是,正如大多数人所了解的,量子计算机在密码破解上有着巨大潜力。1994年AT&T Bell实验室的Shor演示了两个及其重要的问题——整数的质因子分解问题和求解离散对数问题可以用量子计算机有效解决。(“Algorithms for Quantum Computation:Discrete Logarithms and Factoring”,SHOR,P.)
正因此,当今主流的非对称(公钥)加密算法,如RSA加密算法、基于身份标识的密码算法、离散对数密码算法和椭圆曲线密码算法等。大多数都是基于大整数的因式分解或者有限域上的离散对数的计算这两个数学难题。他们的破解难度也就依赖于解决这些问题的效率。传统计算机上,要求解这两个数学难题,花费时间为指数时间(即破解时间随着公钥长度的增长以指数级增长),这在实际应用中是无法接受的。而为量子计算机量身定做的秀尔算法可以在多项式时间内(即破解时间随着公钥长度的增长以k次方的速度增长,其中k为与公钥长度无关的常数)进行整数因式分解或者离散对数计算,从而为RSA、离散对数加密算法的破解提供可能。
目前,抗量子计算的方式主要通过QKD(Quantum Key Distribution,量子密钥分发)设备或者加密卡实现,但是目前的QKD设备价格高,并不适用于大规模铺设,而加密卡方面,主要依靠类加密狗的硬件加密锁实现。这类硬件加密锁存在较大的安全隐患,主要可以通过硬件克隆或复制、通过SoftICE等Debug工具调试跟踪解密和通过编写拦截程序修改软件和加密狗之间的通讯三种方法进行破解。因此,密钥卡内存储的密钥并非是绝对安全的,第三方完全可能在破解一个密钥卡后,对整个密钥卡系统造成更大安全威胁。
量子通信技术是基于量子物理学建立起来的新兴安全通信技术。我国的量子通信技术已经进入了实用化的阶段,其应用前景和战略意义也引起了地方政府和重要行业对其产业发展的广泛关注。除建立量子通信干线以外,一些规模化城域量子通信网络也已经建设成功并运行。基于城域量子通信网络,量子通信技术也有了初步的应用,可实现高保密性的视频语音通信等应用。量子通信干线和量子通信城域网等量子通信网络,组成量子通信网络,其本质是量子密钥分发(QKD)。因此以QKD技术为基础建立起来的量子通信网络可称为QKD网络。
虽然目前量子城域网已经可以允许用户接入并享有量子网络的高安全特性,但是目前用户接入量子网络的部分仍然是整个量子通信网络中的软肋。一方面量子密钥分发后的密钥安全到达用户手中是一个很大的问题,存在被窃取或篡改的风险;另一方面,同一台量子密钥分发设备所能连接的用户数有限,无法同时连接大量用户。因此需要在用户接入量子网络的部分,采用量子通信服务站的方式,解决上述问题:
(1)量子通信服务站作为类似运营商的角色,一方面可以与QKD网络建立合作关系,实现安全连接的保证,从而保证量子密钥可以安全分发到量子通信服务站;另一方面,量子通信服务站为用户颁发密钥卡,将用户相关密钥颁发给用户,可实现量子通信服务站与用户之间的安全通信。
(2)量子通信服务站可以搭建为集群服务器的模式,可以同时接入大量用户。
此外,秘密共享技术可以将秘密以适当的方式拆分,拆分后的每一个份额由不同的参与者管理,单个参与者无法恢复秘密信息,只有若干个参与者一同协作才能恢复秘密消息。秘密共享是一种将秘密分割存储的密码技术,目的是阻止秘密过于集中,以达到分散风险和容忍入侵的目的,是信息安全和数据保密中的重要手段。秘密共享技术可有效降低单个密钥卡被破解而对密钥卡系统产生的风险。
公开号为CN108650028B的专利文献公开了一种基于量子通信网络与真随机数的多次身份认证系统及方法,用户端A向用户端B申请并获得ticket,可利用所述ticket访问用户端B,各用户端分别配置有量子密钥卡,用于生成真随机数作为双向认证标识,实施双向认证时通过用户端A与用户端B之间的会话密钥加密传输所述双向认证标识,其基于量子通信网络与真随机数实施多次认证,提高了通信安全性,但是其密钥丢失或者被窃取后,容易被敌方获取到密钥的内容,其密钥管理的方法存在很大风险,不能实现对用户隐私和信息安全的可靠保护。
现有技术存在的问题:
(1)、密钥卡丢失或者被窃取后,可能被暴力破解等方式获取到内部的密钥。如果非对称密钥系统的私钥被敌方所知,则将丧失该私钥所对应的所有权益。如果非对称密钥系统的公钥被敌方所知,假如敌方拥有量子计算机,则将通过公钥破解出私钥,同样将丧失该私钥所对应的所有权益。
(2)、密钥卡丢失或者被窃取后,失主进行密钥卡挂失,假设敌方拥有破解密钥卡的能力,则密钥卡挂失将导致密钥卡所对应的公私钥对同时失效,不再允许被使用。
(3)、现有多方门限签名的方法,流程较为复杂,通信代价较高。
发明内容
技术目的:针对上述技术问题,本发明提出了一种基于秘密共享和量子通信服务站的抗量子计算身份认证方法及系统,系统包括通信连接组成量子通信网络的若干密钥卡群组,各密钥卡群组设有一个量子通信服务站和多个用户端,同组内的量子通信服务站和各用户端之间以秘密共享方式共享一对主密钥和若干对临时密钥,用户端之间的身份认证需要双方同组内的量子通信服务站进行验证,验证过程中发起方身份认证信息需要用户端和量子通信服务站分别签名,才可以完成完整的身份认证签名,用户端完整的密钥信息不出现在身份认证记录中,令敌方无法追踪和破解用户密钥信息,极大保护了密钥卡所对应的用户权益;同时,本发明中通过预共享门限签名的参数以及一系列抗量子计算通信机制,实现了抗量子计算的门限签名,并大大简化了门限签名的流程,降低了通信代价。
技术方案:为实现上述技术目的,本发明采用了如下技术方案:
一种基于秘密共享和量子通信服务站的抗量子计算身份认证方法,其特征在于:包括通信连接组成量子通信网络的若干密钥卡群组,各密钥卡群组设有一个量子通信服务站和与所述量子通信服务站连接的多个用户端;两个用户端之间身份认证时,分别记为用户端一和用户端二,其同组的量子通信服务站分别记为服务站一和服务站二;
顺序执行以下认证步骤:
S1、所述用户端一作为身份认证发起方,向同组的通信服务站发送发起方请求消息,服务站一对发起方请求消息进行验证,验证通过后,服务站一向用户端一反馈应答消息一;用户端一对应答消息一进行验证,验证通过后向用户端二发送加密的发起方身份认证消息;
S2、所述用户端二作为身份认证接收方,验证发起方身份认证消息,验证通过后生成接收方请求消息,则将发起方请求消息和接收方请求消息发送给服务站二;服务站二对发起方请求消息和接收方请求消息进行验证和处理,并向用户端二反馈应答消息二;
用户端二对应答消息二进行验证,验证通过后,用户端二实现对用户端一的身份认证,按约定算法计算得到会话密钥并存储,并向用户端一发送加密的接收方身份认证消息;
S3、所述用户端一验证接收方身份认证消息,验证通过后,按约定算法计算得到会话密钥并存储,会话密钥用于用户端一和用户端二之间的通信。
作为优选,所述步骤S1中:用户端一生成一个用于计算会话密钥的第一随机数,作为发起方私钥,根据第一随机数计算发起方公钥,发起方身份认证消息中包括发起方公钥;
所述步骤S2中,用户端二生成一个用于计算会话密钥的第二随机数,作为接收方私钥,根据第二随机数计算接收方公钥,且在用户端二收到服务站二返回的应答消息二并完成验证后,由用户端二根据发起方公钥和第二随机数计算得到会话密钥;
所述步骤S3中,用户端一收到服务站一返回的发起方应答消息二并完成验证后,由用户端一根据第一随机数和接收方公钥计算得到会话密钥。
作为优选,所述量子通信网络设有为量子通信服务站和用户端颁发密钥卡的密钥管理服务器,同组内的量子通信服务站和各用户端之间以(2,2)秘密共享方式共享一对主密钥和若干对临时密钥,对应的秘密共享随机数和密钥分量分别存储到量子通信服务站密钥卡和用户端密钥卡内,根据用户端ID查找量子通信服务站密钥卡内的密钥分量和随机数;
所述主密钥包括主公钥和主私钥,临时密钥包括临时公钥和临时私钥;用户端和量子通信服务站每次身份认证时从本地密钥卡中提取预设数量的临时密钥分量,计算获得一个用于本次身份认证的临时密钥分量;
所述用户端与同组的量子通信服务站之间的通信过程中,包括双向验证过程,将本地密钥卡存储的主密钥分量、计算获得的临时密钥分量、及根据秘密共享原理恢复的完整的主密钥、临时密钥用于签名运算。
作为优选,所述发起方请求消息和接收方请求消息中均包括时间戳、用户端ID、密钥分量加密文、会话密钥参数加密文和用户端消息认证码;
所述密钥分量加密文,由用户端将计算到的临时公钥分量与本地存储的主公钥分量相组合,并使用另一个主公钥分量对组合进行加密计算获得,加密过程中加入第一偏移量;
所述会话密钥参数加密文,根据用户端自身计算得到的发起方公钥或接收方公钥、自身计算得到的临时公钥分量计算获得;
所述应答消息一和应答消息二中包括时间戳、密钥加密文、服务站门限签名和服务端消息认证码;
所述密钥加密文,由量子通信服务站根据自身计算得到的临时公钥分量及解密请求消息得到的临时公钥分量,恢复完整的临时公钥后,采用本地存储的主公钥分量对临时公钥进行加密得到,加密过程中加入第二偏移量;
所述服务站门限签名的生成步骤包括:
生成签名内容,签名内容包括时间戳、双方用户端ID和发起方公钥;
根据秘密共享原理恢复得到完整的临时公钥,计算临时公钥x轴向参数并进行取模运算,将获得的值作为R签名;对R签名和签名内容的组合进行哈希运算,将获得的值作为E签名;
根据计算获得的临时私钥分量、本地密钥卡内存的与用户端对应的主私量分量及E签名,计算获得服务站门限签名。
作为优选,所述用户端一和用户端二属于不同的密钥卡群组时,量子通信服务站设有用于通信的公私钥对,各量子通信服务站密钥卡内存储自身私钥和所有量子通信服务站的公钥,或者量子通信服务站之间设有QKD设备,通过QKD设备生成用于通信的QKD密钥;
发起方身份认证消息中包括服务站间密文,服务站间密文由服务站一采用服务站二的公钥或QKD密钥对主公钥和服务站门限签名的组合加密得到;
服务站二对服务站间密文进行验证和处理。
作为优选,所述发起方身份认证消息和接收方消息中均包括时间戳、双方用户端ID和总门限签名,所述总门限签名的生成步骤包括:
验证服务站门限签名,验证通过后进入下一步;
拼接签名内容,签名内容包括时间戳、双方用户端ID、对应的发起方公钥或接收方公钥;
根据秘密共享原理恢复得到完整的临时公钥,计算临时公钥x轴向参数并进行取模运算,将获得的值作为R签名;对R签名和签名内容的组合进行哈希运算,将获得的值作为E签名;
根据计算获得的临时私钥分量、本地密钥卡内存的主私量分量及E签名,计算获得用户端门限签名;
根据服务站门限签名和用户端门限签名计算总门限签名。
作为优选,所述接收方身份认证消息中包括用户端ID、时间戳、会话密钥参数加密文和消息认证码,会话密钥参数加密文根据用户端二自身计算得到的接收方公钥、自身计算得到的临时公钥分量计算获得。
作为优选,所所述接收方身份认证消息中包括用户端ID、时间戳和总门限签名,步骤S3中:
所述用户端一验证接收方身份认证消息,验证通过后,将接收方身份认证消息转发给服务站一;服务站一对接收方身份认证消息进行验证,并由服务站一对接收方身份认证消息进行处理并向用户端一反馈应答消息三,所述应答消息三中包括时间戳、会话密钥参数加密文和服务端消息认证码;
所述用户端一对发起方应答消息二进行验证,验证通过后实现对用户端二的身份认证,按约定算法计算得到会话密钥并存储,会话密钥用于用户端一和用户端二之间的通信。
作为优选,所述发起方身份认证消息和接收方身份认证消息中包括CA签名,所述CA签名通过采用CA服务器私钥对用户端ID和主公钥的组合进行签名获得。
本发明还公开了一种基于秘密共享和多个移动设备的量子保密通信身份认证系统,其特征在于:包括通信连接组成量子通信网络的若干密钥卡群组,各密钥卡群组设有一个量子通信服务站和与所述量子通信服务站连接的多个用户端,量子通信网络设有为量子通信服务站和用户端颁发密钥卡的密钥管理服务器;
各用户端以及量子通信服务站分别包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现所述的基于秘密共享和多个移动设备的量子保密通信身份认证方法。
有益效果:由于采用了上述技术方案,本发明具有如下技术效果:
1.密钥卡丢失或者被窃取后,不可能被暴力破解等方式获取到内部的密钥。如果敌方获取到用户密钥卡,用户密钥卡内存有公私钥的秘密分量,但是无法利用秘密共享恢复得到用户的公私钥对,即没有任何有效的与身份相关的密钥信息。如果敌方获取到服务站密钥卡,服务站密钥卡内存有相应的随机数池和部分公私钥的秘密分量,同样无法利用秘密共享恢复对应的公私钥对,即没有任何有效的与身份相关的密钥信息。由于身份认证系统的私钥不会被敌方所知,且每次颁发用户密钥卡时同时颁发若干同样的用户密钥卡作为备份,则既不会被恶意获取私钥,也不会因丢失而丧失私钥,因此极大保护了私钥所对应的整个密钥卡系统账号的所有权益。
2.密钥卡丢失或者被窃取后,失主进行密钥卡挂失,即使敌方拥有破解密钥卡的能力,则密钥卡挂失也不会导致密钥卡所对应的公私钥对同时失效,该公私钥对可以继续被使用。
3.本发明中的系统包括通信连接组成量子通信网络的若干密钥卡群组,各密钥卡群组设有一个量子通信服务站和多个用户端,同组内的量子通信服务站和各用户端之间以秘密共享方式共享一对主密钥和若干对临时密钥,用户端之间的身份认证需要双方同组内的量子通信服务站进行验证,验证过程中发起方身份认证信息需要用户端和量子通信服务站分别签名,才可以完成完整的身份认证签名,用户端完整的密钥信息不出现在身份认证记录中,令敌方无法追踪和破解用户密钥信息,极大保护了密钥卡所对应的用户权益。
4.本发明中通过预共享门限签名的参数以及一系列抗量子计算通信机制,实现了抗量子计算的门限签名,并大大简化了门限签名的流程,降低了通信代价。
附图说明
图1为本发明的用户密钥卡密钥区结构图;
图2为本发明的量子通信服务站密钥卡密钥区结构图;
图3为实施例1、3无QKD设备的网络结构图;
图4为实施例1、3有QKD设备的网络结构图;
图5为实施例2、4的网络结构图。
具体实施方式
系统说明
本发明中涉及到密钥卡,密钥卡的描述可见申请号为“201610843210.6”的专利。密钥卡不仅可以存储大量的数据,还具有处理信息的能力。本发明中,密钥卡内存在相应的算法以满足发明的需求。当为移动终端时,密钥卡优选为密钥SD卡;当为固定终端时,密钥卡优选为密钥USBkey或主机密钥板卡。在本发明中,用户与量子通信服务站都匹配有对应的密钥卡。
密钥卡从智能卡技术上发展而来,是结合了真随机数发生器(优选为量子随机数发生器)、密码学技术、硬件安全隔离技术的身份认证和加解密产品。密钥卡的内嵌芯片和操作系统可以提供密钥的安全存储和密码算法等功能。由于其具有独立的数据处理能力和良好的安全性,密钥卡成为私钥和密钥池的安全载体。每一个密钥卡都有硬件PIN码保护,PIN码和硬件构成了用户使用密钥卡的两个必要因素。即所谓“双因子认证”,用户只有同时取得保存了相关认证信息的密钥卡和用户PIN码,才可以登录系统。即使用户的PIN码被泄露,只要用户持有的密钥卡不被盗取,合法用户的身份就不会被仿冒;如果用户的密钥卡遗失,拾到者由于不知道用户PIN码,也无法仿冒合法用户的身份。
密钥卡组成
本发明中,用户端密钥卡与量子通信服务站密钥卡使用的密码体系是基于ECC系统,即基于椭圆曲线的密码体系。颁发密钥卡的密钥管理服务器进行密码体统的建立。密钥管理服务器建立一个元素个数为q的有限域Fq,其特征值为p,p和q为大素数。E为定义在Fq上的安全椭圆曲线,并且其离散对数问题是难解的。选取基点P,并且P∈E(Fq),其阶数μ为大素数。所有量子通信服务站的密钥卡系统均基于该椭圆曲线的算法参数。一个量子通信服务站及其下用户群组为一个密钥卡群组。密钥卡群组建立时,基于该椭圆曲线系统产生一对用于签名的公私钥对PKMain/SKMain,下文中亦称为主公私钥对。并产生对应的子密钥,也称作临时私钥,子密钥个数为n,每次选用个数为KN,KN<=n。设子密钥为SKTempi,i∈[1,n]。通过计算主公钥同样的计算方式对临时私钥进行计算得到临时公钥PKTempi,i∈[1,n]。
密钥管理服务器产生N对真随机数,表示为xai和xbi,i∈[1,N],同时N也为该量子通信服务站所有用户的数量。利用xai和xbi分别对SKMain进行(2,2)秘密共享得到(SKaMain,SKbMain)i,i∈[1,N]。利用(SKaMain,SKbMain)i,i∈[1,N]进行公钥计算得到主公钥的秘密分量(SKaMain*P,SKbMain*P)i=(PKaMain,PKbMain)i,i∈[1,N]。利用xai和xbi同样对所有临时私钥都进行(2,2)秘密共享,得到N组(SKaTemp,SKbTemp)i,i∈[1,N],以上述同样的方式得到N组临时公钥分量(PKaTemp,PKbTemp)i,i∈[1,N]。
密钥管理服务器颁发用户密钥卡时,首先会分配一个唯一的ID,并会利用量子通信服务站下CA服务器的私钥SKCA对(ID||PKMain)进行签名得到CA签名SIGCA=SIGNRSA(ID||PKMain,SKCA),并将签名存储到密钥卡内。其中SIGNRSA(M,SK)表示对M用私钥SK进行RSA签名。由于PKMain不公开,因此,敌方无法通过SIGCA求得SKCA。密钥管理服务器会将Hxb/PKaMain/SKaMain/PkbMain存储到密钥卡内。其中Hxb为该密钥卡ID对应的随机数xb的哈希值,可表示为Hxb=H(xb),H()表示单向的哈希函数。SKaMain为主私钥通过对应xa/xb进行秘密共享计算得到的秘密分量,PKaMain/PKbMain为主私钥分量通过公钥计算方式计算得到的主公钥分量。除此之外,用户密钥卡内还将存储有一对对应随机数对计算得到的秘密共享组(PKaTemp,PKbTemp,SKaTemp)i,i∈[1,n],并以公私钥秘密分量的形式分别存储,具体密钥区结构请参考图1。除此之外,密钥卡内还存储有相应的椭圆曲线参数。
密钥管理服务器颁发量子通信服务站密钥卡时,同样会分配给一个服务站身份ID。同时会将用于计算临时公私钥对秘密分量的随机数对xai/xbi,i∈[1,N]存储到服务站密钥卡的随机数池内,并且随机数对对应有用户ID。密钥管理服务器将(ID/PKbMain/SKbMain)i,i∈[1,N]存储到密钥卡的密钥区内,以公私钥秘密分量的形式且对应用户ID分别存储。同时服务站密钥卡内还存储有N组(ID,PKbTemp,SKbTemp)i,i∈[1,n],并以公私钥秘密分量的形式且对应用户ID分别存储。服务站密钥卡内还存储有CA服务器的公钥PKCA。另服务站的密钥卡内还存储自身的RSA私钥和量子通信网络内所有服务站公钥,即服务站公钥池。可以根据量子通信服务站的ID从量子通信服务站公钥池中获取该量子通信服务站的公钥。服务站之间通信的密码系统使用RSA算法。具体密钥区结构请参考图2。除此之外,密钥卡内还存储有相应的椭圆曲线参数。
量子通信服务站密钥卡的私有区,可以是本密钥卡内的具有更高安全性的区域。例如安全芯片内部;也可以是私有区密钥卡,与量子通信服务站密钥卡进行受控且可以保证不存在敌方的有线通信连接如USB连接,或与量子通信服务站密钥卡进行受控且可以保证不存在敌方的无线通信连接如NFC连接。
实施例1
本实施例中实现为用户A与用户B之间的身份认证和密钥协商。用户A属于量子通信服务站QA,用户B属于量子通信服务站QB。
身份认证的具体步骤如下:
1.用户A发起身份认证请求
用户A获取当前时间戳Time,经过哈希计算得到RK=H(Time),根据KN个密钥指针函数{FPm,m∈[1,KN]}、密钥系数计算函数{FUm,m∈[1,KN]}计算得到秘密分量的位置{Pm=FPm(RK),m∈[1,KN]}、密钥系数{μm=FUm(RK),m∈[1,KN]}。根据位置从PKa区、SKa区、PKb区分别取出KN个密钥得到{PKaTempm,m∈[1,KN]},{SKaTempm,m∈[1,KN]},{PKbTempm,m∈[1,KN]},通过与系数计算得到
Figure BDA0002419568500000101
Figure BDA0002419568500000102
用户A产生一个真随机数DHa,并与基点P进行计算得到DHA=DHa*P。通过PKbMain对PKaMain||PKaTempKN进行ECIES加密得到EPKa=ENC(PKaMain||PKaTempKN,PKbMain)={EPKaR,EPKac,EPKat}。对EPKaR进行偏移量计算得到EPKa’={EPKaR-HG(Hxb||Time),EPKac,EPKat}。其中HG()为将整数映射到椭圆曲线点的哈希函数。
用户A打包消息得到MsgA=IDA||IDB||Time||EPKa’||DHA-PKaTempKN||MAC(IDB||Time||PKaMain||PKaTempKN||DHA,Hxb)。其中IDA和IDB分别为用户A和用户B的身份ID。用户A将MsgA发送给量子通信服务站QA。
2.量子通信服务站QA验证请求并返回应答
量子通信服务站QA收到来自用户A的请求MsgA。根据MsgA中的IDA判断是否隶属于本量子通信服务站。如不属于本服务站,则用户A的认证流程失败;否则,量子通信服务站QA判断时间戳Time是否合理。如不合理,则用户A的认证流程失败;否则量子通信服务站QA进行下一步操作。量子通信服务站QA根据IDA找到相应的随机数xb,利用xb进行哈希计算得到Hxb,并对Hxb和Time进行计算得到偏移量HG(Hxb||Time)。利用偏移量恢复EPKa’为EPKa,即得到{EPKaR,EPKac,EPKat}。利用SKbMain对EPKa进行解密得到PKaMain||PkaTempKN。利用PkaTempKN恢复DHA-PKaTempKN得到DHA。量子通信服务站QA利用Hxb对消息认证码MAC(IDB||Time||PKaMain||PKaTempKN||DHA,Hxb)进行验证。如验证失败,则用户A的认证流程失败;否则,量子通信服务站QA进行应答消息的生成。
验证通过后,量子通信服务站QA通过时间戳Time进行哈希计算得到RK=H(Time)。根据步骤1中的方法从公钥池和私钥池中取出并计算得到
Figure BDA0002419568500000111
Figure BDA0002419568500000112
Figure BDA0002419568500000113
根据IDA从密钥区找到xa/xb/PKaMain/PKbMain,将xa/xb/PKaMain/PKbMain进行秘密共享恢复计算得到PKMain;利用xa/xb/PKaTempKN/PKbTempKN进行秘密共享恢复计算得到PKTemp。因为第m个临时公钥恢复为PKTempm=(xa*PKbTempm-xb*PKaTempm)/(xa-xb),所以KN个临时公钥的门限求和
Figure BDA0002419568500000114
Figure BDA0002419568500000115
因此该方式计算得到的PKTemp是合理的。
量子通信服务站QA利用PKaMain对PKTemp进行ECIES加密得到EPKT=ENC(PKTemp,PKaMain)={EPKTR,EPKTc,EPKTt}。对EPKT进行偏移量处理得到EPKT’={EPKTR-HG(Time||H(xb)),EPKTc,EPKTt}。量子通信服务站QA打包得到签名内容Tx=IDA||IDB||Time||DHA,对Tx进行签名算法计算。对PKTemp=(PKTempx,PKTempy)中x轴参数进行计算得到TxsigRb=PKTempx mod q。并对TxsigRb||Tx进行哈希计算得到TxsigEb=H(TxsigRb||Tx),计算得到签名过程参数userSigb=SKbTempKN+SKbMain*TxsigEb mod q。根据IDB找到其隶属的量子通信服务站的身份ID——IDQB。如果量子通信服务站QA与QB之间不存在QKD设备,则量子通信服务站QA利用量子通信服务站QB的RSA公钥PKQB对PKMain||TxsigEb进行加密得到ENCRSA(PKMain||TxsigEb,PKQB),其中ENCRSA(M,PK)表示对M使用PK进行RSA加密。量子通信服务站QA打包消息得到ENCQQA=ENCRSA(PKMain||TxsigEb,PKQB)||DHA-HG(TxsigEb);如果量子通信服务站QA和QB之间存在QKD设备,则使用QKD设备协商双方的对称密钥KQ。使用KQ对PKMain||TxsigEb加密得到ENCQKD(PKMain||TxsigEb,KQ)。打包消息得到ENCQQA=ENCQKD(PKMain||TxsigEb,KQ)||DHA-HG(TxsigEb)。
量子通信服务站QA打包消息得到MsgQA,将MsgQA作为应答消息返回给用户A,MsgQA=Time||EPKT’||ENCQQA||userSigb||MAC(Time||PKTemp||ENCQQA,H(xb))。
3.用户A验证应答,并将请求发送至用户B
用户A接收到量子通信服务站QA的应答MsgQA。根据Time找到初始请求,验证时间戳的是否正确。同时,计算得到偏移量HG(Time||Hxb)并利用偏移量对EPKT’恢复为EPKT,即{EPKTR,EPKTc,EPKTt}。利用SKaMain对EPKT进行解密得到PKTemp。用户A利用哈希值Hxb对消息认证码进行验证,如果验证失败,则本次身份认证流程中断,否则,用户A进行下一步操作。完成消息认证码的验证后,对签名userSigb进行验证。将各信息拼接得到Tx=IDA||IDB||Time||DHA。对PKTemp的x轴参数PKTempx进行计算得到TxsigRa=PKTempx mod q,并进一步计算得到TxsigEa=H(TxsigRa||Tx)。验证等式userSigb*P=PKbTempKN+TxsigEa*PKbMain是否成立,因为userSigb*P=(SKbTempKN+TxsigEb*SKbMain)*P=SKbTempKN*P+TxsigEb*SKbMain*P=PKbTemp KN+TxsigEb*PKbMain。如果TxsigEb与TxsigEa相等,则等式必定成立。如果等式成立,则计算得到userSiga=SKaTempKN+TxsigEa*SKaMain mod q,并得到TxsigA=λa*userSiga+λb*userSigb=λa*(SKaTempKN+TxsigEa*SKaMain)+λb*(SKbTempKN+TxsigEb*SKbMain)=λa*SKaTempKN+λb*SKbTempKN+λa*TxsigEa*SKaMain+λb*TxsigEb*SKbMain=SKTemp+TxsigEa*SKMain,其中
Figure BDA0002419568500000121
用户A打包消息得到MsgAB=IDA||Time||ENCQQA||TxsigA||SIGCAA,其中SIGCAA为用户A密钥卡中的CA签名。用户A将认证请求MsgAB发送至用户B。
4.用户B验证请求,并将请求转发至量子通信服务站QB
用户B接收到用户A的请求MsgAB。根据Time找到初始请求,验证时间戳的是否正确。后续转发请求的消息打包内容可参考步骤1。将Time经过哈希计算得到RK=H(Time),根据KN个密钥指针函数{FPBm,m∈[1,KN]}、密钥系数计算函数{FUBm,m∈[1,KN]}计算得到秘密分量的位置{PBm=FPBm(RK),m∈[1,KN]}、密钥系数{μBm=FUBm(RK),m∈[1,KN]}。根据位置从PKa区、SKa区、PKb区分别取出KN个密钥得到{PKaTempBm,m∈[1,KN]},{SKaTempBm,m∈[1,KN]},{PKbTempBm,m∈[1,KN]},通过与系数计算得到
Figure BDA0002419568500000122
Figure BDA0002419568500000123
用户B产生一个真随机数DHb,并与基点P进行计算得到DHB=DHb*P。通过PKbMainB对PKaMainB||PKaTempBKN进行ECIES进行加密得到EPKaB=ENC(PKaMainB||PKaTempBKN,PKbMainB)={EPKaBR,EPKaBc,EPKaBt}。对EPKaBR进行偏移量计算得到EPKaB’={EPKaBR-HG(HxbB||Time),EPKaBc,EPKaBt}。
用户B打包消息得到MsgB,将MsgAB||MsgB发送给量子通信服务站QB,MsgB=IDB||EPKaB’||DHB-PKaTempBKN||MAC(Time||PKaMainB||PKaTempBKN||DHB,HxbB)。
5.量子通信服务站QB验证请求并返回应答
量子通信服务站QB收到来自用户B转发的请求MsgAB||MsgB。首先判断MsgAB中时间戳Time的合理性,如不合理,则认证流程失败;否则量子通信服务站QB进行下一步操作。验证IDB是否隶属于本量子通信服务站,如果未查询到该身份ID,则身份认证流程失败;否则,量子通信服务站QB进行下一步操作。量子通信服务站QB对MsgAB中的ENCQQA的加密信息进行解密。如果量子通信服务站QA与QB之间不存在QKD设备,则利用自身的RSA私钥SKQB对ENCQQA进行解密,得到PKMain||TxsigEb;如果量子通信服务站QA和QB之间存在QKD设备,则使用对称密钥KQ对ENCQQA的加密信息进行解密得到PKMain||TxsigEb。首先通过密钥卡内的CA服务器公钥对用户A的CA签名SIGCAA进行验证,如果验证失败,则身份认证流程失败;否则进行下一步验证。恢复请求方认证签名{TxsigA,TxsigEb}。利用TxsigEb进行偏移量恢复DHA-HG(TxsigEb)得到DHA。恢复认证签名内容为Tx=IDA||IDB||Time||DHA。量子通信服务站QB验证认证签名{TxsigA,TxsigEb}。计算得到PKTemp’=TxsigA*P-TxsigEb*PKMain,临时公钥PKTemp’可表示为PKTemp’=(PKTempx’,PKTempy’)。计算得到TxsigRb’=PKTempx’mod q,TxsigEb’=H(TxsigRb’||Tx’)。通过对比TxsigEb’和TxsigEb,如果相等,则签名验证成功,否则,签名验证失败,身份认证流程失败。
签名验证通过后,量子通信服务站QB根据IDB找到相应的随机数xbB,利用xbB进行哈希计算得到HxbB,并对HxbB和Time进行计算得到偏移量HG(HxbB||Time)。利用偏移量恢复EPKaB’为EPKaB,即得到{EPKaBR,EPKaBc,EPKaBt}。利用SKbMainB对EPKaB进行解密得到PKaMainB||PkaTempBKN。利用PkaTempBKN恢复DHB-PKaTempBKN得到DHB。量子通信服务站QB利用HxbB对消息认证码MAC(Time||PKaMainB||PKaTempBKN||DHB,HxbB)进行验证。如验证失败,则身份认证流程失败;否则,量子通信服务站QB进行应答消息的生成。
验证通过后,量子通信服务站QB通过时间戳Time进行哈希计算得到RK=H(Time)。根据步骤1中的方法从公钥池和私钥池中取出并计算得到
Figure BDA0002419568500000141
Figure BDA0002419568500000142
Figure BDA0002419568500000143
根据IDB从密钥区找到xaB/xbB/PKaMainB/PKbMainB,将xaB/xbB/PKaMainB/PKbMainB进行秘密共享恢复计算得到PKMainB;利用xaB/xbB/PKaTempBKN/PKbTempBKN进行秘密共享恢复计算得到PKTempB。因为第m个临时公钥恢复为PKTempm=(xa*PKbTempm-xb*PKaTempm)/(xa-xb),所以KN个临时公钥的门限求和
Figure BDA0002419568500000144
Figure BDA0002419568500000145
Figure BDA0002419568500000146
因此该方式计算得到的PKTempB是合理的。
量子通信服务站QB利用PKaMainB对PKTempB进行ECIES加密得到EPKTB=ENC(PKTempB,PKaMainB)={EPKTBR,EPKTBc,EPKTBt}。对EPKTB进行偏移量处理得到EPKTB’={EPKTBR-HG(Time||H(xbB)),EPKTBc,EPKTBt}。量子通信服务站QB打包得到签名内容TxB=IDB||IDA||Time||DHB,对TxB进行签名算法计算。对PKTempB=(PKTempBx,PKTempBy)中x轴参数进行计算得到TxsigRbB=PKTempBx mod q。并对TxsigRbB||TxB进行哈希计算得到TxsigEbB=H(TxsigRbB||TxB),计算得到签名过程参数userSigbB=SKbTempBKN+SKbMainB*TxsigEbB mod q。根据IDA找到其隶属的量子通信服务站的身份ID——IDQA。如果量子通信服务站QA与QB之间不存在QKD设备,则量子通信服务站QB利用量子通信服务站QA的RSA公钥PKQA对PKMainB||TxsigEbB进行加密得到ENCRSA(PKMainB||TxsigEbB,PKQA),其中ENCRSA(M,PK)表示对M使用PK进行RSA加密。量子通信服务站QB打包消息得到ENCQQB=ENCRSA(PKMainB||TxsigEbB,PKQA)||DHB-HG(TxsigEbB);如果量子通信服务站QA和QB之间存在QKD设备,则使用QKD设备协商双方的对称密钥KQ。使用KQ对PKMainB||TxsigEbB加密得到ENCQKD(PKMainB||TxsigEbB,KQ)。打包消息得到ENCQQB=ENCQKD(PKMainB||TxsigEbB,KQ)||DHB-HG(TxsigEbB)。
量子通信服务站QB打包消息得到MsgQB,将MsgQB作为应答消息返回给用户B。MsgQB=Time||EPKTB’|DHA-PKTempB||ENCQQB||userSigbB||MAC(Time||PKTempB||DH A||ENCQQB,H(xbB))。
6.用户B验证应答,并将请求发送至用户A
用户B接收到量子通信服务站QB的应答MsgQB。根据Time找到最近的请求,验证时间戳的是否正确。同时,计算得到偏移量HG(Time||HxbB)并利用偏移量对EPKTB’恢复为EPKTB,即{EPKTBR,EPKTBc,EPKTBt}。利用SKaMainB对EPKTB进行解密得到PKTempB。利用PKTempB恢复得到DHA。用户B利用哈希值HxbB对消息认证码进行验证,如果验证失败,则本次身份认证流程中断,否则,用户B进行下一步操作。完成消息认证码的验证后,对签名userSigbB进行验证。将各信息拼接得到TxB=IDB||IDA||Time||DHB。对PKTempB的x轴参数PKTempBx进行计算得到TxsigRaB=PKTempBx mod q,并进一步计算得到TxsigEaB=H(TxsigRaB||TxB)。验证等式userSigbB*P=PKbTempBKN+TxsigEaB*PKbMainB是否成立,因为userSigbB*P=(SKbTempBKN+TxsigEbB*SKbMainB)*P=SKbTempBKN*P+TxsigEbB*SKbMainB*P=PKbTempB KN+TxsigEbB*PKbMainB。如果TxsigEbB与TxsigEaB相等,则等式必定成立。此处用户B对用户A的身份实现认证。并计算得到会话密钥KAB=DHb*DHA。
用户B计算得到userSigaB=SKaTempBKN+TxsigEaB*SKaMainB mod q,并得到TxsigB=λaB*userSigaB+λbB*userSigbB=λaB*(SKaTempBKN+TxsigEaB*SKaMainB)+λbB*(SKbTempBKN+TxsigEbB*SKbMainB)=λaB*SKaTempBKN+λbB*SKbTempBKN+λaB*TxsigEaB*SKaMainB+λbB*TxsigEbB*SKbMainB=SKtempB+TxsigEaB*SKMainB。
用户B打包消息得到MsgBA=IDB||Time||ENCQQB||TxsigB||SIGCAB,其中SIGCAB为用户B密钥卡中的CA签名。用户B将认证请求MsgBA发送至用户A。
7.用户A验证消息,并将请求转发至量子通信服务站QA
用户A接收到用户B的请求MsgBA。根据Time找到初始请求,验证时间戳的是否正确。验证通过后,将消息MsgBA转发至量子通信服务站QA。
8.量子通信服务站QA验证请求并返回应答
量子通信服务站QA收到来自用户A转发的消息MsgBA。首先判断MsgBA中时间戳Time的合理性,如不合理,则认证流程失败;否则量子通信服务站QA进行下一步操作。
量子通信服务站QA对MsgBA中的ENCQQB的加密信息进行解密。如果量子通信服务站QA与QB之间不存在QKD设备,则利用自身的RSA私钥SKQA对ENCQQB进行解密,得到PKMainB||TxsigEbB;如果量子通信服务站QA和QB之间存在QKD设备,则使用对称密钥KQ对ENCQQB的加密信息进行解密得到PKMainB||TxsigEbB。首先通过密钥卡内的CA服务器公钥对用户B的CA签名SIGCAB进行验证,如果验证失败,则身份认证流程失败;否则进行下一步验证。恢复应答方认证签名{TxsigB,TxsigEbB}。利用TxsigEbB进行偏移量恢复DHB-HG(TxsigEbB)得到DHB。恢复认证签名内容为TxB=IDB||IDA||Time||DHB。量子通信服务站QA验证认证签名{TxsigB,TxsigEbB}。计算得到PKTempB’=TxsigB*P-TxsigEbB*PKMainB,临时公钥PKTempB’可表示为PKTempB’=(PKTempBx’,PKTempBy’)。计算得到TxsigRbB’=PKTempBx’mod q,TxsigEbB’=H(TxsigRbB’||TxB’)。通过对比TxsigEbB’和TxsigEbB,如果相等,则签名验证成功,否则,签名验证失败,身份认证流程失败。
签名验证通过后,量子通信服务站QA根据IDA找到相应的随机数xb,利用xb进行哈希计算得到Hxb,利用Hxb对Time||DHB进行消息认证算法计算得到MAC(Time||DHB,Hxb)。量子通信服务站QA打包消息得到MsgQA2,并将MsgQA2发送至用户A。MsgQA2=Time||DHB-PKTemp||MAC(Time||DHB,Hxb)。
9.用户A完成认证并得到协商密钥
用户A利用PKTemp恢复得到DHB,并利用哈希值Hxb对消息认证码进行验证,如果验证通过,则用户A实现对用户B的身份认证,并计算得到会话密钥KAB=DHa*DHB。
实施例2
本实施例中实现为用户A与用户B之间的身份认证和密钥协商。用户A与用户B同属于量子通信服务站Q。
身份认证的具体步骤如下:
1.用户A发起身份认证请求
用户A获取当前时间戳Time,经过哈希计算得到RK=H(Time),根据KN个密钥指针函数{FPm,m∈[1,KN]}、密钥系数计算函数{FUm,m∈[1,KN]}计算得到秘密分量的位置{Pm=FPm(RK),m∈[1,KN]}、密钥系数{μm=FUm(RK),m∈[1,KN]}。根据位置从PKa区、SKa区、PKb区分别取出KN个密钥得到{PKaTempm,m∈[1,KN]},{SKaTempm,m∈[1,KN]},{PKbTempm,m∈[1,KN]},通过与系数计算得到
Figure BDA0002419568500000171
Figure BDA0002419568500000172
用户A产生一个真随机数DHa,并与基点P进行计算得到DHA=DHa*P。通过PKbMain对PKaMain||PKaTempKN进行ECIES进行加密得到EPKa=ENC(PKaMain||PKaTempKN,PKbMain)={EPKaR,EPKac,EPKat}。对EPKaR进行偏移量计算得到EPKa’={EPKaR-HG(Hxb||Time),EPKac,EPKat}。其中HG()为将整数映射到椭圆曲线点的哈希函数。
用户A打包消息得到MsgA,将MsgA发送给量子通信服务站Q。MsgA=IDA||IDB||Time||EPKa’||DHA-PKaTempKN||MAC(IDB||Time||PKaMain||PKaTempKN||DHA,Hxb)。其中IDA和IDB分别为用户A和用户B的身份ID。
2.量子通信服务站Q验证请求并返回应答
量子通信服务站Q收到来自用户A的请求MsgA。根据MsgA中的IDA判断是否隶属于本量子通信服务站。如不属于本服务站,则用户A的认证流程失败;否则,量子通信服务站Q判断时间戳Time是否合理。如不合理,则用户A的认证流程失败;否则量子通信服务站Q进行下一步操作。量子通信服务站Q根据IDA找到相应的随机数xb,利用xb进行哈希计算得到Hxb,并对Hxb和Time进行计算得到偏移量HG(Hxb||Time)。利用偏移量恢复EPKa’为EPKa,即得到{EPKaR,EPKac,EPKat}。利用SKbMain对EPKa进行解密得到PKaMain||PkaTempKN。利用PkaTempKN恢复DHA-PKaTempKN得到DHA。量子通信服务站Q利用Hxb对消息认证码MAC(IDB||Time||PKaMain||PKaTempKN||DHA,Hxb)进行验证。如验证失败,则用户A的认证流程失败;否则,量子通信服务站Q进行应答消息的生成。
验证通过后,量子通信服务站Q通过时间戳Time进行哈希计算得到RK=H(Time)。根据步骤1中的方法从公钥池和私钥池中取出并计算得到
Figure BDA0002419568500000173
Figure BDA0002419568500000174
Figure BDA0002419568500000175
根据IDA从密钥区找到xa/xb/PKaMain/PKbMain,将xa/xb/PKaMain/PKbMain进行秘密共享恢复计算得到PKMain;利用xa/xb/PKaTempKN/PKbTempKN进行秘密共享恢复计算得到PKTemp。因为第m个临时公钥恢复为PKTempm=(xa*PKbTempm-xb*PKaTempm)/(xa-xb),所以KN个临时公钥的门限求和
Figure BDA0002419568500000176
Figure BDA0002419568500000181
因此该方式计算得到的PKTemp是合理的。
量子通信服务站Q利用PKaMain对PKTemp进行ECIES加密得到EPKT=ENC(PKTemp,PKaMain)={EPKTR,EPKTc,EPKTt}。对EPKT进行偏移量处理得到EPKT’={EPKTR-HG(Time||H(xb)),EPKTc,EPKTt}。量子通信服务站Q打包得到签名内容Tx=IDA||IDB||Time||DHA,对Tx进行签名算法计算。对PKTemp=(PKTempx,PKTempy)中x轴参数进行计算得到TxsigRb=PKTempx mod q。并对TxsigRb||Tx进行哈希计算得到TxsigEb=H(TxsigRb||Tx),计算得到签名过程参数userSigb=SKbTempKN+SKbMain*TxsigEbmod q。判断IDB是否为本量子通信服务站的用户。
确认IDB即用户B为本量子通信服务站的用户后,量子通信服务站Q打包消息得到MsgQA=Time||EPKT’||userSigb||MAC(Time||PKTemp||DHA,H(xb))。将MsgQA作为应答消息返回给用户A。
3.用户A验证应答,并将请求发送至用户B
用户A接收到量子通信服务站Q的应答MsgQA。根据Time找到初始请求,验证时间戳的是否正确。同时,计算得到偏移量HG(Time||Hxb)并利用偏移量对EPKT’恢复为EPKT,即{EPKTR,EPKTc,EPKTt}。利用SKaMain对EPKT进行解密得到PKTemp。用户A利用哈希值Hxb对消息认证码进行验证,如果验证失败,则本次身份认证流程中断,否则,用户A进行下一步操作。完成消息认证码的验证后,对签名userSigb进行验证。将各信息拼接得到Tx=IDA||IDB||Time||DHA。对PKTemp的x轴参数PKTempx进行计算得到TxsigRa=PKTempx mod q,并进一步计算得到TxsigEa=H(TxsigRa||Tx)。验证等式userSigb*P=PKbTempKN+TxsigEa*PKbMain是否成立,因为userSigb*P=(SKbTempKN+TxsigEb*SKbMain)*P=SKbTempKN*P+TxsigEb*SKbMain*P=PKbTempKN+TxsigEb*PKbMain。如果TxsigEb与TxsigEa相等,则等式必定成立。如果等式成立,则计算得到userSiga=SKaTempKN+TxsigEa*SKaMain mod q,并得到TxsigA=λa*userSiga+λb*userSigb=λa*(SKaTempKN+TxsigEa*SKaMain)+λb*(SKbTempKN+TxsigEb*SKbMain)=λa*SKaTempKN+λb*SKbTempKN+λa*TxsigEa*SKaMain+λb*TxsigEb*SKbMain=SKTemp+TxsigEa*SKMain,其中
Figure BDA0002419568500000182
用户A打包消息得到MsgAB=IDA||Time||TxsigA||SIGCAA,其中SIGCAA为用户A密钥卡中的CA签名。用户A将认证请求MsgAB发送至用户B。
4.用户B验证请求,并将请求转发至量子通信服务站Q
用户B接收到用户A的请求MsgAB。根据Time找到初始请求,验证时间戳的是否正确。后续转发请求的消息打包内容可参考步骤1。将Time经过哈希计算得到RK=H(Time),根据KN个密钥指针函数{FPBm,m∈[1,KN]}、密钥系数计算函数{FUBm,m∈[1,KN]}计算得到秘密分量的位置{PBm=FPBm(RK),m∈[1,KN]}、密钥系数{μBm=FUBm(RK),m∈[1,KN]}。根据位置从PKa区、SKa区、PKb区分别取出KN个密钥得到{PKaTempBm,m∈[1,KN]},{SKaTempBm,m∈[1,KN]},{PKbTempBm,m∈[1,KN]},通过与系数计算得到
Figure BDA0002419568500000191
Figure BDA0002419568500000192
用户B产生一个真随机数DHb,并与基点P进行计算得到DHB=DHb*P。通过PKbMainB对PKaMainB||PKaTempBKN进行ECIES进行加密得到EPKaB=ENC(PKaMainB||PKaTempBKN,PKbMainB)={EPKaBR,EPKaBc,EPKaBt}。对EPKaBR进行偏移量计算得到EPKaB’={EPKaBR-HG(HxbB||Time),EPKaBc,EPKaBt}。
用户B打包消息得到MsgB,户B将MsgAB||MsgB发送给量子通信服务站Q。MsgB=IDB||EPKaB’||DHB-PKaTempBKN||MAC(Time||PKaMainB||PKaTempBKN||DHB,HxbB)。
5.量子通信服务站Q验证请求并返回应答
量子通信服务站Q收到来自用户B转发的请求MsgAB||MsgB。首先根据MsgAB中时间戳Time比照之前请求中的时间戳,如不相等,则认证流程失败;否则量子通信服务站Q进行下一步操作。验证IDB是否隶属于本量子通信服务站,如果未查询到该身份ID,则身份认证流程失败;否则,量子通信服务站Q进行下一步操作。首先通过密钥卡内的CA服务器公钥对用户A的CA签名SIGCAA进行验证,如果验证失败,则身份认证流程失败;否则进行下一步验证。量子通信服务站Q根据MsgAB中的TxsigA恢复请求方认证签名得到{TxsigA,TxsigEb}。恢复认证签名内容为Tx=IDA||IDB||Time||DHA。量子通信服务站Q验证认证签名{TxsigA,TxsigEb}。计算得到PKTemp’=TxsigA*P-TxsigEb*PKMain,临时公钥PKTemp’可表示为PKTemp’=(PKTempx’,PKTempy’)。计算得到TxsigRb’=PKTempx’mod q,TxsigEb’=H(TxsigRb’||Tx’)。通过对比TxsigEb’和TxsigEb,如果相等,则签名验证成功,否则,签名验证失败,身份认证流程失败。
签名验证通过后,量子通信服务站Q根据IDB找到相应的随机数xbB,利用xbB进行哈希计算得到HxbB,并对HxbB和Time进行计算得到偏移量HG(HxbB||Time)。利用偏移量恢复EPKaB’为EPKaB,即得到{EPKaBR,EPKaBc,EPKaBt}。利用SKbMainB对EPKaB进行解密得到PKaMainB||PkaTempBKN。利用PkaTempBKN恢复DHB-PKaTempBKN得到DHB。量子通信服务站Q利用HxbB对消息认证码MAC(Time||PKaMainB||PKaTempBKN||DHB,HxbB)进行验证。如验证失败,则身份认证流程失败;否则,量子通信服务站Q进行应答消息的生成。
验证通过后,量子通信服务站Q通过时间戳Time进行哈希计算得到RK=H(Time)。根据步骤1中的方法从公钥池和私钥池中取出并计算得到
Figure BDA0002419568500000201
Figure BDA0002419568500000202
Figure BDA0002419568500000203
根据IDB从密钥区找到xaB/xbB/PKaMainB/PKbMainB,将xaB/xbB/PKaMainB/PKbMainB进行秘密共享恢复计算得到PKMainB;利用xaB/xbB/PKaTempBKN/PKbTempBKN进行秘密共享恢复计算得到PKTempB。因为第m个临时公钥恢复为PKTempm=(xa*PKbTempm-xb*PKaTempm)/(xa-xb),所以KN个临时公钥的门限求和
Figure BDA0002419568500000204
Figure BDA0002419568500000205
Figure BDA0002419568500000206
因此该方式计算得到的PKTempB是合理的。
量子通信服务站Q利用PKaMainB对PKTempB进行ECIES加密得到EPKTB=ENC(PKTempB,PKaMainB)={EPKTBR,EPKTBc,EPKTBt}。对EPKTB进行偏移量处理得到EPKTB’={EPKTBR-HG(Time||H(xbB)),EPKTBc,EPKTBt}。量子通信服务站Q打包得到签名内容TxB=IDB||IDA||Time||DHB,对TxB进行签名算法计算。对PKTempB=(PKTempBx,PKTempBy)中x轴参数进行计算得到TxsigRbB=PKTempBx mod q。并对TxsigRbB||TxB进行哈希计算得到TxsigEbB=H(TxsigRbB||TxB),计算得到签名过程参数userSigbB=SKbTempBKN+SKbMainB*TxsigEbBmod q。
量子通信服务站Q打包消息得到MsgQB,MsgQB作为应答消息返回给用户B。MsgQB=Time||EPKTB’||DHA-PKTempB||userSigbB||MAC(Time||PKTempB||DHA,H(xbB))。
6.用户B验证应答,并将请求发送至用户A
用户B接收到量子通信服务站Q的应答MsgQB。根据Time找到最近的请求,验证时间戳的是否正确。同时,计算得到偏移量HG(Time||HxbB)并利用偏移量对EPKTB’恢复为EPKTB,即{EPKTBR,EPKTBc,EPKTBt}。利用SKaMainB对EPKTB进行解密得到PKTempB。利用PKTempB恢复得到DHA。用户B利用哈希值HxbB对消息认证码进行验证,如果验证失败,则本次身份认证流程中断;否则,用户B进行下一步操作。完成消息认证码的验证后,对签名userSigbB进行验证。将各信息拼接得到TxB=IDB||IDA||Time||DHB。对PKTempB的x轴参数PKTempBx进行计算得到TxsigRaB=PKTempBx mod q,并进一步计算得到TxsigEaB=H(TxsigRaB||TxB)。验证等式userSigbB*P=PKbTempBKN+TxsigEaB*PKbMainB是否成立,因为userSigbB*P=(SKbTempBKN+TxsigEbB*SKbMainB)*P=SKbTempBKN*P+TxsigEbB*SKbMainB*P=PKbTempBKN+TxsigEbB*PKbMainB。如果TxsigEbB与TxsigEaB相等,则等式必定成立。此处用户B对用户A的身份实现认证。并计算得到会话密钥KAB=DHb*DHA。
用户B计算得到userSigaB=SKaTempBKN+TxsigEaB*SKaMainB mod q,并得到TxsigB=λaB*userSigaB+λbB*userSigbB=λaB*(SKaTempBKN+TxsigEaB*SKaMainB)+λbB*(SKbTempBKN+TxsigEbB*SKbMainB)=λaB*SKaTempBKN+λbB*SKbTempBKN+λaB*TxsigEaB*SKaMainB+λbB*TxsigEbB*SKbMainB=SKtempB+TxsigEaB*SKMainB。
用户B打包消息得到MsgBA=IDB||Time||TxsigB||SIGCAB,其中SIGCAB为用户B密钥卡中的CA签名。用户B将认证请求MsgBA发送至用户A。
7.用户A验证消息,并将请求转发至量子通信服务站Q
用户A接收到用户B的请求MsgBA。根据Time找到初始请求,验证时间戳的是否正确。验证通过后,将消息MsgBA转发至量子通信服务站Q。
8.量子通信服务站Q验证请求并返回应答
量子通信服务站Q收到来自用户A转发的消息MsgBA。首先判断MsgBA中时间戳Time的合理性,如不合理,则认证流程失败;否则量子通信服务站Q进行下一步操作。
首先通过密钥卡内的CA服务器公钥对用户B的CA签名SIGCAB进行验证,如果验证失败,则身份认证流程失败;否则进行下一步验证。量子通信服务站Q恢复应答方认证签名{TxsigB,TxsigEbB}。利用TxsigEbB进行偏移量恢复DHB-HG(TxsigEbB)得到DHB。恢复认证签名内容为TxB=IDB||IDA||Time||DHB。量子通信服务站Q验证认证签名{TxsigB,TxsigEbB}。计算得到PKTempB’=TxsigB*P-TxsigEbB*PKMainB,临时公钥PKTempB’可表示为PKTempB’=(PKTempBx’,PKTempBy’)。计算得到TxsigRbB’=PKTempBx’mod q,TxsigEbB’=H(TxsigRbB’||TxB’)。通过对比TxsigEbB’和TxsigEbB,如果相等,则签名验证成功,否则,签名验证失败,身份认证流程失败。
签名验证通过后,量子通信服务站Q根据IDA找到相应的随机数xb,利用xb进行哈希计算得到Hxb,利用Hxb对Time||DHB进行消息认证算法计算得到MAC(Time||DHB,Hxb)。量子通信服务站Q打包消息得到MsgQA2=Time||DHB-PKTemp||MAC(Time||DHB,Hxb),并将MsgQA2发送至用户A。
9.用户A完成认证并得到协商密钥
用户A利用PKTemp恢复得到DHB,并利用哈希值Hxb对消息认证码进行验证,如果验证通过,则用户A实现对用户B的身份认证,并计算得到会话密钥KAB=DHa*DHB。
实施例3
本实施例中实现为用户A与用户B之间的身份认证和密钥协商。用户A属于量子通信服务站QA,用户B属于量子通信服务站QB。
身份认证的具体步骤如下:
步骤1同实施例1,步骤2如下所述:
2.量子通信服务站QA验证请求并返回应答
量子通信服务站QA收到来自用户A的请求MsgA。根据MsgA中的IDA判断是否隶属于本量子通信服务站。如不属于本服务站,则用户A的认证流程失败;否则,量子通信服务站QA判断时间戳Time是否合理。如不合理,则用户A的认证流程失败;否则量子通信服务站QA进行下一步操作。量子通信服务站QA根据IDA找到相应的随机数xb,利用xb进行哈希计算得到Hxb,并对Hxb和Time进行计算得到偏移量HG(Hxb||Time)。利用偏移量恢复EPKa’为EPKa,即得到{EPKaR,EPKac,EPKat}。利用SKbMain对EPKa进行解密得到PKaMain||PkaTempKN。利用PkaTempKN恢复DHA-PKaTempKN得到DHA。量子通信服务站QA利用Hxb对消息认证码MAC(IDB||Time||PKaMain||PKaTempKN||DHA,Hxb)进行验证。如验证失败,则用户A的认证流程失败;否则,量子通信服务站QA进行应答消息的生成。
验证通过后,量子通信服务站QA通过时间戳Time进行哈希计算得到RK=H(Time)。根据步骤1中的方法从公钥池和私钥池中取出并计算得到
Figure BDA0002419568500000231
Figure BDA0002419568500000232
Figure BDA0002419568500000233
根据IDA从密钥区找到xa/xb/PKaMain/PKbMain,将xa/xb/PKaMain/PKbMain进行秘密共享恢复计算得到PKMain;利用xa/xb/PKaTempKN/PKbTempKN进行秘密共享恢复计算得到PKTemp。因为第m个临时公钥恢复为PKTempm=(xa*PKbTempm-xb*PKaTempm)/(xa-xb),所以KN个临时公钥的门限求和
Figure BDA0002419568500000234
Figure BDA0002419568500000235
因此该方式计算得到的PKTemp是合理的。
量子通信服务站QA利用PKaMain对PKTemp进行ECIES加密得到EPKT=ENC(PKTemp,PKaMain)={EPKTR,EPKTc,EPKTt}。对EPKT进行偏移量处理得到EPKT’={EPKTR-HG(Time||H(xb)),EPKTc,EPKTt}。量子通信服务站QA打包得到签名内容Tx=IDA||IDB||Time||DHA,对Tx进行签名算法计算。对PKTemp=(PKTempx,PKTempy)中x轴参数进行计算得到TxsigRb=PKTempx mod q。并对TxsigRb||Tx进行哈希计算得到TxsigEb=H(TxsigRb||Tx),计算得到签名过程参数userSigb=SKbTemp+SKbMain*TxsigEbmod q。根据IDB找到其隶属的量子通信服务站的身份ID——IDQB。如果量子通信服务站QA与QB之间不存在QKD设备,则量子通信服务站QA利用量子通信服务站QB的RSA公钥PKQB对PKMain||TxsigEb进行加密得到ENCRSA(PKMain||TxsigEb,PKQB),其中ENCRSA(M,PK)表示对M使用PK进行RSA加密。量子通信服务站QA打包消息得到ENCQQA=ENCRSA(PKMain||TxsigEb,PKQB)||DHA-HG(Time||TxsigEb);如果量子通信服务站QA和QB之间存在QKD设备,则使用QKD设备协商双方的对称密钥KQ。使用KQ对PKMain||TxsigEb加密得到ENCQKD(PKMain||TxsigEb,KQ)。打包消息得到ENCQQA=ENCQKD(PKMain||TxsigEb,KQ)||DHA-HG(Time||TxsigEb)。
量子通信服务站QA打包消息得到MsgQA,MsgQA作为应答消息返回给用户A。MsgQA=Time||EPKT’||ENCQQA||userSigb||MAC(Time||PKTemp||ENCQQA,H(xb))。
步骤3、步骤4同实施例1,步骤5至7如下所述:
5.量子通信服务站QB验证请求并返回应答
量子通信服务站QB收到来自用户B转发的请求MsgAB||MsgB。首先判断MsgAB中时间戳Time的合理性,如不合理,则认证流程失败;否则量子通信服务站QB进行下一步操作。验证IDB是否隶属于本量子通信服务站,如果未查询到该身份ID,则身份认证流程失败;否则,量子通信服务站QB进行下一步。量子通信服务站QB对MsgAB中的ENCQQA的加密信息进行解密。如果量子通信服务站QA与QB之间不存在QKD设备,则利用自身的RSA私钥SKQB对ENCQQA进行解密,得到PKMain||TxsigEb;如果量子通信服务站QA和QB之间存在QKD设备,则使用对称密钥KQ对ENCQQA的加密信息进行解密得到PKMain||TxsigEb。首先通过密钥卡内的CA服务器公钥对用户A的CA签名SIGCAA进行验证,如果验证失败,则身份认证流程失败;否则进行下一步验证。恢复请求方认证签名{TxsigA,TxsigEb}。利用TxsigEb进行偏移量恢复DHA-HG(Time||TxsigEb)得到DHA。恢复认证签名内容为Tx=IDA||IDB||Time||DHA。量子通信服务站QB验证认证签名{TxsigA,TxsigEb}。计算得到PKTemp’=TxsigA*P-TxsigEb*PKMain,临时公钥PKTemp’可表示为PKTemp’=(PKTempx’,PKTempy’)。计算得到TxsigRb’=PKTempx’mod q,TxsigEb’=H(TxsigRb’||Tx’)。通过对比TxsigEb’和TxsigEb,如果相等,则签名验证成功,否则,签名验证失败,身份认证流程失败。
签名验证通过后,量子通信服务站QB根据IDB找到相应的随机数xbB,利用xbB进行哈希计算得到HxbB,并对HxbB和Time进行计算得到偏移量HG(HxbB||Time)。利用偏移量恢复EPKaB’为EPKaB,即得到{EPKaBR,EPKaBc,EPKaBt}。利用SKbMainB对EPKaB进行解密得到PKaMainB||PkaTempBKN。利用PkaTempBKN恢复DHB-PKaTempBKN得到DHB。量子通信服务站QB利用HxbB对消息认证码MAC(Time||PKaMainB||PKaTempBKN||DHB,HxbB)进行验证。如验证失败,则身份认证流程失败;否则,量子通信服务站QB进行应答消息的生成。
验证通过后,量子通信服务站QB通过时间戳Time进行哈希计算得到RK=H(Time)。根据步骤1中的方法从公钥池和私钥池中取出并计算得到
Figure BDA0002419568500000241
Figure BDA0002419568500000242
Figure BDA0002419568500000243
根据IDB从密钥区找到xaB/xbB/PKaMainB/PKbMainB,将xaB/xbB/PKaMainB/PKbMainB进行秘密共享恢复计算得到PKMainB;利用xaB/xbB/PKaTempBKN/PKbTempBKN进行秘密共享恢复计算得到PKTempB。因为第m个临时公钥恢复为PKTempm=(xa*PKbTempm-xb*PKaTempm)/(xa-xb),所以KN个临时公钥的门限求和
Figure BDA0002419568500000251
Figure BDA0002419568500000252
Figure BDA0002419568500000253
因此该方式计算得到的PKTempB是合理的。量子通信服务站QB通过密钥卡内的CA服务器公钥对用户B的CA签名SIGCAB进行验证,如果验证失败,则身份认证流程失败;否则进行下一步操作。
量子通信服务站QB利用PKaMainB对PKTempB进行ECIES加密得到EPKTB=ENC(PKTempB||TxsigEb,PKaMainB)={EPKTBR,EPKTBc,EPKTBt}。对EPKTB进行偏移量处理得到EPKTB’={EPKTBR-HG(Time||H(xbB)),EPKTBc,EPKTBt}。量子通信服务站QB打包得到签名内容TxB=IDB||IDA||Time||DHB,对TxB进行签名算法计算。对PKTempB=(PKTempBx,PKTempBy)中x轴参数进行计算得到TxsigRbB=PKTempBx mod q。并对TxsigRbB||TxB进行哈希计算得到TxsigEbB=H(TxsigRbB||TxB),计算得到签名过程参数userSigbB=SKbTempBKN+SKbMainB*TxsigEbBmod q。
量子通信服务站QB打包消息得到MsgQB,将MsgQB作为应答消息返回给用户B。MsgQB=Time||EPKTB’||DHA-PKTempB||userSigbB||MAC(Time||PKTempB||DHA,H(xbB))。
6.用户B验证应答,并将请求发送至用户A
用户B接收到量子通信服务站QB的应答MsgQB。根据Time找到最近的请求,验证时间戳的是否正确。同时,计算得到偏移量HG(Time||HxbB)并利用偏移量对EPKTB’恢复为EPKTB,即{EPKTBR,EPKTBc,EPKTBt}。利用SKaMainB对EPKTB进行解密得到PKTempB||TxsigEb。利用PKTempB恢复得到DHA。用户B利用哈希值HxbB对消息认证码进行验证,如果验证失败,则本次身份认证流程中断,否则,用户B进行下一步操作。完成消息认证码的验证后,对签名userSigbB进行验证。将各信息拼接得到TxB=IDB||IDA||Time||DHB。对PKTempB的x轴参数PKTempBx进行计算得到TxsigRaB=PKTempBx mod q,并进一步计算得到TxsigEaB=H(TxsigRaB||TxB)。验证等式userSigbB*P=PKbTempBKN+TxsigEaB*PKbMainB是否成立,因为userSigbB*P=(SKbTempBKN+TxsigEbB*SKbMainB)*P=SKbTempBKN*P+TxsigEbB*SKbMainB*P=PKbTempBKN+TxsigEbB*PKbMainB。如果TxsigEbB与TxsigEaB相等,则等式必定成立。此处用户B对用户A的身份实现认证,并计算得到会话密钥KAB=DHb*DHA。
用户B打包消息得到MsgBA,用户B将认证请求MsgBA发送至用户A。MsgBA=IDB||Time||DHB-HG(TxsigEb||Time)||MAC(Time||DHB,KAB)。
7.用户A计算得到会话密钥并认证用户B身份
用户A接收到用户B的请求MsgBA。根据Time找到初始请求,验证时间戳的是否正确。验证通过后,利用HG(TxsigEb||Time)对DHB-HG(TxsigEb||Time)进行偏移量恢复得到DHB,计算得到会话密钥KAB=DHa*DHB。利用密钥KAB对消息认证码MAC(Time||DHB,KAB)进行认证。如果认证失败,则身份认证失败,否则,用户A对用户B实现身份认证。
实施例4
本实施例中实现为用户A与用户B之间的身份认证和密钥协商。用户A与用户B同属于量子通信服务站Q。
身份认证的具体步骤如下:
步骤1至步骤5同实施例2,步骤6至7如下所述:
6.用户B验证应答,并将请求发送至用户A
用户B接收到量子通信服务站Q的应答MsgQB。根据Time找到最近的请求,验证时间戳的是否正确。同时,计算得到偏移量HG(Time||HxbB)并利用偏移量对EPKTB’恢复为EPKTB,即{EPKTBR,EPKTBc,EPKTBt}。利用SKaMainB对EPKTB进行解密得到PKTempB||TxsigEb。利用PKTempB恢复得到DHA。用户B利用哈希值HxbB对消息认证码进行验证,如果验证失败,则本次身份认证流程中断,否则,用户B进行下一步操作。完成消息认证码的验证后,对签名userSigbB进行验证。将各信息拼接得到TxB=IDB||IDA||Time||DHB。对PKTempB的x轴参数PKTempBx进行计算得到TxsigRaB=PKTempBx mod q,并进一步计算得到TxsigEaB=H(TxsigRaB||TxB)。验证等式userSigbB*P=PKbTempBKN+TxsigEaB*PKbMainB是否成立,因为userSigbB*P=(SKbTempBKN+TxsigEbB*SKbMainB)*P=SKbTempBKN*P+TxsigEbB*SKbMainB*P=PKbTempBKN+TxsigEbB*PKbMainB。如果TxsigEbB与TxsigEaB相等,则等式必定成立。此处用户B对用户A的身份实现认证,并计算得到会话密钥KAB=DHb*DHA。
用户B打包消息得到MsgBA=IDB||Time||DHB-HG(TxsigEb||Time)||MAC(Time||DHB,KAB)。用户B将认证请求MsgBA发送至用户A。
7.用户A计算得到会话密钥并认证用户B身份
用户A接收到用户B的请求MsgBA。根据Time找到初始请求,验证时间戳的是否正确。验证通过后,利用HG(TxsigEb||Time)对DHB-HG(TxsigEb||Time)进行偏移量恢复得到DHB,计算得到会话密钥KAB=DHa*DHB。利用密钥KAB对消息认证码MAC(Time||DHB,KAB)进行认证。如果认证失败,则身份认证失败,否则,用户A对用户B实现身份认证。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (8)

1.一种基于秘密共享和量子通信服务站的抗量子计算身份认证方法,其特征在于:包括通信连接组成量子通信网络的若干密钥卡群组,各密钥卡群组设有一个量子通信服务站和与所述量子通信服务站连接的多个用户端;两个用户端之间身份认证时,分别记为用户端一和用户端二,其同组的量子通信服务站分别记为服务站一和服务站二;
顺序执行以下认证步骤:
S1、所述用户端一作为身份认证发起方,向同组的通信服务站发送发起方请求消息,服务站一对发起方请求消息进行验证,验证通过后,服务站一向用户端一反馈应答消息一;用户端一对应答消息一进行验证,验证通过后向用户端二发送加密的发起方身份认证消息;用户端一生成一个用于计算会话密钥的第一随机数,作为发起方私钥,根据第一随机数计算发起方公钥,发起方身份认证消息中包括发起方公钥;
S2、所述用户端二作为身份认证接收方,验证发起方身份认证消息,验证通过后生成接收方请求消息,则将发起方请求消息和接收方请求消息发送给服务站二;服务站二对发起方请求消息和接收方请求消息进行验证和处理,并向用户端二反馈应答消息二;
用户端二对应答消息二进行验证,验证通过后,用户端二实现对用户端一的身份认证,按约定算法计算得到会话密钥并存储,并向用户端一发送加密的接收方身份认证消息;用户端二生成一个用于计算会话密钥的第二随机数,作为接收方私钥,根据第二随机数计算接收方公钥,且在用户端二收到服务站二返回的应答消息二并完成验证后,由用户端二根据发起方公钥和第二随机数计算得到会话密钥;
S3、所述用户端一验证接收方身份认证消息,验证通过后,按约定算法计算得到会话密钥并存储,会话密钥用于用户端一和用户端二之间的通信;用户端一收到服务站一返回的发起方应答消息二并完成验证后,由用户端一根据第一随机数和接收方公钥计算得到会话密钥;
所述量子通信网络设有为量子通信服务站和用户端颁发密钥卡的密钥管理服务器,同组内的量子通信服务站和各用户端之间以(2,2)秘密共享方式共享一对主密钥和若干对临时密钥,对应的秘密共享随机数和密钥分量分别存储到量子通信服务站密钥卡和用户端密钥卡内,根据用户端ID查找量子通信服务站密钥卡内的密钥分量和随机数;
所述主密钥包括主公钥和主私钥,临时密钥包括临时公钥和临时私钥;用户端和量子通信服务站每次身份认证时从本地密钥卡中提取预设数量的临时密钥分量,计算获得一个用于本次身份认证的临时密钥分量;
所述用户端与同组的量子通信服务站之间的通信过程中,包括双向验证过程,将本地密钥卡存储的主密钥分量、计算获得的临时密钥分量、及根据秘密共享原理恢复的完整的主密钥、临时密钥用于签名运算。
2.根据权利要求1所述的一种基于秘密共享和量子通信服务站的抗量子计算身份认证方法,其特征在于:所述发起方请求消息和接收方请求消息中均包括时间戳、用户端ID、密钥分量加密文、会话密钥参数加密文和用户端消息认证码;
所述密钥分量加密文,由用户端将计算得到的临时公钥分量与本地存储的主公钥分量相组合,并使用另一个主公钥分量对组合进行加密计算获得,加密过程中加入第一偏移量;
所述会话密钥参数加密文,根据用户端自身计算得到的发起方公钥或接收方公钥、自身计算得到的临时公钥分量计算获得;
所述应答消息一和应答消息二中包括时间戳、密钥加密文、服务站门限签名和服务端消息认证码;
所述密钥加密文,由量子通信服务站根据自身计算得到的临时公钥分量及解密请求消息得到的临时公钥分量,恢复完整的临时公钥后,采用本地存储的主公钥分量对临时公钥进行加密得到,加密过程中加入第二偏移量;
所述服务站门限签名的生成步骤包括:
生成签名内容,签名内容包括时间戳、双方用户端ID和发起方公钥;
根据秘密共享原理恢复得到完整的临时公钥,计算临时公钥x轴向参数并进行取模运算,将获得的值作为R签名;对R签名和签名内容的组合进行哈希运算,将获得的值作为E签名;
根据计算获得的临时私钥分量、本地密钥卡内存的与用户端对应的主私量分量及E签名,计算获得服务站门限签名。
3.根据权利要求2所述的一种基于秘密共享和量子通信服务站的抗量子计算身份认证方法,其特征在于:所述用户端一和用户端二属于不同的密钥卡群组时,量子通信服务站设有用于通信的公私钥对,各量子通信服务站密钥卡内存储自身私钥和所有量子通信服务站的公钥,或者量子通信服务站之间设有QKD设备,通过QKD设备生成用于通信的QKD密钥;
发起方身份认证消息中包括服务站间密文,服务站间密文由服务站一采用服务站二的公钥或QKD密钥对主公钥和服务站门限签名的组合加密得到;
服务站二对服务站间密文进行验证和处理。
4.根据权利要求2所述的一种基于秘密共享和量子通信服务站的抗量子计算身份认证方法,其特征在于,所述发起方身份认证消息和接收方消息中均包括时间戳、双方用户端ID和总门限签名,所述总门限签名的生成步骤包括:
验证服务站门限签名,验证通过后进入下一步;
拼接签名内容,签名内容包括时间戳、双方用户端ID、对应的发起方公钥或接收方公钥;
根据秘密共享原理恢复得到完整的临时公钥,计算临时公钥x轴向参数并进行取模运算,将获得的值作为R签名;对R签名和签名内容的组合进行哈希运算,将获得的值作为E签名;
根据计算获得的临时私钥分量、本地密钥卡内存的主私量分量及E签名,计算获得用户端门限签名;
根据服务站门限签名和用户端门限签名计算总门限签名。
5.根据权利要求4所述的一种基于秘密共享和量子通信服务站的抗量子计算身份认证方法,其特征在于,所述接收方身份认证消息中包括用户端ID、时间戳、会话密钥参数加密文和消息认证码,会话密钥参数加密文根据用户端二自身计算得到的接收方公钥、自身计算得到的临时公钥分量计算获得。
6.根据权利要求4所述的一种基于秘密共享和量子通信服务站的抗量子计算身份认证方法,其特征在于,所述接收方身份认证消息中包括用户端ID、时间戳和总门限签名,步骤S3中:
所述用户端一验证接收方身份认证消息,验证通过后,将接收方身份认证消息转发给服务站一;服务站一对接收方身份认证消息进行验证,并由服务站一对接收方身份认证消息进行处理并向用户端一反馈应答消息三,所述应答消息三中包括时间戳、会话密钥参数加密文和服务端消息认证码;
所述用户端一对发起方应答消息二进行验证,验证通过后实现对用户端二的身份认证,按约定算法计算得到会话密钥并存储,会话密钥用于用户端一和用户端二之间的通信。
7.根据权利要求6所述的一种基于秘密共享和量子通信服务站的抗量子计算身份认证方法,其特征在于:所述发起方身份认证消息和接收方身份认证消息中包括CA签名,所述CA签名通过采用CA服务器私钥对用户端ID和主公钥的组合进行签名获得。
8.一种基于秘密共享和量子通信服务站的抗量子计算身份认证系统,其特征在于:包括通信连接组成量子通信网络的若干密钥卡群组,各密钥卡群组设有一个量子通信服务站和与所述量子通信服务站连接的多个用户端,量子通信网络设有为量子通信服务站和用户端颁发密钥卡的密钥管理服务器;
各用户端以及量子通信服务站分别包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现权利要求1~6任一项所述的基于秘密共享和多个移动设备的量子保密通信身份认证方法。
CN202010201578.9A 2020-03-20 2020-03-20 基于秘密共享和量子通信服务站的抗量子计算身份认证方法及系统 Active CN111475796B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010201578.9A CN111475796B (zh) 2020-03-20 2020-03-20 基于秘密共享和量子通信服务站的抗量子计算身份认证方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010201578.9A CN111475796B (zh) 2020-03-20 2020-03-20 基于秘密共享和量子通信服务站的抗量子计算身份认证方法及系统

Publications (2)

Publication Number Publication Date
CN111475796A CN111475796A (zh) 2020-07-31
CN111475796B true CN111475796B (zh) 2023-04-14

Family

ID=71748245

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010201578.9A Active CN111475796B (zh) 2020-03-20 2020-03-20 基于秘密共享和量子通信服务站的抗量子计算身份认证方法及系统

Country Status (1)

Country Link
CN (1) CN111475796B (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112187451B (zh) * 2020-08-20 2023-03-24 如般量子科技有限公司 抗量子计算的通信方法、装置、设备及存储介质
CN114301595B (zh) * 2020-09-22 2023-09-29 如般量子科技有限公司 基于见证者的量子保密通信系统及其通信方法
CN112152817B (zh) * 2020-09-25 2022-07-12 国科量子通信网络有限公司 基于后量子密码算法进行认证的量子密钥分发方法及系统
CN114448638B (zh) * 2020-11-02 2024-02-13 如般量子科技有限公司 基于见证者的量子保密通信网络密钥管理通信方法及系统
CN112713943B (zh) * 2020-11-30 2024-03-12 安徽澄小光智能科技有限公司 量子保密通信系统
CN114696997B (zh) * 2020-12-14 2024-04-09 南京如般量子科技有限公司 一种基于ca和国密算法的抗量子计算通信方法及系统
CN114696998B (zh) * 2020-12-25 2024-10-08 科大国盾量子技术股份有限公司 一种身份认证方法、装置及系统
CN114765541B (zh) * 2020-12-31 2024-02-23 科大国盾量子技术股份有限公司 一种量子密钥卡的密钥分发方法及系统
CN113595725B (zh) * 2021-07-29 2023-08-11 如般量子科技有限公司 基于量子密钥卡排列的通信系统及通信方法
CN114095150B (zh) * 2021-11-12 2024-01-26 微位(深圳)网络科技有限公司 身份鉴定方法、装置、设备及可读存储介质
CN114362967B (zh) * 2022-03-09 2022-05-27 南京易科腾信息技术有限公司 认证方法、装置及存储介质
CN116318784B (zh) * 2022-12-07 2024-05-03 深圳科盾量子信息科技有限公司 身份认证方法、装置、计算机设备和存储介质
CN115632779B (zh) * 2022-12-22 2023-03-28 国网天津市电力公司电力科学研究院 一种基于配电网的量子加密通信方法及系统
CN116996237B (zh) * 2023-09-29 2023-12-08 山东高速建设管理集团有限公司 一种基于量子门限签名的分布式管理方法及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110535626B (zh) * 2019-07-16 2023-06-06 如般量子科技有限公司 基于身份的量子通信服务站保密通信方法和系统

Also Published As

Publication number Publication date
CN111475796A (zh) 2020-07-31

Similar Documents

Publication Publication Date Title
CN111475796B (zh) 基于秘密共享和量子通信服务站的抗量子计算身份认证方法及系统
CN111639361B (zh) 一种区块链密钥管理方法、多人共同签名方法及电子装置
CN110519046B (zh) 基于一次性非对称密钥对和qkd的量子通信服务站密钥协商方法和系统
CN109150517B (zh) 基于sgx的密钥安全管理系统及方法
CN110932851B (zh) 一种基于pki的多方协同运算的密钥保护方法
CN108347404B (zh) 一种身份认证方法及装置
CN111404664B (zh) 基于秘密共享和多个移动设备的量子保密通信身份认证系统和方法
CN111327419B (zh) 基于秘密共享的抗量子计算区块链的方法及系统
CN110505055B (zh) 基于非对称密钥池对和密钥卡的外网接入身份认证方法和系统
CN110380859B (zh) 基于非对称密钥池对和dh协议的量子通信服务站身份认证方法和系统
CN110535626B (zh) 基于身份的量子通信服务站保密通信方法和系统
CN110138548B (zh) 基于非对称密钥池对和dh协议的量子通信服务站密钥协商方法和系统
CN107465665A (zh) 一种基于指纹识别技术的文件加解密方法
CN110519226B (zh) 基于非对称密钥池和隐式证书的量子通信服务端保密通信方法和系统
CN111416715A (zh) 基于秘密共享的量子保密通信身份认证系统及方法
WO2023151427A1 (zh) 量子密钥传输方法、装置及系统
CN111416712B (zh) 基于多个移动设备的量子保密通信身份认证系统及方法
CN111343160B (zh) 基于秘密共享和路由装置的抗量子计算区块链交易方法和系统
CN110176989B (zh) 基于非对称密钥池的量子通信服务站身份认证方法和系统
CN117081736A (zh) 密钥分发方法、密钥分发装置、通信方法及通信装置
Zhang et al. Cerberus: Privacy-preserving computation in edge computing
CN111526131B (zh) 基于秘密共享和量子通信服务站的抗量子计算的电子公文传输方法和系统
CN111245611B (zh) 基于秘密共享和可穿戴设备的抗量子计算身份认证方法及系统
CN110048852B (zh) 基于非对称密钥池的量子通信服务站数字签密方法和系统
CN110880969B (zh) 基于联盟链和隐式证书的qkd网络认证密钥生成方法及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant