时间:2024-08-31
佘 维,霍丽娟,刘 炜,张志鸿,宋 轩,田 钊
(1. 郑州大学网络空间安全学院,河南郑州 450000;2. 郑州市区块链与数据智能重点实验室,河南郑州 450000;3. 河南省互联网医疗卫生服务协同创新中心,河南郑州 450000;4. 郑州大学信息工程学院,河南郑州 450000)
传统的隐蔽通信是将秘密信息隐藏于常用的载体中进行隐蔽传输的技术[1],在信息安全、数据通信等方面发挥着重要作用. 常用的载体包括图像、文本、音频、视频等,其中图像因其具有较高的有效载荷能力,是广泛使用的载体格式[2]. 但是在传统的隐蔽通信过程中,载体信息可能会面临被删除或者篡改的风险,从而导致嵌入的秘密信息被破坏. 而且在此过程中,通信双方的身份暴露在网络中,攻击者可以对通信进行针对性的干扰和阻断.
相比于其他的通信媒介,区块链具有抗篡改、防伪造、匿名性等特点[3~5]. 抗篡改使得隐蔽通信的攻击者对秘密信息的删除和篡改都是无效的;防伪造使得隐蔽通信的攻击者不能伪造秘密信息的内容;匿名性使得隐蔽通信的双方可以进行匿名通信,不必暴露真实身份. 因此,一些研究使用区块链作为通信媒介来解决传统隐蔽通信面临的问题.Partala等人[6]首次提出了将秘密信息嵌入区块链交易地址的最低位进行隐蔽传输,并对其安全性进行了研究和验证.Akbari 等人[7]利用基于区块链的交易隐写术和图像隐写术实现了一种安全机密的通信方式.Liu 等人[8]将区块链交易数据的敏感部分加密隐藏到HEVC视频中,以保护区块链的隐私交易数据.She 等人[9]将区块链和星际文件系统(Inter Planetary File System,IPFS)结合实现一种双重隐写术,并解决大文件的载密载体在区块链中的存储问题.这些研究都是对一条短消息进行隐蔽传输. 但是随着区块链在智慧城市、智慧医疗、智慧政务等领域的大量应用和飞速发展,需要进行隐蔽通信的数据量越来越大,短消息的隐蔽传输并不适用于敏感数据量大的情况. 而且上述区块链隐蔽通信的研究中主要还存在以下尚未解决的问题.
(1)都未隐藏发送方身份,存在发送方身份泄露问题,增加了隐蔽信道暴露的风险.
(2)都难以对数据量大的MB 级敏感数据进行隐蔽传输.
(3)都需要从发送方发起大量的交易来嵌入秘密信息,它们的统计特性容易引起攻击者察觉,且耗时较长,还存在某些交易未被打包而造成信息缺失的缺点.
(4)一些研究中采用的图像隐写术都是以一般的图像作为载体,载体图像经过嵌入秘密信息得到载密图像,在这一过程中,载体图像的修改痕迹会比较大. 随着隐写分析技术的发展,以一般的图像作为载体的隐写术越来越难以抵抗基于统计特征的检测分析.
基于以上问题,本文提出一种可隐藏敏感文档和发送者身份的区块链隐蔽通信模型:H-SD&SI. 首先发送方将敏感文档进行密文策略的属性基加密[10](Ciphertext-Policy Attribute-Based Encryption,CP-ABE),得到加密文档后,将其存储于IPFS,并使用基于生成式对抗网络(Generative Adversarial Networks,GAN)的图像隐写术[11~15]将加密文档的哈希值嵌入由GAN 生成的载体图像中,得到载密图像. 发送方发起一笔交易,携带载密图像的哈希值,经过环签名[16]后将交易发布到区块链网络中,最终各节点达到同步状态[17]. 接收方提取本地的交易中携带的载密图像的哈希值,并通过上述方法的逆过程从IPFS 中搜索并下载加密文档. 由于使用了CP-ABE 的访问控制策略,只有特定的接收方能解密加密文档并获得敏感文档.
本文的主要贡献包括4个方面.
(1)本文首次在区块链隐蔽通信模型中引入环签名来隐藏隐蔽通信的发送方身份,解决了先前基于区块链的隐蔽通信方案都存在的发送方身份泄露问题.发送方使用自己的私钥和环签名成员的公钥对含有秘密信息的交易进行签名,将自己的身份隐藏起来,有效地保护用户身份隐私,减少了隐蔽信道暴露的风险,提高了通信的隐蔽性,解决了前述问题(1).
(2)本文在区块链隐蔽通信中实现了传输MB 级敏感数据. 在隐蔽传输之前,为了提高敏感文档的安全性,发送方利用CP-ABE 对敏感文档进行加密. 发送方使用设置的访问策略对敏感文档进行加密并为接收方制定专门的访问策略,接收方利用自己的属性集进行解密. 这一过程不仅避免了密钥的传输,还可以让接收方不依赖其他附加信息而是利用自己的属性集进行解密. 在加密之后,发送方仅需要对加密文档进行隐写嵌入操作,而不必将相关的密钥同加密文档一起进行嵌入,减少了嵌入量. 较之以往对短消息的隐蔽传输,该方法在保证敏感文档安全性的同时在传输数量级上有较大提高,实现了大量敏感数据的隐蔽传输,解决了前述问题(2).
(3)本文通过使用两次IPFS 系统实现只发起一笔交易来传递敏感文档. 第一次是将加密文档上传至IPFS,IPFS 返回一串较短的哈希字符串,便于嵌入载体图像生成载密图像;第二次是将载密图像上传到IPFS,IPFS 返回一串较短的哈希字符串,便于发送方只发起一笔交易携带此哈希字符串进行隐蔽传输,也避免了区块链直接存储载密图像而造成的存储开销过大的问题. 较之以往发送方发起大量交易来传输秘密信息的方式,本文只发起一笔交易的方式不易引发网络数据非正常事件分析程序的注意,避免引起攻击者察觉,且耗时短,解决了前述问题(3).
(4)本文首次将基于GAN 的图像隐写术引入区块链隐蔽通信模型中,以抵抗基于统计特征的检测分析.本文利用基于GAN 的图像隐写术生成符合自然图像的统计特征的载体图像,将秘密信息嵌入载体图像后,对图像隐写效果进行分析. 经过隐写分析器判别后输出与载体图像相似度极高的载密图像,减少了载体图像的修改痕迹,提高了隐写的隐蔽性,解决了前述问题(4).
本节主要介绍基于区块链的隐蔽通信和IPFS、基于GAN的隐写术及CP-ABE和环签名的相关知识.
区块链是一种链式结构的分布式账本,其中链上的数据是不可被篡改的[18]. 每个节点都不能修改其数据,因为一旦被记录下来,任何块中的数据都不能在没有修改所有后续块的情况下被追溯修改. 节点是基于地址而不是个人身份创建交易. 交易被广播到网络中的每个节点,然后由未花费的交易输出(Unspended Transaction Outputs,UTXO)验证. 一旦这些交易被验证,它们将被打包成块. 当其他节点验证块中包含的所有交易都有效时,该块可以添加到区块链. 最后,所有节点记录交易并达到信息同步状态.
区块链中的隐蔽通信模型如图1 所示. 发送方Alice 通过特定的嵌入算法将秘密信息嵌入公共载体中,形成一个包含秘密的载体,该载体将通过隐蔽信道进行传输. 在嵌入秘密信息的过程中,Alice使用密钥K对秘密信息进行加密. 只有Bob 可以使用与嵌入过程相同或相关的密钥K提取秘密信息. 在传输过程中,发送方不直接与接收方进行通信,而是随机选择接收地址与区块链网络中的其他普通节点进行通信. 因为交易广播,最终接收方也能收到秘密信息. 这样既不暴露接收方的身份,又保证了通信过程的隐蔽性.
图1 区块链隐蔽通信模型
IPFS 是一个分布式文件系统,它是基于内容寻址来唯一地标识每个文件.IPFS 采用分布式哈希表(Distributed Hash Table,DHT)的索引结构和Merkle 有向无环图(Merkle Directed Acyclic Graph,Merkle DAG)的数据结构[19]. 当存储在IPFS 对象中的文件超过256 KB时,文件会被分割成几个256 KB 的块. 每个块的哈希值作为一个标识符(Content-ID,CID)来识别该块,而且还能用来验证数据是否被篡改.Merkle DAG 的根哈希值表示完整的文件. 当发送方将文件上传到IPFS 时,IPFS 将返回一个用文件内容计算的哈希值. 当接收方希望从IPFS 下载文件时,他只需要将文件的哈希值输入到IPFS 中,系统就会返回相应的文件. 但是只有在发送方和接收方建立IPFS 集群时,接收方才能使用哈希值从IPFS 下载文件. IPFS 集群分为公有IPFS 集群和私有IPFS 集群. 公共IPFS 集群是一个分布式网络,世界各地的任何IPFS 节点都可以参与其中. 私有IPFS 集群中的节点只连接到具有共享密钥的其他对等体,并且这些节点不会响应外部访问. 在IPFS 网络中,如果一个节点故障,其他节点仍然可以提供所需的文件. 它在很大程度上确保了存储在IPFS 上的数据的安全性.
GAN 是由Goodfellow 等人[20]提出的一种生成模型,被广泛地应用于图像的生成. 该模型包括一个生成器(Generator)和一个判别器(Discriminator)[21]. 生成器的任务是从一个随机分布中采样一个噪声,然后输出合成图像. 判别器将一张真实图像或者一张合成图像作为输入,输出判断的结果. 生成器和判别器不断地进行对抗博弈,直到判别器将合成图像判断为真实图像,最终输出以假乱真的生成图像.
基于GAN 的图像隐写术借鉴对抗的思想,引入信息隐藏技术.Volkhonskiy 等[22]首次将GAN 和信息隐写技术结合,在GAN 的基础上增加了一个图像隐写术模块和隐写分析模块,如图2 所示. 生成器生成符合自然图像的统计特征的合成图像. 判别器判断图像的真假性,若将合成图像判断为真实图像,则将合成图像输入到图像隐写术模块,用作载体图像. 图像隐写术模块将秘密信息嵌入到载体图像中. 隐写分析模块来区分载体图像和载密图像. 如果无法区分,则将含密图像输出;如果区分出来,则继续训练.
图2 基于GAN的图像隐写术
实际的隐写过程使用传统的隐写术:最低有效位算法(Least Significant Bits,LSB),以保证秘密信息能够提取出. LSB 是一种被广泛应用于图像隐写中的信息隐藏算法. 它将每个像素的最低有效位替换为秘密信息. 每个像素由三种原色即红、绿、蓝(RGB)组成,每种颜色占8 位. 在嵌入过程中,当要嵌入的秘密信息的位与像素的最低位不同时,将像素的最低位从“1”修改为“0”或从“0”修改为“1”. 改变的像素值不影响图像的视觉效果. 该算法不仅易于实现,而且可以隐藏大量的秘密信息.
为了保护敏感文档,需要在对秘密文档进行隐蔽传输之前,对敏感文档进行加密处理,不仅保证了隐蔽性,而且提高了安全性.
Bethencourt 等[23]提出了第一个CP-ABE 方案,该方案允许数据所有者通过设置访问策略来实现数据的细粒度访问控制. 密文对应于一个访问结构而密钥对应于属性集合,当且仅当属性集合中的属性能够满足此访问结构才能解密[24].CP-ABE的具体流程如下.
(1)初始化:输入安全参数,输出公开参数PK 和一个主密钥MK.
(2)加密:输入一个消息m、一个访问结构A、公开参数PK,输出密文E.
(3)密钥生成:输入一组属性Y、主密钥MK、公开参数PK,输出一个属性Y对应的解密密钥SK.
(4)解密算法输入:通过传入公开参数PK、密文E和用户解密密钥SK,如果在用户解密密钥SK 中包含的属性满足密文E包含的访问结构A时,该算法将密文E解密为明文M.
环签名是由Rivest 等人[25]首次提出的一种匿名签名技术,具有无条件匿名性和不可伪造性. 签名者利用自己的私钥和环签名成员中的其他人的公钥进行签名. 即使攻击者在获得环签名成员私钥的情况下,也无法确定签名是环中哪个成员产生的. 本文中,为了隐藏隐蔽通信中发送方身份,发送方在创建区块链交易时采用环签名. 同时为了避免除通信双方外的环签名成员都可以对交易进行验证,本文借鉴环签名的思想,在区块链网络中的发送方Alice创建多个账户作为环签名成员,且只使用其中一个账户创建交易,最后一个环签名成员则是接收方Bob. 如果Bob 能对交易验证成功,则表示交易实际上是发给Bob 的. 具体的签名过程如下.
(1)系统参数生成:创建多个账户,并为每个账户生成相应的公钥和私钥.
(2)签名:在输入消息m和n个环签名成员的公钥P={P1,P2,…,Pn}以及用于创建交易的账户的私钥SK后,对消息m产生一个签名R,其中R中的某个参数根据一定的规则呈环状.
(3)验证签名:在输入消息m和n个环签名成员的公钥P={P1,P2,…,Pn}以及签名R后,若R为m的环签名则输出“1”,否则输出“0”.
在本节中,本文在区块链网络中引入CP-ABE、基于GAN 的图像隐写术和环签名,提出了一种可隐藏敏感文档和发送者身份的区块链隐蔽通信模型:HSD&SI.H-SD&SI 的框架如图3 所示,它由嵌入过程、传输过程和提取过程三个部分组成.
图3 H-SD&SI的框架
信息隐藏技术不同于信息加密技术. 信息隐藏技术使未授权方或恶意方不知道秘密信息的存在,而信息加密技术将信息处理成难以理解的数据. 将信息隐藏技术和信息加密技术相结合,不仅可以保证隐蔽性,而且还能提高模型的安全性. 因此,在本文中,敏感文档首先经过信息加密技术处理成加密文档,加密文档再经过信息隐藏技术隐藏在某一载体中,接着进入下一阶段的载体在区块链隐蔽传输过程.
在这一阶段,发送方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 min,并且每个块包含2000~3000 个交易,因此本文将时间间隔设置为10 min. 10 min 之后,Bob 开始遍历新生成的区块.
敏感文档经过CP-ABE 加密之后得到加密文档,但是加密文档不方便使用信息隐藏技术嵌入某一载体中,本文引入IPFS 来存储加密文档,仅将IPFS 返回的加密文档的哈希值嵌入隐写载体中,这样做不仅可以保证隐蔽性和安全性,而且还能使敏感的隐私数据不以明文的形式直接上链.
Alice 将加密文档上传至IPFS 之后,IPFS 返回加密文档的哈希值.Alice 利用GAN 生成具有自然图像统计特征的载体图像,将文档的哈希值使用LSB 算法嵌入载体图像中,得到载密图像. 嵌入过程如图4 所示,具体的嵌入步骤如下所示.
图4 嵌入过程
(1)初始化. Setup(λ)→PK,MSK:该算法将一个安全参数λ作为输入,输出一个公钥PK 和一个主密钥MSK.
(2)加密. Encrypt(PK,M,P)→C:该加密算法在访问策略P下对敏感文档M进行加密,将公钥PK,敏感文档M和访问策略P作为输入,输出加密文档C.
(3)上传. Upload(C)→H1:将加密文档C上传至IPFS中,返回加密文档C的哈希值H1.
(4)生成器.Gen(noise)→cover-image:该算法实际上是一个神经网络,称为生成器Generator,它接收一个随机噪声noise,尽量生成接近真实的图像,用于后续隐写操作的载体图像cover-image.
(5)判别器. Dis(real-image,cover-image)→0/1:这一算法实际上也是一种神经网络,被称为判别器Discriminator.它的任务是区分真实图像real-image 和生成的载体图像cover-image,返回判断结果. 当返回结果为“0”时,代表判别器可以区分出来real-image 和cover-image;当返回结果为“1”时,代表判别器无法区分real-image 和cover-image,此时的生成图像就可以作为载体图像,供后续隐写操作.
(6)图 像隐写. Embed(H1,cover-image)→stegoimage:这一步骤主要使用LSB 算法将加密文档C的哈希值H1嵌入载体图像cover-image,得到载密图像stego-image.
(7)隐写分析器. Steganalysis(cover-image,stegoimage)→0/1:这一算法的任务是区分生成的载体图像cover-image 和载密图像stego-image,返回判断结果.当返回结果为“0”时,代表判别器可以区分出来coverimage 和stego-image;当返回结果为“1”时,代表判别器无法区分cover-image和stego-image.
如果将载密图像直接存储在区块链上,开销太高;如果将图像压缩存储在区块链上,可能会由于图像失真造成嵌入的秘密信息丢失,因此本文将区块链和IPFS结合起来,实现链上和链下的协同存储.IPFS实现载密图像的链下存储,区块链存储IPFS 返回的文件的哈希值. 这种协作模式有效地解决了区块链的存储容量问题,而且保证了载密图像的完整性、真实性和安全性.
在这一过程中,Alice 将载密图像上传至IPFS 中,得到载密图像的哈希值. 接着Alice 随机选择一个接收地址,而不是直接选择Bob的地址,创建一笔交易,将载密图像的哈希值存放到交易的data 字段. 在对交易环签名之后,将交易广播到区块链网络中,经验证、打包上链,Bob也能收到交易. 传输过程如图5所示,具体的传输步骤如下所示.
图5 传输过程
(1)上传.Upload(stego-image)→H2:将载密图像stego-image上传至IPFS中,返回载密图像stego-image的哈希值H2.
(2)创建交易. Transaction(H2)→TX:在该阶段中,Alice 创建一笔交易TX,交易的data 字段携带载密图像stego-image的哈希值H2.
(3)环签名. Sign(TX,P1,P2,…,Pn)→σ:该签名算法包括六个步骤.P1,P2,…,Pn分别表示所有环签名成员的公钥,包含Alice 的公钥Ps和Bob 的公钥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}.
(4)提交交易. Submit(TX,σ):Alice 将经过环签名的交易发布到区块链网络,交易在区块链中广播,然后由UTXO 验证交易是否有效. 当交易被验证有效后,它将被打包到一个块中,通过一个被称为挖矿的过程. 在验证块中包含的所有交易都是有效的之后,区块链网络中的所有节点将更新新生成的块. 最后,接收方还可以接收发送方提交的交易.
Bob 在接收到swarm. key 后的10 min,开始遍历新生成区块中的交易,并尝试验证环签名,如果验证成功,则表示交易实际上是发给Bob 的. 提取过程如图6所示,具体的提取步骤如下所示.
图6 提取过程
(1)验证签名.Verify(σ,P1,P2,…,Pn)→0/1:签名验证算法包括三个步骤. 第一步,对于每一个xi,计算yi=gi(xi) 得到相应的yi. 第二步,计算对称密钥k=Hash(H). 第三步,验证环方程Ck,v(y1,y2,…,yn)=v是否成立. 如果环方程是正确的,则认为签名是正确的,否则认为签名是错误的.
(2)读取.Read(payload)→H2:从交易的data 字段中读取出载密图像stego-image的哈希值H2.
(3)下载. Download(H2)→stego-image:Bob 输入H2到IPFS,IPFS 首先通过H2查找和载密图像stegoimage 相关的DHT 的索引结构,然后通过DHT 查找保存数据块的节点的位置. 从节点下载载密图像的数据块后,IPFS 将按照DHT 散列数组的顺序重新组装数据块,并向Bob返回完整的载密图像stego-image.
(4)提取. Extract(stego-image)→H1:从载密图像stego-image 中提取出加密文档C的哈希值H1,提取算法是LSB嵌入算法的逆过程.
(5)下 载. Download(H1)→C:Bob 输 入H1到IPFS,IPFS 首先通过H1查找和加密文档C相关的DHT的索引结构,然后通过DHT 查找保存数据块的节点的位置. 从节点下载加密文档C的数据块后,IPFS将按照DHT散列数组的顺序重新组装数据块,并向Bob返回完整的加密文档C.
(6)密钥生成.KeyGen(PK,MSK,A)→SKA:该算法是密钥生成算法,输入一个公钥PK,一个主密钥MSK 和一组请求者的属性集A,输出与请求者的属性集相关联的解密密钥SKA.
(7)解密. Decrypt(PK,C,SKA)→M:该算法是解密算法,传入一个公钥PK、一个加密文档C和解密密钥SKA,如果用户的解密密钥SKA中包含的属性满足加密文档C包含的访问策略P时,则该算法将加密文档解密C为明文的敏感文档M.
本节介绍了实验过程,并对实验结果进行了分析.本次实验采用Python 语言在Ubuntu 16.04 中编写,并使用MNIST 数据集和CelebA 人脸数据集分别对100 个大小不同的敏感文档进行测试.
在Ubuntu系统中,本实验使用FISCO BCOS模拟区块链,创建20个账户,每个账户的公钥以及地址如表1所示.因篇幅有限不一一列出.
表1 20 个账户的公钥和地址
假设账户1是Alice用于创建交易的账户,账户2是Bob 的账户,Alice 配置本地IPFS 节点,并使用JS-IPFSAPI 调用IPFS 服务. Alice 生成共享密钥swarm.key,并通过安全通道将swarm.key 发送给其他节点,包括Bob.swarm.key的具体内容如下所示.
(1)/key/swarm/psk/1.0.0/
(2)/base16/
(3)8c45603441c4e23f70714a492f011fa1056e82124 f73643 7f28481155ce46ef
通过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.
区块链网络中包括多个用户(比如User1,User2 和User3 等),每个用户可以有多个账户地址(比如Address1,Address2 和Address3 等). 另外,区块链网络中可以构建多个私有IPFS 集群(比如IPFS1,IPFS2 和IPFS3等). 因此,本文数据访问控制中属性定义的可选范围如表3所示.
表3 用户属性及属性值的定义
策略是有属性组成的访问结构. 本文为了只让授权方Bob 解密加密文档,为Bob 定制专属的访问策略.策略policy 定义为:(用户ID=Bob)and(地 址ID=0x91CB0D322ba3817CAE7b00f42C004f9C1aFd8bCc)
and(IPFS集群ID=IPFS*),如图7所示.
图7 访问控制策略
Alice使用add(·)方法分别将加密文档[secret1.pdf.cpabe,secret2.pdf.cpabe,secret3.pdf.cpab e ,…,secret100.pdf.cpabe]上传到IPFS上,IPFS返回它们的哈希值,如表2 的第4 列所示. 然后Alice 将返回的哈希值转成二进制序列,便于后续嵌入生成的载体图像中. 后续操作以secret1.pdf.cpabe的哈希值H1为例,将H1转成二进制序列BS,H1和BS 的具体内容如表3 中所示. 为了便于让收方知道嵌入何时结束,双方事先约定在哈希值H1后面添加一个分隔符d,其具体内容是“/n#”,d以及d的二进制序列BSd如表4中所示.
表2 100个大小不同的敏感文档
表4 相关的符号及其内容
Alice 利用基于GAN 的图像隐写术分别训练MNIST 数据集和CelebA 人脸数据集生成载体图像cover-image 1 和cover-image 2,如图8(a)和8(c)所示. 接着,Alice将BS和BSd嵌入生成的载体图片coverimage 1 和cover-image 2 中,得到载密图像stegoimage 1和stego-image 2,如图8(b)和8(d)所示,嵌入前后对比如图8 所示. 然后Alice 将载密图像stegoimage 1 和stego-image 2 上传到IPFS 上,IPFS 返回载密图像stego-image 1 的哈希值H21和载密图像stegoimage 2 的哈希值H22,H21和H22的具体内容如表3 中所示.
图8 嵌入前后对比
Alice 没有直接选择Bob 的帐户,而是随机选择一个接收地址创建交易,交易中的data 字段携带载密图像stego-image 的哈希值H2.Alice 对交易进行环签名,环签名结果写入交易的extraData 字段,并将交易发布到区块链网络. 交易被验证之后,被打包成块. 区块链网络中的所有节点更新新生成的块. 最后,Bob 也可以接收到Alice提交的交易. 交易结构如下所示.
①signedTransaction={
②nonce=1,
③gasPrice=300000000,
④gas=300000000,
⑤blockLimit=502,
⑥receiveAddress=accounts[random.randint(1,20)].address,
⑦value=0,
⑧data='QmVUPp1SWGA9nsBwvjdrb6oFNyhe28 huhpw4W4B9CHUAJQ',
⑨extraData= '{"message":"QmVUPp1SWGA9ns-Bwvjdrb6oFNyhe28huhpw4W4B9CHUAJQ", "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."}"}'}
为了让Bob 能查到Alice 提交的交易,双方事先约定data 字段中有“Qm”开头的交易即为Alice 提交的交易. Bob 在收到共享密钥swarm. key 的10 min 后,开始遍历新生成的块,查找data 字段中有“Qm”开头的交易. 找到交易后,Bob 先验证环签名,验证通过后,读取交易的data 字段,将data 字段的内容输入IPFS,获取完整的载密图像. 根据LSB 算法的提取算法从载密图像中提取出加密文档的哈希值,再将加密文档的哈希值输入IPFS,IPFS 返回完整的加密文档. 最后Bob根据自己的属性集(Bob,0x91CB0D322ba3817CAE7b00f42C00 4f9C1aFd8bCc,IPFS*)获得解密密钥,解密加密文档得到敏感文档.
本小节主要从隐藏容量、隐蔽性和安全性这三个方面对实验结果进行分析.
(1)传输秘密信息容量
本文对100 个不同大小的敏感文档分别进行仿真实验操作,将这些敏感文档进行加密后上传至IPFS,并成功地将IPFS返回的哈希值嵌入载体图像中进行隐蔽传输. 相比于以往只能传递一条消息的研究,文本提出的方法在传输数量级上有很大的提高,传输的秘密信息量可达到MB. 区块链隐蔽通信模型中各方法的传输秘密信息量对比如表5所示.
表5 传输秘密信息量对比
(2)隐蔽性
隐蔽性主要是指载体图像和载密图像的统计特征的相似性,主要使用均方误差(Mean-Square Error,MSE)、峰值信噪比(Peak Signal to Noise Ratio,PSNR)和结构相似性(Structural Similarity Index,SSIM)来进行评估.
均方误差(MSE)主要是反映载体图像与载密图像之间的差异程度,使用这个指标来衡量嵌入秘密信息之后得到的载密图像的质量. 通过将载体图像和载密图像的所有像素值差的平方和除以像素的总数来计算均方误差.MSE 值越小,隐写方法越好.MSE 的公式表示如下:
其中,i和j分别表示图像的行和列;I(i,j)表示载体图像中第i行、第j列的像素;I′(i,j)表示载密图像中第i行、第j列的像素.
文献[9]使用的是传统的图像隐写术LSB,本文使用的是基于GAN 的图像隐写术. 本文将文献[9]中的隐写方法和本文方法作对比,分别将秘密信息嵌入普通载体和由MNIST数据集生成的100张载体图像中,并计算载体图像和载密图像之间的MSE,如图9(a)所示.本文方法的MSE 在0.2 左右,远低于传统隐写方法的MSE. 同样地,分别将秘密信息嵌入普通载体和由CelebA人脸数据集生成的100张载体图像中,并计算载体图像和载密图像之间的MSE,如图9(b)所示. 本文方法的MSE 远低于文献[9]的MSE,即本文隐写方法的隐蔽性要好于文献[9]的隐写方法.
图9 均方误差的对比
峰值信噪比(PSNR)这个指标来衡量秘密信息嵌入图像之后得到的载密图像的质量. 与MSE 相反,PSNR 值越大,图像的质量越好. 它的单位是dB,当PSNR 的值高于40 dB 时,说明图像质量极好,非常接近原始图像;当PSNR 的值介于30 dB 和40 dB 之间时,说明图像质量较好,可以察觉到图像失真但可以接收;当PSNR 的值介于20 dB 和30 dB 之间时,说明图像质量差;当PSNR的值低于20 dB,说明图像不可接收.PSNR的公式表达如下:
本文将文献[9]中的隐写方法和本文方法作对比,分别将秘密信息嵌入普通载体和由MNIST 数据集生成的100 张载体图像中,并计算载体图像和载密图像之间的PSNR,如图10(a)所示. 同样地,分别将秘密信息嵌入普通载体和由CelebA 人脸数据集生成的100 张载体图像中,并计算载体图像和载密图像之间的MSE,如图10(b)所示. 本文方法的PSNR 远高于文献[9]所用的隐写方法的PSNR,即本文隐写方法的隐蔽性要好于文献[9]的隐写方法.
图10 峰值信噪比的对比
结构相似性(SSIM)是一种衡量两幅图像相似度的指标[26].SSIM 的最大值为1.SSIM 值越大,载体图像和载密图像相似性越高.SSIM的公式表达如下:
其中,μx代表x的平均值;μy代表y的平均值;σx2代表x的方差;σy2代表y的方差;σxy代表x和y的协方差;C1=(k1L)2和C2=(k2L)2是用来维持稳定的常数,L是像素值得动态范围,k1=0.01,k1=0.03.
本文将文献[9]中的隐写方法和本文方法作对比,分别将秘密信息嵌入普通载体和由MNIST 数据集生成的100 张载体图像中,并计算载体图像和载密图像之间的SSIM,如图11(a)所示. 本文方法的SSIM 接近于1,而且高于文献[9]所用的隐写方法的SSIM,即使用本文方法得到的载密图像与载体图像相似性极高,隐蔽性要好于文献[9]的隐写方法. 同样地,分别将秘密信息嵌入普通载体和由CelebA 人脸数据集生成的100 张载体图像中,并计算载体图像和载密图像之间的SSIM,如图11(b)所示. 本文方法的SSIM 高于文献[9]所用的隐写方法的SSIM,同样可以得出本文方法的隐蔽性要好于文献[9]中的隐写方法这一结论.
图11 结构相似性的对比
(3)安全性
定义1:(S1安全性)是指攻击者没有足够的信息证明经过传输信道的载体信息中隐藏有秘密信息.
该类安全性要求隐蔽通信满足不可区分性. 本文用于隐写术的载体图像是由基于GAN 的图像隐写术生成的,载体图像和载密图像的统计特征极为相似,在秘密信息的隐蔽传输过程中,不易让攻击者发现含有秘密信息的载体,保证了安全性.
定义2:(S2安全性)是指通信信息受到主动攻击的情况下仍然能够正确接收到秘密信息.
该类安全性是指攻击者无法损坏经过传输信道的通信信息中所隐藏的秘密信息,即受到攻击者攻击的情况下仍然能够从通信信息中恢复秘密信息. 首先,区块链的不可篡改性使得隐蔽通信的攻击者对秘密信息的删除和篡改都是无效的. 其次,本文在隐写之前使用CP-ABE 对敏感文档进行加密,只有当用户的属性通过了访问控制策略的验证时,用户才能对加密文档进行解密,抵御了用户合谋攻击. 而且模型的安全性在一定程度上取决于使用的密钥的机密性,CP-ABE 根据用户属性生成解密密钥,避免了私钥泄露. 最后,在本文的区块链隐蔽通信中,发送方和接收方身份都被隐藏,攻击者很难发现含有秘密信息的交易. 攻击者即使怀疑图像中秘密信息,在不知道提取算法的情况下也很难提取出秘密信息,而且在不知道解密密钥的前提下,也无法获取到敏感文档. 由此,保证了隐蔽通信的安全性.
本文提出了一种可隐藏敏感文档和发送者身份的区块链隐蔽通信模型H-SD&SI,以实现敏感文档在区块链中的隐蔽传输. 该模型采用CP-ABE 技术来提高敏感文档的安全性,并使用环签名技术对交易进行签名来隐藏发送方身份,以提高传输的隐蔽性. 此外,在具体的嵌入过程中,该模型使用基于GAN 的图像隐写术将加密文档的哈希值嵌入生成的载体图像中,进一步提高隐蔽性. 本文通过对比载体图像和载密图像的MSE,PSNR 和SSIM 来评估模型的性能. 实验结果表明,该模型在传输秘密信息量上有很大提升,而且具有较高的隐蔽性和安全性. 然而该模型也存在一定的局限性,即在保证隐蔽性和安全性的情况下,传输敏感文档的实时性相对较差. 在今后的工作中,将考虑对模型进行改进以突破这一局限.
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!