CN115906116A - 数据加密方法、数据解密方法及装置、存储介质、终端 - Google Patents
数据加密方法、数据解密方法及装置、存储介质、终端 Download PDFInfo
- Publication number
- CN115906116A CN115906116A CN202211428198.4A CN202211428198A CN115906116A CN 115906116 A CN115906116 A CN 115906116A CN 202211428198 A CN202211428198 A CN 202211428198A CN 115906116 A CN115906116 A CN 115906116A
- Authority
- CN
- China
- Prior art keywords
- data
- random number
- encryption key
- written
- address
- 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.)
- Pending
Links
Images
Abstract
一种数据加密方法、数据解密方法及装置、存储介质、终端,所述数据加密方法,包括:当有待写入数据时,生成所述待写入数据对应的随机数;根据预存储的原始加密密钥、所述随机数以及第一地址信息,得到数据加密密钥,并采用所述数据加密密钥对所述待写入数据加密,得到加密数据,其中,所述第一地址信息为待写入数据地址及随机数地址中的一个;基于所述原始加密密钥得到随机数加密密钥,并采用所述随机数加密密钥对所述随机数加密,得到加密随机数;对所述加密数据及加密随机数执行写入操作。上述方案能够提高数据安全性。
Description
技术领域
本发明实施例涉及数据加密技术领域,尤其涉及一种数据加密方法、数据解密方法及装置、存储介质、终端。
背景技术
终端设备交易系统中的数据通常临时存储在双倍速率同步动态随机存储器(Double Data Rate SDRAM,DDR)上,以节约成本。为了提高数据的安全性,通常对数据进行加密。
然而现有的加密方式依然会遭受调换攻击以及重放攻击。其中,调换攻击指交换不同内存地址的交易数据。重放攻击指使用上一次的合法数据替换当前数据。当数据遭受调换攻击以及重放攻击时,将影响数据安全性。
发明内容
本发明实施例解决的技术问题是现有的数据存储中数据安全性较低,易受到攻击。
为解决上述技术问题,本发明实施例提供一种数据加密方法,包括:当有待写入数据时,生成所述待写入数据对应的随机数;根据预存储的原始加密密钥、所述随机数以及第一地址信息,得到数据加密密钥,并采用所述数据加密密钥对所述待写入数据加密,得到加密数据,其中,所述第一地址信息为待写入数据地址及随机数地址中的一个;基于所述原始加密密钥得到随机数加密密钥,并采用所述随机数加密密钥对所述随机数加密,得到加密随机数;对所述加密数据及加密随机数执行写入操作。
可选的,所述根据预存储的原始加密密钥、所述随机数以及第一地址信息,得到所述数据加密密钥,包括:对所述原始加密密钥、所述随机数以及第一地址信息进行混淆,取混淆值作为所述数据加密密钥。
可选的,所述基于所述原始加密密钥得到随机数加密密钥,包括:根据所述原始加密密钥以及第二地址信息,得到所述随机数加密密钥,所述第二地址信息为所述待写入数据地址及所述随机数地址中的另一个。
可选的,所述根据所述原始加密密钥以及第二地址信息,得到所述随机数加密密钥,包括:对所述原始加密密钥以及所述第二地址信息进行混淆,取混淆值作为所述随机数加密密钥。
可选的,所述数据加密方法还包括:对所述待写入数据、所述随机数以及所述第一地址信息进行哈希校验,得到数据哈希值;对所述随机数以及第二地址信息进行哈希校验,得到随机数哈希值,所述第二地址信息为所述待写入数据地址及所述随机数地址中的另一个;对所述数据哈希值以及所述随机数哈希值执行写入操作。
可选的,所述当有待写入数据时,生成所述待写入数据对应的随机数,包括以下任一种:每产生一笔新的原始数据,按照设定的数据块大小将所述原始数据划分为一个或多个数据块,将所述数据块作为所述待写入数据,并针对每个数据块分别生成对应的随机数;每产生一笔新的原始数据,生成所述原始数据对应的随机数,并按照设定的数据块大小将所述原始数据划分为一个或多个数据块,将所述数据块作为所述待写入数据,所述待写入数据的随机数为所述原始数据的随机数。
本发明实施例还提供一种数据解密方法,包括:获取加密数据及加密随机数;基于预存储的原始解密密钥生成随机数解密密钥;采用所述随机数解密密钥对所述加密随机数进行解密,得到随机数明文;根据所述随机数明文、所述原始解密密钥以及第一地址信息得到数据解密密钥,其中,所述第一地址信息为待写入数据地址及随机数地址中的一个;采用所述数据解密密钥对所述加密数据进行解密,得到数据明文。
可选的,所述数据解密方法还包括:在得到所述随机数明文之后,将所述随机数明文与第二地址信息进行哈希校验,得到第一哈希值,所述第二地址信息为所述待写入数据地址及所述随机数地址中的另一个;根据所述第一哈希值与获取的随机数哈希值对所述随机数明文进行哈希校验。
可选的,所述数据解密方法还包括:在得到所述数据明文之后,对所述数据明文、所述随机数明文以及所述第一地址信息进行哈希校验,得到第二哈希值;根据所述第二哈希值及获取的数据哈希值,对所述数据明文进行哈希校验。
本发明实施例还提供一种数据加密装置,包括:随机数生成单元,用于当有待写入数据时,生成所述待写入数据对应的随机数;数据加密单元,用于根据预存储的原始加密密钥、所述随机数以及第一地址信息,得到数据加密密钥,并采用所述数据加密密钥对所述待写入数据加密,得到加密数据,其中,所述第一地址信息为待写入数据地址及随机数地址中的一个;随机数加密单元,用于基于所述原始加密密钥得到随机数加密密钥,并采用所述随机数加密密钥对所述随机数加密,得到加密随机数;写入单元,用于对所述加密数据及加密随机数执行写入操作。
本发明实施例还提供一种数据解密装置,包括:获取单元,用于获取加密数据及加密随机数;随机数解密密钥生成单元,用于基于预存储的原始解密密钥生成随机数解密密钥;随机数解密单元,用于采用所述随机数解密密钥对所述加密随机数进行解密,得到随机数明文;数据解密密钥生成单元,用于根据所述随机数明文、所述原始解密密钥以及第一地址信息得到数据解密密钥,其中,所述第一地址信息为待写入数据地址及随机数地址中的一个;数据解密单元,用于采用所述数据解密密钥对所述加密数据进行解密,得到数据明文。
本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器运行时执行上述任一种数据加密方法的步骤,或者执行上述任一种数据解密方法的步骤。
本发明实施例还提供一种终端,包括存储器和处理器,所述存储器上存储有能够在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行上述任一种数据加密方法的步骤,或者执行上述任一种数据解密方法的步骤。
与现有技术相比,本发明实施例的技术方案具有以下有益效果:
在本发明实施例中,当有待写入数据时,生成所述待写入数据对应的随机数。根据预存储的原始加密密钥、所述随机数以及第一地址信息,得到数据加密密钥,并采用所述数据加密密钥对所述待写入数据加密,得到加密数据;基于所述原始加密密钥得到随机数加密密钥,并采用所述随机数加密密钥对所述随机数加密,得到加密随机数。由于数据加密密钥根据预存储的原始加密密钥、所述随机数以及第一地址信息得到,从而数据加密密钥考虑了与待写入数据对应的随机数,而随机数可以随着数据的写入而自动更新以防止重放攻击。在得到数据加密密钥时还考虑了第一地址信息,也即考虑了待写入数据地址及随机数地址中的一个,而调换攻击是由于调换数据的地址不同,从而可以有效地防止调换攻击。因此,采用本发明实施例提供的数据加密方法,可以提高数据的安全性。
进一步,对待写入数据、随机数以及第一地址信息进行哈希校验,得到数据哈希值;对所述随机数以及第二地址信息进行哈希校验,得到随机数哈希值,所述第二地址信息为所述待写入数据地址及所述随机数地址中的另一个;对所述数据哈希值以及所述随机数哈希值执行写入操作。由于得到的数据加密密钥引入了第一地址信息(待写入数据地址及随机数地址中的一个),随机数哈希值计算时引入了第二地址信息,通过引入的第一地址信息及第二地址信息,可以有效地防止调换攻击,进一步提高数据安全性。
附图说明
图1是现有技术中的一种数据加密原理示意图;
图2是本发明实施例中的一种数据加密方法的流程图;
图3是本发明实施例中的一种待写入数据加密原理图;
图4是本发明实施例中的一种数据加密密钥生成原理图;
图5是本发明实施例中的一种随机数加密原理图;
图6是本发明实施例中的一种数据加密原理图;
图7是本发明实施例中的一种数据解密方法的流程图;
图8是本发明实施例中的一种数据加密装置的结构示意图;
图9是本发明实施例中的一种数据解密装置的结构示意图。
具体实施方式
如上所述,参照图1,给出了现有技术中的一种数据加密原理示意图。在现有中,以交易系统中的数据为例,对原始数据按照固定大小分块,可分为数据块Data_A、Data_B等。使用交易系统内部密钥分别对数据块Data_A、Data_B等加密,计算出加密数据Data_A’、Data_B’等存放对应DDR地址中,其中,Data_A’存放DDR中对应的地址0xA中,Data_B’存放在DDR中对应的地址0xB中。计算出数据块Data_A的哈希(Hash)值Hash_A、数据块Data_B的哈希值Hash_B,将Hash_A及Hash_B存放对应的DDR地址中。
当交易系统使用到数据块Data_A时会首先对Data_A’进行解密操作得到Data_A”,然后对Data_A”进行哈希校验,计算Hash值为Hash_A’,若Hash_A’与Hash_A相等,则认为Data_A”为原始数据,并且数据没有被篡改。以此类推,对Data_B’解密得到Data_B”,对得到Data_B”进行哈希校验,得到Hash_B’。若Hash_B’与Hash_B相等,则认为Data_B”为原始数据,并且数据没有被篡改。反之,若Hash_B’与Hash_B不相等,则认为数据被篡改。
但如果攻击者同时交换某两个数据块的加密数据以及Hash校验数据(即哈希值)的位置,便可完成数据改动。例如,攻击者交换Data_A’与Data_B’、同时交换Hash_A与Hash_B,此时地址A的数据为Data_B,地址B的数据为Data_A,由于哈希值也同时进行了交换,因此在哈希校验时,都通过了数据校验,交易系统认为数据没有被篡改,从而无法检测出数据的调换攻击。此外,使用交易系统上一次的数据块替换当前交易系统的数据块也可以完成数据更改,实现在对数据的重放攻击。因此现有的数据加密存储方案存在风险,数据安全性较低。
为解决上述问题,在本发明实施例中,当有待写入数据时,生成所述待写入数据对应的随机数。根据预存储的原始加密密钥、所述随机数以及第一地址信息,得到数据加密密钥,并采用所述数据加密密钥对所述待写入数据加密,得到加密数据,其中,所述第一地址信息为待写入数据地址及随机数地址中的一个;基于所述原始加密密钥得到随机数加密密钥,并采用所述随机数加密密钥对所述随机数加密,得到加密随机数。由于数据加密密钥根据预存储的原始加密密钥、所述随机数以及第一地址信息得到,从而数据加密密钥考虑了与待写入数据对应的随机数,而随机数可以随着数据的写入而自动更新防止重放攻击。在得到数据加密密钥时还考虑了第一地址信息,也即考虑了待写入数据地址及随机数地址中的一个,而调换攻击是由于调换数据的地址不同,从而可以有效地防止调换攻击。因此,采用本发明实施例提供的数据加密方法,可以提高数据的安全性。
为使本发明实施例的上述目的、特征和有益效果能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。
本发明实施例提供一种数据加密方法,数据加密方法可以由终端执行,也可以由终端中具有数据加密功能的芯片或芯片模组执行,也可以由终端中具有数据处理功能的芯片或芯片模组执行,还可以由终端中的基带芯片执行。终端包括但不限于手机、计算机、平板电脑等终端设备,还可以为服务器、云平台、基站等。适用于对数据安全性要求较高的场景,例如可以防止系统存储在外部存储器上的数据被非法修改,从而提高系统的安全性。
参照图2,给出了本发明实施例中的一种数据加密方法的流程图,具体可以包括如下步骤:
步骤21,当有待写入数据时,生成所述待写入数据对应的随机数;
步骤22,根据预存储的原始加密密钥、所述随机数以及第一地址信息,得到数据加密密钥,并采用所述数据加密密钥对所述待写入数据加密,得到加密数据,其中,所述第一地址信息为待写入数据地址及随机数地址中的一个;
步骤23,基于所述原始加密密钥得到随机数加密密钥,并采用所述随机数加密密钥对所述随机数加密,得到加密随机数;
步骤24,对所述加密数据及加密随机数执行写入操作。
例如,待写入数据可以为交易数据,也即,可以由具有交易功能的终端在交易过程中产生的数据,执行数据加密方法的终端可以为具有交易功能的终端,也可以为其他终端,只需满足能够获取到交易功能的终端产生的交易数据即可。待写入数据也可以为其他类型数据,如基站产生的数据,用户设备产生的数据等。
在一些实施例中,在步骤21中,每产生一笔新的原始数据,按照设定的数据块大小将所述原始数据划分为一个或多个数据块,将所述数据块作为所述待写入数据,并针对每个数据块分别生成对应的随机数。也即,每个数据块分别具有一一对应的随机数。其中,可以对原始数据按照固定的大小进行均分分块,也可以非均匀分块,也即当将原始数据划分为多个数据块时,多个数据块的大小可以相同,也可以不同。
在另一些实施例中,在步骤21中,每产生一笔新的原始数据,生成所述原始数据对应的随机数,并按照设定的数据块大小将所述原始数据划分为一个或多个数据块,将所述数据块作为所述待写入数据,所述待写入数据的随机数为所述原始数据的随机数。也即,针对每笔原始数据生成对应的随机数,从而从同一笔原始数据划分得到的数据块对应的同一随机数。
在步骤22的一个具体实施例中,结合图3,给出了本发明实施例中的一种待写入数据加密原理图,对所述原始加密密钥KEY、所述随机数RNG以及第一地址信息ADDR1进行混淆,取混淆值作为所述数据加密密钥。采用所述数据加密密钥对所述待写入数据Data加密,得到加密数据Data’。其中,原始加密密钥KEY可以预先设置并存储。
参照图4,给出了本发明实施例中的一种数据加密密钥生成原理图。以采用循环冗余校验(Cyclic Redundancy Check,CRC)32算法对原始加密密钥KEY、所述随机数RNG以及第一地址信息ADDR1进行混淆得到数据加密密钥为例进行说明。
具体而言,crc_in0、crc_in1、…、crc_in14、crc_in15为预设的16个硬件内部参数。使用crc_in0、crc_in1、…、crc_in6、crc_in7作为初始值分别对第一地址信息ADDR1进行crc32校验,获取到8组32比特(bit)的crc校验值(图4中记为CRC32),将8组crc校验值拼接得到256bit的第一地址校验值ADDR1_CRC。
使用crc_in8、crc_in9、…、crc_in14、crc_in15作为初始值分别对随机数RNG进行crc校验计算,得到对应的8组crc校验值(图4中记为CRC32)并拼接得到256bit的随机数校验值RNG_CRC。
将原始加密密钥KEY、随机数校验值RNG_CRC、第一地址校验值ADDR1_CRC进行异或运算以实现混淆,得到混淆值。将得到的混淆值作为数据加密密钥KEY’。
例如,将原始加密密钥KEY和随机数校验值RNG_CRC进行异或运算,得到第一异或运算结果。将第一异或运算结果与第一地址校验值ADDR1_CRC进行异或运算,得到第二异或运算结果,将第二异或运算结果作为数据加密密钥KEY’。
又如,将原始加密密钥KEY和第一地址校验值ADDR1_CRC进行异或运算,得到第一异或运算结果。将第一异或运算结果与随机数校验值RNG_CRC进行异或运算,得到第二异或运算结果,将第二异或运算结果作为数据加密密钥KEY’。
再如,将随机数校验值RNG_CRC和ADDR1_CRC进行异或运算,得到第一异或运算结果。将第一异或运算结果与原始加密密钥KEY进行异或运算,得到第二异或运算结果,将第二异或运算结果作为数据加密密钥KEY’。
在步骤23的一个具体实施中,参照图5,给出了本发明实施例中的一种随机数加密原理图。结合图5,根据所述原始加密密钥KEY以及第二地址信息ADDR2,得到所述随机数加密密钥。所述第二地址信息为所述待写入数据地址及所述随机数地址中的另一个。当第二地址信息为所述待写入数据地址时,根据原始加密密钥以及待写入数据地址,得到所述随机数加密密钥。当第二地址信息为随机数地址,根据原始加密密钥以及随机数地址,得到所述随机数加密密钥。采用随机数加密密钥对随机数RNG加密,得到加密随机数RNG’。
其中,采用数据加密密钥对待写入数据进行加密时采用的加密算法和采用随机数加密密钥对随机数进行加密时采用的加密方法可以相同,也可以不同。加密算法可以为高级加密标准(Advanced Encryption Standard,AES)算法,还可以为其他合适的加密算法,例如,SM4算法、三重数据加密(3DES)算法等对称密钥算法。其中,SM4算法为一种分组密码算法。
进一步,对所述原始加密密钥以及所述第二地址信息进行混淆,取混淆值作为所述随机数加密密钥。
例如,以采用循环冗余校验(Cyclic Redundancy Check,CRC)32算法所述原始加密密钥KEY以及所述第二地址信息ADDR2进行混淆得到随机数加密密钥为例进行说明。
具体而言,crc_in0、crc_in1、…crc_in7为预设的8个硬件内部参数。使用crc_in0、crc_in1、…、cr_in6、cr_in7作为初始值分别对第二地址信息ADDR2进行crc校验得到对应的8组crc校验值,将得到的8组crc校验值拼接得到32bit的第二地址校验值ADDR2_CRC。将第二地址校验值ADDR2_CRC与原始加密密钥进行异或运算,得到混淆值,将得到的混淆值作为随机数加密密钥。
在步骤24中,可以将加密数据及加密随机数写入DDR中。进一步,可以按照待写入数据地址将加密数据写入DDR地址中。可以按照随机数地址将加密随机数写入DDR地址中。
由上可知,当有待写入数据时,生成所述待写入数据对应的随机数。根据预存储的原始加密密钥、所述随机数以及第一地址信息,得到数据加密密钥,并采用所述数据加密密钥对所述待写入数据加密,得到加密数据;基于所述原始加密密钥得到随机数加密密钥,并采用所述随机数加密密钥对所述随机数加密,得到加密随机数。由于数据加密密钥根据预存储的原始加密密钥、所述随机数以及第一地址信息得到,从而数据加密密钥考虑了与待写入数据对应的随机数,而随机数可以随着数据的写入而自动更新以防止重放攻击。在得到数据加密密钥时还考虑了第一地址信息,也即考虑了待写入数据地址及随机数地址中的一个,而调换攻击是由于调换数据的地址不同,从而可以有效地防止调换攻击。因此,采用本发明实施例提供的数据加密方法,可以提高数据的安全性。
在具体实施中,结合图3,对所述待写入数据Data、所述随机数RNG以及所述第一地址信息ADDR1进行哈希校验,得到数据哈希值Hash_Data。结合图5,对所述随机数RNG以及第二地址信息ADDR2进行哈希校验,得到随机数哈希值Hash_RNG。所述第二地址信息为所述待写入数据地址及所述随机数地址中的另一个;对所述数据哈希值Hash_Data以及所述随机数哈希值Hash_RNG执行写入操作。
进一步,可以将数据哈希值以及所述随机数哈希值写入DDR中。具体而言,将数据哈希值及随机数哈希值写入DDR对应的地址中。
其中哈希校验是一种将任意长度的消息压缩到某一固定长度的消息摘要校验算法。
为便于本领域技术人员更好的理解和实现本发明实施例,参照图6,给出了本发明实施例中的一种数据加密原理图。下面结合图6对数据加密方法的具体流程进行详细说明。
对原始数据按照固定大小分块,可分为数据块Data_A及Data_B。可以采用RNG硬件模块生成数据块Data_A的随机数RNG_A和RNG_B。
将交易系统的内部密钥作为原始加密密钥,将原始加密密钥、Data_A的随机数RNG_A、Data_A的数据地址信息进行混淆,取混淆值作为数据块Data_A的数据加密密钥,对数据块Data_A进行加密,得到加密数据Data_A’。
将原始加密密钥以及RNG_A的随机数地址进行混淆,取混淆值作为RNG_A的随机数加密密钥,对RNG_A进行加密,得到加密随机数RNG_A’。
对RNG_A、Data_A以及Data_A的数据地址信息进行哈希校验,得到数据哈希值(图6中示意为Data Hash校验值)Hash_A。
将RNG_A及随机数地址进行哈希校验,得到随机数哈希值(图6中示意为RNG Hash校验值)RNG_Hash_A。
将原始加密密钥、Data_B的随机数RNG_B、Data_B的数据地址信息进行混淆,取混淆值作为数据块Data_B的数据加密密钥,对数据块Data_B进行加密,得到加密数据Data_B’。
将原始加密密钥以及RNG_B的随机数地址进行混淆,取混淆值作为RNG_B的随机数加密密钥,对RNG_B进行加密,得到加密随机数RNG_B’。
对RNG_B、Data_B以及Data_B的数据地址信息进行哈希校验,得到哈希值(图6中示意为Data Hash校验值)Hash_B。
将RNG_B及随机数地址进行哈希校验,得到随机数哈希值(图6中示意为RNG Hash校验值)RNG_Hash_B。
将加密数据Data_A’、加密随机数RNG_A’、Hash_A以及RNG_Hash_A存入DDR的对应地址0xA中。将加密数据Data_B’、加密随机数RNG_B’、Hash_B以及RNG_Hash_B存入DDR的对应地址0xB中。
本发明实施例还提供一种数据解密方法。数据解密方法可以由终端执行,也可以由终端中具有数据解密功能的芯片或芯片模组执行,也可以由终端中具有数据处理功能的芯片或芯片模组执行,还可以由终端中的基带芯片执行。终端包括但不限于手机、计算机、平板电脑等终端设备,还可以为服务器、云平台等。
参照图7,给出了本发明实施例中的一种数据解密方法的流程图,数据解密方法具体可以包括如下步骤:
步骤71,获取加密数据及加密随机数;
步骤72,基于预存储的原始解密密钥生成随机数解密密钥;
步骤73,采用所述随机数解密密钥对所述加密随机数进行解密,得到随机数明文;
步骤74,根据所述随机数明文、所述原始解密密钥以及第一地址信息得到数据解密密钥,其中,所述第一地址信息为待写入数据地址及随机数地址中的一个;
步骤75,采用所述数据解密密钥对所述加密数据进行解密,得到数据明文。
其中,原始解密密钥与原始加密密钥相适配。
在具体实施中,在步骤73得到所述随机数明文之后,将所述随机数明文与第二地址信息进行哈希校验,得到第一哈希值,所述第二地址信息为所述待写入数据地址及所述随机数地址中的另一个;根据所述第一哈希值与获取的随机数哈希值对所述随机数明文进行哈希校验。
若第一哈希值与获取的随机数哈希值相同,则随机数明文正确,未受到篡改攻击。相应地,若第一哈希值与获取的随机数哈希值不同,则表征加密随机数受到篡改攻击,可以中断。
在步骤75得到所述数据明文之后,对所述数据明文、所述随机数明文以及所述第一地址信息进行哈希校验,得到第二哈希值;根据所述第二哈希值及获取的数据哈希值,对所述数据明文进行哈希校验。
若第二哈希值及获取的数据哈希值相同,则加密数据安全,未受到篡改攻击。相应地,若第二哈希值及获取的数据哈希值不同,则数据可能受到攻击,可以中断。
例如,继续以上述实施例中的数据块Data_A为例,当交易系统使用到数据块Data_A时,首先使用随机数解密密钥对加密随机数RNG_A’进行解密得到随机数明文RNG_A”。对随机数明文RNG_A”进行哈希校验,得到第一哈希值RNG_Hash_A’。若第一哈希值RNG_Hash_A’与获取的哈希值RNG_Hash_A相等,认为RNG_A”为原始随机数,没有被篡改。相应地,若第一哈希值RNG_Hash_A’与获取的哈希值RNG_Hash_A不相等,则RNG_A”被篡改。
若第一哈希值RNG_Hash_A’与获取的哈希值RNG_Hash_A相等,根据随机数明文RNG_A”、原始解密密钥key、第一地址信息得到数据解密密钥对Data_A’进行解密得到Data_A”。对Data_A”、随机数明文以及第一地址信息进行哈希原酸,得到第二哈希值Hash_A’。若第二哈希值Hash_A’与获取的Hash_A相等,认为Data_A”为原始数据没有被篡改。
在一些非限制性实施例中,上述实施例中的数据加密、解密及Hash计算可由硬件部分(如硬件处理器等)完成,减小对系统性能的影响。
上述方案可以有效防止数据被篡改以及替换。例如,当使用交易系统上一次的数据块替换当前交易系统的数据块进行重放攻击时,以数据块Data_A为例,攻击者需要同时替换RNG_A’、随机数哈希值RNG_Hash_A、加密数据Data_A’、数据随机数Data_Hash_A四个数据才能完成数据更改并通过系统校验,攻击难度大大增加,从而可以提高数据安全。
本发明实施例还提供一种数据加密装置,所述数据加密装置可以用于实现上述实施例提供的数据加密方法。参照图8,给出了本发明实施例中的一种数据加密装置的结构示意图,数据加密装置80包括:
随机数生成单元81,用于当有待写入数据时,生成所述待写入数据对应的随机数;
数据加密单元82,用于根据预存储的原始加密密钥、所述随机数以及第一地址信息,得到数据加密密钥,并采用所述数据加密密钥对所述待写入数据加密,得到加密数据,其中,所述第一地址信息为待写入数据地址及随机数地址中的一个;
随机数加密单元83,用于基于所述原始加密密钥得到随机数加密密钥,并采用所述随机数加密密钥对所述随机数加密,得到加密随机数;
写入单元84,用于对所述加密数据及加密随机数执行写入操作。
在具体实施中,上述数据加密装置80可以对应于终端中具有数据加密功能的芯片,例如SOC(System-On-a-Chip,片上系统)、基带芯片等;或者对应于终端中包括具有数据加密功能的芯片模组;或者对应于具有数据处理功能芯片的芯片模组,或者对应于终端。
在具体实施中,数据加密装置80的工作原理及工作流程,可以参见上述任一实施例提供的数据加密方法中的描述,此处不再赘述。
本发明实施例还提供一种数据解密装置,所述数据解密装置可以用于实现上述实施例提供的数据解密方法。参照图9,给出了本发明实施例中的一种数据解密装置的结构示意图,数据解密装置90包括:
获取单元91,用于获取加密数据及加密随机数;
随机数解密密钥生成单元92,用于基于预存储的原始解密密钥生成随机数解密密钥;
随机数解密单元93,用于采用所述随机数解密密钥对所述加密随机数进行解密,得到随机数明文;
数据解密密钥生成单元94,用于根据所述随机数明文、所述原始解密密钥以及第一地址信息得到数据解密密钥,其中,所述第一地址信息为待写入数据地址及随机数地址中的一个;
数据解密单元95,用于采用所述数据解密密钥对所述加密数据进行解密,得到数据明文。
在具体实施中,上述数据解密装置90可以对应于终端中具有数据解密功能的芯片,例如SOC(System-On-a-Chip,片上系统)、基带芯片等;或者对应于终端中包括具有数据解密功能的芯片模组;或者对应于具有数据处理功能芯片的芯片模组,或者对应于终端。
在具体实施中,数据解密装置90的工作原理及工作流程,可以参见上述任一实施例提供的数据解密方法中的描述,此处不再赘述。
本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时执行本发明上述任一实施例提供的数据加密方法的步骤,或者执行本发明上述任一实施例提供的数据解密方法的步骤。
所述计算机可读存储介质可以包括非挥发性存储器(non-volatile)或者非瞬态(non-transitory)存储器,还可以包括光盘、机械硬盘、固态硬盘等。
具体地,在本发明实施例中,所述处理器可以为中央处理单元(centralprocessing unit,简称CPU),该处理器还可以是其他通用处理器、数字信号处理器(digital signal processor,简称DSP)、专用集成电路(application specificintegrated circuit,简称ASIC)、现场可编程门阵列(field programmable gate array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
还应理解,本申请实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,简称ROM)、可编程只读存储器(Programmable ROM,简称PROM)、可擦除可编程只读存储器(Erasable PROM,简称EPROM)、电可擦除可编程只读存储器(ElectricallyEPROM,简称EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random AccessMemory,简称RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的随机存取存储器(Random Access Memory,简称RAM)可用,例如静态随机存取存储器(StaticRAM,简称SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(SynchronousDRAM,简称SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data Rate SDRAM,简称DDR SDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,简称ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,简称SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,简称DR RAM)。
本发明实施例还提供一种终端,包括存储器和处理器,所述存储器上存储有能够在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行上述任一实施例提供的数据加密方法的步骤,或者执行本发明上述任一实施例提供的数据解密方法的步骤。
所述存储器和所述处理器耦合,存储器可以位于终端内,也可以位于终端外。所述存储器和所述处理器可以通过通信总线连接。
终端可以包括但不限于手机、计算机、平板电脑等终端设备,还可以为服务器、云平台等。
上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令或计算机程序。在计算机上加载或执行所述计算机指令或计算机程序时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机程序可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机程序可以从一个网站站点、计算机、服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法、装置和系统,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的;例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式;例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。例如,对于应用于或集成于芯片的各个装置、产品,其包含的各个模块/单元可以都采用电路等硬件的方式实现,或者,至少部分模块/单元可以采用软件程序的方式实现,该软件程序运行于芯片内部集成的处理器,剩余的(如果有)部分模块/单元可以采用电路等硬件方式实现;对于应用于或集成于芯片模组的各个装置、产品,其包含的各个模块/单元可以都采用电路等硬件的方式实现,不同的模块/单元可以位于芯片模组的同一组件(例如芯片、电路模块等)或者不同组件中,或者,至少部分模块/单元可以采用软件程序的方式实现,该软件程序运行于芯片模组内部集成的处理器,剩余的(如果有)部分模块/单元可以采用电路等硬件方式实现;对于应用于或集成于终端的各个装置、产品,其包含的各个模块/单元可以都采用电路等硬件的方式实现,不同的模块/单元可以位于终端内同一组件(例如,芯片、电路模块等)或者不同组件中,或者,至少部分模块/单元可以采用软件程序的方式实现,该软件程序运行于终端内部集成的处理器,剩余的(如果有)部分模块/单元可以采用电路等硬件方式实现。
应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,表示前后关联对象是一种“或”的关系。
本申请实施例中出现的“多个”是指两个或两个以上。
本申请实施例中出现的第一、第二、第三等描述,仅作示意与区分描述对象之用,没有次序之分,也不表示本申请实施例中对设备个数的特别限定,不能构成对本申请实施例的任何限制。
需要指出的是,本实施例中各个步骤的序号并不代表对各个步骤的执行顺序的限定。
虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。
Claims (13)
1.一种数据加密方法,其特征在于,包括:
当有待写入数据时,生成所述待写入数据对应的随机数;
根据预存储的原始加密密钥、所述随机数以及第一地址信息,得到数据加密密钥,并采用所述数据加密密钥对所述待写入数据加密,得到加密数据,其中,所述第一地址信息为待写入数据地址及随机数地址中的一个;
基于所述原始加密密钥得到随机数加密密钥,并采用所述随机数加密密钥对所述随机数加密,得到加密随机数;
对所述加密数据及加密随机数执行写入操作。
2.如权利要求1所述的数据加密方法,其特征在于,所述根据预存储的原始加密密钥、所述随机数以及第一地址信息,得到所述数据加密密钥,包括:
对所述原始加密密钥、所述随机数以及第一地址信息进行混淆,取混淆值作为所述数据加密密钥。
3.如权利要求1所述的数据加密方法,其特征在于,所述基于所述原始加密密钥得到随机数加密密钥,包括:
根据所述原始加密密钥以及第二地址信息,得到所述随机数加密密钥,所述第二地址信息为所述待写入数据地址及所述随机数地址中的另一个。
4.如权利要求3所述的数据加密方法,其特征在于,所述根据所述原始加密密钥以及第二地址信息,得到所述随机数加密密钥,包括:
对所述原始加密密钥以及所述第二地址信息进行混淆,取混淆值作为所述随机数加密密钥。
5.如权利要求1所述的数据加密方法,其特征在于,还包括:
对所述待写入数据、所述随机数以及所述第一地址信息进行哈希校验,得到数据哈希值;
对所述随机数以及第二地址信息进行哈希校验,得到随机数哈希值,所述第二地址信息为所述待写入数据地址及所述随机数地址中的另一个;
对所述数据哈希值以及所述随机数哈希值执行写入操作。
6.如权利要求1所述的数据加密方法,其特征在于,所述当有待写入数据时,生成所述待写入数据对应的随机数,包括以下任一种:
每产生一笔新的原始数据,按照设定的数据块大小将所述原始数据划分为一个或多个数据块,将所述数据块作为所述待写入数据,并针对每个数据块分别生成对应的随机数;
每产生一笔新的原始数据,生成所述原始数据对应的随机数,并按照设定的数据块大小将所述原始数据划分为一个或多个数据块,将所述数据块作为所述待写入数据,所述待写入数据的随机数为所述原始数据的随机数。
7.一种数据解密方法,其特征在于,包括:
获取加密数据及加密随机数;
基于预存储的原始解密密钥生成随机数解密密钥;
采用所述随机数解密密钥对所述加密随机数进行解密,得到随机数明文;根据所述随机数明文、所述原始解密密钥以及第一地址信息得到数据解密密钥,其中,所述第一地址信息为待写入数据地址及随机数地址中的一个;
采用所述数据解密密钥对所述加密数据进行解密,得到数据明文。
8.如权利要求7所述的数据解密方法,其特征在于,还包括:
在得到所述随机数明文之后,将所述随机数明文与第二地址信息进行哈希校验,得到第一哈希值,所述第二地址信息为所述待写入数据地址及所述随机数地址中的另一个;
根据所述第一哈希值与获取的随机数哈希值对所述随机数明文进行哈希校验。
9.如权利要求7所述的数据解密方法,其特征在于,还包括:
在得到所述数据明文之后,对所述数据明文、所述随机数明文以及所述第一地址信息进行哈希校验,得到第二哈希值;
根据所述第二哈希值及获取的数据哈希值,对所述数据明文进行哈希校验。
10.一种数据加密装置,其特征在于,包括:
随机数生成单元,用于当有待写入数据时,生成所述待写入数据对应的随机数;
数据加密单元,用于根据预存储的原始加密密钥、所述随机数以及第一地址信息,得到数据加密密钥,并采用所述数据加密密钥对所述待写入数据加密,得到加密数据,其中,所述第一地址信息为待写入数据地址及随机数地址中的一个;
随机数加密单元,用于基于所述原始加密密钥得到随机数加密密钥,并采用所述随机数加密密钥对所述随机数加密,得到加密随机数;
写入单元,用于对所述加密数据及加密随机数执行写入操作。
11.一种数据解密装置,其特征在于,包括:
获取单元,用于获取加密数据及加密随机数;
随机数解密密钥生成单元,用于基于预存储的原始解密密钥生成随机数解密密钥;
随机数解密单元,用于采用所述随机数解密密钥对所述加密随机数进行解密,得到随机数明文;
数据解密密钥生成单元,用于根据所述随机数明文、所述原始解密密钥以及第一地址信息得到数据解密密钥,其中,所述第一地址信息为待写入数据地址及随机数地址中的一个;
数据解密单元,用于采用所述数据解密密钥对所述加密数据进行解密,得到数据明文。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器运行时执行权利要求1至6任一项所述的数据加密方法的步骤,或者执行权利要求7至9任一项所述的数据解密方法的步骤。
13.一种终端,包括存储器和处理器,所述存储器上存储有能够在所述处理器上运行的计算机程序,其特征在于,所述处理器运行所述计算机程序时执行权利要求1至6任一项所述的数据加密方法的步骤,或者执行权利要求7至9任一项所述的数据解密方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211428198.4A CN115906116A (zh) | 2022-11-15 | 2022-11-15 | 数据加密方法、数据解密方法及装置、存储介质、终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211428198.4A CN115906116A (zh) | 2022-11-15 | 2022-11-15 | 数据加密方法、数据解密方法及装置、存储介质、终端 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115906116A true CN115906116A (zh) | 2023-04-04 |
Family
ID=86496668
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211428198.4A Pending CN115906116A (zh) | 2022-11-15 | 2022-11-15 | 数据加密方法、数据解密方法及装置、存储介质、终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115906116A (zh) |
-
2022
- 2022-11-15 CN CN202211428198.4A patent/CN115906116A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108055125B (zh) | 一种产品信息的加密、解密方法及装置 | |
CN107078904B (zh) | 混合密码密钥导出 | |
CN102163268B (zh) | 在执行期间验证软件代码的完整性的方法和设备 | |
KR102051720B1 (ko) | 모바일 단말 상의 데이터를 암호화/복호화하는 방법 및 장치 | |
CN112187544B (zh) | 固件升级方法、装置、计算机设备及存储介质 | |
CN109728914B (zh) | 数字签名验证方法、系统、装置及计算机可读存储介质 | |
CN105450620A (zh) | 一种信息处理方法及装置 | |
CN106452770B (zh) | 一种数据加密方法、解密方法、装置和系统 | |
CN112866228B (zh) | 一种控制web系统越权访问的方法和装置 | |
US11308241B2 (en) | Security data generation based upon software unreadable registers | |
CN113691502B (zh) | 通信方法、装置、网关服务器、客户端及存储介质 | |
CN112469036B (zh) | 一种消息加解密方法、装置、移动终端和存储介质 | |
US20230325516A1 (en) | Method for file encryption, terminal, electronic device and computer-readable storage medium | |
US20170085540A1 (en) | Secure data re-encryption | |
CN110932868B (zh) | 一种数据签名方法、系统及装置 | |
CN113114654B (zh) | 一种终端设备接入安全认证方法、装置及系统 | |
US9367700B2 (en) | System and method for establishing a shared secret for communication between different security domains | |
CN111404892B (zh) | 数据监管方法、装置和服务器 | |
CN115982761A (zh) | 敏感信息处理方法、装置、电子设备和存储介质 | |
CN111949996A (zh) | 安全私钥的生成方法、加密方法、系统、设备及介质 | |
CN115766244A (zh) | 车联网信息加密方法、装置、计算机设备和存储介质 | |
CN115906116A (zh) | 数据加密方法、数据解密方法及装置、存储介质、终端 | |
CN111600717B (zh) | 基于sm2的解密方法、系统、电子设备及存储介质 | |
CN114389790A (zh) | 一种安全多方计算方法及装置 | |
CN112749402B (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 |