发明内容
有鉴于此,本申请的目的在于提供一种图像加密方法及装置,以实现多幅图像同时进行加密传输,提高加密效率。
第一方面,本申请实施例提供了一种图像加密方法,包括:
获取待加密图像组,并生成所述待加密图像组的第一实数矩阵;
对所述第一实数矩阵进行调整,得到第二实数矩阵;
对所述第二实数矩阵中进行傅里叶变换,以得到所述第二实数矩阵的复数矩阵和所述复数矩阵的系数;
基于所述复数矩阵的预设个数的系数,确定所述待加密图像组的密文和解密密钥。
结合第一方面,本申请实施例提供了第一方面的第一种可能的实施方式,其中,所述获取待加密图像组,并生成所述待加密图像组的第一实数矩阵,包括:
获取待加密图像集;
基于所述待加密图像集中每个待加密图像的类型,对所述待加密图像进行组合,以得到待加密图像组;
将所述待加密图像组转化为目标四元数矩阵;
提取所述目标四元数矩阵中的分量;其中所述分量包括实部分量、第一虚部分量、第二虚部分量和第三虚部分量;
针对每个分量,生成该分量对应的第一实数矩阵。
结合第一方面的第一种可能的实施方式,本申请实施例提供了第一方面的第二种可能的实施方式,其中,
所述将所述待加密图像组转化为目标四元数矩阵,包括:
根据公式
将每组所述待加密图像转化为第一四元数矩阵,其中,f
t(x,y)为第一四元数矩阵,
和
分别为不同颜色通道的分量函数,i、j、k均为虚数单位,t=1,2,...n,(x,y)为空间域坐标;
基于预设参数α,对所述第一四元数矩阵f
t(x,y)采用右边型四元数回转器变换公式
进行转换,得到第二四元数矩阵M
t(u,v),将所述第二四元数矩阵作为目标四元数矩阵;其中,μ为纯四元数,并满足μ=iγ
1+jγ
2+kγ
3且μ
2=1,γ
1、γ
2、γ
3均为实数,(u,v)为频域坐标。
结合第一方面的第二种可能的实施方式,本申请实施例提供了第一方面的第三种可能的实施方式,其中,所述对所述第一实数矩阵进行调整,得到第二实数矩阵,包括:
基于logistic序列si+1=ηsi(1-si)以及logistic序列的初始值s0,生成与所述第一实数矩阵等长的目标序列;
根据所述目标序列对所述第一实数矩阵进行置乱,得到第一调整实数矩阵;
将待加密图像组中对应的所述第一调整实数矩阵进行叠加,得到第二调整实数矩阵;
根据所述第二调整实数矩阵的行向量和每个分量对应的所述第二调整实数矩阵的平均值,得到第二实数矩阵。
结合第一方面的第三种可能的实施方式,本申请实施例提供了第一方面的第四种可能的实施方式,其中,
所述基于所述复数矩阵的预设个数的系数,确定所述待加密图像组的密文和解密密钥,包括:
将所述复数矩阵的第一个系数组成第一矩阵,得到所述待加密图像组的私钥;将所述复数矩阵的预设个数的系数中剩余系数组成第二矩阵,得到所述待加密图像组的密文。
结合第一方面的第一种可能的实施方式,本申请实施例提供了第一方面的第五种可能的实施方式,其中,所述获取待加密图像集之后,包括:
将所述待加密图像集中的待加密图像设置为尺寸大小相同的图像。
结合第一方面的第一种可能的实施方式,本申请实施例提供了第一方面的第六种可能的实施方式,其中,所述待加密图像的类型包括:灰度图像、彩色图像和颜色深度图像;
所述待加密图像组包括以下至少一种形式:四幅灰度图像、一幅灰度图像和一幅彩色图像、一幅颜色深度图像。
第二方面,本申请实施例还提供一种图像加密装置,包括:
获取模块,用于获取待加密图像组,并生成所述待加密图像组的第一实数矩阵;
调整模块,用于对所述第一实数矩阵进行调整,得到第二实数矩阵;
变换模块,用于对所述第二实数矩阵中进行傅里叶变换,以得到所述第二实数矩阵的复数矩阵和所述复数矩阵的系数;
确定模块,基于所述复数矩阵的预设个数的系数,确定所述待加密图像组的密文和解密密钥。
结合第二方面,本申请实施例提供了第二方面的第一种可能的实施方式,其中,
子获取模块,用于获取待加密图像集;
组合模块,用于基于所述待加密图像集中每个待加密图像的类型,对所述待加密图像进行组合,以得到待加密图像组;
转化模块,用于将所述待加密图像组转化为目标四元数矩阵;
提取模块,用于提取所述目标四元数矩阵中的分量;其中所述分量包括实部分量、第一虚部分量、第二虚部分量和第三虚部分量;
生成模块,用于针对每个分量,生成该分量对应的第一实数矩阵。
结合第二方面的第一种可能的实施方式,本申请实施例提供了第二方面的第三种可能的实施方式,其中,
所述转化模块,具体用于根据公式
将每组所述待加密图像转化为第一四元数矩阵,其中,f
t(x,y)为第一四元数矩阵,
和
分别为不同颜色通道的分量函数,i、j、k均为虚数单位,t=1,2,...n,(x,y)为空间域坐标;
基于预设参数α,对所述第一四元数矩阵f
t(x,y)采用右边型四元数回转器变换公式
进行转换,得到第二四元数矩阵M
t(u,v),将所述第二四元数矩阵作为目标四元数矩阵;其中,μ为纯四元数,并满足μ=iγ
1+jγ
2+kγ
3且μ
2=1,γ
1、γ
2、γ
3均为实数,(u,v)为频域坐标。
第三方面,本申请实施例还提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述第一方面中任一种可能的实施方式中的步骤。
第四方面,本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述第一方面中任一种可能的实施方式中的步骤。
本申请实施例提供的图像加密方法及装置,所述图像加密方法包括:获取待加密图像组,并生成所述待加密图像组的第一实数矩阵;对所述第一实数矩阵进行调整,得到第二实数矩阵;对所述第二实数矩阵中进行傅里叶变换,以得到所述第二实数矩阵的复数矩阵和所述复数矩阵的系数;基于所述复数矩阵的预设个数的系数,确定所述待加密图像组的密文和解密密钥。本申请实施例通过生成待加密图像组的傅里叶系数,并选取部分傅里叶系数作为密文和密钥,减小了密文存储空间,并且实现了同时对多幅图像进行加密,提高了加密效率。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
基于此,本申请实施例提供了一种图像加密方法及装置,下面通过实施例进行描述。
为便于对本实施例进行理解,首先对本申请实施例所公开的一种图像加密方法进行详细介绍。
S101:获取待加密图像组,并生成待加密图像组的第一实数矩阵。
S102:根据第一实数矩阵,对第一实数矩阵进行调整,得到第二实数矩阵。
S103:对第二实数矩阵中进行傅里叶变换,以得到第二元素的复数矩阵和复数矩阵的系数。
S104:基于复数矩阵的预设个数的系数,确定待加密图像组的密文和解密密钥。
在步骤S101中,获取待加密图像组,并生成待加密图像组的第一实数矩阵的步骤具体包括:
S201:获取待加密图像集。
S202:基于待加密图像集中每个待加密图像的类型,对待加密图像进行组合,以得到待加密图像组。
S203:将待加密图像组转化为目标四元数矩阵。
S204:提取目标四元数矩阵中的分量。
S205:针对每个分量,生成该分量对应的第一实数矩阵。
在具体实施中,可以获取用户上传至互联网上的任意类型的待加密图像集。其中,待加密图像的类型可以是灰度图像、彩色图像和颜色深度图像。
在获取待加密图像集时,可以获取任意大小的图像。获取到待加密图像集之后,可以将待加密图像通过缩放的方式得到尺寸大小均为N×M的图像。
对获取的待加密图像集进行分组时,可以分成包含至少一幅待加密图像的待加密图像组。
为了增大加密容量,提高传输效率,本申请实施例提供的图像加密方法可以将待加密图像组转化为四元数矩阵。四元数矩阵可以表示四个不同颜色通道的分量图像。
因此,待加密图像组可以包括一幅颜色深度图像,或者是包括一幅彩色图像和一幅灰度图像,或者是四幅灰度图像。
在将待加密图像组转化为目标四元数矩阵的步骤中,可以根据公式
将每组待加密图像转化为第一四元数矩阵。其中,f
t(x,y)为第一四元数矩阵,
和
分别为不同颜色通道的分量函数,i、j、k均为虚数单位,t=1,2,...n,(x,y)为空间域坐标。
例如,当待加密图像组包括一幅颜色深度图像,即RGB-D图像时,可以分别将红色通道、绿色通道、蓝色通道和灰度等级通道的分量图像分别对应于第一四元数矩阵中的
和
再如,当待加密图像组包括一幅彩色图像,即RGB图像,和一幅灰度图像时,灰度图像对应于第一四元数矩阵中的
彩色图像中红色通道、绿色通道和蓝色通道的分量图像分别对应于第一四元数矩阵中的
和
这里应当说明的是,待加密图像组也可以是其他形式,例如,待加密图像组中仅包括一幅彩色图像,此时,该待加密图像组中的图像仅含有红色通道、绿色通道和蓝色通道的分量图像,第一四元数矩阵中仅包含
和
此时将灰度等级通道的分量图像置为0。
得到第一四元数矩阵之后,对第一四元数矩阵进行调制和变换,得到第二四元数矩阵。
在具体实施中,可以基于预设参数α,对第一四元数矩阵f
t(x,y)采用右边型四元数回转器变换公式
进行转换,得到第二四元数矩阵M
t(u,v)。其中,μ为纯四元数,并满足μ=iγ
1+jγ
2+kγ
3且μ
2=1,γ
1、γ
2、γ
3均为实数,(u,v)为频域坐标。
将得到的上述第二四元数矩阵作为目标四元数矩阵。
提取目标四元数矩阵中的分量。针对每个分量,生成该分量对应的第一实数矩阵。其中,分量包括实部分量、第一虚部分量、第二虚部分量和第三虚部分量。
在步骤S102中,由于目标四元数矩阵中的分量有四个,因此第一实数矩阵有四个。通过对至少一个第一实数矩阵进行调整,得到第二实数矩阵。
对至少一个第一实数矩阵进行调整,得到第二实数矩阵的步骤包括:
S301:基于logistic序列si+1=ηsi(1-si)以及logistic序列的初始值s0,生成与第一实数矩阵等长的目标序列。
S302:根据目标序列对第一实数矩阵进行置乱,得到第一调整实数矩阵。
S303:将待加密图像组中对应的第一调整实数矩阵进行叠加,得到第二调整实数矩阵。
S304:根据第二调整实数矩阵的行向量和每个分量对应的第二调整实数矩阵的平均值,得到第二实数矩阵。
给定初始值s0,根据logistic序列si+1=ηsi(1-si),生成与第一实数矩阵等长的目标序列L={si|i=1,2,...,NM},并按照降序排列。
根据目标序列生成的位置索引对至少一个第一实数矩阵进行置乱,得到第一调整实数矩阵。
将待加密图像组中对应的第一调整实数矩阵进行叠加,也就是将待加密图像组中每个分量对应的第一调整实数矩阵进行叠加,得到第二调整实数矩阵。
将第二调整实数矩阵调整为行向量,并计算每个分量对应的第二调整实数矩阵的平均值。
根据行向量和平均值得到第二实数矩阵。
在步骤S103中,对第二实数矩阵进行傅里叶变换,得到每个第二实数矩阵对应的复数矩阵。第二实数矩阵共有四个,因此复数矩阵共有4个,并且每个复数矩阵的长度均为(NM+1)。
在步骤S104中,选取每个复数矩阵的预设个数的系数确定待加密图像组的密文和解密密钥。这里,可以根据傅里叶变换的对称性,选取每个复数矩阵的前
个系数。
将每个复数矩阵的第一个系数组成2×2的矩阵A,将该矩阵作为解密密钥。
将每个复数矩阵的剩余
个系数调整为大小为
的矩阵,再组合成2N×M的矩阵B,将该矩阵作为密文。
相应地,本申请实施例还提供一种图像解密方法,该图像解密方法为图像加密方法的反过程。具体地,
在解密过程中,可以将待解密密文划分成2×2的子矩阵,然后根据解密密钥,得到四个分量对应的部分傅里叶系数。
然后根据傅里叶系数的对称性,将每个分量的傅里叶系数补充得到完整的傅里叶系数,从而得到复数矩阵。
再对复数矩阵进行反变换,得到第一实数矩阵。
再对第二实数矩阵进行反调整,得到第二实数矩阵。
根据第二实数矩阵得到第一四元数矩阵,再对第一四元数矩阵进行反回转器变换和反调制,得到第二四元数矩阵。
将第二四元数矩阵进行反变换,得到每个解密后的图像组。
基于相同的技术构思,本申请实施例还提供一种图像加密装置、电子设备、以及计算机存储介质等,具体可参见以下实施例。
图4是示出本申请的一些实施例的图像加密装置的框图,该图像加密装置实现的功能对应上述在终端设备上执行图像加密方法的步骤。该装置可以理解为一个包括处理器的服务器的组件,该组件能够实现上述图像加密方法,如图所示,该图像加密装置400可以包括:
获取模块401,用于获取待加密图像组,并生成所述待加密图像组的第一实数矩阵;
调整模块402,用于对所述第一实数矩阵进行调整,得到第二实数矩阵;
变换模块403,用于对所述第二实数矩阵中进行傅里叶变换,以得到所述第二实数矩阵的复数矩阵和所述复数矩阵的系数;
确定模块404,基于所述复数矩阵的预设个数的系数,确定所述待加密图像组的密文和解密密钥。
该图像加密装置400还可以包括:
子获取模块,用于获取待加密图像集;
组合模块,用于基于所述待加密图像集中每个待加密图像的类型,对所述待加密图像进行组合,以得到待加密图像组;
转化模块,用于将所述待加密图像组转化为目标四元数矩阵;
提取模块,用于提取所述目标四元数矩阵中的分量;其中所述分量包括实部分量、第一虚部分量、第二虚部分量和第三虚部分量;
生成模块,用于针对每个分量,生成该分量对应的第一实数矩阵。
转化模块,具体用于根据公式
将每组所述待加密图像转化为第一四元数矩阵,其中,f
t(x,y)为第一四元数矩阵,
和
分别为不同颜色通道的分量函数,i、j、k均为虚数单位,t=1,2,...n,(x,y)为空间域坐标;
基于预设参数α,对所述第一四元数矩阵f
t(x,y)采用右边型四元数回转器变换公式
进行转换,得到第二四元数矩阵M
t(u,v),将所述第二四元数矩阵作为目标四元数矩阵;其中,μ为纯四元数,并满足μ=iγ
1+jγ
2+kγ
3且μ
2=1,γ
1、γ
2、γ
3均为实数,(u,v)为频域坐标。
如图5所示,为本申请实施例所提供的一种电子设备500的结构示意图,该电子设备500包括:至少一个处理器501,至少一个网络接口504和至少一个用户接口503,存储器505,至少一个通信总线502。通信总线502用于实现这些组件之间的连接通信。用户接口503,包括显示器(例如,触摸屏)、键盘或者点击设备(例如,触感板或者触摸屏等)。
存储器505可以包括只读存储器和随机存取存储器,并向处理器501提供指令和数据。存储器505的一部分还可以包括非易失性随机存取存储器(NVRAM)。
在一些实施方式中,存储器505存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:
操作系统5051,包含各种系统程序,用于实现各种基础业务以及处理基于硬件的任务;
应用程序模块5052,包含各种应用程序,用于实现各种应用业务。
在本申请实施例中,通过调用存储器505存储的程序或指令,处理器501用于:
获取待加密图像组,并生成待加密图像组的第一实数矩阵;
根据第一实数矩阵,对第一实数矩阵进行调整,得到第二实数矩阵;
对第二实数矩阵中进行傅里叶变换,以得到第二元素的复数矩阵和复数矩阵的系数;
基于复数矩阵的预设个数的系数,确定待加密图像组的密文和解密密钥。
处理器501还用于:
获取待加密图像集;
基于所述待加密图像集中每个待加密图像的类型,对所述待加密图像进行组合,以得到待加密图像组;
将所述待加密图像组转化为目标四元数矩阵;
提取所述目标四元数矩阵中的分量;其中所述分量包括实部分量、第一虚部分量、第二虚部分量和第三虚部分量;
针对每个分量,生成该分量对应的第一实数矩阵。
处理器501还用于:
根据公式
将每组所述待加密图像转化为第一四元数矩阵,其中,f
t(x,y)为第一四元数矩阵,
和
分别为不同颜色通道的分量函数,i、j、k均为虚数单位,t=1,2,...n,(x,y)为空间域坐标;
基于预设参数α,对所述第一四元数矩阵f
t(x,y)采用右边型四元数回转器变换公式
进行转换,得到第二四元数矩阵M
t(u,v),将所述第二四元数矩阵作为目标四元数矩阵;其中,μ为纯四元数,并满足μ=iγ
1+jγ
2+kγ
3且μ
2=1,γ
1、γ
2、γ
3均为实数,(u,v)为频域坐标。
处理器501还用于:
基于logistic序列si+1=ηsi(1-si)以及logistic序列的初始值s0,生成与所述第一实数矩阵等长的目标序列;
根据所述目标序列对所述第一实数矩阵进行置乱,得到第一调整实数矩阵;
将待加密图像组中对应的所述第一调整实数矩阵进行叠加,得到第二调整实数矩阵;
根据所述第二调整实数矩阵的行向量和每个分量对应的所述第二调整实数矩阵的平均值,得到第二实数矩阵。
处理器501还用于:
将所述复数矩阵的第一个系数组成第一矩阵,得到所述待加密图像组的私钥;将所述复数矩阵的预设个数的系数中剩余系数组成第二矩阵,得到所述待加密图像组的密文。
处理器501还用于:
将所述待加密图像集中的待加密图像设置为尺寸大小相同的图像。
本申请实施例所提供的进行图像加密方法的计算机程序产品,包括存储了处理器可执行的非易失的程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。