|
@@ -1,6 +1,12 @@
|
|
|
# sparta-experiments dockerization
|
|
|
|
|
|
-This repository is a dockerization of the [ucsc-anonymity/sparta-experiments](https://github.com/ucsc-anonymity/sparta-experiments) repository. This dockerization can be used to reproduce the Sparta-SB datapoints in Figures 7 and 8 of the TEEMS paper.
|
|
|
+This repository is a dockerization of the [ucsc-anonymity/sparta-experiments](https://github.com/ucsc-anonymity/sparta-experiments) repository. This dockerization can be used to reproduce the Sparta-SB datapoints in Figures 7 and 8 of the TEEMS paper:
|
|
|
+
|
|
|
+Sajin Sasy, Aaron Johnson, and Ian Goldberg. [TEEMS: A Trusted Execution
|
|
|
+Environment based Metadata-protected Messaging
|
|
|
+System](https://cs.uwaterloo.ca/~iang/pubs/teems-popets25.pdf).
|
|
|
+Proceedings on Privacy Enhancing Technologies, Vol. 2025, No. 4, July
|
|
|
+2025.
|
|
|
|
|
|
This dockerization by Ian Goldberg, iang@uwaterloo.ca.
|
|
|
|
|
@@ -10,17 +16,19 @@ You will need a server with an Intel Xeon CPU that supports SGX2, and
|
|
|
SGX2 must be enabled in the BIOS. To fully reproduce the graphs in the
|
|
|
paper, you will need 72 CPU cores (not hyperthreads), but if you have
|
|
|
fewer, your experiments will just run more slowly (Figure 7) or only
|
|
|
-partially (Figure 8).
|
|
|
+partially (Figure 8). We used a machine with two 40-core Intel Xeon 8380
|
|
|
+CPUs running at 2.3 GHz to generate the figures, if you aim to compare
|
|
|
+your results to ours.
|
|
|
|
|
|
## Software requirements
|
|
|
|
|
|
The server should run Linux with kernel at least 5.11. We used Ubuntu
|
|
|
22.04.
|
|
|
|
|
|
-If SGX2 is enabled on your machine, you should see device files
|
|
|
+SGX2 must be enabled on your machine, and so you should see device files
|
|
|
`/dev/sgx/enclave` and `/dev/sgx/provision`.
|
|
|
|
|
|
-You will need docker. On Ubuntu, for example: `apt install docker.io`
|
|
|
+You will need `docker`. On Ubuntu, for example: `apt install docker.io`
|
|
|
and be sure to run all the experiments as a user with docker permissions
|
|
|
(in the `docker` group).
|
|
|
|
|
@@ -46,6 +54,9 @@ with the experiments:
|
|
|
docker stop aesmd
|
|
|
```
|
|
|
|
|
|
+You will need `python3` with `numpy` (on the _host_ machine) to run the
|
|
|
+log parser scripts.
|
|
|
+
|
|
|
## Quickstart
|
|
|
|
|
|
Once you have SGX2 and `aesmd` set up, the following will build sparta
|
|
@@ -143,7 +154,18 @@ columns:
|
|
|
- Total time to send and fetch that batch (mean and stddev over the `niters` experiment runs)
|
|
|
|
|
|
These are the values (with sending round equal to 1) plotted in Figure 7
|
|
|
-in the TEEMS paper.
|
|
|
+in the TEEMS paper. Our exact results (and what is plotted in the
|
|
|
+figure) were:
|
|
|
+
|
|
|
+```
|
|
|
+users,batches,send_mean,send_stddev,fetch_mean,fetch_stddev,tot_mean,tot_stddev
|
|
|
+32768,1,0.676,0.020,1.182,0.016,1.858,0.028
|
|
|
+65536,1,1.301,0.014,2.190,0.013,3.491,0.017
|
|
|
+131072,1,2.488,0.033,4.049,0.052,6.537,0.055
|
|
|
+262144,1,4.959,0.042,7.856,0.071,12.816,0.085
|
|
|
+524288,1,9.742,0.102,15.284,0.144,25.027,0.167
|
|
|
+1048576,1,18.448,0.340,29.074,0.367,47.522,0.595
|
|
|
+```
|
|
|
|
|
|
### The corescale experiments
|
|
|
|
|
@@ -170,4 +192,21 @@ additional column just before the timings:
|
|
|
|
|
|
- The number of cores
|
|
|
|
|
|
-These are the values plotted in Figure 8 in the TEEMS paper.
|
|
|
+These are the values plotted in Figure 8 in the TEEMS paper. Our exact
|
|
|
+results (and what is plotted in the figure) were:
|
|
|
+
|
|
|
+```
|
|
|
+users,batches,ncores,send_mean,send_stddev,fetch_mean,fetch_stddev,tot_mean,tot_stddev
|
|
|
+1048576,1,4,25.666,0.367,51.238,0.808,76.904,0.772
|
|
|
+1048576,1,6,25.803,0.396,51.315,0.767,77.117,0.927
|
|
|
+1048576,1,8,26.084,0.383,52.118,0.415,78.202,0.364
|
|
|
+1048576,1,16,18.273,0.190,28.953,0.219,47.226,0.235
|
|
|
+1048576,1,24,13.194,0.221,18.997,0.377,32.191,0.384
|
|
|
+1048576,1,32,13.434,0.404,18.312,0.189,31.747,0.518
|
|
|
+1048576,1,36,13.375,0.259,18.619,0.410,31.995,0.473
|
|
|
+1048576,1,40,13.435,0.275,18.482,0.414,31.917,0.540
|
|
|
+1048576,1,44,12.984,0.290,18.399,0.374,31.383,0.569
|
|
|
+1048576,1,48,10.382,0.401,14.264,0.322,24.646,0.471
|
|
|
+1048576,1,64,10.432,0.382,14.579,0.263,25.011,0.590
|
|
|
+1048576,1,72,10.820,0.286,15.066,0.296,25.886,0.466
|
|
|
+```
|