掌桥专利:专业的专利平台
掌桥专利
首页

一种基于Paillier打包加密的图像像素级加密和还原方法

文献发布时间:2024-04-18 20:01:30


一种基于Paillier打包加密的图像像素级加密和还原方法

技术领域

本发明涉及技术领域,特别涉及一种基于Paillier打包加密的图像像素级加密和还原方法。

背景技术

Paillier加密算法是Pascal paillier在1999年发明的概率公钥加密算法,该算法基于复合剩余类的困难问题,是一种满足加法的同态加密算法,已经广泛应用在加密信号处理或第三方数据处理领域。

在现有的一些应用场景中,视频监控平台作为图像数据提供方需要将拍摄到的图片传输至图像数据接收方所在平台进行图像处理。比如监控平台可以通过路侧设备拍摄交通环境的图像,其它平台需要使用交通环境的图像进行算法建模和预测等时,可以向监控平台订阅,从而监控平台可以将图像数据传输至已订阅的平台。

由于监控平台拍摄的图像可能涉及敏感信息,如行人和车牌等,因而此类图像数据传输的安全性格外重要。数字图像传输过程中遇到的问题:图像被盗取、保密信息在传输的过程中被拦截和泄密、信息被篡改等。

在现有的相关技术中,监控平台可以将图像进行压缩,然后对压缩文件进行对此加密,从而将加密后的数据传输给其它平台。这种图片级别的对称加密方式具有传输效率高的优势,但是安全性较低,若密钥一旦泄露,文件解密后所有图像内容均可见。

此外,首先对图片进行各种非线性变换再进行加密传输,虽然使得窃取的图片具有一定程度的脱敏性,但对于实际接收方来说图像的质量较差。

发明内容

针对现有技术中存在的不足,本发明提供了一种基于Paillier打包加密的图像像素级加密和还原方法,该方法提供一种基于Paillier同态加密图像生成加密文件的实现方式,对图像进行像素级的打包加密后再进行安全传输,可以提高图像本身的安全性且不失真。

本发明的目的是这样实现的:一种基于Paillier打包加密的图像像素级加密和还原方法,包括以下步骤:

一种基于Paillier打包加密的图像像素级加密和还原方法,包括以下步骤:

步骤S1:图像数据接收方和图像数据提供方协商密钥;

步骤S2:图像数据提供方确定打包加密所需的相关参数;

步骤S3:图像数据提供方对每张图片进行打包加密后再进行传输,发送给图像数据接收方;

步骤S4:图像数据接收方接收图片;

步骤S5:图像数据接收方还原图片。

作为本发明的进一步限定,所述步骤S1包括以下步骤:

步骤S11:图像数据接收方设置密文的比特位长度,假设为n;

步骤S12:图像数据接收方利用Paillier算法和n生成一对公私钥,并将公钥发送给图像数据提供方。

作为本发明的进一步限定,所述步骤S2包括以下步骤:

步骤S21:图像数据提供方接收公钥,由公钥中的n除以8计算得到一个密文可打包的像素点个数,假设可打包的像素点个数为p;

步骤S22:图像数据提供方计算加密单张图片所需要的密文数,假设单张图片总的像素点个数为m,对其打包加密整张图片所需要的密文数为q,由公式q=ceil(m/p)得到,其中ceil为上取整操作。

作为本发明的进一步限定,所述步骤S3包括以下步骤:

步骤S31:图像数据提供方生成q个字符串数组,表示为Q,字符串数组中的每个元素初始化为空串;

步骤S32:对每张图片从第1维度展开得到一维向量,并每次取p个像素点进行编码,当该向量中剩余像素点不足p个时,填充数字0直到满足p个为止;

步骤S33:对Q中第i个元素,其对应的p个像素点编码的操作为:1)按顺序从左到右取一个像素点,得到其8比特位的二进制表示b;2)将该二进制表示追加到Qi中,形式化表示为Qi=Qi::b;

步骤S34:对Qi编码为整数,然后生成一个小于n/2的随机整数并利用公钥编码为整数的Qi进行加密得到一个密文,表示为Ci;

步骤S35:将q个密文拼接为一个字符串,不同密文之间用非数字字符分隔。

作为本发明的进一步限定,所述步骤S4包括以下步骤:

步骤S41:图像数据接收方接收该字符串,并查找非数字字符所在位置将其分割为q个字符串;

步骤S42:对每个字符串将其编码为整数,并还原为密文;

步骤S43:利用持有的私钥将q个密文解密q个明文。

作为本发明的进一步限定,所述步骤S5具体为按顺序将q个明文还原为原始图片,包括以下步骤:

步骤S51:初始化一个空的整数数组,表示为s;

步骤S52:对每个明文得到其n个比特的二进制表示,接着每次取8位编码为一个整数放入到数组中,每个明文得到p个整数;

步骤S53:对上述数组从左往右取m个元素,并按照图片的长度、宽度和深度进行重塑,即得到原始的图片。

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

1.文件解密密钥无需传输给图像数据发送方,避免密钥泄露导致的安全问题;

2.像素级的打包加密不仅大大降低密文规模,而且得到密文难以被破解得到明文;

3.降低加密计算复杂度,而且同态加密方式所得到的密文能够完全还原为原始图像。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明流程图。

图2为本发明实施例处理的图像示意图。

图3为本发明实施例解密后的图像示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示的一种基于Paillier打包加密的图像像素级加密和还原方法,假设某个图像数据接收方需要从某个图像数据提供方获取其摄像图采集的人脸数据,以附图2为例,每一帧图片形状大小为28×28×3,那么总的像素点个数为m=2352,实施步骤如下:

步骤S1:图像数据接收方和图像数据提供方协商密钥。

步骤S11:图像数据接收方设置密文的比特位长度,假设为n=1024。

步骤S12:图像数据接收方利用Paillier算法和n生成一对公私钥,并将公钥发送给图像数据提供方。

步骤S2:图像数据提供方确定打包加密所需的相关参数。

步骤S21:图像数据提供方接收公钥,由公钥中的n=1024除以8计算得到一个密文可打包的像素点个数,假设可打包的像素点个数为p=128。

步骤S22:图像数据提供方计算加密单张图片所需要的密文数。单张图片总的像素点个数为m=2352,对其打包加密整张图片所需要的密文数为q=ceil(2352/128)=19个。

步骤S3:图像数据提供方对每张图片进行打包加密后再进行传输。

步骤S31:图像数据提供方生成q=19个字符串数组,表示为Q,字符串数组中的每个元素初始化为空串。

步骤S32:对每张图片从第1维度展开得到一维向量,并每次取p=128个像素点进行编码,当该向量中剩余像素点不足p个时,填充数字0直到满足p个为止,本实施例中,第19次取像素点时,是从该向量的第18×128开始获取,顺序获取48个即达到该向量的长度,然后需要填充128-48=80个数字0;可以填充0到255之间的任意整数。

步骤S33:对Q中第i个元素,其对应的p个像素点编码的操作为:1)按顺序从左到右取一个像素点,得到其8比特位的二进制表示b;2)将该二进制表示追加到Qi中,形式化表示为Qi=Qi::b,比如数字“0”的8位二进制表示为“00000000”,数字“255”的8位二进制表示为“11111111”,这两个数字按先后顺序拼接后的字符串为“0000000011111111”。

步骤S34:对Qi编码为整数,然后生成一个小于n/2的随机整数并利用公钥编码为整数的Qi进行加密得到一个密文,表示为Ci。

步骤S35:将q个密文拼接为一个字符串,不同密文之间用非数字字符分隔,比如第一个密文为“12345”第二个密文为“67891”,以符号“#”作为分隔符号,那么拼接后的字符串为:“12345#67891”;除了井号符,还可以使用其他非整数的符号作为分割符;实施例图片对应第一段明文为:

[233, 231, 227, 244, 244, 240, 243, 243, 240, 241, 243, 241, 240,241, 240, 239, 241, 240, 240, 241, 241, 239, 241, 243, 239, 240, 240, 238,239, 238,237, 238, 236, 237, 237, 236, 236, 236, 235, 235, 235, 234, 235,235, 234, 236, 236, 235, 239, 239, 237, 240, 241, 239, 241, 241, 240, 241,243, 241, 241, 243,241, 241, 243, 241, 241, 244, 243, 243, 244, 243, 243,244, 243, 241, 244, 243, 246, 245, 244, 232, 232, 228, 235, 235, 232, 245,244, 244, 245, 245, 245, 245,245, 244, 245, 245, 245, 244...

加密后的密文为:

4217775694983657168204894976965395267383987382720483441522338889519233839605222405801049295217609174244920401025749271775076401229218804662209693690893808875083456418649383398246048759963081462431287445467357838049940932961696293023638281906107732580224005627802553303253995095062822462444505523585365426872379992354204426232577443191489859215138884759554283958415214287317184817271958078800151155892082336458616768466365354447232388214573743799172979265217926483189608925004166735326843047668732468904956888533357019612121353491425976863839324258346274947409702615973784855641907297576855450815767418126999476548907。

步骤S4:图像数据接收方接收并还原图片。

步骤S41:图像数据接收方接收该字符串,并查找非数字字符所在位置将其分割为q个字符串。

步骤S42:对每个字符串将其编码为整数,并还原为密文。

步骤S43:利用持有的私钥将q个密文解密q个明文;解密后的第一个明文如下所示,可以看到其和原始明文是一致的:

[233, 231, 227, 244, 244, 240, 243, 243, 240, 241, 243, 241, 240,241, 240, 239, 241, 240, 240, 241, 241, 239, 241, 243, 239, 240, 240, 238,239, 238,237, 238, 236, 237, 237, 236, 236, 236, 235, 235, 235, 234, 235,235, 234, 236, 236, 235, 239, 239, 237, 240, 241, 239, 241, 241, 240, 241,243, 241, 241, 243,241, 241, 243, 241, 241, 244, 243, 243, 244, 243, 243,244, 243, 241, 244, 243, 246, 245, 244, 232, 232, 228, 235, 235, 232, 245,244, 244, 245, 245, 245, 245,245, 244, 245, 245, 245, 244...。

步骤S4中,对要传输给数据接收方的拼接字符串,还可以和现有技术一样进行压缩后再加密传输。

步骤S5:按顺序将q=19个明文还原为原始图片。

步骤S51:初始化一个空的整数数组,表示为s。

步骤S52:按顺序遍历这个q个明文,对每个明文,先得到其n=1024个比特的二进制表示,接着每次取8位编码为一个整数放入到数组s中,每个明文可以得到p个整数。

步骤S53:上述数组s最终包含有19×128=2432个元素,接着从左往右取m=2352个元素,并按照图片的长度、宽度和深度进行重塑为28×28×3,即得到原始的图片,如图3所示。

本发明方法提供一种基于Paillier同态加密图像生成加密文件的实现方式,对图像进行像素级的打包加密后再进行安全传输,可以提高图像本身的安全性且不失真。

以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

相关技术
  • 异常检测方法、装置、电子设备及可读存储介质
  • 电子设备的显示控制方法、装置、电子设备和存储介质
  • 电子设备控制方法及装置、电子设备及存储介质
  • 数据分布存储方法、装置、存储介质及电子设备
  • 存储清理方法、装置、电子设备及存储介质
  • 网络流量异常检测方法、装置、电子设备和存储介质
  • 网络流量异常检测方法、电子设备及可读存储介质
技术分类

06120116557913