CN109510703B - 一种数据加解密方法及装置 - Google Patents
一种数据加解密方法及装置 Download PDFInfo
- Publication number
- CN109510703B CN109510703B CN201811405801.0A CN201811405801A CN109510703B CN 109510703 B CN109510703 B CN 109510703B CN 201811405801 A CN201811405801 A CN 201811405801A CN 109510703 B CN109510703 B CN 109510703B
- Authority
- CN
- China
- Prior art keywords
- encryption key
- encryption
- random number
- key
- priority
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种数据加解密方法及装置,用以解决现有技术中采用OFB模式对明文数据进行加密,易造成对明文的主动攻击的问题。数据加密方法包括:加密方采用第一加密方式,初始密钥和初始向量,生成第一加密密钥;生成至少一个随机数,根据至少一个随机数和第一加密密钥,确定第二加密密钥;采用第二加密密钥,对待加密的明文数据进行加密,得到第一密文;采用第二加密方式,及初始密钥对每个所述随机数进行加密,分别得到每个第二密文;将第一密文和每个第二密文发送给解密方。因为攻击者不知道初始密钥,不能每次都解密出正确的随机数,也就不能准确地得到第二加密密钥,进而不能每次解密出明文数据,在一定程度上避免了对明文数据的攻击。
Description
技术领域
本发明涉及信息保护技术领域,特别涉及一种数据加解密方法及装置。
背景技术
随着信息科技的快速发展,信息的价值变得越来越高,相应的,信息的保护也显得越来越重要,一般采用对明文信息加密的方式来保护信息。
加密方可以采用输出反馈(Output Feedback,OFB)模式对明文数据进行加密。采用OFB模式进行加密时,需要先知道待加密的明文数据D的长度L,采用初始密钥K和预设比特的初始向量IV,生成加密密钥K1,加密密钥K1的长度为明文数据D的长度L;然后将待加密的明文数据D与加密密钥K1进行异或,得到密文数据ED,密文数据ED的长度为L。
解密方在对密文数据进行解密时,需要先知道待解密的明文数据ED的长度L,采用初始向量IV和初始密钥K,生成解密密钥K1,解密密钥K1的长度为密文数据ED的长度L;然后将待解密的密文数据与解密密钥K1进行异或,得到明文数据D。
针对多个明文的长度相同的应用场景下,攻击方在成功解密出一次密文后,就已经推导出了加密密钥K1,后续如果使用相同的初始向量和初始密钥确定加密密钥,对一段相同长度的明文数据进行加密,可能后续生成的加密密钥和之前生成的加密密钥是相同的,攻击方很容易根据加密密钥,将密文解密出明文,容易造成对明文的主动攻击。
发明内容
本发明实施例公开了一种数据加解密方法及装置,用以解决现有技术中采用OFB模式对明文数据进行加密,易造成对明文的主动攻击的问题。
为达到上述目的,本发明实施例公开了一种数据加密方法,所述方法包括:
加密方采用预设的第一加密方式,以及预先保存的初始密钥和初始向量,生成第一加密密钥;
生成至少一个随机数,根据所述至少一个随机数和所述第一加密密钥,确定第二加密密钥;
采用所述第二加密密钥,对待加密的明文数据进行加密,得到第一密文;
采用预设的第二加密方式,及所述初始密钥对每个所述随机数进行加密,分别得到每个第二密文;
将所述第一密文和每个所述第二密文发送给解密方。
进一步地,所述根据所述至少一个随机数,和所述第一加密密钥,确定第二加密密钥包括:
采用预先保存的切割组合方式,利用所述至少一个随机数,对所述第一加密密钥进行切割并重新组合,得到第二加密密钥。
进一步地,采用预先保存的切割组合方式,利用至少两个随机数,对所述第一加密密钥进行切割并重新组合,得到第二加密密钥,包括:
按照第一加密密钥中每个字符的排序,以及每个随机数的优先级,按照优先级由高至低的顺序,依次确定每个随机数对应数量的字符组成的子字符串,每个子字符串的优先级与对应的随机数的优先级相同;
将优先级低的子字符串置前,所述优先级高的子字符串置后,得到第二加密密钥,至少两个随机数的和小于所述第一加密密钥的长度。
进一步地,所述第二加密密钥的长度为待加密的明文数据的长度。
进一步地,所述第一加密密钥的长度为待加密的明文数据的长度。
进一步地,所述第一加密方式为输出反馈OFB模式的加密方式。
进一步地,所述第二加密方式为电码本ECB模式的加密方式。
本发明实施例公开了一种基于上述任一项所述的数据加密方法的数据解密方法,所述方法包括:
解密方采用预设的解密方式,对至少一个随机数分别加密得到的第二密文解密,得到至少一个随机数;
采用预设的加密方式,以及预先保存的初始密钥和初始向量,生成第一加密密钥;
根据所述至少一个随机数和所述第一加密密钥,确定第二加密密钥;
采用所述第二加密密钥对明文数据加密得到的第一密文解密,得到明文数据。
进一步地,所述根据所述至少一个随机数,和所述第一加密密钥,确定第二加密密钥包括:
采用预先保存的切割组合方式,利用所述至少一个随机数,对所述第一加密密钥进行切割并重新组合,得到第二加密密钥。
进一步地,采用预先保存的切割组合方式,利用至少两个随机数,对所述第一加密密钥进行切割并重新组合,得到第二加密密钥,包括:
按照第一加密密钥中每个字符的排序,以及每个随机数的优先级,按照优先级由高至低的顺序,依次确定每个随机数对应数量的字符组成的子字符串,每个子字符串的优先级与对应的随机数的优先级相同;
将优先级低的子字符串置前,所述优先级高的子字符串置后,得到第二加密密钥,至少两个随机数的和小于所述第一加密密钥的长度。
本发明实施例公开了一种数据加密装置,所述装置包括:
密钥生成模块,用于采用预设的第一加密方式,以及预先保存的初始密钥和初始向量,生成第一加密密钥;
随机数生成模块,用于生成至少一个随机数;
密钥更新模块,用于根据所述至少一个随机数和所述第一加密密钥,确定第二加密密钥;
明文加密模块,用于采用所述第二加密密钥,对待加密的明文数据进行加密,得到第一密文;
随机数加密模块,用于采用预设的第二加密方式,及所述初始密钥对每个所述随机数进行加密,分别得到每个第二密文;
发送模块,用于将所述第一密文和每个所述第二密文发送给解密方。
进一步地,所述密钥更新模块,具体用于采用预先保存的切割组合方式,利用所述至少一个随机数,对所述第一加密密钥进行切割并重新组合,得到第二加密密钥。
进一步地,所述密钥更新模块,具体用于按照第一加密密钥中每个字符的排序,以及每个随机数的优先级,按照优先级由高至低的顺序,依次确定每个随机数对应数量的字符组成的子字符串,每个子字符串的优先级与对应的随机数的优先级相同;将优先级低的子字符串置前,所述优先级高的子字符串置后,得到第二加密密钥,至少两个随机数的和小于所述第一加密密钥的长度。
本发明实施例公开了一种基于上述任一项所述的数据加密装置的数据解密装置,所述装置包括:
随机数解密模块,用于采用预设的解密方式,对至少一个随机数分别加密得到的第二密文解密,得到至少一个随机数;
密钥生成模块,用于采用预设的加密方式,以及预先保存的初始密钥和初始向量,生成第一加密密钥;
密钥更新模块,用于根据所述至少一个随机数和所述第一加密密钥,确定第二加密密钥;
明文解密模块,用于采用所述第二加密密钥对明文数据加密得到的第一密文解密,得到明文数据。
进一步地,所述密钥更新模块,具体用于采用预先保存的切割组合方式,利用所述至少一个随机数,对所述第一加密密钥进行切割并重新组合,得到第二加密密钥。
进一步地,所述密钥更新模块,具体用于按照第一加密密钥中每个字符的排序,以及每个随机数的优先级,按照优先级由高至低的顺序,依次确定每个随机数对应数量的字符组成的子字符串,每个子字符串的优先级与对应的随机数的优先级相同;
将优先级低的子字符串置前,所述优先级高的子字符串置后,得到第二加密密钥,至少两个随机数的和小于所述第一加密密钥的长度。
由于在本发明实施例中,采用随机数和第一加密密钥,确定出新的第二加密密钥,即使使用相同的初始向量和初始密钥,对相同长度的明文数据进行加密,因为攻击者不知道初始密钥,不能每次都解密出正确的随机数,也就不能准确地得到第二加密密钥,进而不能每次解密出明文数据,在一定程度上避免了对明文数据的攻击。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种数据加密过程示意图;
图2为本发明实施例提供的一种数据解密过程示意图;
图3为本发明实施例提供的一种数据加密装置结构图;
图4为本发明实施例提供的一种数据解密装置结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1:
图1为本发明实施例提供的一种数据加密过程示意图,该过程包括以下步骤:
S101:加密方采用预设的第一加密方式,以及预先保存的初始密钥和初始向量,生成第一加密密钥。
本发明实施例提供的数据加密方法应用于加密方,该加密方可以是电子设备,如终端,服务器等,加密方可以是芯片,可以是具有加密功能的装置等。
加密方中预先保存有初始密钥和初始向量,还保存有第一加密方式,加密方可以根据初始密钥和初始向量,以及该第一加密方式,生成加密密钥,将根据第一加密方式,初始向量和初始密钥生成的加密密钥称为第一加密密钥。第一加密密密钥一般为一串字符。第一加密方式包括但不限于OFB模式的加密方式。
S102:生成至少一个随机数。
上述的S101和S102的先后顺序可以不限,可以是先执行S101,再执行S102,可以是先执行S102,再执行S101,还可以是S101和S102同时执行。
S103:根据所述至少一个随机数,和所述第一加密密钥,确定第二加密密钥,采用所述第二加密密钥,对待加密的明文数据进行加密,得到第一密文。
为了使对明文数据进行加密的加密密钥不容易被破解,加密方还可以生成至少一个随机数,采用至少一个随机数和生成的第一加密密钥,确定第二加密密钥,采用第二加密密钥对明文数据进行加密。第二加密密钥与第一加密密钥不同。
加密密钥一般为一串字符串,加密方在根据至少一个随机数和第一加密密钥,确定第二加密密钥时,可以是将生成的随机数置于第一加密密钥之后的位置,或之前的位置,第一加密密钥与随机数重新组合成第二加密密钥。如果有至少两个随机数,可以按照随机数的优先级,确定随机数构成的子字符串,将随机数构成的子字符串置于第一加密密钥之后的位置,或之前的位置,得到第二加密密钥。
随机数的优先级可以根据随机数的生成时间确定,例如生成时间早的优先级高,生成时间晚的优先级低,当然也可反之。随机数的优先级还可以根据随机数的大小确定,例如数值大的优先级高,数值小的优先级低,当然也可反之。
以随机数的数值大的优先级高于数值小的,并且是将随机数构成的子字符串置于第一加密密钥之后,确定第二加密密钥为例说明,假设生成了三个随机数,分别为3、3、5,这三个随机数构成的子字符串为533,第一加密密钥为acds,则第二加密密钥为acds533。第一加密密钥的长度与第二加密密钥的长度不同。
加密方中保存有待加密的明文数据,加密方在确定出第二加密密钥后,可以采用第二加密密钥对待加密的明文数据进行加密,得到密文,称为第一密文。
S104:采用预设的第二加密方式,及所述初始密钥对每个所述随机数进行加密,分别得到每个第二密文。
加密方保存有第二加密方式,加密方可以采用该第二加密方式加密随机数。具体的,可以是针对每个随机数,采用该第二加密方式,及预先保存的初始密钥对该随机数进行加密,得到该随机数的密文,可以称为第二密文。也就是有几个随机数,就有几个第二密文。第二加密方式包括但不限于电码本ECB模式的加密方式。
上述的S103和S104的先后顺序可以不限,可以是先执行S103,再执行S104,可以是先执行S104,再执行S103,还可以是S103和S104同时执行。
S105:将所述第一密文和每个所述第二密文发送给解密方。
加密方在确定了出了第一密文和第二密文后,就可以将第一密文和第二密文发送给解密方,使解密方在使用明文时,对明文数据对应的加密密文进行解密。
图2为本发明实施例提供的一种数据解密过程示意图,该过程包括以下步骤:
S201:解密方采用预设的解密方式,对至少一个随机数分别加密得到的第二密文解密,得到至少一个随机数。
本发明实施例提供的数据解密方法应用于解密方,该解密方可以是电子设备,如终端,服务器等,解密方可以是芯片,可以是具有解密功能的装置等。
加密方将明文数据采用第二加密密钥加密后得到第一密文发送给解密方,并将随机数加密后得到的第二密文发送给解密方,则解密方接收加密方发送的对随机数加密得到的第二密文和对明文数据加密得到的第一密文。
解密方中预先保存有对随机数解密的解密方式,如果是合法的解密方,该解密方中保存的对随机数解密的解密方式与合法的加密方中保存的对随机数加密的加密方式相同。
解密方可以采用预先保存的解密方式,对随机数加密得到的第二密文解密,得到随机数。
第二密文的数量可能是一个,也可能是多个,对应的,随机数的数量可能是一个,也可能是多个。
预先保存的解密方式包括但不限于电码本ECB模式的解密方式。
S202:采用预设的加密方式,以及预先保存的初始密钥和初始向量,生成第一加密密钥。
解密方中预先保存有初始密钥和初始向量,还保存有加密方式,解密方可以根据初始密钥和初始向量,以及该加密方式,生成加密密钥,将根据加密方式,初始向量和初始密钥生成的加密密钥称为第一加密密钥。如果是合法的解密方,该解密方中保存的初始密钥、初始向量和该加密方式与合法的加密方中保存的初始密钥、初始向量和该加密方式相同。加密方式包括但不限于OFB模式的加密方式。
上述的S201和S202的先后顺序可以不限,可以是先执行S201,再执行S202,可以是先执行S202,再执行S201,还可以是S201和S202同时执行。
S203:根据所述至少一个随机数和所述第一加密密钥,确定第二加密密钥。
解密方中保存有和加密方相同的确定加密密钥的方式,在解密出至少一个随机数和生成第一加密密钥后,可以采用至少一个随机数和第一加密密钥确定第二加密密钥,具体的确定过程与加密方的相同,在此不再进行赘述。
S204:采用所述第二加密密钥对明文数据加密得到的第一密文解密,得到明文数据。
解密方在确定出第二加密密钥后,就可以根据第二加密密钥对明文数据加密得到的第一密文解密,得到明文数据,解密的过程为加密的反过程,在此不进行详细赘述。
由于在本发明实施例中,采用随机数和第一加密密钥,确定出新的第二加密密钥,即使使用相同的初始向量和初始密钥,对相同长度的明文数据进行加密,因为攻击者不知道初始密钥,不能每次都解密出正确的随机数,也就不能准确地得到第二加密密钥,进而不能每次解密出明文数据,在一定程度上避免了对明文数据的攻击。
实施例2:
不管是加密方还是解密方,在根据所述至少一个随机数,和所述第一加密密钥,确定第二加密密钥时,可以是采用预先保存的切割组合方式,利用所述至少一个随机数,对所述第一加密密钥进行切割并重新组合,得到第二加密密钥。
以加密方为例进行说明,加密方中预先保存有字符串切割组合方式,加密方可以生成随机数,具体可以是生成一个,也可以是生成多个,根据生成的至少一个随机数以及预先保存的切割组合方式,对第一加密密钥进行切割并重新组合,加密密钥一般为一串字符串,可以将第一加密密钥称为第一字符串,也就是加密方对第一加密密钥对应的第一字符串进行切割并重新组合,得到第二加密密钥。
示例的,加密方生成一个随机数,该随机数小于第一加密密钥的长度,第一加密密钥的长度可以理解为第一加密密钥中包含的字符的个数。加密方按照第一加密密钥中每个字符的顺序,依次确定随机数对应数量的字符组成的第一子字符串,将第一加密密钥中除第一子字符串外的字符按照原本顺序组成第二子字符串,将第二子字符串置前,第一子字符串置后,确定为第二加密密钥。
例如,第一加密密钥为abcde,第一加密密钥的长度为5,随机数为3,确定的第一子字符串为abc,第二子字符串为de,第二加密密钥为deabc。
如果是合法的解密方,该解密方中预先保存的切割组合方式与合法的加密方中预先保存的切合组合方式相同,在利用随机数对第一加密密钥切割并重新组合得到第二加密密钥的过程与加密方执行此过程时相同,在此不再详细赘述。
实施例3:
不管是加密方还是解密方,在采用预先保存的切割组合方式,利用所述随机数,对所述第一加密密钥进行切割并重新组合,得到第二加密密钥时,还可以是按照第一加密密钥中每个字符的排序,以及每个随机数的优先级,按照优先级由高至低的顺序,依次确定每个随机数对应数量的字符组成的子字符串,每个子字符串的优先级与对应的随机数的优先级相同;
将优先级低的子字符串置前,所述优先级高的子字符串置后,得到第二加密密钥,至少两个随机数的和小于所述第一加密密钥的长度。
以加密方为例进行说明,加密方可以生成至少两个随机数,至少两个随机数的和小于第一加密密钥中包含的字符的数量,加密方可以预先设定多个随机数的优先级的确定规则,例如可以是按照生成时间顺序确定,或者按照大小确定。加密方先确定出生成的至少两个随机数的优先级,当确定了每个随机数的优先级后,可以按照优先级由高至低的顺序,依次选取一个随机数,然后按照第一加密密钥中字符的排列顺序,提取该随机数对应数量的字符,将提取的字符作为该随机数对应的子字符串,该子字符串的优先级与该随机数的优先级相同。依次类推,直到最后一个随机数确定了其对应的子字符串,此时还可能会有剩余的字符,可将剩余的字符构成的子字符串的优先级确定为低于任一随机数对应的子字符串的优先级。
假设,有三个随机数,分别为2、2、3,三个随机数按照优先级由高至低依次为3、2、2,第一加密密钥为abcdefghi,,三个随机数切分得到的子字符串按照优先级由高至低依次为abc、de、fg、hi。
加密在确定出了每个子字符串,以及每个子字符串的优先级后,就可以对子字符串进行重新的排列组合,得到第二加密密钥了,可以是将优先级低的子字符串置前,所述优先级高的子字符串置后,得到第二加密密钥。根据上述举例,第二加密密钥为hifgdeabc。第一加密密钥的长度与第二加密密钥的长度相同。
如果是合法的解密方,该解密方中预先保存的切割组合方式与合法的加密方中预先保存的切割组合方式相同,在利用随机数对第一加密密钥切割并重新组合得到第二加密密钥的过程与加密方执行此过程时相同,在此不再详细赘述。
实施例4:
在采用第二加密密钥对明文数据进行加密时,可以是将第二加密密钥置于明文数据之后,得到第一密文,第二加密密钥的长度可以没有任何限制,在采用第二加密密钥对明文数据进行加密时,还可以是第二加密密钥与明文数据进行异或,得到第一密文,第二加密密钥的长度为待加密的明文数据的长度。此处所说的长度可以理解为字符的个数,也就是第二加密密钥中包含的字符的个数与明文数据中包含的字符的个数相同。如果第一加密密钥的长度与第二加密密钥的长度相同,则第一加密密钥的长度为待加密的明文数据的长度。
根据上述各实施例的描述,任何在本申请保护的方案上的演变均可属于本申请保护的技术方案。
实施例5:
图3为本发明实施例提供的一种数据加密装置结构图,所述装置包括:
密钥生成模块31,用于采用预设的第一加密方式,以及预先保存的初始密钥和初始向量,生成第一加密密钥;
随机数生成模块32,用于生成至少一个随机数;
密钥更新模块33,用于根据所述至少一个随机数和所述第一加密密钥,确定第二加密密钥;
明文加密模块34,用于采用所述第二加密密钥,对待加密的明文数据进行加密,得到第一密文;
随机数加密模块35,用于采用预设的第二加密方式,及所述初始密钥对每个所述随机数进行加密,分别得到每个第二密文;
发送模块36,用于将所述第一密文和每个所述第二密文发送给解密方。
进一步地,所述密钥更新模块35,具体用于采用预先保存的切割组合方式,利用所述至少一个随机数,对所述第一加密密钥进行切割并重新组合,得到第二加密密钥。
进一步地,所述密钥更新模块35,具体用于按照第一加密密钥中每个字符的排序,以及每个随机数的优先级,按照优先级由高至低的顺序,依次确定每个随机数对应数量的字符组成的子字符串,每个子字符串的优先级与对应的随机数的优先级相同;将优先级低的子字符串置前,所述优先级高的子字符串置后,得到第二加密密钥,至少两个随机数的和小于所述第一加密密钥的长度。
实施例6:
图4为本发明实施例提供的一种数据解密装置结构图,所述装置包括:
接收模块41,用于接收加密方发送的第一密文和至少一个第二密文;
随机数解密模块42,用于采用预设的解密方式,对至少一个随机数分别加密得到的第二密文解密,得到至少一个随机数;
密钥生成模块43,用于采用预设的加密方式,以及预先保存的初始密钥和初始向量,生成第一加密密钥;
密钥更新模块44,用于根据所述至少一个随机数和所述第一加密密钥,确定第二加密密钥;
明文解密模块45,用于采用所述第二加密密钥对明文数据加密得到的第一密文解密,得到明文数据。
进一步地,所述密钥更新模块44,具体用于采用预先保存的切割组合方式,利用所述至少一个随机数,对所述第一加密密钥进行切割并重新组合,得到第二加密密钥。
进一步地,所述密钥更新模块44,具体用于按照第一加密密钥中每个字符的排序,以及每个随机数的优先级,按照优先级由高至低的顺序,依次确定每个随机数对应数量的字符组成的子字符串,每个子字符串的优先级与对应的随机数的优先级相同;
将优先级低的子字符串置前,所述优先级高的子字符串置后,得到第二加密密钥,至少两个随机数的和小于所述第一加密密钥的长度。
实施例7:
基于与上述数据加密方法的同一发明构思,本申请实施例还提供了一种数据加密装置,该数据加密装置用于执行上述数据加密方法中加密方执行的操作,该数据加密装置包括:处理器和收发器,可选的,还包括存储器。处理器用于调用一组程序,当程序被执行时,使得处理器执行上述数据加密方法中加密方执行的操作。存储器用于存储处理器执行的程序。
基于与上述数据解密方法的同一发明构思,本申请实施例还提供了一种数据解密装置,该数据解密装置用于执行上述数据解密方法中解密方执行的操作,该数据解密装置包括:处理器和收发器,可选的,还包括存储器。处理器用于调用一组程序,当程序被执行时,使得处理器执行上述数据解密方法中解密方执行的操作。存储器用于存储处理器执行的程序。
处理器可以是中央处理器(central processing unit,CPU),网络处理器(network processor,NP)或者CPU和NP的组合。
处理器还可以进一步包括硬件芯片或其他通用处理器。上述硬件芯片可以是专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complex programmable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)及其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等或其任意组合。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
还应理解,本申请实施例中提及的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double DataRate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DR RAM)。应注意,本申请描述的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
本申请实施例提供了一种计算机存储介质,存储有计算机程序,该计算机程序包括用于执行上述数据加密方法和/或数据解密方法。
本申请实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述数据加密方法和/或数据解密方法。
本申请实施例提供的任一种数据加密装置还可以是一种芯片。
本申请实施例提供的任一种数据解密装置还可以是一种芯片。
对于***/装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者一个操作与另一个实体或者另一个操作区分开来,而不一定要求或者暗示这些实体或者操作之间存在任何这种实际的关系或者顺序。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全应用实施例、或结合应用和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (11)
1.一种数据加密方法,其特征在于,所述方法包括:
加密方采用预设的第一加密方式,以及预先保存的初始密钥和初始向量,生成第一加密密钥;
生成至少一个随机数,根据所述至少一个随机数和所述第一加密密钥,确定第二加密密钥;
采用所述第二加密密钥,对待加密的明文数据进行加密,得到第一密文;
采用预设的第二加密方式,及所述初始密钥对每个所述随机数进行加密,分别得到每个第二密文;
将所述第一密文和每个所述第二密文发送给解密方;
其中,所述根据所述至少一个随机数,和所述第一加密密钥,确定第二加密密钥包括:
采用预先保存的切割组合方式,利用所述至少一个随机数,对所述第一加密密钥进行切割并重新组合,得到第二加密密钥;
其中,采用预先保存的切割组合方式,利用至少两个随机数,对所述第一加密密钥进行切割并重新组合,得到第二加密密钥,包括:
按照第一加密密钥中每个字符的排序,以及每个随机数的优先级,按照优先级由高至低的顺序,依次确定每个随机数对应数量的字符组成的子字符串,每个子字符串的优先级与对应的随机数的优先级相同;
将优先级低的子字符串置前,所述优先级高的子字符串置后,得到第二加密密钥,至少两个随机数的和小于所述第一加密密钥的长度。
2.如权利要求1所述的方法,其特征在于,所述第二加密密钥的长度为待加密的明文数据的长度。
3.如权利要求1所述的方法,其特征在于,所述第一加密密钥的长度为待加密的明文数据的长度。
4.如权利要求1所述的方法,其特征在于,所述第一加密方式为输出反馈OFB模式的加密方式。
5.如权利要求1所述的方法,其特征在于,所述第二加密方式为电码本ECB模式的加密方式。
6.一种基于上述权利要求1-5任一项所述的数据加密方法的数据解密方法,其特征在于,所述方法包括:
解密方采用预设的解密方式,对至少一个随机数分别加密得到的第二密文解密,得到至少一个随机数;
采用预设的加密方式,以及预先保存的初始密钥和初始向量,生成第一加密密钥;
根据所述至少一个随机数和所述第一加密密钥,确定第二加密密钥;
采用所述第二加密密钥对明文数据加密得到的第一密文解密,得到明文数据;
其中,根据所述至少一个随机数,和所述第一加密密钥,确定第二加密密钥,包括:
采用预先保存的切割组合方式,利用所述至少一个随机数,对所述第一加密密钥进行切割并重新组合,得到第二加密密钥;
其中,采用预先保存的切割组合方式,利用至少两个随机数,对所述第一加密密钥进行切割并重新组合,得到第二加密密钥,包括:
按照第一加密密钥中每个字符的排序,以及每个随机数的优先级,按照优先级由高至低的顺序,依次确定每个随机数对应数量的字符组成的子字符串,每个子字符串的优先级与对应的随机数的优先级相同;
将优先级低的子字符串置前,所述优先级低高的子字符串置后,得到第二加密密钥,至少两个随机数的和小于所述第一加密密钥的长度。
7.一种数据加密装置,其特征在于,所述装置包括:
密钥生成模块,用于采用预设的第一加密方式,以及预先保存的初始密钥和初始向量,生成第一加密密钥;
随机数生成模块,用于生成至少一个随机数;
密钥更新模块,用于根据所述至少一个随机数和所述第一加密密钥,确定第二加密密钥;
明文加密模块,用于采用所述第二加密密钥,对待加密的明文数据进行加密,得到第一密文;
随机数加密模块,用于采用预设的第二加密方式,及所述初始密钥对每个所述随机数进行加密,分别得到每个第二密文;
发送模块,用于将所述第一密文和每个所述第二密文发送给解密方;
其中,所述密钥更新模块,具体用于采用预先保存的切割组合方式,利用所述至少一个随机数,对所述第一加密密钥进行切割并重新组合,得到第二加密密钥;
其中,所述密钥更新模块,具体用于按照第一加密密钥中每个字符的排序,以及每个随机数的优先级,按照优先级由高至低的顺序,依次确定每个随机数对应数量的字符组成的子字符串,每个子字符串的优先级与对应的随机数的优先级相同;将优先级低的子字符串置前,所述优先级低高的子字符串置后,得到第二加密密钥,至少两个随机数的和小于所述第一加密密钥的长度。
8.一种基于上述权利要求7所述的数据加密装置的数据解密装置,其特征在于,所述装置包括:
随机数解密模块,用于采用预设的解密方式,对至少一个随机数分别加密得到的第二密文解密,得到至少一个随机数;
密钥生成模块,用于采用预设的加密方式,以及预先保存的初始密钥和初始向量,生成第一加密密钥;
密钥更新模块,用于根据所述至少一个随机数和所述第一加密密钥,确定第二加密密钥;
明文解密模块,用于采用所述第二加密密钥对明文数据加密得到的第一密文解密,得到明文数据;
其中,所述密钥更新模块,具体用于采用预先保存的切割组合方式,利用所述至少一个随机数,对所述第一加密密钥进行切割并重新组合,得到第二加密密钥;
其中,所述密钥更新模块,具体用于按照第一加密密钥中每个字符的排序,以及每个随机数的优先级,按照优先级由高至低的顺序,依次确定每个随机数对应数量的字符组成的子字符串,每个子字符串的优先级与对应的随机数的优先级相同;
将优先级低的子字符串置前,所述优先级低高的子字符串置后,得到第二加密密钥,至少两个随机数的和小于所述第一加密密钥的长度。
9.一种数据加密装置,其特征在于,所述装置包括:处理器和存储器;
所述处理器用于调用所述存储器中存储的程序,当程序被执行时,使得处理器执行上述权利要求1-5任一项所述的数据加密方法中的步骤。
10.一种数据解密装置,其特征在于,所述装置包括:处理器和存储器;
所述处理器用于调用所述存储器中存储的程序,当程序被执行时,使得处理器执行上述权利要求6所述的数据解密方法中的步骤。
11.一种计算机存储介质,其特征在于,存储有计算机程序,该计算机程序包括用于执行上述权利要求1-5任一项所述的数据加密方法中的步骤,和/或,上述权利要求6所述的数据解密方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811405801.0A CN109510703B (zh) | 2018-11-23 | 2018-11-23 | 一种数据加解密方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811405801.0A CN109510703B (zh) | 2018-11-23 | 2018-11-23 | 一种数据加解密方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109510703A CN109510703A (zh) | 2019-03-22 |
CN109510703B true CN109510703B (zh) | 2020-02-11 |
Family
ID=65750296
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811405801.0A Active CN109510703B (zh) | 2018-11-23 | 2018-11-23 | 一种数据加解密方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109510703B (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111431846B (zh) * | 2019-05-30 | 2022-12-02 | 杭州海康威视数字技术股份有限公司 | 数据传输的方法、装置和*** |
CN110995411B (zh) * | 2019-11-13 | 2022-04-26 | 京东科技控股股份有限公司 | 加密、解密方法、装置、电子设备及存储介质 |
CN111464564B (zh) * | 2020-05-08 | 2022-12-23 | 郑州信大捷安信息技术股份有限公司 | 一种基于对称密码算法的数据高速加解密方法及装置 |
CN111740954B (zh) * | 2020-05-18 | 2021-05-11 | 北京索德电气工业有限公司 | 电梯主控制器和电梯板卡通信加密方法 |
CN112685756B (zh) * | 2020-12-30 | 2021-09-21 | 北京海泰方圆科技股份有限公司 | 一种数据写入和读取方法、装置、介质和设备 |
CN113094731B (zh) * | 2021-04-15 | 2023-04-07 | 西南大学 | 基于互异分配再组合方案的区块链隐私保护方法 |
CN114390317B (zh) * | 2022-01-18 | 2024-03-19 | 山东点盾云网络科技有限公司 | 面向流式传输视频的加密方法及*** |
CN114513302A (zh) * | 2022-01-24 | 2022-05-17 | 上海焜耀网络科技有限公司 | 一种数据加解密方法及设备 |
CN114553491A (zh) * | 2022-01-24 | 2022-05-27 | 大唐互联科技(武汉)有限公司 | 一种数据分级加密方法、***及存储介质 |
CN114465720A (zh) * | 2022-01-25 | 2022-05-10 | 中国工商银行股份有限公司 | 密钥迁移方法及装置、存储介质和电子设备 |
CN114465804B (zh) * | 2022-02-16 | 2024-03-26 | 贵州福润德文化产业发展有限公司 | 一种可对抗重放攻击的指令加密、解密方法 |
CN114710359B (zh) * | 2022-04-15 | 2024-02-06 | 沈阳邦粹科技有限公司 | 工业网络动态密钥管理方法及工业网络加密通信方法 |
CN114884716B (zh) * | 2022-04-28 | 2024-02-27 | 世融能量科技有限公司 | 加密解密方法、装置及介质 |
CN115801321B (zh) * | 2022-10-20 | 2023-11-14 | 北京海泰方圆科技股份有限公司 | 一种数据组合加密方法及装置 |
CN116055039B (zh) * | 2022-12-29 | 2023-11-14 | 北京海泰方圆科技股份有限公司 | 一种基于分组密码算法的随机数生成方法及装置 |
CN117459233A (zh) * | 2023-12-21 | 2024-01-26 | 法琛堂(昆明)医疗科技有限公司 | 医疗信息多层加密方法、装置、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101242265A (zh) * | 2008-03-07 | 2008-08-13 | 四川虹微技术有限公司 | 安全***中流密码、伪随机数产生方法 |
CN103095696A (zh) * | 2013-01-09 | 2013-05-08 | 中国电力科学研究院 | 一种适用于用电信息采集***的身份认证和密钥协商方法 |
CN103716157A (zh) * | 2013-12-13 | 2014-04-09 | 厦门市美亚柏科信息股份有限公司 | 分组多密钥加密方法及装置 |
CN105245505A (zh) * | 2015-09-14 | 2016-01-13 | 深圳市优友互联有限公司 | 数据发送方法及装置、数据接收方法及装置、收发*** |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101782956B (zh) * | 2010-02-09 | 2012-06-13 | 杭州晟元芯片技术有限公司 | 一种基于aes实时加密的数据保护方法及装置 |
CN103458296B (zh) * | 2013-09-10 | 2016-08-10 | 江苏银河电子股份有限公司 | 智能机顶盒安全密钥生成方法 |
CN104253684B (zh) * | 2014-09-23 | 2018-02-02 | 深圳市汇顶科技股份有限公司 | 加密方法和加密装置 |
CN107038383B (zh) * | 2016-02-03 | 2020-08-25 | 华为技术有限公司 | 一种数据处理的方法和设备 |
-
2018
- 2018-11-23 CN CN201811405801.0A patent/CN109510703B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101242265A (zh) * | 2008-03-07 | 2008-08-13 | 四川虹微技术有限公司 | 安全***中流密码、伪随机数产生方法 |
CN103095696A (zh) * | 2013-01-09 | 2013-05-08 | 中国电力科学研究院 | 一种适用于用电信息采集***的身份认证和密钥协商方法 |
CN103716157A (zh) * | 2013-12-13 | 2014-04-09 | 厦门市美亚柏科信息股份有限公司 | 分组多密钥加密方法及装置 |
CN105245505A (zh) * | 2015-09-14 | 2016-01-13 | 深圳市优友互联有限公司 | 数据发送方法及装置、数据接收方法及装置、收发*** |
Also Published As
Publication number | Publication date |
---|---|
CN109510703A (zh) | 2019-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109510703B (zh) | 一种数据加解密方法及装置 | |
US9553722B2 (en) | Generating a key based on a combination of keys | |
EP3363142B1 (en) | A cryptographic device and an encoding device | |
KR102397579B1 (ko) | 부채널 분석 방지를 위한 화이트박스 암호 방법 및 장치 | |
US10050964B2 (en) | Method and system for securing data communicated in a network | |
US9565018B2 (en) | Protecting cryptographic operations using conjugacy class functions | |
CN111404952B (zh) | 变电站数据加密传输方法、装置、计算机设备和存储介质 | |
CN110505054B (zh) | 一种基于动态白盒的数据处理方法、装置及设备 | |
US20110182419A1 (en) | Encryption algorithm with randomized buffer | |
WO2017006118A1 (en) | Secure distributed encryption system and method | |
CN111404892B (zh) | 数据监管方法、装置和服务器 | |
US8804953B2 (en) | Extensive ciphertext feedback | |
CN112948867A (zh) | 加密报文的生成与解密方法、装置及电子设备 | |
KR102315632B1 (ko) | 신뢰 서버의 준동형 암호 기반 확장 가능한 그룹 키 생성 방법 및 시스템 | |
CN112100144A (zh) | 区块链文件共享方法、装置、存储介质及电子设备 | |
US10110373B2 (en) | System and method for manipulating both the plaintext and ciphertext of an encryption process prior to dissemination to an intended recipient | |
EP3298720B1 (en) | Computing with encrypted values | |
JPWO2015166701A1 (ja) | 暗号化方法、プログラム、および、システム | |
CN107968793B (zh) | 一种下载白盒密钥的方法、装置及存储介质 | |
EP3996321A1 (en) | Method for processing encrypted data | |
US11533162B2 (en) | Method for verification of integrity and decryption of an encrypted message, associated cryptomodule and terminal | |
CN114401148A (zh) | 一种通信数据加解密优化方法 | |
US11070356B2 (en) | Text encryption | |
CN114691759B (zh) | 数据查询统计方法、装置、计算机设备及存储介质 | |
WO2022237440A1 (en) | Authenticated encryption apparatus with initialization-vector misuse resistance and method therefor |
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 |