一种基于三像素点加密以平衡图像隐私性和可用性的方法与流程

专利2022-05-09  115


本发明属于隐私保护和图像加密领域,具体涉及一种基于三像素点加密的平衡图像隐私性和可用性的方法。



背景技术:

随着数字成像技术的不断成熟,人们已经习惯于使用电子设备,而不是传统的胶片相机去拍摄图像。这带了诸多的好处,例如拍摄图像的低廉成本以及所见即所得,使得普通人能够比以往任何时间都容易地随手拍摄图像。这些图像记录了我们的日常生活,虽然使得我们能够随时回味那些已经发生的时刻,但是它们毫无疑问地记录了人们的隐私,例如位置、宗教信仰、人际关系。非法第三方可能进一步利用这些隐私信息对图像的拥有者进行隐私推理,或者直接利用这些图像进行ai模型训练、制作恶意图像等。

同时,网络基础设施的成熟极大的促进了云服务的发展。人们日益偏向于将本地设备的图片上传到云中,由于云服务的低成本、弹性可扩展、以及高可用性。这种趋势为云用户带来了诸多好处,然而,一旦图像上传到云中,图像的隐私安全只能依靠云服务提供商的可靠性,这无疑极大的加剧了隐私问题的担忧。

一般来说,为了解决图像隐私问题的担忧,人们往往采用传统图像加密算法对图像进行加密。这些加密算法将图像加密成不会暴露视觉信息的雪花状密文图像,因而保护了图像中的隐私。然而,这对用户来说是极度不友好的。用户选择云服务不仅是因为它缓解了本地设备存储不足的压力,更重要的是因为它方便使用的特性。这些技术产生的密文图像不会暴露任何有用的视觉信息,使得用户必须不断地下载、解密图像直至找到所需的,这极大的消耗了用户的时间、精力并且具有非常高的时间代价。换句话说,这些技术迫使用户在可用性以及隐私安全上做出选择。而对普通用户来说,虽然他们知道图像中存在着大量的隐私,但是他们仍然会选择云端的可用性。这也是为什么已经有大量在理论上已经被证明是安全的传统图像加密算法,但是迄今为止仍然没有被普通用户大规模的应用在云存储上去保护图像隐私。因此,保护图像隐私的方法不能以图像的可用性为代价。

一些平衡图像隐私性和可用性的方法被大量提出。这些方法大致可以被分为三类:图像编辑和图像加密。图像编辑是最常用的一种平衡隐私和可用性的方法之一。它们通过修改图像中的隐私敏感区域以隐藏或者消除可能的隐私信息,但是保留了图像中的绝大部分视觉信息。这些方法主要分为图像滤镜、人脸去身份识别、物体移除、对象替换。这类方法已经广泛应用于社交网络上,并取得了令人满意的效果。然而,它们并不适合运用于以保存图像为主要目的的云存储上,因为绝大部分这种方法是对图像造成了不可逆的伤害。虽然可以通过仅剪辑图像中的一小部分区域来缓和这种伤害,但是未处理的背景会暴露过多完整的语义信息。图像加密是指基于密钥对图像数据以某种方式进行编码,目的是使得图像变得不可理解,这是目前保证存储和传输过程中图像隐私的最常用手段之一。这种方法的安全性取决于所用的密钥,具体来说,没有密钥的第三方只能看到编码后的图像,只有拥有正确密钥的合法用户才能够看到原始图像。虽然通常来说传统的图像加密方法只考虑了图像的隐私安全,并没有考虑图像可理解性带来的可用性,但是也有一些较为新奇的研究工作考虑了图像加密后的可用性,例如密文图像检索和感兴趣区域加密。然而它们存在着一些共性的问题。如果仅仅只加密图像的一部分区域,那么如何区分应该加密的区域,即使这个问题假设得到解决,但是未加密的区域也带有大量的语义信息。对整个图像进行加密然后通过特征或者标注来获得图像的信息,这种方法虽然看似是可行的,但是浏览文字性的信息来区分图像是很困难的。可见,现有的在云端平衡图像隐私性与可用性的方法都存在一些问题。



技术实现要素:

发明目的:针对现有技术存在的问题,本发明提供一种基于三像素加密的平衡图像隐私性和可用性的方法,能够保证图像隐私性,使得图像拥有者能够通过图像本身的视觉内容获得可用性,同时兼容现有的云服务。

技术方案:本发明所述的一种基于三像素加密的平衡图像隐私性和可用性的方法,包括以下步骤:

(1)原始块分割:将预先获取的图像划分为r、g、b三个通道,每个通道根据预先设定的块维度b被划分为多个b*b大小的像素块;

(2)基于块的加密:将每个块中的像素按照预先设定的规则划成一个像素组,求出像素组中像素值之和s,并对像素组进行替换加密,对所有像素进行置乱加密;

(3)密文块集成:在对像素块完成加密后,根据块分割的顺序,将相应的加密后的像素块组装为密文通道,然后再将密文通道集成到一起成为密文图像;

(4)密文块分割:获取密文图像的参数,将密文图像划分为r、g、b三个通道,每个通道根据预先设定的块维度b被划分为多个b*b大小的密文像素块;

(5)基于块的解密:对所有像素进行置乱解密及对像素组进行替换解密;

(6)原始块集成:对像素块中所有像素组解密完成后,即恢复了原始的块;将这些原始块根据块的分割顺序,将相应的解密后的像素块组装成原始通道,再将原始通道集成到一起成为原始图像。

进一步地,所述步骤(2)包括以下步骤:

(21)将每个块中的像素按照预先设定的规则每三个划成一个像素组,然后求出像素组中像素值之和s,基于s生成与此对应的域,同时计算出对应的域中的像素组数量并进行编号;

(22)利用ranks函数确定原始像素组的编号sn,利用密钥key1生成一个秘密的随机数,与sn相加;同时求出域中像素组的个数,对两者相加之和进行求余,即为加密后的sn也就是snen;利用函数求出snen在域中所对应的像素组,即为密文像素组,这一步是对像素组的替换加密;

(23)对像素块中所有像素组进行替换加密操作之后,利用密钥key2对像素块中所有像素进行置乱加密。

进一步地,所述步骤(5)包括以下步骤:

(51)利用密钥key2对像素块中所有像素进行置乱解密;然后根据预先设定的规则每三个像素点划分成一个像素组,然后求出像素组中像素值之和s,基于s生成与此对应的域,同时对域中的像素组进行编号;

(52)利用ranks函数确定密文像素组的编号snen,利用密钥key1生成一个秘密的随机数,与snen相减;同时求出域中像素组的个数,对两者相加之和进行求余,即为原始的像素组编号也就是sn;利用函数求出sn在域中所对应的像素组,即为原始像素组,这一步是对像素组的替换解密。

进一步地,步骤(21)所述的对应的域中像素组数量:

其中,d代表像素值的取值范围,s是三像素组中像素值之和,sum(x,y,z)如下所示:

其中,(x,y,z)分别表示像素组的第一个、第二个、第三个像素的值。

进一步地,步骤(21)所述的像素组之和s所对应的域为:

其中,每一个表示一个具有相同像素和s的像素组。

进一步地,步骤(21)所述的计算出对应的域中的像素组数量并进行编号的步骤如下:

1)计算出像素组(i,j,c)中像素值之和s,对域中的每一个像素组(i,j,c)赋予sn并设定sn的初始值x=0;

2)计算出像素组中第一个像素i的开始值abegin=begin(s,3),其中,begin(s,n)的定义如下:

其中,n是像素组中像素点的个数,d代表像素值的取值范围;

3)计算出像素组中第一个像素的结束值aend=end(s),其中,end(s)的定义如下:

其中,d为像素值的取值范围;

4)第二个以及第三个像素可以构成一个二像素的像素组(j,c),二像素像素组的像素和为s2=s-i,j的开始值bbegin=begin(s2,2),结束值为nend=end(s2);

5)第三个像素的值c=s2-j;

6)域中的三像素像素组(i,j,c)的sn即为x,同时x增加1,即x=x 1;

7)j增加1,如果j不大于bend,则跳到步骤5);

8)i增加1,如果i不大于aend,则跳到步骤4);

9)对域中的所有像素组完成sn赋值及编号。

进一步地,步骤(22)所述的利用ranks函数确定原始像素组的编号sn的步骤如下:

s1)采用ranks函数计算值为a,b,z的三像素像素组(i,j,c)的像素之和s,当前a的值所对应的三像素的域中像素组个数的值设定为r,r的初始值为0;

s2)计算二像素像素组(b,z)在二像素的域中序号为r2=rank2s(b,z),其中,rank2s(b,z)的定义如下:

其中,d为像素值的取值范围;

s3)计算出像素组中第一个像素i的开始值abegin=begin(s,3);

s4)二像素像素组(b,z)的和为s2=s-i;

s5)r=r domain2(s2),其中domain2(s2)的定义如下:

s6)i=i 1,如果i不大于a-1,则跳到步骤s4);

s7)值为a,b,z的三像素像素组(i,j,c)的sn等于r r2。

进一步地,步骤(52)所述的利用函数求出sn在域中所对应的像素组实现过程如下:

计算像素组的第一个像素的像素值:设定r=0,第一个像素的开始值为abegin=begin(s,3),其中,s是像素组中像素值之和;当前abegin所对应的域中像素组个数的值设定ren,其中ren的初始值为0;如果sn大于ren domain2(s-abegin),则ren=ren domain2(s-abegin),同时abegin=abegin 1;否则,第一个像素的像素值asn=abegin;

第二个和第三个像素的像素值之和为s2=s-asn;求第二个像素的像素值bsn的公式如下所示:

其中,d代表像素值的取值范围;第三个像素的像素值csn=s2-bsn;即sn对应的像素组为(asn,bsn,csn)。

进一步地,步骤(2)所述的对像素组进行替换加密通过以下公式实现:

其中,snen是加密后的sn,m是由密钥key1控制生成的随机数,mod是求余符号。

进一步地,步骤(5)所述的对像素组进行替换解密通过以下公式实现:

其中,sn是解密后的编号,m是由密钥key1控制生成的随机数,mod是求余符号。

有益效果:与现有技术相比,本发明的有益效果:本发明实现了三像素组的替换加密,增强了由加密方案建模的马尔可夫链系统的连通性,保持了原始图像的精确缩略图同时能够完美的恢复原始图像,在现有的云服务上解决了密文图像隐私性和可用性不兼容的问题。

附图说明

图1为本发明的图像加密过程的流程图;

图2为本发明的基于像素块加密的流程图。

具体实施方式

下面结合附图对本发明做进一步说明。

本发明提供一种基于三像素加密的平衡图像隐私性和可用性的方法,包括加密步骤和解密步骤,具体包括以下步骤:

步骤1:如图1所示,加密过程如下:

(1.1)原始块分割:

获取输入图像的参数,将图像划分为r、g、b三个通道,每个通道根据预先设定的块维度b被划分为多个b*b大小的像素块。

(1.2)基于像素块的加密,具体如图2所示:

将每个块中的像素按照预先设定的规则每三个划成一个像素组,然后求出像素组中像素值之和s,基于s生成与此对应的域,同时计算出对应的域中的像素组数量并进行编号。

求出在s条件下,生成域中像素组的数量,计算公式如下:

其中,d为像素值的取值范围,通常d=255,s是三像素组中像素值之和,sum(x,y,z)如下所示:

其中,(x,y,z)分别表示像素组的第一个、第二个、第三个像素的值。

生成s所对应的域,公式如下:

其中,每一个表示一个具有相同像素和s的像素组。

计算出对应的域中的像素组数量并进行编号即对域中的每一个像素组(i,j,c)赋予sn,步骤如下:

1)计算出像素组(i,j,c)中像素值之和s,对域中的每一个像素组(i,j,c)赋予sn并设定sn的初始值x=0。

2)计算出像素组中第一个像素i的开始值abegin=begin(s,3),其中,begin(s,n)的定义如下:

其中,n是像素组中像素点的个数,d代表像素值的取值范围。

3)计算出像素组中第一个像素的结束值aend=end(s),其中,end(s)的定义如下:

4)第二个以及第三个像素可以构成一个二像素的像素组(j,c),二像素像素组的像素和为s2=s-i,j的开始值bbegin=begin(s2,2),结束值为bend=end(s2)。

5)第三个像素的值c=s2-j。

6)域中的三像素像素组(i,j,c)的sn即为x,同时x增加1,即x=x 1。

7)j增加1,如果j不大于bend,则跳到步骤5)。

8)i增加1,如果i不大于aend,则跳到步骤4)。

9)对域中的所有像素组完成sn赋值及编号。

利用ranks函数确定原始像素组的编号sn,利用密钥key1生成一个秘密的随机数,与sn相加;同时求出域中像素组的个数,对两者相加之和进行求余,即为加密后的sn也就是snen;利用函数求出snen在域中所对应的像素组,即为密文像素组,这一步是对像素组的替换加密。

对像素组进行替换加密通过以下公式实现:

其中,snen是加密后的sn,m是由密钥key1控制生成的随机数,mod是求余符号。

ranks函数的计算值为a,b,z的三像素像素组(i,j,c)的sn的步骤如下所示:

1)首先计算像素组的像素之和s,记录当前a的值所对应的三像素的域中像素组个数的值设定r,其中r的初始值为0。

2)计算二像素像素组(b,z)在二像素的域中序号为r2=rank2s(b,z),其中,rank2s(b,z)的定义如下:

3)计算出像素组中第一个像素i的开始值abegin=begin(s,3)。

4)二像素像素组(b,z)的和为s2=s-i。

5)r=r domain2(s2),其中domain2(s2)的定义如下:

6)i=i 1,如果i不大于a-1,则跳到步骤4)。

7)值为a,b,z的三像素像素组(i,j,c)的sn等于r r2

对像素块中所有像素组进行替换加密操作之后,利用密钥key2对像素块中所有像素进行置乱加密。

(1.3)密文块集成:

在对像素块完成加密后,根据块分割的顺序,将相应的加密后的像素块组装为密文通道,然后再将密文通道集成到一起成为密文图像。

步骤2:解密过程包括以下内容:

(2.1)密文块分割:

获取密文图像的参数,将密文图像划分为r、g、b三个通道,每个通道根据预先设定的块维度b被划分为多个b*b大小的密文像素块;

(2.2)基于像素块的解密:

利用密钥key2对像素块中所有像素进行置乱解密;然后根据预先设定的规则每三个像素点划分成一个像素组,然后求出像素组中像素值之和s,基于s生成与此对应的域,同时对域中的像素组进行编号;

利用ranks函数确定密文像素组的编号snen,利用密钥key1生成一个秘密的随机数,与snen相减;同时求出域中像素组的个数,对两者相加之和进行求余,即为原始的像素组编号也就是sn;利用函数求出sn在域中所对应的像素组,即为原始像素组,这一步是对像素组的替换解密。

计算像素组的第一个像素的像素值第一个像素的开始值为abegin=begin(s,3),其中,s是像素组中像素值之和;记录当前abegin所对应的域中像素组个数的值设定ren,其中ren的初始值为0;如果sn大于ren domain2(s-abegin),则ren=ren domain2(s-abegin),同时abegin=abegin 1;否则,第一个像素的像素值asn=anegin;

第二个和第三个像素的像素值之和为s2=s-asn;求第二个像素的像素值bsn的公式如下所示:

其中,d代表像素值的取值范围;第三个像素的像素值csn=s2-bsn;即sn对应的像素组为(asn,bsn,csn)。

对像素组进行替换解密通过以下公式实现:

其中,sn是解密后的编号,m是由密钥key1控制生成的随机数,mod是求余符号。

(2.3)原始块集成

对像素块中所有像素组解密完成后,即恢复了原始的块;将这些原始块根据块的分割顺序,将相应的解密后的像素块组装成原始通道,再将原始通道集成到一起成为原始图像。

对于上述操作进行循环,直至像素块中的所有像素组都完成上述操作后,利用密钥key2对像素块中像素进行置乱加密,即完成了基于像素块的加密。

对图像中的每个像素块进行上述操作后,即得到了保持图像缩略图,也就是能够平衡图像隐私性和可用性的密文图像。整个加密过程中不会改变像素块中的像素之和,因此改方案能够生成精确的缩略图。本方案的解密过程是加密过程的逆过程。


技术特征:

1.一种基于三像素点加密以平衡图像隐私性和可用性的方法,其特征在于,包括以下步骤;

(1)原始块分割:将预先获取的图像划分为r、g、b三个通道,每个通道根据预先设定的块维度b被划分为多个b*b大小的像素块;

(2)基于块的加密:将每个块中的像素按照预先设定的规则划成一个像素组,求出像素组中像素值之和s,并对像素组进行替换加密,对所有像素进行置乱加密;

(3)密文块集成:在对像素块完成加密后,根据块分割的顺序,将相应的加密后的像素块组装为密文通道,然后再将密文通道集成到一起成为密文图像;

(4)密文块分割:获取密文图像的参数,将密文图像划分为r、g、b三个通道,每个通道根据预先设定的块维度b被划分为多个b*b大小的密文像素块;

(5)基于块的解密:对所有像素进行置乱解密及对像素组进行替换解密;

(6)原始块集成:对像素块中所有像素组解密完成后,即恢复了原始的块;将这些原始块根据块的分割顺序,将相应的解密后的像素块组装成原始通道,再将原始通道集成到一起成为原始图像。

2.根据权利要求1所述的基于三像素点加密以平衡图像隐私性和可用性的方法,其特征在于,所述步骤(2)包括以下步骤:

(21)将每个块中的像素按照预先设定的规则每三个划成一个像素组,然后求出像素组中像素值之和s,基于s生成与此对应的域,同时计算出对应的域中的像素组数量并进行编号;

(22)利用ranks函数确定原始像素组的编号sn,利用密钥key1生成一个秘密的随机数,与sn相加;同时求出域中像素组的个数,对两者相加之和进行求余,即为加密后的sn也就是snen;利用函数求出snen在域中所对应的像素组,即为密文像素组,这一步是对像素组的替换加密;

(23)对像素块中所有像素组进行替换加密操作之后,利用密钥key2对像素块中所有像素进行置乱加密。

3.根据权利要求1所述的基于三像素点加密以平衡图像隐私性和可用性的方法,其特征在于,所述步骤(5)包括以下步骤:

(51)利用密钥key2对像素块中所有像素进行置乱解密;然后根据预先设定的规则每三个像素点划分成一个像素组,然后求出像素组中像素值之和s,基于s生成与此对应的域,同时对域中的像素组进行编号;

(52)利用ranks函数确定密文像素组的编号snen,利用密钥key1生成一个秘密的随机数,与snen相减;同时求出域中像素组的个数,对两者相加之和进行求余,即为原始的像素组编号也就是sn;利用函数求出sn在域中所对应的像素组,即为原始像素组,这一步是对像素组的替换解密。

4.根据权利要求2所述的基于三像素点加密以平衡图像隐私性和可用性的方法,其特征在于,步骤(21)所述的对应的域中像素组数量:

其中,d代表像素值的取值范围,s是三像素组中像素值之和,sum(x,y,z)如下所示:

其中,(x,y,z)分别表示像素组的第一个、第二个、第三个像素的值。

5.根据权利要求2所述的基于三像素点加密以平衡图像隐私性和可用性的方法,其特征在于,步骤(21)所述的像素组之和s所对应的域为:

其中,每一个表示一个具有相同像素和s的像素组。

6.根据权利要求2所述的基于三像素点加密以平衡图像隐私性和可用性的方法,其特征在于,步骤(21)所述的计算出对应的域中的像素组数量并进行编号的步骤如下:

1)计算出像素组(i,j,c)中像素值之和s,对域中的每一个像素组(i,j,c)赋予sn并设定sn的初始值x=0;

2)计算出像素组中第一个像素i的开始值abegin=begin(s,3),其中,begin(s,n)的定义如下:

其中,n是像素组中像素点的个数,d代表像素值的取值范围;

3)计算出像素组中第一个像素的结束值aend=end(s),其中,end(s)的定义如下:

其中,d为像素值的取值范围;

4)第二个以及第三个像素可以构成一个二像素的像素组(j,c),二像素像素组的像素和为s2=s-i,j的开始值bbegin=begin(s2,2),结束值为bend=end(s2);

5)第三个像素的值c=s2-j;

6)域中的三像素像素组(i,j,c)的sn即为x,同时x增加1,即x=x 1;

7)j增加1,如果j不大于bend,则跳到步骤5);

8)i增加1,如果i不大于aend,则跳到步骤4);

9)对域中的所有像素组完成sn赋值及编号。

7.根据权利要求2所述的基于三像素点加密以平衡图像隐私性和可用性的方法,其特征在于,步骤(22)所述的利用ranks函数确定原始像素组的编号sn的步骤如下:

s1)采用ranks函数计算值为a,b,z的三像素像素组(i,j,c)的像素之和s,当前a的值所对应的三像素的域中像素组个数的值设定为r,r的初始值为0;

s2)计算二像素像素组(b,z)在二像素的域中序号为r2=rank2s(b,z),其中,rank2s(b,z)的定义如下:

其中,d为像素值的取值范围;

s3)计算出像素组中第一个像素i的开始值abegin=begin(s,3);

s4)二像素像素组(b,z)的和为s2=s-i;

s5)r=r domain2(s2),其中domain2(s2)的定义如下:

s6)i=i 1,如果i不大于a-1,则跳到步骤s4);

s7)值为a,b,z的三像素像素组(i,j,c)的sn等于r r2。

8.根据权利要求3所述的基于三像素点加密以平衡图像隐私性和可用性的方法,其特征在于,步骤(52)所述的利用函数求出sn在域中所对应的像素组实现过程如下:

计算像素组的第一个像素的像素值:设定r=0,第一个像素的开始值为abegin=begin(s,3),其中,s是像素组中像素值之和;当前abegin所对应的域中像素组个数的值设定ren,其中ren的初始值为0;如果sn大于ren domain2(s-abegin),则ren=ren domain2(s-abegin),同时abegin=abegin 1;否则,第一个像素的像素值asn=abegin;

第二个和第三个像素的像素值之和为s2=s-asn;求第二个像素的像素值bsn的公式如下所示:

其中,d代表像素值的取值范围;第三个像素的像素值csn=s2-bsn;即sn对应的像素组为(asn,bsn,csn)。

9.根据权利要求1所述的基于三像素点加密以平衡图像隐私性和可用性的方法,其特征在于,步骤(2)所述的对像素组进行替换加密通过以下公式实现:

其中,snen是加密后的sn,m是由密钥key1控制生成的随机数,mod是求余符号。

10.根据权利要求1所述的基于三像素点加密以平衡图像隐私性和可用性的方法,其特征在于,步骤(5)所述的对像素组进行替换解密通过以下公式实现:

其中,sn是解密后的编号,m是由密钥key1控制生成的随机数,mod是求余符号。

技术总结
本发明公开了一种基于三像素点加密以平衡图像隐私性和可用性的方法,将图像分割成多个像素块,每个像素块中的像素进行分组,每三个像素为一组;求出像素组中像素值之和s后,利用s生成域,对域中所有的像素组进行编号,然后利用ranks函数求出原始像素组的编号SN;利用密钥生成一个随机数,随机数与SN相加后求余,即生成了加密后的SN也就是SNen;利用函数求出SNen在域中所对应的像素组;对像素块中的所有像素进行置乱加密。本发明能够在密文图像中保持原始图像精确的缩略图,使得图像拥有者能够利用密文图像本身的视觉信息来获得可用性。

技术研发人员:赵若宇;张玉书
受保护的技术使用者:南京航空航天大学
技术研发日:2021.04.29
技术公布日:2021.08.03

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

最新回复(0)