experiments in optimal adaptive timing side channel attacks https://awoo.systems
Go to file
xenia 8444759abd update readme 2021-06-05 13:36:49 -04:00
clocktower update readme 2021-06-05 13:36:49 -04:00
.flake8 Initial commit 2021-06-04 06:20:14 -04:00
.gitignore Initial commit 2021-06-04 06:20:14 -04:00
LICENSE Initial commit 2021-06-04 06:20:14 -04:00
Makefile Initial commit 2021-06-04 06:20:14 -04:00
README.md update readme 2021-06-05 13:36:49 -04:00
setup.py update readme 2021-06-05 13:36:49 -04:00

README.md

clocktower

clocktower is a python package implementing efficient strategies for executing adaptive timing side channel attacks. the goal is to use statistics to guide public input guesses in order to reveal the secret with a given level of statistical significance in a minimum number of rounds. the current strategy already significantly outperforms the naive non-adaptive strategy, and thus can be used as a framework for mounting attacks

howto

currently the model is that a correct guess will result in a longer time taken to execute, and all incorrect guesses will take the same (lower) time to execute
more abstraction is planned for different target models

import clocktower

# default input space: 0-255
# default significance level: 0.01
mgr = clocktower.ClocktowerManager()

# when next_guess() returns None, the algoritm has a statistically significant answer
while (guess := mgr.next_guess()) is not None:
    # execute the guess and get the result
    timing_value = run_attack(guess)
    mgr.update(guess, timing_value)

print(mgr.get_best_guess())