掌桥专利:专业的专利平台
掌桥专利
首页

基于多方全同态加密的安全多方计算实现系统及方法

文献发布时间:2024-04-18 19:58:21


基于多方全同态加密的安全多方计算实现系统及方法

技术领域

本发明涉及的是一种信息安全领域的技术,具体是一种利用区块链作为可靠交互信道的基于多方全同态加密的安全多方计算实现系统及方法。

背景技术

现有基于全同态加密的安全多方计算分为两大类,即多密钥全同态加密和多方全同态加密。其中多密钥全同态加密的密文长度较长,且同态运算过程复杂。多方全同态加密则是所有参与方必须在密钥生成阶段确定,并在此阶段参与相关密钥的生成过程,所以无法动态增加参与方。现有的基于全同态加密算法实现的多方安全计算需要在密钥生成和聚合阶段或者密钥转换和解密阶段进行交互和计算,其中一种是与同态计算时一样将交互的协调和密钥的聚合过程交给计算方,另一种是各方两两之间进行交互。前者需要确保计算方正确执行计算,而后者要求交互双方需要同时在线。此外这些方案也都在要求参与方是半诚实的同时要求计算方也是半诚实的,如何在不引入复杂且昂贵的零知识证明的前提下减弱对计算方的安全性假设是一个需要解决的问题。

发明内容

本发明针对现有技术存在的上述不足,提出一种基于多方全同态加密的安全多方计算实现系统及方法,将区块链作为数据传输的通道和计算的平台,在不引入半诚实计算方的前提下,利用区块链解决安全多方计算中要求各个参与方必须同时在线的问题;利用区块链解决安全多方计算中参与者可靠的交互通信问题;利用智能合约解决计算任务分配问题,确保密钥聚合、外包计算等正确完成。

本发明是通过以下技术方案实现的:

本发明涉及一种基于多方全同态加密的安全多方计算实现系统,包括:合约部署者、多方计算参与方、数据提供方和区块链共识节点,其中:合约部署者根据应用场景确定计算逻辑,编写和部署合约,提供公共参考多项式(CRP),并在密钥转换后利用本地的私钥解密出结果;多方计算参与方根据区块链状态执行公钥和运算密钥的生成过程中以及密钥转换过程中份额的生成和公布;数据提供方按照需求利用生成的公钥加密本地的数据并公布;区块链共识节点进行公开的公钥的聚合、运算密钥的聚合、数据的同态计算以及密钥转换的聚合计算。

技术效果

本发明在不引入半诚实计算方的前提下,利用区块链解决安全多方计算中要求各个参与方必须同时在线的问题;利用区块链解决安全多方计算中参与者可靠的交互通信问题;利用智能合约解决计算任务分配问题,确保密钥聚合、外包计算等正确完成。相比现有技术,安全多方计算的各个参与方不需要同时在线;密文态的计算由区块链的共识节点完成,各参与方不需要各自独立进行计算,也不需要引入中心化的计算方;密钥聚合、同态计算以及密钥转换的执行过程记录在区块链中无法篡改并可以追溯。

附图说明

图1为本发明流程图;

图2合约部署与密钥生成示意图;

图3密钥转换与下载解密示意图;

图4多方计算参与方直接交互示意图;

图5多方计算参与方与计算方交互示意图。

具体实施方式

如图1所示,为本实施例涉及一种基于多方全同态加密的安全多方计算实现方法,包括:

步骤1)合约部署者根据需求确定计算逻辑和加密参数,生成公私钥对以及协议需要的公共参考多项式CRP,编写并部署包含用同态算法编写的计算逻辑的合约,具体包括:

1.1)合约部署者确定加密参数params和运算逻辑f(x

1.2)部署合约,调用Init(params,pk,pkcrp,evkcrp)进行智能合约初始化。

所述的智能合约的接口包括:

Init(params,pk,pkcrp,evkcrp):智能合约初始化,传入的参数有加密参数params、合约部署者公钥pk、生成公钥所需的公共参考多项式pkcrp、生成运算密钥所需的公共参考多项式evkcrp。

GenPk(share):公钥份额的上传和聚合,其中share为公钥份额,最后将计算出公钥cpk。

GenEvk(share):运算密钥份额的上传和聚合,share为运算密钥份额,最后计算出运算密钥evk。

Eval():执行同态运算,其中包含利用各个密文的数据标识key获得密文的功能,最后将计算出密文结果result_before_sw。

GenKeySwitch(share):密钥转换份额的上传和聚合,参数share为密钥转换份额,最后将计算出密钥转换后结果result_after_sw。

SetData(key,cipher):数据提供方上传密文的接口,传入的参数分别为数据标识key和对应的密文cipher,将键值对(key,cipher)存储在区块链上。

GetData(key):各方从区块链获取数据的接口,传入的参数key为请求的数据标识。key取值可为"params"、"pkcrp"、"evkcrp"、"pk"、"cpk"、"result_before_sw"、"result_after_sw",分别表示加密参数、生成公钥的CRP、生成运算密钥的CRP、合约部署者的公钥、协议聚合出的公钥、运算结果、密钥转换后的密文结果。此外上传的密文数据也可通过对应的数据标识key得到。

步骤2)如图2所示,多方计算参与方P

2.1)多方计算参与方P

2.2)利用加密参数params生成私钥sk

2.3)计算运算密钥份额值evkshare

步骤3)数据提供方从区块链获取上一步计算得到的公钥,对本地的隐私数据加密,并将密文上链,具体为:数据提供方Q

步骤4)合约部署者调用函数Eval()并从链上获取运算密钥evk,根据数据标识从链上获取相应密文数据;然后由确定的计算逻辑f以及运算密钥evk进行同态运算;最后将同态运算结果存储到区块链上并触发事件通知多方计算参与方进行密钥转换。

步骤5)如图3所示,多方计算参与方从区块链获取计算结果,利用本地的私钥和合约部署者的公钥生成密钥转换的份额,并将其上链,最后智能合约生成密钥转换结果,区块链共识节点利用各方份额完成密钥转换结果的聚合,具体为:多方计算参与方P

步骤6)合约部署者从区块链获取密钥转换结果,并利用本地的私钥解密此密文,得到最后的结果,具体为:合约部署者通过调用函数GetData("result_after_sw")得到密钥转换后的结果result_after_sw,利用本地的私钥可解密得到result=Dec(result_after_sw,sk)。

经过具体实际实验,在

与现有技术相比,本方法的最大优势是不需要引入半诚实的计算方且各参与方不需要同时在线。传统的多方全同态加密方案在进行同态计算时需要引入中心化的计算方,它接收密文数据并进行同态运算,但这种中心化的结构往往会带来单点故障等问题,另外如何方便的验证计算方计算的正确性也是一个需要解决的问题。而本方案将同态运算的过程放在区块链上完成,对于这些参与方而言,这既避免单点故障也不再需要验证其正确性。

如图4所示,传统的多方全同态加密方案对于密钥生成以及密钥转换阶段往往需要两两之间的交互,这就需要双方同时在线,在一些场景下这种条件很难满足。而如果与同态运算类似,如图5所示,将聚合过程委托给计算方进行也会面临和同态运算一样的问题。本方案在进行密钥生成和密钥转换时利用特定的聚合算法,在收集到足够份额后自动进行聚合运算。在同态运算时利用特定的数据标识方法,从区块链上获取数据。同时以区块链的状态协调各参与方,通过触发相应事件通知各方完成各自任务。以此避免了参与方需要同时在线的问题,同时可以保证计算的正确性和不可篡改性。

上述具体实施可由本领域技术人员在不背离本发明原理和宗旨的前提下以不同的方式对其进行局部调整,本发明的保护范围以权利要求书为准且不由上述具体实施所限,在其范围内的各个实现方案均受本发明之约束。

相关技术
  • 基于全同态加密的多方计算方法、系统及相关设备
  • 基于全同态加密的多方计算方法、系统及相关设备
技术分类

06120116482513