CN115622745A - 加密方法、装置、终端设备及计算机可读存储介质 - Google Patents

加密方法、装置、终端设备及计算机可读存储介质 Download PDF

Info

Publication number
CN115622745A
CN115622745A CN202211152830.7A CN202211152830A CN115622745A CN 115622745 A CN115622745 A CN 115622745A CN 202211152830 A CN202211152830 A CN 202211152830A CN 115622745 A CN115622745 A CN 115622745A
Authority
CN
China
Prior art keywords
byte
key
initial
section
data
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
Application number
CN202211152830.7A
Other languages
English (en)
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.)
Shenzhen Ubtech Technology Co ltd
Original Assignee
Shenzhen Ubtech Technology 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 Shenzhen Ubtech Technology Co ltd filed Critical Shenzhen Ubtech Technology Co ltd
Priority to CN202211152830.7A priority Critical patent/CN115622745A/zh
Publication of CN115622745A publication Critical patent/CN115622745A/zh
Pending legal-status Critical Current

Links

Images

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
    • 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
    • H04L63/0464Network 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 using hop-by-hop encryption, i.e. wherein an intermediate entity decrypts the information and re-encrypts it before forwarding it

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

本申请适用于密码技术领域,提供了一种加密方法、装置、终端设备及计算机可读存储介质,包括:对用户输入的初始密钥进行扩展,获得扩展密钥,所述扩展密钥的字节数大于所述初始密钥的字节数;根据所述扩展密钥的字节数将待加密明文划分为多个第一数据块;根据所述扩展密钥分别对每个所述第一数据块加密。通过上述方法,能够在用户输入简单密码的情况下,提高加密文件的安全性。

Description

加密方法、装置、终端设备及计算机可读存储介质
技术领域
本申请属于密码技术领域,尤其涉及一种加密方法、装置、终端设备及计算机可读存储介质。
背景技术
文件加密是将原始文件中的明文根据密钥进行编码而得到无法直接阅读的密文的过程。文件解密则是加密的反向处理过程。加密和解密的数据处理规则相同。在许多应用场景中,都需要对数据进行加密,以保证数据的安全性。例如,对磁盘中的数据文件进行加密,使其不容易被窃取盗用。
相关技术中,若要提高加密文件的安全性,通常需要用户设置较为复杂的密码或采用较为复杂的加密算法。若采用较为复杂的密码,密码中字符数量较多,且字符类型较多,不利于用户记忆密码,用户体验度较差。若采用较为复杂的加密算法,运算量较大,对加密设备的算力要求较高。
发明内容
本申请实施例提供了一种加密方法、装置、终端设备及计算机可读存储介质,可以提高加密文件的安全性。
第一方面,本申请实施例提供了一种加密方法,包括:
对用户输入的初始密钥进行扩展,获得扩展密钥,所述扩展密钥的字节数大于所述初始密钥的字节数;
根据所述扩展密钥的字节数将待加密明文划分为多个第一数据块;
根据所述扩展密钥分别对每个所述第一数据块加密。
本申请实施例中,通过对用户输入的初始密钥进行扩展,可以字节数较多的扩展密钥,用户只需设置简单的密码,即可获得相对复杂的密码,利于提高加密文件的安全性;其次,利用扩展密钥对待加密明文分段加密,提升了待加密明文中每个数据块的安全性,从而提高了加密文件整体的安全性。
在第一方面的一种可能的实现方式中,所述对用户输入的初始密钥进行扩展,获得扩展密钥,包括:
将所述初始密钥划分为多个初始字节段,每个所述初始字节段中包括至少两个字节;
根据所述初始字节段进行异或处理,获得每个所述初始字节段对应的扩展字节段;
根据所述初始字节段和所述扩展字节段生成所述扩展密钥。
在第一方面的一种可能的实现方式中,所述根据所述初始字节段进行异或处理,获得每个所述初始字节段对应的扩展字节段,包括:
对第一字节段进行数据转换处理,获得转换字节段,其中,所述第一字节段为多个所述初始字节段中的第x个初始字节段;
将第二字节段和所述转换字节段进行异或处理,获得所述第二字节段对应的扩展字节段,其中,所述第二字节段为多个所述初始字节段中第y个初始字节段。
在第一方面的一种可能的实现方式中,在将第二字节段和所述转换字节段进行异或处理,获得所述第二字节段对应的扩展字节段之后,所述方法还包括:
将第三字节段和所述第二字节段对应的扩展字节段进行异或处理,获得所述第三字节段对应的扩展字节段,其中,所述第三字节段为多个所述初始字节段中除所述第二字节段外的任意一个字节段。
在第一方面的一种可能的实现方式中,所述对第一字节段进行数据转换处理,获得转换字节段,包括:
将所述第一字节段中的字节调换位置,获得第四字节段;
从预设的数据矩阵中获取所述第四字节段对应的第一码值;
根据所述第一码值进行异或处理,获得所述转换字节段。
在第一方面的一种可能的实现方式中,所述根据所述扩展密钥分别对每个所述第一数据块加密,包括:
对于第m个第一数据块中的第i个字节,获取所述扩展密钥中与所述i对应的扩展字节段;
从预设的数据矩阵中获取与所述m对应的第二码值;
从所述数据矩阵中获取与所述i对应的第三码值;
根据所述第m个第一数据块、所述i对应的扩展字节段、所述第二码值和所述第三码值进行异或处理,获得所述第m个第一数据块中第i个字节的密文。
在第一方面的一种可能的实现方式中,所述方法还包括:
根据所述扩展密钥的字节数将待处理密文划分为多个第二数据块;
对于第n个第二数据块中的第j个字节,获取所述扩展密钥中与所述j对应的扩展字节段;
从所述数据矩阵中获取与所述n对应的第四码值;
从所述数据矩阵中获取与所述j对应的第五码值;
根据所述第n个第二数据块、所述j对应的扩展字节段、所述第四码值和所述第五码值进行异或处理,获得所述第n个第二数据块中第j个字节的明问。
第二方面,本申请实施例提供了一种加密装置,包括:
密钥扩展单元,用于对用户输入的初始密钥进行扩展,获得扩展密钥,所述扩展密钥的字节数大于所述初始密钥的字节数;
数据划分单元,用于根据所述扩展密钥的字节数将待加密明问划分为多个第一数据块;
数据加密单元,用于根据所述扩展密钥分别对每个所述第一数据块加密。
第三方面,本申请实施例提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面中任一项所述的加密方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述第一方面中任一项所述的加密方法。
第五方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行上述第一方面中任一项所述的加密方法。
可以理解的是,上述第二方面至第五方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的加密方法的流程示意图;
图2是本申请实施例提供加密装置的结构示意图;
图3是本申请实施例提供终端设备的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当…时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。
首先介绍本申请实施例涉及到的技术背景。
文件加密是将原始文件中的明文根据密钥进行编码而得到无法直接阅读的密文的过程。文件解密则是加密的反向处理过程。加密和解密的数据处理规则相同。在许多应用场景中,都需要对数据进行加密,以保证数据的安全性。例如,对磁盘中的数据文件进行加密,使其不容易被窃取盗用。
加密方法主要分为对称加密和非对称加密两种类型。对称加密是一种比较传统的加密方式,其加密运算、解密运算使用的是同样的密钥,其计算量小、速度快、效率高、资源消耗低,但安全性中等。非对称加密则有两个密钥,其安全性高、密钥易于管理,但速度慢、资源消耗高,适合小数据量加解密或数据签名。因此,针对低成本芯片和大文件读写,一般采用对称加密的方法。
对称加密技术主要有以下3种算法:
(1)数据标准加密算法(DES,Data Encryption Standard)
DES算法的入口参数有三个:Key、Data、Mode。其中Key为8个字节共64位,是DES算法的工作密钥;Data也为8个字节64位,是被加密或被解密的数据;Mode为DES的工作方式,有两种:加密或解密。DES加密算法安全性较低,容易被破解。
(2)三重数据加密算法(3DES,Triple Data Encryption Algorithm)
3DES相当于是对每个数据块应用三次DES加密算法。由于计算机运算能力的增强,原版DES密码的密钥长度变得容易被暴力破解;3DES即是设计用来提供一种相对简单的方法,即通过增加DES的密钥长度来避免类似的攻击,而不是设计一种全新的块密码算法。
(3)高级加密标准算法(AES,Advanced Encryption Standard)
AES加密算法是密码学中的高级加密标准,AES为分组加密法,把明文分成一组一组的,每组长度相等,每次加密一组数据,直到加密完整个明文,在AES标准规范中,分组长度只能是128位,AES是按照字节进行加密的,也就是说每个分组为16个字节(每个字节8位)。密钥的长度可以使用128位、192位或256位。这导致密钥长度不同,推荐加密的轮数也不同。AES算法的特点有:设计简单;编码紧凑;抵抗所有已知攻击;没有采用Feistel结构,轮函数由3个不同的可逆均匀变换构成:非线性层、线性混合层和密钥加层。AES算法在算力较强的设备上,对大文件的编码或解码所需要的时间较短,但对于普通的单片机芯片仍然需要较长的时间。
有上述可知,相关技术中,若要提高加密文件的安全性,通常需要用户设置较为复杂的密码或采用较为复杂的加密算法。若采用较为复杂的密码,密码中字符数量较多,且字符类型较多,不利于用户记忆密码,用户体验度较差。若采用较为复杂的加密算法,运算量较大,对加密设备的算力要求较高。因此,需要设计一款计算量低、且保密性高的加密算法。
参见图1,是本申请实施例提供的加密方法的流程示意图,作为示例而非限定,所述方法可以包括以下步骤:
S101,对用户输入的初始密钥进行扩展,获得扩展密钥,所述扩展密钥的字节数大于所述初始密钥的字节数。
扩展密钥的字节数可以根据待加密明文确定。如扩展密钥的字节数大于初始密钥的字节数,且小于待加密明文的字节数。
具体的扩展方法详见下述实施例中的描述。
S102,根据所述扩展密钥的字节数将待加密明文划分为多个第一数据块。
本申请实施例中的明文,是指没有加密的文字(或者字符串)。在通信系统中它可能是比特流,如文本、位图、数字化的语音或者数字化的视频图像等。通常可以简单地认为明文是有意义的字符或比特集,或通过某种公开的编码标准就能获得的消息。明文加密后得到密文。对密文来说,若想得到明文,就应通过与加密算法对应的解密算法进行解密,恢复出明文。
示例性的,假设用户设置的初始密钥为16字节,扩展密钥为1024个字节,那么,可以将待加密明文按照1024字节划分为多个第一数据块,每个第一数据块中包含1024个字节。
一种情况下,对于待加密明文中最后一个数据块,若该数据块中不够1024个字节,可以用预设数值将其填充为1024个字节。相应的,在解密后,删除填充的预设数值,即可得到原有的待加密明文。
当然,实际应用中还存在一种情况,扩展密钥的字节数大于待加密明文的字节数。该情况下,可以将待加密明文以预设数值填充为扩展密钥的字节数,然后利用扩展密钥对填充后的待加密明文进行加密。与划分数据块的方式相比,这种方式将待加密明文作为整体进行加密,一旦解密,则获得完整的明文,安全性较低,因此,本申请实施例不予考虑。
S103,根据所述扩展密钥分别对每个所述第一数据块加密。
可以考虑将扩展密钥和每个第一数据块中各个字符的位置相结合,使得每个字符对应的密码都不一样,进一步提高加密文件的安全性。具体方式见下述实施例中的描述。
本申请实施例中,通过对用户输入的初始密钥进行扩展,可以字节数较多的扩展密钥,用户只需设置简单的密码,即可获得相对复杂的密码,利于提高加密文件的安全性;其次,利用扩展密钥对待加密明文分段加密,相应的,在解密过程中,逐个数据块解密,无法直接获得完整的明文,提升了待加密明文中每个数据块的安全性,从而提高了加密文件整体的安全性。
在一个实施例中,S101可以包括以下步骤:
将所述初始密钥划分为多个初始字节段,每个所述初始字节段中包括至少两个字节;根据所述初始字节段进行异或处理,获得每个所述初始字节段对应的扩展字节段;根据所述初始字节段和所述扩展字节段生成所述扩展密钥。
示例性的,假设用户设置16字节(128位)的初始密钥,可以将初始密钥划分为4个初始字阶段,每个初始字阶段中包括4个字节(32位)。如下:
W[0](0~3)=K[0],K[1],K[2],K[3];
W[1](0~3)=K[4],K[5],K[6],K[7];
W[2](0~3)=K[8],K[9],K[10],K[11];
W[3](0~3)=K[12],K[13],K[14],K[15];
其中K[i]表示初始密钥K的第i个字节,0≤i≤15。即初始密钥中的第1到4个字节属于第一个初始字节段W[0],初始密钥中的第5到8个字节属于第二个初始字节段W[1],始密钥中的第9到12个字节属于第二个初始字节段W[2],始密钥中的第13到16个字节属于第二个初始字节段W[3]。
需要说明的是,上述只是初始字节段划分的示例,并不用于对初始字阶段的个数、以及每个初始字节段中包含的字节数做具体限定,可以根据实际情况设定。例如,将16字节的初始密钥划分为2个初始字节段,每个初始字节段中包括8个字节;或者将16字节的初始密钥划分为8个初始字节段,每个初始字节段中包括2个字节。
异或是一种数学运算,数学符号为
Figure BDA0003857615820000091
其运算规则为:如果两个数值不相同,则异或结果为1。如果两个数值相同,异或结果为0。
异或运算简单、高效,且具有可逆性,即a和b的异或结果,再与a异或可以得到b,再与b异或可以得到a。因此,利用该性质,不仅可以提高加密过程的效率,还可以使解密过程更为简单。
可选的,根据初始字阶段进行异或处理的一种实现方式为:将初始字节段两两异或。继续以上述示例进行说明,将W[0]和W[1]异或,将W[1]和W[2]异或,将W[2]和W[3]异或,将W[3]和W[0]异或,可以扩展出4个扩展字节段。
由于异或运算的可逆性,上述方式得到的扩展字节段的数量有限,具有局限性。
为了解决上述问题,本申请实施例中,提供一种根据初始字阶段进行异或处理的实现方式:
对第一字节段进行数据转换处理,获得转换字节段,其中,所述第一字节段为多个所述初始字节段中的第x个初始字节段;
将第二字节段和所述转换字节段进行异或处理,获得所述第二字节段对应的扩展字节段,其中,所述第二字节段为多个所述初始字节段中第y个初始字节段。
通过上述方法,先数据转换,再将转换字节段与某个初始字节段异或,这样得到的扩展字节段再与其他初始字节段异或,不会可逆回某个初始字节段。因此,通过上述方法,可以扩展出较多的扩展字节段,提高了算法的可靠性。
可选的,在获得每个扩展字节段时,都可以根据上述方式,即先进行数据转换,再异或。但由于转换过程较为繁琐,若每次扩展都需要执行转换过程,数据处理量较大,加密效率较低。
为了减少数据处理量、提高加密效率,本申请实施例中,所述方法还包括:
将第三字节段和所述第二字节段对应的扩展字节段进行异或处理,获得所述第三字节段对应的扩展字节段,其中,所述第三字节段为多个所述初始字节段中除所述第二字节段外的任意一个字节段。
继续以上述示例进行说明,在初始字节段W[0]、W[1]、W[2]和W[3]的基础上,进行第一轮扩展的过程如下:
Figure BDA0003857615820000101
Figure BDA0003857615820000102
Figure BDA0003857615820000103
Figure BDA0003857615820000104
先对W[3]进行数据转换处理,得到转换字节段T(W[3]);将转换字节段T(W[3])和初始字节段W[0]异或,得到第一个扩展字节段W[4];将扩展字节段W[4]和初始字节段W[1]异或,得到第二个扩展字节段W[5];依次类推。进行第二轮扩展的过程如下:
Figure BDA0003857615820000105
Figure BDA0003857615820000106
Figure BDA0003857615820000107
Figure BDA0003857615820000108
依照上述方式,可以进行多轮扩展,以扩展出多个扩展字节段。
通过上述方法,在每轮扩展过程中,只需对一个字节段进行数据转换处理,大大节约了加密时间。
需要说明的是,为了便于解密,通常在加密过程中规定满足预设条件的字节段根据转换字节段异或得到。如上述示例,可以规定当W[z]中的z为4的倍数时,该W[z]根据某个字节段与一个转换字节段异或得到。
当然,还需要规定哪两个字节段进行异或处理,解密时采用相同的规则。本申请实施例中不对具体规则做限定。
可选的,数据转换处理的过程可以包括:
将所述第一字节段中的字节调换位置,获得第四字节段;从预设的数据矩阵中获取所述第四字节段对应的第一码值;根据所述第一码值进行异或处理,获得所述转换字节段。
本申请实施例中,预设的数据矩阵中的元素可以预先设定,解密过程中使用相同的数据矩阵。实际应用中,数据矩阵可以为S盒。该数据矩阵可以封闭存储在加密装置中,以提高算法的安全性。
可选的,根据第一码值进行异或处理的一种实现方式为:将第一码值和第四字节段异或处理,获得转换字节段。
为了提高算法的安全性,可选的,根据第一码值异或处理的另一种实现方式为:计算第一码值中各元素之和,得到和数据;从数据矩阵中获取所述和数据对应的第二码值;将第一码值和第二码值进行异或处理,获得转换字节段。
这种方式利用了两次数据矩阵,提高了转换过程的复杂度,利于提高加密安全性。
下面以第一字节段为上述示例中的W[3]说明获得转换字节段T(W[3])的过程:
①将W[3](0~3)的四个元素掉换位置得到第四字节段V[3](0~3):
即V[3](0~3)=V[3](0),V[3](1),V[3](2),V[3](3)=K[13],K[14],K[15],K[12]。
实际应用中,加密和解密过程中调换位置的规则需保持一致即可,不对规则做具体限定。
②将V[3](0~3)作为S盒的输入,以V[3]中每个元素的高四位和低四位分别作为S盒的行和列,检索得到相应的值作为第一码值U[3](0~3):
U[3](h)=S[(V[3](h)&0xF0)>>4][V[3](h)&0x0F];
其中,h为下标索引,0≤h≤3。&表示与运算。>>表示向右移位,>>4表示向右移4位。
需要说明的是,本申请实施例中,异或运算指按位异或,与运算为按位与。
假设S盒是一个16×16的矩阵,里面填充的数值(十六进制)如下表:
行\列 0 1 2 3 4 5 6 7 8 9 A B C D E F
0 63 7c 77 7b f2 6b 6f c5 30 01 67 2b fe d7 ab 76
1 ca 82 c9 7d fa 59 47 f0 ad d4 a2 af 9c a4 72 c0
2 b7 fd 93 26 36 3f f7 CC 34 a5 e5 f1 71 d8 31 15
3 04 c7 23 c3 18 96 05 9a 07 12 80 e2 eb 27 b2 75
4 09 83 2c 1a 1b 6e 5a a0 52 3b d6 b3 29 e3 2f 84
5 53 d1 00 ed 20 fc b1 5b 6a cb be 39 4a 4c 58 cf
6 d0 ef aa fb 43 4d 33 85 45 f9 02 7f 50 3c 9f a8
7 51 a3 40 8f 92 9d 38 f5 bc b6 da 21 10 ff f3 d2
8 cd Oc 13 ec 5f 97 44 17 c4 a7 7e 3d 64 5d 19 73
9 60 81 4f dc 22 2a 90 88 46 ee b8 14 de 5e 0b db
A e0 32 3a 0a 49 06 24 5c c2 d3 aC 62 91 95 e4 79
B e7 c8 37 6d 8d d5 4e a9 6c 56 f4 ea 65 7a ae 08
C ba 78 25 2e 1c a6 b4 c6 e8 dd 74 1f 4b bd 8b 8a
D 70 3e b5 66 48 03 f6 Oe 61 35 57 b9 86 c1 1d 9e
E e1 f8 98 11 69 d9 8e 94 9b 1e 87 e9 ce 55 28 df
F 8c a1 89 0d bf e6 42 68 41 99 2d Of b0 54 bb 16
③将U[3]的四个元素进行相加后取低八位得到和数据X,然后取X的高四位和低四位分别作为S盒的行和列,检索得到相应的值第二码值Y,即:
X={U[3](0)+U[3](1)+U[3](2)+U[3](3)}&0x00FF;
Y=S[(X>>4)&0xF0][X&0x0F];
需要说明的是,U[3]的四个元素进行相加后可能发生数据溢出情况,因此,规定取其和的低八位作为和数据X。
④将U[3]与Y进行异或运算,将得到转换字节段T[3]。
基于上述扩展密钥的获取过程,在一个实施例中,上述S103,根据所述扩展密钥分别对每个所述第一数据块加密,可以包括:
对于第m个第一数据块中的第i个字节,获取所述扩展密钥中与所述i对应的扩展字节段;
从预设的数据矩阵中获取与所述m对应的第二码值;
从所述数据矩阵中获取与所述i对应的第三码值;
根据所述第m个第一数据块、所述i对应的扩展字节段、所述第二码值和所述第三码值进行异或处理,获得所述第m个第一数据块中第i个字节的密文。
示例性的,假设扩展密钥长度为1024字节,将待加密明文以1024字节切
分为M个数据块A,取第m个(0≤m<M)数据块A[m]进行编码得到E[m],即:
Figure BDA0003857615820000131
其中,i为每个数据块中字节的下标,0≤i<1024。i%256为i除以256的余数,i/256为i除以256的商,W[i%256](i/256)表示第(i%256)个扩展字节段中的第(i/256)个字节。G[m]=S[(m>>4)&0xF0][m&0x0F],H[i]=S[(i>>4)&0xF0][i&0x0F]。
通过上述方法,利用数据块编号m和字节下标i进一步打乱扩展字节段,以提高密文的安全性。
基于上述实施例所述的加密方法,在一个实施例中,本申请实施例提供了一种解密方法,具体包括以下步骤:
根据所述扩展密钥的字节数将待处理密文划分为多个第二数据块;
对于第n个第二数据块中的第j个字节,获取所述扩展密钥中与所述j对应的扩展字节段;
从所述数据矩阵中获取与所述n对应的第四码值;
从所述数据矩阵中获取与所述j对应的第五码值;
根据所述第n个第二数据块、所述j对应的扩展字节段、所述第四码值和所述第五码值进行异或处理,获得所述第n个第二数据块中第j个字节的明文。
以上述加密方法为例,说明其相应的解密过程:将待处理密文以1024字节切分为N个数据块B,取第n个(0≤n<N)数据块B[n]进行解码得到D[n],即:
Figure BDA0003857615820000132
其中,j为数据块的字节的下标,0≤j<1024。
需要说明的是,解密过程涉及的规则(如异或处理、转换处理等)均与加密过程保持一致。
本申请实施例中,通过对用户输入的初始密钥进行扩展,可以字节数较多的扩展密钥,用户只需设置简单的密码,即可获得相对复杂的密码,利于提高加密文件的安全性;其次,利用扩展密钥对待加密明文分段加密,提升了待加密明文中每个数据块的安全性,从而提高了加密文件整体的安全性。再次,在加密过程中,将扩展字节段和字符位置相结合,使得每个明文字符对应的密码都是不一样的,大大提高了替换加密法的安全性。另外,上述加密方法中涉及到的运算(如异或处理)简单、高效,大大提高了编解码的速度,适用于嵌入式芯片对大型密文的读取。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
对应于上文实施例所述的加密方法,图2是本申请实施例提供的加密装置的结构框图,为了便于说明,仅示出了与本申请实施例相关的部分。
参照图2,该装置包括:
密钥扩展单元21,用于对用户输入的初始密钥进行扩展,获得扩展密钥,所述扩展密钥的字节数大于所述初始密钥的字节数。
数据划分单元22,用于根据所述扩展密钥的字节数将待加密明文划分为多个第一数据块。
数据加密单元23,用于根据所述扩展密钥分别对每个所述第一数据块加密。
可选的,密钥扩展单元21还用于:
将所述初始密钥划分为多个初始字节段,每个所述初始字节段中包括至少两个字节;
根据所述初始字节段进行异或处理,获得每个所述初始字节段对应的扩展字节段;
根据所述初始字节段和所述扩展字节段生成所述扩展密钥。
可选的,密钥扩展单元21还用于:
对第一字节段进行数据转换处理,获得转换字节段,其中,所述第一字节段为多个所述初始字节段中的第x个初始字节段;
将第二字节段和所述转换字节段进行异或处理,获得所述第二字节段对应的扩展字节段,其中,所述第二字节段为多个所述初始字节段中第y个初始字节段。
可选的,密钥扩展单元21还用于:
在将第二字节段和所述转换字节段进行异或处理,获得所述第二字节段对应的扩展字节段之后,将第三字节段和所述第二字节段对应的扩展字节段进行异或处理,获得所述第三字节段对应的扩展字节段,其中,所述第三字节段为多个所述初始字节段中除所述第二字节段外的任意一个字节段。
可选的,密钥扩展单元21还用于:
将所述第一字节段中的字节调换位置,获得第四字节段;
从预设的数据矩阵中获取所述第四字节段对应的第一码值;
根据所述第一码值进行异或处理,获得所述转换字节段。
可选的,数据加密单元23还用于:
对于第m个第一数据块中的第i个字节,获取所述扩展密钥中与所述i对应的扩展字节段;
从预设的数据矩阵中获取与所述m对应的第二码值;
从所述数据矩阵中获取与所述i对应的第三码值;
根据所述第m个第一数据块、所述i对应的扩展字节段、所述第二码值和所述第三码值进行异或处理,获得所述第m个第一数据块中第i个字节的密文。
可选的,装置2还包括:
数据解密单元24,用于根据所述扩展密钥的字节数将待处理密文划分为多个第二数据块;对于第n个第二数据块中的第j个字节,获取所述扩展密钥中与所述j对应的扩展字节段;从所述数据矩阵中获取与所述n对应的第四码值;从所述数据矩阵中获取与所述j对应的第五码值;根据所述第n个第二数据块、所述j对应的扩展字节段、所述第四码值和所述第五码值进行异或处理,获得所述第n个第二数据块中第j个字节的明文。
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
另外,图2所示的加密装置可以是内置于现有的终端设备内的软件单元、硬件单元、或软硬结合的单元,也可以作为独立的挂件集成到所述终端设备中,还可以作为独立的终端设备存在。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
图3是本申请实施例提供的终端设备的结构示意图。如图3所示,该实施例的终端设备3包括:至少一个处理器30(图3中仅示出一个)处理器、存储器31以及存储在所述存储器31中并可在所述至少一个处理器30上运行的计算机程序32,所述处理器30执行所述计算机程序32时实现上述任意各个加密方法实施例中的步骤。
所述终端设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。该终端设备可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,图3仅仅是终端设备3的举例,并不构成对终端设备3的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括输入输出设备、网络接入设备等。
所称处理器30可以是中央处理单元(Central Processing Unit,CPU),该处理器30还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable GateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器31在一些实施例中可以是所述终端设备3的内部存储单元,例如终端设备3的硬盘或内存。所述存储器31在另一些实施例中也可以是所述终端设备3的外部存储设备,例如所述终端设备3上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器31还可以既包括所述终端设备3的内部存储单元也包括外部存储设备。所述存储器31用于存储操作系统、应用程序、引导装载程序(Boot Loader)、数据以及其他程序等,例如所述计算机程序的程序代码等。所述存储器31还可以用于暂时地存储已经输出或者将要输出的数据。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时可实现上述各个方法实施例中的步骤。
本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行时实现可实现上述各个方法实施例中的步骤。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到装置/终端设备的任何实体或装置、记录介质、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random AccessMemory)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

Claims (10)

1.一种加密方法,其特征在于,包括:
对用户输入的初始密钥进行扩展,获得扩展密钥,所述扩展密钥的字节数大于所述初始密钥的字节数;
根据所述扩展密钥的字节数将待加密明文划分为多个第一数据块;
根据所述扩展密钥分别对每个所述第一数据块加密。
2.如权利要求1所述的加密方法,其特征在于,所述对用户输入的初始密钥进行扩展,获得扩展密钥,包括:
将所述初始密钥划分为多个初始字节段,每个所述初始字节段中包括至少两个字节;
根据所述初始字节段进行异或处理,获得每个所述初始字节段对应的扩展字节段;
根据所述初始字节段和所述扩展字节段生成所述扩展密钥。
3.如权利要求2所述的加密方法,其特征在于,所述根据所述初始字节段进行异或处理,获得每个所述初始字节段对应的扩展字节段,包括:
对第一字节段进行数据转换处理,获得转换字节段,其中,所述第一字节段为多个所述初始字节段中的第x个初始字节段;
将第二字节段和所述转换字节段进行异或处理,获得所述第二字节段对应的扩展字节段,其中,所述第二字节段为多个所述初始字节段中第y个初始字节段。
4.如权利要求3所述的加密方法,其特征在于,在将第二字节段和所述转换字节段进行异或处理,获得所述第二字节段对应的扩展字节段之后,所述方法还包括:
将第三字节段和所述第二字节段对应的扩展字节段进行异或处理,获得所述第三字节段对应的扩展字节段,其中,所述第三字节段为多个所述初始字节段中除所述第二字节段外的任意一个字节段。
5.如权利要求3所述的加密方法,其特征在于,所述对第一字节段进行数据转换处理,获得转换字节段,包括:
将所述第一字节段中的字节调换位置,获得第四字节段;
从预设的数据矩阵中获取所述第四字节段对应的第一码值;
根据所述第一码值进行异或处理,获得所述转换字节段。
6.如权利要求1至5任一项所述的加密方法,其特征在于,所述根据所述扩展密钥分别对每个所述第一数据块加密,包括:
对于第m个第一数据块中的第i个字节,获取所述扩展密钥中与所述i对应的扩展字节段;
从预设的数据矩阵中获取与所述m对应的第二码值;
从所述数据矩阵中获取与所述i对应的第三码值;
根据所述第m个第一数据块、所述i对应的扩展字节段、所述第二码值和所述第三码值进行异或处理,获得所述第m个第一数据块中第i个字节的密文。
7.如权利要求6所述的加密方法,其特征在于,所述方法还包括:
根据所述扩展密钥的字节数将待处理密文划分为多个第二数据块;
对于第n个第二数据块中的第j个字节,获取所述扩展密钥中与所述j对应的扩展字节段;
从所述数据矩阵中获取与所述n对应的第四码值;
从所述数据矩阵中获取与所述j对应的第五码值;
根据所述第n个第二数据块、所述j对应的扩展字节段、所述第四码值和所述第五码值进行异或处理,获得所述第n个第二数据块中第j个字节的明文。
8.一种加密装置,其特征在于,包括:
密钥扩展单元,用于对用户输入的初始密钥进行扩展,获得扩展密钥,所述扩展密钥的字节数大于所述初始密钥的字节数;
数据划分单元,用于根据所述扩展密钥的字节数将待加密明文划分为多个第一数据块;
数据加密单元,用于根据所述扩展密钥分别对每个所述第一数据块加密。
9.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述的方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的方法。
CN202211152830.7A 2022-09-21 2022-09-21 加密方法、装置、终端设备及计算机可读存储介质 Pending CN115622745A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211152830.7A CN115622745A (zh) 2022-09-21 2022-09-21 加密方法、装置、终端设备及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211152830.7A CN115622745A (zh) 2022-09-21 2022-09-21 加密方法、装置、终端设备及计算机可读存储介质

Publications (1)

Publication Number Publication Date
CN115622745A true CN115622745A (zh) 2023-01-17

Family

ID=84859400

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211152830.7A Pending CN115622745A (zh) 2022-09-21 2022-09-21 加密方法、装置、终端设备及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN115622745A (zh)

Similar Documents

Publication Publication Date Title
TWI750223B (zh) 區塊鏈加密射頻晶片存儲設計方法
EP2924677B1 (en) Splitting s-boxes in a white-box implementation to resist attacks
KR101393806B1 (ko) 다단계 물리적 복제 불가 함수 시스템
JP2009503580A (ja) 対称鍵データ暗号化の方法
CN107534549B (zh) 可读存储介质、用于数据流字块加密的方法及系统
EP3447963A1 (en) Method for protecting data
US20080192924A1 (en) Data encryption without padding
Rajput et al. An improved cryptographic technique to encrypt text using double encryption
CN112199696A (zh) 基于白盒分组密码的加解密方法
Saraswathi et al. A block cipher algorithm for multimedia content protection with random substitution using binary tree traversal
Wang et al. A chaotic image encryption algorithm based on zigzag-like transform and DNA-like coding
CN114826590B (zh) 一种分组模式加密方法、解密方法及其装置、设备
EP2960891B1 (en) Method for introducing dependence of white-box implementationon a set of strings
CN114124359A (zh) 保留格式加密数据的方法、装置、电子设备及存储介质
CN117134914B (zh) 一种基于硬件特征的一次一密的随机秘钥流式加密算法及系统
EP1661295B1 (en) Secret-key-controlled reversible circuit and corresponding method of data processing
US10412054B2 (en) Method for introducing dependence of white-box implementation on a set of strings
CN114826560B (zh) 一种轻量级分组密码cref实现方法及系统
CN115766244A (zh) 车联网信息加密方法、装置、计算机设备和存储介质
CN115622745A (zh) 加密方法、装置、终端设备及计算机可读存储介质
JP6091394B2 (ja) 情報処理装置、暗号化方法
CN112910630A (zh) 扩展密钥的置换方法及装置
CN100359494C (zh) 电子文件字符内码变换加密方法
Sangwan Combining Huffman text compression with new double encryption algorithm
CN116484407B (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