Physical Unclonable Functions
Physical Unclonable Function (PUF) is a hardware primitive used for secure authentication of Integrated Circuits (IC). Furthermore, PUF can be employed to generate secure keys for cryptographic functions.
We present software scripts to generate and evaluate PUF responses. Python based scripts have been developed to generate the PUF IDs using five different schemes. Values of these metrics, for the Ring Oscillator (RO) PUF and SR-Latch PUF, can be analyzed. To use these scripts, the user does not need an in-depth knowledge of Information theory, Hardware circuit design or Cryptography. However, user must know the basics of statistics. In addition, the user is expected to know how to run an application from the command line. In depth details of these schemes is available in [1]. Refer to the User Guide for using these scripts.
These scripts are written in Python, therefore to run it successfully; the user must have Python version 3.3 installed on his/her machine. Additionally, input files are in Comma Separated Values (CSV) format. To read CSV files, a Python package named csv has been used. Below is a list of files and directories provided along with the python scripts. The directories contain the field data. Similarly the .csv files contain the Raw PUF data as shown in the figure above.
Related Publications
- B. Habib, K. Gaj, and J.-P. Kaps, Efficient SR-latch PUF, Applied Reconfigurable Computing, 11th International Symposium, ARC 2015, LNCS, volume 9040, Springer, pages 205216, Apr., 2015 [accepted version, pdf] [Bibtex] [slides]
- B. Habib, K. Gaj, and J.-P. Kaps, FPGA PUF based on programmable LUT delays, 2013 Euromicro Conference on Digital System Design (DSD), pages 697704, 2013 [accepted version, pdf] [Bibtex] [slides]