CN117436110A - 数据加密、数据解密方法和装置 - Google Patents

数据加密、数据解密方法和装置 Download PDF

Info

Publication number
CN117436110A
CN117436110A CN202311482644.4A CN202311482644A CN117436110A CN 117436110 A CN117436110 A CN 117436110A CN 202311482644 A CN202311482644 A CN 202311482644A CN 117436110 A CN117436110 A CN 117436110A
Authority
CN
China
Prior art keywords
byte
data
encryption
morpheme
key
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
CN202311482644.4A
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.)
Jingdong Technology Information Technology Co Ltd
Original Assignee
Jingdong Technology Information Technology 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 Jingdong Technology Information Technology Co Ltd filed Critical Jingdong Technology Information Technology Co Ltd
Priority to CN202311482644.4A priority Critical patent/CN117436110A/zh
Publication of CN117436110A publication Critical patent/CN117436110A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • Databases & Information Systems (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种数据加密、数据解密方法和装置,涉及信息安全技术领域。该方法的一具体实施方式包括:将初始密钥输入预置的密码算法模型,得到所述初始密钥对应的密钥流,根据所述密钥流生成至少一个加密密钥;接收客户端发送的查询请求,将所述查询请求中的查询条件数据的各语素转换为字节数据,将各语素的字节数据填充为长度相等的字节序列;使用所述加密密钥对各语素的字节序列进行加密,根据加密结果获得所述查询条件数据的密文,基于所述密文执行查询。该实施方式能够实现基于查询条件数据密文的检索并且保证安全性。

Description

数据加密、数据解密方法和装置
技术领域
本发明涉及信息安全技术领域,尤其涉及一种数据加密、数据解密方法和装置。
背景技术
目前,需要对用户敏感数据(例如用户输入的查询条件数据)进行加密存储以保护用户隐私,同时,某些场景下有根据查询条件数据的密文进行精确检索或模糊检索的需求。现有技术中,一般使用DES、AES等加密算法执行数据加密,但是其安全性较低,并且相应的加密方式会导致原文各语素之间关系的混乱,从而无法根据密文执行检索。
发明内容
有鉴于此,本发明实施例提供一种数据加密、数据解密方法和装置,能够实现基于查询条件数据密文的检索并且保证安全性。
为实现上述目的,根据本发明的一个方面,提供了一种数据加密方法。
本发明实施例的数据加密方法用于在计算机系统中加密数据;所述方法包括:将初始密钥输入预置的密码算法模型,得到所述初始密钥对应的密钥流,根据所述密钥流生成至少一个加密密钥;接收客户端发送的查询请求,将所述查询请求中的查询条件数据的各语素转换为字节数据,将各语素的字节数据填充为长度相等的字节序列;使用所述加密密钥对各语素的字节序列进行加密,根据加密结果获得所述查询条件数据的密文,基于所述密文执行查询。
可选地,所述加密密钥的数量与一个字节序列包含的字节数量相等;以及,所述根据所述密钥流生成至少一个加密密钥,包括:从所述密钥流包含的字节中不重复地选取预设个数的目标字节,对单次选取的目标字节执行异或运算,得到该次选取的加密密钥;其中,不同次选取的目标字节在所述密钥流中处在不同位置。
可选地,所述加密密钥的数量与一个字节序列包含的字节数量相等;以及,所述根据所述密钥流生成至少一个加密密钥,包括:从所述密钥流包含的字节中随机选取预设个数的目标字节,对单次选取的目标字节执行异或运算,得到该次选取对应的加密密钥。
可选地,所述语素包括:字或字母;以及,所述将所述查询请求中的查询条件数据的各语素转换为字节数据,将各语素的字节数据填充为长度相等的字节序列,包括:利用UTF-8编码规则将所述查询条件数据的各语素转换为1字节、2字节、3字节或4字节的字节数据;在语素的字节数据为1字节的情况下,将该字节数据重复排列,形成4字节的字节序列;在语素的字节数据为2字节的情况下,将该字节数据按照字节顺序重复排列,形成4字节的字节序列;在语素的字节数据为3字节的情况下,将3个字节中的任一字节排列在该字节数据之后,形成4字节的字节序列;在语素的字节数据为4字节的情况下,将该字节数据确定为字节序列。
可选地,所述加密密钥的数量为4;以及,所述使用所述加密密钥对各语素的字节序列进行加密,包括:按照4个加密密钥之间的预设顺序对各语素的字节序列中的4个字节依次加密,得到各语素的加密结果。
可选地,所述根据加密结果获得所述查询条件数据的密文,包括:对所述查询条件数据中各语素的加密结果执行十六进制编码,得到各语素的密文。
可选地,所述基于所述密文执行查询,包括:在预先建立的密文集合中对各语素的密文执行匹配,确定所述密文的语义信息;利用所述语义信息执行模糊检索或精确检索,将检索结果返回到所述客户端。
可选地,所述密码算法模型为祖冲之序列密码算法。
为实现上述目的,根据本发明的另一方面,提供了一种数据解密方法。
本发明实施例的数据解密方法用于在计算机系统中解密数据;所述方法包括:将初始密钥输入预置的密码算法模型,得到所述初始密钥对应的密钥流,根据所述密钥流生成至少一个加密密钥;将待解密的密文转换为二进制数据,使用所述加密密钥对所述二进制数据进行解密,得到多个字节序列;将所述字节序列恢复为字节数据,将所述字节数据转换成语素,将转换成的语素组成查询条件数据。
为实现上述目的,根据本发明的又一方面,提供了一种数据加密装置。
本发明实施例的数据加密装置用于在计算机系统中加密数据;所述装置包括:加密密钥生成单元,用于将初始密钥输入预置的密码算法模型,得到所述初始密钥对应的密钥流,根据所述密钥流生成至少一个加密密钥;字节序列生成单元,用于接收客户端发送的查询请求,将所述查询请求中的查询条件数据的各语素转换为字节数据,将各语素的字节数据填充为长度相等的字节序列;转换单元,用于使用所述加密密钥对各语素的字节序列进行加密,根据加密结果获得所述查询条件数据的密文。
为实现上述目的,根据本发明的又一方面,提供了一种数据解密装置。
本发明实施例的数据解密装置用于在计算机系统中解密数据;所述装置包括:加密密钥生成单元,用于将初始密钥输入预置的密码算法模型,得到所述初始密钥对应的密钥流,根据所述密钥流生成至少一个加密密钥;字节序列生成单元,用于将待解密的密文转换为二进制数据,使用所述加密密钥对所述二进制数据进行解密,得到多个字节序列;恢复单元,用于将所述字节序列恢复为字节数据,将所述字节数据转换成语素,将转换成的语素组成查询条件数据。
为实现上述目的,根据本发明的又一方面,提供了一种电子设备。
本发明的一种电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明所提供的数据加密、数据解密方法。
为实现上述目的,根据本发明的再一方面,提供了一种计算机可读存储介质。
本发明的一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明所提供的数据加密、数据解密方法。
根据本发明的技术方案,上述发明中的一个实施例具有如下优点或有益效果:
首先将初始密钥输入预置的密码算法模型,得到初始密钥对应的密钥流,根据密钥流生成至少一个加密密钥;接着接收客户端发送的查询请求,将查询请求中的查询条件数据的各语素转换为字节数据,将各语素的字节数据填充为长度相等的字节序列;此后使用加密密钥对各语素的字节序列进行加密,根据加密结果获得查询条件数据的密文,基于密文执行查询。经过以上步骤,能够在加密过程中保留查询条件数据各语素之间的原有位置关系,使各语素与相应密文存在一一对应关系,便于后续基于密文比对的精确检索或模糊检索,并且通过密码算法模型、密钥流压缩、等长度字节序列填充等处理提高加密安全性。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是本发明实施例中数据加密方法的主要步骤示意图;
图2是本发明实施例中数据解密方法的主要步骤示意图;
图3是本发明实施例中数据加密方法的具体执行步骤示意图;
图4是本发明实施例中数据解密方法的具体执行步骤示意图;
图5是本发明实施例中数据加密装置的组成部分示意图;
图6是本发明实施例中数据解密装置的组成部分示意图;
图7是根据本发明实施例可以应用于其中的示例性系统架构图;
图8是用来实现本发明实施例中数据加密、数据解密方法的电子设备结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
需要指出的是,在不冲突的情况下,本发明的实施例以及实施例中的技术特征可以相互结合。
图1是根据本发明实施例中数据加密方法的主要步骤示意图。
如图1所示,本发明实施例的数据加密方法用于在计算机系统中加密数据,可以由特定组件执行,具体执行步骤如下:
步骤S101:将初始密钥输入预置的密码算法模型,得到初始密钥对应的密钥流,根据密钥流生成至少一个加密密钥。
在本步骤中,可以首先使用专用的硬件设备或者软件程序生成安全的初始密钥,例如128比特的随机数,此后将初始密钥输入预置的密码算法模型,得到初始密钥对应的密钥流。优选地,以上密码算法模型可以是安全性和易用性较高的祖冲之序列密码算法,也可以是其它的使用算法。这一步骤能够避免初始密钥通过原文与密文的比对被破解,提高加密算法的安全性。
在得到密钥流之后,可以根据密钥流生成至少一个加密密钥,此过程为密钥流的压缩。实际应用中,可以从密钥流包含的字节中不重复地选取预设个数的目标字节,对单次选取的目标字节执行异或运算,从而得到该次选取的加密密钥。在以上过程中,不同次选取的目标字节在密钥流中处在不同位置,即每一次选取过程选取的目标字节为密钥流中位置不同的字节。在另一种方式中,可以从密钥流包含的字节中随机选取预设个数的目标字节,对单次选取的目标字节执行异或运算,得到该次选取对应的加密密钥。一般来说,前一种方式的安全性高于后一种方式。特别地,以上加密密钥的数量可以与后续将要说明的一个字节序列包含的字节数量相等,这样便于后续的基于加密密钥的加密操作。以上密钥流压缩步骤将密钥流压缩为多个加密密钥来执行后续的数据加密,能够提高加密安全性并且加快加密运算速度。
步骤S102:接收客户端发送的查询请求,将查询请求中的查询条件数据的各语素转换为字节数据,将各语素的字节数据填充为长度相等的字节序列。
以上语素可以包括汉语中的字或拉丁语言中的字母。本步骤的目的在于,首先将查询条件数据的各语素转换为数量可能不等的字节,此后将各语素的字节填充为长度相等字节序列从而便于后续的加密过程,并且有利于在密文中保持各语素之间的独立关系从而便于基于密文执行检索。
实际应用中,可以首先利用UTF-8编码规则将查询条件数据的各语素转换为1字节、2字节、3字节或4字节的字节数据。若语素的字节数据为1字节,可以将该字节数据重复排列,形成4字节的字节序列;若语素的字节数据为2字节,可以将该字节数据按照字节顺序重复排列,形成4字节的字节序列;若语素的字节数据为3字节,可以将3个字节中的任一字节排列在该字节数据之后,形成4字节的字节序列;若语素的字节数据为4字节,可将该字节数据直接确定为字节序列。在以上实施例中,由于字节序列的长度为4,因此加密密钥的数量可以预先确定为4。
步骤S103:使用加密密钥对各语素的字节序列进行加密,根据加密结果获得查询条件数据的密文,基于密文执行查询。
在本发明实施例中,可以首先按照4个加密密钥之间的预设顺序对各语素的字节序列中的4个字节依次加密,得到各语素的加密结果。此后,对查询条件数据中各语素的加密结果执行十六进制编码,得到各语素的密文。在得到密文之后,可以在预先建立的密文集合中对各语素的密文执行匹配,从而确定密文的语义信息,最后利用语义信息执行模糊检索或精确检索,并将检索结果返回到客户端。可以理解,以上密文集合中包含预先计算的各语素的密文,由于以上加密过程通过字节序列的填充保留了原文中各语素之间的独立关系,使得语素与密文存在一一对应关系,因此通过密文的对照能够确定相应的语义信息。
图2是本发明实施例中数据解密方法的主要步骤示意图,参见图2。可以理解,解密过程是加密过程的逆过程,以下解密步骤与前述加密具有对应关系。本发明实施例的数据解密方法用于在计算机系统中解密数据,包括以下步骤:
S201:将初始密钥输入预置的密码算法模型,得到初始密钥对应的密钥流,根据密钥流生成至少一个加密密钥。
本步骤与加密过程类似,此处不再重复。
步骤S202:将待解密的密文转换为二进制数据,使用加密密钥对二进制数据进行解密,得到多个字节序列。
在本步骤中,可首先利用十六进制解码算法将密文转换为二进制数据。接着,利用多个加密密钥以及加密密钥之间的预设顺序(与加密过程的加密密钥使用顺序相同)对以上二进制数据进行解密,得到多个字节序列。示例性地,以上加密密钥的数量是4,则基于加密密钥的解密过程可以是加密密钥与每4字节分组的二进制数据作异或运算。
步骤S203:将字节序列恢复为字节数据,将字节数据转换成语素,将转换成的语素组成查询条件数据。
由于加密过程使用UTF-8编码,因此可以从每个字节序列的首字节读取其真实长度,于是可以在读取真实长度之后删除加密过程填充的字节,将各字节序列恢复为真实的字节数据。与加密过程对应,对于每个字节序列,若其真实长度为1字节,则保留首字节,删除后边的三个字节;若其真实长度为2字节,则保留首字节和第二字节,删除后边的两个字节;若其真实长度为3字节,则保留首字节、第二字节和第三字节,删除后边的一个字节;若其真实长度为4字节,则保留全部字节。
此后,可以使用UTF-8解码算法将字节数据转换为语素,由各语素组成作为原文的查询条件数据,完成解密过程。
以下说明本发明的一个具体实施例,参见图3的加密步骤和图4的解密步骤。
在加密过程中:
第一步,通过安全的方式产生128比特初始密钥Kz。
第二步,将密钥Kz装入祖冲之算法产生16字节(128比特)密钥流Ks。即,Ks=ZUC(Kz),其中ZUC为祖冲之算法。
第三步,将产生的密钥流按如下方式压缩为4字节数据加密密钥Kc:
Kc1=Ks1⊕Ks5⊕Ks9⊕Ks13
Kc2=Ks2⊕Ks6⊕Ks10⊕Ks14
Kc3=Ks3⊕Ks7⊕Ks11⊕Ks15
Kc4=Ks4⊕Ks8⊕Ks12⊕Ks16
其中,⊕为异或运算,Ks1到Ks16为Ks的字节。
第四步,对待加密原文Src以字(语素)为单位进行分割,并采用UTF-8编码转换为字节(字节数据),通过采用重复自身的方式进行填充,填充至4个字节(字节序列),即:
当原文为1字节时,{b}填充结果为{b,b,b,b}
当原文为2字节时,{b1,b2}填充结果为{b1,b2,b1,b2}
当原文为3字节时,{b1,b2,b3}填充结果为{b1,b2,b3,b1}
当原文为4字节时,{b1,b2,b3,b4}填充结果为{b1,b2,b3,b4}
之后再重新组合得到S。
第五步,使用加密密钥Kc对填充后的待加密原文S,每4字节分组进行如下加密,并得到密文E:
for i=1->len(S)/4:
Ei=Kc1⊕Si
Ei+1=Kc2⊕Si+1
Ei+2=Kc3⊕Si+2
Ei+3=Kc4⊕Si+3
end
其中,for表示对i递增循环计算,len为计算长度。
第六步,采用十六进制编码对E进行编码得到最终加密结果Enc:
Enc=Hex(E),其中Hex为十六进制编码转换。
在解密过程中,
第一步,读取加密使用的初始密钥Kz,第二、三步与加密过程相同。
第四步,采用十六进制解码对Enc进行解码得到E:
E=DeHex(Enc),其中DeHex为十六进制解码。
第五步,使用加密密钥Kc对待解密密文E,每4字节分组进行如下解密,并得到明文S:
for i=1->len(E)/4:
Si=Kc1⊕Ei
Si+1=Kc2⊕Ei+1
Si+2=Kc3⊕Ei+2
Si+3=Kc4⊕Ei+3
end
其中,for表示对i递增循环计算,len为计算长度。
第六步,对明文S每4字节分组进行去填充操作,由于采用UTF-8编码,可以从每4字节的首字节读取它的长度,去除超过长度之外的字节,并采用UTF-8编码转换为字,之后再重新组合得到最终原为Src。
在本发明实施例的技术方案中,首先将初始密钥输入预置的密码算法模型,得到初始密钥对应的密钥流,根据密钥流生成至少一个加密密钥;接着接收客户端发送的查询请求,将查询请求中的查询条件数据的各语素转换为字节数据,将各语素的字节数据填充为长度相等的字节序列;此后使用加密密钥对各语素的字节序列进行加密,根据加密结果获得查询条件数据的密文,基于密文执行查询。经过以上步骤,能够在加密过程中保留查询条件数据各语素之间的原有位置关系,使各语素与相应密文存在一一对应关系,便于后续基于密文比对的精确检索或模糊检索,并且通过密码算法模型、密钥流压缩、等长度字节序列填充等处理提高加密安全性。
需要说明的是,本发明的技术方案中,可能涉及的用户个人信息的采集、收集、更新、分析、处理、使用、传输、存储等方面,均符合相关法律法规的规定,被用于合法的用途,且不违背公序良俗。对用户个人信息采取必要措施,防止对用户个人信息数据的非法访问,维护用户个人信息安全、网络安全和国家安全。
对于前述的各方法实施例,为了便于描述,将其表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,某些步骤事实上可以采用其它顺序进行或者同时进行。此外,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是实现本发明所必须的。
为便于更好的实施本发明实施例的上述方案,下面还提供用于实施上述方案的相关装置。
请参阅图5所示,本发明实施例提供的数据加密装置500用于在计算机系统中加密数据,可以包括:加密密钥生成单元501、字节序列生成单元502和转换单元503。
其中,加密密钥生成单元501用于将初始密钥输入预置的密码算法模型,得到所述初始密钥对应的密钥流,根据所述密钥流生成至少一个加密密钥;字节序列生成单元502用于接收客户端发送的查询请求,将所述查询请求中的查询条件数据的各语素转换为字节数据,将各语素的字节数据填充为长度相等的字节序列;转换单元503用于使用所述加密密钥对各语素的字节序列进行加密,根据加密结果获得所述查询条件数据的密文。
在本发明实施例中,所述加密密钥的数量与一个字节序列包含的字节数量相等;以及,所述加密密钥生成单元501可进一步用于:从所述密钥流包含的字节中不重复地选取预设个数的目标字节,对单次选取的目标字节执行异或运算,得到该次选取的加密密钥;其中,不同次选取的目标字节在所述密钥流中处在不同位置。
具体应用中,所述加密密钥的数量与一个字节序列包含的字节数量相等;以及,所述加密密钥生成单元501可进一步用于:从所述密钥流包含的字节中随机选取预设个数的目标字节,对单次选取的目标字节执行异或运算,得到该次选取对应的加密密钥。
实际应用中,所述语素包括:字或字母;以及,所述字节序列生成单元502可进一步用于:利用UTF-8编码规则将所述查询条件数据的各语素转换为1字节、2字节、3字节或4字节的字节数据;在语素的字节数据为1字节的情况下,将该字节数据重复排列,形成4字节的字节序列;在语素的字节数据为2字节的情况下,将该字节数据按照字节顺序重复排列,形成4字节的字节序列;在语素的字节数据为3字节的情况下,将3个字节中的任一字节排列在该字节数据之后,形成4字节的字节序列;在语素的字节数据为4字节的情况下,将该字节数据确定为字节序列。
较佳地,所述加密密钥的数量为4;以及,所述转换单元503可进一步用于:按照4个加密密钥之间的预设顺序对各语素的字节序列中的4个字节依次加密,得到各语素的加密结果。
作为一个优选方案,所述转换单元503可进一步用于:对所述查询条件数据中各语素的加密结果执行十六进制编码,得到各语素的密文。
在一个实施例中,所述转换单元503可进一步用于:在预先建立的密文集合中对各语素的密文执行匹配,确定所述密文的语义信息;利用所述语义信息执行模糊检索或精确检索,将检索结果返回到所述客户端。
此外,在本发明实施例中,所述密码算法模型为祖冲之序列密码算法。
请参阅图6所示,本发明实施例提供的数据解密装置600用于在计算机系统中解密数据,可以包括:加密密钥生成单元601、字节序列生成单元602和恢复单元603。
其中,加密密钥生成单元601用于将初始密钥输入预置的密码算法模型,得到所述初始密钥对应的密钥流,根据所述密钥流生成至少一个加密密钥;字节序列生成单元602用于将待解密的密文转换为二进制数据,使用所述加密密钥对所述二进制数据进行解密,得到多个字节序列;恢复单元603用于将所述字节序列恢复为字节数据,将所述字节数据转换成语素,将转换成的语素组成查询条件数据。
加密密钥生成单元601的具体功能和执行步骤与加密过程类似,此处不再重复。
作为一个优选方案,字节序列生成单元602首先利用十六进制解码算法将密文转换为二进制数据。接着,利用多个加密密钥以及加密密钥之间的预设顺序(与加密过程的加密密钥使用顺序相同)对以上二进制数据进行解密,得到多个字节序列。示例性地,以上加密密钥的数量是4,则基于加密密钥的解密过程可以是加密密钥与每4字节分组的二进制数据作异或运算。
由于加密过程使用UTF-8编码,因此可以从每个字节序列的首字节读取其真实长度,于是恢复单元603可以在读取每个字节序列的真实长度之后删除加密过程填充的字节,将各字节序列恢复为真实的字节数据。与加密过程对应,对于每个字节序列,若其真实长度为1字节,则保留首字节,删除后边的三个字节;若其真实长度为2字节,则保留首字节和第二字节,删除后边的两个字节;若其真实长度为3字节,则保留首字节、第二字节和第三字节,删除后边的一个字节;若其真实长度为4字节,则保留全部字节。此后,恢复单元603可以使用UTF-8解码算法将字节数据转换为语素,由各语素组成作为原文的查询条件数据,完成解密过程。
在本发明实施例的技术方案中,首先将初始密钥输入预置的密码算法模型,得到初始密钥对应的密钥流,根据密钥流生成至少一个加密密钥;接着接收客户端发送的查询请求,将查询请求中的查询条件数据的各语素转换为字节数据,将各语素的字节数据填充为长度相等的字节序列;此后使用加密密钥对各语素的字节序列进行加密,根据加密结果获得查询条件数据的密文,基于密文执行查询。经过以上步骤,能够在加密过程中保留查询条件数据各语素之间的原有位置关系,使各语素与相应密文存在一一对应关系,便于后续基于密文比对的精确检索或模糊检索,并且通过密码算法模型、密钥流压缩、等长度字节序列填充等处理提高加密安全性。
图7出了可以应用本发明实施例的数据加密、数据解密方法或数据加密、数据解密装置的示例性系统架构700。
如图7所示,系统架构700可以包括终端设备701、702、703,网络704和服务器705(此架构仅仅是示例,具体架构中包含的组件可以根据申请具体情况调整)。网络704用以在终端设备701、702、703和服务器705之间提供通信链路的介质。网络704可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等。
用户可以使用终端设备701、702、703通过网络704与服务器705交互,以接收或发送消息等。终端设备701、702、703上可以安装有各种客户端应用,例如加密应用(仅为示例)。
终端设备701、702、703可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器705可以是提供各种服务的服务器,例如对用户利用终端设备701、702、703所操作的加密应用提供支持的后台服务器(仅为示例)。后台服务器可以对接收到的加密请求进行处理,并将处理结果(例如形成的密文--仅为示例)反馈给终端设备701、702、703。
需要说明的是,本发明实施例所提供的数据加密、数据解密方法一般由服务器705执行,相应地,数据加密、数据解密装置一般设置于服务器705中。
应该理解,图7中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
本发明还提供了一种电子设备。本发明实施例的电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明所提供的数据加密、数据解密方法。
下面参考图8,其示出了适于用来实现本发明实施例的电子设备的计算机系统800的结构示意图。图8示出的电子设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图8所示,计算机系统800包括中央处理单元(CPU)801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储部分808加载到随机访问存储器(RAM)803中的程序而执行各种适当的动作和处理。在RAM803中,还存储有计算机系统800操作所需的各种程序和数据。CPU801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
以下部件连接至I/O接口805:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至I/O接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便从其上读出的计算机程序根据需要被安装入存储部分808。
特别地,根据本发明公开的实施例,上文的主要步骤图描述的过程可以被实现为计算机软件程序。例如,本发明实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行主要步骤图所示的方法的程序代码。在上述实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被中央处理单元801执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。在本发明中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这根据所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括:加密密钥生成单元、字节序列生成单元和转换单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,加密密钥生成单元还可以被描述为“向字节序列生成单元提供加密密钥的单元”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中的。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该设备执行时,使得该设备执行的步骤包括:将初始密钥输入预置的密码算法模型,得到所述初始密钥对应的密钥流,根据所述密钥流生成至少一个加密密钥;接收客户端发送的查询请求,将所述查询请求中的查询条件数据的各语素转换为字节数据,将各语素的字节数据填充为长度相等的字节序列;使用所述加密密钥对各语素的字节序列进行加密,根据加密结果获得所述查询条件数据的密文,基于所述密文执行查询。
在本发明实施例的技术方案中,首先将初始密钥输入预置的密码算法模型,得到初始密钥对应的密钥流,根据密钥流生成至少一个加密密钥;接着接收客户端发送的查询请求,将查询请求中的查询条件数据的各语素转换为字节数据,将各语素的字节数据填充为长度相等的字节序列;此后使用加密密钥对各语素的字节序列进行加密,根据加密结果获得查询条件数据的密文,基于密文执行查询。经过以上步骤,能够在加密过程中保留查询条件数据各语素之间的原有位置关系,使各语素与相应密文存在一一对应关系,便于后续基于密文比对的精确检索或模糊检索,并且通过密码算法模型、密钥流压缩、等长度字节序列填充等处理提高加密安全性。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (13)

1.一种数据加密方法,其特征在于,用于在计算机系统中加密数据;所述方法包括:
将初始密钥输入预置的密码算法模型,得到所述初始密钥对应的密钥流,根据所述密钥流生成至少一个加密密钥;
接收客户端发送的查询请求,将所述查询请求中的查询条件数据的各语素转换为字节数据,将各语素的字节数据填充为长度相等的字节序列;
使用所述加密密钥对各语素的字节序列进行加密,根据加密结果获得所述查询条件数据的密文,基于所述密文执行查询。
2.根据权利要求1所述的方法,其特征在于,所述加密密钥的数量与一个字节序列包含的字节数量相等;以及,所述根据所述密钥流生成至少一个加密密钥,包括:
从所述密钥流包含的字节中不重复地选取预设个数的目标字节,对单次选取的目标字节执行异或运算,得到该次选取的加密密钥;其中,不同次选取的目标字节在所述密钥流中处在不同位置。
3.根据权利要求1所述的方法,其特征在于,所述加密密钥的数量与一个字节序列包含的字节数量相等;以及,所述根据所述密钥流生成至少一个加密密钥,包括:
从所述密钥流包含的字节中随机选取预设个数的目标字节,对单次选取的目标字节执行异或运算,得到该次选取对应的加密密钥。
4.根据权利要求1所述的方法,其特征在于,所述语素包括:字或字母;以及,所述将所述查询请求中的查询条件数据的各语素转换为字节数据,将各语素的字节数据填充为长度相等的字节序列,包括:
利用UTF-8编码规则将所述查询条件数据的各语素转换为1字节、2字节、3字节或4字节的字节数据;
在语素的字节数据为1字节的情况下,将该字节数据重复排列,形成4字节的字节序列;
在语素的字节数据为2字节的情况下,将该字节数据按照字节顺序重复排列,形成4字节的字节序列;
在语素的字节数据为3字节的情况下,将3个字节中的任一字节排列在该字节数据之后,形成4字节的字节序列;
在语素的字节数据为4字节的情况下,将该字节数据确定为字节序列。
5.根据权利要求4所述的方法,其特征在于,所述加密密钥的数量为4;以及,所述使用所述加密密钥对各语素的字节序列进行加密,包括:
按照4个加密密钥之间的预设顺序对各语素的字节序列中的4个字节依次加密,得到各语素的加密结果。
6.根据权利要求1所述的方法,其特征在于,所述根据加密结果获得所述查询条件数据的密文,包括:
对所述查询条件数据中各语素的加密结果执行十六进制编码,得到各语素的密文。
7.根据权利要求1所述的方法,其特征在于,所述基于所述密文执行查询,包括:
在预先建立的密文集合中对各语素的密文执行匹配,确定所述密文的语义信息;
利用所述语义信息执行模糊检索或精确检索,将检索结果返回到所述客户端。
8.根据权利要求1所述的方法,其特征在于,所述密码算法模型为祖冲之序列密码算法。
9.一种对应于权利要求1-8任一所述的数据加密方法的数据解密方法,其特征在于,用于在计算机系统中解密数据;所述方法包括:
将初始密钥输入预置的密码算法模型,得到所述初始密钥对应的密钥流,根据所述密钥流生成至少一个加密密钥;
将待解密的密文转换为二进制数据,使用所述加密密钥对所述二进制数据进行解密,得到多个字节序列;
将所述字节序列恢复为字节数据,将所述字节数据转换成语素,将转换成的语素组成查询条件数据。
10.一种数据加密装置,其特征在于,用于在计算机系统中加密数据;所述装置包括:
加密密钥生成单元,用于将初始密钥输入预置的密码算法模型,得到所述初始密钥对应的密钥流,根据所述密钥流生成至少一个加密密钥;
字节序列生成单元,用于接收客户端发送的查询请求,将所述查询请求中的查询条件数据的各语素转换为字节数据,将各语素的字节数据填充为长度相等的字节序列;
转换单元,用于使用所述加密密钥对各语素的字节序列进行加密,根据加密结果获得所述查询条件数据的密文。
11.一种对应于权利要求10所述的数据加密装置的数据解密装置,其特征在于,用于在计算机系统中解密数据;所述装置包括:
加密密钥生成单元,用于将初始密钥输入预置的密码算法模型,得到所述初始密钥对应的密钥流,根据所述密钥流生成至少一个加密密钥;
字节序列生成单元,用于将待解密的密文转换为二进制数据,使用所述加密密钥对所述二进制数据进行解密,得到多个字节序列;
恢复单元,用于将所述字节序列恢复为字节数据,将所述字节数据转换成语素,将转换成的语素组成查询条件数据。
12.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-9中任一所述的方法。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-9中任一所述的方法。
CN202311482644.4A 2023-11-08 2023-11-08 数据加密、数据解密方法和装置 Pending CN117436110A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311482644.4A CN117436110A (zh) 2023-11-08 2023-11-08 数据加密、数据解密方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311482644.4A CN117436110A (zh) 2023-11-08 2023-11-08 数据加密、数据解密方法和装置

Publications (1)

Publication Number Publication Date
CN117436110A true CN117436110A (zh) 2024-01-23

Family

ID=89558172

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311482644.4A Pending CN117436110A (zh) 2023-11-08 2023-11-08 数据加密、数据解密方法和装置

Country Status (1)

Country Link
CN (1) CN117436110A (zh)

Similar Documents

Publication Publication Date Title
US6490353B1 (en) Data encrypting and decrypting apparatus and method
US9350544B2 (en) Apparatus for encrypting data
CN106599723B (zh) 一种文件加密方法及装置、文件解密方法及装置
US8958548B2 (en) Generation of relative prime numbers for use in cryptography
CN112055004A (zh) 一种基于小程序的数据处理方法和系统
CN112019323B (zh) 数据加密、解密方法及装置、存储介质及电子设备
KR20150073753A (ko) 정수 기반 준동형 암호 기법에 일반적으로 적용 가능한 압축 암복호화 장치 및 방법
US20160013933A1 (en) Order-preserving encryption system, device, method, and program
Terec et al. DNA security using symmetric and asymmetric cryptography
CN112019328B (zh) Ip地址的加密方法、装置、设备和存储介质
WO2023030316A1 (zh) 密钥生成和分发方法、密钥生成装置、密钥管理系统
US20110182419A1 (en) Encryption algorithm with randomized buffer
Joshy et al. Text to image encryption technique using RGB substitution and AES
Mesran et al. Combination Base64 and Hashing Variable Length for Securing Data
CA3061776A1 (en) Key information processing method and apparatus, electronic device and computer readable medium
CN117134914B (zh) 一种基于硬件特征的一次一密的随机秘钥流式加密算法及系统
CN114124359A (zh) 保留格式加密数据的方法、装置、电子设备及存储介质
CN116866029B (zh) 随机数加密数据传输方法、装置、计算机设备及存储介质
CN112953716A (zh) 一种兑换码生成及其验证方法和装置
Al-Smadi et al. Files cryptography based on one-time pad algorithm
CN111931204A (zh) 用于分布式系统的加密去重存储方法、终端设备
CN117436110A (zh) 数据加密、数据解密方法和装置
CN115277064A (zh) 数据加密、数据解密方法、装置、电子设备和介质
CN114500006A (zh) 查询请求的处理方法及装置
CN111931202A (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