Learn R Programming

sideChannelAttack (version 1.0-6)

dpa1: DPA

Description

The dpa1 function applies a Differential Power Analysis (DPA) to a set of traces in order to find the key used by the cryptographic device.

Usage

dpa1(x, y,...)

Arguments

x
A matrix where each row is a trace.
y
A vector where the $i_th$ element of the vector $y$ is the key for the $i_th$ trace in the matrix $x$.
...
Currently ignored.

Value

The dpa1 function returns an object which knowing a trace can be used with the predict function that estimates the value of the key. The value of this function is an object of class dpa1, which is a list with the following components:
mean
a list of arithmetics means, one for each possible key

Details

The dpa1 function is an example of DPA. It calculates the average $X_i$ of traces for each key $Y_i$. Then, to estimate the key from a trace $T$, it returns the key $Y_i$ which maximizes the equation $argmax{Y_i}(cor(T,X_i))$

References

P. C. Kocher & J. Jaffe & B. Jun, (1999), "Differential Power Analysis: Leaking Secrets", In Proc. Crypto '99, Springer-Verlag, LNCS 1666, pages 388-397.

Examples

Run this code
#data collection
data(powerC)
traces = powerC[,-301]
key = powerC[,301]+1

#model creation
attack=dpa1(traces[-1,],factor(key[-1]))

#model prediction
predict(attack, traces[1,])

Run the code above in your browser using DataLab