CN113849844B - 一种多方数据安全计算方法、***、装置及存储介质 - Google Patents

一种多方数据安全计算方法、***、装置及存储介质 Download PDF

Info

Publication number
CN113849844B
CN113849844B CN202111416637.5A CN202111416637A CN113849844B CN 113849844 B CN113849844 B CN 113849844B CN 202111416637 A CN202111416637 A CN 202111416637A CN 113849844 B CN113849844 B CN 113849844B
Authority
CN
China
Prior art keywords
data
server
calculation
split
result
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202111416637.5A
Other languages
English (en)
Other versions
CN113849844A (zh
Inventor
陶立峰
邵俊
杨扬
范渊
刘博�
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
DBAPPSecurity Co Ltd
Original Assignee
DBAPPSecurity Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by DBAPPSecurity Co Ltd filed Critical DBAPPSecurity Co Ltd
Priority to CN202111416637.5A priority Critical patent/CN113849844B/zh
Publication of CN113849844A publication Critical patent/CN113849844A/zh
Priority to PCT/CN2022/070420 priority patent/WO2023092829A1/zh
Application granted granted Critical
Publication of CN113849844B publication Critical patent/CN113849844B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种多方数据安全计算方法、***、装置及计算机可读存储介质,将原始数据分解,并分配到不同的计算服务器,并在每个不同的计算服务器分别按照对应的单项式对拆分数据计算,并对计算结果添加服务器随机数,再由化解服务器对中间结果进行化解,得到简化后的第三中间结果,最后发送至需求终端,由需求终端进行最后的化解,得到最终计算结果,实现了参与计算的任意一方无需将原始数据提供给参与计算的其他方,解决了各参与方之间的信任问题,能够在原始数据不出本地的情况下完成多方数据的安全计算,不依赖于传输链路和计算环境的安全性,保障参与计算的数据的安全和不被泄露,计算过程原始明文数据不可见,保护用户隐私。

Description

一种多方数据安全计算方法、***、装置及存储介质
技术领域
本发明涉及信息安全领域,特别涉及一种多方数据安全计算方法、***、装置及计算机可读存储介质。
背景技术
多个数据源方(这里假定A和B)的数据在一起融合计算的时候,一种方法是A把数据给B,在B端完成计算,或B把数据给A,在A端完成计算。这种模式下,无论是A把数据给B,还是B把数据给A,都存在数据流出本地安全域的风险。同时A或者B都能看到对方传输过来的原始数据,可以把对方的数据再次拷贝,贩卖,既不安全,又可能泄露用户的隐私。
另一种方法是,找一个第三方C。A和B把数据都传给C,在C端完成数据计算。这种方法下,C可以同时获取A和B上传的原始数据,也存在数据和隐私泄露的风险。
现有的明文计算方式依赖于计算服务器作为可信第三方,需要假定服务器不会泄露用户隐私信息。参与计算的服务器存在多种数据泄露的途径,如可能存在外部的恶意攻击,内存监听,内部人员窃取等,无法保障用户原始信息不被泄露。也有通过TEE(TrustedExecution Environment,基于芯片的可信计算环境)来保障计算环境的安全,但这种方式依赖于专用硬件,专用硬件提高了硬件成本,提升了开发难度,同时也存在可被攻击的漏洞,如侧信道攻击。并不能从根本上保障用户原始数据不被窃取。
为此,需要一种更为安全的多方计算方法。
发明内容
有鉴于此,本发明的目的在于提供一种多方数据安全计算方法、***、装置及计算机可读存储介质,更为安全。其具体方案如下:
一种多方数据安全计算方法,包括:
接收需求终端发送的所需计算的多项式;
将所述多项式拆分为多个单项式,分别将每个单项式分配至相应的计算服务器;
多个数据源终端分别按照预设的数据拆分规则对各自存储的原始数据进行拆分,得到与每个原始数据对应的第一拆分数据和第二拆分数据;
每个数据源终端分别将相应的第一拆分数据和第二拆分数据发送至第一计算服务器和第二计算服务器;
所述第一计算服务器根据分别与每个第一拆分数据对应的单项式对相应的第一拆分数据进行计算,得到多个第一中间数值,对每个第一中间数值添加对应的第一服务器随机数,得到多个第一中间结果;
所述第二计算服务器根据所述数据拆分规则、每个第一中间结果和对应的第二中间数值进行计算,并对每个计算结果添加对应的第二服务器随机数,得到多个第二中间结果;其中,每个第二中间数值为每个第二拆分数据与对应的单项式进行计算得到的;
化解服务器利用预设的化解计算方法、每个第二中间结果、每个第一服务器随机数和每个第二拆分数据进行计算,得到化解后的第三中间结果;
需求终端利用所述第三中间结果和每个第二服务器随机数进行求解,得到所述多项式的最终计算结果。
可选的,所述多个数据源终端分别按照预设的数据拆分规则对各自存储的原始数据进行拆分,得到与每个原始数据对应的第一拆分数据和第二拆分数据的过程,包括:
多个数据源终端分别将各自存储的原始数据拆分为第一拆分数据与第二拆分数据的商,得到与每个原始数据对应的第一拆分数据和第二拆分数据;
x 1=x*x 2
式中,x表示原始数据,x 1表示第一拆分数据,x 2表示第二拆分数据。
可选的,所述第二计算服务器根据所述数据拆分规则、每个第一中间结果和对应的第二中间数值进行计算,并对每个计算结果添加对应的第二服务器随机数,得到多个第二中间结果的过程,包括:
所述第二计算服务器为每个第二拆分数据与对应的单项式进行计算得到多个第二中间数值;
根据所述数据拆分规则将每个第一中间结果除以对应的第二中间数值,得到各自的计算结果;
对每个计算结果添加不同的第二服务器随机数,得到多个第二中间结果。
可选的,所述化解服务器利用预设的化解计算方法、每个第二中间结果、每个第一服务器随机数和每个第二拆分数据进行计算,得到化解后的第三中间结果的过程,包括:
第一子化解服务器利用每个第二中间结果按照所述化解计算方法减去第一服务器随机数与对应的第二中间数值的商,得到多个第三子中间结果;
第二子化解服务器对多个第三子中间结果求和,得到所述第三中间结果。
本发明还公开了一种多方数据安全计算***,包括:
多项式接收模块,用于接收需求终端发送的所需计算的多项式;
单项式分配模块,用于将所述多项式拆分为多个单项式,分别将每个单项式分配至相应的计算服务器;
原始数据拆分模块,用于多个数据源终端分别按照预设的数据拆分规则对各自存储的原始数据进行拆分,得到与每个原始数据对应的第一拆分数据和第二拆分数据;
拆分数据分发模块,用于每个数据源终端分别将相应的第一拆分数据和第二拆分数据发送至第一计算服务器和第二计算服务器;
第一中间结果计算模块,用于所述第一计算服务器根据分别与每个第一拆分数据对应的单项式对相应的第一拆分数据进行计算,得到多个第一中间数值,对每个第一中间数值添加对应的第一服务器随机数,得到多个第一中间结果;
第二中间结果计算模块,用于所述第二计算服务器根据所述数据拆分规则、每个第一中间结果和对应的第二中间数值进行计算,并对每个计算结果添加对应的第二服务器随机数,得到多个第二中间结果;其中,每个第二中间数值为每个第二拆分数据与对应的单项式进行计算得到的;
第三中间结果计算模块,用于化解服务器利用预设的化解计算方法、每个第二中间结果、每个第一服务器随机数和每个第二拆分数据进行计算,得到化解后的第三中间结果;
最终结果计算模块,用于需求终端利用所述第三中间结果和每个第二服务器随机数进行求解,得到所述多项式的最终计算结果。
可选的,所述原始数据拆分模块,具体用于多个数据源终端分别将各自存储的原始数据拆分为第一拆分数据与第二拆分数据的商,得到与每个原始数据对应的第一拆分数据和第二拆分数据;
x 1=x*x 2
式中,x表示原始数据,x 1表示第一拆分数据,x 2表示第二拆分数据。
可选的,所述第二中间结果计算模块,包括:
第二中间数值计算单元,用于所述第二计算服务器为每个第二拆分数据与对应的单项式进行计算得到多个第二中间数值;
第二计算单元,用于根据所述数据拆分规则将每个第一中间结果除以对应的第二中间数值,得到各自的计算结果;
第二中间结果计算单元,用于对每个计算结果添加不同的第二服务器随机数,得到多个第二中间结果。
可选的,所述第三中间结果计算模块,包括:
第三子中间结果计算单元,用于第一子化解服务器利用每个第二中间结果按照所述化解计算方法减去第一服务器随机数与对应的第二中间数值的商,得到多个第三子中间结果;
第三中间结果计算单元,用于第二子化解服务器对多个第三子中间结果求和,得到所述第三中间结果。
本发明还公开了一种多方数据安全计算装置,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序以实现如前述的多方数据安全计算方法。
本发明还公开了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如前述的多方数据安全计算方法。
本发明中,多方数据安全计算方法,包括:接收需求终端发送的所需计算的多项式;将多项式拆分为多个单项式,分别将每个单项式分配至相应的计算服务器;多个数据源终端分别按照预设的数据拆分规则对各自存储的原始数据进行拆分,得到与每个原始数据对应的第一拆分数据和第二拆分数据;每个数据源终端分别将相应的第一拆分数据和第二拆分数据发送至第一计算服务器和第二计算服务器;第一计算服务器根据分别与每个第一拆分数据对应的单项式对相应的第一拆分数据进行计算,得到多个第一中间数值,对每个第一中间数值添加对应的第一服务器随机数,得到多个第一中间结果;第二计算服务器根据数据拆分规则、每个第一中间结果和对应的第二中间数值进行计算,并对每个计算结果添加对应的第二服务器随机数,得到多个第二中间结果;其中,每个第二中间数值为每个第二拆分数据与对应的单项式进行计算得到的;化解服务器利用预设的化解计算方法、每个第二中间结果、每个第一服务器随机数和每个第二拆分数据进行计算,得到化解后的第三中间结果;需求终端利用第三中间结果和每个第二服务器随机数进行求解,得到多项式的最终计算结果。
本发明将原始数据分解,并分配到不同的计算服务器,使每个计算服务器均不可获得完整的原始数据避免数据泄露,并在每个不同的计算服务器分别按照对应的单项式对拆分数据计算,并对计算结果添加服务器随机数,进一步的加强数据的复杂度,也避免了数据传输途中被拦截破解的风险,最后由化解服务器对中间结果进行化解,得到仅由第二服务器随机数加密的简化后的第三中间结果,最后发送至需求终端由需求终端利用每个第二服务器随机数进行最后的化解,得到最终计算结果,计算期间确保了每个计算服务器的计算与通信过程中均不会产生数据的泄露,提高了安全性,且对各服务器没有过多的安全要求,提高了可行性,实现了参与计算的任意一方无需将原始数据提供给参与计算的其他参与方或者计算平台,解决各个参与方之间的信任问题,能够在原始数据不出本地的情况下完成多方数据的安全计算,不依赖于传输链路和计算环境的安全性,保障参与计算的数据的安全和不被泄露,计算过程原始明文数据不可见,保护用户隐私。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例公开的一种多方数据安全计算方法流程示意图;
图2为本发明实施例公开的另一种多方数据安全计算方法流程示意图;
图3为本发明实施例公开的一种多方数据安全计算方法具体应用场景示意图;
图4为本发明实施例公开的一种多方数据安全计算***结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种多方数据安全计算方法,参见图1所示,该方法包括:
S11:接收需求终端发送的所需计算的多项式。
具体的,需求终端提供其所需利用原始数据计算的多项式,计算多项式所需的原始数据均分布在不同的数据源终端上,多项式记载了计算规则,并未完全记载所需的具体数值,例如,需求终端发送的所需计算的多项式为:f (a, b)=a 2+b 3,式中,ab便为原始数据,需求终端并不知道ab的具体数值,仅知道如何利用ab进行具体的计算。
S12:将多项式拆分为多个单项式,分别将每个单项式分配至相应的计算服务器。
具体的,将多项式拆分为多个单项式,例如,将f (a, b)=a 2+b 3,拆分为a 2b 3两个单项式,拆分后再将每个单项式分配至相应的计算服务器,以使每个计算服务器分别执行多项式的部分计算,无法得到完整的多项式,在多项式包括的单项式数量超过计算服务器的数量时,一个计算服务器可以被分配到多个单项式,但绝不会一个计算服务器得到一个多项式的全部单项式。
S13:多个数据源终端分别按照预设的数据拆分规则对各自存储的原始数据进行拆分,得到与每个原始数据对应的第一拆分数据和第二拆分数据。
具体的,每个数据源终端按照统一预设的数据拆分规则对各自存储的原始数据进行拆分,将原始数据拆分为第一拆分数据与第二拆分数据的商,得到与每个原始数据对应的第一拆分数据和第二拆分数据;其中,数据拆分规则可以用拆分公式表达;
拆分公式为:x 1=x*x 2
式中,x表示原始数据,x 1表示第一拆分数据,x 2表示第二拆分数据。
S14:每个数据源终端分别将相应的第一拆分数据和第二拆分数据发送至第一计算服务器和第二计算服务器。
具体的,每个数据源终端分别将第一拆分数据和第二拆分数据分别发送至不同的计算服务器确保每个计算服务器无法利用第一和第二拆分数据得到原始数据,确保数据的安全性。
具体的,无论一个计算服务器上接收到多少个数据源终端发送的拆分数据,均需要确保一个计算服务器上不会同时获得与同一个原始数据对应的第一拆分数据和第二拆分数据,避免原始数据被还原,同时,为了确保数据交换过程中数据不会被还原,一个计算服务器可以仅接收第一拆分数据,另一个计算服务器可以仅接收第二拆分数据,也能够使数据交换过程中交换流程清晰。需要说明的是,每个计算服务器本身并没有过多差异,只是可以根据其执行的任务类型进行区分。
此外,当计算服务器不只2台时,为3台或者4台时原理一致,多个数据源终端依旧可以将第一拆分数据和第二拆分数据分配至多台计算服务器上,也无需一定要每个计算服务器所分配到的拆分数据一致,可以任意分配,只需确保一个计算服务器上不能同时拥有与同一个原始数据对应的第一和第二拆分数据即可。
S15:第一计算服务器根据分别与每个第一拆分数据对应的单项式对相应的第一拆分数据进行计算,得到多个第一中间数值,对每个第一中间数值添加对应的第一服务器随机数,得到多个第一中间结果。
具体的,每个拆分数据有着对应的原始数据,每个原始数据有着对应的单项式,因此,每个拆分数据也有着对应的单项式,第一计算服务器根据分别与每个第一拆分数据对应的单项式对相应的第一拆分数据进行计算,得到多个第一中间数值,例如,第一拆分数据为a 1对应的单项式为a 2,则按照单项式的计算规则对第一拆分数据进行计算,得到第一中间数值a 1 2,每个第一拆分数据分别计算,得到各自对应的第一中间数值,并对每个第一中间数值添加对应的第一服务器随机数,以掩盖第一拆分数据的真实计算结果,例如,a 1 2+r 1=c 1,得到多个第一中间结果c 1,需要说明的是,每个第一中间数值所添加的第一服务器随机数可以均不相同,进一步的提升安全性,提高解密难度。
S16:第二计算服务器根据数据拆分规则、每个第一中间结果和对应的第二中间数值进行计算,并对每个计算结果添加对应的第二服务器随机数,得到多个第二中间结果。
具体的,第一计算服务器得到多个第一中间结果后,将多个第一中间结果均发送至第二计算服务器,以便后续计算。
具体的,可以将第一中间结果视为第一拆分数据,第二中间数值视为第二拆分数据,按照原始数据的拆分规则,利用第一中间结果和第二中间数值以表达原始数据为目标进行计算,即用第一中间结果除以第二中间数值,得到计算结果,再对每个计算结果添加第二服务器随机数进行加密,得到第二中间结果,例如,第一中间结果定为c 1,第二中间数值为a 2 2,第二中间结果c 2第便等于c 2= c 1/ a 2 2+r 2,式中,r 2表示第二服务器随机数,a 2表示第二拆分数据。
其中,每个第二中间数值为每个第二拆分数据与对应的单项式进行计算得到的。
S17:化解服务器利用预设的化解计算方法、每个第二中间结果、每个第一服务器随机数和每个第二拆分数据进行计算,得到化解后的第三中间结果。
具体的,化解服务器接收第二计算服务器发送的每个第二中间结果、每个第二拆分数据以及第一计算服务器发送的每个第一服务器随机数。
具体的,当前计算得到的中间结果均是通过添加服务器随机数得到的加密计算结果,为此,需求终端要想获取到最后的结果需要对计算结果进行解密,为此化解服务器利用预设的化解计算方法结合每个第二中间结果、每个第一服务器随机数和每个第二拆分数据进行计算,得到化解后的第三中间结果。
具体的,预设的化解计算方法预先根据第一中间结果和第二中间结果的计算方式与数据拆分规则进行设计,从而利用化解计算方法能够解除添加的服务器随机数对结果的影响,使最终得到的第三中间结果与最终计算结果只相差第二服务器随机数。
具体的,通过化解服务器进行一定程度的化解得到仍有服务器随机数加密的第三中间结果,可以避免将数据传输至需求终端的过程中发生数据泄露。
S18:需求终端利用第三中间结果和每个第二服务器随机数进行求解,得到多项式的最终计算结果。
具体的,需求终端接收化解服务器发送的第三中间结果,最后利用第二计算服务器发送的每个第二服务器随机数对第三中间结果完成最终的化解,得到多项式的最终计算结果,例如,最后的化解过程可以利用第三中间结果减去全部的第二服务器随机数,得到最终计算结果。
可见,本发明实施例将原始数据分解,并分配到不同的计算服务器,使每个计算服务器均不可获得完整的原始数据避免数据泄露,并在每个不同的计算服务器分别按照对应的单项式对拆分数据计算,并对计算结果添加服务器随机数,进一步的加强数据的复杂度,也避免了数据传输途中被拦截破解的风险,最后由化解服务器对中间结果进行化解,得到仅由第二服务器随机数加密的简化后的第三中间结果,最后发送至需求终端由需求终端利用每个第二服务器随机数进行最后的化解,得到最终计算结果,计算期间确保了每个计算服务器的计算与通信过程中均不会产生数据的泄露,提高了安全性,且对各服务器没有过多的安全要求,提高了可行性,实现了参与计算的任意一方无需将原始数据提供给参与计算的其他参与方或者计算平台,解决各个参与方之间的信任问题,能够在原始数据不出本地的情况下完成多方数据的安全计算,不依赖于传输链路和计算环境的安全性,保障参与计算的数据的安全和不被泄露,计算过程原始明文数据不可见,保护用户隐私。
本发明实施例公开了一种具体的多方数据安全计算方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。参见图2所示,具体的:
S201:接收需求终端发送的所需计算的多项式;
S202:将多项式拆分为多个单项式,分别将每个单项式分配至相应的计算服务器;
S203:多个数据源终端分别将各自存储的原始数据拆分为第一拆分数据与第二拆分数据的商,得到与每个原始数据对应的第一拆分数据和第二拆分数据;
x 1=x*x 2
式中,x表示原始数据,x 1表示第一拆分数据,x 2表示第二拆分数据。
S204:每个数据源终端分别将相应的第一拆分数据和第二拆分数据发送至第一计算服务器和第二计算服务器;
S205:第一计算服务器根据分别与每个第一拆分数据对应的单项式对相应的第一拆分数据进行计算,得到多个第一中间数值,对每个第一中间数值添加对应的第一服务器随机数,得到多个第一中间结果;
S206:第二计算服务器为每个第二拆分数据与对应的单项式进行计算得到多个第二中间数值;
S207:根据数据拆分规则将每个第一中间结果除以对应的第二中间数值,得到各自的计算结果;
S208:对每个计算结果添加不同的第二服务器随机数,得到多个第二中间结果;
其中,每个第二中间数值为每个第二拆分数据与对应的单项式进行计算得到的。
S209:第一子化解服务器利用每个第二中间结果按照化解计算方法减去第一服务器随机数与对应的第二中间数值的商,得到多个第三子中间结果。
具体的,化解服务器可以包括第一子化解服务器和第二子化解服务器,第一子化解服务器接收第二计算服务器发送的每个第二中间结果、每个第二拆分数据以及第一计算服务器发送的每个第一服务器随机数,并利用每个第二中间结果按照化解计算方法减去第一服务器随机数与对应的第二中间数值的商,得到多个第三子中间结果,例如,在前述实施例的举例基础上,两个第三子中间结果c 3c 3 可以如下式所示:
c 3c 2r a 2 2=(a 1 2+r 1)/a 2 2+r 2r 1a 2 2a 1 2a 2 2+r 2
c 3 c 2 r b 2 3=(b 1 3+r 1 )/b 2 3+r 2 r 1 b 2 3b 1 3b 2 3+r 2
式中,c 3表示与第一原始数据a对应的第三子中间结果,c 3 表示与第二原始数据b对应的第三子中间结果,c 2表示与第一原始数据a对应的第二子中间结果,c 2 表示与第二原始数据 b对应的第二子中间结果,a 2表示与第一原始数据a对应的第二拆分数据,a 1表示与第一原始数据a对应的第一拆分数据,b 2表示与第二原始数据b对应的第二拆分数据,b 1表示与第二原始数据b对应的第一拆分数据,r 表示与第一原始数据a对应的第一拆分数据a 1的第一中间结果c 1对应的第一服务器随机数,r 表示与第二原始数据b对应的第一拆分数据b 1的第一中间结果c 1 对应的第一服务器随机数,r 2表示与第一原始数据a对应的第二拆分数据a 2的第二中间结果c 2对应的第一服务器随机数,r 2 表示与第二原始数据b对应的第二拆分数据b 2的第二中间结果c 2 对应的第一服务器随机数。
S210:第二子化解服务器对多个第三子中间结果求和,得到第三中间结果。
例如,基于上例对多个第三子中间结果求和得到的第三中间结果可以表示为c 3+ c 3 = a 1 2a 2 2+r 2+ b 1 3b 2 3+r 2
需要说明的是,第二子化解服务器与需求终端连接,因此,可以作为单项式的分配服务器,由第二子化解服务器完成前述S201与S202步骤中对单项式的分配,并且可以由第二子化解服务器分别通知数据源终端对原始数据进行拆分并发送至相应的计算服务器。
S211:需求终端利用第三中间结果和每个第二服务器随机数进行求解,得到多项式的最终计算结果。
可以理解的是,各服务器与终端在接收到数据后,可以各自根据预设的程序各自执行运算过程与数据接收和发送过程。
此外,本发明实施例还公开了一种多方数据安全计算方法的一种具体应用场景,参见图3所示,包括:
S301:以计算多项式f (a, b)=a 2+b 3为例,第一数据源终端A拥有第一原始数据a,第二数据源终端B拥有第二原始数据b。计算的最终结果需要输出给需求终端C。首先第二子化解服务器S4对参与计算的多项式进行化解,输出单项式a 2b 3
S302:第一数据源终端A和第二数据源终端B在本地对原始数据进行拆分。分别在取值范围内选择两个随机数a 1b 1,计算a 1=a*a 2b 1=b*b 2
S303:第一数据源终端A将第一原始数据的第一拆分数据a 1发送给第一计算服务器S1,第一原始数据的第二拆分数据a 2发送给第二计算服务器S2,第二数据源终端B将第二原始数据的第一拆分数据b 1发送给第一计算服务器S1,第二数据源终端B将第二原始数据的第二拆分数据b 2发送给第二计算服务器S2。
S304:第一计算服务器S1生成分别与拆分数据对应的第一服务器随机数r 1r 1 ,第一计算服务器S1计算出第一中间计算结果c 1c 1 c 1= a 1 2+r 1c 1 = b 1 3+r 1 。第一计算服务器S1将c 1c 1 发送给第二计算服务器S2。
S305:第一计算服务器S1将r 1r 1 发送给第一子化解服务器S3,第二计算服务器S2生成分别与拆分数据对应的第二服务器随机数r 2r 2 ,第二计算服务器S2计算出第二中间结果c 2c 2 c 2=c 1a 2 2+r 2c 2 =c 1 b 2 3+r 2
S306:第二计算服务器S2将第二中间计算结果c 2c 2 以及拆分数据a 2b 2发送给第一子化解服务器S3。同时第二计算服务器S2将第二服务器随机数r 2r 2 发送给需求终端C。
S307:第一子化解服务器S3计算c 3c 3
c 3c 2r a 2 2=(a 1 2+r 1)/a 2 2+r 2r 1a 2 2a 1 2a 2 2+r 2
c 3 c 2 r b 2 3=(b 1 3+r 1 )/b 2 3+r 2 r 1 b 2 3b 1 3b 2 3+r 2
S308:第一子化解服务器S3将第三子中间计算结果c 3c 3 发送给第二子化解服务器S4。
S309:第二子化解服务器S4根据多项式进行化解,计算第三中间结果c 3+ c 3 = a 1 2a 2 2+r 2+ b 1 3b 2 3+r 2
S310:第二子化解服务器S4将带第二服务器随机数r 2r 2 的第三中间结果c 3+ c 3 发送给需求终端C,需求终端C本地计算c 3+ c 3 -(r 2+ r 2 )= a 1 2a 2 2+r 2+ b 1 3b 2 3+r 2 -(r 2+ r 2 )= a 2+b 3= f (a, b),得到最终计算结果。
需要说明的是,本发明实施例只是具体举例了包括两个单项式的多方求解方法,包括两个以上的单项式原理依旧相同,只是每多一个单项式就会多一个对应的中间结果。
相应的,本发明实施例还公开了一种多方数据安全计算***,参见图4所示,该***包括:
多项式接收模块11,用于接收需求终端发送的所需计算的多项式;
单项式分配模块12,用于将多项式拆分为多个单项式,分别将每个单项式分配至相应的计算服务器;
原始数据拆分模块13,用于多个数据源终端分别按照预设的数据拆分规则对各自存储的原始数据进行拆分,得到与每个原始数据对应的第一拆分数据和第二拆分数据;
拆分数据分发模块14,用于每个数据源终端分别将相应的第一拆分数据和第二拆分数据发送至第一计算服务器和第二计算服务器;
第一中间结果计算模块15,用于第一计算服务器根据分别与每个第一拆分数据对应的单项式对相应的第一拆分数据进行计算,得到多个第一中间数值,对每个第一中间数值添加对应的第一服务器随机数,得到多个第一中间结果;
第二中间结果计算模块16,用于第二计算服务器根据数据拆分规则、每个第一中间结果和对应的第二中间数值进行计算,并对每个计算结果添加对应的第二服务器随机数,得到多个第二中间结果;其中,每个第二中间数值为每个第二拆分数据与对应的单项式进行计算得到的;
第三中间结果计算模块17,用于化解服务器利用预设的化解计算方法、每个第二中间结果、每个第一服务器随机数和每个第二拆分数据进行计算,得到化解后的第三中间结果;
最终结果计算模块18,用于需求终端利用第三中间结果和每个第二服务器随机数进行求解,得到多项式的最终计算结果。
可见,本发明实施例将原始数据分解,并分配到不同的计算服务器,使每个计算服务器均不可获得完整的原始数据避免数据泄露,并在每个不同的计算服务器分别按照对应的单项式对拆分数据计算,并对计算结果添加服务器随机数,进一步的加强数据的复杂度,也避免了数据传输途中被拦截破解的风险,最后由化解服务器对中间结果进行化解,得到仅由第二服务器随机数加密的简化后的第三中间结果,最后发送至需求终端由需求终端利用每个第二服务器随机数进行最后的化解,得到最终计算结果,计算期间确保了每个计算服务器的计算与通信过程中均不会产生数据的泄露,提高了安全性,且对各服务器没有过多的安全要求,提高了可行性。
具体的,上述原始数据拆分模块13,具体用于多个数据源终端分别将各自存储的原始数据拆分为第一拆分数据与第二拆分数据的商,得到与每个原始数据对应的第一拆分数据和第二拆分数据;
x 1=x*x 2
式中,x表示原始数据,x 1表示第一拆分数据,x 2表示第二拆分数据。
具体的,上述第二中间结果计算模块16,可以包括第二中间数值计算单元、第二计算单元和第二中间结果计算单元;其中,
第二中间数值计算单元,用于第二计算服务器为每个第二拆分数据与对应的单项式进行计算得到多个第二中间数值;
第二计算单元,用于根据数据拆分规则将每个第一中间结果除以对应的第二中间数值,得到各自的计算结果;
第二中间结果计算单元,用于对每个计算结果添加不同的第二服务器随机数,得到多个第二中间结果。
具体的,上述第三中间结果计算模块17,可以包括第三子中间结果计算单元和第三中间结果计算单元;其中,
第三子中间结果计算单元,用于第一子化解服务器利用每个第二中间结果按照化解计算方法减去第一服务器随机数与对应的第二中间数值的商,得到多个第三子中间结果;
第三中间结果计算单元,用于第二子化解服务器对多个第三子中间结果求和,得到第三中间结果。
此外,本发明实施例还公开了一种多方数据安全计算装置,包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序以实现如前述的多方数据安全计算方法。
另外,本发明实施例还公开了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如前述的多方数据安全计算方法。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
以上对本发明所提供的技术内容进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种多方数据安全计算方法,其特征在于,包括:
接收需求终端发送的所需计算的多项式;
将所述多项式拆分为多个单项式,分别将每个单项式分配至相应的计算服务器;
多个数据源终端分别按照预设的数据拆分规则对各自存储的原始数据进行拆分,得到与每个原始数据对应的第一拆分数据和第二拆分数据;
每个数据源终端分别将相应的第一拆分数据和第二拆分数据发送至第一计算服务器和第二计算服务器;
所述第一计算服务器根据分别与每个第一拆分数据对应的单项式对相应的第一拆分数据进行计算,得到多个第一中间数值,对每个第一中间数值添加对应的第一服务器随机数,得到多个第一中间结果;
所述第二计算服务器根据所述数据拆分规则、每个第一中间结果和对应的第二中间数值进行计算,并对每个计算结果添加对应的第二服务器随机数,得到多个第二中间结果;其中,每个第二中间数值为每个第二拆分数据与对应的单项式进行计算得到的;
化解服务器利用预设的化解计算方法、每个第二中间结果、每个第一服务器随机数和每个第二拆分数据进行计算,得到化解后的第三中间结果;
需求终端利用所述第三中间结果和每个第二服务器随机数进行求解,得到所述多项式的最终计算结果。
2.根据权利要求1所述的多方数据安全计算方法,其特征在于,所述多个数据源终端分别按照预设的数据拆分规则对各自存储的原始数据进行拆分,得到与每个原始数据对应的第一拆分数据和第二拆分数据的过程,包括:
多个数据源终端分别将各自存储的原始数据拆分为第一拆分数据与第二拆分数据的商,得到与每个原始数据对应的第一拆分数据和第二拆分数据;
x 1=x*x 2
式中,x表示原始数据,x 1表示第一拆分数据,x 2表示第二拆分数据。
3.根据权利要求2所述的多方数据安全计算方法,其特征在于,所述第二计算服务器根据所述数据拆分规则、每个第一中间结果和对应的第二中间数值进行计算,并对每个计算结果添加对应的第二服务器随机数,得到多个第二中间结果的过程,包括:
所述第二计算服务器为每个第二拆分数据与对应的单项式进行计算得到多个第二中间数值;
根据所述数据拆分规则将每个第一中间结果除以对应的第二中间数值,得到各自的计算结果;
对每个计算结果添加不同的第二服务器随机数,得到多个第二中间结果。
4.根据权利要求3所述的多方数据安全计算方法,其特征在于,所述化解服务器利用预设的化解计算方法、每个第二中间结果、每个第一服务器随机数和每个第二拆分数据进行计算,得到化解后的第三中间结果的过程,包括:
第一子化解服务器利用每个第二中间结果按照所述化解计算方法减去第一服务器随机数与对应的第二中间数值的商,得到多个第三子中间结果;
第二子化解服务器对多个第三子中间结果求和,得到所述第三中间结果。
5.一种多方数据安全计算***,其特征在于,包括:
多项式接收模块,用于接收需求终端发送的所需计算的多项式;
单项式分配模块,用于将所述多项式拆分为多个单项式,分别将每个单项式分配至相应的计算服务器;
原始数据拆分模块,用于多个数据源终端分别按照预设的数据拆分规则对各自存储的原始数据进行拆分,得到与每个原始数据对应的第一拆分数据和第二拆分数据;
拆分数据分发模块,用于每个数据源终端分别将相应的第一拆分数据和第二拆分数据发送至第一计算服务器和第二计算服务器;
第一中间结果计算模块,用于所述第一计算服务器根据分别与每个第一拆分数据对应的单项式对相应的第一拆分数据进行计算,得到多个第一中间数值,对每个第一中间数值添加对应的第一服务器随机数,得到多个第一中间结果;
第二中间结果计算模块,用于所述第二计算服务器根据所述数据拆分规则、每个第一中间结果和对应的第二中间数值进行计算,并对每个计算结果添加对应的第二服务器随机数,得到多个第二中间结果;其中,每个第二中间数值为每个第二拆分数据与对应的单项式进行计算得到的;
第三中间结果计算模块,用于化解服务器利用预设的化解计算方法、每个第二中间结果、每个第一服务器随机数和每个第二拆分数据进行计算,得到化解后的第三中间结果;
最终结果计算模块,用于需求终端利用所述第三中间结果和每个第二服务器随机数进行求解,得到所述多项式的最终计算结果。
6.根据权利要求5所述的多方数据安全计算***,其特征在于,所述原始数据拆分模块,具体用于多个数据源终端分别将各自存储的原始数据拆分为第一拆分数据与第二拆分数据的商,得到与每个原始数据对应的第一拆分数据和第二拆分数据;
x 1=x*x 2
式中,x表示原始数据,x 1表示第一拆分数据,x 2表示第二拆分数据。
7.根据权利要求6所述的多方数据安全计算***,其特征在于,所述第二中间结果计算模块,包括:
第二中间数值计算单元,用于所述第二计算服务器为每个第二拆分数据与对应的单项式进行计算得到多个第二中间数值;
第二计算单元,用于根据所述数据拆分规则将每个第一中间结果除以对应的第二中间数值,得到各自的计算结果;
第二中间结果计算单元,用于对每个计算结果添加不同的第二服务器随机数,得到多个第二中间结果。
8.根据权利要求7所述的多方数据安全计算***,其特征在于,所述第三中间结果计算模块,包括:
第三子中间结果计算单元,用于第一子化解服务器利用每个第二中间结果按照所述化解计算方法减去第一服务器随机数与对应的第二中间数值的商,得到多个第三子中间结果;
第三中间结果计算单元,用于第二子化解服务器对多个第三子中间结果求和,得到所述第三中间结果。
9.一种多方数据安全计算装置,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序以实现如权利要求1至4任一项所述的多方数据安全计算方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至4任一项所述的多方数据安全计算方法。
CN202111416637.5A 2021-11-26 2021-11-26 一种多方数据安全计算方法、***、装置及存储介质 Active CN113849844B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202111416637.5A CN113849844B (zh) 2021-11-26 2021-11-26 一种多方数据安全计算方法、***、装置及存储介质
PCT/CN2022/070420 WO2023092829A1 (zh) 2021-11-26 2022-01-06 一种多方数据安全计算方法、***、装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111416637.5A CN113849844B (zh) 2021-11-26 2021-11-26 一种多方数据安全计算方法、***、装置及存储介质

Publications (2)

Publication Number Publication Date
CN113849844A CN113849844A (zh) 2021-12-28
CN113849844B true CN113849844B (zh) 2022-03-04

Family

ID=78982128

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111416637.5A Active CN113849844B (zh) 2021-11-26 2021-11-26 一种多方数据安全计算方法、***、装置及存储介质

Country Status (2)

Country Link
CN (1) CN113849844B (zh)
WO (1) WO2023092829A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113849844B (zh) * 2021-11-26 2022-03-04 杭州安恒信息技术股份有限公司 一种多方数据安全计算方法、***、装置及存储介质
CN116561808B (zh) * 2023-07-05 2023-09-15 北京瑞莱智慧科技有限公司 安全多方计算的安全性确定方法、装置、设备和介质

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2990034B1 (fr) * 2012-04-25 2014-04-25 Inside Secure Procede de controle de redondance cyclique protege contre une attaque par canal auxiliaire
CN107977581A (zh) * 2017-11-06 2018-05-01 北京明华联盟科技有限公司 数据处理方法、装置及计算机可读存储介质
CN109886029B (zh) * 2019-01-28 2020-09-22 湖北工业大学 基于多项式表示的隐私保护集合交集计算方法与***
CN112001475A (zh) * 2019-05-27 2020-11-27 阿里巴巴集团控股有限公司 一种数据处理***和方法
CN111586142B (zh) * 2020-04-30 2023-09-12 王伟 一种安全多方计算方法及***
CN111371545B (zh) * 2020-05-27 2020-09-11 支付宝(杭州)信息技术有限公司 一种基于隐私保护的加密方法和***
CN111931253B (zh) * 2020-09-15 2021-01-15 腾讯科技(深圳)有限公司 基于节点群的数据处理方法、***、设备和介质
CN112685793A (zh) * 2020-12-25 2021-04-20 联想(北京)有限公司 基于区块链的数据处理方法、装置和***
CN113541946B (zh) * 2021-09-08 2022-01-04 华控清交信息科技(北京)有限公司 一种多方安全计算方法、装置及电子设备
CN113849844B (zh) * 2021-11-26 2022-03-04 杭州安恒信息技术股份有限公司 一种多方数据安全计算方法、***、装置及存储介质

Also Published As

Publication number Publication date
CN113849844A (zh) 2021-12-28
WO2023092829A1 (zh) 2023-06-01

Similar Documents

Publication Publication Date Title
US20180373882A1 (en) Privacy preserving computation protocol for data analytics
CN113849844B (zh) 一种多方数据安全计算方法、***、装置及存储介质
CN110138802B (zh) 用户特征信息获取方法、装置,区块链节点、网络,及存储介质
WO2022199290A1 (zh) 多方安全计算
CN111563261A (zh) 一种基于可信执行环境的隐私保护多方计算方法和***
CN109446828B (zh) 一种安全多方计算方法及装置
KR20060073647A (ko) 인증 시스템 및 원격분산 보존 시스템
CN111586142B (zh) 一种安全多方计算方法及***
US8923519B2 (en) Method of efficient secure function evaluation using resettable tamper-resistant hardware tokens
CN112003696A (zh) Sm9密钥生成方法、***、电子设备、装置及存储介质
CN113037479B (zh) 数据验证方法和装置
CN114239019A (zh) 保护隐私数据的共有数据数目确定方法、装置和***
CN114239018A (zh) 保护隐私数据的共有数据数目确定方法和***
CN111565108B (zh) 签名处理方法、装置及***
Farash Cryptanalysis and improvement of ‘an improved authentication with key agreement scheme on elliptic curve cryptosystem for global mobility networks’
CN113807537A (zh) 多源数据的数据处理方法、装置及电子设备、存储介质
CN111835825A (zh) 一种适用于智慧物联体系通信双方传送消息的方法
CN110708155A (zh) 版权信息保护方法、***、确权方法、装置、设备和介质
Shi et al. Key‐Insulated Undetachable Digital Signature Scheme and Solution for Secure Mobile Agents in Electronic Commerce
CN113114470A (zh) 群组的签名方法和装置、电子设备和存储介质
Barker et al. SP 800-56A. recommendation for pair-wise key establishment schemes using discrete logarithm cryptography (revised)
CN112769563A (zh) 一种基于多方计算的操作端代理授权方法及装置
CN109218016B (zh) 数据传输方法及装置、服务器、计算机设备和存储介质
US20180091295A1 (en) Data protection
CN112669150A (zh) 基于区块链的数据处理方法、装置及***

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant