nils-wisiol/pypuf

Delay difference in real world senario

Closed this issue · 1 comments

Hello, sorry to interrupt again. I have a question: is it possible to derive the delay of each component (TT1, TT2....) just from challenges in the real world using the concept of Therom 1 (I think I understand how it works) from DV13 ?

image

My thinking is: Assume we can get some challenges and delay difference (DD([1,1])....) from a real PUF, and we write out the equation like in the image. Then solve the equation to get TT1, TT2... value.

For example, in a two-stage PUF, assume the attacker can collect the following challenge ((1,1), (1,0), (0,1), (0,0)) and related delay difference ==>

  1. DD([1,1]) = (TT1+TT2)-(BB1+BB2)
  2. DD([1,0]) = (TT1+TB2)-(BB1+BT2)
  3. DD([0,1]) = (TB1+BB2)-(BT1+TT2)
  4. DD([0,0]) = (TB1+BT2)-(BT1+TB2)

Then attacker tries to solve the 8 unknown parameters (TT1, TB2.....) which represent the delay of each component in the multiplexer.

However, from the above 4 equations, I think they are not enough to solve 8 unknown parameters by equation system, but for 2 stages PUF, these 4 equations are what attackers can possibly collect. Did I miss anything that can help solve the equations or it is absolutely not possible to do this in the real world?

Or maybe my whole idea is wrong, is there any way to collect the delay difference or delay of the components by just looking at challenges in the real world?

If you can give me some idea that would be great!! Thank you

You're right, there are more variables than equations, so there will be some degree of freedom when solving. However, any solution obtained using the equations that you have will result in delay values that satisfy your equations. In other words, many different delay values can result in the same response behavior of your PUF. One way to see this is that Arbiter PUF responses r can be essentially computed by a dot product, i.e. r(c) = sgn (<w,x>), where x is the feature vector computed from the challenge c. As you can see, scaling w with a positive scalar does not change the response behavior at all! This makes intuitive sense: it does not matter if your signal in the Arbiter PUF runs nanoseconds or hours -- the delay difference may not be affected.

To answer the question, no, you cannot fully determine the internal delays just be the response behavior because you do not know the scale. You can, however, determine the solution space, i.e. the set of all delay values that will result in this response behavior. This enables you to model the PUF and predict response behavior.