利索能及
我要发布
收藏
专利号: 2021106047730
申请人: 南京信息工程大学
专利类型:发明专利
专利状态:已下证
更新日期:2025-12-30
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种基于区块链认证具备公共重建的分布式秘密图像分享方法,其特征在于:该方法包括秘密图像的分享过程和拥有区块链认证的分布式公共重建过程;

所述分享过程包括:

分享者对原图进行像素置乱并划分为若干像素单元t,每一个像素单元t包括r个像素,根据单元像素生成n幅阴影图像并计算哈希值,将n个哈希值写入区块链;

将n幅阴影图像上传至分布式云网络,分享者接收分布式云网络返回的n个哈希值并分享给n位参与者;

所述公共重建过程包括:

参与者#i接收对应的哈希值,并请求获得另外n‑1个哈希值,通过分布式云网络获得对应的n‑1幅阴影图像;

计算n幅图像的哈希值并与区块链上存储的相应哈希值对比,使用哈希值对比结果相同的若干幅阴影图像进行秘密图像重建;

参与者#i分别选择k幅阴影图像的第一个未使用的像素,使用这k个像素计算得到原图像素置乱后所划分单元的像素值;k=r;

依次处理完k幅阴影图像的所有像素,重建所有像素单元并构建图像,对该图像进行逆置乱操作得到原始秘密图像,完成公共重建。

2.根据权利要求1所述的分布式秘密图像分享方法,其特征在于:所述分享过程具体包括如下步骤:

步骤1.1,分享者对原图D进行像素置乱处理得到D',分享者将D'划分为若干个像素单元t,1≤t≤|D'|/r,t∈Z,t中包括任意不重复的r个像素;

步骤1.2,设分享者将原图D给n位参与者#i,1≤i≤n,i∈Z;根据像素单元t及其r个像素计算第i位参与者接收的阴影图像的像素值ft(i),n幅阴影图像按顺序接收生成的像素ft(1)~ft(n);

步骤1.3,重复步骤1.1至步骤1.2,直至整个图像所有像素单元t的像素均被处理完成,生成n幅阴影图像;

步骤1.4,分享者将生成的n幅阴影图像计算哈希值HAi,1≤i≤n,i∈Z,通过智能合约写入区块链;

步骤1.5,分享者将生成的n幅阴影图像分别上传至分布式云网络IPFS,得到IPFS根据图片内容返回的n个哈希值HAi,分享者将得到的哈希值分享给n个参与者。

3.根据权利要求2所述的分布式秘密图像分享方法,其特征在于:计算待生成的阴影图像的像素值,方法如下:

r‑1

ft(x)=(a0+a1x+...+ar‑1x )modp式中ft(x)表示第x位参与者接收的阴影图像像素值,a0,a1,...,ar‑1分别对应单元t中r个像素值,p为一个素数。

4.根据权利要求1所述的分布式秘密图像分享方法,其特征在于:所述公共重建过程具体包括如下步骤:

步骤2.1,参与者#i接收到对应的哈希值HAi,通过IPFS网络下载HAi对应的阴影图像;

步骤2.2,参与者#i,对其他n‑1位参与者发出请求,获得另外n‑1个哈希值,通过IPFS网络获得对应的n‑1幅阴影图像;

步骤2.3,参与者#i,计算出n幅阴影图像的哈希值,分别与区块链上存储的相应哈希值对比,若不同,舍弃该阴影图像;若相同,使用该阴影图像进行秘密图像重建;

步骤2.4,参与者#i获得m幅有效阴影图像,k≤m≤n,k为进行秘密图像重建所需有效阴影图像数量的预设阈值,选择有效阴影图像其中任意k幅进行重建;

步骤2.5,参与者#i分别选择k幅阴影图像的第一个未使用的像素,使用这k个像素计算得到原图像素置乱后所划分像素单元的像素值;

步骤2.6,循环步骤2.5,直到处理完k幅阴影图像的所有像素,重建出所有像素单元并构建图像D',对图像D'进行逆置乱操作得到原始秘密图像D,完成公共重建。

5.根据权利要求4所述的分布式秘密图像分享方法,其特征在于:所述步骤2.5利用拉格朗日插值法计算出原图像素置乱后所划分像素单元的像素值,公式如下:式中,ft(i)为已选择的第i幅阴影图像的第一个未使用的像素,j表示除了图像i之外的第j幅阴影图像,p为一个素数;所得多项式ft(x)的各项系数即为单元t的k个像素值。

6.根据权利要求4所述的分布式秘密图像分享方法,其特征在于:所述步骤2.2还包括如下优化步骤:

n个参与者之间通过密钥交换协议协商出一个公共密钥K,将属于各自的哈希值HAi用密钥K加密;

参与者#i,对其他n‑1位参与者发出请求,获得另外n‑1个用密钥K加密过的哈希值,解密后,通过IPFS网络获得对应的n‑1幅阴影图像。

7.根据权利要求6所述的分布式秘密图像分享方法,其特征在于:采用Diffie‑Hellman密钥交换协议协商出一个公共密钥K,具体包括:设参与者#i作为组控制器,使用私钥通过式(2)生成公钥Xi,其中xi是#i的私钥;

任意组员#j,j≠i,使用私钥通过式(3)生成公钥Xj,其中xj是#j的私钥;

每个组员#j和组控制器#i互相交换公钥,交换完成后,每个组员#j和组控制器#i之间生成DH样式的组密钥Kj,组控制器#i也生成同样的组密钥Kj;

组控制器#i把生成的n‑1个组密钥合并生成一个密钥Xk;

组控制器#i将Xk发送给组员#j,组员#j在本地生成群密钥K;

组控制器#i根据拥有的所有的组密钥Kj,直接使用式(8)生成群密钥K;

式(2)~(8)中,g和n为随机数,g为整数,n为素数。