diff options
-rw-r--r-- | doc/quick-tech-report/concept_vis_one_axis.pdf | bin | 0 -> 6623 bytes | |||
-rw-r--r-- | doc/quick-tech-report/concept_vis_one_axis.svg | 344 | ||||
-rw-r--r-- | doc/quick-tech-report/rotohsm_tech_report.tex | 95 |
3 files changed, 414 insertions, 25 deletions
diff --git a/doc/quick-tech-report/concept_vis_one_axis.pdf b/doc/quick-tech-report/concept_vis_one_axis.pdf Binary files differnew file mode 100644 index 0000000..ea37280 --- /dev/null +++ b/doc/quick-tech-report/concept_vis_one_axis.pdf diff --git a/doc/quick-tech-report/concept_vis_one_axis.svg b/doc/quick-tech-report/concept_vis_one_axis.svg new file mode 100644 index 0000000..f3e909b --- /dev/null +++ b/doc/quick-tech-report/concept_vis_one_axis.svg @@ -0,0 +1,344 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="41mm" + height="48.763126mm" + viewBox="0 0 41 48.763126" + version="1.1" + id="svg8" + sodipodi:docname="concept_vis_one_axis.svg" + inkscape:version="0.92.4 (5da689c313, 2019-01-14)"> + <defs + id="defs2"> + <inkscape:perspective + sodipodi:type="inkscape:persp3d" + inkscape:vp_x="16.373562 : -33.570779 : 0" + inkscape:vp_y="2.5410171e-15 : 41.497959 : 0" + inkscape:vp_z="-28.645893 : 3.5081102e-15 : 0" + inkscape:persp3d-origin="18.745461 : 53.831281 : 1" + id="perspective983" /> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="3.68" + inkscape:cx="85.615364" + inkscape:cy="90.945457" + inkscape:document-units="mm" + inkscape:current-layer="layer1" + showgrid="false" + inkscape:snap-global="false" + inkscape:window-width="1920" + inkscape:window-height="1030" + inkscape:window-x="0" + inkscape:window-y="50" + inkscape:window-maximized="0" + fit-margin-top="3" + fit-margin-left="3" + fit-margin-right="3" + fit-margin-bottom="3" /> + <metadata + id="metadata5"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(-42.455104,-162.71165)"> + <g + id="g1059" + style="fill:#e59cb7;fill-opacity:1" + transform="matrix(0.27419209,0,0,0.27419209,32.991674,151.31264)"> + <rect + y="123.61843" + x="72.964539" + height="50.270836" + width="73.766556" + id="rect1142-9" + style="opacity:1;vector-effect:none;fill:#e59cb7;fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <rect + y="90.734512" + x="72.964539" + height="50.270836" + width="73.766556" + id="rect1142" + style="opacity:1;vector-effect:none;fill:#e59cb7;fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + </g> + <ellipse + style="opacity:1;vector-effect:none;fill:#d25483;fill-opacity:1;stroke:none;stroke-width:0.02741921;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path815-2" + cx="63.111061" + cy="198.99176" + rx="10.11308" + ry="4.0855379" /> + <ellipse + style="opacity:1;vector-effect:none;fill:#efc1d2;fill-opacity:1;stroke:none;stroke-width:0.02741921;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path815" + cx="63.111061" + cy="176.19139" + rx="10.11308" + ry="4.0855379" /> + <g + id="g1140" + transform="matrix(0.27419209,0,0,0.27419209,31.744781,151.76936)"> + <ellipse + ry="0.91515708" + rx="2.2653215" + cy="90.401382" + cx="108.77869" + id="path815-5-8" + style="opacity:1;vector-effect:none;fill:#6699ff;fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <ellipse + ry="0.91515708" + rx="2.2653215" + cy="173.55614" + cx="108.77869" + id="path815-5-8-9" + style="opacity:1;vector-effect:none;fill:#6699ff;fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <path + id="rect999-0-6" + transform="scale(0.26458333)" + d="m 362.64453,390.1582 v 26.78711 h -18.21484 v 188.50977 h 7.55859 l -37.83008,29.16015 h 45.45703 l 48.48633,-37.375 V 390.1582 Z" + style="opacity:1;vector-effect:none;fill:#ffe57e;fill-opacity:1;stroke:none;stroke-width:0.37795272;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + inkscape:connector-curvature="0" /> + <rect + transform="matrix(1,0,0.79201025,-0.61050779,0,0)" + y="-185.28603" + x="229.86925" + height="16.197948" + width="12.027128" + id="rect999-0" + style="opacity:1;vector-effect:none;fill:#fff2bd;fill-opacity:1;stroke:none;stroke-width:0.12798361;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <rect + y="113.11856" + x="83.120819" + height="54.790253" + width="12.027128" + id="rect999" + style="opacity:1;vector-effect:none;fill:#fecb00;fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + </g> + <g + id="g1063" + transform="matrix(0.27419209,0,0,0.27419209,32.991674,151.31264)"> + <rect + y="61.600155" + x="106.51337" + height="141.3616" + width="4.530643" + id="rect843" + style="opacity:1;vector-effect:none;fill:#ffab66;fill-opacity:1;stroke:none;stroke-width:0.10000002;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <ellipse + ry="0.91515708" + rx="2.2653215" + cy="202.97786" + cx="108.77869" + id="path815-5-8-6" + style="opacity:1;vector-effect:none;fill:#ffab66;fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + </g> + <path + inkscape:connector-curvature="0" + style="opacity:1;vector-effect:none;fill:#efc1d2;fill-opacity:1;stroke:none;stroke-width:0.02741921;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 52.997974,176.19133 a 10.113081,4.085538 0 0 0 10.113033,4.08556 10.113081,4.085538 0 0 0 10.113174,-4.08556 z" + id="path815-56" /> + <ellipse + style="opacity:1;vector-effect:none;fill:#c35800;fill-opacity:1;stroke:none;stroke-width:0.02741921;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path815-5" + cx="62.817928" + cy="168.21754" + rx="0.62113321" + ry="0.25092882" /> + <path + inkscape:connector-curvature="0" + style="opacity:1;vector-effect:none;fill:#d25483;fill-opacity:1;stroke:none;stroke-width:0.02741921;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 52.997973,198.9917 a 10.11308,4.0855378 0 0 0 10.113033,4.08557 10.11308,4.0855378 0 0 0 10.113175,-4.08557 z" + id="path815-56-9" /> + <circle + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#404040;stroke-width:0.46612653;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path1173" + cx="62.916512" + cy="-198.78389" + r="2.6841922" + transform="scale(1,-1)" /> + <path + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#404040;stroke-width:0.46612653;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 65.061099,200.50243 4.832125,4.83213" + id="path916" + inkscape:connector-curvature="0" /> + <flowRoot + xml:space="preserve" + id="flowRoot932" + style="font-style:normal;font-weight:normal;font-size:8.02177334px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#404040;fill-opacity:1;stroke:none;stroke-width:0.13746917px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + transform="matrix(0.52773033,0,0,0.52773033,-194.48069,94.704073)"><flowRegion + id="flowRegion934" + style="font-size:8.02177334px;fill:#404040;stroke-width:0.13746917px"><rect + id="rect936" + width="232.85715" + height="202.14285" + x="502.14285" + y="206.8054" + style="font-size:8.02177334px;fill:#404040;stroke-width:0.13746917px" /></flowRegion><flowPara + id="flowPara938" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.02177334px;font-family:'Noto Sans';-inkscape-font-specification:'Noto Sans';fill:#404040;stroke-width:0.13746917px">5</flowPara></flowRoot> <flowRoot + xml:space="preserve" + id="flowRoot932-4" + style="font-style:normal;font-weight:normal;font-size:8.02177334px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#404040;fill-opacity:1;stroke:none;stroke-width:0.13746917px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + transform="matrix(0.52773033,0,0,0.52773033,-219.39342,56.516197)"><flowRegion + id="flowRegion934-7" + style="font-size:8.02177334px;fill:#404040;stroke-width:0.13746917px"><rect + id="rect936-8" + width="232.85715" + height="202.14285" + x="502.14285" + y="206.8054" + style="font-size:8.02177334px;fill:#404040;stroke-width:0.13746917px" /></flowRegion><flowPara + id="flowPara938-6" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.02177334px;font-family:'Noto Sans';-inkscape-font-specification:'Noto Sans';fill:#404040;stroke-width:0.13746917px">1</flowPara></flowRoot> <path + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#404040;stroke-width:0.4661265;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 55.853748,191.05184 -6.884056,7.25047" + id="path916-2-3" + inkscape:connector-curvature="0" /> + <flowRoot + xml:space="preserve" + id="flowRoot932-4-7" + style="font-style:normal;font-weight:normal;font-size:8.02177334px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#404040;fill-opacity:1;stroke:none;stroke-width:0.13746917px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + transform="matrix(0.52773033,0,0,0.52773033,-219.22675,87.653879)"><flowRegion + id="flowRegion934-7-7" + style="font-size:8.02177334px;fill:#404040;stroke-width:0.13746917px"><rect + id="rect936-8-2" + width="232.85715" + height="202.14285" + x="502.14285" + y="206.8054" + style="font-size:8.02177334px;fill:#404040;stroke-width:0.13746917px" /></flowRegion><flowPara + id="flowPara938-6-3" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.02177334px;font-family:'Noto Sans';-inkscape-font-specification:'Noto Sans';fill:#404040;stroke-width:0.13746917px">3</flowPara></flowRoot> <path + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#404040;stroke-width:0.4661265;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="M 77.179158,195.62747 69.269136,191.4549" + id="path916-2-3-7" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cc" /> + <flowRoot + xml:space="preserve" + id="flowRoot932-2" + style="font-style:normal;font-weight:normal;font-size:8.02177334px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#404040;fill-opacity:1;stroke:none;stroke-width:0.13746917px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + transform="matrix(0.52773033,0,0,0.52773033,-187.27112,84.532865)"><flowRegion + id="flowRegion934-5" + style="font-size:8.02177334px;fill:#404040;stroke-width:0.13746917px"><rect + id="rect936-3" + width="232.85715" + height="202.14285" + x="502.14285" + y="206.8054" + style="font-size:8.02177334px;fill:#404040;stroke-width:0.13746917px" /></flowRegion><flowPara + id="flowPara938-7" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.02177334px;font-family:'Noto Sans';-inkscape-font-specification:'Noto Sans';fill:#404040;stroke-width:0.13746917px">2</flowPara></flowRoot> <circle + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:0.46612653;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path1173-6" + cx="62.916512" + cy="-198.78389" + r="2.6841922" + transform="scale(1,-1)" /> + <path + inkscape:connector-curvature="0" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.46612656;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + d="m 65.058715,200.26718 a 0.23308658,0.23308658 0 0 0 -0.162239,0.4 l 2.095919,2.09592 a 10.113081,4.085538 0 0 0 0.553451,-0.10528 l -2.319934,-2.31993 a 0.23308658,0.23308658 0 0 0 -0.167197,-0.0707 z" + id="path916-8" /> + <path + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#404040;stroke-width:0.4661265;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="M 62.41665,170.82997 48.545276,168.19178" + id="path916-2-3-3" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cc" /> + <g + sodipodi:type="inkscape:box3d" + id="g974" + style="opacity:1;vector-effect:none;fill:#66e4ff;fill-opacity:1;stroke:none;stroke-width:0.37795275;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + inkscape:perspectiveID="#perspective983" + inkscape:corner0="0.56858819 : 0.029202637 : 0 : 1" + inkscape:corner7="0.63016664 : 0.059111984 : 0.13997644 : 1"> + <path + sodipodi:type="inkscape:box3dside" + id="path976" + style="fill:#66e4ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.09783555px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" + inkscape:box3dsidetype="6" + d="m 70.510379,175.51959 v -1.24117 h -4.00975 v 1.24117 z" + points="70.510379,174.27842 66.500629,174.27842 66.500629,175.51959 70.510379,175.51959 " /> + <path + sodipodi:type="inkscape:box3dside" + id="path980" + style="fill:#66e4ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.09783555px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" + inkscape:box3dsidetype="3" + d="m 70.510379,175.51959 1.008259,2.06724 v -1.24118 l -1.008259,-2.06723 z" + points="71.518638,177.58683 71.518638,176.34565 70.510379,174.27842 70.510379,175.51959 " /> + <path + sodipodi:type="inkscape:box3dside" + id="path978" + style="fill:#66e4ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.09783555px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" + inkscape:box3dsidetype="5" + d="m 70.510379,175.51959 1.008259,2.06724 h -4.00975 l -1.008259,-2.06724 z" + points="71.518638,177.58683 67.508888,177.58683 66.500629,175.51959 70.510379,175.51959 " /> + <path + sodipodi:type="inkscape:box3dside" + id="path984" + style="fill:#d4f7ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.09783555px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" + inkscape:box3dsidetype="13" + d="m 70.510379,174.27842 1.008259,2.06723 h -4.00975 l -1.008259,-2.06723 z" + points="71.518638,176.34565 67.508888,176.34565 66.500629,174.27842 70.510379,174.27842 " /> + <path + sodipodi:type="inkscape:box3dside" + id="path982" + style="fill:#20d8ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.09783555px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" + inkscape:box3dsidetype="14" + d="m 71.518638,177.58683 v -1.24118 h -4.00975 v 1.24118 z" + points="71.518638,176.34565 67.508888,176.34565 67.508888,177.58683 71.518638,177.58683 " /> + <path + sodipodi:type="inkscape:box3dside" + id="path986" + style="fill:#0094b4;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.09783555px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" + inkscape:box3dsidetype="11" + d="m 66.500629,175.51959 1.008259,2.06724 v -1.24118 l -1.008259,-2.06723 z" + points="67.508888,177.58683 67.508888,176.34565 66.500629,174.27842 66.500629,175.51959 " /> + </g> + <path + style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#404040;stroke-width:0.4661265;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 76.603978,171.17976 -7.334841,4.10067" + id="path916-2-3-7-2" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cc" /> + <flowRoot + xml:space="preserve" + id="flowRoot932-2-9" + style="font-style:normal;font-weight:normal;font-size:8.02177429px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#404040;fill-opacity:1;stroke:none;stroke-width:0.13746917px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + transform="matrix(0.52773032,0,0,0.52773032,-187.44932,58.391986)"><flowRegion + id="flowRegion934-5-1" + style="font-size:8.02177429px;fill:#404040;stroke-width:0.13746917px"><rect + id="rect936-3-2" + width="232.85715" + height="202.14285" + x="502.14285" + y="206.8054" + style="font-size:8.02177429px;fill:#404040;stroke-width:0.13746917px" /></flowRegion><flowPara + id="flowPara938-7-7" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.02177429px;font-family:'Noto Sans';-inkscape-font-specification:'Noto Sans';fill:#404040;stroke-width:0.13746917px">4</flowPara></flowRoot> </g> +</svg> diff --git a/doc/quick-tech-report/rotohsm_tech_report.tex b/doc/quick-tech-report/rotohsm_tech_report.tex index de73cbb..0f8e8d4 100644 --- a/doc/quick-tech-report/rotohsm_tech_report.tex +++ b/doc/quick-tech-report/rotohsm_tech_report.tex @@ -165,9 +165,9 @@ This work contains the following contributions: \begin{enumerate} \item We present the \emph{Inertial HSM} concept. Inertial HSMs enable cost-effective small-scale production of highly secure HSMs. - \item We discuss possible boundary sensing modes for intertial HSMs. + \item We discuss possible boundary sensing modes for inertial HSMs. \item We explore the design space our inertial HSM concept. - % FIXME \item Presentation of a prototype inertial HSM. + \item We present a prototype of an inertial HSM. % FIXME \item Measurement of the prototype HSM's susceptibility to various types of attack. \end{enumerate} @@ -215,11 +215,10 @@ very high-performance one. The closes to a mechanical HSM that we were able to f patent \cite{rahman1988} that describes an mechanism to detect tampering along a communication cable by enclosing the cable inside a conduit filled with pressurized gas. -\section{Intertial HSM construction and operation} +\section{Inertial HSM construction and operation} \subsection{Using motion for tamper detection} Mechanical motion has been proposed as a means of making things harder to see with the human eye\cite{haines2006} but we -seem to be the first to use it in tamper detection. Let us think about how one would go about increasing the security of -a primitive tamper detection sensor. +seem to be the first to use it in tamper detection. Let us think about the constraints of our approach. \begin{enumerate} \item We need the sensor's motion to be fairly fast. If any point of the sensor moves slow enough for a human to @@ -249,6 +248,14 @@ From this, we can make a few observations. power supply of the payload. \end{enumerate} +\begin{figure} + \center + \includegraphics{concept_vis_one_axis.pdf} + \caption{Concept of a simple rotating inertial HSM. 1 - Axis of rotation. 2 - Security mesh. 3 - Payload. 4 - + Accelerometer. 5 - Shaft penetrating security mesh.} + \label{fig_schema_one_axis} +\end{figure} + In a rotating reference frame, at any point the centrifugal force is proportional to the square of the angular frequency and linearly proportional to the distance from the axis of rotation. We can exploit this fact to create a sensor that detects any disturbance of the rotation by simply placing a linear accelerometer at some distance to the axis of @@ -259,11 +266,15 @@ challenge of preventing the whole thing from flying apart, but also creates an o manipulate the sensor. \subsection{Payload mounting mechanisms} -The simplest way to mount a stationary payload in a rotating security mesh is to drive the rotor through a -hollow axis. This allows the payload to be mounted on a fixed rod threaded through the hollow axis, along with wires for -power and data. + +The simplest way to mount a stationary payload in a rotating security mesh is to drive the rotor using a hollow shaft. +This allows the payload to be mounted on a fixed rod threaded through this hollow shaft along with wires for power and +data. The stationary rod and cables on the axis of rotation inside the hollow shaft are a weak spot of the system, but +this weak spot can be alleviated through either careful construction or a second layer of rotating meshes with a +differnt axis of rotation. \subsection{Rotating mesh power supply} + There are several options to transfer power to the rotor from its stationary frame. \begin{enumerate} @@ -272,28 +283,40 @@ There are several options to transfer power to the rotor from its stationary fra \item Inductive power transfer as used in inductive charging systems can be used without modification. \item A second brushless motor on the axis of rotation can be used as a generator, with its axis connected to the fixed frame and its stator mounted and connected to the rotor. - \item A bright LED along with some small solar cells may be a practical approach for small amounts of energy. + \item A bright LED along with some small solar cells may be a practical approach for small amounts of + energy\footnote{See Appendix \ref{sec_energy_calculations} for a back-of-the-envelope calculation}. \item For a very low-power security mesh, a battery specified to last for the lifetime of the device may be - practical. + practical\footnote{See Appendix \ref{sec_energy_calculations}}. \end{enumerate} +\subsection{Payload cooling} + +In boundary-sensing HSMs, cooling of the processor inside is a serious issue since any air +duct or heat pipe would have to penetrate the HSM's sensitive boundary. This problem can be solve by complex and costly +siphon-style constructions, but in commercial systems heat conduction is used exclusively. This severely limiting the +maximum power dissipation of the payload and thus its processing power. In our rotating HSM concept, the rotating mesh +can have longitudindal gaps in the mesh without impeding its function. This allows air to pass through the mesh during +rotation, and one could even integrate a fan into the rotor. This greatly increases the maximum possible power +dissipation of the payload and unlocks much more powerful processing capabilities. + \subsection{Rotating mesh data communication} + As we discussed above, while slip rings are the obvious choice to couple electrical signals through a rotating joint, they are likely to be too expensive and have too short a life span for our application. Since the only information that needs to pass between payload and rotor are the occassional status report and a high-frequency heartbeat signal that acts as the alarm trigger, a simple optocoupler close to the axis of rotation is a good solution. -\section{Future work} -With this paper, we intend to spread the word on our idea. Thus, below we include a selection of the open questions we -are currently working on. If you wish to tackle some of these, please feel free to contact the authors. +\section{Design space exploration} \subsection{Other modes of movement} + Though we decided to use rotation as an easy-to-implement yet secure option, other modes of movement bear promise as well. Particularly for less high-security applications without strict space constraints, a variant based on a pendulum motion may be worth investigating as it would simplify the mechanical construction. Power and data transfer to the moving part could simply be done with very flexible cables. \subsection{Multiple axes of rotation} + One option to alleviate the weak spot a rotating mesh has at its axis of rotation, a system with two or more axes of rotation could be used. A single mesh would still suffice in this case, but when evaluating accelerometer readings, the braking detection algorithm would have to superimpose both. @@ -304,14 +327,6 @@ mounted permanent magnets with a coil integrated into the rotor's PCB as a low-p inefficient, this setup would be low-cost and would still suffice for the meager power requirements of the rotor's monitoring circuitry. -\subsection{Payload cooling} -An issue with existing HSM concepts is that the mesh has to fully envelope the payload, and thus traditional air cooling -or heat pipes cannot be used. Existing systems rely on heat conduction through the mesh alone for cooling, severly -limiting the maximum power dissipation of the payload. In our rotating HSM concept, the rotating mesh can have -longitudindal gaps in the mesh without impeding its function. This allows air to pass through the mesh during rotation, -and a future evolution of the concept could even integrate a fan into the rotating component. This greatly increases the -maximum possible power dissipation of the payload, allowing for much more powerful processing. - \subsection{Other sensing modes} Since the security requirement the primary tamper-detection barrier needs to measure up to are much more lenient in the rotating HSM concept than in traditional HSMs, other coarse sensing modes besides low-tech meshes may be attractive. One @@ -393,6 +408,11 @@ direct access to the accelerometer from the outside and can be prevented by moun security envelope. This attack only works if the rate of rotation is constant and is trivially detectable if the rate of rotation is set to change on a schedule. +\section{Prototype implementation} + +%FIXME +FIXME + \section{Conclusion} In this paper, we have presented inertial hardware security modules, a novel concept for the construction of highly secure hardware security modules from inexpensive, commonly available parts. We have elaborated the engineering @@ -402,7 +422,8 @@ laid out some ideas for future research on the concept, and we will continue our \printbibliography[heading=bibintoc] \appendix -\section{Rotating mesh energy calculations} +\subsection{Rotating mesh energy calculations} +\label{sec_energy_calculations} Assume that the rotating mesh sensor should send its tamper status to the static monitoring circuit at least once every $T_\text{tx} = \SI{10}{\milli\second}$. At $\SI{100}{\kilo\baud}$ a transmission of a single byte in standard UART framing would take $\SI{100}{\micro\second}$ and yield an $\SI{1}{\percent}$ duty cycle. If we assume an optical or RF @@ -410,12 +431,14 @@ transmitter that requires $\SI{10}{\milli\ampere}$ of active current, this yield $\SI{100}{\micro\ampere}$. Reserving another $\SI{100}{\micro\ampere}$ for the monitoring circuit itself we arrive at an energy consumption of $\SI{1.7}{\ampere\hour\per\year}$. -\subsection{Battery power} +\subsubsection{Battery power} +\label{sec_energy_calculations_battery} The annual energy consumption we calculated above is about equivalent to the capacity of a single CR123A lithium primary cell. Using several such cells or optimizing power consumption would thus easily yield several years of battery life. -\subsection{LED and solar cell} +\subsubsection{LED and solar cell} +\label{sec_energy_calculations_led} Let us assume an LED with a light output of $\SI{1}{W}$ illuminating a small solar cell. Let us pessimistically assume a $\SI{5}{\percent}$ conversion efficiency in the solar cell. Let us assume that when the rotor is at its optimal rotational angle, $\SI{20}{\percent}$ of the LED's light output couple into the solar cell. Let us assume that we loose @@ -424,7 +447,29 @@ an energy output from the solar cell of $\SI{1}{\milli\watt}$. Assuming a $\SI{3 $\SI{300}{\micro\ampere}$ for our monitoring circuit. This is enough even with some conversion losses in the step-up converter boosing the solar cell's $\SI{0.6}{\volt}$ working voltage to the monitoring circuit's supply voltage. -\section{Patents and licensing} +\subsection{Minimum angular velocity} + +Let us determine a good target value for our rotating HSM's angular velocity. For simplicity, let us consider two types +of attacker. + +\subsubsection{Rotating human attacker} + +An attacker might try to rotate along with the HSM to attack the security mesh without triggering the accelerometer. Let +us pessimistically assume that the attacker has the axis of rotation running through their center of mass. The +attacker's body is probably at least $\SI{200}{\milli\meter}$ wide along its shortest back-to-chest axis, resulting in a +minimum radius from axis of rotation to surface of about $\SI{100}{\milli\meter}$. We choose +$\SI{250}{\meter\per\second^2}$ as an arbitrary acceleration well past the range tolerable by humans according to +Wikipedia. Centrifugal acceleration is $a=\omega^2 r$. In our example this results in a minimum angular velocity of +$\omega_\text{min} = \sqrt{\frac{a}{r}} = \sqrt{\frac{\SI{250}{\meter\per\second^2}}{\SI{100}{\milli\meter}}} \approx +16\frac{\pi}{\si{\second}} \approx 500 \text{rpm}$. + +\subsubsection{Rotating robot attacker} + +An attacker might try to use a robot to attack the rotating mesh. + +\subsubsection{Fooling the accelerometer} + +\subsection{Patents and licensing} During devlopment, we performed several hours of research on prior art for the inertial HSM concept. Yet, we could not find any mentions of similar concepts either in academic literature or in patents. Thus, we deem ourselves to be the inventors of this idea and we are fairly sure it is not covered by any patents or other restrictions at this point in |