Skip to content

Commit 37e0888

Browse files
authored
Add feature for Duplicate Key PIR (#281)
* Add feature for Duplicate Key PIR * Modify the data type of the polynomial * Modify the method for generating the seed used in shuffle * Update the implementation of Elgamal * Add feature of skipping count check * Fix the bug in README.md * Modify the code style to clang-format * Modify the format of BUILD.bazel * Modify the code style * Add unit test for dkpir * Refactor code to decouple computation and communication * Fix: review * Add the upper limit of retry times for request * Fix the bug in simple pir * Fix the bug in simplepir * Fix: review * Modify the visibility of "LoadDB" and "LoadSecretKey"
1 parent b36abfc commit 37e0888

40 files changed

+3833
-7
lines changed

MODULE.bazel

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ module(
1212
)
1313

1414
bazel_dep(name = "yacl", version = "0.4.5b10-nightly-20250110")
15+
bazel_dep(name = "heu", version = "0.6.0.dev20250123")
1516

1617
single_version_override(
1718
module_name = "grpc",

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@ The alternate way to visualize trace is to use **chrome://tracing**:
211211

212212

213213

214-
## PSI V2 Benchamrk
214+
## PSI V2 Benchmark
215215

216216
Please refer to [PSI V2 Benchmark](docs/user_guide/psi_v2_benchmark.md)
217217

Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
id,label1,label2,label3
2+
DgpPCIDJDhsvZJvWgcZMmKwzvMoDAWNB,AsdeNeZDpVUaZqIZIsQX,XvFpozzbjPSKrscGNLGU,rbCwstyXiZmfFdwJeBvD
3+
DgpPCIDJDhsvZJvWgcZMmKwzvMoDAWNB,wgwdSqtRSLoedYBhCLjv,MeQdZNcyNxUdPRDsjPCX,TKldPILfNMNyTMdwUpGn
4+
DgpPCIDJDhsvZJvWgcZMmKwzvMoDAWNB,NnShrpFFmRvvQJQJOOqS,gipeJMwvBtPhRjxIcTcg,TRfnHtPcOPckwqGfootn
5+
DgpPCIDJDhsvZJvWgcZMmKwzvMoDAWNB,hdlOIhbPzRgHLzpYaWpr,LcJIzXzLcAutAitsyAjb,eeoZqVnqKEhsKUQgvWAu
6+
DgpPCIDJDhsvZJvWgcZMmKwzvMoDAWNB,MobXayBPNiyXviSoqDnJ,TJgSkkQQWmYMTmPqdFJZ,sOsAugFHEnKagQylDdCE
7+
ruLWHJrmPbAAhGfvdfgALZmujupFgDcS,gMKQpIEXxWoRzoPLmgxc,dJrEpiRFewvPddpyjrfC,JMGCRiWVXxYXPZxtzffu
8+
ruLWHJrmPbAAhGfvdfgALZmujupFgDcS,DjqcWSCEpedZffMwbBhZ,KgxiJrpPpkqMoCtYwjKK,zUHwTmeNGCoWQoZPfFna
9+
ruLWHJrmPbAAhGfvdfgALZmujupFgDcS,HwiXMSiOuNbZoBEEOHEU,kaVQyPKatfHFUsFNwHwV,lEudilRFlHsoXxCCehig
10+
ruLWHJrmPbAAhGfvdfgALZmujupFgDcS,sionCTGHyDxUniyVtNgA,ZXVHMDAaUgqXfIXAVDpA,aBhUShOhMBCsTeQfkDwB
11+
ruLWHJrmPbAAhGfvdfgALZmujupFgDcS,vEmvZksMgEODVGnDTYfH,itiWtDzJkuyUjMchmrGt,uFAoOIZcClBytfhAdVNG
12+
GgsnZCEABMXooxnTPxhLjLzizdTABzbp,wVQLNaXaMMrzSeXvtgSh,egvNnmESTrHgnnRAhOBd,HjmnWEViWuSNtSZnUePk
13+
GgsnZCEABMXooxnTPxhLjLzizdTABzbp,RhQgZAKkGEOqQxCbeLpW,KIFSFvbWLbgiRHwPwPJp,OdTDaVNQOjpVPbSZazkY
14+
GgsnZCEABMXooxnTPxhLjLzizdTABzbp,ycGknzsoEWZgNpNWvhdq,ZhmDvHMaMOiAnCfnliSD,NjVLgxfIaKVXEORgBzGR
15+
GgsnZCEABMXooxnTPxhLjLzizdTABzbp,qIrxKSDZlRNDnXRFQVtE,liFVYzLGLANqbidQWnpq,GAejhHMnnLqttVYTCXIV
16+
GgsnZCEABMXooxnTPxhLjLzizdTABzbp,XvkTaFQAdYicKQnNYpSQ,VdJbYiLZOAFOGqAZkVWa,DxTtRvYiLECSIUlwcgRq
17+
FLjebEEnbEPaMoRhlfxpCOCXrCcJKMnn,lkAoTKHHHMaSzbhHtzRN,CXWNebHwTAnwmHqttnai,dumKsuZaxeBZHazLoYba
18+
FLjebEEnbEPaMoRhlfxpCOCXrCcJKMnn,YUOpBedSRGNcafGrbpyP,QjiYpNQzEXjRfJlOmHIK,THmEHeiCwNQsLTdTjqTI
19+
FLjebEEnbEPaMoRhlfxpCOCXrCcJKMnn,aooFStnkvoPRemlGdBjU,mCUtpPJIzGpzDEvWawgU,eKKXFeptSudnxwBzXiXL
20+
FLjebEEnbEPaMoRhlfxpCOCXrCcJKMnn,mhkOeRBJenneHMCkFJTm,IQzSVnmbqWibzNmrPquU,hzYExZHaslBfELBoWxsb
21+
FLjebEEnbEPaMoRhlfxpCOCXrCcJKMnn,SIvAxDJKSQxvrCRMEFHo,LVofYFKjtbuEKrwSOxtQ,mtvGErERGsHsGMWvCtLx
22+
vLXZFKCidjxKSaPyAeXSeDzGcOMRcBMj,BzrafUQavcWsyBwmnFcI,mSWaHTEvgUlegSWZmVEL,FKYWoSxxIKRkEPipRsVf
23+
vLXZFKCidjxKSaPyAeXSeDzGcOMRcBMj,XmhQsxdODcCKiBtrsdsI,HrZRRpzBZJBouRsJfnwW,FCBwqZQokLKzjQeZFbUm
24+
vLXZFKCidjxKSaPyAeXSeDzGcOMRcBMj,TEjQrddnLytHfWSfEEAm,wDQjMdpTycVSsedvYjDm,bKJuGbaIHwXNdgmfJrRb
25+
vLXZFKCidjxKSaPyAeXSeDzGcOMRcBMj,NnKPIABIgycbTlPotonU,cgAIcpjMAyIDveNmUFoc,FuieRdYyFZDTUYUazRRu
26+
vLXZFKCidjxKSaPyAeXSeDzGcOMRcBMj,RZZuEAFFXIvcrxbHCseI,wyDRqNeHEeaVVVYwkMkp,KrHdcqdUOAVBjdWRiXTO
27+
diWtaSHoOvKRDcVYOyyDSMKhjKAGrskc,akOrTABHWsJAcIDFfLyt,VnAOfYcexbNvoSYZelna,eLNYhGQHxHsVxzUFnOZL
28+
diWtaSHoOvKRDcVYOyyDSMKhjKAGrskc,QykpjWtuTmidehgFGYHK,SGJtDfGgCYBmABxiLYgm,uSqhTvARTIrHLKKQObki
29+
diWtaSHoOvKRDcVYOyyDSMKhjKAGrskc,MeQxeajMcXXYujhwfouy,IIihvbqvpxqGbtqXouxk,WuPALpwEvAXtllmtZeCD
30+
diWtaSHoOvKRDcVYOyyDSMKhjKAGrskc,ICOgVnJLukHuYLJhjbQA,pCfbJiymRbEnBKSDMeJT,bwtmxOqEyLuBlYDXVZLH
31+
diWtaSHoOvKRDcVYOyyDSMKhjKAGrskc,DFJjVZEpKKHhfSPZxygi,wOFyPWYXvgiCYuggtpvi,mUlHbfXqEHLgwPZbMSDd
32+
MHuGJiJxBLzkpOWJvOpcwpFRsNpXivpI,zWbknVuPGeQRijmKKdMm,vIguycrjUwDQwcZmQQZL,NixWQRJwrxASQaqjWrIv
33+
MHuGJiJxBLzkpOWJvOpcwpFRsNpXivpI,CwRLyAHEldGtcWiePDtZ,cPDAimstqfWkuTpLJzJD,zrqvwUbNeiNnAaJwEwmv
34+
MHuGJiJxBLzkpOWJvOpcwpFRsNpXivpI,VoSyUgbaEFXpibajoUoF,LbtKKbhPgiPUXjpAMItt,DquPEHAZheMvVqqFqTis
35+
MHuGJiJxBLzkpOWJvOpcwpFRsNpXivpI,RTgGhQRxrapUpftvNClx,CjPcvlxNslNjCSwHwwqX,bMGJgiYZXLzQVcPHWjse
36+
MHuGJiJxBLzkpOWJvOpcwpFRsNpXivpI,ivYmdcIsvaDGehANaQzn,jXzYidONnELDKwsSwiuq,ESKjXZDMpmOcRsZIBAhY
37+
ziINrrviMvwtgtvRZfmsZnYSZGypPlWX,MDaSWPqLMxULogTPXfAl,NNXxZNcONMbUVBkYdVni,ESAYlnnsrhVnAlDQEBuu
38+
ziINrrviMvwtgtvRZfmsZnYSZGypPlWX,oYYHotHykoqWPhowCgLB,HMYHyTwMqYVaKKWwbxPd,racKxreRQSkYpGhTFdzu
39+
ziINrrviMvwtgtvRZfmsZnYSZGypPlWX,yAJwSsRRKOTcSgkithbG,TKPxkBycqVhZgNSPnYjD,YlWlHTDbQTGZwqArVeYo
40+
ziINrrviMvwtgtvRZfmsZnYSZGypPlWX,ediTiCBhtXvoNsOSvAtH,FHyXKfgnnyUlmhEJGVpb,pZcSXRWtdFPEXbJjhLYg
41+
ziINrrviMvwtgtvRZfmsZnYSZGypPlWX,kDrkFapyGexXJZznehbH,AUIvGNkDtsABXMTlijnl,yZEfeelPzfVnyWHNjKaq
42+
ESCwUtyLMAaOxsCFOebMSRVMsKxJzHDr,AmKgqBpMiGFSbHauvkML,LyPVCuGGzYDRqmjawZBG,pdafgyAuexkDZkjBDDpv
43+
ESCwUtyLMAaOxsCFOebMSRVMsKxJzHDr,uDcDyGtusIZiCkcjRcIs,fOjqvBPKDfLQycMyFXBZ,RkdygiPpXTpoQUEVFVYP
44+
ESCwUtyLMAaOxsCFOebMSRVMsKxJzHDr,bjGknpTiidkuisOKEyZY,OIwszRpGeADwuOuFkANB,VJaXyCPQpxwjSevVLRDd
45+
ESCwUtyLMAaOxsCFOebMSRVMsKxJzHDr,LjrVWjBAOjAStGkATdYG,pSNLpqnGxLXWiDcKmddV,izAjCFGmJginmvidzyVo
46+
ESCwUtyLMAaOxsCFOebMSRVMsKxJzHDr,GZzsUryWfYzhmZlCiIMT,uZcmqeXvXJLlWhIDogaK,ctSTnkHfSWWwEqQPihKQ
47+
yYffJwtEkBDYPPAnTNpVsBZSJeszRUYY,yOxiyMdOkXcqiPbMcLmo,oaeScrVGEsrxfiTdjfjR,bWMLihIlJCPhgMLhUpKP
48+
yYffJwtEkBDYPPAnTNpVsBZSJeszRUYY,jzoeWbQhBIsIwHetmaMy,LlEYFNGRZCVkhPphJtUp,QPzjrgQEcADZHlEUESGR
49+
yYffJwtEkBDYPPAnTNpVsBZSJeszRUYY,bLhHNnDmQUKoDKymaVGf,AcDIjRADbyPENpzbvbbH,jsyrInneoXbsBmqcGcun
50+
yYffJwtEkBDYPPAnTNpVsBZSJeszRUYY,bEcvBVKmKvFEzBPPnvHB,fdYhSMYhbORMcZVGtIeh,YCoLiVVFiPCrCAkxopJa
51+
yYffJwtEkBDYPPAnTNpVsBZSJeszRUYY,dNabuOqDVcQeiwOpURlR,RWXUkaNSlUjLihFGtAQC,cQUqJnysSNMPWJLNlIZR
52+
ozvENhPXRdEQInqYZOKUJWMvmrungjJy,tzfLzkVgZkBHUrpiYpsA,dkNDQHxviZCGoDYWbPAd,QlaozYoMAxYnynJBSmiB
53+
ozvENhPXRdEQInqYZOKUJWMvmrungjJy,vgkjdbqcFTXKDbVLWaWQ,btKPvNowtweGisLHsLZx,obUgNRsqUshNhjINaZwh
54+
ozvENhPXRdEQInqYZOKUJWMvmrungjJy,QOwRVMWEQdTzMQRDhXbL,hgeKGyDKRNJFJMlbSrTq,xvBVIRkjvgxWZFfvztRt
55+
ozvENhPXRdEQInqYZOKUJWMvmrungjJy,IPaNJmRoUpZIDkevBTmC,kMAoNjsFlzYjrECSlqBL,qJBBECuEiunWozwfMlsy
56+
ozvENhPXRdEQInqYZOKUJWMvmrungjJy,UGvIcmEDIidSNNRuwgID,ONaWeuCefBBZtrSIGhEb,NCiPLNEvuoAkxVvDYicA
57+
nGduYbbuVFeTqlPGZpEUUiQtsCUpMNYd,DsuIDaXLKSNuPeROFWgx,tdFCDWkJvbuLNagDMmQT,fhjkRMjZsVGcCrfCspee
58+
nGduYbbuVFeTqlPGZpEUUiQtsCUpMNYd,dbWoQThkJUKEtNdYCfAg,izVfoXsNoVfYyvkTrsel,TyhZXnQWwmpjLCDIXAgr
59+
nGduYbbuVFeTqlPGZpEUUiQtsCUpMNYd,MiPvWkixQDavFHhgvmJc,awZZnOAMrDippEvJwZhD,JsywkpnBubhrxcLApxBH
60+
nGduYbbuVFeTqlPGZpEUUiQtsCUpMNYd,pZRcLcxczVaWDVMkJQQm,rmCRDkUhAOIegvqJwDMz,mkBXPJVuecelgvQpoVgj
61+
nGduYbbuVFeTqlPGZpEUUiQtsCUpMNYd,RRVtuLELPHvCXnwawATr,dnWNsNJCzcwWvEDMKgju,TjIPkRIjsBQqfudqPVmQ
62+
nDSbhUKvwuIZAEGEKoxVsZvLlbLlcLeJ,oAVKgHjAiOaFLYQCRcve,GkRRZBCgjHaqkdgvKhJh,uTVKQplxNVMRAZkRzRYU
63+
nDSbhUKvwuIZAEGEKoxVsZvLlbLlcLeJ,attjArxVERRYLUSzeeMl,ChAEusvPMGahClUyBvkT,mtWcmqqTIuSFWjBvJvaX
64+
nDSbhUKvwuIZAEGEKoxVsZvLlbLlcLeJ,bxObNEnBpbMxXoGObALP,OLeDInfGqKfSWhSMecxJ,IDasXQKaieNiYeBqgIis
65+
nDSbhUKvwuIZAEGEKoxVsZvLlbLlcLeJ,ZGLqOOcGuaQahiaiDvjN,zVOAjwagxKpzKdMZawEV,MspRzTuVRiLyIOyDErrp
66+
nDSbhUKvwuIZAEGEKoxVsZvLlbLlcLeJ,ataTidbxdbSrHzLAoXKy,TlMdEZisZEHfToAdvJwH,CXqcpAMSMhIGBATbkHAm
67+
rBjXmPyocriEdkwtgSQDybJODnBIebiG,ejoKBLFvcmxzbXlqrmQj,FraHabVpNKTbCTbmuEHC,xPKltVzrZNXjnRTjOaqE
68+
rBjXmPyocriEdkwtgSQDybJODnBIebiG,ivKruDCdjtJAnPfcMbVv,ErTSzMXNTIdfrUbMTYBQ,VtLhaXnwmNUzjwNzIrJc
69+
rBjXmPyocriEdkwtgSQDybJODnBIebiG,ewdYSAkfIoOvVIUigJkL,QgHHuZEoiDvBFqUcyOHQ,vrUcIEjJKEaysYvDoGoO
70+
rBjXmPyocriEdkwtgSQDybJODnBIebiG,azWiZoXJdYhYZIWNdgyE,hgoCDdwIikXxJLZHMSsU,sngmYDCIaWPuXXefSyIE
71+
rBjXmPyocriEdkwtgSQDybJODnBIebiG,sBSsmBOUrXtZeUIcMyMM,FLgEzqvoiDSLiISAEedM,KZmjMfbpSGDYWrGoyOkY
72+
rOvInZmohUpmEvJxwfyYthaTwAFzelOt,qnzOJlIbwRezHlxHCtCS,FzaMwRvsHqCrcKgraobE,FnbVGGLFInAlHMkQGLKp
73+
rOvInZmohUpmEvJxwfyYthaTwAFzelOt,zsQQUBiHVQapnaagdpdg,jetgXMKkEUbsiepwWCMq,mOxHxvtxUlZeXAgRIfGa
74+
rOvInZmohUpmEvJxwfyYthaTwAFzelOt,ehSIEaFakgWUEqSVooec,dRtJsrywOCqruqUNsCcM,MEapqkwRXCIQkIsPFXAd
75+
rOvInZmohUpmEvJxwfyYthaTwAFzelOt,GNcUzIYviRSgYmjCXWAc,cNXdbYuNmoLXWisYTomi,mydXSNzWrxOsYsAhnSsG
76+
rOvInZmohUpmEvJxwfyYthaTwAFzelOt,imHZLOTQMnQnEsuyrFHA,VSNNzDYqJrswTEBvLLgN,IObizKjaVlaRfQHQBTeq
77+
mWhgAKmKQSyFFOQhEccCpWDfeuQPcmRP,LcqQCezDvfQbPguyQzic,yGsuiTelJhmWIJVicXYm,sxOdbGWqWLvPpWKPKuCl
78+
mWhgAKmKQSyFFOQhEccCpWDfeuQPcmRP,xcvOiNewRJJVBvTCFjlW,uFIUJpGaSeFEGCvAbdVW,rsZJnRSulJrZYKTCqRTn
79+
mWhgAKmKQSyFFOQhEccCpWDfeuQPcmRP,lAVTAVwJczbFlratZasx,iGUiVGKQaiwAfFwUVawH,zhPxjImqEMFfIOJIOcej
80+
mWhgAKmKQSyFFOQhEccCpWDfeuQPcmRP,RGIriepgCUCFVNCcQMkJ,WIjKxsXuiqnPqdRBFdrZ,jkvjtVCFGRSKYrxagQPl
81+
mWhgAKmKQSyFFOQhEccCpWDfeuQPcmRP,ptuFrwqfORkAclqUaKZS,LfYTvuLVBWOvXOMHskvt,KnHCFkbAyptrkorZkDNh
82+
wsAdMEGBTRIOqBajeqzrnPvujHdveNJi,OJyuYDMEiRwAwdYXyGYO,NgIPmNDhSJHeuLWfVzZf,XfvuNflLrfxsFBZepoDp
83+
wsAdMEGBTRIOqBajeqzrnPvujHdveNJi,NsHniloknBdoWBoRnqRk,PmHRGbgpJIvxlPkRaAGE,VlOdpeUWhJDVfMWOovJE
84+
wsAdMEGBTRIOqBajeqzrnPvujHdveNJi,SwfeoyVRiracqXHUzpRl,ZIqVNuTBchnzpmdNzrvw,PWmTADeKLUGvJDmDZRnU
85+
wsAdMEGBTRIOqBajeqzrnPvujHdveNJi,VTtXcOkthtiwJVJrdEvR,StkgphSFahMYheNDhhef,BPnyqMvZCdsreRuhItbN
86+
wsAdMEGBTRIOqBajeqzrnPvujHdveNJi,ttctVSzZBQjjrTfGKzTZ,TLxVXjXFrAzmenIYCgsC,jMUJbRCrVVJQPEgqZwuC
87+
bxdrcUBpFLGTaatYuHkUbIGzzLPnnfNd,OPLhtVYpsXsYmKspBHlx,OHYYIHTiCXvHUbrUOIDA,IIjcaAYWBEGMihyMXdft
88+
bxdrcUBpFLGTaatYuHkUbIGzzLPnnfNd,iYeSVhaxsOrsKQGZJPVk,EVhBIjKBxIZNwbbFXgJV,bDiZQIXtepEEStBIcbyE
89+
bxdrcUBpFLGTaatYuHkUbIGzzLPnnfNd,uimtXgMWQRzXTLpieTAM,YIjyrmwzBfoUkxgaDicV,mLFvTELaUSbOaKivuYXc
90+
bxdrcUBpFLGTaatYuHkUbIGzzLPnnfNd,hhweSdYdXAQFzhYIWfFZ,XymLxBqxLZjvyuzDcKzE,GkIOhhwcWXxevoWNzJXN
91+
bxdrcUBpFLGTaatYuHkUbIGzzLPnnfNd,gCbqtvQUNbgefThzAWaD,FHRwqsGiXrgrmLwekqwJ,qalPQOOcePCxtQvhoCgs
92+
aSPpPkWTOYYZgzxPekpdnKHEkPvUgrPW,OIvRlFBkdwdnVqyepzlB,bkUnFcNSXGBZSIiTHbKV,FRTiWXRvTAVRovDpBbiN
93+
aSPpPkWTOYYZgzxPekpdnKHEkPvUgrPW,CRvxNBkeDKckrIvjJmxF,rJcOapkQxLBeGdtDpUty,iacwPRGAYGWrLFQHTOUY
94+
aSPpPkWTOYYZgzxPekpdnKHEkPvUgrPW,BstrKKgEQvTMAsPdUNEU,hPdqcUyhcDEdFSQUYpzT,ZVrUEaEeCwAqUGKkonTT
95+
aSPpPkWTOYYZgzxPekpdnKHEkPvUgrPW,bjlErcNEynHwEptGsSnf,ACkwcFByLpziybwRyUKO,zdqYllsjMQyWnAdgUMsH
96+
aSPpPkWTOYYZgzxPekpdnKHEkPvUgrPW,sErkkBMoSmzRSQIrXlpw,kFiQCnVvoQUrXJSnPAhJ,xUzjWwtXOXvjGOstLJcm
97+
BpqHeUHKmjvelLNROGVuscHWQhvpTpYB,UAnPlFPRiMXviGleYFai,FJkdEHlUDMSvIKRBbxfD,fZXYuAqSPQrMWbSxRVTa
98+
BpqHeUHKmjvelLNROGVuscHWQhvpTpYB,eQXLamyQGGMewEcIhrtC,hhDqlVdPuhIWANzUlcga,slWsZOwztDSkDPtcpOfD
99+
BpqHeUHKmjvelLNROGVuscHWQhvpTpYB,LyUdZzYdRamohDVnfRZv,bVvUOIDTFgEkXvTOhmBz,CoEkNGEEEiBibllFbsWo
100+
BpqHeUHKmjvelLNROGVuscHWQhvpTpYB,BSKuyvXqmocYjmqPmUFe,qeyuhuxysuzXvCfvrmqY,yCswblyQLFdoaTMVTDoX
101+
BpqHeUHKmjvelLNROGVuscHWQhvpTpYB,QEqKpZFwKAjdBAYtkESC,nkTFAZSCpHMgOIAvJbOa,hARvBSgOKtlrnvVLKVQo
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
id
2+
DgpPCIDJDhsvZJvWgcZMmKwzvMoDAWNB
3+
GgsnZCEABMXooxnTPxhLjLzizdTABzbp
4+
diWtaSHoOvKRDcVYOyyDSMKhjKAGrskc
5+
MHuGJiJxBLzkpOWJvOpcwpFRsNpXivpI
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
id,label1,label2,label3
2+
DgpPCIDJDhsvZJvWgcZMmKwzvMoDAWNB,AsdeNeZDpVUaZqIZIsQX,XvFpozzbjPSKrscGNLGU,rbCwstyXiZmfFdwJeBvD
3+
DgpPCIDJDhsvZJvWgcZMmKwzvMoDAWNB,wgwdSqtRSLoedYBhCLjv,MeQdZNcyNxUdPRDsjPCX,TKldPILfNMNyTMdwUpGn
4+
DgpPCIDJDhsvZJvWgcZMmKwzvMoDAWNB,NnShrpFFmRvvQJQJOOqS,gipeJMwvBtPhRjxIcTcg,TRfnHtPcOPckwqGfootn
5+
DgpPCIDJDhsvZJvWgcZMmKwzvMoDAWNB,hdlOIhbPzRgHLzpYaWpr,LcJIzXzLcAutAitsyAjb,eeoZqVnqKEhsKUQgvWAu
6+
DgpPCIDJDhsvZJvWgcZMmKwzvMoDAWNB,MobXayBPNiyXviSoqDnJ,TJgSkkQQWmYMTmPqdFJZ,sOsAugFHEnKagQylDdCE
7+
GgsnZCEABMXooxnTPxhLjLzizdTABzbp,wVQLNaXaMMrzSeXvtgSh,egvNnmESTrHgnnRAhOBd,HjmnWEViWuSNtSZnUePk
8+
GgsnZCEABMXooxnTPxhLjLzizdTABzbp,RhQgZAKkGEOqQxCbeLpW,KIFSFvbWLbgiRHwPwPJp,OdTDaVNQOjpVPbSZazkY
9+
GgsnZCEABMXooxnTPxhLjLzizdTABzbp,ycGknzsoEWZgNpNWvhdq,ZhmDvHMaMOiAnCfnliSD,NjVLgxfIaKVXEORgBzGR
10+
GgsnZCEABMXooxnTPxhLjLzizdTABzbp,qIrxKSDZlRNDnXRFQVtE,liFVYzLGLANqbidQWnpq,GAejhHMnnLqttVYTCXIV
11+
GgsnZCEABMXooxnTPxhLjLzizdTABzbp,XvkTaFQAdYicKQnNYpSQ,VdJbYiLZOAFOGqAZkVWa,DxTtRvYiLECSIUlwcgRq
12+
diWtaSHoOvKRDcVYOyyDSMKhjKAGrskc,akOrTABHWsJAcIDFfLyt,VnAOfYcexbNvoSYZelna,eLNYhGQHxHsVxzUFnOZL
13+
diWtaSHoOvKRDcVYOyyDSMKhjKAGrskc,QykpjWtuTmidehgFGYHK,SGJtDfGgCYBmABxiLYgm,uSqhTvARTIrHLKKQObki
14+
diWtaSHoOvKRDcVYOyyDSMKhjKAGrskc,MeQxeajMcXXYujhwfouy,IIihvbqvpxqGbtqXouxk,WuPALpwEvAXtllmtZeCD
15+
diWtaSHoOvKRDcVYOyyDSMKhjKAGrskc,ICOgVnJLukHuYLJhjbQA,pCfbJiymRbEnBKSDMeJT,bwtmxOqEyLuBlYDXVZLH
16+
diWtaSHoOvKRDcVYOyyDSMKhjKAGrskc,DFJjVZEpKKHhfSPZxygi,wOFyPWYXvgiCYuggtpvi,mUlHbfXqEHLgwPZbMSDd
17+
MHuGJiJxBLzkpOWJvOpcwpFRsNpXivpI,zWbknVuPGeQRijmKKdMm,vIguycrjUwDQwcZmQQZL,NixWQRJwrxASQaqjWrIv
18+
MHuGJiJxBLzkpOWJvOpcwpFRsNpXivpI,CwRLyAHEldGtcWiePDtZ,cPDAimstqfWkuTpLJzJD,zrqvwUbNeiNnAaJwEwmv
19+
MHuGJiJxBLzkpOWJvOpcwpFRsNpXivpI,VoSyUgbaEFXpibajoUoF,LbtKKbhPgiPUXjpAMItt,DquPEHAZheMvVqqFqTis
20+
MHuGJiJxBLzkpOWJvOpcwpFRsNpXivpI,RTgGhQRxrapUpftvNClx,CjPcvlxNslNjCSwHwwqX,bMGJgiYZXLzQVcPHWjse
21+
MHuGJiJxBLzkpOWJvOpcwpFRsNpXivpI,ivYmdcIsvaDGehANaQzn,jXzYidONnELDKwsSwiuq,ESKjXZDMpmOcRsZIBAhY
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
{
2+
"dk_pir_receiver_config": {
3+
"threads": 1,
4+
"curve_type": "CURVE_FOURQ",
5+
"query_file": "/temp/duplicate_key_query.csv",
6+
"params_file": "/temp/100-1-300.json",
7+
"tmp_folder": "/temp/tmp/",
8+
"result_file": "/temp/tmp/result.csv",
9+
"key": "id",
10+
"labels": [
11+
"label1",
12+
"label2",
13+
"label3"
14+
]
15+
},
16+
"link_config": {
17+
"parties": [
18+
{
19+
"id": "sender",
20+
"host": "127.0.0.1:5300"
21+
},
22+
{
23+
"id": "receiver",
24+
"host": "127.0.0.1:5400"
25+
}
26+
]
27+
},
28+
"self_link_party": "receiver"
29+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
{
2+
"dk_pir_sender_config": {
3+
"mode": "MODE_OFFLINE",
4+
"curve_type": "CURVE_FOURQ",
5+
"source_file": "/temp/duplicate_key_db.csv",
6+
"params_file": "/temp/100-1-300.json",
7+
"tmp_folder": "/temp/tmp/",
8+
"value_sdb_out_file": "/temp/tmp/value_sdb_out.db",
9+
"count_sdb_out_file": "/temp/tmp/count_sdb_out.db",
10+
"secret_key_file": "/temp/tmp/phe_secret_key.key",
11+
"key": "id",
12+
"labels": [
13+
"label1",
14+
"label2",
15+
"label3"
16+
]
17+
}
18+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
{
2+
"dk_pir_sender_config": {
3+
"mode": "MODE_ONLINE",
4+
"threads": 1,
5+
"curve_type": "CURVE_FOURQ",
6+
"tmp_folder": "/temp/tmp/",
7+
"value_sdb_out_file": "/temp/tmp/value_sdb_out.db",
8+
"count_sdb_out_file": "/temp/tmp/count_sdb_out.db",
9+
"secret_key_file": "/temp/tmp/phe_secret_key.key",
10+
"result_file": "/temp/tmp/row_count.csv"
11+
},
12+
"link_config": {
13+
"parties": [
14+
{
15+
"id": "sender",
16+
"host": "127.0.0.1:5300"
17+
},
18+
{
19+
"id": "receiver",
20+
"host": "127.0.0.1:5400"
21+
}
22+
]
23+
},
24+
"self_link_party": "sender"
25+
}

psi/algorithm/dkpir/BUILD.bazel

Lines changed: 167 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,167 @@
1+
# Copyright 2025
2+
#
3+
# Licensed under the Apache License, Version 2.0 (the "License");
4+
# you may not use this file except in compliance with the License.
5+
# You may obtain a copy of the License at
6+
#
7+
# http://www.apache.org/licenses/LICENSE-2.0
8+
#
9+
# Unless required by applicable law or agreed to in writing, software
10+
# distributed under the License is distributed on an "AS IS" BASIS,
11+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
# See the License for the specific language governing permissions and
13+
# limitations under the License.
14+
15+
load("@rules_proto//proto:defs.bzl", "proto_library")
16+
load("//bazel:psi.bzl", "psi_cc_binary", "psi_cc_library", "psi_cc_test")
17+
18+
package(default_visibility = ["//visibility:public"])
19+
20+
psi_cc_library(
21+
name = "entry",
22+
srcs = ["entry.cc"],
23+
hdrs = ["entry.h"],
24+
deps = [
25+
":common",
26+
":receiver",
27+
":sender",
28+
"//psi/utils:random_str",
29+
"//psi/wrapper/apsi/cli:common_utils",
30+
],
31+
)
32+
33+
psi_cc_library(
34+
name = "common",
35+
srcs = ["common.cc"],
36+
hdrs = ["common.h"],
37+
deps = [
38+
":secret_key_cc_proto",
39+
"//psi/proto:psi_cc_proto",
40+
"//psi/wrapper/apsi:yacl_channel",
41+
"//psi/wrapper/apsi/cli:common_utils",
42+
"//psi/wrapper/apsi/utils:common",
43+
"//psi/wrapper/apsi/utils:sender_db",
44+
"@heu//heu/library/algorithms/elgamal",
45+
"@yacl//yacl/crypto/rand",
46+
"@yacl//yacl/math/mpint",
47+
],
48+
)
49+
50+
psi_cc_library(
51+
name = "query",
52+
hdrs = ["query.h"],
53+
deps = [
54+
"@apsi",
55+
],
56+
)
57+
58+
psi_cc_library(
59+
name = "oprf_receiver",
60+
srcs = ["oprf_receiver.cc"],
61+
hdrs = ["oprf_receiver.h"],
62+
deps = [
63+
"@apsi",
64+
"@seal",
65+
"@yacl//yacl/base:exception",
66+
],
67+
)
68+
69+
proto_library(
70+
name = "secret_key_proto",
71+
srcs = ["secret_key.proto"],
72+
)
73+
74+
cc_proto_library(
75+
name = "secret_key_cc_proto",
76+
deps = [":secret_key_proto"],
77+
)
78+
79+
psi_cc_library(
80+
name = "sender_cnt_db",
81+
srcs = ["sender_cnt_db.cc"],
82+
hdrs = ["sender_cnt_db.h"],
83+
deps = [
84+
":common",
85+
":encryptor",
86+
"//psi/proto:psi_cc_proto",
87+
"//psi/wrapper/apsi/utils:common",
88+
"//psi/wrapper/apsi/utils:sender_db",
89+
"@heu//heu/library/algorithms/elgamal",
90+
"@yacl//yacl/crypto/rand",
91+
"@yacl//yacl/utils:parallel",
92+
],
93+
)
94+
95+
psi_cc_library(
96+
name = "encryptor",
97+
hdrs = ["encryptor.h"],
98+
deps = [
99+
"@heu//heu/library/algorithms/elgamal",
100+
],
101+
)
102+
103+
psi_cc_library(
104+
name = "sender",
105+
srcs = ["sender.cc"],
106+
hdrs = ["sender.h"],
107+
deps = [
108+
":common",
109+
":encryptor",
110+
":query",
111+
":sender_cnt_db",
112+
"//psi/proto:psi_cc_proto",
113+
"//psi/utils:csv_converter",
114+
"//psi/wrapper/apsi:sender",
115+
"//psi/wrapper/apsi:yacl_channel",
116+
"//psi/wrapper/apsi/utils:common",
117+
"//psi/wrapper/apsi/utils:sender_db",
118+
"@heu//heu/library/algorithms/elgamal",
119+
"@yacl//yacl/crypto/rand",
120+
"@yacl//yacl/utils:parallel",
121+
],
122+
)
123+
124+
psi_cc_library(
125+
name = "receiver",
126+
srcs = ["receiver.cc"],
127+
hdrs = ["receiver.h"],
128+
deps = [
129+
":common",
130+
":oprf_receiver",
131+
"//psi/proto:psi_cc_proto",
132+
"//psi/utils:csv_converter",
133+
"//psi/wrapper/apsi:receiver",
134+
"//psi/wrapper/apsi:yacl_channel",
135+
"//psi/wrapper/apsi/utils:sender_db",
136+
"@heu//heu/library/algorithms/elgamal",
137+
],
138+
)
139+
140+
psi_cc_test(
141+
name = "dk_pir_test",
142+
srcs = ["dk_pir_test.cc"],
143+
data = [
144+
"//examples/pir/apsi/data:all_files",
145+
"//examples/pir/apsi/parameters:all_files",
146+
],
147+
flaky = True, # cuckoo hash stuff
148+
deps = [
149+
":entry",
150+
"//psi/utils:random_str",
151+
"@yacl//yacl/link",
152+
],
153+
)
154+
155+
psi_cc_binary(
156+
name = "dk_pir_benchmark",
157+
srcs = ["dk_pir_benchmark.cc"],
158+
data = [
159+
"//examples/pir/apsi/parameters:all_files",
160+
],
161+
deps = ["@com_github_google_benchmark//:benchmark_main"] + [
162+
":entry",
163+
"//psi/proto:psi_cc_proto",
164+
"//psi/utils:random_str",
165+
"@yacl//yacl/link",
166+
],
167+
)

0 commit comments

Comments
 (0)