著录项信息
专利名称 | 基于奇异值分解及混沌加密的图像安全云存储方法 |
申请号 | CN201711157788.7 | 申请日期 | 2017-11-20 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2018-05-01 | 公开/公告号 | CN107977582A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F21/60 | IPC分类号 | G06F21/60;G06T1/00;H04L9/00;H04L29/06;H04L29/08查看分类表>
|
申请人 | 济南大学 | 申请人地址 | 山东省济南市市中区南辛庄西路3***
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 济南大学 | 当前权利人 | 济南大学 |
发明人 | 于长志;李恒建 |
代理机构 | 济南誉丰专利代理事务所(普通合伙企业) | 代理人 | 刘立升 |
摘要
本发明公开了一种基于奇异值分解及混沌加密的图像安全云存储方法,将原始图像进行奇异值分解,得到左、右奇异值矩阵以及奇异值矩阵,将左、右奇异值矩阵进行混沌置乱后上传云端;由奇异值矩阵抽取奇异值序列,计算奇异值序列的均值和最大值以及原始图像认证值,使用混沌系统产生随机矩阵,并根据均值和最大值修正该矩阵,再与奇异值矩阵叠加生成新矩阵并进行二次混沌置乱加密后上传云端。当需要获取云端数据时,需要向云端提供认证值和加密过程中的密钥,云端重新计算产生新认证值并与所提供的认证值比较认证,认证通过才能下载数据,进而重构原始图像。本发明能够提高利用云技术进行图像存储和传输等的安全性。
基于奇异值分解及混沌加密的图像安全云存储方法
技术领域
[0001] 本发明属于图像传输技术领域,特别涉及一种基于奇异值分解及混沌加密的图像安全云存储方法。
背景技术
[0002] 随着计算机信息处理技术和通信技术的快速发展,数字图像作为表达信息最直观的载体,在人们日常生活中的使用越来越频繁。考虑到某些图像包含机密性信息以及人们对于隐私保护的需求等因素,相当一部分图像在进行传输等行为时需要进行加密处理。
[0003] 现今作为数字图像使用工具的很多移动终端如智能手机、平板电脑等,由于其资源有限,在处理和存储较为庞大的图像数据时存在困难,因而利用这一类的设备进行图像存储以及传输等行为时,其所能处理的图像量是较为有限的。
[0004] 云技术是指在广域网或者局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。云技术的广泛使用对处理和存储庞大的图像数据提供了很好的解决方法,云技术的存储空间非常庞大,同时拥有很强的信息处理能力和安全性,对于那些资源有限的用户来说,将数据交给云端进行存储和管理将会带来很大的方便。用户可以在不使用数据的时候将数据存放在云端进行存储,需要的时候就自己或者供他人从云端下载,这样既可以减少用户的存储需求,又能够达到通过云技术进行图像的传输的目的。
[0005] 但是目前将图像存储至云端已经出现了许多安全隐患,例如很多情况下云端服务商可以直接获取存储在云端的图像,又比如现今出现了针对云技术的网络攻击,也有可能导致云端图像的泄漏,因此如何提高利用云技术进行图像存储以及下载的安全性是一个非常重要的问题。
发明内容
[0006] 本发明要解决的技术问题是,提供一种基于奇异值分解及混沌加密的图像安全云存储方法,提高利用云技术进行图像存储和传输等的安全性。
[0007] 为解决上述技术问题,本发明所采用的技术方案是:
[0008] 基于奇异值分解及混沌加密的图像安全云存储方法,包括以下步骤:
[0009] S1:将原始图像进行奇异值分解,得到左奇异值矩阵、右奇异值矩阵以及奇异值矩阵S,分别将左、右奇异值矩阵进行混沌置乱并发送至云端;
[0010] S2:从所述奇异值矩阵S中抽取原始图像的奇异值序列Sdiag并计算该序列的均值Smain以及最大值Smax;
[0011] S3:计算原始图像的认证值T,并将其与均值Smain以及最大值Smax整合成为认证序列;其中认证值T的计算公式如下:
[0012]
[0013] 其中,Sdiag'为奇异值序列Sdiag的逆序列,
[0014]
[0015] cor(Sdiag,Sdiag')为奇异值序列以及其逆序列的相关系数;
[0016] S4:利用密钥产生混沌系统,利用产生的混沌系统产生一个与奇异值矩阵S 相同大小的随机矩阵w;利用原始奇异值序列Sdiag的最大值、均值修正所述随机矩阵w,得到密文矩阵w':w'(i,j)=w(i,j)×(Smax-Smain);密文矩阵w'嵌入所述奇异值矩阵S进行加密,得到加密奇异值矩阵Sw:Sw=S+w';
[0017] S5:对加密奇异值矩阵Sw进行若干次混沌置乱得到最终的加密矩阵Sw',并将其发送至云端,其中每次混沌置乱单独使用一组密钥;
[0018] S6:若要从云端获取图像,需要向云端提供认证序列以及步骤S4和S5中所使用的密钥,云端通过所提供的步骤S5中使用的密钥对加密矩阵Sw'进行反置乱得到加密奇异值矩阵Sw,通过所提供的步骤S4中所使用的密钥以及均值 Smain以及最大值Smax得到密文矩阵w'以及奇异值矩阵S:S=Sw-w',通过奇异值矩阵S再次计算得到认证值T',如果T'-T的结果在允许范围内则认证通过,云端将奇异值矩阵S或者奇异值序列Sdiag以及左、右奇异值矩阵混沌置乱后的矩阵发送至提供方,提供方反置乱出左、右奇异值矩阵并重构出原始图像。
[0019] 在上述技术方案中,将原始图像进行奇异值分解得到左、右奇异值矩阵以及奇异值矩阵,然后分别对左、右奇异值矩阵以及奇异值矩阵进行加密后上传至云端,因而无需在云端存储原始图像,而是存储经过压缩加密后的矩阵数据。若要下载云端数据,只有向云端提供正确的密钥并通过认证后云端才会将存储的数据传输给下载方,若认证不通过云端不会向下载方传输任何数据。由于至少要正确提供两组密钥才能下载云端数据,并且下载到云端数据后还要再使用正确的密钥才能重构出原始图像,从而能够更加精准的将最终得到原始图像的人限定为数据上传者或者是得到下载许可并掌握上述各组密钥的群体,大大提高云端数据以及原始图像的安全性以及隐私性。
[0020] 由于本发明不在云端存储原始图像,不管是云端服务商还是针对云服务的网络攻击行为,最多只能获得云端所存储的压缩加密后的矩阵。而本发明中云端的矩阵是由混沌置乱加密以及矩阵嵌入加密和混沌置乱加密的结合得到的。其中就混沌系统而言,由于其产生的序列具有初始条件敏感性、内在随机性、非规则的有序性、非相关性等特性,使用混沌加密能够更好的提高数据安全性。即使获得了加密后的云端矩阵,若没有各个加密过程的加密密钥也无法还原原始图像,从而能够有效地避免直接将真实图像存储至云端所存在的安全隐患,防止加密矩阵被暴力破解,大大提高利用云端进行图像数据存储的安全性。
[0021] 利用奇异值分解能够使变换域图像的能量更为集中,这样就可以达到更好的压缩性能,通过本方法能够对上传的数据进行压缩,从而节省云端空间。
附图说明
[0022] 图1是本发明具体实施方式的流程示意图。
[0023] 图2是本发明具体实施方式中实验一的图像恢复图。
[0024] 图3是本发明具体实施方式中实验二的图像恢复图。
[0025] 图4是本发明具体实施方式中实验三的图像恢复图。
[0026] 图5是本发明具体实施方式中实验四的图像恢复图。
具体实施方式
[0027] 该基于奇异值分解及混沌加密的图像安全云存储方法包括以下步骤:
[0028] S1:将原始图像进行奇异值分解,得到左奇异值矩阵U、右奇异值矩阵V以及奇异值矩阵S。使用一组密钥(记为key1)作为混沌系统的初始值,并根据产生的混沌系统分别将左、右奇异值矩阵进行混沌置乱并上传至云端,将左、右奇异值矩阵混沌置乱后的矩阵记为U'、V'。
[0029] S2:从所述奇异值矩阵S中抽取原始图像的奇异值序列Sdiag并计算该序列的均值Smain以及最大值Smax。均值Smain以及最大值Smax的计算方式如下:
[0030]
[0031] Smax=max(Sdiag)
[0032] Sdiag(i)表示奇异值序列Sdiag中第i个奇异值,1≤i≤r(S),r(S)表示矩阵S的秩。
[0033] S3:计算原始图像的认证值T,并将其与均值Smain以及最大值Smax整合成为认证序列,然后输出给数据上传方;其中认证值T的计算公式如下:
[0034]
[0035] 其中,Sdiag'为奇异值序列Sdiag的逆序列,
[0036]
[0037] cor(Sdiag,Sdiag')为奇异值序列以及其逆序列的相关系数;Mc以及Vc的目的是为了衡量图像数据奇异值序列的数值特性,而相关系数cor(Sdiag,Sdiag')是为了保证各个奇异值的位置特性能够被充分的提取出来。
[0038] S4:利用密钥(记为key2)产生混沌系统,利用产生的混沌系统产生一个与奇异值矩阵S相同大小的随机矩阵w,w中每个元素的大小都在0,1之间。为了达到加密和隐藏原始奇异值的目的,利用原始奇异值序列Sdiag的最大值、均值修正所述随机矩阵w,得到密文矩阵w':w'(i,j)=w(i,j)×(Smax-Smain),修正后的密文矩阵w'的元素值更加均匀,避免出现某些元素突出的情况,使其难以被利用元素统计等方式进行破解或者对密钥进行还原;
将密文矩阵w'嵌入所述奇异值矩阵S进行加密,得到加密奇异值矩阵Sw:Sw=S+w'。
[0039] S5:对加密奇异值矩阵Sw进行若干次混沌置乱得到最终的加密矩阵Sw',并将其发送至云端,其中每次混沌置乱单独使用一组密钥。
[0040] 以置乱一次为例,使用一组密钥(记为key3)作为混沌系统的初始值,并根据产生的混沌系统对加密奇异值矩阵进行置乱,置乱后得到最终的加密矩阵 Sw',并发送至云端。
[0041] 若置乱多次,则每次置乱使用一组密钥,从而用到多组密钥(记为 key3,……,keyp,p>3),多次置乱后得到最终的加密矩阵Sw',并发送至云端。
[0042] 通过本步骤即可达到二次加密的目的。
[0043] S6:若要从云端获取图像,需要向云端提供认证序列以及步骤S4和S5中所使用的密钥。
[0044] 以步骤S5置乱一次为例,则需要向云端提供认证序列以及密钥key2和 key3,云端通过所提供的步骤S5中使用的密钥key3再次产生相应的混沌系统,从而对加密矩阵Sw'进行反置乱得到加密奇异值矩阵Sw,通过所提供的步骤S4 中所使用的密钥key2按照步骤S4得到随机矩阵w,并通过 w'(i,j)=w(i,j)×(Smax-Smain)得到密文矩阵w',然后可得到奇异值矩阵S: S=Sw-w'。通过得到的奇异值矩阵S再次计算得到认证值T',如果T'-T的结果在允许范围内(例如T'-T<0.0000000001)则认证通过,云端将奇异值矩阵S或者奇异值序列Sdiag以及左、右奇异值矩阵混沌置乱后的矩阵发送至本步骤中的认证值T和密钥提供方,提供方利用密钥key1产生混沌系统,反置乱出左、右奇异值矩阵,最终重构出原始图像。
[0045] 若是步骤S5进行了多次置乱,则在下载云端数据时,需要提供密钥key2 以及密钥key3至keyp,通过key3至keyp依次逆序进行反置乱得到加密奇异值矩阵Sw,之后的步骤同上。
[0046] 利用本方法无需在云端存储原始图像,而是存储经过压缩加密后的矩阵数据。由于至少要正确提供两组密钥才能下载云端数据(步骤S4中的密钥以及步骤S5中的密钥),并且下载到云端数据后还要再使用正确的密钥(步骤S1中的密钥)才能重构出原始图像,从而能够更加精准的将最终得到原始图像的人限定为数据上传者或者是得到下载许可并掌握上述各组密钥的群体,大大提高云端数据以及原始图像的安全性以及隐私性。
[0047] 由于本发明不在云端存储原始图像,不管是云端服务商还是针对云服务的网络攻击行为,最多只能获得云端所存储的压缩加密后的矩阵。而本发明中云端的矩阵是由混沌置乱加密以及矩阵嵌入加密和混沌置乱加密的结合得到的,即使获得加密后的云端矩阵,若没有各个加密过程的加密密钥也无法还原原始图像,从而能够有效地避免直接将真实图像存储至云端所存在的安全隐患,防止加密矩阵被暴力破解,大大提高利用云端进行图像数据存储的安全性。
[0048] 另外,通过本方法能够对上传的数据进行压缩,从而节省云端空间。
[0049] 本方法进行了仿真实验如下:
[0050] 实验一:
[0051] 对Lena图(共256个特征值)进行本方法的加密以及提供正确的密钥时,输出的结果如表1所示(步骤S5置乱一次):
[0052]
特征值数 10 50 100 150 200 250
PSNR 22.6476 31.0476 37.9491 44.6742 53.6823 83.9758
ERROR 0.1433 0.0545 0.0246 0.0113 0.0040 1.3e-04
NC 0.9179 0.9886 0.9977 0.9995 0.9999 1.000
[0053] 表1
[0054] 图1是本实验中从左到右依次选取10、50、100、150、200、250个特征值时正确恢复的图像。
[0055] 实验二:
[0056] 对掌纹图(共256个特征值)进行本方法的加密以及提供正确的密钥时,输出的结果如表2所示(步骤S5置乱一次):
[0057]
特征值数 10 50 100 150 200 250
PSNR 27.7898 34.8984 43.1597 56.2626 73.0457 103.1148
ERROR 0.0601 0.0265 0.0102 0.0023 3.28e-04 1.029e-05
NC 0.9663 0.9935 0.9990 1.0000 1.0000 1.0000
[0058] 表2
[0059] 图2是本实验中从左到右依次选取10、50、100、150、200、250个特征值时正确恢复的图像。
[0060] 实验三:
[0061] 对camera图(共256个特征值)进行本方法的加密以及提供正确的密钥时,输出的结果如表3所示(步骤S5置乱一次):
[0062]
10 50 100 150 200 250
PSNR 21.2988 30.1058 37.7338 46.8272 58.1514 91.7577
ERROR 0.1638 0.0594 0.0247 0.0087 0.0024 4.912e-05
NC 0.9359 0.9918 0.9986 0.9998 1.0000 1.0000
[0063] 表3
[0064] 图3是本实验中从左到右依次选取10、50、100、150、200、250个特征值时正确恢复的图像。
[0065] 实验四:
[0066] 对Barbara图(共256个特征值)进行本方法的加密以及提供正确的密钥时,输出的结果如表4所示(步骤S5置乱一次):
[0067]
[0068]
[0069] 表4
[0070] 图4是本实验中从左到右依次选取10、50、100、150、200、250个特征值时正确恢复的图像。
[0071] 本方法在选择不同的特征值时的压缩效率如表5所示:
[0072]
特征值数 10 50 100 150 200 250
CS 92.0% 57.1% 6.6% 0 0 0
[0073] 表5
[0074] 为了验证在输入错误的密钥时,认证值变化的灵敏性,我们还做了如下的实验:
[0075] 对上述各图分别输入误差为10-15的错误密钥,计算相应的T和T',结果如表 6至表
8所示(步骤S5置乱一次):
[0076]
[0077] 表6
[0078]
[0079] 表7
[0080]
[0081]
[0082] 表8
[0083] 由表6至表8可以看出,即使正确密钥与错误密钥的误差很小,本方法所得到的认证值误差也是相当大的,因而通过设定合适的认证值误差范围,可以准确的进行认证值的判别,从而将错误密钥排除,保证云端数据的安全性。
[0084] 上面结合附图和具体实施方式以及实施例对本发明进行了进一步的说明,但本发明并不限于上述实施方式和实施例,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下做出各种变化。
法律信息
- 2019-08-23
- 2018-05-25
实质审查的生效
IPC(主分类): G06F 21/60
专利申请号: 201711157788.7
申请日: 2017.11.20
- 2018-05-01
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有引用任何外部专利数据! |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |