置换表生成方法、数据加、解密方法及装置、介质、设备与流程

文档序号:31670176发布日期:2022-09-28 00:46阅读:47来源:国知局
1.本公开涉及数据处理
技术领域
:,具体而言,涉及一种置换表生成方法、数据加密方法、数据解密方法、置换表生成装置、数据加密装置、数据解密装置、计算机可读存储介质和电子设备。
背景技术
::2.随着计算机与通信技术的发展,人们对于信息安全方面的关注越来越多。3.现代密码学所采用的加密方法通常是用某种特殊的数学计算操作来改变原始信息。用某种方法改变原始信息并隐藏它的内容,称作加密。待加密的信息称作明文。被加密以后的信息称为密文。而把密文转变成明文的过程,称为解密。其中,加解密运算是由一个算法类组成的,这些算法的不同运算可用不同的参数表示,这些参数称作密钥。现阶段普遍的加密算法是采用置换等技术对明文进行混淆,输出的密文格式与明文相比往往有很大不同。4.然而,在数据遮蔽、支付卡行业安全等加密领域中,往往要求密文格式和明文格式具有相同格式,且不破坏数据结构。上述加密算法则无法实现保留格式加密。5.需要说明的是,在上述
背景技术
:部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。技术实现要素:6.本公开的目的在于提供一种置换表生成方法、数据加密方法、数据解密方法、置换表生成装置、数据加密装置、数据解密装置、计算机可读存储介质和电子设备,进而至少在一定程度上克服由于相关技术的限制和缺陷而导致无法实现数据保留格式加密、数据的保密安全性低的问题。7.根据本公开的第一个方面,提供一种置换表生成方法,包括:获取数字序列;基于数字序列和扩展密钥流,对数字序列中各元素进行加密,得到各元素对应的中间密文,其中,扩展密钥流是对数字序列的序列长度和密钥,执行预设密钥流生成处理过程得到的;对各元素对应的中间密文进行排序,确定出排序后各中间密文的排序位置;根据各元素和各中间密文的排序位置,生成数字序列对应的加密置换表。8.根据本公开的第二个方面,提供一种数据加密方法,包括:获取待加密数字序列和待加密数字序列对应的原始数字序列;对待加密数字序列、原始数字序列和部分目标扩展密钥流执行模加处理过程,得到密文索引信息,其中,目标扩展密钥流是对待加密数字序列的长度和原始数字序列的序列长度,执行预设密钥流生成处理过程得到的;基于密文索引信息,从目标加密置换表中确定与待加密数字序列对应的中间密文的排序位置,作为目标密文;其中,目标加密置换表是基于原始数字序列,利用如上所述的置换表生成方法生成的。9.根据本公开的第三个方面,提供一种数据解密方法,包括:获取待解密数字序列、待解密数字序列对应的加密数字序列的长度、和原始数字序列;基于待解密数字序列,从目标解密置换表中确定出待解密数字序列对应的中间明文,其中,目标解密置换表是基于原始数字序列,利用如上所述的置换表生成方法生成的;对中间明文、原始数字序列和部分目标扩展密钥流执行模减处理过程,得到待解密数字序列对应的目标明文;其中,目标扩展密钥流是对加密数字序列的长度和原始数字序列的序列长度,执行预设密钥流生成处理过程得到的。10.根据本公开的第四个方面,提供一种置换表生成装置,包括:序列获取模块,用于获取数字序列;元素加密模块,用于基于数字序列和扩展密钥流,对数字序列中各元素进行加密,得到各元素对应的中间密文,其中,扩展密钥流是对数字序列的序列长度和密钥,执行预设密钥流生成处理过程得到的;位置确定模块,用于对各元素对应的中间密文进行排序,确定出排序后各中间密文的排序位置;置换表生成模块,用于根据各元素和各中间密文的排序位置,生成数字序列对应的加密置换表。11.可选地,元素加密模块可以被配置为执行:分别对数字序列中各元素和各元素对应的部分扩展密钥流执行模加处理过程,得到各元素对应的中间密文。12.可选地,数据表生成模块可以被配置为执行:确定各元素与各中间密文的排序位置之间的映射关系;基于映射关系,生成数字序列对应的加密置换表。13.可选地,置换表生成装置还可以包括:解密置换表生成模块,用于确定映射关系对应的逆映射关系;基于逆映射关系,生成数字序列对应的解密置换表。14.根据本公开的第五个方面,提供一种数据加密装置,包括:加密数字获取模块,用于获取待加密数字序列和待加密数字序列对应的原始数字序列;信息确定模块,用于对待加密数字序列、原始数字序列的序列长度和部分目标扩展密钥流执行模加处理过程,得到密文索引信息,其中,目标扩展密钥流是对待加密数字序列的长度和原始数字序列的序列长度,执行预设密钥流生成处理过程得到的;密文确定模块,用于基于密文索引信息,从目标加密置换表中确定与待加密数字序列对应的中间密文的排序位置,作为目标密文;其中,目标加密置换表是基于原始数字序列,利用如上所述的置换表生成方法生成的。15.根据本公开的第六个方面,提供一种数据解密装置,包括:解密数字获取模块,用于获取待解密数字序列、待解密数字序列对应的加密数字序列的长度、和原始数字序列;数据查询模块,用于基于待解密数字序列,从目标解密置换表中确定出待解密数字序列对应的中间明文,其中,目标解密置换表是基于原始数字序列,利用如上所述的置换表生成方法生成的;明文确定模块,用于对中间明文、原始数字序列的序列长度和部分目标扩展密钥流执行模减处理过程,得到待解密数字序列对应的目标明文;其中,目标扩展密钥流是对加密数字序列的长度和原始数字序列的序列长度,执行预设密钥流生成处理过程得到的。16.根据本公开的第七个方面,提供一种计算机可读存储介质,其上存储有计算机程序,程序被处理器执行时实现如上所述的置换表生成方法、数据加密方法以及数据解密方法。17.根据本公开的第八个方面,提供一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现如上所述的置换表生成方法、数据加密方法以及数据解密方法。18.本公开的示例性实施例具有以下有益效果:19.在本公开的一些实施例所提供的技术方案中,首先,获取数字序列;然后,基于数字序列和扩展密钥流,对数字序列中各元素进行加密,得到各元素对应的中间密文;接着,对各元素对应的中间密文进行排序,确定出排序后各中间密文的位置;随后,根据各元素和各中间密文的排序位置,生成数字序列对应的加密置换表。一方面,本公开对数字序列中各元素对应的中间密文进行排序,确定出排序后各中间密文的排序位置,并根据各元素预各元素对应的中间密文的排序位置,生成数字序列对应的加密置换表,确保了各元素在加密置换表中能够找到对应的中间密文的排序位置,也就是说,本公开在加密置换表中可以查询到各元素对应的中间密文的排序位置,进一步实现了数据保留格式加密。同时,本公开在加密置换表中直接查询各元素对应的中间密文的排序位置,避免基于密钥流多次计算中间密文,节省了计算资源,提高了密钥计算效率。另一方面,本公开基于数字序列和扩展密钥流得到各元素对应的中间密文,对各元素对应的中间密文进行排序,确定出排序后各中间密文的排序位置。本公开避免密钥流泄露而导致数字序列中各元素泄露的问题,提高了数据的保密安全性。20.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。附图说明21.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:22.图1示意性示出了根据本公开的示例性实施方式的置换表生成方法的流程图;23.图2示意性示出了根据本公开的示例性实施方式的数据加密方法的流程图;24.图3示意性示出了根据本公开的示例性实施方式的数据解密方法的流程图;25.图4示意性示出了根据本公开的示例性实施方式的数据加解密方法的原理示意图;26.图5示意性示出了根据本公开的示例性实施方式的置换表生成装置的方框图;27.图6示意性示出了根据本公开的另一示例性实施方式的置换表生成装置的方框图;28.图7示意性示出了根据本公开的示例性实施方式的数据加密装置的方框图;29.图8示意性示出了根据本公开的示例性实施方式的数据解密装置的方框图;30.图9示意性示出了根据本公开的示例性实施方式中的电子设备的方框图。具体实施方式31.现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。32.此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。33.需要说明的是,本公开中,用语“包括”、“包含”用以表示开放式的包括在内的意思,并且是指除了列出的要素/组成部分/等之外还可存在另外的要素/组成部分/等。34.附图中所示的流程图仅是示例性说明,不是必须包括所有的步骤。例如,有的步骤还可以分解,而有的步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。35.现阶段,我国自主设计的流密码算法是祖冲之序列密码算法(zucstreamcipheralgorithm,zuc),目前已被批准成为新一代宽带无线移动通信系统国际标准。36.zuc算法是以128比特的初始密钥和128比特的初始向量作为输入,算法的输出为位宽32比特的字序列,即密钥序列,密钥序列可用作对数字信息进行加解密。也就是说,zuc算法可以按照密钥长度需求不断输出32比特的密钥字。zuc算法从逻辑上可以分为三层,从上到下依次为线性反馈移位寄存器层,比特重组层和非线性函数层。37.然而,在数据遮蔽、支付卡行业安全等加密领域中,往往需要密文格式和明文格式具有相同格式,且不破坏数据结构,即需要保留格式加密。目前,并无基于zuc算法的保留格式加密的算法。38.针对该问题,本公开提出了一种置换表生成方法。39.需要说明的是,在本公开的示例性实施方式中,下面所述的置换表生成方法通常可以由服务器来实现,也就是说,可以由服务器执行置换表生成方法的各个步骤,在这种情况下,置换表生成装置可以配置在该服务器中。40.另外,置换表生成方法可以由终端设备(如,手机、平板、个人计算机等)来实现,也就是说,可以由终端设备执行置换表生成方法的各个步骤,在这种情况下,置换表生成装置可以配置在该终端设备中。41.下面,将结合附图及实施例对本示例实施方式中的置换表生成方法的各个步骤进行更详细的说明。42.图1示意性示出了本公开的示例性实施方式的置换表生成方法的流程图。在下面的举例说明中,以服务器为执行主体进行示例说明。参考图1,置换表生成方法具体可以包括以下步骤:43.s102.获取数字序列。44.在本公开的示例性实施方式中,数字序列可以包括多个元素,其中,元素是数字字符。数字序列的序列长度可以设置小于预设阈值。45.例如,数字序列为{0,1,2,……,base-1},记为base字母表。其中,数字序列中的各元素为十进制数,数字序列的序列长度为base,且base《=2128。46.s104.基于数字序列和扩展密钥流,对数字序列中各元素进行加密,得到各元素对应的中间密文。47.其中,扩展密钥流可以是服务器对数字序列的序列长度和密钥,执行预设密钥流生成处理过程得到的。密钥可以设置为128比特密钥。数字序列的序列长度可以是数字序列中元素的个数。48.本公开可以采用zuc算法按照密钥长度需求不断输出32比特的密钥字。zuc算法包括初始化阶段过程和工作阶段过程。为了描述方便,在本公开的示例性实施方式中可以用getkeys():表示祖冲之序列密码算法的密钥输出过程,执行一次getkeys(),输出一个新的32比特密钥字z,其中,getkeys()有一个隐式输入,即上一次getkeys()执行结束时的状态;init(k,0128):表示zuc算法的初始化阶段过程和工作阶段过程中密钥输出过程之前的过程,k是密钥,0128表示128个0组成的比特串,即为初始向量。49.例如,数字序列为{0,1,2,……,base-1},记为base字母表。50.服务器首先可以根据base字母表的序列长度base可以确定出需要4*base长度的密钥流;然后,执行init(k,0128),随后,依次执行4*base次getkeys(),生成扩展密钥流z0,z1,…,z4*base–1。51.根据本公开的示例性实施例,服务器可以分别对数字序列中各元素和各元素对应的部分扩展密钥流执行模加处理过程,得到各元素对应的中间密文。52.服务器在对数字序列中各元素进行加密之前,可以对数字序列中各元素的表示格式进行转换,得到十六进制数。53.各元素对应的部分扩展密钥流可以是扩展密钥流中不同的密钥字。服务器针对每一元素可以从扩展密钥流中提取出4个密钥字。54.例如,数字序列为{0,1,2,……,base-1},记为base字母表。扩展密钥流为z0,z1,…,z4*base–1。55.服务器首先分别对base字母表中的各元素进行标识格式转化,得到0x0000000000000000、0x0000000000000001、……;56.设扩展后的每个元素为i,则元素i对应的部分扩展密钥流可以是z4*i,z4*i+1,z4*i+2,z4*i+3;i取值为0到base–1之间的整数,包括0和base–1;57.然后,分别对base字母表中的各元素和各元素对应的部分扩展密钥流进行异或处理,得到各元素对应的中间密文,记为c0,c1,…cbase-1。58.s106.对各元素对应的中间密文进行排序,确定出排序后各中间密文的排序位置。59.在本公开的示例性实施方式中,服务器可以对各元素对应的中间密文按照由大到小的顺序进行排序,也可以对各元素对应的中间密文按照由小到大的顺序进行排序。60.需要说明的是,本公开对于能够确定出排序后的各元素对应的中间密文的排序位置的排序步骤均可以作为本公开的保护范围内,即本公开对于排序步骤不作限制。61.在对各元素对应的中间密文进行排序前,可以将中间密文的表示格式转换为十进制数字,然后,对转换后的各中间密文进行排序。62.s108.根据各元素和各中间密文的排序位置,生成数字序列对应的加密置换表。63.在生成加密置换表之前,服务器可以将排序后的中间密文记为中间密文序列。中密文序列可以包括排序后的各中间密文。64.根据本公开的示例性实施例,服务器可以首先确定各元素与各中间密文的排序位置之间的映射关系;然后,可以基于映射关系,生成数字序列对应的加密置换表。65.在本公开的示例性实施方式中,加密置换表可以包括各元素,各元素对应的中间密文的排序位置。加密置换表的大小可以为数字序列的序列长度。例如,数字序列为{0,1,2,……,base-1},则加密置换表可以是大小为base的一维数组。66.在本公开的示例性实施方式中。服务器可以基于数字序列和扩展密钥流得到各元素对应的中间密文,对各元素对应的中间密文进行排序,确定出排序后各中间密文的排序位置。本公开可以避免密钥流泄露而导致数字序列中各元素泄露的问题,提高了数据的保密安全性。67.根据本公开的示例性实施例,在生成加密置换表后,服务器可以确定映射关系对应的逆映射关系;基于逆映射关系,生成数字序列对应的解密置换表。68.其中,解密置换表可以包括各元素对应的中间密文的排序位置。69.具体的,本公开首先确定出映射关系后,得到中间置换表,然后对中间置换表中的元素进行排序,随后,基于排序后的中间置换表,得到解密置换表。70.需要说明的是,在本公开的示例性实施方式中,下面所述的数据加密方法通常可以由服务器来实现,也就是说,可以由服务器执行数据加密方法的各个步骤,在这种情况下,数据加密装置可以配置在该服务器中。71.图2示意性示出了本公开的示例性实施方式的数据加密方法的流程图。在下面的举例说明中,以服务器为执行主体进行示例说明。参考图2,数据加密方法具体可以包括以下步骤:72.s201.获取待加密数字序列和待加密数字序列对应的原始数字序列。73.在本公开的示例性实施方式中,待加密数字序列对应的待加密数据序列可以包括字母、汉字、数字等。在待加密数据序列对应的数据类型不是数字字符的情况下,服务器可以首先基于现有的字符转换方式将待加密数据转换为数字字符,然后确定出可以进行加密的待加密数字序列。例如,对于汉字,本公开可以用ascii码将汉字转换为十进制数字。对于小写英文字母表{a,b,c,…,z},可以定义映射:a→0,b→1,c→2,…,z→25。为了防止混淆,数字字符之间用空格进行分割。74.待加密数字序列可以包含于原始数字序列。例如,原始数字序列为{0,1,2,……,base-1},则待加密数字序列可以是{1,2,4,5}。75.s203.对待加密数字序列、原始数字序列的序列长度和部分目标扩展密钥流执行模加处理过程,得到密文索引信息。76.在本公开的示例性实施方式中,目标扩展密钥流可以是对待加密数字序列的长度和原始数字序列的序列长度,执行预设密钥流生成处理过程得到的。77.例如,待加密数字序列为p=p[1]p[2]…p[n],其中,每个p[i]为原始数字序列为{0,1,2,……,base-1}的一个元素,n是不小于1的整数,i是1至n之间的整数(包括1和n)。[0078]服务器首先可以确定待加密数字序列的长度为n,原始数字序列的序列长度为base,则可以确定出以2进制表示原始数字序列的序列长度最小位数为m(2m》base);然后,服务器可以得出执行getkeys()的最小次数为l(n*m《32*l);随后,服务器可以利用zuc算法执行l次getkeys(),生成目标扩展密钥流。[0079]具体的,服务器可以首先确定原始数字序列的序列长度;然后,可以基于序列长度,从目标扩展密钥流中确定待加密数字序列中各元素对应的预设位数的密钥;随后,可以分别对待加密数字序列中各元素、原始数字序列的的序列长度和待加密数字序列中各元素对应的密钥执行模加处理过程,得到密文索引信息。[0080]其中,预设位数可以是以2进制的数字格式表示原始数字序列的序列长度最小位数。部分扩展密钥流可以指服务器从目标扩展密钥流中确定待加密数字序列中各元素对应的预设位数的密钥。[0081]其中,密文索引信息是加密置换数据中密文存储位置的索引信息。[0082]例如,待加密数字序列为p=p[1]p[2]…p[n],其中,p[i]是待加密数字序列中第i个待加密字符,i是1至n之间的整数(包括1和n)。每个p[i]为原始数字序列为{0,1,2,……,base-1}的一个数字,n是不小于1的整数,待加密数字序列的长度为n,原始数字序列的序列长度为base。[0083]服务器首先可以根据待加密数字序列的长度为n和原始数字序列的序列长度为base,得出执行getkeys()的最小次数为l(n*m《32*l);然后,服务器可以利用zuc算法执行l次getkeys(),生成目标密钥流z0,z1,…,zl-1;接着,针对p[i],服务器可以从目标扩展密钥流中确定第i个m位数二进制数格式的密钥;随后,可以分别对待加密数字序列中各元素、原始数字序列的序列长度和各元素对应的密钥执行模加处理过程,得到密文索引信息,参考公式(1):[0084]index=p[i]+ekimodbaseꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ公式(1)[0085]其中,index表示待加数据集合中各待加密数字序列的密文索引信息;eki表示目标扩展密钥流中第i个m位数的密钥二进制数形式的密钥。[0086]s205.基于密文索引信息,从目标加密置换表中确定出待加密数字序列对应的中间密文的排序位置,作为目标密文。[0087]其中,目标加密置换表可以利用上述置换表生成方法生成的,在此不做赘述。目标加密置换表中的中间密文的排序位置可以作为待加密数字序列对应的密文。[0088]在待加密数字序列不同但待加密数字序列对应的原始数字序列相同的情况下,服务器可以确定原始数字序列对应的加密置换表作为目标加密置换表。[0089]在本公开的示例性实施方式中,目标密文可以是十进制数格式的密文。本公开也可以基于现有的字符转换方式将目标密文转换为其他格式的密文。例如:对于汉字,本公开可以用ascii码将十进制数字转换为汉字。[0090]服务器可以通过密文索引信息,从目标加密置换表中确定出待加密数字序列对应的中间密文的排序位置,即目标密文。本公开可以避免对不同的待加密数字序列进行加密时基于密钥流多次计算中间密文,节省了计算资源,提高了密钥计算效率。同时,避免密钥泄露导致待加密数字序列泄露的问题,提高数据的保密安全性。[0091]图3示意性示出了本公开的示例性实施方式的数据解密方法的流程图。在下面的举例说明中,以服务器为执行主体进行示例说明。参考图3,数据解密方法具体可以包括以下步骤:[0092]在步骤s302中,获取待解密数字序列、待解密数字序列对应的加密数字序列的长度、和原始数字序列;在步骤s304中,基于待解密数字序列,从目标解密置换表中确定出待解密数字序列对应的中间明文;在步骤s306中,对中间明文、原始数字序列的序列长度和部分目标扩展密钥流执行模减处理过程,得到待解密数字序列对应的目标明文。[0093]在本公开的示例性实施方式中,目标解密置换表是基于原始数字序列,利用如上所述的置换表生成方法生成的,在此处不做赘述。目标解密置换表可以包括密文。[0094]待解密数字序列对应的待解密数据序列可以包括字母、汉字、数字等。在待解密数据序列的数据类型不是数字字符的情况下,服务器可以基于现有的字符转换方式将待解密数据序列转换为数字字符,得到可以进行解密的待解密数字序列。[0095]目标扩展密钥流是对加密数字序列的长度和原始数字序列的序列长度,执行预设密钥流生成处理过程得到的。本公开的目标扩展密钥流与待解密数字序列对应的加密数字序列的目标扩展密钥流相同。在对待加密数字序列进行加密后,服务器可以根据加密数字序列得到待解密数字序列对应的目标扩展密钥流。[0096]待解密数字序列中各元素可以作为目标解密置换表中的索引信息。[0097]待解密数字序列对应的原始数字序列可以是待解密数字序列对应的加密数字序列对应的原始数字序列。在服务器具有待解密数字序列对应的加密数字序列对应的原始数字序列的情况下,可以确定加密数字序列对应的原始数字序列,作为待解密数字序列对应的原始数字序列。[0098]部分扩展密钥流可以指服务器从目标扩展密钥流中确定待解密数字序列中各元素对应的预设位数的目标密钥。[0099]服务器在确定出中间明文和目标扩展密钥流后,可以首先从基于原始数字序列的序列长度,从目标扩展密钥流中确定待解密数字序列中各元素对应的预设位数的密钥;然后,分别对中间明文与原始数字序列的序列长度、待解密数字序列中各元素对应的密钥执行模减处理过程,得到目标明文。[0100]例如:待解密数字序列为p′[1]p′[2]…p′[n],其中,p′[i]是待解密数字序列中第i个待解密字符,i是1至n之间的整数(包括1和n),待解密数字序列对应的加密数字序列的长度为n,加密数字序列可以包括原始数字序列{0,1,2,……,base-1}中的部分元素,原始数字序列的序列长度为base。[0101]服务器首先根据加密数字序列,确定加密数字序列对应的目标扩展密钥流;[0102]然后,确定加密数字序列对应的原始数字序列生成的目标解密置换表,记为ptable_dec数组;[0103]接着,从目标解密置换表中确定出待解密数字序列对应的中间明文ptable_dec[p′[i]];[0104]随后,服务器可以基于中间明文、原始数字序列的序列长度和部分目标扩展密钥流执行模减处理过程,得到待解密数字序列对应的目标明文,可以参考公式(2):[0105]p[i]=ptable_dec[p′[i]]-ekimodbaseꢀꢀꢀꢀꢀ公式(2)[0106]其中,eki表示目标密钥流中第i个m位数的密钥二进制数形式的密钥;[0107]服务器可以得出待解密数字序列对应的目标明文为p=p[1]p[2]…p[n]。[0108]图4示意性示出了本公开的示例性实施方式的数据加解密方法的原理示意图。在下面的举例说明中,以服务器为执行主体进行示例说明。[0109]参考图4,数据加解密方法具体可以包括以下步骤:[0110]在步骤s401中,服务器可以获取待加密数字序列对应的原始数字序列;在步骤s403中,可以基于原始数字序列和扩展密钥流,对原始数字序列中各元素进行加密,得到各元素对应的中间密文;在步骤s405中,可以对各元素对应的中间密文进行排序,确定出排序后各中间密文的排序位置;在步骤s407中,服务器可以根据各元素和各中间密文的排序位置,生成原始数字序列对应的加密置换表;在步骤s409中,基于加密置换表,生成原始数字序列对应的解密置换表;在步骤s411中,服务器可以对待加密数字序列、原始数字序列的序列长度和部分目标扩展密钥流执行模加处理过程,得到密文索引信息;在步骤s413中,可以基于密文索引信息,从加密置换表中确定与待加密数字序列对应的中间密文的排序位置,作为目标密文;在步骤s415中,服务器可以基于待解密数字序列,从解密置换表中确定出待解密数字序列对应的中间明文;在步骤s417中,可以对中间明文、原始数字序列的序列长度和部分目标扩展密钥流执行模减处理过程,得到待解密数字序列对应的目标明文。[0111]其中,扩展密钥流是对原始数字序列的序列长度和密钥,执行预设密钥流生成处理过程得到的。目标扩展密钥流是对待加密数字序列的长度和原始数字序列的序列长度,执行预设密钥流生成处理过程得到的。本公开可以采用zuc算法生成扩展密钥流和目标扩展密钥流。[0112]本公开的数据加解密方法通常可以由服务器来实现,也就是说,可以由服务器执行数据加解密方法的各个步骤,在这种情况下,数据加解密系统可以配置在该服务器中。[0113]数据加解密系统可以包括置换表生成装置、数据加密装置以及数据解密装置。本公开可以利用置换表生成装置执行步骤s401至步骤s409得到加密置换表和解密置换表,可以利用数据加密装置执行步骤s411至步骤s413对待加密数字序列进行加密,可以利用数据解密装置执行步骤s415至步骤s417对待解密数字序列进行解密。本示例实施例的具体细节在上述实施例中已经详细说明,因此不再赘述。[0114]本公开首先构造好原始数字序列的加密置换表和解密置换表,然后使用解密置换表对待解密数字序列进行解密,或者使用加密置换表对待加密数字序列进行加密。[0115]本公开的数据加解密系统可以应用到同步信息传输的场景中,例如通信的数据包同步传输场景。在发送方对多个待加密数字序列进行加密后,每发送一个加密后的数据包,接收包解密一个数据包。需要注意的是,在数据包传输过程中,若一方数据包的状态与另一方数据包的状态不同步,则需要将双方的数据包状态进行同步处理,然后进行数据加解密处理。[0116]应当注意,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。[0117]进一步的,在本公开的示例性实施例中,还提供了一种置换表生成装置。[0118]图5示意性示出了根据本公开的示例性实施方式的置换表生成装置的方框图。参考图5,根据本公开的示例性实施方式的置换表生成装置500,可以包括:序列获取模块502、元素加密模块504、位置确定模块506以及置换表生成模块508。[0119]其中,序列获取模块502,用于获取数字序列;元素加密模块504,用于基于数字序列和扩展密钥流,对数字序列中各元素进行加密,得到各元素对应的中间密文,其中,扩展密钥流是对数字序列的序列长度和预设密钥,进行预设密钥流生成处理得到的;位置确定模块506,用于对各元素对应的中间密文进行排序,确定出排序后各中间密文的排序位置;置换表生成模块508,用于根据各元素和各中间密文的排序位置,生成数字序列对应的加密置换表。[0120]根据本公开的另一个实施例,元素加密模块504可以被配置为执行:分别对数字序列中各元素和各元素对应的部分扩展密钥流执行模加处理过程,得到各元素对应的中间密文。[0121]根据本公开的另一个实施例,置换表生成模块508可以被配置为执行:确定各元素与各中间密文的排序位置之间的映射关系;基于映射关系,生成数字序列对应的加密置换表。[0122]根据本公开的另一个实施例,参考图6,相比于置换表生成装置500,置换表生成装置600还可以包括:解密置换表生成模块601,用于确定映射关系对应的逆映射关系;基于逆映射关系,生成数字序列对应的解密置换表。[0123]进一步的,在本公开的示例性实施例中,还提供了一种数据加密装置。[0124]图7示意性示出了根据本公开的示例性实施方式的数据加密装置的方框图。参考图7,根据本公开的示例性实施方式的数据加密装置700,可以包括:加密数字获取模块702、信息确定模块704以及密文确定模块706。[0125]其中,加密数字获取模块702,用于获取待加密数字序列和待加密数字序列对应的原始数字序列;信息确定模块704,用于对待加密数字序列、原始数字序列的序列长度和部分目标扩展密钥流执行模加处理过程,得到密文索引信息,其中,目标扩展密钥流是对待加密数字序列的长度和原始数字序列的序列长度,执行预设密钥流生成处理过程得到的;密文确定模块706,用于基于密文索引信息,从目标加密置换表中确定与待加密数字序列对应的中间密文的排序位置,作为目标密文;其中,目标加密置换表是基于原始数字序列,利用如上所述的置换表生成方法生成的。[0126]根据本公开的另一个实施例,信息确定模块704可以被配置为执行:确定原始数字序列的序列长度;基于序列长度,从目标密钥流中确定待加密数字序列对应的预设位数的目标密钥,作为置换密钥;根据待加密数字序列和置换密钥得到密文索引信息。[0127]进一步的,在本公开的示例性实施例中,还提供了一种数据解密装置。[0128]图8示意性示出了根据本公开的示例性实施方式的数据解密装置的方框图。参考图8,根据本公开的示例性实施方式的数据解密装置800,可以包括:解密数字获取模块801、数据查询模块803以及明文确定模块805。[0129]其中,解密数字获取模块801,用于获取待解密数字序列、待解密数字序列对应的加密数字序列的长度、和原始数字序列;数据查询模块803,用于基于待解密数字序列,从目标解密置换表中确定出待解密数字序列对应的中间明文,其中,目标解密置换表是基于原始数字序列,利用如上所述的置换表生成方法生成的;明文确定模块805,用于对中间明文、原始数字序列的序列长度和部分目标扩展密钥流执行模减处理过程,得到待解密数字序列对应的目标明文;其中,目标扩展密钥流是对加密数字序列的长度和原始数字序列的序列长度,执行预设密钥流生成处理过程得到的。[0130]上述装置中各模块/单元的具体细节在方法部分的实施例中已经详细说明,因此不再赘述。[0131]在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在终端设备上运行时,程序代码用于使终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。[0132]在本公开的示例性实施例中,还提供了一种能够实现上述方法的电子设备。[0133]所属
技术领域
:的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。[0134]下面参照图9来描述根据本发明的这种实施方式的电子设备900。图9显示的电子设备900仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。[0135]如图9所示,电子设备900以通用计算设备的形式表现。电子设备900的组件可以包括但不限于:上述至少一个处理单元910、上述至少一个存储单元920、连接不同系统组件(包括存储单元920和处理单元910)的总线930、显示单元940。[0136]其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元910执行,使得所述处理单元910执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元910可以执行如图1所示的步骤s102至步骤s108、如图2所示的步骤s201至步骤s205,以及如图3所示的步骤s302至步骤s306。[0137]存储单元920可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(ram)9201和/或高速缓存存储单元9202,还可以进一步包括只读存储单元(rom)9203。[0138]存储单元920还可以包括具有一组(至少一个)程序模块9205的程序/实用工具9204,这样的程序模块9205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。[0139]总线930可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。[0140]电子设备900也可以与一个或多个外部设备1000(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备900的设备通信,和/或与使得该电子设备900能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口950进行。并且,电子设备900还可以通过网络适配器960与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器960通过总线930与电子设备900的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备900使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。[0141]通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。[0142]此外,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。[0143]应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。[0144]本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其他实施例。本技术旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本
技术领域
:中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。[0145]应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1