【技术实现步骤摘要】
数据处理方法和系统
[0001]本公开涉及一种数据处理领域,尤其涉及一种数据处理方法和系统。
技术介绍
[0002]安全多方计算是一个由多个参与方各自提供输入,共同计算输出的计算协议。该协议的特点是各个参与方仅了解自身的输入和计算的输出,而无法了解其他任何参与方的输入。例如“百万富翁问题”:两个参与方各自输入自己的财富数目,最后计算出谁的财富更多,除此之外不了解任何关于对方财富值的信息。
[0003]在两方合作的情况下,甲乙双方除了计算结果之外,无法了解对方的数据内容。但是在现有技术中,数据的顺序关系必然会泄露。例如,甲可以知晓在计算过程中用到了乙的第一条数据。在某些场景中,这是不符合用户隐私要求的。
[0004]为此,需要一种能够隐藏数据顺序的数据处理方案。
技术实现思路
[0005]本公开要解决的一个技术问题是提供一种用于安全两方计算的随机重排方法,可以将双方的数据随机重排,同时任何一方都无法将重排后的数据顺序和重排之前建立联系,有效地解决了数据顺序泄露问题。
[0006]根据本公 ...
【技术保护点】
【技术特征摘要】
1.一种数据处理方法,包括:获取合作方对数据x的一部分和数据y的一部分进行加密的加密结果;将获取的加密结果分别与获取的数据x的另一部分和数据y的另一部分进行组合;生成经打乱顺序的组合结果各自与随机数进行运算的运算结果,作为扰动结果;以及将扰动结果发送给合作方,用于合作方对扰动结果的解密。2.如权利要求1所述的方法,还包括:对所述随机数进行加密并发送给合作方,用于合作方对数据的二次扰动;以及获取二次扰动的结果并解密。3.如权利要求1所述的方法,其中,合作方对数据的二次扰动包括:将解密结果与获取的随机数加密结果进行逆运算;生成经打乱顺序的逆运算结果与合作方随机数进行运算的运算结果,作为二次扰动结果。4.如权利要求3所述的方法,其中,获取合作方对数据x的一部分和数据y的一部分进行加密的加密结果包括:获取合作方用于合作的数据x的一部分x2,其中,合作方将用于合作的数据x分割成x1和x2;将用于合作的数据y分割为y1和y2,并将y1发送给合作方;获取合作方使用第一私钥对x1和y1进行同态加密得到Enc(x1)和Enc(y1),将获取的加密结果分别与获取的数据x的另一部分和数据y的另一部分进行组合包括:针对Enc(x1)和x2以及Enc(y1)和y2分别进行同态运算,得到Enc(x)和Enc(y),生成经打乱顺序的组合结果各自与随机数进行运算的运算结果包括:生成经打乱顺序的Enc(x)和Enc(y)与随机数R和S进行第一运算的第一运算结果;将扰动结果发送给合作方,用于合作方对扰动结果的解密包括:将由此生成的第一运算结果发回给合作方,所述第一运算结果由合作方使用第一私钥进行解密,得到R和S分别与经打乱顺序的x和y进行第一运算的第二运算结果。5.如权利要求4所述的方法,其中,对所述随机数进行加密并发送给合作方,用于合作方对数据的二次扰动包括:使用第二私钥对R和S进行同态加密得到Enc
’
(R)和Enc
’
(S);将Enc
’
(R)和Enc
’
(S)发送给合作方,Enc
’
(R)和Enc
’
(S)由合作方进行与第二运算结果的所述第一运算的逆运算,获取二次扰动的结果并解密包括:获取第三运算结果,其中,合作方生成经二次打乱顺序的Enc
’
(x)和Enc
’
(y)与随机数M和N进行第二运算的第三运算结果;使用所述第二私钥对所述第三运算结果进行解密,得到M和N分别与经二次打乱顺序的x和y进行第二运算的第四运算结果。6.一种数据处理方法,包括:将数据x的一部分和获取的数据y的一部分进行加密;获取合作方针对加密数据的扰动结果,其中,合作方将获取的加密结果分别与获取的数据x的另一部分和数据y的另一部分进行组合,并且生成经打乱顺序的组合结果各自与随
机数进行运算的运算结果,作为扰动结果;以及对获取的扰动结果进行解密。7.如权利要求6所述的方法,还包括:获取合作方对所述随机数进行加密后得到的随机数加密结果;针对所述随机数加密结果和所述解密结果进行二次扰动;以及将二次扰动的结果发送给合作方用于解密。8.如权利要求7所述的方法,其中,针对所述随机数加密结果和所述解密结果进行二次扰动包括:将解密结果与获取的随机数加密结果进行逆运算;生成经打乱顺序的逆运算结果与合作方随机数进行运算的运算结果,作为二次扰动结果。9.如权利要求2或7所述的方法,其中,己方和合作方的加密为同态加密,针对数据的分割和运算符合秘密共享分割和运算规则。10.如权利要求5所述的方法,其中,生成经打乱顺序的Enc(x)和Enc(y)与随机数R和S进行第一运算的第一运算结果包括:随机打乱Enc(x)和Enc(y)的顺序,生成随机数R和S,并将R和S分别与经打乱顺序的Enc(x)和Enc(y)进行第一运算;或者生成随机数R和S,将R和S分别与Enc(x)和Enc(y)进行第一运算,随机打乱进行第一运算后的Enc(x)和Enc(y)的顺序。11.如权利要求10所述的方法,其中,生成经二次打乱顺序的Enc
’
(x)和Enc
’
(y)与随机数M和N进行第二运算的第三运算结果包括:将经打乱顺序的Enc
’
(x)和Enc
’
(y)的顺序进行二次随机打乱,生成随机数M和N,将M和N分别与经二次打乱顺序的Enc
’
(x)和Enc
’
(y)进行第二运算,得到第三运算结果;或者生成随机数M和N,将M和N分别与经打乱顺序的Enc
’
(x)和Enc
’
(y)进行第三运算,二次随机打乱第二运算后的Enc
’
(x)和Enc
’
(y)的顺序,得到第三运算结果。12.如权利要求4所述的方法,其中,将用于合作的数据x分割成x1和x2,将用于合作的数据y分割为y1和y2包括:将数据x进行加法秘密共享:x=x1+x2modq;以及将数据y进行加法秘密共享:y=y1+y2modq,获取合作方使用第一私钥对x1和y1进行同态加密得到Enc(x1)和Enc(y1)包括:使用第一密钥对x1进行加法同态加密,得到Enc(x1);以及使用第一密钥对y1进行加法同态加密,得到Enc(y1),针对Enc(x1)和x2以及Enc(y1)和y2分别进行同态运算,得到Enc(x)和Enc(y)包括:针对Enc(x1)和x2进行加法同态运算,得到Enc(x);以及针对Enc(y1)和y2进行加法同态运算,得到Enc(y)。13.如权利要求4所述的方法,其中,将用于合作的数据x分割成x1和x2,将用于合作的数据y分割为y1和y2包括:将数据x进行乘法秘密共享分割:x=x1*x2modq;以及将数据y进行乘法秘密共享分割:y=y1*y2modq,
获取合作方使用第一私钥对x1和y1进行同态加密得到Enc(x1)和Enc(y1)包括:使用第一密钥对x1进行乘法同态加密,得到Enc(x1);以及使用第一密钥对y1进行乘法同态加密,得到Enc(y1),针对Enc(x1)和x2以及Enc(y1)和y2分别进行同态运算,...
【专利技术属性】
技术研发人员:洪澄,
申请(专利权)人:阿里巴巴集团控股有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。