加密方法、解密方法、装置、计算机设备和存储介质与流程

专利2022-06-30  76


本申请涉及信息安全技术领域,特别是涉及一种加密方法、解密方法、装置、计算机设备和存储介质。



背景技术:

随着网络技术的飞速发展,网络安全技术的重要性也日益突显。加密技术是网络安全技术中的核心技术,也是电子商务采取的主要安全保密措施。对信息加密的技术分为两大类,即对称加密和非对称加密,前者特点是文件加密和解密使用相同的密钥,后者需要公开密钥(publickey)和私有密钥(privatekey)两个密钥;公开密钥与私有密钥是一对,如果用公开密钥对信息进行加密,只有用对应的私有密钥才能解密。对称加密技术大量应用于各类数据加密,如文本、图像、语音、视频数据,非对称加密技术往往应用于保证信息的完整性和准确性,防止信息被篡改和伪造。

传统技术中,电子设备对数据进行加密时,一般采用加密算法对明文序列中的数据进行多次迭代计算,获得加密数据。

但是,上述加密方法占用较大的计算资源和存储空间,不适用于对数据进行实时加密的场景。



技术实现要素:

基于此,有必要针对上述技术问题,提供一种能够加密方法、解密方法、装置、计算机设备和存储介质。

第一部分,一种加密方法,方法包括:

对待加密的明文序列进行分组,并将获得的至少一个数据组分别转换成明文矩阵,获得明文矩阵序列;明文矩阵的行数和列数为预设的行数和列数;

获取扩散种子矩阵,并根据扩散种子矩阵分别对明文矩阵进行矩阵运算操作,获得密文矩阵;扩散种子矩阵为基于扩散初始参数,以及预设的第一非线性映射关系获得的;

将明文矩阵序列对应的各密文矩阵中的数据转换成向量,获得明文序列对应的密文序列。

在其中一个实施例中,获取扩散种子矩阵,包括:

在预设的第一参数范围中,选择扩散初始参数;

将扩散初始参数代入第一非线性映射关系进行迭代计算,获得扩散种子序列;扩散种子序列的长度大于或等于明文矩阵中所包含数据的第一数量;

在扩散种子序列按序选择第一数量个目标扩散种子;

根据目标扩散种子生成扩散种子矩阵。

在其中一个实施例中,在扩散种子序列按序选择第一数量个目标扩散种子,包括:

根据扩散种子序列的长度以及第一数量,确定第一起始位置和第一间隔数量;

在扩散种子序列中,从第一起始位置对应的扩散种子开始,每隔第一间隔数量选择一个扩散种子作为目标扩散种子,直至目标扩散种子的数量等于第一数量。

在其中一个实施例中,根据目标扩散种子生成扩散种子矩阵,包括:

根据预设的行数和列数,将各目标扩散种子排列成初始扩散种子矩阵;

计算初始扩散种子矩阵的行列式值;

在行列式值不等于零时,将初始扩散种子矩阵确定为扩散种子矩阵。

在其中一个实施例中,计算初始扩散种子矩阵的行列式值之后,还包括:

在行列式值等于零时,重新选择第一起始位置和第一间隔数量,返回执行在扩散种子序列中,从第一起始位置对应的扩散种子开始,每隔第一间隔数量选择一个扩散种子作为目标扩散种子,直至目标扩散种子的数量等于第一数量的步骤。

在其中一个实施例中,第一非线性映射关系为:

其中,y(n)表示扩散种子序列中的第n个数据;z(n)为迭代过程数据;b、c第一非线性映射关系中的非线性参数。

在其中一个实施例中,根据扩散种子矩阵分别对明文矩阵进行矩阵运算操作,获得密文矩阵,包括:

分别将明文矩阵与扩散种子矩阵相乘,获得密文矩阵。

在其中一个实施例中,根据对待加密的明文序列进行分组之前,还包括:

获取置换函数;置换函数为基于置换初始参数,以及预设的第二非线性映射关系获得的;

根据置换函数对初始明文序列中的数据进行位置置换,获得明文序列。

在其中一个实施例中,获取置换函数,包括:

在预设的第二参数范围中,选择置换初始参数;

将置换初始参数代入第二非线性映射关系进行迭代计算,获得置换种子序列;置换种子序列的长度大于或等于初始明文序列中所包含数据的第二数量;

在置换种子序列中按序选择第二数量个目标置换种子,形成第一种子序列;

按照数值大小对各目标置换种子进行排序处理,获得第二种子序列;

根据第一种子序列以及第二种子序列中各目标置换种子的位置变化关系,生成置换函数。

在其中一个实施例中,第二非线性映射关系为x(n 1)=a·x(n)·[1-x(n)];其中,x(n)表示置换种子序列中的第n个数据;a为第二非线性映射关系中的非线性参数。

在其中一个实施例中,密文序列对应的密钥包括预设的行数和列数、扩散初始参数、置换初始参数以及明文序列的长度。

第二部分,一种解密方法,方法包括:

对待解密的密文序列进行分组,并将获得的至少一个数据组分别转换成密文矩阵,获得密文矩阵序列;明文矩阵的行数和列数为基于密文序列对应的密钥确定的;

获取扩散种子矩阵,并根据扩散种子矩阵分别对密文矩阵进行矩阵运算操作,获得明文矩阵;扩散种子矩阵为基于密钥中的扩散初始参数,以及预设的第一非线性映射关系获得的;

根据密文矩阵序列对应的各明文矩阵,获得密文序列对应的明文序列。

在其中一个实施例中,获取扩散种子矩阵,包括:

将扩散初始参数代入第一非线性映射关系进行迭代计算,获得扩散种子序列;扩散种子序列的长度大于或等于密文矩阵中所包含数据的第一数量;

在扩散种子序列按序选择第一数量个目标扩散种子;

根据目标扩散种子生成扩散种子矩阵。

在其中一个实施例中,密钥中包括第一起始位置和第一间隔数量;在扩散种子序列按序选择第一数量个目标扩散种子,包括:

在扩散种子序列中,从第一起始位置对应的扩散种子开始,每隔第一间隔数量选择一个扩散种子作为目标扩散种子,直至目标扩散种子的数量等于第一数量。

在其中一个实施例中,第一非线性映射关系为:

其中,y(n)表示扩散种子序列中的第n个数据;z(n)为迭代过程数据;b、c第一非线性映射关系中的非线性参数。

在其中一个实施例中,根据扩散种子矩阵分别对密文矩阵进行矩阵运算操作,获得明文矩阵,包括:

计算扩散种子矩阵的逆矩阵;

分别将密文矩阵与逆矩阵相乘,获得明文矩阵。

在其中一个实施例中,根据密文矩阵序列对应的各明文矩阵,获得密文序列对应的明文序列,包括:

将密文矩阵序列对应的各明文矩阵中的数据转换成向量,获得初始明文序列;

获取置换函数;置换函数为基于密钥中的置换初始参数,以及预设的第二非线性映射关系获得的;

根据置换函数的反函数,对初始明文序列中的数据进行置换还原操作,获得明文序列。

在其中一个实施例中,密钥中包含明文序列的长度,获取置换函数,包括:

将置换初始参数代入第二非线性映射关系进行迭代计算,获得置换种子序列;置换种子序列的长度大于或等于明文序列的长度;

在置换种子序列中按序选择目标置换种子,形成第一种子序列;第一种子序列的长度等于明文序列的长度;

按照数值大小对各目标置换种子进行排序处理,获得第二种子序列;

根据第一种子序列以及第二种子序列中各目标置换种子的位置变化关系,生成置换函数。

在其中一个实施例中,第二非线性映射关系为x(n 1)=a·x(n)·[1-x(n)];其中,x(n)表示置换种子序列中的第n个数据;a为第二非线性映射关系中的非线性参数。

第三部分,一种加密装置,装置包括:

分组模块,用于对待加密的明文序列进行分组,并将获得的至少一个数据组分别转换成明文矩阵,获得明文矩阵序列;明文矩阵的行数和列数为预设的行数和列数;

运算模块,用于获取扩散种子矩阵,并根据扩散种子矩阵分别对明文矩阵进行矩阵运算操作,获得密文矩阵;扩散种子矩阵为基于扩散初始参数,以及预设的第一非线性映射关系获得的;

转换模块,用于将明文矩阵序列对应的各密文矩阵中的数据转换成向量,获得明文序列对应的密文序列。

第四部分,一种解密装置,装置包括:

分组模块,用于对待解密的密文序列进行分组,并将获得的至少一个数据组分别转换成密文矩阵,获得密文矩阵序列;明文矩阵的行数和列数为基于密文序列对应的密钥确定的;

运算模块,用于获取扩散种子矩阵,并根据扩散种子矩阵分别对密文矩阵进行矩阵运算操作,获得明文矩阵;扩散种子矩阵为基于密钥中的扩散初始参数,以及预设的第一非线性映射关系获得的;

获取模块,用于根据密文矩阵序列对应的各明文矩阵,获得密文序列对应的明文序列。

第五部分,一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现以下步骤:

对待加密的明文序列进行分组,并将获得的至少一个数据组分别转换成明文矩阵,获得明文矩阵序列;明文矩阵的行数和列数为预设的行数和列数;

获取扩散种子矩阵,并根据扩散种子矩阵分别对明文矩阵进行矩阵运算操作,获得密文矩阵;扩散种子矩阵为基于扩散初始参数,以及预设的第一非线性映射关系获得的;

将明文矩阵序列对应的各密文矩阵中的数据转换成向量,获得明文序列对应的密文序列。

第六部分,一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现以下步骤:

对待解密的密文序列进行分组,并将获得的至少一个数据组分别转换成密文矩阵,获得密文矩阵序列;明文矩阵的行数和列数为基于密文序列对应的密钥确定的;

获取扩散种子矩阵,并根据扩散种子矩阵分别对密文矩阵进行矩阵运算操作,获得明文矩阵;扩散种子矩阵为基于密钥中的扩散初始参数,以及预设的第一非线性映射关系获得的;

根据密文矩阵序列对应的各明文矩阵,获得密文序列对应的明文序列。

第七部分,一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:

对待加密的明文序列进行分组,并将获得的至少一个数据组分别转换成明文矩阵,获得明文矩阵序列;明文矩阵的行数和列数为预设的行数和列数;

获取扩散种子矩阵,并根据扩散种子矩阵分别对明文矩阵进行矩阵运算操作,获得密文矩阵;扩散种子矩阵为基于扩散初始参数,以及预设的第一非线性映射关系获得的;

将明文矩阵序列对应的各密文矩阵中的数据转换成向量,获得明文序列对应的密文序列。

第八部分,一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:

对待解密的密文序列进行分组,并将获得的至少一个数据组分别转换成密文矩阵,获得密文矩阵序列;明文矩阵的行数和列数为基于密文序列对应的密钥确定的;

获取扩散种子矩阵,并根据扩散种子矩阵分别对密文矩阵进行矩阵运算操作,获得明文矩阵;扩散种子矩阵为基于密钥中的扩散初始参数,以及预设的第一非线性映射关系获得的;

根据密文矩阵序列对应的各明文矩阵,获得密文序列对应的明文序列。

上述加密方法、解密方法、装置、计算机设备和存储介质,计算机设备对待加密的明文序列进行分组,并将获得的至少一个数据组分别转换成明文矩阵,获得明文矩阵序列;其中,明文矩阵的行数和列数为预设的行数和列数;然后,获取扩散种子矩阵,并根据扩散种子矩阵分别对明文矩阵进行矩阵运算操作,获得密文矩阵;扩散种子矩阵为基于扩散初始参数,以及预设的第一非线性映射关系获得的;最后,将明文矩阵序列对应的各密文矩阵中的数据转换成向量,获得明文序列对应的密文序列。由于计算机设备对明文序列进行分组,获得了明文矩阵,使得可以通过扩散种子矩阵对明文矩阵进行矩阵运算操作,完成对明文序列中的数据的加密;进一步地,由于扩散种子矩阵是基于扩散初始参数,以及预设的第一非线性映射关系获得的,可以根据第一非线性映射关系的随机性特征,在扩散初始参数进行微小调整的情况下获得不可预测的扩散种子矩阵,因此可以实现对明文序列进行一次计算获得密文序列,而不需要进行反复迭代;降低了对明文序列进行加密的计算资源以及存储空间,进一步提升对明文序列进行加密的实时性。

附图说明

图1为一个实施例中加密方法的应用环境图;

图2为一个实施例中加密方法的流程示意图;

图3为一个实施例中加密方法的分组示意图;

图4为另一个实施例中加密方法的流程示意图;

图5为一个实施例中解密方法的流程示意图;

图6为另一个实施例中解密方法的流程示意图;

图7为另一个实施例中解密方法的流程示意图;

图8为一个实施例中加密装置的结构框图;

图9为另一个实施例中加密装置的结构框图;

图10为另一个实施例中加密装置的结构框图;

图11为一个实施例中解密装置的结构框图;

图12为另一个实施例中解密装置的结构框图;

图13为一个实施例中计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

本申请提供的加密方法、解密方法,可以应用于如图1所示的应用环境中。其中,计算机设备100可以是射频标签,也可以是手机、物联网模块、平板电脑和便携式可穿戴设备等终端设备,还可以是服务器,对于计算机设备100的类型在此不做限定。

在一个实施例中,如图2所示,提供了一种加密方法,以该方法应用于图1中的计算机设备100为例进行说明,包括以下步骤:

s101、对待加密的明文序列进行分组,并将获得的至少一个数据组分别转换成明文矩阵,获得明文矩阵序列;明文矩阵的行数和列数为预设的行数和列数。

其中,上述明文序列可以是文本数据,也可以是图像数据,还可以是视频数据,对于上述明文序列的类型在此不做限定。例如,上述明文序列可以是物联网终端设备中的数据,也可以是射频标签产品中的数据,射频标签可以明文序列进行加密后发送至其它设备。

计算机设备对数据进行加密时,可以将待加密的所有数据作为一个明文序列,也可以将待加密的数据划分为多个明文序列,分别对每个明文序列进行加密。

具体地,计算机设备可以根据预设的行数和列数,确定每个数据组包含的数据的个数;进一步地,计算机设备可以根据上述个数对待加密的明文序列进行分组,使得每个数据组的数量等于上述个数。

进一步地,计算机设备可以将每个数据组中的数据转换成一个明文矩阵,可以将数据组中的数据按行插入预设的矩阵格式中,也可以将数据组中的数据按列插入上述矩阵格式中,在此不做限定。

上述预设的行数和列数可以均为4,也可以是3,还可以是2,在此不做限定;相应地,上述明文矩阵可以是4*4矩阵,也可以是3*3矩阵,还可以是3*3矩阵。

如图3所示,明文序列p′中可以包含56个数据,预设的行数和列数均为4,也就是说每个数据组中包含16个元素;在对明文矩阵进行分组时,当最后一个数据组中包含的数据的个数不足时,可以通过补零使每个数据组的数量相同。对于明文序列p′,可以通过补8个零,获得四个数据组;然后将四个数据组中的数据按列插入4*4的矩阵格式中,获得4个明文矩阵a1、a2、a3和a4。

s102、获取扩散种子矩阵,并根据扩散种子矩阵分别对明文矩阵进行矩阵运算操作,获得密文矩阵;扩散种子矩阵为基于扩散初始参数,以及预设的第一非线性映射关系获得的。

上述扩散种子矩阵用于对明文矩阵进行矩阵运算操作,使得获得的密文矩阵中不能直接获得原明文矩阵中的数据,实现对数据的加密。

具体地,上述矩阵运算操作可以是对明文矩阵进行转置后,再与扩散种子矩阵进行相乘运算;还可以是将扩散种子矩阵与明文矩阵相乘,然后再加上一个矩阵,对于上述运算操作的类型在此不做限定。例如,上述明文矩阵可以是ai,上述扩散种子矩阵为s,上述密文矩阵ci可以通过ci=aits获得,其中at为a的转置矩阵;上述密文矩阵ci还可以通过ci=sai b获得,其中,b为预设矩阵。

可选地,计算机设备可以分别将明文矩阵与扩散种子矩阵相乘,获得密文矩阵。例如,计算机设备可以通过ci=ais获得密文矩阵。

其中,上述扩散种子矩阵为基于扩散初始参数,以及预设的第一非线性映射关系获得的。由于第一非线性映射关系具有随机性特征,因此,当不同的扩散初始参数参数作为第一非线性映射关系的输入条件之后,第一非线性映射关系输出的值差异较大,使得扩散种子矩阵具有不可预测的特征。

其中,上述第一非线性映射关系可以是一元非线性方程,也可以是二元非线性方程,对于上述第一非线性映射关系的类型在此不做限定。

可选地,上述第一非线性映射关系可以是:

其中,y(n)表示扩散种子序列中的第n个数据;z(n)为迭代过程数据;b、c第一非线性映射关系中的非线性参数。上述第一非线性映射关系中,扩散初始参数包括b、c、z(1)和y(1)。

上述扩散初始参数可以为与计算机设备对应的预设值,例如不同的计算机设备对应不同的扩散初始参数;另外,上述扩散初始参数还可以是计算机设备根据明文序列,在预设的参数取值范围中确定的值,对于上述扩散初始参数的确定方式在此不做限定。例如,上述第一非线性映射关系中,参数b取值范围为[1.4,1.9],参数c取值范围为[0.1,0.3];同时参数y(1)和z(1)的取值范围为(0,1)。

s103、将明文矩阵序列对应的各密文矩阵中的数据转换成向量,获得明文序列对应的密文序列。

在上述步骤的基础上,计算机设备获得明文矩阵序列中各个明文矩阵对应的密文矩阵之后,可以将各密文矩阵中的数据转换成向量,获得密文序列。

具体地,计算机设备可以根据明文矩阵序列中各明文矩阵的排列顺序,将各明文矩阵对应的密文矩阵按序排列,然后依次提取各密文矩阵中的数据后排列成向量,获得密文序列。

计算机设备在提取各密文矩阵中的数据时,可以按行提取,也可以按列提取,在此不做限定。

上述加密方法,计算机设备对待加密的明文序列进行分组,并将获得的至少一个数据组分别转换成明文矩阵,获得明文矩阵序列;其中,明文矩阵的行数和列数为预设的行数和列数;然后,获取扩散种子矩阵,并根据扩散种子矩阵分别对明文矩阵进行矩阵运算操作,获得密文矩阵;扩散种子矩阵为基于扩散初始参数,以及预设的第一非线性映射关系获得的;最后,将明文矩阵序列对应的各密文矩阵中的数据转换成向量,获得明文序列对应的密文序列。由于计算机设备对明文序列进行分组,获得了明文矩阵,使得可以通过扩散种子矩阵对明文矩阵进行矩阵运算操作,完成对明文序列中的数据的加密;进一步地,由于扩散种子矩阵是基于扩散初始参数,以及预设的第一非线性映射关系获得的,可以根据第一非线性映射关系的随机性特征,在扩散初始参数进行微小调整的情况下获得不可预测的扩散种子矩阵,因此可以实现对明文序列进行一次计算获得密文序列,而不需要进行反复迭代;降低了对明文序列进行加密的计算资源以及存储空间,进一步提升对明文序列进行加密的实时性。

图4为另一个实施例中加密方法的流程示意图,本实施例涉及计算机设备获取扩散种子矩阵的一种方式,在上述实施例的基础上,如图3所示,上述s102包括:

s201、在预设的第一参数范围中,选择扩散初始参数。

其中,上述第一参数范围中可以包含多个扩散初始参数的取值范围,上述不同扩散初始参数的取值范围可以相同,也可以不同。当两个扩散初始参数的取值范围相同时,计算机设备可以确定上述两个扩散初始参数的取值相同,也可以确定上述两个扩散初始参数的取值不同,在此不做限定。

具体地,计算机设备可以在预设的第一参数范围中,选择扩散初始参数。例如,对于图2对应实施例中的第一非线性映射关系,计算机设备可以在参数b的取值范围[1.4,1.9]中,选择b=1.5;然后在参数c的取值范围[0.1,0.3]中选择c=0.2;并在y(1)和z(1)的取值范围(0,1)中,可以选择y(1)=z(1)=0.4。

s202、将扩散初始参数代入第一非线性映射关系进行迭代计算,获得扩散种子序列;扩散种子序列的长度大于或等于明文矩阵中所包含数据的第一数量。

计算机设备在获得扩散初始参数之后,可以将扩散初始参数参数代入第一非线性映射关系中进行n次迭代计算,获得多个扩散种子组成的扩散种子序列spr=(y1,y2,…,yn)。

其中,上述扩散种子序列的长度大于或等于明文矩阵中所包含数据的第一数量。例如,明文矩阵为4*4矩阵时,上述扩散种子序列的长度可以是16,可以是20,还可以是16的倍数,在此不做限定。

s203、在扩散种子序列按序选择第一数量个目标扩散种子。

在上述步骤的基础上,计算机设备可以在扩散种子序列按序选择第一数量n′个目标扩散种子。

具体地,计算机设备可以从扩散种子序列中的第一个扩散种子开始,依次选择n′个扩散种子为目标扩散种子,也就是说目标扩散种子序列可以是spr′=(y1,y2,…,yn′);另外,计算机设备还可以从扩散种子序列中的其它位置开始,依次选择n′个扩散种子为目标扩散种子,也就是说目标扩散种子序列可以是spr′=(y3,y4,…,yn′ 2)。

可选地,计算机根据扩散种子序列的长度以及第一数量,确定第一起始位置和第一间隔数量;然后,在扩散种子序列中,从第一起始位置对应的扩散种子开始,每隔第一间隔数量选择一个扩散种子作为目标扩散种子,直至目标扩散种子的数量等于第一数量。

例如,明文矩阵为u×u矩阵,计算机设备可以将扩散初始参数参数代入第一非线性映射关系中进行k1×u×u次迭代计算,其中k1为迭代参数;进一步地,计算机设备可以在[0,k1-1]中选择第一间隔数量d1以及第一起始位置t1,然后在扩散种子序列中的开始,间隔d1个元素,选取一个扩散种子为目标扩散种子。

s204、根据目标扩散种子生成扩散种子矩阵。

计算机设备获得目标扩散种子之后,可以将目标扩散种子排列成扩散种子矩阵。具体地,计算机设备可以按行排列,也可以按列上述目标扩散种子,在此不做限定。

为了使计算机设备能够对密文序列顺利解密,计算机设备还可以根据预设的行数和列数,将各目标扩散种子排列成初始扩散种子矩阵之后,计算初始扩散种子矩阵的行列式值;然后在行列式值不等于零时,将初始扩散种子矩阵确定为扩散种子矩阵。

进一步地,若行列式值等于零,则重新选择第一起始位置和第一间隔数量,返回执行在扩散种子序列中,从第一起始位置对应的扩散种子开始,每隔第一间隔数量选择一个扩散种子作为目标扩散种子,直至目标扩散种子的数量等于第一数量的步骤。

上述加密方法,计算机设备通过将扩散初始参数代入第一非线性映射关系进行迭代计算获得扩散种子序列,并从扩散种子序列中选择目标扩散种子生成扩散种子矩阵,可以进一步提高扩散种子矩阵的不可预测性,使得获得的密文序列更安全。

图5为另一个实施例中加密方法的流程示意图,本实施例涉及计算机设备对明文序列进行置换的一种方式,在上述实施例的基础上,如图4,上述s101之前还包括:

s301、获取置换函数;置换函数为基于置换初始参数,以及预设的第二非线性映射关系获得的。

上述置换函数用于对初始明文序列中的数据,进行位置置换。其中,上述置换函数为基于置换初始参数,以及预设的第二非线性映射关系获得的。由于第二非线性映射关系具有随机性特征,因此,当不同的转置初始参数参数作为第二非线性映射关系的输入条件之后,第二非线性映射关系输出的值差异较大,使得置换函数具有不可预测的特征。

其中,上述第二非线性映射关系可以是一元非线性方程,也可以是二元非线性方程,对于上述第二非线性映射关系的类型在此不做限定。上述第二非线性映射关系可以与第一非线性映射关系相同,也可以不同,在此不做限定。

可选地,第二非线性映射关系可以是x(n 1)=a·x(n)·[1-x(n)];其中,x(n)表示置换种子序列中的第n个数据;a为第二非线性映射关系中的非线性参数。

上述置换初始参数可以为与计算机设备对应的预设值,例如不同的计算机设备对应不同的置换初始参数;另外,上述置换初始参数还可以是计算机设备根据明文序列,在预设的参数取值范围中确定的值,对于上述置换初始参数的确定方式在此不做限定。例如,上述第二非线性映射关系中,参数a取值范围为[3.57,4],x(1)的取值范围为(0,1)。

具体地,计算机设备可以在预设的第二参数范围中,选择置换初始参数;然后,将置换初始参数代入第二非线性映射关系进行迭代计算,获得置换种子序列;置换种子序列的长度大于或等于初始明文序列中所包含数据的第二数量;最后,在置换种子序列中按序选择第二数量个目标置换种子,形成第一种子序列;并按照数值大小对各目标置换种子进行排序处理,获得第二种子序列;根据第一种子序列以及第二种子序列中各目标置换种子的位置变化关系,生成置换函数。

计算机设备在获得置换初始参数之后,可以将置换初始参数参数代入上述第二非线性映射关系中进行m次迭代计算,获得多个置换种子组成的置换种子序列cha=(x1,x2,…,xm)。

其中,上述置换种子序列的长度大于或等于明文序列中所包含数据的第二数量。例如,上述明文序列的长度可以是16,那么置换种子序列的长度可以是20,还可以是16的倍数,在此不做限定。

计算机设备可以在置换种子序列按序选择第二数量m′个目标置换种子。

具体地,计算机设备可以从置换种子序列中的第一个置换种子开始,依次选择m′个置换种子为目标置换种子,也就是说目标置换种子序列可以是cha′=(x1,x2,…,xm′);另外,计算机设备还可以从置换种子序列中的其它位置开始,依次选择m′个置换种子为目标置换种子,也就是说目标置换种子序列可以是cha′=(x3,x2,…,xm′ 2)。

可选地,计算机根据置换种子序列的长度以及第二数量,确定第二起始位置和第二间隔数量;然后,在置换种子序列中,从第二起始位置对应的置换种子开始,每隔第二间隔数量选择一个置换种子作为目标置换种子,直至目标置换种子的数量等于第二数量。

例如,明文序列长度为m′,计算机设备可以将置换初始参数参数代入第二非线性映射关系中进行k2×m′次迭代计算,其中k2为迭代参数;进一步地,计算机设备可以在[0,k2-1]中选择第二间隔数量d2以及第二起始位置t2,然后在置换种子序列cha=(x1,x2,…,xkm′)中的开始,间隔d2个元素,选取一个置换种子为目标置换种子,形成第一种子序列。

进一步地,计算机设备按照数值大小对各目标置换种子进行排序处理,获得第二种子序列;上述排序处理可以是升序排列,也可以是降序排列,在此不做限定。计算机设备可以根据第一种子序列以及第二种子序列中各目标置换种子的位置变化关系,生成置换函数。

例如,对于第i个目标置换种子xi,在第一种子序列中的索引值为pi1,且在第二种子序列中的索引值为pi2,那么可以将fcha(pi1)=pi2确定为置换函数,其中i=1,…,m′,m′为明文序列长度m′。

s302、根据置换函数对初始明文序列中的数据进行位置置换,获得明文序列。

在上述步骤的基础上,计算机设备可以根据置换函数对初始明文序列中的数据进行位置置换,获得明文序列。例如,当置换函数为fcha(pi1)=pi2时,计算机设备可以将初始明文序列中的第pi1个位置的元素调整至第pi2个位置处。

计算机设备获得密文系列之后,可以将该密文序列对应的密钥发送至密文序列的接收方。其中,上述密钥可以包括预设的行数和列数、扩散初始参数、置换初始参数以及明文序列的长度。可选地,还可以包括获取置换函数以及目标扩散种子时,采用的迭代参数、第一起始位置、第二起始位置、第一间隔数量以及第二间隔数量等。

上述加密方法,计算机设备通过置换函数对初始明文序列进行置换,可以提升密文序列的安全性;进一步地,由于置换函数为基于置换初始参数,以及预设的第二非线性映射关系获得的,使得置换函数具有不可预测性,进一步提升了密文序列的安全性。

在一个实施例中,如图6所示,提供了一种解密方法,以该方法应用于图1中的计算机设备为例进行说明,包括以下步骤:

s401、对待解密的密文序列进行分组,并将获得的至少一个数据组分别转换成密文矩阵,获得密文矩阵序列;明文矩阵的行数和列数为基于密文序列对应的密钥确定的。

具体地,计算机设备在对密文序列进行分组时,可以根据密钥中的行数和列数,确定每个数据组的元素个数,然后对密文序列进行分组。上述分组方式加密方法中对明文序列的分组方式类似,在此不再赘述。

s402、获取扩散种子矩阵,并根据扩散种子矩阵分别对密文矩阵进行矩阵运算操作,获得明文矩阵;扩散种子矩阵为基于密钥中的扩散初始参数,以及预设的第一非线性映射关系获得的。

具体地,计算机设备可以通过密钥获取扩散初始函数,然后根据扩散初始函数以及第一非线性预设关系获得扩散种子矩阵。

上述扩散种子矩阵的获取方式与加密方法中扩散种子矩阵的获取方式类似,在此不再赘述。

上述第一非线性映射关系与获取密文序列时使用的映射关系相同,上述第一非线性映射关系可以是一元非线性方程,也可以是二元非线性方程,对于上述第一非线性映射关系的类型在此不做限定。

可选地,第一非线性映射关系为:

其中,y(n)表示扩散种子序列中的第n个数据;z(n)为迭代过程数据;b、c第一非线性映射关系中的非线性参数。

计算机设备根据扩散种子矩阵,对密文矩阵进行矩阵运算操作获得明文矩阵时,可以采用与获得密文矩阵时的运算操作相反的操作。例如,加密方法中采用的矩阵运算操作为对明文矩阵进行转置后,再与扩散种子矩阵进行相乘运算时,在对密文矩阵进行运算操作时,可以将密文矩阵乘以扩散矩阵的逆矩阵,并进行转置,获得明文矩阵;若加密方法中采用的矩阵运算操作为将扩散种子矩阵与明文矩阵相乘,然后再加上一个预设矩阵时,计算机设备可以现将密文矩阵减去预设矩阵,然后将扩散种子矩阵的逆矩阵与获得的矩阵相乘,得到明文矩阵。

可选地,当加密方法中采用的矩阵运算操作为将明文矩阵与扩散种子矩阵相乘时,计算机设备可以计算扩散种子矩阵的逆矩阵;然后分别将密文矩阵与逆矩阵相乘,获得明文矩阵。

s403、根据密文矩阵序列对应的各明文矩阵,获得密文序列对应的明文序列。

计算机设备获得密文矩阵序列对应的各明文矩阵之后,可以将各明文矩阵排列成初始明文序列,进一步根据初始明文序列获得明文序列。

具体地,计算机设备可以根据密钥中明文序列的长度,确定初始明文序列中是否包含加密过程中补充的数据;若初始明文序列的长度大于明文序列的长度,则根据补充数据的规则在初始明文序列中删除相应的补充数据,获得明文序列。

上述解密方法,计算机设备对待解密的密文序列进行分组,并将获得的至少一个数据组分别转换成密文矩阵,获得密文矩阵序列;明文矩阵的行数和列数为基于密文序列对应的密钥确定的;获取扩散种子矩阵,并根据扩散种子矩阵分别对密文矩阵进行矩阵运算操作,获得明文矩阵;扩散种子矩阵为基于密钥中的扩散初始参数,以及预设的第一非线性映射关系获得的;根据密文矩阵序列对应的各明文矩阵,获得密文序列对应的明文序列。由于计算机设备对密文序列进行分组,获得了密文矩阵,使得可以通过扩散种子矩阵对密文矩阵进行矩阵运算操作,获得明文矩阵;进一步地,由于扩散种子矩阵是基于扩散初始参数,以及预设的第一非线性映射关系获得的,可以根据第一非线性映射关系的随机性特征,在扩散初始参数进行微小调整的情况下获得不可预测的扩散种子矩阵,可以对密文序列进行一次计算获得明文序列,而不需要进行反复迭代,从而提升了密文序列的安全性以及解密实时性。

在一个实施例中,计算机设备获取扩散种子矩阵时,可以将扩散初始参数代入第一非线性映射关系进行迭代计算,获得扩散种子序列;扩散种子序列的长度大于或等于密文矩阵中所包含数据的第一数量;然后,在扩散种子序列按序选择第一数量个目标扩散种子;并根据目标扩散种子生成扩散种子矩阵。

在一个实施例中,密钥中包括第一起始位置和第一间隔数量;计算机设备在扩散种子序列按序选择第一数量个目标扩散种子时,可以在扩散种子序列中,从第一起始位置对应的扩散种子开始,每隔第一间隔数量选择一个扩散种子作为目标扩散种子,直至目标扩散种子的数量等于第一数量。

上述解密方法中,获取扩散种子矩阵的实现原理和技术效果与加密方法中类似,在此不再赘述。

图7为另一个实施例中解密方法的流程示意图,本实施例涉及计算机设备获取明文序列的一种方式,在上述实施例的基础上,如图7所示,上述s403包括:

s501、将密文矩阵序列对应的各明文矩阵中的数据转换成向量,获得初始明文序列。

具体地,具体地,计算机设备可以根据密文矩阵序列中各密文矩阵的排列顺序,将各密文矩阵对应的明文矩阵按序排列,然后依次提取各明文矩阵中的数据后排列成向量,获得初始明文序列。

计算机设备在提取各明文矩阵中的数据时,可以按行提取,也可以按列提取,在此不做限定。

s502、获取置换函数;置换函数为基于密钥中的置换初始参数,以及预设的第二非线性映射关系获得的。

计算机设备可以在密钥中获取置换初始参数,然后根据置换初始参数以及第二非线性映射关系获得置换函数。

上述第二非线性映射关系的具体限定,与加密方法中类似,在此不再赘述。

可选地,第二非线性映射关系为x(n 1)=a·x(n)·[1-x(n)];其中,x(n)表示置换种子序列中的第n个数据;a为第二非线性映射关系中的非线性参数。

上述置换函数的获取方式与加密方法中类似,在此不再赘述。

可选地,计算机设备可以将置换初始参数代入第二非线性映射关系进行迭代计算,获得置换种子序列;置换种子序列的长度大于或等于明文序列的长度;在置换种子序列中按序选择目标置换种子,形成第一种子序列;第一种子序列的长度等于明文序列的长度;按照数值大小对各目标置换种子进行排序处理,获得第二种子序列;根据第一种子序列以及第二种子序列中,各目标置换种子的位置变化关系,生成置换函数。

s503、根据置换函数的反函数,对初始明文序列中的数据进行置换还原操作,获得明文序列。

计算机设备获取置换函数之后,可以计算置换函数的反函数,然后根据反函数对初始明文序列中的数据进行置换还原操作,获得明文序列。

上述加密方法,由于计算机设备通过置换函数对明文序列进行置换操作,因此可以提升密文序列的安全性,避免密文序列被恶意解密;进一步地,由于置换函数为基于置换初始参数,以及预设的第二非线性映射关系获得的,使得置换函数具有不可预测性,进一步提升了密文序列的安全性。

下面以具体明文序列,对上述加密方法和解密方法进行说明。在加密过程中,初始明文序列为16个元素组成的序列:p=(47、81、92、22、53、78、60、50、15、84、23、77、89、16、28、61)。加密方法中的第二非线性映射关系为x(n 1)=a·x(n)·[1-x(n)],计算机设备可以在第二参数范围中确定置换初始参数a=3.59,x(1)=0.3,迭代参数k2=20,第二起始位置t2=15,第二间隔数量d2=18。将上述参数代入第二非线性映射关系中进行20次迭代运算,并根据第二起始位置和第二间隔数量选择16个目标置换种子组成的第一种子序列,获得:

cha=(0.3328351991674130.4218459883671020.379749311422958

0.4218300274746010.3800692184865420.419437066074485

0.3894587833628540.5260365801659620.333703141918182

0.4287224163396410.4033252298461870.431682311343838

0.3695899796810610.5325127481027900.396183239704847

0.487556394199533)

进一步地,计算机设备对上述置换种子序列cha中的元素进行升序操作,获得第二种子序列cha1,结果如下:

cha1=(0.3328351991674130.3337031419181820.369589979681061

0.3797493114229580.3800692184865420.389458783362854

0.3961832397048470.4033252298461870.419437066074485

0.4218300274746010.4218459883671020.428722416339641

0.4316823113438380.4875563941995330.526036580165962

0.532512748102790)。

计算机设备根据cha和cha1中各目标置换种子的位置关系,生成置换函数fcha为:fcha(1)=1,fcha(2)=9,fcha(3)=13,fcha(4)=3,fcha(5)=5,fcha(6)=7,fcha(7)=15,fcha(8)=11,fcha(9)=6,fcha(10)=4,fcha(11)=2,fcha(12)=10,fcha(13)=12,fcha(14)=16,fcha(15)=8,fcha(16)=14。

计算机设备通过置换函数对初始明文序列中的数据位置进行位置置换,获得明文序列p′=(47,15,89,92,53,60,28,23,78,22,81,84,77,61,50,16)。进一步地,计算机设备设置预设的行数和列数为2,对明文序列进行分组,获得四个数据组;然后将数据组中的数据按列排列,获得获得明文矩阵序列a={a1,a2,a3,a4},其中各明文矩阵为:

第一非线性映射关系为计算机设备在第一参数范围中,选择b=1.5、c=0.2、初始值y(1)=z(1)=0.4;然后,根据第一非线性映射关系获得扩散种子序列,且选择迭代参数为20,第一起始位置为11,第一间隔数量为17,在扩散种子序列中选择4个目标扩散种子,形成初始扩散种子矩阵s:

上述初始扩散种子矩阵的行列式的值不等于零,因此可以将上述s确定为扩散种子矩阵。通过上述扩散种子矩阵,对a={a1,a2,a3,a4}中的各个明文矩阵进行矩阵运算操作,将明文矩阵与扩散种子矩阵相乘,获得的密文矩阵分别为:

计算机设备对上述各密文矩阵中的元素按序排列成向量之后,可以获得密文序列。例如,计算机设备可以按列排列,获得的密文序列为:45.6973424806814,37.5212704604122,-48.5619743600050,77.3473202084181,25.4324246430426,39.8357901987756,15.6126056475904,-70.8803818144970,51.7807546450149,36.6611234096557,-15.7223420229505,-63.9085030531267,40.3107013681498,23.4189166486693,13.6177441626748,33.7499131324271。

在解密过程中,计算机设备可以先获取密钥;其中,密钥中包括扩散初始参数(b=1.5、c=0.2、y(1)=z(1)=0.4)、置换初始参数(a=3.59,x(1)=0.3)、迭代参数20、第一起始位置11、第二起始位置15、第一间隔数量17、第二间隔数量18、行数和列数均为2且明文序列长度为16。首先根据行数和列数对上述密文序列进行分组,获得密文矩阵序列c={c1,c2,c3,c4}。然后,计算机设备根据扩散初始参数以及第一起始位置、第一间隔数量和迭代参数,获得扩散种子矩阵s。进一步地,计算机设备s的逆矩阵,获得s-1,然后将密文矩阵与s-1相乘,获得明文矩阵a={a1,a2,a3,a4},然后将各明文矩阵中的数据排列成向量,获得初始明文序列p′=(47,15,89,92,53,60,28,23,78,22,81,84,77,61,50,16)。

进一步地,计算机设备根据置换初始参数以及第二起始位置、第二间隔数量以及迭代参数获得置换函数fcha,并计算fcha的反函数并根据对初始明文序列中的元素进行置换还原操作,获得明文序列。

上述加密方法和解密方法,其实现原理和技术效果与上述实施例类似,在此不再赘述。

应该理解的是,虽然图2-7的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-7中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,如图8所示,提供了一种加密装置,包括:分组模块110、运算模块120和转换模块130,其中:

分组模块110,用于对待加密的明文序列进行分组,并将获得的至少一个数据组分别转换成明文矩阵,获得明文矩阵序列;明文矩阵的行数和列数为预设的行数和列数;

运算模块120,用于获取扩散种子矩阵,并根据扩散种子矩阵分别对明文矩阵进行矩阵运算操作,获得密文矩阵;扩散种子矩阵为基于扩散初始参数,以及预设的第一非线性映射关系获得的;

转换模块130,用于将明文矩阵序列对应的各密文矩阵中的数据转换成向量,获得明文序列对应的密文序列。

本申请实施例提供的加密装置,可以实现上述方法实施例,其实现原理和技术效果类似,在此不再赘述。

在一个实施例中,在上述实施例的基础上,如图9所示,上述运算模块120包括:

选择单元121,用于在预设的第一参数范围中,选择扩散初始参数;

迭代单元122,用于将扩散初始参数代入第一非线性映射关系进行迭代计算,获得扩散种子序列;扩散种子序列的长度大于或等于明文矩阵中所包含数据的第一数量;

确定单元123,用于在扩散种子序列按序选择第一数量个目标扩散种子;

生成单元124,用于根据目标扩散种子生成扩散种子矩阵。

在一个实施例中,在上述实施例的基础上,上述确定单元123具体用于:根据扩散种子序列的长度以及第一数量,确定第一起始位置和第一间隔数量;在扩散种子序列中,从第一起始位置对应的扩散种子开始,每隔第一间隔数量选择一个扩散种子作为目标扩散种子,直至目标扩散种子的数量等于第一数量。

在一个实施例中,在上述实施例的基础上,上述生成单元124具体用于:根据预设的行数和列数,将各目标扩散种子排列成初始扩散种子矩阵;计算初始扩散种子矩阵的行列式值;在行列式值不等于零时,将初始扩散种子矩阵确定为扩散种子矩阵。

在一个实施例中,在上述实施例的基础上,上述生成单元124还用于:在行列式值等于零时,重新选择第一起始位置和第一间隔数量,返回执行在扩散种子序列中,从第一起始位置对应的扩散种子开始,每隔第一间隔数量选择一个扩散种子作为目标扩散种子,直至目标扩散种子的数量等于第一数量的步骤。

在一个实施例中,在上述实施例的基础上,第一非线性映射关系为:

其中,y(n)表示扩散种子序列中的第n个数据;z(n)为迭代过程数据;b、c第一非线性映射关系中的非线性参数。

在一个实施例中,在上述实施例的基础上,上述运算模块120具体用于:分别将明文矩阵与扩散种子矩阵相乘,获得密文矩阵。

在一个实施例中,在上述实施例的基础上,如图10所示,上述装置还包括置换模块140,用于:获取置换函数;置换函数为基于置换初始参数,以及预设的第二非线性映射关系获得的;根据置换函数对初始明文序列中的数据进行位置置换,获得明文序列。

在一个实施例中,在上述实施例的基础上,上述置换模块140具体用于:在预设的第二参数范围中,选择置换初始参数;将置换初始参数代入第二非线性映射关系进行迭代计算,获得置换种子序列;置换种子序列的长度大于或等于初始明文序列中所包含数据的第二数量;在置换种子序列中按序选择第二数量个目标置换种子,形成第一种子序列;按照数值大小对各目标置换种子进行排序处理,获得第二种子序列;根据第一种子序列以及第二种子序列中各目标置换种子的位置变化关系,生成置换函数。

在一个实施例中,在上述实施例的基础上,第二非线性映射关系为x(n 1)=a·x(n)·[1-x(n)];其中,x(n)表示置换种子序列中的第n个数据;a为第二非线性映射关系中的非线性参数。

在一个实施例中,在上述实施例的基础上,密文序列对应的密钥包括预设的行数和列数、扩散初始参数、置换初始参数以及明文序列的长度。

本申请实施例提供的加密装置,可以实现上述方法实施例,其实现原理和技术效果类似,在此不再赘述。

关于解密装置的具体限定可以参见上文中对于解密方法的限定,在此不再赘述。上述解密装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,如图11所示,提供了一种解密装置,包括:分组模块210、运算模块220和获取模块230,其中:

分组模块210,用于对待解密的密文序列进行分组,并将获得的至少一个数据组分别转换成密文矩阵,获得密文矩阵序列;明文矩阵的行数和列数为基于密文序列对应的密钥确定的;

运算模块220,用于获取扩散种子矩阵,并根据扩散种子矩阵分别对密文矩阵进行矩阵运算操作,获得明文矩阵;扩散种子矩阵为基于密钥中的扩散初始参数,以及预设的第一非线性映射关系获得的;

获取模块230,用于根据密文矩阵序列对应的各明文矩阵,获得密文序列对应的明文序列。

本申请实施例提供的解密装置,可以实现上述方法实施例,其实现原理和技术效果类似,在此不再赘述。

在一个实施例中,在上述实施例的基础上,如图12所述,上述运算模块220包括:

迭代单元221,用于将扩散初始参数代入第一非线性映射关系进行迭代计算,获得扩散种子序列;扩散种子序列的长度大于或等于密文矩阵中所包含数据的第一数量;

选择单元222,用于在扩散种子序列按序选择第一数量个目标扩散种子;

生成单元223,用于根据目标扩散种子生成扩散种子矩阵。

在一个实施例中,在上述实施例的基础上,密钥中包括第一起始位置和第一间隔数量;上述选择单元222具体用于:在扩散种子序列中,从第一起始位置对应的扩散种子开始,每隔第一间隔数量选择一个扩散种子作为目标扩散种子,直至目标扩散种子的数量等于第一数量。

在一个实施例中,在上述实施例的基础上,第一非线性映射关系为:

其中,y(n)表示扩散种子序列中的第n个数据;z(n)为迭代过程数据;b、c第一非线性映射关系中的非线性参数。

在一个实施例中,在上述实施例的基础上,上述运算模块220具体用于:计算扩散种子矩阵的逆矩阵;分别将密文矩阵与逆矩阵相乘,获得明文矩阵。

在一个实施例中,在上述实施例的基础上,上述获取模块230具体用于:将密文矩阵序列对应的各明文矩阵中的数据转换成向量,获得初始明文序列;获取置换函数;置换函数为基于密钥中的置换初始参数,以及预设的第二非线性映射关系获得的;根据置换函数的反函数,对初始明文序列中的数据进行置换还原操作,获得明文序列。

在一个实施例中,在上述实施例的基础上,密钥中包含明文序列的长度,上述获取模块230具体用于:将置换初始参数代入第二非线性映射关系进行迭代计算,获得置换种子序列;置换种子序列的长度大于或等于明文序列的长度;在置换种子序列中按序选择目标置换种子,形成第一种子序列;第一种子序列的长度等于明文序列的长度;按照数值大小对各目标置换种子进行排序处理,获得第二种子序列;根据第一种子序列以及第二种子序列中,各目标置换种子的位置变化关系,生成置换函数。

在一个实施例中,在上述实施例的基础上,第二非线性映射关系为x(n 1)=a·x(n)·[1-x(n)];其中,x(n)表示置换种子序列中的第n个数据;a为第二非线性映射关系中的非线性参数。

本申请实施例提供的解密装置,可以实现上述方法实施例,其实现原理和技术效果类似,在此不再赘述。

关于解密装置的具体限定可以参见上文中对于解密方法的限定,在此不再赘述。上述解密装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图13所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储加密\解密数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种加密\解密方法。

本领域技术人员可以理解,图13中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:

对待加密的明文序列进行分组,并将获得的至少一个数据组分别转换成明文矩阵,获得明文矩阵序列;明文矩阵的行数和列数为预设的行数和列数;

获取扩散种子矩阵,并根据扩散种子矩阵分别对明文矩阵进行矩阵运算操作,获得密文矩阵;扩散种子矩阵为基于扩散初始参数,以及预设的第一非线性映射关系获得的;

将明文矩阵序列对应的各密文矩阵中的数据转换成向量,获得明文序列对应的密文序列。

本实施例提供的计算机设备,其实现原理和技术效果与上述方法实施例类似,在此不再赘述。

在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:

对待解密的密文序列进行分组,并将获得的至少一个数据组分别转换成密文矩阵,获得密文矩阵序列;明文矩阵的行数和列数为基于密文序列对应的密钥确定的;

获取扩散种子矩阵,并根据扩散种子矩阵分别对密文矩阵进行矩阵运算操作,获得明文矩阵;扩散种子矩阵为基于密钥中的扩散初始参数,以及预设的第一非线性映射关系获得的;

根据密文矩阵序列对应的各明文矩阵,获得密文序列对应的明文序列。

本实施例提供的计算机设备,其实现原理和技术效果与上述方法实施例类似,在此不再赘述。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:

对待加密的明文序列进行分组,并将获得的至少一个数据组分别转换成明文矩阵,获得明文矩阵序列;明文矩阵的行数和列数为预设的行数和列数;

获取扩散种子矩阵,并根据扩散种子矩阵分别对明文矩阵进行矩阵运算操作,获得密文矩阵;扩散种子矩阵为基于扩散初始参数,以及预设的第一非线性映射关系获得的;

将明文矩阵序列对应的各密文矩阵中的数据转换成向量,获得明文序列对应的密文序列。

本实施例提供的计算机可读存储介质,其实现原理和技术效果与上述方法实施例类似,在此不再赘述。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:

对待解密的密文序列进行分组,并将获得的至少一个数据组分别转换成密文矩阵,获得密文矩阵序列;明文矩阵的行数和列数为基于密文序列对应的密钥确定的;

获取扩散种子矩阵,并根据扩散种子矩阵分别对密文矩阵进行矩阵运算操作,获得明文矩阵;扩散种子矩阵为基于密钥中的扩散初始参数,以及预设的第一非线性映射关系获得的;

根据密文矩阵序列对应的各明文矩阵,获得密文序列对应的明文序列。

本实施例提供的计算机可读存储介质,其实现原理和技术效果与上述方法实施例类似,在此不再赘述。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-onlymemory,rom)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(randomaccessmemory,ram)或外部高速缓冲存储器。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(staticrandomaccessmemory,sram)或动态随机存取存储器(dynamicrandomaccessmemory,dram)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。


技术特征:

1.一种加密方法,其特征在于,所述方法包括:

对待加密的明文序列进行分组,并将获得的至少一个数据组分别转换成明文矩阵,获得明文矩阵序列;所述明文矩阵的行数和列数为预设的行数和列数;

获取扩散种子矩阵,并根据所述扩散种子矩阵分别对所述明文矩阵进行矩阵运算操作,获得密文矩阵;所述扩散种子矩阵为基于扩散初始参数,以及预设的第一非线性映射关系获得的;

将所述明文矩阵序列对应的各密文矩阵中的数据转换成向量,获得所述明文序列对应的密文序列。

2.根据权利要求1所述的方法,其特征在于,所述获取扩散种子矩阵,包括:

在预设的第一参数范围中,选择所述扩散初始参数;

将所述扩散初始参数代入所述第一非线性映射关系进行迭代计算,获得扩散种子序列;所述扩散种子序列的长度大于或等于所述明文矩阵中所包含数据的第一数量;

在所述扩散种子序列按序选择所述第一数量个目标扩散种子;

根据所述目标扩散种子生成所述扩散种子矩阵。

3.根据权利要求2所述的方法,其特征在于,所述在所述扩散种子序列按序选择所述第一数量个目标扩散种子,包括:

根据所述扩散种子序列的长度以及所述第一数量,确定第一起始位置和第一间隔数量;

在所述扩散种子序列中,从所述第一起始位置对应的扩散种子开始,每隔所述第一间隔数量选择一个扩散种子作为所述目标扩散种子,直至所述目标扩散种子的数量等于所述第一数量。

4.根据权利要求3所述的方法,其特征在于,所述根据所述目标扩散种子生成所述扩散种子矩阵,包括:

根据所述预设的行数和列数,将各所述目标扩散种子排列成初始扩散种子矩阵;

计算所述初始扩散种子矩阵的行列式值;

在所述行列式值不等于零时,将所述初始扩散种子矩阵确定为所述扩散种子矩阵。

5.根据权利要求4所述的方法,其特征在于,所述计算所述初始扩散种子矩阵的行列式值之后,还包括:

在所述行列式值等于零时,重新选择所述第一起始位置和所述第一间隔数量,返回执行在所述扩散种子序列中,从所述第一起始位置对应的扩散种子开始,每隔所述第一间隔数量选择一个扩散种子作为所述目标扩散种子,直至所述目标扩散种子的数量等于所述第一数量的步骤。

6.根据权利要求1-5任一项所述的方法,其特征在于,所述第一非线性映射关系为:

其中,y(n)表示所述扩散种子序列中的第n个数据;z(n)为迭代过程数据;b、c所述第一非线性映射关系中的非线性参数。

7.根据权利要求1-5任一项所述的方法,其特征在于,所述根据扩散种子矩阵分别对所述明文矩阵进行矩阵运算操作,获得密文矩阵,包括:

分别将所述明文矩阵与所述扩散种子矩阵相乘,获得所述密文矩阵。

8.根据权利要求1-5任一项所述的方法,其特征在于,所述对待加密的明文序列进行分组之前,还包括:

获取置换函数;所述置换函数为基于置换初始参数,以及预设的第二非线性映射关系获得的;

根据所述置换函数对初始明文序列中的数据进行位置置换,获得所述明文序列。

9.根据权利要求8所述的方法,其特征在于,所述获取置换函数,包括:

在预设的第二参数范围中,选择所述置换初始参数;

将所述置换初始参数代入所述第二非线性映射关系进行迭代计算,获得置换种子序列;所述置换种子序列的长度大于或等于所述初始明文序列中所包含数据的第二数量;

在所述置换种子序列中按序选择所述第二数量个目标置换种子,形成第一种子序列;

按照数值大小对各所述目标置换种子进行排序处理,获得第二种子序列;

根据所述第一种子序列以及所述第二种子序列中各所述目标置换种子的位置变化关系,生成所述置换函数。

10.根据权利要求8所述的方法,其特征在于,所述第二非线性映射关系为x(n 1)=a·x(n)·[1-x(n)];其中,x(n)表示所述置换种子序列中的第n个数据;a为所述第二非线性映射关系中的非线性参数。

11.根据权利要求8所述的方法,其特征在于,所述密文序列对应的密钥包括所述预设的行数和列数、所述扩散初始参数、所述置换初始参数以及所述明文序列的长度。

12.一种解密方法,其特征在于,所述方法包括:

对待解密的密文序列进行分组,并将获得的至少一个数据组分别转换成密文矩阵,获得密文矩阵序列;所述明文矩阵的行数和列数为基于所述密文序列对应的密钥确定的;

获取扩散种子矩阵,并根据所述扩散种子矩阵分别对所述密文矩阵进行矩阵运算操作,获得明文矩阵;所述扩散种子矩阵为基于所述密钥中的扩散初始参数,以及预设的第一非线性映射关系获得的;

根据所述密文矩阵序列对应的各所述明文矩阵,获得所述密文序列对应的明文序列。

13.根据权利要求12所述的方法,其特征在于,所述获取扩散种子矩阵,包括:

将所述扩散初始参数代入所述第一非线性映射关系进行迭代计算,获得扩散种子序列;所述扩散种子序列的长度大于或等于所述密文矩阵中所包含数据的第一数量;

在所述扩散种子序列按序选择所述第一数量个目标扩散种子;

根据所述目标扩散种子生成所述扩散种子矩阵。

14.根据权利要求13所述的方法,其特征在于,所述密钥中包括第一起始位置和第一间隔数量;所述在所述扩散种子序列按序选择所述第一数量个目标扩散种子,包括:

在所述扩散种子序列中,从所述第一起始位置对应的扩散种子开始,每隔所述第一间隔数量选择一个扩散种子作为所述目标扩散种子,直至所述目标扩散种子的数量等于所述第一数量。

15.根据权利要求12-14任一项所述的方法,其特征在于,所述第一非线性映射关系为:

其中,y(n)表示所述扩散种子序列中的第n个数据;z(n)为迭代过程数据;b、c所述第一非线性映射关系中的非线性参数。

16.根据权利要求12-14任一项所述的方法,其特征在于,所述根据所述扩散种子矩阵分别对所述密文矩阵进行矩阵运算操作,获得明文矩阵,包括:

计算所述扩散种子矩阵的逆矩阵;

分别将所述密文矩阵与所述逆矩阵相乘,获得所述明文矩阵。

17.根据权利要求12-14任一项所述的方法,其特征在于,所述根据所述密文矩阵序列对应的各所述明文矩阵,获得所述密文序列对应的明文序列,包括:

将所述密文矩阵序列对应的各所述明文矩阵中的数据转换成向量,获得初始明文序列;

获取置换函数;所述置换函数为基于所述密钥中的置换初始参数,以及预设的第二非线性映射关系获得的;

根据所述置换函数的反函数,对初始明文序列中的数据进行置换还原操作,获得所述明文序列。

18.根据权利要求17所述的方法,其特征在于,所述密钥中包含明文序列的长度,所述获取置换函数,包括:

将所述置换初始参数代入所述第二非线性映射关系进行迭代计算,获得置换种子序列;所述置换种子序列的长度大于或等于所述明文序列的长度;

在所述置换种子序列中按序选择目标置换种子,形成第一种子序列;所述第一种子序列的长度等于所述明文序列的长度;

按照数值大小对各所述目标置换种子进行排序处理,获得第二种子序列;

根据所述第一种子序列以及所述第二种子序列中各所述目标置换种子的位置变化关系,生成所述置换函数。

19.根据权利要求17所述的方法,其特征在于,所述第二非线性映射关系为x(n 1)=a·x(n)·[1-x(n)];其中,x(n)表示所述置换种子序列中的第n个数据;a为所述第二非线性映射关系中的非线性参数。

20.一种加密装置,其特征在于,所述装置包括:

分组模块,用于对待加密的明文序列进行分组,并将获得的至少一个数据组分别转换成明文矩阵,获得明文矩阵序列;所述明文矩阵的行数和列数为预设的行数和列数;

运算模块,用于获取扩散种子矩阵,并根据所述扩散种子矩阵分别对所述明文矩阵进行矩阵运算操作,获得密文矩阵;所述扩散种子矩阵为基于扩散初始参数,以及预设的第一非线性映射关系获得的;

转换模块,用于将所述明文矩阵序列对应的各密文矩阵中的数据转换成向量,获得所述明文序列对应的密文序列。

21.一种解密装置,其特征在于,所述装置包括:

分组模块,用于对待解密的密文序列进行分组,并将获得的至少一个数据组分别转换成密文矩阵,获得密文矩阵序列;所述明文矩阵的行数和列数为基于所述密文序列对应的密钥确定的;

运算模块,用于获取扩散种子矩阵,并根据所述扩散种子矩阵分别对所述密文矩阵进行矩阵运算操作,获得明文矩阵;所述扩散种子矩阵为基于所述密钥中的扩散初始参数,以及预设的第一非线性映射关系获得的;

获取模块,用于根据所述密文矩阵序列对应的各所述明文矩阵,获得所述密文序列对应的明文序列。

22.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至19中任一项所述方法的步骤。

23.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至19中任一项所述的方法的步骤。

技术总结
本申请涉及一种加密方法、解密方法、装置、计算机设备和存储介质,计算机设备对待加密的明文序列进行分组,并将获得的至少一个数据组分别转换成明文矩阵,获得明文矩阵序列;其中,明文矩阵的行数和列数为预设的行数和列数;然后,获取扩散种子矩阵,并根据扩散种子矩阵分别对明文矩阵进行矩阵运算操作,获得密文矩阵;扩散种子矩阵为基于扩散初始参数,以及预设的第一非线性映射关系获得的;最后,将明文矩阵序列对应的各密文矩阵中的数据转换成向量,获得明文序列对应的密文序列。采用上述方法可以提升对明文序列进行加密的实时性。

技术研发人员:欧阳敏宁;盛先富
受保护的技术使用者:广州华迅网络科技有限公司
技术研发日:2020.02.06
技术公布日:2020.06.05

转载请注明原文地址: https://bbs.8miu.com/read-56014.html

最新回复(0)