Skip to main content

Table 2 Big-O complexity of our (sub)protocols, implemented in the MPyC framework

From: Accurate training of the Cox proportional hazards model on vertically-partitioned data while preserving privacy

Building block

Invocations

Rounds

Pre-processing (one-time)

\(O(n^2 + np^2)\)

O(1)

Secure exponentiation

\(O(\tilde{k}n^2)\)

\(O(\tilde{k})\)

Computing \(\varvec{G}\) and \(\varvec{H}\)

\(O(n+Jp^2)\)

O(n)

Secure matrix inverse

\(O(p^3 \log p)\)

\(O(\log p)\)

Update \(\beta\)

O(p)

O(1)

Checking convergence criterion

O(p)

O(1)

Secure CPH

\(O(\tilde{k}n^2 + np^2 + p^3\log p)\)

\(O(\tilde{k} + n + \log p)\)

  1. Costs are per iteration unless stated otherwise. An invocation is the amount of data send by each party in a multiplication protocol, which also highly correlates with the number of operations that need to be performed locally by each player. The number of communication rounds is estimated for an ideal implementation—our implementation may scale worse than this depending on the efficiency of the underlying communication logic. Note that the number of distinct event times J is bounded by the number of subjects n. In our experiments, they are of the same order of magnitude