CN113079002A - 数据加密方法、解密方法、密钥管理方法、介质和设备 - Google Patents

数据加密方法、解密方法、密钥管理方法、介质和设备 Download PDF

Info

Publication number
CN113079002A
CN113079002A CN202110324958.6A CN202110324958A CN113079002A CN 113079002 A CN113079002 A CN 113079002A CN 202110324958 A CN202110324958 A CN 202110324958A CN 113079002 A CN113079002 A CN 113079002A
Authority
CN
China
Prior art keywords
character string
ciphertext
key
user side
plaintext
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.)
Granted
Application number
CN202110324958.6A
Other languages
English (en)
Other versions
CN113079002B (zh
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.)
Beijing Senseshield Technology Co Ltd
Original Assignee
Beijing Senseshield 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 Beijing Senseshield Technology Co Ltd filed Critical Beijing Senseshield Technology Co Ltd
Priority to CN202110324958.6A priority Critical patent/CN113079002B/zh
Publication of CN113079002A publication Critical patent/CN113079002A/zh
Application granted granted Critical
Publication of CN113079002B publication Critical patent/CN113079002B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0822Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network 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/0442Network 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 asymmetric encryption, i.e. different keys for encryption and decryption
    • 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

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

数据加密方法、解密方法、密钥管理方法、介质和设备
技术领域
本申请涉及信息安全技术领域,特别涉及一种数据加密方法、解密方法、密钥管理方法及计算机可读存储介质和电子设备。
背景技术
当今社会,人们对信息安全越来越重视。例如,对于机密数据,会通过各种加密方式进行加密处理后,将机密数据密文和密钥进行存储,可以在一定程度上提高机密数据的安全性。但是,若本地用户端被攻破,密钥被泄露时,会导致机密数据密文被破解,造成严重的损失。
因此,如何对机密数据进行加密处理,能避免机密数据被泄露,成为亟待解决的问题。
发明内容
有鉴于现有技术中存在的上述问题,本申请提供了一种数据加密方法、解密方法、密钥管理方法及计算机可读存储介质和电子设备,本申请实施例采用的技术方案如下:
一方面,本申请实施例提出了一种数据加密方法,应用于用户端,包括:
解密从服务器端获取的第一密文字符串,得到至少一个明文字符串;
对所述至少一个明文字符串进行至少一次不可逆运算,生成中间密钥;
生成用于加密处理的目标密钥;
在所述加密处理完成后利用所述中间密钥对所述目标密钥加密,生成目标密钥密文。
在一些实施例中,对所述至少一个明文字符串进行至少一次不可逆运算,生成中间密钥,包括:
将所述至少一个明文字符串与预设字符串生成第一字符串;
对所述第一字符串进行第一不可逆运算,生成第五字符串;
根据所述第五字符串生成所述中间密钥。
在一些实施例中,根据所述第五字符串生成所述中间密钥,包括:
将所述第五字符串与预设字符串生成第二字符串;
对所述第二字符串进行第二不可逆运算,得到所述中间密钥,其中,所述第一不可逆运算与所述第二不可逆运算所采用的算法不同。
另一方面,本申请实施例提出了一种数据解密方法,应用于用户端,包括:
解密从服务器端获取的第一密文字符串,得到至少一个明文字符串;
对所述至少一个明文字符串进行至少一次不可逆运算,生成中间密钥;
利用所述中间密钥对目标密钥密文解密,获得目标密钥;
利用所述目标密钥进行解密处理。
在一些实施例中,所述数据解密方法还包括:
发送获取第一密文字符串的请求,
通过服务器端对所述用户端的验证后,从服务器端获取所述第一密文字符串;其中,所述服务器端对所述用户端的验证利用了第二密文字符串,所述第二密文字符串是基于加密机提供的第二预设密钥加密第三字符串而得到,所述第三字符串为所述至少一个明文字符串中的任一个。
另一方面,本申请实施例提出了一种密钥管理方法,应用于服务器端,包括:
生成至少一个明文字符串,所述至少一个明文字符串用于在进行至少一次不可逆运算后生成中间密钥;
基于用户端提供的第一预设密钥对所述至少一个明文字符串加密,得到第一密文字符串,保存,所述第一密文字符串能供所述用户端获取,在所述用户端加密后用于加密用户端的目标密钥,所述目标密钥用于用户端的加密处理。
在一些实施例中,所述密钥管理方法还包括:
将第三字符串发送给加密机,以使加密机基于加密机中的第二预设密钥加密所述第三字符串,得到第二密文字符串,其中,所述第三字符串为所述至少一个明文字符串中的任一个,在接收到所述用户端发出的获取第一密文字符串的请求时,所述第二密文字符串用于对所述用户端进行验证。
在一些实施例中,所述密钥管理方法还包括:
接收来自用户端的获取第一密文字符串的请求,所述请求中包括所述用户端的第三预设密钥;
从利用所述第三预设密钥解密第一密文字符串的解密结果中确定第四字符串;
将所述第四字符串发送给所述加密机,以使所述加密机基于所述第二预设密钥加密所述第四字符串,得到第四密文字符串;
如果所述第四密文字符串与所述第二密文字符串一致,则将所述第一密文字符串发送给所述用户端。
本申请实施例还提供了一种计算机可读存储介质,所述存储介质承载有一个或者多个计算机程序,所述一个或者多个计算机程序被处理器执行时实现根据本申请任意实施例提供的方法的步骤。
本申请实施例还提供了一种电子设备,至少包括存储器和处理器,所述存储器上存储有应用程序,所述处理器在执行所述存储器上的应用行程序时实现根据本申请任意实施例提供的方法的步骤。
与现有技术相比,本申请实施例的有益效果在于:本申请通过解密从服务器端获取的加密字符串,获得明文字符串,并对明文字符串进行不可逆运算,获得高安全性的中间密钥,利用该中间密钥对加密处理完成的目标密钥进行加密处理,生成目标密钥密文进行保存。通过本申请的数据加密方法,在目标密钥密文和数据密文丢失的情况下,由于目标密钥经高安全性的中间密钥进行加密处理,增加了目标密钥密文的破解难度,通过目标密钥加密的数据也无法被简单获取,提高了加密数据的安全性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的数据加密方法的流程图;
图2为本申请实施例提供的数据解密方法的流程图;
图3为本申请实施例提供的密钥管理方法的流程图;
图4为本申请实施例提供的电子设备的结构示意图。
具体实施方式
为了使得本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例的附图,对本申请实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于所描述的本申请的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
除非另外定义,本申请使用的技术术语或者科学术语应当为本申请所属领域内具有一般技能的人士所理解的通常意义。本申请中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
为了保持本申请实施例的以下说明清楚且简明,本申请省略了已知功能和已知部件的详细说明。
本申请的方案中,由服务器端为用户随机生成一个或多个字符串(即中间值),以便用户端利用这些中间值来对重要的数据(例如下述的用户端的目标密钥)加密。服务器端还利用用户端的业务密钥,将这些中间值加密保存在服务器端,以便只有该用户才能获得这些中间值的明文。在加密过程中,用户端通过获取服务器端随机生成的字符串,并对字符串进行不可逆计算后生成中间密钥;利用该中间密钥,可以在加密处理(例如,利用目标密钥加密用户端的数据)完成时对目标密钥进行加密后保存。在解密过程中,用户端可以再从服务器端获得加密时所利用的中间值来生成中间密钥,然后通过该中间密钥获得目标密钥进行解密处理。采用这样的方法,即便用户端被攻击,在目标密钥密文、数据密文丢失的情况下,由于目标密钥已被加密无法被直接获取,攻击者也难以从服务器端获得该用户端加密时所采用的中间值,则通过目标密钥加密的数据也无法被简单破解,提高了加密数据的安全性。
为了便于理解,以下对用户端进行数据加密和解密的过程分别作说明,然后对服务器端进行密钥管理的过程作说明。
本申请中,用户端可以是安装于手机或计算机等终端上的应用程序,用户通过用户端进行操作,可以使终端对数据进行加密处理。服务器端可以是安装于物理服务器或云服务器上的应用程序,通过服务器端可以实现对密钥的管理(管理用于生成中间密钥的中间值,也可以被视为是对密钥的管理的一种方式)。终端与服务器之间可以通讯连接,以便终端上的用户端在加密或解密时可以从服务器上获取需要的。
图1为本申请实施例提供的数据加密方法的流程图。如图1所示,本申请实施例的数据加密方法应用于用户端,具体包括如下步骤:
S1100,解密从服务器端获取的第一密文字符串,得到至少一个明文字符串。
本步骤之前,用户可以通过用户端或其他加密设备预先创建业务密钥,并将该业务密钥上传至服务器端。该业务密钥使得服务器端能对该用户端对应的数据进行加密后保存或者传输。用户端从服务器端获取对应的密文数据后,能对密文数据利用该业务密钥进行解密,以获取到所需的明文数据。服务器端通过这样的方式保存数据,以及,用户端和服务器端之间通过这样的方式传送数据,可以避免数据被泄露,提高数据的安全性。
示例性地,上述业务密钥可以采用非对称密钥,即包括一个业务公钥和一个业务私钥,用户端将业务公钥上传至服务器端。该业务公钥使得服务器端能对该用户端对应的数据进行加密后保存或者传输。相应的,用户端从服务器端获取对应的密文数据后,能对密文数据利用该业务私钥进行解密,以获取到所需的明文数据。即便攻击者通过攻击服务器获得了密文数据,或者密文数据在传输过程中被攻击者截获,由于仅该用户端自己持有业务私钥,因此攻击者也难以解密该密文数据。
应理解,当业务密钥为对称密钥时,服务器端使用业务密钥加密了需要加密的数据之后,将不会持久化保存该业务密钥,避免业务密钥被非法获取。
在本步骤其中一个具体实施方式中,用户端与服务器端建立通信连接后,用户可以通过用户端向服务器端发送请求。该服务器端响应于用户端的请求,随机生成至少一个任意的字符串,该字符串不做长度或个数等任何限定。服务器端利用用户端预先上传或者在该请求中携带的业务密钥或业务公钥对该字符串进行加密,生成第一密文字符串存储起来。然后,服务器端可以基于用户端的请求将该第一密文字符串发送至用户端,从而避免明文字符串传送过程中遭到泄露的问题。用户端在从服务器端获取第一密文字符串后,可以相应地利用业务密钥或业务私钥对该第一密文字符串进行解密,获得至少一个明文字符串,以通过该明文字符串进行后续操作处理。
应理解,此处的多个用户端的请求可以是同一个请求,也可以是不同的请求,本申请对此不作限定。也就是说,服务器端可以响应来自用户端的一个请求,为该用户端随机生成、加密保存以及发送这些字符串;服务器也可以响应来自用户端的一个请求,为该用户端随机生成、加密保存这些字符串,然后响应来自该用户端的另一个请求,将加密后的字符串发送给该用户端。
还应理解,针对某个用户端发起的请求,服务器端随机生成的字符串(一个或多个),可以与该用户端对应,也可以与该用户端的数据对应,本申请对此不作限定。也就是说,利用这些字符串生成的中间密钥,可以是为该用户端生成的,用来加密该用户端上的多个数据,也可以是为该用户端上的某个特定数据生成的,只用来加密该特定数据。
S1200,对所述至少一个明文字符串进行至少一次不可逆运算,生成中间密钥。
本步骤中,基于步骤S1100中获得的明文字符串,用户端进行一次或多次不可逆运算,以对这些明文字符串进行加密处理,生成中间密钥。
其中,不可逆运算的加密处理过程中可以不需要使用任何密钥,以这些明文字符串为输入,可直接通过设定的不可逆算法进行计算,生成第一密文数据,用户可应用该第一密文数据作为中间密钥进行后续的加密操作。其中,在存在两个或多个明文字符串的情况时,可将这两个或多个明文字符串按预设规则进行拼接,再对拼接后的明文字符串进行不可逆运算的加密处理。这里,用户还可以针对该第一密文数据再次通过不可逆运算进行加密处理,将该第一密文数据输入加密系统,通过设定的不可逆算法进行加密处理,生成第二密文数据。用户可以根据需要采用多次不可逆算法,以对该明文字符串进行多次加密处理后,将生成的密文数据应用为中间密钥。其中,多次加密处理过程中具体应用的不可逆算法,可以基于实际情况为相同或者不同,本申请对不可逆算法的类型不做限定。不可逆运算的加密处理过程中是没有密钥的,也无法进行逆运算来倒推此前的明文字符串,因此,经不可逆运算加密处理后生成的密文数据较难被破解,这样可以进一步提高中间密钥的安全性。
S1300,生成用于加密处理的目标密钥。
本步骤中,用户可以根据实际情况通过用户端随机生成任意的数字串、字符串或各种符号等,或者是相互之间的各种组合等,以用作目标密钥。利用该目标密钥,用户可以通过用户端进行加密处理,例如对机密数据或其他重要数据等进行加密处理,生成数据密文进行保存,以保护机密数据或其他重要数据不被泄露。本申请中对目标密钥的类型或组合形式等均不做任何限定。
S1400,在所述加密处理完成后利用所述中间密钥对所述目标密钥加密,生成目标密钥密文。
本步骤中,用户利用目标密钥完成对机密数据等的加密处理后,再利用中间密钥对目标密钥进行加密处理,生成目标密钥密文进行保存,从而避免目标密钥被泄露。这里目标密钥密文可以存储在本地终端中,也可以存储在服务器中,以在用户解密时进行相应地获取。
需要说明的是,在生成或使用目标密钥时,目标密钥可以存在于终端的内存中。在加密处理以及目标密钥的密文生成之后,目标密文的明文不会被持久化保存在终端上。此外,在这个过程中,用户端解密得到的至少一个明文字符串以及生成的中间密钥,也仅在数据加密的过程中存在于终端的内存中,在数据加密完成之后不会被持久化保存在终端上。
本实施例中,通过解密从服务器端获取的加密字符串,获得明文字符串,并对明文字符串进行不可逆运算,获得高安全性的中间密钥,利用该中间密钥对加密处理完成的目标密钥进行加密处理,生成目标密钥密文进行保存。本申请实施例中,在终端被攻破的情况下,由于加密过程是应用的从服务器端获取的字符串进行操作的,本地不用进行相应地保存,终端上也不会泄露加密过程中的痕迹,这样,应用本申请实施的加密方法,即使在目标密钥密文和数据密文丢失的情况下,由于目标密钥经高安全性的中间密钥进行加密处理,同时没有留下加密痕迹,极大地增加了目标密钥密文的破解难度,通过目标密钥加密的数据也无法被简单获取,提高了加密数据的安全性。
另外,采用本申请实施例中的加密和解密方法,针对不同的数据可以采用不同的中间值和不可逆算法来生成中间密钥,从而大大增加到了整个系统的可操控性和扩展性。例如,通过用户端可以选择采用不同的不可逆算法以及不同的计算中间密钥的过程。又例如,服务器端可以决定采用不同数量、取值的中间值来计算中间密钥。
为便于理解,在其中一个具体的例子中对本申请实施例进行阐述,用户端与服务器端建立通信连接后,用户可以通过用户端向服务器端发送请求。该服务器端响应于用户端的请求,随机生成两个任意的字符串S1和S2,并利用业务密钥或业务公钥对S1和S2分别进行加密处理,生成第一密文字符串S1_E_Ku和S1_E_Ku。之后服务器端就可以基于用户端的请求将第一密文字符串S1_E_Ku和S1_E_Ku发送至用户端。用户端获得第一密文字符串S1_E_Ku和S1_E_Ku后,利用业务密钥或业务私钥对第一密文字符串S1_E_Ku和S1_E_Ku进行解密处理,从而获得对应的明文字符串S1和S2。
针对两个明文字符串S1和S2,用户端先按预设规则对其处理,例如可以按预定的顺序将其拼接为明文字符串S1S2或者S2S1,即第一字符串。为便于说明,这里选择以明文字符串S1S2为例进行阐述。用户端对明文字符串S1S2进行不可逆运算,进而生成密文KEK,将密文KEK用作中间密钥以进行后续操作。
用户端随机生成一个任意字符串DEK,将DEK用作目标密钥。用户利用目标密钥DEK对数据进行加密处理,生成数据密文保存,以保护数据明文不被泄露。
最后用户端利用中间密钥KEK对目标密钥DEK进行加密,生成目标密钥密文DEK_E进行保存,目标密钥密文DEK_E可以存储于本地客户端或服务器中,以供用户在需要解密时进行获取。
在一些实施例中,步骤S1200,对所述至少一个明文字符串进行至少一次不可逆运算,生成中间密钥,包括:
S1210,根据所述至少一个明文字符串与预设字符串生成第一字符串。
S1220,对所述第一字符串进行第一不可逆运算,生成第五字符串。
S1230,根据所述第五字符串生成所述中间密钥。
本实施例中,用户端对所述明文字符串进行第一不可逆运算之前,先对该明文字符串进行预处理。用户端可以预先随机生成一个任意字符串,或者获取一个用户设定的字符串,将该字符串存储为预设字符串。本申请对该字符串不做长度或形式等任何限定。
用户端将解密得到的明文字符串与该预设字符串按预定规则生成一个第一字符串。这里,可以是明文字符串与该预设字符串之间按照预定的先后顺序进行拼接,生成一个新的字符串,作为第一字符串。例如,明文字符串为S1,预设字符串为Sn,可以设定拼接规则将明文字符串S1放在前面,生成新的字符串S1Sn,或者将预设字符串Sn放在前面,生成新的字符串SnS1。或者还可以是将明文字符串放入预设字符串中间,或者将预设字符串放入明文字符串中间,从而生成一个新的字符串,作为第一字符串。这里对第一字符串的生成方式不做限定。
存在两个或多个明文字符串时,用户端可将两个或多个明文字符串与预设字符串按照预定规则生成一个第一字符串。可以是将两个或多个明文字符串与该预设字符串按照预定的先后顺序进行拼接,生成一个新的字符串,作为第一字符串。例如,明文字符串包括S1和S2,预设字符串为Sn,可以设定拼接规则将明文字符串S1放在前面,生成新的字符串S1S2Sn或S2S1Sn,或者将预设字符串Sn放在前面,生成新的字符串SnS1S2或SnS2S1,或者将预设字符串Sn放于中间,生成新的字符串S1SnS2或S2SnS1。或者还可以是将两个或多个明文字符串放入预设字符串中间,或者将预设字符串成两个或多个放入两个或多个明文字符串中间,从而生成一个新的字符串,作为第一字符串。
对生成的第一字符串进行第一不可逆运算,以对该第一字符串进行加密处理,生成第五字符串。具体的,用户端可以对该第一字符串直接通过设定的第一不可逆算法进行运算,生成第一密文数据,用户可使用该第一密文数据作为第五字符串,以进行后续的加密操作。这里,由于通过不可逆运算加密处理后的数据是无法通过输入密钥进行解密的,也无法进行逆运算得到第一字符串,因此,要想对第一密文数据进行破解,只有重新输入明文字符串,并再次经过与第一不可逆云中同样不可逆的加密算法处理,得到与第一密文数据相同的加密密文时,才能破解出第一字符串。可见,通过对明文字符串进行预处理后再进行第一不可逆运算,极大地增加了中间密钥的破解难度。
最后,用户可以将所述该第五字符串直接用作中间密钥,应用于步骤S1400中对目标密钥的加密处理中。也可以针对第五字符串再次进行预处理处理后,再通过不可逆运算进行加密处理,以生成所述中间密钥。
在一些实施例中,步骤S1230中,根据所述第五字符串生成所述中间密钥,包括:
S1231,将所述第五字符串与预设字符串生成第二字符串,
S1232,对所述第二字符串进行第二不可逆运算,得到所述中间密钥,其中,所述第一不可逆运算与所述第二不可逆运算所采用的算法不同。
本实施例中,用户端对所述第五字符串进行第二不可逆运算之前,可以先将该第五字符串与一个预设字符串按预定规则生成一个第二字符串。示例性地,用户端可以是第五字符串与该预设字符串之间按照预定的先后顺序进行拼接,生成一个新的字符串,作为第二字符串。或者还可以是将第五字符串放入预设字符串中间,或者将预设字符串放入第五字符串中间,从而生成一个新的字符串,作为第二字符串。这里对第二字符串的具体生成方式不做限定。
对生成的第二字符串进行第二不可逆运算,以对该第二字符串进行加密处理,得到所述中间密钥。具体的,可以对该第二字符串直接通过设定的第二不可逆算法进行运算,生成第二密文数据,用户可使用该第二密文数据作为中间密钥,以进行后续的加密操作。这里,第二不可逆运算中的第二不可逆算法可以与第一不可逆运算中的第一不可逆算法相同,或者第二不可逆运算中的第二不可逆算法也可以采用与第一不可逆算法不同的算法。在其中一个具体的实施方式中,第二不可逆运算中的第二不可逆算法与第一不可逆算法不同,从而通过第二不可逆运算处理后获得的中间密钥,能进一步增加破解的难度。
应理解,上述生成第一字符串和生成第二字符串的这两个过程中使用的预设字符串可以是相同的或不同的字符串,本申请对此不作限定。
本申请实施例提供了一种数据解密方法,该数据解密方法应用于用户端,如图2所示,具体包括以下步骤:
S2100,解密从服务器端获取的第一密文字符串,得到至少一个明文字符串。
具体的,用户端与服务器端建立通信连接后,用户端可以向服务器端发送获取第一密文字符串的请求,以向服务器端请求获取第一密文字符串。这里,服务器端在数据加密的过程中或之前,已经生成第一密文字符串并存储起来,可以供用户端进行获取。用户端向服务器端所发出的请求信息中可以包含用户端的一些信息和密钥数据,例如用户端ID,数据加密过程中创建的业务密钥等,以用于服务器端对用户端的身份进行的验证。
服务器端对用户端进行验证所利用的第二密文字符串,可在数据加密过程中生成,或在数据加密过程前预先生成。例如,在数据加密过程中,服务器端会从所生成的字符串中选择一个字符串,作为第三字符串,并将第三字符串发送至加密机。加密机可预先存储有第二预设密钥,接收到第三字符串时,加密机利用第二预设密钥对第三字符串进行加密处理,获得第二密文字符串,服务器端可以将该第二密文字符串与对应的第一密文字符串关联存储起来,以用于对该用户端进行验证。
这样,在数据解密过程中,服务器端接收到用户端的请求时,基于用户端的ID、原本被加密的数据的ID等信息确定该用户端所请求的数据为第一密文字符串,服务器端利用请求信息中的密钥数据,例如业务密钥对第一密文字符串进行解密处理,获得至少一个明文字符串(为便于区分,本申请实施例中将服务器端解密得到的明文字符串称为第四字符串)。服务器端利用加密机通过第二预设密钥对该至少一个明文字符串进行加密,获得至少一个第四密文字符串,分别比较第二密文字符串和至少一个第四密文字符串,在至少一个第四密文字符串中包括与第二密文字符串相同的数据时,则服务器端对用户端的验证通过。
在服务器端对用户端的验证通过后,该服务器端响应于用户端的请求,将其中所存储的第一密文字符串发送至用户端,以供用户端进行解密操作。
应理解,在解密过程中服务器端接收到的业务密钥、解密得到的第四字符串等,可以存储在服务器的内存中,而不在服务器中进行持久化保存。
还应理解,用户端发送给服务器端的业务密钥可以是采用双方此前协商的传输用密钥加密过的。
用户端在从服务器端获取第一密文字符串后,可以相应地利用业务密钥或业务私钥对该第一密文字符串进行解密,获得至少一个明文字符串,以通过该明文字符串进行后续操作处理。
S2200,对所述至少一个明文字符串进行至少一次不可逆运算,生成中间密钥。
本步骤中,基于步骤S2100中获得的明文字符串,用户端进行一次或多次不可逆运算,以对该明文字符串进行加密处理,生成中间密钥。这里的至少一次不可逆运算与数据加密过程中的至少一次不可逆运算过程保持相同,以得到相同的中间密钥,用于后续的解密操作。本步骤的具体实现方式与数据加密过程中步骤S1200的实现方式相同,在此不再赘述。
S2300,利用所述中间密钥对目标密钥密文解密,获得目标密钥。
具体的,在获取目标密钥密文后,用户端对该目标密钥密文进行解密操作,以获得目标密钥。其中,目标密钥密文根据数据加密过程中的存储位置,可以从本地终端中获取;也可以向服务器端进行请求,以从服务器端接收该目标密钥密文。
S2400,利用所述目标密钥进行解密处理。
本步骤中,针对待解密的数据密文,用户可以利用目标密钥对其进行解密处理,以获取数据明文。
本实施例中,通过解密从服务器端获取的加密字符串,获得明文字符串,并对明文字符串进行不可逆运算,获得高安全性的中间密钥,利用该中间密钥对获取的目标密钥密文进行解密,获取目标密钥,以通过目标密钥对数据密文进行解密处理。只有通过本申请的数据解密方法,才可以解密基于本申请的数据加密方法得到的数据密文,加密数据的安全性好。
本申请实施例提供了一种密钥管理方法,该密钥管理方法应用于服务器端,如图3所示,具体包括以下步骤:
S3100,生成至少一个明文字符串,所述至少一个明文字符串用于在进行至少一次不可逆运算后生成中间密钥。
具体的,服务器端随机生成任意字符串用作明文字符串,该字符串不做长度或个数等任何限定。所述明文字符串进行至少一次不可逆运算的过程可以应用步骤1200中的实施方式,以生成中间密钥,其具体实现过程在此不再赘述。
S3200,基于用户端提供的第一预设密钥对所述至少一个明文字符串加密,得到第一密文字符串,保存,所述第一密文字符串能供所述用户端获取,在由所述用户端解密后被用于加密用户端的目标密钥,所述目标密钥用于用户端的加密处理。
具体的,第一预设密钥,可以是用户端创建的或是通过其他加密设备创建的业务密钥或业务公钥,通过该业务密钥或业务公钥,服务器端可以加密生成的明文字符串,用户端与服务器端之间可以传输加密后的数据。服务器端利用该第一预设密钥对所述明文字符串进行加密处理,获得第一密文字符串并保存起来。所述第一密文字符串能基于所述用户端的请求而被用户端获取,用户端基于获取的第一密文字符串,利用与第一预设密钥对应的密钥(例如前述业务密钥或业务私钥)解密得到至少一个明文字符串,以生成中间密钥。从而在用户端利用目标密钥进行的加密处理完成后,再利用该中间密钥对目标密钥进行加密处理,以将目标密钥加密后保存。
在一些实施例中,所示密钥管理方法还包括:
将第三字符串发送给加密机,以使加密机基于加密机中的第二预设密钥加密所述第三字符串,得到第二密文字符串,其中,所述第三字符串为所述至少一个明文字符串中的任一个,在接收到所述用户端发出的获取第一密文字符串的请求时,所述第二密文字符串用于对所述用户端进行验证。
本实施例中,服务器端可基于所生成的至少一个明文字符串中,选择一个字符串,作为第三字符串,并将第三字符串发送至加密机。加密机可预先存储第二预设密钥,接收到第三字符串时,加密机利用第二预设密钥对第三字符串进行加密处理,获得第二密文字符串。服务器可以将该第二密文字符串存储起来,以利用该第二密文字符串对用户端进行验证。
在一些实施例中,所示密钥管理方法还包括:
步骤一,接收来自用户端的获取第一密文字符串的请求,所述请求中包括所述用户端的第三预设密钥;
步骤二,从利用所述第三预设密钥解密第一密文字符串的解密结果中确定第四字符串;
步骤三,将所述第四字符串发送给所述加密机,以使所述加密机基于所述第二预设密钥加密所述第四字符串,得到第四密文字符串;
步骤四,如果所述第四密文字符串与所述第二密文字符串一致,则将所述第一密文字符串发送给所述用户端。
本实施例可应用于数据解密过程中,用户端为进行解密操作,向服务器端发出获取第一密文字符串的请求,该请求中可以包括用户端的ID信息和第三预设密钥。其中,第三预设密钥可能是数据加密过程中,用户端创建的或是通过其他加密设备创建的业务密钥,也可能是其他不相关的密钥。服务器端接收到用户端的请求后,可以获取请求中的第三预设密钥,也可根据请求中的ID信息等确认该用户端所请求的数据为第一密文字符串。
服务器端利用第三预设密钥对第一密文字符串进行解密处理,获得至少一个明文字符串,从该明文字符串中确定出第四字符串,以利用第四字符串通过加密机进行验证对比,从而对该用户端进行身份验证。
服务端将该第四字符串发送至加密机进行加密处理,加密机接收到第四字符串后,可利用所存储的第二预设密钥对第四字符串进行加密处理,从而生成第四密文字符串。
服务器端利用加密机比较第四密文字符串和第二密文字符串,如果第四密文字符串与第二密文字符串相同,则服务器端对用户端的验证通过。验证通过之后,服务器端响应于用户端的请求,则将所述第一密文字符串发送给所述用户端。
如前所述,对于服务器来说,其接收到的请求中的第三预设密钥可能可以正确解密第一密文字符串,也可能根本无法解密第一密文字符串,还可能虽然能够进行解密处理,却无法得到正确的解密结果。只有正确解密第一密文字符串,并且解密结果通过了加密机和服务器端的验证,才说明当前发送请求的用户端确实是其请求的第一密文字符串的合法拥有者。
本申请实施例还提供了一种计算机可读存储介质,所述存储介质承载有一个或者多个计算机程序,所述一个或者多个计算机程序被处理器执行时实现本申请任意实施例提供的方法的步骤。
本实施例中的存储介质可以是电子设备/系统中所包含的;也可以是单独存在,而未装配入电子设备/系统中。上述存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本申请任意实施例提供的方法的步骤。
根据本申请的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。可选地,本实施例中的具体示例可以参考本申请任意实施例中所描述的示例,本实施例在此不再赘述。显然,本领域的技术人员应该明白,上述的本申请的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请不限制于任何特定的硬件和软件结合。
本申请实施例还提供了一种电子设备,至少包括存储器901和处理器902,所述存储器901上存储有应用程序,所述处理器902在执行所述存储器901上的应用行程序时实现本申请任意实施例提供的方法的步骤。
本实施例应用于终端侧时,电子设备可以包括但不限于手机、平板电脑、计算机等终端设备,存储器901上设有用户端,该用户端可以是用于对数据进行加密或解密操作的应用程序,电子设备的用户可以通过在用户端上进行操作,实现本申请任意实施例提供的数据加密方法的步骤,或者是数据解密方法的步骤。
本实施例应用于服务器侧时,电子设备可以包括但不限于物理服务器或云服务器等,所述存储器901上设有服务器端,该服务器端可以是用于对密钥进行管理的应用程序,电子设备的用户可以通过终端与服务器之间直接或间接的通信连接,通过服务器端实现本申请任意实施例提供的密钥管理方法的步骤。
由于本申请实施例所介绍的电子设备,为设置有实施本申请实施例所公开的方法的存储器的电子设备,故而基于本申请实施例所介绍的方法,本领域所属技术人员能够了解本申请实施例所介绍的电子设备的结构及变形,故而在此不再赘述。
此外,尽管已经在本文中描述了示例性实施例,其范围包括任何和所有基于本申请的具有等同元件、修改、省略、组合(例如,各种实施例交叉的方案)、改编或改变的实施例。权利要求书中的元件将被基于权利要求中采用的语言宽泛地解释,并不限于在本说明书中或本申请的实施期间所描述的示例,其示例将被解释为非排他性的。因此,本说明书和示例旨在仅被认为是示例,真正的范围和精神由以下权利要求以及其等同物的全部范围所指示。
以上描述旨在是说明性的而不是限制性的。例如,上述示例(或其一个或更多方案)可以彼此组合使用。例如本领域普通技术人员在阅读上述描述时可以使用其它实施例。另外,在上述具体实施方式中,各种特征可以被分组在一起以简单化本申请。这不应解释为一种不要求保护的公开的特征对于任一权利要求是必要的意图。相反,本申请的主题可以少于特定的公开的实施例的全部特征。从而,以下权利要求书作为示例或实施例在此并入具体实施方式中,其中每个权利要求独立地作为单独的实施例,并且考虑这些实施例可以以各种组合或排列彼此组合。本申请的范围应参照所附权利要求以及这些权利要求赋权的等同形式的全部范围来确定。
以上对本申请多个实施例进行了详细说明,但本申请不限于这些具体的实施例,本领域技术人员在本申请构思的基础上,能够做出多种变型和修改实施例,这些变型和修改都应落入本申请所要求保护的范围之内。

Claims (10)

1.一种数据加密方法,其特征在于,应用于用户端,包括:
解密从服务器端获取的第一密文字符串,得到至少一个明文字符串;
对所述至少一个明文字符串进行至少一次不可逆运算,生成中间密钥;
生成用于加密处理的目标密钥;
在所述加密处理完成后利用所述中间密钥对所述目标密钥加密,生成目标密钥密文。
2.根据权利要求1所述的方法,其特征在于,对所述至少一个明文字符串进行至少一次不可逆运算,生成中间密钥,包括:
根据所述至少一个明文字符串与预设字符串生成第一字符串;
对所述第一字符串进行第一不可逆运算,生成第五字符串;
根据所述第五字符串生成所述中间密钥。
3.根据权利要求2所述的方法,其特征在于,根据所述第五字符串生成所述中间密钥,包括:
将所述第五字符串与预设字符串生成第二字符串;
对所述第二字符串进行第二不可逆运算,得到所述中间密钥,其中,所述第一不可逆运算与所述第二不可逆运算所采用的算法不同。
4.一种数据解密方法,其特征在于,应用于用户端,包括:
解密从服务器端获取的第一密文字符串,得到至少一个明文字符串;
对所述至少一个明文字符串进行至少一次不可逆运算,生成中间密钥;
利用所述中间密钥对目标密钥密文解密,获得目标密钥;
利用所述目标密钥进行解密处理。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
发送获取第一密文字符串的请求,
通过服务器端对所述用户端的验证后,从服务器端获取所述第一密文字符串;其中,所述服务器端对所述用户端的验证利用了第二密文字符串,所述第二密文字符串是基于加密机提供的第二预设密钥加密第三字符串而得到,所述第三字符串为所述至少一个明文字符串中的任一个。
6.一种密钥管理方法,其特征在于,应用于服务器端,包括:
生成至少一个明文字符串,所述至少一个明文字符串用于在进行至少一次不可逆运算后生成中间密钥;
基于用户端提供的第一预设密钥对所述至少一个明文字符串加密,得到第一密文字符串,保存,所述第一密文字符串能供所述用户端获取,在由所述用户端解密后被用于加密用户端的目标密钥,所述目标密钥用于用户端的加密处理。
7.根据权利要求6所述的方法,其特征在于,还包括:
将第三字符串发送给加密机,以使加密机基于加密机中的第二预设密钥加密所述第三字符串,得到第二密文字符串,其中,所述第三字符串为所述至少一个明文字符串中的任一个,在接收到所述用户端发出的获取第一密文字符串的请求时,所述第二密文字符串用于对所述用户端进行验证。
8.根据权利要求7所述的方法,其特征在于,还包括:
接收来自用户端的获取第一密文字符串的请求,所述请求中包括所述用户端的第三预设密钥;
从利用所述第三预设密钥解密第一密文字符串的解密结果中确定第四字符串;
将所述第四字符串发送给所述加密机,以使所述加密机基于所述第二预设密钥加密所述第四字符串,得到第四密文字符串;
如果所述第四密文字符串与所述第二密文字符串一致,则将所述第一密文字符串发送给所述用户端。
9.一种计算机可读存储介质,所述存储介质承载有一个或者多个计算机程序,其特征在于,所述一个或者多个计算机程序被处理器执行时实现如权利要求1至8中任一项所述方法的步骤。
10.一种电子设备,至少包括存储器和处理器,所述存储器上存储有应用程序,其特征在于,所述处理器在执行所述存储器上的应用行程序时实现如权利要求1-8中任一项所述的方法的步骤。
CN202110324958.6A 2021-03-26 2021-03-26 数据加密方法、解密方法、密钥管理方法、介质和设备 Active CN113079002B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110324958.6A CN113079002B (zh) 2021-03-26 2021-03-26 数据加密方法、解密方法、密钥管理方法、介质和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110324958.6A CN113079002B (zh) 2021-03-26 2021-03-26 数据加密方法、解密方法、密钥管理方法、介质和设备

Publications (2)

Publication Number Publication Date
CN113079002A true CN113079002A (zh) 2021-07-06
CN113079002B CN113079002B (zh) 2022-04-05

Family

ID=76610695

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110324958.6A Active CN113079002B (zh) 2021-03-26 2021-03-26 数据加密方法、解密方法、密钥管理方法、介质和设备

Country Status (1)

Country Link
CN (1) CN113079002B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115408675A (zh) * 2022-11-01 2022-11-29 湖北芯擎科技有限公司 eFuse Key的生成方法、装置、设备及存储介质
CN116074826A (zh) * 2023-03-07 2023-05-05 深圳市好盈科技股份有限公司 一种应用于电动滑板车的通讯数据加解密方法和装置

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1633062A (zh) * 2004-12-31 2005-06-29 北京中星微电子有限公司 一种媒体内容安全传输方法
CN106814980A (zh) * 2015-11-27 2017-06-09 北京奇虎科技有限公司 一种云打印方法、设备、服务器和终端设备
CN108629207A (zh) * 2017-03-22 2018-10-09 温科尼克斯多夫国际有限公司 基于外围设备的信息生成加密密钥的系统和方法
CN109150903A (zh) * 2018-09-25 2019-01-04 平安科技(深圳)有限公司 一种账号管理方法、装置、存储介质和终端设备
CN109617677A (zh) * 2018-11-20 2019-04-12 深圳壹账通智能科技有限公司 基于对称加密的秘钥丢失找回方法及相关设备
CN109936546A (zh) * 2017-12-18 2019-06-25 北京三快在线科技有限公司 数据加密存储方法和装置以及计算设备
US20190281116A1 (en) * 2016-11-29 2019-09-12 Huawei Technologies Co., Ltd. Data Transmission Method, Apparatus, and System, and Storage Medium
CN110417543A (zh) * 2018-04-27 2019-11-05 腾讯科技(深圳)有限公司 一种数据加密方法、装置和存储介质

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1633062A (zh) * 2004-12-31 2005-06-29 北京中星微电子有限公司 一种媒体内容安全传输方法
CN106814980A (zh) * 2015-11-27 2017-06-09 北京奇虎科技有限公司 一种云打印方法、设备、服务器和终端设备
US20190281116A1 (en) * 2016-11-29 2019-09-12 Huawei Technologies Co., Ltd. Data Transmission Method, Apparatus, and System, and Storage Medium
CN108629207A (zh) * 2017-03-22 2018-10-09 温科尼克斯多夫国际有限公司 基于外围设备的信息生成加密密钥的系统和方法
CN109936546A (zh) * 2017-12-18 2019-06-25 北京三快在线科技有限公司 数据加密存储方法和装置以及计算设备
CN110417543A (zh) * 2018-04-27 2019-11-05 腾讯科技(深圳)有限公司 一种数据加密方法、装置和存储介质
CN109150903A (zh) * 2018-09-25 2019-01-04 平安科技(深圳)有限公司 一种账号管理方法、装置、存储介质和终端设备
CN109617677A (zh) * 2018-11-20 2019-04-12 深圳壹账通智能科技有限公司 基于对称加密的秘钥丢失找回方法及相关设备

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115408675A (zh) * 2022-11-01 2022-11-29 湖北芯擎科技有限公司 eFuse Key的生成方法、装置、设备及存储介质
CN115408675B (zh) * 2022-11-01 2023-02-07 湖北芯擎科技有限公司 eFuse Key的生成方法、装置、设备及存储介质
CN116074826A (zh) * 2023-03-07 2023-05-05 深圳市好盈科技股份有限公司 一种应用于电动滑板车的通讯数据加解密方法和装置
CN116074826B (zh) * 2023-03-07 2023-06-23 深圳市好盈科技股份有限公司 一种应用于电动滑板车的通讯数据加解密方法和装置

Also Published As

Publication number Publication date
CN113079002B (zh) 2022-04-05

Similar Documents

Publication Publication Date Title
US9673975B1 (en) Cryptographic key splitting for offline and online data protection
US20190140844A1 (en) Identity-linked authentication through a user certificate system
CN107294937B (zh) 基于网络通信的数据传输方法、客户端及服务器
US11102191B2 (en) Enabling single sign-on authentication for accessing protected network services
US9020149B1 (en) Protected storage for cryptographic materials
KR20180114182A (ko) 비밀 공유를 위한 타원 곡선 암호를 사용하는 개인용 장치 보안
CN110868291B (zh) 一种数据加密传输方法、装置、系统及存储介质
CN107920052B (zh) 一种加密方法及智能装置
CN108199847B (zh) 数字安全处理方法、计算机设备及存储介质
CN108809633B (zh) 一种身份认证的方法、装置及系统
US11757625B2 (en) Multi-factor-protected private key distribution
CN110611657A (zh) 一种基于区块链的文件流处理的方法、装置及系统
CN108964922A (zh) 移动终端令牌激活方法、终端设备及服务器
CN106533677B (zh) 一种用户登录方法、用户终端及服务器
US20220014354A1 (en) Systems, methods and devices for provision of a secret
CN113079002B (zh) 数据加密方法、解密方法、密钥管理方法、介质和设备
CN102404337A (zh) 数据加密方法和装置
US10785193B2 (en) Security key hopping
CN115276978A (zh) 一种数据处理方法以及相关装置
CN103592927A (zh) 一种通过license绑定产品服务器及业务功能的方法
CN114154181A (zh) 基于分布式存储的隐私计算方法
CN114553557B (zh) 密钥调用方法、装置、计算机设备和存储介质
CN113726515A (zh) 一种基于ukey的密钥处理方法、存储介质及电子设备
US10313315B2 (en) Ensuring information security in data transfers by utilizing proximity keys
CN114598478B (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
GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 100193 5th floor 510, No. 5 Building, East Yard, No. 10 Wangdong Road, Northwest Haidian District, Beijing

Patentee after: Beijing Shendun Technology Co.,Ltd.

Address before: 100193 5th floor 510, No. 5 Building, East Yard, No. 10 Wangdong Road, Northwest Haidian District, Beijing

Patentee before: BEIJING SENSESHIELD TECHNOLOGY Co.,Ltd.