CN115941304A - 数据的加密方法、装置、终端设备和计算机可读存储介质 - Google Patents

数据的加密方法、装置、终端设备和计算机可读存储介质 Download PDF

Info

Publication number
CN115941304A
CN115941304A CN202211509004.3A CN202211509004A CN115941304A CN 115941304 A CN115941304 A CN 115941304A CN 202211509004 A CN202211509004 A CN 202211509004A CN 115941304 A CN115941304 A CN 115941304A
Authority
CN
China
Prior art keywords
data
key
random number
secret key
character string
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
Application number
CN202211509004.3A
Other languages
English (en)
Inventor
陈虎林
庄严
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Minew Technologies Co ltd
Original Assignee
Shenzhen Minew Technologies Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Minew Technologies Co ltd filed Critical Shenzhen Minew Technologies Co ltd
Priority to CN202211509004.3A priority Critical patent/CN115941304A/zh
Publication of CN115941304A publication Critical patent/CN115941304A/zh
Priority to US18/522,924 priority patent/US20240178999A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

本申请适用于数据处理技术领域,提供了一种数据的加密方法、装置、终端设备和计算机可读存储介质。其中,上述方法具体包括:获取待加密数据,待加密数据包括从第一目标位置划分得到的多个字符串;从多个字符串的目标字符串中提取初始随机数;根据初始随机数和多个秘钥生成策略,生成多个字符串中每个字符串使用的秘钥,其中,多个字符串中每个字符串分别与多个秘钥生成策略中不同的秘钥生成策略对应;根据多个字符串中每个字符串使用的秘钥,分别对对应的字符串进行加密,得到目标加密数据。本申请的实施例可以提高加密数据的安全性。

Description

数据的加密方法、装置、终端设备和计算机可读存储介质
技术领域
本申请属于数据处理技术领域,尤其涉及一种数据的加密方法、装置、终端设备和计算机可读存储介质。
背景技术
数据加密是计算机系统对信息进行保护的一种最可靠的办法。相关技术中,数据加密方法通常是通过加密算法和加密秘钥,将待加密数据转变为加密数据,而解密则是通过解密算法和解密秘钥,将加密数据恢复为待加密数据。但是,上述秘钥也存在泄露得问题,一旦秘钥泄露,基于秘钥及MD5(MD5Message-Digest Algorithm)、DES(DataEncryption Standard)等常见的加密算法加密得到的加密数据极容易泄露,数据安全性较低。
发明内容
本申请实施例提供一种数据的加密方法、装置、终端设备和存储介质,可以解决现有技术中加密数据的安全性较低的问题。
本申请实施例第一方面提供一种数据的加密方法,包括:获取待加密数据,所述待加密数据包括从第一目标位置划分得到的多个字符串;从所述多个字符串的目标字符串中提取初始随机数;根据所述初始随机数和多个秘钥生成策略,生成所述多个字符串中每个字符串使用的秘钥,其中,所述多个字符串中每个字符串分别与所述多个秘钥生成策略中不同的秘钥生成策略对应;根据所述多个字符串中每个字符串使用的秘钥,分别对对应的字符串进行加密,得到目标加密数据。
本申请实施例第二方面提供的一种数据的加密装置,包括:数据获取单元,用于获取待加密数据,所述待加密数据包括从第一目标位置划分得到的多个字符串;随机数提取获取单元,用于从所述多个字符串的目标字符串中提取初始随机数;秘钥生成单元,用于根据所述初始随机数和多个秘钥生成策略,生成所述多个字符串中每个字符串使用的秘钥,其中,所述多个字符串中每个字符串分别与所述多个秘钥生成策略中不同的秘钥生成策略对应;加密单元,用于根据所述多个字符串中每个字符串使用的秘钥,分别对对应的字符串进行加密,得到目标加密数据。
本申请实施例第三方面提供一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述数据的加密方法的步骤。
本申请实施例第四方面提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述数据的加密方法的步骤。
本申请实施例第五方面提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行上述第一方面中所述的数据的加密方法。
在本申请的实施方式中,通过获取待加密数据,将待加密数据从第一目标位置划分得到的多个字符串,并从多个字符串的目标字符串中提取初始随机数,然后,根据初始随机数和多个秘钥生成策略,生成多个字符串中每个字符串使用的秘钥,并根据多个字符串中每个字符串使用的秘钥,分别对对应的字符串进行加密,得到目标加密数据,使得在对目标加密数据进行解密时,需要获知第一目标位置、初始随机数的提取方式,以及不同字符串使用的秘钥生成策略,才能够恢复出待加密数据。一方面秘钥的获取难度更高,另一方面,在无法获知第一目标位置的情况下,即使秘钥泄露,也难以从解密后的数据中恢复得到待加密数据。因此,本申请提供的数据加密方法安全性更高。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种数据的加密方法的实现流程示意图;
图2是本申请实施例提供的第一秘钥生成策略的具体实现流程示意图;
图3是本申请实施例提供的第二秘钥生成策略的具体实现流程示意图;
图4是本申请实施例提供的一种数据的加密方法的具体实现流程示意图;
图5是本申请实施例提供的一种数据的加密装置的结构示意图;
图6是本申请实施例提供的终端设备的结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护。
为了说明本申请的技术方案,下面通过具体实施例来进行说明。
图1示出了本申请实施例提供的一种数据的加密方法的实现流程示意图,该方法可以应用于终端设备上,可适用于需提高数据安全性的情形。其中,上述终端设备可以是计算机、智能手机或者其他具有数据加密需求的智能设备。
具体的,上述数据的加密方法可以包括以下步骤S101至步骤S104。
步骤S101,获取待加密数据。
其中,待加密数据是指需要进行加密的数据,例如可以指需要加密的业务数据、设备运行数据等。本申请的实施方式中,待加密数据可以包括从第一目标位置对待加密数据进行划分得到的多个字符串。第一目标位置的数量可以为一个或多个,每个第一目标位置可以是用户根据实际情况预先设定好的位置。
具体而言,当第一目标位置为一个时,由于待加密数据为一串完整的字符串,从第一目标位置将该完整的字符串划分为两部分,可以得到两个字符串。当第一目标位置为多个时,依次从每个第一目标位置对该完整的字符串进行划分,可以得到多个字符串。
一些实施方式中,第一目标位置可以为预设的字节数,以第一目标位置为第N个字节为例,终端设备可以将待加密数据的前N个字节作为一个字符串,将待加密数据的第N+1个字节至最后一个字节作为另一个字符串,得到两个字符串,N为大于或等于1的正整数。例如,可以将待加密数据得前两个字节作为一个字符串,将剩余的部分作为另一个字符串。
步骤S102,从多个字符串的目标字符串中提取初始随机数。
其中,初始随机数是用于生成秘钥的随机数。终端设备可以依据预设的提取方式从目标字符串中提取初始随机数。目标字符串可以是前述多个字符串中的任意一个字符串。
在一些实施方式中,终端设备可以从第一字符串中抽取预设位数上的数值,组成初始随机数。以目标字符串为待加密数据的前两个字节为例,终端设备可以将目标字符串中第一个字节的最高的6位作为初始随机数的高6位,将该两个字节中第二个字节的最高位作为初始随机数的最低位,得到一个7位的初始随机数。
步骤S103,根据初始随机数和多个秘钥生成策略,生成多个字符串中每个字符串使用的秘钥。
其中,多个字符串中每个字符串分别与多个秘钥生成策略中不同的秘钥生成策略对应。换而言之,基于同一个初始随机数,采用多个秘钥生成策略,可以生成多个秘钥,每个秘钥可分别用于对多个字符串中的一个字符串进行加密。字符串、秘钥生成策略、秘钥之间存在着一一对应的关系。例如,多个秘钥生成策略可以包括策略A1、策略A2,利用初始随机数和字符串B1所使用的策略A1,可生成字符串B1所使用的秘钥C1,利用初始随机数和字符串B2所使用的策略A2,可生成字符串B2所使用的秘钥C2
具体的,秘钥生成策略也即秘钥生成算法,既可以是MD5等加密算法,也可以是专用的秘钥生成算法,对此本申请不进行限制。
步骤S104,根据多个字符串中每个字符串使用的秘钥,分别对对应的字符串进行加密,得到目标加密数据。
在本申请的实施方式中,在得到每个字符串使用的秘钥之后,可以利用每个字符串使用的秘钥对对应的字符串进行加密。例如,当B1字符串使用的秘钥为C1,B2字符串使用的秘钥为C2时,可利用秘钥C1对B1字符进行加密,并利用秘钥C2对B3字符进行加密,得到目标加密数据。目标加密数据也即对待加密数据进行加密后得到的数据。
在本申请的实施方式中,通过获取待加密数据,将待加密数据从第一目标位置划分得到的多个字符串,并从多个字符串的目标字符串中提取初始随机数,然后,根据初始随机数和多个秘钥生成策略,生成多个字符串中每个字符串使用的秘钥,并根据多个字符串中每个字符串使用的秘钥,分别对对应的字符串进行加密,得到目标加密数据,使得在对目标加密数据进行解密时,需要获知第一目标位置、初始随机数的提取方式,以及不同字符串使用的秘钥生成策略,才能够恢复出待加密数据。一方面秘钥的获取难度更高,另一方面,在无法获知第一目标位置的情况下,即使秘钥泄露,也难以从解密后的数据中恢复得到待加密数据。因此,本申请提供的数据加密方法安全性更高。
下面对本申请提供的加密方法的具体实现过程进行说明。
一些实施方式中,上述多个秘钥生成策略可以包括第一秘钥生成策略,第一秘钥生成策略可用于生成对第一字符串进行加密的秘钥,第一字符串是前述多个字符串中任意一个字符串,例如可以指前述目标字符串。
请参考图2,第一秘钥生成策略可以包括以下步骤S201至步骤S202。
步骤S201,将初始随机数中第一预设位置的数值与第二预设位置的数值进行交换,得到混淆随机数。
其中,第一预设位置与第二预设位置可以为不同的位数或不同的字节数,第一预设位置与第二预设位置的具体取值均可根据实际情况进行调整。例如,在得到前述初始随机数之后,可以将初始随机数的第一位bit[1]和第零位bit[0]进行交换,得到混淆随机数。
步骤S202,从混淆随机数中选取预设数量的位数,并将所选取的位数与混淆随机数进行拼接,得到多个字符串中第一字符串使用的秘钥。
其中,预设数量可以根据第一字符串使用的秘钥的长度决定。以前述7位的初始随机数继续进行说明,在进行步骤S201后,所得到的混淆随机数同样为7位,假设第一字符串使用的秘钥为10位,则可以从从混淆随机数中选取3个位,并将所选取的3个位与混淆随机数进行拼接。例如,可以将混淆随机数的第二位bit[2]、第四位bit[4],以及第五位bit[5]分别作为扩展后的随机数的最高的三位,将混淆随机数作为扩展后的随机数的后七位,得到10位的扩展后的随机数,该拓展后的随机数也即第一字符串使用的秘钥。
相应的,终端设备可以利用该秘钥对第一字符串进行加密。例如,以第一字符串为待加密数据的前两个字节继续进行说明,终端设备可以先将前两个字节合并成一个uint16_t类型的数据,然后使用对uint16_t类型的数据与第一字符串使用的秘钥进行异或运算的方式,对第一字符串进行加密,得到第一字符串对应的加密子数据。
另一些实施方式中,上述多个秘钥生成策略可以包括第二秘钥生成策略,第二秘钥生成策略可用于生成对第二字符串进行加密的秘钥,第二字符串是前述多个字符串中任意一个字符串,与前述第一字符串为不同的字符串。
请参考图3,第二秘钥生成策略可以包括以下步骤S301至步骤S304。
步骤S301,对初始随机数中,第一预设位置的数值与第二预设位置的数值进行交换,得到混淆随机数。
其中,步骤S301的具体实现方式可以参看前述步骤S201的描述,对此本申请不进行赘述。
步骤S302,根据混淆随机数和预设的设备秘钥,确定第一数组。
其中,设备秘钥是预设的初始秘钥,可由用户根据实际情况进行设置。相关技术中通常直接利用设备秘钥对待加密数据进行加密,导致设备秘钥泄露后待加密数据极易泄露。而在本申请的实施方式中,终端设备需对设备秘钥进行处理,获取实际用于加密的第二秘钥,也即字符串所使用的秘钥是在设备秘钥的基础上处理得到的,因此在未知秘钥的处理方式的前提下,设备秘钥泄露后也难以恢复出待加密数据。
具体的,终端设备可以根据混淆随机数和预设的设备秘钥,确定第一数组。其中,第一数组是用于从密码本中进行取密的取密数组。
一些实施方式中,终端设备可以根据混淆随机数,确定对设备秘钥进行重排序的第一脚标。脚标也可以理解为位置。根据第一脚标,可以将设备秘钥中第一脚标之前的字符串移动至设备秘钥的末尾,实现重排序,得到第一秘钥数据。此时,根据混淆随机数,可以确定对第一秘钥数据进行数据替换的第二脚标和用于替换掉第一秘钥数据上原始的数据的替换数据。进而,可以将第一秘钥数据中第二脚标上的数据替换为上述替换数据,得到第二秘钥数据。最后,可以对第二秘钥数据和设备秘钥分别进行哈希运算,并根据第二秘钥数据和设备秘钥的哈希运算结果,确定第一数组。
首先,终端设备可以从混淆随机数中提取预设位数的数值,作为重排序的第一脚标。例如,上述设备秘钥可以为16个字节长度的秘钥。终端设备可以取混淆随机数的最低4位作为重排序的第一脚标,将此第一脚标之前的数据移动至秘钥数据的最后,得到第一秘钥数据。例如:混淆随机数mix_rng=0x46,则最低4位dk_order=0x06,若设备秘钥org_device_key为{0,1,2,3,4,5,6,7,8...,15},则重新排序后的第一秘钥数据为new_device_key:{6,7,8,9,10...,1,2,3,4,5}。
接着,终端设备可以从混淆随机数中提取另一预设位数的数值,作为第二脚标,并将混淆随机数作为替换数据。例如,可以将混淆随机数的最高4位作为数据替换的依据,取混淆随机数的高4位作为数据替换位置的脚标,将此脚标位置的数据用混淆随机数进行替换。例如,混淆随机数mix_rng=0x46,则最高4位replace_order=0x04,重新排序后的第一秘钥数据为new_device_key:{6,7,8,9,10...,1,2,3,4,5},则数据替换后的第二秘钥数据为new_device_key:{6,7,8,9,0x46...,1,2,3,4,5}。
然后,终端设备可以对第二秘钥数据和设备秘钥分别进行哈希运算,并对第二秘钥数据的哈希运算结果和设备秘钥的哈希运算结果进行拼接,得到第一数组。例如,分别将设备秘钥org_device_key(16bytes)以及第二秘钥数据new_device_key(16bytes)进行哈希运算(例如MD5运算)得到第一数组md5_result_a。将第二秘钥数据new_device_key进行哈希运算的哈希运算结果作为第一数组md5_result_a的高16个字节,将设备秘钥org_device_key进行哈希运算的哈希运算结果作为第一数组md5_result_a的低16个字节。
步骤S303,将第一数组中每个位置上的数值作为取数脚标,从预设的密码本中取出取数脚标上的数据,得到第二数组。
在本申请的实施方式中,密码本(book cipher)记录有一组数据,该组数据中的每个数值按照一定的次序排列。以第一数组中每个位置上的数值作为取数脚标,从密码本中取出取数脚标(也即对应位置)上的数据,可以得到第二数组。第二数组是用于确定秘钥的数组。
更具体地说,以第一数组中每个位置上的数值作为取数脚标,从密码本内依次排列的数值中取出取数脚标上的数值,作为第二数组中与第一数组中对应位置上的数值,即可得到第二数组。例如,将得到的第一数组md5_result_a中第一位的数值作为密码本取密的脚标,以该数值为2为例,从密码本中取出第二位的数值,存为第二数组md5_result_tmp中第一位的数值;然后,将得到的第一数组md5_result_a中第二位的数值作为密码本取密的脚标,以该数值为5为例,从密码本中取出第五位的数值,存为第二数组md5_result_tmp中第二位的数值,依次类推,直至遍历完整个第一数组md5_result_a,即可得到第二数组md5_result_tmp。
步骤S304,根据第二数组,确定多个字符串中第二字符串使用的第二秘钥。
在一些实施方式中,终端设备可以对第二数组进行加密,得到第三数组,并根据第三数组,对第一数组进行异或运算处理,得到第三秘钥数据。接着,对第三秘钥数据进行重排序,得到第四秘钥数据。该第四秘钥数据可以包括从第二目标位置划分得到的第一秘钥字符串和第二秘钥字符串。此时,以第一秘钥字符串为明文,第二秘钥字符串为秘钥进行加密,可以得到第五秘钥数据。最后,对第五秘钥数据中第三预设位置上的数值进行取反,即可得到第二字符串使用的第二秘钥。
具体的,首先,终端设备可以基于预设的加密算法对第二数组进行加密,得到第三数组。例如,将第二数组md5_result_tmp进行MD5运算得到第三数组md5_result_b。
然后,将第一数组划分为多个长度与第三数组的长度相同的子数组,将每个子数组与第三数组进行异或运算处理,得到第三秘钥数据。例如,将第一数组md5_result_a的高16个字节及低16个字节分别与第三数组md5_result_b进行异或运算,得到第三秘钥数据temporary_key(32bytes)。
接着,可以根据混淆随机数确定对第三秘钥数据进行重排序的第三脚标,将第三秘钥数据中,第三脚标之前的字符串移动至第三秘钥数据的末尾,得到第四秘钥数据。例如,将混淆随机数mix_rng的高四位与低四位相加的结果作为重新排序的脚标,将第三秘钥数据中此脚标之前的数据移动至最后,得到第四秘钥数据aes_temporary(32bytes)。
此时,可将第四秘钥数据从第二目标位置划分为两部分,其中一部分作为第一秘钥字符串,另一部分作为第二秘钥字符串。该第二目标位置可以根据实际情况选择,优选为第四秘钥数据的中间位置。例如,将第四秘钥数据aes_temporary的高16字节作为明文内容,低16字节作为秘钥进行ECB(Electronic Codebook)模式的AES(Advanced EncryptionStandard)-128加密得到一个第五秘钥数据session_key(16bytes)。
最后,可以对第五秘钥数据中第三预设位置上的数值进行取反,得到第二字符串使用的第二秘钥。其中,第三预设位置可以根据实际情况进行设置。例如,可以对第五秘钥数据session_key中脚标为0、5、8、10、15的数据进行取反,得到新数组new_session_key作为第二字符串使用的第二秘钥。
得到第二秘钥之后,可以根据混淆随机数确定第二秘钥的起始位置,并将第二秘钥中起始位置上的数值,与第二字符串的首个字节进行异或运算,并将第二秘钥中所述起始位置的下一位置上的数值,与第二字符串中的第二个字节进行异或运算,以此类推,直至完成对第二字符串的加密。应理解的是,如果第二秘钥的起始位置至终点位置的长度小于第二字符串的长度,则可以在达到第二秘钥的终点位置之后,利用第二秘钥的首个字节与第二字符串继续进行异或运算。
其中,初始位置的数量可以为一个或多个。
具体而言,可以取混淆随机数mix_rng的高四位以及高四位与低四位相加的结果作为第二秘钥new_session_key的初始位置,此初始位置作为异或运算的起始位置,与第二字符串依次进行异或运算,若大于第二秘钥new_session_key的最大长度,则重新从头开始。
例如:混淆随机数mix_rng=0x46,则高4位start0=4,高4位与低4位相加的结果start1=10。则所得到的加密子数据的第一个字节为待加密数据的第三个字节raw_data[2](也即第二字符串的首个字节),与第二秘钥new_session_key的第四个字节new_session_key[4]进行异或运算后,再与第二秘钥new_session_key的第十个字节new_session_key[10]进行异或运算所得到的结果。即:
enc_data[2]=(raw_data[2]^new_session_key[4])^new_session_key[10]。
相应的,所得到的加密子数据的第二个字节为待加密数据的第四个字节raw_data[3](也即第二字符串的第二个字节),与第二秘钥new_session_key的第五个字节new_session_key[5]进行异或运算后,再与第二秘钥new_session_key的第十一个字节new_session_key[11]进行异或运算所得到的结果。即:
enc_data[3]=(raw_data[3]^new_session_key[5])^new_session_key[11]。
直至在确定加密子数据的第七个字节时,可以将待加密数据的第九个字节raw_data[8](也即第二字符串的第七个字节),与第二秘钥new_session_key的第十个字节new_session_key[10]进行异或运算后,再与第二秘钥new_session_key的首个字节new_session_key[0](即从头开始)进行异或运算所得到的结果,即:
enc_data[8]=(raw_data[8]^new_session_key[10])^new_session_key[0]。
以此类推,最后可以得到第二字符串对应的加密子数据。
通过上述方式,可以根据多个字符串中每个字符串使用的秘钥,分别对对应的字符串进行加密,得到多个字符串中每个字符串对应的加密子数据,例如根据前述第一秘钥对第一字符串进行加密,得到第一字符串对应的加密子数据,并根据前述第二秘钥对第二字符串进行加密,得到第二字符串对应的加密子数据。此时,可以将初始随机数和目标字符串的加密子数据进行合并,并将合并后的数据与剩余的加密子数据进行拼接,得到目标加密数据。例如,将初始随机数合并进第一字符串对应的加密子数据,即合并进加密数据前两个字节。然后,将合并后的数据与第二字符串对应的加密子数据进行合并,得到加密后的目标加密数据。
为了便于理解,请参考图4,图4示出了本申请实施例提供的一种加密方法的流程示意图。首先,可以将待加密数据划分为第一字符串和第二字符串,然后,从第一字符串中提取初始随机数,并基于初始随机数确定混淆随机数及扩展后的随机数,将扩展后的随机数作为第一秘钥,对第一字符串进行加密,得到第一字符串对应的加密子数据。然后,基于混淆随机数重组、排序设备秘钥,并进行密码本取密,以基于取密得到的数据确定第二秘钥,并根据第二秘钥对第二字符串进行加密,得到第二字符串对应的加密子数据,最后由第一字符串对应的加密子数据和第二字符串对应的加密子数据组成目标加密数据。
通过上述方式,提高了待加密数据的安全性,降低被外界获取到待加密数据的可能性。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为根据本申请,某些步骤可以采用其它顺序进行。
如图5所示为本申请实施例提供的一种数据的加密装置500的结构示意图,所述数据的加密装置500配置于终端设备上。
具体的,所述数据的加密装置500可以包括:
数据获取单元501,用于获取待加密数据,所述待加密数据包括从第一目标位置划分得到的多个字符串;
随机数提取获取单元502,用于从所述多个字符串的目标字符串中提取初始随机数;
秘钥生成单元503,用于根据所述初始随机数和多个秘钥生成策略,生成所述多个字符串中每个字符串使用的秘钥,其中,所述多个字符串中每个字符串分别与所述多个秘钥生成策略中不同的秘钥生成策略对应;
加密单元504,用于根据所述多个字符串中每个字符串使用的秘钥,分别对对应的字符串进行加密,得到目标加密数据。
在本申请的一些实施方式中,上述多个秘钥生成策略可以包括第一秘钥生成策略,上述秘钥生成单元503可以具体用于:将所述初始随机数中第一预设位置的数值与第二预设位置的数值进行交换,得到混淆随机数;从所述混淆随机数中选取预设数量的位数,并将所选取的位数与所述混淆随机数进行拼接,得到所述多个字符串中第一字符串使用的秘钥。
在本申请的一些实施方式中,上述多个秘钥生成策略可以包括第二秘钥生成策略,上述秘钥生成单元503可以具体用于:对所述初始随机数中,第一预设位置的数值与第二预设位置的数值进行交换,得到混淆随机数;根据所述混淆随机数和预设的设备秘钥,确定第一数组;将所述第一数组中每个位置上的数值作为取数脚标,从预设的密码本中取出所述取数脚标上的数据,得到第二数组;根据所述第二数组,确定所述多个字符串中第二字符串使用的第二秘钥。
在本申请的一些实施方式中,上述秘钥生成单元503可以具体用于:根据所述混淆随机数,确定对所述设备秘钥进行重排序的第一脚标;将所述设备秘钥中,所述第一脚标之前的字符串移动至所述设备秘钥的末尾,得到第一秘钥数据;根据所述混淆随机数,确定对所述第一秘钥数据进行数据替换的第二脚标和替换数据;将所述第一秘钥数据中所述第二脚标上的数据替换为所述替换数据,得到第二秘钥数据;对所述第二秘钥数据和所述设备秘钥分别进行哈希运算,并根据所述第二秘钥数据和所述设备秘钥的哈希运算结果确定所述第一数组。
在本申请的一些实施方式中,上述秘钥生成单元503可以具体用于:对所述第二数组进行加密,得到第三数组;根据所述第三数组,对所述第一数组进行异或运算处理,得到第三秘钥数据;对所述第三秘钥数据进行重排序,得到第四秘钥数据,所述第四秘钥数据包括从第二目标位置划分得到的第一秘钥字符串和第二秘钥字符串;以所述第一秘钥字符串为明文,所述第二秘钥字符串为秘钥进行加密,得到第五秘钥数据;对所述第五秘钥数据中第三预设位置上的数值进行取反,得到所述第二秘钥。
在本申请的一些实施方式中,上述加密单元504可以具体用于:对所述初始随机数中,第一预设位置的数值与第二预设位置的数值进行交换,得到混淆随机数;根据所述混淆随机数确定所述第二秘钥的起始位置;将所述第二秘钥中所述起始位置上的数值,与所述第二字符串的首个字节进行异或运算,并将所述第二秘钥中所述起始位置的下一位置上的数值,与所述第二字符串中的第二个字节进行异或运算,以此类推,直至完成对所述第二字符串的加密。
在本申请的一些实施方式中,上述加密单元504可以具体用于:根据所述多个字符串中每个字符串使用的秘钥,分别对对应的字符串进行加密,得到所述多个字符串中每个字符串对应的加密子数据;将所述初始随机数和所述目标字符串的加密子数据进行合并,并将合并后的数据与剩余的所述加密子数据进行拼接,得到所述目标加密数据。
需要说明的是,为描述的方便和简洁,上述数据的加密装置500的具体工作过程,可以参考图1至图4所述方法的对应过程,在此不再赘述。
如图6所示,为本申请实施例提供的一种终端设备的示意图。该终端设备6可以包括:处理器60、存储器61以及存储在所述存储器61中并可在所述处理器60上运行的计算机程序62,例如数据的加密程序。所述处理器60执行所述计算机程序62时实现上述各个数据的加密方法实施例中的步骤,例如图1所示的步骤S101至S104。或者,所述处理器60执行所述计算机程序62时实现上述各装置实施例中各模块/单元的功能,例如图5所示的数据获取单元501、随机数提取获取单元502、秘钥生成单元503和加密单元504。
所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器61中,并由所述处理器60执行,以完成本申请。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述终端设备中的执行过程。
例如,所述计算机程序可以被分割成:数据获取单元、随机数提取获取单元、秘钥生成单元和加密单元。各单元具体功能如下:数据获取单元,用于获取待加密数据,所述待加密数据包括从第一目标位置划分得到的多个字符串;随机数提取获取单元,用于从所述多个字符串的目标字符串中提取初始随机数;秘钥生成单元,用于根据所述初始随机数和多个秘钥生成策略,生成所述多个字符串中每个字符串使用的秘钥,其中,所述多个字符串中每个字符串分别与所述多个秘钥生成策略中不同的秘钥生成策略对应;加密单元,用于根据所述多个字符串中每个字符串使用的秘钥,分别对对应的字符串进行加密,得到目标加密数据。
所述终端设备可包括,但不仅限于,处理器60、存储器61。本领域技术人员可以理解,图6仅仅是终端设备的示例,并不构成对终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器60可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器61可以是所述终端设备的内部存储单元,例如终端设备的硬盘或内存。所述存储器61也可以是所述终端设备的外部存储设备,例如所述终端设备上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器61还可以既包括所述终端设备的内部存储单元也包括外部存储设备。所述存储器61用于存储所述计算机程序以及所述终端设备所需的其他程序和数据。所述存储器61还可以用于暂时地存储已经输出或者将要输出的数据。
需要说明的是,为描述的方便和简洁,上述终端设备的结构还可以参考方法实施例中对结构的具体描述,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对各个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

Claims (10)

1.一种数据的加密方法,其特征在于,包括:
获取待加密数据,所述待加密数据包括从第一目标位置划分得到的多个字符串;
从所述多个字符串的目标字符串中提取初始随机数;
根据所述初始随机数和多个秘钥生成策略,生成所述多个字符串中每个字符串使用的秘钥,其中,所述多个字符串中每个字符串分别与所述多个秘钥生成策略中不同的秘钥生成策略对应;
根据所述多个字符串中每个字符串使用的秘钥,分别对对应的字符串进行加密,得到目标加密数据。
2.如权利要求1所述的数据的加密方法,其特征在于,所述多个秘钥生成策略包括第一秘钥生成策略,所述第一秘钥生成策略包括:
将所述初始随机数中第一预设位置的数值与第二预设位置的数值进行交换,得到混淆随机数;
从所述混淆随机数中选取预设数量的位数,并将所选取的位数与所述混淆随机数进行拼接,得到所述多个字符串中第一字符串使用的秘钥。
3.如权利要求1所述的数据的加密方法,其特征在于,所述多个秘钥生成策略包括第二秘钥生成策略,所述第二秘钥生成策略包括:
对所述初始随机数中,第一预设位置的数值与第二预设位置的数值进行交换,得到混淆随机数;
根据所述混淆随机数和预设的设备秘钥,确定第一数组;
将所述第一数组中每个位置上的数值作为取数脚标,从预设的密码本中取出所述取数脚标上的数据,得到第二数组;
根据所述第二数组,确定所述多个字符串中第二字符串使用的第二秘钥。
4.如权利要求3所述的数据的加密方法,其特征在于,所述根据所述混淆随机数和预设的设备秘钥,确定第一数组,包括:
根据所述混淆随机数,确定对所述设备秘钥进行重排序的第一脚标;
将所述设备秘钥中,所述第一脚标之前的字符串移动至所述设备秘钥的末尾,得到第一秘钥数据;
根据所述混淆随机数,确定对所述第一秘钥数据进行数据替换的第二脚标和替换数据;
将所述第一秘钥数据中所述第二脚标上的数据替换为所述替换数据,得到第二秘钥数据;
对所述第二秘钥数据和所述设备秘钥分别进行哈希运算,并根据所述第二秘钥数据和所述设备秘钥的哈希运算结果确定所述第一数组。
5.如权利要求3所述的数据的加密方法,其特征在于,所述根据所述第二数组,确定所述多个字符串中第二字符串使用的第二秘钥,包括:
对所述第二数组进行加密,得到第三数组;
根据所述第三数组,对所述第一数组进行异或运算处理,得到第三秘钥数据;
对所述第三秘钥数据进行重排序,得到第四秘钥数据,所述第四秘钥数据包括从第二目标位置划分得到的第一秘钥字符串和第二秘钥字符串;
以所述第一秘钥字符串为明文,所述第二秘钥字符串为秘钥进行加密,得到第五秘钥数据;
对所述第五秘钥数据中第三预设位置上的数值进行取反,得到所述第二秘钥。
6.如权利要求3所述的数据的加密方法,其特征在于,所述根据所述多个字符串中每个字符串使用的秘钥,分别对对应的字符串进行加密,包括:
对所述初始随机数中,第一预设位置的数值与第二预设位置的数值进行交换,得到混淆随机数;
根据所述混淆随机数确定所述第二秘钥的起始位置;
将所述第二秘钥中所述起始位置上的数值,与所述第二字符串的首个字节进行异或运算,并将所述第二秘钥中所述起始位置的下一位置上的数值,与所述第二字符串中的第二个字节进行异或运算,以此类推,直至完成对所述第二字符串的加密。
7.如权利要求1至6任意一项所述的数据的加密方法,其特征在于,所述根据所述多个字符串中每个字符串使用的秘钥,分别对对应的字符串进行加密,得到目标加密数据,包括:
根据所述多个字符串中每个字符串使用的秘钥,分别对对应的字符串进行加密,得到所述多个字符串中每个字符串对应的加密子数据;
将所述初始随机数和所述目标字符串的加密子数据进行合并,并将合并后的数据与剩余的所述加密子数据进行拼接,得到所述目标加密数据。
8.一种数据的加密装置,其特征在于,包括:
数据获取单元,用于获取待加密数据,所述待加密数据包括从第一目标位置划分得到的多个字符串;
随机数提取获取单元,用于从所述多个字符串的目标字符串中提取初始随机数;
秘钥生成单元,用于根据所述初始随机数和多个秘钥生成策略,生成所述多个字符串中每个字符串使用的秘钥,其中,所述多个字符串中每个字符串分别与所述多个秘钥生成策略中不同的秘钥生成策略对应;
加密单元,用于根据所述多个字符串中每个字符串使用的秘钥,分别对对应的字符串进行加密,得到目标加密数据。
9.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述数据的加密方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述数据的加密方法的步骤。
CN202211509004.3A 2022-11-29 2022-11-29 数据的加密方法、装置、终端设备和计算机可读存储介质 Pending CN115941304A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202211509004.3A CN115941304A (zh) 2022-11-29 2022-11-29 数据的加密方法、装置、终端设备和计算机可读存储介质
US18/522,924 US20240178999A1 (en) 2022-11-29 2023-11-29 Method for data encryption, terminal device and non-transitory computer-readable storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211509004.3A CN115941304A (zh) 2022-11-29 2022-11-29 数据的加密方法、装置、终端设备和计算机可读存储介质

Publications (1)

Publication Number Publication Date
CN115941304A true CN115941304A (zh) 2023-04-07

Family

ID=86700080

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211509004.3A Pending CN115941304A (zh) 2022-11-29 2022-11-29 数据的加密方法、装置、终端设备和计算机可读存储介质

Country Status (2)

Country Link
US (1) US20240178999A1 (zh)
CN (1) CN115941304A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117278986A (zh) * 2023-11-23 2023-12-22 浙江小遛信息科技有限公司 共享出行的数据处理方法和数据处理设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117278986A (zh) * 2023-11-23 2023-12-22 浙江小遛信息科技有限公司 共享出行的数据处理方法和数据处理设备
CN117278986B (zh) * 2023-11-23 2024-03-15 浙江小遛信息科技有限公司 共享出行的数据处理方法和数据处理设备

Also Published As

Publication number Publication date
US20240178999A1 (en) 2024-05-30

Similar Documents

Publication Publication Date Title
US9736142B2 (en) Tokenization using multiple reversible transformations
US8948376B2 (en) Format-preserving encryption via rotating block encryption
US8479021B2 (en) Secure island computing system and method
TW201812638A (zh) 區塊鏈加密射頻晶片存儲設計方法
KR102413846B1 (ko) Sbox를 이용하는 암호화 프로세스를 고차 부채널 공격으로부터 보호하기 위한 방법
CN109547201B (zh) 一种根密钥的加密方法、计算机可读存储介质及终端设备
CN107534549B (zh) 可读存储介质、用于数据流字块加密的方法及系统
US11258579B2 (en) Method and circuit for implementing a substitution table
CN108052805B (zh) 一种数据加解密方法和装置
CN110210591B (zh) 一种智能ic卡个人化数据的写入方法、计算机装置及计算机可读存储介质
US10536264B2 (en) Efficient cryptographically secure control flow integrity protection
US20240178999A1 (en) Method for data encryption, terminal device and non-transitory computer-readable storage medium
CN111066077A (zh) 加密装置、加密方法、解密装置以及解密方法
CN112346759A (zh) 一种固件升级方法、装置及计算机可读存储介质
US8462948B2 (en) System and method for protecting data of mobile phone
CN112231718B (zh) 数据加密处理方法、装置、计算机设备和存储介质
US20210143978A1 (en) Method to secure a software code performing accesses to look-up tables
CN114338008B (zh) 加密传输方法、装置、系统以及存储介质
CN113872753B (zh) 基于sha256序列形式的数据的加密传输方法和装置
CN116484407B (zh) 一种数据安全保护方法、装置、电子设备及存储介质
CN111324897B (zh) 一种图像加密方法、装置及图像解密方法、装置
CN112749402A (zh) 电子数据的处理方法、装置、电子设备及存储介质
CN113946842A (zh) 基于非对称间隔插入加密字符的模型加解密方法和装置
CN114329530A (zh) 一种针对数值的加解密方法、装置以及存储介质
CN115622745A (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