# On the Security of Offloading Post-Processing
## 3 Outsourcing Information Reconciliation
### Multiparty Computation-Based Outsourcing
Additionally, for CV-QKD, approximation approaches combined with multi-edge-type codes [PERSON] _et al._ (2018) seem promising for fast MPC implementation. Nevertheless, our experiment already showed the first results and paves the way for practical rates. \begin{table}
\begin{tabular}{l l l l l l l} \hline \hline
**Block Size** & **Bitwidth** & **Circuit Depth** & **Time** & **Data** & **Rounds** & **Bitrate@10 iter** \\  & & & **(s)** & **(MB)** & & **(bps)** \\ \hline
1000 & 4 & 9 & 0.06 & 3.0 & 65 & 1571 \\
1000 & 8 & 11 & 0.09 & 3.8 & 80 & 1116 \\
10,000 & 4 & 9 & 0.11 & 4.4 & 85 & 8932 \\
10,000 & 8 & 11 & 0.14 & 4.7 & 95 & 7054 \\
100,000 & 4 & 9 & 1.2 & 44 & 805 & 8354 \\
100,000 & 8 & 11 & 1.4 & 47 & 846 & 7117 \\ \hline \hline \end{tabular}
\end{table} 
Table 1: Performance comparison of MPC-based oblivious bit flip vector calculation as described in Algorithm 1 (step 4) for LDPC decoding. The measurements were performed in MP-SPDZ with _sharmir.sh_ for three nodes with different block sizes and a bitwidth of a secure integer. Circuit depth is then the multiplicative depth of the MPC circuit as processed by MP-SPDZ VMs, and time is the time to compute the circuit. Data represents the amount of information exchanged over the network during rounds of communication required by the VMs as reported by MP-SPDZ. Bitrate@10 iter is the estimated throughput which can be achieved based on the measurements. The values show that the kilobit per second regime is feasible even without optimizations and block-level parallelization. Finally, optimization-based decoding would also be possible as an alternative to message-passing algorithms (i.e., by leveraging linear programming (LP)). In LP decoding [37; 38], the maximum likelihood decoding problem is formulated as a linear program. Thus, it is possible to decode a symbol by solving an associated LP with conventional approaches (e.g. with a simplex algorithm where MPC versions also exist [39]). However, for the QKD use case with block sizes \(k\) in the range from \(10^{4}\) to \(10^{6}\) bits and high error rates, the formulation would lead to a relatively large simplex tableau. Very low rates can be expected for this solution approach, given the measured performance for MPC-based LP solving reported in [40]. ``` Input:\([[c]]\) being the codeword to correct as list of \(0/1\) bits \([[c_{i}]]\) stored in secure integer \(h\) representing H as adjacency list of a Tanner graph with \(h_{i}\) being a index list of ones in row \(i\) of H \(t\) is a vector containing the number of \(1\)s of each column in H \(n,k,p\) as code parameters \(iter_{max}\) iteration limit Result:\([[c]]\) the corrected codeword after updating \(iter\gets 0\) whileTruedo \(iter\leftarrowiter+1\) /* step 1: calculate sum at check nodes */ for\(row\in h\)do \([[v_{i}]]\leftarrow\sum_{i\in row}[[c_{i}]]\) \([[v_{i}]]\leftarrow[[v_{i}]]\) (\(mod\) 2) end for /* step 2: count failed checks for every code bit */ \([[f]]\leftarrow[0\ldots 0]\) for\(i\gets 1\)to\(p\)do for\(node\in h_{i}\)do \([[f_{node}]]\leftarrow[[f_{node}]]+[[v_{i}]]\)  end for /* step 3: if all checknodes are 0 then exit */ \([[f_{sum}]]\leftarrow\sum_{i\in\{1,\ldots,n\}}[[f_{i}]]\) if\(f_{sum}=0\)or\(iter>iter_{max}\)then  break while  end if /* step 4: calculate and apply bit flip vector */ \(lvl=1\) whileTruedo for\(j\gets 1\)to\(n\)do \([[b_{j}]]\leftarrow[[f_{j}]]>\lfloor(t_{j}/(lvl+1))\rfloor\)  end for \([[b_{sum}]]=\sum[[b_{i}]]\) if\(b_{sum}=0\)then\(lvl\gets lvl+1\) else \([[c]]\leftarrow[[c]]+[[b]]\)  break while  end if  end for  end for  end for

## 4 Offload Privacy Amplification

Privacy amplification (PA) is another important step in the post-processing stack (cf. Section 2.1). This also requires a public channel for communication and is typically based on application of a randomly selected hash of a universal hash family, thus achieving information-theoretical secure randomness extraction.