CN112910627A - 密钥的更新方法、数据解密方法、数字签名的验证方法 - Google Patents
密钥的更新方法、数据解密方法、数字签名的验证方法 Download PDFInfo
- Publication number
- CN112910627A CN112910627A CN201911221985.XA CN201911221985A CN112910627A CN 112910627 A CN112910627 A CN 112910627A CN 201911221985 A CN201911221985 A CN 201911221985A CN 112910627 A CN112910627 A CN 112910627A
- Authority
- CN
- China
- Prior art keywords
- key
- processing
- digital signature
- processing times
- module
- 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.)
- Granted
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/40—Network security protocols
-
- 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
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- 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
-
- 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
- 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
-
- 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/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- 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
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Power Engineering (AREA)
- Storage Device Security (AREA)
Abstract
本申请实施例提供一种密钥的更新方法、数据解密方法、数字签名的验证方法,上述方法中,第一密钥由基准值经过第一处理次数的单向映射处理后生成,第二密钥由基准值经过第二处理次数的单向映射处理后生成,第二处理次数小于第一处理次数。在本地存储第一密钥,作为主密钥使用,当接收到密钥更新指令时,对本地存储的基准值进行第二处理次数的单向映射处理,即可生成第二密钥,将第二密钥作为新的主密钥,即可完成对主密钥的更新。当收到第一密钥加密或者签名的信息时,对第二密钥进行单向映射处理后,即可得到第一密钥,进而使用第一密钥进行解密或者签名验证。由此,实现了对密钥的更新,并且能够根据当前密钥单向推导出旧密钥。
Description
技术领域
本申请涉及信息安全技术领域,特别涉及一种密钥的更新方法、数据解密方法、数字签名的验证方法。
背景技术
为了防止数据在传输过程中被第三方获取,通常采用加密技术对数据进行加密,以实现对数据的保护。加密技术包括两个重要因素:加密算法和密钥,加密算法使用密钥对要保护的数据进行处理,得到加密数据。
将加密数据进行传输,能够避免第三方直接获取要保护的数据。但是,由于密钥存在泄露或者到期等各种情况,需要对密钥进行适时更新。
相关技术中,对密钥进行更新后,需要将旧密钥进行存储,以防接收到旧密钥加密的数据,无法进行解密。因此,数据传输方需要对所有的旧密钥进行管理,一方面占用数据传输方的硬件资源,另一方面一旦数据传输方存储的旧密钥丢失,无法根据当前密钥进行恢复,则无法对旧密钥加密的数据进行解密。
发明内容
本申请提供了一种密钥的更新方法、数据解密方法、数字签名的验证方法,以实现对密钥的更新,并且能够根据当前密钥单向推导出旧密钥。无需对旧密钥进行存储,节省了数据传输方的资源,并且不用担心旧密钥出现丢失,无法通过旧密钥推导出当前密钥。
第一方面,本申请提供了一种密钥的更新方法,所述方法包括:接收密钥更新指令;获取本地存储的第一密钥和基准值;其中,所述第一密钥由所述基准值,经过所述第一处理次数的单向映射处理后生成;对所述基准值进行第二处理次数的所述单向映射处理,以生成第二密钥;其中,所述第二处理次数小于所述第一处理次数;将所述第一密钥替换为所述第二密钥。由此,实现了对密钥的更新,并且能够根据当前密钥单向推导出旧密钥。无需对旧密钥进行存储,节省了数据传输方的资源,并且不用担心旧密钥出现丢失,无法通过旧密钥推导出当前密钥。在接收到数据传输对方发送的新密钥后,也无需第三方对新密钥进行合法性验证。
在上述密钥的更新方法中,为了便于密钥的版本号与单向映射处理次数相对应,一种可能的实现方式是,所述第一处理次数和所述第二处理次数的差值为一。
为了确保单向映射处理结果的唯一性,一种可能的实现方式是,所述单向映射处理的步骤包括:使用哈希算法进行处理。
为了增强本申请实施例中密钥的可靠性,一种可能的实现方式是,所述使用哈希算法进行处理包括:将所述单向映射处理的输入与本地标识进行拼接,并将拼接后的结果作为所述哈希算法的输入。
为了让本申请实施例所提供的密钥的更新方法能够用于非对称加密技术,一种可能的实现方式是,所述第一密钥为非对称密钥对中的一个密钥。
为了避免基准值出现存储风险,一种可能的实现方式是,所述基准值通过从设备硬件区域中获取,由云服务器下发,由外界输入中任一种方式获取。
第二方面,本申请提供了一种数据解密方法,所述方法包括:接收加密数据和第一处理次数,并将所述第一处理次数与本地存储的第二处理次数进行比较;根据比较结果,判断是否能够对所述加密数据进行解密;如果是,则确定所述第一处理次数对应的第一密钥;使用所述第一密钥对所述加密数据进行解密。由此,实现了只需在本地存储更新后的密钥,当收到旧密钥对应的加密数据时,使用更新后的密钥生成旧密钥,再使用旧密钥对加密数据进行解密。
在上述的数据解密方法中,为了比较第一处理次数和第二处理次数,一种可能的实现方式是,所述根据比较结果,判断是否能够对所述加密数据进行解密,包括:判断所述第一处理次数是否小于所述第二处理次数;如果是,则确定不能对所述加密数据进行解密。
为了比较第一处理次数和第二处理次数,一种可能的实现方式是,所述根据比较结果,判断是否能够对所述加密数据进行解密,包括:判断所述第一处理次数是否等于所述第二处理次数;如果是,则将本地存储的第二密钥作为所述第一密钥。
为了比较第一处理次数和第二处理次数,一种可能的实现方式是,所述根据比较结果,判断是否能够对所述加密数据进行解密,包括:判断所述第一处理次数是否大于所述第二处理次数;如果是,则对本地存储的第二密钥进行第三处理次数的单向映射处理,以生成所述第一密钥;其中,所述第三处理次数为所述第一处理次数和所述第二处理次数的差值。
为了确保单向映射处理结果的唯一性,一种可能的实现方式是,所述单向映射处理的步骤包括:使用哈希算法进行处理。
为了增强本申请实施例中密钥的可靠性,一种可能的实现方式是,所述使用哈希算法进行处理包括:将所述单向映射处理的输入与本地标识进行拼接,并将拼接后的结果作为所述哈希算法的输入。
为了让本申请实施例所提供的终端能够进行非对称加密/解密,一种可能的实现方式是,所述第一密钥为非对称密钥对中的一个密钥。
为了避免基准值出现存储风险,一种可能的实现方式是,所述第一密钥与基准值相关,所述基准值通过从设备硬件区域中获取,由云服务器下发,由外界输入中任一种方式获取。
第三方面,本申请提供了一种数字签名的验证方法,所述方法包括:接收数字签名和第一处理次数,并将所述第一处理次数与本地存储的第二处理次数进行比较;根据比较结果,判断是否能够对所述数字签名进行验证;如果是,则确定所述第一处理次数对应的第一密钥对;其中,所述第一密钥对为非对称密钥对,所述第一密钥对包括第一密钥;使用所述第一密钥对对所述数字签名进行验证。由此,实现了只需在本地存储更新后的密钥对,当收到旧密钥对对应的数字签名时,使用更新后的密钥对生成旧密钥对,再使用旧密钥对对数字签名进行验证。
在上述的数字签名的验证方法中,为了比较第一处理次数和第二处理次数,一种可能的实现方式是,所述根据比较结果,判断是否能够对所述数字签名进行验证,包括:判断所述第一处理次数是否小于所述第二处理次数;如果是,则确定不能对所述数字签名进行验证。
为了比较第一处理次数和第二处理次数,一种可能的实现方式是,所述根据比较结果,判断是否能够对所述数字签名进行验证,包括:判断所述第一处理次数是否等于所述第二处理次数;如果是,则将本地存储的第二密钥对作为所述第一密钥对。
为了比较第一处理次数和第二处理次数,一种可能的实现方式是,所述根据比较结果,判断是否能够对所述数字签名进行验证,包括:判断所述第一处理次数是否大于所述第二处理次数;如果是,则对本地存储的第二密钥对中的第二密钥进行第三处理次数的单向映射处理,以生成所述第一密钥;其中,所述第三处理次数为所述第一处理次数和所述第二处理次数的差值;根据所述第一密钥,生成所述第一密钥对。
为了确保单向映射处理结果的唯一性,一种可能的实现方式是,所述单向映射处理的步骤包括:使用哈希算法进行处理。
为了增强本申请实施例中密钥的可靠性,一种可能的实现方式是,所述使用哈希算法进行处理包括:将所述单向映射处理的输入与本地标识进行拼接,并将拼接后的结果作为所述哈希算法的输入。
为了避免基准值出现存储风险,一种可能的实现方式是,所述第一密钥与基准值相关,所述基准值通过从设备硬件区域中获取,由云服务器下发,由外界输入中任一种方式获取。
第四方面,本申请提供了一种终端,来实现前述的密钥的更新方法。所述终端包括:第一接收模块,用于接收密钥更新指令;获取模块,用于获取本地存储的第一密钥和基准值;其中,所述第一密钥由所述基准值,经过所述第一处理次数的单向映射处理后生成;第一处理模块,用于对所述基准值进行第二处理次数的所述单向映射处理,以生成第二密钥;其中,所述第二处理次数小于所述第一处理次数;替换模块,用于将所述第一密钥替换为所述第二密钥。
在上述终端中,为了便于密钥的版本号与单向映射处理次数相对应,一种可能的实现方式是,所述第一处理次数和所述第二处理次数的差值为一。
为了确保单向映射处理结果的唯一性,一种可能的实现方式是,所述第一处理模块具体用于使用哈希算法对所述基准值进行第二处理次数的处理。
为了增强本申请实施例中密钥的可靠性,一种可能的实现方式是,所述第一处理模块包括:拼接子模块,用于将所述第一处理模块的输入与本地标识进行拼接;第一设置子模块,用于将拼接后的结果作为所述哈希算法的输入。
为了让本申请实施例所提供的密钥的更新方法能够用于非对称加密技术,一种可能的实现方式是,所述第一密钥为非对称密钥对中的一个密钥。
为了避免基准值出现存储风险,一种可能的实现方式是,所述基准值通过从设备硬件区域中获取,由云服务器下发,由外界输入中任一种方式获取。
第五方面,本申请提供了一种终端,来实现前述的数据解密方法。所述终端包括:第二接收模块,用于接收加密数据和第一处理次数;第一比较模块,用于将所述第一处理次数与本地存储的第二处理次数进行比较;第一判断模块,用于根据比较结果,判断是否能够对所述加密数据进行解密;第一确定模块,用于当所述第一判断模块确定能够对所述加密数据进行解密时,确定所述第一处理次数对应的第一密钥;解密模块,用于使用所述第一密钥对所述加密数据进行解密。
在上述的终端中,为了比较第一处理次数和第二处理次数,一种可能的实现方式是,所述第一判断模块,包括:第一判断子模块,用于判断所述第一处理次数是否小于所述第二处理次数;第一确定子模块,用于当所述第一判断子模块确定所述第一处理次数小于所述第二处理次数时,确定不能对所述加密数据进行解密。
为了比较第一处理次数和第二处理次数,一种可能的实现方式是,所述第一判断模块,包括:第二判断子模块,用于判断所述第一处理次数是否等于所述第二处理次数;第二设置子模块,用于当所述第二判断子模块确定所述第一处理次数等于所述第二处理次数时,将本地存储的第二密钥作为所述第一密钥。
为了比较第一处理次数和第二处理次数,一种可能的实现方式是,所述第一判断模块,包括:第三判断子模块,用于判断所述第一处理次数是否大于所述第二处理次数;第一处理子模块,用于当所述第三判断子模块确定所述第一处理次数大于所述第二处理次数时,对本地存储的第二密钥进行第三处理次数的单向映射处理,以生成所述第一密钥;其中,所述第三处理次数为所述第一处理次数和所述第二处理次数的差值。
为了确保单向映射处理结果的唯一性,一种可能的实现方式是,所述第一处理子模块具体用于使用哈希算法对所述基准值进行第三处理次数的处理。
为了增强本申请实施例中密钥的可靠性,一种可能的实现方式是,所述第一处理子模块,包括:第一拼接单元,用于将所述单向映射处理的输入与本地标识进行拼接;第一设置单元,用于将拼接后的结果作为所述哈希算法的输入。
为了让本申请实施例所提供的终端能够进行非对称加密/解密,一种可能的实现方式是,所述第一密钥为非对称密钥对中的一个密钥。
为了避免基准值出现存储风险,一种可能的实现方式是,所述第一密钥与基准值相关,所述基准值通过从设备硬件区域中获取,由云服务器下发,由外界输入中任一种方式获取。
第六方面,本申请提供了一种终端,来实现前述的数字签名的验证方法。所述终端包括:第三接收模块,用于接收数字签名和第一处理次数;第二比较模块,用于将所述第一处理次数与本地存储的第二处理次数进行比较;第二判断模块,用于根据比较结果,判断是否能够对所述数字签名进行验证;第二确定模块,用于当所述第二判断模块确定能够对所述数字签名进行验证时,确定所述第一处理次数对应的第一密钥对;其中,所述第一密钥对为非对称密钥对,所述第一密钥对包括第一密钥;验证模块,用于使用所述第一密钥对对所述数字签名进行验证。
在上述的终端中,为了比较第一处理次数和第二处理次数,一种可能的实现方式是,所述第二判断模块,包括:第四判断子模块,用于判断所述第一处理次数是否小于所述第二处理次数;第二确定子模块,用于当所述第四判断子模块确定所述第一处理次数小于所述第二处理次数时,确定不能对所述数字签名进行验证。
为了比较第一处理次数和第二处理次数,一种可能的实现方式是,所述第二判断模块,包括:第五判断子模块,用于判断所述第一处理次数是否等于所述第二处理次数;第三设置子模块,用于当所述第五判断子模块确定所述第一处理次数等于所述第二处理次数时,将本地存储的第二密钥对作为所述第一密钥对。
为了比较第一处理次数和第二处理次数,一种可能的实现方式是,所述第二判断模块,包括:第六判断子模块,用于判断所述第一处理次数是否大于所述第二处理次数;第二处理子模块,用于当所述第六判断子模块确定所述第一处理次数大于所述第二处理次数时,对本地存储的第二密钥对中的第二密钥进行第三处理次数的单向映射处理,以生成所述第一密钥;其中,所述第三处理次数为所述第一处理次数和所述第二处理次数的差值;生成子模块,用于根据所述第一密钥,生成所述第一密钥对。
为了确保单向映射处理结果的唯一性,一种可能的实现方式是,所述第二处理子模块具体用于使用哈希算法对所述基准值进行第三处理次数的处理。
为了增强本申请实施例中密钥的可靠性,一种可能的实现方式是,所述第二处理子模块,包括:第二拼接单元,用于将所述单向映射处理的输入与本地标识进行拼接;第二设置单元,用于将拼接后的结果作为所述哈希算法的输入。
为了避免基准值出现存储风险,一种可能的实现方式是,所述第一密钥与基准值相关,所述基准值通过从设备硬件区域中获取,由云服务器下发,由外界输入中任一种方式获取。
第七方面,本申请提供一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时,使得电子设备执行如第一方面、第二方面或第三方面所述的方法。
第八方面,本申请提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行如第一方面、第二方面或第三方面所述的方法。
附图说明
图1为对称加密技术的示意图;
图2为非对称加密技术的示意图;
图3为数字签名的验证方法示意图;
图4为本申请实施例所提供的一种密钥的更新方法的流程示意图;
图5a为本申请实施例所提供的一种对称密钥的生成方法的示意图;
图5b为本申请实施例所提供的另一种对称密钥的生成方法的示意图;
图6a为本申请实施例所提供的一种基于大整数分解难题的非对称密钥的生成方法的示意图;
图6b为本申请实施例所提供的另一种基于大整数分解难题的非对称密钥的生成方法的示意图;
图7a为本申请实施例所提供的一种基于整数上离散对数难题的非对称密钥的生成方法的示意图;
图7b为本申请实施例所提供的另一种基于整数上离散对数难题的非对称密钥的生成方法的示意图;
图7c为本申请实施例所提供的又一种基于整数上离散对数难题的非对称密钥的生成方法的示意图;
图7d为本申请实施例所提供的再一种基于整数上离散对数难题的非对称密钥的生成方法的示意图;
图8a为本申请实施例所提供的一种基于椭圆曲线离散对数难题的非对称密钥的生成方法的示意图;
图8b为本申请实施例所提供的另一种基于椭圆曲线离散对数难题的非对称密钥的生成方法的示意图;
图8c为本申请实施例所提供的又一种基于椭圆曲线离散对数难题的非对称密钥的生成方法的示意图;
图8d为本申请实施例所提供的再一种基于椭圆曲线离散对数难题的非对称密钥的生成方法的示意图;
图9为本申请实施例所提出的一种数据解密方法的流程示意图;
图10为本申请实施例所提出的一种数字签名的验证方法的流程示意图;
图11a为本申请实施例所提供的终端应用生成不同版本密钥的结构示意图;
图11b为本申请实施例所提供的密钥生成模块生成不同版本密钥的流程示意图;
图12a为本申请实施例所提供的终端应用生成更新后的密钥的结构示意图;
图12b为本申请实施例所提供的密钥生成模块生成更新后的密钥的流程示意图;
图13为本申请实施例所提供的终端应用进行加密解密/数字签名验证的结构示意图;
图14为本申请实施例所提供的家居设备进行密钥校验的结构示意图;
图15为本申请实施例所提供的一种终端的结构示意图;
图16为本申请实施例所提出的另一种终端的结构示意图;
图17为本申请实施例所提出的又一种终端的结构示意图;
图18为本申请实施例所提供的电子设备的结构示意图;以及
图19为本申请实施例所提出的计算机可读存储介质的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请技术方案,而不能理解为对本申请的限制。
下面参考附图描述本申请实施例的密钥的更新方法、数据解密方法、数字签名的验证方法,以及终端、计算机可读存储介质。
为了清楚地说明本申请实施例所提供的密钥的更新方法、数据解密方法、数字签名的验证方法,首先对加密技术和数字签名验证技术进行说明。
在数据从发送方传输到接收方的过程中,数据传输双方不希望被传输的数据被第三方获取,发送方便使用加密技术对数据进行加密。
在加密过程中,将要传输的数据称为原文,对原文进行加密,即可得到密文,密文通常为乱码的形式。将密文在公开信道上进行传输,即便第三方拦截了信息,也只能得到密文,无法获取原文。
发送方使用加密技术对原文进行加密,将密文发送给接收方。相应地,接收方收到密文后,需要对密文进行解密,即可将密文还原为原文,从而实现将数据从发送方加密传输至接收方。
加密技术包括两个重要因素:加密算法和密钥,加密算法将原文与密钥进行运算,即可得到密文。对于数据传输的双方,为了避免加密方法被第三方破解,通常采用更新密钥的方式来更新加密方法。换句话说,数据传输的双方始终使用相同的加密算法,而采用不同的密钥对原文进行加密,使得第三方无法对加密方法进行破解,从而保证数据传输的安全。
相关技术中,加密技术可以分为两类,一类是对称加密技术,一类是非对称加密技术。
图1为对称加密技术的示意图。如图1所示,在对称加密技术中,数据加密和解密时使用的密钥相同,也就是说,发送方在加密时,接收方在解密时使用相同的密钥。一旦密钥被第三方获知,即可使用该密钥对截获的密文进行解密,加密技术即被破解。因此,对称加密技术中,密钥只能由发送方和接收方获知,不同的发送方和接收方在数据传输过程中会使用不同的密钥。
图2为非对称加密技术的示意图。如图2所示,在非对称加密技术中,使用一组密钥对完成数据加密和解密,一组密钥包括公钥和私钥。公钥由接收方向公众公开,发送方在与接收方进行数据传输时,使用接收方公开的公钥,对原文进行加密。接收方收到密文后,使用与公钥对应的私钥对密文进行解密。对于接收方来说,使用一组密钥对即可实现与多个发送方之间的数据传输加密。
需要说明的是,与对称加密技术不同的是,非对称加密技术中,公钥和私钥形成一组密钥对,公钥和私钥不同,且无法根据公钥确定对应的私钥。
此外,与对称加密技术相似的是,非对称加密技术中,使用公钥进行加密,可以使用对应的私钥进行解密,若使用私钥进行加密,则也可以使用对应的公钥进行解密。也就是说,一组密钥对中,公钥和私钥的区分不在于用于加密还是解密,而是在于是否向公众公开,向公众公开的即被称为公钥,不能被他人知悉的被称为私钥。
图3为数字签名的验证方法示意图。如图3所示,基于非对称加密技术的上述特征,非对称加密技术还可用于数字签名的验证,即发送方使用私钥对原文进行数字签名,接收方使用公钥对数字签名进行验证。具体来说,数字签名的方式为使用私钥对原文进行加密,验证的方式为使用公钥对密文进行解密,若解密后的内容与原文相同,即可确认发送方的身份。
进一步地,为了便于接收方判断解密后的内容是否与原文相同,一种可能的实现方式是,发送方将原文的信息摘要与密文一起发送给接收方。其中,原文的信息摘要由原文经过哈希函数处理后生成,哈希函数是一种能够将任意长度的原文压缩到某一固定长度的消息摘要的函数,具有难以逆向的特点。也就是说,无论原文的长度是多少,经过哈希函数处理后,都会生成固定长度的消息摘要,并且通过该消息摘要无法还原出原文的内容。相应地,若原文的内容存在区别,哪怕是细微的差别,生成的消息摘要也不相同。
因此,接收方在使用公钥对密文进行解密后,对解密后的内容使用哈希函数进行处理,生成解密后的内容的消息摘要,再与接收到的原文的信息摘要进行比较。若二者完全相同,则可以确定解密后的内容与原文相同,从而实现对发送方的身份的确认。
基于前述对对称加密技术和非对称加密技术的说明,可以知道,对称加密技术中的密钥一旦被第三方获知,对称加密技术即被破解。非对称加密技术中的私钥一旦被第三方获知,非对称加密技术即被破解。因此,防止第三方获取密钥和私钥是加密技术中的关键,而定期更新密钥或者密钥对成为提升加密技术可靠性的重要手段。
可以理解,密钥或者密钥对的更新,需要发送方和接收方同步进行,若一方使用了更新后的密钥,另一方使用了旧密钥,则无法实现数据传输。
现有技术中,采用了不同的方案解决上述问题,下面对现有的技术方案进行说明和分析。
第一种方案,数据传输方在完成密钥的更新后,将旧密钥进行存储,并且使用密钥版本号对不同版本的旧密钥进行管理。一旦发现对方使用旧密钥进行数据传输加密或者数字签名,则使用对应版本的密钥进行解密或者数字签名的验证。
对于第一种方案,数据传输方虽然能够快速获取旧密钥,但是需要不断存储和管理旧密钥,随着密钥更新次数的增加,旧密钥的数量逐渐增大,存储和管理旧密钥需要消耗大量的资源,尤其在密钥频繁更新时,旧密钥的数量增长更为迅速。此外,一旦数据传输方丢失了存储的旧密钥,无法进行恢复,也就无法使用旧密钥。
第二种方案,数据传输双方预先同步存储大量不同版本的密钥,并且使用密钥版本号对不同版本的密钥进行管理。在密钥更新时,数据传输方确定更新后的密钥版本,即可从本地获取对应版本的密钥。一旦发现对方使用旧密钥进行数据传输加密或者数字签名,则使用对应版本的密钥进行解密或者数字签名的验证。
对于第二种方案,虽然能够确保密钥更新时的完整性,无需对更新后的密钥完整性进行校验,但是数据传输双方需要一直存储和管理数量庞大的不同版本的密钥,消耗大量的资源。此外,和第一种方案相类似,一旦数据传输方丢失了存储的密钥,无法进行恢复,也就无法使用密钥。
第三种方案,数据传输方存储主密钥,并基于主密钥生成不同版本的密钥,也就是说,数据传输方可以根据版本号,基于主密钥生成版本号对应的密钥。具体可以将主密钥和版本号进行函数运算,生成对应的密钥。
对于第三种方案,数据传输方无需存储和管理大量的密钥,但是不同版本之间的密钥没有联系,无法根据更新后的密钥单向推导出旧密钥,需要基于主密钥生成旧密钥。
基于上述对现有的技术方案的说明和分析,可以知道,现有技术中,在完成密钥的更新后,需要采用存储旧密钥的方式,或者基于主密钥重新生成旧密钥的方式,来获取旧密钥。
为了解决上述问题,本申请实施例提出了一种密钥的更新方法,在收到旧密钥加密或者数字签名的信息时,对当前密钥进行单向映射处理后,即可得到该旧密钥,进而使用该旧密钥进行解密或者签名验证。既能够实现对密钥的更新,并且能够根据当前密钥单向推导出旧密钥。
图4为本申请实施例所提供的一种密钥的更新方法的流程示意图。如图4所示,该方法包括:
步骤S101,接收密钥更新指令。
基于前述对加密技术的说明,可以知道,密钥在使用过程中,可以采用定期更新的方式进行更新,也可以在发现密钥泄露或者有泄露的风险时进行更新,以保证密钥的安全。
步骤S102,获取本地存储的第一密钥和基准值。
其中,第一密钥由基准值,经过第一处理次数的单向映射处理后生成。单向映射是指不可逆的映射,比如说A经过单向映射得到B,却无法将B还原为A。因此,对基准值进行第一处理次数的单向映射处理后,能够得到第一密钥,却无法对第一密钥进行还原。
需要说明的是,本申请实施例中的密钥的更新方法在数据传输方存储当前正在使用的密钥,即第一密钥。
可以理解,由于本申请实施例中的数据传输方的各个版本的密钥都是基于基准值生成的,为了确保生成的密钥不同,不同数据传输方的基准值不能相同。此外,为了防止密钥泄露,用于生成密钥的基准值也应当保密。
第一种可能的实现方式是,数据传输方使用自身的硬件密钥作为基准值,硬件密钥存储在数据传输方的硬件区域,安全可靠。
第二种可能的实现方式是,数据传输方在云服务器进行注册时,云服务器根据数据传输方的硬件信息生成对应的基准值,基准值存储在云服务器上。云服务器将基准值以安全方式下发给数据传输方,避免数据传输方直接存储基准值。
第三种可能的实现方式是,由用户手动输入用户密码作为基准值,避免数据传输方直接存储基准值。
在上述第二种和第三种可能的实现方式中,数据传输方不对基准值进行存储,每次需要使用基准值时,通过访问云服务器或者提示用户输入用户密码的方式生成基准值。
步骤S103,对基准值进行第二处理次数的单向映射处理,以生成第二密钥。
其中,第二处理次数小于第一处理次数。
可以理解,第二密钥即为更新后的密钥,本申请实施例所提供的密钥的更新方法中,生成第一密钥和生成第二密钥的方式类似,都是对基准值进行多次单向映射处理,但是第二密钥对应的第二处理次数小于第一密钥的第一处理次数。基于前述对单向映射的说明可以知道,对第二密钥进行预设次数的单向映射,可以得到第一密钥,但是无法根据第一密钥,生成第二密钥。
也就是说,本申请实施例能够根据更新后的密钥,生成更新前的密钥,而无法根据更新前的密钥,生成更新后的密钥。可以防止第三方根据已经泄露的旧密钥推导出更新后的密钥。
步骤S104,将第一密钥替换为第二密钥。
可以理解,在生成更新后的密钥后,需要将当前密钥进行替换,以完成密钥的更新,并且无需对旧密钥进行存储。
此外,由于在数据传输过程中,需要数据传输的发送方和接收方同步实现密钥的更新。在现有的密钥更新方法中,通常由数据传输的一方完成密钥的更新,再将更新后的密钥发送给数据传输的另一方,以完成密钥的同步。但是更新后的密钥传输至数据传输的另一方时,可能出现数据丢失或者被篡改的风险,需要依赖可信第三方对更新后的密钥进行校验。
而本申请实施例所提供的密钥的更新方法,在接收到数据传输对方发送的第二密钥以及对应的第二处理次数后,首先比较第二处理次数和第一处理次数的大小。
若第二处理次数大于或者等于第一处理次数,说明数据传输对方发送的第二密钥是旧密钥,无需对第二密钥进行认证,并且无需对本地存储的第一密钥进行更新。
若第二处理次数小于第一处理次数,可以对第二密钥进行第三处理次数的单向映射处理,将处理后的结果与本地存储的第一密钥进行固定字段的校验,校验通过则将本地存储的第一密钥替换为第二密钥。其中,第三处理处理次数为第一处理次数和第二处理次数的差值。
综上所述,本申请实施例所提供的密钥的更新方法,包括:接收密钥更新指令。获取本地存储的第一密钥和基准值。其中,第一密钥由基准值,经过第一处理次数的单向映射处理后生成。对基准值进行第二处理次数的单向映射处理,以生成第二密钥。其中,第二处理次数小于第一处理次数。将第一密钥替换为第二密钥。由此,实现了对密钥的更新,并且能够根据当前密钥单向推导出旧密钥。无需对旧密钥进行存储,节省了数据传输方的资源,并且不用担心旧密钥出现丢失,无法通过旧密钥推导出当前密钥。在接收到数据传输对方发送的新密钥后,也无需第三方对新密钥进行合法性验证。
进一步地,为了便于密钥的版本号与单向映射处理次数相对应,一种可能的实现方式是,第一处理次数和第二处理次数的差值为一。可以理解,第一处理次数和第二处理次数分别是一次密钥更新过程中,更新前的第一密钥和更新后的第二密钥所对应的处理次数,而更新前的第一密钥和更新后的第二密钥相差一个版本,因此当第一处理次数和第二处理次数的差值为一时,可以使用第一处理次数来标识第一密钥的版本,使用第二处理次数来标识第二密钥的版本。
需要注意的是,第二处理次数小于第一处理次数,因此更新后的第二密钥的版本标识在数值上小于更新前的第一密钥的版本标识。也就是说,生成的密钥越新,所对应的处理次数越小,版本标识数值也越小。
此外,本申请实施例中的单向映射处理的步骤可以包括使用哈希算法进行处理,哈希算法通过对输入内容进行哈希运算,生成唯一对应的哈希值。
在第一密钥生成的过程中,对基准值进行第一处理次数(比如6次)的哈希运算,生成对应的哈希值,作为第一密钥。
在对第一密钥进行更新时,对基准值进行第二处理次数(比如5次)的哈希运算,生成对应的哈希值,作为第二密钥,使用第二密钥替换第一密钥,即可完成对第一密钥的更新。
可以理解,第一密钥是由基准值经过6次哈希运算生成的,在生成第一密钥的过程中,当基准值进行了5次哈希运算后,得到的哈希值与第二密钥完全相同,再进行1次哈希运算,才得到第一密钥。因此,第二密钥经过1次哈希运算,即可生成第一密钥。在完成对第一密钥的更新后,数据传输方基于第二密钥,可以直接生成第一密钥。相反的,由于哈希算法的难以逆向的特点,数据传输方基于第一密钥,无法直接生成第二密钥。
需要特别说明的是,本申请实施例中的哈希算法可以是SHA-256,SHA-512等任一种已知的哈希算法,本申请实施例对此不做限定。
进一步地,为了增强本申请实施例中密钥的可靠性,一种可能的实现方式是,前述使用哈希算法进行处理包括:将单向映射处理的输入与本地标识进行拼接,并将拼接后的结果作为哈希算法的输入。
其中,本地标识是数据传输方的唯一标识,始终保持不变。也就是说,在每一次单向映射处理过程中,先将单向映射处理的输入与本地标识进行拼接,再将拼接后的结果输入哈希算法进行哈希运算。具体地,本地标识可以采用数据传输方的硬件标识,也可以使用进行数据传输的软件应用的应用标识,还可以使用人为设置的标识,本申请实施例对此不做限定。
从而,使得每一次哈希运算的输入为,上一次哈希运算的输入与固定标识拼接后的结果,增强了哈希算法的复杂度,进而提升了生成密钥的安全性。
基于前述相关技术的说明,可以知道,在对称加密技术中,数据传输的发送方和接收方使用相同的密钥,在密钥更新时,只需要将更新前的第一密钥替换为更新后的第二密钥。
而在非对称密钥技术中,数据传输的发送方和接收方使用一组密钥对,在进行密钥更新时,密钥对中的私钥和公钥都需要进行更新。
在本申请实施例中,一种可能的实现方式是,将第一密钥作为私钥,将与第一密钥匹配的第三密钥作为公钥,第一密钥与第三密钥组成非对称密钥对。在生成该非对称密钥对时,对基准值进行第一处理次数的单向映射,生成第一密钥,再由第一密钥计算后生成第三密钥,从而生成该非对称密钥对。
另一种可能的实现方式是,将第一密钥作为公钥,将与第一密钥匹配的第三密钥作为私钥,第一密钥与第三密钥组成非对称密钥对。在生成该非对称密钥对时,对基准值进行第一处理次数的单向映射,生成第一密钥,再由第一密钥计算后生成第三密钥,从而生成该非对称密钥对。
为了更加清楚地说明本申请实施例所提供的密钥的更新方法,下面进行举例说明。
图5a为本申请实施例所提供的一种对称密钥的生成方法的示意图。图5b为本申请实施例所提供的另一种对称密钥的生成方法的示意图。如图5a所示,图中MK代表基准值,为了便于对密钥版本进行统一标识,使用Key-1来表示MK,对基准值分别进行1~m次的哈希运算后,可以分别得到m个版本的密钥,即Key0~Keym。在密钥使用过程中,首先使用Keym作为密钥,使用Keym-1对Keym进行替换,实现对密钥的一次更新。依次类推,直到使用Key0对Key1进行替换。
与此相类似地,如图5b所示,在进行每一次哈希运算之前,将上一次哈希运算的输出与本地标识APPTAG进行拼接,再对拼接后的结果进行哈希运算。具体来说,将基准值MK与本地标识APPTAG进行拼接,再对拼接后的结果(Key-1|APPTAG)进行哈希运算,得到Key0。将Key0与本地标识APPTAG进行拼接,再对拼接后的结果(Key0|APPTAG)进行哈希运算,得到Key1。依次类推,可以分别得到m个版本的密钥,即Key0~Keym。在密钥使用过程中,实现密钥更新的方式与图5a中的过程相同,此处不再赘述。
图6a为本申请实施例所提供的一种基于大整数分解难题的非对称密钥的生成方法的示意图。图6b为本申请实施例所提供的另一种基于大整数分解难题的非对称密钥的生成方法的示意图。
需要首先说明的是,基于大整数分解难题的非对称加密技术,又被称为RSA加密技术,RSA加密技术具有非对称加密技术的共同特点,即通过包括公钥和私钥的一组密钥对来完成数据加密和解密。
此外,RSA加密技术主要依赖于大数的质因数分解难题来保证加密技术的可靠。具体来说,已知两个大质数的乘积,无法直接对该乘积进行质因数分解,得到对应的两个大质数,从而确保了加密技术的可靠。
RSA加密算法的原理如下,首先选择两个大质数p和q,计算出p*q的数值以及(p-1)*(q-1)的数值,生成与(p-1)*(q-1)互质的随机数e。
根据公式:(d*e)mod(p-1)*(q-1)=1,计算d的可能数值,需要说明的是,符合上述公式的d的可能数值有多个,取其中任一个作为d的数值皆可。将(e,n)作为RSA加密算法的公钥,将(d,n)作为RSA加密算法的私钥,即可生成RSA加密算法的一组密钥对。可以理解,由于对n的质因数分解的困难,因此在获知公钥(e,n)的前提下,无法根据n的数值计算生成p和q的数值,也就无法确定(p-1)*(q-1)的数值大小,从而无法确定d的数值大小。换句话说,无法根据公钥(e,n)确定私钥(d,n)。
加密时,使用公式:密文=原文emodn,对原文进行加密,在解密时,使用公式:原文=密文dmodn,对密文进行解密。具体的解密算法原理是:密文dmodn=(原文emodn)dmodn=原文edmodn=原文(p-1)*(q-1)+1modn=原文,从而保证了使用私钥能够对公钥加密的密文进行解密。
数字签名时,使用公式:密文=原文dmodn,对原文进行加密,在验证数字签名时,使用公式:原文=密文emodn,对密文进行解密。具体的数字签名验证的原理与解密算法原理相类似,此处不再赘述。
如图6a所示,对基准值MK进行一次哈希运算后,生成RSA加密算法中的大数n0的指定部分,并进一步生成整个大数n0,基于前述对RSA加密算法的说明,可以知道,生成的大数n0为两个大质数p0和q0的乘积,进而随机生成与(p0-1)*(q0-1)互质的随机数e0。为了节省计算资源,也可将65537直接作为随机数e0。根据公式:(d0*e0)mod(p0-1)*(q0-1)=1,计算d0的数值。将(e0,n0)作为公钥,将(d0,n0)作为私钥,生成一组密钥对。
对n0进行一次哈希运算后,生成RSA加密算法中的大数n1的指定部分,并进一步生成整个大数n1,生成的大数n1为两个大质数p1和q1的乘积,进而随机生成与(p1-1)*(q1-1)互质的随机数e1。为了节省计算资源,也可将65537直接作为随机数e1。根据公式:(d1*e1)mod(p1-1)*(q1-1)=1,计算d1的数值。将(e1,n1)作为公钥,将(d1,n1)作为私钥,生成一组密钥对。
依次类推,经过m次处理后,生成m组密钥对。在密钥使用过程中,首先使用(em,nm),(dm,nm)作为密钥对,使用(em-1,nm-1),(dm-1,nm-1)对(em,nm),(dm,nm)进行替换,实现对密钥对的一次更新。依次类推,直到使用(e0,n0),(d0,n0)对(e1,n1),(d1,n1)进行替换。
需要说明的是,在上述密钥对的生成过程中,每一次单向映射处理中生成的e,n,d的数值不唯一。比如在对基准值MK进行一次哈希运算后,生成RSA加密算法中的大数n0的指定部分,并进一步生成整个大数n0,使得大数n0为两个大质数p0和q0的乘积,满足条件的大数n0不唯一。再比如,与(p0-1)*(q0-1)互质的随机数e0也具有多种可能的数值,符合公式(d0*e0)mod(p0-1)*(q0-1)=1要求的d0的数值也有多种。
可以理解,若每一次单向映射处理后生成的密钥对的数值不唯一,就无法将单向映射处理次数与不同版本的密钥一一对应,也就无法对当前密钥进行单向映射处理后,生成旧密钥。
为了让每一次单向映射处理后生成的密钥对有确切的数值,可以按照一定规则对n,e,d的可能数值进行选取,从而确定唯一的数值。在大数n的数值确定过程中,选择按照一定规则搜索到的第一个大数,在对随机数e的选取过程中,需要按照一定规则,保证对新密钥对进行哈希运算之后,能够分解得到旧密钥,在对d的数值进行确定时,可以选取符合公式的最小数值作为d的数值。从而,使得每一次单向映射处理后,n,e,d的数值大小唯一。
如图6b所示,将基准值MK与本地标识APPTAG进行拼接,对拼接后的结果进行一次哈希运算后,生成RSA加密算法中的大数n0的指定部分,并进一步生成整个大数n0,基于前述对RSA加密算法的说明,可以知道,生成的大数n0为两个大质数p0和q0的乘积,进而随机生成与(p0-1)*(q0-1)互质的随机数e0。为了节省计算资源,也可将65537直接作为随机数e0。根据公式(d0*e0)mod(p0-1)*(q0-1)=1,计算d0的数值。将n0作为公钥,将d0作为私钥,生成一组密钥对。
将n0与本地标识APPTAG进行拼接,对拼接后的结果进行一次哈希运算后,生成RSA加密算法中的大数n1的指定部分,并进一步生成整个大数n1,生成的大数n1为两个大质数p1和q1的乘积,进而随机生成与(p1-1)*(q1-1)互质的随机数e1。为了节省计算资源,也可将65537直接作为随机数e1。根据公式:(d1*e1)mod(p1-1)*(q1-1)=1,计算d1的数值。将n1作为公钥,将d1作为私钥,生成一组密钥对。
依次类推,经过m次运算后,生成m组密钥对。
为了让每一次单向映射处理后生成的密钥对有确切的数值,可以采用前述方法从n,e,d的可能数值中确定唯一的数值,此处不再赘述。
在密钥使用过程中,实现密钥更新的方式与图6a中的过程相同,此处不再赘述。
图7a为本申请实施例所提供的一种基于整数上离散对数难题的非对称密钥的生成方法的示意图。图7b为本申请实施例所提供的另一种基于整数上离散对数难题的非对称密钥的生成方法的示意图。图7c为本申请实施例所提供的又一种基于整数上离散对数难题的非对称密钥的生成方法的示意图。图7d为本申请实施例所提供的再一种基于整数上离散对数难题的非对称密钥的生成方法的示意图。
需要首先说明的是,基于整数上离散对数难题的非对称加密技术,又被称为DSA加密技术,和前述RSA加密技术不同的是,DSA加密技术主要依赖于整数上离散对数难题来保证加密技术的可靠,并且DSA加密算法虽然具有包括公钥z和私钥d的密钥对,但是属于单向加密算法,也就是不能通过私钥将公钥加密后生成的密文恢复成原文,因此只适用于数字签名的验证,而不适用于数据加密。
如图7a所示,对基准值MK进行一次哈希运算后,再对(q-1)求模运算后加一,得到DSA加密算法中的私钥d0,其中,q为提前约定好的公开质数。根据公式:z0=g^d0modp,计算公钥z0,生成一组密钥对。其中,p为提前约定好的公开质数,g为约定有限域上的一个生成元,q为g的阶。
对d0进行一次哈希运算后,再对(q-1)求模运算后加一,得到DSA加密算法中的私钥d1。根据公式:z1=g^d1modp,计算公钥z1,生成一组密钥对。
依次类推,经过m次处理后,生成m组密钥对。在密钥使用过程中,首先使用(dm,zm)作为密钥对,使用(dm-1,zm-1)对(dm,zm)进行替换,实现对密钥对的一次更新。依次类推,直到使用(d0,z0)对(d1,z1)进行替换。
如图7b所示,将基准值MK与本地标识APPTAG进行拼接,对拼接后的结构进行一次哈希运算后,再对(q-1)求模运算后加一,得到DSA加密算法中的私钥d0,其中,q为提前约定好的公开质数。根据公式:z0=g^d0modp,计算公钥z0,生成一组密钥对。其中,p为提前约定好的公开质数,g为约定有限域上的一个生成元,q为g的阶。
将d0与本地标识APPTAG进行拼接,对拼接后的结果进行一次哈希运算后,再对(q-1)求模运算后加一,得到DSA加密算法中的私钥d1。根据公式:z1=g^d1modp,计算公钥z1,生成一组密钥对。
依次类推,经过m次处理后,生成m组密钥对。在密钥使用过程中,首先使用(dm,zm)作为密钥对,使用(dm-1,zm-1)对(dm,zm)进行替换,实现对密钥对的一次更新。依次类推,直到使用(d0,z0)对(d1,z1)进行替换。
如图7c所示,对基准值MK进行一次哈希运算后,再对(q-1)求模运算后加一,得到DSA加密算法中的私钥d0,其中,q为提前约定好的公开质数。根据公式:z0=g^d0modp,计算公钥z0,生成一组密钥对。其中,p为提前约定好的公开质数,g为约定有限域上的一个生成元,q为g的阶。
对z0进行一次哈希运算后,再对(q-1)求模运算后加一,得到DSA加密算法中的私钥d1。根据公式:z1=g^d1modp,计算公钥z1,生成一组密钥对。
依次类推,经过m次处理后,生成m组密钥对。在密钥使用过程中,首先使用(dm,zm)作为密钥对,使用(dm-1,zm-1)对(dm,zm)进行替换,实现对密钥对的一次更新。依次类推,直到使用(d0,z0)对(d1,z1)进行替换。
如图7d所示,将基准值MK与本地标识APPTAG进行拼接,对拼接后的结构进行一次哈希运算后,再对(q-1)求模运算后加一,得到DSA加密算法中的私钥d0,其中,q为提前约定好的公开质数。根据公式:z0=g^d0modp,计算公钥z0,生成一组密钥对。其中,p为提前约定好的公开质数,g为约定有限域上的一个生成元,q为g的阶。
将z0与本地标识APPTAG进行拼接,对拼接后的结果进行一次哈希运算后,再对(q-1)求模运算后加一,得到DSA加密算法中的私钥d1。根据公式:z1=g^d1modp,计算公钥z1,生成一组密钥对。
依次类推,经过m次处理后,生成m组密钥对。在密钥使用过程中,首先使用(dm,zm)作为密钥对,使用(dm-1,zm-1)对(dm,zm)进行替换,实现对密钥对的一次更新。依次类推,直到使用(d0,z0)对(d1,z1)进行替换。
图8a为本申请实施例所提供的一种基于椭圆曲线离散对数难题的非对称密钥的生成方法的示意图。图8b为本申请实施例所提供的另一种基于椭圆曲线离散对数难题的非对称密钥的生成方法的示意图。图8c为本申请实施例所提供的又一种基于椭圆曲线离散对数难题的非对称密钥的生成方法的示意图。图8d为本申请实施例所提供的再一种基于椭圆曲线离散对数难题的非对称密钥的生成方法的示意图。
需要首先说明的是,基于椭圆曲线离散对数难题的非对称加密技术,又被称为ECDSA加密技术,和前述RSA加密技术不同的是,ECDSA加密技术主要依赖于椭圆曲线离散对数难题来保证加密技术的可靠,并且ECDSA加密算法虽然具有包括公钥Q和私钥d的密钥对,但是属于单向加密算法,也就是不能通过私钥将公钥加密后生成的密文恢复成原文,因此只适用于数字签名的验证,而不适用于数据加密。
如图8a所示,对基准值MK进行一次哈希运算后,再对(n-1)求模运算后加一,得到ECDSA加密算法中的私钥d0,其中,n为提前约定好的公开质数。根据公式:Q0=d0G计算公钥Q0,生成一组密钥对。其中,G为提前约定好的公开椭圆曲线基点,n为G的阶。
对d0进行一次哈希运算后,再对(n-1)求模运算后加一,得到ECDSA加密算法中的私钥d1。根据公式:Q1=d1G,计算公钥Q1,生成一组密钥对。
依次类推,经过m次处理后,生成m组密钥对。在密钥使用过程中,首先使用(dm,Qm)作为密钥对,使用(dm-1,Qm-1)对(dm,Qm)进行替换,实现对密钥对的一次更新。依次类推,直到使用(d0,Q0)对(d1,Q1)进行替换。
如图8b所示,将基准值MK与本地标识APPTAG进行拼接,对拼接后的结构进行一次哈希运算后,再对(n-1)求模运算后加一,得到ECDSA加密算法中的私钥d0,其中,n为提前约定好的公开质数。根据公式:Q0=d0G,计算公钥Q0,生成一组密钥对。其中,G为提前约定好的公开椭圆曲线基点,n为G的阶。
将d0与本地标识APPTAG进行拼接,对拼接后的结果进行一次哈希运算后,再对(n-1)求模运算后加一,得到ECDSA加密算法中的私钥d1。根据公式:Q1=d1G,计算公钥Q1,生成一组密钥对。
依次类推,经过m次处理后,生成m组密钥对。在密钥使用过程中,首先使用(dm,Qm)作为密钥对,使用(dm-1,Qm-1)对(dm,Qm)进行替换,实现对密钥对的一次更新。依次类推,直到使用(d0,Q0)对(d1,Q1)进行替换。
如图8c所示,对基准值MK进行一次哈希运算后,再对(n-1)求模运算后加一,得到ECDSA加密算法中的私钥d0,其中,n为提前约定好的公开质数。根据公式:Q0=d0G,计算公钥Q0,生成一组密钥对。其中,G为提前约定好的公开椭圆曲线基点,n为G的阶。
对Q0进行一次哈希运算后,再对(n-1)求模运算后加一,得到ECDSA加密算法中的私钥d1。根据公式:Q1=d1G,计算公钥Q1,生成一组密钥对。
依次类推,经过m次处理后,生成m组密钥对。在密钥使用过程中,首先使用(dm,Qm)作为密钥对,使用(dm-1,Qm-1)对(dm,Qm)进行替换,实现对密钥对的一次更新。依次类推,直到使用(d0,Q0)对(d1,Q1)进行替换。
如图7d所示,将基准值MK与本地标识APPTAG进行拼接,对拼接后的结构进行一次哈希运算后,再对(n-1)求模运算后加一,得到ECDSA加密算法中的私钥d0,其中,n为提前约定好的公开质数。根据公式:Q0=d0G,计算公钥Q0,生成一组密钥对。其中,G为提前约定好的公开椭圆曲线基点,n为G的阶。
将Q0与本地标识APPTAG进行拼接,对拼接后的结果进行一次哈希运算后,再对(n-1)求模运算后加一,得到ECDSA加密算法中的私钥d1。根据公式:Q1=d1G,计算公钥Q1,生成一组密钥对。
依次类推,经过m次处理后,生成m组密钥对。在密钥使用过程中,首先使用(dm,zm)作为密钥对,使用(dm-1,zm-1)对(dm,zm)进行替换,实现对密钥对的一次更新。依次类推,直到使用(d0,z0)对(d1,z1)进行替换。
上述对对称密钥的生成方法和非对称密钥的生成方法的举例说明,仅作为对本申请所提出的密钥的更新方法的举例,不作为对本申请实施例的限制。
基于前述对本申请实施例所提出的密钥的更新方法的实施例的说明,可以知道,本申请实施例所提出的不同版本的密钥,是由基准值经过不同处理次数的单向映射处理后生成的,并且更新前的第一密钥对应的第一处理次数大于更新后的第二密钥对应的第二处理次数。因此,通过对更新后的第二密钥进行若干次处理次数的单向映射处理,可以得到更新前的第一密钥。
对于上述不同版本的密钥之间的单向推导关系,在数据传输过程中,接收方可以在接收到加密数据或者数字签名后,根据加密数据对应的处理次数或者数字签名对应的处理次数,生成对应的密钥,对加密数据或者数字签名进行处理。
在数据解密过程中,本申请实施例提出了一种数据解密方法,图9为本申请实施例所提出的一种数据解密方法的流程示意图。如图9所示,该方法包括:
步骤S201,接收加密数据和第一处理次数,并将第一处理次数与本地存储的第二处理次数进行比较。
需要说明的是,对于本申请实施例所提供的密钥的更新方法,在实际使用过程中,可能存在数据传输的双方没有及时同步密钥版本的情况。也就是说,作为数据传输的接收方,接收到的加密数据对应的密钥的版本与接收方正在使用的密钥的版本可能出现三种情况。一种可能的情况是,接收到的加密数据对应的密钥比接收方正在使用的密钥新,另一种可能的情况是,接收到的加密数据对应的密钥和接收方正在使用的密钥版本相同,又一种可能的情况是,接收到的加密数据对应的密钥比接收方正在使用的密钥旧。
可以理解,本申请实施例中不同版本的密钥是由基准值经过不同处理次数的单向映射处理后生成的,因此密钥的版本与处理次数一一对应。数据传输的发送方为了让接收方确定解密数据对应的密钥版本,将加密数据对应的第一处理次数与加密数据一起发送给接收方。接收方在收到加密数据和第一处理次数后,将第一处理次数和本地存储的第二处理次数进行比较。其中,本地存储的第二处理次数为接收方正在使用的密钥对应的处理次数。
步骤S202,根据比较结果,判断是否能够对加密数据进行解密。
可以理解,第一处理次数和第二处理次数的大小关系决定了加密数据对应的密钥版本与接收方使用的密钥版本的新旧关系。
对于上述的三种可能的情况,相应地,第一处理次数可能小于第二处理次数,也可能等于第二处理次数,还可能大于第二处理次数。
具体地,判断第一处理次数是否小于第二处理次数,基于前述说明可以知道,当第一处理次数小于第二处理次数时,说明接收到的加密数据对应的密钥比接收方正在使用的密钥新,接收方无法通过正在使用的密钥,推导加密数据对应的密钥,确定不能对加密数据进行解密。
需要特别说明的是,在密钥更新过程中,为了防止旧密钥被不法第三方获取,通常采用更新密钥的方式来确保数据传输的安全。若接收方属于不法第三方,在没有获得新版密钥的情况下,无法使用旧密钥来对加密数据进行解密,保证了数据传输的安全。
判断第一处理次数是否等于第二处理次数,可以理解,当第一处理次数等于第二处理次数时,说明加密数据对应的密钥版本与接收方正在使用的第二密钥的版本相同,可直接使用本地存储的第二密钥作为加密数据对应的第一密钥,对加密数据进行解密。
判断第一处理次数是否大于第二处理次数,基于前述说明可以知道,当第一处理次数大于第二处理次数时,说明接收到的加密数据对应的密钥比接收方正在使用的密钥旧,接收方能够通过正在使用的密钥,推导加密数据对应的密钥。具体可以对本地存储的第二密钥进行第三处理次数的单向映射处理,以生成加密数据对应的第一密钥。其中,第三处理次数为第一处理次数和第二处理次数的差值。
可以理解,第一密钥由基准值经过第一处理次数的单向映射处理后生成,第二密钥由基准值经过第二处理次数的单向映射处理后生成。因此,先对基准值进行第二处理次数的单向映射处理,可以生成第二密钥,再对第二密钥进行第三处理次数的单向映射处理,可以生成第一密钥。
步骤S203,如果是,则确定第一处理次数对应的第一密钥。
其中,第一密钥可以由基准值,经过第一处理次数的单向映射处理后生成。
可以理解,在上述的三种情况中,当第一处理次数大于或者等于第二处理次数时,可以通过第二密钥生成第一密钥,或者直接将第二密钥作为第一密钥,此处不再赘述。
步骤S204,使用第一密钥对加密数据进行解密。
需要特别说明的是,当第一处理次数大于第二处理次数时,在使用第一密钥对加密数据进行解密后,不对第一密钥进行保存,本地依然只存储第二密钥。若以后还接收到第一密钥对应的加密数据,依然通过本地存储的第二密钥生成第一密钥,来对加密数据进行解密。
综上所述,本申请实施例所提出的数据解密方法,包括:接收加密数据和第一处理次数,并将第一处理次数与本地存储的第二处理次数进行比较。根据比较结果,判断是否能够对加密数据进行解密,如果是,则确定第一处理次数对应的第一密钥。使用第一密钥对加密数据进行解密。由此,实现了只需在本地存储更新后的密钥,当收到旧密钥对应的加密数据时,使用更新后的密钥生成旧密钥,再使用旧密钥对加密数据进行解密。
此外,本申请实施例中的单向映射处理的步骤可以包括使用哈希算法进行处理,哈希算法通过对输入内容进行哈希运算,生成唯一对应的哈希值。
进一步地,为了增强本申请实施例中密钥的可靠性,一种可能的实现方式是,前述使用哈希算法进行处理包括:将单向映射处理的输入与本地标识进行拼接,并将拼接后的结果作为哈希算法的输入。
可以理解,在对称加密技术和非对称加密技术中,分别使用密钥和密钥对来实现加密和解密。基于前述对非对称加密技术的说明,可以知道,当数据传输双方使用非对称加密技术时,第一密钥为非对称密钥对中的一个密钥。
需要特别说明的是,前述对密钥的更新方法的实施例的解释说明,也适用于本申请实施例的数据解密方法,本申请实施例对此不再赘述。
在数字签名的验证过程中,本申请实施例提出了一种数字签名的验证方法,图10为本申请实施例所提出的一种数字签名的验证方法的流程示意图。如图10所示,该方法包括:
步骤S301,接收数字签名和第一处理次数,并将第一处理次数与本地存储的第二处理次数进行比较。
基于前述对加密技术的说明,可以知道,对于数字签名的验证过程来说,对称加密技术无法适用,也就是说,只有非对称加密技术才能用于数字签名的验证。
和前述的数据解密过程相反,在数据解密过程中,接收方使用接收方的私钥对接收方的公钥加密后的密文进行解密,解密成功则完成数据的加密传输。而在数字签名的验证过程中,接收方使用发送方的公钥对发送方的私钥加密后的密文进行解密,解密成功则完成对发送方的数字签名的验证。
步骤S302,根据比较结果,判断是否能够对数字签名进行验证。
可以理解,在解密过程中需要首先比较加密数据对应的密钥对与接收方使用的密钥对的版本,相应地,在数字签名的验证过程中首先需要比较数字签名对应的密钥对与接收方使用的密钥对的版本。即数字签名使用的密钥对对应的处理次数,与接收方正在使用的密钥对对应的处理次数的大小。
具体地,判断第一处理次数是否小于第二处理次数,基于前述说明可以知道,当第一处理次数小于第二处理次数时,说明接收到的数字签名对应的密钥对比接收方正在使用的密钥对新,接收方无法通过正在使用的密钥对,推导数字签名对应的密钥对,确定不能对数字签名进行验证。
判断第一处理次数是否等于第二处理次数,可以理解,当第一处理次数等于第二处理次数时,说明数字签名对应的密钥版本与接收方正在使用的第二密钥对的版本相同,可直接使用本地存储的第二密钥对作为数字签名对应的第一密钥对,对数字签名进行验证。
判断第一处理次数是否大于第二处理次数,基于前述说明可以知道,当第一处理次数大于第二处理次数时,说明接收到的数字签名对应的密钥对比接收方正在使用的密钥对旧,接收方能够通过正在使用的密钥对,推导数字签名对应的密钥对。具体可以对本地存储的第二密钥对中的第二密钥进行第三处理次数的单向映射处理,以生成第一密钥。其中,第三处理次数为第一处理次数和第二处理次数的差值。根据第一密钥,生成第一密钥对。
可以理解,第一密钥由基准值经过第一处理次数的单向映射处理后生成,第二密钥由基准值经过第二处理次数的单向映射处理后生成。因此,先对基准值进行第二处理次数的单向映射处理,可以生成第二密钥,再对第二密钥进行第三处理次数的单向映射处理,可以生成第一密钥。
步骤S303,如果是,则确定第一处理次数对应的第一密钥对。
其中,第一密钥对为非对称密钥对,第一密钥对包括第一密钥,第一密钥可以由基准值,经过第一处理次数的单向映射处理后生成。
基于前述的说明可以知道,只有非对称加密技术才能用于数字签名的验证,因此本申请实施例所提供的第一密钥对为非对称密钥对。
步骤S304,使用第一密钥对对数字签名进行验证。
需要特别说明的是,当第一处理次数大于第二处理次数时,在使用第一密钥对对数字签名进行验证后,不对第一密钥对进行保存,本地依然只存储第二密钥对。若以后还接收到第一密钥对对应的数字签名,依然通过本地存储的第二密钥对生成第一密钥对,来对数字签名进行验证。
综上所述,本申请实施例所提出的数字签名的验证方法,包括:接收数字签名和第一处理次数,并将第一处理次数与本地存储的第二处理次数进行比较。根据比较结果,判断是否能够对数字签名进行验证。如果是,则确定第一处理次数对应的第一密钥对。其中,第一密钥对为非对称密钥对,第一密钥对包括第一密钥。使用第一密钥对对数字签名进行验证。由此,实现了只需在本地存储更新后的密钥对,当收到旧密钥对对应的数字签名时,使用更新后的密钥对生成旧密钥对,再使用旧密钥对对数字签名进行验证。
此外,本申请实施例中的单向映射处理的步骤可以包括使用哈希算法进行处理,哈希算法通过对输入内容进行哈希运算,生成唯一对应的哈希值。
进一步地,为了增强本申请实施例中密钥对的可靠性,一种可能的实现方式是,前述使用哈希算法进行处理包括:将单向映射处理的输入与本地标识进行拼接,并将拼接后的结果作为哈希算法的输入。
需要特别说明的是,前述对密钥的更新方法的实施例的解释说明,也适用于本申请实施例的数据解密方法,本申请实施例对此不再赘述。
为了清楚地说明本申请实施例所提供的密钥的更新方法、数据解密方法、数字签名的验证方法,下面进行举例说明。
在IOT分布式场景中,手机等终端上的应用(如家居应用)和其他设备(如家居设备)初始绑定时,要向设备传输应用密钥对。在发送消息(如指令传输)时,可以使用私钥对会话进行数字签名,使得其通信对端认证会话密钥的合法性。当终端应用因各种原因(如定期更新)需要更新密钥对时,已绑定的所有设备需要重新认证其新密钥的合法性。
对于已经建立过初始信任的终端及其他设备,终端应用可以使用本申请实施例所提供的密钥的更新方法进行密钥更新,且更新后的密钥可兼容所有旧版本的密钥进行的数字签名。数据传输对端也可以基于已经认证过的旧版本密钥,在不需要重新进行绑定的情况下认证终端应用的新密钥。
图11a为本申请实施例所提供的终端应用生成不同版本密钥的结构示意图。图11b为本申请实施例所提供的密钥生成模块生成不同版本密钥的流程示意图。图12a为本申请实施例所提供的终端应用生成更新后的密钥的结构示意图。图12b为本申请实施例所提供的密钥生成模块生成更新后的密钥的流程示意图。图13为本申请实施例所提供的终端应用进行加密解密/数字签名验证的结构示意图。图14为本申请实施例所提供的家居设备进行密钥校验的结构示意图。具体实现方式如下:
(1)如图11a和图11b所示,终端应用首先请求密钥生成模块生成版本密钥对(以RSA密钥对为例),生成一系列的版本密钥,并获取版本密钥对(n100,d100)与版本号100,即首先启用版本号为100的密钥对。
(2)终端应用与家居设备进行初始绑定,家居设备获取并认证公钥n100及版本号100,家居设备使用n100验证终端应用的签名。
(3)如图12a和图12b所示,当终端应用定期更新密钥对时,将更新后的版本号为99传入密钥生成模块,并获取更新后的密钥对(n99,d99)及版本号99。
(4)如图13所示,对于家居设备使用旧版本密钥n100加密的数据,终端应用可以基于当前版本密钥n99生成(n100,d100),并解密数据。
(5)如图14所示,终端应用向家居设备发布新版本公钥n99及版本号99时,家居设备可以调用密钥校验模块,计算新版本密钥n99的单向计算值,并与本地保存的旧版本公钥n100进行比对,从而认证n99的完整性。
在上述例子中,终端应用在密钥更新后,可以基于新版本秘钥自主推导旧版本密钥,从而兼容旧版本密钥处理的数据,降低了密钥管理的复杂度。
家居设备可以不需要与终端应用重新绑定,就可以基于本地存储的旧版本密钥认证新版本密钥的合法性。
为了实现上述实施例,本申请实施例还提出了一种终端,图15为本申请实施例所提供的一种终端的结构示意图。如图15所示,该终端包括:第一接收模块410,获取模块420,第一处理模块430,替换模块440。
第一接收模块410,用于接收密钥更新指令。
获取模块420,用于获取本地存储的第一密钥和基准值。
其中,第一密钥由基准值,经过第一处理次数的单向映射处理后生成。
第一处理模块430,用于对基准值进行第二处理次数的单向映射处理,以生成第二密钥。
其中,第二处理次数小于第一处理次数。
替换模块440,用于将第一密钥替换为第二密钥。
进一步地,为了便于密钥的版本号与单向映射处理次数相对应,一种可能的实现方式是,第一处理次数和第二处理次数的差值为一。
进一步地,为了确保单向映射处理结果的唯一性,一种可能的实现方式是,第一处理模块430具体用于使用哈希算法对基准值进行第二处理次数的处理。
进一步地,为了增强本申请实施例中密钥的可靠性,一种可能的实现方式是,第一处理模块430包括:拼接子模块431,用于将第一处理模块430的输入与本地标识进行拼接。第一设置子模块432,用于将拼接后的结果作为哈希算法的输入。
进一步地,为了让本申请实施例所提供的终端能够用于非对称加密/解密和数字签名的验证,第一密钥为非对称密钥对中的一个密钥。
进一步地,为了避免基准值出现存储风险,一种可能的实现方式是,基准值通过从设备硬件区域中获取,由云服务器下发,由外界输入中任一种方式获取。
需要说明的是,前述对密钥的更新方法的实施例的解释说明,也适用于本申请实施例的终端,在此不再赘述。
综上所述,本申请实施例所提供的终端。在进行密钥的更新时,接收密钥更新指令。获取本地存储的第一密钥和基准值。其中,第一密钥由基准值,经过第一处理次数的单向映射处理后生成。对基准值进行第二处理次数的单向映射处理,以生成第二密钥。其中,第二处理次数小于第一处理次数。将第一密钥替换为第二密钥。由此,实现了对密钥的更新,并且能够根据当前密钥单向推导出旧密钥。无需对旧密钥进行存储,节省了数据传输方的资源,并且不用担心旧密钥出现丢失,无法通过旧密钥推导出当前密钥。在接收到数据传输对方发送的新密钥后,也无需第三方对新密钥进行合法性验证。
为了实现上述实施例,本申请实施例还提出了另一种终端,图16为本申请实施例所提出的另一种终端的结构示意图。如图16所示,该终端包括:第二接收模块510,第一比较模块520,第一判断模块530,第一确定模块540,解密模块550。
第二接收模块510,用于接收加密数据和第一处理次数。
第一比较模块520,用于将第一处理次数与本地存储的第二处理次数进行比较。
第一判断模块530,用于根据比较结果,判断是否能够对加密数据进行解密。
第一确定模块540,用于当第一判断模块530确定能够对加密数据进行解密时,确定第一处理次数对应的第一密钥。
其中,第一密钥可以由基准值,经过第一处理次数的单向映射处理后生成。
解密模块550,用于使用第一密钥对加密数据进行解密。
进一步地,为了比较第一处理次数和第二处理次数,一种可能的实现方式是,第一判断模块530,包括:第一判断子模块531,用于判断第一处理次数是否小于第二处理次数。第一确定子模块532,用于当第一判断子模块531确定第一处理次数小于第二处理次数时,确定不能对加密数据进行解密。
进一步地,为了比较第一处理次数和第二处理次数,一种可能的实现方式是,第一判断模块530,包括:第二判断子模块533,用于判断第一处理次数是否等于第二处理次数。第二设置子模块534,用于当第二判断子模块533确定第一处理次数等于第二处理次数时,将本地存储的第二密钥作为第一密钥。
进一步地,为了比较第一处理次数和第二处理次数,一种可能的实现方式是,第一判断模块530,包括:第三判断子模块535,用于判断第一处理次数是否大于第二处理次数。第一处理子模块536,用于当第三判断子模块535确定第一处理次数大于第二处理次数时,对本地存储的第二密钥进行第三处理次数的单向映射处理,以生成第一密钥。其中,第三处理次数为第一处理次数和第二处理次数的差值。
进一步地,为了确保单向映射处理结果的唯一性,一种可能的实现方式是,第一处理子模块536具体用于使用哈希算法对基准值进行第三处理次数的处理。
进一步地,为了增强本申请实施例中密钥的可靠性,一种可能的实现方式是,第一处理子模块536,包括:第一拼接单元536a,用于将单向映射处理的输入与本地标识进行拼接。第一设置单元536b,用于将拼接后的结果作为哈希算法的输入。
进一步地,为了让本申请实施例所提供的终端能够进行非对称加密/解密,一种可能的实现方式是,第一密钥为非对称密钥对中的一个密钥。
进一步地,为了避免基准值出现存储风险,一种可能的实现方式是,基准值通过从设备硬件区域中获取,由云服务器下发,由外界输入中任一种方式获取。
需要说明的是,前述对数据解密方法的实施例的解释说明,也适用于本申请实施例的终端,在此不再赘述。
综上所述,本申请实施例所提出的终端。在进行数据解密时,接收加密数据和第一处理次数,并将第一处理次数与本地存储的第二处理次数进行比较。根据比较结果,判断是否能够对加密数据进行解密,如果是,则确定第一处理次数对应的第一密钥。其中,第一密钥由基准值,经过第一处理次数的单向映射处理后生成。使用第一密钥对加密数据进行解密。由此,实现了只需在本地存储更新后的密钥,当收到旧密钥对应的加密数据时,使用更新后的密钥生成旧密钥,再使用旧密钥对加密数据进行解密。
为了实现上述实施例,本申请实施例还提出了又一种终端,图17为本申请实施例所提出的又一种终端的结构示意图。如图17所示,该终端包括:第三接收模块610,第二比较模块620,第二判断模块630,第二确定模块640,验证模块650。
第三接收模块610,用于接收数字签名和第一处理次数。
第二比较模块620,用于将第一处理次数与本地存储的第二处理次数进行比较。
第二判断模块630,用于根据比较结果,判断是否能够对数字签名进行验证。
第二确定模块640,用于当第二判断模块630确定能够对数字签名进行验证时,确定第一处理次数对应的第一密钥对。
其中,第一密钥对为非对称密钥对,第一密钥对包括第一密钥,第一密钥可以由基准值,经过第一处理次数的单向映射处理后生成。
验证模块650,用于使用第一密钥对对数字签名进行验证。
进一步地,为了比较第一处理次数和第二处理次数,一种可能的实现方式是,第二判断模块630,包括:第四判断子模块631,用于判断第一处理次数是否小于第二处理次数。第二确定子模块632,用于当第四判断子模块631确定第一处理次数小于第二处理次数时,确定不能对数字签名进行验证。
进一步地,为了比较第一处理次数和第二处理次数,一种可能的实现方式是,第二判断模块630,包括:第五判断子模块633,用于判断第一处理次数是否等于第二处理次数。第三设置子模块634,用于当第五判断子模块633确定第一处理次数等于第二处理次数时,将本地存储的第二密钥对作为第一密钥对。
进一步地,为了比较第一处理次数和第二处理次数,一种可能的实现方式是,第二判断模块630,包括:第六判断子模块635,用于判断第一处理次数是否大于第二处理次数。第二处理子模块636,用于当第六判断子模块635确定第一处理次数大于第二处理次数时,对本地存储的第二密钥对中的第二密钥进行第三处理次数的单向映射处理,以生成第一密钥。其中,第三处理次数为第一处理次数和第二处理次数的差值。生成子模块637,用于根据第一密钥,生成第一密钥对。
进一步地,为了确保单向映射处理结果的唯一性,一种可能的实现方式是,第二处理子模块636具体用于使用哈希算法对基准值进行第三处理次数的处理。
进一步地,为了增强本申请实施例中密钥的可靠性,一种可能的实现方式是,第二处理子模块636,包括:第二拼接单元636a,用于将单向映射处理的输入与本地标识进行拼接。第二设置单元636b,用于将拼接后的结果作为哈希算法的输入。
进一步地,为了避免基准值出现存储风险,一种可能的实现方式是,基准值通过从设备硬件区域中获取,由云服务器下发,由外界输入中任一种方式获取。
需要说明的是,前述对数字签名的验证方法的实施例的解释说明,也适用于本申请实施例的终端,在此不再赘述。
综上所述,本申请实施例所提出的终端。在进行数字签名的验证时,接收数字签名和第一处理次数,并将第一处理次数与本地存储的第二处理次数进行比较。根据比较结果,判断是否能够对数字签名进行验证。如果是,则确定第一处理次数对应的第一密钥对。其中,第一密钥对为非对称密钥对,第一密钥对包括第一密钥,第一密钥由基准值,经过第一处理次数的单向映射处理后生成。使用第一密钥对对数字签名进行验证。由此,实现了只需在本地存储更新后的密钥对,当收到旧密钥对对应的数字签名时,使用更新后的密钥对生成旧密钥对,再使用旧密钥对对数字签名进行验证。
图18为本申请实施例所提供的电子设备的结构示意图。
为了实现上述实施例,本申请实施例还提出了一种电子设备,如图18所示,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时,执行以下步骤:
步骤S101,接收密钥更新指令。
基于前述对加密技术的说明,可以知道,密钥在使用过程中,可以采用定期更新的方式进行更新,也可以在发现密钥泄露或者有泄露的风险时进行更新,以保证密钥的安全。
步骤S102,获取本地存储的第一密钥和基准值。
其中,第一密钥由基准值,经过第一处理次数的单向映射处理后生成。单向映射是指不可逆的映射,比如说A经过单向映射得到B,却无法将B还原为A。因此,对基准值进行第一处理次数的单向映射处理后,能够得到第一密钥,却无法对第一密钥进行还原。
需要说明的是,本申请实施例中的密钥的更新方法在数据传输方存储当前正在使用的密钥,即第一密钥。
可以理解,由于本申请实施例中的数据传输方的各个版本的密钥都是基于基准值生成的,为了确保生成的密钥不同,不同数据传输方的基准值不能相同。此外,为了防止密钥泄露,用于生成密钥的基准值也应当保密。
第一种可能的实现方式是,数据传输方使用自身的硬件密钥作为基准值,硬件密钥存储在数据传输方的硬件区域,安全可靠。
第二种可能的实现方式是,数据传输方在云服务器进行注册时,云服务器根据数据传输方的硬件信息生成对应的基准值,基准值存储在云服务器上。云服务器将基准值以安全方式下发给数据传输方,避免数据传输方直接存储基准值。
第三种可能的实现方式是,由用户手动输入用户密码作为基准值,避免数据传输方直接存储基准值。
在上述第二种和第三种可能的实现方式中,数据传输方不对基准值进行存储,每次需要使用基准值时,通过访问云服务器或者提示用户输入用户密码的方式生成基准值。
步骤S103,对基准值进行第二处理次数的单向映射处理,以生成第二密钥。
其中,第二处理次数小于第一处理次数。
可以理解,第二密钥即为更新后的密钥,本申请实施例所提供的密钥的更新方法中,生成第一密钥和生成第二密钥的方式类似,都是对基准值进行多次单向映射处理,但是第二密钥对应的第二处理次数小于第一密钥的第一处理次数。基于前述对单向映射的说明可以知道,对第二密钥进行预设次数的单向映射,可以得到第一密钥,但是无法根据第一密钥,生成第二密钥。
也就是说,本申请实施例能够根据更新后的密钥,生成更新前的密钥,而无法根据更新前的密钥,生成更新后的密钥。可以防止第三方根据已经泄露的旧密钥推导出更新后的密钥。
步骤S104,将第一密钥替换为第二密钥。
可以理解,在生成更新后的密钥后,需要将当前密钥进行替换,以完成密钥的更新,并且无需对旧密钥进行存储。
此外,由于在数据传输过程中,需要数据传输的发送方和接收方同步实现密钥的更新。在现有的密钥更新方法中,通常由数据传输的一方完成密钥的更新,再将更新后的密钥发送给数据传输的另一方,以完成密钥的同步。但是更新后的密钥传输至数据传输的另一方时,可能出现数据丢失或者被篡改的风险,需要依赖可信第三方对更新后的密钥进行校验。
而本申请实施例所提供的电子设备,在接收到数据传输对方发送的第二密钥以及对应的第二处理次数后,首先比较第二处理次数和第一处理次数的大小。
若第二处理次数大于或者等于第一处理次数,说明数据传输对方发送的第二密钥是旧密钥,无需对第二密钥进行认证,并且无需对本地存储的第一密钥进行更新。
若第二处理次数小于第一处理次数,可以对第二密钥进行第三处理次数的单向映射处理,将处理后的结果与本地存储的第一密钥进行固定字段的校验,校验通过则将本地存储的第一密钥替换为第二密钥。其中,第三处理处理次数为第一处理次数和第二处理次数的差值。
综上所述,本申请实施例所提供的电子设备,在进行密钥进行时,接收密钥更新指令。获取本地存储的第一密钥和基准值。其中,第一密钥由基准值,经过第一处理次数的单向映射处理后生成。对基准值进行第二处理次数的单向映射处理,以生成第二密钥。其中,第二处理次数小于第一处理次数。将第一密钥替换为第二密钥。由此,实现了对密钥的更新,并且能够根据当前密钥单向推导出旧密钥。无需对旧密钥进行存储,节省了数据传输方的资源,并且不用担心旧密钥出现丢失,无法通过旧密钥推导出当前密钥。在接收到数据传输对方发送的新密钥后,也无需第三方对新密钥进行合法性验证。
进一步地,为了便于密钥的版本号与单向映射处理次数相对应,一种可能的实现方式是,第一处理次数和第二处理次数的差值为一。可以理解,第一处理次数和第二处理次数分别是一次密钥更新过程中,更新前的第一密钥和更新后的第二密钥所对应的处理次数,而更新前的第一密钥和更新后的第二密钥相差一个版本,因此当第一处理次数和第二处理次数的差值为一时,可以使用第一处理次数来标识第一密钥的版本,使用第二处理次数来标识第二密钥的版本。
需要注意的是,第二处理次数小于第一处理次数,因此更新后的第二密钥的版本标识在数值上小于更新前的第一密钥的版本标识。也就是说,生成的密钥越新,所对应的处理次数越小,版本标识数值也越小。
此外,本申请实施例中电子设备进行单向映射处理的步骤可以包括使用哈希算法进行处理,哈希算法通过对输入内容进行哈希运算,生成唯一对应的哈希值。
在第一密钥生成的过程中,对基准值进行第一处理次数(比如6次)的哈希运算,生成对应的哈希值,作为第一密钥。
在对第一密钥进行更新时,对基准值进行第二处理次数(比如5次)的哈希运算,生成对应的哈希值,作为第二密钥,使用第二密钥替换第一密钥,即可完成对第一密钥的更新。
可以理解,第一密钥是由基准值经过6次哈希运算生成的,在生成第一密钥的过程中,当基准值进行了5次哈希运算后,得到的哈希值与第二密钥完全相同,再进行1次哈希运算,才得到第一密钥。因此,第二密钥经过1次哈希运算,即可生成第一密钥。在完成对第一密钥的更新后,数据传输方基于第二密钥,可以直接生成第一密钥。相反的,由于哈希算法的难以逆向的特点,数据传输方基于第一密钥,无法直接生成第二密钥。
需要特别说明的是,本申请实施例中的哈希算法可以是SHA-256,SHA-512等任一种已知的哈希算法,本申请实施例对此不做限定。
进一步地,为了增强本申请实施例中密钥的可靠性,一种可能的实现方式是,电子设备使用哈希算法进行处理包括:将单向映射处理的输入与本地标识进行拼接,并将拼接后的结果作为哈希算法的输入。
其中,本地标识是数据传输方的唯一标识,始终保持不变。也就是说,在每一次单向映射处理过程中,先将单向映射处理的输入与本地标识进行拼接,再将拼接后的结果输入哈希算法进行哈希运算。具体地,本地标识可以采用数据传输方的硬件标识,也可以使用进行数据传输的软件应用的应用标识,还可以使用人为设置的标识,本申请实施例对此不做限定。
从而,使得每一次哈希运算的输入为,上一次哈希运算的输入与固定标识拼接后的结果,增强了哈希算法的复杂度,进而提升了生成密钥的安全性。
基于前述相关技术的说明,可以知道,在对称加密技术中,数据传输的发送方和接收方使用相同的密钥,在密钥更新时,只需要将更新前的第一密钥替换为更新后的第二密钥。
而在非对称密钥技术中,数据传输的发送方和接收方使用一组密钥对,在进行密钥更新时,密钥对中的私钥和公钥都需要进行更新。
在本申请实施例中,一种可能的实现方式是,将第一密钥作为私钥,将与第一密钥匹配的第三密钥作为公钥,第一密钥与第三密钥组成非对称密钥对。在生成该非对称密钥对时,对基准值进行第一处理次数的单向映射,生成第一密钥,再由第一密钥计算后生成第三密钥,从而生成该非对称密钥对。
另一种可能的实现方式是,将第一密钥作为公钥,将与第一密钥匹配的第三密钥作为私钥,第一密钥与第三密钥组成非对称密钥对。在生成该非对称密钥对时,对基准值进行第一处理次数的单向映射,生成第一密钥,再由第一密钥计算后生成第三密钥,从而生成该非对称密钥对。
为了实现上述实施例,本申请实施例还提出了一种电子设备,如图18所示,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时,执行以下步骤:
步骤S201,接收加密数据和第一处理次数,并将第一处理次数与本地存储的第二处理次数进行比较。
需要说明的是,对于前述本申请实施例所提供的电子设备,在实际使用过程中,可能存在数据传输的双方没有及时同步密钥版本的情况。也就是说,作为数据传输的接收方,接收到的加密数据对应的密钥的版本与接收方正在使用的密钥的版本可能出现三种情况。一种可能的情况是,接收到的加密数据对应的密钥比接收方正在使用的密钥新,另一种可能的情况是,接收到的加密数据对应的密钥和接收方正在使用的密钥版本相同,又一种可能的情况是,接收到的加密数据对应的密钥比接收方正在使用的密钥旧。
可以理解,本申请实施例中不同版本的密钥是由基准值经过不同处理次数的单向映射处理后生成的,因此密钥的版本与处理次数一一对应。数据传输的发送方为了让接收方确定解密数据对应的密钥版本,将加密数据对应的第一处理次数与加密数据一起发送给接收方。接收方在收到加密数据和第一处理次数后,将第一处理次数和本地存储的第二处理次数进行比较。其中,本地存储的第二处理次数为接收方正在使用的密钥对应的处理次数。
步骤S202,根据比较结果,判断是否能够对加密数据进行解密。
可以理解,第一处理次数和第二处理次数的大小关系决定了加密数据对应的密钥版本与接收方使用的密钥版本的新旧关系。
对于上述的三种可能的情况,相应地,第一处理次数可能小于第二处理次数,也可能等于第二处理次数,还可能大于第二处理次数。
具体地,判断第一处理次数是否小于第二处理次数,基于前述说明可以知道,当第一处理次数小于第二处理次数时,说明接收到的加密数据对应的密钥比接收方正在使用的密钥新,接收方无法通过正在使用的密钥,推导加密数据对应的密钥,确定不能对加密数据进行解密。
需要特别说明的是,在密钥更新过程中,为了防止旧密钥被不法第三方获取,通常采用更新密钥的方式来确保数据传输的安全。若接收方属于不法第三方,在没有获得新版密钥的情况下,无法使用旧密钥来对加密数据进行解密,保证了数据传输的安全。
判断第一处理次数是否等于第二处理次数,可以理解,当第一处理次数等于第二处理次数时,说明加密数据对应的密钥版本与接收方正在使用的第二密钥的版本相同,可直接使用本地存储的第二密钥作为加密数据对应的第一密钥,对加密数据进行解密。
判断第一处理次数是否大于第二处理次数,基于前述说明可以知道,当第一处理次数大于第二处理次数时,说明接收到的加密数据对应的密钥比接收方正在使用的密钥旧,接收方能够通过正在使用的密钥,推导加密数据对应的密钥。具体可以对本地存储的第二密钥进行第三处理次数的单向映射处理,以生成加密数据对应的第一密钥。其中,第三处理次数为第一处理次数和第二处理次数的差值。
可以理解,第一密钥由基准值经过第一处理次数的单向映射处理后生成,第二密钥由基准值经过第二处理次数的单向映射处理后生成。因此,先对基准值进行第二处理次数的单向映射处理,可以生成第二密钥,再对第二密钥进行第三处理次数的单向映射处理,可以生成第一密钥。
步骤S203,如果是,则确定第一处理次数对应的第一密钥。
其中,第一密钥可以由基准值,经过第一处理次数的单向映射处理后生成。
可以理解,在上述的三种情况中,当第一处理次数大于或者等于第二处理次数时,可以通过第二密钥生成第一密钥,或者直接将第二密钥作为第一密钥,此处不再赘述。
步骤S204,使用第一密钥对加密数据进行解密。
需要特别说明的是,当第一处理次数大于第二处理次数时,在使用第一密钥对加密数据进行解密后,不对第一密钥进行保存,本地依然只存储第二密钥。若以后还接收到第一密钥对应的加密数据,依然通过本地存储的第二密钥生成第一密钥,来对加密数据进行解密。
综上所述,本申请实施例所提出的电子设备,在进行数据解密时,接收加密数据和第一处理次数,并将第一处理次数与本地存储的第二处理次数进行比较。根据比较结果,判断是否能够对加密数据进行解密,如果是,则确定第一处理次数对应的第一密钥。使用第一密钥对加密数据进行解密。由此,实现了只需在本地存储更新后的密钥,当收到旧密钥对应的加密数据时,使用更新后的密钥生成旧密钥,再使用旧密钥对加密数据进行解密。
此外,本申请实施例中电子设备的单向映射处理的步骤可以包括使用哈希算法进行处理,哈希算法通过对输入内容进行哈希运算,生成唯一对应的哈希值。
进一步地,为了增强本申请实施例中密钥的可靠性,一种可能的实现方式是,电子设备使用哈希算法进行处理包括:将单向映射处理的输入与本地标识进行拼接,并将拼接后的结果作为哈希算法的输入。
可以理解,在对称加密技术和非对称加密技术中,分别使用密钥和密钥对来实现加密和解密。基于前述对非对称加密技术的说明,可以知道,当数据传输双方使用非对称加密技术时,第一密钥为非对称密钥对中的一个密钥。
需要特别说明的是,前述对电子设备进行密钥更新的解释说明,也适用于电子设备进行数据解密,本申请实施例对此不再赘述。
为了实现上述实施例,本申请实施例还提出了一种电子设备,如图18所示,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时,执行以下步骤:
步骤S301,接收数字签名和第一处理次数,并将第一处理次数与本地存储的第二处理次数进行比较。
基于前述对加密技术的说明,可以知道,对于数字签名的验证过程来说,对称加密技术无法适用,也就是说,只有非对称加密技术才能用于数字签名的验证。
和前述的数据解密过程相反,在数据解密过程中,接收方使用接收方的私钥对接收方的公钥加密后的密文进行解密,解密成功则完成数据的加密传输。而在数字签名的验证过程中,接收方使用发送方的公钥对发送方的私钥加密后的密文进行解密,解密成功则完成对发送方的数字签名的验证。
步骤S302,根据比较结果,判断是否能够对数字签名进行验证。
可以理解,在解密过程中需要首先比较加密数据对应的密钥对与接收方使用的密钥对的版本,相应地,在数字签名的验证过程中首先需要比较数字签名对应的密钥对与接收方使用的密钥对的版本。即数字签名使用的密钥对对应的处理次数,与接收方正在使用的密钥对对应的处理次数的大小。
具体地,判断第一处理次数是否小于第二处理次数,基于前述说明可以知道,当第一处理次数小于第二处理次数时,说明接收到的数字签名对应的密钥对比接收方正在使用的密钥对新,接收方无法通过正在使用的密钥对,推导数字签名对应的密钥对,确定不能对数字签名进行验证。
判断第一处理次数是否等于第二处理次数,可以理解,当第一处理次数等于第二处理次数时,说明数字签名对应的密钥版本与接收方正在使用的第二密钥对的版本相同,可直接使用本地存储的第二密钥对作为数字签名对应的第一密钥对,对数字签名进行验证。
判断第一处理次数是否大于第二处理次数,基于前述说明可以知道,当第一处理次数大于第二处理次数时,说明接收到的数字签名对应的密钥对比接收方正在使用的密钥对旧,接收方能够通过正在使用的密钥对,推导数字签名对应的密钥对。具体可以对本地存储的第二密钥对中的第二密钥进行第三处理次数的单向映射处理,以生成第一密钥。其中,第三处理次数为第一处理次数和第二处理次数的差值。根据第一密钥,生成第一密钥对。
可以理解,第一密钥由基准值经过第一处理次数的单向映射处理后生成,第二密钥由基准值经过第二处理次数的单向映射处理后生成。因此,先对基准值进行第二处理次数的单向映射处理,可以生成第二密钥,再对第二密钥进行第三处理次数的单向映射处理,可以生成第一密钥。
步骤S303,如果是,则确定第一处理次数对应的第一密钥对。
其中,第一密钥对为非对称密钥对,第一密钥对包括第一密钥,第一密钥可以由基准值,经过第一处理次数的单向映射处理后生成。
基于前述的说明可以知道,只有非对称加密技术才能用于数字签名的验证,因此本申请实施例所提供的第一密钥对为非对称密钥对。
步骤S304,使用第一密钥对对数字签名进行验证。
需要特别说明的是,当第一处理次数大于第二处理次数时,在使用第一密钥对对数字签名进行验证后,不对第一密钥对进行保存,本地依然只存储第二密钥对。若以后还接收到第一密钥对对应的数字签名,依然通过本地存储的第二密钥对生成第一密钥对,来对数字签名进行验证。
综上所述,本申请实施例所提出的电子设备,在进行数字签名的验证时,接收数字签名和第一处理次数,并将第一处理次数与本地存储的第二处理次数进行比较。根据比较结果,判断是否能够对数字签名进行验证。如果是,则确定第一处理次数对应的第一密钥对。其中,第一密钥对为非对称密钥对,第一密钥对包括第一密钥。使用第一密钥对对数字签名进行验证。由此,实现了只需在本地存储更新后的密钥对,当收到旧密钥对对应的数字签名时,使用更新后的密钥对生成旧密钥对,再使用旧密钥对对数字签名进行验证。
此外,本申请实施例中电子设备进行单向映射处理的步骤可以包括使用哈希算法进行处理,哈希算法通过对输入内容进行哈希运算,生成唯一对应的哈希值。
进一步地,为了增强本申请实施例中密钥对的可靠性,一种可能的实现方式是,电子设备使用哈希算法进行处理包括:将单向映射处理的输入与本地标识进行拼接,并将拼接后的结果作为哈希算法的输入。
需要特别说明的是,前述对电子设备进行密钥更新的解释说明,也适用于电子设备进行数据解密,本申请实施例对此不再赘述。
图19为本申请实施例所提出的计算机可读存储介质的结构示意图。
为了实现上述实施例,本申请实施例还提出了一种计算机可读存储介质,如图19所示,该计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行前述实施例中的密钥的更新方法。
为了实现上述实施例,本申请实施例还提出了一种计算机可读存储介质,如图19所示,该计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行前述实施例中的数据解密方法。
为了实现上述实施例,本申请实施例还提出了一种计算机可读存储介质,如图19所示,该计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行前述实施例中的数字签名的验证方法。
本申请实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示单独存在A、同时存在A和B、单独存在B的情况。其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项”及其类似表达,是指的这些项中的任意组合,包括单项或复数项的任意组合。例如,a,b和c中的至少一项可以表示:a,b,c,a和b,a和c,b和c或a和b和c,其中a,b,c可以是单个,也可以是多个。
本领域普通技术人员可以意识到,本文中公开的实施例中描述的各单元及算法步骤,能够以电子硬件、计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,任一功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory;以下简称:ROM)、随机存取存储器(Random Access Memory;以下简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。本申请的保护范围应以所述权利要求的保护范围为准。
Claims (36)
1.一种密钥的更新方法,其特征在于,包括:
接收密钥更新指令;
获取本地存储的第一密钥和基准值;其中,所述第一密钥由所述基准值,经过所述第一处理次数的单向映射处理后生成;
对所述基准值进行第二处理次数的所述单向映射处理,以生成第二密钥;其中,所述第二处理次数小于所述第一处理次数;
将所述第一密钥替换为所述第二密钥。
2.根据权利要求1所述的方法,其特征在于,所述第一处理次数和所述第二处理次数的差值为一。
3.根据权利要求1所述的方法,其特征在于,所述单向映射处理的步骤包括:
使用哈希算法进行处理。
4.一种数据解密方法,其特征在于,包括:
接收加密数据和第一处理次数,并将所述第一处理次数与本地存储的第二处理次数进行比较;
根据比较结果,判断是否能够对所述加密数据进行解密;
如果是,则确定所述第一处理次数对应的第一密钥;
使用所述第一密钥对所述加密数据进行解密。
5.根据权利要求4所述的方法,其特征在于,所述根据比较结果,判断是否能够对所述加密数据进行解密,包括:
判断所述第一处理次数是否小于所述第二处理次数;
如果是,则确定不能对所述加密数据进行解密。
6.根据权利要求4所述的方法,其特征在于,所述根据比较结果,判断是否能够对所述加密数据进行解密,包括:
判断所述第一处理次数是否等于所述第二处理次数;
如果是,则将本地存储的第二密钥作为所述第一密钥。
7.根据权利要求4所述的方法,其特征在于,所述根据比较结果,判断是否能够对所述加密数据进行解密,包括:
判断所述第一处理次数是否大于所述第二处理次数;
如果是,则对本地存储的第二密钥进行第三处理次数的单向映射处理,以生成所述第一密钥;其中,所述第三处理次数为所述第一处理次数和所述第二处理次数的差值。
8.一种数字签名的验证方法,其特征在于,包括:
接收数字签名和第一处理次数,并将所述第一处理次数与本地存储的第二处理次数进行比较;
根据比较结果,判断是否能够对所述数字签名进行验证;
如果是,则确定所述第一处理次数对应的第一密钥对;其中,所述第一密钥对为非对称密钥对,所述第一密钥对包括第一密钥;
使用所述第一密钥对对所述数字签名进行验证。
9.根据权利要求8所述的方法,其特征在于,所述根据比较结果,判断是否能够对所述数字签名进行验证,包括:
判断所述第一处理次数是否小于所述第二处理次数;
如果是,则确定不能对所述数字签名进行验证。
10.根据权利要求8所述的方法,其特征在于,所述根据比较结果,判断是否能够对所述数字签名进行验证,包括:
判断所述第一处理次数是否等于所述第二处理次数;
如果是,则将本地存储的第二密钥对作为所述第一密钥对。
11.根据权利要求8所述的方法,其特征在于,所述根据比较结果,判断是否能够对所述数字签名进行验证,包括:
判断所述第一处理次数是否大于所述第二处理次数;
如果是,则对本地存储的第二密钥对中的第二密钥进行第三处理次数的单向映射处理,以生成所述第一密钥;其中,所述第三处理次数为所述第一处理次数和所述第二处理次数的差值;
根据所述第一密钥,生成所述第一密钥对。
12.一种终端,其特征在于,包括:
第一接收模块,用于接收密钥更新指令;
获取模块,用于获取本地存储的第一密钥和基准值;其中,所述第一密钥由所述基准值,经过所述第一处理次数的单向映射处理后生成;
第一处理模块,用于对所述基准值进行第二处理次数的所述单向映射处理,以生成第二密钥;其中,所述第二处理次数小于所述第一处理次数;
替换模块,用于将所述第一密钥替换为所述第二密钥。
13.根据权利要求12所述的终端,其特征在于,所述第一处理次数和所述第二处理次数的差值为一。
14.根据权利要求12所述的终端,其特征在于,所述第一处理模块具体用于使用哈希算法对所述基准值进行第二处理次数的处理。
15.一种终端,其特征在于,包括:
第二接收模块,用于接收加密数据和第一处理次数;
第一比较模块,用于将所述第一处理次数与本地存储的第二处理次数进行比较;
第一判断模块,用于根据比较结果,判断是否能够对所述加密数据进行解密;
第一确定模块,用于当所述第一判断模块确定能够对所述加密数据进行解密时,确定所述第一处理次数对应的第一密钥;
解密模块,用于使用所述第一密钥对所述加密数据进行解密。
16.根据权利要求15所述的终端,其特征在于,所述第一判断模块,包括:
第一判断子模块,用于判断所述第一处理次数是否小于所述第二处理次数;
第一确定子模块,用于当所述第一判断子模块确定所述第一处理次数小于所述第二处理次数时,确定不能对所述加密数据进行解密。
17.根据权利要求15所述的终端,其特征在于,所述第一判断模块,包括:
第二判断子模块,用于判断所述第一处理次数是否等于所述第二处理次数;
第二设置子模块,用于当所述第二判断子模块确定所述第一处理次数等于所述第二处理次数时,将本地存储的第二密钥作为所述第一密钥。
18.根据权利要求15所述的终端,其特征在于,所述第一判断模块,包括:
第三判断子模块,用于判断所述第一处理次数是否大于所述第二处理次数;
第一处理子模块,用于当所述第三判断子模块确定所述第一处理次数大于所述第二处理次数时,对本地存储的第二密钥进行第三处理次数的单向映射处理,以生成所述第一密钥;其中,所述第三处理次数为所述第一处理次数和所述第二处理次数的差值。
19.一种终端,其特征在于,包括:
第三接收模块,用于接收数字签名和第一处理次数;
第二比较模块,用于将所述第一处理次数与本地存储的第二处理次数进行比较;
第二判断模块,用于根据比较结果,判断是否能够对所述数字签名进行验证;
第二确定模块,用于当所述第二判断模块确定能够对所述数字签名进行验证时,确定所述第一处理次数对应的第一密钥对;其中,所述第一密钥对为非对称密钥对,所述第一密钥对包括第一密钥;
验证模块,用于使用所述第一密钥对对所述数字签名进行验证。
20.根据权利要求19所述的终端,其特征在于,所述第二判断模块,包括:
第四判断子模块,用于判断所述第一处理次数是否小于所述第二处理次数;
第二确定子模块,用于当所述第四判断子模块确定所述第一处理次数小于所述第二处理次数时,确定不能对所述数字签名进行验证。
21.根据权利要求19所述的终端,其特征在于,所述第二判断模块,包括:
第五判断子模块,用于判断所述第一处理次数是否等于所述第二处理次数;
第三设置子模块,用于当所述第五判断子模块确定所述第一处理次数等于所述第二处理次数时,将本地存储的第二密钥对作为所述第一密钥对。
22.根据权利要求19所述的终端,其特征在于,所述第二判断模块,包括:
第六判断子模块,用于判断所述第一处理次数是否大于所述第二处理次数;
第二处理子模块,用于当所述第六判断子模块确定所述第一处理次数大于所述第二处理次数时,对本地存储的第二密钥对中的第二密钥进行第三处理次数的单向映射处理,以生成所述第一密钥;其中,所述第三处理次数为所述第一处理次数和所述第二处理次数的差值;
生成子模块,用于根据所述第一密钥,生成所述第一密钥对。
23.一种电子设备,其特征在于,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时,执行以下步骤:
接收密钥更新指令;
获取本地存储的第一密钥和基准值;其中,所述第一密钥由所述基准值,经过所述第一处理次数的单向映射处理后生成;
对所述基准值进行第二处理次数的所述单向映射处理,以生成第二密钥;其中,所述第二处理次数小于所述第一处理次数;
将所述第一密钥替换为所述第二密钥。
24.如权利要求23所述的电子设备,其特征在于,所述第一处理次数和所述第二处理次数的差值为一。
25.如权利要求23所述的电子设备,其特征在于,所述电子设备进行单向映射处理的步骤包括:
使用哈希算法进行处理。
26.一种电子设备,其特征在于,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时,执行以下步骤:
接收加密数据和第一处理次数,并将所述第一处理次数与本地存储的第二处理次数进行比较;
根据比较结果,判断是否能够对所述加密数据进行解密;
如果是,则确定所述第一处理次数对应的第一密钥;
使用所述第一密钥对所述加密数据进行解密。
27.如权利要求26所述的电子设备,其特征在于,所述电子设备根据比较结果,判断是否能够对所述加密数据进行解密,具体包括以下步骤:
判断所述第一处理次数是否小于所述第二处理次数;
如果是,则确定不能对所述加密数据进行解密。
28.如权利要求26所述的电子设备,其特征在于,所述电子设备根据比较结果,判断是否能够对所述加密数据进行解密,具体包括以下步骤:
判断所述第一处理次数是否等于所述第二处理次数;
如果是,则将本地存储的第二密钥作为所述第一密钥。
29.如权利要求26所述的电子设备,其特征在于,所述电子设备根据比较结果,判断是否能够对所述加密数据进行解密,具体包括以下步骤:
判断所述第一处理次数是否大于所述第二处理次数;
如果是,则对本地存储的第二密钥进行第三处理次数的单向映射处理,以生成所述第一密钥;其中,所述第三处理次数为所述第一处理次数和所述第二处理次数的差值。
30.一种电子设备,其特征在于,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时,执行以下步骤:
接收数字签名和第一处理次数,并将所述第一处理次数与本地存储的第二处理次数进行比较;
根据比较结果,判断是否能够对所述数字签名进行验证;
如果是,则确定所述第一处理次数对应的第一密钥对;其中,所述第一密钥对为非对称密钥对,所述第一密钥对包括第一密钥;
使用所述第一密钥对对所述数字签名进行验证。
31.如权利要求30所述的电子设备,其特征在于,所述电子设备根据比较结果,判断是否能够对所述数字签名进行验证,具体包括以下步骤:
判断所述第一处理次数是否小于所述第二处理次数;
如果是,则确定不能对所述数字签名进行验证。
32.如权利要求30所述的电子设备,其特征在于,所述电子设备根据比较结果,判断是否能够对所述数字签名进行验证,具体包括以下步骤:
判断所述第一处理次数是否等于所述第二处理次数;
如果是,则将本地存储的第二密钥对作为所述第一密钥对。
33.如权利要求30所述的电子设备,其特征在于,所述电子设备根据比较结果,判断是否能够对所述数字签名进行验证,具体包括以下步骤:
判断所述第一处理次数是否大于所述第二处理次数;
如果是,则对本地存储的第二密钥对中的第二密钥进行第三处理次数的单向映射处理,以生成所述第一密钥;其中,所述第三处理次数为所述第一处理次数和所述第二处理次数的差值;
根据所述第一密钥,生成所述第一密钥对。
34.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行如权利要求1-3任一项所述的方法。
35.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行如权利要求4-7任一项所述的方法。
36.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行如权利要求8-11任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911221985.XA CN112910627B (zh) | 2019-12-03 | 2019-12-03 | 密钥的更新方法、数据解密方法、数字签名的验证方法 |
PCT/CN2020/128165 WO2021109817A1 (zh) | 2019-12-03 | 2020-11-11 | 密钥的更新方法、数据解密方法、数字签名的验证方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911221985.XA CN112910627B (zh) | 2019-12-03 | 2019-12-03 | 密钥的更新方法、数据解密方法、数字签名的验证方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112910627A true CN112910627A (zh) | 2021-06-04 |
CN112910627B CN112910627B (zh) | 2023-02-10 |
Family
ID=76104712
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911221985.XA Active CN112910627B (zh) | 2019-12-03 | 2019-12-03 | 密钥的更新方法、数据解密方法、数字签名的验证方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112910627B (zh) |
WO (1) | WO2021109817A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114095159A (zh) * | 2021-11-11 | 2022-02-25 | 北京三快在线科技有限公司 | 加密通信方法、装置、计算机设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104217175A (zh) * | 2014-09-05 | 2014-12-17 | 北京邮电大学 | 一种数据读写方法和装置 |
US20170324567A1 (en) * | 2014-12-16 | 2017-11-09 | Panasonic Intellectual Property Management Co., Lt d. | Signature verification device, signature generation device, signature processing system, signature verification method, and signature generation method |
CN108989277A (zh) * | 2017-05-31 | 2018-12-11 | 三星Sds株式会社 | 令牌管理方法及用于执行该方法的服务器 |
CN110493272A (zh) * | 2019-09-25 | 2019-11-22 | 北京风信科技有限公司 | 使用多重密钥的通信方法和通信系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102239488B1 (ko) * | 2017-05-31 | 2021-04-12 | 삼성에스디에스 주식회사 | 디바이스 간 통신 시스템 및 방법 |
CN110276613B (zh) * | 2019-06-20 | 2020-03-27 | 卓尔智联(武汉)研究院有限公司 | 基于区块链的数据处理装置、方法及计算机可读存储介质 |
-
2019
- 2019-12-03 CN CN201911221985.XA patent/CN112910627B/zh active Active
-
2020
- 2020-11-11 WO PCT/CN2020/128165 patent/WO2021109817A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104217175A (zh) * | 2014-09-05 | 2014-12-17 | 北京邮电大学 | 一种数据读写方法和装置 |
US20170324567A1 (en) * | 2014-12-16 | 2017-11-09 | Panasonic Intellectual Property Management Co., Lt d. | Signature verification device, signature generation device, signature processing system, signature verification method, and signature generation method |
CN108989277A (zh) * | 2017-05-31 | 2018-12-11 | 三星Sds株式会社 | 令牌管理方法及用于执行该方法的服务器 |
CN110493272A (zh) * | 2019-09-25 | 2019-11-22 | 北京风信科技有限公司 | 使用多重密钥的通信方法和通信系统 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114095159A (zh) * | 2021-11-11 | 2022-02-25 | 北京三快在线科技有限公司 | 加密通信方法、装置、计算机设备及存储介质 |
CN114095159B (zh) * | 2021-11-11 | 2023-10-31 | 北京三快在线科技有限公司 | 加密通信方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112910627B (zh) | 2023-02-10 |
WO2021109817A1 (zh) | 2021-06-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109559122B (zh) | 区块链数据传输方法及区块链数据传输系统 | |
US11108565B2 (en) | Secure communications providing forward secrecy | |
KR101492644B1 (ko) | 타원 곡선 공개키 암호화 검증을 위한 방법 | |
CN108199835B (zh) | 一种多方联合私钥解密方法 | |
US8259947B2 (en) | Recreating a cryptographic key in a replacement device | |
US10057071B2 (en) | Component for connecting to a data bus, and methods for implementing a cryptographic functionality in such a component | |
EP3318043A1 (en) | Mutual authentication of confidential communication | |
US20050058294A1 (en) | Method, system and device for enabling delegation of authority and access control methods based on delegated authority | |
US11870891B2 (en) | Certificateless public key encryption using pairings | |
US20060083370A1 (en) | RSA with personalized secret | |
CN110048849B (zh) | 一种多层保护的会话密钥协商方法 | |
CN109104271B (zh) | 一种数字签名的方法、装置和系统 | |
KR20070104939A (ko) | 인증을 위한 작은 공개-키 기반 디지털 서명 | |
CN110971411B (zh) | 一种基于sotp技术对私钥乘加密的sm2同态签名方法 | |
CN109800588B (zh) | 条码动态加密方法及装置、条码动态解密方法及装置 | |
JP2008545353A (ja) | 未知の通信当事者間における信頼できる関係の確立 | |
US20160119120A1 (en) | Method and apparatus for public-key encrypted communication | |
US20160182230A1 (en) | Secure token-based signature schemes using look-up tables | |
EP3529948B1 (en) | Composite digital signatures | |
CN109194474A (zh) | 一种数据传输方法及装置 | |
CN111131311A (zh) | 基于区块链的数据传输方法及区块链节点 | |
Kumar et al. | An efficient implementation of digital signature algorithm with SRNN public key cryptography | |
NL1043779B1 (en) | Method for electronic signing and authenticaton strongly linked to the authenticator factors possession and knowledge | |
CN112910627B (zh) | 密钥的更新方法、数据解密方法、数字签名的验证方法 | |
CN109492359B (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 |