Implementation of Flexway O-Sort: Enclave-Friendly and Optimal Oblivious Sorting
Authors/Creators
Description
Oblivious algorithms are being deployed at large scale in real world to enable privacy-preserving applications such as Signal's private contact discovery. Oblivious sorting is a fundamental building block in the design of oblivious algorithms for numerous computation tasks. Unfortunately, there is still a theory-practice gap for oblivious sort. The commonly implemented bitonic sorting algorithm is not asymptotically optimal, whereas known asymptotically optimal algorithms suffer from large constants.
We implement a new oblivious sorting algorithm called flexway o-sort, which is asymptotically optimal, concretely efficient, and suitable for implementation in hardware enclaves such as Intel SGX. For moderately large inputs of 12 GB, our flexway o-sort algorithm outperforms known oblivious sorting algorithms by 1.32× to 28.8× when the data fits within the hardware enclave, and by 4.1x to 208× when the data does not fit within the hardware enclave. We also implemented various applications of oblivious sorting, including histogram, database join, and initialization of an ORAM data structure. For these applications and data sets from 8GB to 32GB, we achieve 1.44∼2.3× speedup over bitonic sort when the data fits within the enclave, and 4.9∼5.5× speedup when the data does not fit within the enclave.
Files
flexway_osort_impl.zip
Files
(334.4 kB)
| Name | Size | Download all |
|---|---|---|
|
md5:a236155718878127e14d58c2670727dc
|
334.4 kB | Preview Download |
Additional details
Software
- Repository URL
- https://github.com/odslib/oblsort
- Programming language
- C++