一种同态密文域可逆隐藏方法与流程

文档序号:12821840阅读:175来源:国知局
一种同态密文域可逆隐藏方法与流程

本发明属于信息隐藏、同态加密与密文域数据处理技术领域,具体涉及一种同态密文域可逆隐藏方法。



背景技术:

云计算是当前信息技术领域的研究热点之一,但数据安全性和隐私性制约着云计算发展。例如数据拥有者需要传输数据到服务器进行处理,但数据拥有者不信任服务提供者,所以需要在上传之前对数据进行加密,但是数据一旦经过加密,便失去了原有的特性,导致大部分数据处理方法失效。同态加密可以直接对密文进行运算,运算的结果解密后是对明文做同样运算的结果。1978年,rivest等人基于大整数分解难题构造了rsa加密方案,人们发现rsa加密方案具有乘法同态性质,之后多种同态方案被提出,例如paillier加密方案,bgn加密方案等。

可逆隐写根据载体是否加密分为密文域的可逆隐写和非密文域的可逆隐写。目前具有代表性的非密文域可逆隐写方法包括利用差值扩展嵌入,直方图平移技术嵌入以及利用图像无损压缩技术嵌入等。密文域的可逆隐写算法可以被分为两类:在加密前留出空间和在加密后留出空间。

在医学领域,病人不想让其他无关人员看到其医学图像,但图像需要被上传到服务器上,数据库管理员需要在加密的图像中嵌入病人的记录或其他信息,医生诊断时需要原始图像或者对比度增强后的图像,同时得到病人的相关记录,所以在密文域进行数据嵌入并可以恢复得到原始图像和对比度增强后的图像很有现实意义。



技术实现要素:

为了解决现有技术中存在的图像信息上传后会容易无关人员看到,泄露信息,并且对数据加密会导致数据失效等技术问题,本发明提供了以下技术方案:

一种同态密文域可逆隐藏方法,包括以下步骤:

步骤一、图像上传前,对所述图像进行预处理;

步骤二、用公钥对所述步骤一中经过预处理的图像进行加密,得到密文图像;

步骤三、在所述步骤二中经过加密的密文图像中嵌入信息,得到嵌入信息的密文图像;

步骤四、用私钥对所述步骤三中嵌入信息的密文图像进行解密,得到均衡化的图像;

步骤五、若有提取密钥,则对所述步骤四中得到的均衡化图像进行解密,得到原始图像和嵌入信息,进一步对图像分析;

所述步骤一的具体步骤为:

1)计算直方图两端的不为零的像素值并分别计算其个数ka和kb,其数目和为count;

2)根据嵌入参数l,计算la=l-count;

a、若kb≥l,则不进行任何操作;

b、若count≥l但kb<l,则直方图向左平移ka个单位;

c、若count<l,则把像素点按像素值分成若干组,其中每组的像素值的数目为2la,找出像素点数目最少的一组;以挑出的一组的像素值中间为界,大于该像素值的像素点向左平移2la;把图像中变化的像素点记为1,未变化的点记为0,那么此时形成一个二值图像,为了减少二值图像的长度,用jbig2标准进行压缩,记作a;尔后再对直方图向左平移ka个单位长度;

3)找出直方图中像素点最多的像素值is,在图像中该像素值记为1,其余记为0,生成一个二值图像,并进行jbig2压缩,记录其长度length,然后将该像素值的像素点的个数除以2,再进行比较,得出第二个像素点最多的像素值i's,同样进行上述操作,直到进行l次操作;

4)由此得到一串比特流,以8个为单位,进行分组,形成与原始图像一样大小的图像,若比特数不够,则在最后添加0,最后用与信息嵌入者之间的流密码对图像进行加密,并放在图像最后与图像一起发给嵌入者。

作为本发明的进一步说明,所述步骤二包括以下步骤:

在进行预处理后用公钥pk对图像进行加密,设c(i,j)为(i,j)位置的像素点进行加密后的像素值,则加密算法为

c(i,j)=e[pk,m(i,j),r(i,j)]

=gm(i,j)·(r(i,j))nmodn2

其中e是paillier加密算法,为一个随机产生的整数,将所有的像素点进行加密,得到的就是加密后的图像。

作为本发明的进一步说明,所述步骤三包括以下步骤:

1)解密流密码得到位置地图,对位置地图进行解压;

2)设c'(i,j)为嵌入后的像素值,首先对二值图像中值为0的位置对应密文图像的像素点进行操作:

c'(i,j)=c(i,j)·g·r'(i,j)

尔后在值为1对应的密文图像的像素点进行数据嵌入操作:

得到嵌入信息后的密文图像。

作为本发明的进一步说明,所述步骤四包括以下步骤:

在得到嵌入信息后的密文图像后,首先用私钥sk对图像进行解密,得到嵌入信息的图像,用m'(i,j)表示解密后的像素值,

1)若嵌入信息后,原像素点的值未改变,则解密后像素值m'(i,j)=m(i,j);

2)若嵌入信息后,原像素点的值增加了k,则解密后像素值m'(i,j)=m(i,j)-k。

作为本发明的进一步说明,所述步骤五包括以下步骤:

若拥有提取密钥,则解密接收到的信息,得到每个is值,ka,kb,l,a和a的长度,首先利用每个is值提取信息和恢复图像,提取信息的算法为

尔后进行恢复图像,图像恢复的算法为

根据算法,可以提取出一层的信息并恢复上一层的嵌入信息后的图形,依次使用算法,则可以提取出所有的信息;最后解压a得到二值图像,利用ka,kb和l恢复出原始的图像;

1)若kb≥l,得到的图像就是原始图像;

2)若count≥l但kb<l,所有的像素点加ka;

3)若count<l,所有像素点的像素值加ka,尔后根据二值图像,值为1的像素点,像素值加la。

与现有技术相比,本发明取得的有益效果为:

本发明提高了信息的嵌入量,用私钥解密后图像均衡的效果更好,同时保护了原始图像的信息,有利于保护隐私,而且通过提取密钥能够恢复原始图像和嵌入信息,进一步分析图像。

以下将结合附图及实施例对本发明做进一步详细说明。

附图说明

图1是本发明的一种同态密文域可逆隐藏方法流程示意图。

图2是本发明的一种同态密文域可逆隐藏方法步骤一中对原始图像进行预处理流程示意图。

图3是本发明的一种同态密文域可逆隐藏方法步骤一中对直方图进行分析的流程示意图。

图4是本发明的一种同态密文域可逆隐藏方法步骤三中对图像嵌入信息流程示意图。

图5是本发明的一种同态密文域可逆隐藏方法步骤四和步骤五中解密嵌入信息的密文图像以及解密提取嵌入信息和原始图像流程示意图

图6是本发明的一种同态密文域可逆隐藏方法实施例2中嵌入层数为30的嵌入过程中不同阶段的图像。

图7是本发明的一种同态密文域可逆隐藏方法实施例2中图6的六幅图嵌入率折线图。

图8是本发明的一种同态密文域可逆隐藏方法实施例2中嵌入层数为60时,解密后得到的图像。

具体实施方式

为进一步阐述本发明达成预定目的所采取的技术手段及功效,以下结合附图及实施例对本发明的具体实施方式、结构特征及其功效,详细说明如下。

如图1所示,本发明的一种同态密文域可逆隐藏方法流程示意图。

实施例1:

嵌入的灰度图像或进行灰度处理过后的图像为i,灰度级为256,m(i,j)表示位置为(i,j)的像素值,其中m(i,j)∈{0,1,2,···,254,255}。图像的直方图用hi表示,嵌入参数为l。

步骤一、图像上传前,对图像进行预处理;

找出直方图两端的不为零的像素值,分别用mi和ma表示,则两端的零点的个数分别为ka=mi和kb=255-ma。两边的零点的像素值的数目count=ka+kb,计算la=l-count。

1)若kb≥l,则不进行任何操作;

2)若count≥l但kb<l,则直方图向左平移ka个单位;

3)若count<l,则把像素点按像素值分成若干组,其中每组的像素值的数目为2la,找出像素点数目最少的一组。以挑出的一组的像素值中间为界,大于该像素值的像素点向左平移2la。把图像中变化的像素点记为1,未变化的点记为0,那么此时形成一个二值图像,为了减少二值图像的长度,用jbig2标准进行压缩,记作a;尔后再对直方图向左平移ka个单位长度,如图2所示。

图像拥有者分析直方图,找出直方图中像素点最多的像素值is,在图像中该像素值记为1,其余记为0,生成一个二值图像,并进行jbig2压缩,记录其长度length,然后将该像素值的像素点的个数除以2,再进行比较,得出第二个像素点最多的像素值i's,同样进行上述操作,直到进行l次操作。由此得到一串比特流,以8个为单位,进行分组,形成与原始图像一样大小的图像,若比特数不够,则在最后添加0,最后用与信息嵌入者之间的流密码对图像进行加密,并放在图像最后与图像一起发给嵌入者。其中每个is,ka,kb,l,a和a的长度用与接收者之间的流密码进行加密,发送给接收者,如图3所示。

步骤二、用公钥对上述经过预处理的图像进行加密,得到密文图像;

图像拥有者在进行预处理后用接收者的公钥pk对图像进行加密,设c(i,j)为(i,j)位置的像素点进行加密后的像素值,则加密算法为

c(i,j)=e[pk,m(i,j),r(i,j)]

=gm(i,j)·(r(i,j))nmodn2

其中e是paillier加密算法,为一个随机产生的整数。将所有的像素点进行加密,那么此时得到的就是加密后的图像。

步骤三、在上述经过加密的密文图像中嵌入信息,得到嵌入信息的密文图像;

信息嵌入者在得到图像拥有者的数据后,对后一半的数据进行解密,然后根据长度值length,得到每一次位置地图压缩后的数据,进行jbig2解压,得到每一次进行嵌入时的位置图,最后进行数据嵌入,。设c'(i,j)为嵌入后的像素值,首先对二值图像中值为0的位置对应密文图像的像素点进行操作:

c'(i,j)=c(i,j)·g·r'(i,j)

尔后在值为1对应的密文图像的像素点进行数据嵌入操作:

流程如图4所示。

步骤四、用私钥对上述嵌入信息的密文图像进行解密,得到均衡化的图像;

在得到嵌入信息后的密文图像后,接收者首先用私钥sk对图像进行解密,得到嵌入信息后的图像,用m'(i,j)表示解密后的像素值,其流程如图5所示。

1)若嵌入信息后,原像素点的值未改变,则解密后像素值m'(i,j)=m(i,j);

2)若嵌入信息后,原像素点的值增加了k,则解密后像素值m'(i,j)=m(i,j)-k。

由于在嵌入信息时,操作对象是像素值个数最多的像素点,所以解密得到的图像与原始图像相似。进一步分析,从直方图来看,直方图中最高的点被均匀分成两部分,依次类推,得到了均匀化的直方图;从视觉效果来看,得到的是具有均衡化效果的图像。

步骤五、若有提取密钥,则对上述均衡化图像进行解密,得到原始图像和嵌入信息,进一步对图像分析

若拥有提取密钥,则解密从图像拥有者接收到的通过流密码加密的信息,得到每个is值,ka,kb,l,a和a的长度,首先利用每个is值提取信息和恢复图像,提取信息的算法为

尔后进行恢复图像,图像恢复的算法为

根据算法,可以提取出一层的信息并恢复上一层的嵌入信息后的图形,依次使用算法,则可以提取出所有的信息。最后解压a得到二值图像,利用ka,kb和l恢复出原始的图像。

1)若kb≥l,得到的图像就是原始图像;

2)若count≥l但kb<l,所有的像素点加ka;

3)若count<l,所有像素点的像素值加ka,尔后根据二值图像,值为1的像素点,像素值加la。

实施例2:

最后通过实验效果验证对本发明的效果。

使用matlab2014a进行实验,系统为win10。嵌入的信息为随机产生的0和1概率大致相等的比特流,参数为嵌入层数l,以lena图像为例,l=30,如图6所示,为嵌入过程不同阶段的图像。

由图6(e)可以看出,经私钥解密后的图像是原始图像经过图像均衡后的图像,计算图6(a)和(f)的ssim值,结果为1,说明两幅图像完全一样,实验证明方案能够百分之百的提取信息和恢复加密后的图像。

本实验采用六幅标准的512*512的灰度级为512的灰度图像,图像分别为baboon,crowd,lena,hill,man和peppers,表1为六幅图像嵌入率结果,其对应的折线图如图7所示,由图像可以看出嵌入率随着嵌入层数的增加而增加。

表1

在六幅图像中,crowd在相同的嵌入层数时嵌入率最高,而baboon嵌入率最低,而这与每幅图像的复杂度有关,当l等于60时,解密得到的图像并没有出现增强过度,而不同的图像对比度增强的效果并不一样,如图8所示,为l=60时,解密得到的图像。而若不要求图像均衡,那么嵌入率将达会更大,以baboon为例,嵌入率最高可达到0.6795。

与其他密文域的可逆隐藏算法相比,本文提出的算法虽然没有比较好的psnr值,但在进行解密后,得到均衡化的图像,具有很好的可视效果,大大方便了医生对图像的诊断。若拥有提取密钥,则可以完全恢复原始图像。这种特性使得本算法在医学领域有较好的优势

以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1