This repository contains the key recovery parts of the papers "Util::Lookup: Exploiting key decoding in cryptographic libraries" by Florian Sieck, Sebastian Berndt, Jan Wichelmann, and Thomas Eisenbarth (CCS 2021) and of "TeeJam: Sub-Cache-Line Leakages Strike Back" by Florian Sieck, Zhiyuan Zhang, Sebastian Berndt, Chitchanok Chuengsatiansup, Thomas Eisenbarth, and Yuval Yarom (TCHES 2024).
It consists of three parts
simulator
contains a script to generate synthetic traces from a given pem filereconstruct/cpp
contains the branch-and-prune algorithm to reconstruct all possible candidates up to a desired depthreconstruct/lattices
contains the sage code to reconstruct the most significant half of the bits via a lattice solver if the least significant half of the bits is already reconstructed.
Each part contains its own readme file that documents the necessary steps to run the algorithm.
For the attack code and information about the publication please refer to this repository.