CN114021174A - 数据加密的方法和装置以及数据解密的方法和装置 - Google Patents
数据加密的方法和装置以及数据解密的方法和装置 Download PDFInfo
- Publication number
- CN114021174A CN114021174A CN202111355575.1A CN202111355575A CN114021174A CN 114021174 A CN114021174 A CN 114021174A CN 202111355575 A CN202111355575 A CN 202111355575A CN 114021174 A CN114021174 A CN 114021174A
- Authority
- CN
- China
- Prior art keywords
- data
- encrypted
- puzzle
- numbers
- key
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本申请公开了一种数据加密的方法和装置以及数据解密的方法和装置。该数据加密的方法包括:计算数独的第一谜面对应的谜底,其中,第一谜底由数独盘面上的第一预设数量的数字构成,谜底由数独盘面上的所有的数字构成;通过谜底中的数字生成密钥,并由谜底中的第二预设数量的数字生成第二谜面;通过密钥对待加密数据进行加密,生成加密数据,并将加密数据与第二谜面发送至数据接收端。通过本申请,解决了相关技术中使用流加密算法时加密和解密的密钥相同,导致在密钥泄露的情况下信息数据泄露的问题。
Description
技术领域
本申请涉及数据加密与解密技术领域,具体而言,涉及一种数据加密的方法和装置以及数据解密的方法和装置。
背景技术
在信息传输时,为了保证重要信息的安全,通常在信息传输前对其进行加密,以防信息数据泄露,并在信息传输后进行解密,通常使用流加密算法进行加解密。
具体地,流加密算法(Stream cipher)是一种对称加密算法,加密和解密双方使用相同伪随机加密数据流作为密钥,明文数据每次与密钥数据流顺次对应加密,得到密文数据流,密文流数据可以再通过密钥数据流顺次对应解密,得到明文数据流。
相关技术中使用了Rc4(Rivest Cipher 4)算法和Salsa20算法等流加密算法生成伪随机加密数据流进行加密。其中,Rc4算法通过初始化秘钥,根据输入的秘钥key,使用密钥调度算法(Key-Scheduling Algorithm,简称KSA)生成一个256字节的sbox(substitution box);再通过伪随机数生成算法(Pseudo-Random Generation Algorithm,简称PRGA)得到密钥流(keystream);加密时将密钥流与明文进行异或运算得到密文,并在解密时秘文与密钥流进行异或运算得到明文。而Salsa20的原理是产生一种伪随机的字节流,这种字节流在很长(约2的70次方)范围内和真正的随机字节流无法区分,这样做到了和一次性密密码本(OTP,One Time Pad)加密等价的效果。伪随机数流的产生其实就是将64字节(512比特)的输入送入核心函数,然后得到512比特的输出的过程。每次输入的字节包含密钥、初始向量和计数器。这样,要产生长度是N字节的伪随机数流,只需要调用核心函数若干次,直到获取了足够长度(不少于N)的输出即可。
但是,相关技术中的上述流加密算法是一种对称加密算法,加密和解密双方使用相同伪随机加密数据流作为密钥,数据加密端加密信息数据后,密钥信息容易在传输中泄露从而导致信息数据泄露。
针对相关技术中使用流加密算法时加密和解密的密钥相同,导致在密钥泄露的情况下信息数据泄露的问题,目前尚未提出有效的解决方案。
发明内容
本申请提供一种数据加密的方法和装置以及数据解密的方法和该装置,以解决相关技术中使用流加密算法时加密和解密的密钥相同,导致在密钥泄露的情况下信息数据泄露的问题。
根据本申请的一个方面,提供了一种数据加密方法。该方法包括:计算数独的第一谜面对应的谜底,其中,第一谜底由数独盘面上的第一预设数量的数字构成,谜底由数独盘面上的所有的数字构成;通过谜底中的数字生成密钥,并由谜底中的第二预设数量的数字生成第二谜面;通过密钥对待加密数据进行加密,生成加密数据,并将加密数据与第二谜面发送至数据接收端。
可选地,在计算数独的第一谜面对应的谜底之前,该方法还包括:将第一预设数量的数字设置在数独盘面中的任意位置,得到第一谜面,其中,第一预设数量大于等于17。
可选地,通过谜底中的数字生成密钥包括:从谜底中选取数字,并将选取到的数字作为候选数字,其中,候选数字为谜底中的全部数字或部分数字;按照预设规则对候选数字进行组合,得到密钥。
可选地,通过密钥对待加密数据进行加密,生成加密数据包括:确定密钥中的各个数字对应的数值,得到多个数值;在待加密数据的长度小于等于密钥的长度的情况下,遍历多个数值,通过每个数值依次对待加密数据中的对应数量的数据进行加密,得到多个加密数字,并将多个加密数字组合成加密数据,其中,对应数量为数值所指示的数量;在待加密数据的大于密钥的长度的情况下,多次遍历多个数值,通过每个数值依次对待加密数据中的对应数量的数据进行加密,直到对待加密数据中的所有数据完成加密,得到多个加密数字,并将多个加密数字组合成加密数据。
可选地,通过每个数值依次对待加密数据中的对应数量的数据进行加密,得到多个加密数字包括:根据每个数值确定待加密数据中对应比特数的数据,得到对应数量的数据,并将对应数量的数据转换成十进制数据;依次将各个数值与对应的十进制数据按照预设计算规则进行计算,得到多个加密数字,其中,预设计算规则为至少以下之一:相加、相减、相乘和相除。
可选地,通过密钥对待加密数据进行加密,生成加密数据包括:将待加密数据进行分组,得到多组数据;使用密钥分别对多组数据进行加密,得到多个第一加密数据;将多个第一加密数据组合为加密数据。
根据本申请的另一方面,提供了一种解密方法。对上述任意一项的数据加密方法加密后的数据进行解密,该方法包括:接收发送端发送的加密数据和数独的第二谜面;通过第二谜面计算数独的谜底,其中,第二谜面由谜底中的第二预设数量的数据构成;通过谜底中的数据生成密钥;通过密钥对加密数据进行解密,得到解密数据。
可选地,通过谜底中的数字生成密钥包括:从谜底中选取数字,并将选取到的数字作为候选数字,其中,候选数字为谜底中的全部数字或部分数字;按照预设规则对候选数字进行组合,得到密钥。
可选地,通过密钥对加密数据进行解密,得到解密数据包括:确定密钥中的各个数字对应的数值,得到多个数值;在加密数据的长度小于等于密钥的长度的情况下,遍历多个数值,通过每个数值依次对加密数据中的每个十进制数字按照预设计算规则进行计算,得到多个计算后的数据,预设计算规则为至少以下之一:相加、相减、相乘和相除;在加密数据的大于密钥的长度的情况下,多次遍历多个数值,通过每个数值依次对加密数据中的每个十进制数字按照预设计算规则进行计算,直到对加密数据中的所有数据完成解密,得到计算后的数据;将每个计算后的数据转换为二进制数据,得到多组二进制数据,由多组二进制数据构成解密数据。
根据本申请的另一方面,提供了一种数据加密装置。该装置包括:第一计算单元,用于计算数独的第一谜面对应的谜底,其中,第一谜底由数独盘面上的第一预设数量的数字构成,谜底由数独盘面上的所有的数字构成;第一生成单元,用于通过谜底中的数字生成密钥,并由谜底中的第二预设数量的数字生成第二谜面;加密单元,用于通过密钥对待加密数据进行加密,生成加密数据,并将加密数据与第二谜面发送至数据接收端。
根据本申请的另一方面,提供了一种解密装置。对上述的数据加密装置加密后的数据进行解密,该装置包括:接收单元,用于接收发送端发送的加密数据和数独的第二谜面;第二计算单元,用于通过第二谜面计算数独的谜底,其中,第二谜面由谜底中的第二预设数量的数据构成;第二生成单元,用于通过谜底中的数据生成密钥;解密单元,用于通过密钥对加密数据进行解密,得到解密数据。
通过本申请,采用以下步骤:计算数独的第一谜面对应的谜底,其中,第一谜底由数独盘面上的第一预设数量的数字构成,谜底由数独盘面上的所有的数字构成;通过谜底中的数字生成密钥,并由谜底中的第二预设数量的数字生成第二谜面;通过密钥对待加密数据进行加密,生成加密数据,并将加密数据与第二谜面发送至数据接收端,解决了相关技术中使用流加密算法时加密和解密的密钥相同,导致在密钥泄露的情况下信息数据泄露的问题。将相同谜底的不同谜面设置成加密数据和解密数据,进而达到了将对称加密算法中的相同密钥进行隐藏的效果,从而提高了数据传输的安全性。
附图说明
构成本申请的一部分的附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例提供的数据加密方法的流程图;
图2是根据本申请实施例提供的一种可选的数独的谜面示意图;
图3是根据本申请实施例提供的一种可选的数独的谜底示意图;
图4是根据本申请实施例提供的另一种可选的数独的谜面示意图;
图5是根据本申请实施例提供的数据解密方法的流程图;
图6是根据本申请实施例提供的数据加密装置的示意图;
图7是根据本申请实施例提供的数据解密装置的示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本申请的实施例,提供了一种数据加密方法。
图1是根据本申请实施例的数据加密方法的流程图。如图1所示,该方法包括以下步骤:
步骤S102,计算数独的第一谜面对应的谜底,其中,第一谜底由数独盘面上的第一预设数量的数字构成,谜底由数独盘面上的所有的数字构成。
具体的,第一预设数量可以为提前设置好的数独的谜面包括的数字数量,例如20个数字,通过预设的20个数字可以计算得到该数独的谜面对应的数独的谜底。图2是根据本申请实施例提供的一种可选的数独的谜面示意图,也即第一谜面的示意图,如图2所示,数独盘面中包含17个已确定的数字,通过计算机计算可以得到该数独的谜面对应的谜底,图3是根据本申请实施例提供的一种可选的数独的谜底示意图,如图3所示,数独的谜底为数独盘面中的所有数字,即81个已确定数据。
步骤S104,通过谜底中的数字生成密钥,并由谜底中的第二预设数量的数字生成第二谜面。
具体的,谜底中包含81个数字,可以将这81个数字进行排列组合,例如,按9×9的面盘横向遍历选取,得到长度为81个数字的数据,并将该数据设置为密钥。也可以从81个数据中选取部分数字,例如选取奇数行的数字进行遍历,得到45个数字组成的数据,将该数据设置为密钥。
需要说明的是,第二谜面可以为谜底与第一谜面相同的数独的谜面,图4是根据本申请实施例提供的另一种可选的数独的谜面示意图,也即第二谜面的示意图,如图4所示,数独盘面中的数字个数和位置可以与第一谜面不同,但通过计算第二谜面可以得到与图3所示的第一谜面计算得到的数独的谜底相同的谜底。
步骤S106,通过密钥对待加密数据进行加密,生成加密数据,并将加密数据与第二谜面发送至数据接收端。
具体的,使用得到的密钥对待加密数据进行加密,例如,可以采用逐位相乘或逐位相加的方式进行加密,得到加密数据,并将加密数据与第二谜面发送至数据接收端,使加密密钥与解密密钥的获取谜面不同,完成对密钥的隐藏。
本申请实施例提供的数据加密的方法,通过计算数独的第一谜面对应的谜底,其中,第一谜底由数独盘面上的第一预设数量的数字构成,谜底由数独盘面上的所有的数字构成;通过谜底中的数字生成密钥,并由谜底中的第二预设数量的数字生成第二谜面;通过密钥对待加密数据进行加密,生成加密数据,并将加密数据与第二谜面发送至数据接收端。解决了相关技术中使用流加密算法时加密和解密的密钥相同,导致在密钥泄露的情况下信息数据泄露的问题。将相同谜底的不同谜面设置成加密数据和解密数据,进而达到了将对称加密算法中的相同密钥进行隐藏的效果,从而提高了数据传输的安全性。
可选地,在本申请实施例提供的数据加密方法中,在计算数独的第一谜面对应的谜底之前,该方法还包括:将第一预设数量的数字设置在数独盘面中的任意位置,得到第一谜面,其中,第一预设数量大于等于17。
需要说明的是,数独是源自18世纪瑞士的一种数学游戏,根据9×9盘面上的已知数字,推理出所有剩余空格的数字,并满足每一行、每一列、每一个粗线宫(3*3)内的数字均含1-9,不重复。对于一个数独的谜面来说,只要确定了至少17个已知数字元素,就可以确定剩下的全部待确定的数字元素,所以在设置谜面的时候,设置大于等于17个已知数字即可确定数独的谜底,即使不同谜面的数字设置的数量和位置均不相同,也可以计算得到相同的谜底。
例如,图2中设置了17个数字,图4中设置了20个数字,且数字位置均不相同,但是两个谜面在计算后可以得到相同的谜底。
为了通过谜底得到安全度较高的密钥,可选地,在本申请实施例提供的数据加密方法中,通过谜底中的数字生成密钥包括:从谜底中选取数字,并将选取到的数字作为候选数字,其中,候选数字为谜底中的全部数字或部分数字;按照预设规则对候选数字进行组合,得到密钥。
具体的,从谜底中选取候选数字可以为在谜底的81个数字中选择全部数字或部分数字,或重复选择部分数字,例如,可以选择图3中的偶数行数字,遍历得到36个数字,或重复选取5次第二行的数字,得到45个数字。
需要说明的是,在选取候选数字后,可以通过对候选数字进行组合,例如按从上到下、从左到右的顺序遍历候选数字,或将每个数字减1后得到新的候选数字,再将新的候选数字进行遍历,将组合后的数字设置为密钥。
选择密钥后需要进行加密方式的选择,可选地,在本申请实施例提供的数据加密方法中,通过密钥对待加密数据进行加密,生成加密数据包括:确定密钥中的各个数字对应的数值,得到多个数值;在待加密数据的长度小于等于密钥的长度的情况下,遍历多个数值,通过每个数值依次对待加密数据中的对应数量的数据进行加密,得到多个加密数字,并将多个加密数字组合成加密数据,其中,对应数量为数值所指示的数量;在待加密数据的大于密钥的长度的情况下,多次遍历多个数值,通过每个数值依次对待加密数据中的对应数量的数据进行加密,直到对待加密数据中的所有数据完成加密,得到多个加密数字,并将多个加密数字组合成加密数据。
具体的,对应数量为数值所指示的数量,例如,密钥中的数字8可以对应待加密数据的明文中的3个数字,密钥中的数字6可以对应加密明文中的2个数字,在得到密钥后,确定密钥中每一位的数字的数值,遍历所有的数值,并对每个数值对应数量的明文进行加密,其中加密的方法可以为将密钥中的数值与明文中的对应数量的数值进行计算,例如加法、减法等计算方式,得到加密后的密文,并将密文发送至解密端。
需要说明的是,当密钥的数字个数少于明文中的数字个数时,需要重复循环使用密钥中的数字,例如,当密钥由81个数字组成,明文中包含810个数字时,在明文的前81个数字加密后,从密钥的第一个数字开始再次使用该密钥进行明文中第82个数字的加密,直到循环使用9次后,将810个明文数字全部加密为止,得到加密数据。
为了使对明文加密的字节数具有随机性,可选地,在本申请实施例提供的数据加密方法中,通过每个数值依次对待加密数据中的对应数量的数据进行加密,得到多个加密数字包括:根据每个数值确定待加密数据中对应比特数的数据,得到对应数量的数据,并将对应数量的数据转换成十进制数据;依次将各个数值与对应的十进制数据按照预设计算规则进行计算,得到多个加密数字,其中,预设计算规则为至少以下之一:相加、相减、相乘和相除。
具体的,按照密钥中的数字对应的对应数量对待加密数据中的明文进行加密,可以按数字的数值确定,例如,密钥中的数字8可以对应待加密数据的明文中的3个比特的数据,密钥中的数字6可以对应加密明文中的2个比特的数据,因为待加密数据明文是由二进制的数据构成的,所以在得到对应数量的数据后,可以对得到的明文数据进行十进制转换,并进行预设计算规则,得到对应的加密数据,例如,密钥中的数字8可以对应待加密数据的明文中的3个比特的数据,为110,则对110进行十进制转换,得到6,再用密钥中的数字与6进行减法计算,得到2,则将2作为待加密数据中110对应的加密数据。可以通过此计算方式计算待加密数据中的所有比特的数据的计算结果,将计算结果以此排列,得到待加密数据对应的加密数据。
通过密钥对待加密数据进行加密的方式有多种,可选地,在本申请实施例提供的数据加密方法中,通过密钥对待加密数据进行加密,生成加密数据包括:将待加密数据进行分组,得到多组数据;使用密钥分别对多组数据进行加密,得到多个第一加密数据;将多个第一加密数据组合为加密数据。
具体的,还可以对待加密数据进行分组,例如,每27个比特的数据为一组,并从数独的谜底中选择三行数据作为密钥,使用密钥对每一组数据进行加密。此外,在最后无法凑够27个比特的数据时可以不进行加密,直接放在各组第一加密数据之后,得到待加密数据对应的加密数据。
图5是根据本申请实施例的数据解密方法的流程图,对上述任意一项的数据加密方法加密后的数据进行解密。如图5所示,该方法包括以下步骤:
步骤S502,接收发送端发送的加密数据和数独的第二谜面。
具体的,第二谜面可以为谜底与第一谜面相同的数独的谜面,图4是根据本申请实施例提供的另一种可选的数独的谜面示意图,也即第二谜面的示意图,如图4所示,数独盘面中的数字个数和位置可以与第一谜面不同,但通过计算第二谜面可以得到与图2所示的第一谜面计算得到的数独的谜底相同的谜底。可以通过第二谜面得到密钥,对加密数据进行解密。
步骤S504,通过第二谜面计算数独的谜底,其中,第二谜面由谜底中的第二预设数量的数据构成。
由于第二谜面与第一谜面的谜底相同,则可以通过计算第二谜面得到与第一谜面相同的谜底,再由谜底生成对应的密钥。
步骤S506,通过谜底中的数据生成密钥。
具体的,谜底中包含81个数字,可以将这81个数字进行排列组合,例如,按9×9的面盘横向遍历选取,得到长度为81个数字的数据,并将该数据设置为密钥。也可以从81个数据中选取部分数字,例如选取奇数行的数字进行遍历,得到45个数字组成的数据,将该数据设置为密钥,密钥生成过程中的计算流程需要与加密时生成密钥的计算流程相同。
步骤S508,通过密钥对加密数据进行解密,得到解密数据。
得到密钥后,通过对加密流程逆运算得到解密数据,例如,将密钥与加密数据相减,对得到的数据进行二进制转换,得到初始的待加密数据明文数据。
本申请实施例提供的数据解密的方法,通过接收发送端发送的加密数据和数独的第二谜面;通过第二谜面计算数独的谜底,其中,第二谜面由谜底中的第二预设数量的数据构成;通过谜底中的数据生成密钥;通过密钥对加密数据进行解密,得到解密数据。解决了相关技术中使用流加密算法时加密和解密的密钥相同,导致在密钥泄露的情况下信息数据泄露的问题。将相同谜底的不同谜面设置成加密数据和解密数据,进而达到了将对称加密算法中的相同密钥进行隐藏的效果,从而提高了数据传输的安全性。
可选地,在本申请实施例提供的数据解密方法中,通过谜底中的数字生成密钥包括:从谜底中选取数字,并将选取到的数字作为候选数字,其中,候选数字为谜底中的全部数字或部分数字;按照预设规则对候选数字进行组合,得到密钥。
具体的,从谜底中选取候选数字可以为在谜底的81个数字中选择全部数字或部分数字,或重复选择部分数字,例如,可以选择图3中的偶数行数字,遍历得到36个数字,或重复选取5次第二行的数字,得到45个数字。
在选取候选数字后,可以通过对候选数字进行组合,例如按从上到下、从左到右的顺序遍历候选数字,或将每个数字减1后得到新的候选数字,再将新的候选数字进行组合,将组合后的数字即为密钥。需要说明的是,选取的预设规则需要与加密时所选的完全相同。
可选地,在本申请实施例提供的数据解密方法中,通过密钥对加密数据进行解密,得到解密数据包括:确定密钥中的各个数字对应的数值,得到多个数值;在加密数据的长度小于等于密钥的长度的情况下,遍历多个数值,通过每个数值依次对加密数据中的每个十进制数字按照预设计算规则进行计算,得到多个计算后的数据,预设计算规则为至少以下之一:相加、相减、相乘和相除;在加密数据的大于密钥的长度的情况下,多次遍历多个数值,通过每个数值依次对加密数据中的每个十进制数字按照预设计算规则进行计算,直到对加密数据中的所有数据完成解密,得到计算后的数据;将每个计算后的数据转换为二进制数据,得到多组二进制数据,由多组二进制数据构成解密数据。
具体的,确定密钥中的数值之后,根据预设计算规则对加密数据中的数字进行计算,其中,预设计算规则需要与加密时的预设计算规则完全相同,例如,加密过程中采用密钥与数字相减的方式得到加密数据,则解密时需要将密钥与加密数据相减,得到待处理数据,之后遍历加密数据中的全部数值后,将全部待处理数据进行二进制转换,得到初始的待加密数据。
需要说明的是,当密钥的数字个数少于加密数据中的数字个数时,需要重复循环使用密钥中的数字,例如,当密钥由81个数字组成,加密数据中包含810个数字时,在加密数据的前81个数字解密后,从密钥的第一个数字开始再次使用该密钥对加密数据中第82个数字的解密,直到循环使用9次后,完成810个数字的全部解密为止,得到解密数据。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例还提供了一种数据加密的装置,需要说明的是,本申请实施例的数据加密装置可以用于执行本申请实施例所提供的用于数据加密方法。以下对本申请实施例提供的数据加密装置进行介绍。
图6是根据本申请实施例的数据加密装置的示意图。如图6所示,该装置包括:第一计算单元601、第一生成单元602和加密单元603。
具体地,第一计算单元601,用于计算数独的第一谜面对应的谜底,其中,第一谜底由数独盘面上的第一预设数量的数字构成,谜底由数独盘面上的所有的数字构成。
第一生成单元602,用于通过谜底中的数字生成密钥,并由谜底中的第二预设数量的数字生成第二谜面。
加密单元603,用于通过密钥对待加密数据进行加密,生成加密数据,并将加密数据与第二谜面发送至数据接收端。
本申请实施例提供的数据加密的装置,通过第一计算单元601,用于计算数独的第一谜面对应的谜底,其中,第一谜底由数独盘面上的第一预设数量的数字构成,谜底由数独盘面上的所有的数字构成;第一生成单元602,用于通过谜底中的数字生成密钥,并由谜底中的第二预设数量的数字生成第二谜面;加密单元603,用于通过密钥对待加密数据进行加密,生成加密数据,并将加密数据与第二谜面发送至数据接收端,解决了相关技术中使用流加密算法时加密和解密的密钥相同,导致在密钥泄露的情况下信息数据泄露的问题。将相同谜底的不同谜面设置成加密数据和解密数据,进而达到了将对称加密算法中的相同密钥进行隐藏的效果,从而提高了数据传输的安全性。
可选地,在本申请实施例提供的数据加密装置中,该装置还包括:谜面生成单元,用于在计算数独的第一谜面对应的谜底之前,将第一预设数量的数字设置在数独盘面中的任意位置,得到第一谜面,其中,第一预设数量大于等于17。
可选地,在本申请实施例提供的数据加密装置中,第一生成单元602包括:第一选取模块,用于从谜底中选取数字,并将选取到的数字作为候选数字,其中,候选数字为谜底中的全部数字或部分数字;第一组合模块,用于按照预设规则对候选数字进行组合,得到密钥。
可选地,在本申请实施例提供的数据加密装置中,加密单元603包括:第一确定模块,用于确定密钥中的各个数字对应的数值,得到多个数值;第一加密模块,用于在待加密数据的长度小于等于密钥的长度的情况下,遍历多个数值,通过每个数值依次对待加密数据中的对应数量的数据进行加密,得到多个加密数字,并将多个加密数字组合成加密数据,其中,对应数量为数值所指示的数量;第二加密模块,用于在待加密数据的大于密钥的长度的情况下,多次遍历多个数值,通过每个数值依次对待加密数据中的对应数量的数据进行加密,直到对待加密数据中的所有数据完成加密,得到多个加密数字,并将多个加密数字组合成加密数据。
可选地,在本申请实施例提供的数据加密装置中,第一加密模块和第二加密模块中包括加密子模块,用于通过每个数值依次对待加密数据中的对应数量的数据进行加密,加密子模块包括:确定子模块,用于根据每个数值确定待加密数据中对应比特数的数据,得到对应数量的数据,并将对应数量的数据转换成十进制数据;计算子模块,用于依次将各个数值与对应的十进制数据按照预设计算规则进行计算,得到多个加密数字,其中,预设计算规则为至少以下之一:相加、相减、相乘和相除。
可选地,在本申请实施例提供的数据加密装置中,加密单元603还包括:分组模块,用于将待加密数据进行分组,得到多组数据;第三加密模块,用于使用密钥分别对多组数据进行加密,得到多个第一加密数据;组合模块,用于将多个第一加密数据组合为加密数据。
上述数据加密装置包括处理器和存储器,上述第一计算单元601、第一生成单元602和加密单元603等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来解决相关技术中使用流加密算法时加密和解密的密钥相同,导致在密钥泄露的情况下信息数据泄露的问题。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
图7是根据本申请实施例的数据解密装置的示意图,对上述的数据加密装置加密后的数据进行解密。如图7所示,该装置包括:接收单元701、第二计算单元702、第二生成单元703和解密单元704。
具体地,接收单元701,用于接收发送端发送的加密数据和数独的第二谜面。
第二计算单元702,用于通过第二谜面计算数独的谜底,其中,第二谜面由谜底中的第二预设数量的数据构成。
第二生成单元703,用于通过谜底中的数据生成密钥。
解密单元704,用于通过密钥对加密数据进行解密,得到解密数据。
本申请实施例提供的数据解密的装置,通过接收单元701接收发送端发送的加密数据和数独的第二谜面;第二计算单元702通过第二谜面计算数独的谜底,其中,第二谜面由谜底中的第二预设数量的数据构成;第二生成单元703通过谜底中的数据生成密钥;解密单元704通过密钥对加密数据进行解密,得到解密数据,解决了相关技术中使用流加密算法时加密和解密的密钥相同,导致在密钥泄露的情况下信息数据泄露的问题。将相同谜底的不同谜面设置成加密数据和解密数据,进而达到了将对称加密算法中的相同密钥进行隐藏的效果,从而提高了数据传输的安全性。
可选地,在本申请实施例提供的数据解密装置中,第二生成单元703包括:第二选取模块,用于从谜底中选取数字,并将选取到的数字作为候选数字,其中,候选数字为谜底中的全部数字或部分数字;第二组合模块,用于按照预设规则对候选数字进行组合,得到密钥。
可选地,在本申请实施例提供的数据解密装置中,解密单元704包括:第二确定模块,用于确定密钥中的各个数字对应的数值,得到多个数值;第一解密模块,用于在加密数据的长度小于等于密钥的长度的情况下,遍历多个数值,通过每个数值依次对加密数据中的每个十进制数字按照预设计算规则进行计算,得到多个计算后的数据,预设计算规则为至少以下之一:相加、相减、相乘和相除;第二解密模块,用于在加密数据的大于密钥的长度的情况下,多次遍历多个数值,通过每个数值依次对加密数据中的每个十进制数字按照预设计算规则进行计算,直到对加密数据中的所有数据完成解密,得到计算后的数据;转换模块,用于将每个计算后的数据转换为二进制数据,得到多组二进制数据,由多组二进制数据构成解密数据。
上述数据解密装置包括处理器和存储器,上述接收单元701、第二计算单元702、第二生成单元703和解密单元704等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来解决相关技术中使用流加密算法时加密和解密的密钥相同,导致在密钥泄露的情况下信息数据泄露的问题。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本申请实施例还提供了一种非易失性存储介质,非易失性存储介质包括存储的程序,其中,程序运行时控制非易失性存储介质所在的设备执行一种数据加密方法或数据解密方法。
本申请实施例还提供了一种电子该装置,包含处理器和存储器;存储器中存储有计算机可读指令,处理器用于运行计算机可读指令,其中,计算机可读指令运行时执行一种数据加密方法或数据解密方法。本文中的电子装置可以是服务器、PC、PAD、手机等。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (11)
1.一种数据加密的方法,其特征在于,包括:
计算数独的第一谜面对应的谜底,其中,所述第一谜底由数独盘面上的第一预设数量的数字构成,所述谜底由数独盘面上的所有的数字构成;
通过所述谜底中的数字生成密钥,并由所述谜底中的第二预设数量的数字生成第二谜面;
通过所述密钥对待加密数据进行加密,生成加密数据,并将所述加密数据与所述第二谜面发送至数据接收端。
2.根据权利要求1所述的方法,其特征在于,在所述计算数独的第一谜面对应的谜底之前,所述方法还包括:
将所述第一预设数量的数字设置在所述数独盘面中的任意位置,得到所述第一谜面,其中,所述第一预设数量大于等于17。
3.根据权利要求1所述的方法,其特征在于,通过所述谜底中的数字生成密钥包括:
从所述谜底中选取数字,并将选取到的数字作为候选数字,其中,所述候选数字为所述谜底中的全部数字或部分数字;
按照预设规则对所述候选数字进行组合,得到所述密钥。
4.根据权利要求1所述的方法,其特征在于,通过所述密钥对待加密数据进行加密,生成加密数据包括:
确定所述密钥中的各个数字对应的数值,得到多个数值;
在所述待加密数据的长度小于等于所述密钥的长度的情况下,遍历所述多个数值,通过每个数值依次对所述待加密数据中的对应数量的数据进行加密,得到多个加密数字,并将所述多个加密数字组合成所述加密数据,其中,所述对应数量为所述数值所指示的数量;
在所述待加密数据的大于所述密钥的长度的情况下,多次遍历所述多个数值,通过每个数值依次对所述待加密数据中的对应数量的数据进行加密,直到对所述待加密数据中的所有数据完成加密,得到多个加密数字,并将所述多个加密数字组合成所述加密数据。
5.根据权利要求1所述的方法,其特征在于,通过每个数值依次对所述待加密数据中的对应数量的数据进行加密,得到多个加密数字包括:
根据每个所述数值确定所述待加密数据中对应比特数的数据,得到所述对应数量的数据,并将所述对应数量的数据转换成十进制数据;
依次将各个所述数值与对应的十进制数据按照预设计算规则进行计算,得到多个加密数字,其中,所述预设计算规则为至少以下之一:相加、相减、相乘和相除。
6.根据权利要求1所述的方法,其特征在于,通过所述密钥对待加密数据进行加密,生成加密数据包括:
将所述待加密数据进行分组,得到多组数据;
使用所述密钥分别对所述多组数据进行加密,得到多个第一加密数据;
将所述多个第一加密数据组合为所述加密数据。
7.一种数据解密的方法,其特征在于,对权利要求1至6中任意一项所述的数据加密方法加密后的数据进行解密,包括:
接收发送端发送的加密数据和数独的第二谜面;
通过所述第二谜面计算所述数独的谜底,其中,所述第二谜面由所述谜底中的第二预设数量的数据构成;
通过所述谜底中的数据生成密钥;
通过所述密钥对所述加密数据进行解密,得到解密数据。
8.根据权利要求7所述的方法,其特征在于,通过所述谜底中的数字生成密钥包括:
从所述谜底中选取数字,并将选取到的数字作为候选数字,其中,所述候选数字为所述谜底中的全部数字或部分数字;
按照预设规则对所述候选数字进行组合,得到所述密钥。
9.根据权利要求7所述的方法,其特征在于,通过所述密钥对所述加密数据进行解密,得到解密数据包括:
确定所述密钥中的各个数字对应的数值,得到多个数值;
在所述加密数据的长度小于等于所述密钥的长度的情况下,遍历所述多个数值,通过每个数值依次对所述加密数据中的每个十进制数字按照预设计算规则进行计算,得到多个计算后的数据,所述预设计算规则为至少以下之一:相加、相减、相乘和相除;
在所述加密数据的大于所述密钥的长度的情况下,多次遍历所述多个数值,通过每个数值依次对所述加密数据中的每个十进制数字按照预设计算规则进行计算,直到对所述加密数据中的所有数据完成解密,得到计算后的数据;
将每个所述计算后的数据转换为二进制数据,得到多组二进制数据,由所述多组二进制数据构成所述解密数据。
10.一种数据加密的装置,其特征在于,包括:
第一计算单元,用于计算数独的第一谜面对应的谜底,其中,所述第一谜底由数独盘面上的第一预设数量的数字构成,所述谜底由数独盘面上的所有的数字构成;
第一生成单元,用于通过所述谜底中的数字生成密钥,并由所述谜底中的第二预设数量的数字生成第二谜面;
加密单元,用于通过所述密钥对待加密数据进行加密,生成加密数据,并将所述加密数据与所述第二谜面发送至数据接收端。
11.一种数据解密的装置,其特征在于,对权利要求10所述的数据加密装置加密后的数据进行解密,包括:
接收单元,用于接收发送端发送的加密数据和数独的第二谜面;
第二计算单元,用于通过所述第二谜面计算所述数独的谜底,其中,所述第二谜面由所述谜底中的第二预设数量的数据构成;
第二生成单元,用于通过所述谜底中的数据生成密钥;
解密单元,用于通过所述密钥对所述加密数据进行解密,得到解密数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111355575.1A CN114021174A (zh) | 2021-11-16 | 2021-11-16 | 数据加密的方法和装置以及数据解密的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111355575.1A CN114021174A (zh) | 2021-11-16 | 2021-11-16 | 数据加密的方法和装置以及数据解密的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114021174A true CN114021174A (zh) | 2022-02-08 |
Family
ID=80064453
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111355575.1A Pending CN114021174A (zh) | 2021-11-16 | 2021-11-16 | 数据加密的方法和装置以及数据解密的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114021174A (zh) |
-
2021
- 2021-11-16 CN CN202111355575.1A patent/CN114021174A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Fu et al. | A new chaos‐based color image encryption scheme with an efficient substitution keystream generation strategy | |
US9973334B2 (en) | Homomorphically-created symmetric key | |
CN1993922B (zh) | 流密码组合系统和方法 | |
US8340295B2 (en) | High-speed cryptographic system using chaotic sequences | |
CN110348231A (zh) | 实现隐私保护的数据同态加解密方法及装置 | |
JP6499519B2 (ja) | メッセージを安全に交換する暗号方式並びにこの方式を実施する装置及びシステム | |
JPH08510365A (ja) | データ暗号化のための方法および装置 | |
KR100662667B1 (ko) | 동기 스트림 암호 | |
CA3007348A1 (en) | Fast format-preserving encryption for variable length data | |
CN115276989B (zh) | 基于方向置乱的序列化数据加密方法 | |
JP6517436B2 (ja) | 暗号化デバイス及び符号化デバイス | |
CN113904808B (zh) | 一种私钥分发、解密方法、装置、设备及介质 | |
CN110505054B (zh) | 一种基于动态白盒的数据处理方法、装置及设备 | |
CN110519039A (zh) | 一种数据的同态处理方法 | |
KR20060134992A (ko) | 정수를 가산하는 컴퓨터 시스템 | |
CN115766190B (zh) | 一种任意集合元素加密方法、解密方法及电子设备 | |
CN117134906A (zh) | 多方隐私求交方法及相关装置 | |
CN115348018B (zh) | 一种数据处理方法、装置及存储介质 | |
CN114021174A (zh) | 数据加密的方法和装置以及数据解密的方法和装置 | |
JP5436373B2 (ja) | 秘匿性増強処理演算装置およびこれを備えた量子暗号通信端末 | |
Loyka et al. | A homomorphic encryption scheme based on affine transforms | |
CN104837131B (zh) | 一种基于批处理指数运算乘积的批Cramer-Shoup密码方法 | |
RU2188513C2 (ru) | Способ криптографического преобразования l-битовых входных блоков цифровых данных в l-битовые выходные блоки | |
JP2003507761A (ja) | 擬似乱数の形成方法および電子署名方法 | |
CN116226874A (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 |