一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种可隐藏敏感文档和发送者身份的区块链隐蔽通信模型

2022-07-31 03:38:04 来源:中国专利 TAG:
1.本发明属于区块链领域,具体来说是涉及一种区块链隐蔽通信模型。
背景技术
::2.传统的隐蔽通信是将秘密信息隐藏于常用的载体中进行隐蔽传输的技术,在信息安全、数据通信等方面发挥着重要作用。常用的载体包括图像,文本,音频,视频等,其中图像因其具有较高的有效载荷能力,是广泛使用的载体格式。但是在传统的隐蔽通信过程中,载体信息可能会面临被删除或者篡改的风险,从而导致嵌入的秘密信息被破坏。而且在此过程中,通信双方的身份暴露在网络中,攻击者可以对通信进行针对性的干扰和阻断。3.相比于其他的通信媒介,区块链具有抗篡改,防伪造,匿名性等特点,抗篡改使得隐蔽通信的攻击者对秘密信息的删除和篡改都是无效的;防伪造使得隐蔽通信的攻击者不能伪造秘密信息的内容;匿名性使得隐蔽通信的双方可以进行匿名通信,不必暴露真实身份。因此,一些研究使用区块链作为通信媒介来解决传统隐写术面临的问题。partala等人2018年2月发表在《密码学》上的文章,区块链上可证明安全的隐蔽通信,首次提出了将秘密信息嵌入到区块链交易地址的最低位进行隐蔽传输,并对其安全性进行了研究和验证。4.akbari等人在2019年在国际计算机、控制、信息学及其应用会议上公开了用于大容量隐蔽通信的联合事务-图像隐写术,利用基于区块链的交易隐写术和图像隐写术实现了一种安全机密的通信方式。5.刘.s等人在2020年第三届智能区块链国际会议(smartblock)上公开了基于hevc视频隐写术的区块链隐私数据保护方法,将区块链交易数据的敏感部分加密隐藏到hevc视频中,以保护区块链的隐私交易数据。6.佘维,霍丽娟等人在2021年《点对点网络与应用》中公开了一种结合区块链和星际文件系统的双重隐写模型,将区块链和星际文件系统(interplanetaryfilesystem,ipfs)结合实现一种双重隐写术,并解决大文件的载密载体在区块链中的存储问题。7.这些研究都是对一条短消息进行隐蔽传输。但是随着区块链在智慧城市、智慧医疗、智慧政务等领域的大量应用和飞速发展,需要进行隐蔽通信的数据量越来越大,短消息的隐蔽传输并不适用于敏感数据量大的情况。而且上述区块链隐蔽通信的研究中主要还存在以下尚未解决的问题:8.(1)都未隐藏发送方身份,存在发送方身份泄露问题,增加了隐蔽信道暴露的风险。9.(2)都难以对数据量大的mb级敏感数据进行隐蔽传输。10.(3)都需要从发送方发起大量的交易来嵌入秘密信息,它们的统计特性容易引起攻击者察觉,且耗时较长,还存在某些交易未被打包而造成信息缺失的缺点。11.(4)一些研究中采用的图像隐写术都是以一般的图像作为载体,载体图像经过嵌入秘密信息得到载密图像,在这一过程中,载体图像的修改痕迹会比较大。随着隐写分析技术的发展,以一般的图像作为载体的隐写术越来越难以抵抗基于统计特征的检测分析。技术实现要素:12.本发明要解决的技术问题是:基于以上四个技术问题,本发明提出一种可隐藏敏感文档和发送者身份的区块链隐蔽通信模型h-sd&si。13.为解决上述技术问题,本发明采用以下技术方案:14.一种可隐藏敏感文档和发送者身份的区块链隐蔽通信模型,在区块链网络中的发送方创建多个账户作为环签名成员,且只使用其中一个账户创建交易,最后一个环签名成员则是接收方;如果接收方能对交易验证成功,则表示交易实际上是发给接收方的;具体的签名过程如下:15.①、系统参数生成:创建多个账户,并为每个账户生成相应的公钥和私钥;16.②、签名:在输入消息m、以及n个环签名成员的公钥p={p1,p2,p3,...,pn}以及用于创建交易的账户的私钥sk后,对消息m产生一个签名r,其中签名r中的其中一个参数呈环状;17.③、验证签名:在输入消息m以及n个环签名成员的公钥p={p1,p2,p3,...,pn}以及签名r后,若签名r为消息m的环签名,则输出“1”,否则输出“0”。18.其中,步骤①的具体过程为:19.(1)、初始化:setup(λ)→pk,msk:将一个安全参数λ作为输入,输出一个公钥pk和一个主密钥msk;20.(2)、加密:encrypt(pk,m,p)→c:该加密算法在访问结策略p下对敏感文档m进行加密,将公钥pk,敏感文档m和访问策略p作为输入,输出加密文档c;21.(3)、上传:upload(c)→h1:将加密文档c上传至ipfs中,返回加密文档c的哈希值h1;22.(4)、生成器:gen(noise)→cover-image:生成器接收一个随机噪声noise,生成接近真实的图像,用于后续隐写操作的载体图像cover-image;23.(5)、判别器:dis(real-image,cover-image)→0/1:判别器区分真实图像real-image和生成的载体图像cover-image,返回判断结果;当返回结果为“0”时,代表判别器可以区分出来真实图像real-image和载体图像cover-image;当返回结果为“1”时,代表判别器无法区分真实图像real-image和载体图像cover-image,此时的生成图像就可以作为载体图像,供后续隐写操作;24.(6)、图像隐写:embed(h1,cover-image)→stego-image:这一步骤主要使用lsb算法将加密文档c的哈希值h1嵌入到载体图像cover-image,得到载密图像stego-image;25.(7)、隐写分析器:steganalysis(cover-image,stego-image)→0/1:隐写分析器区分生成的载体图像cover-image和载密图像stego-image,返回判断结果;当返回结果为“0”时,代表判别器可以区分出来载体图像cover-image和载密图像stego-image;当返回结果为“1”时,代表判别器无法区分载体图像cover-image和载密图像stego-image。26.步骤②的具体过程为:27.a、上传:upload(stego-image)→h2:将载密图像stego-image上传至ipfs中,返回载密图像stego-image的哈希值h2;28.b、创建交易transaction(h2)→tx:在该阶段中,发送方创建一笔交易tx,交易的data字段携带载密图像stego-image的哈希值h2;29.c、环签名:sign(tx,p1,p2,p3,...,pn)→σ:p1,p2,…,pn分别表示所有环签名成员的公钥,其中包含发送方的公钥ps和接收方的公钥pb;在第一步中,使用加密散列函数计算k=hash(h),将k将用作对称加密密钥;在第二步中,选择一个随机值v;在第三步中,为除了发送方的n-1个环签名成员分别选择一个随机值xi,并根据yi=gi(xi)计算相应的yi;在第四步中,解环方程ck,v(y1,y2,...,yn)=v得到ys;在第五步,根据xs=gs-1(ys)使用发送方的私钥计算得到xs;在第六步中,环签名σ是一个(2n 1)-元组{p1,p2,...,pn;v;x1,x2,...,xn};30.d、提交交易:submit(tx,σ):发送方将经过环签名的交易发布到区块链网络,交易在区块链中广播,然后由utxo验证交易是否有效;当交易被验证有效后,它将被打包到一个块中,通过一个称为挖矿的过程;在验证块中包含的所有交易都是有效的之后,区块链网络中的所有节点将更新新生成的块;最后,接收方还可以接收发送方提交的交易。31.步骤③的具体过程为:32.i、验证签名:verify(σ,p1,p2,p3,...,pn)→0/1,签名验证算法包括三个步骤:第一步,对于每一个随机值xi,计算yi=gi(xi)得到相应的yi;第二步,计算对称密钥k=hash(h);第三步,验证环方程ck,v(y1,y2,...,yn)=v是否成立;如果环方程是正确的,则认为签名是正确的,否则认为签名是错误的;33.ii、读取:read(payload)→h2:从交易的data字段中读取出载密图像stego-image的哈希值h2;34.iii、下载:download(h2)→stego-image:接收方输入载密图像stego-image的哈希值h2到ipfs,ipfs首先通过载密图像stego-image的哈希值h2查找和载密图像stego-image相关的dht的索引结构,然后通过dht查找保存数据块的节点的位置;从节点下载载密图像的数据块后,ipfs将按照dht散列数组的顺序重新组装数据块,并向接收方返回完整的载密图像stego-image;35.iv、提取:extract(stego-image)→h1:从载密图像stego-image中提取出加密文档c的哈希值h1,提取算法是lsb嵌入算法的逆过程;36.v、下载:download(h1)→c:接收方输入加密文档c的哈希值h1到ipfs,ipfs首先通过加密文档c的哈希值h1查找和加密文档c相关的dht的索引结构,然后通过dht查找保存数据块的节点的位置;从节点下载加密文档c的数据块后,ipfs将按照dht散列数组的顺序重新组装数据块,并向接收方返回完整的加密文档c;37.vi、密钥生成:kengen(pk,msk,a)→ska:输入一个公钥pk,一个主密钥msk和一组请求者的属性集a,输出与请求者的属性集相关联的解密密钥ska;38.vii、解密:decrypt(pk,c,ska)→m:通过传入一个公钥pk,一个加密文档c和解密密钥ska,如果用户的解密密钥ska中包含的属性满足加密文档c包含的访问策略p时,则该算法将加密文档解密c为明文的敏感文档m。39.采用上述技术方案的本发明,首先发送方将敏感文档进行密文策略的属性基加密(ciphertext-policyattribute-basedencryption,cp-abe),得到加密文档后,将其存储于ipfs,并使用基于生成式对抗网络(generativeadversarialnetworks,gan)的图像隐写术将加密文档的哈希值嵌入到由gan生成的载体图像中,得到载密图像。发送方发起一笔交易,携带载密图像的哈希值,经过环签名后将交易发布到区块链网络中,最终各节点达到同步状态。接收方提取本地的交易中携带的载密图像的哈希值,并通过上述方法的逆过程从ipfs中搜索并下载加密文档。由于使用了cp-abe的访问控制策略,只有特定的接收方能解密加密文档并获得敏感文档。40.本发明的主要贡献包括4个方面:41.1、本发明首次在区块链隐蔽通信模型中引入环签名来隐藏隐蔽通信的发送方身份,解决了先前基于区块链的隐蔽通信方案都存在的发送方身份泄露问题。发送方使用自己的私钥和环签名成员的公钥对含有秘密信息的交易进行签名,将自己的身份隐藏起来,有效地保护用户身份隐私,减少了隐蔽信道暴露的风险,提高通信的隐蔽性,解决了技术问题(1)。42.2、本发明在区块链隐蔽通信中实现了传输mb级敏感数据。在隐蔽传输之前,为了提高敏感文档的安全性,发送方利用cp-abe对敏感文档进行加密。发送方使用设置的访问策略对敏感文档进行加密并为接收方制定专门的访问策略,接收方利用自己的属性集进行解密。这一过程不仅避免了密钥的传输,还可以让接收方不依赖其他附加信息而是利用自己的属性集进行解密。在加密之后,发送方仅需要对加密文档进行隐写嵌入操作,而不必将相关的密钥同加密文档一起进行嵌入,减少了嵌入量。较之以往对短消息的隐蔽传输,在保证敏感文档安全性的同时在传输数量级上有较大提高,实现了大量敏感数据的隐蔽传输,解决了技术问题(2)。43.3、本发明通过使用两次ipfs系统实现只发起一笔交易来传递敏感文档。第一次是将加密文档上传至ipfs,ipfs返回一串较短的哈希字符串,便于嵌入载体图像生成载密图像;第二次是将载密图像上传到ipfs,ipfs返回一串较短的哈希字符串,便于发送方只发起一笔交易携带此哈希字符串进行隐蔽传输,也避免了区块链直接存储载密图像而造成的存储开销过大的问题。较之以往发送方发起大量交易来传输秘密信息的方式,本发明只发起一笔交易的方式不易引发网络数据非正常事件分析程序的注意,避免引起攻击者察觉,且耗时短,解决了技术问题(3)。44.(4)本发明首次将基于gan的图像隐写术引入区块链隐蔽通信模型中,以抵抗基于统计特征的检测分析。本发明利用基于gan的图像隐写术生成符合自然图像的统计特征的载体图像,将秘密信息嵌入载体图像后,并对图像隐写效果进行分析。经过隐写分析器判别后输出与载体图像相似度极高的载密图像,减少了载体图像的修改痕迹,提高了隐写的隐蔽性,解决了技术问题(4)。附图说明45.图1为区块链隐蔽通信模型;46.图2为基于gan的图像隐写术;47.图3为h-sd&si的框架;48.图4为嵌入过程流程图;49.图5为传输过程流程图;50.图6为提取过程流程图;51.图7为访问控制策略流程图;52.图8为嵌入前后对比图;53.图8(a)为第一幅载体图像;54.图8(b)为第一幅载密图像;55.图8(c)为第二幅载体图像;56.图8(d)为第二幅载密图像;57.图9为均方误差的对比图;58.图9(a)为mnist数据集的载体图像;59.图9(b)为celeba人脸数据集的载体图像;60.图10为峰值信噪比的对比图;61.图10(a)为由mnist数据集计算的psnr;62.图10(b)为由celeba人脸数据集计算的psnr;63.图11为结构相似性的对比图;64.图11(a)为由mnist数据集计算的ssim;65.图11(b)为由celeba人脸数据集计算的ssim。具体实施方式66.区块链是一种块形式的分布式账本,其中的数据块是不可变的。每个节点都不能修改其数据,因为一旦记录下来,任何块中的数据都不能在没有修改所有后续块的情况下被追溯修改。节点是基于地址而不是个人身份创建交易。交易被广播到网络中的每个节点,然后由未花费的交易输出(unspendedtransactionoutputs,utxo)验证。一旦这些交易被验证,它们将被打包成块。当其他节点验证块中包含的所有交易都有效时,该块可以添加到区块链。最后,所有节点记录交易并到达信息同步状态。67.区块链中的隐蔽通信模型如图1所示。发送方alice通过特定的嵌入算法将秘密信息嵌入到公共载体中,形成一个包含秘密的载体,该载体将通过隐蔽信道进行传输。在嵌入秘密信息的过程中,alice使用密钥k对秘密信息进行加密。只有bob可以使用与嵌入过程相同或相关的密钥k提取秘密信息。在传输过程中,发送方不直接与接收方进行通信,而是随机选择接收地址与区块链网络中的其他普通节点进行通信。因为交易广播,最终接收方也能收到秘密信息。这样既不暴露接收方的身份,又保证了通信过程的隐蔽性。68.ipfs是一个分布式文件系统,它是基于内容寻址来唯一地标识每个文件。ipfs采用分布式哈希表(distributedhashtable,dht)的索引结构和merkle有向无环图(merkledirectedacyclicgraph,merkledag)的数据结构。当存储在ipfs对象中的文件在超过256kb时,文件会被分割成几个256kb的块。每个块的哈希值作为一个标识符(content-id,cid)来识别该块,而且还能用来验证数据是否被篡改。merkledag的根哈希值表示完整的文件。当发送方将文件上传到ipfs时,ipfs将返回一个用文件内容计算的哈希值。当接收方希望从ipfs下载文件时,他只需要将文件的哈希值输入到ipfs中,系统就会返回相应的文件。但是只有在发送方和受信任方建立ipfs集群时,受信任方才能使用哈希值从ipfs下载文件。ipfs集群分为公有ipfs集群和私有ipfs集群。公共ipfs集群是一个分布式网络,世界各地的任何ipfs节点都可以参与其中。私有ipfs集群中的节点只连接到具有共享密钥的其他对等体,并且这些节点不会响应外部访问。在ipfs网络中,如果一个节点故障,其他节点仍然可以提供所需的文件。它在很大程度上确保了存储在ipfs上的数据的安全性。69.gan是由goodfellow等人提出的一种生成模型,广泛地应用于图像的生成。该模型包括一个生成器(generator)和一个判别器(discriminator)。生成器的任务是从一个随机分布中采样一个噪声,然后输出合成图像。判别器将一张真实图像或者一张合成图像作为输入,输出判断的结果。生成器和判别器不断地进行对抗博弈,直到判别器将合成图像判断为真实图像,最终输出以假乱真的生成图像。70.基于gan的图像隐写术借鉴对抗的思想,引入信息隐藏技术。volkhonskiy等在隐写生成对抗网络中,首次将gan和信息隐写技术结合,在gan的基础上增加了一个图像隐写术模块和隐写分析模块,如图2所示。生成器生成符合自然图像的统计特征的合成图像。判别器判断图像的真假性,若将合成图像判断为真实图像,则将合成图像输入到图像隐写术模块,用作载体图像。图像隐写术模块将秘密信息嵌入到载体图像中。隐写分析模块来区分载体图像和载密图像。如果无法区分,则将含密图像输出;如果区分出来,则继续训练。71.实际的隐写过程使用传统的隐写术:最低有效位算法(leastsignificantbits,lsb),以保证秘密信息能够提取出。lsb是一种广泛应用于图像隐写中的信息隐藏算法。它将每个像素的最低有效位替换为秘密信息。每个像素由三种原色组成:红、绿、蓝(rgb),每种颜色占8位。在嵌入过程中,当要嵌入的秘密信息的位与像素的最低位不同时,将像素的最低位从“1”修改为“0”或从“0””修改为“1”。改变的像素值不影响图像的视觉效果。该算法不仅易于实现,而且可以隐藏大量的秘密信息。72.为了保护敏感文档,需要在对秘密文档进行隐蔽传输之前,对敏感文档进行加密处理,不仅保证了隐蔽性,而且提高系统抵御各种恶意攻击的安全性。73.bethencourt等在2007年ieee安全和隐私研讨会上提出了第一个cp-abe方案,该方案允许数据所有者通过设置访问策略来实现数据的细粒度访问控制。密文对应于一个访问结构而密钥对应于属性集合,解密当且仅当属性集合中的属性能够满足此访问结构。cp-abe的具体流程如下:74.①、初始化:输入安全参数,输出公开参数pk和一个主密钥mk。75.②、加密:输入一个消息m、一个访问结构a、公开参数pk,输出密文e。76.③、密钥生成:输入一组属性y、主密钥mk、公开参数pk,输出一个属性y对应的解密密钥sk。77.④、解密算法输入:通过传入公开参数pk、密文e和用户解密密钥sk,如果在用户解密密钥sk中包含的属性满足密文e包含的访问结构a时,该算法将密文e解密为明文m。78.环签名是由rivest等人在2001年发表的文章《如何泄露秘密中》首次提出的一种匿名签名技术,具有无条件匿名性和不可伪造性。签名者利用自己的私钥和环签名成员中的其他人的公钥进行签名。即使攻击者在获得环签名成员私钥的情况下,也无法确定签名是环中哪个成员产生的。79.本发明中,为了隐藏隐蔽通信中发送方身份,发送方在创建区块链交易时采用环签名。但是为了避免除通信双方外的环签名成员都可以对交易进行验证,本发明借鉴环签名的思想,在区块链网络中的发送方alice创建多个账户作为环签名成员,且只使用其中一个账户创建交易,最后一个环签名成员则是接收方bob。如果接收方bob能对交易验证成功,则表示交易实际上是发给接收方bob的。具体的签名过程如下:80.①、系统参数生成:创建多个账户,并为每个账户生成相应的公钥和私钥。81.②、签名:在输入消息m、以及n个环签名成员的公钥p={p1,p2,p3,...,pn}以及用于创建交易的账户的私钥sk后,对消息m产生一个签名r,其中签名r中的某个参数根据一定的规则呈环状。82.③、验证签名:在输入消息m、以及n个环签名成员的公钥p={p1,p2,p3,...,pn}以及签名r后,若签名r为消息m的环签名,则输出“1”,否则输出“0”。83.本发明在区块链网络中引入cp-abe、基于gan的图像隐写术和环签名,提出了一种可隐藏敏感文档和发送者身份的区块链隐蔽通信模型:h-sd&si。h-sd&si的框架如图3所示,它由嵌入过程、传输过程和提取过程三个模块组成。84.嵌入过程:85.信息隐藏技术不同于信息加密技术。信息隐藏技术使未授权方或恶意方不知道秘密信息的存在,而信息加密技术将信息处理成难以理解的数据。通过将信息隐藏技术和信息加密技术相结合,不仅可以保证隐蔽性,而且还提高对各种恶意攻击的安全性。因此,在本发明中,敏感文档首先经过信息加密技术处理成加密文档,加密文档再经过信息隐藏技术隐藏在某一载体中,接着进入下一阶段的载体在区块链隐蔽传输过程。86.在这一阶段,发送方alice首先需要对敏感文档secret.pdf进行cp-abe加密,得到加密文档secret.pdf.cpabe,接着alice将加密文档上传到至ipfs。alice和接收方bob只有建立ipfs集群,bob才能根据哈希值从ipfs下载文件,因此本发明建立私有ipfs集群进行存储文件。alice创建一个共享密钥swarm.key,并将其发送给其他节点,包括bob。假设alice和bob事先约定:bob接收到swarm.key时,表示他知道alice要发送敏感文档。为了让bob知道何时读取敏感文档,本发明引入了计时机制。在区块链中生成一个块需要大约10分钟,并且每个块包含2000到3000个交易,因此本发明将时间间隔设置为10分钟。10分钟之后,bob开始遍历新生成的区块。87.敏感文档经过cp-abe加密之后得到加密文档,但是加密文档不方便使用信息隐藏技术嵌入到某一载体中,本发明引入ipfs来存储加密文档,仅将ipfs返回的加密文档的哈希值嵌入到隐写载体中,这样做的目的不仅可以保证隐蔽性和安全性,还能使敏感的隐私数据不以明文的形式直接上链。88.alice将加密文档上传至ipfs之后,ipfs返回加密文档的哈希值。alice利用gan生成具有自然图像统计特征的载体图像,将文档的哈希值使用lsb算法嵌入到载体图像中,得到载密图像。嵌入过程如图4所示,具体的嵌入步骤如下所示:89.(1)、初始化:setup(λ)→pk,msk:本发明将一个安全参数λ作为输入,输出一个公钥pk和一个主密钥msk。90.(2)、加密:encrypt(pk,m,p)→c:该加密算法在访问结策略p下对敏感文档m进行加密,将公钥pk,敏感文档m和访问策略p作为输入,输出加密文档c;91.(3)、上传:upload(c)→h1:将加密文档c上传至ipfs中,返回加密文档c的哈希值h1。92.(4)、生成器:gen(noise)→cover-image:该算法实际上是一个神经网络,称为生成器generator,它接收一个随机噪声noise,尽量生成接近真实的图像,用于后续隐写操作的载体图像cover-image。93.(5)、判别器:dis(real-image,cover-image)→0/1:这一算法实际上也是一种神经网络,称为判别器discriminator。它的任务是区分真实图像real-image和生成的载体图像cover-image,返回判断结果。当返回结果为“0”时,代表判别器可以区分出来真实图像real-image和载体图像cover-image;当返回结果为“1”时,代表判别器无法区分真实图像real-image和载体图像cover-image,此时的生成图像就可以作为载体图像,供后续隐写操作。94.(6)、图像隐写:embed(h1,cover-image)→stego-image:这一步骤主要使用lsb算法将加密文档c的哈希值h1嵌入到载体图像cover-image,得到载密图像stego-image.95.(7)、隐写分析器:steganalysis(cover-image,stego-image)→0/1:这一算法的任务是区分生成的载体图像cover-image和载密图像stego-image,返回判断结果。当返回结果为“0”时,代表判别器可以区分出来载体图像cover-image和载密图像stego-image;当返回结果为“1”时,代表判别器无法区分载体图像cover-image和载密图像stego-image。96.传输过程:97.如果将载密图像直接存储在区块链上,开销太高;如果将图像压缩存储在区块链上,可能会由于图像失真造成嵌入的秘密信息丢失,因此本发明将区块链和ipfs结合起来,实现链上和链下的协同存储。ipfs实现载密图像的链下存储,区块链存储ipfs返回的文件的哈希值。这种协作模式有效地解决了区块链的存储容量问题,而且保证了载密图像的完整性、真实性和安全性。98.在这一过程中,alice将载密图像上传至ipfs中,得到载密图像的哈希值。接着alice随机选择一个接收地址,而不是直接选择bob的地址,创建一笔交易,将载密图像的哈希值存放到交易的data字段。在对交易环签名之后,将交易广播到区块链网络中,交易经验证、打包上链,bob也能收到交易。传输过程如图5所示,具体的传输步骤如下所示:99.a、上传:upload(stego-image)→h2:将载密图像stego-image上传至ipfs中,返回载密图像stego-image的哈希值h2。100.b、创建交易transaction(h2)→tx:在该阶段中,alice创建一笔交易tx,交易的data字段携带载密图像stego-image的哈希值h2。101.c、环签名:sign(tx,p1,p2,p3,...,pn)→σ:该签名算法包括六个步骤。p1,p2,…,pn分别表示所有环签名成员的公钥,其中包含alice的公钥ps和bob的公钥pb。在第一步中,使用加密散列函数计算k=hash(h),将k将用作对称加密密钥。在第二步中,选择一个随机值v。在第三步中,为除了发送方的n-1个环签名成员分别选择一个随机值xi,并根据yi=gi(xi)计算相应的yi,函数yi=gi(xi)表示利用公钥pi对xi加密,yi代表加密之后的结果;函数xs=gs-1(ys)表示,利用对应的私钥对ys进行解密。。在第四步中,解环方程ck,v(y1,y2,...,yn)=v得到ys。在第五步,根据xs=gs-1(ys)使用发送方的私钥计算得到xs。在第六步中,环签名σ是一个(2n 1)-元组{p1,p2,...,pn;v;x1,x2,...,xn}。102.d、提交交易:submit(tx,σ):alice将经过环签名的交易发布到区块链网络,交易在区块链中广播,然后由utxo验证交易是否有效。当交易被验证有效后,它将被打包到一个块中,通过一个称为挖矿的过程。在验证块中包含的所有交易都是有效的之后,区块链网络中的所有节点将更新新生成的块。最后,接收方还可以接收发送方提交的交易。103.提取过程:104.bob在接收到swarm.key后的10分钟,开始遍历新生成区块中的交易,并尝试验证环签名,如果验证成功,则表示交易实际上是发给bob的。提取过程如图6所示,具体的提取步骤如下所示:105.i、验证签名:verify(σ,p1,p2,p3,...,pn)→0/1,签名验证算法包括三个步骤:第一步,对于每一个随机值xi,计算yi=gi(xi)得到相应的yi。第二步,计算对称密钥k=hash(h)。第三步,验证环方程ck,v(y1,y2,...,yn)=v是否成立。如果环方程是正确的,则认为签名是正确的,否则认为签名是错误的。106.ii、读取:read(payload)→h2:从交易的data字段中读取出载密图像stego-image的哈希值h2。107.iii、下载:download(h2)→stego-image:bob输入载密图像stego-image的哈希值h2到ipfs,ipfs首先通过载密图像stego-image的哈希值h2查找和载密图像stego-image相关的dht的索引结构,然后通过dht查找保存数据块的节点的位置。从节点下载载密图像的数据块后,ipfs将按照dht散列数组的顺序重新组装数据块,并向bob返回完整的载密图像stego-image。108.iv、提取:extract(stego-image)→h1:从载密图像stego-image中提取出加密文档c的哈希值h1,提取算法是lsb嵌入算法的逆过程。109.v、下载:download(h1)→c:bob输入加密文档c的哈希值h1到ipfs,ipfs首先通过加密文档c的哈希值h1查找和加密文档c相关的dht的索引结构,然后通过dht查找保存数据块的节点的位置。从节点下载加密文档c的数据块后,ipfs将按照dht散列数组的顺序重新组装数据块,并向bob返回完整的加密文档c。110.vi、密钥生成:kengen(pk,msk,a)→ska:该算法是密钥生成算法,输入一个公钥pk,一个主密钥msk和一组请求者的属性集a,输出与请求者的属性集相关联的解密密钥ska。111.vii、解密:decrypt(pk,c,ska)→m:该算法是解密算法,通过传入一个公钥pk,一个加密文档c和解密密钥ska,如果用户的解密密钥ska中包含的属性满足加密文档c包含的访问策略p时,则该算法将加密文档解密c为明文的敏感文档m。112.本发明进行了实验过程,实验采用python语言在ubuntu16.04中编写,并使用mnist数据集和celeba人脸数据集分别对100个大小不同的敏感文档进行测试。113.在ubuntu系统中,本实验使用fiscobcos模拟区块链,创建20个账户,每个账户的公钥以及地址如表1所示。[0114][0115][0116]表1。[0117]假设账户1是alice用于创建交易的账户,账户2是bob的账户,alice配置本地ipfs节点,并使用js-ipfs-api调用ipfs服务。alice生成共享密钥swarm.key并通过安全通道将共享密钥swarm.key发送给其他节点,包括bob。共享密钥swarm.key的具体内容为:[0118]/key/swarm/psk/1.0.0/[0119]/base16/[0120]8c45603441c4e23f70714a492f011fa1056e82124f736437f28481155ce46ef[0121]通过cpabe-setup命令生成公钥pub_key和主密钥master_key,alice使用公钥pub_key分别对100个大小不同的敏感文档[secret1.pdf,secret2.pdf,secret3.pdf,...,secret100.pdf]进行加密,如表2所示,得到加密文档[secret1.pdf.cpabe,secret2.pdf.cpabe,secret3.pdf.cpabe,...,secret100.pdf.cpabe],加密文档中暗含了访问控制策略policy。并且利用bob的属性、公钥pub_key和主密钥master_key,为bob生成解密密钥bob_priv_key。[0122][0123]表2.[0124]区块链网络中包括多个用户(比如user1、user2和user3等),每个用户可以有多个账户地址(比如address1、address2和address3等)。另外,区块链网络中可以构建多个私有ipfs集群(比如ipfs1、ipfs2和ipfs3等)。因此,本发明数据访问控制中属性定义的可选范围如表3所示。[0125]属性属性值用户iduser1、user2、…账户地址idaddress1、address2、…ipfs集群idipfs1、ipfs2、…[0126]表3。[0127]策略是有属性组成的访问结构,本发明为了只让授权方bob解密加密文档,为bob定制专属的访问策略。策略policy定义为:(用户id=bob)and(地址id=0x91cb0d322ba3817cae7b00f42c004f9c1afd8bcc)and(ipfs集群id=ipfs*),访问控制策略如图7所示。[0128]alice使用add()方法分别将加密文档[secret1.pdf.cpabe,secret2.pdf.cpabe,secret3.pdf.cpabe,…,secret100.pdf.cpabe]上传到ipfs上,ipfs返回它们的哈希值,如表2的第4列所示。然后alice将返回的哈希值转成二进制序列,便于后续嵌入到生成的载体图像中。后续操作以secret1.pdf.cpabe的哈希值h1为例,将h1转成二进制序列bs,h1和bs的具体内容如表3中所示。为了便于让收方知道嵌入何时结束,双方事先约定在哈希值h1后面添加一个分隔符d,其具体内容是“/n#”,d以及d的二进制序列bsd如表4中所示。[0129][0130]表4。[0131]alice利用基于gan的图像隐写术分别训练mnist数据集和celeba人脸数据集生成载体图像cover-image1和cover-image2,如图8(a)和8(c)所示。接着,alice将bs和bsd嵌入到生成的载体图片cover-image1和cover-image2中,得到载密图像stego-image1和stego-image2,如图8(b)和8(d)所示,嵌入前后对比如图8所示。然后alice将载密图像stego-image1和stego-image2上传到ipfs上,ipfs返回载密图像stego-image1的哈希值和载密图像stego-image2的哈希值2的哈希值和的具体内容如表3中所示。[0132]alice没有直接选择bob的帐户,而是随机选择一个接收地址,创建交易,交易中的data字段携带载密图像stego-image的哈希值h2。alice对交易进行环签名,环签名结果写入交易的extradata字段,并将交易发布到区块链网络。交易被验证之后,被打包成块。区块链网络中的所有节点更新新生成的块。最后,bob也可以接收到alice提交的交易。交易结构如下所示:[0133]①signedtransaction={[0134]②nonce=1,[0135]③gasprice=300000000,[0136]④gas=300000000,[0137]⑤blocklimit=502,[0138]⑥receiveaddress=accounts[random.randint(1,20)].address,[0139]⑦value=0,[0140]⑧data='qmvupp1swga9nsbwvjdrb6ofnyhe28huhpw4w4b9chuajq',[0141]⑨extradata='{"message":"qmvupp1swga9nsbwvjdrb6ofnyhe28huhpw4w4b9chuajq"\,"param_info":"{\"g\":\"2.\"\,\"p\":\"116629146130897……085687.\"\,\"q\":\"58314573065448517876……542843.\"}"\,"ret_code":0\,"sig":"{\"c\":\"596934492704……849502.\"\,\"y\":\"631573589796……098535.\"\,\"num\":\"3\"\,\"pk0\":\"114228877694……654739.\"\,\"pk1\":\"4751250745535584……301670.\"\,\"pk2\":\"7401228587……502970.\"\,\"s0\":\"53226645683501……384828.\"\,\"s1\":\"2403484418121……539097.\"\,\"s2\":\"1610471047……137130.\"}"}'}[0142]为了让bob能查到alice提交的交易,双方事先约定data字段中有‘qm’开头的交易即为alice提交的交易。bob在收到共享密钥swarm.key的10分钟后,开始遍历新生成的块,查找data字段中有‘qm’开头的交易。找到交易后,bob先验证环签名,验证通过后,读取交易的data字段,将data字段的内容输入到ipfs,获取完整的载密图像。根据lsb算法的提取算法从载密图像中提取出加密文档的哈希值,再将加密文档的哈希值输入到ipfs,ipfs返回完整的加密文档。最后bob根据自己的属性集(bob,0x91cb0d322ba3817cae7b00f42c004f9c1afd8bcc,ipfs*)获得解密密钥,解密加密文档得到敏感文档。[0143](1)传输秘密信息容量[0144]本发明对100个不同大小的敏感文档分别进行仿真实验操作,将这些敏感文档进行加密后上传至ipfs,并成功地将ipfs返回的哈希值嵌入到载体图像中进行隐蔽传输。相比于以往只能传递一条消息的研究,本发明提出的方法在传输数量级上有很大的提高,传输的秘密信息量可达到mb。区块链隐蔽通信模型中各方法的传输秘密信息量对比如表5所示。[0145][0146]表5。[0147](2)隐蔽性[0148]隐蔽性主要是指载体图像和载密图像的统计特征的相似性,主要使用均方误差(mse),峰值信噪比(psnr)和结构相似性(ssim)来进行评估。[0149]1)均方误差(mean-squareerror,mse)主要是反映载体图像与载密图像之间的差异程度,使用这个指标来衡量嵌入秘密信息之后得到的载密图像的质量。通过将载体图像和载密图像的所有像素值差的平方和除以像素的总数来计算均方误差。mse值越小,隐写方法越好。mse的公式表示如下:[0150][0151]其中,i,j分别表示图像的行和列,i(i,j)表示载体图像中第i行,第j列的像素,i′(i,j)表示载体图像中第i行,第j列的像素。[0152]文献[9]使用的是传统的图像隐写术lsb,本发明使用的是基于gan的图像隐写术。本发明将文献[9]中的隐写方法和本发明方法作对比,分别将秘密信息嵌入普通载体和由mnist数据集生成的100张载体图像中,并计算载体图像和载密图像之间的mse,如图9(a)所示。本发明方法的mse在0.2左右,远低于传统隐写方法的mse。同样地,分别将秘密信息嵌入普通载体和由celeba人脸数据集生成的100张载体图像中,并计算载体图像和载密图像之间的mse,如图9(b)所示。本发明方法的mse远低于文献[9]的mse,即本发明隐写方法的隐蔽性要好于文献[9]的隐写方法。[0153]2)峰值信噪比(peaksignaltonoiseratio,psnr)这个指标来衡量秘密信息嵌入图像之后得到的载密图像的质量。与mse相反,psnr值越大,图像的质量越好。它的单位是db,当psnr的值高于40db时,说明图像质量极好,非常接近原始图像;当psnr的值介于30db和40db之间时,说明图像质量较好,可以察觉到图像失真但可以接收;当psnr的值介于20db和30db之间时,说明图像质量差;当psnr的值低于20db,说明图像不可接收。[0154]psnr的公式表达如下:[0155][0156]本发明将文献[9]中的隐写方法和本发明方法作对比,分别将秘密信息嵌入普通载体和由mnist数据集生成的100张载体图像中,并计算载体图像和载密图像之间的psnr,如图10(a)所示。同样地,分别将秘密信息嵌入普通载体和由celeba人脸数据集生成的100张载体图像中,并计算载体图像和载密图像之间的mse,如图10(b)所示。本发明方法的psnr远高于文献[9]所用的隐写方法的psnr,即本发明隐写方法的隐蔽性要好于文献[9]的隐写方法。[0157]3)结构相似性(structuralsimilarityindex,ssim)是一种衡量两幅图像相似度的指标[26]。ssim的最大值为1。ssim值越大,载体图像和载密图像相似性越高。ssim的公式表达如下:[0158][0159]其中,μx代表x的平均值,μy代表y的平均值,σx2代表x的方差,σy2代表y的方差,σxy代表x和y的协方差,c1=(k1l)2和c2=(k2l)2是用来维持稳定的常数,l是像素值得动态范围,k1=0.01,k1=0.03。[0160]本发明将文献[9]中的隐写方法和本发明方法作对比,分别将秘密信息嵌入普通载体和由mnist数据集生成的100张载体图像中,并计算载体图像和载密图像之间的ssim,如图11(a)所示。本发明方法的ssim接近于1,而且高于文献[9]所用的隐写方法的ssim,即使用本发明方法得到的载密图像与载体图像相似性极高,隐蔽性要好于文献[9]的隐写方法。同样地,分别将秘密信息嵌入普通载体和由celeba人脸数据集生成的100张载体图像中,并计算载体图像和载密图像之间的ssim,如图11(b)所示。本发明方法的ssim高于文献[9]所用的隐写方法的ssim,同样可以得出本发明方法的隐蔽性要好于文献[9]中的隐写方法这一结论。[0161](3)安全性[0162]定义1:(s1安全性)是指攻击者没有足够的信息证明经过传输信道的载体信息中隐藏有秘密信息。[0163]该类安全性要求隐蔽通信满足不可区分性。本发明用于隐写术的载体图像是由基于gan的图像隐写术生成的,载体图像和载密图像的统计特征极为相似,在秘密信息的隐蔽传输过程中,不易让攻击者发现含有秘密信息的载体,保证了安全性。[0164]定义2:(s2安全性)是指通信信息受到主动攻击的情况下仍然能够正确接收到秘密信息.[0165]该类安全性是指攻击者无法损坏经过传输信道的通信信息中所隐藏的秘密信息,即受到攻击者攻击的情况下仍然能够从通信信息中恢复秘密信息。首先,区块链的抗篡性改使得隐蔽通信的攻击者对秘密信息的删除和篡改都是无效的。其次,本发明在隐写之前使用cp-abe对敏感文档进行加密,只有当用户的属性通过了访问控制策略的验证时,用户才能对加密文档进行解密,抵御了用户合谋攻击。而且模型的安全性在一定程度上取决于使用的密钥的机密性,cp-abe根据用户属性生成解密密钥,避免了私钥泄露。最后,在本发明的区块链隐蔽通信中,发送方和接收方身份都被隐藏,攻击者很难发现含有秘密信息的交易。即使攻击者怀疑图像中秘密信息,在不知道提取算法的情况下很难提取出秘密信息。而且在不知道解密密钥的前提下,也无法获取到敏感文档。由此,保证了隐蔽通信的安全性。[0166]以上所述的仅是本发明的优选实施方式,应当指出,对于本领域的技术人员来说,在不脱离本发明整体构思前提下,还可以作出若干改变和改进,这些也应该视为本发明的保护范围。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献