You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This document describes the procedure for replicating the analysis for the Marvin attack. This analysis is best done on a container for reproducibility.
3
+
4
+
**TL;DR**:
5
+
```bash
6
+
# Build the image
7
+
docker build -t marvin:latest .
8
+
9
+
# Create the output directory and allow container to write to it
For more help on the options pass in the `-h` flag in the `docker run` command:
28
+
29
+
```
30
+
docker run ... marvin:latest -h
31
+
```
32
+
33
+
There are two main parameters of the analysis: RSA key size and the number of repetitions during ciphertext generation.
34
+
35
+
RSA key size is specified through `-s <1024|2048|4096>`. The number of repetition is specified through `-n <num>`. A larger repetition number will increase the confidence of the analysis, but will make the analysis take longer. The default key size is 2048 and the default repetition count is 100,000.
36
+
37
+
```bash
38
+
# Run analysis for RSA 4096 with 1 million repetition
39
+
docker run -d --rm \
40
+
--name marvin \
41
+
marvin:latest -s 4096 -n 1000000
42
+
```
43
+
44
+
## Extracting keys, ciphertexts, and analysis results (WIP)
45
+
After the analysis is done, the generate keys, ciphertexts, and the analysis outputs are all copied into the directory `/home/rustcrypto/marvin-toolkit/outputs`. To extract and preserve these artifacts, mount a volume into this directory, such as using a bind mount:
The test harness is compiled at container run-time, so a custom `Cargo.toml` can be passed into the container at runtime to compile the test harness using custom versions of `RustCrypto/RSA` and/or `RustCrypto/crypto-bigint`:
0 commit comments