More improvements
This commit is contained in:
parent
1a7677c72f
commit
50173dd22d
2 changed files with 42 additions and 36 deletions
|
|
@ -4,6 +4,7 @@
|
||||||
|
|
||||||
A metric based @hda generates helper data at PUF enrollment to provide more reliable results at the reconstruction stage.
|
A metric based @hda generates helper data at PUF enrollment to provide more reliable results at the reconstruction stage.
|
||||||
Each of these metrics correspond to a quantizer with different bounds to lower the risk of bit or symbol errors during reconstruction.
|
Each of these metrics correspond to a quantizer with different bounds to lower the risk of bit or symbol errors during reconstruction.
|
||||||
|
For this kind of @hda, the generated metric is used as helper data and thus does not have to be kept secret.
|
||||||
|
|
||||||
== Background
|
== Background
|
||||||
|
|
||||||
|
|
@ -20,7 +21,23 @@ It has to be mentioned, that instead of transforming all values of the PUF reado
|
||||||
*/
|
*/
|
||||||
=== Two-Metric Helper Data Method <sect:tmhd>
|
=== Two-Metric Helper Data Method <sect:tmhd>
|
||||||
The most simple form of a metric-based @hda is the Two-Metric Helper Data Method, since the quantization only yields symbols of 1-bit width and uses the least amount of metrics possible if we want to use more than one metric.
|
The most simple form of a metric-based @hda is the Two-Metric Helper Data Method, since the quantization only yields symbols of 1-bit width and uses the least amount of metrics possible if we want to use more than one metric.
|
||||||
Publications @tmhd1 and @tmhd2 find all the relevant bounds for the enrollment and reconstruction phases under the assumption that the PUF readout is Gaussian distributed.
|
|
||||||
|
@fig:tmhd_example_enroll and @fig:tmhd_example_reconstruct illustrate an example enrollment and reconstruction process.
|
||||||
|
We would consider the marked point the value of the initial measurement and the marked range our margin of error.
|
||||||
|
If we now were to use the original quantizer shown in @fig:tmhd_example_enroll during both the enrollment and the reconstruction phases, we would risk a bit error, because the margin of error overlaps with the lower quantization bound $-a$, which we can call a point of uncertainty.
|
||||||
|
But since we generated helper data during enrollment as depicted in @fig:tmhd_enroll, we can make use of a different quantizer $cal(R)(1, 2, x)$ whose boundaries do not overlap with the error margin.
|
||||||
|
#scale(x: 90%, y: 90%)[
|
||||||
|
#grid(
|
||||||
|
columns: (1fr, 1fr),
|
||||||
|
[#figure(
|
||||||
|
include("../graphics/quantizers/two-metric/example_enroll.typ"),
|
||||||
|
caption: [Example enrollment]) <fig:tmhd_example_enroll>],
|
||||||
|
[#figure(
|
||||||
|
include("../graphics/quantizers/two-metric/example_reconstruct.typ"),
|
||||||
|
caption: [Example reconstruction]) <fig:tmhd_example_reconstruct>]
|
||||||
|
)]
|
||||||
|
|
||||||
|
Publications @tmhd1 and @tmhd2 find all the relevant bounds for the enrollment and reconstruction phases under the assumption that the PUF readout (our input value $x$) is zero-mean Gaussian distributed.
|
||||||
//Because the parameters for symbol width and number of metrics always stays the same, it is easier to calculate #margin-note[obdA annehmen hier] the bounds for 8 equi-probable areas with a standard deviation of $sigma = 1$ first and then multiplying them with the estimated standard deviation of the PUF readout.
|
//Because the parameters for symbol width and number of metrics always stays the same, it is easier to calculate #margin-note[obdA annehmen hier] the bounds for 8 equi-probable areas with a standard deviation of $sigma = 1$ first and then multiplying them with the estimated standard deviation of the PUF readout.
|
||||||
Because the parameters for symbol width and number of metrics always stays the same, we can -- without loss of generality -- assume the standard deviation as $sigma = 1$ and calculate the bounds for 8 equi-probable areas for this distribution.
|
Because the parameters for symbol width and number of metrics always stays the same, we can -- without loss of generality -- assume the standard deviation as $sigma = 1$ and calculate the bounds for 8 equi-probable areas for this distribution.
|
||||||
This is done by finding two bounds $a$ and $b$ such, that
|
This is done by finding two bounds $a$ and $b$ such, that
|
||||||
|
|
@ -34,7 +51,8 @@ $ M = cases(
|
||||||
\M2\, -a < x or 1 < a < x
|
\M2\, -a < x or 1 < a < x
|
||||||
)space.en. $
|
)space.en. $
|
||||||
|
|
||||||
@fig:tmhd_enroll shows the curve of a quantizer $cal(Q)$ that would be used during the Two-Metric enrollment phase. At this point we will still assume that our input value $x$ is zero-mean Gaussian distributed. #margin-note[Als Annahme nach vorne verschieben]
|
@fig:tmhd_enroll shows the curve of a quantizer $cal(Q)$ that would be used during the Two-Metric enrollment phase.
|
||||||
|
At this point we will still assume that our input value $x$ is zero-mean Gaussian distributed. #margin-note[Als Annahme nach vorne verschieben]
|
||||||
#scale(x: 90%, y: 90%)[
|
#scale(x: 90%, y: 90%)[
|
||||||
#grid(
|
#grid(
|
||||||
columns: (1fr, 1fr),
|
columns: (1fr, 1fr),
|
||||||
|
|
@ -47,34 +65,20 @@ $ M = cases(
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
|
||||||
The metric will be stored publicly#margin-note[Modellbeschreibung, weiter vorne] for every quantized bit as helper data.
|
|
||||||
As previously described, each of these metrics correspond to a different quantizer.
|
As previously described, each of these metrics correspond to a different quantizer.
|
||||||
Now, we can use the generated helper data in the reconstruction phase and define a reconstructed bit based on the chosen metric as follows:
|
Now, we can use the generated helper data in the reconstruction phase and define a reconstructed bit based on the chosen metric as follows:
|
||||||
|
|
||||||
$ #grid(
|
$ #grid(
|
||||||
columns: (1fr, 1fr),
|
columns: (1fr, 1fr),
|
||||||
align: (center, center),
|
align: (center, center),
|
||||||
math.equation($\M1: k = cases(0\, x < \T1 or \T2 < x, 1\, -\T1 < x < \T2)$, block: true, numbering: none),
|
math.equation($\M1: k = cases(0\, x < \T1 or \T2 < x, 1\, -\T1 < x < \T2),$, block: true, numbering: none),
|
||||||
math.equation($\M2: k = cases(0\, x < -\T2 or \T1 < x, 1\, -\T2 < x < \T1)$, block: true, numbering: none)
|
math.equation($\M2: k = cases(0\, x < -\T2 or \T1 < x, 1\, -\T2 < x < \T1).$, block: true, numbering: none)
|
||||||
) $
|
) $
|
||||||
|
|
||||||
@fig:tmhd_reconstruct illustrates the basic idea behind the Two-Metric method. Using the helper data, we will move the bounds of the original quantizer one octile to each side, yielding two new quantizers.
|
@fig:tmhd_reconstruct illustrates the basic idea behind the Two-Metric method. Using the helper data, we will move the bounds of the original quantizer (@fig:tmhd_example_enroll) one octile to each side, yielding two new quantizers.
|
||||||
The advantage of this method comes from moving the point of uncertainty away from our readout position.
|
The advantage of this method comes from moving the point of uncertainty away from our readout position.
|
||||||
|
|
||||||
@fig:tmhd_example_enroll and @fig:tmhd_example_reconstruct illustrate an example enrollment and reconstruction process.
|
|
||||||
We would consider the marked point the value of the initial measurement and the marked range our margin of error.
|
|
||||||
If we now were to use the quantizer shown in @fig:tmhd_example_enroll during both the enrollment and the reconstruction phases, we would risk a bit error, because the margin of error overlaps with the lower quantization bound $-a$.
|
|
||||||
But since we generated helper data during enrollment as depicted in @fig:tmhd_enroll, we can make use of a different quantizer $cal(R)(1, 2, x)$ whose boundaries do not overlap with the error margin.
|
|
||||||
#scale(x: 90%, y: 90%)[
|
|
||||||
#grid(
|
|
||||||
columns: (1fr, 1fr),
|
|
||||||
[#figure(
|
|
||||||
include("../graphics/quantizers/two-metric/example_enroll.typ"),
|
|
||||||
caption: [Example enrollment]) <fig:tmhd_example_enroll>],
|
|
||||||
[#figure(
|
|
||||||
include("../graphics/quantizers/two-metric/example_reconstruct.typ"),
|
|
||||||
caption: [Example reconstruction]) <fig:tmhd_example_reconstruct>]
|
|
||||||
)]
|
|
||||||
|
|
||||||
=== S-Metric Helper Data Method
|
=== S-Metric Helper Data Method
|
||||||
|
|
||||||
|
|
@ -84,7 +88,7 @@ This generalization allows for higher-order bit quantization and the use of more
|
||||||
A key difference to the Two-Metric approach is the alignment of quantization areas.
|
A key difference to the Two-Metric approach is the alignment of quantization areas.
|
||||||
Methods described in @tmhd1 and @tmhd2 use two bounds for 1-bit quantization, namely $plus.minus a$.
|
Methods described in @tmhd1 and @tmhd2 use two bounds for 1-bit quantization, namely $plus.minus a$.
|
||||||
Contrary, the method introduced by Fischer in @smhd would look more like a sign-based quantizer if the configuration $cal(Q)(2, 1)$ is used, using only one quantization bound at $x=0$.
|
Contrary, the method introduced by Fischer in @smhd would look more like a sign-based quantizer if the configuration $cal(Q)(2, 1)$ is used, using only one quantization bound at $x=0$.
|
||||||
@fig:smhd_compar1 and @fig:smhd_compar2 illustrate this difference.
|
@fig:smhd_compar1 and @fig:smhd_compar2 illustrate this difference, .
|
||||||
|
|
||||||
#grid(
|
#grid(
|
||||||
columns: (1fr, 1fr),
|
columns: (1fr, 1fr),
|
||||||
|
|
@ -112,19 +116,19 @@ We will now propose a specific realization of the S-Metric Helper Data Method. \
|
||||||
This allows us to use equi-distant bounds for the quantizer instead of equi-probable ones.
|
This allows us to use equi-distant bounds for the quantizer instead of equi-probable ones.
|
||||||
|
|
||||||
From now on we will use the following syntax for quantizers that use the S-Metric Helper Data Method:
|
From now on we will use the following syntax for quantizers that use the S-Metric Helper Data Method:
|
||||||
$ cal(Q)(s, m, tilde(x)) $
|
$ cal(Q)(S, M, tilde(x)), $
|
||||||
|
|
||||||
where $s$ defines the number of metrics, $m$ the number of bits and $tilde(x)$ a Tilde-Domain transformed PUF measurement.
|
where $S$ defines the number of metrics, $M$ the number of bits and $tilde(x)$ a Tilde-Domain transformed PUF measurement.
|
||||||
=== Enrollment
|
=== Enrollment
|
||||||
|
|
||||||
To enroll our PUF key, we will first need to define the quantizer for higher order bit quantization and helper data generation.
|
To enroll our PUF key, we will first need to define the quantizer for higher order bit quantization and helper data generation.
|
||||||
Because our transformed PUF readout $tilde(x)$ can be interpreted as a realization of a uniformly distributed variable $tilde(X)$, we can define the width $Delta$ of our quantizer bins as follows:
|
Because our transformed PUF readout $tilde(x)$ can be interpreted as a realization of a uniformly distributed variable $tilde(X)$, we can define the width $Delta$ of our quantizer bins as follows:
|
||||||
|
|
||||||
$ Delta = frac(1, 2^m) . $<eq:delta>
|
$ Delta = frac(1, 2^M) . $<eq:delta>
|
||||||
|
|
||||||
For example, if we were to extract a symbol with the width of 2 bits from our PUF readout, we would need to evenly space $2^2 = 4$ bins. Using equation @eq:delta, the step size for a 2-bit quantizer would result to:
|
For example, if we were to extract a symbol with the width of 2 bits from our PUF readout, we would need to evenly space $2^2 = 4$ bins. Using equation @eq:delta, the step size for a 2-bit quantizer would result to:
|
||||||
|
|
||||||
$ Delta' = lr(frac(1, 2^m) mid(|))_(m=2)= frac(1, 4) . $
|
$ Delta' = lr(frac(1, 2^M) mid(|))_(M=2)= frac(1, 4) . $
|
||||||
|
|
||||||
@fig:smhd_two_bit shows a plot of the resulting quantizer function that would yield symbols with two bits for one measurement $tilde(x)$.
|
@fig:smhd_two_bit shows a plot of the resulting quantizer function that would yield symbols with two bits for one measurement $tilde(x)$.
|
||||||
|
|
||||||
|
|
@ -135,20 +139,22 @@ $ Delta' = lr(frac(1, 2^m) mid(|))_(m=2)= frac(1, 4) . $
|
||||||
|
|
||||||
Right now, this quantizer wouldn't help us generating any helper data.
|
Right now, this quantizer wouldn't help us generating any helper data.
|
||||||
To achieve that, we will need to divide a symbol step -- one, that returns the corresponding quantized symbol - into multiple sub-steps.
|
To achieve that, we will need to divide a symbol step -- one, that returns the corresponding quantized symbol - into multiple sub-steps.
|
||||||
More specifically, we will define the number of metrics we want to use with the parameter $s$. Using $s$, we can define the step size $Delta_s$ as the division of $Delta$ by $s$:
|
Using $S$, we can define the step size $Delta_S$ as the division of $Delta$ by $S$:
|
||||||
|
|
||||||
$ Delta_s = frac(Delta, s) = frac(frac(1, 2^m), s) = frac(1, 2^m dot s) $<eq:delta_s>
|
$ Delta_S = frac(Delta, S) = frac(frac(1, 2^M), S) = frac(1, 2^M dot S) $<eq:delta_s>
|
||||||
|
|
||||||
After this definition #margin-note[Absatz nochmal neu], we need to make an adjustment to our previously defined quantizer function, because we cannot simply return the quantized value based on a quantizer with step size $Delta_s$.
|
/*After this definition #margin-note[Absatz nochmal neu], we need to make an adjustment to our previously defined quantizer function, because we cannot simply return the quantized value based on a quantizer with step size $Delta_s$.
|
||||||
That would just increase the amounts of bits we will extract out of one measurement.
|
That would just increase the amounts of bits we will extract out of one measurement.
|
||||||
Instead, we will need to return a tuple, consisting of the quantized symbol and the metric ascertained that we will save as helper data for later.
|
Instead, we will need to return a tuple, consisting of the quantized symbol and the metric ascertained that we will save as helper data for later.
|
||||||
|
*/
|
||||||
|
We can now redefine our previously defined quantizer function to not only return the quantized symbol, but a tuple consisting of the quantized symbol and the metric ascertained that we will save as helper data for later.
|
||||||
|
|
||||||
Going on in our example, we could choose the amount of our metrics to be 2. According to @eq:delta_s, we would then half our step size:
|
Going on in our example, we could choose the amount of our metrics to be 2. According to @eq:delta_s, we would then half our step size:
|
||||||
|
|
||||||
$ Delta'_s = lr(frac(Delta', s)mid(|))_(s=2) = frac(1, 4 dot 2) = frac(1, 8) $
|
$ Delta'_S = lr(frac(Delta', S)mid(|))_(S=2) = frac(1, 4 dot 2) = frac(1, 8) $
|
||||||
|
|
||||||
|
|
||||||
This means, we can update our quantizer function with the new step size $Delta'_s = frac(1, 8)$ and redefining its output as a tuple consisting of bit value and helper data.
|
This means, we can update our quantizer function with the new step size $Delta'_S = frac(1, 8)$ and redefining its output as a tuple consisting of bit value and helper data.
|
||||||
|
|
||||||
We can visualize the quantizer that we will use during the enrollment phase of a 2-bit 2-metric configuration as depicted in @fig:smhd_2_2_en.
|
We can visualize the quantizer that we will use during the enrollment phase of a 2-bit 2-metric configuration as depicted in @fig:smhd_2_2_en.
|
||||||
|
|
||||||
|
|
@ -182,9 +188,7 @@ We already demonstrated the basic principle of the reconstruction phase in secti
|
||||||
We will call our repeated measurement of $tilde(x)$ that is subject to a certain error $tilde(x^*)$.
|
We will call our repeated measurement of $tilde(x)$ that is subject to a certain error $tilde(x^*)$.
|
||||||
To perform reconstruction with $tilde(x^*)$, we will first need to find all $S$ quantizers for which we generated the helper data in the previous step.
|
To perform reconstruction with $tilde(x^*)$, we will first need to find all $S$ quantizers for which we generated the helper data in the previous step.
|
||||||
|
|
||||||
We have to distinguish two different cases for the value of $S$:
|
We have to distinguish the two cases, that $S$ is either even or odd.
|
||||||
- $S$ is odd
|
|
||||||
- $S$ is even
|
|
||||||
|
|
||||||
If $S$ is even, we need to move our quantizer $S/2$ times some distance to the right and $S/2$ times some distance to the left.
|
If $S$ is even, we need to move our quantizer $S/2$ times some distance to the right and $S/2$ times some distance to the left.
|
||||||
We can define the ideal position for the quantizer bounds based on its corresponding metric as centered around the center of the related metric.
|
We can define the ideal position for the quantizer bounds based on its corresponding metric as centered around the center of the related metric.
|
||||||
|
|
@ -230,13 +234,15 @@ As for metric 2, we can apply the same strategy and find the points for the vert
|
||||||
|
|
||||||
Analytically, the offset we are applying to $cal(E)(2, 2, tilde(x))$ can be defined as
|
Analytically, the offset we are applying to $cal(E)(2, 2, tilde(x))$ can be defined as
|
||||||
|
|
||||||
$ Phi = lr(frac(1, 2^M dot S dot 2)mid(|))_(M=2, S=2) = 1 / 16 $<eq:offset>
|
$ Phi = lr(frac(1, 2^M dot S dot 2)mid(|))_(M=2, S=2) = 1 / 16 space.en. $<eq:offset>
|
||||||
|
|
||||||
This is also shown in @fig:smhd_2_2_reconstruction, as our quantizer curve is moved $1/16$ to the left and the right.
|
$Phi$ is the constant that we will multiply with a certain metric index $i$ to obtain the metric offset $phi$, which is used to define each of the $S$ different quantizers for reconstruction.
|
||||||
|
//This is also shown in @fig:smhd_2_2_reconstruction, as our quantizer curve is moved $1/16$ to the left and the right.
|
||||||
|
In @fig:smhd_2_2_reconstruction, the two metric indices $i = plus.minus 1$ will be multiplied with $Phi$, yielding two quantizers, one moved $1/16$ to the left and one moved $1/16$ to the right.
|
||||||
|
|
||||||
If a odd number of metrics is given, the offset can still be calculated using @eq:offset. Additionally, we will keep the original quantizer used during enrollment (@fig:smhd_3_2_reconstruction).
|
If a odd number of metrics is given, the offset can still be calculated using @eq:offset. Additionally, we will keep the original quantizer used during enrollment (@fig:smhd_3_2_reconstruction).
|
||||||
|
|
||||||
Comparing @fig:smhd_2_2_reconstruction, @fig:smhd_3_2_reconstruction and their respective values of @eq:offset, we can observe, that the offset $phi$ gets smaller the more metrics we use.
|
Comparing @fig:smhd_2_2_reconstruction, @fig:smhd_3_2_reconstruction and their respective values of @eq:offset, we can observe, that the offset $Phi$ gets smaller the more metrics we use.
|
||||||
|
|
||||||
|
|
||||||
#figure(
|
#figure(
|
||||||
|
|
|
||||||
BIN
main.pdf
BIN
main.pdf
Binary file not shown.
Loading…
Add table
Add a link
Reference in a new issue