
Framework Python para realizar ataques de análise de canal lateral (ex.: CPA) em conjuntos de dados públicos, projetado para uso educacional e prática hands-on em segurança de hardware criptográfico.
scared é um framework de análise de canais laterais mantido pela equipe eShard.
Scared precisa de Python 3.11, 3.12 ou 3.13 e Numpy>=2
Você pode instalar scared, dependendo da sua configuração:
pipcondacondaBasta executar:
conda install -c eshard scared
pipWheels Python estão disponíveis no PyPI, basta executar:
pip install scared
Para instalar a partir do código fonte, você precisará executar:
pip install .
a partir da pasta do código fonte.
Se você planeja contribuir, veja CONTRIBUTING.md para instalar a biblioteca em modo de desenvolvimento e executar a suíte de testes.
Comece a usar o scared fazendo algo legal:
# 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)
Para ir além e aprender tudo sobre o scared, acesse a documentação completa. Você também pode ter uma introdução interativa ao scared iniciando estes notebooks com Binder.
Todas as contribuições, começando pelos feedbacks, são bem-vindas. Por favor, leia CONTRIBUTING.md se deseja contribuir com o projeto.
Esta biblioteca é licenciada sob a licença LGPL V3. Consulte o arquivo LICENSE para obter detalhes.
Ela é destinada principalmente para uso não comercial, por acadêmicos, estudantes ou profissionais dispostos a aprender os fundamentos da análise de canais laterais.
Se você deseja usar esta biblioteca em um contexto comercial ou industrial, a eShard fornece licenças comerciais mediante taxas. Entre em contato!
Veja AUTHORS para a lista de contribuidores do projeto.
Builds binárias (wheels no PyPI e builds conda) estão disponíveis para as seguintes plataformas e versões do Python.
Plataformas:
Versão do Python: