基于安全多方的区块链可审计签名方案
2020-09-29王韫烨程亚歌贾志娟付俊俊杨艳艳何宇矗
王韫烨 ,程亚歌*,贾志娟,付俊俊,杨艳艳,何宇矗,马 威
(1.郑州师范学院信息科学与技术学院,郑州 450044;2.华北水利水电大学信息工程学院,郑州 450044)
0 引言
安全多方计算(Secure Multi-party Computation,SMC)是密码学中一个非常活跃的学术领域,具有很强的理论和实践意义。概括地说,所有的加密协议都是安全多方计算的特例。它在数据挖掘、统计分析、隐私保护和机密电子投票等方面起着重要作用。它由Yao[1]在1980 年首次提出,是百万富翁问题的扩展。后经过Goldreich 等[2]的广泛研究,安全多方计算已成为国际密码学的研究热点。
安全多方可以在没有可信第三方的条件下,解决一些由多人共同参与的棘手问题,具有很重要的现实意义。然而在实际执行中,安全多方协议的参与者存在诚实、半诚实和恶意三种类型的参与者。这对协议的执行带来了一定的困扰,为提高参与者的可信度,针对参与者的行为进行信任评估具有很重要的研究意义。
在基于信任机制的签名方案中,文献[3]中首先提出了“基于信任传递的虚拟身份认证”的概念模型,该模型提出了信任的建立、授权、存储和维护规则,以确保虚拟身份认证过程的安全性。文献[4]中提出了一种基于信誉机制的安全多方计算协议,该方案基于拉格朗日差值多项式,需要大量的多项式计算,其效率有待提高。文献[5]中提出了一种基于信任机制的安全路由决策方案,该方案引入了信任向量来实现证据链的收集。文献[6]中设计了分布式环境中的动态可信度评估模型,该方案将Shapley熵引入到可信度评估过程中,从而使方案的可信度评估结果能够更准确地反映节点的动态行为。基于基本的自动信任协商模型,文献[7]中结合安全多方计算理论提出了一种基于安全多方的自动信任协商协议来实现隐私保护。
文献[8]中提出了基于秘密共享的可动态更新签名方案,该方案通过交互信息来验证成员的可信性,但是不具有可追溯和可审计功能。文献[9]中提出了基于多项式的秘密共享的前摄性门限RSA(Rivest,Shamir,Adleman)签名方案,计算效率有待提升。文献[10]中提出了适用于区块链的签名方案,该方案将节点的公钥存储在区块链上,实现动态更新之后仍可查看前期签名。文献[11]中提出了基于安全多方的公平秘密共享方案,该方案保护了参与者的秘密信息,但是参与者的可信性无法评估。文献[12]中通过同态加密实现了秘密出价选择计算出代理者,并通过秘密计算相似属性完成属性泛化的整体处理,但计算效率有待提高。文献[13]中提出了基于信任机制的安全多方签名方案,该方案通过评估参与者可信度确保参与者的可信性,但可信结果由参与者自己保存,存在被篡改的可能性。
在上述研究的基础上,本文设计了一种安全多方的区块链可审计签名方案。方案引入信任矩阵记录参与者的可信行为,并将其动态绑定到签名过程中。为确保可信评估值的可信性,利用区块链的公开透明和不可篡改性,将评估结果存储到区块链中作为后期审计的证据。
本文的主要贡献及创新为将安全多方和区块链结合,建立了一种可审计和追溯的可信机制,将参与者的可信度量化并形成可信矩阵,使参与者的可信度更加直观;并利用区块链不可篡改的特性将可信矩阵存储到区块链中作为审计的依据,使可信度更加真实可信。
1 预备知识
1.1 安全多方计算
安全多方计算[14]主要用于解决一组互相不信任的参与者之间的个人隐私保护问题。它是解决两个或多个参与者之间隐私计算问题的有效方法,能够确保多名互不信任的参与者之间共同完成计算任务而不会泄露各自的隐私信息。
设在分布式网络中,有一组彼此互不信任的参与者P1,P2,…,Pn。假设每个参与者都拥一份秘密数据x1,x2,…,xn,他们秘密输入各自的秘密数据,并通过相互合作共同计算f:(x1,x2,…,xn) →(y1,y2,…,yn)。最后,每个参与者都可以得到各自的输出yi,在此过程中,每个参与者都无法获得其他参与者的任何信息。
在安全多方计算协议中,存在一些尝试破坏协议的人,这些人被称为攻击者。根据攻击者破坏的参与者类型,可以将攻击者分为两类[15]:
被动攻击者 如果攻击者破坏的是半诚实的参与者,即攻击者只能获取被破坏的半诚实参与者的输入、输出和中间结果,但既不能更改也不能停止协议的运行,参与者仍然能够严格执行协议内容,此类攻击者被称为被动攻击者。
主动攻击者 这类攻击者比被动攻击者攻击能力要强。该类攻击者不仅能够获取被破坏者的输入等信息,更可以更改及控制被破坏者的输入、输出,篡改中间结果,甚至可以中断协议的执行,此类攻击者被称为主动攻击者。
1.2 区块链
区块链[16]是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证其不可篡改和不可伪造的分布式账本。区块链技术是利用链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算方式。
作为电子货币交易的底层技术,区块链具有去中心化、匿名化、不可篡改、公开透明、可审计等良好特性,很好地解决了数据在传输过程中的可信性,在金融、医疗、能源互联网、物联网等领域发展迅速。
1.3 Asmuth-Bloom秘密共享方案
1983 年Asmuth 和Bloom 提出了Asmuth-Bloom 秘密共享方案[17],其详细方案步骤如下:
初始化 设秘密分发者为Distribution Center(DC),Pi是参与成员,t为门限值,秘密为s。秘密分发者DC 选择大素数q(q>s),整数A,以及严格递增正整数序列d={d1,d2,…,dn},且d满足如下几个条件:
秘密分发 秘密分发者DC计算:
并将(zi,di)发送给Pi,作为Pi的秘密份额。
秘密恢复 参与者可通过交换秘密份额恢复秘密s。任意选取t个参与者Pi(i=1,2,…,t)恢复秘密。通过相互交换秘密后,Pi建立同余方程组:
2 本文方案
本文通过引入带时间戳的信任矩阵来评估参与者的信誉值,将其动态地绑定到签名过程中,作为记录参与者行为的证据,并将评估结果存储到区块链中作为监督和审计的查证依据。其架构如图1。
图1 安全多方的区块链可审计签名架构Fig.1 Architecture of secure multi-party blockchain auditable signature scheme
2.1 产生密钥
2.1.1 初始化
设Pi(i=1,2,…,n)是n个参与者的集合,t为门限值,g为有限域GF(p)上的生成元,p和q是两个大素数,并满足q/(p-1),di(i=1,2,…,n)是一组严格单调递增的正整数序列,q和d满足Asmuth-Bloom 方案,待签名消息为m,D=,公开n、t、g、p、q、d和D。
2.1.2 产生秘密标记信息
2.1.3 产生身份标记信息
2.1.5 产生密钥
Pi收到其他参与者的秘密标记(i=1,2,…,n),生成个人私钥:
2.2 可信机制的建立
为确保参与者的可信性,建立动态可信评估机制,动态更新参与者的秘密标记信息并生成带时间戳的信任向量,作为参加者可信的基础,并由信任向量构成信任矩阵(Trust Matrix,TM)。其构建过程如图2。
图2 可信机制Fig.2 Trust mechanism
如图2 所示,可信评估函数主要包含两个方面,直接可信和间接可信。直接可信是指参与者的身份可信,间接可信是指参与者之间交互信息的可信性。其中身份的可信性通过等式判断,交互信息的可信性通过等式判断。当等式成立时取值为1,否则为0。并将可信度量值组成可信矩阵用于审计和追溯。其具体执行过程如下。
若等式
成立,则间接信任fI=1;否则为0。
此时,Pi将第k个周期的评估结果生成信任向量TV:
将第k周期所有参与者Pi(i=1,2,…,n)的信任向量组成信任矩阵TM,因此第k个周期所有参与者的评估结果为:
因此,在第k周期时,参与者Pi对其他n-1 个参与者的评估值为:
当参与者不可信时,则不能参与签名。
2.3 产生签名
2.4 签名验证
Pi用组公钥Gpk验证等式gS≡um⋅η⋅Gpkmodp。如果等式成立,则签名有效。
2.5 动态更新
由于存在移动攻击,攻击者可以通过长期稳定的攻击来获取参与者的专用密钥;然而,动态更新参与者的密钥可以有效地防止移动攻击并提高安全性。该解决方案可以使系统公钥在整个更新过程中保持不变,保留了使用系统公钥访问历史签名信息的功能。这里,将更新周期设置为T。
每一个周期T,参与者更新秘密标记信息,并更新私钥
更新完成后,参与者还可以根据签名过程1)~4)生成签名。
2.6 区块链可审计机制
如图3 所示,参与者首先选择出代理者,由代理者将可信度量矩阵加密并存储到区块链中,当有申请者需要查验时,向代理者发起申请并从区块链中下载相应周期的可信矩阵,代理者将对应周期的组私钥发给该申请者,申请者通过解密即可得到原始可信矩阵并予以验证。
其详细实施过程如下。
图3 区块链审计流程Fig.3 Flowchart of blockchain audit
2.6.1 半可信代理的选择
参与者通过竞标出价选择出半可信代理者。每个参与者秘密出价得到一个标准数据H=(h1,h2,…,hn),n个参与者合作保密计算获得各自的出价hi排序,最后由出价最高者作为代理。
首先,参与者Pi(i=1,2,…,n),商定一个全集A=[1,N],满足H⊆A,每个参与者在全集A中构造一个N维向量Bi=(bi1,bi2,…,bij,…,biN),其中对于每一个j∈A,定义
其次,Pi用系统公钥加密Bi得到:
得到最终的出价排序,由出价最高者作为代理,假设出价最高者为Pr。
2.6.2 区块链审计
Pr作为代理,将第Tk(k=1,2,…,n)周期的可信评估矩阵用系统公钥加密得到密文,并对密文进行哈希处理得到,将最后得到的哈希值存放到区块链中。
当有需求时,参与者Pk或其他参与者向代理者发起请求,代理Pr将组私钥发送给申请者Pk,Pk从区块链上下载数据并用私钥解密得到可信评估矩阵。
3 方案分析
3.1 正确性分析
定理1参与者共同计算出的签名有效。
定理2 可信评估函数可以正确有效地判断参与者的可信性。
证明 根据可信评估函数:
定理3通过秘密比较数组H=(h1,h2,…,hn)的大小可以正确有效地选择出代理者。
根据向量Bi=(bi1,bi2,…,bij,…,biN)的构成方式可知,对于任意的j∈A,若j=hi,则有bij=1;若j≠hi,则有bij=0。依此类推得到,参与者根据式(1)Ri=可计算得到最终的排序结果,出价最高者则被选为代理。
3.2 安全性分析
3.2.1 签名算法安全性分析
本方案基于中国剩余定理求解,至少需要t个同余方程组才能求解,少于t个方程则无法求解。因此,恶意攻击者必须在同一周期Tk内同时获得t个或多于t个的参与者方可求解出签名信息。
3.2.2 不可伪造性分析
不可伪造性简单来讲就是指一些恶意攻击者不能通过篡改或者伪造来改变合法的签名。
3.2.3 可以抵抗移动攻击
移动攻击意味着,只要有攻击者成功地入侵并控制其中的一个参与者,攻击者便可将攻击目标成功地转移到系统中的其他参与者。当然移动攻击者可能在短时间内无法完全成功入侵并控制其他参与者,但是如果有足够的时间持续攻击,则攻击者可能通过攻击获得t个以上的参与者的信息,从而成功破坏系统的安全性。
为了防止移动攻击的发生,方案动态更新参与者秘密标记和私钥,随者周期Ti的增加定期更新,攻击者只有在有限的同一个周期时间段内同时成功入侵并控制t个以上参与者的个人秘密信息才能攻破系统的安全性,这对攻击者来讲是困难的。
3.3 性能分析
3.3.1 效率分析
本文方案与其他方案相比,能够动态评估参与者的可信行为,并具有可审计的特性。表1 是本文方案与其他方案的对比结果,其中:1 表示方案有此项功能,0 表示方案没有此项功能。
表1 签名方案对比Tab.1 Comparison of signature schemes
文献[4]基于信誉的安全多方秘密共享方案,该方案具有信誉机制,但没有审计和动态更新设计,也没有前向安全性。文献[8-10]都具有前向安全行和可动态更新功能,但是都不能动态评估参与者的可信性,也不具有可审计特点。文献[11]基于安全多方的秘密共享方案不具有可信、可审计的特性,也没有动态更新和前向安全性。
另外,本文方案采用秘密共享技术,主要涉及有模乘、模加、模幂以及一次模逆计算,很大程度上降低了计算复杂度,节省了时间成本,与基于拉格朗日插值多项式、双线性对的签名方案相比,效率有所提升。
为理解方便,定义了表2符号。
表2 符号定义Tab.2 Symbol definition
表3 是本文和文献[9]的计算复杂度对比结果,文献[9]是基于拉格朗日插值多项式的RSA 签名方案,需要较为繁琐的多项式计算。其对比结果如下。
表3 计算复杂度对比Tab.3 Comparison of computational complexity
3.3.2 仿真实验
本文仿真实验环境是64 位Window 10 操作系统,MyEclipse2015 系统,CPU 为英特尔酷睿i5-8300H 处理器,主频2.3 GHz,内存为8 GB,其实验结果如图4。
图4 门限值与时间消耗Fig.4 Threshold and time consumption
图4 为参与者数量固定不变、门限值变化的情况下本文方案和文献[9]方案的时间消耗对比。由图4 可知,本文方案和文献[9]方案的时间消耗均随着门限值t的增加而增加,这是因为签名过程中参与者的数量n与时间成正相关关系。从图4 可以看出,文献[9]方案比本文方案耗时更多,这是因为文献[9]方案是基于朗格朗日插值多项式,需要大量的多项式计算,而本文方案基于中国剩余定理,因此相率相对较高。
图5 为门限值t固定、参与者数量n增加的情况下本文方案和文献[9]方案的时间消耗对比。由图5 可知,本文方案和文献[9]方案的时间消耗均随着参与者数量n的增加而增加,同理,这是因为签名过程中参与者的数量n与时间消耗成正相关关系。可以看出,本文方案时间消耗要低于文献[9]方案。
图5 参与者数量与时间消耗Fig.5 Participant number and time consumption
4 结语
本文设计的基于安全多方的区块链可审计签名方案,将安全多方和区块链相结合,建立了一种可信评估机制将参与者的可信度量化,更加客观地评估参与者的可信度。利用区块链不可篡改、公开透明的特性,将可信评估矩阵存放到区块链上作为查证的依据,实现了可审计、可追溯的功能。采用秘密共享技术设计了一种安全多方的签名方案,方案基于中国剩余定理与其他方案相比具有计算量小的优点。