一种基于反馈传播的分布式计算网络构建方法及其系统的制作方法

文档序号:6467675阅读:122来源:国知局
专利名称:一种基于反馈传播的分布式计算网络构建方法及其系统的制作方法
技术领域
本发明涉及一种基于反馈传播的分布式计算网络构建方法及其系统,特别涉及一种可用 于安全多方计算、可信计算等的分布式协同网络构建方法,属于软件技术领域。
背景技术
随着网络的迅速发展和普及,使得各种分布式协同计算成为可能,包括网上银行、网上 证券、数据仓库、分布式査询等应用的日益普及,极大地促进了社会和经济的持续发展。同 时,分布式计算也适于移动环境中将不同种类设备整合起来,如掌上电脑、移动电话、GIS、 传感器等,极大地扩展现有网络的应用范围和服务种类。分布式系统的特点在于,它能够将
各种职能和资源从集中环境中分割开,同时又能保证彼此访问的便利与可靠,因此,分布式 计算具有广阔的应用与发展空间。
分布式计算的开放性和交互性也使其更易受到各种外部攻击,以及来自内部的叛逆者攻 击,乃至内外用户间的合谋攻击,信息隐私性难以保障,特别是企业、社会服务中的核心计 算安全,不仅关系到任何与公司的经济利益,而且涉及到经济、社会、乃至国家的稳定和安 全。例如,网络交易中某用户想要购买某种产品,就需要用户、销售商、银行之间的三方计 算完成交易,由用户提供电子货币或银行帐号,银行对其进行资金扣除,并将资金转帐给销 售商。这里既希望最终交易结果是正确的,同时也要保证用户资金数量、销售商帐户等信息 不被泄漏。因此,防御各种分布式系统存在的潜在攻击,并提高系统的隐私能力,已经成为 分布式系统发展的主要前提和制约因素。
然而,现有的分布式计算系统仍然缺乏全面的安全性设计及实现技术,对于上述问题, 利用分布式计算中成员之间相互协作的特点,能够实现成员彼此之间的相互检査和安全计算。 例如,1982年姚期智(A. C. Yao) [1]首先提出了用于两方计算的安全计算问题;而后,将其思 想发展提出了安全多方计算问题,该文首次引入由可信第三方构造的理想模型,并在同步网 络环境和Byzantine敌手攻击情况,指出被敌手控制成员数目t满足t〈n/3下,协议允许n 个成员安全地计算任意函数;此后,多方安全计算得到迅速的发展,并逐渐成为安全分布式 计算理论基础。
目前,上述研究仅限于密码学上的理论探讨,尚未有实际系统加以实现。而一旦予以实现,安全分布式计算的应用领域是十分广阔的,例如电子拍卖、电子选举、隐私保护数据挖 掘等。现有的分布式计算系统由于不考虑个人计算机上隐私数据的保护问题,因此并没有针 对性的具体的网络构建方法,仅是将其置入到整个因特网中,若数据包可以进行传输,则认 为参与分布式计算系统的各个节点是相互连通的,也就成功地建立了网络连接。而上述的安 全计算方法不仅需要能够实现多个节点间的同步计算,更需要保证安全性。为此,针对以上 安全计算方法,设计一种能够满足各种实际应用需求,并能在各种设备上部署的分布式计算 系统,实现分布式环境下的动态、自组织计算网络构造方法、通信协议、系统构造等问题, 且具有实时性、完全连通性、支持多任务的特点,必将是一种合理而又有效的分布式计算技 术,有利于可信计算、网格计算等实际系统的构造。

发明内容
本发明的目的在于提供一种能够在各种设备上部署的分布式计算系统,并能够实现分布 式环境下的动态、自组织计算网络以及通信协议、系统等的构造。所谓动态性是指分布式计 算环境内的成员(机器设备)并非固定、或是运行前指定的,而是系统运行中允许成员进行 加入、撤销、变更等。所谓自组织性是指分布式计算活动与任务并非系统建立初期制定的, 而是根据需要灵活的构造新应用与计算任务。由本发明所建立的分布式计算环境中,为了保 证安全性,各种计算任务是与分布式系统独立的,同时,该分布式计算环境应具有一定的冗 余性,包括计算冗余性、存储冗余性、故障检测冗余性等。通常情况下,本系统需要满足 >^ + 1,其中,"为计算任务所需总成员个数,f为该计算任务中可能存在的错误、故障、 攻击成员个数。
本发明的技术方案为
一种基于反馈传播的分布式计算网络构建方法,其步骤为
1) 发起请求主机向其他主机发送构建计算网络请求数据报,并等待其它主机的应答报文;
2) 发送请求主机根据收到的应答报文生成本次计算网络的成员列表数据报;
3) 发送请求主机将成员列表数据报发送给所述成员列表数据报中的其它每个成员;
4) 根据所述成员列表数据报,其它每个成员两两之间建立起双工信道进行数据通信。
进一步的,所述请求数据报和所述成员列表数据报的数据结构均包括数据报头、操作 号、接受者编号、发送者编号、数据报属性、数据段、数据报尾。
进一步的,所述发送请求主机设定一时间阈值,将根据所设定时间阈值内收到的应答报 文生成本次计算网络的成员列表数据报;所述请求主机根据接收到的应答报文时间为序,对各个主机进行编号,建立本次计算网络的成员列表数据报。
进一步的,所述其它每个成员两两之间双工信道的建立方法为首先每个成员按照收到 的成员列表数据报中的主机成员及其编号,在同一方向上由编号小的主机向编号比自己大的 主机发送通信数据报文进行通信连接;然后在设定的通信时间后进行所有成员间的同步;最 后对于未建立起双工通信的成员之间,按照从大到小序号关系在反方向上进行通信连接,直 至成员全部连接被建立起来。
进一歩的,所述方法中采用广播加密算法对所述双工信道进行加密,建立成员之间的保 密通道。
进一步的,所述成员之间采用群组通讯机制实现网络群组内广播与同步。
进一步的,所述成员列表数据报根据成员的加入和撤出进行动态更新。
进一步的,所述主机对数据进行运算时数据一直保持加密状态,所述数据包括输入数 据、中间运算结果、最终计算结果,所述运算包括数据分发、分布式数据计算、计算结果恢复。
进一步的,所述主机在所述运算过程进行诊断与容错处理,所述诊断与容错处理方法包 括但不限于下列方法中的一种秘密共享及其验证技术、同态密码技术、公钥门限密码技术、 公钥同态密码技术、数据一致性检验技术、基于纠错码的密码技术。
进一步的,所述主机内部通过多线程、进程机制用于接收多个发起请求主机的网络请求 数据包,并与之建立所述双工信道。
一种基于反馈传播的分布式计算网络系统,包括至少两台主机,其特征在于所述主机包 括密码/计算模块、诊断/容错模块、存储/日志模块、协商/通信模块、成员管理模块;
所述密码/计算模块用于完成数据加密和计算操作;
所述诊断/容错模块用于实现协议或计算中的异常现象检测、定位、恢复,并实现协议 或计算中的容错机制;
所述存储/日志模块用于完成数据分布式安全存储和隐私数据的日志记录功能;
所述协商/通信模块用于实现不同主机之间的秘密通信与通信协商,以及完成对接收到 的命令进行解释、资源分配、数据封装、线程调度,并启动相应的处理模块进行处理;
所述成员管理模块用于通过各主机间的数据报通信,记录当前本主机可通信的网络上
其他结点的主机信息,作为本主机发起计算时的可邀请主机选择列表。
6本发明的分布式计算系统为一套完整的平台体系结构,能够保证其在不同设备、操作系 统上的通用性。考虑到对于便携设备的支持,本发明所构建的分布式环境中可考虑大多数成 员(机器设备)为固定的、计算能力较强的计算机构成,由它们构成一个可靠的服务系统, 而其它成员可以为临时性的接入设备,并可在服务结束后从分布计算环境中撤离。在此基础 上,再利用本发明的通信协议,将网络构建成一个动态、自组织的计算网络,从而实现有效 地分布式计算。
本发明的分布式环境是建立在一种稳定软件结构之上的,该结构包括1)计算服务单 元,用于管理系统中的各种计算事务(任务)、各种功能单元、以及管理网络连接接入请求。 它也是系统启动后的初始模块,负责其他功能单元的建立,并打丌网络套接字Socket的服务 端口,负责接听其他计算成员发来的请求。2)计算发起者单元,用于发起一次计算事务,并 负责召集其他成员参与此次计算事务。该单元由计算服务单元动态生成,每个成员都可能为 计算发起者并建立该单元,分布式计算环境中可同时存在多个该单元, 一个计算任务对应一 个该单元,但每个计算组中只有一个计算发起者单元。3)计算事务单元,用于管理一次具体
的计算事务。在计算发起者发起一个计算事务后,当计算事务所需条件满足后,该计算组中 的每个成员由计算服务单元生成一个计算事务单元,该单元是一个独立的进程/线程,全权负 责该计算事务。在一个成员中可以有多个计算事务单元,并且互相独立运行。4)计算组管理 单元,用于管理该计算组成员之间的通信,以及数据报的解释与传输。该单元由计算事务单 元直接管理,并负责对群组信息或节点对之间信息的管理,以及建立计算组成员间的网络连 接。5)节点连接单元,负责本成员与另一成员之间的通信连接,包括连接的建立、撤销, 数据报文的打包与解释,网络异常处理,透明数据加密等。6)成员管理单元,负责对计算环 境内所有成员的管理,并记录相关活动记录。7)计算组成员管理,负责一次计算事务中的成 员管理。8)其他单元,包括安全存储单元、计算协议单元、异常处理单元等。
本发明所采用软件结构的一个特点在于,能够满足分布式协同计算和安全多方计算环境 构建的需要,并提供成员之间独立的、稳定的通信,并能通过群组通讯机制实现组内广播与 同步。安全多方计算的特点在于群组中成员共同通过安全协议来完成计算任务,因此在设计 上多采用广播通信和较为完善的同步机制,而不能采用传统的数据转发与异步通信方式。有 鉴于此,本发明在平台软件结构中采用了计算事务发起、计算事务调度、通信机制管理、用 户动态管理等机制,这些都有别于一般的计算机系统与分布式系统。
本发明所采用软件结构的另一个特点在于,能够支持成员之间的实时与多任务。在本发 明的软件结构中,采用计算事务这一概念, 一个计算事务由若干成员共同完成,每名成员又 可以同时参与若干计算事务,计算事务之间采用了线程、进程方式,彼此独立、单独运行。因此,所构造系统中能够支持大量计算事务同时存在,这有利于提高系统的利用率和计算吞吐量。
本发明所采用软件结构的另一个特点在于,能够实现成员的动态管理。由于安全多方计 算模式的引入,允许系统中一定数目的成员出现异常、中断、甚至恶意攻击,因此,在本发 明的软件结构中,采用了独立的成员间节点连接单元,可以自由的控制成员的动态地加入、 撤销。同时,成员的活动也将进行记录。
与分布式计算环境的软件结构设计相对应,本发明的分布式计算网络构建方法包括计 算网络构建发起步骤,在该步骤中,由某一主机向其他主机发送构建计算网络请求数据报, 并等待其他主机的应答报文;发起请求主机收到应答报文后计算网络成员列表,其方法为由 发起请求主机将在设定时间内收到其它主机返回的应答报文的发送方添加到成员列表,并以 此生成本计算任务的成员列表数据报;网络成员信道建立步骤,在该步骤中,根据生成的成 员列表数据报成员之间建立网络连接,点到点的网络连接方法为本次计算网络的成员除去 发起请求主机外,两两之间建立起双工信道,形成分布式计算网络,在该步骤中,各主机根 据收到的成员列表数据报中的主机成员及其编号,由编号较小者向编号较大者发送通信数据 报以建立二者间的通信信道,从而实现本计算任务中两两主机间的信道建立。
本发明中分布式计算网络构建方法的一个特点在于,采用了反馈传播方式,避免了传统 大量主机分别进行"3次握手"时引发的异步时序冲突问题,方法简单、可靠。所谓反馈传 播方式是指上述发明过程中,依靠计算发起者的有序成员序列;先按照从小到大序号关系在 同一方向上进行通信连接;并在通信一段时间后进行所有成员间的同步;最后,再根据所建 立连接情况,按照从大到小序号关系在反方向上进行通信连接,直至成员全部连接被建立起 来。由于采用序列关系与同步机制,因此避免了各主机分别建立连接而引发的冲突;其次, 反馈方式可以避免防火墙等设备的阻断,并有利于选择有利的路由关系。
本发明中分布式计算网络构建方法的一个特点在于,能够实现成员之间彼此独立的、全 连通的通信网络。与现有分布式计算网络建立相比,己有的分布式计算网络仅依靠整个因特 网的连接来进行,而没有自己的网络建立过程。本发明的分布式网络构建方法所构建的网络 则是完全连通的,即任意两个节点间可独立通信,不需依赖其他节点,且具有实时性、支持 多任务的特点。
本发明中分布式计算网络构建方法的另一个特点在于,所述网络请求数据报以及成员列 表数据报的数据结构包括数据报头,操作号,接受者编号,发送者编号,数据报属性,数 据段,以及数据报尾。其中的数据报属性标志段标志了该数据报的属性,即标志了其作为网 络请求数据报或是作为成员列表数据报。本发明中分布式计算网络构建方法的另一个特点在于,可以提供一种完整有效的分布式 计算网络构建方法,并能够对参与主机进行管理,实现动态、自组织的特性。具体而言,每 台主机上要构架任务调度模块、密码/计算模块、诊断/容错模块、存储/日志模块、协商/通 信模块以及成员管理模块,其中的协商/通信模块用于实现主机间的网络连接,支持完全连通 性,其他模块用于对主机进行管理,支持实时性、多任务性。
有本发明方法所生成的系统应由多个成员(计算主机或硬件设备)构成,为了简化管理 和灵活应用的需要,除需改变配置文件外,每名成员之间的软件结构完全相同。每台主机包 括硬件方面包括底层运算设备、通信设备以及存储设备、软件方面包括上述的五个模块(任 务调度模块、密码/计算模块、诊断/容错模块、存储/日志模块、协商/通信模块以及成员管 理模块);其中,底层运算设备用于提供支持各种计算任务的硬件设备;通信设备用于支持主 机之间的通信;存储设备用于实现主机内数据的存储,任务调度模块,用于对命令的解释、 资源分配、数据封装、线程调度等工作,并启动相应的处理模块进行处理,密码Z计算模块的 功能为执行密码协议、完成计算操作;诊断/容错模块主要为实现协议或计算中的异常现象检 测、定位、恢复,并实现协议或计算中的容错机制;存储/日志模块主要完成数据分布式存储 和隐私数据的日志记录功能协商/通信模块实现不同主机之间的秘密通信与协商协议;成员 管理模块实现对参与本次分布式计算网络的成员进行管理的功能。以协商/通信模块为基础, 其他四个模块在其上协同运转,共同实现安全分布式计算环境。
本发明的积极效果
木发明的网络构建方法能够有效合理地构造出一个可用于安全计算的分布式计算网络,提 供了一种迅速、有效的计算网络构建方法,具有分布式环境下的动态、自组织计算网络特性; 同时所构建的网络能够实现成员之间彼此独立的、全连通的通信,并能通过群组通讯机制实 现网络群组内广播与同步。所述的系统构造方法能够建立起一套完整的平台体系结构,其搭 建的密码/计算、诊断/容错、存储/日志、协商/通信、以及成员管理模块和任务调度机制的 实现,能够达到快速安全计算的目的。


图1是本发明的分布式计算网络的实施例结构示意图; 图2是本发明的分布式计算网络的构建流程示意图; 图3是本发明的分布式计算网络的构建管理示意图; 图4是本发明的系统构造平台体系结构示意具体实施例方式
以下参照附图,详细描述本发明的分布式计算网络构建方法及其系统。 图1是本发明的分布式计算网络的实施例结构示意图;在本实施例的分布式计算网络中, 每台主机作为网络上的一个节点,其地位都是均等的。由主机1发起本次计算网络的构建请 求,并接收主机2、 3、 4的应答报文,构建成为一个分布式计算网络标记为群组l;由主机5 发起了另外的一个计算网络构建请求,并接受到来自主机2、 4的应答报文,构建成另一个分 布式计算网络标记为群组2。可见,每台主机根据自身的资源、通信状况等条件,可以自主 地选择是否加入其他节点发起的计算网络,也可以作为发起主机,向其他主机发送数据报, 请求构建分布式计算网络。可见,这种计算网络的构建是动态、自组织的,能够满足分布式 计算的需求。
为能够构建形成图1中的分布式计算网络,以群组1的构建过程为实施例,采用图2中 的构建流程。主机1作为本次分布式计算网络的发起主机,首先向其他主机发送数据报文, 以主机2、 3、 4为例,并等待相应的应答报文;在主机1设定的时间门限内,主机l收到了 主机2、 3、 4的参与构建分布式计算网络的应答报文;其次,主机l以收到各个主机应答报 文的时间为序,建立本次分布式计算网络的成员列表,并对各个主机进行编号,根据图示, 分布式计算网络成员列表的编号恰为主机l、主机2、主机3、主机4。主机l将成员列表作 为数据负载发送数据报给主机2、 3、 4;最后,主机2、 3、 4分别建立起两两间的双工信道。 按照从主机1收到的成员列表数据报,由编号较小的主机向编号较大的主机发送通信数据报 文,即由主机2分别向主机3、 4发送数据报,并等待其应答报文,由主机3向主机4发送数 据报,并等待其应答报文。若该过程中主机2或主机3在其设定的时间范围内未收到相应的 应答报文,则采用上述相反的方法,即由编号较大的主机向编号较小的主机发送通信数据报。 从而最终建立起图1中的分布式计算网络群组1。
为实现上述的构建过程,采用图3中的各部件进行管理。仅以主机l、 2、 3的部分为例。 网络构建之初,主机l、 2、 3均已启动SComputationServer用来监听网络上到来的数据报。 以主机1作为本次网络构建的发起者为例,主机1利用SCoraputetionDealer发起本次构建分 布式计算网络的指令,向主机2、 3发送网络建立请求数据报;同时,主机1利用 SCo卿utationServer建立起本主机内的STransactionThread负责本次网络构建的工作。主 机2、 3根据由SCo即utationServer处监听到的来自主机1的数据报,于本地主机建立起 STransactionThread负责本次网络构建工作。主机1根据STransactionThread处收到的主机2、 3的同意网络建立数据报,于本地主机建立SComputationGro叩,并向主机2、 3发送 本次网络中参与的成员列表数据报,此时,主机1根据SComputationGroup中的参与主机建 立SGroupList用来记录本次网络构建中的主机,并建立2个SGroupParty分别记录主机2、 3的主机信息。与此同时,主机1建立起2个SSingleConnection,用以接管之前 SCo卿utationDealer处进行的与主机2、 3的连接,并负责监听来自主机2、 3的数据报及向 其发送数据报。主机2、 3根据SCo卿utationServer处收到的成员列表数据,于本地建立 SComputationGro叩,并根据SComputationGroup中的参与主机建立SGroupList用来记录本 次网络构建中的主机,并建立起2个SGroupParty分别记录其他两个主机的信息。与此同时, 主机2、 3分别建立起1个SSingleConnection,用以接管之前SComputationServer处进行 的与主机1的连接,并负责监听来自主机1的数据报及向其发送数据报。主机2、 3根据从主 机1处收到的成员列表数据报,按前向连接,即由列表中(除主机l夕卜)排在前面的主机向 排在后面的主机发送连接请求,此处以主机2排在主机3之前为例。于是,主机2利用 SCoraputationGroup建立1个SSingleConnection用于与主机3进行通信,向其发送请求连 接数据报,并负责管理之后主机2与主机3间的数据传送。主机3根据从SComputationServer 处接收到的来自主机2的请求连接数据报,由SCo卿utationGro叩建立1个 SSingleConnection来负责与主机2的连接,并由SSingleConnection向主机2发送同意连 接数据报。若主机3不可达,则按照后向连接,即由列表中(除主机l夕卜)排在后面的主机 向排在前面的主机发送连接请求。按照上面的过程,由主机3率先向主机2发送连接请求, 从而实现整个网络(主机l、 2、 3)间的完全连接。
要实现安全分布式计算,需要任务调度模块、密码/计算模块、诊断/容错模块、存储/ 日志模块、协商/通信模块以及成员管理模块间的协同合作。实现已经部署好的密码/计算模 块、诊断/容错模块、存储/日志模块、成员管理模块根据如上协商/通信模块建立完成的网络 构建,进行相应信息的更新,任务调度模块则由协商/通信模块中生成的SComputationServer 负责具体的调度任务。
图4是本发明的系统中主机的结构示意图,最上层为支持应用程序的函数语言接口,以 及支持终端用户的命令行接口,在接收到应用程序或用户发来的命令后,任务调度模块 (SComputionServer)完成对命令的解释、资源分配、数据封装、线程调度等工作,并启动 相应的处理模块进行处理,五大模块包括-
密码/计算模块(SComputation):在该模块中,通过采用基于可验证秘密共享的多方计
算方法[2],利用基于多元联合随机多项式的秘密验证与降阶方法[3],从而实现各主机运算过程
中依旧保持数据加密状态这一特性并完成本次计算。本模块中所采用的密码算法包括一些标准密码算法与协议,如RSA、 AES、 ElGamal密码系统、秘密共享方案、SHA1、 MD5签名方案 等。采用的计算协议包括基于秘密共享或公钥密码体制的多方安全计算协议,如多方加法 协议、多方减法协议、多方乘法协议、多方除法协议、多方数乘协议、多方位协议(与、或、 非)等,(参考申请号200810111190.9,申请人北京大学,发明名称 一种具有容错功能
的密码学分布式计算与分步检验方法,的专利申请)。
诊断/容错模块(SErrorExc印tion):在该模块中,以代数几何纠错码作为基础,主要是 对密码/计算模块中的各种协议运算过程和计算结果予以检验,并对出现的各种异常情况予以 诊断预处理,以达到多方计算下的安全性。本模块的核心是采用数据冗余性,通过纠错编码 技术、数据容错技术、密码技术等实现对各种攻击下的异常处理,算法包括可验证秘密共 享、基于纠错码的验证算法、基于Byzantine Agreement的异常检验技术等,通过采用具有 约束性的联合随机多项式一致性检验、计算安全的检验规则、秘密共享的错误定位与升级方 法、错误停机和强制停机下的异常处理方法实现系统的诊断与容错(参考申请号 200810111190.9,中请人北京大学,发明名称 一种具有容错功能的密码学分布式计算与 分歩检验方法,的专利申请)。
存储/日志模块(SStorage):在该模块中,为实现分布式数据的安全存储,主要通过构 建以多元联合随机多项式为基础的可验证秘密共享,实现基于前摄秘密共享的分布式存储方 法,多采用的分布式处理算法包括编码理论中信息分散(Information Dispersal)技术参 见文献[6],和密码学中的秘密共享(Secret Sharing)技术、Reed-Solomon(RS)码、Goppa 码、矩阵码等的数据分享技术、线性秘密共享等。日志算法即可采用现有操作系统中的日志 算法,也可以采用基于关系数据库构造的日志管理软件,参见文献[4, 5]。
协商/通信模块(STransactionThread):在该模块中,首先通过建立保密通道,实现成 员间的保密通信,考虑分布式计算环境的多样性,该模块负责为整个系统构建一个统一的通 信密码体制。在此基础上,建立各主机成员间通信的认证机制,实现成员间的安全广播与多 播,即分布式计算系统中的任意一个成员如果通过该模块向其他成员发送信息(广播或多播), 则要保证其他成员得到相同的结果或信息,避免发送者对接收者分别进行欺骗,也要保证即 便有接收成员故障、欺骗、或攻击,也不能干扰忠实接收者的接收。本模块可采用广播加密 算法、公钥广播加密算法、带认证的拜占庭协商协议、可验证秘密共享协议、公开可验证秘 密共享协议等实现,参见文献[6, 7, 8, 9]。
成员管理模块(SPartyList):在该模块中,通过各主机间的数据报通信,记录当前本主 机可通信的网络上其他结点的主机信息,作为本主机发起计算时的可邀请主机选择列表。
为更好地说明任务调度模块、密码/计算模块、诊断/容错模块、存储/日志模块、协商/通信模块、以及成员管理模块是如何协同完成安全计算的,此处以前面所举的网上交易计算 实现过程为例加以描述
首先,要参与本次交易的各个主机的协商/通信模块按上述的网络构建方法构建起分布式 计算网络。
然后,各主机根据构建过程中得到本次参与计算的各个主机的相关信息,更新其他模块 中关于参与成员的信息,并利用成员管理模块对信息进行管理。
艾次,针对某个具体的计算任务,计算过程主要由密码/计算模块完成,它包括3个阶段 数据分发、保密数据计算、计算结果恢复。具体过程如下首先,在数据分发阶段,利用秘 密共享方案将各个参与成员的输入进行分享,并保证了输入的保密性和一致性;其次,在保 密数据计算阶段,各个参与成员遵照分布式计算协议完成对数据分发阶段中的输入数据进行 处理,并保持计算数据始终处于共享状态;最后,在计算结果恢复阶段,将保密数据计算阶 段计算的结果通过数据分发的逆过程(也称为数据重构算法)加以还原,得到最终的计算结 果。
为了更为有效地阐述本发明平台中函数调用和数据流动过程,下面将以一个简单示例说 明进行说明。例如想要计算一个简单的二元函数/(X,力,其中,X为由某一用户输入,数
据y分布式存储在n个主机内。那么以之前例举的网上交易过程为例,其中的、就是销售商
的输入,数据^表征的是用户的财产,该数据分布式存储在用户以及用户的储蓄银行内,n
即为用户以及银行服务主机的总数量,那么二元函数/Oc,力所要实现的就是y —^这样一个减
法运算。在多方计算过程能描述如下-
1) 用户,即销售商,与客户应用程序进行交互,完成数据X交互录入;
2) 应用程序调用平台的应用程序接口,请求为数据X分配分布式存储空间;
3) 平台通过协同机制将输入数据x分享到n个主机中,使每台机器获得一个数据片断;
4) 应用程序调用平台的应用程序接口发送计算命令/(u);
5) 每个平台到各自的存储单元中获取数据y的分享,并与x的分享在计算单元中完成/
运算,每个用户仅获得运算结果的一个片断;
6) 在协同机制和容错机制下,每个平台完成对计算结构的一致性与正确性验证,如检验 出异常,则进行相应处理,否则,本次调用结束;
7) 如需要,将结果通过秘密数据恢复机制返还应用程序或用户。
最后,若在计算过程中存在恶意的参与者,其行为并未按照相关协议(数据分享、计算协议、重构协议等)的要求进行,必然产生计算结果的错误乃至影响系统的稳定,为了避免 这种情况的发生,可利用可验证技术、纠错技术、加密技术、容错技术等来保证。这些在计 算过程中进行的数据验证、以及运行过程中出现的异常状况,由诊断/容错模块的诊断部分抛 出异常,并交付容错部分进行处理,以达到保密性和正确计算的目的。计算过程中的数据, 包括输入、产生的中间计算结果、输出等,以及运行情况日志,则由存储/日志模块加以记录。 在本次交易实现过程中,模块间的相互调用,协同工作则统一由任务调度模块来进行调度。
参考文献 A.C. Yao. Protocols for Secure Computations. Proceedings of the 23rd IEEE Symposium on the Foundations of Computer Science, IEEE Press, 1982, pp. 160-164. B. Chor, S. Goldwasser, S. Micali, and B. Awerbuch. Verifiable Secret Sharing and Achieving Simultaneity in the Presence of Faults. Proceedings of the 26th IEEE symposium on Foundations of Computer Science, 1985, pp. 383-395. Y- Zliu, D.G. Feng and YT. Yang. Ownership Proofs of Digital Works Based on Secure Multiparty Computation. The Journal of Software, Vol. 17(1) 2006, pp. 157-166. E. Schwabe, I. Sutherland. Improved Parity Declustered Layouts for Disk Arrays, In Proceedings of the Symposium on Parallel Algorithms and Architectures, Cape May, 1994, pp. 76-84. Brickell E F, Davenport D M. On the classification of ideal secret sharing schemes. J Cryptology, 1991,4(2): 123-134. M. Pease, R. Shostak, and L. Lamport. Reaching Agreement in the Presence of Faults. Journal of the ACM, 27(2), 1980. pp. 228-234. L. Lamport, R. Shostak, and M. Pease. The Byzantine Generals Problem. ACM Transactions on Programming Languages and Systems, 4(3), July 1982. pp. 382-401. T. Rabin and M. Ben-Or. Verifiable Secret Sharing and Multiparty Protocols with Honest Majority. Proceedings of the 21th annual ACM symposium on Theory of computing (STOC 1989), 1989, pp. 73—85. R. Ge皿aro, M.O. Rabin, and T. Rabin. Simplified VSS and Fast-Track Multiparty Computations with Applications to Threshold Cryptography. Proceedings of the 17th annual ACM symposium on Principles of distributed computing. 1998, pp. 101 — 111.
权利要求
1. 一种基于反馈传播的分布式计算网络构建方法,其步骤为1)发起请求主机向其他主机发送构建计算网络请求数据报,并等待其它主机的应答报文;2)发送请求主机根据收到的应答报文生成本次计算网络的成员列表数据报;3)发送请求主机将成员列表数据报发送给所述成员列表数据报中的其它每个成员;4)根据所述成员列表数据报,其它每个成员两两之间建立起双工信道进行数据通信。
2. 如权利要求1所述的方法,其特征在于所述请求数据报和所述成员列表数据报的数据 结构均包括数据报头、操作号、接受者编号、发送者编号、数据报属性、数据段、数据报尾。
3. 如权利要求2所述的方法,其特征在于所述发送请求主机设定一时间阈值,将根据所 设定时间阈值内收到的应答报文生成本次计算网络的成员列表数据报;所述请求主机 根据接收到的应答报文时间为序,对各个主机进行编号,建立本次计算网络的成员列 表数据报。 '
4. 如权利要求3所述的方法,其特征在于所述其它每个成员两两之间双工信道的建立方法为首先每个成员按照收到的成员列表数据报中的主机成员及其编号,在同一方向 上由编号小的主机向编号比自己大的主机发送通信数据报文进行通信连接;然后在设 定的通信时间后进行所有成员间的同步;最后对于未建立起双工通信的成员之间,按 照从大到小序号关系在反方向上进行通信连接,直至成员全部连接被建立起来。
5. 如权利要求4所述的方法,其特征在于采用广播加密算法对所述双工信道进行加密, 建立成员之间的保密通道。
6. 如权利要求4所述的方法,其特征在于所述成员之间采用群组通讯机制实现网络群组 内广播与同步。
7. 如权利要求1或2或3或4所述的方法,其特征在于所述成员列表数据报根据成员的 加入和撤出进行动态更新。
8. 如权利要求1所述的方法,其特征在于所述主机对数据进行运算时数据一直保持加密 状态,所述数据包括输入数据、中间运算结果、最终计算结果,所述运算包括数 据分发、分布式数据计算、计算结果恢复。
9. 如权利要求8所述的方法,其特征在于所述主机在所述运算过程进行诊断与容错处理,所述诊断与容错处理方法包括但不限于下列方法中的一种秘密共享及其验证技术、 同态密码技术、公钥门限密码技术、公钥同态密码技术、数据一致性检验技术、基于 纠错码的密码技术。
10. 如权利要求i所述的方法,其特征在于所述主机内部通^:多线程、进程机制用于接收多个发起请求主机的网络请求数据包,并与之建立所述双工信道。
11. 一种基于反馈传播的分布式计算网络系统,包括至少两台主机,其特征在于所述主机 包括密码/计算模块、诊断/容错模块、存储/日志模块、协商/通信模块、成员管理模 块;所述密码/计算模块用于完成数据加密和计算操作;所述诊断/容错模块用于实现协议或计算中的异常现象检测、定位、恢复,并 实现协议或计算中的容错机制;所述存储/日志模块用于完成数据分布式安全存储和隐私数据的日志记录功能;所述协商/通信模块用于实现不同主机之间的秘密通信与通信协商,以及完成对接收到的命令进行解释、资源分配、数据封装、线程调度,并启动相应的处理模块进行处理;所述成员管理模块用于通过各主机间的数据报通信,记录当前本主机可通信的 网络上其他结点的主机信息,作为本主机发起计算时的可邀请主机选择列表。
全文摘要
本发明公开了一种基于反馈传播的分布式计算网络构建方法及其系统,属于软件技术领域。本发明的方法为首先发起请求主机向其他主机发送构建计算网络请求数据报,并等待其它主机的应答报文;然后根据收到的应答报文生成本次计算网络的成员列表数据报并将其发送给成员列表数据报中的其它每个成员;最后根据成员列表数据报,其它每个成员两两之间建立起双工信道。本发明的系统包括至少两台主机,每一主机均包括密码/计算模块、诊断/容错模块、存储/日志模块、协商/通信模块、成员管理模块。与现有技术相比,本发明能够有效合理地构建一分布式安全计算网络,其具有分布式环境下的动态、自组织计算网络特性,能够达到快速安全计算的目的。
文档编号G06F9/46GK101442482SQ20081017267
公开日2009年5月27日 申请日期2008年11月7日 优先权日2007年11月13日
发明者冯荣权, 岩 朱, 赵红佳, 维 邹 申请人:北京大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1