ESP32 CPA Detailed Results
Input Data
Power Traces
The captured data can be downloaded from here (1.86 GB).Replication of results
These traces have been captured using tools available in the esp-cpa repository. The following command can be used. poetry run measure config/capture/esp32.py \
esp32.zarr \
--gui-display # Optional
AES Key
The key flashed in the target’s fuses is available below, and can be downloaded here.
00000000: e684 35d5 9649 6f9c 4618 64c6 e34b c114 ..5..Io.F.d..K..
00000010: b61c d548 3828 7329 8962 437b a80d d8bd ...H8(s).bC{....
To validate the attack, the following keys are computed.
- First round key (at flash address
0x1000
):e69435d796492f8c461a64c6a34bc91c
- Second round key (at flash address
0x1000
):b61dd548182877298960437be80dd0bd
First Round Results
Ranks
Replication of results
The data displayed above can be locally computed using tools available in the esp-cpa repository. The following commands can be used.# Compute correlations
poetry run analyze compute-correlations esp32.zarr \
config/analysis/esp32_round0.py \
corr.zarr
# Compute key ranks
poetry run analyze compute-ranks corr.zarr \
e69435d796492f8c461a64c6a34bc91c \
esp32_round0_ranks.csv
# Plot results
poetry run plot plot-ranks esp32_round0_ranks.csv
Correlations
Replication of results
The data displayed above can be locally computed using tools available in the esp-cpa repository. The following commands can be used.# Compute correlations
poetry run analyze compute-correlations esp32.zarr \
config/analysis/esp32_round0.py \
corr.zarr
# Extract correlation values
poetry run analyze extract-correlations corr.zarr 0 \
esp32_round0_correlations.csv \
--key e69435d796492f8c461a64c6a34bc91c
# Plot results
poetry run plot plot-correlations esp32_round0_correlations.csv
Second Round Results
Ranks
Replication of results
The data displayed above can be locally computed using tools available in the esp-cpa repository. The following commands can be used.# Compute correlations
poetry run analyze compute-correlations esp32.zarr \
config/analysis/esp32_round1.py \
corr.zarr
# Compute key ranks
poetry run analyze compute-ranks corr.zarr \
b61dd548182877298960437be80dd0bd \
esp32_round1_ranks.csv
# Plot results
poetry run plot plot-ranks esp32_round1_ranks.csv
Correlations
Replication of results
The data displayed above can be locally computed using tools available in the esp-cpa repository. The following commands can be used.# Compute correlations
poetry run analyze compute-correlations esp32.zarr \
config/analysis/esp32_round1.py \
corr.zarr
# Extract correlation values
poetry run analyze extract-correlations corr.zarr 0 \
esp32_round1_correlations.csv \
--key b61dd548182877298960437be80dd0bd
# Plot results
poetry run plot plot-correlations esp32_round1_correlations.csv