CN102984156A - 一种可验证的分布式隐私数据比较与排序方法及装置 - Google Patents
一种可验证的分布式隐私数据比较与排序方法及装置 Download PDFInfo
- Publication number
- CN102984156A CN102984156A CN2012105059233A CN201210505923A CN102984156A CN 102984156 A CN102984156 A CN 102984156A CN 2012105059233 A CN2012105059233 A CN 2012105059233A CN 201210505923 A CN201210505923 A CN 201210505923A CN 102984156 A CN102984156 A CN 102984156A
- Authority
- CN
- China
- Prior art keywords
- client
- sig
- data
- pki
- inquiry
- 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.)
- Granted
Links
Images
Landscapes
- Storage Device Security (AREA)
- Computer And Data Communications (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及安全多方计算领域,尤其涉及一种可验证的分布式隐私数据比较与排序方法及装置,该方法通过分布式的客户端初始化、查询者初始化、查询者Pa使用归并排序算法对n个客户端的隐私数据进行排序等步骤,针对数据存储在大量分布式节点上的情况,利用数字签名和半同态加密***,在整个查询过程中完全采用无中心的方式进行;所有客户端数据均使用客户端公钥进行加密,仅客户端私钥可解密,保证了数据隐私;本发明的验证机制保证所有客户端无法输入虚假数据,也不能对比较和排序结果作假。
Description
技术领域
本发明涉及安全多方计算领域,尤其涉及一种可验证的分布式隐私数据比较与排序方法及装置。
背景技术
在各种数据相关的应用中常常都会使用到数据大小比较和排序操作,随着现代信息技术的发展,很多数据的存储已经不再是中心式的存储方式,而是分布在多个客户端上。比如传感器网络中节点采集到的感知数据和网络数据则分布在各个传感器节点上;移动社交网络中的数据则分布在各个用户的手机上;分布式数据库中的数据都分别存储在多个服务器上等。如何对分布在不同客户端上的数据进行实施的比较和如何对多个客户端上的数据进行排序是一个具有挑战性的题目。目前已经有大量的分布式计算方法提出来解决这个问题,这些方法普遍关注与计算和通信的开销,旨在提高计算的效率,却忽略了对数据隐私的保护。实际上在很多应用中的数据是一种隐私,具有敏感性需要得到保护,这些数据客户端并不愿意将自己的数据暴露给任何查询者或者其他客户端,例如在很多安全传感器网络和移动社交网络中,每个传感器或者手机上的数据都需要得到保护,不能向外界暴露。在隐私问题日益严重的现在,人们提出了需要完全不暴露客户端隐私数据的情况下,对分布式的隐私数据进行比较和排序操作。
传统的安全多方计算方法计算开销都非常大,尤其是在计算资源受限的移动设备上几乎无法进行,使得他们在如传感网,移动社交网络等很多场景下都难以得到实际应用。并且所有相关的解决方案都将重点放在了隐私保护,保证数据不被泄露,而忽略了运算输入和结果的可验证性。采用这些方法的查询得到的比较和排序结果的正确性都建立在客户端诚实地执行该方法的假设上,实际上,恶意客户端很容易伪造其输入输出数据而导致错误的比较和排序结果,但是传统的方法却很难对这样的情况进行验证和发现。这样无法验证的计算方法显然无法满足大量安全性较高的应用的需要。
发明内容
本发明的目的在于提出一种可验证的分布式隐私数据比较与排序方法,以便于让数据的管理者和查询者在不破坏数据隐私的情况下实现安全可验证的数据比较和查询操作。
为达此目的,本发明采用以下技术方案:
一种可验证的分布式隐私数据比较与排序方法,包括:
A、分布式的客户端初始化:
定义存储有隐私数据的n个客户端,每个客户端Pi的隐私数据为vi;定义提供服务的可信第三方为PT,PT拥有一对数字签名算法公钥和私钥PkT和SkT;定义Ei(vi,ri)表示使用快速Paillier加密算法用Pi的公钥Pki对vi进行加密,ri是作为加密算法输入的随机数;
客户端Pi向PT发送初始化请求、隐私数据为vi验证请求、一系列随机数{δk};PT为客户端Pi分配一个唯一标示IDi,采用快速Pai11ier加密***为Pi生成唯一的公钥和私钥Pki和Ski,在验证隐私数据为vi为合法数据后,使用一系列随机数{δk}分别乘以vi得到集合{δkvi},使用客户端Pi的公钥Pki加密{δk}和{δkvi},分别对这两个集合中的值进行哈希,对哈希值用PT的私钥SkT进行签名得到{Sig(Ei(δk,ri))}、{Sig(Ei(δkvi,ri′))},形成该隐私数据vi的一系列证书的集合{C(Pi,δkvi)}={<Sig(IDi),Ei(vi,ri),Ei(δk,ri),Ei(δkvi,ri′),Sig(Ei(δk,ri)),Sig(Ei(δkvi,ri′)),Pki,PkT>},
将该一系列证书的集合发送到客户端Pi;
B、数据的查询者始化:
查询者Pa向PT发送初始化请求;PT为查询者Pa分配一个唯一标示,采用快速Paillier加密***为Pa生成唯一的公钥和私钥Pka和Ska;
C、查询者Pa使用归并排序算法对n个客户端的隐私数据进行排序;
C1、查询者Pa使用归并排序算法将n个客户端两两归并,分成两个一组;
C2、令同一组的两个客户端分别为P1和P2,他们的隐私数据分别为v1和v2;向n个客户端广播分组结果和Pa的公钥Pka;
C3、P1随机地从v1的证书集合{C(P1,δkv1)}中选出一个证书为C(P1,δ1v1)=<Sig(ID1),E1(v1,r1),E1(δ1,r1),E2(δ1v1,r2′),Sig(E1(δ1,r1)),Sig(E1(δ1v1,r1′)),Pk1,PkT>计算m11=E2(Ea(δ1v1,r1a),r12)和m12=E2(Ea(r′1,r1));
P1将C(P1,δ1v1),m11,m12发送给P2;
C4、P2随机地从v2的证书集合{C(P2,δkv2)}选出一个证书为C(P2,δ2v2)=<Sig(ID2),E2(v2,r2),E2(δ2,r2),E2(δ2 v2,r2′),Sig(E2(δ2,r2)),Sig(E1(δ2v2,r2′)),Pk2,PkT>计算m21=E1(Ea(δ2v2,r2a),r21)和m22=E1(Ea(r′2,r2));
P2将C(P2,δ2v2),m21,m22发送给P1;
C5、P1利用可信第三方PT的公钥PkT验证证书C(P2,δ2v2)的值,对P2的输入值进行验证,如验证通过则表明P2的输入值正确,否则表明P2对输入值作假;P1解密m21和m22,并使用证书C(P2,δ2v2)中的值计算得到以下值:
e11=Ea(δ1δ2v2,δ1r2a),e12=Ea(E2(δ1δ2v1,δ1v1r2)),e13=Ea(E2(δ1δ2v2,δ1r2′)),e14=Ea(δ1r2′,δ1r2),e15=Ea(δ2v2r1,r1r2′);
P1将Pk1,e11,e12,e13,e14,e15发送给数据查询者Pa;
C6、P2利用可信第三方PT的公钥PkT验证证书C(P1,δ1v1)的值,对P1的输入值进行验证,如验证通过则表明P1的输入值正确,否则表明P1对输入值作假;P2解密m11和m12,并使用证书C(P1,δ1v1)中的值计算得到以下值:
e21=Ea(δ1δ2v1,δ2r1a),e22=Ea(E1(δ1δ2v2,δ2v2r1)),e23=Ea(E1(δ1δ2v1,δ2r1′)),e24=Ea(δ2r1′δ2r1),e25=Ea(δ1v1r2,r1′r2)。
P2将Pk2,e21,e22,e23,e24,e25发送给数据查询者Pa;
C7、定义Di(e)表示使用快速Paillier解密算法,用Pi的私钥Ski对e进行解密;查询者解密d1=Da(e11)和d2=Da(e21),比较d1和d2的大小得到v1、v2的大小比较结果,若d1>d2则v1<v2;若d1=d2则v1=v2;若d1<d2则v1>v2;
Pa解密e14,e15,e24,e25,得到δ1r2′,δ2v2r1,δ2r1′,δ1v1r2,并计算以下四个等式:
E2(d1,δ1r2′)=Da(e13),E1(d1,δ2v2r1)=Da(e22),
E1(d2,δ2r1′)=Da(e23),E2(d2,δ1v1r2)=Da(e12);
如果四个等式均成立,则说明Pa得到正确的比较结果,否则说明比较结果无效;
C8、查询者Pa使用归并排序算法对n个客户端重新分组,循环步骤C2-C8,直到将所有客户端的比较结果合并为排序结果为止。
一种可验证的分布式隐私数据比较与排序装置,包括:
客户端初始化单元,用于分布式的客户端初始化:
定义存储有隐私数据的n个客户端,每个客户端Pi的隐私数据为vi;定义提供服务的可信第三方为PT,PT拥有一对数字签名算法公钥和私钥PkT和SkT;定义Ei(vi,ri)表示使用快速Paillier加密算法用Pi的公钥Pki对vi进行加密,ri是作为加密算法输入的随机数;
客户端Pi向PT发送初始化请求、隐私数据为vi验证请求、一系列随机数{δk};PT为客户端Pi分配一个唯一标示IDi,采用快速Paillier加密***为Pi生成唯一的公钥和私钥Pki和Ski,在验证隐私数据为vi为合法数据后,使用一系列随机数{δk}分别乘以vi得到集合{δkvi},使用客户端Pi的公钥Pki加密{δk}和{δkvi},分别对这两个集合中的值进行哈希,对哈希值用PT的私钥SkT进行签名得到{Sig(Ei(δk,ri))}、{Sig(Ei(δkvi,ri′))},形成该隐私数据vi的一系列证书的集合{C(Pi,δkvi)}={<Sig(IDi),Ei(vi,ri),Ei(δk,ri),Ei(δkvi,ri′),Sig(Ei(δk,ri)),Sig(Ei(δkvi,ri′)),Pki,PkT>},
将该一系列证书的集合发送到客户端Pi;
查询者初始化单元,用于数据的查询者始化:
查询者Pa向PT发送初始化请求;PT为查询者Pa分配一个唯一标示,采用快速Paillier加密***为Pa生成唯一的公钥和私钥Pka和Ska;
比较排序单元,用于查询者Pa使用归并排序算法对n个客户端的隐私数据进行排序;
C1、查询者Pa使用归并排序算法将n个客户端两两归并,分成两个一组;
C2、令同一组的两个客户端分别为P1和P2,他们的隐私数据分别为v1和v2;向n个客户端广播分组结果和Pa的公钥Pka;
C3、P1随机地从v1的证书集合{C(P1,δkv1)}中选出一个证书为C(P1,δ1v1)=<Sig(ID1),E1(v1,r1),E1(δ1,r1),E2(δ1v1,r1′),Sig(E1(δ1,r1)),Sig(E1(δ1v1,r1′)),Pk1,PkT>计算m11=E2(Ea(δ1v1,r1a),r12)和m12=E2(Ea(r′1,r1));
P1将C(P1,δ1v1),m11,m12发送给P2;
C4、P2随机地从v2的证书集合{C(P2,δkv2)}选出一个证书为C(P2,δ2v2)=<Sig(ID2),E2(v2,r2),E2(δ2,r2),E2(δ2v2,r2′),Sig(E2(δ2,r2)),Sig(E1(δ2v2,r2′)),Pk2,PkT>计算m21=E1(Ea(δ2v2,r2a),r21)和m22=E1(Ea(r′2,r2));
P2将C(P2,δ2v2),m21,m22发送给P1;
C5、P1利用可信第三方PT的公钥PkT验证证书C(P2,δ2v2)的值,对P2的输入值进行验证,如验证通过则表明P2的输入值正确,否则表明P2对输入值作假;P1解密m21和m22,并使用证书C(P2,δ2v2)中的值计算得到以下值:
e11=Ea(δ1δ2v2,δ1r2a),e12=Ea(E2(δ1δ2v1,δ1v1r2)),e13=Ea(E2(δ1δ2v2,δ1r2′)),
e14=Ea(δ1r2′,δ1r2),e15=Ea(δ2v2r1,r1r2′);
P1将Pk1,e11,e12,e13,e14,e15发送给数据查询者Pa;
C6、P2利用可信第三方PT的公钥PkT验证证书C(P1,δ1v1)的值,对P1的输入值进行验证,如验证通过则表明P1的输入值正确,否则表明P1对输入值作假;P2解密m11和m12,并使用证书C(P1,δ1v1)中的值计算得到以下值:
e21=Ea(δ1δ2v1,δ2r1a),e22=Ea(E1(δ1δ2v2,δ2v2r1)),e23=Ea(E1(δ1δ2v1,δ2r1′)),e24=Ea(δ2r1′δ2r1),e25=Ea(δ1v1r2,r1′r2)。
P2将Pk2,e21,e22,e23,e24,e25发送给数据查询者Pa;
C7、定义Di(e)表示使用快速Paillier解密算法,用Pi的私钥Ski对e进行解密;查询者解密d1=Da(e11)和d2=Da(e21),比较d1和d2的大小得到v1、v2的大小比较结果,若d1>d2则v1<v2;若d1=d2则v1=v2;若d1<d2则v1>v2;
Pa解密e14,e15,e24,e25,得到δ1r2′,δ2v2r1,δ2r1′,δ1v1r2,并计算以下四个等式:
E2(d1,δ1r2′)=Da(e13),E1(d1,δ2v2r1)=Da(e22),
E1(d2,δ2r1′)=Da(e23),E2(d2,δ1v1r2)=Da(e12);
如果四个等式均成立,则说明Pa得到正确的比较结果,否则说明比较结果无效;
C8、查询者Pa使用归并排序算法对n个客户端重新分组,循环步骤C2-C8,直到将所有客户端的比较结果合并为排序结果为止。
本发明的有益效果为:本发明提出了一种可验证的分布式隐私数据比较与排序方法及装置,该方法通过分布式的客户端初始化、查询者初始化、查询者Pa使用归并排序算法对n个客户端的隐私数据进行排序等步骤,针对数据存储在大量分布式节点上的情况,利用数字签名和半同态加密***,只需***初始化时连接可信第三方一次,之后无需再次连接服务器,在整个查询过程中完全采用无中心的方式进行;所有客户端数据均使用客户端公钥进行加密,仅客户端私钥可解密,保证了数据隐私;本发明的验证机制保证所有客户端无法输入虚假数据,也不能对比较和排序结果作假;快速Paillier***的计算消耗较小,完全能支持本发明在移动设备上使用,使得发明的应用范围不受平台限制。
附图说明
图1是本发明的方法流程图;
图2是本发明的装置结构示意图;
图3是本发明的快速Paillier加密算法流程示意图
具体实施方式
下面将结合图1-图3并通过具体实施方式来进一步说明本发明的技术方案。
本发明一种可验证的分布式隐私数据比较与排序方法的第一实施例如图1所示:
一种可验证的分布式隐私数据比较与排序方法,包括:
A、分布式的客户端初始化:
定义存储有隐私数据的n个客户端,每个客户端Pi的隐私数据为vi;定义提供服务的可信第三方为PT,PT拥有一对数字签名算法公钥和私钥PkT和SkT;定义Ei(vi,ri)表示使用快速Paillier加密算法用Pi的公钥Pki对vi进行加密,ri是作为加密算法输入的随机数;
客户端Pi向PT发送初始化请求、隐私数据为vi验证请求、一系列随机数{δk};PT为客户端Pi分配一个唯一标示IDi,采用快速Paillier加密***为Pi生成唯一的公钥和私钥Pki和Ski,在验证隐私数据为vi为合法数据后,使用一系列随机数{δk}分别乘以vi得到集合{δk vi},使用客户端Pi的公钥Pki加密{δk}和{δkvi},分别对这两个集合中的值进行哈希,对哈希值用PT的私钥SkT进行签名得到{Sig(Ei(δk,ri))}、{Sig(Ei(δkvi,ri′)},形成该隐私数据vi的一系列证书的集合{C(Pi,δkvi)}={<Sig(IDi),Ei(vi,ri),Ei(δk,ri),Ei(δkvi,ri′),Sig(Ei (δk,ri)),Sig(Ei(δkvi,ri′)),Pki,PkT>},
将该一系列证书的集合发送到客户端Pi,该证书集合中每个证书对应一个δk值,一个vi值对应一系列证书,证书的个数等于δk值的个数;
B、数据的查询者始化:
查询者Pa向PT发送初始化请求;PT为查询者Pa分配一个唯一标示,采用快速Paillier加密***为Pa生成唯一的公钥和私钥Pka和Ska;
C、查询者Pa使用归并排序算法对n个客户端的隐私数据进行排序;
C1、查询者Pa使用归并排序算法将n个客户端两两归并,分成两个一组;
C2、令同一组的两个客户端分别为P1和P2,他们的隐私数据分别为v1和v2;向n个客户端广播分组结果和Pa的公钥Pka;
C3、P1随机地从v1的证书集合{C(P1,δkv1)}中选出一个证书为C(P1,δ1v1)=<Sig(ID1),E1(v1,r1),E1(δ1,r1),E2(δ1v1,r1′),Sig(E1(δ1,r1)),Sig(E1(δ1v1,r1′)),Pk1,PkT>
计算m11=E2(Ea(δ1v1,r1a),r12)和m12=E2(Ea(r′1,r1));
P1将C(P1,δ1v1),m11,m12发送给P2;
C4、P2随机地从v2的证书集合{C(P2,δkv2)}选出一个证书为C(P2,δ2v2)=<Sig(ID2),E2(v2,r2),E2(δ2,r2),E2(δ2v2,r2′),Sig(E2(δ2,r2)),Sig(E1(δ2v2,r2′)),Pk2,PkT>计算m21=E1(Ea(δ2v2,r2a),r21)和m22=E1(Ea(r′2,r2));
P2将C(P2,δ2v2),m21,m22发送给P1;
C5、P1利用可信第三方PT的公钥PkT验证证书C(P2,δ2v2)的值,对P2的输入值进行验证,如验证通过则表明P2的输入值正确,否则表明P2对输入值作假;P1解密m21和m22,并使用证书C(P2,δ2v2)中的值计算得到以下值:
e11=Ea(δ1δ2v2,δ1r2a),e12=Ea(E2(δ1δ2v1,δ1v1r2)),e13=Ea(E2(δ1δ2v2,δ1r2′)),
e14=Ea(δ1r2′,δ1r2),e15=Ea(δ2v2r1,r1r2′);
P1将Pk1,e11,e12,e13,e14,e15发送给数据查询者Pa;
C6、P2利用可信第三方PT的公钥PkT验证证书C(P1,δ1v1)的值,对P1的输入值进行验证,如验证通过则表明P1的输入值正确,否则表明P1对输入值作假;P2解密m11和和m12,并使用证书C(P1,δ1v1)中的值计算得到以下值:
e21=Ea(δ1δ2v1,δ2r1a),e22=Ea(E1(δ1δ2v2,δ2v2r1)),e23=Ea(E1(δ1δ2v1,δ2r1′)),e24=Ea(δ2r2′δ2r1),e25=Ea(δ1v1r2,r1′r2)。
P2将Pk2,e21,e22,e23,e24,e25发送给数据查询者Pa;
C7、如图3所示,定义Di(e)表示使用快速Paillier解密算法,用Pi的私钥Ski对e进行解密;查询者解密d1=Da(e11)和d2=Da(e21),比较d1和d2的大小得到v1、v2的大小比较结果,若d1>d2则v1<v2;若d1=d2则v1=v2;若d1<d2则v1>v2;
Pa解密e14,e15,e24,e25,得到δ1r2′,δ2v2r1,δ2r1′,δ1v1r2,并计算以下四个等式:
E2(d1,δ1r2′)=Da(e13),E1(d1,δ2v2r1)=Da(e22),
E1(d2,δ2r1′)=Da(e23),E2(d2,δ1v1r2)=Da(e12);
如果四个等式均成立,则说明Pa得到正确的比较结果,否则说明比较结果无效;
C8、查询者Pa使用归并排序算法对n个客户端重新分组,循环步骤C2-C8,直到将所有客户端的比较结果合并为排序结果为止。
本发明的一种可验证的分布式隐私数据比较与排序装置的第二实施例如图2所示,包括:
客户端初始化单元,用于分布式的客户端初始化:
定义存储有隐私数据的n个客户端,每个客户端Pi的隐私数据为vi;定义提供服务的可信第三方为PT,PT拥有一对数字签名算法公钥和私钥PkT和SkT;定义Ei(vi,ri)表示使用快速Paillier加密算法用Pi的公钥Pki对vi进行加密,ri是作为加密算法输入的随机数;
客户端Pi向PT发送初始化请求、隐私数据为vi验证请求、一系列随机数{δk};PT为客户端Pi分配一个唯一标示IDi,采用快速Paillier加密***为Pi生成唯一的公钥和私钥Pki和Ski,在验证隐私数据为vi为合法数据后,使用一系列随机数{δk}分别乘以vi得到集合{δkvi},使用客户端Pi的公钥Pki加密{δk}和{δkvi},分别对这两个集合中的值进行哈希,对哈希值用PT的私钥SkT进行签名得到{Sig(Ei(δk,ri))}、{Sig(Ei(δkvi,ri′))},形成该隐私数据vi的一系列证书的集合{C(Pi,δkvi)}={<Sig(IDi),Ei(vi,ri),Ei(δk,ri),Ei(δkvi,ri′),Sig(Ei(δk,ri)),Sig(Ei(δkvi,ri′)),Pki,PkT>},
将该一系列证书的集合发送到客户端Pi;
查询者初始化单元,用于数据的查询者始化:
查询者Pa向PT发送初始化请求;PT为查询者Pa分配一个唯一标示,采用快速Paillier加密***为Pa生成唯一的公钥和私钥Pka和Ska;
比较排序单元,用于查询者Pa使用归并排序算法对n个客户端的隐私数据进行排序;
C1、查询者Pa使用归并排序算法将n个客户端两两归并,分成两个一组;
C2、令同一组的两个客户端分别为P1和P2,他们的隐私数据分别为v1和v2;向n个客户端广播分组结果和Pa的公钥Pka;
C3、P1随机地从v1的证书集合{C(P1,δkv1)}中选出一个证书为C(P1,δ1v1)=<Sig(ID1),E1(v1,r1),E1(δ1,r1),E2(δ1v1,r1′),Sig(E1(δ1,r1)),Sig(E1(δ1v1,r1′)),Pk1,PkT>计算m11=E2(Ea(δ1v1,r1a),r12)和m12=E2(Ea(r′1,r1));
P1将C(P1,δ1v1),m11,m12发送给P2;
C4、P2随机地从v2的证书集合{C(P2,δkv2)}选出一个证书为C(P2,δ2v2)=<Sig(ID2),E2(v2,r2),E2(δ2,r2),E2(δ2v2,r2′),Sig(E2(δ2,r2)),Sig(E1(δ2v2,r2′)),Pk2,PkT>计算m21=E1(Ea(δ2v2,r2a),r21)和m22=E1(Ea(r′2,r2));
P2将C(P2,δ2v2),m21,m22发送给P1;
C5、P1利用可信第三方PT的公钥PkT验证证书C(P2,δ2v2)的值,对P2的输入值进行验证,如验证通过则表明P2的输入值正确,否则表明P2对输入值作假;P1解密m21和m22,并使用证书C(P2,δ2v2)中的值计算得到以下值:
e11=Ea(δ1δ2v2,δ1r2a),e12=Ea(E2(δ1δ2v1,δ1v1r2)),e13=Ea(E2(δ1δ2v2,δ1r2′)),e14=Ea(δ1r2′,δ1r2),e15=Ea(δ2v2r1,r1r2′);
P1将Pk1,e11,e12,e13,e14,e15发送给数据查询者Pa;C6、P2利用可信第三方PT的公钥PkT验证证书C(P1,δ1v1)的值,对P1的输入值进行验证,如验证通过则表明P1的输入值正确,否则表明P1对输入值作假;P2解密m11和m12,并使用证书C(P1,δ1v1)中的值计算得到以下值:
e21=Ea(δ1δ2v1,δ2r1a),e22=Ea(E1(δ1δ2v2,δ2v2r1)),e23=Ea(E1(δ1δ2v1,δ2r1′)),e24=Ea(δ2r1′δ2r1),e25=Ea(δ1v1v2,r1′r2)。
P2将Pk2,e21,e22,e23,e24,e25发送给数据查询者Pa;
C7、如图3所示,定义Di(e)表示使用快速Paillier解密算法,用Pi的私钥Ski对e进行解密;查询者解密d1=Da(e11)和d2=Da(e21),比较d1和d2的大小得到v1、v2的大小比较结果,若d1>d2则v1<v2;若d1=d2则v1=v2;若d1<d2则v1>v2;
Pa解密e14,e15,e24,e25,得到δ1r2′,δ2v2r1,δ2r1′,δ1v1r2,并计算以下四个等式:
E2(d1,δ1r2′)=Da(e13),E1(d1,δ2v2r1)=Da(e22),
E1(d2,δ2r1′)=Da(e23),E2(d2,δ1v1r2)=Da(e12);
如果四个等式均成立,则说明Pa得到正确的比较结果,否则说明比较结果无效;
C8、查询者Pa使用归并排序算法对n个客户端重新分组,循环步骤C2-C8,直到将所有客户端的比较结果合并为排序结果为止。
本领域的技术人员可以清楚地了解到本发明可借助软件加必须的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以使个人计算机,服务器,或者网络设备等)执行本发明各个实施咧或者实施例的某些部分所述的方法。
以上所述仅为本发明的具体实施方式,这些描述只是为了解释本发明的原理,而不能以任何方式解释为对本发明保护范围的限制。基于此处的解释,本领域的技术人员不需要付出创造性的劳动即可联想到本发明的其它具体实施方式,这些方式都将落入本发明的保护范围之内。
Claims (2)
1.一种可验证的分布式隐私数据比较与排序方法,其特征在于,包括:
A、分布式的客户端初始化:
定义存储有隐私数据的n个客户端,每个客户端Pi的隐私数据为vi;定义提供服务的可信第三方为PT,PT拥有一对数字签名算法公钥和私钥PkT和SkT;定义Ei(vi,ri)表示使用快速Pailliier加密算法用Pi的公钥Pki对vi进行加密,ri是作为加密算法输入的随机数;
客户端Pi向PT发送初始化请求、隐私数据为vi验证请求、一系列随机数{δk};PT为客户端Pi分配一个唯一标示IDi,采用快速Pail1ier加密***为Pi生成唯一的公钥和私钥Pki和Ski,在验证隐私数据为vi为合法数据后,使用一系列随机数{δk}分别乘以vi得到集合{δkvi},使用客户端Pi的公钥Pki加密{δk}和{δkvi},分别对这两个集合中的值进行哈希,对哈希值用PT的私钥SkT进行签名得到{Sig(Ei(δk,ri))}、{Sig(Ei(δkvi,ri′))},形成该隐私数据vi的一系列证书的集合{C(Pi,δkvi)}={<Sig(IDi),Ei(vi,ri),Ei(δk,ri),Ei(δkvi,ri′),Sig(Ei(δk,ri)),Sig(Ei(δkvi,ri′)),Pki,PkT>},
将该一系列证书的集合发送到客户端Pi;
B、数据的查询者始化:
查询者Pa向PT发送初始化请求;Pt为查询者Pa分配一个唯一标示,采用快速Paillier加密***为Pa生成唯一的公钥和私钥Pka和Ska;
C、查询者Pa使用归并排序算法对n个客户端的隐私数据进行排序;
C1、查询者Pa使用归并排序算法将n个客户端两两归并,分成两个一组;
C2、令同一组的两个客户端分别为P1和P2,他们的隐私数据分别为v1和v2;向n个客户端广播分组结果和Pa的公钥Pka;
C3、P1随机地从v1的证书集合{C(P1,δkv1)}中选出一个证书为C(P1,δ1v1)=<Sig(ID1),E1(v1,r1),E1(δ1,r1),E2(δ1v1,r1′),Sig(E1(δ1,r1)),Sig(E1(δ1v1,r2′)),Pk1,PkT>计算m11=E1(Ea(δ1v1,r1a),r12)和m12=E2(Ea(r′1,r1));
P1将C(P1,δ1v1),m11,m12发送给P2;
C4、P2随机地从v2的证书集合{C(P2,δkv2)}选出一个证书为C(P2,δ2v2)=<Sig(ID2),E2(v2,r2),E2(δ2,r2),E2(δ2v2,r2′),Sig(E2(δ2,r2)),Sig(E1(δ2v2,r2′)),Pk2,PkT>计算m21=E1(Ea(δ2v2,r2a),r21)和m22=E1(Ea(r′2,r2));
P2将C(P2,δ2v2),m21,m22发送给P1;
C5、P1利用可信第三方PT的公钥PkT验证证书C(P2,δ2v2)的值,对P2的输入值进行验证,如验证通过则表明P2的输入值正确,否则表明P2对输入值作假;P1解密m21和m22,并使用证书C(P2,δ2v2)中的值计算得到以下值:
e11=Ea(δ1δ2v2,δ1r2a),e12=Ea(E2(δ1δ2v1,δ1v1r2)),e13=Ea(E2(δ1δ2v2,δ1r2′)),e14=Ea(δ1r2′,δ1r2),e15=Ea(δ2v2r1,r1r2′);
P1将Pk1,e11,e12,e13,e14,e15发送给数据查询者Pa;C6、P2利用可信第三方PT的公钥PkT验证证书C(P1,δ1v1)的值,对P1的输入值进行验证,如验证通过则表明P1的输入值正确,否则表明P1对输入值作假;P2解密m11和m12,并使用证书C(P1,δ1v1)中的值计算得到以下值:
e21=Ea(δ1δ2v1,δ2r1a),e22=Ea(E1(δ1δ2v2,δ2v2r1)),e23=Ea(E1(δ1δ2v1,δ2r1′)),e24=Ea(δ2r1′δ2r1),e25=Ea(δ1v1r2,r1′r2)。
P2将Pk2,e21,e22,e23,e24,e25发送给数据查询者Pa;
C7、定义Di(e)表示使用快速Paillier解密算法,用Pi的私钥Ski对e进行解密;查询者解密d1=Da(e11)和d2=Da(e21),比较d1和d2的大小得到v1、v2的大小比较结果,若d1>d2则v1<v2;若d1=d2则v1=v2;若d1<d2则v1>v2;
Pa解密e14,e15,e24,e25,得到δ1r2′,δ2v2r1,δ2r1′,δ1v1r2,并计算以下四个等式:
E2(d1,δ1r2′)=Da(e13),E1(d1,δ2v2r1)=Da(e22),
E1(d2,δ2r1′)=Da(e23),E2(d2,δ1v1r2)=Da(e12);
如果四个等式均成立,则说明Pa得到正确的比较结果,否则说明比较结果无效;
C8、查询者Pa使用归并排序算法对n个客户端重新分组,循环步骤C2-C8,直到将所有客户端的比较结果合并为排序结果为止。
2.一种可验证的分布式隐私数据比较与排序装置,其特征在于,包括:
客户端初始化单元,用于分布式的客户端初始化:
定义存储有隐私数据的n个客户端,每个客户端Pi的隐私数据为vi;定义提供服务的可信第三方为PT,PT拥有一对数字签名算法公钥和私钥Pkr和SkT;定义Ei(vi,ri)表示使用快速Paillier加密算法用Pi的公钥Pki对vi进行加密,ri是作为加密算法输入的随机数;
客户端Pi向PT发送初始化请求、隐私数据为vi验证请求、一系列随机数{δk};PT为客户端Pi分配一个唯一标示IDi,采用快速Paillier加密***为Pi生成唯一的公钥和私钥Pki和Ski,在验证隐私数据为vi为合法数据后,使用一系列随机数{δk}分别乘以vi得到集合{δkvi},使用客户端Pi的公钥Pki加密{δk}和{δkvi},分别对这两个集合中的值进行哈希,对哈希值用PT的私钥SkT进行签名得到{Sig(Ei(δk,ri))}、{Sig(Ei(δkvi,ri′))},形成该隐私数据vi的一系列证书的集合{C(Pi,δkvi)}={<Sig(IDi),Ei(vi,ri),Ei(δk,ri),Ei(δkvi,ri′),Sig(Ei(δk,ri)),Sig(Ei(δkvi,ri′)),Pki,PkT>},
将该一系列证书的集合发送到客户端Pi;
查询者初始化单元,用于数据的查询者始化:
查询者Pa向PT发送初始化请求;PT为查询者Pa分配一个唯一标示,采用快速Paillier加密***为Pa生成唯一的公钥和私钥Pka和Ska;
比较排序单元,用于查询者Pa使用归并排序算法对n个客户端的隐私数据进行排序;
C1、查询者Pa使用归并排序算法将n个客户端两两归并,分成两个一组;
C2、令同一组的两个客户端分别为P1和P2,他们的隐私数据分别为v1和v2;向n个客户端广播分组结果和Pa的公钥Pka;
C3、P1随机地从v1的证书集合{C(P1,δk,v1)}中选出一个证书为C(P1,δ1v1)=<Sig(ID1),E1(v1,r2),E1(δ1,r1),E2(δ1v1,r2′),Sig(E1(δ1,r1)),Sig(E1(δ1v1,r1′)),Pk1,PkT>计算m11=E2(Ea(δ1v1,r1a),r12)和m12=E2(Ea(r′1,r1));
P1将C(P1,δ1v1),m11,m12发送给P2;
C4、P2随机地从v2的证书集合{C(P2,δkv2)}选出一个证书为C(P2,δ2v2)=<Sig(ID2),E2(v2,r2),E2(δ2,r2),E2(δ2v2,r2′),Sig(E2(δ2,r2)),Sig(E1(δ2v2,r2′)),Pk2,PkT>计算m21=E1(Ea(δ2v2,r2a),r21)和m22=E1(Ea(r′2,r2));
P2将C(P2,δ2v2),m21,m22发送给P1;
C5、P1利用可信第三方PT的公钥PkT验证证书C(P2,δ2v2)的值,对P2的输入值进行验证,如验证通过则表明P2的输入值正确,否则表明P2对输入值作假;P1解密m21和m22,并使用证书C(P2,δ2v2)中的值计算得到以下值:
e11=Ea(δ1δ2v2,δ1r2a),e12=Ea(E2(δ1δ2v1,δ1v1r2)),e13=Ea(E2(δ1δ2v2,δ1r2′)),e14=Ea(δ1r2′,δ1r2),e15=Ea(δ2v2r1,r1r2′);
P1将Pk1,e11,e12,e13,e14,e15发送给数据查询者Pa;
C6、P2利用可信第三方PT的公钥PkT验证证书C(P1,δ1v1)的值,对P1的输入值进行验证,如验证通过则表明P1的输入值正确,否则表明P1对输入值作假;P2解密m11和m12,并使用证书C(P1,δ1v1)中的值计算得到以下值:
e21=Ea(δ1δ2v1,δ2r1a),e22=Ea(E1(δ1δ2v2,δ2v2r1)),e23=Ea(E1(δ1δ2v2,δ2r1′)),e24=Ea(δ2r1′δ2r1),e25=Ea(δ1v1r2,r1′r2)。
P2将Pk2,e21,e22,e23,e24,e25发送给数据查询者Pa;
C7、定义Di(e)表示使用快速Paillier解密算法,用Pi的私钥Ski对e进行解密;查询者解密d1=Da(e11)和d2=Da(e21),比较d1和d2的大小得到v1、v2的大小比较结果,若d1>d2则v1<v2;若d1=d2则v1=v2;若d1<d2则v1>v2;
Pa解密e14,e15,e24,e25,得到δ1r2′,δ2v2r1,δ2r1′,δ1v1r2,并计算以下四个等式:
E2(d1,δ1r2′)=Da(e13),E1(d2,δ2v2r1)=Da(e22),
E1(d2,δ2r1′)=Da(e23),E2(d2,δ1v1r2)=Da(e12);
如果四个等式均成立,则说明Pa得到正确的比较结果,否则说明比较结果无效;
C8、查询者Pa使用归并排序算法对n个客户端重新分组,循环步骤C2-C8,直到将所有客户端的比较结果合并为排序结果为止。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210505923.3A CN102984156B (zh) | 2012-11-30 | 2012-11-30 | 一种可验证的分布式隐私数据比较与排序方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210505923.3A CN102984156B (zh) | 2012-11-30 | 2012-11-30 | 一种可验证的分布式隐私数据比较与排序方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102984156A true CN102984156A (zh) | 2013-03-20 |
CN102984156B CN102984156B (zh) | 2016-01-20 |
Family
ID=47857899
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210505923.3A Active CN102984156B (zh) | 2012-11-30 | 2012-11-30 | 一种可验证的分布式隐私数据比较与排序方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102984156B (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103248492A (zh) * | 2013-05-23 | 2013-08-14 | 清华大学 | 可验证的分布式隐私数据比较与排序方法 |
CN103401871A (zh) * | 2013-08-05 | 2013-11-20 | 苏州大学 | 一种面向同态加密的密文定序方法及*** |
CN103425933A (zh) * | 2013-07-31 | 2013-12-04 | 北京华易互动科技有限公司 | 一种多数据源的数据同态加密转存方法 |
CN104217487A (zh) * | 2013-05-30 | 2014-12-17 | 刘海云 | 可验证的计算机排位方法 |
CN104426973A (zh) * | 2013-09-03 | 2015-03-18 | ***通信集团公司 | 一种云数据库加密方法、***及装置 |
CN104852924A (zh) * | 2015-05-27 | 2015-08-19 | 成都华西公用医疗信息服务有限公司 | 基于大数据的文件处理方法 |
CN104935582A (zh) * | 2015-05-27 | 2015-09-23 | 成都华西公用医疗信息服务有限公司 | 大数据存储方法 |
CN105007259A (zh) * | 2015-05-27 | 2015-10-28 | 成都华西公用医疗信息服务有限公司 | 云平台大数据访问方法 |
CN106506165A (zh) * | 2016-11-02 | 2017-03-15 | 西安电子科技大学 | 基于同态加密的虚拟资产匿名排序方法 |
CN106850207A (zh) * | 2017-02-28 | 2017-06-13 | 南方电网科学研究院有限责任公司 | 无ca的身份认证方法和*** |
CN109241016A (zh) * | 2018-08-14 | 2019-01-18 | 阿里巴巴集团控股有限公司 | 多方安全计算方法及装置、电子设备 |
CN111046409A (zh) * | 2019-12-16 | 2020-04-21 | 支付宝(杭州)信息技术有限公司 | 一种私有数据多方安全计算方法和*** |
CN111832034A (zh) * | 2019-04-23 | 2020-10-27 | 创新先进技术有限公司 | 多方数据融合方法及装置 |
WO2020216078A1 (zh) * | 2019-04-26 | 2020-10-29 | 深圳前海微众银行股份有限公司 | 一种基于区块链的竞争排名方法及装置 |
WO2021004124A1 (zh) * | 2019-07-05 | 2021-01-14 | 深圳壹账通智能科技有限公司 | 基于数据比较的信息推荐方法、装置及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101561854A (zh) * | 2009-05-22 | 2009-10-21 | 江苏大学 | 一种序列模式挖掘隐私数据保护方法 |
-
2012
- 2012-11-30 CN CN201210505923.3A patent/CN102984156B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101561854A (zh) * | 2009-05-22 | 2009-10-21 | 江苏大学 | 一种序列模式挖掘隐私数据保护方法 |
Non-Patent Citations (3)
Title |
---|
MING LI,ET AL.: "FindU:Privacy-preserving personal profile matching in mobile social networks", 《INFOCOM》, 31 December 2011 (2011-12-31), pages 1 - 30 * |
WENBO HE,ET AL.: "PDA:Privacy preserving data aggregation in wireless sensor networks", 《INFOCOM》, 31 December 2007 (2007-12-31), pages 1 - 9 * |
余智欣,等: "一种新型的分布式隐私保护计算模型及其应用", 《西安交通大学学报》, vol. 41, no. 8, 31 August 2007 (2007-08-31), pages 954 - 958 * |
Cited By (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103248492A (zh) * | 2013-05-23 | 2013-08-14 | 清华大学 | 可验证的分布式隐私数据比较与排序方法 |
CN104217487A (zh) * | 2013-05-30 | 2014-12-17 | 刘海云 | 可验证的计算机排位方法 |
CN104217487B (zh) * | 2013-05-30 | 2019-03-01 | 佛山市大迈信息科技有限公司 | 可验证的计算机排位方法 |
CN103425933A (zh) * | 2013-07-31 | 2013-12-04 | 北京华易互动科技有限公司 | 一种多数据源的数据同态加密转存方法 |
CN103425933B (zh) * | 2013-07-31 | 2016-02-24 | 北京华易互动科技有限公司 | 一种多数据源的数据同态加密转存方法 |
CN103401871B (zh) * | 2013-08-05 | 2016-08-10 | 苏州大学 | 一种面向同态加密的密文定序方法及*** |
CN103401871A (zh) * | 2013-08-05 | 2013-11-20 | 苏州大学 | 一种面向同态加密的密文定序方法及*** |
CN104426973A (zh) * | 2013-09-03 | 2015-03-18 | ***通信集团公司 | 一种云数据库加密方法、***及装置 |
CN104426973B (zh) * | 2013-09-03 | 2018-03-23 | ***通信集团公司 | 一种云数据库加密方法、***及装置 |
CN104852924B (zh) * | 2015-05-27 | 2017-11-24 | 成都华西公用医疗信息服务有限公司 | 基于大数据的文件处理方法 |
CN104935582A (zh) * | 2015-05-27 | 2015-09-23 | 成都华西公用医疗信息服务有限公司 | 大数据存储方法 |
CN104852924A (zh) * | 2015-05-27 | 2015-08-19 | 成都华西公用医疗信息服务有限公司 | 基于大数据的文件处理方法 |
CN105007259A (zh) * | 2015-05-27 | 2015-10-28 | 成都华西公用医疗信息服务有限公司 | 云平台大数据访问方法 |
CN104935582B (zh) * | 2015-05-27 | 2018-01-16 | 成都华西公用医疗信息服务有限公司 | 大数据存储方法 |
CN105007259B (zh) * | 2015-05-27 | 2018-03-02 | 成都华西公用医疗信息服务有限公司 | 云平台大数据访问方法 |
CN106506165B (zh) * | 2016-11-02 | 2019-06-21 | 西安电子科技大学 | 基于同态加密的虚拟资产匿名排序方法 |
CN106506165A (zh) * | 2016-11-02 | 2017-03-15 | 西安电子科技大学 | 基于同态加密的虚拟资产匿名排序方法 |
CN106850207A (zh) * | 2017-02-28 | 2017-06-13 | 南方电网科学研究院有限责任公司 | 无ca的身份认证方法和*** |
CN109241016A (zh) * | 2018-08-14 | 2019-01-18 | 阿里巴巴集团控股有限公司 | 多方安全计算方法及装置、电子设备 |
CN109241016B (zh) * | 2018-08-14 | 2020-07-07 | 阿里巴巴集团控股有限公司 | 多方安全计算方法及装置、电子设备 |
US11206132B2 (en) | 2018-08-14 | 2021-12-21 | Advanced New Technologies Co., Ltd. | Multiparty secure computing method, device, and electronic device |
CN111832034A (zh) * | 2019-04-23 | 2020-10-27 | 创新先进技术有限公司 | 多方数据融合方法及装置 |
CN111832034B (zh) * | 2019-04-23 | 2024-04-30 | 创新先进技术有限公司 | 多方数据融合方法及装置 |
WO2020216078A1 (zh) * | 2019-04-26 | 2020-10-29 | 深圳前海微众银行股份有限公司 | 一种基于区块链的竞争排名方法及装置 |
WO2021004124A1 (zh) * | 2019-07-05 | 2021-01-14 | 深圳壹账通智能科技有限公司 | 基于数据比较的信息推荐方法、装置及存储介质 |
CN111046409A (zh) * | 2019-12-16 | 2020-04-21 | 支付宝(杭州)信息技术有限公司 | 一种私有数据多方安全计算方法和*** |
CN111046409B (zh) * | 2019-12-16 | 2021-04-13 | 支付宝(杭州)信息技术有限公司 | 一种私有数据多方安全计算方法和*** |
Also Published As
Publication number | Publication date |
---|---|
CN102984156B (zh) | 2016-01-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102984156B (zh) | 一种可验证的分布式隐私数据比较与排序方法及装置 | |
Andola et al. | Vulnerabilities on hyperledger fabric | |
WO2022199290A1 (zh) | 多方安全计算 | |
Wang et al. | 2FLIP: A two-factor lightweight privacy-preserving authentication scheme for VANET | |
CN104811450B (zh) | 云计算中一种基于身份的数据存储方法及完整性验证方法 | |
CN103064931B (zh) | 可验证的隐私数据比较与排名查询方法 | |
Yang et al. | Provable data possession of resource-constrained mobile devices in cloud computing | |
Yu et al. | Improved security of a dynamic remote data possession checking protocol for cloud storage | |
CN109104284B (zh) | 一种基于环签名的区块链匿名传输方法 | |
CN112688786B (zh) | 一种基于区块链的证据构建及实名身份认证方法 | |
CN109617692B (zh) | 一种基于区块链的匿名登陆方法及*** | |
WO2016145353A1 (en) | Methods and systems for managing network activity using biometrics | |
CN108768652A (zh) | 一种可抗量子攻击的联盟区块链底层加密方法 | |
Tian et al. | Enabling public auditability for operation behaviors in cloud storage | |
CN106936579A (zh) | 基于可信第三方代理的云存储数据存储及读取方法 | |
CN109104410B (zh) | 一种信息的匹配方法及装置 | |
CN103916393B (zh) | 基于对称密钥的云数据隐私保护公众审计方法 | |
CN110867012A (zh) | 一种基于智能合约的去中心电子投票方法、装置、***及存储介质 | |
CN111711607A (zh) | 一种基于区块链的流式微服务可信加载与验证方法 | |
CN106603236A (zh) | 一种用于生成签名的方法和装置 | |
CN110958107A (zh) | 基于区块链的电子投票方法、设备及存储介质 | |
CN103248492A (zh) | 可验证的分布式隐私数据比较与排序方法 | |
CN106713256A (zh) | 一种税控专用计算机软硬件绑定的认证方法 | |
CN110933098B (zh) | 基于区块链的电子投票方法、设备及存储介质 | |
Jiang et al. | An anonymous communication scheme based on ring signature in VANETs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20190614 Address after: 214145 No. 63 Hongchang Road, Hongshan Street, Xinwu District, Wuxi City, Jiangsu Province (Building 13) Patentee after: Wuxi Luye Qianchuan Technology Co., Ltd. Address before: 214135 Taike Park Sensor Network University Science Park Qingyuan Road Liye Building, Area A, Wuxi New District, Jiangsu Province 504 Patentee before: Wuxi SenseHuge Technology Ltd. |
|
TR01 | Transfer of patent right |