CN112287366A - 数据加密方法、装置、计算机设备和存储介质 - Google Patents
数据加密方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN112287366A CN112287366A CN202011179708.XA CN202011179708A CN112287366A CN 112287366 A CN112287366 A CN 112287366A CN 202011179708 A CN202011179708 A CN 202011179708A CN 112287366 A CN112287366 A CN 112287366A
- Authority
- CN
- China
- Prior art keywords
- secret key
- block
- encrypted
- data
- encryption
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
Abstract
本申请涉及区块链技术,提供一种数据加密方法、装置、计算机设备和存储介质。所述方法包括:接收加密请求,加密请求包括待加密数据和第一秘钥;获取第一秘钥携带的加密规则,基于加密规则对第一秘钥进行分块,得到多个第一秘钥块;基于各第一秘钥块对待加密数据进行分块加密,得到加密数据块;根据各加密数据块中各字节的原始顺序,对各加密数据块进行拼接,得到加密数据。其中,加密数据和加密数据块可存储于区块链中。采用本方法能够提高安全性和效率。
Description
技术领域
本申请涉及信息加密技术领域,特别是涉及一种数据加密方法、装置、计算机设备和存储介质。
背景技术
由于工业4.0新时代是利用信息化技术促进产业变革的时代,也就是智能化时代。因此,随着新时代的到来,促使了各行各业正在进行数字化业务的转型。通过新一代信息技术,例如人工智能、5G、大数据、云计算、区块链等对原有业务模式进行改造升级。而随着新一代信息技术的深度利用,伴随而来的信息安全风险也将愈发突出。为了提高安全性,传统大多采用数据加密的方式来保护数据不被非法窃取。
然而,由于现有加密所使用的秘钥大多长度都较短,使得秘钥容易被破解,从而降低了安全性。而若采用长秘钥又会加大运算量,导致效率降低。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高安全性和效率的数据加密方法、装置、计算机设备和存储介质。
一种数据加密方法,其特征在于,所述方法包括:
接收加密请求,所述加密请求包括待加密数据和第一秘钥;
获取所述第一秘钥携带的加密规则,基于所述加密规则对所述第一秘钥进行分块,得到多个第一秘钥块;
基于各所述第一秘钥块对所述待加密数据进行分块加密,得到加密数据块;
根据各所述加密数据块中各字节的原始顺序,对各所述加密数据块进行拼接,得到加密数据。
在其中一个实施例中,所述获取所述第一秘钥携带的加密规则,基于所述加密规则对所述第一秘钥进行分块,得到多个第一秘钥块,包括:
从所述第一秘钥的第一位字节开始获取预设位数的字节,得到加密规则;
根据所述加密规则中的各字节,确定首块字节数、分块方式和分块参数;
基于所述首块字节数、所述分块方式和所述分块参数对所述第一秘钥进行分块,得到多个第一秘钥块。
在其中一个实施例中,所述基于所述首块字节数、所述分块方式和所述分块参数对所述第一秘钥进行分块,得到多个第一秘钥块,包括:
将所述第一秘钥中所述预设位数的字节去除后,从当前的第一位字节开始获取与所述首块字节数相等的字节,得到首块秘钥块和剩余字节秘钥;
根据所述分块方式以及所述分块参数,对所述剩余字节秘钥进行分块,得到多个剩余秘钥块。
在其中一个实施例中,所述分块方式包括等差分块或者等比分块,所述分块参数包括公差或公比;所述根据所述分块方式以及所述分块参数,对所述剩余字节秘钥进行分块,得到多个剩余秘钥块,包括:
基于所述公差,对所述剩余字节秘钥进行所述等差分块,得到多个剩余秘钥块;或
基于所述公比,对所述剩余字节秘钥进行所述等比分块,得到多个剩余秘钥块。
在其中一个实施例中,所述基于各所述第一秘钥块对所述待加密数据进行分块加密,得到加密数据块,包括:
基于各所述第一秘钥块的字节数,对所述待加密数据进行分块,得到字节数与各所述第一秘钥块一一对应的待加密数据块;
利用加密算法以及各所述第一秘钥块,分别对各所述第一秘钥块对应的所述待加密数据块进行加密,得到多个加密数据块。
在其中一个实施例中,所述基于各所述第一秘钥块的字节数,对所述待加密数据进行分块,得到与各所述第一秘钥块一一对应的待加密数据块,包括:
当所述第一秘钥块的总字节数小于所述待加密数据块的总字节数时,循环利用各所述第一秘钥块的字节数对所述待加密数据进行分块,得到字节数与各所述第一秘钥块一一对应的待加密数据块。
在其中一个实施例中,所述方法还包括:
从所述加密请求中获取与所述第一秘钥携带相同加密规则的第二秘钥;
基于所述加密规则对所述第二秘钥进行分块,得到多个第二秘钥块;
所述根据各所述第一秘钥块对所述待加密数据进行分块加密,得到加密数据块,包括:
根据所述加密规则确定加密轮数;
交替使用各所述第一秘钥块和各所述第二秘钥块对所述待加密数据进行循环的分块加密,直至交替的次数等于所述加密轮数为止,得到加密数据块。
一种数据加密装置,所述装置包括:
接收模块,用于接收加密请求,所述加密请求包括待加密数据和第一秘钥;
分块模块,用于获取所述第一秘钥携带的加密规则,基于所述加密规则对所述第一秘钥进行分块,得到多个第一秘钥块;
加密模块,用于基于各所述第一秘钥块对所述待加密数据进行分块加密,得到加密数据块;
拼接模块,用于根据各所述加密数据块中各字节的原始顺序,对各所述加密数据块进行拼接,得到加密数据。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述数据加密方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述数据加密方法的步骤。
上述数据加密方法、装置、计算机设备和存储介质,在接收到包括待加密数据和第一秘钥的加密请求之后,获取第一秘钥携带的加密规则,从而基于加密规则对第一秘钥进行分块,得到多个第一秘钥块,进而基于各第一秘钥块对待加密数据进行分块加密得到加密数据块后,按照加密数据块中各字节的原始顺序拼接各加密数据块得到加密数据。该方法由于通过对秘钥进行分块后,再利用分块的秘钥块对数据进行分块加密,即使是采用长秘钥也可以快速的完成加密工作,保证安全性的同时又提高了效率。
附图说明
图1为一个实施例中数据加密方法的应用环境图;
图2为一个实施例中数据加密方法的流程示意图;
图3为一个实施例中获取第一秘钥携带的加密规则,基于加密规则对第一秘钥进行分块,得到多个第一秘钥块步骤的流程示意图;
图4为一个实施例中基于各第一秘钥块对待加密数据进行分块加密,得到加密数据块步骤的流程示意图;
图5为一个实施例中数据加密装置的结构框图;
图6为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的数据加密方法,可以应用于如图1所示的应用环境中。其中,终端102与服务器104通过网络进行通信。服务器104接收终端102发送的加密请求,加密请求包括待加密数据和第一秘钥;服务器104获取第一秘钥携带的加密规则,基于加密规则对第一秘钥进行分块,得到多个第一秘钥块;服务器104基于各第一秘钥块对待加密数据进行分块加密,得到加密数据块;服务器104根据各加密数据块中各字节的原始顺序,对各加密数据块进行拼接,得到加密数据。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种数据加密方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:
步骤S202,接收加密请求,加密请求包括待加密数据和第一秘钥。
其中,加密请求是用于请求进行加密处理的指令。待加密数据是指需要进行加密的数据。第一秘钥是用于进行加密的秘钥,包括加密所用的秘密信息。
具体地,当有对数据进行加密的需求时,可以通过终端向服务器发送加密请求,请求服务器进行加密处理。并且,通过终端向服务器发送加密请求的同时,可以将待加密数据和第一秘钥携带在加密请求中发送给服务器,便于服务器获取需要加密的数据以及用于加密的秘钥。
另外,包括在加密请求中的待加密数据和第一秘钥也可以是数据标识,服务器通过该唯一数据标识主动去查询和获取需要加密的待加密数据和加密所用的第一秘钥。
步骤S204,获取第一秘钥携带的加密规则,基于加密规则对第一秘钥进行分块,得到多个第一秘钥块。
其中,加密规则是加密时所需要遵循的规则,携带在第一秘钥中。分块是指将完整的数据划分为多个数据块,具体到本实施例,即将完整的第一秘钥划分为多个第一秘钥块,多个第一秘钥块能够组成完整的第一秘钥。
具体地,服务器获取包括待加密数据和第一秘钥的加密请求之后,响应该加密请求。服务器首先从第一秘钥中获取秘钥所携带的加密规则。然后,服务器基于加密规则对第一秘钥进行分块。加密规则可以是以字节的形式存在于第一秘钥中,服务器从加密规则中获取作为加密规则的字节。进而,服务器根据字节所表示的意义确定分块方式和分块参数。服务器根据分块方式和分块参数对第一秘钥进行分块,得到第一秘钥块。例如,当获取的字节表示分块方式为均分时,那么字节表示的分块参数即为均分对应的均分字节数。服务器则可以按照均分字节数对第一秘钥进行均匀分块,所得到的每一块第一秘钥块所包括的字节的数量相同。
步骤S206,基于各第一秘钥块对待加密数据进行分块加密,得到加密数据块。
其中,分块加密是指利用各个第一秘钥块分别对部分的待加密数据进行加密。例如,第一秘钥块1对一部分待加密数据进行加密,第一秘钥2对未加密的部分加密数据进行加密。
具体地,待加密数据是由多个字节组成的数据,而由于本实施例的加密是分别利用秘钥对待加密数据中的每个字节进行加密。因此,当利用多个第一秘钥块对待加密数据进行分块加密时,可以基于各个第一秘钥块的字节数对待加密数据进行分块,得到待加密数据块。也就是说,待加密数据块中字节的数量与各个第一秘钥块中字节的数量相等。然后,服务器再利用各个第一秘钥块分别对其对应的待加密数据块进行加密,从而得到多个加密数据块。
步骤S208,根据各加密数据块中各字节的原始顺序,对各加密数据块进行拼接,得到加密数据。
其中,加密数据块中各字节的原始顺序是指该字节未加密之前,在待加密数据中的顺序。假设,待加密数据包括字节12345,当字节4被加密为#之后,该密文#原始的字节顺序就是指4在12345中的顺序,即第四位。
具体地,为了保证加密后数据的准确性,即为了保证数据加密后该加密数据中各字节的顺序与数据未加密之前各字节的顺序相同,服务器将加密后得到的各个加密数据块按照字节的原始顺序进行拼接,得到完整的加密数据。例如,假设完整的待加密数据包括字节1、2、3、4、5,以及假设1、2、3、4、5各字节加密后为一一对应的密文为z、x、c、v、b。而若基于各秘钥块对12345进行分块加密后,所得到的加密数据块包括zx、cv和b三个块。则当进行拼接时,按照x、c、v以及b在12345中的原始顺序进行拼接。由于x对应的2位于c对应的3之前,v对应的4位于b对应的5之前,所以拼接之后是zxcvb。
需要强调的是,为进一步保证上述加密数据、加密数据块的安全性,上述加密数据和加密数据块还可以存储于一区块链的节点中。
上述数据加密方法,在接收到包括待加密数据和第一秘钥的加密请求之后,获取第一秘钥携带的加密规则,从而基于加密规则对第一秘钥进行分块,得到多个第一秘钥块,进而基于各第一秘钥块对待加密数据进行分块加密得到加密数据块后,按照加密数据块中各字节的原始顺序拼接各加密数据块得到加密数据。该方法由于通过对秘钥进行分块后,再利用分块的秘钥块对数据进行分块加密,使得即使是采用长秘钥也可以快速的完成加密工作,保证安全性的同时又提高了效率。
在一个实施例中,如图3所示,步骤S204,包括:
步骤S302,从第一秘钥的第一位字节开始获取预设位数的字节,得到加密规则。
其中,预设位数是预先设定的,用于表示秘钥中有多少位的字节是作为加密规则的。因此,服务器可以通过获取预设位数的字节得到加密规则。
具体地,当服务器获取加密规则时,由于已经预先配置预设位数告知服务器秘钥中有多少位的字节是加密规则。所以,服务器直接从第一秘钥的第一位开始,获取预设位数字节,从而得到加密规则。例如,假设预设位数为9位,则获取秘钥前9位的字节,这9个字节组成加密规则。
应当理解的是,本实施例为了便于数据处理,优选将作为加密规则的字节呈连续放置且从秘钥的第一位开始,但是本实施例不限定于此。作为加密规则的字节在秘钥中的位置可以设置在任意位置。在本实施例中,通过将加密规则携带于秘钥中,无需服务器重新请求或者查询加密规则,保证服务器快速的获取到加密规则,提高效率。
步骤S304,根据加密规则中的各字节,确定首块字节数、分块方式和分块参数。
其中,首块字节数是指分块时,第一块秘钥块所包括的字节的数量。分块方式是指分块的方式,包括但不限于均分分块、等差分块和等比分块。分块参数是用于辅助分块的参数,基于不同的分块方式,分块参数所表示的意义不同。例如,当分块方式为均分分块时,分块参数为均分字节数。当分块方式为等差分块时,分块参数为等差。而当分块方式为等比分块时,分块参数为等比。
具体地,当服务器从第一秘钥中获取到预设位数的字节,得到加密规则之后,根据加密规则中各字节的预设排序对预设位数的字节进行划分,分别得到表示首块字节数的字节、表示分块方式的字节以及表示分块参数的字节。例如,假设获取到前9位字节组成的加密规则。若预设排序为第1-3位的字节表示首块字节数,第4位的字节表示分块方式,以及第5-8位的字节表示分块参数。服务器则从9位字节中划分出第1-3位、第4位以及第5-8位的字节。然后,服务器根据第1-3位字节所对应的数值确定首块字节数,比如第1-3位的字节对应数值30,则首块秘钥块的字节的数量为30个字节。服务器根据第4位字节确定分块方式,比如第4位的字节是等差分块对应的字节,则分块方式为等差分块。而根据第5-8位的字节确定的数值即为分块参数。
另外,当根据加密规则中的字节确定首块字节数和分块参数之后,还可以对首块字节数和分块参数进行预处理以增加加密的复杂度。以首块字节数为例,若第1-3位的字节对应数值30,而首块字节数的预处理为进行平方计算,则取30的平方作为最终的首块字节数。那么,首块秘钥块的字节的数量实际上为900个字节。通过预处理,即使加密规则中各字节所表示的意义被破解,也无法得到准确的加密规则,进一步保证了加密的安全性。
步骤S306,基于首块字节数、分块方式和分块参数对第一秘钥进行分块,得到多个第一秘钥块。
具体地,服务器首先根据首块字节数从第一秘钥中划分出首块秘钥块,剩余未被划分为第一块秘钥块的字节组成剩余字节秘钥。然后,再基于分块方式和分块参数对剩余字节秘钥进行划分,得到多个剩余秘钥块。由首块秘钥块和各个剩余秘钥块组成第一秘钥对应的第一秘钥块。
在一个实施例中,步骤S306,包括:将第一秘钥中预设位数的字节去除后,从当前的第一位字节开始获取与首块字节数相等的字节,得到首块秘钥块和剩余字节秘钥;根据分块方式以及分块参数,对剩余字节秘钥进行分块,得到多个剩余秘钥块。
其中,首块秘钥块是根据首块字节数划分出的第一块秘钥块,剩余秘钥块是根据分块方式和分块参数划分出的多个秘钥块。剩余秘钥字节是指去除预设位数的字节后的秘钥,可以理解为是去除作为加密规则的字节后的秘钥。
具体地,当得到首块字节数、分块方式和分块参数之后,为了避免作为加密规则的预设位数的字节影响秘钥的分块。服务器基于首块字节数对第一秘钥划分首块秘钥块时,将预设位数的字节从第一秘钥中去除或者忽略不计。从去除或者忽略预设位数的字节之后的第一位字节开始划分出与首块字节数相等的字节,得到首块秘钥块和剩余字节秘钥。例如,预设位数为九位字节,服务器去除前九位字节或者忽略前九位字节,从第十位开始获取与首块字节数相等的字节。假设首块字节数是包括6个字节,则是从第十位字节开始获取到第十五位字节为止,由这6个字节组成首块秘钥块。然后,将第一秘钥中未被去除和划分的剩余字节作为剩余字节秘钥,即第十五位之后的秘钥字节为剩余字节秘钥。进而服务器再利用分块方式和分块参数对剩余字节秘钥进行分块。
在一个实施例中,分块方式包括等差分块,分块参数包括公差。根据分块方式以及分块参数,对剩余字节秘钥进行分块,得到多个剩余秘钥块,包括:根据等差分块及公差,对剩余字节秘钥进行分块,得到剩余秘钥块。
具体地,当根据加密规则中表示分块方式的字节确定分块方式为等差分块时,那么加密规则中用于表示分块参数的字节即作为公差。当对剩余字节秘钥分块时,基于公差对剩余字节秘钥进行等差分块,得到多个剩余秘钥块。即,各个剩余秘钥块中所包括的字节的数量以该公差为差值呈等差数列,例如,第一块剩余秘钥块与第二块剩余秘钥块之间的字节的数量的差等于第二块剩余秘钥块与第三块秘钥块之间的字节的数量的差。满足从第二块剩余秘钥块开始,每一块剩余秘钥块的字节的数量与它的前一块剩余秘钥块的字节的数量的差值等于同一个数值。
在另一个实施例中,分块方式包括等比分块,分块参数包括公比。根据分块方式以及分块参数,对剩余字节秘钥进行分块,得到多个剩余秘钥块,包括:根据等比分块及公比,对剩余字节秘钥进行分块,得到剩余秘钥块。
具体地,当根据加密规则中表示分块方式的字节确定分块方式为等比分块时,那么加密规则中用于表示分块参数的字节即作为公比。当对剩余字节秘钥分块时,基于公比对剩余字节秘钥进行等比分块,得到多个剩余秘钥块。即,各个剩余秘钥块中所包括的字节的数量以该公比呈等比数列,例如,第二块剩余秘钥块与第一块剩余秘钥块之间的字节的数量的比值等于第三块剩余秘钥块与第二块秘钥块之间的字节的数量的比值。满足从第二块剩余秘钥块开始,每一块剩余秘钥块的字节的数量与它的前一块剩余秘钥块的字节的数量的比值等于同一个数值。
另外,为了提高加密的效率,对剩余秘钥块进行分块时,无论是均分、等差分块还是等比分块,本实施例均优选按照从头到尾的顺序进行分块。以公差为2的等差数列为例,当预设位数为九位以及首块秘钥块为六位时,即从第十六位字节开始进行分块。假设第一块剩余秘钥块包括二位字节,那么第二块剩余秘钥块包括四位字节,第三块剩余秘钥块则包括六位字节,从而各块中的字节的数量呈现出以公差2为差值的等差数列。以及,由于进行等差分块和等比分块时,第一块剩余秘钥块中所划分的字节的数量决定后面各剩余秘钥块中所包括的字节的数量。因此,为了保证划分出的各个剩余秘钥块中的字节的数量能够尽可能完美的呈现为等差数列和等比数列,服务器可以根据剩余字节秘钥中字节的总数量去决定第一块剩余秘钥块所要包括的字节的数量。
本实施例中,通过等比和等差的方式进行分块,提高了秘钥的安全性。
在一个实施例中,如图4所示,步骤S206,包括:
步骤S402,基于各第一秘钥块的字节数,对待加密数据进行分块,得到字节数与各第一秘钥块一一对应的待加密数据块。
步骤S404,利用加密算法以及各第一秘钥块,分别对各第一秘钥块对应的待加密数据块进行加密,得到多个加密数据块。
其中,加密算法是用于进行加密所用的算法,本实施例优选AES(AdvancedEncryption Standard,高级加密标准)算法。AES算法包括字节代换、行移位、列混合以及轮秘钥加等处理过程。
具体地,当基于各个第一秘钥块的字节数对待加密数据进行分块加密时,首先基于各第一秘钥块的字节数(字节的数量),对待加密数据进行分块,得到字节数与各第一秘钥块一一对应的待加密数据块。例如,当各个第一秘钥块中包括的字节的数量分别为2、4、6、8时,则将待加密数据进行分块所得到的待加密数据块为包括2、4、6、8位字节的待加密数据块。然后,以字节数量为基准,各第一秘钥块与各待加密数据块一一对应。例如,字节数量为2的第一秘钥块作为字节数量为2的待加密数据块的秘钥,进而基于加密算法和各第一秘钥块为对应的待加密数据块进行加密。
进一步的,当第一秘钥块的总字节数小于待加密数据块的总字节数时,循环利用各第一秘钥块的字节数对待加密数据进行分块,得到字节数与各第一秘钥块一一对应的待加密数据块。
具体地,当各个第一秘钥块的总字节数大于或等于待加密数据的总字节数时,表示基于各个第一秘钥块的字节数对待加密数据进行分块只需要一轮就能完成待加密数据的分块。一轮可以理解为每块第一秘钥块只需要使用一次就能完成待加密数据的分块。而当各个第一秘钥块的总字节数小于待加密数据的总字节数时,那分别基于各个第一秘钥块的字节数对待加密数据进行分块之后,是会存在有剩余的未被分块的待加密数据。也就是基于各个第一秘钥块的字节数对待加密数据进行分块一轮是无法完成的,则可以再次利用各个第一秘钥块对剩余的待加密数据进行分块,达到循环使用各个第一秘钥块进行分块。
另外,为了便于后续的数据拼接,服务器对待加密数据分块时,本实施例均优选按照从头到尾的顺序进行分块。比如,假设第一秘钥块包括字节数为2、4、6、8的四个秘钥块,而对待加密数据进行分块时,从待加密数据的第一位字节开始进行分块,得到包括字节数2、4、6、8的待加密数据块。而当待加密数据的总字节数大于第一秘钥块的总字节数,即基于包括字节数为2、4、6、8的四个秘钥块分块得到包括字节数2、4、6、8的四个待加密数据块之后还有剩余未分块的待加密数据,则循环使用包括字节数为2、4、6、8的四个秘钥块继续对剩余未分块的待加密数据进行分块,再次得到包括字节数2、4、6或8的待加密数据块。也就是说,循环的进行分块时,一块秘钥块可能对应2块或2块以上的待加密数据快。当对待加密数据块进行加密时,则需要对该秘钥块使用到2次或2次以上。
本实施例中,通过分块后的各秘钥块对待加密数据进行分块后再进行加密,在减少运算量的同时还能加快处理速度,从而提高效率。
在一个实施例中,提供另一种数据加密方法,包括:从加密请求中获取与第一秘钥携带相同加密规则的第二秘钥;基于加密规则对第二秘钥进行分块,得到多个第二秘钥块;根据各第一秘钥块对所述待加密数据进行分块加密,得到加密数据块,包括:根据加密规则确定加密轮数;交替使用各第一秘钥块和各第二秘钥块对待加密数据进行循环的分块加密,直至交替的次数等于加密轮数为止,得到加密数据块。
其中,第二秘钥同样是携带在加密请求中,用于对待加密数据进行加密的秘钥,但是包括与第一秘钥不同的秘密信息。加密轮数是预设的表示加密交替次数的值。加密轮数同样可以以字节的形式携带在秘钥中,即加密规则可以包括首块字节数、分块方式、分块参数以及加密轮数。例如,获取九位字节作为加密规则,前八位的字节可以确定首块字节数、分块方式、分块参数,第九位字节可以确定加密轮数。
具体地,当加密信息包括第二秘钥时,服务器确定本次加密是需要基于不同的秘钥进行的多轮加密。服务器则从加密请求中获取第一秘钥的同时获取到第二秘钥。与第一秘钥的分块原理相同,服务器基于同样的加密规则对第二秘钥进行分块,得到多个第二秘钥块。然后,以从加密规则中获取的加密轮数为约束,交替使用第一秘钥块和第二秘钥块对待加密数据进行分块加密。交替使用可以理解为是,利用各个第一秘钥块对待加密数据进行分块加密之后,再利用各个第二秘钥块对已经经历过各个第一秘钥块加密的待加密数据进行二次加密。二次加密完成之后又可以返回利用第一秘钥块进行三次加密,直至满足加密轮数为止。
例如,假设加密轮数是三轮,交替可以是第一轮首先采用第一个秘钥对应的多个第一秘钥块对待加密数据进行分块加密,得到加密数据块。然后,第二轮加密在使用第二个秘钥的多个第二秘钥块对第一轮得到的加密数据块进行第二轮加密。最后,第三轮加密返回采用第一个秘钥的多个第一秘钥块对第二轮加密后的加密数据块进行第三次加密。应当理解的是,若各个第一秘钥块与各个第二秘钥块的块数量以及各块所包括的字节数一一对应,则当采用第二秘钥块对第一秘钥块加密后的加密数据块进行二次加密时,可以直接基于第二秘钥块的字节数选取对应的加密数据块进行加密。而若各个第一秘钥块与各个第二秘钥块的块数量或者各块所包括的字节数不能完全一一对应,则当采用第二秘钥块对第一秘钥块加密后的加密数据块进行二次加密时,先按照加密数据块中字节的原始顺序拼接得到加密数据。再利用各个第二秘钥块对拼接后的加密数据进行二次分块加密。其中,秘钥的数量不限于2,加密轮数也不限于3,可以根据实际情况设定。
本实施例中,通过多个不同的秘钥进行交替加密,当窃取破解时则需要同时获取到多个秘钥,加大了破解的难度,从而提高了安全性。
应该理解的是,虽然图2-4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-4中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图5所示,提供了一种数据加密装置,包括:接收模块502、分块模块504、加密模块506和拼接模块508,其中:
接收模块502,用于接收加密请求,加密请求包括待加密数据和第一秘钥。
分块模块504,用于获取第一秘钥携带的加密规则,基于加密规则对第一秘钥进行分块,得到多个第一秘钥块。
加密模块506,用于基于各第一秘钥块对待加密数据进行分块加密,得到加密数据块。
拼接模块508,用于根据各加密数据块中各字节的原始顺序,对各加密数据块进行拼接,得到加密数据。
在一个实施例中,分块模块504还用于从第一秘钥的第一位字节开始获取预设位数的字节,得到加密规则;根据加密规则中的各字节,确定首块字节数、分块方式和分块参数;基于首块字节数、分块方式和分块参数对第一秘钥进行分块,得到多个第一秘钥块。
在一个实施例中,分块模块504还用于将第一秘钥中预设位数的字节去除后,从当前的第一位字节开始获取与首块字节数相等的字节,得到首块秘钥块和剩余字节秘钥;根据分块方式以及分块参数,对剩余字节秘钥进行分块,得到多个剩余秘钥块。
在一个实施例中,分块方式包括等差分块或者等比分块,分块参数包括公差或公比;分块模块504还用于基于公差,对剩余字节秘钥进行等差分块,得到多个剩余秘钥块;或基于公比,对剩余字节秘钥进行等比分块,得到多个剩余秘钥块。
在一个实施例中,加密模块506还用于基于各第一秘钥块的字节数,对待加密数据进行分块,得到字节数与各所述第一秘钥块一一对应的待加密数据块;利用加密算法以及各第一秘钥块,分别对各第一秘钥块对应的待加密数据块进行加密,得到多个加密数据块。
在一个实施例中,加密模块506还用于当第一秘钥块的总字节数小于待加密数据块的总字节数时,循环利用各第一秘钥块的字节数对待加密数据进行分块,得到字节数与各第一秘钥块一一对应的待加密数据块。
在一个实施例中,获取模块502还用于从加密请求中获取与第一秘钥携带相同加密规则的第二秘钥;分块模块504还用于基于加密规则对第二秘钥进行分块,得到多个第二秘钥块;加密模块506还用于根据加密规则确定加密轮数;交替使用各第一秘钥块和各第二秘钥块对待加密数据进行循环的分块加密,直至交替的次数等于加密轮数为止,得到加密数据块。
关于数据加密装置的具体限定可以参见上文中对于数据加密方法的限定,在此不再赘述。上述数据加密装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储待加密数据、加密规则以及秘钥等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据加密方法。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
接收加密请求,加密请求包括待加密数据和第一秘钥;
获取第一秘钥携带的加密规则,基于加密规则对第一秘钥进行分块,得到多个第一秘钥块;
基于各第一秘钥块对待加密数据进行分块加密,得到加密数据块;
根据各加密数据块中各字节的原始顺序,对各加密数据块进行拼接,得到加密数据。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:从第一秘钥的第一位字节开始获取预设位数的字节,得到加密规则;根据加密规则中的各字节,确定首块字节数、分块方式和分块参数;基于首块字节数、分块方式和分块参数对第一秘钥进行分块,得到多个第一秘钥块。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:将第一秘钥中预设位数的字节去除后,从当前的第一位字节开始获取与首块字节数相等的字节,得到首块秘钥块和剩余字节秘钥;根据分块方式以及分块参数,对剩余字节秘钥进行分块,得到多个剩余秘钥块。
在一个实施例中,分块方式包括等差分块或者等比分块,分块参数包括公差或公比;处理器执行计算机程序时还实现以下步骤:基于公差,对剩余字节秘钥进行等差分块,得到多个剩余秘钥块;或基于公比,对剩余字节秘钥进行等比分块,得到多个剩余秘钥块。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:基于各第一秘钥块的字节数,对待加密数据进行分块,得到字节数与各所述第一秘钥块一一对应的待加密数据块;利用加密算法以及各第一秘钥块,分别对各第一秘钥块对应的待加密数据块进行加密,得到多个加密数据块。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:当第一秘钥块的总字节数小于待加密数据块的总字节数时,循环利用各第一秘钥块的字节数对待加密数据进行分块,得到字节数与各第一秘钥块一一对应的待加密数据块。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:从加密请求中获取与第一秘钥携带相同加密规则的第二秘钥;基于加密规则对第二秘钥进行分块,得到多个第二秘钥块;根据加密规则确定加密轮数;交替使用各第一秘钥块和各第二秘钥块对待加密数据进行循环的分块加密,直至交替的次数等于加密轮数为止,得到加密数据块。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
接收加密请求,加密请求包括待加密数据和第一秘钥;
获取第一秘钥携带的加密规则,基于加密规则对第一秘钥进行分块,得到多个第一秘钥块;
基于各第一秘钥块对待加密数据进行分块加密,得到加密数据块;
根据各加密数据块中各字节的原始顺序,对各加密数据块进行拼接,得到加密数据。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:从第一秘钥的第一位字节开始获取预设位数的字节,得到加密规则;根据加密规则中的各字节,确定首块字节数、分块方式和分块参数;基于首块字节数、分块方式和分块参数对第一秘钥进行分块,得到多个第一秘钥块。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:将第一秘钥中预设位数的字节去除后,从当前的第一位字节开始获取与首块字节数相等的字节,得到首块秘钥块和剩余字节秘钥;根据分块方式以及分块参数,对剩余字节秘钥进行分块,得到多个剩余秘钥块。
在一个实施例中,分块方式包括等差分块或者等比分块,分块参数包括公差或公比;计算机程序被处理器执行时还实现以下步骤:基于公差,对剩余字节秘钥进行等差分块,得到多个剩余秘钥块;或基于公比,对剩余字节秘钥进行等比分块,得到多个剩余秘钥块。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:基于各第一秘钥块的字节数,对待加密数据进行分块,得到字节数与各所述第一秘钥块一一对应的待加密数据块;利用加密算法以及各第一秘钥块,分别对各第一秘钥块对应的待加密数据块进行加密,得到多个加密数据块。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:当第一秘钥块的总字节数小于待加密数据块的总字节数时,循环利用各第一秘钥块的字节数对待加密数据进行分块,得到字节数与各第一秘钥块一一对应的待加密数据块。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:从加密请求中获取与第一秘钥携带相同加密规则的第二秘钥;基于加密规则对第二秘钥进行分块,得到多个第二秘钥块;根据加密规则确定加密轮数;交替使用各第一秘钥块和各第二秘钥块对待加密数据进行循环的分块加密,直至交替的次数等于加密轮数为止,得到加密数据块。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种数据加密方法,其特征在于,所述方法包括:
接收加密请求,所述加密请求包括待加密数据和第一秘钥;
获取所述第一秘钥携带的加密规则,基于所述加密规则对所述第一秘钥进行分块,得到多个第一秘钥块;
基于各所述第一秘钥块对所述待加密数据进行分块加密,得到加密数据块;
根据各所述加密数据块中各字节的原始顺序,对各所述加密数据块进行拼接,得到加密数据。
2.根据权利要求1所述的方法,其特征在于,所述获取所述第一秘钥携带的加密规则,基于所述加密规则对所述第一秘钥进行分块,得到多个第一秘钥块,包括:
从所述第一秘钥的第一位字节开始获取预设位数的字节,得到加密规则;
根据所述加密规则中的各字节,确定首块字节数、分块方式和分块参数;
基于所述首块字节数、所述分块方式和所述分块参数对所述第一秘钥进行分块,得到多个第一秘钥块。
3.根据权利要求2所述的方法,其特征在于,所述基于所述首块字节数、所述分块方式和所述分块参数对所述第一秘钥进行分块,得到多个第一秘钥块,包括:
将所述第一秘钥中所述预设位数的字节去除后,从当前的第一位字节开始获取与所述首块字节数相等的字节,得到首块秘钥块和剩余字节秘钥;
根据所述分块方式以及所述分块参数,对所述剩余字节秘钥进行分块,得到多个剩余秘钥块。
4.根据权利要求3所述的方法,其特征在于,所述分块方式包括等差分块或者等比分块,所述分块参数包括公差或公比;所述根据所述分块方式以及所述分块参数,对所述剩余字节秘钥进行分块,得到多个剩余秘钥块,包括:
基于所述公差,对所述剩余字节秘钥进行所述等差分块,得到多个剩余秘钥块;或
基于所述公比,对所述剩余字节秘钥进行所述等比分块,得到多个剩余秘钥块。
5.根据权利要求1所述的方法,其特征在于,所述基于各所述第一秘钥块对所述待加密数据进行分块加密,得到加密数据块,包括:
基于各所述第一秘钥块的字节数,对所述待加密数据进行分块,得到字节数与各所述第一秘钥块一一对应的待加密数据块;
利用加密算法以及各所述第一秘钥块,分别对各所述第一秘钥块对应的所述待加密数据块进行加密,得到多个加密数据块;所述加密数据块存储于区块链中。
6.根据权利要求5所述的方法,其特征在于,所述基于各所述第一秘钥块的字节数,对所述待加密数据进行分块,得到与各所述第一秘钥块一一对应的待加密数据块,包括:
当所述第一秘钥块的总字节数小于所述待加密数据块的总字节数时,循环利用各所述第一秘钥块的字节数对所述待加密数据进行分块,得到字节数与各所述第一秘钥块一一对应的待加密数据块。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
从所述加密请求中获取与所述第一秘钥携带相同加密规则的第二秘钥;
基于所述加密规则对所述第二秘钥进行分块,得到多个第二秘钥块;
所述根据各所述第一秘钥块对所述待加密数据进行分块加密,得到加密数据块,包括:
根据所述加密规则确定加密轮数;
交替使用各所述第一秘钥块和各所述第二秘钥块对所述待加密数据进行循环的分块加密,直至交替的次数等于所述加密轮数为止,得到加密数据块。
8.一种数据加密装置,其特征在于,所述装置包括:
接收模块,用于接收加密请求,所述加密请求包括待加密数据和第一秘钥;
分块模块,用于获取所述第一秘钥携带的加密规则,基于所述加密规则对所述第一秘钥进行分块,得到多个第一秘钥块;
加密模块,用于基于各所述第一秘钥块对所述待加密数据进行分块加密,得到加密数据块;
拼接模块,用于根据各所述加密数据块中各字节的原始顺序,对各所述加密数据块进行拼接,得到加密数据。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011179708.XA CN112287366A (zh) | 2020-10-29 | 2020-10-29 | 数据加密方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011179708.XA CN112287366A (zh) | 2020-10-29 | 2020-10-29 | 数据加密方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112287366A true CN112287366A (zh) | 2021-01-29 |
Family
ID=74373916
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011179708.XA Pending CN112287366A (zh) | 2020-10-29 | 2020-10-29 | 数据加密方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112287366A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113347001A (zh) * | 2021-05-31 | 2021-09-03 | 广州众诺电子技术有限公司 | 一种数据保护方法、服务器、系统、设备和介质 |
CN114221757A (zh) * | 2021-11-24 | 2022-03-22 | 厦门众合天元科技有限公司 | 一种基于区块链技术的隐私数据分布式存储方法 |
CN114401132A (zh) * | 2022-01-13 | 2022-04-26 | 平安普惠企业管理有限公司 | 数据加密方法、装置、设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104022872A (zh) * | 2014-04-09 | 2014-09-03 | 广州赛意信息科技有限公司 | 数据加密方法 |
CN108390759A (zh) * | 2018-03-21 | 2018-08-10 | 平安普惠企业管理有限公司 | 代码加密、解密方法、装置、计算机设备和存储介质 |
CN109145624A (zh) * | 2018-08-29 | 2019-01-04 | 广东工业大学 | 一种基于Hadoop平台的多混沌文本加密算法 |
CN109214209A (zh) * | 2018-09-06 | 2019-01-15 | 联动优势科技有限公司 | 一种数据发送方法、数据存储方法及装置 |
CN109726567A (zh) * | 2018-11-27 | 2019-05-07 | 南京邮电大学 | 一种基于全同态加密的移动目标加密方法 |
CN110633575A (zh) * | 2019-09-19 | 2019-12-31 | 腾讯云计算(北京)有限责任公司 | 数据加密方法、装置、设备及存储介质 |
CN111310222A (zh) * | 2019-11-20 | 2020-06-19 | 金现代信息产业股份有限公司 | 文件加密方法 |
-
2020
- 2020-10-29 CN CN202011179708.XA patent/CN112287366A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104022872A (zh) * | 2014-04-09 | 2014-09-03 | 广州赛意信息科技有限公司 | 数据加密方法 |
CN108390759A (zh) * | 2018-03-21 | 2018-08-10 | 平安普惠企业管理有限公司 | 代码加密、解密方法、装置、计算机设备和存储介质 |
CN109145624A (zh) * | 2018-08-29 | 2019-01-04 | 广东工业大学 | 一种基于Hadoop平台的多混沌文本加密算法 |
CN109214209A (zh) * | 2018-09-06 | 2019-01-15 | 联动优势科技有限公司 | 一种数据发送方法、数据存储方法及装置 |
CN109726567A (zh) * | 2018-11-27 | 2019-05-07 | 南京邮电大学 | 一种基于全同态加密的移动目标加密方法 |
CN110633575A (zh) * | 2019-09-19 | 2019-12-31 | 腾讯云计算(北京)有限责任公司 | 数据加密方法、装置、设备及存储介质 |
CN111310222A (zh) * | 2019-11-20 | 2020-06-19 | 金现代信息产业股份有限公司 | 文件加密方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113347001A (zh) * | 2021-05-31 | 2021-09-03 | 广州众诺电子技术有限公司 | 一种数据保护方法、服务器、系统、设备和介质 |
CN114221757A (zh) * | 2021-11-24 | 2022-03-22 | 厦门众合天元科技有限公司 | 一种基于区块链技术的隐私数据分布式存储方法 |
CN114401132A (zh) * | 2022-01-13 | 2022-04-26 | 平安普惠企业管理有限公司 | 数据加密方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110378139B (zh) | 一种数据密钥保护方法、系统及电子设备和存储介质 | |
CN112287366A (zh) | 数据加密方法、装置、计算机设备和存储介质 | |
CN113824728A (zh) | 一种基于数据加密的网络通信方法及系统 | |
CN113391880B (zh) | 一种分层双重哈希验证的可信镜像传输方法 | |
CN114157415A (zh) | 数据处理方法、计算节点、系统、计算机设备和存储介质 | |
US20190132117A1 (en) | Methods and systems for data protection | |
CN113254955A (zh) | 前向安全的连接关键词对称可搜索加密方法、系统及应用 | |
CN112766495A (zh) | 一种基于混合环境的深度学习模型隐私保护方法及装置 | |
CN110781140A (zh) | 区块链中数据签名的方法、装置、计算机设备及存储介质 | |
CN111404892B (zh) | 数据监管方法、装置和服务器 | |
CN112383522A (zh) | 函数参数数据传输加密方法、系统、装置及可读存储介质 | |
CN112580114B (zh) | 一种信息处理方法、装置、设备及存储介质 | |
US8862893B2 (en) | Techniques for performing symmetric cryptography | |
CN110611568B (zh) | 基于多种加解密算法的动态加解密方法、装置、及设备 | |
CN111079153B (zh) | 安全建模方法、装置、电子设备及存储介质 | |
CN115314228B (zh) | 无人机身份认证方法、装置和系统 | |
CN115865461B (zh) | 一种高性能计算集群中分发数据的方法和系统 | |
CN115361198A (zh) | 解密方法、加密方法、装置、计算机设备和存储介质 | |
WO2023070831A1 (zh) | 一种区块确认方法及装置 | |
CN113452508B (zh) | 数据加密方法、装置、设备和计算机可读存储介质 | |
CN115766244A (zh) | 车联网信息加密方法、装置、计算机设备和存储介质 | |
CN111931204A (zh) | 用于分布式系统的加密去重存储方法、终端设备 | |
Park et al. | A symmetric key based deduplicatable proof of storage for encrypted data in cloud storage environments | |
CN111475690A (zh) | 字符串的匹配方法和装置、数据检测方法、服务器 | |
KR102629617B1 (ko) | 속성 기반 접근 제어를 지원하는 실시간 IoT 데이터 공유 시스템 및 그 방법 |
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 |