ESP32-C3 CPA Detailed Results
Input Data
Power Traces
The captured data can be downloaded from here (8.73 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/esp32c3.py \
esp32c3.zarr \
--gui-display # Optional
AES Key
The key flashed in the target’s fuses is available below, and can be downloaded here.
00000000: c636 c050 fc66 fd40 32b0 8c6b 0834 9342 [email protected]
00000010: 0f5a a370 00ec d68e ba01 4b90 e01d 5aa8 .Z.p......K...Z.
To validate the attack, the following keys are computed.
- First round tweaked key (at flash address
0x10
):2f5395410f892e12d69c2cb73256ce1d
- Second round key (at flash address
0x10
):20b4fb001d9f763f26a46b6663d26cf7
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 esp32c3.zarr \
config/analysis/esp32c3_round0.py \
corr.zarr
# Compute key ranks
poetry run analyze compute-ranks corr.zarr \
2f5395410f892e12d69c2cb73256ce1d \
esp32c3_round0_ranks.csv
# Plot results
poetry run plot plot-ranks esp32c3_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 esp32c3.zarr \
config/analysis/esp32c3_round0.py \
corr.zarr
# Extract correlation values
poetry run analyze extract-correlations corr.zarr 0 \
esp32c3_round0_correlations.csv \
--key 2f5395410f892e12d69c2cb73256ce1d
# Plot results
poetry run plot plot-correlations esp32c3_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 esp32c3.zarr \
config/analysis/esp32c3_round1.py \
corr.zarr
# Compute key ranks
poetry run analyze compute-ranks corr.zarr \
20b4fb001d9f763f26a46b6663d26cf7 \
esp32c3_round1_ranks.csv
# Plot results
poetry run plot plot-ranks esp32c3_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 esp32c3.zarr \
config/analysis/esp32c3_round1.py \
corr.zarr
# Extract correlation values
poetry run analyze extract-correlations corr.zarr 0 \
esp32c3_round1_correlations.csv \
--key 20b4fb001d9f763f26a46b6663d26cf7
# Plot results
poetry run plot plot-correlations esp32c3_round1_correlations.csv