Sensor based Physically Unclonable Functions

Get to know our project

Project Overview

The security PUFfins are working on a sensor based Physically Unclonable Funtion(PUF) that works with sensors. It works by first taking two identical sensor's data and amplifing it to create a challenge for the circuit. We amplify the overall difference through a differential amplifier and convert the data from analog to digital through a highly accurate ADC. Finally we get the data to an Arduino to accept the data and transfter to a database on a laptop so we can develop a response. We will then be able to use the local data to make a hardware level security PUF.

Physically Unclonable Funtions(PUFs)

Physically unclonable functions (PUFs) are a technique in hardware security that exploits inherent device variations to produce an unclonable, unique device response to a given input. On a higher level, a PUF can be thought of as analogous to biometrics for humans – they are inherent and unique identifiers for every piece of silicon. Due to the imperfections of silicon processing techniques, every single IC ever produced physically differs from one another. From IC to IC, these process variations manifest in ways like differing path delays, transistor threshold voltages, voltage gains, and countless others. Importantly, while these variations may be random from IC to IC, they are deterministic and repeatable once known. A PUF exploits this inherent difference in IC behavior to generate a unique cryptographic key for each IC.


For this project we will develop circuits to creates PUFs with these different sensor types:

  • Accelerometer
  • Magnetometer
  • Gyroscope
  • Current Sensor


Using the schema on the left, a database was built to handle the data flow through Microsoft SQL Server 2019. Using MSSQL Tools and the GUI, all the data is easily imported. The data is checked in the GUI and then unioned into the calibrated data where the GUI will perform statistics on it.

Graphic User Interface(GUI)

The GUI uses the data from the database to show everything in an easy and fast way to analyze the data. Built on the QT6 libary framework, it uses functions built from the MSSQL C++ drivers to pull data from the database. It is showed in an excel like manner. Statistics of the max, min and percent error are pulled from the database as it is shown.

Security PUFs Requirements

DataBase Requirements:
  • Use Microsoft SQL Server 2019 and MSSQL C++ connector
  • Extensive enough to hold thousands of generated PUF data
  • Labels for different pairs
  • Graphic User Interface to graph, display and send a response with data
  • Differential amplification needs to have gain of 100 dB
  • .1% - .05% noise level
  • Accelerometer: ADXL335
Sensor Based PUF Circuit Requirements:
  • Use 4 sensors: Accelerometer, Magnetometer, Gyroscope and Current Sensor
  • Sensors must be 3.3V to 5V supply, low noise and accuracy of at least 10 bits
  • Analog to digital converter must fullfil sensor requirments and have a low amount of pins and the ability to shift bits to read -5V to 5V
  • Differential Amplifier must be able to compare values and have a simple pinout
  • Arduino must have enough pins for all components, provide power to system, provide data to database and allow for calibration of sensors
  • PCB must be easily testable, solderable, low noise, provide correct mapping to arduino ports and work as a I/O shield

Gantt Chart:

Security PUFs Project Files:

Project Reports:
  • Coming Soon

An overview of our team

Get in contact with the team

Individual Contact Information

Benjamin Assmann:
  • Email:
Sharley Fabro:
  • Email:
Traigh Kirkeeng:
  • Email: