CN109361507B - 一种数据加密方法及加密设备 - Google Patents
一种数据加密方法及加密设备 Download PDFInfo
- Publication number
- CN109361507B CN109361507B CN201811181854.9A CN201811181854A CN109361507B CN 109361507 B CN109361507 B CN 109361507B CN 201811181854 A CN201811181854 A CN 201811181854A CN 109361507 B CN109361507 B CN 109361507B
- Authority
- CN
- China
- Prior art keywords
- encryption
- algorithm
- engines
- mode
- groups
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key 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/0822—Key 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0625—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Pinball Game Machines (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种数据加密方法及加密设备,属于通信加密技术领域。本发明的数据加密方法中,加密模式和至少两个加密引擎内的加密算法均可选,基于选择的加密模式,利用应用密钥对原始数据使用至少两个加密引擎的加密算法进行加密运算,生成输出密文。本申请文件中,由于设置至少两个加密引擎,且两个加密引擎内的加密算法均可变化选择,从而解决由于加密算法单一而容易被破解的技术问题,同时由于两个加密引擎可以独立并发执行加密算法,从而解决了因为加密算法复杂度提升而引起加密效率降低的技术问题。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种数据加密方法及加密设备。
背景技术
现有技术中,比较常见的数据加密算法有DES(Data Encryption Standard,即数据加密标准)、AES(Advanced Encryption Standard,高级加密标准)、SM4算法、RSA算法、HASH算法和SM2算法等,通常基于硬件电路实现这些算法,以达到预防冷启动攻击、恶意代码攻击、暴力破解攻击的目的。
然而,单一的加密算法很容易被非法个人或组织利用暴力破解、侧信道攻击等方式破解。
发明内容
为了解决上述问题,本发明提供一种数据加密方法和加密设备。
为解决上述问题,本发明提供的数据加密方法,包括:
选择加密模式,并为至少两个加密引擎分别选择加密算法;
对原始密钥使用所述至少两个加密引擎的加密算法分别运算,获得至少两组应用密钥;
基于所述加密模式,利用所述至少两组应用密钥对原始数据使用所述至少两个加密引擎的加密算法进行运算,生成输出密文。
上述的数据加密方法,所述选择加密模式,并为至少两个加密引擎分别选择加密算法中,包括:
基于随机数或手动设置数的模式数据,从模式库中选择加密模式,并从每个加密引擎的算法库中分别选择所述加密算法,其中,所述模式库中具有至少一种加密模式,每个算法库中具有至少一种加密算法。
上述的数据加密方法,所述对原始密钥使用所述至少两个加密引擎的加密算法分别运算,获得至少两组应用密钥中,包括:对原始密钥使用所述至少两个加密引擎的加密算法分别运算,得到所述至少两组应用密钥,将所述至少两组应用密钥交叉应用或者择一应用,其中,应用于所述至少两个加密引擎的第一加密引擎的加密算法的密钥记为第一密钥,应用于所述至少两个加密引擎的第二加密引擎的加密算法的密钥记为第二密钥。
上述的数据加密方法,所述模式库中至少包括以下加密模式之一:串联混合模式、并联混合模式或串并联混合模式;每个所述算法库中至少包括以下加密算法之一:DES算法、AES算法、SM4算法、RSA算法、HASH算法或SM2算法。
上述的数据加密方法,所述基于所述加密模式,利用所述至少两组应用密钥对原始数据使用所述至少两个加密引擎的加密算法进行运算,生成输出密文中,包括:
当所述加密模式为串联混合模式时,包括:
利用所述第一密钥对原始数据使用所述至少两个加密引擎的第一加密引擎的加密算法,生成串联中间密文;
利用所述第二密钥对所述串联中间密文使用所述至少两个加密引擎的第二加密引擎的加密算法,生成输出密文;
当所述加密模式为并联混合模式时,包括:
将所述原始数据分为至少两组子数据,所述子数据的组数等于所述加密引擎的个数;
将每一组所述应用密钥、每一个所述加密引擎的所述加密算法与每一组所述子数据一一对应,利用每一组所述应用密钥对每一组所述子数据使用对应的所述加密算法进行加密运算,生成至少两组中间密文;
整合所述至少两组的中间密文,生成输出密文。
为解决上述问题,本发明提供的一种数据加密设备,包括:
选择模块,用于选择加密模式,并为至少两个加密引擎分别选择加密算法;
密钥输出模块,用于对原始密钥使用所述至少两个加密引擎的加密算法分别运算,获得至少两组应用密钥;
密文生成模块,用于基于所述加密模式,利用所述至少两组应用密钥对原始数据使用所述至少两个加密引擎的加密算法进行运算,生成输出密文。
上述的加密设备,所述选择模块,用于基于随机数或手动设置数的模式数据,从模式库中选择加密模式,并从每个加密引擎的算法库中分别选择所述加密算法,其中,所述模式库中具有至少一种加密模式,每个算法库中具有至少一种加密算法。
上述的加密设备,所述密钥输出模块中,对原始密钥使用所述至少两个加密引擎的加密算法分别运算,获得至少两组应用密钥,将所述至少两组应用密钥交叉应用或者择一应用,其中,应用于所述至少两个加密引擎的第一加密引擎的加密算法的密钥记为第一密钥,应用于所述至少两个加密引擎的第二加密引擎的加密算法的密钥记为第二密钥。
上述的加密设备,所述模式库中至少包括以下加密模式之一:串联混合模式、并联混合模式或串并联混合模式;每个所述算法库中至少包括以下加密算法之一:DES算法、AES算法、SM4算法、RSA算法、HASH算法或SM2算法。
上述的加密设备,所述密文生成模块包括分组子模块、至少两个加密引擎子模块、数据缓冲器子模块,所述选择模块选择串联混合模式或并联混合模式之一生成输出密文;
当所述选择模块选择所述串联混合模式时,
所述分组子模块,用于基于第三预设规则,将原始数据分成至少两组子数据;
所述至少两个加密引擎子模块,用于利用所述第一密钥对所述至少两组子数据使用第一加密引擎的加密算法,生成串联中间密文后,利用第二密钥对所述串联中间密文使用第二加密引擎的加密算法并生成密文输出;
当所述选择模块选择所述并联混合模式时:
所述分组子模块,用于基于第二预设规则,将所述原始数据分为至少两组子数据,所述子数据的组数等于所述加密引擎的个数;
所述至少两个加密引擎子模块,用于将每一组所述密钥、每一个所述加密引擎的所述加密算法与每一组所述子数据一一对应,利用每一组所述密钥对每一组所述子数据使用对应的所述加密算法进行加密运算,生成至少两组中间密文,输入数据缓冲器模块;
所述数据缓冲器子模块,用于整合至少两组的所述中间密文,生成输出密文。
本发明提供的数据加密方法中,加密模式和至少两个加密引擎内的加密算法均可选,基于选择的加密模式,利用应用密钥对原始数据使用至少两个加密引擎的加密算法进行加密运算,生成输出密文。本申请文件中,由于设置至少两个加密引擎,且两个加密引擎内的加密算法均可变化选择,从而解决由于加密算法单一而容易被破解的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明一示范性实施例中的数据加密方法的流程图;
图2为图1的具体流程图;
图3为图1中串联混合模式加密的流程图;
图4为图1中并联混合模式加密的流程图;
图5为本发明一示范性实施例中的数据加密设备的模块图。
附图说明:
100-加密设备;10-选择模块;20-密钥输出模块;30-密文生成模块。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明具体实施例及相应的附图对本发明技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明一示范性实施例中的数据加密方法的流程图。如图1所示,该方法可包括:
S1:基于第一预设规则,选择加密模式,并为至少两个加密引擎分别选择加密算法;
S2:对原始密钥使用至少两个加密引擎的加密算法分别运算,获得至少两组应用密钥;
S3:基于加密模式,利用至少两组应用密钥对原始数据使用至少两个加密引擎的加密算法进行运算,生成输出密文。
本发明实施例中,加密模式和至少两个加密引擎内的加密算法均可选,基于选择的加密模式,利用应用密钥对原始数据使用至少两个加密引擎的加密算法进行加密运算,生成输出密文。本申请文件中,由于设置至少两个加密引擎,且两个加密引擎内的加密算法均可变化选择,从而解决由于加密算法单一而容易被破解的技术问题。同时由于两个加密引擎可以独立并发执行加密算法,从而解决了因为加密算法复杂度提升而引起加密效率降低的技术问题。此外,S2中,利用原始密钥在至少两个加密引擎中分别进行加密运算后,得到至少两组应用密钥,由于这至少两组应用密钥是通过加密原始密钥运算得到的,原始密钥仅由拥有人保管,从而增加这至少两组应用密钥的破解难度,进而提高了数据加密的安全性。
结合图2,S1中基于随机数或手动设置数的模式数据,从模式库中选择加密模式,并从每个加密引擎的算法库中分别选择加密算法,模式库中具有至少两种加密模式,每个算法库中具有至少一种加密算法。模式数据可以是8位,也可以是64位或128位等等。
实际使用中,模式数据可以随机自动生成或人工手动设置。
以模式数据为8位、且加密引擎的数量为两个为例。bit[1:0]表示加密模式,支持串联混合模式、并联混合模式、以及更复杂的混合模式,bit[1:0]的数值即为模式库的数值,例如bit[1:0]的数值为00时,表示加密模式为串联混合模式,bit[1:0]的数值为01时,表示加密模式为并联混合模式,bit[1:0]的数值为10时,表示加密模式为串并联混合加密模式等等。
bit[4:2]表示第一加密引擎的算法,即bit[4:2]的数值即为第一加密引擎的第一算法库中的数值,第一加密引擎可选执行AES算法、DES算法、SM4算法、RSA算法、HASH算法和SM2算法等等,例如bit[4:2]的数值为000时,表示所选的加密算法为AES算法,bit[4:2]的数值为010时,表示所选的加密算法为DES算法,bit[4:2]的数值为100时,表示所选的加密算法为SM1算法等等,第一加密引擎中的加密算法记为第一加密算法。bit[7:5]表示第二加密引擎的算法,即bit[7:8]的数值即为第二加密引擎的第二算法库中的数值,第二加密引擎可选执行AES算法、DES算法、SM4算法、RSA算法、HASH算法和SM2算法等等,例如bit[7:5]的数值为000时,表示所选的加密算法为AES算法,bit[7:5]的数值为010时,表示所选的加密算法为DES算法,bit[7:5]的数值为110时,表示所选的加密算法为SM4算法等等,第二加密引擎中的加密算法记为第二加密算法。
第一加密引擎和第二加密引擎还可以选择其他的算法,不再赘述。
当加密模式种类增多或者加密引擎数量增多时,可以通过增加模式数据的位数来实现更复杂的选择模块。
模式数据的位数越多时,表示加密模式的种类越多,或者是加密引擎的数量越多,以及加密引擎内的可执行的加密算法的种类越多。
本发明实施例中,如图1示,模式库中至少包括以下加密模式之一:串联混合模式、并联混合模式或其他复杂的模式等等。每个算法库中至少包括以下加密算法之一:DES算法、AES算法、SM4算法、RSA算法、HASH算法或SM2算法。当然,每个算法库中可以具有上述加密算法中的两个及两个以上。
S2中,对原始密钥使用至少两个的加密引擎的加密算法进行运算,输出至少两组应用密钥。其中,得到的多组应用密钥交叉使用。具体的,以加密引擎的数量为两个为例,包括以下步骤:
S21:对原始密钥使用第一加密引擎的加密算法进行加密,得到第一密钥,对原始密钥使用第二加密引擎的加密算法进行加密,得到第二密钥;
S22:将第一密钥与第二密钥调换,使得第一加密引擎输出第二密钥,第二加密引擎输出第一密钥。
可见,将应用密钥交叉后,第一加密引擎输出的为第二密钥,第二加密引擎输出的为第一密钥。其后,在S3中,第一密钥可以用于第一加密引擎,第二密钥可以用于第二加密引擎。通过将第一密钥和第二密钥交叉,可以提高加密方法的复杂度,提高安全性;当然,第一密钥和第二密钥也可以不进行交叉使用。
S3中包括S31和S32,当所选的加密模式为串联混合模式时,执行S31,当所选的加密模式为并联混合模式时,执行S32。
S31包括S311和S312。
S311:利用至少两组应用密钥之一对原始数据使用至少两个加密引擎之一的加密算法,生成串联中间密文;
S312:利用至少两组应用密钥之另一对串联中间密文使用至少两个加密引擎之另一的加密算法,生成密文。
结合图3,仍以加密引擎的数量为两个为例,S311中利用第一密钥对原始数据使用第一加密引擎的加密算法,生成串联中间密文后,S312中利用第二密钥对串联中间密文使用第二加密引擎的加密算法,生成输出密文。
S31还可以包括S310:基于第三预设规则,将原始数据分成至少两组子数据。原始数据分组后的每一组子数据的位数适于在所有应用密钥的作用下在所有的加密引擎进行加密运算。所有子数据的长度大小可以综合加密引擎的算法类型进行设计。如两个加密引擎使用的算法都为分组加密算法,可以省略S310操作,分组加密算法会自动按照规定的数据长度自动获取明文数据。
S31中还可以包括位于S311和S312之间的S3110:将串联中间密文存储至缓冲区,检测第二加密引擎是否空闲,若是,则将缓冲区内的串联中间密文传送至第二加密引擎。当数据缓冲器中有数据后,S311和S312中可以同步执行加密运算,避免由于串联流程而引起的效率降低问题。
S32包括S321、S322和S323。
S321:基于第二预设规则,将原始数据分为至少两组子数据,子数据的组数等于加密引擎的个数;
S322:将每一组应用密钥、每一个加密引擎的加密算法与每一组子数据一一对应,利用每一组应用密钥对每一组子数据使用对应的加密算法进行加密运算,生成至少两组中间密文;
S323:整合至少两组的中间密文,生成输出密文。
具体的,结合图4,S321中,将原始数据分组成子数据,且每组子数据的位数均适于利用所有应用密钥在所有加密引擎中进行加密运算,且子数据的组数等于加密引擎的个数。当加密引擎的数量为两个时,子数据的组数也为两个。此外,所有子数据的位数可以相同,也可以不相等。每组子数据的长度大小可以综合加密引擎的算法类型进行设计。分组方式可以为顺序分组,以原始数据被分为两组子数据为例,可以是从0到n为一组,由第一加密引擎执行,n+1到m为另一组,由第二加密引擎执行;也可以为间隔分组,例如奇数顺序为一组,由第一加密引擎执行,偶数顺序为一组,由第二加密引擎执行。
S322中,将第一组应用密钥、第一加密引擎与第一组子数据对应,利用第一组应用密钥对第一组子数据在第一加密引擎中进行加密运算,得到第一组中间密文,将第二组应用密钥、第二加密引擎与第二组子数据对应,利用第二组应用密钥对第二组子数据在第二加密引擎中进行加密运算,得到第二组中间密文,依次类推,得到至少两组中间密文,输出到数据缓冲器。由于各个加密引擎并联执行,极大提升了加密效率。
S323中,基于第二预设规则整合上述缓冲器中的第一组中间密文和第二组中间密文,以及有其他组中间密文时同时整合其他组中间密文,生成输出密文。
图5为本发明一示范性实施例中的数据加密设备100的模块图。如图5所示本发明一示范性实施例提供的数据加密设备100,包括:选择模块10、密钥输出模块20和密文生成模块30。
选择模块10,用于基于第一预设规则,选择加密模式,并为至少两个加密引擎分别选择加密算法;
密钥输出模块20,用于对原始密钥使用至少两个加密引擎的加密算法分别运算,获得至少两组应用密钥;
密文生成模块30,用于基于加密模式,利用至少两组应用密钥对原始数据使用至少两个加密引擎的加密算法进行运算,生成输出密文。
本发明实施例中,加密模式和至少两个加密引擎内的加密算法均可选,基于选择的加密模式,利用应用密钥对原始数据使用至少两个加密引擎的加密算法进行加密运算,生成输出密文。本申请文件中,由于设置至少两个加密引擎,且两个加密引擎内的加密算法均可变化选择,从而解决由于加密算法单一而容易被破解的技术问题。同时由于两个加密引擎可以独立并发执行加密算法,从而解决了因为加密算法复杂度提升而引起加密效率降低的技术问题。此外,密钥输出模块20中,利用原始密钥在至少两个加密引擎中分别进行加密运算后,得到至少两组应用密钥,由于这至少两组应用密钥是通过加密原始密钥运算得到的,原始密钥仅由拥有人保管,从而增加这至少两组应用密钥的破解难度,进而提高了数据加密的安全性。
其中,选择模块10,是用于基于随机数或手动设置数的模式数据,从模式库中选择加密模式,并从每个加密引擎的算法库中分别选择加密算法。具体的,模式库中具有至少两种加密模式,每个算法库中具有至少一种加密算法。模式数据可以是8位,也可以是64位或128位等等。
实际使用中,模式数据可以随机自动生成或人工手动设置。
以模式数据为8位且加密引擎的数量为两个为例。bit[1:0]表示加密模式,支持串联混合模式、并联混合模式、串并联混合模式以及更复杂的混合模式,bit[1:0]的数值即为模式库的数值,例如bit[1:0]的数值为00时,表示加密模式为串联混合模式,bit[1:0]的数值为01时,表示加密模式为并联混合模式,bit[1:0]的数值为10时,表示加密模式为串并联混合模式等等。
bit[4:2]表示第一加密引擎的算法,即bit[4:2]的数值即为第一加密引擎的第一算法库中的数值,第一加密引擎可选执行AES算法、DES算法、SM4算法、RSA算法、HASH算法和SM2算法等等,例如bit[4:2]的数值为000时,表示所选的加密算法为AES算法,bit[4:2]的数值为010时,表示所选的加密算法为DES算法,bit[4:2]的数值为100时,表示所选的加密算法为SM1算法等等,第一加密引擎中的加密算法记为第一加密算法。bit[7:5]表示第二加密引擎的算法,即bit[7:8]的数值即为第二加密引擎的第二算法库中的数值,第二加密引擎可选执行AES算法、DES算法、SM4算法、RSA算法、HASH算法和SM2算法等等,例如bit[7:5]的数值为000时,表示所选的加密算法为AES算法,bit[7:5]的数值为010时,表示所选的加密算法为DES算法,bit[7:5]的数值为110时,表示所选的加密算法为SM4算法等等,第二加密引擎中的加密算法记为第二加密算法。
第一加密引擎和第二加密引擎还可以选择其他的算法,不再赘述。
模式数据的位数越多时,表示加密模式的种类越多,或者是加密引擎的数量越多,以及加密引擎内的可执行的加密算法的种类越多。
本发明实施例中,模式库中至少包括以下加密模式之一:串联混合模式、并联混合模式或串并联混合模式等。每个算法库中至少包括以下加密算法之一:DES算法、AES算法、SM4算法、RSA算法、HASH算法或SM2算法等。当然,每个算法库中可以具有上述加密算法中的两个及两个以上。
密钥输出模块20中,将得到的多种应用密钥交叉使用。具体的,以加密引擎的数量为两个为例,密钥输出模块20中包括密钥生成子模块和密钥输出子模块。
密钥生成子模块,用于对原始密钥使用第一加密引擎的加密算法进行加密,得到第一密钥,对原始密钥使用第二加密引擎的加密算法进行加密,得到第二密钥。
密钥输出子模块,用于将第一密钥与第二密钥调换,使得第一加密引擎输出第二密钥,第二加密引擎输出第一密钥。
可见,将应用密钥交叉后,第一加密引擎输出的为第二密钥,第二加密引擎输出的为第一密钥。其后,在密文输出模块中,第一密钥可以用于第一加密引擎,第二密钥可以用于第二加密引擎。通过将第一密钥和第二密钥交叉,可以提高加密方法的复杂度,提高安全性;当然,第一密钥和第二密钥也可以不进行交叉使用。
密文生成模块包括分组子模块、至少两个加密引擎子模块和数据缓冲器子模块。
当选择模块选择的加密模式为串联混合模式时:
分组子模块,用于基于第三预设规则,将原始数据分成至少两组子数据。原始数据分组后的每一组子数据的位数适于在所有应用密钥的作用下在所有的加密引擎进行加密运算。此外,所有子数据的位数可以相同,也可以不相等。所有子数据的长度大小可以综合加密引擎的算法类型进行设计。
至少两个加密引擎子模块,用于利用至少两组应用密钥之一对少数两组子数据使用至少两个加密引擎之一的加密算法,生成串联中间密文后,用于利用至少两组应用密钥之另一对串联中间密文使用至少两个加密引擎之另一的加密算法,生成密文。
仍以加密引擎子模块的数量为两个为例,两个加密引擎子模块中利用第一密钥对原始数据使用第一加密引擎的加密算法,生成串联中间密文后,利用第二密钥对串联中间密文使用第二加密引擎的加密算法,生成输出密文。
数据缓冲器子模块,可以用于存储串联中间密文,检测第二加密引擎是否空闲,若是,则将数据缓冲器子模块内存储的串联中间密文传送至第二加密引擎。
当选择模块选择的加密模式为并联混合模块时:
分组子模块,用于基于第二预设规则,将原始数据分为至少两组子数据,子数据的组数等于加密引擎的个数;
至少两个加密引擎子模块,用于将每一组应用密钥、每一个加密引擎的加密算法与每一组子数据一一对应,利用每一组应用密钥对每一组子数据使用对应的加密算法进行加密运算,生成至少两组中间密文,输入数据缓冲器模块;
数据缓冲器子模块,用于整合至少两组的中间密文,生成输出密文。
分组子模块中,将原始数据分组成子数据,且每组子数据的位数均适于利用所有应用密钥在所有加密引擎中进行加密运算,且子数据的组数等于加密引擎的个数。当加密引擎的数量为两个时,子数据的组数也为两个。此外,所有子数据的位数可以相同,也可以不相等。每组子数据的长度大小可以综合加密引擎的算法类型进行设计。分组方式可以为顺序分组,以原始数据被分为两组子数据为例,可以是从0到n为一组,由第一加密引擎执行,n+1到m为另一组,由第二加密引擎执行;也可以为间隔分组,例如奇数顺序为一组,由第一加密引擎执行,偶数顺序为一组,由第二加密引擎执行。
至少两个加密引擎子模块中,将第一组应用密钥、第一加密引擎与第一组子数据对应,利用第一组应用密钥对第一组子数据在第一加密引擎中进行加密运算,得到第一组中间密文,将第二组应用密钥、第二加密引擎与第二组子数据对应,利用第二组应用密钥对第二组子数据在第二加密引擎中进行加密运算,得到第二组中间密文,依次类推,得到至少两组中间密文。
数据缓冲器子模块中,整合上述第一组中间密文和第二组中间密文,以及有其他组中间密文时同时整合其他组中间密文,生成输出密文。
以上的具体实例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种数据加密方法,其特征在于,包括:
选择加密模式,并为至少两个加密引擎分别选择加密算法;
对原始密钥使用所述至少两个加密引擎的加密算法分别运算,获得至少两组应用密钥;
基于所述加密模式,利用所述至少两组应用密钥对原始数据使用所述至少两个加密引擎的加密算法进行运算,生成输出密文;
所述对原始密钥使用所述至少两个加密引擎的加密算法分别运算,获得至少两组应用密钥中,包括:对原始密钥使用所述至少两个加密引擎的加密算法分别运算,得到所述至少两组应用密钥,将所述至少两组应用密钥交叉应用或者择一应用,其中,应用于所述至少两个加密引擎的第一加密引擎的加密算法的密钥记为第一密钥,应用于所述至少两个加密引擎的第二加密引擎的加密算法的密钥记为第二密钥。
2.根据权利要求1所述的数据加密方法,其特征在于,所述选择加密模式,并为至少两个加密引擎分别选择加密算法中,包括:
基于随机数或手动设置数的模式数据,从模式库中选择加密模式,并从每个加密引擎的算法库中分别选择所述加密算法,其中,所述模式库中具有至少一种加密模式,每个算法库中具有至少一种加密算法。
3.根据权利要求2所述的数据加密方法,其特征在于,所述模式库中至少包括以下加密模式之一:串联混合模式、并联混合模式或串并联混合模式;每个所述算法库中至少包括以下加密算法之一:DES算法、AES算法、SM4算法、RSA算法、HASH算法或SM2算法。
4.根据权利要求3所述的数据加密方法,其特征在于,所述基于所述加密模式,利用所述至少两组应用密钥对原始数据使用所述至少两个加密引擎的加密算法进行运算,生成输出密文中,包括:
当所述加密模式为串联混合模式时,包括:
利用所述第一密钥对原始数据使用所述至少两个加密引擎的第一加密引擎的加密算法,生成串联中间密文;
利用所述第二密钥对所述串联中间密文使用所述至少两个加密引擎的第二加密引擎的加密算法,生成输出密文;
当所述加密模式为并联混合模式时,包括:
将所述原始数据分为至少两组子数据,所述子数据的组数等于所述加密引擎的个数;
将每一组所述应用密钥、每一个所述加密引擎的所述加密算法与每一组所述子数据一一对应,利用每一组所述应用密钥对每一组所述子数据使用对应的所述加密算法进行加密运算,生成至少两组中间密文;
整合所述至少两组的中间密文,生成输出密文。
5.一种数据加密设备,其特征在于,包括:
选择模块,用于选择加密模式,并为至少两个加密引擎分别选择加密算法;
密钥输出模块,用于对原始密钥使用所述至少两个加密引擎的加密算法分别运算,获得至少两组应用密钥;
密文生成模块,用于基于所述加密模式,利用所述至少两组应用密钥对原始数据使用所述至少两个加密引擎的加密算法进行运算,生成输出密文;
所述密钥输出模块中,对原始密钥使用所述至少两个加密引擎的加密算法分别运算,获得至少两组应用密钥,将所述至少两组应用密钥交叉应用或者择一应用,其中,应用于所述至少两个加密引擎的第一加密引擎的加密算法的密钥记为第一密钥,应用于所述至少两个加密引擎的第二加密引擎的加密算法的密钥记为第二密钥。
6.根据权利要求5所述的加密设备,其特征在于,所述选择模块,用于基于随机数或手动设置数的模式数据,从模式库中选择加密模式,并从每个加密引擎的算法库中分别选择所述加密算法,其中,所述模式库中具有至少一种加密模式,每个算法库中具有至少一种加密算法。
7.根据权利要求6所述的加密设备,其特征在于,所述模式库中至少包括以下加密模式之一:串联混合模式、并联混合模式或串并联混合模式;每个所述算法库中至少包括以下加密算法之一:DES算法、AES算法、SM4算法、RSA算法、HASH算法或SM2算法。
8.根据权利要求7所述的加密设备,其特征在于,所述密文生成模块包括分组子模块、至少两个加密引擎子模块、数据缓冲器子模块,所述选择模块选择串联混合模式或并联混合模式之一生成输出密文;
当所述选择模块选择所述串联混合模式时,
所述分组子模块,用于基于第三预设规则,将原始数据分成至少两组子数据;
所述至少两个加密引擎子模块,用于利用所述第一密钥对所述至少两组子数据使用第一加密引擎的加密算法,生成串联中间密文后,利用第二密钥对所述串联中间密文使用第二加密引擎的加密算法并生成密文输出;
当所述选择模块选择所述并联混合模式时:
所述分组子模块,用于基于第二预设规则,将所述原始数据分为至少两组子数据,所述子数据的组数等于所述加密引擎的个数;
所述至少两个加密引擎子模块,用于将每一组所述密钥、每一个所述加密引擎的所述加密算法与每一组所述子数据一一对应,利用每一组所述密钥对每一组所述子数据使用对应的所述加密算法进行加密运算,生成至少两组中间密文,输入数据缓冲器模块;
所述数据缓冲器子模块,用于整合至少两组的所述中间密文,生成输出密文。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811181854.9A CN109361507B (zh) | 2018-10-11 | 2018-10-11 | 一种数据加密方法及加密设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811181854.9A CN109361507B (zh) | 2018-10-11 | 2018-10-11 | 一种数据加密方法及加密设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109361507A CN109361507A (zh) | 2019-02-19 |
CN109361507B true CN109361507B (zh) | 2021-11-02 |
Family
ID=65349101
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811181854.9A Active CN109361507B (zh) | 2018-10-11 | 2018-10-11 | 一种数据加密方法及加密设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109361507B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109918929B (zh) * | 2019-03-06 | 2021-10-01 | 上海春魁信息技术有限公司 | 一种加密解密方法及装置 |
CN109995508B (zh) * | 2019-04-30 | 2021-02-02 | 上海安路信息科技有限公司 | 一种fpga码流的加解密装置及方法 |
CN111191253B (zh) * | 2019-05-17 | 2021-02-12 | 融智通科技(北京)股份有限公司 | 一种数据加密组合方法 |
CN112181491A (zh) * | 2019-07-01 | 2021-01-05 | 华为技术有限公司 | 处理器及返回地址的处理方法 |
CN110336819A (zh) * | 2019-07-09 | 2019-10-15 | 四川新网银行股份有限公司 | 基于机器学习的加解密自助组合方法 |
CN110300122A (zh) * | 2019-07-25 | 2019-10-01 | 陈蔚 | 一种物联网电子信息处理***及方法 |
CN110267267A (zh) * | 2019-07-29 | 2019-09-20 | 北京智芯微电子科技有限公司 | 基于非公开加密算法的mesh网络加密方案 |
CN110909371B (zh) * | 2019-11-21 | 2022-04-15 | 广东美的厨房电器制造有限公司 | 一种数据加密方法、电子设备及介质 |
CN111600873B (zh) * | 2020-05-13 | 2023-03-10 | 江苏芯盛智能科技有限公司 | 防侧信道攻击方法及相关装置 |
CN112182624A (zh) * | 2020-10-13 | 2021-01-05 | Oppo广东移动通信有限公司 | 加密方法、加密装置、存储介质与电子设备 |
CN113014604A (zh) * | 2021-04-12 | 2021-06-22 | 北京字节跳动网络技术有限公司 | 一种数据处理方法、装置、设备及介质、程序产品 |
CN112989391B (zh) * | 2021-04-15 | 2024-01-16 | 广州蚁比特区块链科技有限公司 | 混合加密方法、混合解密方法、***、设备及存储介质 |
CN114745181A (zh) * | 2022-04-11 | 2022-07-12 | 中国南方电网有限责任公司 | 数据处理方法和装置 |
CN116015981B (zh) * | 2023-03-21 | 2023-06-23 | 深圳市星火数控技术有限公司 | 一种缝纫数控文件数据加密方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1527531A (zh) * | 2003-03-07 | 2004-09-08 | 华为技术有限公司 | 一种数据加密标准或三重数据加密标准的实现方法 |
CN1592190A (zh) * | 2003-08-29 | 2005-03-09 | 三星电子株式会社 | 硬件加密引擎和加密方法 |
CN106850182A (zh) * | 2017-01-16 | 2017-06-13 | 长春理工大学 | 基于量子细胞神经网络的视频混沌加密方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103716157B (zh) * | 2013-12-13 | 2017-01-25 | 厦门市美亚柏科信息股份有限公司 | 分组多密钥加密方法及装置 |
CN104301097A (zh) * | 2014-10-15 | 2015-01-21 | 南京熊猫电子制造有限公司 | 一种增强蓝牙数据传输安全的方法 |
US9418246B2 (en) * | 2014-12-15 | 2016-08-16 | Freescale Semiconductor, Inc. | Decryption systems and related methods for on-the-fly decryption within integrated circuits |
CN113923052A (zh) * | 2015-07-03 | 2022-01-11 | 阿费罗有限公司 | 用于在物联网(IoT)***中建立安全通信信道的设备和方法 |
CN105763333B (zh) * | 2016-01-28 | 2019-05-24 | 北京江南天安科技有限公司 | 一种非对称密钥的协商方法 |
US20180063096A1 (en) * | 2016-08-23 | 2018-03-01 | Ariel Shai Rogson | Encrypted communications |
-
2018
- 2018-10-11 CN CN201811181854.9A patent/CN109361507B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1527531A (zh) * | 2003-03-07 | 2004-09-08 | 华为技术有限公司 | 一种数据加密标准或三重数据加密标准的实现方法 |
CN1592190A (zh) * | 2003-08-29 | 2005-03-09 | 三星电子株式会社 | 硬件加密引擎和加密方法 |
CN106850182A (zh) * | 2017-01-16 | 2017-06-13 | 长春理工大学 | 基于量子细胞神经网络的视频混沌加密方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109361507A (zh) | 2019-02-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109361507B (zh) | 一种数据加密方法及加密设备 | |
CN106788974B (zh) | 掩码s盒、分组密钥计算单元、装置及对应的构造方法 | |
CN110098923B (zh) | 一种生成和验证临时密码的方法及设备 | |
US9031228B2 (en) | Systems and methods for implementing block cipher algorithms on attacker-controlled systems | |
US7715553B2 (en) | Encrypting a plaintext message with authentication | |
CN103621007A (zh) | 加密处理装置、加密处理方法和程序 | |
KR20160106722A (ko) | 암호화 방법 및 암호화 장치 | |
CN105099672A (zh) | 混合加密方法及实现该方法的装置 | |
CN102185692A (zh) | 基于aes加密算法的多模式可重构加密方法 | |
CN1801693A (zh) | 分组加密算法中对短分组的处理方法 | |
CN108123794A (zh) | 白盒密钥的生成方法和加密方法、装置及*** | |
CN107534558B (zh) | 用于保护经由数据总线传输的数据的信息安全的方法以及数据总线*** | |
CN106034021B (zh) | 轻量级双模兼容aes加解密模块及其方法 | |
CN112511304A (zh) | 一种基于混合加密算法的电力数据隐私通信方法 | |
CN104519071A (zh) | 一种具有选择和排除功能的群组加解密方法及*** | |
CN105763333A (zh) | 一种非对称密钥的协商方法及*** | |
CN116418481A (zh) | 一种文本隐私数据双重加密保护方法、装置及设备 | |
CN109361519A (zh) | 一种改进的包含秘密的数的生成方法及*** | |
CN105099671A (zh) | 一种身份隐藏且非延展安全的认证密钥协商方法 | |
CN117792699A (zh) | 一种分布式循环加密方法 | |
JP2009088641A (ja) | 送受信方法、通信システムおよび送信装置 | |
CA2592703A1 (en) | Communication system and communication method | |
CN104753662B (zh) | 基于aes算法的加密密钥流产生方法 | |
CN103684748B (zh) | 对称式加解密方法、对称式加解密*** | |
CN1917422A (zh) | 一种降低manet网络密钥管理计算量的实现方法 |
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 |