SELA: a Symbolic Expression Leakage Analyzer
Résumé
Side-channel attacks are a powerful class of attacks targeting cryptographic devices, which exploit physical quantities during the execution of an algorithm in order to recover key material. Masking is a popular counter measure to mitigate such attacks, and consists in splitting a secret into n shares, such that any combination of n − 1 shares or less is statistically independent from the secret. If general masking schemes exist in some cases, masked algorithms are often specific and are required to be verified independently, as the conversion from an unmasked algorithm is not trivial. Existing tools for verifying masked algorithms either target the algorithmic level using abstract constructions or hardware descriptions, but show a lack for a generic tool which can act as a basis for different verification contexts. In this article, we present SELA, an open-source tool for verifying masked expressions, provided as a python library. We detail and motivate the design choices made in the implementation, in particular regarding the simplification rules and strategy used by the verification algorithm. The internal representation is also compatible with several leakage models. We show the interest of SELA by verifying existing use-cases from different contexts: masked hardware circuits, algorithms and generated assembly code. Besides showing the versatility of the approach, these use-cases also demonstrate the good accuracy of the verification and the efficiency of the implementation.
Domaines
Cryptographie et sécurité [cs.CR]Origine | Fichiers produits par l'(les) auteur(s) |
---|
Loading...