ESP32-C6 CPA (SEC_DPA_HIGH) Detailed Results
Input Data
Power Traces
The captured data can be downloaded from here (11.87 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/esp32c6.py \
esp32c6_high.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.# Group measurements
poetry run analyze group-measurements esp32c6_high.zarr \
config/group/esp32c6_sec_dpa.py
# Compute correlations for all groups
poetry run analyze compute-correlations esp32c6_high_group_0.zarr \
config/analysis/esp32c6_round0_cycle0.py \
corr0.zarr
poetry run analyze compute-correlations esp32c6_high_group_1.zarr \
config/analysis/esp32c6_round0_cycle1.py \
corr1.zarr
# Compose correlations
poetry run analyze compose-correlations corr0.zarr corr1.zarr \
corr.zarr
# Compute key ranks
poetry run analyze compute-ranks corr.zarr \
2f5395410f892e12d69c2cb73256ce1d \
esp32c6_high_round0_ranks.csv
# Plot results
poetry run plot plot-ranks esp32c6_high_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.# Group measurements
poetry run analyze group-measurements esp32c6_high.zarr \
config/group/esp32c6_sec_dpa.py
# Compute correlations for all groups
poetry run analyze compute-correlations esp32c6_high_group_0.zarr \
config/analysis/esp32c6_round0_cycle0.py \
corr0.zarr
poetry run analyze compute-correlations esp32c6_high_group_1.zarr \
config/analysis/esp32c6_round0_cycle1.py \
corr1.zarr
# Compose correlations
poetry run analyze compose-correlations corr0.zarr corr1.zarr \
corr.zarr
# Extract correlation values
poetry run analyze extract-correlations corr.zarr 0 \
esp32c6_high_round0_correlations.csv \
--key 2f5395410f892e12d69c2cb73256ce1d
# Plot results
poetry run plot plot-correlations esp32c6_high_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.# Group measurements
poetry run analyze group-measurements esp32c6_high.zarr \
config/group/esp32c6_sec_dpa.py
# Compute correlations for all groups
poetry run analyze compute-correlations esp32c6_high_group_0.zarr \
config/analysis/esp32c6_round1_cycle0.py \
corr0.zarr
poetry run analyze compute-correlations esp32c6_high_group_1.zarr \
config/analysis/esp32c6_round1_cycle1.py \
corr1.zarr
# Compose correlations
poetry run analyze compose-correlations corr0.zarr corr1.zarr \
corr.zarr
# Compute key ranks
poetry run analyze compute-ranks corr.zarr \
20b4fb001d9f763f26a46b6663d26cf7 \
esp32c6_high_round1_ranks.csv
# Plot results
poetry run plot plot-ranks esp32c6_high_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.# Group measurements
poetry run analyze group-measurements esp32c6_high.zarr \
config/group/esp32c6_sec_dpa.py
# Compute correlations for all groups
poetry run analyze compute-correlations esp32c6_high_group_0.zarr \
config/analysis/esp32c6_round1_cycle0.py \
corr0.zarr
poetry run analyze compute-correlations esp32c6_high_group_1.zarr \
config/analysis/esp32c6_round1_cycle1.py \
corr1.zarr
# Compose correlations
poetry run analyze compose-correlations corr0.zarr corr1.zarr \
corr.zarr
# Extract correlation values
poetry run analyze extract-correlations corr.zarr 0 \
esp32c6_high_round1_correlations.csv \
--key 20b4fb001d9f763f26a46b6663d26cf7
# Plot results
poetry run plot plot-correlations esp32c6_high_round1_correlations.csv