
Framework Python pour réaliser des attaques par canaux auxiliaires (par exemple, CPA) sur des jeux de données publics, conçu pour un usage éducatif et une pratique concrète en sécurité du matériel cryptographique.
scared est un framework d'analyse par canaux auxiliaires maintenu par l'équipe d'eShard.
Scared nécessite python 3.11, 3.12 ou 3.13 et Numpy>=2
Vous pouvez installer scared, selon votre configuration :
pipcondacondaIl vous suffit d'exécuter :
conda install -c eshard scared
pipLes wheels Python sont disponibles sur Pypi, exécutez simplement :
pip install scared
Pour installer à partir des sources, vous devrez exécuter :
pip install .
dans le dossier source.
Si vous prévoyez de contribuer, consultez CONTRIBUTING.md pour installer la bibliothèque en mode développement et exécuter la suite de tests.
Commencez à utiliser scared en réalisant une première chose sympa :
# First import the lib
import scared
import numpy as np
# Define a selection function
@scared.attack_selection_function
def first_add_key(plaintext, guesses):
res = np.empty((plaintext.shape[0], len(guesses), plaintext.shape[1]), dtype='uint8')
for i, guess in enumerate(guesses):
res[:, i, :] = np.bitwise_xor(plaintext, guess)
return res
# Create an analysis CPA
a = scared.CPAAttack(
selection_function=first_add_key,
model=scared.HammingWeight(),
discriminant=scared.maxabs)
# Load some traces, for example a dpa v2 subset
ths = scared.traces.read_ths_from_ets_file('dpa_v2.ets')
# Create a container for your ths
container = scared.Container(ths)
# Run!
a.run(container)
Pour aller plus loin et tout apprendre sur scared, veuillez consulter la documentation complète. Vous pouvez également avoir une introduction interactive à scared en lançant ces notebooks avec Binder.
Toutes les contributions, à commencer par les retours, sont les bienvenues. Veuillez lire CONTRIBUTING.md si vous souhaitez contribuer au projet.
Cette bibliothèque est sous licence LGPL V3. Consultez le fichier LICENSE pour plus de détails.
Elle est principalement destinée à un usage non commercial, par des universitaires, étudiants ou professionnels souhaitant apprendre les bases de l'analyse par canaux auxiliaires.
Si vous souhaitez utiliser cette bibliothèque dans un contexte commercial ou industriel, eShard propose des licences commerciales payantes. Contactez-nous !
Voir AUTHORS pour la liste des contributeurs au projet.
Les builds binaires (wheels sur pypi et builds conda) sont disponibles pour les plateformes et versions Python suivantes.
Plateformes :
Version Python :