From 8c5b6dbac9f1df053f8f56ecdea2060870b04aa3 Mon Sep 17 00:00:00 2001 From: jude Date: Mon, 10 Apr 2023 11:22:51 +0100 Subject: [PATCH] Update diss to match --- whitepaper/Dissertation.pdf | Bin 380842 -> 381032 bytes whitepaper/Dissertation.tex | 8 +++++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/whitepaper/Dissertation.pdf b/whitepaper/Dissertation.pdf index aeab9e02dd91a8dcd3afae4673b62f008e228f70..96d8e19693341e768a482a6a57ca2fce91044371 100644 GIT binary patch delta 5496 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 delta 5303 zcmV;o6iDmnpcks27qH=z1T#4?GLx|ZD1Y5sTaV+$m42UJLF6TBV8qnDio3|edJzW+ z0>l%~=3(PJa43#i2_>~9wa3n{-|y6gtfDCOxE*5w12ZG?@Kl}qt;k{3wqn)q-+b}@ z&2PSxtm3?Gv=-I-kCn!?wxY6)s%>Mc_nYc(D=r@X{{D||SX?&${oVUF92eN95`SFO zx^a~?ycSkf-TuwD6%c=4dF(f=mW|WZr;5P%!)p%8G6J$Y!Dx{qa#n%+B zISIR!JP!qITv-Z#r6TO~ScsJ=^ndH>&AXuZXudT!wG$9P)ttE4!z6eT|K``-zA7y{ zZPDo3TF7g)t+{rz%YvgNw1njy?W@!ALDFl(Kiv`i4Axl^Mda>!`H37ETB0i9L{3hSJNXMZI3u#w~3 z!w4vyXmqw1Ak7+QGZHyy;&6oK3}(P-aUhXXD0CP6ER*e?pK*;WqxnzrGik6`H81&D zLM#02uMbYZ!FJy;sUFsR)j#mnmAlPXmhQGrGTe1Igl9#6dG!|(04dcne(i}j(X6VK zQvya4775j9?GxbwcnDyl7=I<85lk>^tkoW-m{xWM(?)<+7nVmbBv#f*mv)`NMyf_u z8707w?47AHrbbwoOE5wQ51p@HAhWI45XD! zt+;w+ic}oY2EMG|wKJpVHcgQsBUVK6j_aNDH(zol3QSQq#$s=eBYz?e=LL?gr5tho zH|+x@*WTHHLRWBSDPxp;!^*zT_Q@>mY0m3mgLp7$<=aLVr0!3#B^j_S6df# zvp+t-(N>!!HiW5_5P!)aanmNZhp8zCXOzWNMJ!#U%uvx&Cr4dQP_U-cHB(FpUjR*0 zbD@;Vz=ID2zp!-mCFJ1t400m*f2#gg{oSK)z|kM^_aD$u-EaXFp~`5cD9!+~TEach!r%Kz|wK4yy%h>5!CP8RICH zC=4i12AiO?-U#x9max2?ySbg`ShG?T*&VqJhW@t~Bh*977$+?=Nu2@QovP6idU6@PZU5@VQygUCy|S<+*yP9?#>*kXCY+~q4CdJ?2Y{mS}8tqqzQkkz$7 z3v{D}k7xOfuA=D1%u5wu9=$V$v*p2qe%ylzMhh&c&JAX^l6Z~`X^o0FONYv6{QlZ_X zf^uK!?gAE~(4huGG`AA9M@l%})a_CufNG1_jDGc73Izwx(QL63L4~*OGd;hVdtpge zg^seo)O^WbRZUAW#Kne&BPy9KHhi(0;V*SFE+>1{&6Fyh)wpQs%+Nnml@n;-1gEpF zH8-MWMt_FB2rX8lq*WPs2w)8EROm-A!Hi)d?!X($=`)~I#`tL_hg;0soTMDC;Emn$IWrSSQxGuHwynlV352@`ZcU@ZLJ-R$TCTEbek_#ErHqbG(les5+w=uaT~TC1>4*%?gm&*=;%>|cV( zF@M}kYNZAGWr2qKm7ReGGq5;@Xhx@GH(CRam5{u_|Fzs3WIgBd*@QsUnU^|(<$j>K z>IY;|zVDuGG?|}XwE}R)<|nlRWtA_qHFNxEw#;fjSD9DngN)|nXUM*mJMF^)b8DXnt|Nhg>;0)L&L7E^~}I&L@tp)lLO}nwaNKz{XE)jw zbM`k(@Ea-3pka+P+ir;{(7BU2)!T{46jXou39Gw%!kT<3bEQ08MSsoQ_1%xGQ!G>& z&fSl4_ILRX*#?1p=n4obP)dDQP=7aQH}q|&!q7zrPGFQ#(FI5X(b-V8v)j)1jaOLf zh0WFrWW(|iY-)jNfZEe(OABcv{2>xfx1Cqx9BE;%WvY)$dil6~AP$#Bfg*&k#MI8Q zaKhpNh)-^q)FTF+*r`THKB90TYvBZ+a3;b-p8B#E(o?gZagew0h9)HCQ-6I9#0&9F-kSb~r2;m@J)wRQTyW1W5Bv2-+8GoQZvdk7>yV=IMD*Ek#Av-}q& zKe2i`#X;(0xc_)O(FI>!9>Z%{fAjG;495rL%1^t)HXuG8_cUt_Y3SM>pU>l#ABKJ( zZo2jmE{KZhWdmpW64ENZh}LFDYdSnXJH2NOhL(&~Zw7(L*A%KH<96;dt7&!`pCk z-W|IBeqN&23a(skm;)@$O9d({;+>SErlCN6xcX?Mf<1}Qp#HE+0sj7@YJ7=LkKnG|F_gHn3X^M&7b81)rDq@*uF~G)vTgA0u)!tRvpf3mS8Vl(4#w%>Iek?ZUi_Yuh)iZO!kM{C*~G_z zPRxg!=mcRdnAVy<59_sSNdGcj^_nm?6!YcHiW{+ zjfpHBmG(~vzCQQ|jR{Lz8$Te9M-hv1V;s^G%6|=8`VT?ube@xZXK6>H>2t({8`PEp zO86*#N-vW(;n~vw2ls-YxuLhXV@t%EvL_PGp-2`zk&xG+O*7A97-b|hwcVXB{plQT z+wgPfKLx}-Rtir)JR1oA5O$J26NY^dk3P;L|6{aAiV^RU*ebi2U&nc^BdD*RZ5rr? z{(rEIquTC}xSaWzu$Uo4^u@#Ru>LT_WJLS@GY*O|!?q~_5+EwVLV&KPx`<-DnKbNX z8iw{8Qz%#!l1!fu`*28`;`uoskI5;^W@;4+T4t!X0n67C!hkzR#fEo_al6>G5oW~0 zisL?9XUZH#Eh@y|(EAoM3dwDzNQrpkDt|~gRtl(oOD1nG2XK5-Ge7fmvM`8-%(J6x%}KeZ;lhQBINStJ=MWjCZn&0{2(!B@D)>ToZvB(U(RnM zH-}B;*h#Leg3^S?j0w=VUc09n?ni|}hNl~8dK6kSI%sj_s^jT?Ux{H6!(OrE z+ZPGZdwM=o@!Qb|E;9l{8zW>kFz_a-gsslcTQqoK@*(gcfP*#xIG%Rf-68Y>3_VGR zhA{u&;(fv^^UAo%Av`V89rIocXn#z1>^j}CJlz5Fa-63g-q5#w@gOUU_ad>+8?0ZS zCurz_7w24KD{kq3Uqr3`^}(@lobUZpu}FX}^20N_C%w{d8-C6^YThI0>1o(?u>=z! ztwDk5F~?B*%IxZQ&)u-w^le0Hhb?SydE7_B$M74xyzeM*|2gK(ETwRbs((bI#eRI* zfezpja*Oj_bC&61B13+BptHPiP=Q!~9@<=W*wGN zoAwgx_R@by{6B~)XH1hJSrdaMq=zP?0f#1}0*5A~1BWK01h*!n1+ydwFgYqDVxW3Ov>%!FnT-6t#={0S>2dxl|l@lGDtNOKQ+ESPHXw_((DpA1p zqpd^JaTRRUX$=}TN|dNWX!U5is(+Hq_5B7kqLHXThS3_(6ebndQM8R{L^4rfj-WN6 zDa0!3<7k`F$U>rqIDw|RQhH8;Q{Xf>YtEIcg%r*@PzzKC6JQR^fN^tn#qm^kQy>%} z9j%Iubmn=|qaK_!S5mFzm(j3-a#YHXsci4f-T7G$=+Ho41{y46&DC$!1Ap2yD2-|+ zIy5L-YrtxtfUN@MEV>;~0zq%6FH6j|H|X^ALZD#--56-0P;RcfNV};yY003Lq!EJ} zk@gG9G%53)Kvhh?1@)U&R+p)TYRwJwYEfD(sMR*HKqK$=0Xo^Mb}6%nU8v&FZhvm7Q+LyiI(S2cxew5sfzAtE<{tk}iz+yDcjz+LkUjx< zKvh=^VsU+OS5Fz&z8z>I53b2tuuR2yS&NqGxGihRGGmuyEnDWPHr>)$^6CAU zygPc3nq|v=la;aT$Y-*$mc8(#tejK z$urGyk7pl?c>d{#7oUr`@KVIfA4Ob@nAEE_ujAUyTXiJ$yo9w;ry!7{SWUQKJ=GA&;=g~G%z^| JB_%~qMhXx{M<@UQ diff --git a/whitepaper/Dissertation.tex b/whitepaper/Dissertation.tex index ff30086..3b3c271 100644 --- a/whitepaper/Dissertation.tex +++ b/whitepaper/Dissertation.tex @@ -410,12 +410,14 @@ A proof for the following homologous problem can be trivially constructed: given \subsection{Implementation details} -Proofs of zero use messages labelled as \texttt{"PROOF"} to resolve, and resolve between two parties. The proof is initialised by the prover as part of the game protocol, who sends an initial message containing the fields \texttt{conjecture: int} and \texttt{a: str} (where \texttt{a} is the serialisation of a \texttt{BigInt} representing \texttt{a} and \texttt{conjecture} is the proposed plaintext). +Proofs of zero use messages labelled as \texttt{"PROOF"} to resolve, and resolve between two parties. The proof is initiated by the verifier as part of the game protocol, who sends a request containing the region to prove. Initiating proofs on the verifier side has benefits to synchronisation, and helps to reduce race conditions, as the proof is only requested after the verifier has updated their state. -The prover then registers a new event listener to respond to the verifier's challenge in a non-blocking way when received. +The prover responds with the fields \texttt{conjecture: int} and \texttt{a: str} (where \texttt{a} is the serialisation of a \texttt{BigInt} representing \texttt{a} and \texttt{conjecture} is the proposed plaintext). + +The prover then waits on an event listener to respond to the verifier's challenge in a non-blocking way when received. The verifier receives the message above, and responds with a random challenge selected by generating a cryptographically secure pseudorandom number of 2048 bits, and then dropping the LSB. Using 2047 bits guarantees that the challenge is smaller than $p$ or $q$, as is suggested in the original paper. %todo why? -The verifier then registers a new event listener to receive the prover's proof. +The verifier then waits on an event listener to receive the prover's proof. Verifying the proof is a simple application of extended Euclidean algorithm to check coprimality, and a modular exponentiation and reduction to check the final equivalence. The ciphertext on the verifier's instance is then tagged with the proven plaintext (should the proof succeed). This tag is removed in the case that the ciphertext is updated.