Home

Awesome

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.

DPA on SW AES implementations

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

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