All Projects → eshard → scared

eshard / scared

Licence: AGPL-3.0 license
Make your first side-channel attack on public datasets with eShard. This is a mirror of scared Gitlab repository. All contributions and merge request must be done through Gitlab project.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to scared

sgx-tutorial-space18
Tutorial: Uncovering and mitigating side-channel leakage in Intel SGX enclaves
Stars: ✭ 44 (+0%)
Mutual labels:  side-channel
sidefuzz
Fuzzer to automatically find side-channel (timing) vulnerabilities
Stars: ✭ 94 (+113.64%)
Mutual labels:  side-channel
tracebase
The tracebase appliance-level power consumption data set
Stars: ✭ 33 (-25%)
Mutual labels:  traces
data-prepper
Data Prepper is a component of the OpenSearch project that accepts, filters, transforms, enriches, and routes data at scale.
Stars: ✭ 102 (+131.82%)
Mutual labels:  traces
cpu-load-side-channel
Side-channel file transfer between independent VMs or processes executed on the same physical host.
Stars: ✭ 45 (+2.27%)
Mutual labels:  side-channel
jlsca-tutorials
Tutorials and examples on how to use Jlsca, the high-performance side channel analysis toolkit written in Julia
Stars: ✭ 43 (-2.27%)
Mutual labels:  side-channel
rhme-2016
The RHme2 (Riscure Hack me 2) is a low level hardware CTF challenge that comes in the form of an Arduino Nano board. The new edition provides a completely different set of new challenges to test your skills in side channel, fault injection, cryptoanalysis and software exploitation attacks.
Stars: ✭ 42 (-4.55%)
Mutual labels:  side-channel
Meltdown
This repository contains several applications, demonstrating the Meltdown bug.
Stars: ✭ 3,931 (+8834.09%)
Mutual labels:  side-channel
sicak
SIde-Channel Analysis toolKit: embedded security evaluation tools
Stars: ✭ 17 (-61.36%)
Mutual labels:  side-channel
pyecsca
Python Elliptic Curve Side-Channel Analysis toolkit.
Stars: ✭ 23 (-47.73%)
Mutual labels:  side-channel

SCAred

pipeline status PyPI version Conda installer Latest Conda release

scared is a side-channel analysis framework.

Getting started

Requirements

Scared need python 3.6, 3.7 or 3.8.

You can install scared, depending on your setup:

  • from source
  • with pip
  • with conda

At time of writing, we highly recommend to install scared with conda if you want to use it with python 3.8

Install with conda

Conda builds are available for linux-x64 and osx-64 platforms. If your system isn't yet supported, build contributions are welcome!).

You just have to run:

conda install -c eshard scared

Install with pip

Binary builds are available from Pypi for most Linux platforms and OS X. If your environment has a binary build available, just run:

pip install scared

If no wheel is available for your setup, you'll also need:

  • setuptools 0.40 or greater (just run pip install -U pip setuptools)
  • a C compiler to compile C extension
  • for Python 3.8 only, a llvmlite working installation (see install from source documentation)

and then run pip install scared.

Install from source

To install from source, you will need:

  • setuptools 0.40 or greater (just run pip install -U pip setuptools)
  • a C compiler to compile C extension
  • for Python 3.8 only, a llvmlite working installation (see install from source documentation, or install it with conda)

You need to run:

pip install .

from the source folder.

If you are planning to contribute, see CONTRIBUTING.md to install the library in development mode and run the test suite.

Make a first cool thing

Start using scared by doing a cool thing:

# 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)

Documentation

To go further and learn all about scared, please go to the full documentation. You can also have an interactive introduction to scared by launching these notebooks with Binder.

Contributing

All contributions, starting with feedbacks, are welcomed. Please read CONTRIBUTING.md if you wish to contribute to the project.

License

This library is licensed under LGPL V3 license. See the LICENSE file for details.

It is mainly intended for non-commercial use, by academics, students or professional willing to learn the basics of side-channel analysis.

If you wish to use this library in a commercial or industrial context, eshard provides commercial licenses under fees. Contact us!

Authors

See AUTHORS for the list of contributors to the project.

Binary builds available

Binary builds (wheels on pypi and conda builds) are available for the following platforms and Python version.

Platforms:

  • Linux x86 64
  • Macosx x86 64

Python version:

  • 3.6
  • 3.7
  • 3.8
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].