王林冬,田有亮,杨科迪,肖 曼,熊金波,5
(1.贵州大学 公共大数据国家重点实验室,贵州 贵阳 550025;2.贵州大学 计算机科学与技术学院,贵州 贵阳 550025;3.贵州大学 密码学与数据安全研究所,贵州 贵阳 550025;4.贵州大学 贵州省密码学与区块链技术特色重点实验室,贵州 贵阳 550025;5.福建师范大学 计算机与网络空间安全学院,福建 福州 350117)
电子证照是指由权威机构依法颁发与纸质证件具有同等法律效力的各类电子证明文件,如身份证、户口簿、驾驶证、营业执照等。相比纸质证件,电子证照不仅可以有效减少纸质材料使用,同时可以有效突破时间和空间的限制,方便企业和个人多次调阅、使用。因此,全面实现电子证照互认共享有利于促进政务信息资源整合,推动社会经济高效发展,改善人民生活质量。
目前,我国正在探索电子证照的安全共享存证方案。如上海市于2022年7月1日起施行的《上海市电子证照管理办法》指出,发证单位、用证单位、社会化用证主体应当严格执行市电子证照库的安全管理要求,确保电子证照合法合规使用。通常,电子证照共享存证过程中,首先由权威发证方颁发具有与纸质证件同等法律效力的电子证照,然后持证方根据实际所需可将电子证照副本提交给相关存证方,最后由存证方代表持证方本人完成具体业务办理。
由于电子证照的共享留存刚开始进入人们的视野,其安全问题还未能引起各专家学者的广泛关注[1]。如图1所示,电子证照在共享留存过程中,存在非真实授权使用、泄露后无法追溯等安全问题。针对电子证照共享留存过程中真实授权使用的可验证问题,传统方法仅通过电子签章技术可确保发证方发证行为的真实可验证,但是忽略了持证方、存证方操作行为的真实性可验证问题。特别是存证方在接收电子证照时无法验证当前电子证照是否经过持证方本人的真实授权。针对电子证照泄露后的可追溯问题,传统方法通过区块链保存证照流转信息,在电子证照完整的前提下可实现泄露追溯。但是,若电子证照遭受破坏,则追溯者无法进行追溯。更为严重的是,若电子证照遭受共谋攻击,而传统方法无法检测出所有参与共谋的攻击者。因此,传统方法在实际应用中存在真实授权使用的可验证问题及证照泄露后的可追溯问题,亟需一种可验证可追溯的电子证照存证方案,为电子证照的共享与留存提供安全保障。
图1 电子证照使用中的安全问题
针对电子证照共享留存过程中持证方授权使用的可验证问题,传统的电子签章方法是将信息加密和身份认证相结合,具有签名可识别、签名内容不可篡改的特点。然而,该方法只能验证证照来源的真实性,且签名的表现形式是可见的,这使得签名容易被恶意攻击者破坏。为此,该方案基于可逆信息隐藏技术[2-4]以及数字签名设计电子证照模型,实现电子证照共享留存过程中隐式三方可验证。
针对电子证照的泄露追溯问题,传统方法采用区块链存储完整的证照信息,无法对遭到破坏的证照进行追溯。而恶意存证方可能会泄露证照副本,为逃避追溯,对证照的副本图像进行共谋、剪切、亮化、噪声等攻击。为此,文中方案引入鲁棒水印算法[5-7],充分利用鲁棒水印嵌入水印信息鲁棒的特点[8-10],从而实现电子证照在泄露及遭受恶意破坏后仍可追溯。此外,传统的强鲁棒水印算法存在水印信息丢失不可恢复的问题,故文中基于BCH(Bose Chaudhuri Hocquenghem)码改进传统的强鲁棒水印算法,实现水印失真可纠错,从而进一步提高证照泄露追溯效率。文中工作的具体贡献如下:
(1) 设计电子证照安全共享存证系统模型。针对电子证照非授权使用问题以及泄露后无法追溯问题,基于实际应用特点设计电子证照安全共享存证系统模型,确保电子证照发证方、持证方、存证方三方可验证性及泄露后可追溯性。
(2) 构造可纠错鲁棒水印算法。针对证照泄露追溯问题,构造可纠错鲁棒水印算法。通过对现有鲁棒性强的水印算法进行改进,在不增加原有扩频水印冗余信息的前提下,为水印算法增加水印信息可纠错的功能,从而使得算法在遭受攻击后仍可恢复丢失的扩频水印信息,从而提高水印算法在抗高斯噪声、抗中值滤波等常见强图像攻击时的鲁棒性。
(3) 构建可验证可追溯电子证照存证方案。首先,三方各自生成签名消息;然后,通过可逆信息隐藏技术分别嵌入到证照载体中,确保签名信息嵌入后三方可验证;最后,通过所提鲁棒水印算法将三方身份信息分别嵌入到证照载体的RGB通道中,确保证照泄露后的高效可追溯。
(4) 实现电子证照的可验证留存与共谋泄露追溯。通过安全性分析证明,所提可验证可追溯电子证照存证方案,能在确保三方可验证的前提下实现证照泄露可追溯;通过实验分析证明,所提鲁棒水印算法具有较强的鲁棒性,并验证了文中模型具有较高的泄露追溯效率以及较强的共谋者检测能力。
鲁棒水印算法在面对多种常见图像攻击时具有较强的鲁棒性。因此,该类水印算法被广泛应用于解决图像版权保护问题。传统电子证照共享留存方法在受到常见的图像攻击后,无法验证发证方的真实性,且证照泄露后无法进行有效追溯,而通过在文中方案中应用鲁棒水印算法,可以确保证照泄露后的高效可追溯。
鲁棒水印算法[11]RW=(KeyGen,EmWater,DeWater),由3个基本算法构成。其描述如下:
(1) KeyGen():输出水印的嵌入提取密钥Kw。
(2) EmWater(I,W,Kw):水印嵌入算法以待嵌入水印图像载体I、二值水印信息W以及水印密钥Kw为输入,输出水印图像Iw。
(3) DeWater(Iw,Kw):水印提取算法以已嵌入水印的水印图像Iw以及水印密钥Kw为输入,输出水印信息W。
可逆信息隐藏技术在完整提取水印信息后可以无损恢复原始载体图像。该技术被广泛应用于军事、医学等对图像敏感的领域,在这些领域中原始载体图像的失真是不被允许的[12]。若通过鲁棒水印算法嵌入签名信息,则原始签名原文已被破坏,从而无法进行有效验证。因此,通过在文中方案中运用可逆信息隐藏技术,可确保电子证照在共享留存过程中的三方可验证性。
可逆信息隐藏技术[12]RDH=(EmWaterR,DeWaterR),由两个基本算法构成。其描述如下:
(1) EmWaterR(I,W):以待嵌入秘密数据的载体图像I以及二值秘密数据W为输入,输出嵌入秘密数据后的图像Iw。
(2) DeWaterR(Iw):以已嵌入秘密数据的图像Iw为输入,输出秘密数据W以及完整恢复的原始载体图像I。
定义p为大素数,Fp为有限域,选择a,b∈Fp作为椭圆曲线E的参数,定义P为椭圆曲线E上的一点,并将其作为群G的生成元,群的阶为q,定义Hv()为摘要长度为v比特的哈希算法。
SM2数字签名算法[13-14]SM2=(Setup,KeyGen,SignGen,SignVerif),可由4个基本算法构成。其基本描述如下:
(1) Setup(λ):初始化算法,给定安全参数λ,输出椭圆曲线参数params=(p,a,b,P,q)。
(3) SignGen(params,SK,M):签名算法,给定参数params、私钥SK以及消息M,输出签名C=(r,s)。
(4) SignVerif(params,PK,M′,C′):验证算法,给定参数params、公钥PK、消息M′以及签名C′=(r′,s′),输出验证结果b∈{0,1}。验证通过则输出1;否则,输出0。
SM2属于椭圆曲线公钥密码算法,具有比RSA码验签速度快、存储空间小和运算复杂度低的特点,其安全性建立在求解椭圆曲线离散对数问题的困难性之上。文献[15]证明了若哈希函数是均匀且抗碰撞的,则SM2数字签名算法在通用群模型[16]中对适应性选择消息攻击具有存在不可伪造性[15]。
SM3密码杂凑算法[17]可以将任意长度的消息压缩成固定长度的摘要消息,其首先将输入数据按照512 bit的大小分成若干组,最后一组不足512 bit时,按规则填充至512 bit。经过多轮迭代压缩后,输出长度为256 bit的摘要值。
该算法于2012年发布为密码行业标准(GM/T 0004—2012),2016年发布为国家密码杂凑算法标准(GB/T 32905—2016),具有较强的抗碰撞性,能够有效避免高概率的局部碰撞。输入数据即使变化1 bit,输出数据也将发生巨大变化,计算结果具有惟一性。因此,通过在文中方案中运用SM3密码杂凑算法生成三方的惟一身份识别码,具有较高的安全性。
BCH码是一种线性分组循环码,具有结构简单、编码方便以及可以纠正多位随机错误的优点,尤其当码字较短时,其性能更优越。在水印嵌入前,利用BCH码对水印进行预处理。在提取水印时,即使部分水印序列出现失真,水印算法仍然能够依靠BCH码恢复部分丢失的水印信息,从而有效提高算法的鲁棒性。BCH码码长可以表示为n=qm-1,其中m为整数,码字的前k个比特为信息比特,后n-k个比特为校验位,由其生成多项式g(x)=1+g1x+…+gn-k-1xn-k-1+xn-k指定,其中gi∈GF(q)。码字c=(c0,…,cn-1)的多项式表示形式为c(x)=c0+c1x+…+cn-1xn-1。编码操作可以用多项式的形式表示为c(x)=g(x)u(x),其中u(x)是要编码的信息。Berlekamp-Massey(BM)算法是BCH码的一个代数解码算法。当q=2和m=3时,码字长度为n=7 bit,信息位为k=4 bit,校验位为3 bit。
电子证照的非真实授权使用问题及泄露后无法追溯问题严重威胁着持证方个人的信息安全。基于实际应用特点,设计了电子证照安全共享存证系统模型,确保电子证照的三方可验证性及泄露后可追溯性。该模型如图2所示。
图2 系统模型
电子证照安全共享存证系统模型涉及发证方、持证方、存证方、区块链网络[18-19]、大数据平台等5个主体。
(1) 发证方:颁发证照的权威机构,其职责首先是审核证照申请人的基本信息并生成证照样板,然后在该样板中嵌入自身身份信息并进行签名,最后将其颁发给相应的持证方。
(2) 持证方:持有证照的人群,必要时可在证照中嵌入自身身份信息并进行签名,以便向存证方提交可验证的证照副本。
(3) 存证方:办理政务的存证机构,其职责首先是验证证照来源的真实性,包括是否来源于真实的颁发机构以及是否经过持证方真实授权,其次是在合法的证照副本中嵌入自身身份信息并进行签名留存。
(4) 区块链网络:存储证照流转过程中的验证信息,确保证照泄露后可追溯。
(5) 大数据平台:存储可验证可追溯证照副本。
由于实际应用中,恶意的持证方可能出现盗用他人证照的行为,恶意的存证方可能出现泄露他人证照的行为。因此,文中系统建设存证过程中电子证照可能受到如下攻击:
(1) 盗用:恶意用户通过某种途径获得其他真实持证方的电子证照后,其可能在未经证照持证方本人真实授权的前提下盗用该电子证照。
(2) 泄露:恶意用户可能在未经持证方本人授权的情况下泄露其证照副本。
为了实现电子证照的安全共享,所提出的系统模型应实现以下目标:
(1) 可验证性:为避免恶意用户的盗用,持证方应可对发证方颁发的电子证照进行身份验证,确保该电子证照来源于真实的发证方,存证方应可对持证方提交的电子证照副本进行身份验证,确保该电子证照来源于真实的发证方且经过真实持证方的授权。
(2) 可追溯性:为实现证照泄露可追溯,方案中应设计合理的泄露追溯机制。当发现网络中存在可疑的证照泄露副本时,追溯者能及时、有效追溯到泄露者。
(3) 一致性:为实现证照泄露可追溯,电子证照中的追溯信息必须和用户的真实身份进行一致性绑定。
(4) 鲁棒性:为实现证照泄露可追溯,保留在电子证照中的追溯信息应具备较强的鲁棒性,使其不易被恶意用户篡改或去除。
传统强鲁棒水印算法虽然在抗各种图像攻击时具备一定的鲁棒性,但是不具备水印信息丢失可纠错的功能,这导致嵌入三方身份信息的电子证照容易被恶意泄露者篡改或去除。因此,传统强鲁棒水印算法不能较好满足文中所提方案的应用需求。为此,对传统强鲁棒水印算法中鲁棒性较好的HUANG等[11]提出的水印算法进行改进,提出可纠错鲁棒水印算法。首先,结合纠错码可借助冗余信息还原丢失信息的特点,设计可纠错的扩频水印,从而在不增加原有扩频水印冗余信息的前提下为水印算法增加水印信息可纠错的功能;其次,利用双层离散余弦变换(Discrete Cosine Transform,DCT)策略获取图像DCT系数以嵌入水印,有效减少水印图像在遭受攻击后的失真,从而进一步提高水印算法的总体鲁棒性。
(1) 水印纠错码生成。 假设原始水印序列包含n个组件,记为W=(ϖ1,ϖ2,…,ϖn),且ϖi∈{0,1}。 将W按照每4 bit划分成一组作为BCH码的信息位,总共有n/4个组。 编码后,每组得到一个7 bit的码字,其中后3位为校验位。 经BCH码编码后水印序列包含m个组件,记为θ=(θ1,θ2,…,θm),且m=7n/4。
(2) 水印密钥生成。 生成大小为m×2n的随机数矩阵Λ,且Λi,j∈(0,1),其中i=1,2,…,m;j=1,2,…,2n。 通过施密特正交化将Λ中的每一列向量转化为标准正交向量组,记为Ai=[Λi,1,Λi,2,…,Λi,2n],其中i=1,2,…,m。 由正交向量组构成的新矩阵可作为水印的嵌入提取密钥Kw。
(3) 可纠错扩频水印生成。 生成大小为2n的扩频水印K,记为K=(κ1,κ2,…,κ2n)。 2n个组件通过的计算公式为
(1)
其中,τ=1,2,…,2n且i=1,2,…,m。
(1) 水印图像特征向量获取。 通过在原始载体图像上应用双层DCT,从而获取图像的特征向量。 将水印信息嵌入DCT低频系数中水印算法鲁棒性更好,但是不可见性表现较差;将水印信息嵌入DCT高频系数中,水印算法不可见性较好,但是鲁棒性表现较差。 因此,文中采用折中的策略,提取属于中频系数且行列索引为偶数的DCT系数以构造新矩阵。 首先将原始图像切分成10×10的非重叠子块,然后分别在每一个子块上应用首层DCT得到DCT系数矩阵μ,并从其中频系数中选择一个行列索引为偶数的值构造成一个新的矩阵;其次在新构造的矩阵上应用二层DCT得到新的DCT系数矩阵μ′;最后选择μ′中所有行列索引为偶数的系数构成图像特征向量,记为φ=[γ1,γ2,…,γ2n]。
(2)
其中,δ表示水印的嵌入强度,其值的确定是基于不可见性和鲁棒性的折中。
(3)
其中,C(·)表示两个同维度向量的内积,Ai通过Kw获得。
(3) 水印纠错。 将K*按7 bit为一组进行划分,得到Ek=(εk1,εk2,…,εk7),其中k=1,2,…,m/7。 针对每一个Ek,通过BM算法进行解码,从而得到4 bit水印信息。在此过程重复m/7次后,得到提取的所有水印信息。
针对电子证照的盗用问题,传统方法采用电子签章技术仅能确保发证方的真实性可验证;然而持证方与存证方的真实性无法验证。针对电子证照的泄露追溯问题,传统方法通过区块链技术保存证照流转信息,在电子证照完整且不被破坏的情况下,追溯者可以通过区块链网络进行泄露追溯。然而,一旦电子证照遭受攻击者的恶意破坏,该方法就不能进行有效追溯。而且,传统方法无法抵御多人共谋攻击,即不能准确检测出多个参与共谋的泄露者。因此,在文中方案中基于鲁棒水印与可逆信息隐藏技术设计电子证照模型,并基于此模型设计电子证照共享存证协议,从而确保电子证照流转过程中三方可验证性以及泄露后高效可追溯。此外,该模型若基于所提可纠错鲁棒水印,文中方案不仅具有更好的单一泄露者检测能力,而且具有较好的共谋者检测能力。
文中模型的主要构建思路:首先,三方分别通过SM3密码杂凑算法生成256 bit的杂凑值作为三方各自的惟一身份识别码γa、γb和γc,实现三方身份信息与电子证照的一致性绑定。其次,通过鲁棒水印算法将三方参与者的惟一身份识别码分别嵌入到证照图像的RGB通道中,为电子证照泄露后的追溯提供支持。为确保三方在执行各自操作时互不干扰,在三方各自嵌入身份信息阶段,发证方的身份识别码被嵌入到证照图像的红色(R)通道中,持证方的身份识别码被嵌入到证照图像的绿色(G)通道中,存证方的身份识别码被嵌入到证照图像的蓝色(B)通道中。最后,将三方参与者的签名信息通过可逆信息隐藏技术嵌入到电子证照的RGB通道中,实现签名信息嵌入后的可验证。电子证照模型如图3所示。
图3 电子证照模型
首先,为确保发证方泄露证照后的可追溯性,权威发证方在颁发可信电子证照时需通过鲁棒水印算法在电子证照R通道αr中嵌入其惟一身份识别码γa。同时,为确保发证方可验证性,权威发证方在颁发可信电子证照时需通过可逆信息隐藏技术在嵌入其身份码后的电子证照R通道βr中嵌入其签名信息μr。其次,为确保持证方泄露证照后的可追溯性,持证方在提交电子证照副本时需通过鲁棒水印算法在电子证照G通道αg中嵌入其惟一身份识别码γb。再次,为确保存证方泄露证照后的可追溯性,存证方在得到电子证照时需通过鲁棒水印算法在电子证照B通道αb中嵌入其惟一身份识别码γc。同时,为确保存证方的可验证性,存证方需通过可逆信息隐藏技术在嵌入其身份码后的电子证照B通道βb中嵌入其签名信息μb。值得注意的是,由于持证方在嵌入签名信息前需要审核持证方是否已嵌入自身身份信息,因此持证方嵌入签名信息需在存证方嵌入身份信息之后。最后,为确保持证方的可验证性,持证方需通过可逆信息隐藏技术在嵌入其身份码后的电子证照G通道βg中嵌入其签名信息μg。
由于一个持证方可能对应多个存证方,所以在提交可信证照时持证方提供给存证方的电子证照是只含两方信息的证照副本,不同存证方得到的是不同的证照副本。存证方在拿到其对应的证照副本之后分别嵌入自身的身份识别码,一个证照副本只可能嵌入一个存证方的身份信息,从而在进行泄露追溯时确保不同证照副本间提取身份识别码互不干扰。
为了更详细地阐述所提可验证可追溯电子证照存证方案,基于所提电子证照模型设计电子证照共享存证协议,协议具体描述了电子证照在三方流转过程中文中方案的具体工作。所提电子证照共享存证协议具体过程如图4所示。
本协议的初始阶段:首先,发证者、持证者、存证者均基于SM2数字签名算法KeyGen生成各自的公私密钥对,各自持有私钥SKa、SKb、SKc,并向区块链网络公开公钥PKa、PKb、PKc,以便生成各自的SM2签名信息,从而实现证照嵌入签名信息后的可验证。其次,三方各自以其自身持有的公钥及其身份信息作为输入,取SM3杂凑算法256 bit的杂凑值作为其惟一身份识别码γa、γb、γc,以完成电子证照与各参与方身份信息的一致性绑定。三方的身份信息可以包括参与方的姓名、单位、职位、工号等。最后,基于鲁棒水印算法生成全局鲁棒水印嵌入提取密钥Kw,以便各参与方将各自惟一身份识别码嵌入到证照载体中。
图4 电子证照共享存证协议
文中所提电子证照共享存证协议具体过程如下:
步骤1 权威证照颁发。首先,为实现发证方身份信息与证照通道αr的嵌入式绑定,发证方通过EmWater(αr,γa,Kw)将γa嵌入到αr中,得到含发证方身份信息的证照R通道βr;其次,为确保通道证照的不可伪造,发证方通过SignGen(params,SKa,βr)以βr作为待签名原文生成其签名信息μr,并通过EmWaterR(βr,μr)将μr嵌入到βr中;最后,将含发证方认证信息的证照原件αrgb_r=(δr,αg,αb)发送给持证方,同时将相关验证信息{γa,params,PKa,βr,μr}公布到区块链,从而完成权威证照的可验证颁发。
步骤2 可信证照提交。首先,持证方通过DeWaterR(δr)得到发证方签名原文βr及签名信息μr,并通过SignVerif(params,PKa,βr,μr)验证证照来源的真实性;其次,为完成持证方身份信息与所提交证照的一致绑定,持证方以类似步骤1的方法将γb嵌入到αg中,从而得到包含持证方身份信息的证照G通道βg;最后,将含两方信息的证照副本αrgb_gg=(δr,βg,αb)发送给存证者,同时将相关验证信息{γb,params,PKb,βg}公布到区块链,从而完成电子证照的可信提交。
步骤3 返回授权。首先,存证方通过DeWaterR(δr)得到发证方签名原文βr及签名信息μr,并通过SignVerif(params,PKa,βr,μr)验证证照来源的真实性;其次,为完成存证方身份信息与所提交证照的一致绑定,存证方采用类似步骤1的方法将γc嵌入到αb中,从而得到包含存证方身份信息的证照B通道βb;然后,以βr、βg、βb作为待签名原文生成对应的签名信息μb,并通过EmWaterR(βb,μb)将μb嵌入到βb中;最后,将含三方信息的证照副本αrgb_bb=(δr,βg,δb)返回给相应持证方,同时将相关验证信息{γc,params,PKc,βr‖βg‖βb,μb}公布到区块链。
步骤4 授权证照提交。首先,持证方通过DeWater(δb,Kw)确认存证方已嵌入自身身份信息;其次,为实现证照真实授权使用的可验证性,持证方以βr和βg作为待签名原文,通过SignGen(params,SKb,βr‖βg)生成对应的签名信息μg,并通过EmWaterR(βg,μg)将μg嵌入到βg中;最后,将含三方认证信息的证照副本αrgb_g=(δr,δg,δb)发送给存证方,同时将相关验证信息{γb,params,PKb,βr‖βg,μg}公布到区块链,从而完成电子证照的可验证可追溯存储。在得到证照副本之后,存证方可通过DeWaterR(δg)得到持证方签名原文βg及签名信息μg,并通过SignVerif(params,PKb,βg,μg)验证证照是否得到持证方本人的真实授权。
首先分析所构造的可验证可追溯电子证照存证方案具有三方可验证性,其次分析其泄露可追溯性。
性质1如果SM2签名算法满足抗存在伪造性,则所提电子证照存证方案具有三方可验证性。
证明:仅通过鲁棒水印算法嵌入各参与方的签名后证照载体的数据形式已发生改变,这使得即便能正确提取出签名消息也无法对欲保护的证照进行有效验证。而可逆信息隐藏技术具有在提取水印后能够无损恢复原始载体图像的特点,这使其能够对欲保护的证照进行有效验证。由5.2节可知,由于证照生成过程中,为确保证照的不可伪造,发证方首先以βr作为待签名原文,并通过可逆信息隐藏技术将μa嵌入到βr中,然后将含有其认证信息的证照原件αrgb=(δr,αg,αb)发送给持证者。由于可逆信息隐藏技术具有在提取水印后能够无损恢复原始载体图像的特点,所以持证方收到证照原件αrgb=(δr,αg,αb)后,可以通过以下方式验证证照是否源于真实的发证方:
(βr,μr)=DeWaterR(δr) ,
(4)
b=SignVerif(params,PKa,βr,μr) 。
(5)
由于SM2签名算法满足抗存在伪造性[15],因此,当证照αrgb_r=(δr,αg,αb)验证通过时,可以确定其源于真实的发证方即本存证模型满足发证方的可验证性。同理,文中模型可以通过类似的方法验证持证方、存证方参与行为的真实性。因此,文中电子证照存证模型具有发证方、持证方、存证方的三方可验证性。
性质2若鲁棒水印算法具有较强的鲁棒性,则所提电子证照存证方案具有泄露可追溯性。
证明:由5.2节可知,由于证照存证过程中,存证方需将自己的惟一身份识别码γc嵌入到证照的B通道αb中,形成含自身身份信息的证照通道βb。而且,持证方通过DeWater(δb,Kw)确认存证方已嵌入自身身份信息后,才会对其证照进行签名,所以,若某处出现涉嫌泄露的证照副本,则追溯者可通过鲁棒水印算法中的DeWater,快速从泄露的副本证照αrgb_b=(δr,δg,δb)中获取存证时嵌入的水印信息,并通过最佳匹配原则快速找出数据库中与所提水印信息匹配率最高的存证方惟一身份识别码,该身份识别码对应的存证方即可推断为该证照副本的潜在泄露方。因此,该存证追溯模型具有可追溯性。
通过实验对所提模型的追溯效率进行分析。实验中,采用1台主机(CPU为Intel Core i5 7500,内存为8 GB,操作系统为Windows 10)模拟大数据平台,4台主机(CPU为Intel Core i3 2120,内存为4 GB,操作系统为Windows 7)模拟共识节点,选用C++作为主要编程语言模拟实现所提可纠错鲁棒水印算法、可逆信息隐藏技术、SM2签名算法、SM3密码杂凑算法和实用拜占庭容错(Practical Byzantine Fault Tolerance,PBFT)共识算法。基于上述实验环境,如图5所示,以大小为640×320的电子证照图像作为证照载体进行多次存证与追溯实验。
为完整分析整个证照存证执行的时间消耗,首先通过所提鲁棒水印算法将三方各自的惟一身份识别码嵌入到证照载体对应的通道中,其次使用可逆信息隐藏技术将三方各自SM2签名信息嵌入到证照载体对应的通道中,最后利用PBFT共识算法将交易信息写到链上。基于此,对电子证照的发证、持证、存证进行了完整实验,相应执行时间如图6所示。从图6可以看出,各参与者的处理操作总时间消耗均在2 s左右。因此,文中模型的操作时间代价能很好满足实际应用需要。
图5 测试图
图6 各方电子证照操作执行时间代价
非法转发者通常会对含水印的合法副本进行不同程度的攻击,以得到无法追责的非法副本。对于单一攻击者,剪切、缩放、JPEG压缩、高斯噪声、亮化、中值滤波是较强的攻击;对于多攻击者,Max、Min、Mean等攻击是最为常见的攻击。其中,Max、Min、Mean攻击指的是对于某一位置像素取所有合法副本的最大值、最小值、平均值作为非法副本对应位置像素的最终值。
为分析本模型在不同水印算法下的泄露追溯效果,分别基于文中、HUANG[11]、HU[20]、SUN[21]等4种鲁棒性较强的水印算法将三方256 bit的惟一身份识别码嵌入数字载体中,并进行不同程度的攻击,所得检测效果如表1所示。三方各自的身份识别码为256 bit,以文中所提可纠错鲁棒水印算法进行嵌入时,身份识别码经扩频后为448 bit,算法各通道载体的最大容量为512 bit,所以各通道载体的最大容量能够满足所需。
表1为单一攻击者对不同水印算法下的证照载体分别进行10%~50%的剪切攻击、50%~90%的缩放攻击、10%~90%的JPEG压缩攻击、0.1~0.5的高斯噪声攻击、10~50的亮化攻击、2~6的中值滤波攻击。从表1可以看出,若对证照载体进行剪切、缩放攻击,文中模型在基于上述4种水印算法时均能很好地检测出证照泄露者。然而,对于JPEG压缩攻击,文中模型仅在基于文中及HU[20]提出的水印算法时能够较好地检测出证照泄露者。此外,对于亮化攻击,文中模型仅在基于文中及HUANG[11]提出的水印算法时能够较好地检测出证照泄露者。总体,若以目前较为鲁棒的水印算法为基础,文中模型均能很好地检测出单一攻击者环境下的证照泄露者。此外,文中提出水印可纠错的鲁棒水印算法,这使得文中本模型在基于所提鲁棒水印算法时,相比基于其他水印算法在高斯噪声、中值滤波、JPEG压缩等强图像攻击下,能更好地检测出单一攻击者环境下的证照泄露者。
表1 单攻击者检测识别效果
若定义原始三方惟一身份识别码与检测所得哈希的匹配率为η=(lh-dhd)/lh,其中lh为原始三方惟一身份识别码的比特长度,dhd为原始身份识别码与检测所得身份识别码的汉明码距离。文中通过该匹配率评估所提模型的共谋检测效率,若共谋者与非共谋者的匹配率之间存在明显的界限,则说明文中模型能够较好地检测出参与共谋的证照泄露者。在3种共谋攻击下,文中模型在2人共谋(A+、B+、C、D、E)及3人共谋(A+、B+、C+、D、E)时的共谋检测效率分别如图7与图8所示,“+”表示参与共谋。
从图7可知,在两人共谋(A+、B+、C、D、E)情况下,针对3种共谋攻击,本模型在基于上述4种水印算法时都能很好检测出证照泄露者。从图8可知,在3人共谋(A+、B+、C+、D、E)情况下,针对Max、Min攻击,文中模型在基于文中、HUANG[11]、HU[20]所提水印算法时均能很好检测出证照泄露者,而在基于SUN[21]所提水印算法时不能很好检测出证照泄露者。此外,针对Mean攻击,该模型在基于文中、HUANG[11]、SUN[21]所提水印算法时均能较好检测出证照泄露者,而在基于HU[20]所提水印算法时不能很好地检测出证照泄露者。总体,若共谋参与者较少,则文中模型能够很好地检测出参与共谋的证照泄露者。
(a) Max攻击
(b) Min攻击
(c) Mean攻击
(a) Max攻击
(c) Mean攻击
为进一步分析文中模型在多共谋者环境下的检测能力,假设共谋人数规模为1~10人,同时分别以文中、HUANG[11]的水印算法为基础进行大量的实验。通过实验发现,若文中模型基于HUANG[11]与文中的水印算法,非共谋者的检测匹配率分别不超过65%与63%;为安全起见,分别以66%与64%作为文中模型在HUANG[11]与文中的水印算法下区分共谋者与非共谋者的匹配率阈值。图9分别展示在共谋人数规模为1~10人且基于HUANG[11]与文中水印算法时本模型共谋者检测的正确率与错误率。从图9可知,当共谋人数在小于等于8人时,对于3种共谋攻击,文中模型在基于文中或HUANG[11]的水印算法时,均能正确检测出所有共谋者。而当共谋人数大于9人时,对于Max与Min攻击,文中模型的共谋者检测能力在基于HUANG[11]水印算法时要强于基于文中水印算法时。对于Mean攻击,文中模型在基于两类水印算法时的共谋者检测能力差别不大。
(a) 共谋检测正确率
(b) 共谋检测错误率
综合上述分析,在面对JPEG压缩、噪声攻击与中值滤波等强图像攻击时,文中模型在基于文中所提可纠错鲁棒水印算法时,在单一攻击者环境下具有更好的证照泄露者检测能力。此外,在遭受共谋攻击时,文中模型基于文中所提鲁棒水印算法或基于现有强鲁棒水印算法,在共谋人数少于等于8人时,都能100%正确检测出参与共谋的攻击者。考虑抗8人共谋攻击足以满足实际场景中的应用需求且基于文中所提鲁棒水印算法时,文中模型具有更好的单一泄露者检测能力。因此基于文中所提鲁棒水印算法时,文中模型具有更好的证照泄露者检测能力。
目前针对电子证照应用中安全问题的相关解决方案并不多。针对电子证照跨地区跨部门申请流程复杂、验证证书难度大、政府信息沟通渠道不畅、访问权限管理不科学等问题,一种基于区块链的电子证照解决方案被提出。该方案可以有效防止纸质证件在使用中存在的多个问题,使得多个组织之间的信息可以无缝访问,解决了电子证照共享难的问题。此外,该方案通过灵活的访问控制和隐私保护策略,保证了信息流通过程中的数据隐私安全[1]。针对传统电子证照管理方案存在数据伪造、难以共享的问题,一种基于区块链的电子证照存储和共享模型被提出。该模型基于联盟链、改进的El Gamal数字签名方案以及改进的PBFT共识算法,能够有效、快速实现电子证照的安全存储和共享[22]。针对传统智慧城市系统中心化导致的数据孤岛问题,一种基于区块链的去中心化电子证照库共享交易系统被提出,实现了电子证照资源跨地区、跨层级共享及强化管理[23]。传统电子证照的应用解决方案虽然在一定程度上解决了电子证照的安全存储和共享难题,但却忽略了电子证照流转过程中是否经过证照本人的真实授权以及证照泄露且被破坏后无法追溯的问题。
鲁棒水印算法是指一类能够抗多种图像攻击的水印算法。即使水印图像受到攻击,接收方也依然能从被破坏的水印图像中提取出水印。因此,该类水印算法被广泛应用于图像版权保护领域[24-26]。而如何提高鲁棒水印算法抗多种图像攻击的鲁棒性是研究该类水印算法的难点。恶意攻击者对水印图像的常见攻击主要分为噪声攻击、滤波攻击、压缩攻击、几何攻击等[27-28]。其中,高斯噪声、中值滤波、JPEG压缩攻击、缩放攻击等对图像的破坏比较大,从而使得水印信息丢失严重。针对缩放攻击,自适应量化阈值的差分量化方案利用两个选定的DCT系数之间的差异来嵌入水印,同时基于自适应嵌入策略最大化量化阈值,有效提高水印算法抗缩放攻击时的鲁棒性[11]。针对几何攻击,基于低阶Zernike矩的水印算法利用低阶Zernike矩在数学上对图像缩放的不变特性,将水印嵌入低阶Zernike矩中,不仅能有效提高算法抗几何攻击的鲁棒性,而且对JPEG压缩也具有较强的鲁棒性[20]。针对滤波攻击,基于深度卷积神经网络的水印算法借助神经网络预测攻击对图像的影响,同时结合离散余弦变换构建水印算法,有效提升算法抗滤波、缩放攻击时的鲁棒性[21]。通过对现有多种先进的鲁棒水印算法[11,20-21]进行实验对比分析,发现HUANG[11]等所提的鲁棒水印算法在遭受多种图像攻击时鲁棒性综合表现更好,然而其在抗JPEG压缩时鲁棒性不能满足实际应用的需求。为了满足电子证照泄露后高效可追溯的应用需求,文中对HUANG[11]等提出的鲁棒水印算法进行改进,同时引入纠错码机制,从而构建可纠错鲁棒水印算法,为水印算法增加水印信息可纠错的功能,进一步提高水印算法抗多种图像攻击时的鲁棒性。
电子证照互认共享是加快推进国家治理现代化的重要举措,其可验证性及可追溯性是人们一直关注的问题。文中以电子证照共享留存过程中三方参与者的可验证、可追溯需求为主要研究切入点。首先,基于实际应用特点,构建电子证照共享存证系统模型;其次,通过设计可纠错鲁棒水印算法,为传统鲁棒水印算法增加水印可纠错的功能,从而提高水印算法总体鲁棒性;然后,基于所提鲁棒水印算法、可逆信息隐藏技术以及签名算法构建可验证可追溯电子证照模型,并基于此模型设计电子证照共享存证协议,从而实现电子证照的三方可信验证及证照泄露高效可追溯;最后,实验分析了文中方案的安全性及效率,希望能够为该领域的研究者提供有价值的参考信息。