Details on SILENT can be found in our paper, uploaded at arXiv.
# Run SILENT
./scripts/SILENT.R <alpha> <input CSV> <output folder> <B> <Delta>
# Run the Statistical Power Analysis
./scripts/Statistical_Power_SILENT.R <input CSV> <mu> <Delta> <p> <alpha>
-
alpha
: False positive rate (recommended:0.1
).
Note: The actual false positive rate will be much lower (decaying exponentially fast in the sample size). See the paper for details. -
B
: Number of bootstrap samples (recommended:1000
).
For smalleralpha
(e.g.,0.01
), increaseB
accordingly (e.g., use10000
). -
Delta
: Minimum detectable effect size. (recommended: not too small) Represents the smallest side-channel difference you consider practically relevant.
Choose a value that is not too small; obviously depends on the application.
-
mu
: Expected side-channel size (e.g.,0.02
).
Should be chosen conservatively—avoid overestimating the leakage. -
Delta
: Minimum detectable effect size (same as above).
Used to define the detection threshold. -
p
: Desired detection rate (recommended:≥ 0.9
).
The probability of detecting a real leakage of sizemu
or larger (true positive rate).
Increase this value if stronger guarantees are required. -
alpha
: False positive rate (same as inSILENT.R
).
Before using SILENT, ensure the following prerequisites are installed:
- R Project
- R Packages: cli, glue, jsonlite, np, robcp, Qtools
To install R, follow the instructions for your operating system on the R Project website. Once installed, open an R session and run the following command to install the required packages:
install.packages(c("cli", "glue", "jsonlite", "np", "robcp", "Qtools"))
Once the prerequisites are installed, you are ready to use SILENT.
For convenience, you can use our pre-configured Docker images to run SILENT without manually setting up dependencies.
Run the following commands to build the Docker images:
# Build SILENT
docker build --target silent -f Dockerfile -t silent:silent .
# Build the Statistical Power Analysis
docker build --target power -f Dockerfile -t silent:power .
Once the images are built, you can run SILENT using Docker. Make sure to mount the current directory to access your input and output files:
# Run SILENT
docker run -it --rm -v $(pwd):/data silent:silent <alpha> <input CSV> <output folder> <B> <Delta>
# Run the Statistical Power Analysis
docker run -it --rm -v $(pwd):/data silent:power <input CSV> <mu> <Delta> <p> <alpha>
SILENT supports a single input format and automatically detects the separator (comma). Below is the supported format:
V1,V2
X,481100
Y,531296
...
A CSV file containing two columns. The first column includes labels, such as 'X' and 'Y', while the second column contains the corresponding measurements
SILENT outputs the results directly to the console and saves them as a JSON file for further analysis. The statistical power analysis tool also prints the results to the console.