presentation

advertisement
Project Presentation:
Physical Unclonable Functions
Michelle Dickson
Outline







Project Goals
Resource Selection
PUF Architecture
Implementation
Results
Status & Future Work
Conclusion
Project Goals


Implement a Physical Unclonable Function
Determine feasibility of an authentication scheme based
on the PUF’s unique key generation

Is such an implementation robust enough to withstand
environmental variations?
Resource Selection

Hardware: Virtex-II Pro™ FF1152 Development Board


2VP20 FPGA
QTY: 2
Resource Selection

Tools

Xilinx ISE Version 9.2i






Project Navigator
iMPACT
FPGA Editor
Constraints Editor
PACE
Modelsim XE III Version 6.2g
PUF Architecture

Common PUF Architectures

Arbiter PUF

Ring Oscillator PUF
PUF Architecture

Common PUF Architectures (continued)

Butterfly PUF
Selected PUF Architecture

Ring Oscillator PUF Implementation



Each RO is comprised of one NAND gate and 40 inverters
16 ROs implemented on the FPGA
Compare the outputs of 2 ROs




If the result is greater than, output is 1
If the result is less than or equal, output is 0
Output is 8-bit signature
Motivation for selecting RO implementation


Fairly simple to implement
Does not require careful routing or layout


Differences in oscillator frequencies will dominate skews in routing
Extensive work published on RO implementations
Implementation

Ring Oscillator component implemented in schematic
Implementation

Inputs to Ring Oscillator




Feed input: tied to 1
PUF enable input: enables the counter
Clear input: clears the counter to 0s
Output from Ring Oscillator

Output is 15 bit count value
Implementation

The rest of the circuit is implemented in VHDL


Instantiate 16 ROs
Compare the count of two ROs after a certain period of time to
produce a bit





If A is greater than B, the bit value is 1
Else, the bit value is 0
Oscillation time varied from several thousand clock cycles to 40
seconds
The 8-bit output value is displayed on LEDs on the development
board
To verify functionality of the rest of the circuit



Create a testbench with skewed clock inputs for the ROs
Run simulation in Modelsim
Verify that PUF bits accurately reflect the variation in oscillator
frequencies
Implementation

After verifying the rest of the
circuit through simulation,
implement the PUF in actual
hardware



Synthesize design
Implement
Generate programming file
and configure device
Implementation

Obstacles

First, I had to set up the development environment and familiarize
myself with the board and the tools



Xilinx tool attempts to optimize the circuit and removes the useful
components


The result is an empty logic design that cannot be mapped
Limited visibility of internal logic values makes troubleshooting
difficult


Search the internet for board documentation
Verify that I am able to program the FPGA and drive the outputs
Sometimes the circuit appeared to be functioning as desired, but in reality
it was not
Every time a bit file is created and synthesized in hardware, the
results vary

Another troubleshooting hurdle
Implementation

Solutions to some obstacles

To prevent the Xilinx tool from removing the circuit






Each net has to be assigned a “KEEP” attribute with a value of TRUE
Disable equivalent register removal
Disable optimization properties
Disable trim unconnected signals
*This allowed me to actually synthesize the design in hardware
To create more consistent results between implementations
on the same device



Limit max fanout to 5
Create area constraints for each Ring Oscillator
*This simplified my troubleshooting efforts
Implementation

Placed and routed
design
Results



I tested my PUF implementation on two different development
boards
Tests for the reference were completed at ambient temperature
with nominal power inputs
Through troubleshooting, I found

Oscillators were indeed oscillating at different frequencies


Varying the oscillation time before checking the PUF output did not
seem to make a large difference



To verify this, I simply changed the VHDL to check for count equality instead of
inequality and verified that each comparison consistently produced a FALSE value
Whether I waited several thousand clock cycles or 40 seconds, the output
seemed to have the same consistency
For this reason, I chose a shorter oscillation period such that the counter would
not cycle back to 0x0000 and result in potentially inconsistent comparison results
Results were most consistent when the ring oscillator counter is always
enabled and when the ring oscillator feed input is always tied to 1

The alternative was to only activate these inputs during the oscillation time before
checking for inequality
Results

Using the same bit file, each board produced a unique 8-bit
output; however, they only differed by one bit



Board 1 produced the output 01001101
Board 2 produced the output 01011101
The results were not very consistent, even at ambient
conditions

Out of 100 trials, Board 1 produced a different output 10 times

Two bits were not consistent



Bit 6 varied 3 times out of 100
Bit 2 varied 7 times out of 100
Out of 100 trials, Board 2 produced a different output 40 times

Two bits were not consistent


Bit 6 varied 2 times out of 100
Bit 4 varied 39 times out of 100

NOTE: On one trial, both bit 6 and bit 4 varied
Status & Future Work


Since I haven’t been able to obtain consistent results at
ambient, I have not experimented with any environmental
variations
To improve the consistency of the results, future work
would include


Calculate the actual frequency produced by each oscillator
Select those oscillators with frequencies that are farther apart
for comparison


Pro: Results will be more consistent and presumably less susceptible
to environment variations
Con: This means that each time a PUF is implemented in hardware, it
requires manual tweaking to ensure consistency
Status & Future Work

To improve the randomness of results across different
hardware


Implement the Ring Oscillator as a hard macro
Don’t put area constraints on the place and route tool



Pro: This will make the output unique for each piece of hardware in which
the PUF is implemented
Con: Can’t guarantee consistency
To improve practicality



Expand the circuit to generate a 128 bit key instead of an 8 bit key
Set up a challenge-response based authentication scheme and use
board communication channel
Cascade two boards together to determine feasibility of a systemlevel signature
Conclusion

Although I haven’t been able to obtain consistent results to
date, I can see that a Ring Oscillator PUF could be used to
generate a unique hardware ID. However, implementation
difficulty has been over-simplified by researchers.

From my project experience, I don’t believe consistent results can be
obtained without manual intervention and significant testing



This results in added production costs
Environmental variations would only exacerbate the problem
Adding multiplexors to select which oscillators to compare
would make a challenge-response authentication scheme
possible

Again, manual intervention and testing would be required during
production to ensure adequate results
Questions?

Please contact Michelle Dickson


michelle.k.dickson@lmco.com
mkdickso@iastate.edu
Download