Skip to main content
zenodoopen

Modeling Attack Resistant Strong PUF Exploiting Stagewise Obfuscated Interconnections With Improved Reliability [DATASET and Source Code]

<p>Thanks for your interest in our work!</p> <p>In order to facilitate your assessment and replication, we provides the dataset and source codes (verilog/python model/matlab) of our work (OIPUF) here.&nbsp;</p> <p>By the way, our latest work (SOI PUF and cSOI PUF) published in IEEE TIFS (2024) is based on OIPUF.&nbsp;</p> <blockquote> <p>If you have any questions, please feel free to contact with us:&nbsp;<a href="mailto:chongyaoxu@126.com">chongyaoxu@126.com</a>&nbsp;/&nbsp;<a href="mailto:mklaw@um.edu.mo">mklaw@um.edu.mo</a></p> <p>Full text about OIPUF can be downloaded from <a href="https://ieeexplore.ieee.org/document/10103139">https://ieeexplore.ieee.org/document/10103139</a></p> <p>Full text about SOI PUF and cSOI PUF can be downloaded from <a href="https://ieeexplore.ieee.org/document/10458688">https://ieeexplore.ieee.org/document/10458688</a></p> <p>Source code and FPGA project of SOI PUF and cSOI PUF can be download from&nbsp;<a href="https://github.com/yg99992/SOI_PUF">https://github.com/yg99992/SOI_PUF</a>.&nbsp;</p> </blockquote> <p>&nbsp;</p> <p>Matlab code</p> <p><code>matlab/Generate_OI_block.m</code><br>This is a matlab&nbsp;manuscript used&nbsp;for generating the verilog code of random OI block.</p> <p><code>matlab/OIPUF_64x4_placement.m</code><br>This is a matlab function used for generating XDC file for constraining&nbsp;the placement of (64,4)-OI block</p> <p><code>matlab/OIPUF_64x8_placement.m</code><br>This is a matlab function used for generating XDC file for constraining&nbsp;the placement of (64,8)-OI block</p> <p><code>matlab/OIPUF_placement_example.m</code><br>An example manuscript used for demonstrating the usage of OIPUF_64x4_placement.m and OIPUF_64x8_placement.m</p> <p>&nbsp;</p> <p>Python code</p> <p><code>python/puf_models.py</code><br>The python models of XOR PUFs and OIPUFs, which can be used to generate CRPs.</p> <p>for example:</p> <pre><code>from puf_models import oi_puf # generate a (64,4)-OIPUF and further use the generated OIPUF to generate&nbsp;1M CRPs crps, puf_instance = oi_puf.gen_CRPs_PUF(64, 4, 1_000_000) &nbsp; </code></pre> <p>&nbsp;</p> <p><code>python/attack_pypuf.py</code><br>A manuscript used to conduct to ANN attack on XOR PUF and OIPUF ('pypuf' package should be installed correctly).</p> <p>&nbsp;</p> <p>Verilog code</p> <p><code>verilog/OIPUF_64_4/</code><br>All the verilog files of (64, 4)-OIPUF</p> <p><code>verilog/OIPUF_64_8/</code><br>All the verilog files of (64, 8)-OIPUF</p> <p>&nbsp;</p> <p>CRP datasets extracted from FPGA</p> <p>It consists of 13 CRP files (All the CRPs are extracted from FPGA):</p> <p><code>FPGA_CRPs/FPGA3_CHAL_100M.csv</code><br>The 100 million 64-bit challenges</p> <p><code>FPGA_CRPs/FPGA3_k4_PUF0.csv</code><br>The 100 million 1-bit responses extracted from (64,4)-OIPUF0</p> <p><code>FPGA_CRPs/FPGA3_k4_PUF1.csv</code><br>The 100 million 1-bit responses extracted from (64,4)-OIPUF1</p> <p><code>FPGA_CRPs/FPGA3_k4_PUF2.csv</code><br>The 100 million 1-bit responses extracted from (64,4)-OIPUF2</p> <p><code>FPGA_CRPs/FPGA3_k4_PUF3.csv</code><br>The 100 million 1-bit responses extracted from (64,4)-OIPUF3</p> <p><code>FPGA_CRPs/FPGA3_k4_PUF4.csv</code><br>The 100 million 1-bit responses extracted from (64,4)-OIPUF4</p> <p><code>FPGA_CRPs/FPGA3_k4_PUF5.csv</code><br>The 100 million 1-bit responses extracted from (64,4)-OIPUF5</p> <p><code>FPGA_CRPs/FPGA3_k8_PUF0.csv</code><br>The 100 million 1-bit responses extracted from (64,8)-OIPUF0</p> <p><code>FPGA_CRPs/FPGA3_k8_PUF1.csv</code><br>The 100 million 1-bit responses extracted from (64,8)-OIPUF1</p> <p><code>FPGA_CRPs/FPGA3_k8_PUF2.csv</code><br>The 100 million 1-bit responses extracted from (64,8)-OIPUF2</p> <p><code>FPGA_CRPs/FPGA3_k8_PUF3.csv</code><br>The 100 million 1-bit responses extracted from (64,8)-OIPUF3</p> <p><code>FPGA_CRPs/FPGA3_k8_PUF4.csv</code><br>The 100 million 1-bit responses extracted from (64,8)-OIPUF4</p> <p><code>FPGA_CRPs/FPGA3_k8_PUF5.csv</code><br>The 100 million 1-bit responses extracted from (64,8)-OIPUF5</p>

ShareScore

36/100

Overall dataset sharing score

Score breakdown

These five areas show where the dataset supports — or may limit — practical reuse.

Stewardship
8
Harmonization
4
Access
16
Reuse readiness
8
Engagement
0

Topics

ScienceDex for faculty

Your academic CV and NIH biosketch

Make your CV in your school's format and your NIH biosketch from it, then download both as Word files.