From 9c0fdb0cff05036972af80fdf3a9998fec28b56d Mon Sep 17 00:00:00 2001 From: Alexander Munch-Hansen Date: Tue, 10 Dec 2019 18:24:46 +0100 Subject: [PATCH] Implemented block-version of the good XOR scheme, properly. --- graph/Fixed_8-bit_block_size.pdf | Bin 15839 -> 0 bytes ...ck_size_-_simulated_1MiBs_tx,_5MiBs_rx.pdf | Bin 17196 -> 0 bytes ...ize_-_simulated_1MiBs_tx,_5MiBs_rx_log.pdf | Bin 18743 -> 0 bytes graph/Fixed_8-bit_block_size_log.pdf | Bin 16751 -> 0 bytes .../dk/au/pir/databases/ListDatabase.java | 26 ++++++ .../java/dk/au/pir/profilers/Profiler.java | 7 ++ .../au/pir/protocols/xor/SqrtXORClient.java | 42 ++++++++++ .../au/pir/protocols/xor/SqrtXORServer.java | 24 ++++++ pres/pres.tex | 78 +++++++++++------- 9 files changed, 145 insertions(+), 32 deletions(-) delete mode 100644 graph/Fixed_8-bit_block_size.pdf delete mode 100644 graph/Fixed_8-bit_block_size_-_simulated_1MiBs_tx,_5MiBs_rx.pdf delete mode 100644 graph/Fixed_8-bit_block_size_-_simulated_1MiBs_tx,_5MiBs_rx_log.pdf delete mode 100644 graph/Fixed_8-bit_block_size_log.pdf create mode 100644 pir/src/main/java/dk/au/pir/databases/ListDatabase.java diff --git a/graph/Fixed_8-bit_block_size.pdf b/graph/Fixed_8-bit_block_size.pdf deleted file mode 100644 index ac9b2a981167ca3e99d757fdb4004b041dea5f43..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15839 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 Putz0f{QN39s<8h9K((g| diff --git a/graph/Fixed_8-bit_block_size_-_simulated_1MiBs_tx,_5MiBs_rx.pdf b/graph/Fixed_8-bit_block_size_-_simulated_1MiBs_tx,_5MiBs_rx.pdf deleted file mode 100644 index 33ec6e943b8ca76359e8a48d3fbdd254c076492d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17196 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 bm}LLjW;b>7*c?6u1c5MN931lMCt?2wNoZms diff --git a/graph/Fixed_8-bit_block_size_log.pdf b/graph/Fixed_8-bit_block_size_log.pdf deleted file mode 100644 index 069fedbab1823e1cba92c0b6fbeef8a6b8334b80..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16751 zcmb_^2RxST7ce0_S=lQ+R<>t9JY)w*yb2)2)&=|` zY)qi;;p*)MhnA^g2uG;e`Z!qI8mI%*;FpmH(Z$n^=wa((?f-k_8~p(ygto1X15w%4 z56lZ8!{U*W(r^qGCy9sf=t0B0esj&h*3;G7!y2#=;?uuuggE;L4V^MSS^mH~l;XK=LYsWl|=hDYd z@oSIG8*{7T%cMJsau}VLR-+@kax!F>_OlHqmucn+8_#-PVMsk1nZt0Yr5Bbe5=343 zS?{XQspK1B=g*Bib+64rzwu@(uJ;t0pvJTExvDH~FssIDH(+mn$Ns`90@u-@(XE4MQ~f@8#?JO5-k z6Zfke$L(=5@)0zPv0{3+Qcd6Y(nQBswB#^8+HO^?o&{9*2MO=MJO#GXWnp4_| zr%{~m$?50Ax!F!OMt(@(u!z4GzT#Hmw?ABM;ML&@zesMD#o${;m2;$h^+6QFZ4K?7 zVZQwCJg+DSlDP%fs5MVMB*?!!@blh^_NC5>6}{7a7wn!C(mpKmHBhCER4=_QK*~(r zWO?ZGzCu!A1F`AIbCeDw%H32XpZPjc1ws?pDfkZzO#18+X8d{o_&0Z1(ufH4W}=o= zQxdseVZ_(rB3=h>u_Kk{`7<<%hf6&xwPk8Ri$ENsxdCS^IRj(8qvw>l`cdY5`?fR- zD^6ddbNPK_nthYGut99Cpu3NFO_=a;MI(yy(#}N;+A3TZQLNNTpb~kl{X1y0KYmLj z<#_DF-TC$_#$LhUCmh0sIknh4i-i+m`3|K@MSY{nT<7xLZ)V1xuWAgp=QO)`_rjDT zNvu(}8g1!`T@0$jde4{+5$ZGGS!q{q;J(3Y!l?RWt5P((`HcYy&bmQ5?R!qcW25HH z<4G&9_Td2I(}SvZS7=oSpT$LsGDbgV&UfHwXTe;$c~mj^{X>J({68!~qvfe|M~zk| zn0`&h>CY_5Z!S~k+rQzwbu+oDltHcaXcjR;T#7|?I7zTBSAY@__Nv84&BB?2ncA3z z7B+m}k~-fZBZ`!Q@tGo4V$wYNZZ5P&7TT(2+E+NG2v+X!i`+$8qBfsi^ufpPES`NF zo#@{yd+oe|sJ$VP$H(Q{?0NaDlP}|r{m28{_lYLDzqc-yS zXOl}(G{0O^za5KOn<$$WO?^e?(=hY4-hbuALi%jQi{XzL&(FjxJ%%IieOCJocAm$W>hwWjt?_+SQRL)U)*~>LhL~%gsx2MG5bQ_J6musJ zy|PwK;Z-YAJAIj=^_)?Lk}>-iY8Kk7!V-=zMNQpa^y|OflW3M1mduQ=J->^khSw;n zyz=m~bBz2!@*a=yUe2!jhsV!@sV=l!?0v!9t#mrTO)2$r?T3YA1o`t@FG4O#uZ)GxIydQ! z1$~R$l|B3tyPHUuUT~_r?)@`g>Cz$xqQiOeyXK)Uweg2DWOmhugyB06-uvmj+>$~$ zaKp9lx1_?SU+v{ zI77?NcH)A+T+{yRjLWl2RH_zk@qP_QP39{ejeavOSD2TGUX4kQlt+taoh78TmHhp$xH5aK6fbu^Yb3feQ;i$X)jp)IXY62L(|+5#qAl;nW^^S z$55a2h}E$!~2mSXG7#jaxSp(9rt z2SY}Ev35CLu@Y+0KD=wMKl6i2`uk_9#<)pmc~*xYApCpBf*wdkYR zkG*2_6*^G$zAEw#s|@!^{D&h?X@2n3%(M-hV_6%-^IZ$lI~}IgrkeOr?S=gq|BLsc zs^1e~C(6dH`_#v-VO`%oZT~q=Ih>_leigQqVC`wc?_j~C*0KCBV1RZ|O5($8n~Pi_s)J$}}kTS~{1$=EH_=V-4}lEGVjh39seX_xR=DOz;Fki$W)^SN{n ziOvP4ZhN`W%B*uA4D-yDPiVDKH_XkMp3@e0<{k<$`quX0<29*C*Wz1g$`2@F9x|to z5BObNRCr-(R`WOW(0`r{{+Bqhgw5it!u}FxRN6M;qzT2EI?!pU(V1|P6sgioZG-sF zQ`P@Mj7Fh1VaDkZ=*Uo1bE~mm6$Q?oMlOyDTl{<(MOtKvIzH19vX80beGnZtY z&AaViN=IWG+4s^iWnKi*}VvgEHSw=Em8kInuEBv8nn*H&~v3JjK^~h>) zipL2m29^Q?tb7@Qz_KKx?mtfTT&KxBevv}#pNC%+R)X!&)l;7W~Ylz~-&1#|3@J?2XMoVp8ZGz?n zGF}E?J6qH*|8&c}Q1x!?jI5;0pz}>Z;U}1SGN!<#POTJ|Mw>d>UY5KG4y5PGkqqZH ztv5R6{3+L&Cyer_F7%8yzP%h1sM=qUOL1(ZpVpD|RMJfNe7NN6I2Nh?u4{*;`#u#s zVYuhuyZ?!Q^q0evL(-@{P(k2B}dH{9b? z4JN)qn(QG>ACQ7f3iL0&=?7Uz70fc95;8g9G~oY6&CVXP1Ce})% zSN_YYFmH$9`!-^vQ;Tg zP)~?IX1u@=(2W+7r9E=lahg1Xc=t=Bdlvpko#F7jMdgi`rw$OuW^Ps+plSQv-4K_0 z_X-5QKoOaEqBE8k_Qtg}ezkDkYhK@5e_;6Hs_?VJ`f#Wi% z+iuk}oFpQ;%-h6I=>Nx1Ng}=y3YEwMb?;OCLm3A`rS|W)??0tIBXgIBp8tRwk5tj1 zklYZrT1Cu2{*C(?kNCPC-tcS_v=xl=sBdW~(x;|S!c+fXzy1cZ_8_xfY>_^(o{P8* zpLQB5VUU{{C6^?d)QSYgEhn6Z6TN>hjNdd34v&P>mQ8VT5;PRq;W%!vX5G z!HEeg*=gUWxqZFOw^R{KJt6~F#M;KxzE)+%->H&mFKob_5%ljHWD z+}2w$uhW9t=%uiwl-}{0EwnF2?2p0v+`QLh@2Zdb;tsN1GJ5xj?IN2#%gk3^-Tdgc zM_vUT6y`M#L>^*goH86#yijd^?ZXM>FLbv#t6G#CHC|T>9enB?peyOZ*2h3^Q*X4Q zqdzzQ5OZ(t2(=tz?S$zY=$pvGvUQ)}vS zek6C{ig2-KlqU!L-Dqr-!Hktj#Tgn|S8>FscxOuQ9`vCS?ObWU&XD-5PyVT|{Z>hx zKYGe;!}y(sZfMLFJFBnZLC#Cluq^f|tgJ=seXdSl*~c{}ag2rztECglAuLS7FNXJV zb8i@;K1llwHb@Hn{JqR5kDG3tihGOo4nKqPyc#8ZTd-w>7R~<-87`PsilXtH@b>fux~RlrP*56lkYekP+(r z%WobPC7hE#G58?jomY97b>oxTPfQN~)PFfSK`9@+c9H#C{kXz|1#`Y_xVGc)60VetgxU7{+T^36X z2U&QiZ-)!%lb?tR9Ho|YWlvv~?hSf>;y59hQx^?q8~yZNwbL?P@lEp_=Of}J2cd6K z5d#+vATCCO_ zpH!zM+dnClS4ZYXe8>-?tNL2X%V?3G9VWD!vOrPx=Ih$L7?a4$-rjk&@mDxS_UW$S zu{aIBDJH?}(V;rCm7lqRt3Sw!jSTbtW*1<>&aB{8XO7dAtpcITEFn@dfg|p;4w~VYs5Rbx@fBDSIQYgfo$At z-KCPr_9lyI%;WnFwD+vi*vM;<$)8i(GkbjQn{o=d>r`=BKT&nIwwQg({CKaHFd1*o zJW{Zen?)qJsvwRaqcaur+N!)=vT2bRe7_i#-@3r#^3zJ95Y^lJ~em(s9O&bIqDGl_{>T z)DJ1i?P+3*e1&NnV2f1hk0?~k{>;IU=@<3vkjon%xBkXfOdMesTl;ah;^E9M=1-@x zDTNsNPp2%!Dc{jBVsSUhbJtobuNsJd5>|A}xq3KpjyFC+Q$z4TdWfOuT8)UA=$mJ1 zOg9ftg(YiaC&U$0lB{|!r|2&uZ(aE0UX`fs{jh5^n;?-nx==E&6+~}(AX9%@BC&dp0{v#e|{(MeL=>4EW2{+TVdpuUFXBC_^FPV3UMXNEF zHVRXPJW*nD4>E0Ewkc5cts#BP&op8$$Uwu`(m#*<;P=3PbeyGT=98*@fhy0V3wz~+ ztJwS-WbH9K4K`Kddg=3rTu;X(8 zcC&xd)^9ki3bw;bX7hhYW}WNi#udMt^TA(OBgS zj{<5ABQDo9^+;i+zRQUD9!vS93_UihiB)^@MpiEbpIA5L%Zs)&p8d=J6fmS)9>7{& zb=5e)HqwZ(X^FXVp;hUU5xcK8v-owEK1}EQQK>4KYPhqXAk(V{B&y`2Yzcjq1#y+B z3GE&{rLZK5&p9kKWWMOYVhBEU(B@Ej-J9GGbb@sM$Rhuw&Gfzt=P)XHxww(0p zy~$BDDxSt+jDDdq?>H3Ht5-|*I5dtce)Eg)J10lo>S56yIY_H8UfYXpynr5y|7`nU zrL14%<(QV zt%-`hb|I2VmM2Ak{HX5R^@F*&NM;qu%T&Lw$`s2z>MnPCT7t(A z$y;jL=56@A(-0fK`H+Y~-_`?{bXZcxC{}P3vD>|VNq4U-re0Z+?J!MSH)%CZXpLZY z_&GCWtWrw2DMOLn0Xqf_X)?a_-6UN#EYsW2veT$j8nsE}a=i^Kp-3u6FS_Qcrf+iayMS9Ug`J^8hK}Z(I&q~A!DYdY|1@yT zXpY1v^bNcwi|*iX+J>;526kJV@3u@zV>l|wrX^0r=Z8L<+PAm3 zD{|s@#qu%tPKkap4I9Z3dDVMM_15P~w8z-neP>_MzP_GqR8^<{K&D)VMY{NP_qXze zA9dp0_xPjH6wZ$cba=PvT4EeiLEll|=Gfjm z&TYfTorX>*{ARUM`{Ta-z54DT=)!%m=^C$gb!bVY;%;9d^0HeLOoJ4N)0%ho$eU63 zKk$2lcfm1Ek$Z<8Eu6GZF$k`2cS!YGvd4Rh?YYLZ&yFr2rGVoygAB{~eEyV2@k0Ms zb+^waKdV_OS9#0gA9SA+Cg1Rk^4>9goEFGV)zfyc=z^(sT3{VT7=lJS zratoHGSwTg-33UdusiK96%?xlkPdF|4HKNM9k+_1J1EX-S}oRljZ?&^(>O>LUr$Nl z;a>f)ggcA*_E`9P+jBPRj+HlhY(+jae5PiPV3|3m%N!H=I*iVaZ%K&ED)7swm5B+W zd@sjijc7^(@*!szMkH3P>fKqcrzRaZ1zq*g`&~*+vG-T-(wPVi|C1C~7%sB?q#GFR ztV~i7VEzz%tN9$ibLieHy7T-D;DZ~r<%LWG`2)tWizJ75xr571(2Z<~qmEI1YaAA% zqOje@$M)wPayxKVL;9ml0c_ad)^OAJvB{5=*46>r7JOTi8t5tN`FUC(yHFXg%$Sm;)s+%0)17oxM0cOOrd4!f^t6i&UQkpGk$h8d`5|m6 zIA(@<`Nc?DwF)-fo)EGJBU;Y2Z&(wb=ki!9<{Ry4FS4W2Je6kfhlQ3;YT+Io z^z1bEGnvlw(Hzm`uG*tClo^$bWf>d0MCy>s_#tdo1O3{2JS zkmH9~FJgODr%K@nIZlqu=@!ZL@qn*V_Uc|7p>s?zlh`6|m9@up9kXQ7u?C;E(bJtq zAJUuERPEn4be7~H2ki2MQ>)K#!HD~#flVL;~juWGz$#ZGMqYRgJXBJrE>JAyi z=gbw{bUEoAHWOf2@p+k2RM*GHU9PW(V>`Nb8gp#D_0ZNQxPX{rb`=(ENitjWT8_&Z z_w@{y!8m!DstU74*R+Tsdb+A!fM39=JDo0GqSpK#y|SUE+Wkj&)x5i$GK#O7iCaAU zSSEgBg8iRBU#Uk5pU#c$N*oNgAcoN;$kth|$ORs7Hr&IfFZhVYGV5jw_jOeorQOy! z9J`BPXAM95rcPGV%2GV0vokDIHvlif&(1{N9{1o4zh+opCN&f>Hd?}NWjlHANctq% zKbHADsy1yiw$izDMEm#sSj)(2o;LE#$B9GdGZRs?Qg1s)OwPv+;5jsN2iLwte-q1d zSv$)R^x!+ChOzlJ?=!JGjb2c=&9S&zLOrDHs-DJ5)QmT&-c@!C`mU9+eLYg+N+J<` zL(s5%zYt&X*c1CtNPoIKZNa1BPY={4b9!*GDjh*(`01c33T|J?jD9p*S6W`@ZI?Ri z(9_+1=A*p{CRwfp_fF`&_M4TwgEeJu%r4*9lM<|WOFBnG4;6gFDy$&e=L}yq`#X{<^?p7|axn&L#yL%>e4<;#IkV^S)qq94WlQ7`0`KN7_Fd$qIK+*K9!a{&8P!61lE$% z=1jgDb;^u9benKrOfU%V6X5aTZq_mSuCl|2S%&YxbP76|HJ_%fWW{C;J?eS?GJToj z%o-`?RS@YmLfL7+h(T>uJ)D822T(omio-3eKcgu)*Q?4Ayi1P|61yp(s4R&%Hl!Ky zNbq@4>y*jetkui|5;xQb_TH9&k?S+bt)PWi_#O>BdL!dUOqVCS z!Js3;>PMMOviruwNxu}Gv(2(x=<&VDiJS}q_p>z5YadRL)A%7a{kbp|>lJc9%=2rY zM;WtYK^GMZ+_e5FWuce|j{uWg%;74JyHZEbjVG8Sb(|7Bz`^k1K&5s~^W<1+O+;pf zGR2H(=!jSKop0P)rjs`#mPCoHBWJa9ab*#9H5aUHTK$$=v|=KoS{d~&1*cM%r(YZ% zqvkJG*Y=rjsWQVa@~Rem#fYce?+_Lsjn=UifDPRY-5W-@do%X#%pL-3^Eum`EODCC z_JR!o7b2S*&xA3Vu@^6@97npt4MHd5GWbi73f7<`Q$GPD((SV%ZicFp}gF>a?3 zFbcCJa=X|=3vQuR7L6ttKXAyGMUUh@{dr>+nWdz>qQob=grvIq@dN&0`}@KCR;i!( zkqYZn@%?uK435&jO^9y%z@q1X)NhMCrnOIn*q_nenTEd2HBqa5_NsHL(Y3Qa2Y1ug zme^KMg_NBpz7t=fX)!)g*Fme0pn1*ruJOGy%7)1FZPv2WDD>~QafItH6lrFIVHWUE zpT6wZ6lEa`FQZaU!c=OG#%5h$O?CKc%WEu=EZH=#aXN zxi#G4;`I_keZrm{rXf_bHk2a19ZSie_L@J>w~*h=sL`8kWg+v8UfxT*vR4w4V7EXgKupC0|chbCq%pma9|zDA|4HL?2wq@UgH%(8KZ^YvC*o+elyTEE;SF zcXTh)!DtL)%BNuAkdvAR?g%F;(9vEwbCRbZE_=5tspnu`Z7dnv(kSr;w`Jr|d)8F2 zq9{{<<+rsbEB-%!ka5?B8f_z*orcY5?B+ADggzmOOo^)JHA{f9=kQ`>PvY|0TUa;g z*(epbjD)-116_tRvGEU`#x)a*ne6v{?_YV@?ajqXU|=~s#BQWrYSGAZm(qvZZr8^` zocLLeSuzD{m{fqfpVouXd2bFJdEgT#T{}Ir7@K=n8-=0w)6UFR-Qu`C^X3Dzo%MSk z+p-s4N_`L)!LQA0aQMo*17#Sc1oDCk{epPz_K>$d{5eEpen*<`=9}tvsHc~0zYX@^ z))=5H8t2N`hP<7Io2V@>!sRY1LEn#%E&4|)Fo^gln~ql->plmc{bap3@sKJG#j330 zTIxu5DV(w|j(^r;moCi*XvPxOLafs){c};{DOQtG^wF|z_4Dt?qb5EDU&vDBaItTL-bVy&V zg|se6OkGL(*qzJul`DJxy==A1gpi{T-=GHz`cXBugPn>=jpv}hTCv-!>c_q#SjI2^aGMXOz!~qq_gupW7m&LEWo#Tg2t%kk*xA`a`4k`%!VC@qOa#cU zum;Cg92{Zq?`Ci70tcoE5n$`#3P-rQfRqO>Ur_V1_pk+ZJCH*G{&nyHbx#LBI1Ud( z*gBlD2MHrC4xlq0%%TJb_j?FcxD*oPPQVfBa48H(AAw5|;0Rril>wIqI1M(kJK*5E zNrWk!AO%Md;Rq`j!WxdSfg^0;DDV;TGpa~>jfC=5<2tWx~ zuNNEzt{@P8a0JK@34mL`ekI8KyK0~zh(it@o?Z}V07noI&y+XPMkG*3Gzu<(1sA_4 zDFPNug~33%BTyGrTTg2b2RAQQ4>&-$&PfQYP4w~rD+ehjl1L=viNSyW*1%9L;x9~S zaF>SAA)W@T`cFPEgrT>U*LnsIl*a=WvXRcSAx9Gj8!vkxILM0_K&t)w&>-g;+&ER+>^8ZJH{lCtGK}o~0Kz<-; z2rdnbH6DY95kQnE1uhEEQaCsUysm%>4$uj;L;W$}R&V_YzElAH|5t(iZpVPWP=V(7 zU2q`AL?IytNMk_(6A`50QeeN}!G6R65Q$2zuWMwc)^18ZZlbt`{`a55LX?=n3Ip z7aGJsKm%YX48n;6W7e7Sn>gsXu4xb^Ec62ju?Qj?S{n2OWnCT+x{U(E{gTegcufeiO1j16B%j0vi(|AJT(==ZAVhz;$H;GeN)q zodqHaiG;1U{hEM)C%}IfND(%40MdiaWu4bRFCd-xqpa%#q!Yi(x~}}v2}mFQED&Am zzrh@kZu~CL%JE1XkRhNI(t&LX0odtvy#Q_m|3~?)6ThDjQ-IuI>rbfuM_HHkMmyB! z-va3cBvt5X@vo8lGZ0aNuYY?F{Ddm7%o7eydfkA+fSUp0UWXaN(U9u|{fyv1^y@WK`1(g{07eAby#cd=qkrMB1{{W9FyN8a zKQ96OY=ORP^xH7HfTim*tvf{EIW~SkJ`yZ;{f9l+Pf!i^+qnX*UvF@L1Ea8BbAkgY zt=F8vCfcZ-2I{m?1MYYoC2YgN0>iuB)fK*eF$`#ed^GsPd>!fzx$*Uy2QX|KHBUHr zZw+9ub%zZUWxf5E)BlCe3ux&Ee8bPVFfc~FZ$e<({}>E1O1&IhT~wj`U13!jG!jJsF%HbAm=z}fx< z12$kQ3=M4`=*_KMgX}UTVQzfHZUB1 zE1yAF02$)V^GQK5#a0;ZZyo^mxmCVM;4=T>l{E72vC^o&X^}<)KfVR8^fvO9mj0Uu z1Tmp}k#sm)`dv(4WyJmeBL;Xt8~&;e%)42=E@hCyzn1%;A= z-1FwKXt3e_f}#Gl2WaeHx{Cs*rmg%#0b}zA4lfU)gR`y2`u`X~!^IAGD9{Lbb^}*e l$mXus4IKh(fzg5tnWq=g!)x7)p>Q}93MMG1rh5qXe*iiUK*9h3 diff --git a/pir/src/main/java/dk/au/pir/databases/ListDatabase.java b/pir/src/main/java/dk/au/pir/databases/ListDatabase.java new file mode 100644 index 0000000..72c59a4 --- /dev/null +++ b/pir/src/main/java/dk/au/pir/databases/ListDatabase.java @@ -0,0 +1,26 @@ +package dk.au.pir.databases; + +import dk.au.pir.settings.PIRSettings; + +import java.util.Iterator; + +public class ListDatabase implements Database { + + private final int[] db; + private final PIRSettings settings; + + public ListDatabase(PIRSettings settings, int[] db) { + this.db = db; + this.settings = settings; + } + + @Override + public int get(long index) { + return db[(int) index]; + } + + @Override + public Iterator iterator() { + return null; + } +} diff --git a/pir/src/main/java/dk/au/pir/profilers/Profiler.java b/pir/src/main/java/dk/au/pir/profilers/Profiler.java index 7314dc6..45491cc 100644 --- a/pir/src/main/java/dk/au/pir/profilers/Profiler.java +++ b/pir/src/main/java/dk/au/pir/profilers/Profiler.java @@ -95,6 +95,13 @@ public class Profiler { return numbers; } + public int[][] clientReceive(int[][] numbers) { + for (int[] n: numbers) { + this.clientReceive(n); + } + return numbers; + } + public FieldElement clientReceive(FieldElement element) { this.received += element.getValue().bitLength(); return element; diff --git a/pir/src/main/java/dk/au/pir/protocols/xor/SqrtXORClient.java b/pir/src/main/java/dk/au/pir/protocols/xor/SqrtXORClient.java index 88d28f2..76261c4 100644 --- a/pir/src/main/java/dk/au/pir/protocols/xor/SqrtXORClient.java +++ b/pir/src/main/java/dk/au/pir/protocols/xor/SqrtXORClient.java @@ -1,8 +1,11 @@ package dk.au.pir.protocols.xor; +import dk.au.pir.databases.Database; +import dk.au.pir.databases.ListDatabase; import dk.au.pir.profilers.Profiler; import dk.au.pir.settings.PIRSettings; +import java.util.Arrays; import java.util.Random; public class SqrtXORClient { @@ -54,5 +57,44 @@ public class SqrtXORClient { } return result; } + + public int[] receiveBlock(int index) { + /** + * PLAN: + * Divide n into sqrt(n) + * Compute which index we want find this within a block + * Send block + */ + boolean[] S1 = selectIndexes(this.sqrtSize); + boolean[] S2 = S1.clone(); + + int impBlock = (int) Math.floor(index/this.sqrtSize); + S2[index % this.sqrtSize] = !S1[index % this.sqrtSize]; // Remove the index, if it's contained in S. + + int[][] resBit1 = this.profiler.clientReceive(this.servers[0].computeBlock(this.profiler.clientSend(S1))); + int[][] resBit2 = this.profiler.clientReceive(this.servers[1].computeBlock(this.profiler.clientSend(S2))); + + int[] res = new int[this.settings.getBlocksize()]; + + for (int i = 0; i < this.settings.getBlocksize(); i++) { + res[i] = ((resBit1[impBlock][i] + resBit2[impBlock][i]) % 2); + } + + return res; + } + + public static void main(String[] args) { + PIRSettings settings = new PIRSettings(9, 2, 3); + SqrtXORServer[] servers = new SqrtXORServer[settings.getNumServers()]; + + Database database = new ListDatabase(settings, new int[] {1,0,1,0,1,0,0,0,1,1,0,1,0,1,0,0,0,1,1,0,1,0,1,0,0,0,1}); + + for (int i = 0; i < settings.getNumServers(); i++) { + servers[i] = new SqrtXORServer(database, settings); + } + SqrtXORClient client = new SqrtXORClient(settings, servers, null); + System.out.println(Arrays.toString(client.receiveBlock(1))); + + } } diff --git a/pir/src/main/java/dk/au/pir/protocols/xor/SqrtXORServer.java b/pir/src/main/java/dk/au/pir/protocols/xor/SqrtXORServer.java index cda447c..fb99776 100644 --- a/pir/src/main/java/dk/au/pir/protocols/xor/SqrtXORServer.java +++ b/pir/src/main/java/dk/au/pir/protocols/xor/SqrtXORServer.java @@ -31,4 +31,28 @@ public class SqrtXORServer { } return resList; } + + public int[][] computeBlock(boolean[] indexes) { + int[][] resList = new int[this.sqrtSize][this.settings.getBlocksize()]; + for (int i = 0; i < this.sqrtSize; i++) { + int[] tmpRes = new int[this.settings.getBlocksize()]; + for (int j = 0; j < this.sqrtSize; j++) { + try { + if (indexes[j]) { + for (int indi=0; indi < this.settings.getBlocksize(); indi++) + // We then wish to loop over j*blockSize + indi + // for j = 0; we want 0,1,2 + // for j = 1; we want 3,4,5 and so on.. + + tmpRes[indi] = (tmpRes[indi] + this.database.get(((j*this.settings.getBlocksize()) + indi) + + (this.sqrtSize * i))) % 2; + } + } catch (ArrayIndexOutOfBoundsException ignored) { + + } + } + resList[i] = tmpRes; + } + return resList; + } } diff --git a/pres/pres.tex b/pres/pres.tex index e32d817..9e076ea 100644 --- a/pres/pres.tex +++ b/pres/pres.tex @@ -45,11 +45,21 @@ \item The block size \end{itemize} \item We have benchmarked on the same parameters - \item Reached the conclusion again, that oftentimes big-O notation seldomly gives the correct, most practical, result. + \item Reached the conclusion again, that oftentimes big-O notation won't give the most practical solution. \end{itemize} \end{frame} \subsection{Protocols} + +\subsection{Blockification} +\begin{frame} + \frametitle{Turning single-bit PIR into block schemes} + \includegraphics[width=\textwidth]{graphics/blockProp.png} + \begin{itemize} + \item TLDR; Run the scheme blocksize amount of times, asking for consecutive bits is not ideal + \end{itemize} +\end{frame} + \subsubsection{Simple} \begin{frame} \frametitle{The most simple protocol} @@ -118,35 +128,11 @@ \includegraphics[width=\textwidth]{graphics/MathStuff.png} \end{frame} -\subsubsection{Interpolation based} -\begin{frame} - \frametitle{Interpoly scheme} - Won't introduce again, however, we expect it to be worse in almost all metrics: - \begin{itemize} - \item We have to send BigIntegers from client to server, as the scheme relies on large polynomials - \item We have to send either all of the random sequences or the seed from which they originate - \begin{itemize} - \item This can be seen as a balancing act. If sequences are sent, server does not have to compute, but heavy on bandwidth - \item If seed is sent, low on bandwidth but the server also has to compute the sequences - \end{itemize} - \item In general, all of the computations regarding the polynomials, are likely to slow down the response time of the servers - \end{itemize} -\end{frame} - -\subsection{Blockification} -\begin{frame} - \frametitle{Turning single-bit PIR into block schemes} - \includegraphics[width=\textwidth]{graphics/blockProp.png} - \begin{itemize} - \item TLDR; Run the scheme blocksize amount of times, asking for consecutive bits - \end{itemize} -\end{frame} - \section{Expected Results} \begin{frame} \frametitle{Overall expected results} \begin{itemize} - \item We expect the scheme which we have yet to implement, to perform the best + \item We expect the scheme before to perform the best \begin{itemize} \item The client has to sent less, so less bandwidth \item The client has to compute less @@ -154,24 +140,52 @@ \end{itemize} \item We expect the simple scheme of $2$ databases to be outperformed by the scheme where the server simply sends the entire database \begin{itemize} - \item This is due to the client still sending expected $n$ bits, but both server and client has to perform a computation - \item Client has to compute randomness - \item Server has to XOR + \item User sending data of expected size n + \item Both server and user has to do XOR computations \end{itemize} - \item We expect the Interpoly scheme to be the worst in all regards, as mentioned in previous slide + \item We expect the Interpoly scheme to be the worst in all regards \end{itemize} \end{frame} + +\begin{frame} + \frametitle{Interpoly scheme} + Won't cover again, but expected to be worse: + \begin{itemize} + \item We have to send BigIntegers from client to server + \item We have to send either all of the random sequences or the seed + \begin{itemize} + \item If sequences are sent, server does not have to compute, but heavy on bandwidth + \item If seed is sent, low on bandwidth but the server also to compute the sequences + \end{itemize} + \item In general, all of the computations regarding the polynomials, are likely to slow down the response time of the servers + \end{itemize} +\end{frame} + + + \section{Results} \begin{frame} \frametitle{Initial Results} \begin{itemize} \item Booleans we like - much faster - \item Block indices are found by division - not modulus - correct code is good code + \item Storage issues + \item Bit-vectors of length database are nice in theory \end{itemize} - \end{frame} +\begin{frame} + \includegraphics[width=0.5\textwidth]{graphics/Fixed_8-bit_block_size.pdf} + \includegraphics[width=0.5\textwidth]{graphics/Fixed_8-bit_block_size_log.pdf} +\end{frame} +\begin{frame} + \includegraphics[width=0.5\textwidth]{graphics/Fixed_8-bit_block_size_-_simulated_1MiBs_tx,_5MiBs_rx.pdf} + \includegraphics[width=0.5\textwidth]{graphics/Fixed_8-bit_block_size_-_simulated_1MiBs_tx,_5MiBs_rx_log.pdf} +\end{frame} + + + + \section{Future Work} \begin{frame} \frametitle{Future Work}