CN115499250B - 一种数据加密方法及装置 - Google Patents
一种数据加密方法及装置 Download PDFInfo
- Publication number
- CN115499250B CN115499250B CN202211440633.5A CN202211440633A CN115499250B CN 115499250 B CN115499250 B CN 115499250B CN 202211440633 A CN202211440633 A CN 202211440633A CN 115499250 B CN115499250 B CN 115499250B
- Authority
- CN
- China
- Prior art keywords
- key
- client
- server
- generating
- encryption
- 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
- 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
- H04L63/0435—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 wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
-
- 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
- H04L63/061—Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
-
- 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/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
-
- 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/3263—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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/08—Randomization, e.g. dummy operations or using noise
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/72—Signcrypting, i.e. digital signing and encrypting simultaneously
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)
- Storage Device Security (AREA)
Abstract
本申请提供了一种数据加密方法及装置,其中,该方法包括:随机生成客户端密钥以及第一随机数,并获取待传输数据;获取服务器发送的服务器公钥以及密钥交换参数;基于预设的密钥交换算法生成客户端公钥以及第一加密密钥;基于预设的密钥生成算法生成第二加密密钥;根据预设签名算法生成所述客户端的签名信息;根据待传输数据、第一加密密钥、第二加密密钥以及第一随机数,基于预设的对称加密算法生成数据传输密文;将数据传输密文发送至所述服务器。由此,基于预设的密钥交换算法生成对称加密算法所需的密钥数据,保证使用对称加密算法时密钥的安全性,提高对称加密算法的安全性,使得数据传输过程能够兼顾数据传输效率以及数据传输的安全性。
Description
技术领域
本申请涉及网络安全技术领域,尤其涉及一种数据加密方法及装置。
背景技术
互联网技术存在于生活中的方方面面,网络数据传输通过开放的互联网来实现,而在网络数据传输过程中,攻击者可以通过各种攻击手段,很容易地监听、窃取到传输的数据,因此,对传输的数据进行加密是网络数据传输过程中的重要环节。
现有技术中,对称加密技术是常用的一类数据传输加密算法,例如高级加密标准(Advanced Encryption Standard,AES)、三重数据加密算法(Triple Data EncryptionAlgorithm,3DES)、数据加密标准(Data Encryption Standard,DES)等,对称加密技术是指在加密、解密的过程中使用相同的密匙,相较非对称加密算法而言,其具有加密解密效率高的优势,但对称加密的过程中无法确保密钥被安全传递,如果密钥信息被第三方截获,则传输的数据信息将被第三方获取,安全性相对较低,如何提高对称加密算法的安全性,使得对称加密算法能够兼顾算法的计算效率与算法的安全性成为亟需解决的问题。
发明内容
有鉴于此,本申请提供了一种数据加密方法及装置,用以提高使用对称加密算法传输数据的安全性。
其技术方案如下:第一方面,本申请实施例提供了一种数据加密方法,应用于客户端,所述方法包括:
随机生成客户端密钥以及第一随机数,并获取待传输数据;
获取服务器发送的服务器公钥以及密钥交换参数;
根据所述客户端密钥、所述服务器公钥以及所述密钥交换参数,基于预设的密钥交换算法生成客户端公钥以及第一加密密钥;
根据所述客户端公钥、所述服务器公钥以及所述密钥交换参数,基于预设的密钥生成算法生成第二加密密钥;
根据预设签名算法生成所述客户端的签名信息;
根据所述待传输数据、所述第一加密密钥、所述第二加密密钥以及所述第一随机数,基于预设的对称加密算法生成数据传输密文;
将所述数据传输密文发送至所述服务器。
可选的,在所述获取服务器发送的服务器公钥以及密钥交换参数之前,所述方法还包括:
获取所述服务器发送的第一密钥,所述第一密钥是所述服务器生成的;
所述获取服务器发送的服务器公钥以及密钥交换参数,包括:
发送密钥获取请求至所述服务器;
接收所述服务器返回的数字证书以及第一密文,所述数字证书是所述服务器通过所述第一密钥生成的;
当所述数字证书验证通过,基于所述第一密钥解密所述第一密文,获得所述服务器公钥以及所述密钥交换参数,所述密钥交换参数包括所述预设的密钥交换算法所需要的参数;
当所述数字证书验证失败达到预设次数,生成告警信息。
可选的,所述根据所述客户端密钥、所述服务器公钥以及所述密钥交换参数,基于预设的密钥交换算法生成客户端公钥以及第一加密密钥,包括:
根据所述客户端密钥以及所述密钥交换参数,基于Diffie-Hellman密钥交换算法生成所述客户端公钥;
根据所述服务器公钥以及所述密钥交换参数,基于Diffie-Hellman密钥交换算法生成所述第一加密密钥。
可选的,所述根据预设签名算法生成所述客户端的签名信息,包括:
随机生成第二随机数;
获取所述客户端的参数信息以及时间戳信息,所述参数信息包括设备唯一标识、应用唯一标识、客户端系统平台以及客户端版本号中的至少一种信息;
根据所述第二随机数、所述时间戳信息以及所述参数信息,基于MD5消息摘要算法生成所述客户端的签名信息。
可选的,所述根据所述待传输数据、所述第一加密密钥、所述第二加密密钥以及所述第一随机数,基于预设的对称加密算法生成数据传输密文,包括:
根据所述第二加密密钥以及所述第一随机数,基于高级加密标准AES算法生成第二密文;
根据所述第一加密密钥、所述待传输数据、所述第二密文、所述客户端的参数信息、所述时间戳信息、所述签名信息以及所述客户端公钥,基于高级加密标准AES算法生成所述数据传输密文。
第二方面,本申请实施例提供了一种数据加密装置,所述装置包括:
随机生成模块,用于随机生成客户端密钥以及第一随机数;
第一获取模块,用于获取待传输数据;
第二获取模块,用于获取服务器发送的服务器公钥以及密钥交换参数;
第一生成模块,用于根据所述客户端密钥、所述服务器公钥以及所述密钥交换参数,基于预设的密钥交换算法生成客户端公钥以及第一加密密钥;
第二生成模块,用于根据所述客户端公钥、所述服务器公钥以及所述密钥交换参数,基于预设的密钥生成算法生成第二加密密钥;
签名生成模块,用于根据预设签名算法生成所述客户端的签名信息;
密文生成模块,用于根据所述待传输数据、所述第一加密密钥、所述第二加密密钥以及所述第一随机数,基于预设的对称加密算法生成数据传输密文;
密文发送模块,用于将所述数据传输密文发送至所述服务器。
可选的,所述装置还包括:
第三获取模块,用于在所述获取服务器发送的服务器公钥以及密钥交换参数之前,获取所述服务器发送的第一密钥,所述第一密钥是所述服务器生成的;
所述第二获取模块,具体包括:
请求发送子模块,用于发送密钥获取请求至所述服务器;
数据接收子模块,用于接收所述服务器返回的数字证书以及第一密文,所述数字证书是所述服务器通过所述第一密钥生成的;
证书验证子模块,用于当所述数字证书验证通过,基于所述第一密钥解密所述第一密文,获得所述服务器公钥以及所述密钥交换参数,所述密钥交换参数包括所述预设的密钥交换算法所需要的参数;
告警生成子模块,用于当所述数字证书验证失败达到预设次数,生成告警信息。
可选的,所述第一生成模块具体用于:
根据所述客户端密钥以及所述密钥交换参数,基于Diffie-Hellman密钥交换算法生成所述客户端公钥;
根据所述服务器公钥以及所述密钥交换参数,基于Diffie-Hellman密钥交换算法生成所述第一加密密钥。
可选的,所述签名生成模块具体用于:
随机生成第二随机数;
获取所述客户端的参数信息以及时间戳信息,所述参数信息包括设备唯一标识、应用唯一标识、客户端系统平台以及客户端版本号中的至少一种信息;
根据所述第二随机数、所述时间戳信息以及所述参数信息,基于MD5消息摘要算法生成所述客户端的签名信息。
可选的,所述密文生成模块,具体用于:
根据所述第二加密密钥以及所述第一随机数,基于高级加密标准AES算法生成第二密文;
根据所述第一加密密钥、所述待传输数据、所述第二密文、所述客户端的参数信息、所述时间戳信息、所述签名信息以及所述客户端公钥,基于高级加密标准AES算法生成所述数据传输密文。
上述技术方案具有如下有益效果:
本申请实施例提供的一种数据加密方法,应用于客户端,在执行所述方法时,随机生成客户端密钥以及第一随机数,并获取待传输数据;获取服务器发送的服务器公钥以及密钥交换参数;根据所述客户端密钥、所述服务器公钥以及所述密钥交换参数,基于预设的密钥交换算法生成客户端公钥以及第一加密密钥;根据所述客户端公钥、所述服务器公钥以及所述密钥交换参数,基于预设的密钥生成算法生成第二加密密钥;根据预设签名算法生成所述客户端的签名信息;根据所述待传输数据、所述第一加密密钥、所述第二加密密钥以及所述第一随机数,基于预设的对称加密算法生成数据传输密文;将所述数据传输密文发送至所述服务器。由此,客户端基于预设的密钥交换算法生成对称加密算法所需的密钥数据,保证使用对称加密算法时密钥的安全性,提高对称加密算法的安全性,使得对称加密算法能够兼顾算法的计算效率与算法的安全性,保证数据传输的安全性。
本申请实施例还提供了与上述一种数据加密方法相对应的装置,具有与上述数据加密方法相同的有益效果。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种数据加密方法流程示意图;
图2为本申请实施例提供的一种数据加密装置结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了提高对称加密算法的安全性,使得对称加密算法能够兼顾算法的计算效率与算法的安全性,本申请实施例提供了一种数据加密方法,应用于客户端,参阅图1示出的所述方法的流程示意图,所述方法包括:
步骤S100:随机生成客户端密钥以及第一随机数,并获取待传输数据。
具体的,当客户端需要与服务器进行数据交互时,客户端会获取待传输的数据信息,并可以通过密钥生成算法生成客户端密钥。
可以理解的是,客户端密钥是客户端随机生成的私钥,客户端可以通过密钥生成算法生成,例如可以采用椭圆曲线加密(Elliptic Curves Cryptography,ECC)算法随机生成客户端密钥、也可以采用随机Random算法生成私钥等其他算法生成,此处不对客户端密钥生成算法做出限定。
需要说明的是,当客户端需要与服务器进行数据交互时,客户端可以基于本次数据交互请求随机生成对应的客户端密钥,即客户端私钥在每次数据交互均会发生变化,即使被不法分子获取了当前数据请求对应的密钥,下一次数据交互时,密钥会发生改变,提高了不法分子破解密钥算法的难度和成本,提高了数据交互的安全性。
步骤S200:获取服务器发送的服务器公钥以及密钥交换参数。
具体的,客户端获取服务器发送的服务器公钥以及密钥交换参数,服务器公钥可以是服务器根据自身生成的私钥通过预设的密钥交换算法加密获得的,密钥交换参数预设的密钥交换算法所需要的参数,作为一种示例,当预设的密钥交换算法为迪菲-赫尔曼密钥交换(Diffie-Hellman key Exchange,DH)算法时,密钥交换参数包括:素数p与素数g,密钥交换参数是由服务器生成的,可以理解的是,当预设的密钥交换算法为其他密钥交换算法时,密钥交换参数应相应做出调整,例如当预设的密钥交换算法为椭圆曲线迪菲-赫尔曼密钥交换(Elliptic Curve Diffie–Hellman key Exchange,ECDH)算法时,密钥交换参数应该还要包括椭圆曲线方程的相关参数,本申请不对密钥交换参数的具体形式做出限制,本领域技术人员可以根据所选择的密钥交换算法进行设置。
可选的,在执行步骤S200之前,客户端还可以获取服务器发送的第一密钥。
具体的,第一密钥是由服务器生成的,第一密钥用于生成服务器的数字证书以及用于加密密钥交换参数获得第一密文。
在一种可选的实施方式中,步骤S200可以包括步骤S201至步骤S204,具体如下:
步骤S201:发送密钥获取请求至所述服务器;
具体的,客户端发送密钥获取请求给服务器,请求服务器告知服务器公钥以及密钥交换参数,以便得到后续执行数据加密处理所需的信息。
步骤S202:接收所述服务器返回的数字证书以及第一密文,所述数字证书是所述服务器通过所述第一密钥生成的。
具体的,服务器在接收到客户端发送的密钥获取请求后,返回服务器通过第一密钥生成的数字证书以及通过第一密钥对服务器公钥以及密钥交换参数加密后得到的第一密文至客户端。
步骤S203:当所述数字证书验证通过,基于所述第一密钥解密所述第一密文,获得所述服务器公钥以及所述密钥交换参数。
具体的,客户端根据第一密钥以及预先记录的服务器信息验证服务器的数字证书是否安全有效,当数字证书验证通过后,根据第一密钥解密第一密文获得服务器公钥以及密钥交换参数。
步骤S204:当所述数字证书验证失败达到预设次数,生成告警信息。
当数字证书验证失败达到预设次数时,生成告警信息,并可以提醒用户网络请求失败以及失败原因,作为一种可选项,预设次数可以设置为三次。
由上述步骤S201至步骤S204可知,本申请实施例通过引入数字证书验证服务器的身份,避免中间人伪造服务端身份,篡改或伪造相关密钥信息,提高数据交互的安全性。
步骤S300:根据所述客户端密钥、所述服务器公钥以及所述密钥交换参数,基于预设的密钥交换算法生成客户端公钥以及第一加密密钥。
具体的,客户端根据客户端密钥以及获得的服务器公钥与密钥交换参数,基于预设的密钥交换算法生成客户端公钥以及第一加密密钥,需要说明的是,预设的密钥交换算法可以是迪菲-赫尔曼密钥交换算法DH算法、可以是椭圆曲线迪菲-赫尔曼密钥交换算法ECDH算法或其他密钥交换算法,本申请实施例不对其做出限定。
在一种可选的实施方式中,步骤S300可以包括步骤S301至步骤S302,具体如下:
步骤S301:根据所述客户端密钥以及所述密钥交换参数,基于Diffie-Hellman密钥交换算法生成所述客户端公钥;
具体的,根据客户端密钥以及密钥交换参数,基于Diffie-Hellman密钥交换算法生成客户端公钥,需要说明的是,客户端公钥可以通过预设接口发送至对应的服务端,便于后续服务端功夫客户端公钥进行数据解密。
步骤S302:根据所述服务器公钥以及所述密钥交换参数,基于Diffie-Hellman密钥交换算法生成所述第一加密密钥。
具体的,根据服务器公钥以及密钥交换参数,基于Diffie-Hellman密钥交换算法生成第一加密密钥,第一加密秘钥为后续对待发送数据进行对称加密中所需要的加密密钥。
步骤S400:根据所述客户端公钥、所述服务器公钥以及所述密钥交换参数,基于预设的密钥生成算法生成第二加密密钥。
具体的,根据客户端公钥、服务器公钥以及密钥交换参数,基于预设的密钥生成算法生成第二加密密钥,第二加密密钥为后续对随机数进行对称加密中所需要的加密密钥。
需要说明的是,第二加密密钥还可以由客户端公钥、服务器公钥、第一密钥以及密钥交换参数基于预设的密钥生成算法生成。可以理解的是,第二加密密钥中包含的数据量越大,密钥的安全性越高,但计算复杂程度相应增加,技术人员可以根据实际需求对第二加密密钥进行设置。
本申请实施例不对预设的密钥生成算法做出限定,作为一种可选项,预设的密钥生成算法可以是MD5消息摘要算法。
步骤S500:根据预设签名算法生成所述客户端的签名信息。
具体的,客户端生成自身的签名信息,签名信息便于后续与服务器进行握手,验证自身的身份信息。在一种可选的实施方式中,步骤S500可以包括步骤S501至步骤S503,具体如下:
步骤S501:随机生成第二随机数。
具体的,客户端可以通过随机数生成算法生成第二随机数。
步骤S502:获取所述客户端的参数信息以及时间戳信息,所述参数信息包括设备唯一标识、应用唯一标识、客户端系统平台以及客户端版本号中的至少一种信息。
具体的,客户获取当前的时间戳信息以及客户端的参数信息,客户端参数信息的格式以及内容可以由技术人员相应进行选择和设置,作为一种选择,参数信息可以包括设备唯一标识、应用唯一标识、客户端系统平台以及客户端版本号中的至少一种信息。
步骤S503:根据所述第二随机数、所述时间戳信息以及所述参数信息,基于MD5消息摘要算法生成所述客户端的签名信息。
具体的,客户端基于MD5消息摘要算法对第二随机数、时间戳信息以及参数信息进行打包和加密生成客户端的签名信息。
需要说明的是,客户端的签名信息中包含的信息内容还可以包括待传输数据以及客户端公钥,技术人员可以相应进行选择和设置,可以理解的是,签名信息中包含的数据量越大,签名的安全性越高,但验签过程需要消耗更多计算资源,技术人员可以根据权衡数据传输安全性需求与传输效率需求相应做出设置。
由上述步骤S501至步骤S503可知,本申请实施例通过在签名信息中加入随机数的方式,即对签名进行“加盐操作”,便于后续服务器解密是检测传输的数据是否被篡改,提升数据传输的安全性。
步骤S600:根据所述待传输数据、所述第一加密密钥、所述第二加密密钥以及所述第一随机数,基于预设的对称加密算法生成数据传输密文。
具体的,该步骤中基于预设的对称加密算法对待传输数据进行加密处理获得数据传输密文。在一种可选的实施方式中,步骤S600可以包括步骤S601至步骤S602,具体如下:
步骤S601:根据所述第二加密密钥以及所述第一随机数,基于高级加密标准AES算法生成第二密文。
具体的,客户端根据使用第二加密密钥,基于高级加密标准AES算法对第一随机数进行加密获得第二密文。
步骤S602:根据所述第一加密密钥、所述待传输数据、所述第二密文、所述客户端的参数信息、所述时间戳信息、所述签名信息以及所述客户端公钥,基于高级加密标准AES算法生成所述数据传输密文。
具体的,客户端基于高级加密标准AES算法,对第一加密密钥、待传输数据、第二密文、客户端的参数信息、时间戳信息、签名信息以及客户端公钥进行加密操作得到最终的数据传输密文。
可以理解的是,对随机数进行加密处理,并添加至最终的数据传输密文,提升了最终传输的数据传输密文的破解难度,进一步保证数据传输的安全性。
步骤S700:将所述数据传输密文发送至所述服务器。
具体的,客户端将加密得到的数据传输密文发送至服务器完成数据传输,服务器基于客户端发送的客户端公钥以及预设对称加密算法进行解密,获得相关解密信息,对客户端身份进行验证,若验证通过,执行与客户端的数据交互操作,若验证失败,服务器不返回数据,并执行密钥更新操作,即更新服务器公钥和密钥。
接下来以一个具体的交互例进行说明:
一、客户端获取服务器发送的服务器公钥以及密钥交换参数
1、服务器生成第一密钥ServerKey,并同步给客户端;
2、服务器生成服务器私钥b以及密钥交换参数p和g,服务器基于服务器私钥b生成服务器公钥B,B=(g^b)mod p,服务器基于第一密钥ServerKey生成数字证书,并通过第一密钥ServerKey加密服务器公钥B、密钥交换参数p和g获得第一密文,将数字证书与第一密文发送给客户端。
3、客户端通过第一密钥ServerKey以及预先记录的服务器信息,验证数字证书的安全性,当安全,通过第一密钥ServerKey解密第一密文获得服务器公钥B、密钥交换参数p和g;当验证不安全的次数达到阈值,进行告警。
二、客户端生成数据传输密文
1、客户端生成客户端密钥a、第一随机数R、第二随机数S,客户端根据客户端密钥a生成客户端公钥A,A=(g^a) mod p;
2、客户端根据服务器公钥B、密钥交换参数p和g生成第一加密密钥K,K=(B^a)modp,客户端根据客户端公钥A、服务器公钥B以及密钥交换参数p和g生成第二加密密钥k,k=MD5(p,g,A,B);
3、客户端根据第二随机数S、时间戳信息timestamp以及客户端的参数信息生成客户端的签名信息sign,sign=MD5(S,timestamp,参数信息);
4、客户端根据第二加密密钥k、第一随机数R,基于高级加密标准AES算法生成第二密文N,N= k(R);客户端根据第一加密密钥K、待传输数据content、第二密文N、客户端的参数信息、时间戳信息timestamp、签名信息sign以及客户端公钥A,基于高级加密标准AES算法生成数据传输密文ciphertext,ciphertext= K(content,参数信息,timestamp,N,sign,A)。
三、服务器解密数据传输密文与验证
1、服务器计算第一加密密钥K,K=(A^b)mod p,以及计算第二加密密钥k,k=MD5(p,g,A,B);
2、服务器通过第一加密密钥K解密数据传输密文得到报文信息,报文信息= K(ciphertext)=(content,参数信息,timestamp,N,sign,A),该步骤中服务器可以通过参数信息,时间戳timestamp验证报文信息的安全性,当安全,进行下一步骤的随机数验证;当不安全可以拒绝与客户端进行数据交互,并更新服务器出的相关密钥。
3、服务器通过第二加密密钥k解密第二密文N得到第一随机数R,服务器可以通过第一随机数R判断报文信息的有效性,若第一随机数R未发生变化,进行下一步骤的签名验证;若第一随机数R发生变化,则判断报文信息不安全,拒绝与客户端进行数据交互,并更新服务器出的相关密钥。
4、服务器根据第二随机数S、时间戳信息timestamp以及客户端的参数信息生成新签名newSign=MD5(S,timestamp,参数信息),并通过判断服务器生成的新签名newSign是否等于客户端的签名信息sign,若相等,则判断数据传输密文是安全有效的,反馈客户端请求成功信息以及相应请求数据;若不相等,则判断报文信息不安全,拒绝与客户端进行数据交互,并更新服务器出的相关密钥。
综上所述,本申请实施例提供了一种数据加密方法,应用于客户端,在执行所述方法时,随机生成客户端密钥以及第一随机数,并获取待传输数据;获取服务器发送的服务器公钥以及密钥交换参数;根据所述客户端密钥、所述服务器公钥以及所述密钥交换参数,基于预设的密钥交换算法生成客户端公钥以及第一加密密钥;根据所述客户端公钥、所述服务器公钥以及所述密钥交换参数,基于预设的密钥生成算法生成第二加密密钥;根据预设签名算法生成所述客户端的签名信息;根据所述待传输数据、所述第一加密密钥、所述第二加密密钥以及所述第一随机数,基于预设的对称加密算法生成数据传输密文;将所述数据传输密文发送至所述服务器。由此,客户端基于预设的密钥交换算法生成对称加密算法所需的密钥数据,保证使用对称加密算法时密钥的安全性,提高对称加密算法的安全性,使得对称加密算法能够兼顾算法的计算效率与算法的安全性,保证数据传输的安全性。
与上述方法相对应,本申请实施例还提供了一种数据加密装置,图2示出了该装置的结构示意图,所述装置可以包括:
随机生成模块100,用于随机生成客户端密钥以及第一随机数;
第一获取模块200,用于获取待传输数据;
第二获取模块300,用于获取服务器发送的服务器公钥以及密钥交换参数;
第一生成模块400,用于根据所述客户端密钥、所述服务器公钥以及所述密钥交换参数,基于预设的密钥交换算法生成客户端公钥以及第一加密密钥;
第二生成模块500,用于根据所述客户端公钥、所述服务器公钥以及所述密钥交换参数,基于预设的密钥生成算法生成第二加密密钥;
签名生成模块600,用于根据预设签名算法生成所述客户端的签名信息;
密文生成模块700,用于根据所述待传输数据、所述第一加密密钥、所述第二加密密钥以及所述第一随机数,基于预设的对称加密算法生成数据传输密文;
密文发送模块800,用于将所述数据传输密文发送至所述服务器。
在一种可选的实施方式中,所述装置还包括:
第三获取模块900,用于在所述获取服务器发送的服务器公钥以及密钥交换参数之前,获取所述服务器发送的第一密钥,所述第一密钥是所述服务器生成的;
所述第二获取模块300,具体包括:
请求发送子模块,用于发送密钥获取请求至所述服务器;
数据接收子模块,用于接收所述服务器返回的数字证书以及第一密文,所述数字证书是所述服务器通过所述第一密钥生成的;
证书验证子模块,用于当所述数字证书验证通过,基于所述第一密钥解密所述第一密文,获得所述服务器公钥以及所述密钥交换参数,所述密钥交换参数包括所述预设的密钥交换算法所需要的参数;
告警生成子模块,用于当所述数字证书验证失败达到预设次数,生成告警信息。
在一种可选的实施方式中,所述第一生成模块400具体用于:
根据所述客户端密钥以及所述密钥交换参数,基于Diffie-Hellman密钥交换算法生成所述客户端公钥;
根据所述服务器公钥以及所述密钥交换参数,基于Diffie-Hellman密钥交换算法生成所述第一加密密钥。
在一种可选的实施方式中,所述签名生成模块600具体用于:
随机生成第二随机数;
获取所述客户端的参数信息以及时间戳信息,所述参数信息包括设备唯一标识、应用唯一标识、客户端系统平台以及客户端版本号中的至少一种信息;
根据所述第二随机数、所述时间戳信息以及所述参数信息,基于MD5消息摘要算法生成所述客户端的签名信息。
在一种可选的实施方式中,所述密文生成模块700,具体用于:
根据所述第二加密密钥以及所述第一随机数,基于高级加密标准AES算法生成第二密文;
根据所述第一加密密钥、所述待传输数据、所述第二密文、所述客户端的参数信息、所述时间戳信息、所述签名信息以及所述客户端公钥,基于高级加密标准AES算法生成所述数据传输密文。
需要说明的是,本申请实施例提供的一种数据加密装置中各模块执行的步骤以及相关技术特征与申请实施例所提供方法相对应,装置部分的描述可以参见前述方法部分的实施例,此处不赘述。
综上所述,本申请实施例提供了一种数据加密装置,包括:随机生成模块,用于随机生成客户端密钥以及第一随机数;第一获取模块,用于获取待传输数据;第二获取模块,用于获取服务器发送的服务器公钥以及密钥交换参数;第一生成模块,用于根据所述客户端密钥、所述服务器公钥以及所述密钥交换参数,基于预设的密钥交换算法生成客户端公钥以及第一加密密钥;第二生成模块,用于根据所述客户端公钥、所述服务器公钥以及所述密钥交换参数,基于预设的密钥生成算法生成第二加密密钥;签名生成模块,用于根据预设签名算法生成所述客户端的签名信息;密文生成模块,用于根据所述待传输数据、所述第一加密密钥、所述第二加密密钥以及所述第一随机数,基于预设的对称加密算法生成数据传输密文;密文发送模块,用于将所述数据传输密文发送至所述服务器。由此,数据加密装置基于预设的密钥交换算法生成对称加密算法所需的密钥数据,保证使用对称加密算法时密钥的安全性,提高对称加密算法的安全性,使得对称加密算法能够兼顾算法的计算效率与算法的安全性,保证数据传输的安全性。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
本领域技术人员可以理解,图所示的流程图仅是本申请的实施方式可以在其中得以实现的一个示例,本申请实施方式的适用范围不受到该流程图任何方面的限制。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法、装置和设备,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种数据加密方法,其特征在于,应用于客户端,所述方法包括:
随机生成客户端密钥以及第一随机数,并获取待传输数据;
获取服务器发送的服务器公钥以及密钥交换参数;
根据所述客户端密钥、所述服务器公钥以及所述密钥交换参数,基于预设的密钥交换算法生成客户端公钥以及第一加密密钥;
根据所述客户端公钥、所述服务器公钥以及所述密钥交换参数,基于预设的密钥生成算法生成第二加密密钥;
根据预设签名算法生成所述客户端的签名信息;
根据所述待传输数据、所述第一加密密钥、所述第二加密密钥以及所述第一随机数,基于预设的对称加密算法生成数据传输密文;
将所述数据传输密文发送至所述服务器。
2.根据权利要求1所述的方法,其特征在于,在所述获取服务器发送的服务器公钥以及密钥交换参数之前,所述方法还包括:
获取所述服务器发送的第一密钥,所述第一密钥是所述服务器生成的;
所述获取服务器发送的服务器公钥以及密钥交换参数,包括:
发送密钥获取请求至所述服务器;
接收所述服务器返回的数字证书以及第一密文,所述数字证书是所述服务器通过所述第一密钥生成的;
当所述数字证书验证通过,基于所述第一密钥解密所述第一密文,获得所述服务器公钥以及所述密钥交换参数,所述密钥交换参数包括所述预设的密钥交换算法所需要的参数;
当所述数字证书验证失败达到预设次数,生成告警信息。
3.根据权利要求1所述的方法,其特征在于,所述根据所述客户端密钥、所述服务器公钥以及所述密钥交换参数,基于预设的密钥交换算法生成客户端公钥以及第一加密密钥,包括:
根据所述客户端密钥以及所述密钥交换参数,基于Diffie-Hellman密钥交换算法生成所述客户端公钥;
根据所述服务器公钥以及所述密钥交换参数,基于Diffie-Hellman密钥交换算法生成所述第一加密密钥。
4.根据权利要求1所述的方法,其特征在于,所述根据预设签名算法生成所述客户端的签名信息,包括:
随机生成第二随机数;
获取所述客户端的参数信息以及时间戳信息,所述参数信息包括设备唯一标识、应用唯一标识、客户端系统平台以及客户端版本号中的至少一种信息;
根据所述第二随机数、所述时间戳信息以及所述参数信息,基于MD5消息摘要算法生成所述客户端的签名信息。
5.根据权利要求4所述的方法,其特征在于,所述根据所述待传输数据、所述第一加密密钥、所述第二加密密钥以及所述第一随机数,基于预设的对称加密算法生成数据传输密文,包括:
根据所述第二加密密钥以及所述第一随机数,基于高级加密标准AES算法生成第二密文;
根据所述第一加密密钥、所述待传输数据、所述第二密文、所述客户端的参数信息、所述时间戳信息、所述签名信息以及所述客户端公钥,基于高级加密标准AES算法生成所述数据传输密文。
6.一种数据加密装置,其特征在于,所述装置包括:
随机生成模块,用于随机生成客户端密钥以及第一随机数;
第一获取模块,用于获取待传输数据;
第二获取模块,用于获取服务器发送的服务器公钥以及密钥交换参数;
第一生成模块,用于根据所述客户端密钥、所述服务器公钥以及所述密钥交换参数,基于预设的密钥交换算法生成客户端公钥以及第一加密密钥;
第二生成模块,用于根据所述客户端公钥、所述服务器公钥以及所述密钥交换参数,基于预设的密钥生成算法生成第二加密密钥;
签名生成模块,用于根据预设签名算法生成所述客户端的签名信息;
密文生成模块,用于根据所述待传输数据、所述第一加密密钥、所述第二加密密钥以及所述第一随机数,基于预设的对称加密算法生成数据传输密文;
密文发送模块,用于将所述数据传输密文发送至所述服务器。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
第三获取模块,用于在所述获取服务器发送的服务器公钥以及密钥交换参数之前,获取所述服务器发送的第一密钥,所述第一密钥是所述服务器生成的;
所述第二获取模块,具体包括:
请求发送子模块,用于发送密钥获取请求至所述服务器;
数据接收子模块,用于接收所述服务器返回的数字证书以及第一密文,所述数字证书是所述服务器通过所述第一密钥生成的;
证书验证子模块,用于当所述数字证书验证通过,基于所述第一密钥解密所述第一密文,获得所述服务器公钥以及所述密钥交换参数,所述密钥交换参数包括所述预设的密钥交换算法所需要的参数;
告警生成子模块,用于当所述数字证书验证失败达到预设次数,生成告警信息。
8.根据权利要求6所述的装置,其特征在于,所述第一生成模块具体用于:
根据所述客户端密钥以及所述密钥交换参数,基于Diffie-Hellman密钥交换算法生成所述客户端公钥;
根据所述服务器公钥以及所述密钥交换参数,基于Diffie-Hellman密钥交换算法生成所述第一加密密钥。
9.根据权利要求6所述的装置,其特征在于,所述签名生成模块具体用于:
随机生成第二随机数;
获取所述客户端的参数信息以及时间戳信息,所述参数信息包括设备唯一标识、应用唯一标识、客户端系统平台以及客户端版本号中的至少一种信息;
根据所述第二随机数、所述时间戳信息以及所述参数信息,基于MD5消息摘要算法生成所述客户端的签名信息。
10.根据权利要求9所述的装置,其特征在于,所述密文生成模块,具体用于:
根据所述第二加密密钥以及所述第一随机数,基于高级加密标准AES算法生成第二密文;
根据所述第一加密密钥、所述待传输数据、所述第二密文、所述客户端的参数信息、所述时间戳信息、所述签名信息以及所述客户端公钥,基于高级加密标准AES算法生成所述数据传输密文。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211440633.5A CN115499250B (zh) | 2022-11-17 | 2022-11-17 | 一种数据加密方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211440633.5A CN115499250B (zh) | 2022-11-17 | 2022-11-17 | 一种数据加密方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115499250A CN115499250A (zh) | 2022-12-20 |
CN115499250B true CN115499250B (zh) | 2023-03-31 |
Family
ID=85116078
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211440633.5A Active CN115499250B (zh) | 2022-11-17 | 2022-11-17 | 一种数据加密方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115499250B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116436601B (zh) * | 2023-04-12 | 2023-12-01 | 山东三木众合信息科技股份有限公司 | 一种智能化数据加密方法及系统 |
CN116484443B (zh) * | 2023-06-19 | 2023-09-15 | 深圳市优博生活科技有限公司 | 一种基于鸿蒙系统的可信安全存储方法及装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6098056A (en) * | 1997-11-24 | 2000-08-01 | International Business Machines Corporation | System and method for controlling access rights to and security of digital content in a distributed information system, e.g., Internet |
CN104735068B (zh) * | 2015-03-24 | 2018-11-30 | 江苏物联网研究发展中心 | 基于国密的sip安全认证的方法 |
CN108494811B (zh) * | 2018-06-27 | 2021-06-18 | 深圳市思迪信息技术股份有限公司 | 数据传输安全认证方法及装置 |
CN109962924B (zh) * | 2019-04-04 | 2021-07-16 | 北京思源理想控股集团有限公司 | 群聊构建方法、群消息发送方法、群消息接收方法及系统 |
CN110138772B (zh) * | 2019-05-13 | 2022-02-25 | 上海英恒电子有限公司 | 一种通信方法、装置、系统、设备和存储介质 |
CN110417726B (zh) * | 2019-05-27 | 2021-08-24 | 腾讯科技(深圳)有限公司 | 一种密钥管理方法及相关设备 |
CN114338091B (zh) * | 2021-12-08 | 2024-05-07 | 杭州逗酷软件科技有限公司 | 数据传输方法、装置、电子设备及存储介质 |
-
2022
- 2022-11-17 CN CN202211440633.5A patent/CN115499250B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN115499250A (zh) | 2022-12-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109728909B (zh) | 基于USBKey的身份认证方法和系统 | |
KR0148300B1 (ko) | 복수의 정보 처리 장치를 구비하는 통신 시스템에서 비밀 정보의 분산, 디지탈 서명의 생성 및 인증의 수행 방법과 그 통신 시스템 | |
US8484469B2 (en) | Method, system and equipment for key distribution | |
CN115499250B (zh) | 一种数据加密方法及装置 | |
CN110048849B (zh) | 一种多层保护的会话密钥协商方法 | |
US11870891B2 (en) | Certificateless public key encryption using pairings | |
CN106941404B (zh) | 密钥保护方法及装置 | |
CN107294937A (zh) | 基于网络通信的数据传输方法、客户端及服务器 | |
JP2008545353A (ja) | 未知の通信当事者間における信頼できる関係の確立 | |
CN112702318A (zh) | 一种通讯加密方法、解密方法、客户端及服务端 | |
CN113806772A (zh) | 基于区块链的信息加密传输方法及装置 | |
CN112637136A (zh) | 加密通信方法及系统 | |
CN113630248B (zh) | 一种会话密钥协商方法 | |
KR20100050846A (ko) | 키 교환 시스템 및 방법 | |
CN111914291A (zh) | 消息处理方法、装置、设备及存储介质 | |
CN112104453A (zh) | 一种基于数字证书的抗量子计算数字签名系统及签名方法 | |
CN115001865B (zh) | 通信处理方法及系统、客户端、通信服务端和监管服务端 | |
CN111565108B (zh) | 签名处理方法、装置及系统 | |
CN111526131B (zh) | 基于秘密共享和量子通信服务站的抗量子计算的电子公文传输方法和系统 | |
CN110519225B (zh) | 基于非对称密钥池和证书密码学的抗量子计算https通信方法和系统 | |
KR20060078768A (ko) | 사용자 개인키의 분산 등록을 이용한 키 복구 시스템 및그 방법 | |
CN102014136B (zh) | 基于随机握手的p2p网络安全通信方法 | |
CN113918971A (zh) | 基于区块链的消息传输方法、装置、设备及可读存储介质 | |
JP2004274134A (ja) | 通信方法並びにこの通信方法を用いた通信システム、サーバおよびクライアント | |
JP3610106B2 (ja) | 複数の装置を有する通信システムにおける認証方法 |
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 |