This is the website for the code and example data for the project DACER. DACER adopts a population-based search procedure to model each APUF composition individually within a divide-and-conquer framework. The implementation follows a standard evolutionary optimization workflow for sampling, evaluation, and distribution update, upon which DACER introduces its convergence regulation mechanisms.
Now it contains the attack method for multiple PUF structures in the folders named after the type of PUF.
To start the attack, please go to the corresponding PUF folder and excute
matlab main.m
The attack program will automatically generate CRPs and start attacking, if you want to use the example dataset, uncomment the lines about reading datasets from the file.
In the main.m folder, you can freely define the following parameters to change the PUF structure and attack method.
-
The bit number
n, structure sizenXORand noise levelsigmaNoiseof the PUF. -
The training data size
nTrSand the test data sizenTeSused for the attack. -
flag_diagindicates whether only the elements on the diagonal are used for updates in the search algorithm. Enabling this parameter can reduce the running time of each round of the search algorithm. Setting it to 0 indicates off and 1 indicates on. -
flag_earlyindicates whether the search algorithm is prematurely ended when the variation range of the fitness values of the optimal candidate solutions in ten consecutive rounds is less than 10^-6. Enabling this parameter when the training set is sufficient can reduce the running time of each round of the search algorithm. Setting it to 0 indicates off and 1 indicates on. -
flag_fitlossindicates whether to add a penalty term to limit the value of the optimal candidate solution in each round of the search algorithm to be less than the given valuedis_mu. This parameter needs to be used in combination withloss_func,loss_alpha,dis_muanddis_sig. Under normal circumstances,loss_alpharepresents the coefficient of the penalty term, anddis_muanddis_sigare related to the specific PUF structure. Enablingflag_fitlosscan prevent the search algorithm from converging to the wrong solution and reduce the number of running rounds of the algorithm. Setting it to 0 indicates off and 1 indicates on
In specific attacks, flag_diag, flag_early and flag_fitloss can be freely combined and used, which will produce different attack effects. For the best attack effect, we recommend enabling all of them.
The {PUF_type}_ATTACK.m file under each folder provides the specific attack steps for different PUF structures. The default settings can be used directly without any changes.
To compare with the SOTA approaches, the cmaes.m file provides the specific code of the optimized and improved CMA-ES algorithm. It also uses reliablity side-channel information only. The default settings can be used directly without any changes.
Other common functions used during the attack process are placed in the ./puf_util folder.
For Transfer_DACER, please go to the corresponding folder and excute
matlab Transfer_DACER.m
The main modifiable parameters include The bit number n, structure size nXOR, noise level sigmaNoise of the PUF, the source domain training data size nTrS and the target domain training data size nTrS_t.
Due to the randomness of the PUF modeling, you are suggested to run the above attack code multiple times to ensure success.
For more details, please check the specific MATLAB file.