一种基于区块链的秘密图像共享和恢复方法

文档序号:30946486发布日期:2022-07-30 05:26阅读:109来源:国知局
1.本发明属于信息安全领域。
背景技术
::2.随着互联网的快速发展和数字多媒体(文字、图像、音频、视频)的广泛使用,数字产品的安全性受到了挑战,尤其是一些个人隐私的图片、商业机密图纸、医疗图像和军事图纸等,这些数字产品在存储和传输的过程中很容易被截获、篡改和破坏。因此,它们的安全性受到了广泛的关注。秘密图像分享技术就是将由秘密图像分解获得的一组杂乱的影子图像,分别交给不同的人独立保管,并且能够在需要时进行提取、恢复的技术。该技术有两大特点:一是影子图像可以隐藏原始图像的信息,二是原图的恢复需要凑齐一定数量的影子图像。秘密图像分享技术既可以避免机密图像的损坏丢失,又可以实现多方授权认证的控制功能,保证秘密图像安全共享。3.在过去的数十年中,学术界相继提出了许多秘密图像共享方案。按照影子图像的生成方法划分,秘密图像分享技术包括构造生成多项式生成、和基于特殊的数域生成。这些秘密图像分享技术虽然实现了秘密图像的保护和共享,但是影子图像因为杂乱、没有实际意义容易受到攻击者的关注,导致影子在传输的过程中被窃取和篡改。此外,影子图像长时间存储在本地,容易因本地电脑受到攻击而导致单点失效问题。尽管,许多研究将图像隐写术、图像加密技术与秘密图像分享技术相结合,主要通过隐写术将秘密图像掩藏在自然图像当中,避免受到攻击者的关注,减少被攻击的风险;此外也可以通过图像加密技术防止秘密图像信息被窃取和篡改。4.但是现有的秘密图像分享技术仍然存在的缺陷有:5.(1)传统的秘密图像分享方案,直接将影子图片存储在本地,容易因丢失导致单点失效问题。同时,图片存储在本地无法防范影子图像的共享者对影子图像的恶意篡改,使得恢复的秘密图像出现偏差。6.(2)现有隐写术和秘密图像分享技术相结合,实现了影子图像的隐藏。然而,隐写分析技术给秘密图像分享带来了新的安全挑战,被隐写的影子图像在传输的过程中仍然有被检测到的风险,导致影子图像被窃取和篡改。7.(3)现有的图像加密技术和秘密图像分享技术相结合,通过各种加密方案对图像进行加密,避免影子图像被检测到时影子图像的信息泄露。虽然保证了影子图像在传输过程中的安全性,但是密文域的影子图像生成和秘密图像恢复需要消耗大量的计算资源。技术实现要素:8.发明目的:为了解决上述现有技术存在的问题,本发明提供过一种基于区块链的秘密图像共享和恢复方法。9.技术方案:本发明提供了一种基于区块链的秘密图像共享和恢复方法,具体包括秘密图像共享和秘密图像恢复;10.所述秘密图像共享包括如下步骤:11.步骤1:对用户进行编号;由秘密图像生成一组影子图像;第i个用户拥有第i张影子图像sharei,i=1,2,...,n1;n1表示秘密图像共享者的总个数;所述用户为秘密图像的共享者;12.步骤2:用户设置bfv加密方案中多项式环rq的次数n和明文的模q;并基于n和q随机生成bfv加密方案的公钥pk和私钥sk;将公钥pk,用户编号集合和bfv恢复方案存储到智能合约中;13.步骤3:采用bfv加密方案对第i张影子图像进行加密处理,得到sharei对应的影子图像密文fi;14.步骤4:第i个用户将fi上传到ipfs系统和区块链中,ipfs系统返还fi的存储地址ci,第i个用户将ci上传到智能合约中;当所有用户上传完毕后,秘密图像的共享完成;15.秘密图像恢复16.步骤a:当某用户作为申请者向智能合约发送秘密图像恢复的申请时,智能合约向其他用户广播恢复申请事件;所述其他用户为所有秘密图像的共享者中除申请者以外的用户;17.步骤b:其他用户监听到申请事件后,选择性地将影子图像的访问权授权给智能合约;18.步骤c:如果授权数量大于等于授权阈值t,则智能合约按照授权时间顺序选择前t个授权的用户,并向整个区块链广播恢复任务,转步骤d;否则恢复申请失败,停止恢复;19.步骤d:智能合约在区块链中选择z台计算机作为代理计算机,智能合约将前t个授权的用户的影子图像的文件地址、前t个授权的用户的编号集合、公钥pk和bfv恢复方案发送给代理计算机;20.步骤e:代理计算机通过收到的影子图像的文件地址,从ipfs下载对应影子图像的密文;在密文域执行bfv恢复方案,恢复秘密图像;获得密文域的秘密图像e(si);然后z台代理计算机均将e(si)发送给智能合约;21.步骤f:智能合约校验z台代理计算机的恢复结果,如果全都相同,则智能合约将e(si)发送给申请者,申请者进行解密,并重构秘密图像si;否则返回步骤d重新选择计算机。22.进一步的,所述步骤1中由秘密图像生成一组影子图像具体为:将秘密图像的像素均匀的划分成r’组像素,每组像素组中包含t个像素,并构造如下多项式:23.fr(x’)=p1+p2x’+…+ptx’t-1(modp)24.其中,fr(x’)表示与第r组像素组对应的多项式,modp表示模数p;pt表示第r组像素组中的第t个像素;x’为变量;r=1,2,...,r’;25.将第i个用户的用户编号xi作为变量依次代入r’个多项式中,得到每个多项式的输出,将每个多项式的输出组合后作为第i个用户对应的第i张影子图像sharei。26.进一步的,所述职能合约中设有授权缓存表,用户能够通过授权表预审先设置授权权限。27.进一步的,所述步骤3具体为:将第i张影子图像sharei的像素均匀的拆分成若干个长度为的子向量;采用公钥pk对每个子向量进行加密,获得该字向量对应的子向量密文;对第i张影子图像下的所有子向量密文进行打包,得到第i张影子图像对应的密文fi。28.进一步的,所述步骤e中的恢复秘密图像具体为:采用公钥pk将第r个授权的用户编号xr加密成密文xr;其中r=1,2,...,t;构造如下拉格朗日多项式:[0029][0030]其中vrj表示第r个授权的用户对应的影子图像sharer中的第j个子向量的子向量密文;j=1,2,...,len;len表示影子图像sharer中子向量的总个数;其中p_siz为sharer的尺寸,为向上取整;x为变量;xk表示第k个授权的用户编号xk对应的密文xk;[0031]在多项式环rq上引入费马小定理,因此rq上存在逆元invk使得上存在逆元invk使得invk=kp-2,其中在上述拉格朗日多项式的等式两边同invk*k,得到如下表达式:[0032][0033]其中,ln′(x)=ln(x)*invk*k,crj=vrj*kr*invk,drk’为公式1中第r个连乘多项式展开后的xk’的系数;对公式2进行求解,得到公式2系数ak’j,ak’j表示对公式2进行第j次求解后得到的公式2中xk’的系数;的系数;将所有的ak’j进行组合,组合后的结果为e(si)。[0034]进一步的,当对公式2进行求解,求解drk′时,如果t小于等于预设的阈值q时,对drk′直接求解;否则采用前缀和算法求解drk′,具体为:[0035]令为连乘多项式,y为变量,ae为常数项,n为该连乘多项式中常数项的总个数;对g(y)进行展开,表达式如下所示:[0036][0037]其中,为第i1个常数项,为第i2个常数项,为第io个常数项,o=0,1,2,...,n;[0038]采用dn-o表示展开后的多项式中的yn-o系数:[0039][0040]引入前缀和变量动态地记录dn-o的前mn-o项的和,前缀和各项之间关系为:其中为公式3中dn-o的第mn-o项,引入变量之后,将公式3转化为如下方程:[0041][0042]方程中dn-o为通项公式,在求解dn-o的过程中记录便能够求解系数dn-o-1。[0043]进一步的,所述步骤f中申请者进行解密,并重构秘密图像si具体为:申请者对密文e(si)解密获得与ak’j对应的密文向量ak’j,每个密文向量中包括n/2个像素,将k’作为行,j作为列,构建t*len的矩阵,针对该矩阵中编号为j的j列,从上往下取该列中行编号为k’的密文向量ak’j的第j’个像素ak’j,j,,j’=1,2,...,n/2;将取得的所有像素依次组成像素向量vsi=[a01,1,a11,1,...,at-11,1,...,a0len,n/2,a1len,n/2,...,at-1len,n/2];a01,1表示密文向量a01中第一个像素,a11,1表示密文向量a11中第一个像素,at-11,1表示密文向量at-11中第一个像素,a0len,n/2表示密文向量a0len中第n/2个像素,a1len,n/2表示密文向量a1len中第n/2个像素,at-1len,n/2表示密文向量at-1len中第n/2个像素。[0044]有益效果:[0045](1)本发明设计了一种区块链环境下的、基于星际文件系统ipfs的影子图像安全存储系统。ipfs是一个基于区块链搭建的分布式的文件存储系统,具有不可篡改性和可追溯性。加密的影子图像上传到ipfs系统中,系统返回文件地址,并保存至智能合约。可以实现影子图像存储阶段的不可篡改与永久保存,避免了用户篡改影子图像和单点失效的问题。[0046](2)本发明设计了一种基于智能合约的访问控制系统。不仅实现了非实时性的共享图片授权,还能够自动化地执行身份认证和图像恢复等程序,防止了数据被窃取和篡改。[0047](3)本发明设计了一种在密文域的秘密图像恢复的计算方法。在保证传输过程数据安全性的同时,在降低了用户部分计算负担的同时,通过像素的批处理方案和连乘多项式系数前缀和算法的设计,解决了全同态加密方案因效率低带来的实用性问题,使计算方案更加高效、具有可行性。附图说明[0048]图1为本发明的整体框图。[0049]图2为本发明的秘密图像共享流程图。[0050]图3为本发明的秘密图像恢复流程图。具体实施方式[0051]构成本发明的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。[0052]本实例提供一种基于区块链的安全高效的秘密图像共享和恢复方法,如图1所示,该方法主要包括秘密图像的共享和恢复阶段。[0053]秘密图像的共享阶段:本实例利用构造生成多项式方法生成影子图像,然后使用bfv方案加密,上传到ipfs系统中,如图2所示,其具体步骤如下:[0054]步骤1:由秘密图像生成一组影子图像,具体为:将秘密图像像素划分成若干组,每组包含t个像素。构造生成多项式:fr(x’)=p1+p2x’+…+ptx’t-1(modp),其中,tr(x’)表示与第r组像素组对应的多项式,modp表示模数p,本实施例中p的取值优先选择257,其次选择251或其他数;pt表示第r组像素组中的第t个像素;x’为变量;r=1,2,...,r’;r’为多项式的总个数,将第i个用户的用户编号xi作为变量依次代入r’个多项式中,得到每个多项式的输出,将每个多项式的输出组合后作为第i个用户对应的第i张影子图像sharei。本实施例中用户为秘密图像的共享者。[0055]秘密图片共享者设置bfv加密方案的参数:多项式环rq的次数n和明文的模q。在该参数条件下随机生成bfv方案的公钥pk和私钥sk。将(sharei,pk,sk)发送给相应的用户,同时将公钥pk,所有用户的编号集合{xi|i∈{1,2,...,n1}}和bfv外包恢复方案存储到智能合约中,n1表示秘密图片共享者的总个数。[0056]上述步骤中,bfv方案的参数n、q可以根据实际秘密分享的参数(t,n1)选取,t增大时,n和q应当适当地增大以保证恢复图像的100%的准确性。由于bfv全同态加密方案是基于r-lwe问题构建的,多项式环rq=zq/(f(x)),zq为所有系数都属于整数q的剩余类的多项式,其中f(x)=2n+1,n为2d,d为正整数,q优先选择8192,n优先选择16384。[0057]步骤2:将每张影子图像sharei分块,对每个图像块用bfv加密方案进行批处理方式加密。将尺寸为p_siz影子图像sharei的像素拆分成若干长度为n/2的子向量vij,p_siz=r’,vij表影子图像sharei的第j个子向量,j=1,2,...,len。其中的第j个子向量,j=1,2,...,len。其中的第j个子向量,j=1,2,...,len。其中为向上取整。使用公钥pk对子向量vij进行加密获得密文vij。最后,将sharei中的所有子向量密文{vij}打包成影子图像密文fi。[0058]步骤3:将加密后的影子图像上传到ipfs系统和区块链中。第i个用户将密文fi上传到ipfs文件系统之后,ipfs系统会返回一个文件地址ci,作为上传文件的唯一标识。最后,用户将ci上传到智能合约。[0059]秘密图像的恢复阶段:本实例中秘密图像的恢复由某个用户作为申请者向智能合约发出请求,然后等待其他用户授权后,由计算机恢复加密的秘密图像给申请者,最后申请者解密得到图像。如图3所示,其具体过程如下:[0060]步骤a:某用户(秘密图像共享者者之一)作为申请者向智能合约发送秘密图像恢复的申请。[0061]步骤b:智能合约向其他广播恢复申请事件,所述其他用户为所有秘密图像的共享者中除申请者以外的用户。智能合约收到申请者的图像恢复申请。合约通过授权缓存表cachetable(用户可以通过授权缓存表预先设置授权给哪个用户),查看其他用户的授权情况,向未授权用户广播事件,请求用户授权。其中,cachetable在每次成功恢复图像之后清空重置,用户也可以预先授权给其他用户。[0062]步骤c:用户选择性将影子图像的访问权授权给智能合约。[0063]步骤d:智能合约向区块链发布有偿恢复任务。将t作为授权阈值,如果授权数量大于等于授权阈值t,则智能合约按照授权时间顺序选择前t个授权的用户,并向整个区块链广播恢复任务,转步骤d;否则恢复申请失败,停止恢复;前t个已授权用户的编号为{s1,...,st}。[0064]步骤e:智能合约与区块链中的计算机建立联系,向计算机传输影子图像的地址等相关信息。其中,多台计算机会尝试承包计算任务。智能合约以申请时间作为随机数种子seed,随机选取z台计算机作为外包计算的代理计算机,本实施例中z=3。智能合约将前t个授权用户的影子图像的文件地址、用户编号集合{s1,...,st}、bfv方案的公钥pk和bfv恢复方案发送给代理计算机。[0065]步骤f:代理计算机从ipfs下载密文文件,在密文域恢复秘密图像。其中,计算机通过文件地址从ipfs下载对应影子图像的密文,将{s1,...,st},相应影子图像的密文以及pk作为bfv恢复执行文件的输入,执行密文域的恢复方案,获得密文域的秘密图像e(si),其中si为秘密图像,然后将e(si)发送给智能合约。[0066]步骤g:计算机通过智能合约,将加密后的秘密图像转发给申请用户进行解密使用。智能合约校验z台代理计算机的执行结果,如果全都相同,智能合约将e(si)发送给申请者,申请者进行解密,并重构秘密图像si;否则,返回步骤d重新选择计算机。[0067]所述步骤2中使用bfv进行批处理加密。具体指,第i个用户接收到影子图像后,将尺寸为p_siz=w×h×dim的影子图像转换成一个大小为(1,w×h×dim)的向量,其中w为影子图片的宽,h为影子图片的高,dim为影子图片的色道数。因为在bfv方案中,批处理的最大长度为n/2,所以将该向量拆分成len个长度为n/2的连续子段vij。此外,如果最后一个子段长度不足n/2,不进一步处理。[0068]所述步骤f中使用bfv恢复方案得到e(si)。具体的全同态加密恢复方案为:首先使用公钥pk将第r个授权的用户编号xr加密成密文xr,r=1,2,...,t。然后构造拉格朗日插值多项式ln(x),将前t个已经授权的用户对应的子向量密文和已经授权的用户编号带入ln(x),最后,求解出的ln(x)的系数。需要恢复的次数与影子图像中的密文子向量的数量len相同,一共len次。在第j次求解中,利用每个授权影子图像的第j个子密文vrj构造ln(x),ln(x)具体的公式如下:[0069][0070]其中定义:[0071]方程(5)可以进一步化简为方程(6):[0072][0073]由于基于r-lwe构造的bfv全同态加密方法不直接支持除法运算。为了解决这个问题,本发明在多项式环rq上引入了的费马小定理。[0074]因此rq上存在逆元invk使得根据费马小定理可知:invk=kp-2。在方程6中左右两边同乘invk*k。推导如下:[0075][0076]其中,ln′(x)=ln(x)*invk*k,crj=vrj*kr*invk,drk’为公式7中第r个连乘多项式展开后的xk’的系数。对公式7进行求解,得到公式7(也即ln’(x))中xk的系数ak’j;系数密文ak’j是指第j次恢复的多项式k’次幂系数。将所有的ak’j进行组合,组合后的结果为e(si),将e(si)传输给智能合约核对,然后下传给恢复的申请者。[0077]申请者对密文e(si)解密获得密文向量ak’j,ak’j与ak’j对应,重构得到秘密图像。每个密文向量中包含了n/2个秘密图像的像素,将所有像素对p取模。重构的具体过程如下:将k’作为行,j作为列,构建t*len的矩阵,针对该矩阵编号为j的列,从上往下取该列中标号为k’的行的密文向量的第j’个像素ak’j,j’,j’=1,2,...,n/2;将取得的所有像素依次组成像素向量vsi=[a01,1,a11,1,...,at-11,1,...,a0len,n/2,a1len,n/2,...,at-1len,n/2];a01,1表示密文向量a01(也即矩阵中行编号为0,列编号为1的密文向量)中第一个像素,a11,1表示密文向量a11(也即矩阵中行编号为1,列编号为1的密文向量)中第一个像素,at-11,1表示密文向量at-11(也即矩阵中行编号为t-1,列编号为1的密文向量)中第一个像素,a0len,n/2表示密文向量a0len(也即矩阵中行编号为0,列编号为len的密文向量)中第n/2个像素,a1len,n/2表示密文向量a1len(也即矩阵中行编号为1,列编号为len的密文向量)中第n/2个像素,at-1len,n/2表示密文向量at-1len(也即矩阵中行编号为t-1,列编号为len的密文向量)中第n/2个像素。将vsi重构成大小为w×h×dim的三维图像就恢复了原图si。[0078]所述的恢复方案中,系数drk′具体的算法和原理如下:具体为:在本方案中当t≤预设的阈值q时,直接求解,否则利用前缀和算法求解算法。前缀和算法可以使求解复杂度从o(2t)降低到o(t2)。随着t的增大,效率提高明显。本实施例中q=3;具体推导如下:[0079]令为连乘多项式,y为变量,ae为常数项,n为该连乘多项式中常数项的总个数;对g(y)进行展开,表达式如下所示:[0080][0081]其中,为第i1个常数项,为第i2个常数项,为第io个常数项,o=0,1,2,...,n;采用dn-o表示多项式中的yn-o系数:[0082][0083]引入前缀和变量动态地记录dn-o的前mn-o项的和,前缀和各项之间关系为:其中为方程(8)中dn-o的第mn-o项,引入变量之后,将公式8可以转化为如下方程:[0084][0085]方程中dn-o为通项公式,在求解dn-o的过程中记录便能够求解系数dn-o-1。[0086]另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式组合。为了避免不必要的重复,本发明对各种可能的组合方式不再另行说明。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1