APP下载

联盟链中基于CL加密的安全审计协议

2022-11-23王志伟

关键词:同态密文加密

王 诚,王志伟,2,3

(1.南京邮电大学计算机学院,江苏 南京 210023 2.江苏省大数据安全与智能处理重点实验室,江苏 南京 210023 3.江苏省计算机网络技术重点实验室,江苏 南京 210096)

联盟链[1]具有可控性强、半去中心化、高效率(每秒超过1万笔交易)、数据隐私性好等优点,相较于传统公有链的全网公开特性,其只针对特定群体和有限第三方,更加适用于利益相关组织之间的交互,如金融部门,通常需要将资金从一方转移到另一方,其交易隐私问题尤为重要,区块链主要通过加密算法、零知识证明等技术来实现隐私保护。审计是一种经济监督活动,指授权监管机构或审计人员,依照国家法规和审计准则,查明被审组织相关经济活动的合规性及有效性。可审计性对于金融区块链应用程序至关重要,金融机构必须根据政府的规定进行内部和外部审计,以检查是否存在洗钱或与恐怖主义相关的活动,简单起见,将合法进行审计的一方统称为审计者。

区块链交易是基于UTXO[2](Unspent Transaction Outputs)交易模型的,UTXO指未花费交易输出,交易构成了一组链式结构,所有合法的比特币交易都可以追溯到前一个或多个交易的输出,源头都是挖矿奖励,末尾则是未花费交易输出,未花费交易输出可以作为下一笔交易的输入。区块链中的交易规定,任何一笔交易的输入总量必须等于交易输出总量,并且输入输出都在有效范围内,通过对每一笔交易进行签名,使得交易的验证者可以验证同一个事务中是否存在一笔资产被花费了两次,即防止双花攻击或重放攻击[3],Yuen[4-5]提出了一种基于零知识证明、加性同态加密、匿名证书的交易隐私保护协议,被证明在联盟链中具有良好的安全性和效率。 半可信模型(the Semi⁃Trusted Model)是指协议中存在半可信的参与者,其遵循协议的执行,但同时会保存协议的中间状态,即诚实并好奇(Honest but Curious)。Yuen的方案中,由于审计密钥由审计者选取,要求审计者绝对可信,但在现实中,绝对可信的审计者是不存在的。半可信的审计者可能在审计过程中保存用户的交易信息,进而通过大数据推测等方法知晓用户的真实身份或其他敏感信息[6]。

使用同态加密方案可以避免审计者了解细粒度的交易隐私。同态加密技术始于第一个概率加密方案,由 Goldwasser和 Micali提出[7],并由其他密码学者做出改进,其中最成功的同态加密系统是由Paillier[8]设计的,它的语义安全性依赖于 DCR(Decisional Composite Residuosity Assumption)假设。Paillier的方案随后被 Damgård 和 Jurik[9]推广,允许加密更大的消息,随着时间推进,这一线性同态加密技术的家族仍在增长,这些方案的安全性都是基于RSA的大整数分解困难问题。设计一个基于离散对数问题(DL)的通用解决方案是使用Elgamal算法对消息进行加密,即将消息m加密为密文(gr,hrgm)的形式,其中g为循环群G=〈g〉的生成元,h=gx为公钥,然而,解密必须要从gm中恢复m,由于G中DL问题是困难的,m必须足够小以确保能够快速解密,或者提前计算一张包含gi的预计算表,但在不确定i范围的情况下是不可行的。基于DL问题,有两种尝试以达到完全同态加密,Elgamal模 p2[10]或将消息编码为小光滑数[11],但两种方案仍存在部分同态。Bresson等[12]提出了一个完整的解决方案,但他们的方案不仅基于DL问题,还基于分解问题。 Castagnos和 Laguillaumie[13]提出了一种基于DDH问题的线性同态加密方案,并在随后进行了扩展,提供了一个通用加密方案[14],该方案的安全性不依赖于整数分解的困难性,并在特定的群内提供了实现,该方案由 Yuen等[15]进行了改进并推广。

本文的贡献如下:(1)基于CL加密方案[13]和Yuen等[15]提出的零知识证明协议,提出了一种基于CL加密的安全审计协议;(2)将所提出的安全审计协议应用于联盟链中的实际审计场景,通过零知识证明子协议对金额的有效性和合规性进行了审计;(3)对所提出的安全审计协议的安全性和性能进行了分析。

1 预备知识

1.1 交互式零知识证明

零知识证明是指证明者P能够在不向验证者提供任何有用信息的情况下,使验证者V相信某个论断是正确的,区块链中,零知识证明被用来隐藏发送方、接收方以及交易金额等其他细节的情况下保证交易有效。

交互式零知识证明系统主要分为如下4个阶段:

(1)承诺阶段。证明者提前提供承诺等待验证者发起挑战。

(2)挑战阶段。验证者发起挑战,向证明者发送随机值。

(3)回应阶段。证明者根据挑战中的随机值回应挑战,如果证明者确实能够证明命题的正确性,他能够通过每轮挑战,否则只能以一定概率通过。

(4)验证阶段。验证者通过进行多轮挑战,直到认为证明者证明正确的概率足够大,则接受。

一个零知识证明系统由3个多项式时间算法Setup,P,V 组成。

Setup:输入一个安全参数λ,输出一个通用的引用字符串crs。

P:输入crs,一个命题x∈X和证据ω∈W。

V:输入crs和x,与P交互后输出0或1。

一个正确论点的零知识证明系统应该满足两个属性:

(1)可靠性:不诚实的证明者难以用一个错误的命题欺骗验证者,分为计算正确性和完美正确性,满足计算正确性的零知识证明方案能够防止多项式时间的恶意证明者,而满足完美正确性的零知识证明方案能够防止拥有任意计算资源的恶意证明者。

定义1 可靠性。存在一个多项式时间的提取器ε可以以一个不可忽略的概率输出一个命题的证据,如果对于任意两个多项式时间的敌手(A0,A1),满足如下两个条件,则是可靠的。

(2)零知识性:验证者无法获取除命题外的任何信息。

定义2 零知识性。存在一个多项式时间的模拟器S,在不知道证据的情况下输出一个模拟的文本,该文本与真实文本在计算上是不可区分的。即对于所有 (x,ω) ∈ R 和 crs← Setup(1λ),〈V(crs,x),P(crs,x,ω)〉 与 〈V(crs,x),S(crs,x)〉 在计算上是不可区分的。

1.2 同态加密

同态加密是基于数学难题的计算复杂性理论的密码学技术。对经过同态加密的数据进行处理得到一个输出,将这一输出解密,其结果与用同一方法处理未加密的原始数据得到输出结果是一致的。区别于典型加密算法,同态加密提供了无需密钥直接计算加密数据的能力,计算结果保留加密形式,可由密钥持有者解密。同态加密是指存在一种有效算法“8”, 满 足: Enc(m1) 8Enc(m2) 8 … 8 Enc(mk)=Enc(m1+ m2+ … + mk), 或者指数化的密文也是消息的一个有效加密,即Enc(m)α是消息αm的一个有效加密。

1.3 决策 Diffie⁃Hellman(DDH)假设

Diffie⁃Hellman密钥协商算法主要用来解决密钥配送问题,让通信双方交换彼此信息来共同计算出相同的密钥,具体步骤是Alice和Bob分别随机选择a,b∈Zq,计算ga和gb发送给对方,然后双方根据对方发送的信息,生成密钥gab=gbamodq,即使敌手截获了传递的信息,基于离散对数问题(DL)的困难性,恢复出双方的私钥在计算上是困难的。

决策Diffie⁃Hellman假设是基于循环群的。设G是一个q阶循环群,生成元为g,记作G=〈g〉。独立均匀地选择a,b∈Zq,得到ga和gb,敌手区分(ga,gb,gab) 和 (ga,gb,gc) 在多项式时间内是困难的,即敌手无法从G、ga和gb中得到关于gab的任何信息。

1.4 HSM⁃CL 加密

1.4.1 HSM群

困难子群成员(HSM)群是 Castagnos和Laguillaumie等[14]在所提出的具有简单DL子群的DDH群的基础上,使用虚二次域中的类群进行实例化[16-17],从而以 Z/Zq作为消息空间,证明不需要依赖于分解问题。随后Yuen等[15]在此基础上,稍作了修改,其定义如下:

以一个安全参数1λ和一个素数q作为输入,HSM 群生成算法 Gen 输出 param = (,g,f,gq,,G,F,Gq), 其中 (,·) 为阶为 q·的有限阿贝尔群,是长度为 λ 比特的整数,并且 gcd(q,) = 1。表示值的上界,可以有效地判定一个元素在多项式时间内是否在中。(F,·)是的阶为q的唯一循环子群,(G,·)是的阶为q·s的唯一循环子群,其中 s整除。 Gq: = {xq,x∈ G} 是 G 的阶为 s的子群。

由 F ⊂ G 可得 G = F × Gq,g、f、gq分别为 G、F、Gq的生成元,因此 g: =f·gq。 Solve算法输入 fx,,输出 x。 DL(离散对数)问题在 F 中是简单的,说明算法Solve是一种确定性多项式时间算法。

相较于 Castagnos和 Laguillaumie等[14]的方案,在Yuen等[15]的定义中,q是算法输入的而非Gen算法生成的,并且输出,从中生成具有简单DL子群F的群G。

1.4.2 CL加密

解密:输入私钥 sk和密文 C = (C1,C2),计算, 输出 m ← Solve(M)。

标量乘:输入公钥pk,一对密文C = (C1,C2) 和一个标量ε,输出

同态加:输入公钥pk和两对密文C=(C1,C2)与C′=(C′1,C′2),输出

1.5 联盟链系统模型

联盟链系统模型如图1所示,其中一共有7种节点类型。

图1 联盟链节点和工作流

(1)Client:代表由用户操作的实体, 向Endorser节点提交交易,并将交易广播给Orderer节点。

(2)Endorser:验证Client节点提交的交易。

(3)Orderer:对交易进行排序并且运行共识算法。

(4)Committing Peer:提交交易并且维护分类账。

(5)Auditor:审计者可以对任何交易进行审计。

(6)CA:为客户端的公钥颁发证书,只有被授权的一方才能参与到交易中。

(7) Standards Organizations:联盟链中的可信第三方,下文统一译为标准化组织。

2 安全审计协议

假设联盟链系统中,用户从CA获得了一个证书,交易的工作流如下。

Step 1:Client将一个已签名的交易发送给其选择的 Endorser。

Step 2:该Endorser验证交易,并将背书证书退还给 Client。

刚节点模型是将支架立柱看作是有侧移框架柱,分别计算出相交于柱上端、柱下端的横梁线刚度之和与柱线刚度之和的比值k1、k2,再查文献3得到立柱的计算长度系数μ,由公式(1)计算出长细比,查文献3得稳定系数ψ,再代入公式(2)即可。对于结构和荷载分布不对称时,需要对规范得到的立柱计算长度系数μ进行修正,采用公式(3)。

Step 3:Client将已被背书的交易广播给所有Orderer。

Step 4:Orderer将有序的交易块传输给所有Committing Peer。

Step 5:Comminting Peer验证是否所有交易已被正确背书,然后将其提交到区块链中,并维护一个分类账的副本。

Step 6:Auditor在必要的时候可以对交易进行审计。

在本节中,所提出的安全审计协议使用加法同态CL加密和零知识证明完成审计,大致执行流程为:首先,Client在Step 1中利用标准化组织选取的公钥对交易进行CL加密,随后经过Step 2~Step 5,交易以密文的形式被提交到联盟链中,最后,在Step 6中,标准化组织与审计者执行零知识证明完成审计。

联盟链中对交易的审计一般要保证两个方面:(1)总的承诺输入金额等于总的承诺输出金额;(2)所有提交的金额都在有效范围内。联盟链采用UTXO交易模型,交易构成了一组链式结构,所有合法的交易都可以追溯到前向一个或多个交易输出,因此同态加密可以在保证交易隐私的前提下,完成金额的累加。同时,在CL密文良好性的零知识证明中,证明者可以在不泄露消息的任何有效信息的情况下,使验证者相信密文的良好性。本协议基于HSM⁃CL加密方案,将其应用于联盟链的审计领域,在不泄露交易隐私的情况下,实现对交易金额有效范围和收支平衡的审计,主要分为准备阶段、零知识证明阶段和审计阶段。具体过程如图2所示。

图2 协议过程

2.1 准备阶段

2.2 零知识证明阶段

零知识证明ZKPoKWF:零知识证明过程如图3所示。

图3 零知识证明过程

(1) 输入 Ci= (C1,i,C2,i) 和,S 即为证明者,审计者为验证者。

(4)S计算ur= α + γr,uM= β + γMimodq。 S选取μ∈Zq和ν∈[0,q-1]使得ur=μq+ν,其中Zq为整数乘法群,计算将(uM,D1,D2,ν,E) 发送给审计者。

(5)审计者验证是否:

(6)S选取ρ∈Zq和σ∈[0,τ-1]使得ur=ρτ+ σ, 计算, 将 (Q1,Q2,σ) 发送给审计者。

(7)审计者验证是否:

如果是,则证明CL加密密文的良好性。

为了证明交易金额在有效范围内,S和审计者执行如下交互子协议[18]:

(1)S将β表示为两个整数相乘的形式,即β=β2·β1, 计算, 并将 (a,b) 发送给审计者。

(2)审计者将uM表示为两个整数相乘的形式,即 uM= uM,2·uM,1。

如果n1和n2有一个等于1,则β<uM,否则β≥ uM。

审计者同时验证是否uM≤E,当且仅当uM∈(β,E], 输出 1,否则输出 0。

当且仅当上述子协议输出为1,证明交易金额在有效范围内,审计者接受,否则拒绝。

2.3 审计阶段

3 安全性分析及性能分析

3.1 安全性分析

CL加密已被证明在DDH假设下是IND⁃CPA安全的。本协议的安全性是基于CL密文良好性的零知识证明,该方案已被证明是多项式安全的,在交互过程中不会泄露任何有效信息。本协议将其应用于联盟链审计场景,增加了对单笔交易金额有效范围和总的交易输入输出收支平衡的审计,金额有效范围的证明是通过子协议实现,该子协议的安全性是基于离散对数问题的困难性,假设敌手窃听了(a,b), 在多项式时间内恢复出 (β2,β1) 在计算上是困难的。传统的联盟链交易审计协议中,私钥由审计者选取,因此不诚实的审计者可以随时随地披露交易的完整细节,损害交易双方的利益。本协议基于交互式零知识证明,交易金额以 uM=β+γMmodq的形式发送给审计者,其中β的标准化组织是S选取的,γ是审计者第一次挑战过程中发送的,由于没有关于β的信息,审计者得不到关于M的任何有效信息。

定理1 零知识证明ZKPoKWF是可靠的。

证明:使用倒带技术回顾敌手的每一次新的挑战τ,可以输出 (σ,τ), 有极大的概率使 ur≡σmodτ。 如 果 pkur≠ S1C1,ifuM并 且 (pkur)q≠(S1C1,ifuM)q, 则令, 则 Q1pkχ是 S1C1,ifuM/pkur≠ 1 的第 τ个根,这将打破自适应根子群假设,因此有极大的概率使。提取器从协议输出副本中提取 (ur,uM,γ) 和 (u′r,u′M,γ′), 计算 Δur=ur- u′r,ΔuM= uM- u′M和 Δγ = γ - γ′modq, 表示 r=, 则如 果 C1≠pkrfMi, 定义 φ = pkrfMi/C1≠1,φΔγ= 1(Δγ < q), 则φ是一个非平凡的元素,因此有极大的概率使C1=pkrfMi。 综上,零知识证明ZKPoKWF是可靠的。

定理2 零知识证明ZKPoKWF是零知识的。

证明:假设多项式时间内的模拟器与诚实的验证者一样随机选取一个Prime(λ), 在交互过程中可以找到 μ′∈ Zq,ν′∈[0,q - 1] 以及 ρ′∈ Zq和 σ′∈ [0,τ′- 1], 使得μ′q + ν′= ρ′τ′+ σ′。 然后,计算可得 (D′1,D′2,Q′1,Q′2,E′), 对于协议中的所有输出,包括协议执行期间选择的随机数, (μ′,ν′,ρ′,u′M,D′1,D′2,E′) 由(γ′,τ′) 唯一确定,以确保验证有效。 对于 σ′, 其值与[0,τ′-1]上的均匀分布的统计距离可以忽略不计, (Q′1,Q′2) 的值仅与 σ′有关,因此模拟器产生的输出 (μ′,ν′,ρ′,σ′,u′M,D′1,D′2,Q′1,Q′2,E′) 与实际证明者和验证者之间交互产生的输出 (μ,ν,ρ,σ,uM,D1,D2,Q1,Q2,E) 在统计上无法区分。 综上,零知识证明ZKPoKWF是零知识的。

3.2 性能分析

为了测试本协议算法的计算消耗,在Windows环境配置为 Intel(R) Core(TM) i5⁃4200H CPU@2.80 GHz,RAM 16.00 GB的平台上使用Java语言、JPBC库以及Bouncycastle第三方库实现本协议的算法。

Yuen等[15]提出了一种安全审计协议,利用Elgamal加密的加法同态性质和非交互式零知识证明,完成对交易的审计。本文分别在112 bit和128 bit安全性下对Yuen等[15]的审计协议以及本协议的通信带宽和运行时间做对比,结果是多次运行之后所取得的平均值,分别如图4和图5所示。需要注意的是,由于本地测试环境的异构性和代码编写复杂程度的不同,运行结果会有一些偏差,但总体趋势不变。本协议基于同样采用Elgamal形式的CL加密,与传统CL加密相比,在使用相同统计距离和可靠误差的情况下,通过紧凑零知识证明有效降低了通信带宽和运行时间,加入一个对金额有效范围进行审计的子协议,使得本协议能够适用于联盟链中的审计场景。由图4和图5可以得出,相较于Yuen等[15]的审计协议,本协议在通信带宽方面开销更小,但在运行时间方面,由于本协议采用交互式零知识证明,增加了重复挑战和回应的时间,故运行成本略高,但仍在同一个数量级。本协议相较于Yuen等[15]的审计协议,优势主要在于:(1) DL问题在F中是简单的,在解密上的计算成本更低;(2)审计过程中不泄露任何交易信息,增加一些运行成本以获得更高的安全性是有价值的。

图4 通信带宽比较

图5 运行效率比较

随后,在Linux CentOS 7环境中搭建了一个简单的Hyperledger Fabric 1.4网络,其具备完整的交易流程,包括用户初始化、正常转账和余额查询等功能,并将审计逻辑加入到智能合约中。在该网络中,创建了两个虚拟用户Alice和Bob,在他们之间进行了若干交易,每一笔交易由Alice和Bob中的一方发起,首先提交给一些Peer节点进行背书,随后发送给Orderer节点进行排序,最后由Committing Peer节点将有效背书的交易写入联盟链。联盟链账本上会存储交易的一些信息,使用Fabric提供的API接口,可以查询交易的历史记录,本次实验的部分交易信息如表1所示。

表1 部分交易记录

对这些交易进行审计,以分析本协议在实际联盟链审计场景下的运行效率。

如图6所示,本协议在不同数量的交易下都具有良好的审计效率,不过由于使用Java语言开发的Fabric链码,在效率上会比使用Go语言和BN256配对库开发的链码略微差一点。

图6 审计效率

4 结束语

本文提出了一种基于CL加密的安全审计协议,实现了审计过程中交易隐私保护。相较于现有的审计方案,本文提出的安全审计协议具有如下特点:(1)审计过程中不会泄漏与交易相关的任何有效信息,避免了不诚实审计者权力过大造成的安全隐患。(2)通过交互式零知识证明,审计者可以在不知道任何有效信息的情况下,相信交易的有效性和合规性。基于零知识证明、DDH假设、DL问题的困难性等数学问题,所提出的安全审计协议具有良好的安全性,通过紧凑型零知识证明,有效提高了性能,适用于联盟链中的审计场景,并有良好的扩展性。

猜你喜欢

同态密文加密
一种支持动态更新的可排名密文搜索方案
一种新型离散忆阻混沌系统及其图像加密应用
基于模糊数学的通信网络密文信息差错恢复
关于半模同态的分解*
拉回和推出的若干注记
一种基于熵的混沌加密小波变换水印算法
加密与解密
一种基于LWE的同态加密方案
一种基于密文分析的密码识别技术*
一种基于密文分析的密码识别技术*