CN111210378B - 基于工业云上图像数据的可恢复性方法 - Google Patents
基于工业云上图像数据的可恢复性方法 Download PDFInfo
- Publication number
- CN111210378B CN111210378B CN201911400989.4A CN201911400989A CN111210378B CN 111210378 B CN111210378 B CN 111210378B CN 201911400989 A CN201911400989 A CN 201911400989A CN 111210378 B CN111210378 B CN 111210378B
- Authority
- CN
- China
- Prior art keywords
- data
- image
- algorithm
- block
- matrix
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/0021—Image watermarking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2201/00—General purpose image data processing
- G06T2201/005—Image watermarking
- G06T2201/0203—Image watermarking whereby the image with embedded watermark is reverted to the original condition before embedding, e.g. lossless, distortion-free or invertible watermarking
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Multimedia (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Editing Of Facsimile Originals (AREA)
- Image Processing (AREA)
Abstract
本发明涉及一种基于工业云上图像数据的可恢复性方法,是一个可以使用户检验从云上下载的图像数据的完整性,随后还可以在云上数据发生损坏时,使其恢复的方法。通过建立的一个系统模型:客户端,CSP,TPAR,使在客户端向CSP上传图像数据的时候,对其数据通过可逆水印算法生成水印图像,先生成整体图像的水印,随后将原始图像进行分块编码,之后再生成水印;之后将整体的水印图像保存在第一个块中,并且将虽有的块一同上传。当客户端从CSP上下载数据的时候,首先通过可逆水印算法检查整体图像的完整性,如果完整,则告诉TPAR下载的数据是完整的,否则告诉TPAR下载的数据遭到了损坏,随后客户端进行图像恢复。
Description
技术领域:
本发明是一个可以使用户检验从云上下载的图像数据的完整性,随后还可以在云上数据发生损坏时,使其恢复的方法。属于数据恢复领域。
背景技术:
近年来,随着信息技术和网络技术的飞速发展,全球的数据呈现了爆发式的增长。在工业的系统中,统计表明,工业图像数据的增长相对整个工业领域的数据而言,占了很大的一部分比例。面对快速增长的海量数据,传统的本地存储技术已经无法满足存储的要求。因此,云存储技术应运而生。作为新兴的存储技术,云存储具有存储容量大,存储方式灵活,访问便捷等特点,正在逐步取代本地存储技术,收到越来越多客户的青睐。
云存储的云服务提供商(Cloud Service Provider,CSP)是一个基于云计算技术构建的统一存储资源的平台,可以为客户端提供海量的存储空间。相对于本地存储,云存储具有如下的优势:(1).节约成本:客户端通过将数据上传到云上,用户无需购买本地存储设施,也无需搭建和维护本地存储系统,减少了在硬件,软件和运维上的投入。(2).稳定:相对于一般用户和中小型企业,CSP具有专业的技术和强大的实力,可以提供稳定的存储服务。(3).弹性扩容:用户可以按需购买所需要的存储空间,等等。由于云平台有很多优点,因此,越来越多的个人和企业级用户都将本地数据存储到云上。
然而,虽然云存储有众多的优势,但是它也面临着很多安全性的问题。(1).来自黑客等攻击装的恶意攻击会导致存储在服务器中的数据发生篡改和损坏。(2).由于自然灾害,软硬件故障等因素,可能导致云上的数据发生丢失等现象。(3).由于CSP的管理员无意的操作失误,或者CSP管理员有意的删除云上的数据信息,而使云存储服务器上的数据不完整。
本发明针对少量的图片(这里面假定一张图片)存储到工业云上,首先,提出了一个系统模型,引入了第三方仲裁可信机制。该机制主要的作用是让客户端和CSP都遵循规则:在CSP损坏数据,或者客户端为了向CSP索要赔偿,在上传数据的时候就使数据缺失的时候,第三方仲裁机制可以代替客户端和CSP向对方索要赔偿。其次,通过使用可逆水印算法等技术实现了用户在从云上下载数据时,检验其数据的完整性。再次,当客户端从CSP上下载的数据发生了损坏,我们向第三方仲裁控诉CSP之外,并且由第三方TPAR再次检查服务器以查明m个运行良好的服务器,并且将运行良好的数据返回给用户,最终可以使用户通过健康的数据来恢复被损坏的数据。
发明内容:
本发明概括为如下几步:
步骤(1).建立一个系统模型,引入第三方仲裁机制。
系统模型,包含三个实体:客户端,云服务提供商(Cloud Service Provider,CSP)和TPAR。其中客户端是一个有大量图像可以外包的实体。CSP是管理多个云存储服务器的实体,可以为客户端提供大量的存储资源。客户端和CSP的数据都提供给外包进行加密。TPAR是客户端和CSP指定的争端仲裁专家。
客户端将待保存的图像数据上传给CSP,当CSP接收到图像数据之后,就将接收成功的结果反馈给客户端,客户端收到结果之后,删除本地文件。
当客户端从CSP上下载图像的时候,检验其图像数据的完整性,并且当客户端从CSP上下载的图像数据不完整的时候,由第三方再次检查CSP上的m个运行良好的服务器,并且将这些服务器返回给用户,用户通过这些健康的服务器来恢复被损坏的数据。
步骤(2)数据完整性和恢复性的初始化
G1,G2,GT是素数阶为p的乘法循环群,选取G1,G2来构成双线性映射e:G1×G2->GT(G1×G2映射到GT)。其中g是G2的生成元。
H(.)是一个安全的图映射到点的哈希函数:{0,1}*->G1,即({0,1}*映射到G1),这个哈希函数将图中的字符串映射到G1的每一个元素中。
H1:T->G和H2:Z->G是安全散列函数,分别表示为T映射到G,Z映射到G,其中T∈{(i,k)|1≤i≤n,1≤k≤N/m},Z代表一个整数集合。
密钥生成,用于验证完整性。
TPAR选择一个较大的素数p传给系统模型中的客户端和CSP,然后客户端将安全参数k作为输入,选择一个元素α属于ZP,一个随机数x属于ZP,并且计算v属于gx。该计算输出了一个私钥sk=x和一个公钥pk=(α,p,g,v),客户端再在本地存储sk,将pk发送到CSP和TPAR。
整体图像和分块图像的初始化
待上传图像为图像I,下述方法中将这副图像生成整体图像的水印,以及分块编码之后的水印,因此将整体水印定义为:
其中ID为用于区分图像I的唯一标识码,IR=I mod p,IQ=I/p(mod代表除余)
图像I分块编码之后进行水印,将图像I划分成了大小相同且不重叠的块b1,b2,...,bn。其中bi属于Zp,对于每个块bi(i∈1,2,...,n),水印生成形式为:
Wi=H(ID,i,bi)x
其中ID是用于区分图像I的唯一标识码,i是每个块的索引,bi表示当前块。
步骤(3).审计证据的生成
步骤(3.1).生成整体图像的水印
根据算法(1)中的可逆水印算法,客户端将整体的图片I生成一个水印W’ID。
步骤(3.2).根据算法(2)中的算法,将图像I进行分块。
步骤(3.3).将分块的图像进行编码
根据算法(2),将分块的各个图像进行编码bi。因此再上述步骤结束之后,将获得两种数据,一个是整体的水印图像W’ID,一个是对原始图像I分块编码后的分块图像编码。
步骤(3.4).将原始图像I进行分块后的分块编码图像进行水印
通过算法(1)中的可逆水印算法,将分块编码的图像编码块通过水印算法生成水印W’i,并且将整体的水印图像W’ID保存在第一个块中,最终水印图像的输出为I’。
步骤(3.5).将水印后的编码块上传到CSP
客户端将水印后的编码块上传到CSP,CSP成功接收到了客户端上传的数据,并且已经成功反馈给客户端,此时客户端已经删除本地数据。此时,得到最终的水印图像。
步骤(4).审计完整性验证
步骤(4.1).客户端从CSP下载数据
客户端从CSP上下载数据的时候,先下载所有水印的图像编码块,并且开始进行检查。
步骤(4.2).通过算法(2)中的水印提取算法,将所有水印的图像编码块提取水印
当客户端下载完所有的块,分别提取整体图像的水印W’ID和图像分块编码的水印W’i,这时得到两种数据,恢复后的图像I”和分块编码的编码块。
步骤(4.3).验证整体图像的完整性
当客户端从CSP上下载下来之后,通过提取水印,如果整体的图像I”与原始的图像I一致,那么说明从CSP上下载的图像是完整的,否则说明图像数据受到了损坏,这时需要进行数据恢复。
其中,验证是否完整的公式如下:
其中I”R=I”mod p,I”Q=I”/p(mod是代表除余的符号),e为前面初始化中的双线性映射。
当该等式成立的时候,说明图像是完整的,当该等式不成立的时候,说明图像数据被损坏,这时执行下面步骤对图像数据进行恢复。
步骤(5).数据恢复
当检验到整体图像不完整的时候,接下来需要检验哪些编码块的数据损坏,当检测到损坏的编码块的时候,使用算法(2)中的算法进行恢复。
其中,检验哪些编码块的数据损坏公式:
e(W'i,g)=e(H(ID,i,bi),v)
如果相等,说明该数据块没有损坏,否则,该数据块损坏。
通过上述步骤,实现了数据的恢复操作。
算法(1).水印的初始化,嵌入和提取算法介绍
算法(1.1).可逆水印算法的初始化,包括初始化DCT系数以及重排序矩阵H,DCT系数用于图像压缩;
进一步得,DTC系数(图像压缩使用):对于一般的图像分块,DCT系数变换采用8*8分块,将灰度图像转换为DCT系数矩阵之后,该矩阵的左上角代表的低频分量,右下角代表的是高频分量,下述算法中的高频DCT系数是人为选择的。
具体选择过程为:
将图像I分成大小为8×8的块,并将每个块转换为DCT系数。其中,一个随机选择的8×8的块,对其按照Z字形状进行标号,最终所选择的高频DCT系数从第36位到第63位,其总数为28。然后重新排序成4×7块(该矩阵不需要Z字形,从左到右,从上到下,由小到大依次排列即可)。
设H为大小为上述生成的4×7的矩阵。H中的每个元素记为H(i,j),i∈{1,2,3,4},j∈{1,2,…7}。首先,分别求出最大值和最小值a和b:a=max{H(i,j)}i∈{1,2,3,4},j∈{1,2,…,7},b=min{H(i,j)}i∈{1,2,3,4},j∈{1,2,…,并分别记录各自的位置。
将最大值和最小值之间的差K定义为:
K=a-b
中位数mp为:
在水印嵌入之前,通过K来扩充最大值和最小值,生成a'和b':
a'=a+K
b'=b-K
如果矩阵H中存在不止一个极大值或极小值,按照从左到右、从上到下的顺序选择遇到的第一个最大值或最小值,其他的不变。
算法(1.2).可逆水印算法的嵌入操作
虽然在设置过程中,最大值和最小值都被扩展了,但它们的位置仍然保持不变。具体的,对于一个8×8的块,首先将其转换成DCT域,然后将其嵌入过程如下:
1)提取其高频DCT系数,得到大小为4×7的重排序矩阵H。
2)在矩阵H中,求出最大值a’和最小值b’,因为他们是用来表示K的,因此不嵌入水印。
3)扫描矩阵H的行和列,对于每一个既不是最大值也不是最小值的元素H(i,j),检查将要嵌入的像素位,像素位只能是0或者1。
如果像素位为‘1’且H(i,j)>=mp,则更新值的方式为:
如果位是‘1’且H(i,j)<mp,则更新值的方式为:
α介于1~2之间,用来确保a<H‘(i,j)<a',或者b'<H‘(i,j)<b,这取决于H(i,j)与mp的关系。
如果被嵌入的位为‘0’,则:
H'(i,j)=H(i,j)
上述做法,块的嵌入总容量为高频DCT系数-2,其中-2是因为最大值和最小值用来做标记。
对所有分块后的图像都进行这种操作。
算法(1.3).可逆水印算法的提取操作
提取算法如下:
1)先将8×8有水印的块转成DCT域,提取其高频DCT系数,得到大小为4×7的重排序矩阵H。
2)在矩阵H中,找到最大值a’和最小值b’。根据a’和b’计算K:
3)扫描H’(i,j)中的行和列
如果是最大值:
H(i,j)=H'(i,j)-K
如果是最小值:
H(i,j)=H'(i,j)+K
否则,当H'(i,j)≥a+△或者H’(i,j)≤b-△,并且像素位为‘1’时:
△是一个很小的值,用来消除α引入的误差。
为了实现提取水印,需要满足应该让
因此:
所以设置:
当b<H'(i,j)<a,并且像素位为‘0’时:
H(i,j)=H'(i,j)
最终,通过对恢复后的DCT系数进行反变换,提取水印位元,对原始图像块进行无失真恢复。
算法(2).数据的分块编码及数据恢复方法
算法(2.1).初始化操作
2.1.1.信息分散算法(IDA):是一种用于重建分割数据块的算法。它随机选择一个n*m系数矩阵用于编码原始数据。任何m编码块都可以使用以下矩阵属性检索原始数据。
在矩阵乘法操作中,如果有一个方程A×B=C;其中A、B、C表示矩阵(矩阵A是可逆的),矩阵B可得:
在IDA中,A为系数矩阵,B为原始数据块矩阵,C为编码后的数据块矩阵。
2.1.2.系数矩阵的求解
用户选择n个系数向量ai=(ai1,ai2,...,aim)∈Z(1≤i≤n)然后把这些向量组合成系数矩阵M=[ai,j](1≤i≤n,1≤j≤m),
算法(2.2).对图像进行存储操作用户将文件F={b1,b2,…,bN}分为N/m个块,每个块中有m个扇区。然后划分文件F={(b1,…,bm),(bm+1,…,b2m)…(…,bN)},第k个块用Sk进行表示,表示成:Sk=(b(k-1)m+1,b(k-1)m+2,…,bkm)(1<=k<=N/m)。
在对文件进行分区之后,用户使用BlockGen算法来计算编码数据块,即对每一个块中的各个扇区进行编码数据的计算。然后用户通过Enc算法将系数向量加密为密文,之后将他们组合成标签。
到此,完成了分块编码,以及编码块的存储。
算法(2.3).当数据块丢失时,通过编码实现其恢复操作
当收到损坏警告时,用户要求TPAR在CSP上寻找m个运行良好的服务器进行检索。然后TPAR将m个健康服务器中存储的编码数据块和相应的系数向量返回给用户。用户使用Dec算法对系数向量进行解密,得到系数矩阵A,然后使用Inverse算法计算A的逆矩阵。之后使用Retrieval算法对原始数据块进行重建,自此完成了整个数据恢复。
BlockGen算法:让数据块和系数矩阵按如下方式进行矩阵乘法运算。
cik=ai *Sk=ai1*b(k-1)m+1+…+aim*bkm
其中1≤i≤n,1≤k≤N/m,这样操作之后将获得文件Fi*={ci1,ci2,...,ciN/m},编码数据块矩阵中的第i行数据块将存储在第i个存储服务器中;
Enc算法:用户使用密钥对系数向量进行加密,加密方式如下:
其中1≤i≤n。
Dec算法:客户端从TPAR接收到系数矢量后,使用系统密钥Kenc对矢量解密如下:
其中1≤i≤m.随后将这些向量组成一个系数矩阵,这样一个m×m的矩阵A=(aij)1≤i,j≤m就得到了;
Inverse算法:客户端通过A计算A的可逆矩阵A-1=(aij)1≤i,j≤m,这里面A-1的第i行是(ai1,ai2,...,aim);
Retrieval算法:客户端将编码的数据块放入矩阵中,通过使用矩阵的属性,计算如下:
bj=αi1·c1k+…+αim·cmk
其中1≤j≤N,1≤k≤N/m,1≤i≤m。通过上述,可知i=(j mod m),
附图说明:
图1a.上传流程图
图1b.下载流程图
图2:系统模型
图3:可逆水印算法原始图
图4:可逆水印算法压缩之后的图
具体实施方式
该发明目前的使用背景是建立在工业云上的图像数据的恢复方法,目前我们假设仅上传少量的图片,不考虑一次上传大量图片。具体工作的流程图如图1所示,该发明的方法如下:
步骤(1).建立一个系统模型,引入第三方仲裁机制。
系统模型,包含三个实体:客户端,云服务提供商(Cloud Service Provider,CSP)和TPAR。其中客户端是一个有大量图像可以外包的实体。CSP是管理多个云存储服务器的实体,可以为客户端提供大量的存储资源。客户端和CSP的数据都提供给外包进行加密。TPAR是客户端和CSP指定的争端仲裁专家。
客户端将待保存的图像数据上传给CSP,当CSP接收到图像数据之后,就将接收成功的结果反馈给客户端,客户端收到结果之后,删除本地文件。
当客户端从CSP上下载图像的时候,检验其图像数据的完整性,并且当客户端从CSP上下载的图像数据不完整的时候,由第三方再次检查CSP上的m个运行良好的服务器,并且将这些服务器返回给用户,用户通过这些健康的服务器来恢复被损坏的数据。
系统模型的显示效果如图2所示。
步骤(2)数据完整性和恢复性的初始化
G1,G2,GT是素数阶为p的乘法循环群,选取G1,G2来构成双线性映射e:G1×G2->GT(G1×G2映射到GT)。其中g是G2的生成元。
H(.)是一个安全的图映射到点的哈希函数:{0,1}*->G1,即({0,1}*映射到G1),这个哈希函数将图中的字符串映射到G1的每一个元素中。
H1:T->G和H2:Z->G是安全散列函数,分别表示为T映射到G,Z映射到G,其中T∈{(i,k)|1≤i≤n,1≤k≤N/m},Z代表一个整数集合。
密钥生成,用于验证完整性。
TPAR选择一个较大的素数p传给系统模型中的客户端和CSP,然后客户端将安全参数k作为输入,选择一个元素α属于ZP,一个随机数x属于ZP,并且计算v属于gx。该计算输出了一个私钥sk=x和一个公钥pk=(α,p,g,v),客户端再在本地存储sk,将pk发送到CSP和TPAR。
整体图像和分块图像的初始化
待上传图像为图像I,下述方法中将这副图像生成整体图像的水印,以及分块编码之后的水印,因此将整体水印定义为:
其中ID为用于区分图像I的唯一标识码,IR=I mod p,IQ=I/p(mod代表除余)
图像I分块编码之后进行水印,将图像I划分成了大小相同且不重叠的块b1,b2,...,bn。其中bi属于Zp,对于每个块bi(i∈1,2,...,n),水印生成形式为:
Wi=H(ID,i,bi)x
其中ID是用于区分图像I的唯一标识码,i是每个块的索引,bi表示当前块。
步骤(3).审计证据的生成
步骤(3.1).生成整体图像的水印
根据算法(1)中的可逆水印算法,客户端将整体的图片I生成一个水印W’ID。
步骤(3.2).根据算法(2)中的算法,将图像I进行分块。
步骤(3.3).将分块的图像进行编码
根据算法(2),将分块的各个图像进行编码bi。因此再上述步骤结束之后,将获得两种数据,一个是整体的水印图像W’ID,一个是对原始图像I分块编码后的分块图像编码。
步骤(3.4).将原始图像I进行分块后的分块编码图像进行水印
通过算法(1)中的可逆水印算法,将分块编码的图像编码块通过水印算法生成水印W’i,并且将整体的水印图像W’ID保存在第一个块中,最终水印图像的输出为I’。
步骤(3.5).将水印后的编码块上传到CSP
客户端将水印后的编码块上传到CSP,CSP成功接收到了客户端上传的数据,并且已经成功反馈给客户端,此时客户端已经删除本地数据。此时,得到最终的水印图像。
步骤(4).审计完整性验证
步骤(4.1).客户端从CSP下载数据
客户端从CSP上下载数据的时候,先下载所有水印的图像编码块,并且开始进行检查。
步骤(4.2).通过算法(2)中的水印提取算法,将所有水印的图像编码块提取水印
当客户端下载完所有的块,分别提取整体图像的水印W’ID和图像分块编码的水印W’i,这时得到两种数据,恢复后的图像I”和分块编码的编码块。
步骤(4.3).验证整体图像的完整性
当客户端从CSP上下载下来之后,通过提取水印,如果整体的图像I”与原始的图像I一致,那么说明从CSP上下载的图像是完整的,否则说明图像数据受到了损坏,这时需要进行数据恢复。
其中,验证是否完整的公式如下:
其中I”R=I”mod p,I”Q=I”/p(mod是代表除余的符号),e为前面初始化中的双线性映射。
当该等式成立的时候,说明图像是完整的,当该等式不成立的时候,说明图像数据被损坏,这时执行下面步骤对图像数据进行恢复。
步骤(5).数据恢复
当检验到整体图像不完整的时候,接下来需要检验哪些编码块的数据损坏,当检测到损坏的编码块的时候,使用算法(2)中的算法进行恢复。
其中,检验哪些编码块的数据损坏公式:
e(W'i,g)=e(H(ID,i,bi),v)
如果相等,说明该数据块没有损坏,否则,该数据块损坏。
通过上述步骤,实现了数据的恢复操作。
算法(1).水印的初始化,嵌入和提取算法介绍
算法(1.1).可逆水印算法的初始化,包括初始化DCT系数以及重排序矩阵H,DCT系数用于图像压缩;
进一步得,DTC系数(图像压缩使用):对于一般的图像分块,DCT系数变换采用8*8分块,将灰度图像转换为DCT系数矩阵之后,该矩阵的左上角代表的低频分量,右下角代表的是高频分量,下述算法中的高频DCT系数是人为选择的。
具体选择过程为:
将图像I分成大小为8×8的块,并将每个块转换为DCT系数。其中,一个随机选择的8×8的块如图3所示,对其按照Z字形状进行标号,最终所选择的高频DCT系数从第36位到第63位,其总数为28。然后,如图4所示,重新排序成4×7块(该矩阵不需要Z字形,从左到右,从上到下,由小到大依次排列即可)。
设H为大小为上述生成的4×7的矩阵。H中的每个元素记为H(i,j),i∈{1,2,3,4},j∈{1,2,…7}。首先,分别求出最大值和最小值a和b:a=max{H(i,j)}i∈{1,2,3,4},j∈{1,2,…,7},b=min{H(i,j)}i∈{1,2,3,4},j∈{1,2,…,并分别记录各自的位置。
将最大值和最小值之间的差K定义为:
K=a-b
中位数mp为:
在水印嵌入之前,通过K来扩充最大值和最小值,生成a'和b':
a'=a+K
b'=b-K
如果矩阵H中存在不止一个极大值或极小值,按照从左到右、从上到下的顺序选择遇到的第一个最大值或最小值,其他的不变。
算法(1.2).可逆水印算法的嵌入操作
虽然在设置过程中,最大值和最小值都被扩展了,但它们的位置仍然保持不变。具体的,对于一个8×8的块,首先将其转换成DCT域,然后将其嵌入过程如下:
1)提取其高频DCT系数,得到大小为4×7的重排序矩阵H。
2)在矩阵H中,求出最大值a’和最小值b’,因为他们是用来表示K的,因此不嵌入水印。
3)扫描矩阵H的行和列,对于每一个既不是最大值也不是最小值的元素H(i,j),检查将要嵌入的像素位,像素位只能是0或者1。
如果像素位为‘1’且H(i,j)>=mp,则更新值的方式为:
如果位是‘1’且H(i,j)<mp,则更新值的方式为:
α介于1~2之间,用来确保a<H‘(i,j)<a',或者b'<H‘(i,j)<b,这取决于H(i,j)与mp的关系。
如果被嵌入的位为‘0’,则:
H'(i,j)=H(i,j)
上述做法,块的嵌入总容量为高频DCT系数-2,其中-2是因为最大值和最小值用来做标记。
对所有分块后的图像都进行这种操作。
算法(1.3).可逆水印算法的提取操作
提取算法如下:
1)先将8×8有水印的块转成DCT域,提取其高频DCT系数,得到大小为4×7的重排序矩阵H。
2)在矩阵H中,找到最大值a’和最小值b’。根据a’和b’计算K:
3)扫描H’(i,j)中的行和列
如果是最大值:
H(i,j)=H'(i,j)-K
如果是最小值:
H(i,j)=H'(i,j)+K
否则,当H'(i,j)≥a+△或者H’(i,j)≤b-△,并且像素位为‘1’时:
/>
△是一个很小的值,用来消除α引入的误差。
为了实现提取水印,需要满足应该让
因此:
所以设置:
当b<H'(i,j)<a,并且像素位为‘0’时:
H(i,j)=H'(i,j)
最终,通过对恢复后的DCT系数进行反变换,提取水印位元,对原始图像块进行无失真恢复。
算法(2).数据的分块编码及数据恢复方法
算法(2.1).初始化操作
2.1.1.信息分散算法(IDA):是一种用于重建分割数据块的算法。它随机选择一个n*m系数矩阵用于编码原始数据。任何m编码块都可以使用以下矩阵属性检索原始数据。
在矩阵乘法操作中,如果有一个方程A×B=C;其中A、B、C表示矩阵(矩阵A是可逆的),矩阵B可得:
在IDA中,A为系数矩阵,B为原始数据块矩阵,C为编码后的数据块矩阵。
2.1.2.系数矩阵的求解
用户选择n个系数向量ai=(ai1,ai2,...,aim)∈Z(1≤i≤n)然后把这些向量组合成系数矩阵M=[ai,j](1≤i≤n,1≤j≤m),
算法(2.2).对图像进行存储操作用户将文件F={b1,b2,…,bN}分为N/m个块,每个块中有m个扇区。然后划分文件F={(b1,…,bm),(bm+1,…,b2m)…(…,bN)},第k个块用Sk进行表示,表示成:Sk=(b(k-1)m+1,b(k-1)m+2,…,bkm)(1<=k<=N/m)。
在对文件进行分区之后,用户使用BlockGen算法来计算编码数据块,即对每一个块中的各个扇区进行编码数据的计算。然后用户通过Enc算法将系数向量加密为密文,之后将他们组合成标签。
到此,完成了分块编码,以及编码块的存储。
算法(2.3).当数据块丢失时,通过编码实现其恢复操作
当收到损坏警告时,用户要求TPAR在CSP上寻找m个运行良好的服务器进行检索。然后TPAR将m个健康服务器中存储的编码数据块和相应的系数向量返回给用户。用户使用Dec算法对系数向量进行解密,得到系数矩阵A,然后使用Inverse算法计算A的逆矩阵。之后使用Retrieval算法对原始数据块进行重建,自此完成了整个数据恢复。
BlockGen算法:让数据块和系数矩阵按如下方式进行矩阵乘法运算。
cik=ai *Sk=ai1 *b(k-1)m+1+…+aim*bkm
其中1≤i≤n,1≤k≤N/m,这样操作之后将获得文件Fi*={ci1,ci2,...,ciN/m},编码数据块矩阵中的第i行数据块将存储在第i个存储服务器中;
Enc算法:用户使用密钥对系数向量进行加密,加密方式如下:
其中1≤i≤n。
Dec算法:客户端从TPAR接收到系数矢量后,使用系统密钥Kenc对矢量解密如下:
其中1≤i≤m.随后将这些向量组成一个系数矩阵,这样一个m×m的矩阵A=(aij)1≤i,j≤m就得到了;
Inverse算法:客户端通过A计算A的可逆矩阵A-1=(aij)1≤i,j≤m,这里面A-1的第i行是(ai1,ai2,...,aim);
Retrieval算法:客户端将编码的数据块放入矩阵中,通过使用矩阵的属性,计算如下:
bj=αi1·c1k+…+αim·cmk
其中1≤j≤N,1≤k≤N/m,1≤i≤m。通过上述,可知i=(j mod m),/>
Claims (5)
1.基于工业云上图像数据的可恢复性方法,其特征在于:
步骤(1).建立一个系统模型,引入第三方仲裁机制;
系统模型,包含三个实体:客户端,云服务提供商(Cloud Service Provider,CSP)和TPAR,其中客户端是一个有大量图像可以外包的实体,CSP是管理多个云存储服务器的实体,可以为客户端提供大量的存储资源,客户端和CSP的数据都提供给外包进行加密,TPAR是客户端和CSP指定的争端仲裁专家;
客户端将待保存的图像数据上传给CSP,当CSP接收到图像数据之后,就将接收成功的结果反馈给客户端,客户端收到结果之后,删除本地文件;
当客户端从CSP上下载图像的时候,检验其图像数据的完整性,并且当客户端从CSP上下载的图像数据不完整的时候,由第三方再次检查CSP上的m个运行良好的服务器,并且将这些服务器返回给用户,用户通过这些健康的服务器来恢复被损坏的数据;
步骤(2)数据完整性和恢复性的初始化
G1,G2,GT是素数阶为p的乘法循环群,选取G1,G2来构成双线性映射e:G1×G2->GT,即G1×G2映射到GT,其中g是G2的生成元;
H(.)是一个安全的图映射到点的哈希函数:{0,1}*->G1,即{0,1}*映射到G1,这个哈希函数将图中的字符串映射到G1的每一个元素中;
H1:T->G和H2:Z->G是安全散列函数,分别表示为T映射到G,Z映射到G,其中T∈{(i,k)|1≤i≤n,1≤k≤N/m},Z代表一个整数集合;
密钥生成,用于验证完整性;
TPAR选择一个较大的素数p传给系统模型中的客户端和CSP,然后客户端将安全参数k作为输入,选择一个元素α属于ZP,一个随机数x属于ZP,并且计算v属于gx;该计算输出了一个私钥sk=x和一个公钥pk=(α,p,g,v),客户端再在本地存储sk,将pk发送到CSP和TPAR;
整体图像和分块图像的初始化
待上传图像为图像I,下述方法中将这副图像生成整体图像的水印,以及分块编码之后的水印,因此将整体水印定义为:
其中ID为用于区分图像I的唯一标识码,IR=I mod p,IQ=I/p,其中mod代表除余的符号;
图像I分块编码之后进行水印,将图像I划分成了大小相同且不重叠的块b1,b2,...,bn,其中bi属于Zp,对于每个块bi,i∈1,2,...,n,水印生成形式为:
Wi=H(ID,i,bi)x
其中ID是用于区分图像I的唯一标识码,i是每个块的索引,bi表示当前块;
步骤(3).审计证据的生成
步骤(3.1).生成整体图像的水印
根据算法(1)水印的初始化、嵌入和提取算法介绍,中的可逆水印算法,客户端将整体的图片I生成一个水印W’ID;
步骤(3.2).根据算法(2)数据的分块编码及数据恢复方法,中的算法,将图像I进行分块;
步骤(3.3).将分块的图像进行编码
根据算法(2)数据的分块编码及数据恢复方法,,将分块的各个图像进行编码bi,因此在上述步骤结束之后,将获得两种数据,一个是整体的水印图像W’ID,一个是对原始图像I分块编码后的分块图像编码;
步骤(3.4).将原始图像I进行分块后的分块编码图像进行水印
通过算法(1)水印的初始化、嵌入和提取算法介绍,中的可逆水印算法,将分块编码的图像编码块通过水印算法生成水印W’i,并且将整体的水印图像W’ID保存在第一个块中,最终水印图像的输出为I’;
步骤(3.5).将水印后的编码块上传到CSP
客户端将水印后的编码块上传到CSP,CSP成功接收到了客户端上传的数据,并且已经成功反馈给客户端,此时客户端已经删除本地数据,此时,得到最终的水印图像;
步骤(4).审计完整性验证
步骤(4.1).客户端从CSP下载数据
客户端从CSP上下载数据的时候,先下载所有水印的图像编码块,并且开始进行检查;
步骤(4.2).通过算法(2)数据的分块编码及数据恢复方法,中的水印提取算法,将所有水印的图像编码块提取水印
当客户端下载完所有的块,分别提取整体图像的水印W’ID和图像分块编码的水印W’i,这时得到两种数据,恢复后的图像I”和分块编码的编码块;
步骤(4.3).验证整体图像的完整性
当客户端从CSP上下载下来之后,通过提取水印,如果整体的图像I’与原始的图像I一致,那么说明从CSP上下载的图像是完整的,否则说明图像数据受到了损坏,这时需要进行数据恢复;
其中,验证是否完整的公式如下:
其中I’R=I’mod p,I’Q=I’/p,mod是代表除余的符号,e为前面初始化中的双线性映射;
当该等式成立的时候,说明图像是完整的,当该等式不成立的时候,说明图像数据被损坏,这时执行下面步骤对图像数据进行恢复;
步骤(5).数据恢复
当检验到整体图像不完整的时候,接下来需要检验哪些编码块的数据损坏,当检测到损坏的编码块的时候,使用算法(2)数据的分块编码及数据恢复方法,中的算法进行恢复;
其中,检验哪些编码块的数据损坏公式:
e(W'i,g)=e(H(ID,i,bi),v)
如果相等,说明该编码块的数据没有损坏,否则,该编码块的数据损坏;
通过上述步骤,实现了数据的恢复操作。
2.根据权利要求1所述的基于工业云上图像数据的可恢复性方法,其特征于:
算法(1).水印的初始化,嵌入和提取算法介绍
算法(1.1).可逆水印算法的初始化,包括初始化DCT系数以及重排序矩阵H,DCT系数用于图像压缩;
进一步的,DCT系数变换采用8*8分块,将灰度图像转换为DCT系数矩阵之后,该矩阵的左上角代表的低频分量,右下角代表的是高频分量,下述算法中的高频DCT系数是人为选择的;
具体选择过程为:
将图像I分成大小为8×8的块,并将每个块转换为DCT系数,其中,一个随机选择的8×8的块,对其按照Z字形状进行标号,最终所选择的高频DCT系数从第36位到第63位,其总数为28;然后重新排序成4×7块,该矩阵不需要Z字形,从左到右,从上到下,由小到大依次排列即可;
设H为大小为上述生成的4×7的矩阵,H中的每个元素记为H(i,j),i∈{1,2,3,4},j∈{1,2,…7},首先,分别求出最大值和最小值a和b:a=max{H(i,j)}i∈{1,2,3,4},j∈{1,2,…,7},b=min{H(i,j)}i∈{1,2,3,4},j∈{1,2,…},并分别记录各自的位置;
将最大值和最小值之间的差K定义为:
K=a-b
中位数mp为:
在水印嵌入之前,通过K来扩充最大值和最小值,生成a'和b':
a'=a+K
b'=b-K
如果矩阵H中存在不止一个极大值或极小值,按照从左到右、从上到下的顺序选择遇到的第一个最大值或最小值,其他的不变;
算法(1.2).可逆水印算法的嵌入操作
虽然在设置过程中,最大值和最小值都被扩展了,但它们的位置仍然保持不变,具体的,对于一个8×8的块,首先将其转换成DCT域,然后将其嵌入过程如下:
1)提取其高频DCT系数,得到大小为4×7的重排序矩阵H;
2)在矩阵H中,求出最大值a’和最小值b’,因为他们是用来表示K的,因此不嵌入水印;
3)扫描矩阵H的行和列,对于每一个既不是最大值也不是最小值的元素H(i,j),检查将要嵌入的像素位,像素位只能是0或者1;
如果像素位为‘1’且H(i,j)>=mp,则更新值的方式为:
如果位是‘1’且H(i,j)<mp,则更新值的方式为:
α介于1~2之间,用来确保a<H‘(i,j)<a',或者b'<H‘(i,j)<b,这取决于H(i,j)与mp的关系;
如果被嵌入的位为‘0’,则:
H'(i,j)=H(i,j)
上述做法,块的嵌入总容量为高频DCT系数-2,其中-2是因为最大值和最小值用来做标记;
对所有分块后的图像都进行这种操作;
算法(1.3).可逆水印算法的提取操作
提取算法如下:
1)先将8×8有水印的块转成DCT域,提取其高频DCT系数,得到大小为4×7的重排序矩阵H;
2)在矩阵H中,找到最大值a’和最小值b’,根据a’和b’计算K:
3)扫描H’(i,j)中的行和列
如果是最大值:
H(i,j)=H'(i,j)-K
如果是最小值:
H(i,j)=H'(i,j)+K
否则,当H'(i,j)≥a+△或者H’(i,j)≤b-△,并且像素位为‘1’时:
△是一个很小的值,用来消除α引入的误差;
为了实现提取水印,需要满足:
因此:
所以设置:
当b<H'(i,j)<a,并且像素位为‘0’时:
H(i,j)=H'(i,j)
最终,通过对恢复后的DCT系数进行反变换,提取水印位元,对原始图像块进行无失真恢复。
3.根据权利要求1所述的基于工业云上图像数据的可恢复性方法,其特征在于:算法(2).数据的分块编码及数据恢复方法
算法(2.1).初始化操作
2.1.1.信息分散算法(IDA):是一种用于重建分割数据块的算法,它随机选择一个n*m系数矩阵用于编码原始数据,任何m编码块都使用以下矩阵属性检索原始数据;
在矩阵乘法操作中,如果有一个方程A×B=C;其中A、B、C表示矩阵,矩阵A是可逆的,矩阵B可得:
在IDA中,A为系数矩阵,B为原始数据块矩阵,C为编码后的数据块矩阵;
2.1.2.系数矩阵的求解
用户选择n个系数向量ai=(ai1,ai2,...,aim)∈Z,1≤i≤n,然后把这些向量组合成系数矩阵M=[ai,j],1≤i≤n,1≤j≤m,
算法(2.2).对图像进行存储操作用户将文件F={b1,b2,…,bN}分为N/m个块,每个块中有m个扇区,然后划分文件F={(b1,…,bm),(bm+1,…,b2m)…(…,bN)},第k个块用Sk进行表示,表示成:Sk=(b(k-1)m+1,b(k-1)m+2,…,bkm),1<=k<=N/m;
在对文件进行分区之后,用户使用BlockGen算法来计算编码数据块,即对每一个块中的各个扇区进行编码数据的计算,然后用户通过Enc算法将系数向量加密为密文,之后将他们组合成标签;
到此,完成了分块编码,以及编码块的存储;
算法(2.3).当数据块丢失时,通过编码实现其恢复操作
当收到损坏警告时,用户要求TPAR在CSP上寻找m个运行良好的服务器进行检索;然后TPAR将m个健康服务器中存储的编码数据块和相应的系数向量返回给用户;用户使用Dec算法对系数向量进行解密,得到系数矩阵A,然后使用Inverse算法计算A的逆矩阵;之后使用Retrieval算法对原始数据块进行重建,自此完成了整个数据恢复。
4.根据权利要求3所述的基于工业云上图像数据的可恢复性方法,其特征在于:
BlockGen算法:让数据块和系数矩阵按如下方式进行矩阵乘法运算;
其中1≤i≤n,1≤k≤N/m,这样操作之后将获得文件Fi*={ci1,ci2,...,ciN/m},编码数据块矩阵中的第i行数据块将存储在第i个存储服务器中;
Enc算法:用户使用密钥对系数向量进行加密,加密方式如下:
其中1≤i≤n。
5.根据权利要求3所述的基于工业云上图像数据的可恢复性方法,其特征在于:
Dec算法:客户端从TPAR接收到系数矢量后,使用系统密钥Kenc对矢量解密如下:
其中1≤i≤m.随后将这些向量组成一个系数矩阵,这样一个m×m的矩阵A=(aij)1≤i,j≤m就得到了;
Inverse算法:客户端通过A计算A的可逆矩阵A-1=(aij)1≤i,j≤m,这里面A-1的第i行是(ai1,ai2,...,aim);
Retrieval算法:客户端将编码的数据块放入矩阵中,通过使用矩阵的属性,计算如下:
其中1≤j≤N,1≤k≤N/m,1≤i≤m,通过上述,可知i=(j mod m),
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911400989.4A CN111210378B (zh) | 2019-12-30 | 2019-12-30 | 基于工业云上图像数据的可恢复性方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911400989.4A CN111210378B (zh) | 2019-12-30 | 2019-12-30 | 基于工业云上图像数据的可恢复性方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111210378A CN111210378A (zh) | 2020-05-29 |
CN111210378B true CN111210378B (zh) | 2023-09-19 |
Family
ID=70786479
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911400989.4A Active CN111210378B (zh) | 2019-12-30 | 2019-12-30 | 基于工业云上图像数据的可恢复性方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111210378B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111966638B (zh) * | 2020-08-26 | 2022-06-07 | 北京工业大学 | 一种适用于工业云上的ida数据恢复的动态更新方法 |
CN117113424B (zh) * | 2023-10-25 | 2023-12-26 | 蓝色火焰科技成都有限公司 | 汽车保险信息处理方法、装置、服务器及可读存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101449278A (zh) * | 2003-12-05 | 2009-06-03 | 新泽西理工学院 | 在空间域中的健壮可逆数据隐藏和数据恢复的系统和方法 |
CN104243169A (zh) * | 2014-10-09 | 2014-12-24 | 青岛大学 | 可跟踪身份的共享数据云审计方法 |
CN106612172A (zh) * | 2016-07-15 | 2017-05-03 | 四川用联信息技术有限公司 | 云存储中一种可验证还原数据真实性的数据篡改恢复算法 |
CN106650503A (zh) * | 2016-12-09 | 2017-05-10 | 南京理工大学 | 基于ida的云端数据完整性验证及恢复方法 |
CN108256048A (zh) * | 2018-01-12 | 2018-07-06 | 哈尔滨工业大学深圳研究生院 | 支持用户文件数据恢复的第三方审计方法 |
CN110008755A (zh) * | 2019-03-21 | 2019-07-12 | 广东优世联合控股集团股份有限公司 | 一种云存储可撤销动态数据完整性验证系统及方法 |
-
2019
- 2019-12-30 CN CN201911400989.4A patent/CN111210378B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101449278A (zh) * | 2003-12-05 | 2009-06-03 | 新泽西理工学院 | 在空间域中的健壮可逆数据隐藏和数据恢复的系统和方法 |
CN104243169A (zh) * | 2014-10-09 | 2014-12-24 | 青岛大学 | 可跟踪身份的共享数据云审计方法 |
CN106612172A (zh) * | 2016-07-15 | 2017-05-03 | 四川用联信息技术有限公司 | 云存储中一种可验证还原数据真实性的数据篡改恢复算法 |
CN106650503A (zh) * | 2016-12-09 | 2017-05-10 | 南京理工大学 | 基于ida的云端数据完整性验证及恢复方法 |
CN108256048A (zh) * | 2018-01-12 | 2018-07-06 | 哈尔滨工业大学深圳研究生院 | 支持用户文件数据恢复的第三方审计方法 |
CN110008755A (zh) * | 2019-03-21 | 2019-07-12 | 广东优世联合控股集团股份有限公司 | 一种云存储可撤销动态数据完整性验证系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111210378A (zh) | 2020-05-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Xiao et al. | Separable reversible data hiding in encrypted image based on pixel value ordering and additive homomorphism | |
Lin et al. | Invertible secret image sharing with steganography | |
JP4669187B2 (ja) | 圧縮イメージ内に透かしを組み込む方法、圧縮されたイメージからすかしを回復する方法、ならびに記録媒体 | |
Zheng et al. | Lossless data hiding algorithm for encrypted images with high capacity | |
CN109981921B (zh) | 一种混合混沌虚拟光学图像加密方法 | |
CN111210378B (zh) | 基于工业云上图像数据的可恢复性方法 | |
Rashid et al. | Secure image deduplication through image compression | |
Shiu et al. | An interpolative AMBTC-based high-payload RDH scheme for encrypted images | |
Chanu et al. | A survey paper on secret image sharing schemes | |
CN112116672B (zh) | 基于遗传算法的彩色图像保存缩略图加密算法 | |
Pal et al. | A secure reversible color image watermarking scheme based on LBP, lagrange interpolation polynomial and weighted matrix | |
CN104915609B (zh) | 一种基于Lagrange插值法和多云的数据隐藏方法 | |
Li et al. | Medical images lossless recovery based on POB number system and image compression | |
Kieu et al. | A reversible steganographic scheme for VQ indices based on joint neighboring coding | |
Vinoth Kumar et al. | Encrypted separable reversible watermarking with authentication and error correction | |
Bhardwaj et al. | An enhanced reversible data hiding algorithm using deep neural network for e-healthcare | |
CN104660704B (zh) | 一种网站用户数据处理方法 | |
CN113378186B (zh) | 一种基于编码的图像加密隐藏信息的方法及装置 | |
CN111598766A (zh) | 基于预测误差扩展的加密域三维模型可逆信息隐藏方法 | |
CN112019699A (zh) | 一种基于无损压缩的加密图像可逆信息隐藏方法 | |
Kabir et al. | Watermarking with fast and highly secured encryption for real-time speech signals | |
Mittal et al. | Interpolative AMBTC based reversible data hiding in encrypted images using rhombus mean | |
CN115170377A (zh) | 基于超分辨率和加密域信息隐藏的渐进式图像分享方法 | |
Bhardwaj et al. | An efficient reversible and secure patient data hiding algorithm for E-healthcare | |
Deshmukh et al. | High capacity reversible data hiding in encrypted images using multi-MSB data hiding mechanism with elliptic curve cryptography |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |