The order to execute the code in this sub-project: 1. Code_preprocessing To process the raw traces. Raw/Raw_DN_****.zip => Processed_HDF5/Processed_DN_****.hdf5 To check whether there were abnormal traces (fortunately none.) To copy the input/output texts of SHA3-512 from the zip file. All-in-one script: pre_processing.sh 2. Code_intermediate_values To calculate the intermediate values from the I/O texts. All-in-one script: get_values.sh 3. Code_detection_R2 To find the R-square value between the target sample of each clock cycle and each target intermediate byte. All-in-one script: readme.sh 4. Code_extract_ics To determine the interesting clock cycle set of each target intermediate byte. All-in-one script: ics_script.sh Please follow the order above since they are dependent on each other. We executed these codes on a 32-core server with 252 GB memory. However, I believe the actual memory usage won't be over 10 GB. On this machine, we relied on IntelĀ® oneAPIi math kernel library to (automatically) support some multi-threaded calculations in NumPy, but I also believe the code can be executed with one single thread.