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. </p> <p>By the way, our latest work (SOI PUF and cSOI PUF) published in IEEE TIFS (2024) is based on OIPUF. </p> <blockquote> <p>If you have any questions, please feel free to contact with us: <a href="mailto:chongyaoxu@126.com">chongyaoxu@126.com</a> / <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 <a href="https://github.com/yg99992/SOI_PUF">https://github.com/yg99992/SOI_PUF</a>. </p> </blockquote> <p> </p> <p>Matlab code</p> <p><code>matlab/Generate_OI_block.m</code><br>This is a matlab manuscript used 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 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 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> </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 1M CRPs crps, puf_instance = oi_puf.gen_CRPs_PUF(64, 4, 1_000_000) </code></pre> <p> </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> </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> </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.