From f05da8ffa621e0e6f7a4a9caf39f60a9b5d5082b Mon Sep 17 00:00:00 2001 From: jaseg Date: Wed, 28 Aug 2024 17:39:23 +0200 Subject: [PATCH] Add top-down mesh layout illustrations --- chapter-qkd/chapter.tex | 44 +- .../figures/shaft_countermeasures_b.pdf | Bin 0 -> 16653 bytes .../figures/shaft_countermeasures_b.svg | 1124 +++++++++++++++++ 3 files changed, 1167 insertions(+), 1 deletion(-) create mode 100644 chapter-qkd/figures/shaft_countermeasures_b.pdf create mode 100644 chapter-qkd/figures/shaft_countermeasures_b.svg diff --git a/chapter-qkd/chapter.tex b/chapter-qkd/chapter.tex index 8f4b483..7500153 100644 --- a/chapter-qkd/chapter.tex +++ b/chapter-qkd/chapter.tex @@ -628,6 +628,12 @@ interlocking gear mesh. \subsection{Simple disc cover} +\begin{figure}[h!] + \centering + \includegraphics[width=\textwidth,page=1]{shaft_countermeasures_b.pdf} + \caption[Coaxial disc mesh schema, top-down view]{Coaxial disc mesh schema, top-down view} +\end{figure} + In Chapter \todoplaceholder{Provide link to single-board IHSM chapter here}, we have shown how an IHSM that has been shrunk to a single, disc-shaped PCB is still useful because we can delegate key management functionality to the mesh monitoring circuit's microcontroller or a separate processor sitting next to it on the rotating mesh PCB, yielding a @@ -648,8 +654,22 @@ the minimum bend radius specification that is common in telecom fiber optics.\to \todoplaceholder{Finish this part.} +\subsection{Coaxial labyrinth meshes} + +\begin{figure}[h!] + \centering + \includegraphics[width=\textwidth,page=2]{shaft_countermeasures_b.pdf} + \caption[Coaxial labyrinth mesh schema, top-down view]{Coaxial labyrinth mesh schema, top-down view} +\end{figure} + \subsection{Offset labyrinth meshes} +\begin{figure}[h!] + \centering + \includegraphics[width=\textwidth,page=3]{shaft_countermeasures_b.pdf} + \caption[Offset labyrinth mesh schema, top-down view]{Offset labyrinth mesh schema, top-down view} +\end{figure} + In QKD applications, the simple disc cover design shown above has two main limitations. First, the distance between the primary and secondary meshes must be large enough to allow for the fibers' minimum bend radius, resulting in more than \qty{10}{\milli\meter} of space available to an attacker. Second, the attacker only has to bend their tool twice to @@ -663,10 +683,32 @@ Structural support is provided using a CNC machined or 3D printed part, which al connections from the shaft to the payload using Flexible Flat Cable (FFC). While the FFC can easily conform to the offset labyrinth's sharp corners, an optical fiber can not. Thus, instead of passing it straight through the labyrinth, the payload's fiber optic connections are passed through the labyrinth in a three-dimensional spiral shape, avoiding the -meshes while simultaneously keeping the fibers' bend radii large. +meshes while simultaneously maximizing the fibers' bend radii. \subsection{Interlocking gear meshes} +\begin{figure}[h!] + \centering + \includegraphics[width=\textwidth,page=4]{shaft_countermeasures_b.pdf} + \caption[Offset gear labyrinth mesh schema, top-down view]{Offset gear labyrinth mesh schema, top-down view} +\end{figure} + +The offset labyrinth design already achieves a high level of security through its complex passthrough shape, but its +construction provides some challenges. First, with increasing offset, the step size of one mesh ring's diameter to the +next increases as well. Even if we only use, say, four mesh rings, this results in a large outer diameter. Second, fiber +passthrough in the plain offset configuration is possible, but the fiber must be wound in a spiral to pass the two +meshes' rings alternating from one side to the other because the side with more space alternates from ring to ring. + +Both of these disadvantages can be worked around using a design where the two meshes interlock like gears. This does +mean that the two meshes' rotation must be synchronized, but it allows for a tighter spacing even when using an offset +design. Additionally, in a gear setup, the wide sides of the inter-mesh zones can be aligned to lie on the same side, so +fiber passthrough can be realized more easily without the need to spiral the fiber around the axes of rotation. + +\subsection{Mesh synchronization} + +For geared meshes to work, both speed and phase of the rotation of the two meshes must be synchronized to a small error. +In this setup, the mesh tabs act like gear teeth. Depending on the ratio between both meshes' tap counts, the two +meshes do not have to rotate at the same rate of rotation. Instead, harmonic ratios are possible. \begin{figure} \centering diff --git a/chapter-qkd/figures/shaft_countermeasures_b.pdf b/chapter-qkd/figures/shaft_countermeasures_b.pdf new file mode 100644 index 0000000000000000000000000000000000000000..c81cf3329edb439d585a4610f9ec10714de0e2ce GIT binary patch literal 16653 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 +image/svg+xml12345123451234512345123451234512345