All Projects → ikizhvatov → jlsca-tutorials

ikizhvatov / jlsca-tutorials

Licence: GPL-3.0 license
Tutorials and examples on how to use Jlsca, the high-performance side channel analysis toolkit written in Julia

Programming Languages

Jupyter Notebook
11667 projects

Projects that are alternatives of or similar to jlsca-tutorials

sicak
SIde-Channel Analysis toolKit: embedded security evaluation tools
Stars: ✭ 17 (-60.47%)
Mutual labels:  side-channel, differential-power-analysis
Meltdown
This repository contains several applications, demonstrating the Meltdown bug.
Stars: ✭ 3,931 (+9041.86%)
Mutual labels:  side-channel
cry
SageMath/Python Toolkit for Cryptanalytic Research
Stars: ✭ 23 (-46.51%)
Mutual labels:  cryptography-tools
sparkle
Sparkle, Schwaemm and Esch: Lightweight Symmetric Cryptography for the Internet of Things
Stars: ✭ 20 (-53.49%)
Mutual labels:  cryptography-tools
EIS-Modernization
Documentation describing the Alaska Department of Health (DOH) modernization project and integrated eligibility system.
Stars: ✭ 41 (-4.65%)
Mutual labels:  dpa
CARE
CHAI and RAJA provide an excellent base on which to build portable codes. CARE expands that functionality, adding new features such as loop fusion capability and a portable interface for many numerical algorithms. It provides all the basics for anyone wanting to write portable code.
Stars: ✭ 22 (-48.84%)
Mutual labels:  hpc-applications
vpic
Vector Particle-In-Cell (VPIC) Project
Stars: ✭ 124 (+188.37%)
Mutual labels:  hpc-applications
scared
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.
Stars: ✭ 44 (+2.33%)
Mutual labels:  side-channel
pyecsca
Python Elliptic Curve Side-Channel Analysis toolkit.
Stars: ✭ 23 (-46.51%)
Mutual labels:  side-channel
xconfigure
High-Performance configuration patterns and recipes.
Stars: ✭ 42 (-2.33%)
Mutual labels:  hpc-applications
cpu-load-side-channel
Side-channel file transfer between independent VMs or processes executed on the same physical host.
Stars: ✭ 45 (+4.65%)
Mutual labels:  side-channel
sgx-tutorial-space18
Tutorial: Uncovering and mitigating side-channel leakage in Intel SGX enclaves
Stars: ✭ 44 (+2.33%)
Mutual labels:  side-channel
ParallelUtilities.jl
Fast and easy parallel mapreduce on HPC clusters
Stars: ✭ 28 (-34.88%)
Mutual labels:  hpc-applications
Zentalk-Web-Vue
Zentalk-Web Encrypted Chat
Stars: ✭ 16 (-62.79%)
Mutual labels:  cryptography-tools
hp2p
Heavy Peer To Peer: a MPI based benchmark for network diagnostic
Stars: ✭ 17 (-60.47%)
Mutual labels:  hpc-applications
SafePad
SafePad : Encrypted Text Editor. This text editor uses very strong encryption to let you protect your secrets. Great for storing passwords, credit card details or any else that you want to keep safe.
Stars: ✭ 32 (-25.58%)
Mutual labels:  cryptography-tools
sarracenia
https://MetPX.github.io/sarracenia
Stars: ✭ 39 (-9.3%)
Mutual labels:  hpc-applications
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 (-2.33%)
Mutual labels:  side-channel
Foundations of HPC 2021
This repository collects the materials from the course "Foundations of HPC", 2021, at the Data Science and Scientific Computing Department, University of Trieste
Stars: ✭ 22 (-48.84%)
Mutual labels:  hpc-applications
HeCBench
software.intel.com/content/www/us/en/develop/articles/repo-evaluating-performance-productivity-oneapi.html
Stars: ✭ 85 (+97.67%)
Mutual labels:  hpc-applications

Jlsca tutorials

Examples on how to use Jlsca, the side channel analysis toolkit written in Julia.

Prerequisites

It all works alike on Linux, Mac, and Windows.

Here is a docker image built on top of Orka with all the prerequisites (apart from some example tracesets).

Starting IJulia's Jupyter with threading

Jlsca's incremental correlation benefits from more threads. By default Julia only has 1 thread, but you can configure this by setting environment variable JULIA_NUM_THREADS. Start the notebook like this to give Julia 2 threads:

JULIA_NUM_THREADS=2 julia -e "using IJulia; notebook()"

Trace formats

Working with any tool starts with the data formats. Jlsca natively works with trs format, originally used by Riscure Inspector, and in addition handles other formats.

  • Daredevil (split binary) format. Jlsca natively supports it for both reading and writing, and includes a converter to/from trs. Whitebox example notebook below shows how to do conversion.
  • ChipWhisperer project format. Examples of how to convert data from CWP to trs are below in RHme2 notebooks. In case you would like to export a trs into CWP, here is the noteboook: trs2cwp.ipynb.

DPA on SW AES implementations

These are simple examples on how to do the SCA challenges of the RHme2 embedded CTF.

  • piece of SCAke - correlation power analysis attack on unprotected AES-128
  • still not SCAry - linear regression analysis attack on AES-128 with a misalignment countermeasure
  • SCAlate - correlation power analysis attack on AES-128 with a misalignment countermeasure

Tarballs with power traces available at https://drive.google.com/drive/folders/0B2slHLSL3nXaTFBWMUxHSkNmSTg, shasums included.

Here are the external writeups showing how to adapt examples above to do RHme3 SCA qualifier challange: [1], [2], [3]. Note that due to recent changes in Jlsca these writeups need minor adjustments to be runnable.

Second-order DPA

DPA on whitebox implementations

HPC (runnig on a computing cluster)

Jlsca can be run on a cluster of Linux machines.

DPA on HMAC-SHA

  • DPA on HMAC-SHA1 running on STM32F417 with hardware SHA accelerator. This is an advanced example. Traceset here.
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].