数据完整性验证的混合加解密方法、装置、设备及介质与流程 | 您所在的位置:网站首页 › 设备验证的完整流程 › 数据完整性验证的混合加解密方法、装置、设备及介质与流程 |
本技术涉及数据校验,尤其涉及一种数据完整性验证的混合加解密方法、装置、设备及介质。 背景技术: 1、随着互联网的发展进程,数据传输都将暴露在各种网络环境下,各种基础信息数据的获取、采集需要信息节点。这些节点面临着信息泄露、数据篡改、重放攻击、拒绝服务等多种威胁,不仅信息容易遭到空中拦截、窃听或篡改,节点还容易被攻击者物理操纵,以获取存储在节点中的信息,进而对整个信息传输网络造成威胁。 2、传统的数据传输加密技术为单一的对称加密系统和非对称加密系统。常用的加解密算法本身并没有完整性验证的能力。如果加密后的密文数据被篡改,解密仍然可能成功,虽然解密出来的内容和原始内容不一致,但在加解密算法层面无法得知数据是否被篡改,完整性验证需要在应用层另行处理,解密内容的不一致只能由应用层在实际使用中发现错误。 3、因此,如何在对数据进行校验的同时,通过完整性校验来确保数据的正确性,是目前所要解决的问题。 技术实现思路 1、本技术提供一种数据完整性验证的混合加解密方法、装置、设备及介质,用以解决现有的常用的加解密算法本身并没有完整性验证的能力的问题。 2、第一方面,本技术提供一种数据完整性验证的混合加密方法,应用于加密设备,该方法包括: 3、获取待加密数据,并对所述待加密数据进行散列值处理,得到所述待加密数据对应的散列值数据; 4、对所述散列值数据进行拆分处理,得到初始化向量和对称密钥,其中,初始化向量为拆分后的散列值数据中的第一预设数量个字节,对称密钥为拆分后的散列值数据中的第二预设数量个字节; 5、根据所述初始化向量和所述对称密钥,采用对称加密算法对所述待加密数据进行对称加密处理,得到原始数据密文; 6、采用预设的非对称私钥,对所述散列值数据进行非对称加密处理,得到散列值密文; 7、根据所述原始数据密文和所述散列值密文,生成所述待加密数据对应的密文数据。 8、可选的,所述散列值数据为第三预设数量个字节的散列值数据,对所述散列值数据进行拆分处理,得到初始化向量和对称密钥,包括: 9、按照第一预设规则对所述第三预设数量个字节的散列值数据进行拆分处理,得到第一散列值数据集合以及第二散列值数据集合,其中,所述第一散列值数据集合包括第一预设数量个字节的散列值数据,所述第二散列值数据集合包括第二预设数量个字节的散列值数据,所述第一预设数量和所述第二预设数量之和为所述第三预设数量,所述第一散列值数据集合与所述第二散列值数据集合不同; 10、将所述第一散列值数据集合作为所述初始化向量,并将所述第二散列值数据作为所述对称密钥。 11、可选的,所述根据所述原始数据密文和所述散列值密文,生成所述待加密数据对应的密文数据,包括: 12、按照第二预设规则对所述原始数据密文和所述散列值密文进行拼装处理,得到所述密文数据,其中,所述密文数据的前两位字节用于指示所述散列值密文的位置与长度。 13、第二方面,本技术一种数据完整性验证的混合解密方法,应用于解密设备,所述方法包括: 14、获取加密设备发送的密文数据,并根据所述密文数据,确定原始数据密文和散列值密文; 15、采用预设的非对称公钥,对所述散列值密文进行非对称解密处理,得到第一散列值数据; 16、对所述第一散列值数据进行拆分处理,得到初始化向量和对称密钥,其中,初始化向量为拆分后的第一散列值数据中的第一预设数量个字节,对称密钥为拆分后的第一散列值数据中的第二预设数量个字节; 17、根据所述初始化向量和所述对称密钥,采用对称解密算法对所述原始数据密文进行对称解密处理,得到对称解密数据; 18、根据所述第一散列值数据对所述对称解密数据进行完整性校验; 19、在所述对称解密数据的完整性校验通过时,将所述对称解密数据作为目标解密数据。 20、可选的,所述根据所述密文数据,确定原始数据密文和散列值密文,包括: 21、根据所述密文数据的前两位字节,确定所述散列值密文的位置和长度; 22、按照第二预设规则、所述散列值密文的位置和长度,对所述密文数据进行拆分处理,得到所述原始数据密文和所述散列值密文。 23、可选的,所述根据所述第一散列值数据对所述对称解密数据进行完整性校验,包括: 24、对所述对称解密数据进行散列值处理,得到所述对称解密数据对应的第二散列值数据; 25、判断所述第二散列值数据和所述第一散列值数据是否一致; 26、若是,则确定所述对称解密数据的完整性校验通过; 27、若否,则确定所述对称解密数据的完整性校验不通过。 28、第三方面,本技术提供一种数据完整性验证的混合加密装置,应用于加密设备,所述装置包括: 29、获取模块,用于获取待加密数据; 30、处理模块,用于对所述待加密数据进行散列值处理,得到所述待加密数据对应的散列值数据; 31、所述处理模块,还用于对所述散列值数据进行拆分处理,得到初始化向量和对称密钥,其中,初始化向量为拆分后的散列值数据中的第一预设数量个字节,对称密钥为拆分后的散列值数据中的第二预设数量个字节; 32、所述处理模块,还用于根据所述初始化向量和所述对称密钥,采用对称加密算法对所述待加密数据进行对称加密处理,得到原始数据密文; 33、处理模块,还用于采用预设的非对称私钥,对所述散列值数据进行非对称加密处理,得到散列值密文; 34、生成模块,用于根据所述原始数据密文和所述散列值密文,生成所述待加密数据对应的密文数据。 35、可选的,所述散列值数据为第三预设数量个字节的散列值数据,所述处理模块,具体用于按照第一预设规则对所述第三预设数量个字节的散列值数据进行拆分处理,得到第一散列值数据集合以及第二散列值数据集合,其中,所述第一散列值数据集合包括第一预设数量个字节的散列值数据,所述第二散列值数据集合包括第二预设数量个字节的散列值数据,所述第一预设数量和所述第二预设数量之和为所述第三预设数量,所述第一散列值数据集合与所述第二散列值数据集合不同;并将所述第一散列值数据集合作为所述初始化向量,并将所述第二散列值数据作为所述对称密钥。 36、可选的,所述生成模块,具体用于按照第二预设规则对所述原始数据密文和所述散列值密文进行拼装处理,得到所述密文数据,其中,所述密文数据的前两位字节用于指示所述散列值密文的位置与长度。 37、第四方面,本技术提供一种数据完整性验证的混合解密装置,应用于解密设备,所述装置包括: 38、获取模块,用于获取加密设备发送的密文数据,并根据所述密文数据,确定原始数据密文和散列值密文; 39、处理模块,用于采用预设的非对称公钥,对所述散列值密文进行非对称解密处理,得到第一散列值数据; 40、所述处理模块,还用于对所述第一散列值数据进行拆分处理,得到初始化向量和对称密钥,其中,初始化向量为拆分后的第一散列值数据中的第一预设数量个字节,对称密钥为拆分后的第一散列值数据中的第二预设数量个字节; 41、所述处理模块,还用于根据所述初始化向量和所述对称密钥,采用对称解密算法对所述原始数据密文进行对称解密处理,得到对称解密数据; 42、校验模块,用于根据所述第一散列值数据对所述对称解密数据进行完整性校验; 43、所述处理模块,还用于在所述对称解密数据的完整性校验通过时,将所述对称解密数据作为目标解密数据。 44、可选的,所述装置,还包括:确定模块; 45、所述确定模块,用于根据所述密文数据的前两位字节,确定所述散列值密文的位置和长度; 46、所述处理模块,还用于按照第二预设规则、所述散列值密文的位置和长度,对所述密文数据进行拆分处理,得到所述原始数据密文和所述散列值密文。 47、可选的,所述处理模块,还用于对所述对称解密数据进行散列值处理,得到所述对称解密数据对应的第二散列值数据; 48、所述校验模块,具体用于判断所述第二散列值数据和所述第一散列值数据是否一致,并在所述第二散列值数据和所述第一散列值数据一致时,确定所述对称解密数据的完整性校验通过;在所述第二散列值数据和所述第一散列值数据不一致时,确定所述对称解密数据的完整性校验不通过。 49、第五方面,本技术提供一种数据完整性验证的混合加解密设备,包括: 50、存储器; 51、处理器; 52、其中,所述存储器存储计算机执行指令; 53、所述处理器执行所述存储器存储的计算机执行指令,以实现如上述第一方面以及第一方面各种可能的实现方式所述的数据完整性验证的混合加密方法或实现如上述第二方面以及第二方面各种可能的实现方式所述的数据完整性验证的混合解密方法。 54、第六方面,本技术提供一种计算机存储介质,所述计算机存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如上述第一方面以及第一方面各种可能的实现方式所述的数据完整性验证的混合加密方法或实现如上述第二方面以及第二方面各种可能的实现方式所述的数据完整性验证的混合解密方法。 55、本技术提供一种数据完整性验证的混合加解密方法,该方法在进行加密处理时,通过对待加密数据的散列值进行拆分处理,得到对称加密所需的初始化向量和对称密钥,并根据该初始化向量和对称密钥,对待加密数据进行加密处理,同时对散列值数据进行非对称加密处理;在进行解密处理时,先采用非对称解密处理对待解密数据进行处理,得到散列值数据,并根据基于散列值数据拆分得到的初始化向量和对称密钥来进行对称解密处理,进而对混合解密处理的结果进行完整性校验;该方法在加解密过程以及完整性校验过程中,无需添加额外的冗余数据,对数据量无影响,进一步提高了数据的安全程度。 |
CopyRight 2018-2019 实验室设备网 版权所有 |