CN110401527A - 数据加密、解密方法、装置以及存储介质 - Google Patents

数据加密、解密方法、装置以及存储介质 Download PDF

Info

Publication number
CN110401527A
CN110401527A CN201810376663.1A CN201810376663A CN110401527A CN 110401527 A CN110401527 A CN 110401527A CN 201810376663 A CN201810376663 A CN 201810376663A CN 110401527 A CN110401527 A CN 110401527A
Authority
CN
China
Prior art keywords
data
ciphertext
initial
group
clear
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
CN201810376663.1A
Other languages
English (en)
Other versions
CN110401527B (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201810376663.1A priority Critical patent/CN110401527B/zh
Publication of CN110401527A publication Critical patent/CN110401527A/zh
Application granted granted Critical
Publication of CN110401527B publication Critical patent/CN110401527B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • 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/0872Generation of secret information including derivation or calculation of cryptographic keys or passwords using geo-location information, e.g. location data, time, relative position or proximity to other entities

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

数据加密、解密方法、装置以及存储介质
技术领域
本发明涉及加解密技术领域,具体涉及一种数据加密方法和装置、一种数据解密方法和装置以及存储介质。
背景技术
随着信息的发展,直播的载体、形式和内容都有了较大的变化,从早期的电视直播到网络电视,到如今网络直播俨然成为了主流。
在进房观看直播时,服务器会根据角色和签名为角色分配相应的上行权限。签名信息是通过TEA(Tiny Encryption Algorithm,微型加密算法)加密算法生成的,可以通过线下不断穷举加密密钥进行破解。如果密钥被破解,就可以伪造签名,给产品鉴权带一些不安全因素。
目前只能通过后台服务器不断更新密钥,来防止密文被破解,然而密文本身不具有时效性,依然存在极大的安全隐患。
发明内容
本发明实施例提供了一种数据加密方法和装置,可以提升数据的安全性。
本发明实施例提供了一种数据加密方法,包括:
获取密钥、时间信息以及待加密的明文数据;
将所述明文数据分为多个明文数据组;
从多个明文数据组中选取待加密的第一初始明文数据组,并通过所述密钥对所述第一初始明文数据组进行加密,得到中间密文数据;
根据所述中间密文数据和所述时间信息生成第一初始密文数据;
根据所述中间密文数据和所述密钥对剩余未加密的明文数据组进行加密。
本发明实施例提供了一种数据解密方法,包括:
获取密钥、时间信息以及待解密的密文数据;
将所述密文数据分为多个密文数据组;
从多个密文数据组中选取待解密的第一初始密文数据组,并根据所述第一初始密文数据组和所述时间信息,生成中间密文数据;
通过所述密钥对中间密文数据进行解密,生成第一初始明文数据;
根据所述中间密文数据和所述密钥对剩余未解密的密文数据组进行解密。
此外,本发明实施例提供了一种数据加密装置,包括:
获取单元,用于获取密钥、时间信息以及待加密的明文数据;
分组单元,用于将所述明文数据分为多个明文数据组;
选取单元,用于从多个明文数据组中选取待加密的第一初始明文数据组,并通过所述密钥对所述第一初始明文数据组进行加密,得到中间密文数据;
生成单元,用于根据所述中间密文数据和所述时间信息生成第一初始密文数据;
加密单元,用于根据所述中间密文数据和所述密钥对剩余未加密的明文数据组进行加密。
本发明实施例还提供了一种数据解密装置,包括:
获取单元,用于获取密钥、时间信息以及待解密的密文数据;
分组单元,用于将所述密文数据分为多个密文数据组;
选取单元,用于从多个密文数据组中选取待解密的第一初始密文数据组,并根据所述第一初始密文数据组和所述时间信息,生成中间密文数据;
生成单元,用于通过所述密钥对中间密文数据进行解密,生成第一初始明文;
解密单元,用于根据所述中间密文数据和所述密钥对剩余未解密的密文数据组进行解密。
另外,本发明实施例还提供了一种存储介质,其内存储有处理器可执行指令,该处理器通过执行所述指令提供如权利要求1-6中任一项所述的数据加密方法或如权利要求7-12中任一项所述的数据解密方法。
本发明实施例采用获取密钥、时间信息以及待加密的明文数据;将所述明文数据分为多个明文数据组;从多个明文数据组中选取待加密的第一初始明文数据组,并通过所述密钥对所述第一初始明文数据组进行加密,得到中间密文数据;根据所述中间密文数据和所述时间信息生成第一初始密文数据;根据所述中间密文数据和所述密钥对剩余未加密的明文数据组进行加密。本方案通过使用持续变化的时间为初始化向量,生成具体时效的密文,不在一个时间区域内无法解密密文,能够有效的防止密文的破解,更有效的保护密钥,极大的提升了数据的安全性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a是本发明实施例提供的数据加密、解密方法的应用场景示意图。
图1b是本发明实施例提供的数据加密方法的流程示意图。
图1c是本发明实施例提供的数据加密算法的流程图。
图2是本发明实施例提供的数据加密方法的另一流程示意图。
图3a是本发明实施例提供的数据解密方法的流程示意图。
图3b是本发明实施例提供的数据解密算法的流程图。
图4是本发明实施例提供的数据解密方法的另一流程示意图。
图5a是本发明实施例提供的数据加密装置的结构示意图。
图5b是本发明实施例提供的数据加密装置的另一结构示意图。
图6a是本发明实施例提供的数据解密装置的结构示意图。
图6b是本发明实施例提供的数据解密装置的另一结构示意图。
图7是本发明实施例所提供的服务器的结构示意图。
具体实施方式
请参照图式,其中相同的组件符号代表相同的组件,本申请的原理是以实施在一适当的运算环境中来举例说明。以下的说明是基于所例示的本申请具体实施例,其不应被视为限制本申请未在此详述的其它具体实施例。
在以下的说明中,本申请的具体实施例将参考由一部或多部计算机所执行的步骤及符号来说明,除非另有述明。因此,这些步骤及操作将有数次提到由计算机执行,本文所指的计算机执行包括了由代表了以一结构化型式中的数据的电子信号的计算机处理单元的操作。此操作转换该数据或将其维持在该计算机的内存系统中的位置处,其可重新配置或另外以本领域测试人员所熟知的方式来改变该计算机的运作。该数据所维持的数据结构为该内存的实体位置,其具有由该数据格式所定义的特定特性。但是,本申请原理以上述文字来说明,其并不代表为一种限制,本领域测试人员将可了解到以下所述的多种步骤及操作亦可实施在硬件当中。
本文所使用的术语“模块”可看做为在该运算系统上执行的软件对象。本文所述的不同组件、模块、引擎及服务可看做为在该运算系统上的实施对象。而本文所述的装置及方法可以以软件的方式进行实施,当然也可在硬件上进行实施,均在本申请保护范围之内。
本申请中的术语“第一”、“第二”和“第三”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或模块的过程、方法、系统、产品或设备没有限定于已列出的步骤或模块,而是某些实施例还包括没有列出的步骤或模块,或某些实施例还包括对于这些过程、方法、产品或设备固有的其它步骤或模块。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
本发明实施例提供了一种数据加密方法和装置、一种数据解密方法和装置以及存储介质,其中该数据加密装置和数据解密装置可以采用硬件或者软件的方式实现。
在具体的实施例中,该数据加密装置可以集成在服务器中,例如集成在网页web服务器。该数据解密装置可以集成在终端中,例如集成在个人计算机。
请参阅图1a,图1a是本发明实施例提供的数据加密、解密方法的应用场景示意图,以数据加密装置集成在服务器,数据解密装置集成在终端为例。
具体的,密钥和时间信息都是由服务器b生成,明文数据是由服务器b从终端c中获取。在具体加密过程中,服务器a先从服务器b中获取密钥、时间信息和待加密的明文数据,然后服务器a对待加密的明文数据进行分组,之后再根据密钥和时间信息分别对各组明文数据进行加密(明文数据加密成为密文数据),再由服务器a将生成的密文数据发送至终端c,经过上述加密之后,生成的密文具有时效性,能够提升数据的安全性。
此外,终端c接收到密文数据后,若要对密文数据进行解密,则终端c从服务器b中获取密钥和时间信息,然后终端c对待解密的密文数据进行分组,之后再根据密钥和时间信息分别对各组密文数据进行解密(密文数据解密成为明文数据)。
比如,在观看直播时,有人想恶意改变上行权限,就必须对密文进行破解。而此时,由于加密过程中增加了时间信息,使得生成的密文是具有时效性的,只有在指定有效时间里,才能通过密钥解密出明文,有效的避免线下攻击,为产品提供了更安全的鉴权服务。
以下分别进行详细说明。
本实施例将从数据加密装置的角度进行描述,该数据加密装置可以集成在服务器,如图1b所示,本实施例的方法的具体流程可以如下:
101、获取密钥、时间信息以及待加密的明文数据。
其中,明文数据是指没有加密的文字(或者字符串),属于密码学术语。在通信系统中它可能是比特流,如文本、位图、数字化的语音或者数字化的视频图像等。一般可以简单地认为明文数据是有意义的字符或者比特集,或通过某种公开的编码标准就能获得的消息。
其中,密钥是一种参数,它是在明文数据转换为密文数据或将密文数据转换为明文数据的算法中输入的参数。
具体的,密钥又分为对称密钥和非对称密钥。本发明实施例使使用的是对称密钥(16字节),即信息的发送方和接收方使用同一个密钥去加密和解密数据。
在实施过程中,密钥的字节长度可能与本发明实施例中的加密算法需要的长度不同,因此,可以按照一定的规律将该密钥转换为符合需求的密钥,比如,通过MD5算法可以将任意字符串转换为128bit(16字节)的密钥。也即:在步骤“获取密钥、时间信息以及待加密的明文数据”之后还可以包括:
确定所述密钥的字节长度;
若所述密钥的字节长度不符合预设需求;
则通过预设策略将所述密钥转换为符合预设需求的密钥。
在本发明实施例中,密钥是由后台动态下发的,后台的管理人员可以定时对密钥进行更新。
在本发明实施例中,时间信息为8字节的long型数据,可以使用当前时区时间作为时间信息;也可以结合时间服务器,解密端先与时间服务器进行时间同步,以时间服务器的时间作为时间信息。比如,包括“20180101”等。在一些实施例中,时间信息可以以向量的形式呈现,比如,包含时间信息的初始向量。
102、将所述明文数据分为多个明文数据组。
比如,根据预设分组规则将明文数据分为N个明文数据组,即N组明文数据。其中,分组规则可以根据实际需求设定,比如以8字节为一组或以16字节为一组等等。
本发明实施例采用的加密算法只能加密定长的数据(8字节),因此,在加密前需要对明文数据进行分组,每个分组的大小为8字节,不足填0。
在具体实施过程中,如果明文数据本身的字节长度不是8的倍数,那么还要进行填充以使其成为8的倍数。以字节为单位,令N=原始字符串+10+填充字节数n,则N应该是8的倍数。
具体的填充方法:第一个字节为:(random()&0xf8)|n,随后填充(n+2)个字节random()&0xff,后面接原始数据,最后填充7个字节0x00(1个字节标识a的长度(低位填充a,高位填充随机数)+a个字节的随机数填充+2位随机数填充+原始数据+7个字节0填充)。因为使用了不同的随机数,所以填充的结果使得即使对于相同的明文数据,密文数据的结果也会不同。密文解密时这些填充进去的随机数不影响解密。
在实施过程中,进行加密之前需要先将明文数据转换为byte数组,然后根据填充算法将明文数据转换成为符合需求的数据。也即,在步骤“将所述明文数据分为多个明文数据组”之前,还可以包括:
确定所述明文数据的字节长度;
若所述明文数据的字节长度不符合预设长度;
则根据预设规则对所述明文数据进行处理。
即,步骤“将所述明文数据分为多个明文数据组”可以包括:
将处理后的明文数据按照预设分组规则分为多个明文数据组。
比如,待加密的明文数据为259字节,不是8的倍数,那么则需要在对该明文数据进行填充,使得填充后的密文数据的字节长度为8倍数,再进行分组。比如,将明文数据填充为264字节、272字节或者280字节等等。
103、从多个明文数据组中选取待加密的第一初始明文数据组,并通过所述密钥对所述第一初始明文数据组进行加密,得到中间密文数据。
比如,在进行分组时,会对多个明文数据组进行标号。例如:“第一组、第二组、第三组……第N组”、“1,2,3……N”或“a,b,c……N”等等。在加密时,需要先从多组明文数据组中选取一组作为第一初始明文数据组,即,第一个被加密的明文数据组。
比如,多个明文数据组的标号为“1,2,3……N”,在加密过程中,选取了标号为“3”的明文数据组为第一初始明文数据组,则按照“3,4,5……N,1,2”的顺序进行加密。其中,第一初始明文数据的选取可以是根据标号的顺序选取第一个作为第一初始明文数据,也可以是从多个明文数据组中随机选取一个明文数据组作为第一初始明文数据。
在实施过程中,第一初始明文数据组经密钥进行加密后生成中间密文。
在一实施例中,为了使密文的安全性更高,能够更好的保护密钥,可以将中间密文作为生成第一初始密文数据和其他密文数据的中间数据,使得在对密文进行解密时,必须对第一初始明书数据解密成功后,才能进行后续解密,否则解密失败。
104、根据所述中间密文数据和所述时间信息生成第一初始密文数据。
在一实施例中,为了使最终生成的密文具有时效性,可以在第一初始明文数据的加密时通过增加时间信息与中间密文数据进行异或,使得密文具有时效性。也即,步骤“根据所述中间密文数据和所述时间信息生成第一初始密文数据”可以包括:
将所述中间密文数据与所述时间信息进行异或,得到第一初始密文数据。
其中,异或表示异或运算,异或运算的运算法则:如果a、b两个值不相同,则异或结果为1(相同为0,不同为1。)。如果a、b两个值相同,异或结果为0。比如:0和1进行异或则值为1,1和1异或则值为1。
105、根据所述中间密文数据和所述密钥对剩余未加密的明文数据组进行加密。
在一实施例中,为了使密文的安全性更高,第二初始明文数据组的加密不会直接使用第一初始密文数据,而是根据第一组的中间密文数据与密钥对第二初始明文数据组进行加密。
其中,第二初始明文数据组是标号在第一初始明文数据组之后的一组明文数据组。比如:第一初始明文数据组的标号为“3”,那么第二初始明文数据组则是标号为“4”的明文数据组。第二初始明文数据组的选取和第一初始明文数据组有关。也即,步骤“根据所述中间密文数据和所述密钥对剩余未加密的明文数据组进行加密”可以包括:
根据所述第一初始明文数据组从多个明文数据组中选取待加密的第二初始明文数据组;
根据所述中间密文数据和所述密钥对所述第二初始明文数据组进行加密,得到第二初始密文数据;
根据所述第二初始密文数据组和所述密钥对剩余未加密的明文数据组进行加密。
其中,步骤“根据所述中间密文数据和所述密钥对所述第二初始明文数据组进行加密,得到第二初始密文数据”可以包括:
将所述中间密文数据与所述第二初始明文数据组进行异或,得到当前中间明文数据;
通过所述密钥对当前中间明文数据进行加密,得到第二初始密文数据。
进一步的,步骤“根据所述第二初始密文数据和所述密钥对剩余未加密的明文数据组进行加密”可以包括:
从当前未加密的明文数据组中确定当前待加密的目标明文数据组;
从当前生成的密文数据中选取相应的目标密文数据;
根据所述目标密文数据和密钥对所述目标明文数据进行加密,并返回执行从当前未加密的明文数据组中确定当前待加密的目标明文数据组的步骤,直到所有明文数据组加密完成。
其中,当前待加密的目标明文数据组是根据第二初始明文数据组选取的。比如,第二初始明文数据组的标号为“3”,那么加密完第二初始明文数据组后的下一个待加密的明文数据组的标号则为“4”,当加密完第二初始明文数据组的下一个待加密的明文数据组后,第二初始明文数据组的下下个待加密的明文数据组的标号为“5”,依次类推,直到所有的明文数据组加密完成。其中第二初始明文数据组的下下个待加密的明文数据组是指第二初始明文数据组的下一个的下一个待加密的明文数据组。
在具体实施过程中,步骤“根据所述目标密文数据和密钥对所述目标明文数据进行加密”可以包括:
将所述目标密文数据与所述目标明文数据进行异或,得到当前中间明文数据;
通过所述密钥对所述当前中间明文数据进行加密,得到当前密文数据。
其中,中间明文数据可以使得密文数据的安全性更高,即使通过密钥对密文进行解密,也不能直接得到明文数据。
在本实施例中,除第一初始明文数据组和第二初始明文数据组的其他明文数据组的加密,通常是将前一组生成的密文数据与本组明文数据进行异或运算,生成本组中间明文数据,再通过密钥对中间明文数据进行加密,得到本组的密文数据。
参考图1c,图1c本发明实施例提供的数据加密算法的流程图。
其中,InitVector表示初始化向量,在本发明实施例中,初始化向量用时间信息代替。PrePlain表示前一明文块,Plain表示明文块,Key表示密钥,Block Encry表示加密模块,Precrypt表示前一密文块,crypt表示密文块,XOR表示异或运算。
具体的,前一明文块(第一组明文)PrePlain通过密钥Key在加密模块Block Encry中进行加密后,将加密结果与初始化向量InitVector进行异或,得到前一密文块(第一组密文)Precrypt。然后再将前一明文块通过密钥加密的加密结果与下一组明文块(第二组明文)Plain进行异或,再将异或结果通过密钥Key在加密模块Block Encry中进行加密,得到下一组密文块(第二组密文)crypt。之后,将第三组明文与第二组密文进行异或后,将异或结果通过密钥在加密模块中进行加密,得到第三组密文。第四组明文与第三组密文进行异或后,将异或结果通过密钥在加密模块中进行加密,得到第四组密文。,依此类推,直到所有明文加密完成。
本实施例提供的数据加密方法通过获取密钥、时间信息以及待加密的明文数据;将所述明文数据分为多个明文数据组;多个明文数据组中选取待加密的第一初始明文数据组,并通过所述密钥对所述第一初始明文数据组进行加密,得到中间密文数据;根据所述中间密文数据和所述时间信息生成第一初始密文数据;根据所述中间密文数据和所述密钥对剩余未加密的明文数据组进行加密。本方案通过使用持续变化的时间为初始化向量,生成具体时效的密文,不在一个时间区域内无法解密密文,能够有效的防止密文的破解,更有效的保护密钥,极大的提升了数据的安全性。
上述实施例所描述的方法,以下将举例作进一步详细说明。如图2所示,本实施例的数据加密方法的具体流程可以如下:
201,获取密钥、时间信息以及待加密的明文数据。
其中,明文数据是指没有加密的文字(或者字符串),属于密码学术语。在通信系统中它可能是比特流,如文本、位图、数字化的语音或者数字化的视频图像等。一般可以简单地认为明文数据是有意义的字符或者比特集,或通过某种公开的编码标准就能获得的消息。
其中,密钥是一种参数,它是在明文数据转换为密文数据或将密文数据转换为明文数据的算法中输入的参数。
具体的,密钥又分为对称密钥和非对称密钥。本发明实施例使用的是对称密钥(16字节),即信息的发送方和接收方使用同一个密钥去加密和解密数据。
在实施过程中,密钥的字节长度可能与本发明实施例中的加密算法需要的长度不同,因此,可以按照一定的规律将该密钥转换为符合需求的密钥,比如,通过MD5算法可以将任意字符串转换为128bit(16字节)的密钥。
202,根据预设分组规则将待加密的明文数据分成多个明文数据组。
比如,根据预设分组规则将明文数据分为N个明文数据组,即N组明文数据。其中,分组规则可以根据实际需求设定,比如以8字节为一组或以16字节为一组等等。
本发明实施例采用的加密算法只能加密定长的数据(8字节),因此,在加密前需要对明文数据进行分组,每个分组的大小为8字节,不足填0。
在具体实施过程中,如果明文数据本身的字节长度不是8的倍数,那么还要进行填充以使其成为8的倍数。以字节为单位,令N=原始字符串+10+填充字节数n,则N应该是8的倍数。
具体的填充方法:第一个字节为:(random()&0xf8)|n,随后填充(n+2)个字节random()&0xff,后面接原始数据,最后填充7个字节0x00(1个字节标识a的长度(低位填充a,高位填充随机数)+a个字节的随机数填充+2位随机数填充+原始数据+7个字节0填充)。因为使用了不同的随机数,所以填充的结果使得即使对于相同的明文数据,密文数据的结果也会不同。密文解密时这些填充进去的随机数不影响解密。
在实施过程中,进行加密之前需要先将明文数据转换为byte数组,然后确定明文数据的字节长度是否为8的倍数,如果不是,则根据填充算法对明文数据进行填充,使其字节长度为8的倍数,然后再对填充后的明文数据进行分组。
203,通过密钥对第一初始明文数据组进行加密得到中间密文数据。
其中,在进行分组时,会对多个明文数据组进行标号。例如:“第一组、第二组、第三组……第N组”、“1,2,3……N”或“a,b,c……N”等等。在加密过程中,需要确定第一个被加密的明文数据组,即第一初始明文数据。
比如,多个明文数据组的标号为“1,2,3……N”,在加密过程中,选取了标号为“3”的明文数据组为第一初始明文数据组,则按照“3,4,5……N,1,2”的顺序进行加密。其中,第一初始明文数据的选取可以是根据标号的顺序选取第一个作为第一初始明文数据,也可以是从多个明文数据组中随机选取一个明文数据组作为第一初始明文数据。
在实施过程中,第一初始明文数据组经密钥进行加密后生成中间密文。
在一实施例中,为了使密文的安全性更高,能够更好的保护密钥,可以将中间密文作为生成第一初始密文数据和其他密文数据的中间数据,使得在对密文进行解密时,必须对第一初始明书数据解密成功后,才能进行后续解密,否则解密失败。
204,将中间密文数据与时间信息进行异或生成第一初始密文数据。
在一实施例中,为了使最终生成的密文具有时效性,可以在第一初始明文数据的加密过程中通过增加时间信息与中间密文数据进行异或,使得密文具有时效性。
其中,异或表示异或运算,异或运算的运算法则:如果a、b两个值不相同,则异或结果为1(相同为0,不同为1。)。如果a、b两个值相同,异或结果为0。比如:0和1进行异或则值为1,1和1异或则值为1。
205,将中间密文与第二初始明文数据组进行异或,再将异或结果通过密钥进行加密得到第二初始密文数据。
在一实施例中,为了使密文的安全性更高,第二初始明文数据组的加密不会直接使用第一初始密文数据,而是根据中间密文数据与第二初始明文数据组进行异或,再将异或结果通过密钥进行加密,得到第二初始明文数据。
其中,第二初始明文数据组是标号在第一初始明文数据组之后的一组明文数据组。比如:第一初始明文数据组的标号为“3”,那么第二初始明文数据组则是标号为“4”的明文数据组。第二初始明文数据组的确定和第一初始明文数据组有关。
206,将前一组的密文数据与当前待加密的明文数据组进行异或,再将异或结果通过密钥进行加密得到当前组的密文数据。
在一实施例中,除第一初始明文数据组和第二初始明文数据组的其他明文数据组的加密,通常是将前一组生成的密文数据与当前待加密的明文数据组进行异或运算,生成本组中间明文数据,再通过密钥对中间明文数据进行加密,生成本组的密文数据。
其中,当前待加密明文数据组是根据第二初始明文数据组选取的。比如,第二初始明文数据组的标号为“3”,那么加密完第二初始明文数据组后的下一个待加密的明文数据组的标号则为“4”,当加密完第二初始明文数据组的下一个待加密的明文数据组后,第二初始明文数据组的下下个待加密的明文数据组的标号为“5”。其中第二初始明文数据组的下下个待加密的明文数据组是指第二初始明文数据组的下一个的下一个待加密的明文数据组。
207,判断所有明文数据组是否加密完成,若没有,则返回执行步骤206,直到所有明文数据组加密完成。
在一实施例中,需要将前一组生成的密文数据与当前待加密的明文数据组进行异或运算,再用密钥进行加密生成当前组的密文数据。因此,将当前待加密的明文数据组加密成密文数据后,下一明文数据组的加密需要根据当前组的密文数据进行加密。
比如,当前待加密的明文数据组的标号为“3”,下一个待加密的明文数据组的标号则为“4”,则标号为“4”的明文数据组的加密需要通过将标号为“3”的明文数据组的加密结果与标号为“4”的明文数据进行异或,再用密钥进行加密生成标号为“4”的明文数据组的密文数据。依次类推,直到所有的明文数据组加密完成。
本实施例提供的数据加密方法通过获取密钥、时间信息以及待加密的明文数据;再根据预设分组规则将待加密的明文数据分成多个明文数据组;通过密钥对第一初始明文数据组进行加密得到中间密文数据;将中间密文数据与时间信息进行异或生成第一初始密文;将中间密文与第二初始明文数据组进行异或,再用密钥进行加密得到第二初始密文;将前一组的密文数据与当前待加密的明文数据组进行异或,再用密钥进行加密得到当前组的密文数据;最后判断所有明文数据组是否加密完成,若没有,则返回执行步骤206,直到所有明文数据组加密完成。本方案通过使用持续变化的时间为初始化向量,生成具体时效的密文,不在一个时间区域内无法解密密文,能够有效的防止密文的破解,更有效的保护密钥,极大的提升了数据的安全性。
本发明实施例还提供了一种数据解密方法,本实施例将从数据解密装置的角度进行描述,该数据解密装置可以集成在终端(如个人计算机),如图3a所示,本实施例的方法的具体流程可以如下:
301、获取密钥、时间信息以及待解密的密文数据。
其中,密文数据是指加了密的文字(或者字符串),属于密码学术语。密文数据是对明文数据进行加密后的报文。密文数据是对明文数据施加某种伪装或变换后的输出,也可以理解为不可直接理解的字符或比特集,但可通过算法还原的被打乱的消息,与明文数据相对。
其中,密钥是一种参数,它是在明文数据转换为密文数据或将密文数据转换为明文数据的算法中输入的参数。
具体的,密钥又分为对称密钥和非对称密钥。本发明实施例使用的是对称密钥(16字节),即信息的发送方和接收方使用同一个密钥去加密和解密数据。
在本发明实施例中,密钥是由后台动态下发的,后台的管理人员可以定时对密钥进行更新。
在本发明实施例中,时间信息为8字节的long型数据,可以使用当前时区时间作为时间信息;也可以结合时间服务器,解密端先与时间服务器进行时间同步,以时间服务器的时间作为时间信息。比如,包括“20180101”等。在一些实施例中,时间信息可以以向量的形式呈现,比如,包含时间信息的初始向量。
302、将所述密文数据分为多个密文数据组。
在具体实施过程中,由于在加密过程中,当明文数据本身的长度不是8的倍数时,采用了填充算法进行填充。因此,密文数据的字节长度满足8的倍数的条件,可以直接进行分组。比如:以8字节为一组或以16字节为一组等等。
303、从多个密文数据组中选取待解密的第一初始密文数据组,并根据所述第一初始密文数据组和所述时间信息,生成中间密文数据。
由于本发明实施例使用的是一种对称加解密算法,因此,在对待解密的密文数据进行分组时,会根据加密前的明文数据组的标号对密文数据组进行相应的标号。具体的,在对待解密的密文数据进行分组后,会将对应的加密前的明文数据组的标号赋予该密文数据组。比如,某密文数据组加密前的明文数据组的标号为“3”,即该密文数据组的标号也为“3”。因此,第一初始密文数据组是根据第一初始明文数据组选取的。
在加密过程中,为了使最终生成的密文具有时效性,在第一初始明文数据的加密时通过增加时间信息与中间密文数据进行异或,使得密文具有时效性。
因此,在解密过程中,从多个密文数据组中选取了一个密文数据组作为第一初始密文数据组后,需要将第一初始密文数据组与时间信息进行异或运算,生成中间密文数据。即,步骤“根据所述第一初始密文数据组和所述时间信息,生成中间密文数据”可以包括:
将所述第一初始密文数据组与所述时间信息进行异或,得到中间密文数据。
其中,异或表示异或运算,异或运算的运算法则:如果a、b两个值不相同,则异或结果为1(相同为0,不同为1。)。如果a、b两个值相同,异或结果为0。比如:0和1进行异或则值为1,1和1异或则值为1。
304、通过所述密钥对中间密文数据进行解密,生成第一初始明文数据。
由于在加密过程中,为了使密文的安全性更高,第二初始明文数据组的加密不会直接使用第一初始密文数据,而是根据第一组的中间密文数据与密钥对第二初始明文数据组进行加密。因此,在进行解密时,是通过第一初始密文数据组与所述时间信息进行异或,得到中间密文数据后,再用密钥进行解密,得到第一初始明文数据。
305、根据所述中间密文数据和所述密钥对剩余未解密的密文数据组进行解密。
其中,解密顺序与加密顺序对应。例如,多个明文数据组的标号为“1,2,3……N”,在加密过程中,选取了标号为“3”的明文数据组为第一初始明文数据组,则按照“3,4,5……N,1,2”的顺序进行加密。那么,在解密过程中,将会选取标号为“3”的密文数据组为第一初始密文数据组,按照“3,4,5……N,1,2”的顺序进行解密。
在实施过程中,由于多个密文数据组的标号与加密前的明文数据组的标号是相对应的。因此,第二初始密文数据组的标号是标号在第一初始密文数据组之后的密文数据组。比如:第一初始密文数据组的标号为“3”,那么第二初始密文数据组则是标号为“4”的密文数据组。第二初始密文数据组的选取和第一初始密文数据组有关。也即,步骤“根据所述中间密文数据和所述密钥对剩余未解密的密文数据组进行解密”可以包括:
根据所述第一初始密文数据组从多个密文数据组中选取待解密的第二初始密文数据组;
根据所述中间密文数据和所述密钥对所述第二初始密文数据组进行解密,得到第二初始明文数据;
根据所述第二初始密文数据组和所述密钥对剩余未解密的密文数据组进行解密。
其中,步骤“根据所述中间密文数据和所述密钥对所述第二初始密文数据组进行解密,得到第二初始明文数据”可以包括:
通过所述密钥对所述第二初始密文数据进行解密,得到当前中间明文数据;
将所述当前中间明文数据与所述中间密文数据进行异或,得到第二初始明文数据。
进一步的,步骤“根据所述第二初始密文数据和所述密钥对剩余未解密的密文数据进行解密”可以包括:
从当前未解密的密文数据组中确定当前待解密的第一目标密文数据组;
从当前已解密的密文数据组中选取第二目标密文数据组;
根据所述第二目标密文数据组和密钥对所述第一目标密文数据组进行解密,并返回执行从当前未解密的密文数据组中确定当前待解密的第一目标密文数据组的步骤,直到所有密文数据组解密完成。
其中,当前待解密的第一目标密文数据组是根据第二初始密文数据组选取的,比如,第二初始密文数据组的标号为“3”,那么解密完第二初始密文数据组后的下一个待解密的密文数据组的标号则为“4”,当加密完第二初始密文数据组的下一个待解密的密文数据组后,第二初始密文数据组的下下个待解密的密文数据组的标号为“5”,依次类推,直到所有的密文数据组解密完成。其中第二初始密文数据组的下下个待解密的密文数据组是指第二初始密文数据组的下一个的下一个待解密的密文数据组。
在具体实施过程中,步骤“根据所述第二目标密文数据组和密钥对所述第一目标密文数据组进行解密”可以包括:
通过所述密钥对所述第一目标密文数据组进行解密,得到当前中间明文;
将所述当前中间明文与所述第二目标密文数据组进行异或,得到当前明文数据。
在解密过程中,除第一初始密文数据组和第二初始密文数据组的其他密文数据组的解密,通常是通过密钥对本组密文数据进行解密生成中间明文数据,再将前一组密文数据与本组中间明文数据进行异或,得到本组的明文数据。
参考图3b,图3b本发明实施例提供的数据解密算法的流程图。
其中,InitVector表示初始化向量,在本发明实施例中,初始化向量用时间信息代替。PrePlain表示前一明文块,Plain表示明文块,Key表示密钥,Block Decry表示解密模块,Precrypt表示前一密文块,crypt表示密文块,XOR表示异或运算。
具体的,前一密文块(第一组密文)Precrypt与初始化向量InitVector进行异或,再将异或结果通过密钥Key在解密模块Block Decry中进行解密,得到前一明文块(第一组明文)PrePlain。然后再将下一组密文块(第二组密文)crypt通过密钥Key在解密模块BlockDecry中进行解密后,将解密结果,与前一密文块和初始化向量的异或结果进行异或,得到下一组明文块(第二组明文)crypt。之后,第三组密文通过密钥在解密模块中进行解密后,将解密结果与第二组密文进行异或,得到第三组明文。第四组密文通过密钥在解密模块中进行解密后,将解密结果与第三组密文进行异或,得到第四组明文,依此类推,直到所有密文解密完成。
本实施例提供的数据解密方法,通过获取密钥、时间信息以及待解密的密文数据;将所述密文数据分为多个密文数据组;从多个密文数据组中选取待解密的第一初始密文数据组,并根据所述第一初始密文数据组和所述时间信息,生成中间密文数据;通过所述密钥对中间密文数据进行解密,生成第一初始明文数据;根据所述中间密文数据和所述密钥对剩余未解密的密文数据组进行解密。本方案可以在同一时间区域内,通过密钥解密出明文。
上述实施例所描述的方法,以下将举例作进一步详细说明。如图4所示,本实施例的数据解密方法的具体流程可以如下:
401,获取密钥、时间信息以及待解密的密文数据。
其中,密文数据是指加了密的文字(或者字符串),属于密码学术语。密文数据是对明文数据进行加密后的报文。密文数据是对明文数据施加某种伪装或变换后的输出,也可以理解为不可直接理解的字符或比特集,但可通过算法还原的被打乱的消息,与明文数据相对。
其中,密钥是一种参数,它是在明文数据转换为密文数据或将密文数据转换为明文数据的算法中输入的参数。
具体的,密钥又分为对称密钥和非对称密钥。在本发明实施例中,使用的是对称密钥(16字节),即信息的发送方和接收方使用同一个密钥去加密和解密数据。
在本发明实施例中,密钥是由后台动态下发的,后台的管理人员可以定时对密钥进行更新。
在本发明实施例中,时间信息为8字节的long型数据,可以使用当前时区时间作为时间信息;也可以结合时间服务器,解密端先与时间服务器进行时间同步,以时间服务器的时间作为时间信息。比如,包括“20180101”等。在一些实施例中,时间信息可以以向量的形式呈现,比如,包含时间信息的初始向量。
402,根据预设分组规则将待解密的密文数据分成多个密文数据组。
在具体实施过程中,由于在加密过程中,当明文数据本身的长度不是8的倍数时,采用了填充算法进行填充。因此,密文数据的字节长度满足是8的倍数的条件,可以直接进行分组。比如:以8字节为一组或以16字节为一组等等。
403,将第一初始密文数据组与时间信息进行异或,得到中间密文数据。
由于本发明实施例使用的是一种对称加解密算法,因此,在对待解密的密文数据进行分组时,会根据加密前的明文数据组的标号对密文数据组进行相应的标号。具体的,在对待解密的密文数据进行分组后,会将对应的加密前的明文数据组的标号赋予该密文数据组。比如,某密文数据组加密前的明文数据组的标号为“3”,即该密文数据组的标号也为“3”。因此,第一初始密文数据组是根据第一初始明文数据组选取的。
在加密过程中,为了使最终生成的密文具有时效性,在第一初始明文数据的加密时通过增加时间信息与中间密文数据进行异或,使得密文具有时效性。
因此,在解密过程中,从多个密文数据组中选取了一个密文数据组作为第一初始密文数据组后,需要将第一初始密文数据组与时间信息进行异或运算,生成中间密文数据。
其中,异或表示异或运算,异或运算的运算法则:如果a、b两个值不相同,则异或结果为1(相同为0,不同为1。)。如果a、b两个值相同,异或结果为0。比如:0和1进行异或则值为1,1和1异或则值为1。
404,通过密钥对中间密文数据进行解密,得到第一初始明文数据。
由于在加密过程中,为了使密文的安全性更高,第二初始明文数据组的加密不会直接使用第一初始密文数据,而是根据第一组的中间密文数据与密钥对第二初始明文数据组进行加密。因此,在进行解密时,是通过第一初始密文数据组与所述时间信息进行异或,得到中间密文数据后,再用密钥进行解密,得到第一初始明文数据。
405,通过密钥对第二初始密文数据组进行解密,再将解密结果与中间密文数据进行异或,得到第二初始明文数据。
在实施过程中,由于多个密文数据组的标号与加密前的明文数据组的标号是相对应的。因此,第二初始密文数据组的标号是标号在第一初始密文数据组之后的密文数据组。比如:第一初始密文数据组的标号为“3”,那么第二初始密文数据组则是标号为“4”的密文数据组。第二初始密文数据组的选取和第一初始密文数据组有关。
由于在加密过程中,为了使密文的安全性更高,第二初始明文数据组的加密不会直接使用第一初始密文数据,而是根据中间密文数据与第二初始明文数据组进行异或,再将异或结果通过密钥进行加密,得到第二初始明文数据。因此,在解密第二初始密文数据时,需要通过密钥对第二初始密文数据组进行解密,再将解密结果与中间密文数据进行异或,才能得到第二初始明文数据。
406,通过密钥对当前待解密的密文数据组进行解密,再将解密结果与前一组的密文数据进行异或,得到当前组的明文数据。
在一实施例中,除第一初始密文数据组和第二初始密文数据组的其他密文数据组的解密,通常是通过密钥对本组密文数据进行解密生成中间明文数据,再将前一组密文数据与本组中间明文数据进行异或,得到本组的明文数据。
其中,当前待解密的密文数据组是根据第二初始密文数据组选取的,比如,当前待解密的密文数据组的标号为“3”,那么解密完第二初始密文数据组后的下一个待解密的密文数据组的标号则为“4”,当解密完第二初始密文数据组的下一个待解密的密文数据组后,第二初始密文数据组的下下个待解密的密文数据组的标号为“5”。其中第二初始密文数据组的下下个待解密的密文数据组是指第二初始密文数据组的下一个的下一个待解密的密文数据组。
407,判断所有密文数据组是否解密完成,若没有,则返回执行步骤406,直到所有密文数据组解密完成。
在一实施例中,需要通过密钥将当前待解密的密文数据组进行解密,再将解密结果与前一组密文数据进行异或,得到当前组的明文数据。因此,将当前待解密的密文数据组解密成为明文数据后,下一组密文数据组的解密需要根据当前组的密文数据进行加密。
比如,当前待解密的密文数据组的标号为“3”,下一个待解密的密文数据组的标号则为“4”,则标号为“4”的密文数据组的解密需要先用密钥进行解密,再将解密结果与标号为“3”的密文数据组进行异或,生成标号为“4”的密文数据组的明文数据。依次类推,直到所有的密文数据组解密完成。
本实施例提供的数据解密方法,通过获取密钥、时间信息以及待解密的密文数据;再根据预设分组规则将待解密的密文数据分成多个密文数据组;将第一初始密文数据组与时间信息进行异或,得到中间密文数据;通过密钥对中间密文数据进行解密,得到第一初始明文数据;然后通过密钥对第二初始密文数据组进行解密,再将解密结果与中间密文数据进行异或,得到第二初始明文数据;通过密钥对当前待解密的密文数据组进行解密,再将解密结果与前一组的密文数据进行异或,得到当前组的明文数据;最后判断所有密文数据组是否解密完成,若没有,则返回执行步骤406,直到所有密文数据组解密完成。本方案可以在同一时间区域内,通过密钥解密出明文。
为了更好地实施以上方法,本发明实施例还提供一种数据加密装置,如图5a所示,该数据加密装置包括:获取单元501、分组单元502、选取单元503、生成单元504以及加密单元505,如下:
获取单元501,用于获取密钥、时间信息以及待加密的明文数据;
分组单元502,用于将所述明文数据分为多个明文数据组;
选取单元503,用于从多个明文数据组中选取待加密的第一初始明文数据组,并通过所述密钥对所述第一初始明文数据组进行加密,得到中间密文数据;
生成单元504,用于根据所述中间密文数据和所述时间信息生成第一初始密文数据;
加密单元505,用于根据所述中间密文数据和所述密钥对剩余未加密的明文数据组进行加密。
在一些实施例中,所述生成单元504,可以用于:
将所述中间密文数据与所述时间信息进行异或,得到第一初始密文数据。
在一些实施例中,参考图5b,所述加密单元505,可以包括:
明文选取子单元5051,用于根据所述第一初始明文数据组从多个明文数据组中选取待加密的第二初始明文数据组;
第一加密子单元5052,用于根据所述中间密文数据和所述密钥对所述第二初始明文数据组进行加密,得到第二初始密文数据;
第二加密子单元5053,用于根据所述第二初始密文数据和所述密钥对剩余未加密的明文数据组进行加密。
在一些实施例中,所述第一加密子单元5052,可以用于:
将所述中间密文数据与所述第二初始明文数据组进行异或,得到当前中间明文数据;
通过所述密钥对当前中间明文数据进行加密,得到第二初始密文数据。
在一些实施例中,所述第二加密子单元5053,可以用于:
从当前未加密的明文数据组中确定当前待加密的目标明文数据组;
从当前生成的密文数据中选取相应的目标密文数据;
根据所述目标密文数据和密钥对所述目标明文数据进行加密,并返回执行从当前未加密的明文数据组中确定当前待加密的目标明文数据组的步骤,直到所有明文数据组加密完成。
其中,所述根据所述目标密文数据和密钥对所述目标明文数据进行加密,可以包括:
将所述目标密文数据与所述目标明文数据进行异或,得到当前中间明文数据;
通过所述密钥对所述当前中间明文数据进行加密,得到当前密文数据。
需要说明的是,上述实施例提供的数据加密装置在进行数据加密时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数据加密装置与数据加密方法属于同一构思,其具体实现过程详见方法实施例,此处不再赘述。
本实施例提供的数据加密装置可以通过获取单元501获取密钥、时间信息以及待加密的明文数据;由分组单元502将所述明文数据分为多个明文数据组;由选取单元503从多个明文数据组中选取待加密的第一初始明文数据组,并通过所述密钥对所述第一初始明文数据组进行加密,得到中间密文数据;由生成单元504根据所述中间密文数据和所述时间信息生成第一初始密文数据;由加密单元505根据所述中间密文数据和所述密钥对剩余未加密的明文数据组进行加密。本方案通过使用持续变化的时间为初始化向量,生成具体时效的密文,不在一个时间区域内无法解密密文,能够有效的防止密文的破解,更有效的保护密钥,极大的提升了数据的安全性。
为了更好地实施以上方法,本发明实施例还提供一种数据解密装置,如图6a所示,该数据解密装置包括:获取单元601、分组单元602、选取单元603、生成单元604以及解密单元605,如下:
获取单元601,用于获取密钥、时间信息以及待解密的密文数据;
分组单元602,用于将所述密文数据分为多个密文数据组;
选取单元603,用于从多个密文数据组中选取待解密的第一初始密文数据组,并根据所述第一初始密文数据组和所述时间信息,生成中间密文数据;
生成单元604,用于通过所述密钥对中间密文数据进行解密,生成第一初始明文数据;
解密单元605,用于根据所述中间密文数据和所述密钥对剩余未解密的密文数据组进行解密。
在一些实施例中,所述选取单元603,可以用于:
从多个密文数据组中选取待解密的第一初始密文数据组,并将所述第一初始密文数据组与所述时间信息进行异或,得到中间密文数据。
在一些实施例中,参考图6b,所述解密单元605,可以包括:
密文选取子单元6051,用于根据所述第一初始密文数据组从多个密文数据组中选取待解密的第二初始密文数据组;
第一解密子单元6052,用于根据所述中间密文数据和所述密钥对所述第二初始密文数据组进行解密,得到第二初始明文数据;
第二解密子单元6053,用于根据所述第二初始密文数据组和所述密钥对剩余未解密的密文数据组进行解密。
在一些实施例中,所述第一解密子单元6052,可以用于:
通过所述密钥对所述第二初始密文数据进行解密,得到当前中间明文数据;
将所述当前中间明文数据与所述中间密文数据进行异或,得到第二初始明文数据。
在一些实施例中,所述第二解密子单元6053,可以用于:
从当前未解密的密文数据组中确定当前待解密的第一目标密文数据组;
从当前已解密的密文数据组中选取第二目标密文数据组;
根据所述第二目标密文数据组和密钥对所述第一目标密文数据组进行解密,并返回执行从当前未解密的密文数据组中确定当前待解密的第一目标密文数据组的步骤,直到所有密文数据组解密完成。
其中,所述根据所述第二目标密文数据组和密钥对所述第一目标密文数据组进行解密,可以包括:
通过所述密钥对所述第一目标密文数据组进行解密,得到当前中间明文;
将所述当前中间明文与所述第二目标密文数据组进行异或,得到当前明文数据。
需要说明的是,上述实施例提供的数据解密装置在进行数据解密时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数据解密装置与数据解密方法属于同一构思,其具体实现过程详见方法实施例,此处不再赘述。
本实施例提供的数据解密装置可以通过获取单元601获取密钥、时间信息以及待解密的密文数据;由分组单元602将所述密文数据分为多个密文数据组;由选取单元603从多个密文数据组中选取待解密的第一初始密文数据组,并根据所述第一初始密文数据组和所述时间信息,生成中间密文数据;由生成单元604通过所述密钥对中间密文数据进行解密,生成第一初始明文数据;由解密单元605根据所述中间密文数据和所述密钥对剩余未解密的密文数据组进行解密。本方案可以在同一时间区域内,通过密钥解密出明文。
本发明实施例还提供一种服务器,如图7所示,其示出了本发明实施例所涉及的服务器的结构示意图,具体来讲:
该服务器可以包括一个或者一个以上处理核心的处理器701、一个或一个以上计算机可读存储介质的存储器702、射频(Radio Frequency,RF)电路703、电源704、输入单元705、以及显示单元706等部件。本领域技术人员可以理解,图7中示出的服务器结构并不构成对服务器的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器701是该服务器的控制中心,利用各种接口和线路连接整个服务器的各个部分,通过运行或执行存储在存储器702内的软件程序和/或模块,以及调用存储在存储器702内的数据,执行服务器的各种功能和处理数据,从而对服务器进行整体监控。可选的,处理器701可包括一个或多个处理核心;优选的,处理器701可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器701中。
存储器702可用于存储软件程序以及模块,处理器701通过运行存储在存储器702的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器702可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据服务器的使用所创建的数据等。此外,存储器702可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器702还可以包括存储器控制器,以提供处理器701对存储器702的访问。
RF电路703可用于收发信息过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器701处理;另外,将涉及上行的数据发送给基站。通常,RF电路703包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM)卡、收发信机、耦合器、低噪声放大器(LNA,Low Noise Amplifier)、双工器等。此外,RF电路703还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(GSM,Global System of Mobilecommunication)、通用分组无线服务(GPRS,General Packet Radio Service)、码分多址(CDMA,Code Division Multiple Access)、宽带码分多址(WCDMA,Wideband CodeDivision Multiple Access)、长期演进(LTE,Long Term Evolution)、电子邮件、短消息服务(SMS,Short Messaging Service)等。
服务器还包括给各个部件供电的电源704(比如电池),优选的,电源704可以通过电源管理系统与处理器701逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源704还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该服务器还可包括输入单元705,该输入单元705可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,在一个具体的实施例中,输入单元705可包括触敏表面以及其他输入设备。
该服务器还可包括显示单元706,该显示单元706可用于显示由用户输入的信息或提供给用户的信息以及服务器的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。
尽管未示出,服务器还可以包括蓝牙模块等其他模块,在此不再赘述。具体在本实施例中,服务器中的处理器701会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器702中,并由处理器701来运行存储在存储器702中的应用程序,从而实现各种功能,如下:
获取密钥、时间信息以及待加密的明文数据;
将所述明文数据分为多个明文数据组;
从多个明文数据组中选取待加密的第一初始明文数据组,并通过所述密钥对所述第一初始明文数据组进行加密,得到中间密文数据;
根据所述中间密文数据和所述时间信息生成第一初始密文数据;
根据所述中间密文数据和所述密钥对剩余未加密的明文数据组进行加密。
一实施例中,根据所述中间密文数据和所述密钥对剩余未加密的明文数据组进行加密时,处理器701具体用于执行以下步骤:
根据所述第一初始明文数据组从多个明文数据组中选取待加密的第二初始明文数据组;
根据所述中间密文数据和所述密钥对所述第二初始明文数据组进行加密,得到第二初始密文数据;
根据所述第二初始密文数据和所述密钥对剩余未加密的明文数据组进行加密。
一实施例中,根据所述中间密文数据和所述密钥对所述第二初始明文数据组进行加密,得到第二初始密文数据时,处理器701具体用于执行以下步骤:
将所述中间密文数据与所述第二初始明文数据组进行异或,得到当前中间明文数据;
通过所述密钥对当前中间明文数据进行加密,得到第二初始密文数据。
一实施例中,根据所述第二初始密文数据和所述密钥对剩余未加密的明文数据组进行加密时,处理器701具体用于执行以下步骤:
从当前未加密的明文数据组中确定当前待加密的目标明文数据组;
从当前生成的密文数据中选取相应的目标密文数据;
根据所述目标密文数据和密钥对所述目标明文数据进行加密,并返回执行从当前未加密的明文数据组中确定当前待加密的目标明文数据组的步骤,直到所有明文数据组加密完成。
一实施例中,根据所述目标密文数据和密钥对所述目标明文数据进行加密时,处理器701具体用于执行以下步骤:
将所述目标密文数据与所述目标明文数据进行异或,得到当前中间明文数据;
通过所述密钥对所述当前中间明文数据进行加密,得到当前密文数据。
一实施例中,根据所述中间密文数据和所述时间信息生成第一初始密文数据,处理器701具体用于执行以下步骤:
将所述中间密文数据与所述时间信息进行异或,得到第一初始密文数据。
本实施例的服务器,获取密钥、时间信息以及待加密的明文数据;将所述明文数据分为多个明文数据组;多个明文数据组中选取待加密的第一初始明文数据组,并通过所述密钥对所述第一初始明文数据组进行加密,得到中间密文数据;根据所述中间密文数据和所述时间信息生成第一初始密文数据;根据所述中间密文数据和所述密钥对剩余未加密的明文数据组进行加密。本方案通过使用持续变化的时间为初始化向量,生成具体时效的密文,不在一个时间区域内无法解密密文,能够有效的防止密文的破解,更有效的保护密钥,极大的提升了数据的安全性。
本申请实施例还提供一种存储介质,所述存储介质存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行上述任一实施例中的数据加密或解密方法,比如:获取密钥、时间信息以及待加密的明文数据;将所述明文数据分为多个明文数据组;从多个明文数据组中选取待加密的第一初始明文数据组,并通过所述密钥对所述第一初始明文数据组进行加密,得到中间密文数据;根据所述中间密文数据和所述时间信息生成第一初始密文数据;根据所述中间密文数据和所述密钥对剩余未加密的明文数据组进行加密。或比如:获取密钥、时间信息以及待解密的密文数据;将所述密文数据分为多个密文数据组;从多个密文数据组中选取待解密的第一初始密文数据组,并根据所述第一初始密文数据组和所述时间信息,生成中间密文数据;通过所述密钥对中间密文数据进行解密,生成第一初始明文数据;根据所述中间密文数据和所述密钥对剩余未解密的密文数据组进行解密。
在本申请实施例中,存储介质可以是磁碟、光盘、只读存储器(Read Only Memory,ROM,)、或者随机存取记忆体(Random Access Memory,RAM)等。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
需要说明的是,对本申请实施例的数据加密或解密方法而言,本领域普通决策人员可以理解实现本申请实施例的数据加密或解密方法的全部或部分流程,是可以通过计算机程序来控制相关的硬件来完成,所述计算机程序可存储于一计算机可读取存储介质中,如存储在电子设备的存储器中,并被该电子设备内的至少一个处理器执行,在执行过程中可包括如覆盖率测试方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储器、随机存取记忆体等。
对本申请实施例的数据加密装置而言,其各功能模块可以集成在一个处理芯片中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中,所述存储介质譬如为只读存储器,磁盘或光盘等。
以上对本申请实施例所提供的数据加密、解密方法、装置以及存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (15)

1.一种数据加密方法,其特征在于,包括:
获取密钥、时间信息以及待加密的明文数据;
将所述明文数据分为多个明文数据组;
从多个明文数据组中选取待加密的第一初始明文数据组,并通过所述密钥对所述第一初始明文数据组进行加密,得到中间密文数据;
根据所述中间密文数据和所述时间信息生成第一初始密文数据;
根据所述中间密文数据和所述密钥对剩余未加密的明文数据组进行加密。
2.如权利要求1所述的加密方法,其特征在于,根据所述中间密文数据和所述密钥对剩余未加密的明文数据组进行加密,包括:
根据所述第一初始明文数据组从多个明文数据组中选取待加密的第二初始明文数据组;
根据所述中间密文数据和所述密钥对所述第二初始明文数据组进行加密,得到第二初始密文数据;
根据所述第二初始密文数据和所述密钥对剩余未加密的明文数据组进行加密。
3.如权利要求2所述的加密方法,其特征在于,根据所述中间密文数据和所述密钥对所述第二初始明文数据组进行加密,得到第二初始密文数据,包括:
将所述中间密文数据与所述第二初始明文数据组进行异或,得到当前中间明文数据;
通过所述密钥对当前中间明文数据进行加密,得到第二初始密文数据。
4.如权利要求2所述的加密方法,其特征在于,根据所述第二初始密文数据和所述密钥对剩余未加密的明文数据组进行加密,包括:
从当前未加密的明文数据组中确定当前待加密的目标明文数据组;
从当前生成的密文数据中选取相应的目标密文数据;
根据所述目标密文数据和密钥对所述目标明文数据进行加密,并返回执行从当前未加密的明文数据组中确定当前待加密的目标明文数据组的步骤,直到所有明文数据组加密完成。
5.如权利要求4所述的加密方法,其特征在于,根据所述目标密文数据和密钥对所述目标明文数据进行加密,包括:
将所述目标密文数据与所述目标明文数据进行异或,得到当前中间明文数据;
通过所述密钥对所述当前中间明文数据进行加密,得到当前密文数据。
6.如权利要求1所述的加密方法,其特征在于,根据所述中间密文数据和所述时间信息生成第一初始密文数据,包括:
将所述中间密文数据与所述时间信息进行异或,得到第一初始密文数据。
7.一种数据解密方法,其特征在于,包括:
获取密钥、时间信息以及待解密的密文数据;
将所述密文数据分为多个密文数据组;
从多个密文数据组中选取待解密的第一初始密文数据组,并根据所述第一初始密文数据组和所述时间信息,生成中间密文数据;
通过所述密钥对中间密文数据进行解密,生成第一初始明文数据;
根据所述中间密文数据和所述密钥对剩余未解密的密文数据组进行解密。
8.如权利要求7所述的解密方法,其特征在于,根据所述中间密文数据和所述密钥对剩余未解密的密文数据组进行解密,包括:
根据所述第一初始密文数据组从多个密文数据组中选取待解密的第二初始密文数据组;
根据所述中间密文数据和所述密钥对所述第二初始密文数据组进行解密,得到第二初始明文数据;
根据所述第二初始密文数据和所述密钥对剩余未解密的密文数据组进行解密。
9.如权利要求8所述的解密方法,其特征在于,根据所述中间密文和所述密钥对所述第二初始密文数据组进行解密,得到第二初始明文数据,包括:
通过所述密钥对所述第二初始密文数据进行解密,得到当前中间明文数据;
将所述当前中间明文数据与所述中间密文数据进行异或,得到第二初始明文数据。
10.如权利要求8所述的解密方法,其特征在于,根据所述第二初始密文数据和所述密钥对剩余未解密的密文数据进行解密,包括:
从当前未解密的密文数据组中确定当前待解密的第一目标密文数据组;
从当前已解密的密文数据组中选取第二目标密文数据组;
根据所述第二目标密文数据组和密钥对所述第一目标密文数据组进行解密,并返回执行从当前未解密的密文数据组中确定当前待解密的第一目标密文数据组的步骤,直到所有密文数据组解密完成。
11.如权利要求10所述的解密方法,其特征在于,根据所述第二目标密文数据组和密钥对所述第一目标密文数据组进行解密,包括:
通过所述密钥对所述第一目标密文数据组进行解密,得到当前中间明文;
将所述当前中间明文与所述第二目标密文数据组进行异或,得到当前明文数据。
12.如权利要求7所述的解密方法,其特征在于,所述根据所述第一初始密文数据组和所述时间信息,生成中间密文数据,包括:
将所述第一初始密文数据组与所述时间信息进行异或,得到中间密文数据。
13.一种数据加密装置,其特征在于,包括:
获取单元,用于获取密钥、时间信息以及待加密的明文数据;
分组单元,用于将所述明文数据分为多个明文数据组;
选取单元,用于从多个明文数据组中选取待加密的第一初始明文数据组,并通过所述密钥对所述第一初始明文数据组进行加密,得到中间密文数据;
生成单元,用于根据所述中间密文数据和所述时间信息生成第一初始密文数据;
加密单元,用于根据所述中间密文数据和所述密钥对剩余未加密的明文数据组进行加密。
14.一种数据解密装置,其特征在于,包括:
获取单元,用于获取密钥、时间信息以及待解密的密文数据;
分组单元,用于将所述密文数据分为多个密文数据组;
选取单元,用于从多个密文数据组中选取待解密的第一初始密文数据组,并根据所述第一初始密文数据组和所述时间信息,生成中间密文数据;
生成单元,用于通过所述密钥对中间密文数据进行解密,生成第一初始明文数据;
解密单元,用于根据所述中间密文数据和所述密钥对剩余未解密的密文数据组进行解密。
15.一种存储介质,其内存储有处理器可执行指令,该处理器通过执行所述指令提供如权利要求1-6中任一项所述的数据加密方法或如权利要求7-12中任一项所述的数据解密方法。
CN201810376663.1A 2018-04-25 2018-04-25 数据加密、解密方法、装置以及存储介质 Active CN110401527B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810376663.1A CN110401527B (zh) 2018-04-25 2018-04-25 数据加密、解密方法、装置以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810376663.1A CN110401527B (zh) 2018-04-25 2018-04-25 数据加密、解密方法、装置以及存储介质

Publications (2)

Publication Number Publication Date
CN110401527A true CN110401527A (zh) 2019-11-01
CN110401527B CN110401527B (zh) 2022-03-08

Family

ID=68322029

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810376663.1A Active CN110401527B (zh) 2018-04-25 2018-04-25 数据加密、解密方法、装置以及存储介质

Country Status (1)

Country Link
CN (1) CN110401527B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112165443A (zh) * 2020-08-01 2021-01-01 广东电网有限责任公司广州供电局 一种多密钥信息加密解密方法、装置及存储介质
CN112235111A (zh) * 2020-12-17 2021-01-15 腾讯科技(深圳)有限公司 密钥生成方法、装置、设备及计算机可读存储介质
CN113489589A (zh) * 2021-09-06 2021-10-08 蜂巢能源科技有限公司 数据加密、解密方法、装置及电子设备
WO2022073330A1 (en) * 2020-10-05 2022-04-14 Huawei Technologies Co., Ltd. Methods, encoder and decoder using encryption and authentication functions for encrypting and decrypting a message
CN114553612A (zh) * 2022-04-27 2022-05-27 深圳市一航网络信息技术有限公司 数据加密、解密方法、装置、存储介质及电子设备
CN114629649A (zh) * 2022-05-10 2022-06-14 深圳市搜了网络科技股份有限公司 基于云计算的数据处理方法、装置及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060047972A1 (en) * 2004-08-27 2006-03-02 Microsoft Corporation System and method for applying security to memory reads and writes
CN1909443A (zh) * 2005-08-02 2007-02-07 三菱电机株式会社 数据配送装置和数据通信系统
CN104683093A (zh) * 2013-11-27 2015-06-03 财团法人资讯工业策进会 兼具完整性验证的区块加密装置、区块加密方法、区块解密装置及区块解密方法
CN105323064A (zh) * 2014-07-01 2016-02-10 柯呈翰 于线上加上即时文件动态标签、加密的系统及方法
CN107637010A (zh) * 2015-05-19 2018-01-26 三星Sds株式会社 数据加密装置及方法和数据解密装置及方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060047972A1 (en) * 2004-08-27 2006-03-02 Microsoft Corporation System and method for applying security to memory reads and writes
CN1909443A (zh) * 2005-08-02 2007-02-07 三菱电机株式会社 数据配送装置和数据通信系统
CN104683093A (zh) * 2013-11-27 2015-06-03 财团法人资讯工业策进会 兼具完整性验证的区块加密装置、区块加密方法、区块解密装置及区块解密方法
CN105323064A (zh) * 2014-07-01 2016-02-10 柯呈翰 于线上加上即时文件动态标签、加密的系统及方法
CN107637010A (zh) * 2015-05-19 2018-01-26 三星Sds株式会社 数据加密装置及方法和数据解密装置及方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112165443A (zh) * 2020-08-01 2021-01-01 广东电网有限责任公司广州供电局 一种多密钥信息加密解密方法、装置及存储介质
WO2022073330A1 (en) * 2020-10-05 2022-04-14 Huawei Technologies Co., Ltd. Methods, encoder and decoder using encryption and authentication functions for encrypting and decrypting a message
US11546146B2 (en) 2020-10-05 2023-01-03 Huawei Technologies Co., Ltd. Methods, encoder and decoder using encryption and authentication functions for encrypting and decrypting a message
CN112235111A (zh) * 2020-12-17 2021-01-15 腾讯科技(深圳)有限公司 密钥生成方法、装置、设备及计算机可读存储介质
CN113489589A (zh) * 2021-09-06 2021-10-08 蜂巢能源科技有限公司 数据加密、解密方法、装置及电子设备
CN114553612A (zh) * 2022-04-27 2022-05-27 深圳市一航网络信息技术有限公司 数据加密、解密方法、装置、存储介质及电子设备
CN114629649A (zh) * 2022-05-10 2022-06-14 深圳市搜了网络科技股份有限公司 基于云计算的数据处理方法、装置及存储介质
CN114629649B (zh) * 2022-05-10 2022-09-13 深圳市搜了网络科技股份有限公司 基于云计算的数据处理方法、装置及存储介质

Also Published As

Publication number Publication date
CN110401527B (zh) 2022-03-08

Similar Documents

Publication Publication Date Title
CN110401527A (zh) 数据加密、解密方法、装置以及存储介质
CN105260668B (zh) 一种文件加密方法及电子设备
US10454674B1 (en) System, method, and device of authenticated encryption of messages
US20170272240A1 (en) Method, system, and device of provisioning cryptographic data to electronic devices
EP4196946A1 (en) Transferring cryptocurrency from a remote limited access wallet
CN105812332A (zh) 数据保护方法
CN204360381U (zh) 移动设备
CN109816383A (zh) 一种区块链签名方法、区块链钱包和区块链
CN110704854B (zh) 针对文本数据保留格式的流式加密方法
CN109104724A (zh) 一种用于设备升级的数据加密方法和装置
CN108718313A (zh) 应用软件数据安全使用方法、终端设备及服务器
CN109670344A (zh) 加密装置、方法及片上系统
CN106375990A (zh) 一种手机隐私数据的加解密系统和加解密方法
CN109687966A (zh) 加密方法及其系统
CN104574652A (zh) Ic卡排污数据增加、扣减的方法和ic卡
CN112883388A (zh) 文件加密方法及装置、存储介质、电子装置
US11128455B2 (en) Data encryption method and system using device authentication key
CN103414552A (zh) 一种利用二叉树遍历方式进行加密、解密方法及装置
CN100589377C (zh) 基于移动终端的多媒体业务保护和密钥管理方法
CN116455572B (zh) 数据加密方法、装置及设备
CN107872315A (zh) 数据处理方法和智能终端
CN106341384A (zh) 用于促进安全通信的方法
CN112910630B (zh) 扩展密钥的置换方法及装置
CN115175178A (zh) 一种核电站的数据安全处理方法、5g端机及系统
CN106454435B (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