CN110417547B - 基于无证书密码学的保密通信的密钥更新方法和系统 - Google Patents
基于无证书密码学的保密通信的密钥更新方法和系统 Download PDFInfo
- Publication number
- CN110417547B CN110417547B CN201910656966.3A CN201910656966A CN110417547B CN 110417547 B CN110417547 B CN 110417547B CN 201910656966 A CN201910656966 A CN 201910656966A CN 110417547 B CN110417547 B CN 110417547B
- Authority
- CN
- China
- Prior art keywords
- key
- original
- client
- server
- original text
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0891—Revocation or update of secret information, e.g. encryption key update or rekeying
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3234—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving additional secure or trusted devices, e.g. TPM, smartcard, USB or software token
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Abstract
本发明公开了一种基于无证书密码学的抗量子计算保密通信的密钥更新方法和系统,抗量子计算保密通信的密钥更新系统包括客户端和服务器,客户端配置有客户端密钥卡,客户端密钥卡内存储有非对称密钥池、群组对称密钥池和客户端私钥;服务器配置有服务器密钥卡,服务器密钥卡内存储有非对称密钥池、群组对称密钥池、通信私钥和颁发私钥。本发明的客户端与服务器之间传输消息时,利用密钥池中的密钥对加密参数增加了偏移量,仅有密钥卡拥有者可以恢复该偏移量而得到原始加密参数,这让量子计算机在传输过程中难以破解加密参数,从而难以破解会话内容,充分地保障了密钥更新过程的安全性。
Description
技术领域
本申请涉及安全通信技术领域,尤其是一种基于无证书密码学的抗量子计算保密通信的密钥更新方法和系统。
背景技术
国际互联网的广泛应用使得远在世界各个角落的互不相识的人们可以快速交换信息,共享信息资源。在交换的过程中,人们并不总是希望自己发出的信息被所有人获悉,处于种种考虑,发出信息的人只希望所发出的信息被与此有关的人获悉。为此人们使用密码对自己所发出的信息进行加密,只有配有相同密码的人才能解密信息。另外,在通过互联网把全球连接在一个如此广泛的网络世界的时代,出于全球电子商务和电子贸易的目的,人们需要使用统一的密码进行信息加密。因此在1975年公布的美国数据加密标准DES。作为传统密码体制的DES算法,使用时通信双方必须预先分配相同的密钥并妥善保管,在没有专门的密钥管理机构时,互不认识的通信双方如何预先得到所需的密钥,如何识别对方的身份,是一个非常重要的问题。这个问题可以归结到如何授权对方成为自己本次通信的唯一合法的通信伙伴,使其具有合法的权利和能力解密自己所发出去的密文。
密钥卡是结合了密码学技术、硬件安全隔离技术、量子物理学技术(搭载量子随机数发生器的情况下)的身份认证和加解密产品。密钥卡的内嵌芯片和操作系统可以提供密钥的安全存储和密码算法等功能。由于其具有独立的数据处理能力和良好的安全性,密钥卡成为私钥和密钥池的安全载体。每一个密钥卡可以有硬件PIN码保护,PIN码和硬件构成了用户使用密钥卡的两个必要因素,即所谓“双因子认证”,用户只有同时取得保存了相关认证信息的密钥卡和用户PIN码,才可以登录系统。即使用户的PIN码被泄露,只要用户持有的密钥卡不被盗取,合法用户的身份就不会被仿冒;如果用户的密钥卡遗失,拾到者由于不知道用户PIN码,也无法仿冒合法用户的身份。总之,密钥卡使得密钥等绝密信息不以明文形式出现在主机的磁盘及内存中,从而能有效保证绝密信息的安全。现有技术存在的问题:
1.客户端非对称密钥池颁发后,出于客户端自身安全等考虑,可有客户端发起密钥更新的需求,以更换自身的公钥。由于所有客户端使用同一个公钥池,如果某客户端需要更新其公钥,没有合适的方法来更新所有客户端的非对称密钥池。
2.必须先获取通信对方的公钥指针随机数用于从非对称密钥池中获取对方的公钥。公钥指针随机数难以记忆,并需要对所有通信对方的公钥指针随机数进行存储,往往需要浪费额外的存储空间,流程也显得冗余。
发明内容
基于此,有必要针对上述技术问题,提供一种无基于证书密码学的抗量子计算保密通信的密钥更新方法和系统。
本申请公开了基于无证书密码学的抗量子计算保密通信的密钥更新方法,在主动更新时,参与方包括第一客户端和服务器,所述密钥更新方法实施在第一客户端包括:
生成新第一公钥和新第一私钥,组合原第一公钥、原第一公钥生成时间以及新第一公钥作为第一原文,对所述第一原文进行签名计算:利用第一客户端ID从密钥卡的群组对称密钥池中取出第一密钥,利用所述第一密钥、第一原文和第一客户端部分公钥XA计算得到第一签名;
将所述第一原文和所述第一签名组合得到第二原文,对所述第二原文进行加密计算:根据服务器ID从密钥卡的群组对称密钥池中取出第二密钥,根据所述第二密钥和服务器部分通信公钥YS计算得到第一中间参数,根据所述第二原文计算得到第二中间参数,利用哈希函数作用于第一中间参数和第二中间参数的组合得到第一地址,根据所述第一地址从密钥卡的群组对称密钥池中取出第三密钥,根据所述第三密钥和第一地址计算得到第一偏移量,生成第一原始参数,利用所述第一原始参数减去所述第一偏移量得到第一偏移参数,组合所述第一偏移参数、第一中间参数和第二中间参数作为第一密文;
向服务器发送所述第一密文;所述第一中间参数和第二中间参数用于供服务器计算得到第一偏移量,所述第一偏移量和第一偏移参数用于供服务器相加得到第一原始参数,所述第一原始参数、第一中间参数和第二中间参数用于供服务器计算得到所述第二原文,所述第一原文用于供服务器对所述第一签名验证通过后执行服务器密钥更新操作;
接收来自服务器的第二密文;所述第二密文由服务器对第三原文进行所述签名计算和所述加密计算后得到,所述第三原文为服务器执行服务器密钥更新操作后生成的执行结果;
对所述第二密文进行解密以及签名验证,并在签名验证通过后根据第三原文执行客户端密钥更新操作:解析所述执行结果,若所述执行结果包含新第一公钥和新第一公钥生成时间,则更新本地存储的原第一公钥、原第一公钥生成时间和原第一私钥为新第一公钥、新第一公钥生成时间和新第一私钥。
本申请公开了基于无证书密码学的抗量子计算保密通信的密钥更新方法,在主动更新时,参与方包括第一客户端和服务器,所述密钥更新方法实施在服务器包括:
接收来自所述第一客户端的第一密文;所述第一密文由第一客户端对第二原文进行加密计算得到,所述第二原文包括第一原文和第一签名,所述第一原文包括原第一公钥、原第一公钥生成时间以及新第一公钥,所述第一签名由第一客户端对所述第一原文进行签名计算得到,所述签名计算包括:由第一客户端利用第一客户端ID从密钥卡的群组对称密钥池中取出第一密钥,利用所述第一密钥、第一原文和第一客户端部分公钥XA计算得到第一签名;所述加密计算包括:由第一客户端根据服务器ID从密钥卡的群组对称密钥池中取出第二密钥,根据所述第二密钥和服务器部分通信公钥YS计算得到第一中间参数,根据所述第二原文计算得到第二中间参数,利用哈希函数作用于第一中间参数和第二中间参数的组合得到第一地址,根据所述第一地址从密钥卡的群组对称密钥池中取出第三密钥,根据所述第三密钥和第一地址计算得到第一偏移量,生成第一原始参数,利用所述第一原始参数减去所述第一偏移量得到第一偏移参数,组合所述第一偏移参数、第一中间参数和第二中间参数作为第一密文;
根据所述第一中间参数和第二中间参数计算得到第一偏移量,将所述第一偏移量和第一偏移参数相加得到第一原始参数,利用所述第一原始参数、第一中间参数和第二中间参数计算得到所述第二原文,解析所述第二原文得到第一原文和第一签名,对第一签名进行验证并在验证通过后执行服务器密钥更新操作,包括:解析第一原文,记录服务器当前时间为新第一公钥生成时间,替换本地存储的原第一公钥和原第一公钥生成时间为第一原文中的新第一公钥和新第一公钥生成时间;
执行服务器公钥更新操作后生成执行结果作为第三原文,对所述第三原文进行所述签名计算得到第二签名,对所述第三原文和第二签名的组合进行所述加密计算得到第二密文;
将所述第二密文发送至所述第一客户端;所述第二密文用于供第一客户端解密得到所述第三原文和第二签名,所述第三原文用于供第一客户端对第二签名验证通过后执行客户端密钥更新操作。
本申请公开了基于无证书密码学的抗量子计算保密通信的密钥更新方法,在主动更新时,参与方包括第一客户端和服务器,所述密钥更新方法包括:
所述第一客户端生成新第一公钥和新第一私钥,组合原第一公钥、原第一公钥生成时间以及新第一公钥作为第一原文,对所述第一原文进行签名计算:利用第一客户端ID从密钥卡的群组对称密钥池中取出第一密钥,利用所述第一密钥、第一原文和第一客户端部分公钥XA计算得到第一签名;
所述第一客户端将所述第一原文和所述第一签名组合得到第二原文,对所述第二原文进行加密计算:根据服务器ID从密钥卡的群组对称密钥池中取出第二密钥,根据所述第二密钥和服务器部分通信公钥YS计算得到第一中间参数,根据所述第二原文计算得到第二中间参数,利用哈希函数作用于第一中间参数和第二中间参数的组合得到第一地址,根据所述第一地址从密钥卡的群组对称密钥池中取出第三密钥,根据所述第三密钥和第一地址计算得到第一偏移量,生成第一原始参数,利用所述第一原始参数减去所述第一偏移量得到第一偏移参数,组合所述第一偏移参数、第一中间参数和第二中间参数作为第一密文,向服务器发送所述第一密文;
所述服务器接收来自所述第一客户端的第一密文,根据所述第一中间参数和第二中间参数计算得到第一偏移量,将所述第一偏移量和第一偏移参数相加得到第一原始参数,利用所述第一原始参数、第一中间参数和第二中间参数计算得到所述第二原文,解析所述第二原文得到第一原文和第一签名,对第一签名进行验证并在验证通过后执行服务器密钥更新操作,包括:解析第一原文,记录服务器当前时间为新第一公钥生成时间,替换本地存储的原第一公钥和原第一公钥生成时间为第一原文中的新第一公钥和新第一公钥生成时间;
所述服务器执行服务器公钥更新操作后生成执行结果作为第三原文,对所述第三原文进行所述签名计算得到第二签名,对所述第三原文和第二签名的组合进行所述加密计算得到第二密文,将所述第二密文发送至所述第一客户端;
所述第一客户端接收来自服务器的第二密文,对所述第二密文解密得到所述第三原文,验证所述第二签名是否为所述第三原文的签名,并在签名验证通过后根据第三原文执行客户端密钥更新操作:解析所述执行结果,若所述执行结果包含新第一公钥和新第一公钥生成时间,则更新本地存储的原第一公钥、原第一公钥生成时间和原第一私钥为新第一公钥、新第一公钥生成时间和新第一私钥。
本申请公开了基于无证书密码学的抗量子计算保密通信的密钥更新方法,在被动更新时,参与方包括第二客户端和服务器,所述密钥更新方法实施在第二客户端包括:
组合第一客户端ID和原第一公钥生成时间得到第一原文,所述原第一公钥生成时间为第二客户端存储的第一客户端的第一公钥的最新生成时间,对所述第一原文进行签名计算:利用第二客户端ID从密钥卡的群组对称密钥池中取出第一密钥,利用所述第一密钥、第一原文和第二客户端部分公钥XB计算得到第一签名;
将所述第一原文和所述第一签名组合得到第二原文,对所述第二原文进行加密计算:根据服务器ID从密钥卡的群组对称密钥池中取出第二密钥,根据所述第二密钥和服务器部分通信公钥YS计算得到第一中间参数,根据所述第二原文计算得到第二中间参数,利用哈希函数作用于第一中间参数和第二中间参数的组合得到第一地址,根据所述第一地址从密钥卡的群组对称密钥池中取出第三密钥,根据所述第三密钥和第一地址计算得到第一偏移量,生成第一原始参数,利用所述第一原始参数减去所述第一偏移量得到第一偏移参数,组合所述第一偏移参数、第一中间参数和第二中间参数作为第一密文;
向服务器发送所述第一密文;所述第一中间参数和第二中间参数用于供服务器计算得到第一偏移量,所述第一偏移量和第一偏移参数用于供服务器相加得到第一原始参数,所述第一原始参数、第一中间参数和第二中间参数用于供服务器计算得到所述第二原文,所述第一原文用于供服务器对所述第一签名验证通过后判断是否需要更新第二客户端中的原第一公钥;
接收来自服务器的第二密文;所述第二密文由服务器对第三原文进行所述签名计算和所述加密计算后得到,所述第三原文为服务器判断是否需要更新第二客户端中的原第一公钥后生成的判断结果;
对所述第二密文进行解密以及签名验证,并在签名验证通过后根据第三原文执行客户端密钥更新操作:解析所述判断结果,若所述判断结果包含新第一公钥和新第一公钥生成时间,则更新本地存储的原第一公钥和原第一公钥生成时间为新第一公钥和新第一公钥生成时间。
本申请公开了基于无证书密码学的抗量子计算保密通信的密钥更新方法,在被动更新时,参与方包括第二客户端和服务器,所述密钥更新方法实施在服务器包括:
接收来自所述第一客户端的第一密文;所述第一密文由第二客户端对第二原文进行加密计算得到,所述第二原文包括第一原文和第一签名,所述第一原文包括第一客户端ID和原第一公钥生成时间,所述第一签名由第二客户端对所述第一原文进行签名计算得到,所述签名计算包括:由第二客户端利用第二客户端ID从密钥卡的群组对称密钥池中取出第一密钥,利用所述第一密钥、第一原文和第一客户端部分公钥XA计算得到第一签名;所述加密计算包括:由第二客户端根据服务器ID从密钥卡的群组对称密钥池中取出第二密钥,根据所述第二密钥和服务器部分通信公钥YS计算得到第一中间参数,根据所述第二原文计算得到第二中间参数,利用哈希函数作用于第一中间参数和第二中间参数的组合得到第一地址,根据所述第一地址从密钥卡的群组对称密钥池中取出第三密钥,根据所述第三密钥和第一地址计算得到第一偏移量,生成第一原始参数,利用所述第一原始参数减去所述第一偏移量得到第一偏移参数,组合所述第一偏移参数、第一中间参数和第二中间参数作为第一密文;
所述服务器根据所述第一中间参数和第二中间参数计算得到第一偏移量,将所述第一偏移量和第一偏移参数相加得到第一原始参数,利用所述第一原始参数、第一中间参数和第二中间参数计算得到所述第二原文,解析所述第二原文得到第一原文和第一签名,对第一签名进行验证并在验证通过后判断是否需要更新第二客户端中的原第一公钥:根据第一原文中的第一客户端ID取出本地存储的最新的第一公钥生成时间,若本地存储的最新的第一公钥生成时间和第一原文中的原第一公钥生成时间不相等,则需要更新第二客户端中的原第一公钥;
将判断是否需要更新第二客户端中的原第一公钥后生成的判断结果作为第三原文,对所述第三原文进行所述签名计算得到第二签名,对所述第三原文和第二签名的组合进行所述加密计算得到第二密文;
将所述第二密文发送至所述第二客户端;所述第二密文用于供第二客户端解密得到所述第三原文和第二签名,所述第三原文用于供第二客户端对第二签名验证通过后执行客户端密钥更新操作。
本申请公开了基于无证书密码学的抗量子计算保密通信的密钥更新方法,在被动更新时,参与方包括第二客户端和服务器,所述密钥更新方法包括:
所述第二客户端组合第一客户端ID和原第一公钥生成时间得到第一原文,所述原第一公钥生成时间为第二客户端存储的第一客户端的第一公钥的最新生成时间,对所述第一原文进行签名计算:利用第二客户端ID从密钥卡的群组对称密钥池中取出第一密钥,利用所述第一密钥、第一原文和第二客户端部分公钥XB计算得到第一签名;
所述第二客户端将所述第一原文和所述第一签名组合得到第二原文,对所述第二原文进行加密计算:根据服务器ID从密钥卡的群组对称密钥池中取出第二密钥,根据所述第二密钥和服务器部分通信公钥YS计算得到第一中间参数,根据所述第二原文计算得到第二中间参数,利用哈希函数作用于第一中间参数和第二中间参数的组合得到第一地址,根据所述第一地址从密钥卡的群组对称密钥池中取出第三密钥,根据所述第三密钥和第一地址计算得到第一偏移量,生成第一原始参数,利用所述第一原始参数减去所述第一偏移量得到第一偏移参数,组合所述第一偏移参数、第一中间参数和第二中间参数作为第一密文,向服务器发送所述第一密文;
所述服务器接收来自所述第一客户端的第一密文,根据所述第一中间参数和第二中间参数计算得到第一偏移量,将所述第一偏移量和第一偏移参数相加得到第一原始参数,利用所述第一原始参数、第一中间参数和第二中间参数计算得到所述第二原文,解析所述第二原文得到第一原文和第一签名,对第一签名进行验证并在验证通过后判断是否需要更新第二客户端中的原第一公钥:根据第一原文中的第一客户端ID取出本地存储的最新的第一公钥生成时间,若本地存储的最新的第一公钥生成时间和第一原文中的原第一公钥生成时间不相等,则需要更新第二客户端中的原第一公钥;
所述服务器将判断是否需要更新第二客户端中的原第一公钥后生成的判断结果作为第三原文,对所述第三原文进行所述签名计算得到第二签名,对所述第三原文和第二签名的组合进行所述加密计算得到第二密文,将所述第二密文发送至所述第二客户端;
所述第二客户端接收来自服务器的第二密文,对所述第二密文解密得到所述第三原文,验证所述第二签名是否为所述第三原文的签名,并在签名验证通过后根据第三原文执行客户端密钥更新操作:解析所述判断结果,若所述判断结果包含新第一公钥和新第一公钥生成时间,则更新本地存储的原第一公钥和原第一公钥生成时间为新第一公钥和新第一公钥生成时间。
进一步的,根据所述第三密钥和第一地址计算得到第一偏移量,包括:
根据公式UKRmsA=HASH(UKHmsA||UKKmsA),计算得到参数UKRmsA,其中,HASH()为哈希函数,UKHmsA为第一地址,UKKmsA为第三密钥;
并根据公式UKPmsA=H1(UKRmsA),计算得到第一偏移量UKPmsA,其中,H1()为哈希函数,
进一步的,客户端配置有客户端密钥卡,所述客户端密钥卡内存储有非对称密钥池、群组对称密钥池和客户端私钥;所述服务器配置有服务器密钥卡,所述服务器密钥卡内存储有非对称密钥池、群组对称密钥池、通信私钥和颁发私钥;所述客户端密钥卡内的非对称密钥池和服务器密钥卡内的非对称密钥池均包含客户端公钥和服务器公钥,所述服务器公钥包括通信公钥和颁发公钥,所述客户端公钥与通信公钥的结构相同,所述客户端私钥与通信私钥的结构相同。
本还申请公开了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现所述的基于无证书密码学的抗量子计算保密通信的密钥更新方法的步骤。
本申请还公开了一种基于无证书密码学的抗量子计算保密通信的密钥更新系统,所述抗量子计算保密通信的密钥更新系统包括客户端和服务器,客户端配置有客户端密钥卡,所述客户端密钥卡内存储有非对称密钥池、群组对称密钥池和客户端私钥;所述服务器配置有服务器密钥卡,所述服务器密钥卡内存储有非对称密钥池、群组对称密钥池、通信私钥和颁发私钥;所述客户端密钥卡内的非对称密钥池和服务器密钥卡内的非对称密钥池均包含客户端公钥和服务器的公钥,所述客户端私钥与通信私钥的结构相同;
所述客户端和服务器通过通信网络实现所述的基于无证书密码学的抗量子计算保密通信的密钥更新方法的步骤。
本申请提供的基于证书密码学的抗量子计算保密通信的密钥更新方法和系统,客户端与服务器之间传输消息时,利用密钥池中的密钥对加密参数增加了偏移量,仅有密钥卡拥有者可以恢复该偏移量而得到原始加密参数,这让量子计算机在传输过程中难以破解加密参数,从而难以破解会话内容,充分地保障了密钥更新过程的安全性。值得指出的是本申请的抗量子计算方法,对比使用对称密钥加密以抗量子计算的方法,其计算量更小。
附图说明
图1为本发明中使用的客户端密钥卡内部结构图;
图2为本发明中使用的服务器密钥卡内部结构图;
图3为本发明中使用的密钥卡中公钥池的具体结构图;
图4为本发明中生成参数QID的流程图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了更好地描述和说明本申请的实施例,可参考一幅或多幅附图,但用于描述附图的附加细节或示例不应当被认为是对本申请的发明创造、目前所描述的实施例或优选方式中任何一者的范围的限制。
应该理解的是,除非本文中有明确的说明,各步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
其中一实施例中,提供一种基于无证书密码学的抗量子计算保密通信的密钥更新方法,在主动更新时,参与方包括第一客户端和服务器,所述密钥更新方法包括:
所述第一客户端生成新第一公钥和新第一私钥,组合原第一公钥、原第一公钥生成时间以及新第一公钥作为第一原文,对所述第一原文进行签名计算:利用第一客户端ID从密钥卡的群组对称密钥池中取出第一密钥,利用所述第一密钥、第一原文和第一客户端部分公钥XA计算得到第一签名;
所述第一客户端将所述第一原文和所述第一签名组合得到第二原文,对所述第二原文进行加密计算:根据服务器ID从密钥卡的群组对称密钥池中取出第二密钥,根据所述第二密钥和服务器部分通信公钥YS计算得到第一中间参数,根据所述第二原文计算得到第二中间参数,利用哈希函数作用于第一中间参数和第二中间参数的组合得到第一地址,根据所述第一地址从密钥卡的群组对称密钥池中取出第三密钥,根据所述第三密钥和第一地址计算得到第一偏移量,生成第一原始参数,利用所述第一原始参数减去所述第一偏移量得到第一偏移参数,组合所述第一偏移参数、第一中间参数和第二中间参数作为第一密文,向服务器发送所述第一密文;
所述服务器接收来自所述第一客户端的第一密文,根据所述第一中间参数和第二中间参数计算得到第一偏移量,将所述第一偏移量和第一偏移参数相加得到第一原始参数,利用所述第一原始参数、第一中间参数和第二中间参数计算得到所述第二原文,解析所述第二原文得到第一原文和第一签名,对第一签名进行验证并在验证通过后执行服务器密钥更新操作,包括:解析第一原文,记录服务器当前时间为新第一公钥生成时间,替换本地存储的原第一公钥和原第一公钥生成时间为第一原文中的新第一公钥和新第一公钥生成时间;
所述服务器执行服务器公钥更新操作后生成执行结果作为第三原文,对所述第三原文进行所述签名计算得到第二签名,对所述第三原文和第二签名的组合进行所述加密计算得到第二密文,将所述第二密文发送至所述第一客户端;
所述第一客户端接收来自服务器的第二密文,对所述第二密文解密得到所述第三原文,验证所述第二签名是否为所述第三原文的签名,并在签名验证通过后根据第三原文执行客户端密钥更新操作:解析所述执行结果,若所述执行结果包含新第一公钥和新第一公钥生成时间,则更新本地存储的原第一公钥、原第一公钥生成时间和原第一私钥为新第一公钥、新第一公钥生成时间和新第一私钥。
本实施例中客户端与服务器之间传输消息时,利用密钥池中的密钥对加密参数增加了偏移量,仅有密钥卡拥有者可以恢复该偏移量而得到原始加密参数,这让量子计算机在传输过程中难以破解加密参数,从而难以破解会话内容,充分地保障了密钥更新过程的安全性。
为了进一步说明在抗量子计算保密通信的密钥更新过程中各参与方的工作流程,以下通过实施在单侧方的方式对主动更新时的基于无证书密码学的抗量子计算保密通信的密钥更新方法予以描述。
在一实施例中,提供一种基于无证书密码学的抗量子计算保密通信的密钥更新方法,在主动更新时,参与方包括第一客户端和服务器,所述密钥更新方法实施在第一客户端包括:
生成新第一公钥和新第一私钥,组合原第一公钥、原第一公钥生成时间以及新第一公钥作为第一原文,对所述第一原文进行签名计算:利用第一客户端ID从密钥卡的群组对称密钥池中取出第一密钥,利用所述第一密钥、第一原文和第一客户端部分公钥XA计算得到第一签名;
将所述第一原文和所述第一签名组合得到第二原文,对所述第二原文进行加密计算:根据服务器ID从密钥卡的群组对称密钥池中取出第二密钥,根据所述第二密钥和服务器部分通信公钥YS计算得到第一中间参数,根据所述第二原文计算得到第二中间参数,利用哈希函数作用于第一中间参数和第二中间参数的组合得到第一地址,根据所述第一地址从密钥卡的群组对称密钥池中取出第三密钥,根据所述第三密钥和第一地址计算得到第一偏移量,生成第一原始参数,利用所述第一原始参数减去所述第一偏移量得到第一偏移参数,组合所述第一偏移参数、第一中间参数和第二中间参数作为第一密文;
向服务器发送所述第一密文;所述第一中间参数和第二中间参数用于供服务器计算得到第一偏移量,所述第一偏移量和第一偏移参数用于供服务器相加得到第一原始参数,所述第一原始参数、第一中间参数和第二中间参数用于供服务器计算得到所述第二原文,所述第一原文用于供服务器对所述第一签名验证通过后执行服务器密钥更新操作;
接收来自服务器的第二密文;所述第二密文由服务器对第三原文进行所述签名计算和所述加密计算后得到,所述第三原文为服务器执行服务器密钥更新操作后生成的执行结果;
对所述第二密文进行解密以及签名验证,并在签名验证通过后根据第三原文执行客户端密钥更新操作:解析所述执行结果,若所述执行结果包含新第一公钥和新第一公钥生成时间,则更新本地存储的原第一公钥、原第一公钥生成时间和原第一私钥为新第一公钥、新第一公钥生成时间和新第一私钥。
在一实施例中,提供一种基于无证书密码学的抗量子计算保密通信的密钥更新方法,在主动更新时,参与方包括第一客户端和服务器,所述密钥更新方法实施在服务器包括:
接收来自所述第一客户端的第一密文;所述第一密文由第一客户端对第二原文进行加密计算得到,所述第二原文包括第一原文和第一签名,所述第一原文包括原第一公钥、原第一公钥生成时间以及新第一公钥,所述第一签名由第一客户端对所述第一原文进行签名计算得到,所述签名计算包括:由第一客户端利用第一客户端ID从密钥卡的群组对称密钥池中取出第一密钥,利用所述第一密钥、第一原文和第一客户端部分公钥XA计算得到第一签名;所述加密计算包括:由第一客户端根据服务器ID从密钥卡的群组对称密钥池中取出第二密钥,根据所述第二密钥和服务器部分通信公钥YS计算得到第一中间参数,根据所述第二原文计算得到第二中间参数,利用哈希函数作用于第一中间参数和第二中间参数的组合得到第一地址,根据所述第一地址从密钥卡的群组对称密钥池中取出第三密钥,根据所述第三密钥和第一地址计算得到第一偏移量,生成第一原始参数,利用所述第一原始参数减去所述第一偏移量得到第一偏移参数,组合所述第一偏移参数、第一中间参数和第二中间参数作为第一密文;
根据所述第一中间参数和第二中间参数计算得到第一偏移量,将所述第一偏移量和第一偏移参数相加得到第一原始参数,利用所述第一原始参数、第一中间参数和第二中间参数计算得到所述第二原文,解析所述第二原文得到第一原文和第一签名,对第一签名进行验证并在验证通过后执行服务器密钥更新操作,包括:解析第一原文,记录服务器当前时间为新第一公钥生成时间,替换本地存储的原第一公钥和原第一公钥生成时间为第一原文中的新第一公钥和新第一公钥生成时间;
执行服务器公钥更新操作后生成执行结果作为第三原文,对所述第三原文进行所述签名计算得到第二签名,对所述第三原文和第二签名的组合进行所述加密计算得到第二密文;
将所述第二密文发送至所述第一客户端;所述第二密文用于供第一客户端解密得到所述第三原文和第二签名,所述第三原文用于供第一客户端对第二签名验证通过后执行客户端密钥更新操作。
在密钥更新中,除主动更新之外还包括被动更新,其中一实施例中,提供一种基于无证书密码学的抗量子计算保密通信的密钥更新方法,在被动更新时,参与方包括第二客户端和服务器,所述密钥更新方法包括:
所述第二客户端组合第一客户端ID和原第一公钥生成时间得到第一原文,所述原第一公钥生成时间为第二客户端存储的第一客户端的第一公钥的最新生成时间,对所述第一原文进行签名计算:利用第二客户端ID从密钥卡的群组对称密钥池中取出第一密钥,利用所述第一密钥、第一原文和第二客户端部分公钥XB计算得到第一签名;
所述第二客户端将所述第一原文和所述第一签名组合得到第二原文,对所述第二原文进行加密计算:根据服务器ID从密钥卡的群组对称密钥池中取出第二密钥,根据所述第二密钥和服务器部分通信公钥YS计算得到第一中间参数,根据所述第二原文计算得到第二中间参数,利用哈希函数作用于第一中间参数和第二中间参数的组合得到第一地址,根据所述第一地址从密钥卡的群组对称密钥池中取出第三密钥,根据所述第三密钥和第一地址计算得到第一偏移量,生成第一原始参数,利用所述第一原始参数减去所述第一偏移量得到第一偏移参数,组合所述第一偏移参数、第一中间参数和第二中间参数作为第一密文,向服务器发送所述第一密文;
所述服务器接收来自所述第一客户端的第一密文,根据所述第一中间参数和第二中间参数计算得到第一偏移量,将所述第一偏移量和第一偏移参数相加得到第一原始参数,利用所述第一原始参数、第一中间参数和第二中间参数计算得到所述第二原文,解析所述第二原文得到第一原文和第一签名,对第一签名进行验证并在验证通过后判断是否需要更新第二客户端中的原第一公钥:根据第一原文中的第一客户端ID取出本地存储的最新的第一公钥生成时间,若本地存储的最新的第一公钥生成时间和第一原文中的原第一公钥生成时间不相等,则需要更新第二客户端中的原第一公钥;
所述服务器将判断是否需要更新第二客户端中的原第一公钥后生成的判断结果作为第三原文,对所述第三原文进行所述签名计算得到第二签名,对所述第三原文和第二签名的组合进行所述加密计算得到第二密文,将所述第二密文发送至所述第二客户端;
所述第二客户端接收来自服务器的第二密文,对所述第二密文解密得到所述第三原文,验证所述第二签名是否为所述第三原文的签名,并在签名验证通过后根据第三原文执行客户端密钥更新操作:解析所述判断结果,若所述判断结果包含新第一公钥和新第一公钥生成时间,则更新本地存储的原第一公钥和原第一公钥生成时间为新第一公钥和新第一公钥生成时间。
本实施例中客户端与服务器之间传输消息时,利用密钥池中的密钥对加密参数增加了偏移量,仅有密钥卡拥有者可以恢复该偏移量而得到原始加密参数,这让量子计算机在传输过程中难以破解加密参数,从而难以破解会话内容,充分地保障了密钥更新过程的安全性。
为了进一步说明在抗量子计算保密通信的密钥更新过程中各参与方的工作流程,以下通过实施在单侧方的方式对被动更新时的基于无证书密码学的抗量子计算保密通信的密钥更新方法予以描述。
其中一实施例中,提供一种基于无证书密码学的抗量子计算保密通信的密钥更新方法,在被动更新时,参与方包括第二客户端和服务器,所述密钥更新方法实施在第二客户端包括:
组合第一客户端ID和原第一公钥生成时间得到第一原文,所述原第一公钥生成时间为第二客户端存储的第一客户端的第一公钥的最新生成时间,对所述第一原文进行签名计算:利用第二客户端ID从密钥卡的群组对称密钥池中取出第一密钥,利用所述第一密钥、第一原文和第二客户端部分公钥XB计算得到第一签名;
将所述第一原文和所述第一签名组合得到第二原文,对所述第二原文进行加密计算:根据服务器ID从密钥卡的群组对称密钥池中取出第二密钥,根据所述第二密钥和服务器部分通信公钥YS计算得到第一中间参数,根据所述第二原文计算得到第二中间参数,利用哈希函数作用于第一中间参数和第二中间参数的组合得到第一地址,根据所述第一地址从密钥卡的群组对称密钥池中取出第三密钥,根据所述第三密钥和第一地址计算得到第一偏移量,生成第一原始参数,利用所述第一原始参数减去所述第一偏移量得到第一偏移参数,组合所述第一偏移参数、第一中间参数和第二中间参数作为第一密文;
向服务器发送所述第一密文;所述第一中间参数和第二中间参数用于供服务器计算得到第一偏移量,所述第一偏移量和第一偏移参数用于供服务器相加得到第一原始参数,所述第一原始参数、第一中间参数和第二中间参数用于供服务器计算得到所述第二原文,所述第一原文用于供服务器对所述第一签名验证通过后判断是否需要更新第二客户端中的原第一公钥;
接收来自服务器的第二密文;所述第二密文由服务器对第三原文进行所述签名计算和所述加密计算后得到,所述第三原文为服务器判断是否需要更新第二客户端中的原第一公钥后生成的判断结果;
对所述第二密文进行解密以及签名验证,并在签名验证通过后根据第三原文执行客户端密钥更新操作:解析所述判断结果,若所述判断结果包含新第一公钥和新第一公钥生成时间,则更新本地存储的原第一公钥和原第一公钥生成时间为新第一公钥和新第一公钥生成时间。
其中一实施例中,提供一种基于无证书密码学的抗量子计算保密通信的密钥更新方法,在被动更新时,参与方包括第二客户端和服务器,所述密钥更新方法实施在服务器包括:
接收来自所述第一客户端的第一密文;所述第一密文由第二客户端对第二原文进行加密计算得到,所述第二原文包括第一原文和第一签名,所述第一原文包括第一客户端ID和原第一公钥生成时间,所述第一签名由第二客户端对所述第一原文进行签名计算得到,所述签名计算包括:由第二客户端利用第二客户端ID从密钥卡的群组对称密钥池中取出第一密钥,利用所述第一密钥、第一原文和第一客户端部分公钥XA计算得到第一签名;所述加密计算包括:由第二客户端根据服务器ID从密钥卡的群组对称密钥池中取出第二密钥,根据所述第二密钥和服务器部分通信公钥YS计算得到第一中间参数,根据所述第二原文计算得到第二中间参数,利用哈希函数作用于第一中间参数和第二中间参数的组合得到第一地址,根据所述第一地址从密钥卡的群组对称密钥池中取出第三密钥,根据所述第三密钥和第一地址计算得到第一偏移量,生成第一原始参数,利用所述第一原始参数减去所述第一偏移量得到第一偏移参数,组合所述第一偏移参数、第一中间参数和第二中间参数作为第一密文;
所述服务器根据所述第一中间参数和第二中间参数计算得到第一偏移量,将所述第一偏移量和第一偏移参数相加得到第一原始参数,利用所述第一原始参数、第一中间参数和第二中间参数计算得到所述第二原文,解析所述第二原文得到第一原文和第一签名,对第一签名进行验证并在验证通过后判断是否需要更新第二客户端中的原第一公钥:根据第一原文中的第一客户端ID取出本地存储的最新的第一公钥生成时间,若本地存储的最新的第一公钥生成时间和第一原文中的原第一公钥生成时间不相等,则需要更新第二客户端中的原第一公钥;
将判断是否需要更新第二客户端中的原第一公钥后生成的判断结果作为第三原文,对所述第三原文进行所述签名计算得到第二签名,对所述第三原文和第二签名的组合进行所述加密计算得到第二密文;
将所述第二密文发送至所述第二客户端;所述第二密文用于供第二客户端解密得到所述第三原文和第二签名,所述第三原文用于供第二客户端对第二签名验证通过后执行客户端密钥更新操作。
在另一实施例中,根据所述第三密钥和第一地址计算得到第一偏移量,包括:
根据公式UKRmsA=HASH(UKHmsA||UKKmsA),计算得到参数UKRmsA,其中,HASH()为哈希函数,UKHmsA为第一地址,UKKmsA为第三密钥;
并根据公式UKPmsA=H1(UKRmsA),计算得到第一偏移量UKPmsA,其中,H1()为哈希函数。
本实施例中,利用密钥池中的密钥进行偏移量计算,使得仅有密钥卡拥有者可以恢复该偏移量而得到原始加密参数,从而难以破解会话内容,充分地保障了密钥更新过程的安全性。
在另一实施例中,客户端配置有客户端密钥卡,所述客户端密钥卡内存储有非对称密钥池、群组对称密钥池和客户端私钥;所述服务器配置有服务器密钥卡,所述服务器密钥卡内存储有非对称密钥池、群组对称密钥池、通信私钥和颁发私钥;所述客户端密钥卡内的非对称密钥池和服务器密钥卡内的非对称密钥池均包含客户端公钥和服务器公钥,所述服务器公钥包括通信公钥和颁发公钥,所述客户端公钥与通信公钥的结构相同,所述客户端私钥与通信私钥的结构相同。
本实施例中,客户端密钥卡和服务器密钥卡内存储非对称密钥池(公钥),对比使用对称密钥加密以抗量子计算的方法,其计算量更小。
本实施例中有一个服务器,对应多个客户端。客户端和服务器拥有不同的密钥卡,所有密钥卡都是由服务器颁发,密钥卡中存储有非对称密钥池(公钥)、群组对称密钥池和私钥,其中客户端密钥卡中存有该客户端的唯一私钥,而服务器密钥卡中存有服务器的两种私钥,如图1和图2所示。设实施例中的客户端为A和B,A和B各自从服务器得到密钥卡,服务器为S。
如图3所示,非对称密钥池(公钥)拥有服务器和各个客户端的公钥,每个公钥的存储位置还存有对应用户的ID,因此每个公钥可以用对应用户的ID搜索确定。对于服务器来说,服务器有两种公钥,其中通信公钥与客户端公钥的构成形式相同,而颁发公钥则是服务器独有的构成形式,用服务器ID可以从密钥卡中取出这两种公钥。对于客户端公钥而言,存储每个公钥pk的同时存储有一个pk生成时间Tpk,该Tpk是服务器生成或获取到该pk的时间,即Tpk统一由服务器确定。
本实施例采用密钥系统为无证书密码学,可参见论文《Certificateless PublicKey Cryptography》。对于服务器来说,假设服务器颁发私钥为s,其颁发公钥为P0=s*P,P为公钥参数。对于客户端A来说,假设有XA,YA∈G1 *,A的公钥pkA=<XA,YA>,其中部分公钥XA和部分公钥YA都存在密钥卡的非对称密钥池中,并且由用户ID可以同时取出XA和YA,然后可以得到整个公钥。同理,对于其他客户端公钥和服务器通信公钥,公钥的形成和存储与A相同。
密钥卡颁发后,出于客户端自身安全等考虑,可由客户端发起密钥更新的需求;其余用户使用密钥池中的某通信对方的公钥前,也需要查看是否需要更新。
在未做特殊说明的情况下本申请中的各名称以字母和数字组合为准,例如公钥pkA、pkA在本申请中表示同一含义,即公钥pkA;又如原文mA、第一原文mA和mA在本申请中表示同一含义,即第一原文mA;其余名称同理。且本申请中的服务器S、公钥pkAnew等表述中的S、pkAnew仅仅是为了便于区分和叙述,并不对参数本身有额外限定,例如颁发公钥P0、部分私钥xA中的P0、xA;其他同理。且本申请中的新第一公钥应理解为新生成的想要用于更新的第一公钥,原第一公钥应理解为当前用户密钥卡内存储的最新的第一公钥。
密钥更新包括主动更新和被动更新,以下分别对两种更新过程进行详述。
一、主动更新
步骤1、A(第一客户端)向S(服务器)提出需要更新A的公钥pkA。
A将自己的公钥pkA(原第一公钥,包括XA和YA,即XA||YA)、pkA的生成时间TpkA(原第一公钥生成时间)和想要更新的公钥pkAnew(新第一公钥)组合起来得到pkA||TpkA||pkAnew,命名为第一原文mA。
A对mA进行签名计算:先取A的ID并用哈希函数计算得到HIDA=HASH(IDA),然后将HIDA作为密钥指针随机数,在密钥卡的群组对称密钥池中得到位置PIDA,并在该位置取得对应的第一密钥KIDA,根据公式CIDA=FC(IDA,KIDA)计算得到CIDA,再用哈希函数H1作用于CIDA得到QA,如图4所示。其中FC(ID,K)=ID||K;或FC(ID,K)=ID⊕K;或FC(ID,K)=MAC(ID,K),表示使用消息认证算法。
本实施例中采用的签名算法为无证书密码学签名算法,可参见论文《Certificateless Public-Key Signature:Security Model and EfficientConstruction》。本实施例中有A的私钥skA=<DA,xA>,其中有A的部分私钥DA=sQA,s为服务器颁发私钥,且s∈RZ* q。同理,S的通信私钥skS=<DS,xS>。A的私钥与公钥的对应关系是:XA=xA*P,YA=xA*P0。同理,S的通信私钥与通信公钥的对应关系是:XS=xS*P,YS=xS*P0。A取随机数r∈Z* q,计算UmA=rP,P为公钥参数,并且有PA=XA,再根据公式VmA=DA+rH2(mA,IDA,PA,UmA)+xA H3(mA,IDA,PA)计算得到VmA,其中H2和H3为哈希函数。从而可以得到mA的第一签名sA=(UmA,VmA),即组合UmA和VmA作为第一签名。
A接下来对签名sA进行加密计算:本实施例采用加密算法为无证书密码学加密算法,可参见论文《Certificateless Public Key Cryptography》中的“Basic CL-PKE”算法。令第二原文msA={mA||sA},然后对msA进行加密。根据已知的服务器S的ID从密钥卡非对称密钥池中取出S的部分通信公钥YS和XS。计算公式e(XS,P0)=e(YS,P)是否成立,成立则继续后续流程,否则放弃加密。
A取S的ID并用哈希函数计算得到HIDS=HASH(IDS),然后将HIDS作为密钥指针随机数,在密钥卡的群组对称密钥池中得到位置PIDS,并在该位置取得对应的第二密钥KIDS,根据公式CIDS=FC(IDS,KIDS)计算得到CIDS,再用哈希函数H1作用于CIDS得到QS。选择一个随机数σ∈(0,1)n,根据公式i=H5(σ,msA)计算出i的值。然后计算第一中间参数VmsA=σ⊕H4(e(QS,YS)i),第二中间参数WmsA=msA⊕H6(σ)。其中H4、H5和H6为哈希函数。根据公式UKHmsA=HASH(VmsA||WmsA)计算出第一地址UKHmsA,用UKHmsA从密钥卡的群组对称密钥池中取出第三密钥UKKmsA,再根据公式UKRmsA=HASH(UKHmsA||UKKmsA)计算得到UKRmsA。对UKRmsA进行计算得到第一偏移量UKPmsA=H1(UKRmsA)。根据公式UmsA=iP计算得到第一原始参数UmsA,从而可以得到msA加密后的第一密文CmsA=<UmsA-UKPmsA,VmsA,WmsA>。其中,UmsA-UKPmsA为第一偏移参数。
A将第一密文,即消息组合IDA||UmsA-UKPmsA||VmsA||WmsA发送给服务器S。
步骤2、S处理A的请求。
S收到A发送过来的消息IDA||UmsA-UKPmsA||VmsA||WmsA后,得到其中的各个部分,并对其中的密文进行解密。S按照客户端中一样的方法计算得到UKPmsA:根据公式UKHmsA=HASH(VmsA||WmsA)计算出UKHmsA,用UKHmsA从密钥卡的群组对称密钥池中取出对称密钥UKKmsA,再根据公式UKRmsA=HASH(UKHmsA||UKKmsA)计算得到UKRmsA。对UKRmsA进行计算得到第一偏移量UKPmsA=H1(UKRmsA)。并且用UKPmsA加上UmsA-UKPmsA可得到UmsA。然后根据公式σ’=VmsA⊕H4(e(XS*DS,UmsA))计算出σ’,再根据公式msA’=WmsA⊕H6(σ’)。令i’=H5(σ’,msA’),验证等式UmsA=i’P是否成立。如果等式不成立,则S拒绝此次的消息并丢弃;如果等式成立,则msA’就是解密得到的原文,即msA’=msA={mA||sA},然后进行后续流程。
S得到mA及其签名sA后,需要对签名进行验证。sA即(UmA,VmA),取出其中的UmA和VmA。S取A的ID并用哈希函数计算得到HIDA=HASH(IDA),然后将HIDA作为密钥指针随机数,在密钥卡的群组对称密钥池中得到位置PIDA,并在该位置取得对应的密钥KIDA,根据公式CIDA=FC(IDA,KIDA)计算得到CIDA,再用哈希函数H1作用于CIDA得到QA。S用IDA从密钥卡非对称密钥池中取出A的部分公钥XA并且有PA=XA,S取出服务器颁发公钥P0。然后验证等式
e(VmA,P)=e(QA,P0)e(H2(mA,IDA,PA,UmA),UmA)e(H3(mA,IDA,PA),PA)是否成
立。如果等式不成立则验证失败,S丢弃收到的消息;如果等式成立,则证明mA来自客户端A,并继续执行后续流程,即执行服务器公钥更新操作:
S得到mA中包含的pkA、TpkA和pkAnew,记录下此时服务器的时间TpkAnew,并验证得到的pkA、TpkA和本地密钥池中的pkA、TpkA是否相等。如果相等,则更换本地密钥池中的pkA、TpkA为pkAnew、TpkAnew,完成更换公钥。
步骤3、S向A发送更新结果作为响应。
如果更新成功,令第三原文mSA=mA||TpkAnew,如果更新失败,则令第三原文mSA=mA||ResultA,其中ResultA为更新失败的原因。
S用按照步骤1中的方法对mSA进行签名,得到第二签名sSA=(UmSA,VmSA)。再将mSA和sSA打包得到mSA||sSA,命名为msSA。按照步骤1中的方法对msSA进行加密,计算得到偏移量UKPmsSA,得到第二密文CmsSA=<UmsSA-UKPmsSA,VmsA,WmsSA>。S将第二密文CmsSA发送给A。
步骤4、A接受S的响应。
如果A没有收到S发送过来的消息,则A将结果告知S,告知方式可以是邮件或即时消息等其他通信方式,告知S的目的是继续从S处接收更新成功或更新失败的通知,以完成密钥更新流程。
A收到S发送过来的消息CmsSA后,用步骤2中一样的方法解密第二密文<UmsSA-UKPmsSA,VmsA,WmsSA>后得到mSA||sSA,再用步骤2中一样的方法验证sSA是否是mSA的签名。如果验证失败,则A扔掉收到的消息,A将拒绝更新密钥;如果相等则说明sSA是mSA的签名,即原文mSA在传输过程中没有被修改,且证实了发送方S的身份,并继续执行后续流程,即执行客户端密钥更新操作:
解析mSA,如果得到的是ResultA则更新失败,可以查看失败原因,流程结束;如果得到的是TpkAnew,获取pkA、TpkA、pkAnew、TpkAnew。
验证从mAS中解析得到的pkA与TpkA是否和从密钥卡中取出的pkA与TpkA相等,如果相等则更换密钥卡中的pkA为pkAnew,更换密钥卡中的TpkA为TpkAnew。A同时也更新旧的私钥skA为新的私钥skAnew。
本实施例就每个步骤而言可视为针对前述相应的实施例,就所有步骤而言也可视为前述相应实施例的结合。
二、被动更新
步骤1、当B(第二客户端)需要使用A(第一客户端)的公钥时,B向S(服务器)询问是否需要更新A的公钥pkA。
B将A的ID值IDA、pkA的生成时间TpkA组合起来得到IDA||TpkA,命名为第一原文mB。其中包含TpkA的意思是向S上报B本地的A的公钥的最新时间,从而询问A的公钥是否需要更新。
B对mB进行签名计算:先取B的ID并用哈希函数计算得到HIDB=HASH(IDB),然后将HIDB作为密钥指针随机数,在密钥卡的群组对称密钥池中得到位置PIDB,并在该位置取得对应的密钥第一KIDB,根据公式CIDB=FC(IDB,KIDB)计算得到CIDB,再用哈希函数H1作用于CIDB得到QB。其中FC(ID,K)=ID||K;或FC(ID,K)=ID⊕K;或FC(ID,K)=MAC(ID,K),表示使用消息认证算法。
本实施例采用的签名算法为无证书密码学签名算法,可参见论文《Certificateless Public-Key Signature:Security Model and EfficientConstruction》。本发明中有B的私钥skB=<DB,xB>,其中有B的部分私钥DB=sQB,s为服务器颁发私钥,且s∈RZ* q。B取随机数r∈Z* q,计算UmB=rP,P为参数,并且有PB=XB,其中XB为B的部分公钥。再根据公式VmB=DB+rH2(mB,IDB,PB,UmB)+xB H3(mB,IDB,PB)计算得到VmB,其中H2和H3为哈希函数。从而可以得到mB的第一签名sB=(UmB,VmB),即组合UmB和VmB作为第一签名。
B接下来对签名sB进行加密计算:令第二原文msB={mB||sB},然后对msB进行加密。根据已知的服务器S的ID从密钥卡非对称密钥池中取出S的部分通信公钥YS和部分通信公钥XS。计算公式e(XS,P0)=e(YS,P)是否成立,成立则继续后续流程,否则放弃加密。
B取S的ID并用哈希函数计算得到HIDS=HASH(IDS),然后将HIDS作为密钥指针随机数,在密钥卡的群组对称密钥池中得到位置PIDS,并在该位置取得对应的第二密钥KIDS,根据公式CIDS=FC(IDS,KIDS)计算得到CIDS,再用哈希函数H1作用于CIDS得到QS。选择一个随机数σ∈(0,1)n,根据公式i=H5(σ,msB)计算出i的值。然后计算第一中间参数VmsB=σ⊕H4(e(QS,YS)i),第二中间参数WmsB=msB⊕H6(σ)。其中H4、H5和H6为哈希函数。根据公式UKHmsB=HASH(VmsB||WmsB)计算出第一地址UKHmsB,用UKHmsB从密钥卡的群组对称密钥池中取出第三密钥UKKmsB,再根据公式UKRmsB=HASH(UKHmsB||UKKmsB)计算得到UKRmsB。对UKRmsB进行计算得到第一偏移量UKPmsB=H1(UKRmsB)。根据公式UmsB=iP计算得到第一原始参数UmsB,从而可以得到msB加密后的第一密文CmsB=<UmsB-UKPmsB,VmsB,WmsB>。其中,UmsA-UKPmsA为第一偏移参数。
B将第一密文,即消息组合IDB||UmsB-UKPmsB||VmsB||WmsB发送给服务器S。
步骤2、S处理B的请求。
S收到B发送过来的消息IDB||UmsB-UKPmsB||VmsB||WmsB后,得到其中的各个部分,并对其中的密文进行解密。S按照客户端中一样的方法计算得到UKPmsB:根据公式UKHmsB=HASH(VmsB||WmsB)计算出UKHmsB,用UKHmsB从密钥卡的群组对称密钥池中取出对称密钥UKKmsB,再根据公式UKRmsB=HASH(UKHmsB||UKKmsB)计算得到UKRmsB。对UKRmsB进行计算得到第一偏移量UKPmsB=H1(UKRmsB)。并且用UKPmsB加上UmsB-UKPmsB可得到UmsB。然后根据公式σ’=VmsB⊕H4(e(XS*DS,UmsB))计算出σ’,再根据公式msB’=WmsB⊕H6(σ’)。令i’=H5(σ’,msB’),验证等式UmsB=i’P是否成立。如果等式不成立,则S拒绝此次的消息并丢弃;如果等式成立,则msB’就是解密得到的原文,即msB’=msB={mB||sB},然后进行后续流程。
S得到mB及其签名sB后,需要对签名进行验证。sB即(UmB,VmB),取出其中的UmB和VmB。S取B的ID并用哈希函数计算得到HIDB=HASH(IDB),然后将HIDB作为密钥指针随机数,在密钥卡的群组对称密钥池中得到位置PIDB,并在该位置取得对应的密钥KIDB,根据公式CIDB=FC(IDB,KIDB)计算得到CIDB,再用哈希函数H1作用于CIDB得到QB。S用IDB从密钥卡非对称密钥池中取出B的部分公钥XB并且有PB=XB,S取出服务器颁发公钥P0。然后验证等式e(VmB,P)=e(QB,P0)e(H2(mB,IDB,PB,UmB),UmB)e(H3(mB,IDB,PB),PB)是否成立。如果等式不成立则验证失败,S丢弃收到的消息;如果等式成立,则证明mB来自客户端B,并继续执行后续流程,即判断是否需要更新B中的公钥pkA。
S得到mB中包含的IDA和TpkA,再根据IDA从密钥卡中取出存在卡内的TpkA’,将其与从mB得到的TpkA进行比较,如果相等则无需更换A的公钥,如果不相等则需要更换A的公钥。如果需要更新A的公钥,S将获取新的公钥pkAnew和对应的时间TpkAnew,准备发送给B。
步骤3、S向B发送更新结果作为响应。
如果需要更新A的公钥,S令第三原文mSB=mB||pkAnew||TpkAnew,如果不需要更新A的公钥,则令第三原文mSB=mB||ResultB,其中ResultB包含不需要更新A的公钥的内容。
S用按照步骤1中的方法对mSB进行签名,得到第二签名sSB=(UmSB,VmSB)。再将mSB和sSB打包得到mSB||sSB,命名为msSB。按照步骤1中的方法对msSB进行加密,计算得到偏移量UKPmsSB,得到第二密文CmsSB=<UmsSB-UKPmsSB,VmsB,WmsSB>。S将第二密文CmsSB发送给B。
步骤4、B接受S的响应。
B收到S发送过来的消息CmsSB后,用步骤2中一样的方法解密第二密文<UmsSB-UKPmsSB,VmsB,WmsSB>后得到mSB||sSB,再用步骤2中一样的方法验证sSB是否是mSB的签名。如果验证失败,则B扔掉收到的消息,B将拒绝更新密钥;如果相等则说明sSB是mSB的签名,即原文mSB在传输过程中没有被修改,且证实了发送方S的身份,并继续执行后续流程,即执行客户端密钥更新操作:
解析mSB,如果得到的是ResultB则无需更新,流程结束;如果得到的是pkAnew和TpkAnew,则更换密钥卡中的pkA为pkAnew,更换密钥卡中的TpkA为TpkAnew。
本实施例就每个步骤而言可视为针对前述相应的实施例,就所有步骤而言也可视为前述相应实施例的结合。
本实施例中,使用密钥卡存服务器和客户端的所有公钥、群组对称密钥和各自的私钥,根据ID值就能选择密钥卡中的公钥进行计算,而且整个计算过程中公钥和私钥不会出密钥卡。因此本实施例解决了公钥指针随机数难以维护的问题,用户通信前仅需要使用对方ID和密钥卡就可以安全通信。密钥池一直位于密钥卡中,密钥卡是独立的硬件隔离设备,被恶意软件或恶意操作窃取密钥可能性大大降低。
同时,本实施例对基于身份的加密流程进行改进,使得公私钥的计算和消息的加解密不仅取决于自身身份ID和算法的系统参数,还涉及到相应群组的对称密钥池,不拥有对称密钥池的敌方将难以计算得到用户的公钥。
另外,客户端与服务器之间传输消息时,利用密钥池中的密钥对加密参数增加了偏移量,仅有密钥卡拥有者可以恢复该偏移量而得到原始加密参数,这让量子计算机在传输过程中难以破解加密参数,从而难以破解会话内容,充分地保障了密钥更新过程的安全性。值得指出的是本实施例的抗量子计算方法,对比使用对称密钥加密以抗量子计算的方法,其计算量更小。
本申请中,以非对称密钥池为例,说明了如何安全更新非对称密钥池数据的方法。本申请也可以用于对密钥卡中的其他数据进行更新,例如对称密钥池、用户共享数据等。
在一实施例中,提供了一种计算机设备,即一种基于无证书密码学的抗量子计算保密通信的密钥更新系统,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现基于无证书密码学的抗量子计算保密通信的密钥更新方法的步骤。
计算机设备可以是终端,其内部结构可以包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,计算机设备的处理器用于提供计算和控制能力。计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现上述基于无证书密码学的抗量子计算保密通信的密钥更新方法。计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,各设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
在另一实施例中,提供了一种基于无证书密码学的抗量子计算保密通信的密钥更新系统,所述抗量子计算保密通信的密钥更新系统包括客户端和服务器,客户端配置有客户端密钥卡,所述客户端密钥卡内存储有非对称密钥池、群组对称密钥池和客户端私钥;所述服务器配置有服务器密钥卡,所述服务器密钥卡内存储有非对称密钥池、群组对称密钥池、通信私钥和颁发私钥;所述客户端密钥卡内的非对称密钥池和服务器密钥卡内的非对称密钥池均包含客户端公钥和服务器的公钥,所述客户端私钥与通信私钥的结构相同;
所述客户端和服务器通过通信网络实现所述的基于无证书密码学的抗量子计算保密通信的密钥更新方法的步骤。
关于基于无证书密码学的抗量子计算保密通信的密钥更新系统的具体限定可以参见上文中对于基于无证书密码学的抗量子计算保密通信的密钥更新方法的限定,在此不再赘述。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (9)
1.基于无证书密码学的保密通信的密钥更新方法,在主动更新时,其特征在于,参与方包括第一客户端和服务器,所述密钥更新方法实施在第一客户端包括:
生成新第一公钥和新第一私钥,组合原第一公钥、原第一公钥生成时间以及新第一公钥作为第一原文,对所述第一原文进行签名计算:利用第一客户端ID从密钥卡的群组对称密钥池中取出第一密钥,利用所述第一密钥、第一原文和第一客户端部分公钥XA计算得到第一签名;
将所述第一原文和所述第一签名组合得到第二原文,对所述第二原文进行加密计算:根据服务器ID用哈希函数计算得到密钥指针随机数,从密钥卡的群组对称密钥池中取出第二密钥;
根据所述第二密钥和服务器部分通信公钥YS计算得到第一中间参数,包括:根据公式CIDS=FC(IDS,KIDS)计算得到CIDS,利用哈希函数作用于CIDS得到QS,选择一个随机数σ,根据公式i=H5(σ,msA)计算出i的值,进而获得第一中间参数VmsA=σ⊕H4(e(QS,YS)i),其中FC表示消息验证算法,IDS表示所述服务器ID,KIDS表示所述第二密钥,msA表示所述第二原文;
根据所述第二原文计算得到第二中间参数,利用哈希函数作用于第一中间参数和第二中间参数的组合得到第一地址,第二中间参数WmsA=msA⊕H6(σ),H4、H5和H6为哈希函数,第一地址根据公式UKHmsA=HASH(VmsA||WmsA)计算获得;
根据所述第一地址从密钥卡的群组对称密钥池中取出第三密钥,根据所述第三密钥和第一地址计算得到第一偏移量,生成第一原始参数,包括:用第一地址从密钥卡的群组对称密钥池中取出第三密钥UKKmsA,再根据公式UKRmsA=HASH(UKHmsA||UKKmsA)计算得到UKRmsA,对UKRmsA进行计算得到第一偏移量UKPmsA=H1(UKRmsA),根据公式UmsA=iP计算得到第一原始参数UmsA;
利用所述第一原始参数减去所述第一偏移量得到第一偏移参数,组合所述第一偏移参数、第一中间参数和第二中间参数作为第一密文;
向服务器发送所述第一密文;所述第一中间参数和第二中间参数用于供服务器计算得到第一偏移量,所述第一偏移量和第一偏移参数用于供服务器相加得到第一原始参数,所述第一原始参数、第一中间参数和第二中间参数用于供服务器对所述第一密文解密计算后得到所述第二原文,解析所述第二原文得到第一原文和第一签名,所述第一原文用于供服务器对所述第一签名验证通过后执行服务器密钥更新操作,记录服务器当前时间为新第一公钥生成时间,若验证通过,组合所述第一原文和新第一公钥生成时间,形成第三原文;
接收来自服务器的第二密文;所述第二密文由服务器对第三原文和第二签名的组合进行所述加密计算得到,所述第二签名为所述服务器对所述第三原文进行所述签名计算得到,所述第三原文为服务器执行服务器密钥更新操作后生成的执行结果;
对所述第二密文解密得到所述第三原文,验证所述第二签名是否为所述第三原文的签名,并在签名验证通过后根据第三原文执行客户端密钥更新操作:解析所述执行结果,若所述执行结果包含新第一公钥和新第一公钥生成时间,则更新本地存储的原第一公钥、原第一公钥生成时间和原第一私钥为新第一公钥、新第一公钥生成时间和新第一私钥。
2.基于无证书密码学的保密通信的密钥更新方法,在主动更新时,其特征在于,参与方包括第一客户端和服务器,所述密钥更新方法实施在服务器包括:
接收来自所述第一客户端的第一密文;所述第一密文由第一客户端对第二原文进行加密计算得到,所述第二原文包括第一原文和第一签名,所述第一原文包括原第一公钥、原第一公钥生成时间以及新第一公钥,所述第一签名由第一客户端对所述第一原文进行签名计算得到,所述签名计算包括:由第一客户端利用第一客户端ID从密钥卡的群组对称密钥池中取出第一密钥,利用所述第一密钥、第一原文和第一客户端部分公钥XA计算得到第一签名;所述加密计算包括:由第一客户端根据服务器ID从密钥卡的群组对称密钥池中取出第二密钥,根据服务器ID用哈希函数计算得到密钥指针随机数,从密钥卡的群组对称密钥池中取出第二密钥;
根据所述第二密钥和服务器部分通信公钥YS计算得到第一中间参数,包括:根据公式CIDS=FC(IDS,KIDS)计算得到CIDS,利用哈希函数作用于CIDS得到QS,选择一个随机数σ,根据公式i=H5(σ,msA)计算出i的值,进而获得第一中间参数VmsA=σ⊕H4(e(QS,YS)i),其中FC表示消息验证算法,IDS表示所述服务器ID,KIDS表示所述第二密钥,msA表示所述第二原文;
根据所述第二原文计算得到第二中间参数,利用哈希函数作用于第一中间参数和第二中间参数的组合得到第一地址,第二中间参数WmsA=msA⊕H6(σ),H4、H5和H6为哈希函数,第一地址根据公式UKHmsA=HASH(VmsA||WmsA)计算获得;
根据所述第一地址从密钥卡的群组对称密钥池中取出第三密钥,根据所述第三密钥和第一地址计算得到第一偏移量,生成第一原始参数,包括:用第一地址从密钥卡的群组对称密钥池中取出第三密钥UKKmsA,再根据公式UKRmsA=HASH(UKHmsA||UKKmsA)计算得到UKRmsA,对UKRmsA进行计算得到第一偏移量UKPmsA=H1(UKRmsA),根据公式UmsA=iP计算得到第一原始参数UmsA;
利用所述第一原始参数减去所述第一偏移量得到第一偏移参数,组合所述第一偏移参数、第一中间参数和第二中间参数作为第一密文;
根据所述第一中间参数和第二中间参数计算得到第一偏移量,将所述第一偏移量和第一偏移参数相加得到第一原始参数,利用所述第一原始参数、第一中间参数和第二中间参数对所述第一密文解密计算后得到所述第二原文,解析所述第二原文得到第一原文和第一签名,对第一签名进行验证并在验证通过后执行服务器密钥更新操作,包括:解析第一原文,记录服务器当前时间为新第一公钥生成时间,替换本地存储的原第一公钥和原第一公钥生成时间为第一原文中的新第一公钥和新第一公钥生成时间;
若验证通过,执行服务器公钥更新操作后生成执行结果作为第三原文,对所述第三原文进行所述签名计算得到第二签名,对所述第三原文和第二签名的组合进行所述加密计算得到第二密文,所述第三原文由所述第一原文和新第一公钥生成时间组合形成;
将所述第二密文发送至所述第一客户端;所述第二密文用于供第一客户端解密得到所述第三原文和第二签名,所述第三原文用于供第一客户端对所述第二密文解密得到所述第三原文,验证所述第二签名是否为所述第三原文的签名,验证通过后执行客户端密钥更新操作。
3.基于无证书密码学的保密通信的密钥更新方法,在主动更新时,其特征在于,参与方包括第一客户端和服务器,所述密钥更新方法包括:
所述第一客户端生成新第一公钥和新第一私钥,组合原第一公钥、原第一公钥生成时间以及新第一公钥作为第一原文,对所述第一原文进行签名计算:利用第一客户端ID从密钥卡的群组对称密钥池中取出第一密钥,利用所述第一密钥、第一原文和第一客户端部分公钥XA计算得到第一签名;
所述第一客户端将所述第一原文和所述第一签名组合得到第二原文,对所述第二原文进行加密计算:根据服务器ID从密钥卡的群组对称密钥池中取出第二密钥,根据服务器ID用哈希函数计算得到密钥指针随机数,从密钥卡的群组对称密钥池中取出第二密钥;
根据所述第二密钥和服务器部分通信公钥YS计算得到第一中间参数,包括:根据公式CIDS=FC(IDS,KIDS)计算得到CIDS,利用哈希函数作用于CIDS得到QS,选择一个随机数σ,根据公式i=H5(σ,msA)计算出i的值,进而获得第一中间参数VmsA=σ⊕H4(e(QS,YS)i),其中FC表示消息验证算法,IDS表示所述服务器ID,KIDS表示所述第二密钥,msA表示所述第二原文;
根据所述第二原文计算得到第二中间参数,利用哈希函数作用于第一中间参数和第二中间参数的组合得到第一地址,第二中间参数WmsA=msA⊕H6(σ),H4、H5和H6为哈希函数,第一地址根据公式UKHmsA=HASH(VmsA||WmsA)计算获得;
根据所述第一地址从密钥卡的群组对称密钥池中取出第三密钥,根据所述第三密钥和第一地址计算得到第一偏移量,生成第一原始参数,包括:用第一地址从密钥卡的群组对称密钥池中取出第三密钥UKKmsA,再根据公式UKRmsA=HASH(UKHmsA||UKKmsA)计算得到UKRmsA,对UKRmsA进行计算得到第一偏移量UKPmsA=H1(UKRmsA),根据公式UmsA=iP计算得到第一原始参数UmsA;
利用所述第一原始参数减去所述第一偏移量得到第一偏移参数,组合所述第一偏移参数、第一中间参数和第二中间参数作为第一密文,向服务器发送所述第一密文;
所述服务器接收来自所述第一客户端的第一密文,根据所述第一中间参数和第二中间参数计算得到第一偏移量,将所述第一偏移量和第一偏移参数相加得到第一原始参数,利用所述第一原始参数、第一中间参数和第二中间参数对所述第一密文解密计算后得到所述第二原文,解析所述第二原文得到第一原文和第一签名,对第一签名进行验证并在验证通过后执行服务器密钥更新操作,包括:解析第一原文,记录服务器当前时间为新第一公钥生成时间,替换本地存储的原第一公钥和原第一公钥生成时间为第一原文中的新第一公钥和新第一公钥生成时间;
若验证通过,所述服务器执行服务器公钥更新操作后生成执行结果作为第三原文,所述第三原文由所述第一原文和新第一公钥生成时间组合形成;
对所述第三原文进行所述签名计算得到第二签名,对所述第三原文和第二签名的组合进行所述加密计算得到第二密文,将所述第二密文发送至所述第一客户端;
所述第一客户端接收来自服务器的第二密文,对所述第二密文解密得到所述第三原文,验证所述第二签名是否为所述第三原文的签名,并在签名验证通过后根据第三原文执行客户端密钥更新操作:解析所述执行结果,若所述执行结果包含新第一公钥和新第一公钥生成时间,则更新本地存储的原第一公钥、原第一公钥生成时间和原第一私钥为新第一公钥、新第一公钥生成时间和新第一私钥。
4.基于无证书密码学的保密通信的密钥更新方法,在被动更新时,其特征在于,参与方包括第二客户端和服务器,所述密钥更新方法实施在第二客户端包括:
组合第二客户端ID和原第一公钥生成时间得到第一原文,所述原第一公钥生成时间为第二客户端存储的第一客户端的第一公钥的最新生成时间,对所述第一原文进行签名计算:利用第二客户端ID从密钥卡的群组对称密钥池中取出第一密钥,利用所述第一密钥、第一原文和第二客户端部分公钥XB计算得到第一签名;
将所述第一原文和所述第一签名组合得到第二原文,对所述第二原文进行加密计算:根据服务器ID从密钥卡的群组对称密钥池中取出第二密钥,根据服务器ID用哈希函数计算得到密钥指针随机数,从密钥卡的群组对称密钥池中取出第二密钥;
根据所述第二密钥和服务器部分通信公钥YS计算得到第一中间参数,包括:根据公式CIDS=FC(IDS,KIDS)计算得到CIDS,利用哈希函数作用于CIDS得到QS,选择一个随机数σ,根据公式i=H5(σ,msB)计算出i的值,进而获得第一中间参数VmsB=σ⊕H4(e(QS,YS)i),其中FC表示消息验证算法,IDS表示所述服务器ID,KIDS表示所述第二密钥,msB表示所述第二原文;
根据所述第二原文计算得到第二中间参数,利用哈希函数作用于第一中间参数和第二中间参数的组合得到第一地址,第二中间参数WmsB=msB⊕H6(σ),H4、H5和H6为哈希函数,第一地址根据公式UKHmsB=HASH(VmsB||WmsB)计算获得;
根据所述第一地址从密钥卡的群组对称密钥池中取出第三密钥,根据所述第三密钥和第一地址计算得到第一偏移量,生成第一原始参数,包括:用第一地址从密钥卡的群组对称密钥池中取出第三密钥UKKmsB,再根据公式UKRmsB=HASH(UKHmsB||UKKmsB)计算得到UKRmsB,对UKRmsB进行计算得到第一偏移量UKPmsB=H1(UKRmsB),根据公式UmsB=iP计算得到第一原始参数UmsB;
利用所述第一原始参数减去所述第一偏移量得到第一偏移参数,组合所述第一偏移参数、第一中间参数和第二中间参数作为第一密文;
向服务器发送所述第一密文;所述第一中间参数和第二中间参数用于供服务器计算得到第一偏移量,所述第一偏移量和第一偏移参数用于供服务器相加得到第一原始参数,所述第一原始参数、第一中间参数和第二中间参数用于供服务器对所述第一密文解密计算后得到所述第二原文,解析所述第二原文得到第一原文和第一签名,所述第一原文用于供服务器对所述第一签名验证通过后判断是否需要更新第二客户端中的原第一公钥,记录服务器当前时间为新第一公钥生成时间,若验证通过,组合所述第一原文和新第一公钥生成时间,形成第三原文;
接收来自服务器的第二密文;所述第二密文由服务器对第三原文和第二签名的组合进行所述加密计算得到,所述第二签名为所述服务器对所述第三原文进行所述签名计算得到,所述第三原文为服务器判断是否需要更新第二客户端中的原第一公钥后生成的判断结果;
对所述第二密文解密得到所述第三原文,验证所述第二签名是否为所述第三原文的签名,并在签名验证通过后根据第三原文执行客户端密钥更新操作:解析所述判断结果,若所述判断结果包含新第一公钥和新第一公钥生成时间,则更新本地存储的原第一公钥和原第一公钥生成时间为新第一公钥和新第一公钥生成时间。
5.基于无证书密码学的保密通信的密钥更新方法,在被动更新时,其特征在于,参与方包括第二客户端和服务器,所述密钥更新方法实施在服务器包括:
接收来自所述第二客户端的第一密文;所述第一密文由第二客户端对第二原文进行加密计算得到,所述第二原文包括第一原文和第一签名,所述第一原文包括第二客户端ID和原第一公钥生成时间,所述第一签名由第二客户端对所述第一原文进行签名计算得到,所述签名计算包括:由第二客户端利用第二客户端ID从密钥卡的群组对称密钥池中取出第一密钥,利用所述第一密钥、第一原文和第一客户端部分公钥XA计算得到第一签名;所述加密计算包括:由第二客户端根据服务器ID从密钥卡的群组对称密钥池中取出第二密钥,根据服务器ID用哈希函数计算得到密钥指针随机数,从密钥卡的群组对称密钥池中取出第二密钥;
根据所述第二密钥和服务器部分通信公钥YS计算得到第一中间参数,包括:根据公式CIDS=FC(IDS,KIDS)计算得到CIDS,利用哈希函数作用于CIDS得到QS,选择一个随机数σ,根据公式i=H5(σ,msB)计算出i的值,进而获得第一中间参数VmsB=σ⊕H4(e(QS,YS)i),其中FC表示消息验证算法,IDS表示所述服务器ID,KIDS表示所述第二密钥,msB表示所述第二原文;
根据所述第二原文计算得到第二中间参数,利用哈希函数作用于第一中间参数和第二中间参数的组合得到第一地址,第二中间参数WmsB=msB⊕H6(σ),H4、H5和H6为哈希函数,第一地址根据公式UKHmsB=HASH(VmsB||WmsB)计算获得;
根据所述第一地址从密钥卡的群组对称密钥池中取出第三密钥,根据所述第三密钥和第一地址计算得到第一偏移量,生成第一原始参数,包括:用第一地址从密钥卡的群组对称密钥池中取出第三密钥UKKmsB,再根据公式UKRmsB=HASH(UKHmsB||UKKmsB)计算得到UKRmsB,对UKRmsB进行计算得到第一偏移量UKPmsB=H1(UKRmsB),根据公式UmsB=iP计算得到第一原始参数UmsB;
利用所述第一原始参数减去所述第一偏移量得到第一偏移参数,组合所述第一偏移参数、第一中间参数和第二中间参数作为第一密文;
所述服务器根据所述第一中间参数和第二中间参数计算得到第一偏移量,将所述第一偏移量和第一偏移参数相加得到第一原始参数,利用所述第一原始参数、第一中间参数和第二中间参数对所述第一密文解密计算后得到所述第二原文,解析所述第二原文得到第一原文和第一签名,对第一签名进行验证并在验证通过后判断是否需要更新第二客户端中的原第一公钥:根据第一原文中的第二客户端ID取出本地存储的最新的第一公钥生成时间,若本地存储的最新的第一公钥生成时间和第一原文中的原第一公钥生成时间不相等,则需要更新第二客户端中的原第一公钥;
若更新成功,组合所述第一原文和新第一公钥生成时间,形成第三原文,对所述第三原文进行所述签名计算得到第二签名,对所述第三原文和第二签名的组合进行所述加密计算得到第二密文;
将所述第二密文发送至所述第二客户端;所述第二密文用于供第二客户端解密得到所述第三原文和第二签名,所述第三原文用于供第二客户端对所述第二密文解密得到所述第三原文,验证所述第二签名是否为所述第三原文的签名,验证通过后执行客户端密钥更新操作。
6.基于无证书密码学的保密通信的密钥更新方法,在被动更新时,其特征在于,参与方包括第二客户端和服务器,所述密钥更新方法包括:
所述第二客户端组合第二客户端ID和原第一公钥生成时间得到第一原文,所述原第一公钥生成时间为第二客户端存储的第一客户端的第一公钥的最新生成时间,对所述第一原文进行签名计算:利用第二客户端ID从密钥卡的群组对称密钥池中取出第一密钥,利用所述第一密钥、第一原文和第二客户端部分公钥XB计算得到第一签名;
所述第二客户端将所述第一原文和所述第一签名组合得到第二原文,对所述第二原文进行加密计算:根据服务器ID从密钥卡的群组对称密钥池中取出第二密钥,根据服务器ID用哈希函数计算得到密钥指针随机数,从密钥卡的群组对称密钥池中取出第二密钥;
根据所述第二密钥和服务器部分通信公钥YS计算得到第一中间参数,包括:根据公式CIDS=FC(IDS,KIDS)计算得到CIDS,利用哈希函数作用于CIDS得到QS,选择一个随机数σ,根据公式i=H5(σ,msB)计算出i的值,进而获得第一中间参数VmsB=σ⊕H4(e(QS,YS)i),其中FC表示消息验证算法,IDS表示所述服务器ID,KIDS表示所述第二密钥,msB表示所述第二原文;
根据所述第二原文计算得到第二中间参数,利用哈希函数作用于第一中间参数和第二中间参数的组合得到第一地址,第二中间参数WmsB=msB⊕H6(σ),H4、H5和H6为哈希函数,第一地址根据公式UKHmsB=HASH(VmsB||WmsB)计算获得;
根据所述第一地址从密钥卡的群组对称密钥池中取出第三密钥,根据所述第三密钥和第一地址计算得到第一偏移量,生成第一原始参数,包括:用第一地址从密钥卡的群组对称密钥池中取出第三密钥UKKmsB,再根据公式UKRmsB=HASH(UKHmsB||UKKmsB)计算得到UKRmsB,对UKRmsB进行计算得到第一偏移量UKPmsB=H1(UKRmsB),根据公式UmsB=iP计算得到第一原始参数UmsB;
利用所述第一原始参数减去所述第一偏移量得到第一偏移参数,组合所述第一偏移参数、第一中间参数和第二中间参数作为第一密文,向服务器发送所述第一密文;
所述服务器接收来自所述第二客户端的第一密文,根据所述第一中间参数和第二中间参数计算得到第一偏移量,将所述第一偏移量和第一偏移参数相加得到第一原始参数,利用所述第一原始参数、第一中间参数和第二中间参数对所述第一密文解密计算后得到所述第二原文,解析所述第二原文得到第一原文和第一签名,对第一签名进行验证并在验证通过后判断是否需要更新第二客户端中的原第一公钥:根据第一原文中的第一客户端ID取出本地存储的最新的第一公钥生成时间,若本地存储的最新的第一公钥生成时间和第一原文中的原第一公钥生成时间不相等,则需要更新第二客户端中的原第一公钥;
若更新成功,组合所述第一原文和新第一公钥生成时间,形成第三原文,对所述第三原文进行所述签名计算得到第二签名,对所述第三原文和第二签名的组合进行所述加密计算得到第二密文,将所述第二密文发送至所述第二客户端;
所述第二客户端接收来自服务器的第二密文,对所述第二密文解密得到所述第三原文,验证所述第二签名是否为所述第三原文的签名,并在签名验证通过后根据第三原文执行客户端密钥更新操作:解析所述判断结果,若所述判断结果包含新第一公钥和新第一公钥生成时间,则更新本地存储的原第一公钥和原第一公钥生成时间为新第一公钥和新第一公钥生成时间。
7.如权利要求6中任一项所述的基于无证书密码学的保密通信的密钥更新方法,其特征在于,根据所述第三密钥和第一地址计算得到第一偏移量,包括:
根据公式UKRmsA=HASH(UKHmsA||UKKmsA),计算得到参数UKRmsA,其中,HASH()为哈希函数,UKHmsA为第一地址,UKKmsA为第三密钥;
并根据公式UKPmsA=H1(UKRmsA),计算得到第一偏移量UKPmsA,其中,H1()为哈希函数。
8.如权利要求6中任一项所述的基于无证书密码学的保密通信的密钥更新方法,其特征在于,客户端配置有客户端密钥卡,所述客户端密钥卡内存储有非对称密钥池、群组对称密钥池和客户端私钥;所述服务器配置有服务器密钥卡,所述服务器密钥卡内存储有非对称密钥池、群组对称密钥池、通信私钥和颁发私钥;所述客户端密钥卡内的非对称密钥池和服务器密钥卡内的非对称密钥池均包含客户端公钥和服务器公钥,所述服务器公钥包括通信公钥和颁发公钥,所述客户端公钥与通信公钥的结构相同,所述客户端私钥与通信私钥的结构相同。
9.基于无证书密码学的保密通信的密钥更新系统,其特征在于,所述保密通信的密钥更新系统包括客户端和服务器,客户端配置有客户端密钥卡,所述客户端密钥卡内存储有非对称密钥池、群组对称密钥池和客户端私钥;所述服务器配置有服务器密钥卡,所述服务器密钥卡内存储有非对称密钥池、群组对称密钥池、通信私钥和颁发私钥;所述客户端密钥卡内的非对称密钥池和服务器密钥卡内的非对称密钥池均包含客户端公钥和服务器的公钥,所述客户端私钥与通信私钥的结构相同;
所述客户端和服务器通过通信网络实现权利要求3或6中所述的基于无证书密码学的保密通信的密钥更新方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910656966.3A CN110417547B (zh) | 2019-07-19 | 2019-07-19 | 基于无证书密码学的保密通信的密钥更新方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910656966.3A CN110417547B (zh) | 2019-07-19 | 2019-07-19 | 基于无证书密码学的保密通信的密钥更新方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110417547A CN110417547A (zh) | 2019-11-05 |
CN110417547B true CN110417547B (zh) | 2023-06-09 |
Family
ID=68362124
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910656966.3A Active CN110417547B (zh) | 2019-07-19 | 2019-07-19 | 基于无证书密码学的保密通信的密钥更新方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110417547B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111918285B (zh) * | 2020-06-17 | 2022-09-23 | 南京如般量子科技有限公司 | 基于id密码学的抗量子计算群组通信方法及系统 |
CN112702161B (zh) * | 2020-12-23 | 2023-10-20 | 北京掌上无限科技有限公司 | 一次性数据对称加密解密算法 |
CN114374523B (zh) * | 2022-03-23 | 2022-05-31 | 南京易科腾信息技术有限公司 | 签名验签方法、装置及存储介质 |
CN114726555B (zh) * | 2022-06-08 | 2022-09-02 | 南京易科腾信息技术有限公司 | 认证及密钥协商方法、设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103095461A (zh) * | 2013-01-23 | 2013-05-08 | 山东量子科学技术研究院有限公司 | 一种量子安全网络设备间网络信令的认证方法 |
CN109687977A (zh) * | 2019-01-10 | 2019-04-26 | 如般量子科技有限公司 | 基于多个密钥池的抗量子计算数字签名方法和抗量子计算数字签名系统 |
CN109728906A (zh) * | 2019-01-11 | 2019-05-07 | 如般量子科技有限公司 | 基于非对称密钥池的抗量子计算非对称加密方法和系统 |
CN109756500A (zh) * | 2019-01-11 | 2019-05-14 | 如般量子科技有限公司 | 基于多个非对称密钥池的抗量子计算https通信方法和系统 |
CN109831306A (zh) * | 2019-01-15 | 2019-05-31 | 如般量子科技有限公司 | 基于多个密钥池的抗量子计算环签名方法和系统 |
CN109981255A (zh) * | 2019-04-02 | 2019-07-05 | 如般量子科技有限公司 | 密钥池的更新方法和系统 |
-
2019
- 2019-07-19 CN CN201910656966.3A patent/CN110417547B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103095461A (zh) * | 2013-01-23 | 2013-05-08 | 山东量子科学技术研究院有限公司 | 一种量子安全网络设备间网络信令的认证方法 |
CN109687977A (zh) * | 2019-01-10 | 2019-04-26 | 如般量子科技有限公司 | 基于多个密钥池的抗量子计算数字签名方法和抗量子计算数字签名系统 |
CN109728906A (zh) * | 2019-01-11 | 2019-05-07 | 如般量子科技有限公司 | 基于非对称密钥池的抗量子计算非对称加密方法和系统 |
CN109756500A (zh) * | 2019-01-11 | 2019-05-14 | 如般量子科技有限公司 | 基于多个非对称密钥池的抗量子计算https通信方法和系统 |
CN109831306A (zh) * | 2019-01-15 | 2019-05-31 | 如般量子科技有限公司 | 基于多个密钥池的抗量子计算环签名方法和系统 |
CN109981255A (zh) * | 2019-04-02 | 2019-07-05 | 如般量子科技有限公司 | 密钥池的更新方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110417547A (zh) | 2019-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110417547B (zh) | 基于无证书密码学的保密通信的密钥更新方法和系统 | |
US7688975B2 (en) | Method and apparatus for dynamic generation of symmetric encryption keys and exchange of dynamic symmetric key infrastructure | |
CN110557248B (zh) | 基于无证书密码学的签密的密钥更新方法和系统 | |
CN109756329B (zh) | 基于私钥池的抗量子计算共享密钥协商方法和系统 | |
TWI701929B (zh) | 密碼運算、創建工作密鑰的方法、密碼服務平台及設備 | |
US6915434B1 (en) | Electronic data storage apparatus with key management function and electronic data storage method | |
CN110519046B (zh) | 基于一次性非对称密钥对和qkd的量子通信服务站密钥协商方法和系统 | |
US20170244687A1 (en) | Techniques for confidential delivery of random data over a network | |
US20050157880A1 (en) | Computer system having an autonomous process for centralized cryptographic key administration | |
CN109981255B (zh) | 密钥池的更新方法和系统 | |
US7877604B2 (en) | Proof of execution using random function | |
US20020071566A1 (en) | Computer system employing a split-secret cryptographic key linked to a password-based cryptographic key security scheme | |
JP6753403B2 (ja) | 情報処理装置、認証システム、認証方法、並びにコンピュータ・プログラム | |
CN109728906B (zh) | 基于非对称密钥池的抗量子计算非对称加密方法和系统 | |
US20020141593A1 (en) | Multiple cryptographic key linking scheme on a computer system | |
US20020071565A1 (en) | Software process pre-authorization scheme for applications on a computer system | |
US20020071567A1 (en) | Scalable computer system using remote agents to manipulate cryptographic keys | |
CN109347832A (zh) | 一种动态数据共享方法、终端设备及代理服务器 | |
CN112187450B (zh) | 密钥管理通信的方法、装置、设备及存储介质 | |
CN110380859B (zh) | 基于非对称密钥池对和dh协议的量子通信服务站身份认证方法和系统 | |
CN110690957A (zh) | 基于联盟链和隐式证书的抗量子计算私钥备份、挂失及恢复方法及系统 | |
CN110557367B (zh) | 基于证书密码学的抗量子计算保密通信的密钥更新方法和系统 | |
US20020071563A1 (en) | Method and apparatus for cryptographic key rollover during operation | |
US20020071561A1 (en) | Method and apparatus for enforcing the separation of computer operations and business management roles in a cryptographic system | |
CN110620668B (zh) | 基于区块链的抗量子计算公钥池更新方法和系统 |
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 |